diff --git a/ADDITIONAL_LICENSE b/ADDITIONAL_LICENSE index 448520177..bb308c02e 100644 --- a/ADDITIONAL_LICENSE +++ b/ADDITIONAL_LICENSE @@ -119,8 +119,6 @@ TFSHOP开源商城系统(以下简称“TFSHOP”或“许可软件”或“ 协议发布时间: 2023年06月01日 -版本最新更新: 2024年05月11日 By TFSHOP +版本最新更新: 2024年07月30日 By TFSHOP -TFSHOP官方网站:https://www.dswjcms.com - -TFSHOP演示站:https://v3.dswjcms.com \ No newline at end of file +TFSHOP官方网站:https://www.dswjcms.com \ No newline at end of file diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/adler32 b/admin/vue2/element-admin-v3/node_modules/.bin/adler32 index 5c0f52f8f..8b4097e8c 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/adler32 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/adler32 @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../adler-32/bin/adler32.njs" "$@" + "$basedir/node" "$basedir/../adler-32/bin/adler32.njs" "$@" + ret=$? else - exec node "$basedir/../adler-32/bin/adler32.njs" "$@" + node "$basedir/../adler-32/bin/adler32.njs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/adler32.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/adler32.cmd index 79d772014..4a8a770a7 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/adler32.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/adler32.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\adler-32\bin\adler32.njs" %* +"%_prog%" "%dp0%\..\adler-32\bin\adler32.njs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/adler32.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/adler32.ps1 index 30fba6458..bae5d88dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/adler32.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/adler32.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../adler-32/bin/adler32.njs" $args - } else { - & "$basedir/node$exe" "$basedir/../adler-32/bin/adler32.njs" $args - } + & "$basedir/node$exe" "$basedir/../adler-32/bin/adler32.njs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../adler-32/bin/adler32.njs" $args - } else { - & "node$exe" "$basedir/../adler-32/bin/adler32.njs" $args - } + & "node$exe" "$basedir/../adler-32/bin/adler32.njs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html b/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html index 472bfdac3..957072481 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html +++ b/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../ansi-html/bin/ansi-html" "$@" + "$basedir/node" "$basedir/../ansi-html/bin/ansi-html" "$@" + ret=$? else - exec node "$basedir/../ansi-html/bin/ansi-html" "$@" + node "$basedir/../ansi-html/bin/ansi-html" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.cmd index bd1941bdd..868e8da06 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ansi-html\bin\ansi-html" %* +"%_prog%" "%dp0%\..\ansi-html\bin\ansi-html" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.ps1 index 01f0ccdf8..cba293949 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/ansi-html.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../ansi-html/bin/ansi-html" $args - } else { - & "$basedir/node$exe" "$basedir/../ansi-html/bin/ansi-html" $args - } + & "$basedir/node$exe" "$basedir/../ansi-html/bin/ansi-html" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../ansi-html/bin/ansi-html" $args - } else { - & "node$exe" "$basedir/../ansi-html/bin/ansi-html" $args - } + & "node$exe" "$basedir/../ansi-html/bin/ansi-html" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/atob b/admin/vue2/element-admin-v3/node_modules/.bin/atob index 6d8ec0eef..59a6bf059 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/atob +++ b/admin/vue2/element-admin-v3/node_modules/.bin/atob @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../atob/bin/atob.js" "$@" + "$basedir/node" "$basedir/../atob/bin/atob.js" "$@" + ret=$? else - exec node "$basedir/../atob/bin/atob.js" "$@" + node "$basedir/../atob/bin/atob.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/atob.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/atob.cmd index 502a0b862..ff28f530b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/atob.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/atob.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\atob\bin\atob.js" %* +"%_prog%" "%dp0%\..\atob\bin\atob.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/atob.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/atob.ps1 index 4a9f311bd..d276879f0 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/atob.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/atob.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../atob/bin/atob.js" $args - } else { - & "$basedir/node$exe" "$basedir/../atob/bin/atob.js" $args - } + & "$basedir/node$exe" "$basedir/../atob/bin/atob.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../atob/bin/atob.js" $args - } else { - & "node$exe" "$basedir/../atob/bin/atob.js" $args - } + & "node$exe" "$basedir/../atob/bin/atob.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer b/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer index c6bc975db..42d21a880 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer +++ b/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@" + "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@" + ret=$? else - exec node "$basedir/../autoprefixer/bin/autoprefixer" "$@" + node "$basedir/../autoprefixer/bin/autoprefixer" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.cmd index 4bb03e2a2..4ee6f10ec 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\autoprefixer\bin\autoprefixer" %* +"%_prog%" "%dp0%\..\autoprefixer\bin\autoprefixer" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.ps1 index b0f0b6f7c..7d171915b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/autoprefixer.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args - } else { - & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args - } + & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args - } else { - & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args - } + & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/babylon b/admin/vue2/element-admin-v3/node_modules/.bin/babylon index d381ba5a3..b066817f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/babylon +++ b/admin/vue2/element-admin-v3/node_modules/.bin/babylon @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? else - exec node "$basedir/../babylon/bin/babylon.js" "$@" + node "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/babylon.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/babylon.cmd index 5a2b7e8d6..317cd139b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/babylon.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/babylon.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +"%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/babylon.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/babylon.ps1 index 8110def8a..e059d8aa8 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/babylon.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/babylon.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/crc32 b/admin/vue2/element-admin-v3/node_modules/.bin/crc32 index 55edf761d..e443ed432 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/crc32 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/crc32 @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../crc-32/bin/crc32.njs" "$@" + "$basedir/node" "$basedir/../crc-32/bin/crc32.njs" "$@" + ret=$? else - exec node "$basedir/../crc-32/bin/crc32.njs" "$@" + node "$basedir/../crc-32/bin/crc32.njs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/crc32.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/crc32.cmd index 1d7a315d2..afa7822f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/crc32.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/crc32.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\crc-32\bin\crc32.njs" %* +"%_prog%" "%dp0%\..\crc-32\bin\crc32.njs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/crc32.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/crc32.ps1 index c286187cd..f420224e1 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/crc32.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/crc32.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../crc-32/bin/crc32.njs" $args - } else { - & "$basedir/node$exe" "$basedir/../crc-32/bin/crc32.njs" $args - } + & "$basedir/node$exe" "$basedir/../crc-32/bin/crc32.njs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../crc-32/bin/crc32.njs" $args - } else { - & "node$exe" "$basedir/../crc-32/bin/crc32.njs" $args - } + & "node$exe" "$basedir/../crc-32/bin/crc32.njs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env index bf9d55fc7..bfd9e0238 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../cross-env/dist/bin/cross-env.js" "$@" + "$basedir/node" "$basedir/../cross-env/dist/bin/cross-env.js" "$@" + ret=$? else - exec node "$basedir/../cross-env/dist/bin/cross-env.js" "$@" + node "$basedir/../cross-env/dist/bin/cross-env.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell index 18525fde9..a71bb4aae 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../cross-env/dist/bin/cross-env-shell.js" "$@" + "$basedir/node" "$basedir/../cross-env/dist/bin/cross-env-shell.js" "$@" + ret=$? else - exec node "$basedir/../cross-env/dist/bin/cross-env-shell.js" "$@" + node "$basedir/../cross-env/dist/bin/cross-env-shell.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.cmd index 51dd274c5..6f5c1cc15 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cross-env\dist\bin\cross-env-shell.js" %* +"%_prog%" "%dp0%\..\cross-env\dist\bin\cross-env-shell.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.ps1 index 7d58f0bb3..775cb7716 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env-shell.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../cross-env/dist/bin/cross-env-shell.js" $args - } else { - & "$basedir/node$exe" "$basedir/../cross-env/dist/bin/cross-env-shell.js" $args - } + & "$basedir/node$exe" "$basedir/../cross-env/dist/bin/cross-env-shell.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../cross-env/dist/bin/cross-env-shell.js" $args - } else { - & "node$exe" "$basedir/../cross-env/dist/bin/cross-env-shell.js" $args - } + & "node$exe" "$basedir/../cross-env/dist/bin/cross-env-shell.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.cmd index 799436460..985796195 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cross-env\dist\bin\cross-env.js" %* +"%_prog%" "%dp0%\..\cross-env\dist\bin\cross-env.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.ps1 index 428dd3589..46aca93dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cross-env.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../cross-env/dist/bin/cross-env.js" $args - } else { - & "$basedir/node$exe" "$basedir/../cross-env/dist/bin/cross-env.js" $args - } + & "$basedir/node$exe" "$basedir/../cross-env/dist/bin/cross-env.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../cross-env/dist/bin/cross-env.js" $args - } else { - & "node$exe" "$basedir/../cross-env/dist/bin/cross-env.js" $args - } + & "node$exe" "$basedir/../cross-env/dist/bin/cross-env.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cssesc b/admin/vue2/element-admin-v3/node_modules/.bin/cssesc index c9b52142b..b8e1908ad 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cssesc +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cssesc @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@" + "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@" + ret=$? else - exec node "$basedir/../cssesc/bin/cssesc" "$@" + node "$basedir/../cssesc/bin/cssesc" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.cmd index a79d95bca..18605d891 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cssesc\bin\cssesc" %* +"%_prog%" "%dp0%\..\cssesc\bin\cssesc" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.ps1 index 480aa17f8..f07748867 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/cssesc.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args - } else { - & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args - } + & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../cssesc/bin/cssesc" $args - } else { - & "node$exe" "$basedir/../cssesc/bin/cssesc" $args - } + & "node$exe" "$basedir/../cssesc/bin/cssesc" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/errno b/admin/vue2/element-admin-v3/node_modules/.bin/errno index c3be4fc54..ad848e683 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/errno +++ b/admin/vue2/element-admin-v3/node_modules/.bin/errno @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../errno/cli.js" "$@" + "$basedir/node" "$basedir/../errno/cli.js" "$@" + ret=$? else - exec node "$basedir/../errno/cli.js" "$@" + node "$basedir/../errno/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/errno.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/errno.cmd index 7babeb404..a25a9b350 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/errno.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/errno.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\errno\cli.js" %* +"%_prog%" "%dp0%\..\errno\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/errno.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/errno.ps1 index 2b2d86fae..0b56cbc2a 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/errno.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/errno.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../errno/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../errno/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../errno/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../errno/cli.js" $args - } else { - & "node$exe" "$basedir/../errno/cli.js" $args - } + & "node$exe" "$basedir/../errno/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/eslint b/admin/vue2/element-admin-v3/node_modules/.bin/eslint index 4e7c1c901..3bb276163 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/eslint +++ b/admin/vue2/element-admin-v3/node_modules/.bin/eslint @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@" + "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@" + ret=$? else - exec node "$basedir/../eslint/bin/eslint.js" "$@" + node "$basedir/../eslint/bin/eslint.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/eslint.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/eslint.cmd index 2f7264f20..c94106fff 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/eslint.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/eslint.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\eslint\bin\eslint.js" %* +"%_prog%" "%dp0%\..\eslint\bin\eslint.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/eslint.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/eslint.ps1 index 155bec495..ee3276721 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/eslint.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/eslint.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args - } else { - & "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args - } + & "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../eslint/bin/eslint.js" $args - } else { - & "node$exe" "$basedir/../eslint/bin/eslint.js" $args - } + & "node$exe" "$basedir/../eslint/bin/eslint.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/esparse b/admin/vue2/element-admin-v3/node_modules/.bin/esparse index 1cc1c96ff..735d8546b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/esparse +++ b/admin/vue2/element-admin-v3/node_modules/.bin/esparse @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" + "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" + ret=$? else - exec node "$basedir/../esprima/bin/esparse.js" "$@" + node "$basedir/../esprima/bin/esparse.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/esparse.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/esparse.cmd index 77d1a4234..ab1236ee4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/esparse.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/esparse.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esparse.js" %* +"%_prog%" "%dp0%\..\esprima\bin\esparse.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/esparse.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/esparse.ps1 index f19ed7301..567aea308 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/esparse.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/esparse.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../esprima/bin/esparse.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate b/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate index 91a4c9b5f..d278bc707 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate +++ b/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" + "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" + ret=$? else - exec node "$basedir/../esprima/bin/esvalidate.js" "$@" + node "$basedir/../esprima/bin/esvalidate.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.cmd index 085b54247..aa15f1be1 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %* +"%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.ps1 index 23699d11e..b1ed174bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/esvalidate.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/he b/admin/vue2/element-admin-v3/node_modules/.bin/he index 70e18de98..68370704a 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/he +++ b/admin/vue2/element-admin-v3/node_modules/.bin/he @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../he/bin/he" "$@" + "$basedir/node" "$basedir/../he/bin/he" "$@" + ret=$? else - exec node "$basedir/../he/bin/he" "$@" + node "$basedir/../he/bin/he" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/he.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/he.cmd index 7189cd275..4c25c26e4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/he.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/he.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\he\bin\he" %* +"%_prog%" "%dp0%\..\he\bin\he" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/he.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/he.ps1 index b0010bc6c..4f942813f 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/he.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/he.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../he/bin/he" $args - } else { - & "$basedir/node$exe" "$basedir/../he/bin/he" $args - } + & "$basedir/node$exe" "$basedir/../he/bin/he" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../he/bin/he" $args - } else { - & "node$exe" "$basedir/../he/bin/he" $args - } + & "node$exe" "$basedir/../he/bin/he" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier b/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier index 1bf23924e..8c6403fc4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier +++ b/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../html-minifier/cli.js" "$@" + "$basedir/node" "$basedir/../html-minifier/cli.js" "$@" + ret=$? else - exec node "$basedir/../html-minifier/cli.js" "$@" + node "$basedir/../html-minifier/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.cmd index 4efca76ef..bcd23a6a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\html-minifier\cli.js" %* +"%_prog%" "%dp0%\..\html-minifier\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.ps1 index d610ad41f..2a96dce44 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/html-minifier.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../html-minifier/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../html-minifier/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../html-minifier/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../html-minifier/cli.js" $args - } else { - & "node$exe" "$basedir/../html-minifier/cli.js" $args - } + & "node$exe" "$basedir/../html-minifier/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/image-size b/admin/vue2/element-admin-v3/node_modules/.bin/image-size index ae4ce4c9e..42c08156c 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/image-size +++ b/admin/vue2/element-admin-v3/node_modules/.bin/image-size @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../image-size/bin/image-size.js" "$@" + "$basedir/node" "$basedir/../image-size/bin/image-size.js" "$@" + ret=$? else - exec node "$basedir/../image-size/bin/image-size.js" "$@" + node "$basedir/../image-size/bin/image-size.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/image-size.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/image-size.cmd index c931e491e..3f4d38b0d 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/image-size.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/image-size.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\image-size\bin\image-size.js" %* +"%_prog%" "%dp0%\..\image-size\bin\image-size.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/image-size.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/image-size.ps1 index 606184aa2..3e67d26e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/image-size.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/image-size.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../image-size/bin/image-size.js" $args - } else { - & "$basedir/node$exe" "$basedir/../image-size/bin/image-size.js" $args - } + & "$basedir/node$exe" "$basedir/../image-size/bin/image-size.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../image-size/bin/image-size.js" $args - } else { - & "node$exe" "$basedir/../image-size/bin/image-size.js" $args - } + & "node$exe" "$basedir/../image-size/bin/image-size.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture b/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture index 79e318001..8cc916df0 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture +++ b/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" + "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" + ret=$? else - exec node "$basedir/../import-local/fixtures/cli.js" "$@" + node "$basedir/../import-local/fixtures/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.cmd index 53ee97f56..f909453bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\import-local\fixtures\cli.js" %* +"%_prog%" "%dp0%\..\import-local\fixtures\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.ps1 index 01ef78421..afd6c1a76 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/import-local-fixture.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../import-local/fixtures/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/is-ci b/admin/vue2/element-admin-v3/node_modules/.bin/is-ci index c9b0db40e..e79342ff2 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/is-ci +++ b/admin/vue2/element-admin-v3/node_modules/.bin/is-ci @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../is-ci/bin.js" "$@" + "$basedir/node" "$basedir/../is-ci/bin.js" "$@" + ret=$? else - exec node "$basedir/../is-ci/bin.js" "$@" + node "$basedir/../is-ci/bin.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.cmd index 881769417..a2db39fa7 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\is-ci\bin.js" %* +"%_prog%" "%dp0%\..\is-ci\bin.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.ps1 index 773a44d22..3fe23403d 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/is-ci.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../is-ci/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../is-ci/bin.js" $args - } + & "$basedir/node$exe" "$basedir/../is-ci/bin.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../is-ci/bin.js" $args - } else { - & "node$exe" "$basedir/../is-ci/bin.js" $args - } + & "node$exe" "$basedir/../is-ci/bin.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/is-docker b/admin/vue2/element-admin-v3/node_modules/.bin/is-docker index 9e457930e..6211ce4ee 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/is-docker +++ b/admin/vue2/element-admin-v3/node_modules/.bin/is-docker @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../is-docker/cli.js" "$@" + "$basedir/node" "$basedir/../is-docker/cli.js" "$@" + ret=$? else - exec node "$basedir/../is-docker/cli.js" "$@" + node "$basedir/../is-docker/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.cmd index e06f08052..14ddf45ff 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\is-docker\cli.js" %* +"%_prog%" "%dp0%\..\is-docker\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.ps1 index 742762537..7c588006e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/is-docker.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../is-docker/cli.js" $args - } else { - & "node$exe" "$basedir/../is-docker/cli.js" $args - } + & "node$exe" "$basedir/../is-docker/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml b/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml index ed78a8682..453703074 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml +++ b/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@" + "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@" + ret=$? else - exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@" + node "$basedir/../js-yaml/bin/js-yaml.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.cmd index 7154987a0..a23c99716 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %* +"%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.ps1 index 2acfc61c3..728b322d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/js-yaml.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/jsesc b/admin/vue2/element-admin-v3/node_modules/.bin/jsesc index e7105da30..f2bbda380 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/jsesc +++ b/admin/vue2/element-admin-v3/node_modules/.bin/jsesc @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? else - exec node "$basedir/../jsesc/bin/jsesc" "$@" + node "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.cmd index 7ff98f0e0..5338fa170 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* +"%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.ps1 index 6007e022f..1751cf9cd 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/jsesc.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../jsesc/bin/jsesc" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/json5 b/admin/vue2/element-admin-v3/node_modules/.bin/json5 index 977b75071..882cecdde 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/json5 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/json5 @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" + "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" + ret=$? else - exec node "$basedir/../json5/lib/cli.js" "$@" + node "$basedir/../json5/lib/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/json5.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/json5.cmd index d9924813a..fe63e908d 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/json5.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/json5.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %* +"%_prog%" "%dp0%\..\json5\lib\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/json5.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/json5.ps1 index 8700ddbef..585f9ad19 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/json5.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/json5.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../json5/lib/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint b/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint index a4173d2e9..03134430d 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint +++ b/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../jsonlint/lib/cli.js" "$@" + "$basedir/node" "$basedir/../jsonlint/lib/cli.js" "$@" + ret=$? else - exec node "$basedir/../jsonlint/lib/cli.js" "$@" + node "$basedir/../jsonlint/lib/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.cmd index 803ce9c80..d2c1525bd 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsonlint\lib\cli.js" %* +"%_prog%" "%dp0%\..\jsonlint\lib\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.ps1 index e02c3dac7..347e68d16 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/jsonlint.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../jsonlint/lib/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../jsonlint/lib/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../jsonlint/lib/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../jsonlint/lib/cli.js" $args - } else { - & "node$exe" "$basedir/../jsonlint/lib/cli.js" $args - } + & "node$exe" "$basedir/../jsonlint/lib/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged b/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged index 9371e2701..0d7f1366b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged +++ b/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../lint-staged/index.js" "$@" + "$basedir/node" "$basedir/../lint-staged/index.js" "$@" + ret=$? else - exec node "$basedir/../lint-staged/index.js" "$@" + node "$basedir/../lint-staged/index.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.cmd index 2cdb8a82c..858c29fea 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\lint-staged\index.js" %* +"%_prog%" "%dp0%\..\lint-staged\index.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.ps1 index 5428fad70..e282ce338 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/lint-staged.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../lint-staged/index.js" $args - } else { - & "$basedir/node$exe" "$basedir/../lint-staged/index.js" $args - } + & "$basedir/node$exe" "$basedir/../lint-staged/index.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../lint-staged/index.js" $args - } else { - & "node$exe" "$basedir/../lint-staged/index.js" $args - } + & "node$exe" "$basedir/../lint-staged/index.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify b/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify index 60598cb0b..bbdb1dff5 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify +++ b/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../loose-envify/cli.js" "$@" + "$basedir/node" "$basedir/../loose-envify/cli.js" "$@" + ret=$? else - exec node "$basedir/../loose-envify/cli.js" "$@" + node "$basedir/../loose-envify/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.cmd index 6b576191f..37b575e6a 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\loose-envify\cli.js" %* +"%_prog%" "%dp0%\..\loose-envify\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.ps1 index eb866fcaf..7b96ac62f 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/loose-envify.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../loose-envify/cli.js" $args - } else { - & "node$exe" "$basedir/../loose-envify/cli.js" $args - } + & "node$exe" "$basedir/../loose-envify/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin b/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin index 663d7b1f0..2ab377870 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin +++ b/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../miller-rabin/bin/miller-rabin" "$@" + "$basedir/node" "$basedir/../miller-rabin/bin/miller-rabin" "$@" + ret=$? else - exec node "$basedir/../miller-rabin/bin/miller-rabin" "$@" + node "$basedir/../miller-rabin/bin/miller-rabin" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.cmd index f16919e04..33e2a6b06 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\miller-rabin\bin\miller-rabin" %* +"%_prog%" "%dp0%\..\miller-rabin\bin\miller-rabin" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.ps1 index 3a5beee4f..298be240e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/miller-rabin.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args - } else { - & "$basedir/node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args - } + & "$basedir/node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args - } else { - & "node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args - } + & "node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/mime b/admin/vue2/element-admin-v3/node_modules/.bin/mime index 0a62a1b13..91e5e16a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/mime +++ b/admin/vue2/element-admin-v3/node_modules/.bin/mime @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mime/cli.js" "$@" + "$basedir/node" "$basedir/../mime/cli.js" "$@" + ret=$? else - exec node "$basedir/../mime/cli.js" "$@" + node "$basedir/../mime/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/mime.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/mime.cmd index a9e48f1e3..678bc6bc0 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/mime.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/mime.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* +"%_prog%" "%dp0%\..\mime\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/mime.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/mime.ps1 index 2222f40bc..a6f6f4700 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/mime.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/mime.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../mime/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp b/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp index 6ba5765a8..bcd333f46 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp +++ b/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" + "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" + ret=$? else - exec node "$basedir/../mkdirp/bin/cmd.js" "$@" + node "$basedir/../mkdirp/bin/cmd.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.cmd index 351da9dfe..5ef91c746 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* +"%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.ps1 index 911e85466..35ce69072 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/mkdirp.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns b/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns index 466f90386..9996d272c 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns +++ b/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../multicast-dns/cli.js" "$@" + "$basedir/node" "$basedir/../multicast-dns/cli.js" "$@" + ret=$? else - exec node "$basedir/../multicast-dns/cli.js" "$@" + node "$basedir/../multicast-dns/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.cmd index c6b11f4f7..7ea732ead 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\multicast-dns\cli.js" %* +"%_prog%" "%dp0%\..\multicast-dns\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.ps1 index ec44f13ae..754fe12f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/multicast-dns.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../multicast-dns/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../multicast-dns/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../multicast-dns/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../multicast-dns/cli.js" $args - } else { - & "node$exe" "$basedir/../multicast-dns/cli.js" $args - } + & "node$exe" "$basedir/../multicast-dns/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp b/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp index b80888c23..68303f94d 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp +++ b/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../node-gyp/bin/node-gyp.js" "$@" + "$basedir/node" "$basedir/../node-gyp/bin/node-gyp.js" "$@" + ret=$? else - exec node "$basedir/../node-gyp/bin/node-gyp.js" "$@" + node "$basedir/../node-gyp/bin/node-gyp.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.cmd index 43e04a599..3d3b0f8af 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp\bin\node-gyp.js" %* +"%_prog%" "%dp0%\..\node-gyp\bin\node-gyp.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.ps1 index dd514e275..536784582 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/node-gyp.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } else { - & "$basedir/node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } + & "$basedir/node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } else { - & "node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } + & "node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/node-sass b/admin/vue2/element-admin-v3/node_modules/.bin/node-sass index 875c56a1c..09a024c07 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/node-sass +++ b/admin/vue2/element-admin-v3/node_modules/.bin/node-sass @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../node-sass/bin/node-sass" "$@" + "$basedir/node" "$basedir/../node-sass/bin/node-sass" "$@" + ret=$? else - exec node "$basedir/../node-sass/bin/node-sass" "$@" + node "$basedir/../node-sass/bin/node-sass" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.cmd index 3ff9062d1..f0a36d910 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-sass\bin\node-sass" %* +"%_prog%" "%dp0%\..\node-sass\bin\node-sass" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.ps1 index c29a761c4..609c62217 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/node-sass.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../node-sass/bin/node-sass" $args - } else { - & "$basedir/node$exe" "$basedir/../node-sass/bin/node-sass" $args - } + & "$basedir/node$exe" "$basedir/../node-sass/bin/node-sass" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../node-sass/bin/node-sass" $args - } else { - & "node$exe" "$basedir/../node-sass/bin/node-sass" $args - } + & "node$exe" "$basedir/../node-sass/bin/node-sass" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/nopt b/admin/vue2/element-admin-v3/node_modules/.bin/nopt index f1ec43bc2..e658aac45 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/nopt +++ b/admin/vue2/element-admin-v3/node_modules/.bin/nopt @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" + "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" + ret=$? else - exec node "$basedir/../nopt/bin/nopt.js" "$@" + node "$basedir/../nopt/bin/nopt.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/nopt.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/nopt.cmd index 1c194db96..fbea78a15 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/nopt.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/nopt.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* +"%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/nopt.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/nopt.ps1 index 9d6ba56f6..68c40bf91 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/nopt.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/nopt.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args - } else { - & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args - } + & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../nopt/bin/nopt.js" $args - } else { - & "node$exe" "$basedir/../nopt/bin/nopt.js" $args - } + & "node$exe" "$basedir/../nopt/bin/nopt.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/npm-path b/admin/vue2/element-admin-v3/node_modules/.bin/npm-path index 39c260f46..d23044223 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/npm-path +++ b/admin/vue2/element-admin-v3/node_modules/.bin/npm-path @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../npm-path/bin/npm-path" "$@" + "$basedir/node" "$basedir/../npm-path/bin/npm-path" "$@" + ret=$? else - exec node "$basedir/../npm-path/bin/npm-path" "$@" + node "$basedir/../npm-path/bin/npm-path" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.cmd index 9ed96e4d0..c5480afe2 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\npm-path\bin\npm-path" %* +"%_prog%" "%dp0%\..\npm-path\bin\npm-path" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.ps1 index 5c6bed746..5740c8f71 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/npm-path.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../npm-path/bin/npm-path" $args - } else { - & "$basedir/node$exe" "$basedir/../npm-path/bin/npm-path" $args - } + & "$basedir/node$exe" "$basedir/../npm-path/bin/npm-path" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../npm-path/bin/npm-path" $args - } else { - & "node$exe" "$basedir/../npm-path/bin/npm-path" $args - } + & "node$exe" "$basedir/../npm-path/bin/npm-path" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/npm-which b/admin/vue2/element-admin-v3/node_modules/.bin/npm-which index cc5cb8bca..69d18e08e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/npm-which +++ b/admin/vue2/element-admin-v3/node_modules/.bin/npm-which @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../npm-which/bin/npm-which.js" "$@" + "$basedir/node" "$basedir/../npm-which/bin/npm-which.js" "$@" + ret=$? else - exec node "$basedir/../npm-which/bin/npm-which.js" "$@" + node "$basedir/../npm-which/bin/npm-which.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.cmd index 415fe3ab9..cdfeb4dc5 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\npm-which\bin\npm-which.js" %* +"%_prog%" "%dp0%\..\npm-which\bin\npm-which.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.ps1 index bddcec458..408a3b28b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/npm-which.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../npm-which/bin/npm-which.js" $args - } else { - & "$basedir/node$exe" "$basedir/../npm-which/bin/npm-which.js" $args - } + & "$basedir/node$exe" "$basedir/../npm-which/bin/npm-which.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../npm-which/bin/npm-which.js" $args - } else { - & "node$exe" "$basedir/../npm-which/bin/npm-which.js" $args - } + & "node$exe" "$basedir/../npm-which/bin/npm-which.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/opener b/admin/vue2/element-admin-v3/node_modules/.bin/opener index 8852090b4..c70fc8c00 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/opener +++ b/admin/vue2/element-admin-v3/node_modules/.bin/opener @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../opener/bin/opener-bin.js" "$@" + "$basedir/node" "$basedir/../opener/bin/opener-bin.js" "$@" + ret=$? else - exec node "$basedir/../opener/bin/opener-bin.js" "$@" + node "$basedir/../opener/bin/opener-bin.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/opener.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/opener.cmd index 6ad7e0752..d5dbe0d0d 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/opener.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/opener.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\opener\bin\opener-bin.js" %* +"%_prog%" "%dp0%\..\opener\bin\opener-bin.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/opener.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/opener.ps1 index b3825e5b2..e8617836a 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/opener.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/opener.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../opener/bin/opener-bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../opener/bin/opener-bin.js" $args - } + & "$basedir/node$exe" "$basedir/../opener/bin/opener-bin.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../opener/bin/opener-bin.js" $args - } else { - & "node$exe" "$basedir/../opener/bin/opener-bin.js" $args - } + & "node$exe" "$basedir/../opener/bin/opener-bin.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/parser b/admin/vue2/element-admin-v3/node_modules/.bin/parser index cb5b10d8a..baec12230 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/parser +++ b/admin/vue2/element-admin-v3/node_modules/.bin/parser @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" + "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" + ret=$? else - exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" + node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/parser.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/parser.cmd index a8a204057..214085678 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/parser.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/parser.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %* +"%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/parser.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/parser.ps1 index 8926517b4..82ec139d0 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/parser.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/parser.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7 b/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7 index be56fa0f8..c173a881e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7 @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../pkcs7/lib/cli.js" "$@" + "$basedir/node" "$basedir/../pkcs7/lib/cli.js" "$@" + ret=$? else - exec node "$basedir/../pkcs7/lib/cli.js" "$@" + node "$basedir/../pkcs7/lib/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.cmd index 94c5572ae..c8f168f8a 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\pkcs7\lib\cli.js" %* +"%_prog%" "%dp0%\..\pkcs7\lib\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.ps1 index 5d707d5ad..8ab6363c3 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/pkcs7.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../pkcs7/lib/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../pkcs7/lib/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../pkcs7/lib/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../pkcs7/lib/cli.js" $args - } else { - & "node$exe" "$basedir/../pkcs7/lib/cli.js" $args - } + & "node$exe" "$basedir/../pkcs7/lib/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/prettier b/admin/vue2/element-admin-v3/node_modules/.bin/prettier index 3e9eb4b94..7ae541e50 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/prettier +++ b/admin/vue2/element-admin-v3/node_modules/.bin/prettier @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../prettier/bin-prettier.js" "$@" + "$basedir/node" "$basedir/../prettier/bin-prettier.js" "$@" + ret=$? else - exec node "$basedir/../prettier/bin-prettier.js" "$@" + node "$basedir/../prettier/bin-prettier.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/prettier.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/prettier.cmd index d155c7090..5225d552b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/prettier.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/prettier.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\prettier\bin-prettier.js" %* +"%_prog%" "%dp0%\..\prettier\bin-prettier.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/prettier.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/prettier.ps1 index a584fceef..7b06a8670 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/prettier.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/prettier.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../prettier/bin-prettier.js" $args - } else { - & "$basedir/node$exe" "$basedir/../prettier/bin-prettier.js" $args - } + & "$basedir/node$exe" "$basedir/../prettier/bin-prettier.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../prettier/bin-prettier.js" $args - } else { - & "node$exe" "$basedir/../prettier/bin-prettier.js" $args - } + & "node$exe" "$basedir/../prettier/bin-prettier.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/printj b/admin/vue2/element-admin-v3/node_modules/.bin/printj index c31635d8c..bc88a9bc8 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/printj +++ b/admin/vue2/element-admin-v3/node_modules/.bin/printj @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../printj/bin/printj.njs" "$@" + "$basedir/node" "$basedir/../printj/bin/printj.njs" "$@" + ret=$? else - exec node "$basedir/../printj/bin/printj.njs" "$@" + node "$basedir/../printj/bin/printj.njs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/printj.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/printj.cmd index a143a2fde..7584d6a9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/printj.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/printj.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\printj\bin\printj.njs" %* +"%_prog%" "%dp0%\..\printj\bin\printj.njs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/printj.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/printj.ps1 index df3da4207..561f103d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/printj.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/printj.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args - } else { - & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args - } + & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../printj/bin/printj.njs" $args - } else { - & "node$exe" "$basedir/../printj/bin/printj.njs" $args - } + & "node$exe" "$basedir/../printj/bin/printj.njs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser b/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser index 04b07bc5c..7c0fff522 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser +++ b/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../regjsparser/bin/parser" "$@" + "$basedir/node" "$basedir/../regjsparser/bin/parser" "$@" + ret=$? else - exec node "$basedir/../regjsparser/bin/parser" "$@" + node "$basedir/../regjsparser/bin/parser" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.cmd index bd71b01bf..b5db0d900 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\regjsparser\bin\parser" %* +"%_prog%" "%dp0%\..\regjsparser\bin\parser" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.ps1 index 7d45ef7d5..788dd1e1c 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/regjsparser.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../regjsparser/bin/parser" $args - } else { - & "$basedir/node$exe" "$basedir/../regjsparser/bin/parser" $args - } + & "$basedir/node$exe" "$basedir/../regjsparser/bin/parser" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../regjsparser/bin/parser" $args - } else { - & "node$exe" "$basedir/../regjsparser/bin/parser" $args - } + & "node$exe" "$basedir/../regjsparser/bin/parser" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/rimraf b/admin/vue2/element-admin-v3/node_modules/.bin/rimraf index b81682550..a3e9f7188 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/rimraf +++ b/admin/vue2/element-admin-v3/node_modules/.bin/rimraf @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + ret=$? else - exec node "$basedir/../rimraf/bin.js" "$@" + node "$basedir/../rimraf/bin.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.cmd index dc453145d..77d44c3f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %* +"%_prog%" "%dp0%\..\rimraf\bin.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.ps1 index 17167914f..a244a805e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/rimraf.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } + & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "node$exe" "$basedir/../rimraf/bin.js" $args - } + & "node$exe" "$basedir/../rimraf/bin.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph b/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph index 56a8c1183..cbd1f1624 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../sass-graph/bin/sassgraph" "$@" + "$basedir/node" "$basedir/../sass-graph/bin/sassgraph" "$@" + ret=$? else - exec node "$basedir/../sass-graph/bin/sassgraph" "$@" + node "$basedir/../sass-graph/bin/sassgraph" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.cmd index 9d51276af..08105e7a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sass-graph\bin\sassgraph" %* +"%_prog%" "%dp0%\..\sass-graph\bin\sassgraph" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.ps1 index 4b4adb588..2b832bc38 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sassgraph.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../sass-graph/bin/sassgraph" $args - } else { - & "$basedir/node$exe" "$basedir/../sass-graph/bin/sassgraph" $args - } + & "$basedir/node$exe" "$basedir/../sass-graph/bin/sassgraph" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../sass-graph/bin/sassgraph" $args - } else { - & "node$exe" "$basedir/../sass-graph/bin/sassgraph" $args - } + & "node$exe" "$basedir/../sass-graph/bin/sassgraph" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/semver b/admin/vue2/element-admin-v3/node_modules/.bin/semver index 86cee84b6..10497aa88 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/semver +++ b/admin/vue2/element-admin-v3/node_modules/.bin/semver @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" + "$basedir/node" "$basedir/../semver/bin/semver" "$@" + ret=$? else - exec node "$basedir/../semver/bin/semver" "$@" + node "$basedir/../semver/bin/semver" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/semver.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/semver.cmd index 974e8f3a5..f6c4ad47f 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/semver.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/semver.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* +"%_prog%" "%dp0%\..\semver\bin\semver" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/semver.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/semver.ps1 index 98c1b093f..a3315ffc6 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/semver.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/semver.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args - } else { - & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args - } + & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../semver/bin/semver" $args - } else { - & "node$exe" "$basedir/../semver/bin/semver" $args - } + & "node$exe" "$basedir/../semver/bin/semver" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sgf b/admin/vue2/element-admin-v3/node_modules/.bin/sgf index c7fecb407..3295778a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sgf +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sgf @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../staged-git-files/bin/cli.js" "$@" + "$basedir/node" "$basedir/../staged-git-files/bin/cli.js" "$@" + ret=$? else - exec node "$basedir/../staged-git-files/bin/cli.js" "$@" + node "$basedir/../staged-git-files/bin/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sgf.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/sgf.cmd index 560fca458..5ccba6bb9 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sgf.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sgf.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\staged-git-files\bin\cli.js" %* +"%_prog%" "%dp0%\..\staged-git-files\bin\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sgf.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/sgf.ps1 index 6e34ba4ba..fe488d822 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sgf.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sgf.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../staged-git-files/bin/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../staged-git-files/bin/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../staged-git-files/bin/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../staged-git-files/bin/cli.js" $args - } else { - & "node$exe" "$basedir/../staged-git-files/bin/cli.js" $args - } + & "node$exe" "$basedir/../staged-git-files/bin/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sha.js b/admin/vue2/element-admin-v3/node_modules/.bin/sha.js index 7b69763ac..9ded611ec 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sha.js +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sha.js @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../sha.js/bin.js" "$@" + "$basedir/node" "$basedir/../sha.js/bin.js" "$@" + ret=$? else - exec node "$basedir/../sha.js/bin.js" "$@" + node "$basedir/../sha.js/bin.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.cmd index c82b0d703..4fadb2e29 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sha.js\bin.js" %* +"%_prog%" "%dp0%\..\sha.js\bin.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.ps1 index fceb31aad..387f9c1cc 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sha.js.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../sha.js/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../sha.js/bin.js" $args - } + & "$basedir/node$exe" "$basedir/../sha.js/bin.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../sha.js/bin.js" $args - } else { - & "node$exe" "$basedir/../sha.js/bin.js" $args - } + & "node$exe" "$basedir/../sha.js/bin.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/shjs b/admin/vue2/element-admin-v3/node_modules/.bin/shjs index 39ae9cbab..f30cc8709 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/shjs +++ b/admin/vue2/element-admin-v3/node_modules/.bin/shjs @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../shelljs/bin/shjs" "$@" + "$basedir/node" "$basedir/../shelljs/bin/shjs" "$@" + ret=$? else - exec node "$basedir/../shelljs/bin/shjs" "$@" + node "$basedir/../shelljs/bin/shjs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/shjs.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/shjs.cmd index ba35f4b57..9f8d1f40e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/shjs.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/shjs.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\shelljs\bin\shjs" %* +"%_prog%" "%dp0%\..\shelljs\bin\shjs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/shjs.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/shjs.ps1 index c24e10423..f25177194 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/shjs.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/shjs.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../shelljs/bin/shjs" $args - } else { - & "$basedir/node$exe" "$basedir/../shelljs/bin/shjs" $args - } + & "$basedir/node$exe" "$basedir/../shelljs/bin/shjs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../shelljs/bin/shjs" $args - } else { - & "node$exe" "$basedir/../shelljs/bin/shjs" $args - } + & "node$exe" "$basedir/../shelljs/bin/shjs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/showdown b/admin/vue2/element-admin-v3/node_modules/.bin/showdown index 5973c967a..e695b1158 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/showdown +++ b/admin/vue2/element-admin-v3/node_modules/.bin/showdown @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../showdown/bin/showdown.js" "$@" + "$basedir/node" "$basedir/../showdown/bin/showdown.js" "$@" + ret=$? else - exec node "$basedir/../showdown/bin/showdown.js" "$@" + node "$basedir/../showdown/bin/showdown.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/showdown.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/showdown.cmd index 8c80fc969..e12b334bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/showdown.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/showdown.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\showdown\bin\showdown.js" %* +"%_prog%" "%dp0%\..\showdown\bin\showdown.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/showdown.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/showdown.ps1 index 23d150728..6cfd09fce 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/showdown.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/showdown.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../showdown/bin/showdown.js" $args - } else { - & "$basedir/node$exe" "$basedir/../showdown/bin/showdown.js" $args - } + & "$basedir/node$exe" "$basedir/../showdown/bin/showdown.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../showdown/bin/showdown.js" $args - } else { - & "node$exe" "$basedir/../showdown/bin/showdown.js" $args - } + & "node$exe" "$basedir/../showdown/bin/showdown.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv index ab33b1e48..91957fab1 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@" + "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@" + ret=$? else - exec node "$basedir/../sshpk/bin/sshpk-conv" "$@" + node "$basedir/../sshpk/bin/sshpk-conv" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.cmd index 44d107671..3317e0a34 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-conv" %* +"%_prog%" "%dp0%\..\sshpk\bin\sshpk-conv" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.ps1 index a8e820e85..d27c311db 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-conv.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args - } else { - & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args - } + & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args - } else { - & "node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args - } + & "node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign index 87f8ae8c4..0dd764435 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@" + "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@" + ret=$? else - exec node "$basedir/../sshpk/bin/sshpk-sign" "$@" + node "$basedir/../sshpk/bin/sshpk-sign" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.cmd index b389dca2e..54c4925dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-sign" %* +"%_prog%" "%dp0%\..\sshpk\bin\sshpk-sign" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.ps1 index 0de3957dd..10d9186d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-sign.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args - } else { - & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args - } + & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args - } else { - & "node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args - } + & "node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify index c2d00d083..04f5d05fe 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@" + "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@" + ret=$? else - exec node "$basedir/../sshpk/bin/sshpk-verify" "$@" + node "$basedir/../sshpk/bin/sshpk-verify" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.cmd index 27c635722..2b352fccf 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-verify" %* +"%_prog%" "%dp0%\..\sshpk\bin\sshpk-verify" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.ps1 index 83707850e..d5a23e26b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/sshpk-verify.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args - } else { - & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args - } + & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args - } else { - & "node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args - } + & "node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/svgo b/admin/vue2/element-admin-v3/node_modules/.bin/svgo index 96eb5601b..0c8229a6e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/svgo +++ b/admin/vue2/element-admin-v3/node_modules/.bin/svgo @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../svgo/bin/svgo" "$@" + "$basedir/node" "$basedir/../svgo/bin/svgo" "$@" + ret=$? else - exec node "$basedir/../svgo/bin/svgo" "$@" + node "$basedir/../svgo/bin/svgo" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/svgo.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/svgo.cmd index 922d76453..e814da2b6 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/svgo.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/svgo.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\svgo\bin\svgo" %* +"%_prog%" "%dp0%\..\svgo\bin\svgo" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/svgo.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/svgo.ps1 index a249bd9bb..7bd0bcc2b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/svgo.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/svgo.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args - } else { - & "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args - } + & "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../svgo/bin/svgo" $args - } else { - & "node$exe" "$basedir/../svgo/bin/svgo" $args - } + & "node$exe" "$basedir/../svgo/bin/svgo" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs b/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs index 1d0ff1966..8aa695c41 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs +++ b/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@" + "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@" + ret=$? else - exec node "$basedir/../uglify-js/bin/uglifyjs" "$@" + node "$basedir/../uglify-js/bin/uglifyjs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.cmd index 136c78503..d23b40d2e 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uglify-js\bin\uglifyjs" %* +"%_prog%" "%dp0%\..\uglify-js\bin\uglifyjs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.ps1 index 5e0bc56db..e6749c733 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/uglifyjs.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } else { - & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } + & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } else { - & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } + & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/uuid b/admin/vue2/element-admin-v3/node_modules/.bin/uuid index 2cfa7bf7c..9af3844b4 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/uuid +++ b/admin/vue2/element-admin-v3/node_modules/.bin/uuid @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uuid/bin/uuid" "$@" + "$basedir/node" "$basedir/../uuid/bin/uuid" "$@" + ret=$? else - exec node "$basedir/../uuid/bin/uuid" "$@" + node "$basedir/../uuid/bin/uuid" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/uuid.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/uuid.cmd index 5b5c3dc06..d719f3bd7 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/uuid.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/uuid.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\bin\uuid" %* +"%_prog%" "%dp0%\..\uuid\bin\uuid" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/uuid.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/uuid.ps1 index 9e6c24b14..3fcb26427 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/uuid.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/uuid.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../uuid/bin/uuid" $args - } else { - & "$basedir/node$exe" "$basedir/../uuid/bin/uuid" $args - } + & "$basedir/node$exe" "$basedir/../uuid/bin/uuid" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../uuid/bin/uuid" $args - } else { - & "node$exe" "$basedir/../uuid/bin/uuid" $args - } + & "node$exe" "$basedir/../uuid/bin/uuid" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack b/admin/vue2/element-admin-v3/node_modules/.bin/webpack index e6748011c..37ea8b277 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack/bin/webpack.js" "$@" + "$basedir/node" "$basedir/../webpack/bin/webpack.js" "$@" + ret=$? else - exec node "$basedir/../webpack/bin/webpack.js" "$@" + node "$basedir/../webpack/bin/webpack.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer index 2e6a3ded2..8c62754fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" "$@" + "$basedir/node" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" "$@" + ret=$? else - exec node "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" "$@" + node "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.cmd index 0d09eeddd..d617b76a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack-bundle-analyzer\lib\bin\analyzer.js" %* +"%_prog%" "%dp0%\..\webpack-bundle-analyzer\lib\bin\analyzer.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.ps1 index f5902ee4c..9e5560cdf 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-bundle-analyzer.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" $args - } + & "$basedir/node$exe" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" $args - } else { - & "node$exe" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" $args - } + & "node$exe" "$basedir/../webpack-bundle-analyzer/lib/bin/analyzer.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli index d04406f68..687e49b13 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack-cli/bin/cli.js" "$@" + "$basedir/node" "$basedir/../webpack-cli/bin/cli.js" "$@" + ret=$? else - exec node "$basedir/../webpack-cli/bin/cli.js" "$@" + node "$basedir/../webpack-cli/bin/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.cmd index c469b5d44..ce10a1a4c 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack-cli\bin\cli.js" %* +"%_prog%" "%dp0%\..\webpack-cli\bin\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.ps1 index 9400edb0d..6d2684d94 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-cli.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../webpack-cli/bin/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } else { - & "node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } + & "node$exe" "$basedir/../webpack-cli/bin/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server index 36862cd0e..b16ea6949 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" "$@" + "$basedir/node" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" "$@" + ret=$? else - exec node "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" "$@" + node "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.cmd index 7b032ede0..7fa69b1bf 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack-dev-server\bin\webpack-dev-server.js" %* +"%_prog%" "%dp0%\..\webpack-dev-server\bin\webpack-dev-server.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.ps1 index 9e472e6a6..79c9aae5f 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack-dev-server.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } + & "$basedir/node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } else { - & "node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } + & "node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/webpack.cmd index 6fbf5ec56..f27c4af74 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack\bin\webpack.js" %* +"%_prog%" "%dp0%\..\webpack\bin\webpack.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/webpack.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/webpack.ps1 index 57bb52532..16d021d1b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/webpack.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/webpack.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack/bin/webpack.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack/bin/webpack.js" $args - } + & "$basedir/node$exe" "$basedir/../webpack/bin/webpack.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack/bin/webpack.js" $args - } else { - & "node$exe" "$basedir/../webpack/bin/webpack.js" $args - } + & "node$exe" "$basedir/../webpack/bin/webpack.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/which b/admin/vue2/element-admin-v3/node_modules/.bin/which index c51820f2f..12cde792b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/which +++ b/admin/vue2/element-admin-v3/node_modules/.bin/which @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../which/bin/which" "$@" + "$basedir/node" "$basedir/../which/bin/which" "$@" + ret=$? else - exec node "$basedir/../which/bin/which" "$@" + node "$basedir/../which/bin/which" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/which.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/which.cmd index 5f3213930..0088fc348 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/which.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/which.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\which" %* +"%_prog%" "%dp0%\..\which\bin\which" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/which.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/which.ps1 index 1437a3b6e..d0231706b 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/which.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/which.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../which/bin/which" $args - } else { - & "$basedir/node$exe" "$basedir/../which/bin/which" $args - } + & "$basedir/node$exe" "$basedir/../which/bin/which" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../which/bin/which" $args - } else { - & "node$exe" "$basedir/../which/bin/which" $args - } + & "node$exe" "$basedir/../which/bin/which" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/xlsx b/admin/vue2/element-admin-v3/node_modules/.bin/xlsx index de294fda5..133fc8111 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/xlsx +++ b/admin/vue2/element-admin-v3/node_modules/.bin/xlsx @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../xlsx/bin/xlsx.njs" "$@" + "$basedir/node" "$basedir/../xlsx/bin/xlsx.njs" "$@" + ret=$? else - exec node "$basedir/../xlsx/bin/xlsx.njs" "$@" + node "$basedir/../xlsx/bin/xlsx.njs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.cmd index 50000ed95..eb66bda49 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\xlsx\bin\xlsx.njs" %* +"%_prog%" "%dp0%\..\xlsx\bin\xlsx.njs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.ps1 index c9260e5b9..fb997d8ad 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/xlsx.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../xlsx/bin/xlsx.njs" $args - } else { - & "$basedir/node$exe" "$basedir/../xlsx/bin/xlsx.njs" $args - } + & "$basedir/node$exe" "$basedir/../xlsx/bin/xlsx.njs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../xlsx/bin/xlsx.njs" $args - } else { - & "node$exe" "$basedir/../xlsx/bin/xlsx.njs" $args - } + & "node$exe" "$basedir/../xlsx/bin/xlsx.njs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/xss b/admin/vue2/element-admin-v3/node_modules/.bin/xss index 79c8f47d5..e987e7907 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/xss +++ b/admin/vue2/element-admin-v3/node_modules/.bin/xss @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../xss/bin/xss" "$@" + "$basedir/node" "$basedir/../xss/bin/xss" "$@" + ret=$? else - exec node "$basedir/../xss/bin/xss" "$@" + node "$basedir/../xss/bin/xss" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/xss.cmd b/admin/vue2/element-admin-v3/node_modules/.bin/xss.cmd index efe97bc68..378d8b5bd 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/xss.cmd +++ b/admin/vue2/element-admin-v3/node_modules/.bin/xss.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\xss\bin\xss" %* +"%_prog%" "%dp0%\..\xss\bin\xss" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/.bin/xss.ps1 b/admin/vue2/element-admin-v3/node_modules/.bin/xss.ps1 index 63f827be8..287100084 100644 --- a/admin/vue2/element-admin-v3/node_modules/.bin/xss.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/.bin/xss.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../xss/bin/xss" $args - } else { - & "$basedir/node$exe" "$basedir/../xss/bin/xss" $args - } + & "$basedir/node$exe" "$basedir/../xss/bin/xss" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../xss/bin/xss" $args - } else { - & "node$exe" "$basedir/../xss/bin/xss" $args - } + & "node$exe" "$basedir/../xss/bin/xss" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/adjust/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/adjust/package.json index 00c8cee3f..a5cf0b2a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/adjust/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/adjust/package.json @@ -1,36 +1,48 @@ { - "name": "@antv/adjust", - "version": "0.2.3", - "description": "The adjust module for G2, F2.", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "esm", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/adjust@0.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "clean": "rimraf lib esm", - "lint": "lint-staged", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest", - "coverage": "jest --coverage", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lib": "run-p lib:*", - "build": "run-s clean lib", - "ci": "run-s build coverage", - "coveralls": "cat ./coverage/lcov.info | coveralls" + "_from": "@antv/adjust@0.2.3", + "_id": "@antv/adjust@0.2.3", + "_inBundle": false, + "_integrity": "sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=", + "_location": "/@antv/adjust", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/adjust@0.2.3", + "name": "@antv/adjust", + "escapedName": "@antv%2fadjust", + "scope": "@antv", + "rawSpec": "0.2.3", + "saveSpec": null, + "fetchSpec": "0.2.3" + }, + "_requiredBy": [ + "/@antv/g2" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.2.3.tgz?cache=0&sync_timestamp=1602724321845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fadjust%2Fdownload%2F%40antv%2Fadjust-0.2.3.tgz", + "_spec": "0.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/adjust/issues" }, "dependencies": { "@antv/util": "~2.0.0", "tslib": "^1.10.0" }, + "description": "The adjust module for G2, F2.", "devDependencies": { "@antv/scale": "~0.3.0", "@types/jest": "^24.0.18", + "coveralls": "^3.0.6", "husky": "^3.0.4", "jest": "^24.9.0", "jest-electron": "^0.1.7", @@ -42,25 +54,20 @@ "ts-jest": "^24.1.0", "tslint": "^5.18.0", "tslint-config-prettier": "^1.18.0", - "typescript": "^3.5.3", - "coveralls": "^3.0.6" + "typescript": "^3.5.3" }, + "files": [ + "lib", + "esm", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/antvis/adjust#readme", "husky": { "hooks": { "pre-commit": "run-s lint build test" } }, - "lint-staged": { - "*.{js,css,json,md}": [ - "prettier --write", - "git add" - ], - "*.{ts}": [ - "tslint -c tslint.json --fix", - "prettier --write", - "git add" - ] - }, "jest": { "runner": "jest-electron/runner", "testEnvironment": "jest-electron/environment", @@ -73,19 +80,44 @@ ], "testRegex": "/tests/.*-spec\\.ts?$" }, - "repository": { - "type": "git", - "url": "git@github.com:antvis/adjust.git" - }, - "bugs": { - "url": "https://github.com/antvis/adjust/issues" - }, "keywords": [ "antv", "adjust", "g2", "f2" ], - "author": "https://github.com/orgs/antvis/people", - "license": "MIT" + "license": "MIT", + "lint-staged": { + "*.{js,css,json,md}": [ + "prettier --write", + "git add" + ], + "*.{ts}": [ + "tslint -c tslint.json --fix", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/adjust", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/antvis/adjust.git" + }, + "scripts": { + "build": "run-s clean lib", + "ci": "run-s build coverage", + "clean": "rimraf lib esm", + "coverage": "jest --coverage", + "coveralls": "cat ./coverage/lcov.info | coveralls", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "lint-staged", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest" + }, + "types": "lib/index.d.ts", + "version": "0.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/attr/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/attr/package.json index 582acbc1b..90ea23ad0 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/attr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/attr/package.json @@ -1,68 +1,74 @@ { - "name": "@antv/attr", - "version": "0.3.2", - "description": "The Attribute module for G2, F2.", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "esm", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/attr@0.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "clean": "rimraf lib esm", - "lint": "lint-staged", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest --watch tests/unit", - "coverage": "jest --coverage", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lib": "run-p lib:*", - "build": "run-s clean lib", - "prepublishOnly": "run-s lint test build", - "ci": "run-s build test", - "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0" + "_from": "@antv/attr@0.3.2", + "_id": "@antv/attr@0.3.2", + "_inBundle": false, + "_integrity": "sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=", + "_location": "/@antv/attr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/attr@0.3.2", + "name": "@antv/attr", + "escapedName": "@antv%2fattr", + "scope": "@antv", + "rawSpec": "0.3.2", + "saveSpec": null, + "fetchSpec": "0.3.2" + }, + "_requiredBy": [ + "/@antv/g2" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.3.2.tgz", + "_spec": "0.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/attr/issues" }, "dependencies": { + "@antv/color-util": "^2.0.1", "@antv/util": "~2.0.0", - "tslib": "^1.10.0", - "@antv/color-util": "^2.0.1" + "tslib": "^1.10.0" }, + "description": "The Attribute module for G2, F2.", "devDependencies": { + "@antv/scale": "^0.3.0", "@types/jest": "^24.0.18", + "conventional-changelog-cli": "^2.0.28", + "husky": "^3.0.4", "jest": "^24.9.0", "jest-electron": "^0.1.7", "jest-extended": "^0.11.2", - "ts-jest": "^24.1.0", - "@antv/scale": "^0.3.0", - "husky": "^3.0.4", "lint-staged": "^9.2.3", "npm-run-all": "^4.1.5", "prettier": "^1.18.2", "rimraf": "^3.0.0", + "ts-jest": "^24.1.0", "tslint": "^5.18.0", "tslint-config-prettier": "^1.18.0", - "typescript": "^3.5.3", - "conventional-changelog-cli": "^2.0.28" + "typescript": "^3.5.3" }, + "files": [ + "lib", + "esm", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/antvis/attr#readme", "husky": { "hooks": { "pre-commit": "run-s lint build test" } }, - "lint-staged": { - "*.{js,css,json,md}": [ - "prettier --write", - "git add" - ], - "*.{ts}": [ - "tslint -c tslint.json --fix", - "prettier --write", - "git add" - ] - }, "jest": { "runner": "jest-electron/runner", "testEnvironment": "jest-electron/environment", @@ -75,19 +81,45 @@ ], "testRegex": "/tests/.*-spec\\.ts?$" }, - "repository": { - "type": "git", - "url": "git@github.com:antvis/attr.git" - }, - "bugs": { - "url": "https://github.com/antvis/attr/issues" - }, "keywords": [ "antv", "attr", "g2", "f2" ], - "author": "https://github.com/orgs/antvis/people", - "license": "MIT" + "license": "MIT", + "lint-staged": { + "*.{js,css,json,md}": [ + "prettier --write", + "git add" + ], + "*.{ts}": [ + "tslint -c tslint.json --fix", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/attr", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/antvis/attr.git" + }, + "scripts": { + "build": "run-s clean lib", + "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", + "ci": "run-s build test", + "clean": "rimraf lib esm", + "coverage": "jest --coverage", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "lint-staged", + "prepublishOnly": "run-s lint test build", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest --watch tests/unit" + }, + "types": "lib/index.d.ts", + "version": "0.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/color-util/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/color-util/node_modules/tslib/package.json index b04c3cdb7..0a8649292 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/color-util/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/color-util/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/color-util/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/color-util" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/color-util/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/color-util/package.json index d3f5d3c1a..ea5ca3c72 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/color-util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/color-util/package.json @@ -1,10 +1,50 @@ { - "name": "@antv/color-util", - "version": "2.0.6", + "_args": [ + [ + "@antv/color-util@2.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/color-util@2.0.6", + "_id": "@antv/color-util@2.0.6", + "_inBundle": false, + "_integrity": "sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=", + "_location": "/@antv/color-util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/color-util@2.0.6", + "name": "@antv/color-util", + "escapedName": "@antv%2fcolor-util", + "scope": "@antv", + "rawSpec": "2.0.6", + "saveSpec": null, + "fetchSpec": "2.0.6" + }, + "_requiredBy": [ + "/@antv/attr", + "/@antv/g2" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/color-util/download/@antv/color-util-2.0.6.tgz?cache=0&sync_timestamp=1608537003512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fcolor-util%2Fdownload%2F%40antv%2Fcolor-util-2.0.6.tgz", + "_spec": "2.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/util/issues" + }, + "dependencies": { + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + }, "description": "A common util collection for antv projects", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "module": "esm/index.js", + "devDependencies": { + "@antv/torch": "^1.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5" + }, "files": [ "src", "package.json", @@ -12,42 +52,34 @@ "lib", "README.md" ], + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/color-util", + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "clean": "rm -rf lib && rm -rf esm", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts __tests__/mocha.opts", "coverage-viewer": "torch-coverage", + "prepublishOnly": "npm-run-all --parallel test build", "test": "torch --renderer --compile --opts __tests__/mocha.opts", "test-live": "torch --compile --interactive --opts __tests__/mocha.opts", "tsc": "tsc --noEmit", - "typecheck": "tsc --noEmit", - "prepublishOnly": "npm-run-all --parallel test build" + "typecheck": "tsc --noEmit" }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/util/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5" - }, - "homepage": "https://github.com/antvis/util#readme", - "dependencies": { - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } + "types": "lib/index.d.ts", + "version": "2.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/component/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/component/package.json index d095ed495..06e316b59 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/component/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/component/package.json @@ -1,44 +1,51 @@ { - "name": "@antv/component", - "version": "0.6.3", - "description": "The component module for antv", - "author": "https://github.com/orgs/antvis/people", - "license": "MIT", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "esm", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/component@0.6.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git@github.com:antvis/component.git" + "_from": "@antv/component@0.6.3", + "_id": "@antv/component@0.6.3", + "_inBundle": false, + "_integrity": "sha1-O7TO2+mF6DG/s3ip5nKkbAQipac=", + "_location": "/@antv/component", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/component@0.6.3", + "name": "@antv/component", + "escapedName": "@antv%2fcomponent", + "scope": "@antv", + "rawSpec": "0.6.3", + "saveSpec": null, + "fetchSpec": "0.6.3" }, - "scripts": { - "build": "run-s clean lib", - "clean": "rimraf lib esm", - "lib": "run-p lib:*", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lint-stage": "lint-staged", - "lint": "tslint -c tslint.json src/**/* tests/**/*", - "lint-fix": "run-s lint-fix:*", - "lint-fix:prettier": "prettier --write 'src/**/*.ts'", - "lint-fix:tslint": "tslint -c tslint.json --fix 'src/**/*.ts' 'tests/**/*'", - "coverage": "jest --coverage", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest --watch tests", - "ci": "run-s build test coverage", - "prepublishOnly": "npm-run-all --parallel test build" + "_requiredBy": [ + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/@antv/component/download/@antv/component-0.6.3.tgz", + "_spec": "0.6.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" }, - "husky": { - "hooks": { - "pre-commit": "run-s lint-stage build test" - } + "bugs": { + "url": "https://github.com/antvis/component/issues" }, + "dependencies": { + "@antv/dom-util": "~2.0.1", + "@antv/g-base": "~0.4.0", + "@antv/matrix-util": "^3.1.0-beta.1", + "@antv/path-util": "~2.0.7", + "@antv/scale": "~0.3.1", + "@antv/util": "~2.0.0", + "fecha": "~4.2.0", + "tslib": "^1.10.0" + }, + "description": "The component module for antv", "devDependencies": { "@antv/color-util": "^2.0.3", "@antv/g-canvas": "^0.4.0", @@ -55,26 +62,17 @@ "tslint-config-prettier": "^1.18.0", "typescript": "^3.5.3" }, - "dependencies": { - "@antv/dom-util": "~2.0.1", - "@antv/g-base": "~0.4.0", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.7", - "@antv/scale": "~0.3.1", - "@antv/util": "~2.0.0", - "fecha": "~4.2.0", - "tslib": "^1.10.0" - }, - "lint-staged": { - "*.{js,css,json,md}": [ - "prettier --write", - "git add" - ], - "*.{ts}": [ - "tslint -c tslint.json --fix", - "prettier --write", - "git add" - ] + "files": [ + "lib", + "esm", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/antvis/component#readme", + "husky": { + "hooks": { + "pre-commit": "run-s lint-stage build test" + } }, "jest": { "runner": "jest-electron/runner", @@ -87,5 +85,43 @@ "!**/vendor/**" ], "testRegex": "/tests/.*spec\\.ts?$" - } + }, + "license": "MIT", + "lint-staged": { + "*.{js,css,json,md}": [ + "prettier --write", + "git add" + ], + "*.{ts}": [ + "tslint -c tslint.json --fix", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/component", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/antvis/component.git" + }, + "scripts": { + "build": "run-s clean lib", + "ci": "run-s build test coverage", + "clean": "rimraf lib esm", + "coverage": "jest --coverage", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "tslint -c tslint.json src/**/* tests/**/*", + "lint-fix": "run-s lint-fix:*", + "lint-fix:prettier": "prettier --write 'src/**/*.ts'", + "lint-fix:tslint": "tslint -c tslint.json --fix 'src/**/*.ts' 'tests/**/*'", + "lint-stage": "lint-staged", + "prepublishOnly": "npm-run-all --parallel test build", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest --watch tests" + }, + "types": "lib/index.d.ts", + "version": "0.6.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/coord/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/coord/node_modules/tslib/package.json index b04c3cdb7..501715720 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/coord/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/coord/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/coord/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/coord" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/coord/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/coord/package.json index d8ad0c0db..8f90e8de3 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/coord/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/coord/package.json @@ -1,39 +1,46 @@ { - "name": "@antv/coord", - "version": "0.3.1", - "description": "The coordinate module for G2", - "author": "https://github.com/orgs/antvis/people", - "license": "MIT", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "src", - "lib", - "esm" + "_args": [ + [ + "@antv/coord@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git@github.com:antvis/coord.git" + "_from": "@antv/coord@0.3.1", + "_id": "@antv/coord@0.3.1", + "_inBundle": false, + "_integrity": "sha1-mC4mHYoeBqGY61GOp6zCDth1oBk=", + "_location": "/@antv/coord", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/coord@0.3.1", + "name": "@antv/coord", + "escapedName": "@antv%2fcoord", + "scope": "@antv", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" }, - "scripts": { - "build": "run-s clean lib", - "clean": "rimraf lib esm", - "lib": "run-p lib:*", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lint": "prettier ./src ./__tests__ --check", - "fix": "prettier ./src ./__tests__ --write", - "lint-staged": "lint-staged", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest", - "ci": "run-s lint build test" + "_requiredBy": [ + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/@antv/coord/download/@antv/coord-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" }, - "husky": { - "hooks": { - "pre-commit": "run-s lint-staged test build" - } + "bugs": { + "url": "https://github.com/antvis/coord/issues" + }, + "dependencies": { + "@antv/matrix-util": "^3.1.0-beta.2", + "@antv/util": "~2.0.12", + "tslib": "^2.1.0" }, + "description": "The coordinate module for G2", "devDependencies": { "@types/jest": "^26.0.20", "husky": "^5.1.0", @@ -45,16 +52,16 @@ "ts-jest": "^26.5.1", "typescript": "^4.1.5" }, - "dependencies": { - "@antv/util": "~2.0.12", - "@antv/matrix-util": "^3.1.0-beta.2", - "tslib": "^2.1.0" - }, - "lint-staged": { - "*.{js,css,json,md,ts}": [ - "prettier --write", - "git add" - ] + "files": [ + "src", + "lib", + "esm" + ], + "homepage": "https://github.com/antvis/coord#readme", + "husky": { + "hooks": { + "pre-commit": "run-s lint-staged test build" + } }, "jest": { "preset": "ts-jest", @@ -65,5 +72,34 @@ "!**/vendor/**" ], "testRegex": "/__tests__/.*spec\\.ts?$" - } + }, + "license": "MIT", + "lint-staged": { + "*.{js,css,json,md,ts}": [ + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/coord", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/antvis/coord.git" + }, + "scripts": { + "build": "run-s clean lib", + "ci": "run-s lint build test", + "clean": "rimraf lib esm", + "fix": "prettier ./src ./__tests__ --write", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "prettier ./src ./__tests__ --check", + "lint-staged": "lint-staged", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest" + }, + "types": "lib/index.d.ts", + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/node_modules/tslib/package.json index b04c3cdb7..311ef1aed 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/dom-util/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/dom-util" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/package.json index 12e3976e1..486d8c9d0 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/dom-util/package.json @@ -1,10 +1,49 @@ { - "name": "@antv/dom-util", - "version": "2.0.3", + "_args": [ + [ + "@antv/dom-util@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/dom-util@2.0.3", + "_id": "@antv/dom-util@2.0.3", + "_inBundle": false, + "_integrity": "sha1-y9FYsciODopNhlhxpZabEZBVT/U=", + "_location": "/@antv/dom-util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/dom-util@2.0.3", + "name": "@antv/dom-util", + "escapedName": "@antv%2fdom-util", + "scope": "@antv", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/@antv/component", + "/@antv/g2plot" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz?cache=0&sync_timestamp=1608536799303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fdom-util%2Fdownload%2F%40antv%2Fdom-util-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/util/issues" + }, + "dependencies": { + "tslib": "^2.0.3" + }, "description": "A common util collection for antv projects", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "module": "esm/index.js", + "devDependencies": { + "@antv/torch": "^1.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5" + }, "files": [ "src", "package.json", @@ -12,10 +51,24 @@ "lib", "README.md" ], + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/dom-util", + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "clean": "rm -rf lib && rm -rf esm", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts __tests__/mocha.opts", @@ -25,27 +78,6 @@ "tsc": "tsc --noEmit", "typecheck": "tsc --noEmit" }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/util/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5" - }, - "homepage": "https://github.com/antvis/util#readme", - "dependencies": { - "tslib": "^2.0.3" - } + "types": "lib/index.d.ts", + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/event-emitter/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/event-emitter/package.json index aaa87a553..d497fd96e 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/event-emitter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/event-emitter/package.json @@ -1,32 +1,40 @@ { - "name": "@antv/event-emitter", - "version": "0.1.2", - "description": "event emitter for antvis.", - "license": "MIT", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "esm", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/event-emitter@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "publishConfig": { - "access": "public" + "_from": "@antv/event-emitter@0.1.2", + "_id": "@antv/event-emitter@0.1.2", + "_inBundle": false, + "_integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw=", + "_location": "/@antv/event-emitter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/event-emitter@0.1.2", + "name": "@antv/event-emitter", + "escapedName": "@antv%2fevent-emitter", + "scope": "@antv", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" }, - "repository": { - "type": "git", - "url": "git@github.com:antvis/event-emitter.git" - }, - "scripts": { - "build": "run-s clean lib", - "clean": "rimraf lib esm", - "lib": "run-p lib:*", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "test": "jest" + "_requiredBy": [ + "/@antv/g-base", + "/@antv/g-gesture", + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/antvis/event-emitter/issues" }, + "description": "event emitter for antvis.", "devDependencies": { "@types/jest": "^24.0.18", "jest": "^24.9.0", @@ -37,6 +45,13 @@ "ts-jest": "^24.1.0", "typescript": "^3.6.4" }, + "files": [ + "lib", + "esm", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/antvis/event-emitter#readme", "jest": { "preset": "ts-jest", "runner": "jest-electron/runner", @@ -47,5 +62,26 @@ "!**/node_modules/**" ], "testRegex": "/__tests__/.*spec\\.ts$" - } + }, + "license": "MIT", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/event-emitter", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/antvis/event-emitter.git" + }, + "scripts": { + "build": "run-s clean lib", + "clean": "rimraf lib esm", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "test": "jest" + }, + "types": "lib/index.d.ts", + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g-base/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g-base/package.json index 9250425bb..0c2a0644f 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g-base/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g-base/package.json @@ -1,56 +1,44 @@ { - "name": "@antv/g-base", - "version": "0.4.7", - "description": "A common util collection for antv projects", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "package.json", - "esm", - "lib", - "LICENSE", - "README.md" + "__npminstall_done": false, + "_args": [ + [ + "@antv/g-base@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "clean": "rm -rf esm lib", - "watch:cjs": "tsc-watch -p tsconfig.json --target ES5 --module commonjs --outDir lib --compiler typescript/bin/tsc", - "coverage": "npm run coverage-generator && npm run coverage-viewer", - "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts tests/mocha.opts", - "coverage-viewer": "torch-coverage", - "test": "torch --renderer --compile --opts tests/mocha.opts", - "test-live": "torch --compile --interactive --opts tests/mocha.opts", - "tsc": "tsc --noEmit", - "typecheck": "tsc --noEmit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" + "_from": "@antv/g-base@0.4.7", + "_id": "@antv/g-base@0.4.7", + "_inBundle": false, + "_integrity": "sha1-dpj8TIyzgfK3iaMPvrJrHojEgZY=", + "_location": "/@antv/g-base", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g-base@0.4.7", + "name": "@antv/g-base", + "escapedName": "@antv%2fg-base", + "scope": "@antv", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" }, - "keywords": [ - "util", - "antv", - "g" + "_requiredBy": [ + "/@antv/component", + "/@antv/g-canvas", + "/@antv/g-svg", + "/@antv/g2", + "/@antv/g2plot" ], - "publishConfig": { - "access": "public" + "_resolved": "https://registry.nlark.com/@antv/g-base/download/@antv/g-base-0.4.7.tgz?cache=0&sync_timestamp=1619321536772&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-base%2Fdownload%2F%40antv%2Fg-base-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" }, - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", "bugs": { "url": "https://github.com/antvis/util/issues" }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "gl-matrix": "^3.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5", - "tsc-watch": "^4.0.0" - }, - "homepage": "https://github.com/antvis/util#readme", "dependencies": { "@antv/event-emitter": "^0.1.1", "@antv/g-math": "^0.1.3", @@ -63,6 +51,53 @@ "d3-timer": "^1.0.9", "detect-browser": "^5.1.0" }, - "__npminstall_done": false, - "gitHead": "eb6a2503cb7bb8154697592b10680939d954a31a" + "description": "A common util collection for antv projects", + "devDependencies": { + "@antv/torch": "^1.0.0", + "gl-matrix": "^3.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5", + "tsc-watch": "^4.0.0" + }, + "files": [ + "package.json", + "esm", + "lib", + "LICENSE", + "README.md" + ], + "gitHead": "eb6a2503cb7bb8154697592b10680939d954a31a", + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g-base", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, + "scripts": { + "build": "npm run clean && run-p build:*", + "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "clean": "rm -rf esm lib", + "coverage": "npm run coverage-generator && npm run coverage-viewer", + "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts tests/mocha.opts", + "coverage-viewer": "torch-coverage", + "test": "torch --renderer --compile --opts tests/mocha.opts", + "test-live": "torch --compile --interactive --opts tests/mocha.opts", + "tsc": "tsc --noEmit", + "typecheck": "tsc --noEmit", + "watch:cjs": "tsc-watch -p tsconfig.json --target ES5 --module commonjs --outDir lib --compiler typescript/bin/tsc" + }, + "types": "lib/index.d.ts", + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g-canvas/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g-canvas/package.json index acc9dd97f..e3e568217 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g-canvas/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g-canvas/package.json @@ -1,11 +1,56 @@ { - "name": "@antv/g-canvas", - "version": "0.4.15", + "__npminstall_done": false, + "_args": [ + [ + "@antv/g-canvas@0.4.15", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/g-canvas@0.4.15", + "_id": "@antv/g-canvas@0.4.15", + "_inBundle": false, + "_integrity": "sha1-gawb4mnZYoAgL/76AqOfBgsajAc=", + "_location": "/@antv/g-canvas", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g-canvas@0.4.15", + "name": "@antv/g-canvas", + "escapedName": "@antv%2fg-canvas", + "scope": "@antv", + "rawSpec": "0.4.15", + "saveSpec": null, + "fetchSpec": "0.4.15" + }, + "_requiredBy": [ + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/@antv/g-canvas/download/@antv/g-canvas-0.4.15.tgz?cache=0&sync_timestamp=1623198345954&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-canvas%2Fdownload%2F%40antv%2Fg-canvas-0.4.15.tgz", + "_spec": "0.4.15", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/g/issues" + }, + "dependencies": { + "@antv/g-base": "^0.4.7", + "@antv/g-math": "^0.1.3", + "@antv/path-util": "~2.0.5", + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0" + }, "description": "A canvas library which providing 2d", - "main": "lib/index.js", - "module": "esm/index.js", - "unpkg": "dist/g.min.js", - "types": "lib/index.d.ts", + "devDependencies": { + "@antv/torch": "^1.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5", + "webpack": "^4.26.1", + "webpack-cli": "^3.1.2" + }, "files": [ "package.json", "esm", @@ -14,53 +59,40 @@ "LICENSE", "README.md" ], + "gitHead": "9092384bf6b7efd6ec71bbcdec1b801a0079c403", + "homepage": "https://github.com/antvis/g#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g-canvas", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/g.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:umd": "webpack --config webpack.config.js --mode production", "clean": "rm -rf esm lib dist", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts tests/mocha.opts", "coverage-viewer": "torch-coverage", + "dist": "webpack --config webpack.config.js --mode production", "test": "torch --renderer --compile --opts tests/mocha.opts", "test-live": "torch --compile --interactive --opts tests/mocha.opts", "tsc": "tsc --noEmit", - "typecheck": "tsc --noEmit", - "dist": "webpack --config webpack.config.js --mode production" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/g.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "publishConfig": { - "access": "public" - }, - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/g/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5", - "webpack": "^4.26.1", - "webpack-cli": "^3.1.2" - }, - "homepage": "https://github.com/antvis/g#readme", - "dependencies": { - "@antv/g-base": "^0.4.7", - "@antv/g-math": "^0.1.3", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" + "typecheck": "tsc --noEmit" }, - "__npminstall_done": false, - "gitHead": "9092384bf6b7efd6ec71bbcdec1b801a0079c403" + "types": "lib/index.d.ts", + "unpkg": "dist/g.min.js", + "version": "0.4.15" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g-gesture/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g-gesture/package.json index 616c51528..ea8bae3b6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g-gesture/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g-gesture/package.json @@ -1,39 +1,48 @@ { - "name": "@antv/g-gesture", - "version": "1.0.0", - "description": "Gesture module for @antv/g.", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "esm", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/g-gesture@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "clean": "rimraf lib esm", - "lint": "lint-staged", - "test": "torch --renderer --compile --recursive ./__tests__/", - "test-live": "torch --compile --interactive --watch --recursive ./__tests__/", - "coverage": "exit 0", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lib": "run-p lib:*", - "build": "run-s clean lib", - "ci": "run-s build test" + "_from": "@antv/g-gesture@1.0.0", + "_id": "@antv/g-gesture@1.0.0", + "_inBundle": false, + "_integrity": "sha1-RYaZG3RoUuCJC5Y9cou6N2HWzQU=", + "_location": "/@antv/g-gesture", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g-gesture@1.0.0", + "name": "@antv/g-gesture", + "escapedName": "@antv%2fg-gesture", + "scope": "@antv", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/@antv/g2plot" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/g-gesture/download/@antv/g-gesture-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/g-gesture/issues" }, "dependencies": { "@antv/event-emitter": "~0.1.2", "d3-ease": "^1.0.5" }, - "peerDependencies": { - "@antv/g-base": "~0.4.4" - }, + "description": "Gesture module for @antv/g.", "devDependencies": { - "@antv/torch": "~1.0.5", "@antv/g-base": "~0.4.4", "@antv/g-canvas": "~0.4.9", + "@antv/torch": "~1.0.5", "chai": "~4.1.2", "husky": "^3.0.4", "lint-staged": "^9.2.3", @@ -44,11 +53,25 @@ "tslint-config-prettier": "^1.18.0", "typescript": "^3.5.3" }, + "files": [ + "lib", + "esm", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/antvis/g-gesture#readme", "husky": { "hooks": { "pre-commit": "run-s lint build test" } }, + "keywords": [ + "antv", + "g-gesture", + "g2", + "f2" + ], + "license": "MIT", "lint-staged": { "*.{js,css,json,md}": [ "prettier --write", @@ -60,19 +83,28 @@ "git add" ] }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g-gesture", + "peerDependencies": { + "@antv/g-base": "~0.4.4" + }, "repository": { "type": "git", - "url": "git@github.com:antvis/g-gesture.git" + "url": "git+ssh://git@github.com/antvis/g-gesture.git" }, - "bugs": { - "url": "https://github.com/antvis/g-gesture/issues" + "scripts": { + "build": "run-s clean lib", + "ci": "run-s build test", + "clean": "rimraf lib esm", + "coverage": "exit 0", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "lint-staged", + "test": "torch --renderer --compile --recursive ./__tests__/", + "test-live": "torch --compile --interactive --watch --recursive ./__tests__/" }, - "keywords": [ - "antv", - "g-gesture", - "g2", - "f2" - ], - "author": "https://github.com/orgs/antvis/people", - "license": "MIT" + "types": "lib/index.d.ts", + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g-math/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g-math/package.json index 9973d8bd1..4d419bc8a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g-math/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g-math/package.json @@ -1,10 +1,53 @@ { - "name": "@antv/g-math", - "version": "0.1.7", + "_args": [ + [ + "@antv/g-math@0.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/g-math@0.1.7", + "_id": "@antv/g-math@0.1.7", + "_inBundle": false, + "_integrity": "sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=", + "_location": "/@antv/g-math", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g-math@0.1.7", + "name": "@antv/g-math", + "escapedName": "@antv%2fg-math", + "scope": "@antv", + "rawSpec": "0.1.7", + "saveSpec": null, + "fetchSpec": "0.1.7" + }, + "_requiredBy": [ + "/@antv/g-base", + "/@antv/g-canvas", + "/@antv/g-svg" + ], + "_resolved": "https://registry.nlark.com/@antv/g-math/download/@antv/g-math-0.1.7.tgz?cache=0&sync_timestamp=1623198354826&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-math%2Fdownload%2F%40antv%2Fg-math-0.1.7.tgz", + "_spec": "0.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/util/issues" + }, + "dependencies": { + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0" + }, "description": "geometry math", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", + "devDependencies": { + "@antv/torch": "^1.0.0", + "electron": "4.1.5", + "less": "^3.9.0", + "npm-run-all": "^4.1.5", + "tsc-watch": "^4.0.0" + }, "files": [ "src", "package.json", @@ -13,47 +56,37 @@ "LICENSE", "README.md" ], + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g-math", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "clean": "rm -rf esm lib", - "watch:cjs": "tsc-watch -p tsconfig.json --target ES5 --module commonjs --outDir lib --compiler typescript/bin/tsc", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts tests/mocha.opts", "coverage-viewer": "torch-coverage", "test": "torch --renderer --compile --opts tests/mocha.opts", "test-live": "torch --compile --interactive --opts tests/mocha.opts", "tsc": "tsc --noEmit", - "typecheck": "tsc --noEmit" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "publishConfig": { - "access": "public" - }, - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/util/issues" + "typecheck": "tsc --noEmit", + "watch:cjs": "tsc-watch -p tsconfig.json --target ES5 --module commonjs --outDir lib --compiler typescript/bin/tsc" }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "electron": "4.1.5", - "less": "^3.9.0", - "npm-run-all": "^4.1.5", - "tsc-watch": "^4.0.0" - }, - "homepage": "https://github.com/antvis/util#readme", - "dependencies": { - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" - } + "types": "lib/index.d.ts", + "version": "0.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/node_modules/detect-browser/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/node_modules/detect-browser/package.json index 9e5906816..e34c36542 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/node_modules/detect-browser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/node_modules/detect-browser/package.json @@ -1,39 +1,40 @@ { - "name": "detect-browser", - "version": "4.8.0", - "description": "Unpack a browser type and version from the useragent string", - "main": "index.js", - "types": "index.d.ts", - "scripts": { - "pretest": "tsc", - "test": "node test", - "lint": "tslint -c tslint.json src/**", - "compile": "tsc", - "compile-and-size": "yarn tsc && cat index.js | gzip | wc -c", - "prepare": "npm run test && npm run lint", - "patch-release": "npm version patch && npm publish && npm run postpublish", - "minor-release": "npm version minor && npm publish && npm run postpublish", - "major-release": "npm version major && npm publish && npm run postpublish", - "postpublish": "git push origin master --follow-tags", - "autoformat": "prettier --write src/** test/**", - "gendocs": "embellish README.md" - }, - "stability": "stable", - "repository": { - "type": "git", - "url": "https://github.com/DamonOehlman/detect-browser.git" + "_args": [ + [ + "detect-browser@4.8.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "detect-browser@4.8.0", + "_id": "detect-browser@4.8.0", + "_inBundle": false, + "_integrity": "sha1-HXO9iMF76GaQGVDOCqrh7QYJAsY=", + "_location": "/@antv/g-svg/detect-browser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "detect-browser@4.8.0", + "name": "detect-browser", + "escapedName": "detect-browser", + "rawSpec": "4.8.0", + "saveSpec": null, + "fetchSpec": "4.8.0" }, - "keywords": [ - "browser", - "detect", - "useragent" + "_requiredBy": [ + "/@antv/g-svg" ], - "author": "Damon Oehlman ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-4.8.0.tgz?cache=0&sync_timestamp=1602160787180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-4.8.0.tgz", + "_spec": "4.8.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Damon Oehlman", + "email": "damon.oehlman@gmail.com" + }, "bugs": { "url": "https://github.com/DamonOehlman/detect-browser/issues" }, - "homepage": "https://github.com/DamonOehlman/detect-browser", + "description": "Unpack a browser type and version from the useragent string", "devDependencies": { "@types/node": "^12.7.4", "embellish-readme": "^1.5.1", @@ -42,5 +43,35 @@ "tape": "^4.11.0", "tslint": "^5.11.0", "typescript": "^3.6.2" - } + }, + "homepage": "https://github.com/DamonOehlman/detect-browser", + "keywords": [ + "browser", + "detect", + "useragent" + ], + "license": "MIT", + "main": "index.js", + "name": "detect-browser", + "repository": { + "type": "git", + "url": "git+https://github.com/DamonOehlman/detect-browser.git" + }, + "scripts": { + "autoformat": "prettier --write src/** test/**", + "compile": "tsc", + "compile-and-size": "yarn tsc && cat index.js | gzip | wc -c", + "gendocs": "embellish README.md", + "lint": "tslint -c tslint.json src/**", + "major-release": "npm version major && npm publish && npm run postpublish", + "minor-release": "npm version minor && npm publish && npm run postpublish", + "patch-release": "npm version patch && npm publish && npm run postpublish", + "postpublish": "git push origin master --follow-tags", + "prepare": "npm run test && npm run lint", + "pretest": "tsc", + "test": "node test" + }, + "stability": "stable", + "types": "index.d.ts", + "version": "4.8.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/package.json index 2ed00f3fb..7b9ec0ef9 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g-svg/package.json @@ -1,11 +1,55 @@ { - "name": "@antv/g-svg", - "version": "0.4.7", + "__npminstall_done": false, + "_args": [ + [ + "@antv/g-svg@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/g-svg@0.4.7", + "_id": "@antv/g-svg@0.4.7", + "_inBundle": false, + "_integrity": "sha1-DWXh2zTm3+YJqts+3fR0jbAvCwE=", + "_location": "/@antv/g-svg", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g-svg@0.4.7", + "name": "@antv/g-svg", + "escapedName": "@antv%2fg-svg", + "scope": "@antv", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" + }, + "_requiredBy": [ + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/@antv/g-svg/download/@antv/g-svg-0.4.7.tgz?cache=0&sync_timestamp=1623198346639&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-svg%2Fdownload%2F%40antv%2Fg-svg-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/g/issues" + }, + "dependencies": { + "@antv/g-base": "^0.4.7", + "@antv/g-math": "^0.1.3", + "@antv/util": "~2.0.0", + "detect-browser": "^4.6.0" + }, "description": "A canvas library which providing 2d", - "main": "lib/index.js", - "module": "esm/index.js", - "unpkg": "dist/g.min.js", - "types": "lib/index.d.ts", + "devDependencies": { + "@antv/torch": "^1.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5", + "webpack": "^4.39.3", + "webpack-cli": "^3.3.7" + }, "files": [ "package.json", "esm", @@ -14,10 +58,28 @@ "LICENSE", "README.md" ], + "gitHead": "eb6a2503cb7bb8154697592b10680939d954a31a", + "homepage": "https://github.com/antvis/g#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g-svg", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/g.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:umd": "webpack --config webpack.config.js --mode production", "clean": "rm -rf esm lib dist", "coverage": "npm run coverage-generator && npm run coverage-viewer", @@ -28,37 +90,7 @@ "tsc": "tsc --noEmit", "typecheck": "tsc --noEmit" }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/g.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "publishConfig": { - "access": "public" - }, - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/g/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5", - "webpack": "^4.39.3", - "webpack-cli": "^3.3.7" - }, - "homepage": "https://github.com/antvis/g#readme", - "dependencies": { - "@antv/g-base": "^0.4.7", - "@antv/g-math": "^0.1.3", - "@antv/util": "~2.0.0", - "detect-browser": "^4.6.0" - }, - "__npminstall_done": false, - "gitHead": "eb6a2503cb7bb8154697592b10680939d954a31a" + "types": "lib/index.d.ts", + "unpkg": "dist/g.min.js", + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g2/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g2/node_modules/tslib/package.json index b04c3cdb7..6767fd784 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g2/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g2/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/g2/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/g2" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g2/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g2/package.json index e0bd464fb..02eeaa189 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g2/package.json @@ -1,42 +1,43 @@ { - "name": "@antv/g2", - "version": "4.0.15", - "description": "the Grammar of Graphics in Javascript", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "unpkg": "dist/g2.min.js", - "files": [ - "lib", - "esm", - "dist" + "_args": [ + [ + "@antv/g2@4.0.15", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "start": "npm run site:develop", - "site:develop": "gatsby develop --open -H 0.0.0.0", - "site:build": "npm run site:clean && gatsby build --prefix-paths", - "site:clean": "gatsby clean", - "site:deploy": "npm run site:build && gh-pages -d public", - "clean": "rimraf lib esm dist", - "fix": "tslint -c tslint.json ./src/**/*.ts ./tests/**/*.ts --fix && prettier --write ./src ./tests", - "lint": "run-p lint:*", - "lint:tslint": "tslint -c tslint.json 'src/**/*.ts'", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest --watch tests/unit", - "coverage": "jest --coverage", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lib": "run-p lib:*", - "build": "run-s clean lib", - "dist": "webpack --config webpack.config.js --mode production", - "ci": "run-s build coverage", - "prepublishOnly": "npm-run-all --parallel lint test build dist", - "changelog": "generate-changelog", - "analyz": "webpack --profile --json > stats.json && webpack-bundle-analyzer ./stats.json" + "_from": "@antv/g2@4.0.15", + "_id": "@antv/g2@4.0.15", + "_inBundle": false, + "_integrity": "sha1-aO7uW+/Z8uZU92VfjT0pNc3VJrg=", + "_location": "/@antv/g2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g2@4.0.15", + "name": "@antv/g2", + "escapedName": "@antv%2fg2", + "scope": "@antv", + "rawSpec": "4.0.15", + "saveSpec": null, + "fetchSpec": "4.0.15" + }, + "_requiredBy": [ + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/@antv/g2/download/@antv/g2-4.0.15.tgz", + "_spec": "4.0.15", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/g2/issues" }, "dependencies": { "@antv/adjust": "^0.2.1", "@antv/attr": "^0.3.1", + "@antv/color-util": "^2.0.2", "@antv/component": "^0.6.0", "@antv/coord": "^0.3.0", "@antv/event-emitter": "~0.1.0", @@ -47,9 +48,9 @@ "@antv/path-util": "^2.0.3", "@antv/scale": "^0.3.1", "@antv/util": "~2.0.5", - "tslib": "^2.0.0", - "@antv/color-util": "^2.0.2" + "tslib": "^2.0.0" }, + "description": "the Grammar of Graphics in Javascript", "devDependencies": { "@antv/data-set": "^0.11.2", "@antv/gatsby-theme-antv": "^0.11.1", @@ -81,23 +82,18 @@ "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^3.3.10" }, + "files": [ + "lib", + "esm", + "dist" + ], + "homepage": "https://g2.antv.vision", "husky": { "hooks": { "pre-commit": "lint-staged && run-s lint test", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }, - "lint-staged": { - "*.{js,css,json,md}": [ - "prettier --write", - "git add" - ], - "*.{ts}": [ - "tslint -c tslint.json --fix", - "prettier --write", - "git add" - ] - }, "jest": { "runner": "jest-electron/runner", "testEnvironment": "jest-electron/environment", @@ -115,14 +111,6 @@ "json" ] }, - "homepage": "https://g2.antv.vision", - "repository": { - "type": "git", - "url": "https://github.com/antvis/g2" - }, - "bugs": { - "url": "https://github.com/antvis/g2/issues" - }, "keywords": [ "antv", "g2", @@ -132,6 +120,49 @@ "graphics", "interaction" ], - "author": "https://github.com/orgs/antvis/people", - "license": "MIT" + "license": "MIT", + "lint-staged": { + "*.{js,css,json,md}": [ + "prettier --write", + "git add" + ], + "*.{ts}": [ + "tslint -c tslint.json --fix", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g2", + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/g2.git" + }, + "scripts": { + "analyz": "webpack --profile --json > stats.json && webpack-bundle-analyzer ./stats.json", + "build": "run-s clean lib", + "changelog": "generate-changelog", + "ci": "run-s build coverage", + "clean": "rimraf lib esm dist", + "coverage": "jest --coverage", + "dist": "webpack --config webpack.config.js --mode production", + "fix": "tslint -c tslint.json ./src/**/*.ts ./tests/**/*.ts --fix && prettier --write ./src ./tests", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "run-p lint:*", + "lint:tslint": "tslint -c tslint.json 'src/**/*.ts'", + "prepublishOnly": "npm-run-all --parallel lint test build dist", + "site:build": "npm run site:clean && gatsby build --prefix-paths", + "site:clean": "gatsby clean", + "site:deploy": "npm run site:build && gh-pages -d public", + "site:develop": "gatsby develop --open -H 0.0.0.0", + "start": "npm run site:develop", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest --watch tests/unit" + }, + "types": "lib/index.d.ts", + "unpkg": "dist/g2.min.js", + "version": "4.0.15" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/g2plot/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/g2plot/package.json index 2a084fcab..abe0e503b 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/g2plot/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/g2plot/package.json @@ -1,62 +1,38 @@ { - "name": "@antv/g2plot", - "version": "1.1.28", - "description": "An interactive and responsive charting library", - "keywords": [ - "chart", - "plot", - "antv" - ], - "author": "https://github.com/orgs/antvis/people", - "main": "lib/index.js", - "unpkg": "dist/g2plot.js", - "umd:main": "dist/g2plot.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "esm", - "dist", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/g2plot@1.1.28", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://g2plot.antv.vision", - "repository": { - "type": "git", - "url": "https://github.com/antvis/g2plot" + "_from": "@antv/g2plot@1.1.28", + "_id": "@antv/g2plot@1.1.28", + "_inBundle": false, + "_integrity": "sha1-bV3xRapJoX4PDtxVBSvgVL6mMhY=", + "_location": "/@antv/g2plot", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/g2plot@1.1.28", + "name": "@antv/g2plot", + "escapedName": "@antv%2fg2plot", + "scope": "@antv", + "rawSpec": "1.1.28", + "saveSpec": null, + "fetchSpec": "1.1.28" }, - "scripts": { - "start": "npm run site:develop", - "site:develop": "gatsby develop --open -H 0.0.0.0", - "site:build": "npm run site:clean && gatsby build --prefix-paths", - "site:clean": "gatsby clean", - "site:deploy": "npm run site:build && gh-pages -d public", - "build": "run-s clean lib dist", - "clean": "rimraf lib esm dist", - "lib": "run-p lib:*", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "dist": "webpack --config webpack.config.js --mode production", - "lint": "eslint --ext .ts --quiet ./src ./__tests__ ./demos", - "lint-fix": "run-s lint-fix:*", - "lint-fix:eslint": "eslint --ext .ts --fix ./src ./__tests__ ./demos", - "prettier": "prettier --write '**/*.{ts,js,css,json}'", - "lint-fix:examples": "prettier --write 'examples/**/*.{js,md}'", - "lint-staged": "lint-staged", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest --watch ./__tests__", - "coverage": "jest --coverage", - "ci": "run-s lint build coverage", - "compare-live": "node scripts/compare.js", - "demos-web": "webpack-dev-server --config webpack-dev.config.js --port 2046 --openPage demos/index.html", - "changelog": "conventional-changelog -i CHANGELOG.md -a -s", - "analyze": "webpack --profile --json > dist/stats.json && webpack-bundle-analyzer ./dist/stats.json" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/@antv/g2plot/download/@antv/g2plot-1.1.28.tgz?cache=0&sync_timestamp=1623254069086&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg2plot%2Fdownload%2F%40antv%2Fg2plot-1.1.28.tgz", + "_spec": "1.1.28", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" }, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" - } + "bugs": { + "url": "https://github.com/antvis/g2plot/issues" }, "dependencies": { "@antv/component": "~0.6.1", @@ -76,6 +52,7 @@ "tslib": "^1.11.1", "warning": "^4.0.3" }, + "description": "An interactive and responsive charting library", "devDependencies": { "@antv/gatsby-theme-antv": "^0.10.63", "@babel/core": "^7.7.7", @@ -115,6 +92,20 @@ "webpack-cli": "^3.3.7", "webpack-dev-server": "^3.9.0" }, + "files": [ + "lib", + "esm", + "dist", + "README.md", + "LICENSE" + ], + "homepage": "https://g2plot.antv.vision", + "husky": { + "hooks": { + "pre-commit": "lint-staged", + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } + }, "jest": { "globals": { "ts-jest": { @@ -138,6 +129,12 @@ ], "testRegex": "/__tests__/.*-spec\\.ts?$" }, + "keywords": [ + "chart", + "plot", + "antv" + ], + "license": "MIT", "lint-staged": { "*.{js,css,json}": [ "prettier --write" @@ -147,5 +144,42 @@ "prettier --write" ] }, - "license": "MIT" + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/g2plot", + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/g2plot.git" + }, + "scripts": { + "analyze": "webpack --profile --json > dist/stats.json && webpack-bundle-analyzer ./dist/stats.json", + "build": "run-s clean lib dist", + "changelog": "conventional-changelog -i CHANGELOG.md -a -s", + "ci": "run-s lint build coverage", + "clean": "rimraf lib esm dist", + "compare-live": "node scripts/compare.js", + "coverage": "jest --coverage", + "demos-web": "webpack-dev-server --config webpack-dev.config.js --port 2046 --openPage demos/index.html", + "dist": "webpack --config webpack.config.js --mode production", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "eslint --ext .ts --quiet ./src ./__tests__ ./demos", + "lint-fix": "run-s lint-fix:*", + "lint-fix:eslint": "eslint --ext .ts --fix ./src ./__tests__ ./demos", + "lint-fix:examples": "prettier --write 'examples/**/*.{js,md}'", + "lint-staged": "lint-staged", + "prettier": "prettier --write '**/*.{ts,js,css,json}'", + "site:build": "npm run site:clean && gatsby build --prefix-paths", + "site:clean": "gatsby clean", + "site:deploy": "npm run site:build && gh-pages -d public", + "site:develop": "gatsby develop --open -H 0.0.0.0", + "start": "npm run site:develop", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest --watch ./__tests__" + }, + "types": "lib/index.d.ts", + "umd:main": "dist/g2plot.js", + "unpkg": "dist/g2plot.js", + "version": "1.1.28" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/matrix-util/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/matrix-util/package.json index 1a049c687..d898d91cc 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/matrix-util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/matrix-util/package.json @@ -1,20 +1,78 @@ { - "name": "@antv/matrix-util", - "version": "3.1.0-beta.2", + "_args": [ + [ + "@antv/matrix-util@3.1.0-beta.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/matrix-util@3.1.0-beta.2", + "_id": "@antv/matrix-util@3.1.0-beta.2", + "_inBundle": false, + "_integrity": "sha1-tK+vtw299Sr/yjCNNUbIoJD9I8o=", + "_location": "/@antv/matrix-util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/matrix-util@3.1.0-beta.2", + "name": "@antv/matrix-util", + "escapedName": "@antv%2fmatrix-util", + "scope": "@antv", + "rawSpec": "3.1.0-beta.2", + "saveSpec": null, + "fetchSpec": "3.1.0-beta.2" + }, + "_requiredBy": [ + "/@antv/component", + "/@antv/coord", + "/@antv/g-base", + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.2.tgz?cache=0&sync_timestamp=1608537003006&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fmatrix-util%2Fdownload%2F%40antv%2Fmatrix-util-3.1.0-beta.2.tgz", + "_spec": "3.1.0-beta.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/util/issues" + }, + "dependencies": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.3.0", + "tslib": "^1.10.0" + }, "description": "A common util collection for antv projects", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "module": "esm/index.js", + "devDependencies": { + "@antv/torch": "^1.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5" + }, "files": [ "package.json", "esm", "lib", "README.md" ], + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/matrix-util", + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "clean": "rm -rf lib && rm -rf esm", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts __tests__/mocha.opts", @@ -24,29 +82,6 @@ "tsc": "tsc --noEmit", "typecheck": "tsc --noEmit" }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/util/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5" - }, - "homepage": "https://github.com/antvis/util#readme", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^1.10.0" - } + "types": "lib/index.d.ts", + "version": "3.1.0-beta.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/path-util/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/path-util/node_modules/tslib/package.json index b04c3cdb7..98bed57e8 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/path-util/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/path-util/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/path-util/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/path-util" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/path-util/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/path-util/package.json index 2ff20fec1..7ac3df9fb 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/path-util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/path-util/package.json @@ -1,10 +1,52 @@ { - "name": "@antv/path-util", - "version": "2.0.9", + "_args": [ + [ + "@antv/path-util@2.0.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/path-util@2.0.9", + "_id": "@antv/path-util@2.0.9", + "_inBundle": false, + "_integrity": "sha1-l25KPPtiGXZ6YC0peyBciNZteyw=", + "_location": "/@antv/path-util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/path-util@2.0.9", + "name": "@antv/path-util", + "escapedName": "@antv%2fpath-util", + "scope": "@antv", + "rawSpec": "2.0.9", + "saveSpec": null, + "fetchSpec": "2.0.9" + }, + "_requiredBy": [ + "/@antv/component", + "/@antv/g-base", + "/@antv/g-canvas", + "/@antv/g2" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/path-util/download/@antv/path-util-2.0.9.tgz?cache=0&sync_timestamp=1608537003183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fpath-util%2Fdownload%2F%40antv%2Fpath-util-2.0.9.tgz", + "_spec": "2.0.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/util/issues" + }, + "dependencies": { + "@antv/util": "^2.0.9", + "tslib": "^2.0.3" + }, "description": "A common util collection for antv projects", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "module": "esm/index.js", + "devDependencies": { + "@antv/torch": "^1.0.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5" + }, "files": [ "src", "package.json", @@ -12,10 +54,24 @@ "lib", "README.md" ], + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/path-util", + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "clean": "rm -rf lib && rm -rf esm", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts __tests__/mocha.opts", @@ -25,28 +81,6 @@ "tsc": "tsc --noEmit", "typecheck": "tsc --noEmit" }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/util/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5" - }, - "homepage": "https://github.com/antvis/util#readme", - "dependencies": { - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } + "types": "lib/index.d.ts", + "version": "2.0.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/scale/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/scale/node_modules/tslib/package.json index b04c3cdb7..c5d04ba92 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/scale/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/scale/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/scale/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/scale" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/scale/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/scale/package.json index f2b8cf44e..40928d017 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/scale/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/scale/package.json @@ -1,48 +1,50 @@ { - "name": "@antv/scale", - "version": "0.3.10", - "description": "The scale module for G2", - "author": "https://github.com/orgs/antvis/people", - "license": "MIT", - "main": "lib/index.js", - "module": "esm/index.js", - "types": "lib/index.d.ts", - "files": [ - "src", - "lib", - "esm", - "README.md", - "LICENSE" + "_args": [ + [ + "@antv/scale@0.3.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git@github.com:antvis/scale.git" + "_from": "@antv/scale@0.3.10", + "_id": "@antv/scale@0.3.10", + "_inBundle": false, + "_integrity": "sha1-nxNmneHpqaBy0nDVZ3vLafW6XF8=", + "_location": "/@antv/scale", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/scale@0.3.10", + "name": "@antv/scale", + "escapedName": "@antv%2fscale", + "scope": "@antv", + "rawSpec": "0.3.10", + "saveSpec": null, + "fetchSpec": "0.3.10" }, - "scripts": { - "build": "run-s clean lib", - "clean": "rimraf lib esm", - "lib": "run-p lib:*", - "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", - "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", - "lint-stage": "lint-staged", - "lint": "tslint -c tslint.json src/**/* tests/**/*.*", - "lint-fix": "run-s lint-fix:*", - "lint-fix:prettier": "prettier --write 'src/**/*.ts'", - "lint-fix:tslint": "tslint -c tslint.json --fix 'src/**/*.ts' 'tests/**/*'", - "coverage": "jest --coverage", - "test": "jest", - "test-live": "DEBUG_MODE=1 jest --watch", - "ci": "run-s lint build coverage", - "prepublishOnly": "npm-run-all --parallel lint test clean lib dist", - "dist": "webpack --config webpack.config.js --mode production" + "_requiredBy": [ + "/@antv/component", + "/@antv/g2", + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/@antv/scale/download/@antv/scale-0.3.10.tgz?cache=0&sync_timestamp=1620812326068&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fscale%2Fdownload%2F%40antv%2Fscale-0.3.10.tgz", + "_spec": "0.3.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" }, - "husky": { - "hooks": { - "pre-commit": "run-s lint-stage build test" - } + "bugs": { + "url": "https://github.com/antvis/scale/issues" }, + "dependencies": { + "@antv/util": "~2.0.3", + "fecha": "~4.2.0", + "tslib": "^2.0.0" + }, + "description": "The scale module for G2", "devDependencies": { "@types/jest": "^25.2.1", + "babel-loader": "^8.0.4", "husky": "^4.2.5", "jest": "^24.9.0", "jest-electron": "^0.1.6", @@ -51,29 +53,25 @@ "prettier": "^2.0.5", "rimraf": "^3.0.0", "ts-jest": "^24.1.0", - "tslint": "^6.1.2", "ts-loader": "^7.0.4", - "babel-loader": "^8.0.4", + "tslint": "^6.1.2", "tslint-config-prettier": "^1.18.0", "typescript": "^3.5.3", "webpack": "^4.26.1", "webpack-cli": "^3.1.2" }, - "dependencies": { - "@antv/util": "~2.0.3", - "fecha": "~4.2.0", - "tslib": "^2.0.0" - }, - "lint-staged": { - "*.{js,css,json,md}": [ - "prettier --write", - "git add" - ], - "*.{ts}": [ - "tslint -c tslint.json --fix", - "prettier --write", - "git add" - ] + "files": [ + "src", + "lib", + "esm", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/antvis/scale#readme", + "husky": { + "hooks": { + "pre-commit": "run-s lint-stage build test" + } }, "jest": { "runner": "jest-electron/runner", @@ -86,5 +84,44 @@ "!**/vendor/**" ], "testRegex": "/tests/.*spec\\.ts?$" - } + }, + "license": "MIT", + "lint-staged": { + "*.{js,css,json,md}": [ + "prettier --write", + "git add" + ], + "*.{ts}": [ + "tslint -c tslint.json --fix", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/scale", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/antvis/scale.git" + }, + "scripts": { + "build": "run-s clean lib", + "ci": "run-s lint build coverage", + "clean": "rimraf lib esm", + "coverage": "jest --coverage", + "dist": "webpack --config webpack.config.js --mode production", + "lib": "run-p lib:*", + "lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", + "lint": "tslint -c tslint.json src/**/* tests/**/*.*", + "lint-fix": "run-s lint-fix:*", + "lint-fix:prettier": "prettier --write 'src/**/*.ts'", + "lint-fix:tslint": "tslint -c tslint.json --fix 'src/**/*.ts' 'tests/**/*'", + "lint-stage": "lint-staged", + "prepublishOnly": "npm-run-all --parallel lint test clean lib dist", + "test": "jest", + "test-live": "DEBUG_MODE=1 jest --watch" + }, + "types": "lib/index.d.ts", + "version": "0.3.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/util/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/util/node_modules/tslib/package.json index b04c3cdb7..d8fdde1b4 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/util/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/util/node_modules/tslib/package.json @@ -1,37 +1,67 @@ { + "_args": [ + [ + "tslib@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@2.2.0", + "_id": "tslib@2.2.0", + "_inBundle": false, + "_integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=", + "_location": "/@antv/util/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@2.2.0", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "2.2.0", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@antv/util" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@antv/util/package.json b/admin/vue2/element-admin-v3/node_modules/@antv/util/package.json index 31b05183e..dec251de6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@antv/util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@antv/util/package.json @@ -1,10 +1,62 @@ { - "name": "@antv/util", - "version": "2.0.13", + "_args": [ + [ + "@antv/util@2.0.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@antv/util@2.0.13", + "_id": "@antv/util@2.0.13", + "_inBundle": false, + "_integrity": "sha1-fC5wHYlScRbsF89aQAQTxcavy00=", + "_location": "/@antv/util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@antv/util@2.0.13", + "name": "@antv/util", + "escapedName": "@antv%2futil", + "scope": "@antv", + "rawSpec": "2.0.13", + "saveSpec": null, + "fetchSpec": "2.0.13" + }, + "_requiredBy": [ + "/@antv/adjust", + "/@antv/attr", + "/@antv/color-util", + "/@antv/component", + "/@antv/coord", + "/@antv/g-base", + "/@antv/g-canvas", + "/@antv/g-math", + "/@antv/g-svg", + "/@antv/g2", + "/@antv/g2plot", + "/@antv/matrix-util", + "/@antv/path-util", + "/@antv/scale" + ], + "_resolved": "https://registry.npm.taobao.org/@antv/util/download/@antv/util-2.0.13.tgz?cache=0&sync_timestamp=1614258260915&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Futil%2Fdownload%2F%40antv%2Futil-2.0.13.tgz", + "_spec": "2.0.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "https://github.com/orgs/antvis/people" + }, + "bugs": { + "url": "https://github.com/antvis/util/issues" + }, + "dependencies": { + "tslib": "^2.0.3" + }, "description": "A common util collection for antv projects", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "module": "esm/index.js", + "devDependencies": { + "@antv/torch": "^1.0.0", + "chai": "^4.2.0", + "less": "^3.9.0", + "npm-run-all": "^4.1.5" + }, "files": [ "src", "package.json", @@ -12,10 +64,27 @@ "lib", "README.md" ], + "homepage": "https://github.com/antvis/util#readme", + "keywords": [ + "util", + "antv", + "g" + ], + "license": "ISC", + "main": "lib/index.js", + "module": "esm/index.js", + "name": "@antv/util", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/antvis/util.git" + }, "scripts": { "build": "npm run clean && run-p build:*", - "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "build:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib", + "build:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm", "clean": "rm -rf lib && rm -rf esm", "coverage": "npm run coverage-generator && npm run coverage-viewer", "coverage-generator": "torch --coverage --compile --source-pattern src/*.js,src/**/*.js --opts __tests__/mocha.opts", @@ -25,31 +94,6 @@ "tsc": "tsc --noEmit", "typecheck": "tsc --noEmit" }, - "repository": { - "type": "git", - "url": "git+https://github.com/antvis/util.git" - }, - "keywords": [ - "util", - "antv", - "g" - ], - "publishConfig": { - "access": "public" - }, - "author": "https://github.com/orgs/antvis/people", - "license": "ISC", - "bugs": { - "url": "https://github.com/antvis/util/issues" - }, - "devDependencies": { - "@antv/torch": "^1.0.0", - "chai": "^4.2.0", - "less": "^3.9.0", - "npm-run-all": "^4.1.5" - }, - "homepage": "https://github.com/antvis/util#readme", - "dependencies": { - "tslib": "^2.0.3" - } + "types": "lib/index.d.ts", + "version": "2.0.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/code-frame/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/code-frame/package.json index 0c58bebab..a0f326409 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/code-frame/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/code-frame/package.json @@ -1,17 +1,55 @@ { - "name": "@babel/code-frame", - "version": "7.0.0-beta.44", - "description": "Generate errors that contain a code frame that point to source locations.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame", - "main": "lib/index.js", + "_args": [ + [ + "@babel/code-frame@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/code-frame@7.0.0-beta.44", + "_id": "@babel/code-frame@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-KgJkM2jegJFhYr5whlyXd08629k=", + "_location": "/@babel/code-frame", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/code-frame@7.0.0-beta.44", + "name": "@babel/code-frame", + "escapedName": "@babel%2fcode-frame", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/template", + "/@babel/traverse", + "/babel-eslint" + ], + "_resolved": "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "@babel/highlight": "7.0.0-beta.44" }, + "description": "Generate errors that contain a code frame that point to source locations.", "devDependencies": { "chalk": "^2.0.0", "strip-ansi": "^4.0.0" - } + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/code-frame", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc index e7105da30..f2bbda380 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc +++ b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? else - exec node "$basedir/../jsesc/bin/jsesc" "$@" + node "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.cmd b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.cmd index 7ff98f0e0..5338fa170 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.cmd +++ b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* +"%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.ps1 b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.ps1 index 6007e022f..1751cf9cd 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/.bin/jsesc.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../jsesc/bin/jsesc" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/jsesc/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/jsesc/package.json index f89a7c62a..0884a7ea0 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/jsesc/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/generator/node_modules/jsesc/package.json @@ -1,14 +1,63 @@ { - "name": "jsesc", - "version": "2.5.2", + "_args": [ + [ + "jsesc@2.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jsesc@2.5.2", + "_id": "jsesc@2.5.2", + "_inBundle": false, + "_integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "_location": "/@babel/generator/jsesc", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jsesc@2.5.2", + "name": "jsesc", + "escapedName": "jsesc", + "rawSpec": "2.5.2", + "saveSpec": null, + "fetchSpec": "2.5.2" + }, + "_requiredBy": [ + "/@babel/generator" + ], + "_resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891224688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", + "_spec": "2.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bin": { + "jsesc": "bin/jsesc" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/jsesc/issues" + }, "description": "Given some data, jsesc returns the shortest possible stringified & ASCII-safe representation of that data.", - "homepage": "https://mths.be/jsesc", + "devDependencies": { + "coveralls": "^2.11.6", + "grunt": "^0.4.5", + "grunt-template": "^0.2.3", + "istanbul": "^0.4.2", + "mocha": "*", + "regenerate": "^1.3.0", + "requirejs": "^2.1.22" + }, "engines": { "node": ">=4" }, - "main": "jsesc.js", - "bin": "bin/jsesc", - "man": "man/jsesc.1", + "files": [ + "LICENSE-MIT.txt", + "jsesc.js", + "bin/", + "man/" + ], + "homepage": "https://mths.be/jsesc", "keywords": [ "buffer", "escape", @@ -21,34 +70,20 @@ "tool" ], "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, + "main": "jsesc.js", + "man": [ + "man/jsesc.1" + ], + "name": "jsesc", "repository": { "type": "git", - "url": "https://github.com/mathiasbynens/jsesc.git" + "url": "git+https://github.com/mathiasbynens/jsesc.git" }, - "bugs": "https://github.com/mathiasbynens/jsesc/issues", - "files": [ - "LICENSE-MIT.txt", - "jsesc.js", - "bin/", - "man/" - ], "scripts": { "build": "grunt template", - "coveralls": "istanbul cover --verbose --dir 'coverage' 'tests/tests.js' && coveralls < coverage/lcov.info'", "cover": "istanbul cover --report 'html' --verbose --dir 'coverage' 'tests/tests.js'", + "coveralls": "istanbul cover --verbose --dir 'coverage' 'tests/tests.js' && coveralls < coverage/lcov.info'", "test": "mocha tests" }, - "devDependencies": { - "coveralls": "^2.11.6", - "grunt": "^0.4.5", - "grunt-template": "^0.2.3", - "istanbul": "^0.4.2", - "mocha": "*", - "regenerate": "^1.3.0", - "requirejs": "^2.1.22" - } + "version": "2.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/generator/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/generator/package.json index 2f06aefa4..ba6bfdde5 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/generator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/generator/package.json @@ -1,15 +1,38 @@ { - "name": "@babel/generator", - "version": "7.0.0-beta.44", - "description": "Turns an AST into code.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-generator", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "@babel/generator@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "@babel/generator@7.0.0-beta.44", + "_id": "@babel/generator@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-x+Z7m1KEr89pswm1DX038+UDPUI=", + "_location": "/@babel/generator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/generator@7.0.0-beta.44", + "name": "@babel/generator", + "escapedName": "@babel%2fgenerator", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "@babel/types": "7.0.0-beta.44", "jsesc": "^2.5.1", @@ -17,8 +40,21 @@ "source-map": "^0.5.0", "trim-right": "^1.0.1" }, + "description": "Turns an AST into code.", "devDependencies": { "@babel/helper-fixtures": "7.0.0-beta.44", "babylon": "7.0.0-beta.44" - } + }, + "files": [ + "lib" + ], + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/generator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-generator" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/helper-function-name/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/helper-function-name/package.json index 9f2f16baa..abe7f269d 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/helper-function-name/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/helper-function-name/package.json @@ -1,13 +1,46 @@ { - "name": "@babel/helper-function-name", - "version": "7.0.0-beta.44", - "description": "Helper function to change the property 'name' of every function", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "@babel/helper-function-name@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/helper-function-name@7.0.0-beta.44", + "_id": "@babel/helper-function-name@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-4YVSqq4iMRAKbkheA4VLw1MtRN0=", + "_location": "/@babel/helper-function-name", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/helper-function-name@7.0.0-beta.44", + "name": "@babel/helper-function-name", + "escapedName": "@babel%2fhelper-function-name", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.0.0-beta.44.tgz?cache=0&sync_timestamp=1623280385237&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "@babel/helper-get-function-arity": "7.0.0-beta.44", "@babel/template": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44" - } + }, + "description": "Helper function to change the property 'name' of every function", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/helper-function-name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/helper-get-function-arity/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/helper-get-function-arity/package.json index ae6b1d153..cdd68f53b 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/helper-get-function-arity/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/helper-get-function-arity/package.json @@ -1,11 +1,44 @@ { - "name": "@babel/helper-get-function-arity", - "version": "7.0.0-beta.44", + "_args": [ + [ + "@babel/helper-get-function-arity@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/helper-get-function-arity@7.0.0-beta.44", + "_id": "@babel/helper-get-function-arity@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-0Dym3SufewseazLFbHKDYUDbOhU=", + "_location": "/@babel/helper-get-function-arity", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/helper-get-function-arity@7.0.0-beta.44", + "name": "@babel/helper-get-function-arity", + "escapedName": "@babel%2fhelper-get-function-arity", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/helper-function-name" + ], + "_resolved": "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@babel/types": "7.0.0-beta.44" + }, "description": "Helper function to get function arity", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity", "license": "MIT", "main": "lib/index.js", - "dependencies": { - "@babel/types": "7.0.0-beta.44" - } + "name": "@babel/helper-get-function-arity", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/helper-split-export-declaration/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/helper-split-export-declaration/package.json index db32f6801..397bbde93 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/helper-split-export-declaration/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/helper-split-export-declaration/package.json @@ -1,11 +1,44 @@ { - "name": "@babel/helper-split-export-declaration", - "version": "7.0.0-beta.44", - "description": "", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-split-export-declaration", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "@babel/helper-split-export-declaration@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/helper-split-export-declaration@7.0.0-beta.44", + "_id": "@babel/helper-split-export-declaration@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-wLNRc14PvLOCLIrY205YOwXr2dw=", + "_location": "/@babel/helper-split-export-declaration", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/helper-split-export-declaration@7.0.0-beta.44", + "name": "@babel/helper-split-export-declaration", + "escapedName": "@babel%2fhelper-split-export-declaration", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "@babel/types": "7.0.0-beta.44" - } + }, + "description": "## API", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/helper-split-export-declaration", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-split-export-declaration" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/helper-validator-identifier/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/helper-validator-identifier/package.json index 80b8c9aea..5a82ba5bd 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/helper-validator-identifier/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/helper-validator-identifier/package.json @@ -1,18 +1,44 @@ { - "name": "@babel/helper-validator-identifier", - "version": "7.14.5", - "description": "Validate identifier/keywords name", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-validator-identifier" + "_args": [ + [ + "@babel/helper-validator-identifier@7.14.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/helper-validator-identifier@7.14.5", + "_id": "@babel/helper-validator-identifier@7.14.5", + "_inBundle": false, + "_integrity": "sha1-0PDid8US4Mk4J3+qhaOWjJpEwOg=", + "_location": "/@babel/helper-validator-identifier", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/helper-validator-identifier@7.14.5", + "name": "@babel/helper-validator-identifier", + "escapedName": "@babel%2fhelper-validator-identifier", + "scope": "@babel", + "rawSpec": "7.14.5", + "saveSpec": null, + "fetchSpec": "7.14.5" }, - "license": "MIT", - "publishConfig": { - "access": "public" + "_requiredBy": [ + "/babel-walk/@babel/types", + "/constantinople/@babel/types", + "/with/@babel/types" + ], + "_resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.5.tgz?cache=0&sync_timestamp=1623280305128&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.5.tgz", + "_spec": "7.14.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "The Babel Team", + "url": "https://babel.dev/team" }, - "main": "./lib/index.js", - "exports": "./lib/index.js", + "bugs": { + "url": "https://github.com/babel/babel/issues" + }, + "description": "Validate identifier/keywords name", "devDependencies": { "@babel/helper-validator-identifier-baseline": "npm:@babel/helper-validator-identifier@7.10.4", "@unicode/unicode-13.0.0": "^1.0.6", @@ -22,5 +48,18 @@ "engines": { "node": ">=6.9.0" }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file + "exports": "./lib/index.js", + "homepage": "https://github.com/babel/babel#readme", + "license": "MIT", + "main": "./lib/index.js", + "name": "@babel/helper-validator-identifier", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/babel/babel.git", + "directory": "packages/babel-helper-validator-identifier" + }, + "version": "7.14.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/highlight/node_modules/js-tokens/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/highlight/node_modules/js-tokens/package.json index 7f5bd7800..5f2ee2e21 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/highlight/node_modules/js-tokens/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/highlight/node_modules/js-tokens/package.json @@ -1,9 +1,50 @@ { - "name": "js-tokens", - "version": "3.0.2", - "author": "Simon Lydell", - "license": "MIT", + "_args": [ + [ + "js-tokens@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "js-tokens@3.0.2", + "_id": "js-tokens@3.0.2", + "_inBundle": false, + "_integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "_location": "/@babel/highlight/js-tokens", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-tokens@3.0.2", + "name": "js-tokens", + "escapedName": "js-tokens", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/@babel/highlight" + ], + "_resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/js-tokens/issues" + }, "description": "A regex that tokenizes JavaScript.", + "devDependencies": { + "coffee-script": "~1.12.6", + "esprima": "^4.0.0", + "everything.js": "^1.0.3", + "mocha": "^3.4.2" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/lydell/js-tokens#readme", "keywords": [ "JavaScript", "js", @@ -11,20 +52,17 @@ "tokenize", "regex" ], - "files": [ - "index.js" - ], - "repository": "lydell/js-tokens", + "license": "MIT", + "name": "js-tokens", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/js-tokens.git" + }, "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" + "dev": "npm run build && npm test", + "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", + "test": "mocha --ui tdd" }, - "devDependencies": { - "coffee-script": "~1.12.6", - "esprima": "^4.0.0", - "everything.js": "^1.0.3", - "mocha": "^3.4.2" - } + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/highlight/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/highlight/package.json index d20e8baa7..3e1014305 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/highlight/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/highlight/package.json @@ -1,18 +1,54 @@ { - "name": "@babel/highlight", - "version": "7.0.0-beta.44", - "description": "Syntax highlight JavaScript strings for output in terminals.", - "author": "suchipi ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-highlight", - "main": "lib/index.js", + "_args": [ + [ + "@babel/highlight@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/highlight@7.0.0-beta.44", + "_id": "@babel/highlight@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-GMlM5UORaoBVPtzc9oGJCyAHR9U=", + "_location": "/@babel/highlight", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/highlight@7.0.0-beta.44", + "name": "@babel/highlight", + "escapedName": "@babel%2fhighlight", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/code-frame" + ], + "_resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "suchipi", + "email": "me@suchipi.com" + }, "dependencies": { "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^3.0.0" }, + "description": "Syntax highlight JavaScript strings for output in terminals.", "devDependencies": { "strip-ansi": "^4.0.0" - } + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/highlight", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-highlight" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/parser/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/parser/package.json index a83f9a266..a2edac575 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/parser/package.json @@ -1,14 +1,63 @@ { - "name": "@babel/parser", - "version": "7.14.5", + "_args": [ + [ + "@babel/parser@7.14.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/parser@7.14.5", + "_id": "@babel/parser@7.14.5", + "_inBundle": false, + "_integrity": "sha1-TNLzRiYQYbJRiHP/7N8WEssDKCk=", + "_location": "/@babel/parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/parser@7.14.5", + "name": "@babel/parser", + "escapedName": "@babel%2fparser", + "scope": "@babel", + "rawSpec": "7.14.5", + "saveSpec": null, + "fetchSpec": "7.14.5" + }, + "_requiredBy": [ + "/constantinople", + "/with" + ], + "_resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.5.tgz?cache=0&sync_timestamp=1623280296042&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.5.tgz", + "_spec": "7.14.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "The Babel Team", + "url": "https://babel.dev/team" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "bugs": { + "url": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen" + }, "description": "A JavaScript parser", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-parser", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" + "devDependencies": { + "@babel-baseline/parser": "npm:@babel/parser@^7.14.4", + "@babel/code-frame": "7.14.5", + "@babel/helper-fixtures": "7.14.5", + "@babel/helper-validator-identifier": "7.14.5", + "benchmark": "^2.1.4", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.0.0" }, + "files": [ + "bin", + "lib", + "typings" + ], + "homepage": "https://babel.dev/docs/en/next/babel-parser", "keywords": [ "babel", "javascript", @@ -17,28 +66,17 @@ "ecmascript", "@babel/parser" ], + "license": "MIT", + "main": "./lib/index.js", + "name": "@babel/parser", + "publishConfig": { + "access": "public" + }, "repository": { "type": "git", - "url": "https://github.com/babel/babel.git", + "url": "git+https://github.com/babel/babel.git", "directory": "packages/babel-parser" }, - "main": "./lib/index.js", "types": "./typings/babel-parser.d.ts", - "files": [ - "bin", - "lib", - "typings" - ], - "engines": { - "node": ">=6.0.0" - }, - "devDependencies": { - "@babel-baseline/parser": "npm:@babel/parser@^7.14.4", - "@babel/code-frame": "7.14.5", - "@babel/helper-fixtures": "7.14.5", - "@babel/helper-validator-identifier": "7.14.5", - "benchmark": "^2.1.4", - "charcodes": "^0.2.0" - }, - "bin": "./bin/babel-parser.js" -} \ No newline at end of file + "version": "7.14.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon index d381ba5a3..b066817f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon +++ b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? else - exec node "$basedir/../babylon/bin/babylon.js" "$@" + node "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.cmd b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.cmd index 5a2b7e8d6..317cd139b 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.cmd +++ b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +"%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.ps1 b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.ps1 index 8110def8a..e059d8aa8 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/.bin/babylon.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/babylon/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/babylon/package.json index 5ed827980..d1b3988c4 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/babylon/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/template/node_modules/babylon/package.json @@ -1,10 +1,54 @@ { - "name": "babylon", - "version": "7.0.0-beta.44", + "_args": [ + [ + "babylon@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babylon@7.0.0-beta.44", + "_id": "babylon@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-iRWeFebjDFCW4i1zjYwK+KDoyh0=", + "_location": "/@babel/template/babylon", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babylon@7.0.0-beta.44", + "name": "babylon", + "escapedName": "babylon", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/template" + ], + "_resolved": "https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bin": { + "babylon": "bin/babylon.js" + }, "description": "A JavaScript parser", - "author": "Sebastian McKenzie ", + "devDependencies": { + "@babel/helper-fixtures": "7.0.0-beta.44", + "charcodes": "0.1.0", + "unicode-10.0.0": "^0.7.4" + }, + "engines": { + "node": ">=4.2.0" + }, + "files": [ + "bin", + "lib" + ], "homepage": "https://babeljs.io/", - "license": "MIT", "keywords": [ "babel", "javascript", @@ -13,24 +57,15 @@ "ecmascript", "babylon" ], - "repository": "https://github.com/babel/babel/tree/master/packages/babylon", + "license": "MIT", "main": "lib/index.js", - "files": [ - "bin", - "lib" - ], - "engines": { - "node": ">=4.2.0" - }, - "devDependencies": { - "@babel/helper-fixtures": "7.0.0-beta.44", - "charcodes": "0.1.0", - "unicode-10.0.0": "^0.7.4" - }, - "bin": { - "babylon": "./bin/babylon.js" - }, + "name": "babylon", "publishConfig": { "tag": "next" - } + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babylon" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/template/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/template/package.json index a392bcf26..756e86f94 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/template/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/template/package.json @@ -1,16 +1,52 @@ { - "name": "@babel/template", - "version": "7.0.0-beta.44", - "description": "Generate an AST from a string template.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-template", - "main": "lib/index.js", + "_args": [ + [ + "@babel/template@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/template@7.0.0-beta.44", + "_id": "@babel/template@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-+IMvT9zuXVm/UV5ZX8UQbFKbOU8=", + "_location": "/@babel/template", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/template@7.0.0-beta.44", + "name": "@babel/template", + "escapedName": "@babel%2ftemplate", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/helper-function-name" + ], + "_resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.0.0-beta.44.tgz?cache=0&sync_timestamp=1623280386138&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "@babel/code-frame": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", "lodash": "^4.2.0" - } + }, + "description": "Generate an AST from a string template.", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/template", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-template" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon index d381ba5a3..b066817f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? else - exec node "$basedir/../babylon/bin/babylon.js" "$@" + node "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.cmd b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.cmd index 5a2b7e8d6..317cd139b 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.cmd +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +"%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.ps1 b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.ps1 index 8110def8a..e059d8aa8 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/.bin/babylon.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/babylon/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/babylon/package.json index 5ed827980..ebb49202c 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/babylon/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/babylon/package.json @@ -1,10 +1,54 @@ { - "name": "babylon", - "version": "7.0.0-beta.44", + "_args": [ + [ + "babylon@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babylon@7.0.0-beta.44", + "_id": "babylon@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-iRWeFebjDFCW4i1zjYwK+KDoyh0=", + "_location": "/@babel/traverse/babylon", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babylon@7.0.0-beta.44", + "name": "babylon", + "escapedName": "babylon", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bin": { + "babylon": "bin/babylon.js" + }, "description": "A JavaScript parser", - "author": "Sebastian McKenzie ", + "devDependencies": { + "@babel/helper-fixtures": "7.0.0-beta.44", + "charcodes": "0.1.0", + "unicode-10.0.0": "^0.7.4" + }, + "engines": { + "node": ">=4.2.0" + }, + "files": [ + "bin", + "lib" + ], "homepage": "https://babeljs.io/", - "license": "MIT", "keywords": [ "babel", "javascript", @@ -13,24 +57,15 @@ "ecmascript", "babylon" ], - "repository": "https://github.com/babel/babel/tree/master/packages/babylon", + "license": "MIT", "main": "lib/index.js", - "files": [ - "bin", - "lib" - ], - "engines": { - "node": ">=4.2.0" - }, - "devDependencies": { - "@babel/helper-fixtures": "7.0.0-beta.44", - "charcodes": "0.1.0", - "unicode-10.0.0": "^0.7.4" - }, - "bin": { - "babylon": "./bin/babylon.js" - }, + "name": "babylon", "publishConfig": { "tag": "next" - } + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babylon" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/debug/package.json index 191c81547..6afa3e22e 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/debug/package.json @@ -1,32 +1,56 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_development": true, + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@babel/traverse/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@babel/traverse" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +69,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/globals/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/globals/package.json index dfe459b6f..801a4ebcc 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/globals/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/globals/package.json @@ -1,41 +1,77 @@ { - "name": "globals", - "version": "11.12.0", - "description": "Global identifiers from different JavaScript environments", - "license": "MIT", - "repository": "sindresorhus/globals", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "globals.json" - ], - "keywords": [ - "globals", - "global", - "identifiers", - "variables", - "vars", - "jshint", - "eslint", - "environments" - ], - "devDependencies": { - "ava": "0.21.0", - "xo": "0.18.0" - }, - "xo": { - "ignores": [ - "get-browser-globals.js" - ] - } + "_args": [ + [ + "globals@11.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "globals@11.12.0", + "_id": "globals@11.12.0", + "_inBundle": false, + "_integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "_location": "/@babel/traverse/globals", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "globals@11.12.0", + "name": "globals", + "escapedName": "globals", + "rawSpec": "11.12.0", + "saveSpec": null, + "fetchSpec": "11.12.0" + }, + "_requiredBy": [ + "/@babel/traverse" + ], + "_resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz", + "_spec": "11.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/globals/issues" + }, + "description": "Global identifiers from different JavaScript environments", + "devDependencies": { + "ava": "0.21.0", + "xo": "0.18.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "globals.json" + ], + "homepage": "https://github.com/sindresorhus/globals#readme", + "keywords": [ + "globals", + "global", + "identifiers", + "variables", + "vars", + "jshint", + "eslint", + "environments" + ], + "license": "MIT", + "name": "globals", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/globals.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "11.12.0", + "xo": { + "ignores": [ + "get-browser-globals.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/ms/package.json index 49971890d..d2108f4da 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/node_modules/ms/package.json @@ -1,16 +1,44 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_development": true, + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@babel/traverse/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@babel/traverse/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +47,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +59,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/package.json index 6e25644d6..74a3ca520 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/traverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/traverse/package.json @@ -1,12 +1,38 @@ { - "name": "@babel/traverse", - "version": "7.0.0-beta.44", - "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-traverse", - "main": "lib/index.js", + "_args": [ + [ + "@babel/traverse@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/traverse@7.0.0-beta.44", + "_id": "@babel/traverse@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-qXCixFR3rRgBfi5GWgYG/u4NKWY=", + "_location": "/@babel/traverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/traverse@7.0.0-beta.44", + "name": "@babel/traverse", + "escapedName": "@babel%2ftraverse", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/babel-eslint" + ], + "_resolved": "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.0.0-beta.44.tgz?cache=0&sync_timestamp=1623280395969&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "@babel/code-frame": "7.0.0-beta.44", "@babel/generator": "7.0.0-beta.44", @@ -19,7 +45,17 @@ "invariant": "^2.2.0", "lodash": "^4.2.0" }, + "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", "devDependencies": { "@babel/helper-plugin-test-runner": "7.0.0-beta.44" - } + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/traverse", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-traverse" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/types/node_modules/to-fast-properties/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/types/node_modules/to-fast-properties/package.json index 7a64b2ccb..b188f3f13 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/types/node_modules/to-fast-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/types/node_modules/to-fast-properties/package.json @@ -1,23 +1,52 @@ { - "name": "to-fast-properties", - "version": "2.0.0", - "description": "Force V8 to use fast properties for an object", - "license": "MIT", - "repository": "sindresorhus/to-fast-properties", + "_args": [ + [ + "to-fast-properties@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "to-fast-properties@2.0.0", + "_id": "to-fast-properties@2.0.0", + "_inBundle": false, + "_integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "_location": "/@babel/types/to-fast-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-fast-properties@2.0.0", + "name": "to-fast-properties", + "escapedName": "to-fast-properties", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/@babel/types" + ], + "_resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/to-fast-properties/issues" + }, + "description": "Force V8 to use fast properties for an object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "node --allow-natives-syntax test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/to-fast-properties#readme", "keywords": [ "object", "obj", @@ -29,7 +58,14 @@ "convert", "mode" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "to-fast-properties", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/to-fast-properties.git" + }, + "scripts": { + "test": "node --allow-natives-syntax test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@babel/types/package.json b/admin/vue2/element-admin-v3/node_modules/@babel/types/package.json index f822eb7fe..fa3cd3028 100644 --- a/admin/vue2/element-admin-v3/node_modules/@babel/types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@babel/types/package.json @@ -1,20 +1,62 @@ { - "name": "@babel/types", - "version": "7.0.0-beta.44", - "description": "Babel Types is a Lodash-esque utility library for AST nodes", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-types", - "main": "lib/index.js", - "types": "lib/index.d.ts", + "_args": [ + [ + "@babel/types@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/types@7.0.0-beta.44", + "_id": "@babel/types@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-axsWRZH3fewKA0KsqZXy0Eazp1c=", + "_location": "/@babel/types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/types@7.0.0-beta.44", + "name": "@babel/types", + "escapedName": "@babel%2ftypes", + "scope": "@babel", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/@babel/generator", + "/@babel/helper-function-name", + "/@babel/helper-get-function-arity", + "/@babel/helper-split-export-declaration", + "/@babel/template", + "/@babel/traverse", + "/babel-eslint" + ], + "_resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "esutils": "^2.0.2", "lodash": "^4.2.0", "to-fast-properties": "^2.0.0" }, + "description": "Babel Types is a Lodash-esque utility library for AST nodes", "devDependencies": { "@babel/generator": "7.0.0-beta.44", "babylon": "7.0.0-beta.44" - } + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "@babel/types", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-types" + }, + "types": "lib/index.d.ts", + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/actions/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/actions/package.json index ba77e4cef..d7a5f90c3 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/actions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/actions/package.json @@ -1,15 +1,49 @@ { - "name": "@interactjs/actions", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/actions@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/actions@1.10.11", + "_id": "@interactjs/actions@1.10.11", + "_inBundle": false, + "_integrity": "sha1-7Gj9YL7nUfgMZQlktbopnrav54w=", + "_location": "/@interactjs/actions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/actions@1.10.11", + "name": "@interactjs/actions", + "escapedName": "@interactjs%2factions", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs", + "/vue-grid-layout" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/actions/download/@interactjs/actions-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "main": "index", "module": "index", + "name": "@interactjs/actions", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -17,5 +51,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-scroll/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-scroll/package.json index 3df6a67dc..c763e5559 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-scroll/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-scroll/package.json @@ -1,14 +1,47 @@ { - "name": "@interactjs/auto-scroll", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/auto-scroll@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/auto-scroll@1.10.11", + "_id": "@interactjs/auto-scroll@1.10.11", + "_inBundle": false, + "_integrity": "sha1-DArH27Vap9ffbAoEx367MUjL31Q=", + "_location": "/@interactjs/auto-scroll", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/auto-scroll@1.10.11", + "name": "@interactjs/auto-scroll", + "escapedName": "@interactjs%2fauto-scroll", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/auto-scroll/download/@interactjs/auto-scroll-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "main": "index", "module": "index", - "peerDependencies": { - "@interactjs/utils": "1.10.11" - }, + "name": "@interactjs/auto-scroll", "optionalDependencies": { "@interactjs/interact": "1.10.11" }, + "peerDependencies": { + "@interactjs/utils": "1.10.11" + }, "publishConfig": { "access": "public" }, @@ -16,5 +49,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-start/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-start/package.json index 49f679766..07a78d0a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-start/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/auto-start/package.json @@ -1,15 +1,49 @@ { - "name": "@interactjs/auto-start", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/auto-start@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/auto-start@1.10.11", + "_id": "@interactjs/auto-start@1.10.11", + "_inBundle": false, + "_integrity": "sha1-XOBFdA81vjZkDrrQU9t7VlLhjnA=", + "_location": "/@interactjs/auto-start", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/auto-start@1.10.11", + "name": "@interactjs/auto-start", + "escapedName": "@interactjs%2fauto-start", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs", + "/vue-grid-layout" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/auto-start/download/@interactjs/auto-start-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "main": "index", "module": "index", + "name": "@interactjs/auto-start", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -17,5 +51,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/core/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/core/package.json index fecc43046..2369ea409 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/core/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/core/package.json @@ -1,8 +1,39 @@ { - "name": "@interactjs/core", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/core@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/core@1.10.11", + "_id": "@interactjs/core@1.10.11", + "_inBundle": false, + "_integrity": "sha1-iwIDSSwbpvhDLyC3GK5TcH/PxyQ=", + "_location": "/@interactjs/core", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/core@1.10.11", + "name": "@interactjs/core", + "escapedName": "@interactjs%2fcore", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interact", + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/core/download/@interactjs/core-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "main": "index", "module": "index", + "name": "@interactjs/core", "peerDependencies": { "@interactjs/utils": "1.10.11" }, @@ -13,5 +44,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/dev-tools/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/dev-tools/package.json index 68e14d793..93ba5e71e 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/dev-tools/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/dev-tools/package.json @@ -1,18 +1,52 @@ { - "name": "@interactjs/dev-tools", - "version": "1.10.11", - "main": "index", - "module": "index", - "peerDependencies": { - "@interactjs/modifiers": "1.10.11", - "@interactjs/utils": "1.10.11" + "_args": [ + [ + "@interactjs/dev-tools@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/dev-tools@1.10.11", + "_id": "@interactjs/dev-tools@1.10.11", + "_inBundle": false, + "_integrity": "sha1-jUtbZQz3ToAJCfUpYgCHABQ6QwQ=", + "_location": "/@interactjs/dev-tools", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/dev-tools@1.10.11", + "name": "@interactjs/dev-tools", + "escapedName": "@interactjs%2fdev-tools", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" }, - "optionalDependencies": { + "_requiredBy": [ + "/@interactjs/interactjs", + "/vue-grid-layout" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/dev-tools/download/@interactjs/dev-tools-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { "@interactjs/interact": "1.10.11" }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", "devDependencies": { "vue": "next" }, + "license": "MIT", + "main": "index", + "module": "index", + "name": "@interactjs/dev-tools", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, + "peerDependencies": { + "@interactjs/modifiers": "1.10.11", + "@interactjs/utils": "1.10.11" + }, "publishConfig": { "access": "public" }, @@ -20,5 +54,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/inertia/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/inertia/package.json index ab4e98d19..8d02f7bba 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/inertia/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/inertia/package.json @@ -1,19 +1,50 @@ { - "name": "@interactjs/inertia", - "version": "1.10.11", - "main": "index", - "module": "index", + "_args": [ + [ + "@interactjs/inertia@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/inertia@1.10.11", + "_id": "@interactjs/inertia@1.10.11", + "_inBundle": false, + "_integrity": "sha1-WIZBczEJhbgkfYTjRxSOps17iKg=", + "_location": "/@interactjs/inertia", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/inertia@1.10.11", + "name": "@interactjs/inertia", + "escapedName": "@interactjs%2finertia", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/inertia/download/@interactjs/inertia-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { + "@interactjs/interact": "1.10.11", "@interactjs/offset": "1.10.11" }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", + "main": "index", + "module": "index", + "name": "@interactjs/inertia", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/modifiers": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -21,5 +52,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/interact/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/interact/package.json index ab0fea770..bd80e1b1a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/interact/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/interact/package.json @@ -1,16 +1,56 @@ { - "name": "@interactjs/interact", - "version": "1.10.11", - "main": "index", - "module": "index", + "_args": [ + [ + "@interactjs/interact@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/interact@1.10.11", + "_id": "@interactjs/interact@1.10.11", + "_inBundle": false, + "_integrity": "sha1-2W4/lJ7kABpqNNw2OiMmRvndKxs=", + "_location": "/@interactjs/interact", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/interact@1.10.11", + "name": "@interactjs/interact", + "escapedName": "@interactjs%2finteract", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/actions", + "/@interactjs/auto-scroll", + "/@interactjs/auto-start", + "/@interactjs/dev-tools", + "/@interactjs/inertia", + "/@interactjs/interactjs", + "/@interactjs/modifiers", + "/@interactjs/offset", + "/@interactjs/pointer-events", + "/@interactjs/reflow", + "/@interactjs/snappers" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/interact/download/@interactjs/interact-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "@interactjs/core": "1.10.11", "@interactjs/types": "1.10.11", "@interactjs/utils": "1.10.11" }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", + "main": "index", + "module": "index", + "name": "@interactjs/interact", "publishConfig": { "access": "public" }, "sideEffects": false, - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/interactjs/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/interactjs/package.json index 9474fa1bb..f845ba306 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/interactjs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/interactjs/package.json @@ -1,11 +1,35 @@ { - "name": "@interactjs/interactjs", - "version": "1.10.11", - "main": "index", - "module": "index", - "repository": { - "type": "git", - "url": "https://github.com/taye/interact.js.git" + "_args": [ + [ + "@interactjs/interactjs@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/interactjs@1.10.11", + "_id": "@interactjs/interactjs@1.10.11", + "_inBundle": false, + "_integrity": "sha1-0P3WsDwchVBDsfYIoQsvXMrEtLc=", + "_location": "/@interactjs/interactjs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/interactjs@1.10.11", + "name": "@interactjs/interactjs", + "escapedName": "@interactjs%2finteractjs", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/vue-grid-layout" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/interactjs/download/@interactjs/interactjs-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/taye/interact.js/issues" }, "dependencies": { "@interactjs/actions": "1.10.11", @@ -21,9 +45,19 @@ "@interactjs/reflow": "1.10.11", "@interactjs/utils": "1.10.11" }, + "description": "\"interact.js\"", + "homepage": "https://github.com/taye/interact.js#readme", + "license": "MIT", + "main": "index", + "module": "index", + "name": "@interactjs/interactjs", "publishConfig": { "access": "public" }, + "repository": { + "type": "git", + "url": "git+https://github.com/taye/interact.js.git" + }, "sideEffects": false, - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/modifiers/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/modifiers/package.json index 03334d25c..ade05cc34 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/modifiers/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/modifiers/package.json @@ -1,18 +1,50 @@ { - "name": "@interactjs/modifiers", - "version": "1.10.11", - "main": "index", - "module": "index", + "_args": [ + [ + "@interactjs/modifiers@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/modifiers@1.10.11", + "_id": "@interactjs/modifiers@1.10.11", + "_inBundle": false, + "_integrity": "sha1-9AliqX/T4RDma3lmR5bCTzxObNY=", + "_location": "/@interactjs/modifiers", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/modifiers@1.10.11", + "name": "@interactjs/modifiers", + "escapedName": "@interactjs%2fmodifiers", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs", + "/vue-grid-layout" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/modifiers/download/@interactjs/modifiers-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { + "@interactjs/interact": "1.10.11", "@interactjs/snappers": "1.10.11" }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", + "main": "index", + "module": "index", + "name": "@interactjs/modifiers", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -20,5 +52,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/offset/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/offset/package.json index 13ed0e074..343c4abb7 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/offset/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/offset/package.json @@ -1,15 +1,48 @@ { - "name": "@interactjs/offset", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/offset@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/offset@1.10.11", + "_id": "@interactjs/offset@1.10.11", + "_inBundle": false, + "_integrity": "sha1-USJC8zDcgM29pP7aj7NMBJH1BJY=", + "_location": "/@interactjs/offset", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/offset@1.10.11", + "name": "@interactjs/offset", + "escapedName": "@interactjs%2foffset", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/inertia", + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/offset/download/@interactjs/offset-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "license": "MIT", "main": "index", "module": "index", + "name": "@interactjs/offset", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -17,5 +50,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/pointer-events/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/pointer-events/package.json index 439c10a85..a9e932614 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/pointer-events/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/pointer-events/package.json @@ -1,15 +1,48 @@ { - "name": "@interactjs/pointer-events", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/pointer-events@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/pointer-events@1.10.11", + "_id": "@interactjs/pointer-events@1.10.11", + "_inBundle": false, + "_integrity": "sha1-/0x0p113EfwQBuvzLqNE41v/6Tg=", + "_location": "/@interactjs/pointer-events", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/pointer-events@1.10.11", + "name": "@interactjs/pointer-events", + "escapedName": "@interactjs%2fpointer-events", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/pointer-events/download/@interactjs/pointer-events-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "main": "index", "module": "index", + "name": "@interactjs/pointer-events", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -17,5 +50,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/reflow/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/reflow/package.json index 2c5fcebea..d921ddaad 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/reflow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/reflow/package.json @@ -1,15 +1,48 @@ { - "name": "@interactjs/reflow", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/reflow@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/reflow@1.10.11", + "_id": "@interactjs/reflow@1.10.11", + "_inBundle": false, + "_integrity": "sha1-Q9KtjKACv5gJEnPRef1wscq/ueI=", + "_location": "/@interactjs/reflow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/reflow@1.10.11", + "name": "@interactjs/reflow", + "escapedName": "@interactjs%2freflow", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/reflow/download/@interactjs/reflow-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "main": "index", "module": "index", + "name": "@interactjs/reflow", + "optionalDependencies": { + "@interactjs/interact": "1.10.11" + }, "peerDependencies": { "@interactjs/core": "1.10.11", "@interactjs/utils": "1.10.11" }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, "publishConfig": { "access": "public" }, @@ -17,5 +50,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/snappers/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/snappers/package.json index 70ec98875..30c7d1afe 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/snappers/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/snappers/package.json @@ -1,14 +1,46 @@ { - "name": "@interactjs/snappers", - "version": "1.10.11", + "_args": [ + [ + "@interactjs/snappers@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/snappers@1.10.11", + "_id": "@interactjs/snappers@1.10.11", + "_inBundle": false, + "_integrity": "sha1-PrbkWrgxnA3UtgsoTFXIdWGqrbE=", + "_location": "/@interactjs/snappers", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/snappers@1.10.11", + "name": "@interactjs/snappers", + "escapedName": "@interactjs%2fsnappers", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/modifiers" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/snappers/download/@interactjs/snappers-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "@interactjs/interact": "1.10.11" + }, + "license": "MIT", "main": "index", "module": "index", - "peerDependencies": { - "@interactjs/utils": "1.10.11" - }, + "name": "@interactjs/snappers", "optionalDependencies": { "@interactjs/interact": "1.10.11" }, + "peerDependencies": { + "@interactjs/utils": "1.10.11" + }, "publishConfig": { "access": "public" }, @@ -16,5 +48,5 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/types/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/types/package.json index 83defb7e3..9b9b6018b 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/types/package.json @@ -1,9 +1,34 @@ { - "name": "@interactjs/types", - "version": "1.10.11", - "main": "index", - "module": "index", - "typings": "typings.d.ts", + "_args": [ + [ + "@interactjs/types@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/types@1.10.11", + "_id": "@interactjs/types@1.10.11", + "_inBundle": false, + "_integrity": "sha1-Kb4l1QP5x4Qt8GL6PNpbBEpHzyo=", + "_location": "/@interactjs/types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/types@1.10.11", + "name": "@interactjs/types", + "escapedName": "@interactjs%2ftypes", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interact" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/types/download/@interactjs/types-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", "devDependencies": { "@interactjs/actions": "1.10.11", "@interactjs/auto-scroll": "1.10.11", @@ -19,6 +44,10 @@ "@interactjs/snappers": "1.10.11", "@interactjs/utils": "1.10.11" }, + "license": "MIT", + "main": "index", + "module": "index", + "name": "@interactjs/types", "publishConfig": { "access": "public" }, @@ -26,5 +55,6 @@ "**/index.js", "**/index.prod.js" ], - "license": "MIT" + "typings": "typings.d.ts", + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@interactjs/utils/package.json b/admin/vue2/element-admin-v3/node_modules/@interactjs/utils/package.json index 49de58401..6942658fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/@interactjs/utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@interactjs/utils/package.json @@ -1,10 +1,41 @@ { + "_args": [ + [ + "@interactjs/utils@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@interactjs/utils@1.10.11", + "_id": "@interactjs/utils@1.10.11", + "_inBundle": false, + "_integrity": "sha1-k50PEo36lsZzJ2zKPrfzE9ktqr8=", + "_location": "/@interactjs/utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@interactjs/utils@1.10.11", + "name": "@interactjs/utils", + "escapedName": "@interactjs%2futils", + "scope": "@interactjs", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" + }, + "_requiredBy": [ + "/@interactjs/interact", + "/@interactjs/interactjs" + ], + "_resolved": "https://registry.npm.taobao.org/@interactjs/utils/download/@interactjs/utils-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "description": "

This package is an internal part of interactjs and is not meant to be used independently as each update may introduce breaking changes

", + "license": "MIT", "name": "@interactjs/utils", - "version": "1.10.11", "peerDependencies": {}, "publishConfig": { "access": "public" }, "sideEffects": false, - "license": "MIT" + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/@samverschueren/stream-to-observable/package.json b/admin/vue2/element-admin-v3/node_modules/@samverschueren/stream-to-observable/package.json index 3054e6baf..bc87aa153 100644 --- a/admin/vue2/element-admin-v3/node_modules/@samverschueren/stream-to-observable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@samverschueren/stream-to-observable/package.json @@ -1,50 +1,87 @@ { - "name": "@samverschueren/stream-to-observable", - "version": "0.3.1", - "description": "Convert Node Streams into ECMAScript-Observables", - "license": "MIT", - "repository": "SamVerschueren/stream-to-observable", - "maintainers": [ - { - "name": "Sam Verschueren", - "email": "sam.verschueren@gmail.com", - "url": "github.com/SamVerschueren" - } - ], - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && nyc --reporter=lcov --reporter=text npm run test_both", - "test_both": "ava --require=any-observable/register/rxjs && ava --require=any-observable/register/zen" - }, - "files": [ - "index.js" - ], - "keywords": [ - "stream", - "observable", - "convert" - ], - "dependencies": { - "any-observable": "^0.3.0" - }, - "devDependencies": { - "array-to-events": "^1.0.0", - "ava": "^0.25.0", - "coveralls": "^3.0.0", - "delay": "^2.0.0", - "nyc": "^11.7.1", - "rxjs": "^5.5.10", - "xo": "^0.20.3", - "zen-observable": "^0.8.8" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } + "_args": [ + [ + "@samverschueren/stream-to-observable@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@samverschueren/stream-to-observable@0.3.1", + "_id": "@samverschueren/stream-to-observable@0.3.1", + "_inBundle": false, + "_integrity": "sha1-ohEXsZ7pvnDDeewYd1N+8uHGMwE=", + "_location": "/@samverschueren/stream-to-observable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@samverschueren/stream-to-observable@0.3.1", + "name": "@samverschueren/stream-to-observable", + "escapedName": "@samverschueren%2fstream-to-observable", + "scope": "@samverschueren", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" + }, + "_requiredBy": [ + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/@samverschueren/stream-to-observable/download/@samverschueren/stream-to-observable-0.3.1.tgz?cache=0&sync_timestamp=1596972198395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40samverschueren%2Fstream-to-observable%2Fdownload%2F%40samverschueren%2Fstream-to-observable-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/SamVerschueren/stream-to-observable/issues" + }, + "dependencies": { + "any-observable": "^0.3.0" + }, + "description": "Convert Node Streams into ECMAScript-Observables", + "devDependencies": { + "array-to-events": "^1.0.0", + "ava": "^0.25.0", + "coveralls": "^3.0.0", + "delay": "^2.0.0", + "nyc": "^11.7.1", + "rxjs": "^5.5.10", + "xo": "^0.20.3", + "zen-observable": "^0.8.8" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/SamVerschueren/stream-to-observable#readme", + "keywords": [ + "stream", + "observable", + "convert" + ], + "license": "MIT", + "maintainers": [ + { + "name": "Sam Verschueren", + "email": "sam.verschueren@gmail.com", + "url": "github.com/SamVerschueren" + } + ], + "name": "@samverschueren/stream-to-observable", + "peerDependenciesMeta": { + "rxjs": { + "optional": true + }, + "zen-observable": { + "optional": true + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/stream-to-observable.git" + }, + "scripts": { + "test": "xo && nyc --reporter=lcov --reporter=text npm run test_both", + "test_both": "ava --require=any-observable/register/rxjs && ava --require=any-observable/register/zen" + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/@tinymce/tinymce-vue/package.json b/admin/vue2/element-admin-v3/node_modules/@tinymce/tinymce-vue/package.json index c854206c5..090cbad8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/@tinymce/tinymce-vue/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@tinymce/tinymce-vue/package.json @@ -1,38 +1,40 @@ { - "name": "@tinymce/tinymce-vue", - "version": "3.2.8", - "description": "Official TinyMCE Vue Component", - "private": false, - "repository": { - "url": "https://github.com/tinymce/tinymce-vue" - }, - "main": "lib/cjs/main/ts/index.js", - "module": "lib/es2015/main/ts/index.js", - "scripts": { - "test": "bedrock-auto -b chrome-headless -f src/test/ts/**/*Test.ts", - "test-manual": "bedrock -f src/test/ts/**/*Test.ts", - "clean": "rimraf lib", - "lint": "tslint src/**/*.ts", - "build": "yarn run clean && yarn run lint && tsc -p ./tsconfig.es2015.json && tsc -p ./tsconfig.cjs.json && node rollup.build.js", - "prepare": "yarn run build", - "storybook": "start-storybook -p 9001 -c .storybook" - }, - "keywords": [ - "tinymce", - "vue", - "component" + "_args": [ + [ + "@tinymce/tinymce-vue@3.2.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Ephox Inc", - "license": "Apache-2.0", - "files": [ - "lib/*/**", - "README.md", - "CHANGELOG.md", - "LICENSE.txt" + "_from": "@tinymce/tinymce-vue@3.2.8", + "_id": "@tinymce/tinymce-vue@3.2.8", + "_inBundle": false, + "_integrity": "sha1-AUVxtS7I+oNmWn+oh79lFAIH3nE=", + "_location": "/@tinymce/tinymce-vue", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@tinymce/tinymce-vue@3.2.8", + "name": "@tinymce/tinymce-vue", + "escapedName": "@tinymce%2ftinymce-vue", + "scope": "@tinymce", + "rawSpec": "3.2.8", + "saveSpec": null, + "fetchSpec": "3.2.8" + }, + "_requiredBy": [ + "/" ], - "peerDependencies": { - "vue": "^2.4.3" + "_resolved": "https://registry.nlark.com/@tinymce/tinymce-vue/download/@tinymce/tinymce-vue-3.2.8.tgz", + "_spec": "3.2.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ephox Inc" + }, + "bugs": { + "url": "https://github.com/tinymce/tinymce-vue/issues" }, + "description": "Official TinyMCE Vue Component", "devDependencies": { "@babel/core": "^7.9.6", "@ephox/agar": "^4.13.10", @@ -69,5 +71,38 @@ "vue-loader": "^15.7.0", "vue-template-compiler": "^2.6.10", "webpack": "^4.43.0" - } + }, + "files": [ + "lib/*/**", + "README.md", + "CHANGELOG.md", + "LICENSE.txt" + ], + "homepage": "https://github.com/tinymce/tinymce-vue#readme", + "keywords": [ + "tinymce", + "vue", + "component" + ], + "license": "Apache-2.0", + "main": "lib/cjs/main/ts/index.js", + "module": "lib/es2015/main/ts/index.js", + "name": "@tinymce/tinymce-vue", + "peerDependencies": { + "vue": "^2.4.3" + }, + "private": false, + "repository": { + "url": "git+https://github.com/tinymce/tinymce-vue.git" + }, + "scripts": { + "build": "yarn run clean && yarn run lint && tsc -p ./tsconfig.es2015.json && tsc -p ./tsconfig.cjs.json && node rollup.build.js", + "clean": "rimraf lib", + "lint": "tslint src/**/*.ts", + "prepare": "yarn run build", + "storybook": "start-storybook -p 9001 -c .storybook", + "test": "bedrock-auto -b chrome-headless -f src/test/ts/**/*Test.ts", + "test-manual": "bedrock -f src/test/ts/**/*Test.ts" + }, + "version": "3.2.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/@types/babel-types/package.json b/admin/vue2/element-admin-v3/node_modules/@types/babel-types/package.json index 8813ea741..231cb72e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/babel-types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/babel-types/package.json @@ -1,51 +1,81 @@ { + "_args": [ + [ + "@types/babel-types@7.0.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@types/babel-types@7.0.9", + "_id": "@types/babel-types@7.0.9", + "_inBundle": false, + "_integrity": "sha1-Ade4aUn0VUAqlMeIiD/kuldMrUE=", + "_location": "/@types/babel-types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/babel-types@7.0.9", "name": "@types/babel-types", - "version": "7.0.9", - "description": "TypeScript definitions for babel-types", - "license": "MIT", - "contributors": [ - { - "name": "Troy Gerwien", - "url": "https://github.com/yortus", - "githubUsername": "yortus" - }, - { - "name": "Sam Baxter", - "url": "https://github.com/baxtersa", - "githubUsername": "baxtersa" - }, - { - "name": "Marvin Hagemeister", - "url": "https://github.com/marvinhagemeister", - "githubUsername": "marvinhagemeister" - }, - { - "name": "Boris Cherny", - "url": "https://github.com/bcherny", - "githubUsername": "bcherny" - }, - { - "name": "ExE Boss", - "url": "https://github.com/ExE-Boss", - "githubUsername": "ExE-Boss" - } - ], - "main": "", - "types": "index.d.ts", - "typesVersions": { - "<=3.6": { - "*": [ - "ts3.6/*" - ] - } + "escapedName": "@types%2fbabel-types", + "scope": "@types", + "rawSpec": "7.0.9", + "saveSpec": null, + "fetchSpec": "7.0.9" + }, + "_requiredBy": [ + "/@types/babylon", + "/pug-html-loader/constantinople" + ], + "_resolved": "https://registry.nlark.com/@types/babel-types/download/@types/babel-types-7.0.9.tgz?cache=0&sync_timestamp=1621240632653&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel-types%2Fdownload%2F%40types%2Fbabel-types-7.0.9.tgz", + "_spec": "7.0.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "Troy Gerwien", + "url": "https://github.com/yortus" }, - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/babel-types" + { + "name": "Sam Baxter", + "url": "https://github.com/baxtersa" }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "0c71c2106ec387ae2bfd63b4429f2e5fe534b5416b903fdf463bae67f92d35a1", - "typeScriptVersion": "3.1" -} \ No newline at end of file + { + "name": "Marvin Hagemeister", + "url": "https://github.com/marvinhagemeister" + }, + { + "name": "Boris Cherny", + "url": "https://github.com/bcherny" + }, + { + "name": "ExE Boss", + "url": "https://github.com/ExE-Boss" + } + ], + "dependencies": {}, + "description": "TypeScript definitions for babel-types", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/babel-types", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/babel-types" + }, + "scripts": {}, + "typeScriptVersion": "3.1", + "types": "index.d.ts", + "typesPublisherContentHash": "0c71c2106ec387ae2bfd63b4429f2e5fe534b5416b903fdf463bae67f92d35a1", + "typesVersions": { + "<=3.6": { + "*": [ + "ts3.6/*" + ] + } + }, + "version": "7.0.9" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/babylon/package.json b/admin/vue2/element-admin-v3/node_modules/@types/babylon/package.json index 48e451bf6..fb6961563 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/babylon/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/babylon/package.json @@ -1,30 +1,62 @@ { + "_args": [ + [ + "@types/babylon@6.16.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@types/babylon@6.16.5", + "_id": "@types/babylon@6.16.5", + "_inBundle": false, + "_integrity": "sha1-HFZB22nrjN83jt0ltL53VL7rSLQ=", + "_location": "/@types/babylon", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/babylon@6.16.5", "name": "@types/babylon", - "version": "6.16.5", - "description": "TypeScript definitions for babylon", - "license": "MIT", - "contributors": [ - { - "name": "Troy Gerwien", - "url": "https://github.com/yortus", - "githubUsername": "yortus" - }, - { - "name": "Marvin Hagemeister", - "url": "https://github.com/marvinhagemeister", - "githubUsername": "marvinhagemeister" - } - ], - "main": "", - "types": "index", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git" + "escapedName": "@types%2fbabylon", + "scope": "@types", + "rawSpec": "6.16.5", + "saveSpec": null, + "fetchSpec": "6.16.5" + }, + "_requiredBy": [ + "/pug-html-loader/constantinople" + ], + "_resolved": "https://registry.nlark.com/@types/babylon/download/@types/babylon-6.16.5.tgz?cache=0&sync_timestamp=1621240706494&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabylon%2Fdownload%2F%40types%2Fbabylon-6.16.5.tgz", + "_spec": "6.16.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "Troy Gerwien", + "url": "https://github.com/yortus" }, - "scripts": {}, - "dependencies": { - "@types/babel-types": "*" - }, - "typesPublisherContentHash": "d6861e06508c0c54a6a46d7b72e96db7907de3621ac44aab8a3e647b8431cddd", - "typeScriptVersion": "2.8" -} \ No newline at end of file + { + "name": "Marvin Hagemeister", + "url": "https://github.com/marvinhagemeister" + } + ], + "dependencies": { + "@types/babel-types": "*" + }, + "description": "TypeScript definitions for babylon", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/babylon", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git" + }, + "scripts": {}, + "typeScriptVersion": "2.8", + "types": "index", + "typesPublisherContentHash": "d6861e06508c0c54a6a46d7b72e96db7907de3621ac44aab8a3e647b8431cddd", + "version": "6.16.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/d3-timer/package.json b/admin/vue2/element-admin-v3/node_modules/@types/d3-timer/package.json index 3db18bea3..068104cc6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/d3-timer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/d3-timer/package.json @@ -1,44 +1,72 @@ { + "_args": [ + [ + "@types/d3-timer@1.0.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@types/d3-timer@1.0.10", + "_id": "@types/d3-timer@1.0.10", + "_inBundle": false, + "_integrity": "sha1-MpxRwskx9E7QrP94uMhFcazw7SE=", + "_location": "/@types/d3-timer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/d3-timer@1.0.10", "name": "@types/d3-timer", - "version": "1.0.10", - "description": "TypeScript definitions for d3JS d3-timer module", - "license": "MIT", - "contributors": [ - { - "name": "Tom Wanzek", - "url": "https://github.com/tomwanzek", - "githubUsername": "tomwanzek" - }, - { - "name": "Alex Ford", - "url": "https://github.com/gustavderdrache", - "githubUsername": "gustavderdrache" - }, - { - "name": "Boris Yankov", - "url": "https://github.com/borisyankov", - "githubUsername": "borisyankov" - }, - { - "name": "denisname", - "url": "https://github.com/denisname", - "githubUsername": "denisname" - }, - { - "name": "Nathan Bierema", - "url": "https://github.com/Methuselah96", - "githubUsername": "Methuselah96" - } - ], - "main": "", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/d3-timer" + "escapedName": "@types%2fd3-timer", + "scope": "@types", + "rawSpec": "1.0.10", + "saveSpec": null, + "fetchSpec": "1.0.10" + }, + "_requiredBy": [ + "/@antv/g-base" + ], + "_resolved": "https://registry.nlark.com/@types/d3-timer/download/@types/d3-timer-1.0.10.tgz", + "_spec": "1.0.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "Tom Wanzek", + "url": "https://github.com/tomwanzek" }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "fe09e9574d07c148e8e85dd3bd98edd2077b413f9213ffd6c43027c67f245e01", - "typeScriptVersion": "3.2" -} \ No newline at end of file + { + "name": "Alex Ford", + "url": "https://github.com/gustavderdrache" + }, + { + "name": "Boris Yankov", + "url": "https://github.com/borisyankov" + }, + { + "name": "denisname", + "url": "https://github.com/denisname" + }, + { + "name": "Nathan Bierema", + "url": "https://github.com/Methuselah96" + } + ], + "dependencies": {}, + "description": "TypeScript definitions for d3JS d3-timer module", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/d3-timer", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/d3-timer" + }, + "scripts": {}, + "typeScriptVersion": "3.2", + "types": "index.d.ts", + "typesPublisherContentHash": "fe09e9574d07c148e8e85dd3bd98edd2077b413f9213ffd6c43027c67f245e01", + "version": "1.0.10" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/glob/package.json b/admin/vue2/element-admin-v3/node_modules/@types/glob/package.json index dba0beb1b..4b7eb3b4f 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/glob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/glob/package.json @@ -1,42 +1,71 @@ { + "_args": [ + [ + "@types/glob@7.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@types/glob@7.1.3", + "_id": "@types/glob@7.1.3", + "_inBundle": false, + "_integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "_location": "/@types/glob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/glob@7.1.3", "name": "@types/glob", - "version": "7.1.3", - "description": "TypeScript definitions for Glob", - "license": "MIT", - "contributors": [ - { - "name": "vvakame", - "url": "https://github.com/vvakame", - "githubUsername": "vvakame" - }, - { - "name": "voy", - "url": "https://github.com/voy", - "githubUsername": "voy" - }, - { - "name": "Klaus Meinhardt", - "url": "https://github.com/ajafff", - "githubUsername": "ajafff" - }, - { - "name": "Piotr Błażejewicz", - "url": "https://github.com/peterblazejewicz", - "githubUsername": "peterblazejewicz" - } - ], - "main": "", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/glob" + "escapedName": "@types%2fglob", + "scope": "@types", + "rawSpec": "7.1.3", + "saveSpec": null, + "fetchSpec": "7.1.3" + }, + "_requiredBy": [ + "/del" + ], + "_resolved": "https://registry.nlark.com/@types/glob/download/@types/glob-7.1.3.tgz", + "_spec": "7.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "vvakame", + "url": "https://github.com/vvakame" }, - "scripts": {}, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + { + "name": "voy", + "url": "https://github.com/voy" }, - "typesPublisherContentHash": "7749df2e489409fe93fbc5902be2e14db351a40c53d972c3b2fd802ed2b175e1", - "typeScriptVersion": "3.0" -} \ No newline at end of file + { + "name": "Klaus Meinhardt", + "url": "https://github.com/ajafff" + }, + { + "name": "Piotr Błażejewicz", + "url": "https://github.com/peterblazejewicz" + } + ], + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + }, + "description": "TypeScript definitions for Glob", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/glob", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/glob" + }, + "scripts": {}, + "typeScriptVersion": "3.0", + "types": "index.d.ts", + "typesPublisherContentHash": "7749df2e489409fe93fbc5902be2e14db351a40c53d972c3b2fd802ed2b175e1", + "version": "7.1.3" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/minimatch/package.json b/admin/vue2/element-admin-v3/node_modules/@types/minimatch/package.json index a6da7c989..eb324557f 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/minimatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/minimatch/package.json @@ -1,29 +1,60 @@ { + "_args": [ + [ + "@types/minimatch@3.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@types/minimatch@3.0.4", + "_id": "@types/minimatch@3.0.4", + "_inBundle": false, + "_integrity": "sha1-8Owl2/Lw5LGGRzE6wDETTKWySyE=", + "_location": "/@types/minimatch", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/minimatch@3.0.4", "name": "@types/minimatch", - "version": "3.0.4", - "description": "TypeScript definitions for Minimatch", - "license": "MIT", - "contributors": [ - { - "name": "vvakame", - "url": "https://github.com/vvakame", - "githubUsername": "vvakame" - }, - { - "name": "Shant Marouti", - "url": "https://github.com/shantmarouti", - "githubUsername": "shantmarouti" - } - ], - "main": "", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/minimatch" + "escapedName": "@types%2fminimatch", + "scope": "@types", + "rawSpec": "3.0.4", + "saveSpec": null, + "fetchSpec": "3.0.4" + }, + "_requiredBy": [ + "/@types/glob" + ], + "_resolved": "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.4.tgz", + "_spec": "3.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "vvakame", + "url": "https://github.com/vvakame" }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "85c664aff6e2fa33838e58fff278a03bfc92e75debbcbc24f3b9cf9b03daa8f0", - "typeScriptVersion": "3.5" -} \ No newline at end of file + { + "name": "Shant Marouti", + "url": "https://github.com/shantmarouti" + } + ], + "dependencies": {}, + "description": "TypeScript definitions for Minimatch", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/minimatch", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/minimatch" + }, + "scripts": {}, + "typeScriptVersion": "3.5", + "types": "index.d.ts", + "typesPublisherContentHash": "85c664aff6e2fa33838e58fff278a03bfc92e75debbcbc24f3b9cf9b03daa8f0", + "version": "3.0.4" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/node/package.json b/admin/vue2/element-admin-v3/node_modules/@types/node/package.json index bc67d0936..c1e633945 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/node/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/node/package.json @@ -1,232 +1,223 @@ { + "_args": [ + [ + "@types/node@15.12.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@types/node@15.12.2", + "_id": "@types/node@15.12.2", + "_inBundle": false, + "_integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=", + "_location": "/@types/node", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/node@15.12.2", "name": "@types/node", - "version": "15.12.2", - "description": "TypeScript definitions for Node.js", - "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node", - "license": "MIT", - "contributors": [ - { - "name": "Microsoft TypeScript", - "url": "https://github.com/Microsoft", - "githubUsername": "Microsoft" - }, - { - "name": "DefinitelyTyped", - "url": "https://github.com/DefinitelyTyped", - "githubUsername": "DefinitelyTyped" - }, - { - "name": "Alberto Schiabel", - "url": "https://github.com/jkomyno", - "githubUsername": "jkomyno" - }, - { - "name": "Alvis HT Tang", - "url": "https://github.com/alvis", - "githubUsername": "alvis" - }, - { - "name": "Andrew Makarov", - "url": "https://github.com/r3nya", - "githubUsername": "r3nya" - }, - { - "name": "Benjamin Toueg", - "url": "https://github.com/btoueg", - "githubUsername": "btoueg" - }, - { - "name": "Chigozirim C.", - "url": "https://github.com/smac89", - "githubUsername": "smac89" - }, - { - "name": "David Junger", - "url": "https://github.com/touffy", - "githubUsername": "touffy" - }, - { - "name": "Deividas Bakanas", - "url": "https://github.com/DeividasBakanas", - "githubUsername": "DeividasBakanas" - }, - { - "name": "Eugene Y. Q. Shen", - "url": "https://github.com/eyqs", - "githubUsername": "eyqs" - }, - { - "name": "Hannes Magnusson", - "url": "https://github.com/Hannes-Magnusson-CK", - "githubUsername": "Hannes-Magnusson-CK" - }, - { - "name": "Hoàng Văn Khải", - "url": "https://github.com/KSXGitHub", - "githubUsername": "KSXGitHub" - }, - { - "name": "Huw", - "url": "https://github.com/hoo29", - "githubUsername": "hoo29" - }, - { - "name": "Kelvin Jin", - "url": "https://github.com/kjin", - "githubUsername": "kjin" - }, - { - "name": "Klaus Meinhardt", - "url": "https://github.com/ajafff", - "githubUsername": "ajafff" - }, - { - "name": "Lishude", - "url": "https://github.com/islishude", - "githubUsername": "islishude" - }, - { - "name": "Mariusz Wiktorczyk", - "url": "https://github.com/mwiktorczyk", - "githubUsername": "mwiktorczyk" - }, - { - "name": "Mohsen Azimi", - "url": "https://github.com/mohsen1", - "githubUsername": "mohsen1" - }, - { - "name": "Nicolas Even", - "url": "https://github.com/n-e", - "githubUsername": "n-e" - }, - { - "name": "Nikita Galkin", - "url": "https://github.com/galkin", - "githubUsername": "galkin" - }, - { - "name": "Parambir Singh", - "url": "https://github.com/parambirs", - "githubUsername": "parambirs" - }, - { - "name": "Sebastian Silbermann", - "url": "https://github.com/eps1lon", - "githubUsername": "eps1lon" - }, - { - "name": "Simon Schick", - "url": "https://github.com/SimonSchick", - "githubUsername": "SimonSchick" - }, - { - "name": "Thomas den Hollander", - "url": "https://github.com/ThomasdenH", - "githubUsername": "ThomasdenH" - }, - { - "name": "Wilco Bakker", - "url": "https://github.com/WilcoBakker", - "githubUsername": "WilcoBakker" - }, - { - "name": "wwwy3y3", - "url": "https://github.com/wwwy3y3", - "githubUsername": "wwwy3y3" - }, - { - "name": "Samuel Ainsworth", - "url": "https://github.com/samuela", - "githubUsername": "samuela" - }, - { - "name": "Kyle Uehlein", - "url": "https://github.com/kuehlein", - "githubUsername": "kuehlein" - }, - { - "name": "Thanik Bhongbhibhat", - "url": "https://github.com/bhongy", - "githubUsername": "bhongy" - }, - { - "name": "Marcin Kopacz", - "url": "https://github.com/chyzwar", - "githubUsername": "chyzwar" - }, - { - "name": "Trivikram Kamat", - "url": "https://github.com/trivikr", - "githubUsername": "trivikr" - }, - { - "name": "Minh Son Nguyen", - "url": "https://github.com/nguymin4", - "githubUsername": "nguymin4" - }, - { - "name": "Junxiao Shi", - "url": "https://github.com/yoursunny", - "githubUsername": "yoursunny" - }, - { - "name": "Ilia Baryshnikov", - "url": "https://github.com/qwelias", - "githubUsername": "qwelias" - }, - { - "name": "ExE Boss", - "url": "https://github.com/ExE-Boss", - "githubUsername": "ExE-Boss" - }, - { - "name": "Surasak Chaisurin", - "url": "https://github.com/Ryan-Willpower", - "githubUsername": "Ryan-Willpower" - }, - { - "name": "Piotr Błażejewicz", - "url": "https://github.com/peterblazejewicz", - "githubUsername": "peterblazejewicz" - }, - { - "name": "Anna Henningsen", - "url": "https://github.com/addaleax", - "githubUsername": "addaleax" - }, - { - "name": "Jason Kwok", - "url": "https://github.com/JasonHK", - "githubUsername": "JasonHK" - }, - { - "name": "Victor Perin", - "url": "https://github.com/victorperin", - "githubUsername": "victorperin" - }, - { - "name": "Yongsheng Zhang", - "url": "https://github.com/ZYSzys", - "githubUsername": "ZYSzys" - } - ], - "main": "", - "types": "index.d.ts", - "typesVersions": { - "<=3.6": { - "*": [ - "ts3.6/*" - ] - } - }, - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/node" - }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "9713490f7bb15f02ab4ef68c39e2ec33cdecadbc39062c33ca86f9e4d8018d9b", - "typeScriptVersion": "3.6" -} \ No newline at end of file + "escapedName": "@types%2fnode", + "scope": "@types", + "rawSpec": "15.12.2", + "saveSpec": null, + "fetchSpec": "15.12.2" + }, + "_requiredBy": [ + "/@types/glob" + ], + "_resolved": "https://registry.nlark.com/@types/node/download/@types/node-15.12.2.tgz", + "_spec": "15.12.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "Microsoft TypeScript", + "url": "https://github.com/Microsoft" + }, + { + "name": "DefinitelyTyped", + "url": "https://github.com/DefinitelyTyped" + }, + { + "name": "Alberto Schiabel", + "url": "https://github.com/jkomyno" + }, + { + "name": "Alvis HT Tang", + "url": "https://github.com/alvis" + }, + { + "name": "Andrew Makarov", + "url": "https://github.com/r3nya" + }, + { + "name": "Benjamin Toueg", + "url": "https://github.com/btoueg" + }, + { + "name": "Chigozirim C.", + "url": "https://github.com/smac89" + }, + { + "name": "David Junger", + "url": "https://github.com/touffy" + }, + { + "name": "Deividas Bakanas", + "url": "https://github.com/DeividasBakanas" + }, + { + "name": "Eugene Y. Q. Shen", + "url": "https://github.com/eyqs" + }, + { + "name": "Hannes Magnusson", + "url": "https://github.com/Hannes-Magnusson-CK" + }, + { + "name": "Hoàng Văn Khải", + "url": "https://github.com/KSXGitHub" + }, + { + "name": "Huw", + "url": "https://github.com/hoo29" + }, + { + "name": "Kelvin Jin", + "url": "https://github.com/kjin" + }, + { + "name": "Klaus Meinhardt", + "url": "https://github.com/ajafff" + }, + { + "name": "Lishude", + "url": "https://github.com/islishude" + }, + { + "name": "Mariusz Wiktorczyk", + "url": "https://github.com/mwiktorczyk" + }, + { + "name": "Mohsen Azimi", + "url": "https://github.com/mohsen1" + }, + { + "name": "Nicolas Even", + "url": "https://github.com/n-e" + }, + { + "name": "Nikita Galkin", + "url": "https://github.com/galkin" + }, + { + "name": "Parambir Singh", + "url": "https://github.com/parambirs" + }, + { + "name": "Sebastian Silbermann", + "url": "https://github.com/eps1lon" + }, + { + "name": "Simon Schick", + "url": "https://github.com/SimonSchick" + }, + { + "name": "Thomas den Hollander", + "url": "https://github.com/ThomasdenH" + }, + { + "name": "Wilco Bakker", + "url": "https://github.com/WilcoBakker" + }, + { + "name": "wwwy3y3", + "url": "https://github.com/wwwy3y3" + }, + { + "name": "Samuel Ainsworth", + "url": "https://github.com/samuela" + }, + { + "name": "Kyle Uehlein", + "url": "https://github.com/kuehlein" + }, + { + "name": "Thanik Bhongbhibhat", + "url": "https://github.com/bhongy" + }, + { + "name": "Marcin Kopacz", + "url": "https://github.com/chyzwar" + }, + { + "name": "Trivikram Kamat", + "url": "https://github.com/trivikr" + }, + { + "name": "Minh Son Nguyen", + "url": "https://github.com/nguymin4" + }, + { + "name": "Junxiao Shi", + "url": "https://github.com/yoursunny" + }, + { + "name": "Ilia Baryshnikov", + "url": "https://github.com/qwelias" + }, + { + "name": "ExE Boss", + "url": "https://github.com/ExE-Boss" + }, + { + "name": "Surasak Chaisurin", + "url": "https://github.com/Ryan-Willpower" + }, + { + "name": "Piotr Błażejewicz", + "url": "https://github.com/peterblazejewicz" + }, + { + "name": "Anna Henningsen", + "url": "https://github.com/addaleax" + }, + { + "name": "Jason Kwok", + "url": "https://github.com/JasonHK" + }, + { + "name": "Victor Perin", + "url": "https://github.com/victorperin" + }, + { + "name": "Yongsheng Zhang", + "url": "https://github.com/ZYSzys" + } + ], + "dependencies": {}, + "description": "TypeScript definitions for Node.js", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node", + "license": "MIT", + "main": "", + "name": "@types/node", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/node" + }, + "scripts": {}, + "typeScriptVersion": "3.6", + "types": "index.d.ts", + "typesPublisherContentHash": "9713490f7bb15f02ab4ef68c39e2ec33cdecadbc39062c33ca86f9e4d8018d9b", + "typesVersions": { + "<=3.6": { + "*": [ + "ts3.6/*" + ] + } + }, + "version": "15.12.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/q/package.json b/admin/vue2/element-admin-v3/node_modules/@types/q/package.json index 4e0b93016..48bf585bc 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/q/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/q/package.json @@ -1,44 +1,73 @@ { + "_args": [ + [ + "@types/q@1.5.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@types/q@1.5.4", + "_id": "@types/q@1.5.4", + "_inBundle": false, + "_integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", + "_location": "/@types/q", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/q@1.5.4", "name": "@types/q", - "version": "1.5.4", - "description": "TypeScript definitions for Q", - "license": "MIT", - "contributors": [ - { - "name": "Barrie Nemetchek", - "url": "https://github.com/bnemetchek", - "githubUsername": "bnemetchek" - }, - { - "name": "Andrew Gaspar", - "url": "https://github.com/AndrewGaspar", - "githubUsername": "AndrewGaspar" - }, - { - "name": "John Reilly", - "url": "https://github.com/johnnyreilly", - "githubUsername": "johnnyreilly" - }, - { - "name": "Michel Boudreau", - "url": "https://github.com/mboudreau", - "githubUsername": "mboudreau" - }, - { - "name": "TeamworkGuy2", - "url": "https://github.com/TeamworkGuy2", - "githubUsername": "TeamworkGuy2" - } - ], - "main": "", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/q" + "escapedName": "@types%2fq", + "scope": "@types", + "rawSpec": "1.5.4", + "saveSpec": null, + "fetchSpec": "1.5.4" + }, + "_requiredBy": [ + "/coa" + ], + "_resolved": "https://registry.nlark.com/@types/q/download/@types/q-1.5.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz", + "_spec": "1.5.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "Barrie Nemetchek", + "url": "https://github.com/bnemetchek" }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "468c45fb0acfd51599db9fd0186f40568f238a731e9d591452de2c66ac244221", - "typeScriptVersion": "3.0" -} \ No newline at end of file + { + "name": "Andrew Gaspar", + "url": "https://github.com/AndrewGaspar" + }, + { + "name": "John Reilly", + "url": "https://github.com/johnnyreilly" + }, + { + "name": "Michel Boudreau", + "url": "https://github.com/mboudreau" + }, + { + "name": "TeamworkGuy2", + "url": "https://github.com/TeamworkGuy2" + } + ], + "dependencies": {}, + "description": "TypeScript definitions for Q", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/q", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/q" + }, + "scripts": {}, + "typeScriptVersion": "3.0", + "types": "index.d.ts", + "typesPublisherContentHash": "468c45fb0acfd51599db9fd0186f40568f238a731e9d591452de2c66ac244221", + "version": "1.5.4" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@types/tapable/package.json b/admin/vue2/element-admin-v3/node_modules/@types/tapable/package.json index f296bfdd9..73383a33a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@types/tapable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@types/tapable/package.json @@ -1,22 +1,55 @@ { + "_args": [ + [ + "@types/tapable@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@types/tapable@1.0.2", + "_id": "@types/tapable@1.0.2", + "_inBundle": false, + "_integrity": "sha1-4TGC4baYcaQi14Y+EaSm9bgUpL0=", + "_location": "/@types/tapable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@types/tapable@1.0.2", "name": "@types/tapable", - "version": "1.0.2", - "description": "TypeScript definitions for tapable", - "license": "MIT", - "contributors": [ - { - "name": "e-cloud", - "url": "https://github.com/e-cloud", - "githubUsername": "e-cloud" - } - ], - "main": "", - "repository": { - "type": "git", - "url": "https://www.github.com/DefinitelyTyped/DefinitelyTyped.git" - }, - "scripts": {}, - "dependencies": {}, - "typesPublisherContentHash": "87260b7dd8eb3a6cac1f9d3d032580e48789a47cc92c6d5129f629fa9439ae4a", - "typeScriptVersion": "2.3" -} \ No newline at end of file + "escapedName": "@types%2ftapable", + "scope": "@types", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/html-webpack-plugin" + ], + "_resolved": "https://registry.nlark.com/@types/tapable/download/@types/tapable-1.0.2.tgz?cache=0&sync_timestamp=1621243788434&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "contributors": [ + { + "name": "e-cloud", + "url": "https://github.com/e-cloud" + } + ], + "dependencies": {}, + "description": "TypeScript definitions for tapable", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/tapable", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git" + }, + "scripts": {}, + "typeScriptVersion": "2.3", + "typesPublisherContentHash": "87260b7dd8eb3a6cac1f9d3d032580e48789a47cc92c6d5129f629fa9439ae4a", + "version": "1.0.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc index c9b52142b..b8e1908ad 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@" + "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@" + ret=$? else - exec node "$basedir/../cssesc/bin/cssesc" "$@" + node "$basedir/../cssesc/bin/cssesc" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.cmd b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.cmd index a79d95bca..18605d891 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.cmd +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cssesc\bin\cssesc" %* +"%_prog%" "%dp0%\..\cssesc\bin\cssesc" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.ps1 b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.ps1 index 480aa17f8..f07748867 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/.bin/cssesc.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args - } else { - & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args - } + & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../cssesc/bin/cssesc" $args - } else { - & "node$exe" "$basedir/../cssesc/bin/cssesc" $args - } + & "node$exe" "$basedir/../cssesc/bin/cssesc" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/ansi-styles/package.json index 65edb48c3..202df6ac3 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/@vue/component-compiler-utils/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..15ef9a19a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/@vue/component-compiler-utils/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/package.json index bc324685a..5120af2ac 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/@vue/component-compiler-utils/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/cssesc/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/cssesc/package.json index 02ded9cac..fda84683a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/cssesc/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/cssesc/package.json @@ -1,42 +1,44 @@ { - "name": "cssesc", - "version": "2.0.0", - "description": "A JavaScript library for escaping CSS strings and identifiers while generating the shortest possible ASCII-only output.", - "homepage": "https://mths.be/cssesc", - "engines": { - "node": ">=4" + "_args": [ + [ + "cssesc@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cssesc@2.0.0", + "_id": "cssesc@2.0.0", + "_inBundle": false, + "_integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", + "_location": "/@vue/component-compiler-utils/cssesc", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssesc@2.0.0", + "name": "cssesc", + "escapedName": "cssesc", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "main": "cssesc.js", - "bin": "bin/cssesc", - "man": "man/cssesc.1", - "keywords": [ - "css", - "escape", - "identifier", - "string", - "tool" + "_requiredBy": [ + "/@vue/component-compiler-utils/postcss-selector-parser" ], - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Mathias Bynens", "url": "https://mathiasbynens.be/" }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/cssesc.git" + "bin": { + "cssesc": "bin/cssesc" }, - "bugs": "https://github.com/mathiasbynens/cssesc/issues", - "files": [ - "LICENSE-MIT.txt", - "cssesc.js", - "bin/", - "man/" - ], - "scripts": { - "build": "grunt template && babel cssesc.js -o cssesc.js", - "test": "mocha tests", - "cover": "istanbul cover --report html node_modules/.bin/_mocha tests -- -u exports -R spec" + "bugs": { + "url": "https://github.com/mathiasbynens/cssesc/issues" }, + "description": "A JavaScript library for escaping CSS strings and identifiers while generating the shortest possible ASCII-only output.", "devDependencies": { "babel-cli": "^6.26.0", "babel-preset-env": "^1.6.1", @@ -47,5 +49,38 @@ "mocha": "^2.5.3", "regenerate": "^1.2.1", "requirejs": "^2.1.16" - } + }, + "engines": { + "node": ">=4" + }, + "files": [ + "LICENSE-MIT.txt", + "cssesc.js", + "bin/", + "man/" + ], + "homepage": "https://mths.be/cssesc", + "keywords": [ + "css", + "escape", + "identifier", + "string", + "tool" + ], + "license": "MIT", + "main": "cssesc.js", + "man": [ + "man/cssesc.1" + ], + "name": "cssesc", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/cssesc.git" + }, + "scripts": { + "build": "grunt template && babel cssesc.js -o cssesc.js", + "cover": "istanbul cover --report html node_modules/.bin/_mocha tests -- -u exports -R spec", + "test": "mocha tests" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss-selector-parser/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss-selector-parser/package.json index 8a4bf86d4..3afafde93 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss-selector-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss-selector-parser/package.json @@ -1,6 +1,58 @@ { - "name": "postcss-selector-parser", - "version": "5.0.0", + "_args": [ + [ + "postcss-selector-parser@5.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-selector-parser@5.0.0", + "_id": "postcss-selector-parser@5.0.0", + "_inBundle": false, + "_integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "_location": "/@vue/component-compiler-utils/postcss-selector-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-selector-parser@5.0.0", + "name": "postcss-selector-parser", + "escapedName": "postcss-selector-parser", + "rawSpec": "5.0.0", + "saveSpec": null, + "fetchSpec": "5.0.0" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils" + ], + "_resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", + "_spec": "5.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "ava": { + "require": "babel-register", + "concurrency": 5 + }, + "bugs": { + "url": "https://github.com/postcss/postcss-selector-parser/issues" + }, + "contributors": [ + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + { + "name": "Chris Eppstein", + "email": "chris@eppsteins.net", + "url": "http://twitter.com/chriseppstein" + } + ], + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "description": "> Selector parser with built in methods for working with selector strings.", "devDependencies": { "ava": "^0.25.0", "babel-cli": "^6.26.0", @@ -23,8 +75,9 @@ "postcss": "^7.0.7", "semver": "^5.6.0" }, - "main": "dist/index.js", - "types": "postcss-selector-parser.d.ts", + "engines": { + "node": ">=4" + }, "files": [ "API.md", "CHANGELOG.md", @@ -32,45 +85,28 @@ "dist", "postcss-selector-parser.d.ts" ], - "scripts": { - "pretest": "eslint src", - "prepare": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", - "lintfix": "eslint --fix src", - "report": "nyc report --reporter=html", - "test": "nyc ava src/__tests__/*.js", - "testone": "ava" - }, - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "license": "MIT", - "engines": { - "node": ">=4" - }, "homepage": "https://github.com/postcss/postcss-selector-parser", - "contributors": [ - { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - { - "name": "Chris Eppstein", - "email": "chris@eppsteins.net", - "url": "http://twitter.com/chriseppstein" - } - ], - "repository": "postcss/postcss-selector-parser", - "ava": { - "require": "babel-register", - "concurrency": 5 - }, + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-selector-parser", "nyc": { "exclude": [ "node_modules", "**/__tests__" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-selector-parser.git" + }, + "scripts": { + "lintfix": "eslint --fix src", + "prepare": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", + "pretest": "eslint src", + "report": "nyc report --reporter=html", + "test": "nyc ava src/__tests__/*.js", + "testone": "ava" + }, + "types": "postcss-selector-parser.d.ts", + "version": "5.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss/package.json index ece04085e..75d24d262 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/@vue/component-compiler-utils/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/source-map/package.json index 24663417e..1313ac4d4 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/source-map/package.json @@ -1,52 +1,195 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/@vue/component-compiler-utils/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils", + "/@vue/component-compiler-utils/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +199,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/supports-color/package.json index db4ded22b..68751c8fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/@vue/component-compiler-utils/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/package.json b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/package.json index db765cd4d..905f6e197 100644 --- a/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@vue/component-compiler-utils/package.json @@ -1,40 +1,58 @@ { - "name": "@vue/component-compiler-utils", - "version": "2.6.0", - "description": "Lower level utilities for compiling Vue single file components", - "main": "dist/index.js", - "typings": "dist/index.d.ts", - "scripts": { - "lint": "prettier --write \"{lib,test}/**/*.ts\"", - "test": "prettier --list-different \"{lib,test}/**/*.ts\" && jest --coverage", - "build": "rm -rf dist && tsc", - "prepublishOnly": "yarn build && conventional-changelog -p angular -r 2 -i CHANGELOG.md -s" - }, - "gitHooks": { - "pre-commit": "lint-staged" - }, - "lint-staged": { - "*.{ts,js}": [ - "prettier --write", - "git add" + "_args": [ + [ + "@vue/component-compiler-utils@2.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "@vue/component-compiler-utils@2.6.0", + "_id": "@vue/component-compiler-utils@2.6.0", + "_inBundle": false, + "_integrity": "sha1-qkbSpvdkdECwuJMkNNIvEjceVDs=", + "_location": "/@vue/component-compiler-utils", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "indexes-of": "1.0.1", + "uniq": "1.0.1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/component-compiler-utils.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "@vue/component-compiler-utils@2.6.0", + "name": "@vue/component-compiler-utils", + "escapedName": "@vue%2fcomponent-compiler-utils", + "scope": "@vue", + "rawSpec": "2.6.0", + "saveSpec": null, + "fetchSpec": "2.6.0" }, - "keywords": [ - "vue", - "sfc", - "component", - "compiler" + "_requiredBy": [ + "/vue-loader" ], - "author": "Evan You", - "license": "MIT", + "_resolved": "https://registry.nlark.com/@vue/component-compiler-utils/download/@vue/component-compiler-utils-2.6.0.tgz", + "_spec": "2.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "bugs": { "url": "https://github.com/vuejs/component-compiler-utils/issues" }, - "homepage": "https://github.com/vuejs/component-compiler-utils#readme", + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^5.0.0", + "prettier": "1.16.3", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "description": "Lower level utilities for compiling Vue single file components", "devDependencies": { "@types/jest": "^22.2.3", "@types/node": "^10.12.20", @@ -51,15 +69,35 @@ "vue-template-compiler": "^2.6.6", "yorkie": "^2.0.0" }, - "dependencies": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^5.0.0", - "prettier": "1.16.3", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - } + "gitHooks": { + "pre-commit": "lint-staged" + }, + "homepage": "https://github.com/vuejs/component-compiler-utils#readme", + "keywords": [ + "vue", + "sfc", + "component", + "compiler" + ], + "license": "MIT", + "lint-staged": { + "*.{ts,js}": [ + "prettier --write", + "git add" + ] + }, + "main": "dist/index.js", + "name": "@vue/component-compiler-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/component-compiler-utils.git" + }, + "scripts": { + "build": "rm -rf dist && tsc", + "lint": "prettier --write \"{lib,test}/**/*.ts\"", + "prepublishOnly": "yarn build && conventional-changelog -p angular -r 2 -i CHANGELOG.md -s", + "test": "prettier --list-different \"{lib,test}/**/*.ts\" && jest --coverage" + }, + "typings": "dist/index.d.ts", + "version": "2.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/debug/package.json index 191c81547..60c2c7682 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@webassemblyjs/ast/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@webassemblyjs/ast" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/ms/package.json index 49971890d..1daf5ef15 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@webassemblyjs/ast/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@webassemblyjs/ast/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/package.json index d221254f6..60c3e5412 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ast/package.json @@ -1,15 +1,46 @@ { - "name": "@webassemblyjs/ast", - "version": "1.5.13", - "description": "AST utils for webassemblyjs", - "keywords": [ - "webassembly", - "javascript", - "ast" + "_args": [ + [ + "@webassemblyjs/ast@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib/index.js", - "author": "Sven Sauleau", - "license": "MIT", + "_from": "@webassemblyjs/ast@1.5.13", + "_id": "@webassemblyjs/ast@1.5.13", + "_inBundle": false, + "_integrity": "sha1-gRVaVwvVgDow7DFDa8LJwO3jjyU=", + "_location": "/@webassemblyjs/ast", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/ast@1.5.13", + "name": "@webassemblyjs/ast", + "escapedName": "@webassemblyjs%2fast", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-wasm-section", + "/@webassemblyjs/wasm-edit", + "/@webassemblyjs/wasm-gen", + "/@webassemblyjs/wasm-opt", + "/@webassemblyjs/wasm-parser", + "/@webassemblyjs/wast-parser", + "/@webassemblyjs/wast-printer", + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.5.13.tgz?cache=0&sync_timestamp=1610045499973&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" + }, "dependencies": { "@webassemblyjs/helper-module-context": "1.5.13", "@webassemblyjs/helper-wasm-bytecode": "1.5.13", @@ -17,16 +48,27 @@ "debug": "^3.1.0", "mamacro": "^0.0.3" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" - }, - "publishConfig": { - "access": "public" - }, + "description": "AST utils for webassemblyjs", "devDependencies": { "@webassemblyjs/helper-test-framework": "1.5.13", "array.prototype.flatmap": "^1.2.1", "dump-exports": "^0.1.0" - } + }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "keywords": [ + "webassembly", + "javascript", + "ast" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/ast", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/floating-point-hex-parser/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/floating-point-hex-parser/package.json index 299bd41c5..0bc4d6440 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/floating-point-hex-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/floating-point-hex-parser/package.json @@ -1,22 +1,57 @@ { - "name": "@webassemblyjs/floating-point-hex-parser", - "scripts": { - "build-fuzzer": "[ -f ./test/fuzzing/parse.out ] || gcc ./test/fuzzing/parse.c -o ./test/fuzzing/parse.out -lm -Wall" + "_args": [ + [ + "@webassemblyjs/floating-point-hex-parser@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/floating-point-hex-parser@1.5.13", + "_id": "@webassemblyjs/floating-point-hex-parser@1.5.13", + "_inBundle": false, + "_integrity": "sha1-Kc4LqpdBH3DozOaM6cD52Bmk4pg=", + "_location": "/@webassemblyjs/floating-point-hex-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/floating-point-hex-parser@1.5.13", + "name": "@webassemblyjs/floating-point-hex-parser", + "escapedName": "@webassemblyjs%2ffloating-point-hex-parser", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/@webassemblyjs/wast-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045504831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mauro Bringolf" }, - "publishConfig": { - "access": "public" + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "version": "1.5.13", "description": "A function to parse floating point hexadecimal strings as defined by the WebAssembly specification", - "main": "lib/index.js", + "homepage": "https://github.com/xtuc/webassemblyjs#readme", "keywords": [ "webassembly", "floating-point" ], - "author": "Mauro Bringolf", - "license": "MIT" + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/floating-point-hex-parser", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "build-fuzzer": "[ -f ./test/fuzzing/parse.out ] || gcc ./test/fuzzing/parse.c -o ./test/fuzzing/parse.out -lm -Wall" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-api-error/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-api-error/package.json index cfacbf66b..558a1f816 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-api-error/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-api-error/package.json @@ -1,11 +1,43 @@ { - "name": "@webassemblyjs/helper-api-error", - "version": "1.5.13", + "_args": [ + [ + "@webassemblyjs/helper-api-error@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-api-error@1.5.13", + "_id": "@webassemblyjs/helper-api-error@1.5.13", + "_inBundle": false, + "_integrity": "sha1-5JsFHWfuGaVuKbmqi9lJtbREKlk=", + "_location": "/@webassemblyjs/helper-api-error", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-api-error@1.5.13", + "name": "@webassemblyjs/helper-api-error", + "escapedName": "@webassemblyjs%2fhelper-api-error", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-parser", + "/@webassemblyjs/wast-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.5.13.tgz?cache=0&sync_timestamp=1610045498041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, "description": "Common API errors", - "main": "lib/index.js", - "author": "Sven Sauleau", "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/helper-api-error", "publishConfig": { "access": "public" - } + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/debug/package.json index 191c81547..93bfea9fe 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@webassemblyjs/helper-buffer/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-buffer" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/ms/package.json index 49971890d..a9114310d 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@webassemblyjs/helper-buffer/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-buffer/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/package.json index dba28fe22..f53e6c2d5 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-buffer/package.json @@ -1,25 +1,62 @@ { - "name": "@webassemblyjs/helper-buffer", - "version": "1.5.13", - "description": "Buffer manipulation utility", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/helper-buffer@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-buffer@1.5.13", + "_id": "@webassemblyjs/helper-buffer@1.5.13", + "_inBundle": false, + "_integrity": "sha1-hzuwobRkSSMRN8EmLd/QVpUZWh4=", + "_location": "/@webassemblyjs/helper-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-buffer@1.5.13", + "name": "@webassemblyjs/helper-buffer", + "escapedName": "@webassemblyjs%2fhelper-buffer", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/@webassemblyjs/helper-wasm-section", + "/@webassemblyjs/wasm-edit", + "/@webassemblyjs/wasm-opt" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.5.13.tgz?cache=0&sync_timestamp=1610045496323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" }, - "publishConfig": { - "access": "public" + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", + "dependencies": { + "debug": "^3.1.0" + }, + "description": "Buffer manipulation utility", "devDependencies": { "@webassemblyjs/wasm-parser": "1.5.13", "jest-diff": "^22.4.0" }, - "dependencies": { - "debug": "^3.1.0" - } + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/helper-buffer", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-code-frame/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-code-frame/package.json index 2d7b5735f..cf64b611a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-code-frame/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-code-frame/package.json @@ -1,21 +1,56 @@ { - "name": "@webassemblyjs/helper-code-frame", - "version": "1.5.13", - "description": "", - "main": "lib/index.js", - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_args": [ + [ + "@webassemblyjs/helper-code-frame@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-code-frame@1.5.13", + "_id": "@webassemblyjs/helper-code-frame@1.5.13", + "_inBundle": false, + "_integrity": "sha1-G9IYG2oL4U4ATw/p9aZg0mU2K1g=", + "_location": "/@webassemblyjs/helper-code-frame", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-code-frame@1.5.13", + "name": "@webassemblyjs/helper-code-frame", + "escapedName": "@webassemblyjs%2fhelper-code-frame", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "publishConfig": { - "access": "public" + "_requiredBy": [ + "/@webassemblyjs/wast-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.5.13.tgz?cache=0&sync_timestamp=1610045502739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/wast-printer": "1.5.13" }, + "description": "", "devDependencies": { "@webassemblyjs/ast": "1.5.13" - } + }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/helper-code-frame", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-fsm/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-fsm/package.json index dd47ff8cd..ae6facb90 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-fsm/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-fsm/package.json @@ -1,11 +1,42 @@ { - "name": "@webassemblyjs/helper-fsm", - "version": "1.5.13", + "_args": [ + [ + "@webassemblyjs/helper-fsm@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-fsm@1.5.13", + "_id": "@webassemblyjs/helper-fsm@1.5.13", + "_inBundle": false, + "_integrity": "sha1-zfPZ0zAF1UOlxeWtqr9nn/qNuSQ=", + "_location": "/@webassemblyjs/helper-fsm", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-fsm@1.5.13", + "name": "@webassemblyjs/helper-fsm", + "escapedName": "@webassemblyjs%2fhelper-fsm", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/wast-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.5.13.tgz?cache=0&sync_timestamp=1610045497114&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mauro Bringolf" + }, "description": "FSM implementation", - "main": "lib/index.js", - "author": "Mauro Bringolf", "license": "ISC", + "main": "lib/index.js", + "name": "@webassemblyjs/helper-fsm", "publishConfig": { "access": "public" - } + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/debug/package.json index 191c81547..844692e2a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@webassemblyjs/helper-module-context/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-module-context" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/ms/package.json index 49971890d..92327d217 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@webassemblyjs/helper-module-context/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-module-context/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/package.json index 0ffc51ef7..5ba6c8095 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-module-context/package.json @@ -1,25 +1,61 @@ { - "name": "@webassemblyjs/helper-module-context", - "version": "1.5.13", - "description": "", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/helper-module-context@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-module-context@1.5.13", + "_id": "@webassemblyjs/helper-module-context@1.5.13", + "_inBundle": false, + "_integrity": "sha1-3Cnd+1HtZXZVKG+UpdctikiRR8U=", + "_location": "/@webassemblyjs/helper-module-context", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-module-context@1.5.13", + "name": "@webassemblyjs/helper-module-context", + "escapedName": "@webassemblyjs%2fhelper-module-context", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/@webassemblyjs/ast", + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.5.13.tgz?cache=0&sync_timestamp=1601756894083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, "dependencies": { "debug": "^3.1.0", "mamacro": "^0.0.3" }, + "description": "", "devDependencies": { "@webassemblyjs/wast-parser": "1.5.13" }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/helper-module-context", "publishConfig": { "access": "public" }, - "author": "Sven Sauleau", - "license": "MIT" + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-bytecode/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-bytecode/package.json index f9baf2143..0f7e77edc 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-bytecode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-bytecode/package.json @@ -1,18 +1,57 @@ { - "name": "@webassemblyjs/helper-wasm-bytecode", - "version": "1.5.13", + "_args": [ + [ + "@webassemblyjs/helper-wasm-bytecode@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-wasm-bytecode@1.5.13", + "_id": "@webassemblyjs/helper-wasm-bytecode@1.5.13", + "_inBundle": false, + "_integrity": "sha1-AyRYF/CnYjguYXMxRvV3Pe8Vp0c=", + "_location": "/@webassemblyjs/helper-wasm-bytecode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-wasm-bytecode@1.5.13", + "name": "@webassemblyjs/helper-wasm-bytecode", + "escapedName": "@webassemblyjs%2fhelper-wasm-bytecode", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/ast", + "/@webassemblyjs/helper-wasm-section", + "/@webassemblyjs/wasm-edit", + "/@webassemblyjs/wasm-gen", + "/@webassemblyjs/wasm-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.5.13.tgz?cache=0&sync_timestamp=1610045496699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" + }, "description": "WASM's Bytecode constants", + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "name": "@webassemblyjs/helper-wasm-bytecode", + "publishConfig": { + "access": "public" }, - "author": "Sven Sauleau", - "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "url": "git+https://github.com/xtuc/webassemblyjs.git" }, - "publishConfig": { - "access": "public" - } + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/debug/package.json index 191c81547..0b3a6ddf0 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@webassemblyjs/helper-wasm-section/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-wasm-section" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/ms/package.json index 49971890d..327f6b6e8 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@webassemblyjs/helper-wasm-section/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-wasm-section/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/package.json index faaf2a271..d719ac42f 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/helper-wasm-section/package.json @@ -1,20 +1,39 @@ { - "name": "@webassemblyjs/helper-wasm-section", - "version": "1.5.13", - "description": "", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/helper-wasm-section@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/helper-wasm-section@1.5.13", + "_id": "@webassemblyjs/helper-wasm-section@1.5.13", + "_inBundle": false, + "_integrity": "sha1-78dvRKENMHO1hLQ8OKF53xc9XH0=", + "_location": "/@webassemblyjs/helper-wasm-section", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/helper-wasm-section@1.5.13", + "name": "@webassemblyjs/helper-wasm-section", + "escapedName": "@webassemblyjs%2fhelper-wasm-section", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/@webassemblyjs/wasm-edit" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.5.13.tgz?cache=0&sync_timestamp=1610045503299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" }, - "publishConfig": { - "access": "public" + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-buffer": "1.5.13", @@ -22,7 +41,23 @@ "@webassemblyjs/wasm-gen": "1.5.13", "debug": "^3.1.0" }, + "description": "", "devDependencies": { "@webassemblyjs/wasm-parser": "1.5.13" - } + }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/helper-wasm-section", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ieee754/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ieee754/package.json index 9a7d3f2de..9c7401624 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ieee754/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/ieee754/package.json @@ -1,16 +1,46 @@ { - "name": "@webassemblyjs/ieee754", - "version": "1.5.13", + "_args": [ + [ + "@webassemblyjs/ieee754@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/ieee754@1.5.13", + "_id": "@webassemblyjs/ieee754@1.5.13", + "_inBundle": false, + "_integrity": "sha1-Vz6XyMEuTuuzFspf3gID3dkLA2Q=", + "_location": "/@webassemblyjs/ieee754", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/ieee754@1.5.13", + "name": "@webassemblyjs/ieee754", + "escapedName": "@webassemblyjs%2fieee754", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-gen", + "/@webassemblyjs/wasm-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.5.13.tgz?cache=0&sync_timestamp=1610045498486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "ieee754": "^1.1.11" + }, "description": "IEEE754 decoder and encoder", "license": "MIT", "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, + "name": "@webassemblyjs/ieee754", "publishConfig": { "access": "public" }, - "dependencies": { - "ieee754": "^1.1.11" - } + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/node_modules/long/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/node_modules/long/package.json index 672c241d3..a71969821 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/node_modules/long/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/node_modules/long/package.json @@ -1,34 +1,66 @@ { - "name": "long", - "version": "4.0.0", - "author": "Daniel Wirtz ", - "description": "A Long class for representing a 64-bit two's-complement integer value.", - "main": "src/long.js", - "repository": { - "type": "git", - "url": "https://github.com/dcodeIO/long.js.git" - }, - "bugs": { - "url": "https://github.com/dcodeIO/long.js/issues" - }, - "keywords": [ - "math" - ], - "dependencies": {}, - "devDependencies": { - "webpack": "^3.10.0" - }, - "license": "Apache-2.0", - "scripts": { - "build": "webpack", - "test": "node tests" - }, - "files": [ - "index.js", - "LICENSE", - "README.md", - "src/long.js", - "dist/long.js", - "dist/long.js.map" + "_args": [ + [ + "long@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_from": "long@4.0.0", + "_id": "long@4.0.0", + "_inBundle": false, + "_integrity": "sha1-mntxz7fTYaGU6lVSQckvdGjVvyg=", + "_location": "/@webassemblyjs/leb128/long", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "long@4.0.0", + "name": "long", + "escapedName": "long", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/@webassemblyjs/leb128" + ], + "_resolved": "https://registry.npm.taobao.org/long/download/long-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flong%2Fdownload%2Flong-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Daniel Wirtz", + "email": "dcode@dcode.io" + }, + "bugs": { + "url": "https://github.com/dcodeIO/long.js/issues" + }, + "dependencies": {}, + "description": "A Long class for representing a 64-bit two's-complement integer value.", + "devDependencies": { + "webpack": "^3.10.0" + }, + "files": [ + "index.js", + "LICENSE", + "README.md", + "src/long.js", + "dist/long.js", + "dist/long.js.map" + ], + "homepage": "https://github.com/dcodeIO/long.js#readme", + "keywords": [ + "math" + ], + "license": "Apache-2.0", + "main": "src/long.js", + "name": "long", + "repository": { + "type": "git", + "url": "git+https://github.com/dcodeIO/long.js.git" + }, + "scripts": { + "build": "webpack", + "test": "node tests" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/package.json index 109ff1e6f..d0e67af2d 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/leb128/package.json @@ -1,16 +1,46 @@ { - "name": "@webassemblyjs/leb128", - "version": "1.5.13", - "description": "LEB128 decoder and encoder", - "license": "MIT", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/leb128@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/leb128@1.5.13", + "_id": "@webassemblyjs/leb128@1.5.13", + "_inBundle": false, + "_integrity": "sha1-q1Lrq5zsKDwcGJesHagzoEo/TO4=", + "_location": "/@webassemblyjs/leb128", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/leb128@1.5.13", + "name": "@webassemblyjs/leb128", + "escapedName": "@webassemblyjs%2fleb128", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, + "_requiredBy": [ + "/@webassemblyjs/wasm-gen", + "/@webassemblyjs/wasm-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.5.13.tgz?cache=0&sync_timestamp=1610045497611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "long": "4.0.0" }, + "description": "LEB128 decoder and encoder", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/leb128", "publishConfig": { "access": "public" - } + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/utf8/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/utf8/package.json index 2cf496a3c..0c427eda4 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/utf8/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/utf8/package.json @@ -1,18 +1,54 @@ { - "name": "@webassemblyjs/utf8", - "version": "1.5.13", + "_args": [ + [ + "@webassemblyjs/utf8@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/utf8@1.5.13", + "_id": "@webassemblyjs/utf8@1.5.13", + "_inBundle": false, + "_integrity": "sha1-a1PSzYYc+U+pnB8Sd53eaS+8JGk=", + "_location": "/@webassemblyjs/utf8", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/utf8@1.5.13", + "name": "@webassemblyjs/utf8", + "escapedName": "@webassemblyjs%2futf8", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-gen", + "/@webassemblyjs/wasm-parser" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.5.13.tgz?cache=0&sync_timestamp=1610045498791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" + }, "description": "UTF8 encoder/decoder for WASM", + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "name": "@webassemblyjs/utf8", + "publishConfig": { + "access": "public" }, "repository": { "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "url": "git+https://github.com/xtuc/webassemblyjs.git" }, - "publishConfig": { - "access": "public" + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "author": "Sven Sauleau", - "license": "MIT" + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/debug/package.json index 191c81547..8ef68b7db 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@webassemblyjs/wasm-edit/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-edit" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/ms/package.json index 49971890d..151a1d0d4 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@webassemblyjs/wasm-edit/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-edit/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/package.json index 151e4466c..a494eff6b 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-edit/package.json @@ -1,20 +1,39 @@ { - "name": "@webassemblyjs/wasm-edit", - "version": "1.5.13", - "description": "", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/wasm-edit@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/wasm-edit@1.5.13", + "_id": "@webassemblyjs/wasm-edit@1.5.13", + "_inBundle": false, + "_integrity": "sha1-yc71ZkwkXPEbOzpzEQyRVYMXJKg=", + "_location": "/@webassemblyjs/wasm-edit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/wasm-edit@1.5.13", + "name": "@webassemblyjs/wasm-edit", + "escapedName": "@webassemblyjs%2fwasm-edit", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.5.13.tgz?cache=0&sync_timestamp=1610045504190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" }, - "publishConfig": { - "access": "public" + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-buffer": "1.5.13", @@ -26,7 +45,23 @@ "@webassemblyjs/wast-printer": "1.5.13", "debug": "^3.1.0" }, + "description": "> Rewrite a WASM binary", "devDependencies": { "@webassemblyjs/helper-test-framework": "1.5.13" - } + }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/wasm-edit", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-gen/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-gen/package.json index 0dfc7380f..990e74dc6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-gen/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-gen/package.json @@ -1,25 +1,62 @@ { - "name": "@webassemblyjs/wasm-gen", - "version": "1.5.13", - "description": "WebAssembly binary format printer", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/wasm-gen@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/wasm-gen@1.5.13", + "_id": "@webassemblyjs/wasm-gen@1.5.13", + "_inBundle": false, + "_integrity": "sha1-jm6hE8S0MvpmVAGJ55sW16FAcA4=", + "_location": "/@webassemblyjs/wasm-gen", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/wasm-gen@1.5.13", + "name": "@webassemblyjs/wasm-gen", + "escapedName": "@webassemblyjs%2fwasm-gen", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/@webassemblyjs/helper-wasm-section", + "/@webassemblyjs/wasm-edit", + "/@webassemblyjs/wasm-opt" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.5.13.tgz?cache=0&sync_timestamp=1610045502219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" }, - "publishConfig": { - "access": "public" + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-wasm-bytecode": "1.5.13", "@webassemblyjs/ieee754": "1.5.13", "@webassemblyjs/leb128": "1.5.13", "@webassemblyjs/utf8": "1.5.13" - } + }, + "description": "WebAssembly binary format printer", + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/wasm-gen", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/debug/package.json index 191c81547..46170fcbe 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/@webassemblyjs/wasm-opt/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-opt" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/ms/package.json index 49971890d..0fa6e4609 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/@webassemblyjs/wasm-opt/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-opt/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/package.json index efa52a08f..e67c13587 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-opt/package.json @@ -1,25 +1,61 @@ { - "name": "@webassemblyjs/wasm-opt", - "version": "1.5.13", - "description": "", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "@webassemblyjs/wasm-opt@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/wasm-opt@1.5.13", + "_id": "@webassemblyjs/wasm-opt@1.5.13", + "_inBundle": false, + "_integrity": "sha1-FHqtdxen7kIRw2shpfTDDd3zMTg=", + "_location": "/@webassemblyjs/wasm-opt", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/wasm-opt@1.5.13", + "name": "@webassemblyjs/wasm-opt", + "escapedName": "@webassemblyjs%2fwasm-opt", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "_requiredBy": [ + "/@webassemblyjs/wasm-edit", + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.5.13.tgz?cache=0&sync_timestamp=1610045503072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" }, - "publishConfig": { - "access": "public" + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-buffer": "1.5.13", "@webassemblyjs/wasm-gen": "1.5.13", "@webassemblyjs/wasm-parser": "1.5.13", "debug": "^3.1.0" - } + }, + "description": "", + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/wasm-opt", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-parser/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-parser/package.json index 46168d614..9b01b19d6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wasm-parser/package.json @@ -1,20 +1,41 @@ { - "name": "@webassemblyjs/wasm-parser", - "version": "1.5.13", - "keywords": [ - "webassembly", - "javascript", - "ast", - "parser", - "wasm" + "_args": [ + [ + "@webassemblyjs/wasm-parser@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "description": "WebAssembly binary format parser", - "main": "lib/index.js", - "scripts": { - "test": "mocha" + "_from": "@webassemblyjs/wasm-parser@1.5.13", + "_id": "@webassemblyjs/wasm-parser@1.5.13", + "_inBundle": false, + "_integrity": "sha1-b0ZRbFuyOQT731gAkjPC3YpUxy8=", + "_location": "/@webassemblyjs/wasm-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/wasm-parser@1.5.13", + "name": "@webassemblyjs/wasm-parser", + "escapedName": "@webassemblyjs%2fwasm-parser", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/wasm-edit", + "/@webassemblyjs/wasm-opt", + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045501288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-api-error": "1.5.13", @@ -23,13 +44,7 @@ "@webassemblyjs/leb128": "1.5.13", "@webassemblyjs/utf8": "1.5.13" }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" - }, - "publishConfig": { - "access": "public" - }, + "description": "WebAssembly binary format parser", "devDependencies": { "@webassemblyjs/helper-buffer": "1.5.13", "@webassemblyjs/helper-test-framework": "1.5.13", @@ -37,5 +52,27 @@ "@webassemblyjs/wasm-gen": "1.5.13", "@webassemblyjs/wast-parser": "1.5.13", "wabt": "^1.0.0" - } + }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "keywords": [ + "webassembly", + "javascript", + "ast", + "parser", + "wasm" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/wasm-parser", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xtuc/webassemblyjs.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-parser/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-parser/package.json index c5de026af..62c453f1d 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-parser/package.json @@ -1,21 +1,40 @@ { - "name": "@webassemblyjs/wast-parser", - "version": "1.5.13", - "description": "WebAssembly text format parser", - "keywords": [ - "webassembly", - "javascript", - "ast", - "parser", - "wat", - "wast" + "_args": [ + [ + "@webassemblyjs/wast-parser@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib/index.js", - "scripts": { - "test": "mocha" + "_from": "@webassemblyjs/wast-parser@1.5.13", + "_id": "@webassemblyjs/wast-parser@1.5.13", + "_inBundle": false, + "_integrity": "sha1-VyenBdOXrmo66Z1/VGCs8uxkbuo=", + "_location": "/@webassemblyjs/wast-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/wast-parser@1.5.13", + "name": "@webassemblyjs/wast-parser", + "escapedName": "@webassemblyjs%2fwast-parser", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/ast", + "/@webassemblyjs/wast-printer" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045503781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" }, - "author": "Sven Sauleau", - "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/floating-point-hex-parser": "1.5.13", @@ -25,14 +44,31 @@ "long": "^3.2.0", "mamacro": "^0.0.3" }, + "description": "WebAssembly text format parser", "devDependencies": { "@webassemblyjs/helper-test-framework": "1.5.13" }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", + "keywords": [ + "webassembly", + "javascript", + "ast", + "parser", + "wat", + "wast" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "@webassemblyjs/wast-parser", + "publishConfig": { + "access": "public" + }, "repository": { "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "url": "git+https://github.com/xtuc/webassemblyjs.git" }, - "publishConfig": { - "access": "public" - } + "scripts": { + "test": "mocha" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-printer/package.json b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-printer/package.json index 3212f176d..df8422ba6 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-printer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webassemblyjs/wast-printer/package.json @@ -1,8 +1,50 @@ { - "name": "@webassemblyjs/wast-printer", - "version": "1.5.13", + "_args": [ + [ + "@webassemblyjs/wast-printer@1.5.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "@webassemblyjs/wast-printer@1.5.13", + "_id": "@webassemblyjs/wast-printer@1.5.13", + "_inBundle": false, + "_integrity": "sha1-uzTVKMFLT1eefsEeeT7FCtfNfJU=", + "_location": "/@webassemblyjs/wast-printer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@webassemblyjs/wast-printer@1.5.13", + "name": "@webassemblyjs/wast-printer", + "escapedName": "@webassemblyjs%2fwast-printer", + "scope": "@webassemblyjs", + "rawSpec": "1.5.13", + "saveSpec": null, + "fetchSpec": "1.5.13" + }, + "_requiredBy": [ + "/@webassemblyjs/helper-code-frame", + "/@webassemblyjs/wasm-edit" + ], + "_resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.5.13.tgz?cache=0&sync_timestamp=1610045500821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.5.13.tgz", + "_spec": "1.5.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, + "bugs": { + "url": "https://github.com/xtuc/webassemblyjs/issues" + }, + "dependencies": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/wast-parser": "1.5.13", + "long": "^3.2.0" + }, "description": "WebAssembly text format printer", - "main": "lib/index.js", + "devDependencies": { + "@webassemblyjs/helper-test-framework": "1.5.13" + }, + "homepage": "https://github.com/xtuc/webassemblyjs#readme", "keywords": [ "webassembly", "javascript", @@ -11,24 +53,18 @@ "printer", "wast" ], - "scripts": { - "test": "mocha" - }, - "author": "Sven Sauleau", "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/wast-parser": "1.5.13", - "long": "^3.2.0" - }, - "devDependencies": { - "@webassemblyjs/helper-test-framework": "1.5.13" + "main": "lib/index.js", + "name": "@webassemblyjs/wast-printer", + "publishConfig": { + "access": "public" }, "repository": { "type": "git", - "url": "https://github.com/xtuc/webassemblyjs.git" + "url": "git+https://github.com/xtuc/webassemblyjs.git" }, - "publishConfig": { - "access": "public" - } + "scripts": { + "test": "mocha" + }, + "version": "1.5.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/ansi-regex/package.json index e94852fd7..0418cf46c 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/@webpack-contrib/schema-utils/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/strip-ansi/package.json index 555f19461..9c533fb5a 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/@webpack-contrib/schema-utils/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/webpack-log/package.json b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/webpack-log/package.json index 899d7a9ed..f9659a6a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/webpack-log/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/node_modules/webpack-log/package.json @@ -1,39 +1,47 @@ { - "name": "webpack-log", - "version": "1.2.0", - "description": "A common logging module for the Webpack ecosystem", - "license": "MIT", - "repository": "webpack-contrib/webpack-log", - "author": "Andrew Powell ", - "homepage": "http://github.com/webpack-contrib/webpack-log", - "maintainers": [ - { - "name": "Andrew Powell", - "email": "andrew@shellscape.org", - "url": "shellscape.org" - } + "_args": [ + [ + "webpack-log@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "index.js", - "engines": { - "node": ">=6" + "_development": true, + "_from": "webpack-log@1.2.0", + "_id": "webpack-log@1.2.0", + "_inBundle": false, + "_integrity": "sha1-pLNM2msitRjbsKsy5WeWLVxypD0=", + "_location": "/@webpack-contrib/schema-utils/webpack-log", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-log@1.2.0", + "name": "webpack-log", + "escapedName": "webpack-log", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" }, - "scripts": { - "beautify": "npm run lint -- --fix", - "ci": "npm run cover -- --report lcovonly && npm run test", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "lint": "eslint index.js test", - "mocha": "mocha --full-trace --check-leaks", - "test": "npm run lint && npm run mocha" - }, - "files": [ - "index.js" + "_requiredBy": [ + "/@webpack-contrib/schema-utils" ], + "_resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-1.2.0.tgz?cache=0&sync_timestamp=1615477461878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrew Powell", + "email": "andrew@shellscape.org" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/webpack-log/issues" + }, "dependencies": { "chalk": "^2.1.0", "log-symbols": "^2.1.0", "loglevelnext": "^1.0.1", "uuid": "^3.1.0" }, + "description": "A common logging module for the Webpack ecosystem", "devDependencies": { "assert": "^1.4.1", "codecov.io": "^0.1.6", @@ -44,5 +52,35 @@ "mocha": "^4.0.0", "sinon": "^4.0.1", "strip-ansi": "^4.0.0" - } + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "http://github.com/webpack-contrib/webpack-log", + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "Andrew Powell", + "email": "andrew@shellscape.org", + "url": "shellscape.org" + } + ], + "name": "webpack-log", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/webpack-log.git" + }, + "scripts": { + "beautify": "npm run lint -- --fix", + "ci": "npm run cover -- --report lcovonly && npm run test", + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint index.js test", + "mocha": "mocha --full-trace --check-leaks", + "test": "npm run lint && npm run mocha" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/package.json index b40c81104..aafbfd194 100644 --- a/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/@webpack-contrib/schema-utils/package.json @@ -1,48 +1,45 @@ { - "name": "@webpack-contrib/schema-utils", - "version": "1.0.0-beta.0", - "description": "Webpack Schema Validation Utilities", - "license": "MIT", - "repository": "webpack-contrib/schema-utils", - "author": "Webpack Contrib (https://github.com/webpack-contrib)", - "homepage": "https://github.com/webpack-contrib/schema-utils", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", - "main": "dist/cjs.js", - "engines": { - "node": ">= 6.9.0 || >= 8.9.0" + "_args": [ + [ + "@webpack-contrib/schema-utils@1.0.0-beta.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@webpack-contrib/schema-utils@1.0.0-beta.0", + "_id": "@webpack-contrib/schema-utils@1.0.0-beta.0", + "_inBundle": false, + "_integrity": "sha1-v5Y4yUZNF3tIIJ6EIJ4jvuLrT2U=", + "_location": "/@webpack-contrib/schema-utils", + "_phantomChildren": { + "chalk": "2.4.1", + "log-symbols": "2.2.0", + "loglevelnext": "1.0.5", + "uuid": "3.4.0" }, - "scripts": { - "start": "npm run build -- -w", - "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", - "clean": "del-cli dist", - "commitlint": "commitlint", - "commitmsg": "commitlint -e $GIT_PARAMS", - "lint": "eslint --cache src test", - "ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", - "lint-staged": "lint-staged", - "prebuild": "npm run clean", - "prepublish": "npm run build", - "release": "standard-version", - "release:ci": "conventional-github-releaser -p angular", - "release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", - "security": "nsp check", - "test": "jest", - "test:watch": "jest --watch", - "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", - "ci:lint": "npm run lint && npm run security", - "ci:test": "npm run test -- --runInBand", - "ci:coverage": "npm run test:coverage -- --runInBand", - "defaults": "webpack-defaults" + "_requested": { + "type": "version", + "registry": true, + "raw": "@webpack-contrib/schema-utils@1.0.0-beta.0", + "name": "@webpack-contrib/schema-utils", + "escapedName": "@webpack-contrib%2fschema-utils", + "scope": "@webpack-contrib", + "rawSpec": "1.0.0-beta.0", + "saveSpec": null, + "fetchSpec": "1.0.0-beta.0" }, - "files": [ - "dist/", - "schema/" + "_requiredBy": [ + "/mini-css-extract-plugin" ], - "keywords": [ - "webpack" - ], - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" + "_resolved": "https://registry.npm.taobao.org/@webpack-contrib/schema-utils/download/@webpack-contrib/schema-utils-1.0.0-beta.0.tgz", + "_spec": "1.0.0-beta.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", @@ -52,6 +49,7 @@ "text-table": "^0.2.0", "webpack-log": "^1.1.2" }, + "description": "Webpack Schema Validation Utilities", "devDependencies": { "@commitlint/cli": "^5.2.8", "@commitlint/config-angular": "^5.1.1", @@ -79,11 +77,56 @@ "webpack": "^4.4.1", "webpack-defaults": "^2.1.4" }, - "pre-commit": "lint-staged", + "engines": { + "node": ">= 6.9.0 || >= 8.9.0" + }, + "files": [ + "dist/", + "schema/" + ], + "homepage": "https://github.com/webpack-contrib/schema-utils", + "keywords": [ + "webpack" + ], + "license": "MIT", "lint-staged": { "*.js": [ "eslint --fix", "git add" ] - } + }, + "main": "dist/cjs.js", + "name": "@webpack-contrib/schema-utils", + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + }, + "pre-commit": "lint-staged", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", + "ci:coverage": "npm run test:coverage -- --runInBand", + "ci:lint": "npm run lint && npm run security", + "ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", + "ci:test": "npm run test -- --runInBand", + "clean": "del-cli dist", + "commitlint": "commitlint", + "commitmsg": "commitlint -e $GIT_PARAMS", + "defaults": "webpack-defaults", + "lint": "eslint --cache src test", + "lint-staged": "lint-staged", + "prebuild": "npm run clean", + "prepublish": "npm run build", + "release": "standard-version", + "release:ci": "conventional-github-releaser -p angular", + "release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", + "security": "nsp check", + "start": "npm run build -- -w", + "test": "jest", + "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", + "test:watch": "jest --watch" + }, + "version": "1.0.0-beta.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/JSV/package.json b/admin/vue2/element-admin-v3/node_modules/JSV/package.json index e496fc91b..4bf48f4d9 100644 --- a/admin/vue2/element-admin-v3/node_modules/JSV/package.json +++ b/admin/vue2/element-admin-v3/node_modules/JSV/package.json @@ -1,32 +1,70 @@ -{ - "name" : "JSV", - "version" : "4.0.2", - "description" : "A JavaScript implementation of a extendable, fully compliant JSON Schema validator.", - "homepage" : "http://github.com/garycourt/JSV", - "author" : "Gary Court ", - "licenses" : [ - { - "type" : "FreeBSD", - "url" : "http://github.com/garycourt/JSV/raw/master/jsv.js" - } - ], - "maintainers" : [ - { - "name" : "Gary Court", - "email" : "gary.court@gmail.com" - } - ], - "bugs" : { - "mail" : "gary.court@gmail.com", - "web" : "http://github.com/garycourt/JSV/issues" - }, - "repositories" : [ - { - "type" : "git", - "url" : "git://github.com/garycourt/JSV.git" - } - ], - "dependencies" : [], - "main" : "lib/jsv.js", - "keywords" : ["json", "schema", "validator"] -} +{ + "_args": [ + [ + "JSV@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "JSV@4.0.2", + "_id": "JSV@4.0.2", + "_inBundle": false, + "_integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", + "_location": "/JSV", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "JSV@4.0.2", + "name": "JSV", + "escapedName": "JSV", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/jsonlint" + ], + "_resolved": "https://registry.npm.taobao.org/JSV/download/JSV-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Gary Court", + "email": "gary.court@gmail.com" + }, + "bugs": { + "url": "http://github.com/garycourt/JSV/issues" + }, + "dependencies": {}, + "description": "A JavaScript implementation of a extendable, fully compliant JSON Schema validator.", + "homepage": "http://github.com/garycourt/JSV", + "keywords": [ + "json", + "schema", + "validator" + ], + "licenses": [ + { + "type": "FreeBSD", + "url": "http://github.com/garycourt/JSV/raw/master/jsv.js" + } + ], + "main": "lib/jsv.js", + "maintainers": [ + { + "name": "Gary Court", + "email": "gary.court@gmail.com" + } + ], + "name": "JSV", + "repositories": [ + { + "type": "git", + "url": "git://github.com/garycourt/JSV.git" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/garycourt/JSV.git" + }, + "version": "4.0.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/abbrev/package.json b/admin/vue2/element-admin-v3/node_modules/abbrev/package.json index bf4e8015b..5fe304339 100644 --- a/admin/vue2/element-admin-v3/node_modules/abbrev/package.json +++ b/admin/vue2/element-admin-v3/node_modules/abbrev/package.json @@ -1,21 +1,60 @@ { - "name": "abbrev", - "version": "1.1.1", - "description": "Like ruby's abbrev module, but in js", - "author": "Isaac Z. Schlueter ", - "main": "abbrev.js", - "scripts": { - "test": "tap test.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" + "_args": [ + [ + "abbrev@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "abbrev@1.1.1", + "_id": "abbrev@1.1.1", + "_inBundle": false, + "_integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "_location": "/abbrev", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "abbrev@1.1.1", + "name": "abbrev", + "escapedName": "abbrev", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "repository": "http://github.com/isaacs/abbrev-js", - "license": "ISC", + "_requiredBy": [ + "/nopt" + ], + "_resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + "bugs": { + "url": "https://github.com/isaacs/abbrev-js/issues" + }, + "description": "Like ruby's abbrev module, but in js", "devDependencies": { "tap": "^10.1" }, "files": [ "abbrev.js" - ] + ], + "homepage": "https://github.com/isaacs/abbrev-js#readme", + "license": "ISC", + "main": "abbrev.js", + "name": "abbrev", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test.js --100" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/accepts/package.json b/admin/vue2/element-admin-v3/node_modules/accepts/package.json index bc750cf80..132cc4ae8 100644 --- a/admin/vue2/element-admin-v3/node_modules/accepts/package.json +++ b/admin/vue2/element-admin-v3/node_modules/accepts/package.json @@ -1,17 +1,53 @@ { - "name": "accepts", - "description": "Higher-level content negotiation", - "version": "1.3.7", + "_args": [ + [ + "accepts@1.3.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "accepts@1.3.7", + "_id": "accepts@1.3.7", + "_inBundle": false, + "_integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "_location": "/accepts", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "accepts@1.3.7", + "name": "accepts", + "escapedName": "accepts", + "rawSpec": "1.3.7", + "saveSpec": null, + "fetchSpec": "1.3.7" + }, + "_requiredBy": [ + "/compression", + "/express", + "/serve-index" + ], + "_resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "_spec": "1.3.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/accepts/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "license": "MIT", - "repository": "jshttp/accepts", "dependencies": { "mime-types": "~2.1.24", "negotiator": "0.6.2" }, + "description": "Higher-level content negotiation", "devDependencies": { "deep-equal": "1.0.1", "eslint": "5.16.0", @@ -24,13 +60,26 @@ "mocha": "6.1.4", "nyc": "14.0.0" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/accepts#readme", + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ], + "license": "MIT", + "name": "accepts", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/accepts.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", @@ -38,10 +87,5 @@ "test-cov": "nyc --reporter=html --reporter=text npm test", "test-travis": "nyc --reporter=text npm test" }, - "keywords": [ - "content", - "negotiation", - "accept", - "accepts" - ] + "version": "1.3.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/acorn/package.json index 41f858e94..4d797befd 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/node_modules/acorn/package.json @@ -1,60 +1,327 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@5.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "acorn@5.7.4", + "_id": "acorn@5.7.4", + "_inBundle": false, + "_integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "_location": "/acorn-dynamic-import/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@5.7.4", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "5.7.4", + "saveSpec": null, + "fetchSpec": "5.7.4" + }, + "_requiredBy": [ + "/acorn-dynamic-import" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", + "_spec": "5.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/acornjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Heine" + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Boopesh Mahendran" + }, + { + "name": "Bradley Heinz" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Charmander" + }, + { + "name": "Chris McKnight" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "ehmicky" + }, + { + "name": "Eugene Obrezkov" + }, + { + "name": "Felix Maier" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "John-David Dalton" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "Kai Cataldo" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "laosb" + }, + { + "name": "luckyzeng" + }, + { + "name": "Marek" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mat Garcia" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "naoh" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Renée Kooi" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Shahar Soel" + }, + { + "name": "Sheel Bedi" + }, + { + "name": "Simen Bekkhus" + }, + { + "name": "Teddy Katz" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "Victor Homyakov" + }, + { + "name": "Wexpo Lyu" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/acornjs/acorn", - "main": "dist/acorn.js", - "module": "dist/acorn.es.js", - "version": "5.7.4", + "devDependencies": { + "eslint": "^4.10.0", + "eslint-config-standard": "^10.2.1", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-standard": "^3.0.1", + "rollup": "^0.45.0", + "rollup-plugin-buble": "^0.16.0", + "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72", + "test262-parser-runner": "^0.4.0", + "unicode-11.0.0": "^0.7.7" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/acornjs/acorn", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" }, { "name": "Adrian Heine", "email": "http://adrianheine.de" } ], + "module": "dist/acorn.es.js", + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/acornjs/acorn.git" + "url": "git+https://github.com/acornjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepare": "npm run build && node test/run.js && node test/lint.js", - "test": "node test/run.js && node test/lint.js", - "pretest": "npm run build:main && npm run build:loose", - "test:test262": "node bin/run_test262.js", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js && rollup -c rollup/config.loose_es.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js && rollup -c rollup/config.loose_es.js", - "build:bin": "rollup -c rollup/config.bin.js", - "lint": "eslint src/" - }, - "bin": { - "acorn": "./bin/acorn" + "lint": "eslint src/", + "prepare": "npm run build && node test/run.js && node test/lint.js", + "pretest": "npm run build:main && npm run build:loose", + "test": "node test/run.js && node test/lint.js", + "test:test262": "node bin/run_test262.js" }, - "devDependencies": { - "eslint": "^4.10.0", - "eslint-config-standard": "^10.2.1", - "eslint-plugin-import": "^2.2.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.5.0", - "eslint-plugin-standard": "^3.0.1", - "rollup": "^0.45.0", - "rollup-plugin-buble": "^0.16.0", - "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72", - "test262-parser-runner": "^0.4.0", - "unicode-11.0.0": "^0.7.7" - } + "version": "5.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/package.json index 275a59dd9..062dd6999 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-dynamic-import/package.json @@ -1,32 +1,43 @@ { - "name": "acorn-dynamic-import", - "description": "Support dynamic imports in acorn", - "main": "lib/index.js", - "homepage": "https://github.com/kesne/acorn-dynamic-import", - "author": "Jordan Gensler ", - "repository": { - "type": "git", - "url": "https://github.com/kesne/acorn-dynamic-import" + "_args": [ + [ + "acorn-dynamic-import@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "acorn-dynamic-import@3.0.0", + "_id": "acorn-dynamic-import@3.0.0", + "_inBundle": false, + "_integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", + "_location": "/acorn-dynamic-import", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn-dynamic-import@3.0.0", + "name": "acorn-dynamic-import", + "escapedName": "acorn-dynamic-import", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" }, - "license": "MIT", - "scripts": { - "build": "babel src --out-dir lib", - "test": "npm run lint && npm run tests-only", - "lint": "eslint .", - "tests-only": "mocha", - "prepublish": "in-publish && safe-publish-latest && npm run build || not-in-publish", - "check-changelog": "expr $(git status --porcelain 2>/dev/null| grep \"^\\s*M.*CHANGELOG.md\" | wc -l) >/dev/null || (echo 'Please edit CHANGELOG.md' && exit 1)", - "check-only-changelog-changed": "(expr $(git status --porcelain 2>/dev/null| grep -v \"CHANGELOG.md\" | wc -l) >/dev/null && echo 'Only CHANGELOG.md may have uncommitted changes' && exit 1) || exit 0", - "version:major": "npm --no-git-tag-version version major", - "version:minor": "npm --no-git-tag-version version minor", - "version:patch": "npm --no-git-tag-version version patch", - "postversion": "git commit package.json CHANGELOG.md -m \"v$npm_package_version\" && npm run tag && git push && git push --tags", - "preversion": "npm run test && npm run check-changelog && npm run check-only-changelog-changed", - "tag": "git tag v$npm_package_version" + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Gensler", + "email": "jordangens@gmail.com" + }, + "bugs": { + "url": "https://github.com/kesne/acorn-dynamic-import/issues" }, "dependencies": { "acorn": "^5.0.0" }, + "description": "Support dynamic imports in acorn", "devDependencies": { "babel-cli": "^6.18.0", "babel-eslint": "^7.1.1", @@ -41,5 +52,28 @@ "rimraf": "^2.5.4", "safe-publish-latest": "^1.1.1" }, + "homepage": "https://github.com/kesne/acorn-dynamic-import", + "license": "MIT", + "main": "lib/index.js", + "name": "acorn-dynamic-import", + "repository": { + "type": "git", + "url": "git+https://github.com/kesne/acorn-dynamic-import.git" + }, + "scripts": { + "build": "babel src --out-dir lib", + "check-changelog": "expr $(git status --porcelain 2>/dev/null| grep \"^\\s*M.*CHANGELOG.md\" | wc -l) >/dev/null || (echo 'Please edit CHANGELOG.md' && exit 1)", + "check-only-changelog-changed": "(expr $(git status --porcelain 2>/dev/null| grep -v \"CHANGELOG.md\" | wc -l) >/dev/null && echo 'Only CHANGELOG.md may have uncommitted changes' && exit 1) || exit 0", + "lint": "eslint .", + "postversion": "git commit package.json CHANGELOG.md -m \"v$npm_package_version\" && npm run tag && git push && git push --tags", + "prepublish": "in-publish && safe-publish-latest && npm run build || not-in-publish", + "preversion": "npm run test && npm run check-changelog && npm run check-only-changelog-changed", + "tag": "git tag v$npm_package_version", + "test": "npm run lint && npm run tests-only", + "tests-only": "mocha", + "version:major": "npm --no-git-tag-version version major", + "version:minor": "npm --no-git-tag-version version minor", + "version:patch": "npm --no-git-tag-version version patch" + }, "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/acorn/package.json index 1cc57bac1..0a0d3cc16 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-globals/node_modules/acorn/package.json @@ -1,46 +1,263 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@4.0.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn@4.0.13", + "_id": "acorn@4.0.13", + "_inBundle": false, + "_integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "_location": "/acorn-globals/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@4.0.13", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "4.0.13", + "saveSpec": null, + "fetchSpec": "4.0.13" + }, + "_requiredBy": [ + "/acorn-globals" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-4.0.13.tgz", + "_spec": "4.0.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/ternjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "Kai Cataldo" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mat Garcia" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "naoh" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Simen Bekkhus" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "Wexpo Lyu" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/ternjs/acorn", - "main": "dist/acorn.js", - "jsnext:main": "dist/acorn.es.js", - "version": "4.0.13", + "devDependencies": { + "rollup": "^0.34.1", + "rollup-plugin-buble": "^0.11.0", + "unicode-9.0.0": "^0.7.0" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/ternjs/acorn", + "jsnext:main": "dist/acorn.es.js", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" } ], + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/ternjs/acorn.git" + "url": "git+https://github.com/ternjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepublish": "npm test", - "test": "node test/run.js", - "pretest": "npm run build", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js", - "build:bin": "rollup -c rollup/config.bin.js" - }, - "bin": { - "acorn": "./bin/acorn" + "prepublish": "npm test", + "pretest": "npm run build", + "test": "node test/run.js" }, - "devDependencies": { - "rollup": "^0.34.1", - "rollup-plugin-buble": "^0.11.0", - "unicode-9.0.0": "^0.7.0" - } + "version": "4.0.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-globals/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-globals/package.json index 78994cf00..56f37ff27 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-globals/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-globals/package.json @@ -1,7 +1,51 @@ { - "name": "acorn-globals", - "version": "3.1.0", + "_args": [ + [ + "acorn-globals@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn-globals@3.1.0", + "_id": "acorn-globals@3.1.0", + "_inBundle": false, + "_integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "_location": "/acorn-globals", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn-globals@3.1.0", + "name": "acorn-globals", + "escapedName": "acorn-globals", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/pug-html-loader/with" + ], + "_resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/ForbesLindesay/acorn-globals/issues" + }, + "dependencies": { + "acorn": "^4.0.4" + }, "description": "Detect global variables in JavaScript using acorn", + "devDependencies": { + "testit": "^2.0.2" + }, + "files": [ + "index.js", + "LICENSE" + ], + "homepage": "https://github.com/ForbesLindesay/acorn-globals#readme", "keywords": [ "ast", "variable", @@ -12,23 +56,14 @@ "global", "implicit" ], - "files": [ - "index.js", - "LICENSE" - ], - "dependencies": { - "acorn": "^4.0.4" - }, - "devDependencies": { - "testit": "^2.0.2" + "license": "MIT", + "name": "acorn-globals", + "repository": { + "type": "git", + "url": "git+https://github.com/ForbesLindesay/acorn-globals.git" }, "scripts": { "test": "node test" }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/acorn-globals.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file + "version": "3.1.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/acorn/package.json index b37222691..3dd8a371e 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/node_modules/acorn/package.json @@ -1,46 +1,254 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn@3.3.0", + "_id": "acorn@3.3.0", + "_inBundle": false, + "_integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "_location": "/acorn-jsx/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@3.3.0", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/acorn-jsx" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/ternjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "ForbesLindesay" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Rich-Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/ternjs/acorn", - "main": "dist/acorn.js", - "jsnext:main": "dist/acorn.es.js", - "version": "3.3.0", + "devDependencies": { + "rollup": "^0.34.1", + "rollup-plugin-buble": "^0.11.0", + "unicode-9.0.0": "^0.7.0" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/ternjs/acorn", + "jsnext:main": "dist/acorn.es.js", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" } ], + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/ternjs/acorn.git" + "url": "git+https://github.com/ternjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepublish": "npm test", - "test": "node test/run.js", - "pretest": "npm run build", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js", - "build:bin": "rollup -c rollup/config.bin.js" - }, - "bin": { - "acorn": "./bin/acorn" + "prepublish": "npm test", + "pretest": "npm run build", + "test": "node test/run.js" }, - "devDependencies": { - "rollup": "^0.34.1", - "rollup-plugin-buble": "^0.11.0", - "unicode-9.0.0": "^0.7.0" - } + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/package.json index d91085204..517bdee1e 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-jsx/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-jsx/package.json @@ -1,28 +1,60 @@ { - "name": "acorn-jsx", + "_args": [ + [ + "acorn-jsx@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn-jsx@3.0.1", + "_id": "acorn-jsx@3.0.1", + "_inBundle": false, + "_integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "_location": "/acorn-jsx", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn-jsx@3.0.1", + "name": "acorn-jsx", + "escapedName": "acorn-jsx", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/espree" + ], + "_resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz?cache=0&sync_timestamp=1599499210411&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/RReverser/acorn-jsx/issues" + }, + "dependencies": { + "acorn": "^3.0.4" + }, "description": "Alternative, faster React.js JSX parser", + "devDependencies": { + "chai": "^3.0.0", + "mocha": "^2.2.5" + }, "homepage": "https://github.com/RReverser/acorn-jsx", - "version": "3.0.1", + "license": "MIT", "maintainers": [ { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" } ], + "name": "acorn-jsx", "repository": { "type": "git", - "url": "https://github.com/RReverser/acorn-jsx" + "url": "git+https://github.com/RReverser/acorn-jsx.git" }, - "license": "MIT", "scripts": { "test": "node test/run.js" }, - "dependencies": { - "acorn": "^3.0.4" - }, - "devDependencies": { - "chai": "^3.0.0", - "mocha": "^2.2.5" - } + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn-walk/package.json b/admin/vue2/element-admin-v3/node_modules/acorn-walk/package.json index ae8da3cf3..8b7099d26 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn-walk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn-walk/package.json @@ -1,34 +1,67 @@ { - "name": "acorn-walk", + "_args": [ + [ + "acorn-walk@7.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "acorn-walk@7.2.0", + "_id": "acorn-walk@7.2.0", + "_inBundle": false, + "_integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", + "_location": "/acorn-walk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn-walk@7.2.0", + "name": "acorn-walk", + "escapedName": "acorn-walk", + "rawSpec": "7.2.0", + "saveSpec": null, + "fetchSpec": "7.2.0" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz", + "_spec": "7.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/acornjs/acorn/issues" + }, "description": "ECMAScript (ESTree) AST walker", + "engines": { + "node": ">=0.4.0" + }, "homepage": "https://github.com/acornjs/acorn", + "license": "MIT", "main": "dist/walk.js", - "types": "dist/walk.d.ts", - "module": "dist/walk.mjs", - "version": "7.2.0", - "engines": {"node": ">=0.4.0"}, "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "https://marijnhaverbeke.nl" + "url": "https://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "https://rreverser.com/" + "url": "https://rreverser.com/" }, { "name": "Adrian Heine", - "web": "http://adrianheine.de" + "url": "http://adrianheine.de" } ], + "module": "dist/walk.mjs", + "name": "acorn-walk", "repository": { "type": "git", - "url": "https://github.com/acornjs/acorn.git" + "url": "git+https://github.com/acornjs/acorn.git" }, "scripts": { "prepare": "cd ..; npm run build:walk" }, - "license": "MIT" + "types": "dist/walk.d.ts", + "version": "7.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/acorn/package.json index 10699306d..f4dfd69e8 100644 --- a/admin/vue2/element-admin-v3/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/acorn/package.json @@ -1,35 +1,71 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@7.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "acorn@7.4.1", + "_id": "acorn@7.4.1", + "_inBundle": false, + "_integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "_location": "/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@7.4.1", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "7.4.1", + "saveSpec": null, + "fetchSpec": "7.4.1" + }, + "_requiredBy": [ + "/is-expression", + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", + "_spec": "7.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/acornjs/acorn/issues" + }, "description": "ECMAScript parser", + "engines": { + "node": ">=0.4.0" + }, "homepage": "https://github.com/acornjs/acorn", + "license": "MIT", "main": "dist/acorn.js", - "types": "dist/acorn.d.ts", - "module": "dist/acorn.mjs", - "version": "7.4.1", - "engines": {"node": ">=0.4.0"}, "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "https://marijnhaverbeke.nl" + "url": "https://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "https://rreverser.com/" + "url": "https://rreverser.com/" }, { "name": "Adrian Heine", - "web": "http://adrianheine.de" + "url": "http://adrianheine.de" } ], + "module": "dist/acorn.mjs", + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/acornjs/acorn.git" + "url": "git+https://github.com/acornjs/acorn.git" }, - "license": "MIT", "scripts": { "prepare": "cd ..; npm run build:main && npm run build:bin" }, - "bin": {"acorn": "./bin/acorn"} + "types": "dist/acorn.d.ts", + "version": "7.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/adler-32/package.json b/admin/vue2/element-admin-v3/node_modules/adler-32/package.json index 7bc196428..3aa1b2007 100644 --- a/admin/vue2/element-admin-v3/node_modules/adler-32/package.json +++ b/admin/vue2/element-admin-v3/node_modules/adler-32/package.json @@ -1,42 +1,89 @@ { - "name": "adler-32", - "version": "1.2.0", - "author": "sheetjs", - "description": "Pure-JS ADLER-32", - "keywords": [ "adler32", "checksum" ], - "bin": { - "adler32": "./bin/adler32.njs" - }, - "main": "./adler32", - "types": "types", - "dependencies": { - "printj":"~1.1.0", - "exit-on-epipe":"~1.0.1" - }, - "devDependencies": { - "mocha":"~2.5.3", - "blanket": "~1.2.3", - "codepage":"~1.10.0", - "@sheetjs/uglify-js":"~2.7.3", - "@types/node":"^8.0.7", - "dtslint": "^0.1.2", - "typescript": "2.2.0" - }, - "repository": { "type":"git", "url":"git://github.com/SheetJS/js-adler32.git" }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "adler32.js" - } - }, - "homepage": "http://sheetjs.com/opensource", - "files": ["adler32.js", "bin/adler32.njs", "LICENSE", "README.md", "types/index.d.ts", "types/*.json"], - "bugs": { "url": "https://github.com/SheetJS/js-adler32/issues" }, - "license": "Apache-2.0", - "engines": { "node": ">=0.8" } + "_args": [ + [ + "adler-32@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "adler-32@1.2.0", + "_id": "adler-32@1.2.0", + "_inBundle": false, + "_integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "_location": "/adler-32", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "adler-32@1.2.0", + "name": "adler-32", + "escapedName": "adler-32", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/xlsx" + ], + "_resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "sheetjs" + }, + "bin": { + "adler32": "bin/adler32.njs" + }, + "bugs": { + "url": "https://github.com/SheetJS/js-adler32/issues" + }, + "config": { + "blanket": { + "pattern": "adler32.js" + } + }, + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "description": "Pure-JS ADLER-32", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "codepage": "~1.10.0", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "adler32.js", + "bin/adler32.njs", + "LICENSE", + "README.md", + "types/index.d.ts", + "types/*.json" + ], + "homepage": "http://sheetjs.com/opensource", + "keywords": [ + "adler32", + "checksum" + ], + "license": "Apache-2.0", + "main": "./adler32", + "name": "adler-32", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-adler32.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/aes-decrypter/package.json b/admin/vue2/element-admin-v3/node_modules/aes-decrypter/package.json index e04f605a7..b2e32dad4 100644 --- a/admin/vue2/element-admin-v3/node_modules/aes-decrypter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/aes-decrypter/package.json @@ -1,82 +1,57 @@ { - "name": "aes-decrypter", - "version": "1.0.3", - "description": "decrypt aes-128 content using a key", - "main": "es5/index.js", + "_args": [ + [ + "aes-decrypter@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "aes-decrypter@1.0.3", + "_id": "aes-decrypter@1.0.3", + "_inBundle": false, + "_integrity": "sha1-nAa4pUNaWtCduTP4oBSvzxhMw04=", + "_location": "/aes-decrypter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "aes-decrypter@1.0.3", + "name": "aes-decrypter", + "escapedName": "aes-decrypter", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/videojs-contrib-hls" + ], + "_resolved": "https://registry.npm.taobao.org/aes-decrypter/download/aes-decrypter-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove, Inc." + }, + "browserify-shim": { + "qunit": "global:QUnit", + "sinon": "global:sinon" + }, "contributors": [ { - "name": "gkatsev", - "github": "https://github.com/gkatsev" + "name": "gkatsev" }, { - "name": "imbcmdth", - "github": "https://github.com/imbcmdth" + "name": "imbcmdth" }, { - "name": "dmlap", - "github": "https://github.com/dmlap" + "name": "dmlap" }, { - "name": "bcasey", - "github": "https://github.com/bcasey" + "name": "bcasey" } ], - "scripts": { - "prebuild": "npm run clean", - "build": "npm-run-all -p build:*", - "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:uglify", - "build:js:babel": "babel src -d es5", - "build:js:bannerize": "bannerize dist/ase-decrypter.js --banner=scripts/banner.ejs", - "build:js:browserify": "browserify . -s aes-decrypter -o dist/aes-decrypter.js", - "build:js:uglify": "uglifyjs dist/aes-decrypter.js --comments --mangle --compress -o dist/aes-decrypter.min.js", - "build:test": "babel-node scripts/build-test.js", - "change": "chg add", - "clean": "rimraf dist test/dist es5 && mkdirp dist test/dist es5", - "docs": "npm-run-all docs:*", - "docs:api": "jsdoc src -r -d docs/api", - "docs:toc": "doctoc README.md", - "lint": "vjsstandard", - "start": "babel-node scripts/server.js", - "pretest": "npm-run-all lint build", - "test": "karma start test/karma.conf.js", - "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", - "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", - "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", - "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", - "preversion": "npm test", - "version": "babel-node scripts/version.js", - "postversion": "babel-node scripts/postversion.js", - "prepublish": "npm run build" - }, - "author": "Brightcove, Inc.", - "license": "Apache-2.0", - "browserify-shim": { - "qunit": "global:QUnit", - "sinon": "global:sinon" - }, - "vjsstandard": { - "ignore": [ - "dist", - "docs", - "es5", - "test/dist", - "test/karma.conf.js" - ] - }, - "files": [ - "CONTRIBUTING.md", - "bower.json", - "dist/", - "docs/", - "es5/", - "index.html", - "scripts/", - "src/", - "test/" - ], "dependencies": { "pkcs7": "^0.2.3" }, + "description": "decrypt aes-128 content using a key", "devDependencies": { "babel": "^5.8.35", "babelify": "^6.4.0", @@ -104,5 +79,56 @@ "sinon": "~1.14.0", "uglify-js": "^2.6.1", "videojs-standard": "^4.0.0" + }, + "files": [ + "CONTRIBUTING.md", + "bower.json", + "dist/", + "docs/", + "es5/", + "index.html", + "scripts/", + "src/", + "test/" + ], + "license": "Apache-2.0", + "main": "es5/index.js", + "name": "aes-decrypter", + "scripts": { + "build": "npm-run-all -p build:*", + "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:uglify", + "build:js:babel": "babel src -d es5", + "build:js:bannerize": "bannerize dist/ase-decrypter.js --banner=scripts/banner.ejs", + "build:js:browserify": "browserify . -s aes-decrypter -o dist/aes-decrypter.js", + "build:js:uglify": "uglifyjs dist/aes-decrypter.js --comments --mangle --compress -o dist/aes-decrypter.min.js", + "build:test": "babel-node scripts/build-test.js", + "change": "chg add", + "clean": "rimraf dist test/dist es5 && mkdirp dist test/dist es5", + "docs": "npm-run-all docs:*", + "docs:api": "jsdoc src -r -d docs/api", + "docs:toc": "doctoc README.md", + "lint": "vjsstandard", + "postversion": "babel-node scripts/postversion.js", + "prebuild": "npm run clean", + "prepublish": "npm run build", + "pretest": "npm-run-all lint build", + "preversion": "npm test", + "start": "babel-node scripts/server.js", + "test": "karma start test/karma.conf.js", + "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", + "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", + "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", + "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", + "version": "babel-node scripts/version.js" + }, + "version": "1.0.3", + "vjsstandard": { + "ignore": [ + "dist", + "docs", + "es5", + "test/dist", + "test/karma.conf.js" + ] } } diff --git a/admin/vue2/element-admin-v3/node_modules/ajv-errors/package.json b/admin/vue2/element-admin-v3/node_modules/ajv-errors/package.json index 9eda8d50a..6e32a3c79 100644 --- a/admin/vue2/element-admin-v3/node_modules/ajv-errors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ajv-errors/package.json @@ -1,39 +1,37 @@ { - "name": "ajv-errors", - "version": "1.0.1", - "description": "Custom error messages in JSON-Schema for Ajv validator", - "main": "index.js", - "files": [ - "lib" + "_args": [ + [ + "ajv-errors@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib lib", - "eslint": "eslint *.js spec", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "nyc npm run test-spec", - "test": "npm run eslint && npm run build && npm run test-cov", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/ajv-errors.git" + "_from": "ajv-errors@1.0.1", + "_id": "ajv-errors@1.0.1", + "_inBundle": false, + "_integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "_location": "/ajv-errors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ajv-errors@1.0.1", + "name": "ajv-errors", + "escapedName": "ajv-errors", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "keywords": [ - "ajv", - "json-schema", - "validator", - "error", - "messages" + "_requiredBy": [ + "/schema-utils" ], + "_resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", "bugs": { "url": "https://github.com/epoberezkin/ajv-errors/issues" }, - "homepage": "https://github.com/epoberezkin/ajv-errors#readme", - "peerDependencies": { - "ajv": ">=5.0.0" - }, + "description": "Custom error messages in JSON-Schema for Ajv validator", "devDependencies": { "ajv": "^5.0.0", "coveralls": "^2.11.16", @@ -45,6 +43,20 @@ "nyc": "^10.1.2", "pre-commit": "^1.2.2" }, + "files": [ + "lib" + ], + "homepage": "https://github.com/epoberezkin/ajv-errors#readme", + "keywords": [ + "ajv", + "json-schema", + "validator", + "error", + "messages" + ], + "license": "MIT", + "main": "index.js", + "name": "ajv-errors", "nyc": { "exclude": [ "**/spec/**", @@ -54,5 +66,21 @@ "lcov", "text-summary" ] - } + }, + "peerDependencies": { + "ajv": ">=5.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv-errors.git" + }, + "scripts": { + "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib lib", + "eslint": "eslint *.js spec", + "prepublish": "npm run build", + "test": "npm run eslint && npm run build && npm run test-cov", + "test-cov": "nyc npm run test-spec", + "test-spec": "mocha spec/*.spec.js -R spec" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ajv-keywords/package.json b/admin/vue2/element-admin-v3/node_modules/ajv-keywords/package.json index fbd29d059..f855eebdd 100644 --- a/admin/vue2/element-admin-v3/node_modules/ajv-keywords/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ajv-keywords/package.json @@ -1,40 +1,46 @@ { - "name": "ajv-keywords", - "version": "3.5.2", - "description": "Custom JSON-Schema keywords for Ajv validator", - "main": "index.js", - "typings": "ajv-keywords.d.ts", - "scripts": { - "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib keywords", - "prepublish": "npm run build", - "test": "npm run build && npm run eslint && npm run test-cov", - "eslint": "eslint index.js keywords/*.js spec", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "istanbul cover -x 'spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/ajv-keywords.git" - }, - "keywords": [ - "JSON-Schema", - "ajv", - "keywords" + "_args": [ + [ + "ajv-keywords@3.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "index.js", - "ajv-keywords.d.ts", - "keywords" + "_from": "ajv-keywords@3.5.2", + "_id": "ajv-keywords@3.5.2", + "_inBundle": false, + "_integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "_location": "/ajv-keywords", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ajv-keywords@3.5.2", + "name": "ajv-keywords", + "escapedName": "ajv-keywords", + "rawSpec": "3.5.2", + "saveSpec": null, + "fetchSpec": "3.5.2" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils", + "/file-loader/schema-utils", + "/postcss-loader/schema-utils", + "/schema-utils", + "/uglifyjs-webpack-plugin/schema-utils", + "/url-loader/schema-utils", + "/webpack", + "/webpack/schema-utils" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "_spec": "3.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/ajv-keywords/issues" }, - "homepage": "https://github.com/epoberezkin/ajv-keywords#readme", - "peerDependencies": { - "ajv": "^6.9.1" - }, + "description": "Custom JSON-Schema keywords for Ajv validator", "devDependencies": { "ajv": "^6.9.1", "ajv-pack": "^0.3.0", @@ -49,5 +55,36 @@ "mocha": "^8.0.1", "pre-commit": "^1.1.3", "uuid": "^8.1.0" - } + }, + "files": [ + "index.js", + "ajv-keywords.d.ts", + "keywords" + ], + "homepage": "https://github.com/epoberezkin/ajv-keywords#readme", + "keywords": [ + "JSON-Schema", + "ajv", + "keywords" + ], + "license": "MIT", + "main": "index.js", + "name": "ajv-keywords", + "peerDependencies": { + "ajv": "^6.9.1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv-keywords.git" + }, + "scripts": { + "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib keywords", + "eslint": "eslint index.js keywords/*.js spec", + "prepublish": "npm run build", + "test": "npm run build && npm run eslint && npm run test-cov", + "test-cov": "istanbul cover -x 'spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-spec": "mocha spec/*.spec.js -R spec" + }, + "typings": "ajv-keywords.d.ts", + "version": "3.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/ajv/package.json b/admin/vue2/element-admin-v3/node_modules/ajv/package.json index 559a933c8..248c383a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/ajv/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ajv/package.json @@ -1,72 +1,57 @@ { - "name": "ajv", - "version": "6.12.6", - "description": "Another JSON Schema Validator", - "main": "lib/ajv.js", - "typings": "lib/ajv.d.ts", - "files": [ - "lib/", - "dist/", - "scripts/", - "LICENSE", - ".tonic_example.js" - ], - "scripts": { - "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", - "jshint": "jshint lib/{compile/,}*.js", - "lint": "npm run jshint && npm run eslint", - "test-spec": "mocha spec/{**/,}*.spec.js -R spec", - "test-fast": "AJV_FAST_TEST=true npm run test-spec", - "test-debug": "npm run test-spec -- --inspect-brk", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", - "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", - "bundle-beautify": "node ./scripts/bundle.js js-beautify", - "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", - "test-karma": "karma start", - "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", - "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", - "test": "npm run lint && npm run build && npm run test-all", - "prepublish": "npm run build && npm run bundle", - "watch": "watch \"npm run build\" ./lib/dot" - }, - "nyc": { - "exclude": [ - "**/spec/**", - "node_modules" - ], - "reporter": [ - "lcov", - "text-summary" + "_args": [ + [ + "ajv@6.12.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_from": "ajv@6.12.6", + "_id": "ajv@6.12.6", + "_inBundle": false, + "_integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "_location": "/ajv", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ajv@6.12.6", + "name": "ajv", + "escapedName": "ajv", + "rawSpec": "6.12.6", + "saveSpec": null, + "fetchSpec": "6.12.6" }, - "repository": { - "type": "git", - "url": "https://github.com/ajv-validator/ajv.git" - }, - "keywords": [ - "JSON", - "schema", - "validator", - "validation", - "jsonschema", - "json-schema", - "json-schema-validator", - "json-schema-validation" + "_requiredBy": [ + "/@webpack-contrib/schema-utils", + "/file-loader/schema-utils", + "/har-validator", + "/postcss-loader/schema-utils", + "/schema-utils", + "/uglifyjs-webpack-plugin/schema-utils", + "/url-loader/schema-utils", + "/webpack", + "/webpack/schema-utils" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz", + "_spec": "6.12.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, - "homepage": "https://github.com/ajv-validator/ajv", - "tonicExampleFilename": ".tonic_example.js", + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, + "description": "Another JSON Schema Validator", "devDependencies": { "ajv-async": "^1.0.0", "bluebird": "^3.5.3", @@ -95,12 +80,65 @@ "uglify-js": "^3.6.9", "watch": "^1.0.0" }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/ajv" - }, + "files": [ + "lib/", + "dist/", + "scripts/", + "LICENSE", + ".tonic_example.js" + ], "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" - } + }, + "homepage": "https://github.com/ajv-validator/ajv", + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "license": "MIT", + "main": "lib/ajv.js", + "name": "ajv", + "nyc": { + "exclude": [ + "**/spec/**", + "node_modules" + ], + "reporter": [ + "lcov", + "text-summary" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "scripts": { + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "prepublish": "npm run build && npm run bundle", + "test": "npm run lint && npm run build && npm run test-all", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-cov": "nyc npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-karma": "karma start", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "tonicExampleFilename": ".tonic_example.js", + "typings": "lib/ajv.d.ts", + "version": "6.12.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/align-text/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/align-text/node_modules/kind-of/package.json index 5de879e11..2bcc2ba7b 100644 --- a/admin/vue2/element-admin-v3/node_modules/align-text/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/align-text/node_modules/kind-of/package.json @@ -1,36 +1,70 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_development": true, + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/align-text/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/align-text" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +75,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +105,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +138,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/align-text/package.json b/admin/vue2/element-admin-v3/node_modules/align-text/package.json index 10f49bb1e..cd82430e2 100644 --- a/admin/vue2/element-admin-v3/node_modules/align-text/package.json +++ b/admin/vue2/element-admin-v3/node_modules/align-text/package.json @@ -1,40 +1,61 @@ { - "name": "align-text", - "description": "Align the text in a string.", - "version": "0.1.4", - "homepage": "https://github.com/jonschlinkert/align-text", + "_args": [ + [ + "align-text@0.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "align-text@0.1.4", + "_id": "align-text@0.1.4", + "_inBundle": false, + "_integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "_location": "/align-text", + "_phantomChildren": { + "is-buffer": "1.1.6" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "align-text@0.1.4", + "name": "align-text", + "escapedName": "align-text", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" + }, + "_requiredBy": [ + "/center-align", + "/right-align" + ], + "_resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", + "_spec": "0.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" }, - "repository": { - "type": "git", - "url": "git://github.com/jonschlinkert/align-text.git" - }, "bugs": { "url": "https://github.com/jonschlinkert/align-text/issues" }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, "dependencies": { "kind-of": "^3.0.2", "longest": "^1.0.1", "repeat-string": "^1.5.2" }, + "description": "Align the text in a string.", "devDependencies": { "mocha": "*", "should": "*", "word-wrap": "^1.0.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/align-text", "keywords": [ "align", "align-center", @@ -48,5 +69,16 @@ "right-align", "text", "typography" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "align-text", + "repository": { + "type": "git", + "url": "git://github.com/jonschlinkert/align-text.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/alphanum-sort/package.json b/admin/vue2/element-admin-v3/node_modules/alphanum-sort/package.json index ee92678d9..4dfee08aa 100644 --- a/admin/vue2/element-admin-v3/node_modules/alphanum-sort/package.json +++ b/admin/vue2/element-admin-v3/node_modules/alphanum-sort/package.json @@ -1,29 +1,52 @@ { - "name": "alphanum-sort", - "version": "1.0.2", - "description": "Alphanumeric sorting algorithm", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "alphanum-sort@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "alphanum-sort@1.0.2", + "_id": "alphanum-sort@1.0.2", + "_inBundle": false, + "_integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "_location": "/alphanum-sort", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "alphanum-sort@1.0.2", + "name": "alphanum-sort", + "escapedName": "alphanum-sort", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/postcss-minify-params", + "/postcss-minify-selectors", + "/postcss-unique-selectors" + ], + "_resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + "bugs": { + "url": "https://github.com/TrySound/alphanum-sort/issues" + }, + "description": "Alphanumeric sorting algorithm", "devDependencies": { "eslint": "^1.5.1", "javascript-natural-sort": "^0.7.1", "tap-spec": "^4.1.0", "tape": "^4.2.0" }, - "scripts": { - "test": "eslint lib test.js && tape test.js | tap-spec" - }, - "author": "Bogdan Chadkin ", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/TrySound/alphanum-sort.git" - }, - "bugs": { - "url": "https://github.com/TrySound/alphanum-sort/issues" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/TrySound/alphanum-sort", "keywords": [ "sort", @@ -31,5 +54,16 @@ "alphanumeric", "natural", "human" - ] + ], + "license": "MIT", + "main": "lib/index.js", + "name": "alphanum-sort", + "repository": { + "type": "git", + "url": "git+https://github.com/TrySound/alphanum-sort.git" + }, + "scripts": { + "test": "eslint lib test.js && tape test.js | tap-spec" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/amdefine/package.json b/admin/vue2/element-admin-v3/node_modules/amdefine/package.json index 8be171409..aaed35aa7 100644 --- a/admin/vue2/element-admin-v3/node_modules/amdefine/package.json +++ b/admin/vue2/element-admin-v3/node_modules/amdefine/package.json @@ -1,16 +1,52 @@ { + "_args": [ + [ + "amdefine@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "amdefine@1.0.1", + "_id": "amdefine@1.0.1", + "_inBundle": false, + "_integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "_location": "/amdefine", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "amdefine@1.0.1", "name": "amdefine", - "description": "Provide AMD's define() API for declaring modules in the AMD format", - "version": "1.0.1", - "homepage": "http://github.com/jrburke/amdefine", - "author": "James Burke (http://github.com/jrburke)", - "license": "BSD-3-Clause OR MIT", - "repository": { - "type": "git", - "url": "https://github.com/jrburke/amdefine.git" - }, - "main": "./amdefine.js", - "engines": { - "node": ">=0.4.2" - } + "escapedName": "amdefine", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/scss-tokenizer/source-map" + ], + "_resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Burke", + "email": "jrburke@gmail.com", + "url": "http://github.com/jrburke" + }, + "bugs": { + "url": "https://github.com/jrburke/amdefine/issues" + }, + "description": "Provide AMD's define() API for declaring modules in the AMD format", + "engines": { + "node": ">=0.4.2" + }, + "homepage": "http://github.com/jrburke/amdefine", + "license": "BSD-3-Clause OR MIT", + "main": "./amdefine.js", + "name": "amdefine", + "repository": { + "type": "git", + "url": "git+https://github.com/jrburke/amdefine.git" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ansi-colors/package.json b/admin/vue2/element-admin-v3/node_modules/ansi-colors/package.json index 8910f7db1..2ef0b6f06 100644 --- a/admin/vue2/element-admin-v3/node_modules/ansi-colors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ansi-colors/package.json @@ -1,33 +1,58 @@ { - "name": "ansi-colors", - "description": "Easily add ANSI colors to your text and symbols in the terminal. A faster drop-in replacement for chalk, kleur and turbocolor (without the dependencies and rendering bugs).", - "version": "3.2.4", - "homepage": "https://github.com/doowb/ansi-colors", - "author": "Brian Woodward (https://github.com/doowb)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jason Schilling (https://sourecode.de)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Jordan (https://github.com/Silic0nS0ldier)" + "_args": [ + [ + "ansi-colors@3.2.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "doowb/ansi-colors", - "bugs": { - "url": "https://github.com/doowb/ansi-colors/issues" + "_from": "ansi-colors@3.2.4", + "_id": "ansi-colors@3.2.4", + "_inBundle": false, + "_integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "_location": "/ansi-colors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-colors@3.2.4", + "name": "ansi-colors", + "escapedName": "ansi-colors", + "rawSpec": "3.2.4", + "saveSpec": null, + "fetchSpec": "3.2.4" }, - "license": "MIT", - "files": [ - "index.js", - "symbols.js", - "types/index.d.ts" + "_requiredBy": [ + "/webpack-log" ], - "main": "index.js", - "types": "./types/index.d.ts", - "engines": { - "node": ">=6" + "_resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", + "_spec": "3.2.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brian Woodward", + "url": "https://github.com/doowb" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/doowb/ansi-colors/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jason Schilling", + "url": "https://sourecode.de" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Jordan", + "url": "https://github.com/Silic0nS0ldier" + } + ], + "description": "Easily add ANSI colors to your text and symbols in the terminal. A faster drop-in replacement for chalk, kleur and turbocolor (without the dependencies and rendering bugs).", "devDependencies": { "decache": "^4.4.0", "gulp-format-md": "^1.0.0", @@ -35,6 +60,15 @@ "mocha": "^5.2.0", "text-table": "^0.2.0" }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "symbols.js", + "types/index.d.ts" + ], + "homepage": "https://github.com/doowb/ansi-colors", "keywords": [ "ansi", "bgblack", @@ -75,6 +109,17 @@ "white", "yellow" ], + "license": "MIT", + "main": "index.js", + "name": "ansi-colors", + "repository": { + "type": "git", + "url": "git+https://github.com/doowb/ansi-colors.git" + }, + "scripts": { + "test": "mocha" + }, + "types": "./types/index.d.ts", "verb": { "toc": false, "layout": "default", @@ -105,5 +150,6 @@ "colors", "kleur" ] - } + }, + "version": "3.2.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/ansi-escapes/package.json b/admin/vue2/element-admin-v3/node_modules/ansi-escapes/package.json index 50b3cfe7f..c7bbaba57 100644 --- a/admin/vue2/element-admin-v3/node_modules/ansi-escapes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ansi-escapes/package.json @@ -1,50 +1,88 @@ { - "name": "ansi-escapes", - "version": "3.2.0", - "description": "ANSI escape codes for manipulating the terminal", - "license": "MIT", - "repository": "sindresorhus/ansi-escapes", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "escapes", - "formatting", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text", - "vt100", - "sequence", - "control", - "code", - "codes", - "cursor", - "iterm", - "iterm2" - ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "ansi-escapes@3.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-escapes@3.2.0", + "_id": "ansi-escapes@3.2.0", + "_inBundle": false, + "_integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "_location": "/ansi-escapes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-escapes@3.2.0", + "name": "ansi-escapes", + "escapedName": "ansi-escapes", + "rawSpec": "3.2.0", + "saveSpec": null, + "fetchSpec": "3.2.0" + }, + "_requiredBy": [ + "/inquirer", + "/log-update", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "_spec": "3.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/ansi-escapes/issues" + }, + "description": "ANSI escape codes for manipulating the terminal", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/ansi-escapes#readme", + "keywords": [ + "ansi", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "escapes", + "formatting", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text", + "vt100", + "sequence", + "control", + "code", + "codes", + "cursor", + "iterm", + "iterm2" + ], + "license": "MIT", + "name": "ansi-escapes", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/ansi-escapes.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ansi-html/package.json b/admin/vue2/element-admin-v3/node_modules/ansi-html/package.json index 138a20133..fdd34eac9 100644 --- a/admin/vue2/element-admin-v3/node_modules/ansi-html/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ansi-html/package.json @@ -1,43 +1,68 @@ { - "name": "ansi-html", - "version": "0.0.7", - "description": "An elegant lib that converts the chalked (ANSI) text to HTML.", - "main": "index.js", - "scripts": { - "test": "./node_modules/.bin/mocha -R spec -t 5000" - }, - "bin": { - "ansi-html": "./bin/ansi-html" - }, - "repository": { - "type": "git", - "url": "git://github.com/Tjatse/ansi-html.git" + "_args": [ + [ + "ansi-html@0.0.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-html@0.0.7", + "_id": "ansi-html@0.0.7", + "_inBundle": false, + "_integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "_location": "/ansi-html", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-html@0.0.7", + "name": "ansi-html", + "escapedName": "ansi-html", + "rawSpec": "0.0.7", + "saveSpec": null, + "fetchSpec": "0.0.7" }, - "keywords": [ - "ansi", - "ansi html", - "chalk html" + "_requiredBy": [ + "/webpack-dev-server" ], + "_resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "_spec": "0.0.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Tjatse" }, - "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + }, "bugs": { "url": "https://github.com/Tjatse/ansi-html/issues" }, - "engines": [ - "node >= 0.8.0" - ], - "dependencies": { - }, + "dependencies": {}, + "description": "An elegant lib that converts the chalked (ANSI) text to HTML.", "devDependencies": { - "mocha": "^1.21.4", "chai": "^1.9.1", "chalk": "^1.1.3", - "lodash": "^2.4.2" + "lodash": "^2.4.2", + "mocha": "^1.21.4" }, - "readmeFilename": "README.md", + "engines": [ + "node >= 0.8.0" + ], "homepage": "https://github.com/Tjatse/ansi-html", + "keywords": [ + "ansi", + "ansi html", + "chalk html" + ], + "license": "Apache-2.0", + "main": "index.js", + "name": "ansi-html", + "repository": { + "type": "git", + "url": "git://github.com/Tjatse/ansi-html.git" + }, + "scripts": { + "test": "mocha -R spec -t 5000" + }, "standard": { "ignore": [], "globals": [ @@ -46,5 +71,6 @@ "before", "after" ] - } + }, + "version": "0.0.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/ansi-regex/package.json index eb44fb5c1..7d34b10a7 100644 --- a/admin/vue2/element-admin-v3/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ansi-regex/package.json @@ -1,29 +1,53 @@ { - "name": "ansi-regex", - "version": "2.1.1", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-regex@2.1.1", + "_id": "ansi-regex@2.1.1", + "_inBundle": false, + "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "_location": "/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@2.1.1", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/has-ansi", + "/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" - ], + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "0.17.0", + "xo": "0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava --verbose", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -51,10 +75,34 @@ "find", "pattern" ], - "devDependencies": { - "ava": "0.17.0", - "xo": "0.16.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava --verbose", + "view-supported": "node fixtures/view-codes.js" }, + "version": "2.1.1", "xo": { "rules": { "guard-for-in": 0, diff --git a/admin/vue2/element-admin-v3/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/ansi-styles/package.json index 78c535f74..10819733e 100644 --- a/admin/vue2/element-admin-v3/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ansi-styles/package.json @@ -1,27 +1,55 @@ { - "name": "ansi-styles", - "version": "2.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", + "_args": [ + [ + "ansi-styles@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-styles@2.2.1", + "_id": "ansi-styles@2.2.1", + "_inBundle": false, + "_integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "_location": "/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@2.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" + }, + "_requiredBy": [ + "/babel-code-frame/chalk", + "/friendly-errors-webpack-plugin/chalk", + "/listr-update-renderer/chalk", + "/node-sass/chalk", + "/svg-baker/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)" - ], + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-styles#readme", "keywords": [ "ansi", "styles", @@ -44,7 +72,26 @@ "command-line", "text" ], - "devDependencies": { - "mocha": "*" - } + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + } + ], + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/any-observable/package.json b/admin/vue2/element-admin-v3/node_modules/any-observable/package.json index e0135c483..af6f73215 100644 --- a/admin/vue2/element-admin-v3/node_modules/any-observable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/any-observable/package.json @@ -1,62 +1,98 @@ { - "name": "any-observable", - "version": "0.3.0", - "description": "Support any Observable library and polyfill", - "license": "MIT", - "repository": "sindresorhus/any-observable", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "implementation.js", - "loader.js", - "register.js", - "register-shim.js", - "register" - ], - "keywords": [ - "observable", - "observables", - "support", - "polyfill", - "any", - "rxjs" - ], - "devDependencies": { - "arrify": "^1.0.1", - "ava": "*", - "browserify": "^16.2.0", - "execa": "^0.10.0", - "karma": "^2.0.0", - "karma-browserify": "^5.2.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "mocha": "^5.1.0", - "rxjs": "^5.5.10", - "watchify": "^3.11.0", - "xo": "*", - "zen-observable": "^0.8.8" - }, - "browser": { - "./register.js": "./register-shim.js" - }, - "xo": { - "overrides": [ - { - "files": "browser/tests/**", - "envs": [ - "mocha" - ] - } - ] - } + "_args": [ + [ + "any-observable@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "any-observable@0.3.0", + "_id": "any-observable@0.3.0", + "_inBundle": false, + "_integrity": "sha1-r5M0deWAamfQ198JDdXovvZdEZs=", + "_location": "/any-observable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "any-observable@0.3.0", + "name": "any-observable", + "escapedName": "any-observable", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/@samverschueren/stream-to-observable" + ], + "_resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": { + "./register.js": "./register-shim.js" + }, + "bugs": { + "url": "https://github.com/sindresorhus/any-observable/issues" + }, + "description": "Support any Observable library and polyfill", + "devDependencies": { + "arrify": "^1.0.1", + "ava": "*", + "browserify": "^16.2.0", + "execa": "^0.10.0", + "karma": "^2.0.0", + "karma-browserify": "^5.2.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "mocha": "^5.1.0", + "rxjs": "^5.5.10", + "watchify": "^3.11.0", + "xo": "*", + "zen-observable": "^0.8.8" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "implementation.js", + "loader.js", + "register.js", + "register-shim.js", + "register" + ], + "homepage": "https://github.com/sindresorhus/any-observable#readme", + "keywords": [ + "observable", + "observables", + "support", + "polyfill", + "any", + "rxjs" + ], + "license": "MIT", + "name": "any-observable", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/any-observable.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "0.3.0", + "xo": { + "overrides": [ + { + "files": "browser/tests/**", + "envs": [ + "mocha" + ] + } + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/anymatch/node_modules/normalize-path/package.json b/admin/vue2/element-admin-v3/node_modules/anymatch/node_modules/normalize-path/package.json index c16ef9d25..8ae876f99 100644 --- a/admin/vue2/element-admin-v3/node_modules/anymatch/node_modules/normalize-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/anymatch/node_modules/normalize-path/package.json @@ -1,37 +1,68 @@ { - "name": "normalize-path", - "description": "Normalize file path slashes to be unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes unless disabled.", - "version": "2.1.1", - "homepage": "https://github.com/jonschlinkert/normalize-path", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Blaine Bublitz (https://twitter.com/BlaineBublitz)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "normalize-path@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/normalize-path", - "bugs": { - "url": "https://github.com/jonschlinkert/normalize-path/issues" + "_from": "normalize-path@2.1.1", + "_id": "normalize-path@2.1.1", + "_inBundle": false, + "_integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "_location": "/anymatch/normalize-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-path@2.1.1", + "name": "normalize-path", + "escapedName": "normalize-path", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/anymatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/normalize-path/issues" }, + "contributors": [ + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com", + "url": "https://twitter.com/BlaineBublitz" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "remove-trailing-separator": "^1.0.1" }, + "description": "Normalize file path slashes to be unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes unless disabled.", "devDependencies": { "benchmarked": "^0.1.1", "gulp-format-md": "^0.1.11", "minimist": "^1.2.0", "mocha": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/normalize-path", "keywords": [ "backslash", "file", @@ -48,6 +79,16 @@ "unix", "urix" ], + "license": "MIT", + "main": "index.js", + "name": "normalize-path", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/normalize-path.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -74,5 +115,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/anymatch/package.json b/admin/vue2/element-admin-v3/node_modules/anymatch/package.json index fdbafd76a..e4733c9c8 100644 --- a/admin/vue2/element-admin-v3/node_modules/anymatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/anymatch/package.json @@ -1,23 +1,55 @@ { - "name": "anymatch", - "version": "2.0.0", - "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", - "files": [ - "index.js" + "_args": [ + [ + "anymatch@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "anymatch@2.0.0", + "_id": "anymatch@2.0.0", + "_inBundle": false, + "_integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "_location": "/anymatch", + "_phantomChildren": { + "remove-trailing-separator": "1.1.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "anymatch@2.0.0", + "name": "anymatch", + "escapedName": "anymatch", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/chokidar" ], + "_resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747494189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Elan Shanker", "url": "http://github.com/es128" }, - "license": "ISC", - "homepage": "https://github.com/micromatch/anymatch", - "repository": { - "type": "git", - "url": "https://github.com/micromatch/anymatch" - }, "bugs": { "url": "https://github.com/micromatch/anymatch/issues" }, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", + "devDependencies": { + "coveralls": "^2.7.0", + "istanbul": "^0.4.5", + "mocha": "^3.0.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/micromatch/anymatch", "keywords": [ "match", "any", @@ -32,16 +64,14 @@ "expression", "function" ], + "license": "ISC", + "name": "anymatch", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/anymatch.git" + }, "scripts": { "test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls" }, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "devDependencies": { - "coveralls": "^2.7.0", - "istanbul": "^0.4.5", - "mocha": "^3.0.0" - } + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/aproba/package.json b/admin/vue2/element-admin-v3/node_modules/aproba/package.json index f008787bc..452bb2df9 100644 --- a/admin/vue2/element-admin-v3/node_modules/aproba/package.json +++ b/admin/vue2/element-admin-v3/node_modules/aproba/package.json @@ -1,34 +1,68 @@ { - "name": "aproba", - "version": "1.2.0", - "description": "A ridiculously light-weight argument validator (now browser friendly)", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "aproba@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "aproba@1.2.0", + "_id": "aproba@1.2.0", + "_inBundle": false, + "_integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "_location": "/aproba", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "aproba@1.2.0", + "name": "aproba", + "escapedName": "aproba", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/copy-concurrently", + "/gauge", + "/move-concurrently", + "/run-queue" + ], + "_resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/aproba/issues" }, "dependencies": {}, + "description": "A ridiculously light-weight argument validator (now browser friendly)", "devDependencies": { "standard": "^10.0.3", "tap": "^10.0.2" }, + "directories": { + "test": "test" + }, "files": [ "index.js" ], - "scripts": { - "test": "standard && tap -j3 test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/aproba" - }, + "homepage": "https://github.com/iarna/aproba", "keywords": [ "argument", "validate" ], - "author": "Rebecca Turner ", "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/aproba/issues" + "main": "index.js", + "name": "aproba", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/aproba.git" + }, + "scripts": { + "test": "standard && tap -j3 test/*.js" }, - "homepage": "https://github.com/iarna/aproba" + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/are-we-there-yet/package.json b/admin/vue2/element-admin-v3/node_modules/are-we-there-yet/package.json index c5990c9bd..3e7c45528 100644 --- a/admin/vue2/element-admin-v3/node_modules/are-we-there-yet/package.json +++ b/admin/vue2/element-admin-v3/node_modules/are-we-there-yet/package.json @@ -1,29 +1,49 @@ { - "name": "are-we-there-yet", - "version": "1.1.5", - "description": "Keep track of the overall completion of many disparate processes", - "main": "index.js", - "scripts": { - "test": "standard && tap test/*.js" + "_args": [ + [ + "are-we-there-yet@1.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "are-we-there-yet@1.1.5", + "_id": "are-we-there-yet@1.1.5", + "_inBundle": false, + "_integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", + "_location": "/are-we-there-yet", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "are-we-there-yet@1.1.5", + "name": "are-we-there-yet", + "escapedName": "are-we-there-yet", + "rawSpec": "1.1.5", + "saveSpec": null, + "fetchSpec": "1.1.5" }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/are-we-there-yet.git" + "_requiredBy": [ + "/npmlog" + ], + "_resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", + "_spec": "1.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "url": "http://re-becca.org" }, - "author": "Rebecca Turner (http://re-becca.org)", - "license": "ISC", "bugs": { "url": "https://github.com/iarna/are-we-there-yet/issues" }, - "homepage": "https://github.com/iarna/are-we-there-yet", - "devDependencies": { - "standard": "^11.0.1", - "tap": "^12.0.1" - }, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" }, + "description": "Keep track of the overall completion of many disparate processes", + "devDependencies": { + "standard": "^11.0.1", + "tap": "^12.0.1" + }, "files": [ "index.js", "tracker-base.js", @@ -31,5 +51,17 @@ "tracker-stream.js", "tracker.js", "CHANGES.md" - ] + ], + "homepage": "https://github.com/iarna/are-we-there-yet", + "license": "ISC", + "main": "index.js", + "name": "are-we-there-yet", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/are-we-there-yet.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/argparse/package.json b/admin/vue2/element-admin-v3/node_modules/argparse/package.json index 62fba0a9f..0cae85ebb 100644 --- a/admin/vue2/element-admin-v3/node_modules/argparse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/argparse/package.json @@ -1,7 +1,59 @@ { - "name": "argparse", + "_args": [ + [ + "argparse@1.0.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "argparse@1.0.10", + "_id": "argparse@1.0.10", + "_inBundle": false, + "_integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "_location": "/argparse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "argparse@1.0.10", + "name": "argparse", + "escapedName": "argparse", + "rawSpec": "1.0.10", + "saveSpec": null, + "fetchSpec": "1.0.10" + }, + "_requiredBy": [ + "/js-yaml" + ], + "_resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649397806&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", + "_spec": "1.0.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodeca/argparse/issues" + }, + "contributors": [ + { + "name": "Eugene Shkuropat" + }, + { + "name": "Paul Jacobson" + } + ], + "dependencies": { + "sprintf-js": "~1.0.2" + }, "description": "Very powerful CLI arguments parser. Native port of argparse - python's options parsing library", - "version": "1.0.10", + "devDependencies": { + "eslint": "^2.13.1", + "istanbul": "^0.4.5", + "mocha": "^3.1.0", + "ndoc": "^5.0.1" + }, + "files": [ + "index.js", + "lib/" + ], + "homepage": "https://github.com/nodeca/argparse#readme", "keywords": [ "cli", "parser", @@ -9,26 +61,14 @@ "option", "args" ], - "contributors": [ - "Eugene Shkuropat", - "Paul Jacobson" - ], - "files": [ - "index.js", - "lib/" - ], "license": "MIT", - "repository": "nodeca/argparse", + "name": "argparse", + "repository": { + "type": "git", + "url": "git+https://github.com/nodeca/argparse.git" + }, "scripts": { "test": "make test" }, - "dependencies": { - "sprintf-js": "~1.0.2" - }, - "devDependencies": { - "eslint": "^2.13.1", - "istanbul": "^0.4.5", - "mocha": "^3.1.0", - "ndoc": "^5.0.1" - } + "version": "1.0.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/arr-diff/package.json b/admin/vue2/element-admin-v3/node_modules/arr-diff/package.json index c106813be..adbda304e 100644 --- a/admin/vue2/element-admin-v3/node_modules/arr-diff/package.json +++ b/admin/vue2/element-admin-v3/node_modules/arr-diff/package.json @@ -1,29 +1,55 @@ { - "name": "arr-diff", - "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.", - "version": "4.0.0", - "homepage": "https://github.com/jonschlinkert/arr-diff", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Miller (paulmillr.com)" + "_args": [ + [ + "arr-diff@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/arr-diff", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-diff/issues" + "_from": "arr-diff@4.0.0", + "_id": "arr-diff@4.0.0", + "_inBundle": false, + "_integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "_location": "/arr-diff", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "arr-diff@4.0.0", + "name": "arr-diff", + "escapedName": "arr-diff", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/arr-diff/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Paul Miller", + "email": "paul+gh@paulmillr.com", + "url": "paulmillr.com" + } + ], "dependencies": {}, + "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.", "devDependencies": { "ansi-bold": "^0.1.1", "arr-flatten": "^1.0.1", @@ -33,6 +59,13 @@ "minimist": "^1.2.0", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/arr-diff", "keywords": [ "arr", "array", @@ -42,6 +75,16 @@ "differ", "difference" ], + "license": "MIT", + "main": "index.js", + "name": "arr-diff", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/arr-diff.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -65,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/arr-flatten/package.json b/admin/vue2/element-admin-v3/node_modules/arr-flatten/package.json index d2d33e9bc..6c87b7d45 100644 --- a/admin/vue2/element-admin-v3/node_modules/arr-flatten/package.json +++ b/admin/vue2/element-admin-v3/node_modules/arr-flatten/package.json @@ -1,28 +1,50 @@ { - "name": "arr-flatten", - "description": "Recursively flatten an array or arrays.", - "version": "1.1.0", - "homepage": "https://github.com/jonschlinkert/arr-flatten", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Luke Edwards (https://lukeed.com)" + "_args": [ + [ + "arr-flatten@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/arr-flatten", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-flatten/issues" + "_from": "arr-flatten@1.1.0", + "_id": "arr-flatten@1.1.0", + "_inBundle": false, + "_integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "_location": "/arr-flatten", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "arr-flatten@1.1.0", + "name": "arr-flatten", + "escapedName": "arr-flatten", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/braces" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/arr-flatten/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Luke Edwards", + "url": "https://lukeed.com" + } + ], + "description": "Recursively flatten an array or arrays.", "devDependencies": { "ansi-bold": "^0.1.1", "array-flatten": "^2.1.1", @@ -41,6 +63,13 @@ "utils-flatten": "^1.0.0", "write": "^0.3.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/arr-flatten", "keywords": [ "arr", "array", @@ -52,6 +81,16 @@ "recursive", "recursively" ], + "license": "MIT", + "main": "index.js", + "name": "arr-flatten", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/arr-flatten.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -72,5 +111,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/arr-union/package.json b/admin/vue2/element-admin-v3/node_modules/arr-union/package.json index 5ee87fd7d..250dc2065 100644 --- a/admin/vue2/element-admin-v3/node_modules/arr-union/package.json +++ b/admin/vue2/element-admin-v3/node_modules/arr-union/package.json @@ -1,24 +1,41 @@ { - "name": "arr-union", - "description": "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.", - "version": "3.1.0", - "homepage": "https://github.com/jonschlinkert/arr-union", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/arr-union", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-union/issues" + "_args": [ + [ + "arr-union@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "arr-union@3.1.0", + "_id": "arr-union@3.1.0", + "_inBundle": false, + "_integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "_location": "/arr-union", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "arr-union@3.1.0", + "name": "arr-union", + "escapedName": "arr-union", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/class-utils", + "/union-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/arr-union/issues" }, + "description": "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.", "devDependencies": { "ansi-bold": "^0.1.1", "array-union": "^1.0.1", @@ -29,6 +46,13 @@ "mocha": "*", "should": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/arr-union", "keywords": [ "add", "append", @@ -44,6 +68,16 @@ "utility", "utils" ], + "license": "MIT", + "main": "index.js", + "name": "arr-union", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/arr-union.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -72,5 +106,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/array-find-index/package.json b/admin/vue2/element-admin-v3/node_modules/array-find-index/package.json index ee2e62db0..9cf9b9ab3 100644 --- a/admin/vue2/element-admin-v3/node_modules/array-find-index/package.json +++ b/admin/vue2/element-admin-v3/node_modules/array-find-index/package.json @@ -1,23 +1,53 @@ { - "name": "array-find-index", - "version": "1.0.2", - "description": "ES2015 `Array#findIndex()` ponyfill", - "license": "MIT", - "repository": "sindresorhus/array-find-index", + "_args": [ + [ + "array-find-index@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "array-find-index@1.0.2", + "_id": "array-find-index@1.0.2", + "_inBundle": false, + "_integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "_location": "/array-find-index", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-find-index@1.0.2", + "name": "array-find-index", + "escapedName": "array-find-index", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/currently-unhandled" + ], + "_resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/array-find-index/issues" + }, + "description": "ES2015 `Array#findIndex()` ponyfill", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/array-find-index#readme", "keywords": [ "es2015", "ponyfill", @@ -28,8 +58,14 @@ "findindex", "array" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "array-find-index", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/array-find-index.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/array-flatten/package.json b/admin/vue2/element-admin-v3/node_modules/array-flatten/package.json index 1a24e2a1a..54db9e3ad 100644 --- a/admin/vue2/element-admin-v3/node_modules/array-flatten/package.json +++ b/admin/vue2/element-admin-v3/node_modules/array-flatten/package.json @@ -1,39 +1,67 @@ { - "name": "array-flatten", - "version": "1.1.1", - "description": "Flatten an array of nested arrays into a single flat array", - "main": "array-flatten.js", - "files": [ - "array-flatten.js", - "LICENSE" + "_args": [ + [ + "array-flatten@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "istanbul cover _mocha -- -R spec" + "_from": "array-flatten@1.1.1", + "_id": "array-flatten@1.1.1", + "_inBundle": false, + "_integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "_location": "/array-flatten", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-flatten@1.1.1", + "name": "array-flatten", + "escapedName": "array-flatten", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/array-flatten.git" - }, - "keywords": [ - "array", - "flatten", - "arguments", - "depth" + "_requiredBy": [ + "/express" ], + "_resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me" }, - "license": "MIT", "bugs": { "url": "https://github.com/blakeembrey/array-flatten/issues" }, - "homepage": "https://github.com/blakeembrey/array-flatten", + "description": "Flatten an array of nested arrays into a single flat array", "devDependencies": { "istanbul": "^0.3.13", "mocha": "^2.2.4", "pre-commit": "^1.0.7", "standard": "^3.7.3" - } + }, + "files": [ + "array-flatten.js", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/array-flatten", + "keywords": [ + "array", + "flatten", + "arguments", + "depth" + ], + "license": "MIT", + "main": "array-flatten.js", + "name": "array-flatten", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/array-union/package.json b/admin/vue2/element-admin-v3/node_modules/array-union/package.json index 367c844b6..dd6c2942f 100644 --- a/admin/vue2/element-admin-v3/node_modules/array-union/package.json +++ b/admin/vue2/element-admin-v3/node_modules/array-union/package.json @@ -1,23 +1,56 @@ { - "name": "array-union", - "version": "1.0.2", - "description": "Create an array of unique values, in order, from the input arrays", - "license": "MIT", - "repository": "sindresorhus/array-union", + "_args": [ + [ + "array-union@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "array-union@1.0.2", + "_id": "array-union@1.0.2", + "_inBundle": false, + "_integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "_location": "/array-union", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-union@1.0.2", + "name": "array-union", + "escapedName": "array-union", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/copy-webpack-plugin/globby", + "/globby" + ], + "_resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz?cache=0&sync_timestamp=1614624262896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/array-union/issues" + }, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "description": "Create an array of unique values, in order, from the input arrays", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/array-union#readme", "keywords": [ "array", "arr", @@ -30,11 +63,14 @@ "combine", "merge" ], - "dependencies": { - "array-uniq": "^1.0.1" + "license": "MIT", + "name": "array-union", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/array-union.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/array-uniq/package.json b/admin/vue2/element-admin-v3/node_modules/array-uniq/package.json index 106a3a95f..e3ba17e85 100644 --- a/admin/vue2/element-admin-v3/node_modules/array-uniq/package.json +++ b/admin/vue2/element-admin-v3/node_modules/array-uniq/package.json @@ -1,23 +1,54 @@ { - "name": "array-uniq", - "version": "1.0.3", - "description": "Create an array without duplicates", - "license": "MIT", - "repository": "sindresorhus/array-uniq", + "_args": [ + [ + "array-uniq@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "array-uniq@1.0.3", + "_id": "array-uniq@1.0.3", + "_inBundle": false, + "_integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "_location": "/array-uniq", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-uniq@1.0.3", + "name": "array-uniq", + "escapedName": "array-uniq", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/array-union" + ], + "_resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1620042045402&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/array-uniq/issues" + }, + "description": "Create an array without duplicates", + "devDependencies": { + "ava": "*", + "es6-set": "^0.1.0", + "require-uncached": "^1.0.2", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/array-uniq#readme", "keywords": [ "array", "arr", @@ -28,10 +59,14 @@ "duplicate", "remove" ], - "devDependencies": { - "ava": "*", - "es6-set": "^0.1.0", - "require-uncached": "^1.0.2", - "xo": "*" - } + "license": "MIT", + "name": "array-uniq", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/array-uniq.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/array-unique/package.json b/admin/vue2/element-admin-v3/node_modules/array-unique/package.json index d87640abe..2a324e2b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/array-unique/package.json +++ b/admin/vue2/element-admin-v3/node_modules/array-unique/package.json @@ -1,26 +1,44 @@ { - "name": "array-unique", - "description": "Remove duplicate values from an array. Fastest ES5 implementation.", - "version": "0.3.2", - "homepage": "https://github.com/jonschlinkert/array-unique", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/array-unique", - "bugs": { - "url": "https://github.com/jonschlinkert/array-unique/issues" + "_args": [ + [ + "array-unique@0.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "array-unique@0.3.2", + "_id": "array-unique@0.3.2", + "_inBundle": false, + "_integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "_location": "/array-unique", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-unique@0.3.2", + "name": "array-unique", + "escapedName": "array-unique", + "rawSpec": "0.3.2", + "saveSpec": null, + "fetchSpec": "0.3.2" }, - "license": "MIT", - "files": [ - "index.js", - "LICENSE", - "README.md" + "_requiredBy": [ + "/braces", + "/extglob", + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "_spec": "0.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/array-unique/issues" }, + "description": "Remove duplicate values from an array. Fastest ES5 implementation.", "devDependencies": { "array-uniq": "^1.0.2", "benchmarked": "^0.1.3", @@ -28,10 +46,29 @@ "mocha": "^2.5.3", "should": "^10.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/jonschlinkert/array-unique", "keywords": [ "array", "unique" ], + "license": "MIT", + "main": "index.js", + "name": "array-unique", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/array-unique.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -58,5 +95,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/asap/package.json b/admin/vue2/element-admin-v3/node_modules/asap/package.json index ae9f303bc..40b256352 100644 --- a/admin/vue2/element-admin-v3/node_modules/asap/package.json +++ b/admin/vue2/element-admin-v3/node_modules/asap/package.json @@ -1,18 +1,33 @@ { - "name": "asap", - "version": "2.0.6", - "description": "High-priority task queue for Node.js and browsers", - "keywords": [ - "event", - "task", - "queue" + "_args": [ + [ + "asap@2.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/kriskowal/asap.git" + "_development": true, + "_from": "asap@2.0.6", + "_id": "asap@2.0.6", + "_inBundle": false, + "_integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "_location": "/asap", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "asap@2.0.6", + "name": "asap", + "escapedName": "asap", + "rawSpec": "2.0.6", + "saveSpec": null, + "fetchSpec": "2.0.6" }, - "main": "./asap.js", + "_requiredBy": [ + "/promise" + ], + "_resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", + "_spec": "2.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "browser": { "./asap": "./browser-asap.js", "./asap.js": "./browser-asap.js", @@ -20,8 +35,22 @@ "./raw.js": "./browser-raw.js", "./test/domain.js": "./test/browser-domain.js" }, - "react-native": { - "domain": false + "bugs": { + "url": "https://github.com/kriskowal/asap/issues" + }, + "description": "High-priority task queue for Node.js and browsers", + "devDependencies": { + "benchmark": "^1.0.0", + "events": "^1.0.1", + "jshint": "^2.5.1", + "knox": "^0.8.10", + "mr": "^2.0.5", + "opener": "^1.3.0", + "q": "^2.0.3", + "q-io": "^2.0.3", + "saucelabs": "^0.1.1", + "wd": "^0.2.21", + "weak-map": "^1.0.5" }, "files": [ "raw.js", @@ -29,30 +58,34 @@ "browser-raw.js", "browser-asap.js" ], + "homepage": "https://github.com/kriskowal/asap#readme", + "keywords": [ + "event", + "task", + "queue" + ], + "license": "MIT", + "main": "./asap.js", + "name": "asap", + "react-native": { + "domain": false + }, + "repository": { + "type": "git", + "url": "git+https://github.com/kriskowal/asap.git" + }, "scripts": { + "benchmarks": "node benchmarks", + "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)", "test": "npm run lint && npm run test-node", - "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker", + "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", "test-node": "node test/asap-test.js", "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy", - "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json", "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json", "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json", "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json", - "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)", - "benchmarks": "node benchmarks" + "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker" }, - "devDependencies": { - "events": "^1.0.1", - "jshint": "^2.5.1", - "knox": "^0.8.10", - "mr": "^2.0.5", - "opener": "^1.3.0", - "q": "^2.0.3", - "q-io": "^2.0.3", - "saucelabs": "^0.1.1", - "wd": "^0.2.21", - "weak-map": "^1.0.5", - "benchmark": "^1.0.0" - } + "version": "2.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/asn1.js/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/asn1.js/node_modules/bn.js/package.json index 098b805f9..a8814c6e9 100644 --- a/admin/vue2/element-admin-v3/node_modules/asn1.js/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/asn1.js/node_modules/bn.js/package.json @@ -1,17 +1,49 @@ { - "name": "bn.js", - "version": "4.12.0", - "description": "Big number implementation in pure javascript", - "main": "lib/bn.js", - "scripts": { - "lint": "semistandard", - "unit": "mocha --reporter=spec test/*-test.js", - "test": "npm run lint && npm run unit" + "_args": [ + [ + "bn.js@4.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@4.12.0", + "_id": "bn.js@4.12.0", + "_inBundle": false, + "_integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "_location": "/asn1.js/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@4.12.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "4.12.0", + "saveSpec": null, + "fetchSpec": "4.12.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" + "_requiredBy": [ + "/asn1.js" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "_spec": "4.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, + "description": "Big number implementation in pure javascript", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "semistandard": "^7.0.4" + }, + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "BigNum", @@ -19,18 +51,17 @@ "Modulo", "Montgomery" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" + "main": "lib/bn.js", + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, - "homepage": "https://github.com/indutny/bn.js", - "browser": { - "buffer": false + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run unit", + "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "semistandard": "^7.0.4" - } + "version": "4.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/asn1.js/package.json b/admin/vue2/element-admin-v3/node_modules/asn1.js/package.json index 7b7d0530e..71c78485f 100644 --- a/admin/vue2/element-admin-v3/node_modules/asn1.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/asn1.js/package.json @@ -1,36 +1,66 @@ { - "name": "asn1.js", - "version": "5.4.1", - "description": "ASN.1 encoder and decoder", - "main": "lib/asn1.js", - "scripts": { - "lint-2560": "eslint --fix rfc/2560/*.js rfc/2560/test/*.js", - "lint-5280": "eslint --fix rfc/5280/*.js rfc/5280/test/*.js", - "lint": "eslint --fix lib/*.js lib/**/*.js lib/**/**/*.js && npm run lint-2560 && npm run lint-5280", - "test": "mocha --reporter spec test/*-test.js && cd rfc/2560 && npm i && npm test && cd ../../rfc/5280 && npm i && npm test && cd ../../ && npm run lint" - }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/asn1.js" + "_args": [ + [ + "asn1.js@5.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "asn1.js@5.4.1", + "_id": "asn1.js@5.4.1", + "_inBundle": false, + "_integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", + "_location": "/asn1.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "asn1.js@5.4.1", + "name": "asn1.js", + "escapedName": "asn1.js", + "rawSpec": "5.4.1", + "saveSpec": null, + "fetchSpec": "5.4.1" }, - "keywords": [ - "asn.1", - "der" + "_requiredBy": [ + "/parse-asn1" ], - "author": "Fedor Indutny", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", + "_spec": "5.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny" + }, "bugs": { "url": "https://github.com/indutny/asn1.js/issues" }, - "homepage": "https://github.com/indutny/asn1.js", - "devDependencies": { - "eslint": "^4.10.0", - "mocha": "^7.0.0" - }, "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "safer-buffer": "^2.1.0" - } + }, + "description": "ASN.1 encoder and decoder", + "devDependencies": { + "eslint": "^4.10.0", + "mocha": "^7.0.0" + }, + "homepage": "https://github.com/indutny/asn1.js", + "keywords": [ + "asn.1", + "der" + ], + "license": "MIT", + "main": "lib/asn1.js", + "name": "asn1.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/asn1.js.git" + }, + "scripts": { + "lint": "eslint --fix lib/*.js lib/**/*.js lib/**/**/*.js && npm run lint-2560 && npm run lint-5280", + "lint-2560": "eslint --fix rfc/2560/*.js rfc/2560/test/*.js", + "lint-5280": "eslint --fix rfc/5280/*.js rfc/5280/test/*.js", + "test": "mocha --reporter spec test/*-test.js && cd rfc/2560 && npm i && npm test && cd ../../rfc/5280 && npm i && npm test && cd ../../ && npm run lint" + }, + "version": "5.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/asn1/package.json b/admin/vue2/element-admin-v3/node_modules/asn1/package.json index 2b51c753c..5c67b297c 100644 --- a/admin/vue2/element-admin-v3/node_modules/asn1/package.json +++ b/admin/vue2/element-admin-v3/node_modules/asn1/package.json @@ -1,31 +1,79 @@ { - "author": "Joyent (joyent.com)", - "contributors": [ - "Mark Cavage ", - "David Gwynne ", - "Yunong Xiao ", - "Alex Wilson " + "_args": [ + [ + "asn1@0.2.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "name": "asn1", - "description": "Contains parsers and serializers for ASN.1 (currently BER only)", - "version": "0.2.4", - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-asn1.git" + "_development": true, + "_from": "asn1@0.2.4", + "_id": "asn1@0.2.4", + "_inBundle": false, + "_integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "_location": "/asn1", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "asn1@0.2.4", + "name": "asn1", + "escapedName": "asn1", + "rawSpec": "0.2.4", + "saveSpec": null, + "fetchSpec": "0.2.4" }, - "main": "lib/index.js", + "_requiredBy": [ + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "_spec": "0.2.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Joyent", + "url": "joyent.com" + }, + "bugs": { + "url": "https://github.com/joyent/node-asn1/issues" + }, + "contributors": [ + { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + { + "name": "David Gwynne", + "email": "loki@animata.net" + }, + { + "name": "Yunong Xiao", + "email": "yunong@joyent.com" + }, + { + "name": "Alex Wilson", + "email": "alex.wilson@joyent.com" + } + ], "dependencies": { "safer-buffer": "~2.1.0" }, + "description": "Contains parsers and serializers for ASN.1 (currently BER only)", "devDependencies": { - "istanbul": "^0.3.6", - "faucet": "0.0.1", - "tape": "^3.5.0", "eslint": "2.13.1", - "eslint-plugin-joyent": "~1.3.0" + "eslint-plugin-joyent": "~1.3.0", + "faucet": "0.0.1", + "istanbul": "^0.3.6", + "tape": "^3.5.0" + }, + "homepage": "https://github.com/joyent/node-asn1#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "asn1", + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-asn1.git" }, "scripts": { - "test": "./node_modules/.bin/tape ./test/ber/*.test.js" + "test": "tape ./test/ber/*.test.js" }, - "license": "MIT" + "version": "0.2.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/assert-never/package.json b/admin/vue2/element-admin-v3/node_modules/assert-never/package.json index 14d25ab52..e762c3d09 100644 --- a/admin/vue2/element-admin-v3/node_modules/assert-never/package.json +++ b/admin/vue2/element-admin-v3/node_modules/assert-never/package.json @@ -1,28 +1,67 @@ { - "name": "assert-never", - "version": "1.2.1", + "_args": [ + [ + "assert-never@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "assert-never@1.2.1", + "_id": "assert-never@1.2.1", + "_inBundle": false, + "_integrity": "sha1-EfDjY78UYgX7CBk7XHuQ9NHPRP4=", + "_location": "/assert-never", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "assert-never@1.2.1", + "name": "assert-never", + "escapedName": "assert-never", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/with" + ], + "_resolved": "https://registry.npm.taobao.org/assert-never/download/assert-never-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Daniel Lytkin", + "email": "dan.lytkin@gmail.com" + }, + "bugs": { + "url": "https://github.com/aikoven/assert-never/issues" + }, "description": "Helper function for exhaustive checks of discriminated unions in TypeScript", - "main": "index.js", - "typings": "index.d.ts", + "devDependencies": { + "typescript": "^2.2.1" + }, "files": [ "index.js", "index.ts", "index.d.ts" ], - "scripts": { - "build": "tsc", - "prepublish": "npm run build" - }, + "homepage": "https://github.com/aikoven/assert-never#readme", "keywords": [ "typescript", "discriminated unions", "assert", "never" ], - "repository": "aikoven/assert-never", - "author": "Daniel Lytkin ", "license": "MIT", - "devDependencies": { - "typescript": "^2.2.1" - } + "main": "index.js", + "name": "assert-never", + "repository": { + "type": "git", + "url": "git+https://github.com/aikoven/assert-never.git" + }, + "scripts": { + "build": "tsc", + "prepublish": "npm run build" + }, + "typings": "index.d.ts", + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/assert-plus/package.json b/admin/vue2/element-admin-v3/node_modules/assert-plus/package.json index 40d6a5cd8..b0fedf91d 100644 --- a/admin/vue2/element-admin-v3/node_modules/assert-plus/package.json +++ b/admin/vue2/element-admin-v3/node_modules/assert-plus/package.json @@ -1,23 +1,91 @@ { - "author": "Mark Cavage ", - "name": "assert-plus", + "_args": [ + [ + "assert-plus@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "assert-plus@1.0.0", + "_id": "assert-plus@1.0.0", + "_inBundle": false, + "_integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "_location": "/assert-plus", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "assert-plus@1.0.0", + "name": "assert-plus", + "escapedName": "assert-plus", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/dashdash", + "/getpass", + "/http-signature", + "/jsprim", + "/sshpk", + "/verror" + ], + "_resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + "bugs": { + "url": "https://github.com/mcavage/node-assert-plus/issues" + }, + "contributors": [ + { + "name": "Dave Eddy", + "email": "dave@daveeddy.com" + }, + { + "name": "Fred Kuo", + "email": "fred.kuo@joyent.com" + }, + { + "name": "Lars-Magnus Skog", + "email": "ralphtheninja@riseup.net" + }, + { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + { + "name": "Patrick Mooney", + "email": "pmooney@pfmooney.com" + }, + { + "name": "Rob Gulewich", + "email": "robert.gulewich@joyent.com" + } + ], + "dependencies": {}, "description": "Extra assertions on top of node's assert module", - "version": "1.0.0", - "license": "MIT", - "main": "./assert.js", "devDependencies": { - "tape": "4.2.2", - "faucet": "0.0.1" + "faucet": "0.0.1", + "tape": "4.2.2" }, - "optionalDependencies": {}, - "scripts": { - "test": "./node_modules/.bin/tape tests/*.js | ./node_modules/.bin/faucet" + "engines": { + "node": ">=0.8" }, + "homepage": "https://github.com/mcavage/node-assert-plus#readme", + "license": "MIT", + "main": "./assert.js", + "name": "assert-plus", + "optionalDependencies": {}, "repository": { "type": "git", - "url": "https://github.com/mcavage/node-assert-plus.git" + "url": "git+https://github.com/mcavage/node-assert-plus.git" }, - "engines": { - "node": ">=0.8" - } + "scripts": { + "test": "tape tests/*.js | ./node_modules/.bin/faucet" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/assert/node_modules/inherits/package.json b/admin/vue2/element-admin-v3/node_modules/assert/node_modules/inherits/package.json index 0e369659c..b9dbc3651 100644 --- a/admin/vue2/element-admin-v3/node_modules/assert/node_modules/inherits/package.json +++ b/admin/vue2/element-admin-v3/node_modules/assert/node_modules/inherits/package.json @@ -1,7 +1,38 @@ { - "name": "inherits", + "_args": [ + [ + "inherits@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "inherits@2.0.1", + "_id": "inherits@2.0.1", + "_inBundle": false, + "_integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "_location": "/assert/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.1", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/assert/util" + ], + "_resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.1", + "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", "class", @@ -12,11 +43,15 @@ "browser", "browserify" ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, "scripts": { "test": "node test" - } + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/assert/node_modules/util/package.json b/admin/vue2/element-admin-v3/node_modules/assert/node_modules/util/package.json index 738d0a826..38160f409 100644 --- a/admin/vue2/element-admin-v3/node_modules/assert/node_modules/util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/assert/node_modules/util/package.json @@ -1,31 +1,62 @@ { + "_args": [ + [ + "util@0.10.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "util@0.10.3", + "_id": "util@0.10.3", + "_inBundle": false, + "_integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "_location": "/assert/util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "util@0.10.3", + "name": "util", + "escapedName": "util", + "rawSpec": "0.10.3", + "saveSpec": null, + "fetchSpec": "0.10.3" + }, + "_requiredBy": [ + "/assert" + ], + "_resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz", + "_spec": "0.10.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Joyent", "url": "http://www.joyent.com" }, - "name": "util", + "browser": { + "./support/isBuffer.js": "./support/isBufferBrowser.js" + }, + "bugs": { + "url": "https://github.com/defunctzombie/node-util/issues" + }, + "dependencies": { + "inherits": "2.0.1" + }, "description": "Node.JS util module", + "devDependencies": { + "zuul": "~1.0.9" + }, + "homepage": "https://github.com/defunctzombie/node-util", "keywords": [ "util" ], - "version": "0.10.3", - "homepage": "https://github.com/defunctzombie/node-util", + "license": "MIT", + "main": "./util.js", + "name": "util", "repository": { "type": "git", - "url": "git://github.com/defunctzombie/node-util" + "url": "git://github.com/defunctzombie/node-util.git" }, - "main": "./util.js", "scripts": { "test": "node test/node/*.js && zuul test/browser/*.js" }, - "dependencies": { - "inherits": "2.0.1" - }, - "license": "MIT", - "devDependencies": { - "zuul": "~1.0.9" - }, - "browser": { - "./support/isBuffer.js": "./support/isBufferBrowser.js" - } + "version": "0.10.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/assert/package.json b/admin/vue2/element-admin-v3/node_modules/assert/package.json index 4927207de..797341169 100644 --- a/admin/vue2/element-admin-v3/node_modules/assert/package.json +++ b/admin/vue2/element-admin-v3/node_modules/assert/package.json @@ -1,11 +1,40 @@ { - "name": "assert", - "description": "The node.js assert module, re-packaged for web browsers.", - "version": "1.5.0", + "_args": [ + [ + "assert@1.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "assert@1.5.0", + "_id": "assert@1.5.0", + "_inBundle": false, + "_integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "_location": "/assert", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "assert@1.5.0", + "name": "assert", + "escapedName": "assert", + "rawSpec": "1.5.0", + "saveSpec": null, + "fetchSpec": "1.5.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "_spec": "1.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/browserify/commonjs-assert/issues" + }, "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" }, + "description": "The node.js assert module, re-packaged for web browsers.", "devDependencies": { "mocha": "~1.21.4", "zuul": "~3.10.0", @@ -18,6 +47,7 @@ ], "license": "MIT", "main": "./assert.js", + "name": "assert", "repository": { "type": "git", "url": "git://github.com/browserify/commonjs-assert.git" @@ -28,5 +58,6 @@ "test-browser": "zuul -- test.js", "test-native": "TEST_NATIVE=true mocha --ui qunit test.js", "test-node": "mocha --ui qunit test.js" - } + }, + "version": "1.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/assign-symbols/package.json b/admin/vue2/element-admin-v3/node_modules/assign-symbols/package.json index 7f77b58d1..5efab6f74 100644 --- a/admin/vue2/element-admin-v3/node_modules/assign-symbols/package.json +++ b/admin/vue2/element-admin-v3/node_modules/assign-symbols/package.json @@ -1,31 +1,64 @@ { - "name": "assign-symbols", - "description": "Assign the enumerable es6 Symbol properties from an object (or objects) to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/assign-symbols", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/assign-symbols", - "bugs": { - "url": "https://github.com/jonschlinkert/assign-symbols/issues" + "_args": [ + [ + "assign-symbols@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "assign-symbols@1.0.0", + "_id": "assign-symbols@1.0.0", + "_inBundle": false, + "_integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "_location": "/assign-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "assign-symbols@1.0.0", + "name": "assign-symbols", + "escapedName": "assign-symbols", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extend-shallow" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/assign-symbols/issues" }, + "description": "Assign the enumerable es6 Symbol properties from an object (or objects) to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method.", "devDependencies": { "mocha": "^3.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/assign-symbols", "keywords": [ "assign", "symbols" ], + "license": "MIT", + "main": "index.js", + "name": "assign-symbols", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/assign-symbols.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -36,5 +69,6 @@ "clone-deep" ] } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/async-each/package.json b/admin/vue2/element-admin-v3/node_modules/async-each/package.json index 6184f0135..eae325278 100644 --- a/admin/vue2/element-admin-v3/node_modules/async-each/package.json +++ b/admin/vue2/element-admin-v3/node_modules/async-each/package.json @@ -1,20 +1,66 @@ { - "name": "async-each", + "_args": [ + [ + "async-each@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "async-each@1.0.3", + "_id": "async-each@1.0.3", + "_inBundle": false, + "_integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "_location": "/async-each", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "async-each@1.0.3", + "name": "async-each", + "escapedName": "async-each", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Paul Miller", + "url": "https://paulmillr.com/" + }, + "bugs": { + "url": "https://github.com/paulmillr/async-each/issues" + }, + "dependencies": {}, "description": "No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach / map function for JavaScript.", - "version": "1.0.3", - "license": "MIT", + "files": [ + "index.js" + ], + "homepage": "https://github.com/paulmillr/async-each/", "keywords": [ - "async", "forEach", "each", "map", + "async", + "forEach", + "each", + "map", "asynchronous", - "iteration", "iterate", - "loop", "parallel", - "concurrent", "array", - "flow", "control flow" + "iteration", + "iterate", + "loop", + "parallel", + "concurrent", + "array", + "flow", + "control flow" ], - "files": ["index.js"], - "homepage": "https://github.com/paulmillr/async-each/", - "author": "Paul Miller (https://paulmillr.com/)", - "repository": "git://github.com/paulmillr/async-each.git", + "license": "MIT", "main": "index.js", - "dependencies": {} + "name": "async-each", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/async-each.git" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/async-foreach/package.json b/admin/vue2/element-admin-v3/node_modules/async-foreach/package.json index 5615dcead..37ba6890b 100644 --- a/admin/vue2/element-admin-v3/node_modules/async-foreach/package.json +++ b/admin/vue2/element-admin-v3/node_modules/async-foreach/package.json @@ -1,18 +1,47 @@ { - "author": "\"Cowboy\" Ben Alman (http://benalman.com/)", - "name": "async-foreach", - "description": "An optionally-asynchronous forEach with an interesting interface.", - "version": "0.1.3", - "homepage": "http://github.com/cowboy/javascript-sync-async-foreach", - "bugs": "https://github.com/cowboy/javascript-sync-async-foreach/issues", - "repository": { - "type": "git", - "url": "git://github.com/cowboy/javascript-sync-async-foreach.git" + "_args": [ + [ + "async-foreach@0.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "async-foreach@0.1.3", + "_id": "async-foreach@0.1.3", + "_inBundle": false, + "_integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "_location": "/async-foreach", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "async-foreach@0.1.3", + "name": "async-foreach", + "escapedName": "async-foreach", + "rawSpec": "0.1.3", + "saveSpec": null, + "fetchSpec": "0.1.3" }, - "main": "lib/foreach", + "_requiredBy": [ + "/node-sass" + ], + "_resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz", + "_spec": "0.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "\"Cowboy\" Ben Alman", + "url": "http://benalman.com/" + }, + "bugs": { + "url": "https://github.com/cowboy/javascript-sync-async-foreach/issues" + }, + "dependencies": {}, + "description": "An optionally-asynchronous forEach with an interesting interface.", + "devDependencies": {}, "engines": { "node": "*" }, + "homepage": "http://github.com/cowboy/javascript-sync-async-foreach", "keywords": [ "array", "loop", @@ -20,6 +49,11 @@ "async", "foreach" ], - "dependencies": {}, - "devDependencies": {} + "main": "lib/foreach", + "name": "async-foreach", + "repository": { + "type": "git", + "url": "git://github.com/cowboy/javascript-sync-async-foreach.git" + }, + "version": "0.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/async-limiter/package.json b/admin/vue2/element-admin-v3/node_modules/async-limiter/package.json index 50742cba0..cf727dfc2 100644 --- a/admin/vue2/element-admin-v3/node_modules/async-limiter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/async-limiter/package.json @@ -1,7 +1,50 @@ { - "name": "async-limiter", - "version": "1.0.1", + "_args": [ + [ + "async-limiter@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "async-limiter@1.0.1", + "_id": "async-limiter@1.0.1", + "_inBundle": false, + "_integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "_location": "/async-limiter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "async-limiter@1.0.1", + "name": "async-limiter", + "escapedName": "async-limiter", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/ws" + ], + "_resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Samuel Reed" + }, + "bugs": { + "url": "https://github.com/strml/async-limiter/issues" + }, + "dependencies": {}, "description": "asynchronous function queue with adjustable concurrency", + "devDependencies": { + "coveralls": "^3.0.3", + "eslint": "^5.16.0", + "eslint-plugin-mocha": "^5.3.0", + "intelli-espower-loader": "^1.0.1", + "mocha": "^6.1.4", + "nyc": "^14.1.1", + "power-assert": "^1.6.1" + }, + "homepage": "https://github.com/strml/async-limiter#readme", "keywords": [ "throttle", "async", @@ -12,24 +55,18 @@ "concurrency", "concurrent" ], - "dependencies": {}, - "devDependencies": { - "coveralls": "^3.0.3", - "eslint": "^5.16.0", - "eslint-plugin-mocha": "^5.3.0", - "intelli-espower-loader": "^1.0.1", - "mocha": "^6.1.4", - "nyc": "^14.1.1", - "power-assert": "^1.6.1" + "license": "MIT", + "name": "async-limiter", + "repository": { + "type": "git", + "url": "git+https://github.com/strml/async-limiter.git" }, "scripts": { - "test": "mocha --require intelli-espower-loader test/", - "travis": "npm run lint && npm run test", "coverage": "nyc npm test && nyc report --reporter=text-lcov | coveralls", "example": "node example", - "lint": "eslint ." + "lint": "eslint .", + "test": "mocha --require intelli-espower-loader test/", + "travis": "npm run lint && npm run test" }, - "repository": "https://github.com/strml/async-limiter.git", - "author": "Samuel Reed ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "_spec": "0.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Alex Indigo", + "email": "iam@alexindigo.com" + }, "bugs": { "url": "https://github.com/alexindigo/asynckit/issues" }, - "homepage": "https://github.com/alexindigo/asynckit#readme", + "dependencies": {}, + "description": "Minimal async jobs utility library, with streams support", "devDependencies": { "browserify": "^13.0.0", "browserify-istanbul": "^2.0.0", @@ -59,5 +52,44 @@ "tap-spec": "^4.1.1", "tape": "^4.5.1" }, - "dependencies": {} + "homepage": "https://github.com/alexindigo/asynckit#readme", + "keywords": [ + "async", + "jobs", + "parallel", + "serial", + "iterator", + "array", + "object", + "stream", + "destroy", + "terminate", + "abort" + ], + "license": "MIT", + "main": "index.js", + "name": "asynckit", + "pre-commit": [ + "clean", + "lint", + "test", + "browser", + "report", + "size" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/alexindigo/asynckit.git" + }, + "scripts": { + "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", + "clean": "rimraf coverage", + "debug": "tape test/test-*.js", + "lint": "eslint *.js lib/*.js test/*.js", + "report": "istanbul report", + "size": "browserify index.js | size-table asynckit", + "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", + "win-test": "tape test/test-*.js" + }, + "version": "0.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/atob/package.json b/admin/vue2/element-admin-v3/node_modules/atob/package.json index 79bfd9bad..89a3bd0e9 100644 --- a/admin/vue2/element-admin-v3/node_modules/atob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/atob/package.json @@ -1,24 +1,56 @@ { - "name": "atob", - "homepage": "https://git.coolaj86.com/coolaj86/atob.js.git", + "_args": [ + [ + "atob@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "atob@2.1.2", + "_id": "atob@2.1.2", + "_inBundle": false, + "_integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "_location": "/atob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "atob@2.1.2", + "name": "atob", + "escapedName": "atob", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/source-map-resolve" + ], + "_resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "AJ ONeal", + "email": "coolaj86@gmail.com", + "url": "https://coolaj86.com" + }, + "bin": { + "atob": "bin/atob.js" + }, + "browser": "browser-atob.js", "description": "atob for Node.JS and Linux / Mac / Windows CLI (it's a one-liner)", - "repository": { - "type": "git", - "url": "git://git.coolaj86.com/coolaj86/atob.js.git" + "engines": { + "node": ">= 4.5.0" }, + "homepage": "https://git.coolaj86.com/coolaj86/atob.js.git", "keywords": [ "atob", "browser" ], - "author": "AJ ONeal (https://coolaj86.com)", - "engines": { - "node": ">= 4.5.0" - }, + "license": "(MIT OR Apache-2.0)", "main": "node-atob.js", - "browser": "browser-atob.js", - "bin": { - "atob": "bin/atob.js" + "name": "atob", + "repository": { + "type": "git", + "url": "git://git.coolaj86.com/coolaj86/atob.js.git" }, - "license": "(MIT OR Apache-2.0)", "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/autoprefixer/package.json b/admin/vue2/element-admin-v3/node_modules/autoprefixer/package.json index f3551985f..1674fa95a 100644 --- a/admin/vue2/element-admin-v3/node_modules/autoprefixer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/autoprefixer/package.json @@ -1,11 +1,633 @@ { - "name": "autoprefixer", - "version": "8.5.0", - "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website", - "keywords": ["autoprefixer", "css", "prefix", "postcss", "postcss-plugin"], - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "postcss/autoprefixer", + "_args": [ + [ + "autoprefixer@8.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "autoprefixer@8.5.0", + "_id": "autoprefixer@8.5.0", + "_inBundle": false, + "_integrity": "sha1-iaObExb757wrSZegx9rQFJ2ZURw=", + "_location": "/autoprefixer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "autoprefixer@8.5.0", + "name": "autoprefixer", + "escapedName": "autoprefixer", + "rawSpec": "8.5.0", + "saveSpec": null, + "fetchSpec": "8.5.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/autoprefixer/download/autoprefixer-8.5.0.tgz", + "_spec": "8.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "bugs": { + "url": "https://github.com/postcss/autoprefixer/issues" + }, + "contributors": [ + { + "name": "Aaron", + "email": "me@aaron.md" + }, + { + "name": "Adam Lynch", + "email": "contact@adamlynch.ie" + }, + { + "name": "Adonis K", + "email": "aklp08@gmail.com" + }, + { + "name": "Adriaan", + "email": "https://github.com/harianus" + }, + { + "name": "Aleksei Androsov", + "email": "aandrosov@yandex-team.ru" + }, + { + "name": "Aleksey Shvayka", + "email": "shvaikalesh@gmail.com" + }, + { + "name": "Aleks Hudochenkov", + "email": "aleks@hudochenkov.com" + }, + { + "name": "Alexey Komarov", + "email": "alex7kom@gmail.com" + }, + { + "name": "Alexey Plutalov", + "email": "demiazz.py@gmail.com" + }, + { + "name": "Anders Olsen Sandvik", + "email": "https://github.com/Andersos" + }, + { + "name": "Andreas Haller", + "email": "Andreas.Haller@invision.de" + }, + { + "name": "Andreas Lind", + "email": "andreas@one.com" + }, + { + "name": "Andrew Rhoads" + }, + { + "name": "Andrey Deryabin", + "email": "deriabin@gmail.com" + }, + { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + { + "name": "Andrey Taritsyn", + "email": "taritsyn@gmail.com" + }, + { + "name": "Andy Trevorah", + "email": "a.trevorah@gmail.com" + }, + { + "name": "Anton Khlynovskiy", + "email": "subzey@gmail.com" + }, + { + "name": "Artem Yavorsky", + "email": "info@yavorsky.org" + }, + { + "name": "aruseni", + "email": "aruseni.magiku@gmail.com" + }, + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com" + }, + { + "name": "bernig", + "email": "https://github.com/bernig" + }, + { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + { + "name": "brainopia", + "email": "brainopia@evilmartians.com" + }, + { + "name": "Brandon Mathis", + "email": "brandon@imathis.com" + }, + { + "name": "Chad von Nau", + "email": "chad@vonnau.com" + }, + { + "name": "Chi Vinh Le", + "email": "vinh@wikiwi.io" + }, + { + "name": "Cory House", + "email": "housecor@gmail.com" + }, + { + "name": "Cory Simmons", + "email": "cory@mojotech.com" + }, + { + "name": "Craig Martin", + "email": "https://github.com/craigmichaelmartin" + }, + { + "name": "Damon", + "email": "motoxer4533@gmail.com" + }, + { + "name": "Daniel Garcia-Carrillo", + "email": "garciacarrillo.daniel@gmail.com" + }, + { + "name": "Daniel Tschinder", + "email": "daniel@tschinder.de" + }, + { + "name": "Danny Pule", + "email": "kojikusan@gmail.com" + }, + { + "name": "Darius" + }, + { + "name": "David Narbutovich", + "email": "vamnemne@gmail.com" + }, + { + "name": "David Pike", + "email": "david@evolution7.com.au" + }, + { + "name": "Denis Sokolov", + "email": "denis@sokolov.cc" + }, + { + "name": "Diablohu", + "email": "https://github.com/Diablohu" + }, + { + "name": "Dominik Porada", + "email": "dominik@porada.co" + }, + { + "name": "Dominik Schilling", + "email": "dominikschilling+git@gmail.com" + }, + { + "name": "dotch", + "email": "ch.weiss@hotmail.de" + }, + { + "name": "Dmitry Semigradsky", + "email": "semigradskyd@gmail.com" + }, + { + "name": "Efremov Alexey", + "email": "lexich121@gmail.com" + }, + { + "name": "eitanr", + "email": "eitanr@wix.com" + }, + { + "name": "Erik Sundahl", + "email": "esundahl@gmail.com" + }, + { + "name": "Eugene Datsky", + "email": "eugene@datsky.ru" + }, + { + "name": "Evgeny Petukhov", + "email": "petukhov.yevgeny@gmail.com" + }, + { + "name": "Evilebot Tnawi", + "email": "sheo13666q@gmail.com" + }, + { + "name": "Fangzhou Li", + "email": "riophaelee@gmail.com" + }, + { + "name": "Forrest York", + "email": "https://github.com/badisa" + }, + { + "name": "Google Inc." + }, + { + "name": "Gregory Eremin", + "email": "magnolia_fan@me.com" + }, + { + "name": "GU Yiling", + "email": "justice360@gmail.com" + }, + { + "name": "Gustavo Real", + "email": "https://github.com/kotfire" + }, + { + "name": "Hallvord R. M. Steen", + "email": "hallvord@hallvord.com" + }, + { + "name": "heady", + "email": "https://github.com/heady" + }, + { + "name": "Huáng Jùnliàng", + "email": "https://github.com/JLHwung" + }, + { + "name": "Iain Beeston", + "email": "iain.beeston@gmail.com" + }, + { + "name": "Igor Adamenko", + "email": "https://github.com/igoradamenko" + }, + { + "name": "Filipe W. Lima", + "email": "fwl.ufpe@gmail.com" + }, + { + "name": "Jack Moore", + "email": "hello@jacklmoore.com" + }, + { + "name": "Jason Kuhrt", + "email": "jasonkuhrt@me.com" + }, + { + "name": "Jeff Escalante", + "email": "hello@jenius.me" + }, + { + "name": "Joan León", + "email": "joan.leon@gmail.com" + }, + { + "name": "Johannes J. Schmidt", + "email": "schmidt@netzmerk.com" + }, + { + "name": "John Kreitlow", + "email": "jkreitlow@deepfocus.net" + }, + { + "name": "Jonathan Ong", + "email": "jonathanrichardong@gmail.com" + }, + { + "name": "Josh Gillies", + "email": "github@joshgilli.es" + }, + { + "name": "Junliang Huang" + }, + { + "name": "jvdanilo", + "email": "jvdanilo@gmail.com" + }, + { + "name": "Kevin Pfefferle", + "email": "kevin@rebaseinteractive.com" + }, + { + "name": "Kieran", + "email": "Kieranju@gmail.com" + }, + { + "name": "Kir Shatrov", + "email": "shatrov@me.com" + }, + { + "name": "Kiwi", + "email": "vinh@wikiwi.io" + }, + { + "name": "kizu", + "email": "kizmarh@gmail.com" + }, + { + "name": "Leonya Khachaturov", + "email": "leonidkhachaturov@gmail.com" + }, + { + "name": "Lovchikov Anton", + "email": "besyanya@yandex.ru" + }, + { + "name": "L.T", + "email": "ec.huyinghuan@gmail.com" + }, + { + "name": "Lucas Caton", + "email": "lucascaton@gmail.com" + }, + { + "name": "Luciano Battagliero", + "email": "lucianobattagliero+git@gmail.com" + }, + { + "name": "Luke Page", + "email": "luke.a.page@gmail.com" + }, + { + "name": "martco", + "email": "martco@gmail.com" + }, + { + "name": "Matt Smith", + "email": "runner_28@hotmail.com" + }, + { + "name": "Maxime Thirouin", + "email": "m@moox.io" + }, + { + "name": "Max Mechanic", + "email": "max@philo.com" + }, + { + "name": "Michael Beil", + "email": "michaelbeil@me.com" + }, + { + "name": "Michael Scott Hertzberg", + "email": "mshertzberg@gmail.com" + }, + { + "name": "Michał Gołębiowski-Owczarek", + "email": "m.goleb@gmail.com" + }, + { + "name": "Mikael Jorhult", + "email": "mikael@jorhult.se" + }, + { + "name": "Morton Fox", + "email": "github@qslw.com" + }, + { + "name": "mvasilkov", + "email": "mvasilkov@gmail.com" + }, + { + "name": "Nick Howes", + "email": "nick@nickhowes.co.uk" + }, + { + "name": "Nick Marchenko", + "email": "n30n1ck@gmail.com" + }, + { + "name": "Nic Nilov", + "email": "https://github.com/nicnilov" + }, + { + "name": "Nick Schonning", + "email": "nschonni@gmail.com" + }, + { + "name": "nickspielgist", + "email": "dev@nickspiel.me" + }, + { + "name": "Niels Dequeker", + "email": "niels.dequeker@gmail.com" + }, + { + "name": "Nikolay Burlov", + "email": "kohgpat@gmail.com" + }, + { + "name": "Oleh Aloshkin", + "email": "olegaleshkin@gmail.com" + }, + { + "name": "Oleksandr Sergiienko", + "email": "sigerello@gmail.com" + }, + { + "name": "Pavel Pustovalov", + "email": "pustovalov.pavel@gmail.com" + }, + { + "name": "Pavel Vostrikov", + "email": "mail@vostrik.com" + }, + { + "name": "Paul Statezny", + "email": "Paulstatezny@gmail.com" + }, + { + "name": "Peter van Westen", + "email": "info@regularlabs.com" + }, + { + "name": "Peter Zotov", + "email": "whitequark@whitequark.org" + }, + { + "name": "Phani Kandula", + "email": "phani.kandula@gmail.com" + }, + { + "name": "Phil Dokas", + "email": "phil@jetless.org" + }, + { + "name": "Rafael Silva", + "email": "rafael@rafaelsilva.net" + }, + { + "name": "Ray Lehnhoff", + "email": "raymond.lehnhoff@gmail.com" + }, + { + "name": "ReadmeCritic", + "email": "frankensteinbot@gmail.com" + }, + { + "name": "Reinaldo Schiehll", + "email": "rn.schiehll@gmail.com" + }, + { + "name": "René Stalder", + "email": "rene@whatwedo.ch" + }, + { + "name": "Richard Wang", + "email": "richardwa@google.com" + }, + { + "name": "Rob Howell", + "email": "rob@robhowell.com" + }, + { + "name": "Roland Warmerdam", + "email": "rowno@webspirited.com" + }, + { + "name": "Roman Dvornov", + "email": "rdvornov@gmail.com" + }, + { + "name": "Ryan Zimmerman", + "email": "https://github.com/RyanZim" + }, + { + "name": "Sami Suo-Heikki", + "email": "suoheikki.sami@gmail.com" + }, + { + "name": "Sasha Koss", + "email": "koss@nocorp.me" + }, + { + "name": "Sean Anderson", + "email": "Sean.Palmer.Anderson@gmail.com" + }, + { + "name": "Sergey Belov", + "email": "peimei@ya.ru" + }, + { + "name": "Sergey Leschina", + "email": "mail@putnik.ws" + }, + { + "name": "Sergey Lysenko", + "email": "soulwish.ls@gmail.com" + }, + { + "name": "sethjgore", + "email": "sethjgore@gmail.com" + }, + { + "name": "Šime Vidas", + "email": "sime.vidas@gmail.com" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com" + }, + { + "name": "Stanislav", + "email": "botev.st@gmail.com" + }, + { + "name": "Stephen Edgar", + "email": "stephen@netweb.com.au" + }, + { + "name": "Steve Mao", + "email": "https://github.com/stevemao" + }, + { + "name": "Stig Otnes Kolstad", + "email": "stig@stigok.net" + }, + { + "name": "Subash Pathak", + "email": "sbspk@msn.com" + }, + { + "name": "sunhao", + "email": "sunhao_1988@msn.cn" + }, + { + "name": "tomdavenport", + "email": "playmusic@me.com" + }, + { + "name": "Tony Ganch", + "email": "tonyganch@gmail.com" + }, + { + "name": "Vegard Andreas Larsen", + "email": "vegard@xaltra.net" + }, + { + "name": "Vera Surkova", + "email": "vera@surkova.se" + }, + { + "name": "Vincent De Oliveira", + "email": "vincent@iamvdo.me" + }, + { + "name": "Vishnu Ravi", + "email": "vishnu@vishnu.io" + }, + { + "name": "Vladimir Pouzanov", + "email": "farcaller@gmail.com" + }, + { + "name": "vladkens", + "email": "vladkens@yandex.ru" + }, + { + "name": "Yet Another Minion", + "email": "yam@thinkalexandria.com" + }, + { + "name": "Yuriy Alekseyev", + "email": "dev.yuriy.a@gmail.com" + }, + { + "name": "Даниил Пронин", + "email": "mail@grawl.ru" + }, + { + "name": "一丝", + "email": "jie.lijie@alibaba-inc.com" + }, + { + "name": "刘祺", + "email": "gucong@gmail.com" + }, + { + "name": "忆初", + "email": "baby@justjavac.com" + } + ], "dependencies": { "browserslist": "^3.2.7", "caniuse-lite": "^1.0.30000839", @@ -14,8 +636,21 @@ "postcss": "^6.0.22", "postcss-value-parser": "^3.2.3" }, - "bin": { - "autoprefixer": "./bin/autoprefixer" + "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website", + "homepage": "https://github.com/postcss/autoprefixer#readme", + "keywords": [ + "autoprefixer", + "css", + "prefix", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "lib/autoprefixer", + "name": "autoprefixer", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/autoprefixer.git" }, - "main": "lib/autoprefixer" -} \ No newline at end of file + "version": "8.5.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/awe-dnd/package.json b/admin/vue2/element-admin-v3/node_modules/awe-dnd/package.json index e897caf3f..278b07f57 100644 --- a/admin/vue2/element-admin-v3/node_modules/awe-dnd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/awe-dnd/package.json @@ -1,38 +1,40 @@ { - "name": "awe-dnd", - "version": "0.3.4", - "description": "makes your elements draggable in Vue", - "main": "vue-dragging.es5.js", - "scripts": { - "start": "node build", - "karma-run": "karma run", - "karma-start": "karma start test/unit/karma.conf.js", - "karma-single": "karma start test/unit/karma.conf.js --single-run" - }, - "repository": { - "type": "git", - "url": "https://github.com/hilongjw/vue-draging.git" + "_args": [ + [ + "awe-dnd@0.3.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "awe-dnd@0.3.4", + "_id": "awe-dnd@0.3.4", + "_inBundle": false, + "_integrity": "sha1-WRPRLgvTLz5+T2NhqHDo6mI0lus=", + "_location": "/awe-dnd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "awe-dnd@0.3.4", + "name": "awe-dnd", + "escapedName": "awe-dnd", + "rawSpec": "0.3.4", + "saveSpec": null, + "fetchSpec": "0.3.4" }, - "keywords": [ - "vue-dragging", - "vue-drag", - "vue-dnd", - "vue", - "draggable", - "drag", - "drop", - "html5", - "draggable", - "droppable", - "drag-and-drop", - "dnd" + "_requiredBy": [ + "/" ], - "author": "Awe ", + "_resolved": "https://registry.npm.taobao.org/awe-dnd/download/awe-dnd-0.3.4.tgz", + "_spec": "0.3.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Awe", + "email": "hilongjw@gmail.com" + }, "bugs": { "url": "https://github.com/hilongjw/vue-draging/issues" }, - "homePage": "https://github.com/hilongjw/vue-dragging#readme", - "license": "MIT", + "description": "makes your elements draggable in Vue", "devDependencies": { "babel-cli": "^6.24.1", "babel-polyfill": "^6.23.0", @@ -53,5 +55,35 @@ "sinon": "^2.1.0", "sinon-chai": "^2.9.0", "vue": "^2.2.6" - } + }, + "homePage": "https://github.com/hilongjw/vue-dragging#readme", + "homepage": "https://github.com/hilongjw/vue-draging#readme", + "keywords": [ + "vue-dragging", + "vue-drag", + "vue-dnd", + "vue", + "draggable", + "drag", + "drop", + "html5", + "draggable", + "droppable", + "drag-and-drop", + "dnd" + ], + "license": "MIT", + "main": "vue-dragging.es5.js", + "name": "awe-dnd", + "repository": { + "type": "git", + "url": "git+https://github.com/hilongjw/vue-draging.git" + }, + "scripts": { + "karma-run": "karma run", + "karma-single": "karma start test/unit/karma.conf.js --single-run", + "karma-start": "karma start test/unit/karma.conf.js", + "start": "node build" + }, + "version": "0.3.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/aws-sign2/package.json b/admin/vue2/element-admin-v3/node_modules/aws-sign2/package.json index 4c3d57e57..d01719db5 100644 --- a/admin/vue2/element-admin-v3/node_modules/aws-sign2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/aws-sign2/package.json @@ -1,17 +1,54 @@ { - "author": "Mikeal Rogers (http://www.futurealoof.com)", - "name": "aws-sign2", - "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", - "version": "0.7.0", - "repository": { - "url": "https://github.com/mikeal/aws-sign" + "_args": [ + [ + "aws-sign2@0.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "aws-sign2@0.7.0", + "_id": "aws-sign2@0.7.0", + "_inBundle": false, + "_integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "_location": "/aws-sign2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "aws-sign2@0.7.0", + "name": "aws-sign2", + "escapedName": "aws-sign2", + "rawSpec": "0.7.0", + "saveSpec": null, + "fetchSpec": "0.7.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "_spec": "0.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "bugs": { + "url": "https://github.com/mikeal/aws-sign/issues" }, - "license": "Apache-2.0", - "main": "index.js", "dependencies": {}, + "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, "engines": { "node": "*" - } + }, + "homepage": "https://github.com/mikeal/aws-sign#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "aws-sign2", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/aws-sign.git" + }, + "version": "0.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/aws4/package.json b/admin/vue2/element-admin-v3/node_modules/aws4/package.json index 424598d4a..e83c91c70 100644 --- a/admin/vue2/element-admin-v3/node_modules/aws4/package.json +++ b/admin/vue2/element-admin-v3/node_modules/aws4/package.json @@ -1,17 +1,57 @@ { - "name": "aws4", - "version": "1.11.0", + "_args": [ + [ + "aws4@1.11.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "aws4@1.11.0", + "_id": "aws4@1.11.0", + "_inBundle": false, + "_integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", + "_location": "/aws4", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "aws4@1.11.0", + "name": "aws4", + "escapedName": "aws4", + "rawSpec": "1.11.0", + "saveSpec": null, + "fetchSpec": "1.11.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101230105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", + "_spec": "1.11.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Michael Hart", + "email": "michael.hart.au@gmail.com", + "url": "https://github.com/mhart" + }, + "bugs": { + "url": "https://github.com/mhart/aws4/issues" + }, "description": "Signs and prepares requests using AWS Signature Version 4", - "author": "Michael Hart (https://github.com/mhart)", + "devDependencies": { + "mocha": "^2.5.3", + "should": "^8.4.0" + }, + "homepage": "https://github.com/mhart/aws4#readme", "license": "MIT", - "repository": "github:mhart/aws4", "main": "aws4.js", + "name": "aws4", + "repository": { + "type": "git", + "url": "git+https://github.com/mhart/aws4.git" + }, "scripts": { - "test": "mocha ./test/fast.js -R list", - "integration": "node ./test/slow.js" + "integration": "node ./test/slow.js", + "test": "mocha ./test/fast.js -R list" }, - "devDependencies": { - "mocha": "^2.5.3", - "should": "^8.4.0" - } + "version": "1.11.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/axios/package.json b/admin/vue2/element-admin-v3/node_modules/axios/package.json index 659ef029c..e2f5a16bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/axios/package.json +++ b/admin/vue2/element-admin-v3/node_modules/axios/package.json @@ -1,36 +1,51 @@ { - "name": "axios", - "version": "0.21.1", - "description": "Promise based HTTP client for the browser and node.js", - "main": "index.js", - "scripts": { - "test": "grunt test && bundlesize", - "start": "node ./sandbox/server.js", - "build": "NODE_ENV=production grunt build", - "preversion": "npm test", - "version": "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json", - "postversion": "git push && git push --tags", - "examples": "node ./examples/server.js", - "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", - "fix": "eslint --fix lib/**/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/axios/axios.git" + "_args": [ + [ + "axios@0.21.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "axios@0.21.1", + "_id": "axios@0.21.1", + "_inBundle": false, + "_integrity": "sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=", + "_location": "/axios", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "axios@0.21.1", + "name": "axios", + "escapedName": "axios", + "rawSpec": "0.21.1", + "saveSpec": null, + "fetchSpec": "0.21.1" }, - "keywords": [ - "xhr", - "http", - "ajax", - "promise", - "node" + "_requiredBy": [ + "/" ], - "author": "Matt Zabriskie", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1608609324963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.21.1.tgz", + "_spec": "0.21.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Matt Zabriskie" + }, + "browser": { + "./lib/adapters/http.js": "./lib/adapters/xhr.js" + }, "bugs": { "url": "https://github.com/axios/axios/issues" }, - "homepage": "https://github.com/axios/axios", + "bundlesize": [ + { + "path": "./dist/axios.min.js", + "threshold": "5kB" + } + ], + "dependencies": { + "follow-redirects": "^1.10.0" + }, + "description": "Promise based HTTP client for the browser and node.js", "devDependencies": { "bundlesize": "^0.17.0", "coveralls": "^3.0.0", @@ -68,19 +83,34 @@ "webpack": "^1.13.1", "webpack-dev-server": "^1.14.1" }, - "browser": { - "./lib/adapters/http.js": "./lib/adapters/xhr.js" - }, + "homepage": "https://github.com/axios/axios", "jsdelivr": "dist/axios.min.js", - "unpkg": "dist/axios.min.js", - "typings": "./index.d.ts", - "dependencies": { - "follow-redirects": "^1.10.0" + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node" + ], + "license": "MIT", + "main": "index.js", + "name": "axios", + "repository": { + "type": "git", + "url": "git+https://github.com/axios/axios.git" }, - "bundlesize": [ - { - "path": "./dist/axios.min.js", - "threshold": "5kB" - } - ] + "scripts": { + "build": "NODE_ENV=production grunt build", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "examples": "node ./examples/server.js", + "fix": "eslint --fix lib/**/*.js", + "postversion": "git push && git push --tags", + "preversion": "npm test", + "start": "node ./sandbox/server.js", + "test": "grunt test && bundlesize", + "version": "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json" + }, + "typings": "./index.d.ts", + "unpkg": "dist/axios.min.js", + "version": "0.21.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/chalk/package.json index 2b5881e9a..5e01bf980 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/chalk/package.json @@ -1,26 +1,60 @@ { - "name": "chalk", - "version": "1.1.3", - "description": "Terminal string styling done right. Much color.", - "license": "MIT", - "repository": "chalk/chalk", - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" + "_args": [ + [ + "chalk@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "chalk@1.1.3", + "_id": "chalk@1.1.3", + "_inBundle": false, + "_integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "_location": "/babel-code-frame/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@1.1.3", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/babel-code-frame" ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "description": "Terminal string styling done right. Much color.", + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && mocha", - "bench": "matcha benchmark.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/chalk#readme", "keywords": [ "color", "colour", @@ -44,23 +78,36 @@ "command-line", "text" ], - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" }, - "devDependencies": { - "coveralls": "^2.11.2", - "matcha": "^0.6.0", - "mocha": "*", - "nyc": "^3.0.0", - "require-uncached": "^1.0.2", - "resolve-from": "^1.0.0", - "semver": "^4.3.3", - "xo": "*" + "scripts": { + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "test": "xo && mocha" }, + "version": "1.1.3", "xo": { "envs": [ "node", diff --git a/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/js-tokens/package.json b/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/js-tokens/package.json index 7f5bd7800..3ef517f46 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/js-tokens/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-code-frame/node_modules/js-tokens/package.json @@ -1,9 +1,49 @@ { - "name": "js-tokens", - "version": "3.0.2", - "author": "Simon Lydell", - "license": "MIT", + "_args": [ + [ + "js-tokens@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "js-tokens@3.0.2", + "_id": "js-tokens@3.0.2", + "_inBundle": false, + "_integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "_location": "/babel-code-frame/js-tokens", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-tokens@3.0.2", + "name": "js-tokens", + "escapedName": "js-tokens", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/babel-code-frame" + ], + "_resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/js-tokens/issues" + }, "description": "A regex that tokenizes JavaScript.", + "devDependencies": { + "coffee-script": "~1.12.6", + "esprima": "^4.0.0", + "everything.js": "^1.0.3", + "mocha": "^3.4.2" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/lydell/js-tokens#readme", "keywords": [ "JavaScript", "js", @@ -11,20 +51,17 @@ "tokenize", "regex" ], - "files": [ - "index.js" - ], - "repository": "lydell/js-tokens", + "license": "MIT", + "name": "js-tokens", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/js-tokens.git" + }, "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" + "dev": "npm run build && npm test", + "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", + "test": "mocha --ui tdd" }, - "devDependencies": { - "coffee-script": "~1.12.6", - "esprima": "^4.0.0", - "everything.js": "^1.0.3", - "mocha": "^3.4.2" - } + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-code-frame/package.json b/admin/vue2/element-admin-v3/node_modules/babel-code-frame/package.json index 7cf9346c3..e9ba58b81 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-code-frame/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-code-frame/package.json @@ -1,15 +1,58 @@ { - "name": "babel-code-frame", - "version": "6.26.0", - "description": "Generate errors that contain a code frame that point to source locations.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame", - "main": "lib/index.js", + "_args": [ + [ + "babel-code-frame@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-code-frame@6.26.0", + "_id": "babel-code-frame@6.26.0", + "_inBundle": false, + "_integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "_location": "/babel-code-frame", + "_phantomChildren": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-code-frame@6.26.0", + "name": "babel-code-frame", + "escapedName": "babel-code-frame", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-core", + "/babel-traverse", + "/css-loader", + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" - } + }, + "description": "Generate errors that contain a code frame that point to source locations.", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-code-frame", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-core/package.json b/admin/vue2/element-admin-v3/node_modules/babel-core/package.json index c609c0b86..3bae82f1b 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-core/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-core/package.json @@ -1,29 +1,37 @@ { - "name": "babel-core", - "version": "6.26.3", - "description": "Babel compiler core.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-core", - "keywords": [ - "6to5", - "babel", - "classes", - "const", - "es6", - "harmony", - "let", - "modules", - "transpile", - "transpiler", - "var", - "babel-core", - "compiler" + "_args": [ + [ + "babel-core@6.26.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "bench": "make bench", - "test": "make test" + "_development": true, + "_from": "babel-core@6.26.3", + "_id": "babel-core@6.26.3", + "_inBundle": false, + "_integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", + "_location": "/babel-core", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-core@6.26.3", + "name": "babel-core", + "escapedName": "babel-core", + "rawSpec": "6.26.3", + "saveSpec": null, + "fetchSpec": "6.26.3" + }, + "_requiredBy": [ + "#DEV:/", + "/babel-register" + ], + "_resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", + "_spec": "6.26.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" }, "dependencies": { "babel-code-frame": "^6.26.0", @@ -46,9 +54,37 @@ "slash": "^1.0.0", "source-map": "^0.5.7" }, + "description": "Babel compiler core.", "devDependencies": { "babel-helper-fixtures": "^6.26.2", "babel-helper-transform-fixture-test-runner": "^6.26.2", "babel-polyfill": "^6.26.0" - } + }, + "homepage": "https://babeljs.io/", + "keywords": [ + "6to5", + "babel", + "classes", + "const", + "es6", + "harmony", + "let", + "modules", + "transpile", + "transpiler", + "var", + "babel-core", + "compiler" + ], + "license": "MIT", + "name": "babel-core", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-core" + }, + "scripts": { + "bench": "make bench", + "test": "make test" + }, + "version": "6.26.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon index d381ba5a3..b066817f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon +++ b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + "$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? else - exec node "$basedir/../babylon/bin/babylon.js" "$@" + node "$basedir/../babylon/bin/babylon.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.cmd b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.cmd index 5a2b7e8d6..317cd139b 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.cmd +++ b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +"%_prog%" "%dp0%\..\babylon\bin\babylon.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.ps1 b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.ps1 index 8110def8a..e059d8aa8 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/.bin/babylon.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "$basedir/node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } else { - & "node$exe" "$basedir/../babylon/bin/babylon.js" $args - } + & "node$exe" "$basedir/../babylon/bin/babylon.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/babylon/package.json b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/babylon/package.json index 5ed827980..2c67466d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/babylon/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-eslint/node_modules/babylon/package.json @@ -1,10 +1,54 @@ { - "name": "babylon", - "version": "7.0.0-beta.44", + "_args": [ + [ + "babylon@7.0.0-beta.44", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babylon@7.0.0-beta.44", + "_id": "babylon@7.0.0-beta.44", + "_inBundle": false, + "_integrity": "sha1-iRWeFebjDFCW4i1zjYwK+KDoyh0=", + "_location": "/babel-eslint/babylon", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babylon@7.0.0-beta.44", + "name": "babylon", + "escapedName": "babylon", + "rawSpec": "7.0.0-beta.44", + "saveSpec": null, + "fetchSpec": "7.0.0-beta.44" + }, + "_requiredBy": [ + "/babel-eslint" + ], + "_resolved": "https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz", + "_spec": "7.0.0-beta.44", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bin": { + "babylon": "bin/babylon.js" + }, "description": "A JavaScript parser", - "author": "Sebastian McKenzie ", + "devDependencies": { + "@babel/helper-fixtures": "7.0.0-beta.44", + "charcodes": "0.1.0", + "unicode-10.0.0": "^0.7.4" + }, + "engines": { + "node": ">=4.2.0" + }, + "files": [ + "bin", + "lib" + ], "homepage": "https://babeljs.io/", - "license": "MIT", "keywords": [ "babel", "javascript", @@ -13,24 +57,15 @@ "ecmascript", "babylon" ], - "repository": "https://github.com/babel/babel/tree/master/packages/babylon", + "license": "MIT", "main": "lib/index.js", - "files": [ - "bin", - "lib" - ], - "engines": { - "node": ">=4.2.0" - }, - "devDependencies": { - "@babel/helper-fixtures": "7.0.0-beta.44", - "charcodes": "0.1.0", - "unicode-10.0.0": "^0.7.4" - }, - "bin": { - "babylon": "./bin/babylon.js" - }, + "name": "babylon", "publishConfig": { "tag": "next" - } + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babylon" + }, + "version": "7.0.0-beta.44" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-eslint/package.json b/admin/vue2/element-admin-v3/node_modules/babel-eslint/package.json index 9bf34023d..f6c993dc5 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-eslint/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-eslint/package.json @@ -1,14 +1,39 @@ { - "name": "babel-eslint", - "version": "8.2.6", - "description": "Custom parser for ESLint", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "babel-eslint@8.2.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "https://github.com/babel/babel-eslint.git" + "_development": true, + "_from": "babel-eslint@8.2.6", + "_id": "babel-eslint@8.2.6", + "_inBundle": false, + "_integrity": "sha1-YnDQxzIFYoBnwPeuFpOp55es79k=", + "_location": "/babel-eslint", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-eslint@8.2.6", + "name": "babel-eslint", + "escapedName": "babel-eslint", + "rawSpec": "8.2.6", + "saveSpec": null, + "fetchSpec": "8.2.6" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-8.2.6.tgz", + "_spec": "8.2.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bugs": { + "url": "https://github.com/babel/babel-eslint/issues" }, "dependencies": { "@babel/code-frame": "7.0.0-beta.44", @@ -18,24 +43,7 @@ "eslint-scope": "3.7.1", "eslint-visitor-keys": "^1.0.0" }, - "scripts": { - "test": "npm run lint && npm run test-only", - "test-only": "mocha && mocha --require test/fixtures/preprocess-to-patch.js && mocha --require test/fixtures/use-eslint-old.js", - "lint": "eslint index.js babylon-to-espree test", - "fix": "eslint index.js babylon-to-espree test --fix", - "precommit": "lint-staged", - "preversion": "npm test", - "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'" - }, - "author": "Sebastian McKenzie ", - "license": "MIT", - "engines": { - "node": ">=4" - }, - "bugs": { - "url": "https://github.com/babel/babel-eslint/issues" - }, - "homepage": "https://github.com/babel/babel-eslint", + "description": "Custom parser for ESLint", "devDependencies": { "babel-eslint": "^8.0.0", "dedent": "^0.7.0", @@ -51,10 +59,34 @@ "mocha": "^5.0.1", "prettier": "^1.4.4" }, + "engines": { + "node": ">=4" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/babel/babel-eslint", + "license": "MIT", "lint-staged": { "*.js": [ "eslint --format=codeframe --fix", "git add" ] - } + }, + "main": "lib/index.js", + "name": "babel-eslint", + "repository": { + "type": "git", + "url": "git+https://github.com/babel/babel-eslint.git" + }, + "scripts": { + "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'", + "fix": "eslint index.js babylon-to-espree test --fix", + "lint": "eslint index.js babylon-to-espree test", + "precommit": "lint-staged", + "preversion": "npm test", + "test": "npm run lint && npm run test-only", + "test-only": "mocha && mocha --require test/fixtures/preprocess-to-patch.js && mocha --require test/fixtures/use-eslint-old.js" + }, + "version": "8.2.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-generator/package.json b/admin/vue2/element-admin-v3/node_modules/babel-generator/package.json index 01acda15b..efa52fa05 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-generator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-generator/package.json @@ -1,15 +1,37 @@ { - "name": "babel-generator", - "version": "6.26.1", - "description": "Turns an AST into code.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-generator", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "babel-generator@6.26.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "babel-generator@6.26.1", + "_id": "babel-generator@6.26.1", + "_inBundle": false, + "_integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "_location": "/babel-generator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-generator@6.26.1", + "name": "babel-generator", + "escapedName": "babel-generator", + "rawSpec": "6.26.1", + "saveSpec": null, + "fetchSpec": "6.26.1" + }, + "_requiredBy": [ + "/babel-core" + ], + "_resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", + "_spec": "6.26.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -20,8 +42,21 @@ "source-map": "^0.5.7", "trim-right": "^1.0.1" }, + "description": "Turns an AST into code.", "devDependencies": { "babel-helper-fixtures": "^6.26.0", "babylon": "^6.18.0" - } + }, + "files": [ + "lib" + ], + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-generator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-generator" + }, + "version": "6.26.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-bindify-decorators/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-bindify-decorators/package.json index 175eb515d..5759abb27 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-bindify-decorators/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-bindify-decorators/package.json @@ -1,13 +1,45 @@ { - "name": "babel-helper-bindify-decorators", - "version": "6.24.1", - "description": "Helper function to bindify decorators", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-bindify-decorators", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-bindify-decorators@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-bindify-decorators@6.24.1", + "_id": "babel-helper-bindify-decorators@6.24.1", + "_inBundle": false, + "_integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "_location": "/babel-helper-bindify-decorators", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-bindify-decorators@6.24.1", + "name": "babel-helper-bindify-decorators", + "escapedName": "babel-helper-bindify-decorators", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-helper-explode-class" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to bindify decorators", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-bindify-decorators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-bindify-decorators" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-builder-binary-assignment-operator-visitor/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-builder-binary-assignment-operator-visitor/package.json index 30be79469..ee889fd4c 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-builder-binary-assignment-operator-visitor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-builder-binary-assignment-operator-visitor/package.json @@ -1,13 +1,45 @@ { - "name": "babel-helper-builder-binary-assignment-operator-visitor", - "version": "6.24.1", - "description": "Helper function to build binary assignment operator visitors", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-builder-binary-assignment-operator-visitor", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-builder-binary-assignment-operator-visitor@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-builder-binary-assignment-operator-visitor@6.24.1", + "_id": "babel-helper-builder-binary-assignment-operator-visitor@6.24.1", + "_inBundle": false, + "_integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "_location": "/babel-helper-builder-binary-assignment-operator-visitor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-builder-binary-assignment-operator-visitor@6.24.1", + "name": "babel-helper-builder-binary-assignment-operator-visitor", + "escapedName": "babel-helper-builder-binary-assignment-operator-visitor", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-exponentiation-operator" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to build binary assignment operator visitors", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-builder-binary-assignment-operator-visitor", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-builder-binary-assignment-operator-visitor" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-call-delegate/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-call-delegate/package.json index 8662c3f0a..d0059f32e 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-call-delegate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-call-delegate/package.json @@ -1,14 +1,46 @@ { - "name": "babel-helper-call-delegate", - "version": "6.24.1", + "_args": [ + [ + "babel-helper-call-delegate@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-call-delegate@6.24.1", + "_id": "babel-helper-call-delegate@6.24.1", + "_inBundle": false, + "_integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "_location": "/babel-helper-call-delegate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-call-delegate@6.24.1", + "name": "babel-helper-call-delegate", + "escapedName": "babel-helper-call-delegate", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-parameters" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, "description": "Helper function to call delegate", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-call-delegate", "license": "MIT", "main": "lib/index.js", - "dependencies": { - "babel-traverse": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "babel-helper-hoist-variables": "^6.24.1" - } + "name": "babel-helper-call-delegate", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-call-delegate" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-define-map/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-define-map/package.json index f04929765..3b2d8505e 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-define-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-define-map/package.json @@ -1,14 +1,46 @@ { - "name": "babel-helper-define-map", - "version": "6.26.0", - "description": "Helper function to define a map", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-define-map", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-define-map@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-define-map@6.26.0", + "_id": "babel-helper-define-map@6.26.0", + "_inBundle": false, + "_integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "_location": "/babel-helper-define-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-define-map@6.26.0", + "name": "babel-helper-define-map", + "escapedName": "babel-helper-define-map", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-classes" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" - } + }, + "description": "Helper function to define a map", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-define-map", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-define-map" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-assignable-expression/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-assignable-expression/package.json index 264e806b0..aa034bc64 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-assignable-expression/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-assignable-expression/package.json @@ -1,13 +1,45 @@ { - "name": "babel-helper-explode-assignable-expression", - "version": "6.24.1", - "description": "Helper function to explode an assignable expression", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-assignable-expression", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-explode-assignable-expression@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-explode-assignable-expression@6.24.1", + "_id": "babel-helper-explode-assignable-expression@6.24.1", + "_inBundle": false, + "_integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "_location": "/babel-helper-explode-assignable-expression", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-explode-assignable-expression@6.24.1", + "name": "babel-helper-explode-assignable-expression", + "escapedName": "babel-helper-explode-assignable-expression", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-helper-builder-binary-assignment-operator-visitor" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-traverse": "^6.24.1", "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to explode an assignable expression", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-explode-assignable-expression", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-assignable-expression" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-class/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-class/package.json index 05d0f115f..7866c4e32 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-class/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-explode-class/package.json @@ -1,14 +1,46 @@ { - "name": "babel-helper-explode-class", - "version": "6.24.1", - "description": "Helper function to explode class", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-class", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-explode-class@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-explode-class@6.24.1", + "_id": "babel-helper-explode-class@6.24.1", + "_inBundle": false, + "_integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "_location": "/babel-helper-explode-class", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-explode-class@6.24.1", + "name": "babel-helper-explode-class", + "escapedName": "babel-helper-explode-class", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-decorators" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { + "babel-helper-bindify-decorators": "^6.24.1", "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1", - "babel-helper-bindify-decorators": "^6.24.1" - } + "babel-types": "^6.24.1" + }, + "description": "Helper function to explode class", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-explode-class", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-explode-class" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-function-name/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-function-name/package.json index 905b401fb..f2be479c7 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-function-name/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-function-name/package.json @@ -1,15 +1,51 @@ { - "name": "babel-helper-function-name", - "version": "6.24.1", - "description": "Helper function to change the property 'name' of every function", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-function-name@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-function-name@6.24.1", + "_id": "babel-helper-function-name@6.24.1", + "_inBundle": false, + "_integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "_location": "/babel-helper-function-name", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-function-name@6.24.1", + "name": "babel-helper-function-name", + "escapedName": "babel-helper-function-name", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-helper-define-map", + "/babel-helper-remap-async-to-generator", + "/babel-plugin-transform-class-properties", + "/babel-plugin-transform-es2015-classes", + "/babel-plugin-transform-es2015-function-name" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", + "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-template": "^6.24.1" - } + "babel-types": "^6.24.1" + }, + "description": "Helper function to change the property 'name' of every function", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-function-name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-function-name" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-get-function-arity/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-get-function-arity/package.json index d12fb37a0..d0b4e255b 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-get-function-arity/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-get-function-arity/package.json @@ -1,12 +1,45 @@ { - "name": "babel-helper-get-function-arity", - "version": "6.24.1", - "description": "Helper function to get function arity", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-get-function-arity@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-get-function-arity@6.24.1", + "_id": "babel-helper-get-function-arity@6.24.1", + "_inBundle": false, + "_integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "_location": "/babel-helper-get-function-arity", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-get-function-arity@6.24.1", + "name": "babel-helper-get-function-arity", + "escapedName": "babel-helper-get-function-arity", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-helper-function-name", + "/babel-plugin-transform-es2015-parameters" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to get function arity", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-get-function-arity", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-get-function-arity" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-hoist-variables/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-hoist-variables/package.json index 7d62a4f72..6500d090a 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-hoist-variables/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-hoist-variables/package.json @@ -1,12 +1,45 @@ { - "name": "babel-helper-hoist-variables", - "version": "6.24.1", - "description": "Helper function to hoist variables", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-hoist-variables", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-hoist-variables@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-hoist-variables@6.24.1", + "_id": "babel-helper-hoist-variables@6.24.1", + "_inBundle": false, + "_integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "_location": "/babel-helper-hoist-variables", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-hoist-variables@6.24.1", + "name": "babel-helper-hoist-variables", + "escapedName": "babel-helper-hoist-variables", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-helper-call-delegate", + "/babel-plugin-transform-es2015-modules-systemjs" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to hoist variables", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-hoist-variables", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-hoist-variables" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-optimise-call-expression/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-optimise-call-expression/package.json index a34efda7f..5aaa92937 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-optimise-call-expression/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-optimise-call-expression/package.json @@ -1,12 +1,45 @@ { - "name": "babel-helper-optimise-call-expression", - "version": "6.24.1", - "description": "Helper function to optimise call expression", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-optimise-call-expression", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-optimise-call-expression@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-optimise-call-expression@6.24.1", + "_id": "babel-helper-optimise-call-expression@6.24.1", + "_inBundle": false, + "_integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "_location": "/babel-helper-optimise-call-expression", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-optimise-call-expression@6.24.1", + "name": "babel-helper-optimise-call-expression", + "escapedName": "babel-helper-optimise-call-expression", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-helper-replace-supers", + "/babel-plugin-transform-es2015-classes" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to optimise call expression", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-optimise-call-expression", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-optimise-call-expression" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-regex/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-regex/package.json index 140fe5ef8..c7851a999 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-regex/package.json @@ -1,13 +1,46 @@ { - "name": "babel-helper-regex", - "version": "6.26.0", - "description": "Helper function to check for literal RegEx", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-regex", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-regex@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-regex@6.26.0", + "_id": "babel-helper-regex@6.26.0", + "_inBundle": false, + "_integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "_location": "/babel-helper-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-regex@6.26.0", + "name": "babel-helper-regex", + "escapedName": "babel-helper-regex", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-sticky-regex", + "/babel-plugin-transform-es2015-unicode-regex" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" - } + }, + "description": "Helper function to check for literal RegEx", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-regex", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-regex" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-remap-async-to-generator/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-remap-async-to-generator/package.json index be9907c94..55f46479a 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-remap-async-to-generator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-remap-async-to-generator/package.json @@ -1,15 +1,48 @@ { - "name": "babel-helper-remap-async-to-generator", - "version": "6.24.1", - "description": "Helper function to remap async functions to generators", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-remap-async-to-generator", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-remap-async-to-generator@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-remap-async-to-generator@6.24.1", + "_id": "babel-helper-remap-async-to-generator@6.24.1", + "_inBundle": false, + "_integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "_location": "/babel-helper-remap-async-to-generator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-remap-async-to-generator@6.24.1", + "name": "babel-helper-remap-async-to-generator", + "escapedName": "babel-helper-remap-async-to-generator", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-async-generator-functions", + "/babel-plugin-transform-async-to-generator" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { + "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", - "babel-types": "^6.24.1", "babel-traverse": "^6.24.1", - "babel-helper-function-name": "^6.24.1" - } + "babel-types": "^6.24.1" + }, + "description": "Helper function to remap async functions to generators", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-remap-async-to-generator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-remap-async-to-generator" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-replace-supers/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-replace-supers/package.json index c5bed94d4..5342287d6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-replace-supers/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-replace-supers/package.json @@ -1,16 +1,49 @@ { - "name": "babel-helper-replace-supers", - "version": "6.24.1", - "description": "Helper function to replace supers", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-replace-supers", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-helper-replace-supers@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helper-replace-supers@6.24.1", + "_id": "babel-helper-replace-supers@6.24.1", + "_inBundle": false, + "_integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "_location": "/babel-helper-replace-supers", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-replace-supers@6.24.1", + "name": "babel-helper-replace-supers", + "escapedName": "babel-helper-replace-supers", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-classes", + "/babel-plugin-transform-es2015-object-super" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-optimise-call-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" - } + }, + "description": "Helper function to replace supers", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-helper-replace-supers", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-replace-supers" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helper-vue-jsx-merge-props/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helper-vue-jsx-merge-props/package.json index 90b4f4333..9b9c804e8 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helper-vue-jsx-merge-props/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helper-vue-jsx-merge-props/package.json @@ -1,21 +1,52 @@ { - "name": "babel-helper-vue-jsx-merge-props", - "version": "2.0.3", - "description": "babel helper for vue jsx spread.", - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/babel-helper-vue-jsx-merge-props.git" + "_args": [ + [ + "babel-helper-vue-jsx-merge-props@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-helper-vue-jsx-merge-props@2.0.3", + "_id": "babel-helper-vue-jsx-merge-props@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=", + "_location": "/babel-helper-vue-jsx-merge-props", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helper-vue-jsx-merge-props@2.0.3", + "name": "babel-helper-vue-jsx-merge-props", + "escapedName": "babel-helper-vue-jsx-merge-props", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "#DEV:/", + "/element-ui" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, + "bugs": { + "url": "https://github.com/vuejs/babel-helper-vue-jsx-merge-props/issues" }, + "description": "babel helper for vue jsx spread.", + "homepage": "https://github.com/vuejs/babel-helper-vue-jsx-merge-props#readme", "keywords": [ "babel", "vue", "jsx" ], - "author": "Evan You", "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/babel-helper-vue-jsx-merge-props/issues" + "main": "index.js", + "name": "babel-helper-vue-jsx-merge-props", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/babel-helper-vue-jsx-merge-props.git" }, - "homepage": "https://github.com/vuejs/babel-helper-vue-jsx-merge-props#readme" + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-helpers/package.json b/admin/vue2/element-admin-v3/node_modules/babel-helpers/package.json index f2f8dc237..5f7d7a75f 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-helpers/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-helpers/package.json @@ -1,14 +1,49 @@ { - "name": "babel-helpers", - "version": "6.24.1", + "_args": [ + [ + "babel-helpers@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-helpers@6.24.1", + "_id": "babel-helpers@6.24.1", + "_inBundle": false, + "_integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "_location": "/babel-helpers", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-helpers@6.24.1", + "name": "babel-helpers", + "escapedName": "babel-helpers", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-core" + ], + "_resolved": "https://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, "description": "Collection of helper functions used by Babel transforms.", - "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-helpers", "main": "lib/index.js", - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "name": "babel-helpers", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-helpers" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-loader/package.json b/admin/vue2/element-admin-v3/node_modules/babel-loader/package.json index cf523a587..f7ebbf1fe 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-loader/package.json @@ -1,23 +1,57 @@ { - "name": "babel-loader", - "version": "7.1.5", - "description": "babel module loader for webpack", - "files": [ - "lib" + "_args": [ + [ + "babel-loader@7.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib/index.js", - "engines": { - "node": ">=4" + "_development": true, + "_from": "babel-loader@7.1.5", + "_id": "babel-loader@7.1.5", + "_inBundle": false, + "_integrity": "sha1-4+4M1zlKpVfgE7AtPkkr/QeqbWg=", + "_location": "/babel-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-loader@7.1.5", + "name": "babel-loader", + "escapedName": "babel-loader", + "rawSpec": "7.1.5", + "saveSpec": null, + "fetchSpec": "7.1.5" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.5.tgz", + "_spec": "7.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Luis Couto", + "email": "hello@luiscouto.pt" + }, + "ava": { + "files": [ + "test/**/*.test.js", + "!test/fixtures/**/*", + "!test/helpers/**/*" + ], + "source": [ + "src/**/*.js" + ], + "babel": "inherit" + }, + "bugs": { + "url": "https://github.com/babel/babel-loader/issues" }, "dependencies": { "find-cache-dir": "^1.0.0", "loader-utils": "^1.0.2", "mkdirp": "^0.5.1" }, - "peerDependencies": { - "babel-core": "6", - "webpack": "2 || 3 || 4" - }, + "description": "babel module loader for webpack", "devDependencies": { "ava": "^0.23.0", "babel-cli": "^6.18.0", @@ -42,21 +76,13 @@ "rimraf": "^2.4.3", "webpack": "^4.0.0" }, - "scripts": { - "clean": "rimraf lib/", - "build": "babel src/ --out-dir lib/", - "format": "prettier --write --trailing-comma all \"src/**/*.js\" \"test/**/*.test.js\" \"test/helpers/*.js\" && prettier --write --trailing-comma es5 \"scripts/*.js\"", - "lint": "eslint src test", - "precommit": "lint-staged", - "prepublish": "yarn run clean && yarn run build", - "preversion": "yarn run test", - "test": "yarn run lint && cross-env BABEL_ENV=test yarn run build && yarn run test-only", - "test-only": "nyc ava" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel-loader.git" + "engines": { + "node": ">=4" }, + "files": [ + "lib" + ], + "homepage": "https://github.com/babel/babel-loader", "keywords": [ "webpack", "loader", @@ -65,38 +91,7 @@ "transpiler", "module" ], - "author": "Luis Couto ", "license": "MIT", - "bugs": { - "url": "https://github.com/babel/babel-loader/issues" - }, - "homepage": "https://github.com/babel/babel-loader", - "nyc": { - "all": true, - "include": [ - "src/**/*.js" - ], - "reporter": [ - "text", - "json" - ], - "require": [ - "babel-register" - ], - "sourceMap": false, - "instrument": false - }, - "ava": { - "files": [ - "test/**/*.test.js", - "!test/fixtures/**/*", - "!test/helpers/**/*" - ], - "source": [ - "src/**/*.js" - ], - "babel": "inherit" - }, "lint-staged": { "scripts/*.js": [ "prettier --trailing-comma es5 --write", @@ -118,5 +113,42 @@ "node ./scripts/yarn-install.js", "git add yarn.lock" ] - } + }, + "main": "lib/index.js", + "name": "babel-loader", + "nyc": { + "all": true, + "include": [ + "src/**/*.js" + ], + "reporter": [ + "text", + "json" + ], + "require": [ + "babel-register" + ], + "sourceMap": false, + "instrument": false + }, + "peerDependencies": { + "babel-core": "6", + "webpack": "2 || 3 || 4" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/babel/babel-loader.git" + }, + "scripts": { + "build": "babel src/ --out-dir lib/", + "clean": "rimraf lib/", + "format": "prettier --write --trailing-comma all \"src/**/*.js\" \"test/**/*.test.js\" \"test/helpers/*.js\" && prettier --write --trailing-comma es5 \"scripts/*.js\"", + "lint": "eslint src test", + "precommit": "lint-staged", + "prepublish": "yarn run clean && yarn run build", + "preversion": "yarn run test", + "test": "yarn run lint && cross-env BABEL_ENV=test yarn run build && yarn run test-only", + "test-only": "nyc ava" + }, + "version": "7.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-messages/package.json b/admin/vue2/element-admin-v3/node_modules/babel-messages/package.json index 348dc5ee0..51d49bba6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-messages/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-messages/package.json @@ -1,13 +1,51 @@ { - "name": "babel-messages", - "version": "6.23.0", + "_args": [ + [ + "babel-messages@6.23.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-messages@6.23.0", + "_id": "babel-messages@6.23.0", + "_inBundle": false, + "_integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "_location": "/babel-messages", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-messages@6.23.0", + "name": "babel-messages", + "escapedName": "babel-messages", + "rawSpec": "6.23.0", + "saveSpec": null, + "fetchSpec": "6.23.0" + }, + "_requiredBy": [ + "/babel-core", + "/babel-generator", + "/babel-helper-replace-supers", + "/babel-plugin-transform-es2015-classes", + "/babel-traverse" + ], + "_resolved": "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", + "_spec": "6.23.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "dependencies": { + "babel-runtime": "^6.22.0" + }, "description": "Collection of debug messages used by Babel.", - "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-messages", "main": "lib/index.js", - "dependencies": { - "babel-runtime": "^6.22.0" - } + "name": "babel-messages", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-messages" + }, + "version": "6.23.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-check-es2015-constants/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-check-es2015-constants/package.json index b335fbf3f..3b3677d69 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-check-es2015-constants/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-check-es2015-constants/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-check-es2015-constants", - "version": "6.22.0", - "description": "Compile ES2015 constants to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-check-es2015-constants", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-check-es2015-constants@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-check-es2015-constants@6.22.0", + "_id": "babel-plugin-check-es2015-constants@6.22.0", + "_inBundle": false, + "_integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "_location": "/babel-plugin-check-es2015-constants", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-check-es2015-constants@6.22.0", + "name": "babel-plugin-check-es2015-constants", + "escapedName": "babel-plugin-check-es2015-constants", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 constants to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-check-es2015-constants", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-check-es2015-constants" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-dynamic-import-node/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-dynamic-import-node/package.json index d40e41176..a9f13da50 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-dynamic-import-node/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-dynamic-import-node/package.json @@ -1,46 +1,45 @@ { - "name": "babel-plugin-dynamic-import-node", - "version": "2.0.0", - "description": "Babel plugin to transpile import() to a deferred require(), for node", - "main": "lib/index.js", - "directories": { - "test": "test" - }, - "scripts": { - "clean": "rimraf lib", - "prebuild": "npm run clean", - "build": "babel src --out-dir lib", - "pretest": "npm run lint", - "test": "npm run tests-only", - "tests-only": "tape --require airbnb-js-shims --require babel-register test", - "lint": "eslint .", - "prepublish": "not-in-publish || (safe-publish-latest && npm run build)", - "check-changelog": "expr $(git status --porcelain 2>/dev/null| grep \"^\\s*M.*CHANGELOG.md\" | wc -l) >/dev/null || (echo 'Please edit CHANGELOG.md' && exit 1)", - "check-only-changelog-changed": "(expr $(git status --porcelain 2>/dev/null| grep -v \"CHANGELOG.md\" | wc -l) >/dev/null && echo 'Only CHANGELOG.md may have uncommitted changes' && exit 1) || exit 0", - "version:major": "npm --no-git-tag-version version major", - "version:minor": "npm --no-git-tag-version version minor", - "version:patch": "npm --no-git-tag-version version patch", - "postversion": "git commit package.json CHANGELOG.md -m \"v$npm_package_version\" && npm run tag && git push && git push --tags", - "preversion": "npm run test && npm run check-changelog && npm run check-only-changelog-changed", - "tag": "git tag v$npm_package_version" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/airbnb/babel-plugin-dynamic-import-node.git" + "_args": [ + [ + "babel-plugin-dynamic-import-node@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-dynamic-import-node@2.0.0", + "_id": "babel-plugin-dynamic-import-node@2.0.0", + "_inBundle": false, + "_integrity": "sha1-1vw/bF473DTknBX6ynzgaXVcClc=", + "_location": "/babel-plugin-dynamic-import-node", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-dynamic-import-node@2.0.0", + "name": "babel-plugin-dynamic-import-node", + "escapedName": "babel-plugin-dynamic-import-node", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "keywords": [ - "babel", - "plugin", - "dynamic", - "import", - "node" + "_requiredBy": [ + "#DEV:/" ], - "author": "Jordan Gensler ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Gensler", + "email": "jordan.gensler@airbnb.com" + }, "bugs": { "url": "https://github.com/airbnb/babel-plugin-dynamic-import-node/issues" }, - "homepage": "https://github.com/airbnb/babel-plugin-dynamic-import-node#readme", + "dependencies": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "object.assign": "^4.1.0" + }, + "description": "Babel plugin to transpile import() to a deferred require(), for node", "devDependencies": { "airbnb-js-shims": "^2.0.0", "babel-cli": "^6.26.0", @@ -60,8 +59,41 @@ "safe-publish-latest": "^1.1.1", "tape": "^4.9.1" }, - "dependencies": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "object.assign": "^4.1.0" - } + "directories": { + "test": "test" + }, + "homepage": "https://github.com/airbnb/babel-plugin-dynamic-import-node#readme", + "keywords": [ + "babel", + "plugin", + "dynamic", + "import", + "node" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-dynamic-import-node", + "repository": { + "type": "git", + "url": "git+https://github.com/airbnb/babel-plugin-dynamic-import-node.git" + }, + "scripts": { + "build": "babel src --out-dir lib", + "check-changelog": "expr $(git status --porcelain 2>/dev/null| grep \"^\\s*M.*CHANGELOG.md\" | wc -l) >/dev/null || (echo 'Please edit CHANGELOG.md' && exit 1)", + "check-only-changelog-changed": "(expr $(git status --porcelain 2>/dev/null| grep -v \"CHANGELOG.md\" | wc -l) >/dev/null && echo 'Only CHANGELOG.md may have uncommitted changes' && exit 1) || exit 0", + "clean": "rimraf lib", + "lint": "eslint .", + "postversion": "git commit package.json CHANGELOG.md -m \"v$npm_package_version\" && npm run tag && git push && git push --tags", + "prebuild": "npm run clean", + "prepublish": "not-in-publish || (safe-publish-latest && npm run build)", + "pretest": "npm run lint", + "preversion": "npm run test && npm run check-changelog && npm run check-only-changelog-changed", + "tag": "git tag v$npm_package_version", + "test": "npm run tests-only", + "tests-only": "tape --require airbnb-js-shims --require babel-register test", + "version:major": "npm --no-git-tag-version version major", + "version:minor": "npm --no-git-tag-version version minor", + "version:patch": "npm --no-git-tag-version version patch" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-functions/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-functions/package.json index ef46b578c..e0a51e0c4 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-functions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-functions/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-async-functions", - "version": "6.13.0", + "_args": [ + [ + "babel-plugin-syntax-async-functions@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-async-functions@6.13.0", + "_id": "babel-plugin-syntax-async-functions@6.13.0", + "_inBundle": false, + "_integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "_location": "/babel-plugin-syntax-async-functions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-async-functions@6.13.0", + "name": "babel-plugin-syntax-async-functions", + "escapedName": "babel-plugin-syntax-async-functions", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-async-to-generator" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of async functions", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-functions", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-async-functions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-functions" + }, + "version": "6.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-generators/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-generators/package.json index a17544f1e..dc928699f 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-generators/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-async-generators/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-async-generators", - "version": "6.13.0", + "_args": [ + [ + "babel-plugin-syntax-async-generators@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-async-generators@6.13.0", + "_id": "babel-plugin-syntax-async-generators@6.13.0", + "_inBundle": false, + "_integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "_location": "/babel-plugin-syntax-async-generators", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-async-generators@6.13.0", + "name": "babel-plugin-syntax-async-generators", + "escapedName": "babel-plugin-syntax-async-generators", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-async-generator-functions" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of async generator functions", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-generators", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-async-generators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-generators" + }, + "version": "6.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-class-properties/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-class-properties/package.json index 5882a28ea..606ee3813 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-class-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-class-properties/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-class-properties", - "version": "6.13.0", + "_args": [ + [ + "babel-plugin-syntax-class-properties@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-class-properties@6.13.0", + "_id": "babel-plugin-syntax-class-properties@6.13.0", + "_inBundle": false, + "_integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "_location": "/babel-plugin-syntax-class-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-class-properties@6.13.0", + "name": "babel-plugin-syntax-class-properties", + "escapedName": "babel-plugin-syntax-class-properties", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-class-properties" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of class properties", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-class-properties", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-class-properties", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-class-properties" + }, + "version": "6.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-decorators/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-decorators/package.json index aeb4e0b2d..b6606f130 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-decorators/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-decorators/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-decorators", - "version": "6.13.0", + "_args": [ + [ + "babel-plugin-syntax-decorators@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-plugin-syntax-decorators@6.13.0", + "_id": "babel-plugin-syntax-decorators@6.13.0", + "_inBundle": false, + "_integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "_location": "/babel-plugin-syntax-decorators", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-decorators@6.13.0", + "name": "babel-plugin-syntax-decorators", + "escapedName": "babel-plugin-syntax-decorators", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-decorators", + "/babel-plugin-transform-decorators-legacy" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of decorators", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-decorators", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-decorators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-decorators" + }, + "version": "6.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-dynamic-import/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-dynamic-import/package.json index 4ef935f7f..c5cfff8ed 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-dynamic-import/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-dynamic-import/package.json @@ -1,13 +1,46 @@ { - "name": "babel-plugin-syntax-dynamic-import", - "version": "6.18.0", + "_args": [ + [ + "babel-plugin-syntax-dynamic-import@6.18.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-dynamic-import@6.18.0", + "_id": "babel-plugin-syntax-dynamic-import@6.18.0", + "_inBundle": false, + "_integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "_location": "/babel-plugin-syntax-dynamic-import", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-dynamic-import@6.18.0", + "name": "babel-plugin-syntax-dynamic-import", + "escapedName": "babel-plugin-syntax-dynamic-import", + "rawSpec": "6.18.0", + "saveSpec": null, + "fetchSpec": "6.18.0" + }, + "_requiredBy": [ + "/babel-plugin-dynamic-import-node", + "/babel-preset-stage-2" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "_spec": "6.18.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of import()", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-dynamic-import", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-dynamic-import", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-dynamic-import" + }, + "version": "6.18.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-exponentiation-operator/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-exponentiation-operator/package.json index 94c1d041e..ba0a4bc77 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-exponentiation-operator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-exponentiation-operator/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-exponentiation-operator", - "version": "6.13.0", + "_args": [ + [ + "babel-plugin-syntax-exponentiation-operator@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-exponentiation-operator@6.13.0", + "_id": "babel-plugin-syntax-exponentiation-operator@6.13.0", + "_inBundle": false, + "_integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "_location": "/babel-plugin-syntax-exponentiation-operator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-exponentiation-operator@6.13.0", + "name": "babel-plugin-syntax-exponentiation-operator", + "escapedName": "babel-plugin-syntax-exponentiation-operator", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-exponentiation-operator" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of the exponentiation operator", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-exponentation-operator", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-exponentiation-operator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-exponentation-operator" + }, + "version": "6.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-jsx/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-jsx/package.json index d9a604d01..c5a73c960 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-jsx/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-jsx/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-jsx", - "version": "6.18.0", + "_args": [ + [ + "babel-plugin-syntax-jsx@6.18.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-jsx@6.18.0", + "_id": "babel-plugin-syntax-jsx@6.18.0", + "_inBundle": false, + "_integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "_location": "/babel-plugin-syntax-jsx", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-jsx@6.18.0", + "name": "babel-plugin-syntax-jsx", + "escapedName": "babel-plugin-syntax-jsx", + "rawSpec": "6.18.0", + "saveSpec": null, + "fetchSpec": "6.18.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", + "_spec": "6.18.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of jsx", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-jsx", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx" + }, + "version": "6.18.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-object-rest-spread/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-object-rest-spread/package.json index 15554cd3b..b872e17bf 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-object-rest-spread/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-object-rest-spread/package.json @@ -1,13 +1,45 @@ { - "name": "babel-plugin-syntax-object-rest-spread", - "version": "6.13.0", + "_args": [ + [ + "babel-plugin-syntax-object-rest-spread@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-object-rest-spread@6.13.0", + "_id": "babel-plugin-syntax-object-rest-spread@6.13.0", + "_inBundle": false, + "_integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "_location": "/babel-plugin-syntax-object-rest-spread", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-object-rest-spread@6.13.0", + "name": "babel-plugin-syntax-object-rest-spread", + "escapedName": "babel-plugin-syntax-object-rest-spread", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-object-rest-spread" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "dependencies": {}, "description": "Allow parsing of object rest/spread", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-object-rest-spread", - "license": "MIT", - "main": "lib/index.js", + "devDependencies": {}, "keywords": [ "babel-plugin" ], - "dependencies": {}, - "devDependencies": {} + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-object-rest-spread", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-object-rest-spread" + }, + "version": "6.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-trailing-function-commas/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-trailing-function-commas/package.json index 174e92d09..9a4ae6000 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-trailing-function-commas/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-syntax-trailing-function-commas/package.json @@ -1,15 +1,48 @@ { - "name": "babel-plugin-syntax-trailing-function-commas", - "version": "6.22.0", - "description": "Compile trailing function commas to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-trailing-function-commas", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-syntax-trailing-function-commas@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-syntax-trailing-function-commas@6.22.0", + "_id": "babel-plugin-syntax-trailing-function-commas@6.22.0", + "_inBundle": false, + "_integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "_location": "/babel-plugin-syntax-trailing-function-commas", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-syntax-trailing-function-commas@6.22.0", + "name": "babel-plugin-syntax-trailing-function-commas", + "escapedName": "babel-plugin-syntax-trailing-function-commas", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env", + "/babel-preset-stage-3" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": {}, + "description": "Compile trailing function commas to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-syntax-trailing-function-commas", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-trailing-function-commas" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-generator-functions/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-generator-functions/package.json index 06cd571e1..b5f449f8a 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-generator-functions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-generator-functions/package.json @@ -1,19 +1,51 @@ { - "name": "babel-plugin-transform-async-generator-functions", - "version": "6.24.1", - "description": "Turn async generator functions into ES2015 generators", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-async-generator-functions", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-async-generator-functions@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-async-generator-functions@6.24.1", + "_id": "babel-plugin-transform-async-generator-functions@6.24.1", + "_inBundle": false, + "_integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "_location": "/babel-plugin-transform-async-generator-functions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-async-generator-functions@6.24.1", + "name": "babel-plugin-transform-async-generator-functions", + "escapedName": "babel-plugin-transform-async-generator-functions", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-3" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-generators": "^6.5.0", "babel-runtime": "^6.22.0" }, + "description": "Turn async generator functions into ES2015 generators", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-async-generator-functions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-async-generator-functions" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-to-generator/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-to-generator/package.json index 762003f8a..9241da2c6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-to-generator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-async-to-generator/package.json @@ -1,19 +1,52 @@ { - "name": "babel-plugin-transform-async-to-generator", - "version": "6.24.1", - "description": "Turn async functions into ES2015 generators", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-async-to-generator", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-async-to-generator@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-async-to-generator@6.24.1", + "_id": "babel-plugin-transform-async-to-generator@6.24.1", + "_inBundle": false, + "_integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "_location": "/babel-plugin-transform-async-to-generator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-async-to-generator@6.24.1", + "name": "babel-plugin-transform-async-to-generator", + "escapedName": "babel-plugin-transform-async-to-generator", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env", + "/babel-preset-stage-3" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-functions": "^6.8.0", "babel-runtime": "^6.22.0" }, + "description": "Turn async functions into ES2015 generators", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-async-to-generator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-async-to-generator" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-class-properties/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-class-properties/package.json index b9019e8da..f3ef3502a 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-class-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-class-properties/package.json @@ -1,20 +1,52 @@ { - "name": "babel-plugin-transform-class-properties", - "version": "6.24.1", - "description": "This plugin transforms static class properties as well as properties declared with the property initializer syntax", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-class-properties", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-class-properties@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-class-properties@6.24.1", + "_id": "babel-plugin-transform-class-properties@6.24.1", + "_inBundle": false, + "_integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "_location": "/babel-plugin-transform-class-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-class-properties@6.24.1", + "name": "babel-plugin-transform-class-properties", + "escapedName": "babel-plugin-transform-class-properties", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-2" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-plugin-syntax-class-properties": "^6.8.0", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" }, + "description": "This plugin transforms static class properties as well as properties declared with the property initializer syntax", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-class-properties", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-class-properties" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators-legacy/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators-legacy/package.json index b5e1b90ba..14545cf2b 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators-legacy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators-legacy/package.json @@ -1,23 +1,45 @@ { - "name": "babel-plugin-transform-decorators-legacy", - "description": "A plugin for Babel 6 that (mostly) replicates the old decorator behavior from Babel 5.", - "version": "1.3.5", - "author": "Logan Smyth ", - "main": "lib", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy.git" + "_args": [ + [ + "babel-plugin-transform-decorators-legacy@1.3.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-plugin-transform-decorators-legacy@1.3.5", + "_id": "babel-plugin-transform-decorators-legacy@1.3.5", + "_inBundle": false, + "_integrity": "sha1-Dkkt/6Dt1wUpByiH+KqG1N2LQKE=", + "_location": "/babel-plugin-transform-decorators-legacy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-decorators-legacy@1.3.5", + "name": "babel-plugin-transform-decorators-legacy", + "escapedName": "babel-plugin-transform-decorators-legacy", + "rawSpec": "1.3.5", + "saveSpec": null, + "fetchSpec": "1.3.5" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators-legacy/download/babel-plugin-transform-decorators-legacy-1.3.5.tgz", + "_spec": "1.3.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Logan Smyth", + "email": "loganfsmyth@gmail.com" }, "bugs": { "url": "https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy/issues" }, - "keywords": [ - "babel", - "babel-plugin", - "es7", - "decorators" - ], + "dependencies": { + "babel-plugin-syntax-decorators": "^6.1.18", + "babel-runtime": "^6.2.0", + "babel-template": "^6.3.0" + }, + "description": "A plugin for Babel 6 that (mostly) replicates the old decorator behavior from Babel 5.", "devDependencies": { "babel-cli": "^6.2.0", "babel-plugin-transform-class-properties": "^6.3.0", @@ -26,15 +48,25 @@ "chai": "^3.4.1", "mocha": "^2.3.4" }, - "dependencies": { - "babel-plugin-syntax-decorators": "^6.1.18", - "babel-runtime": "^6.2.0", - "babel-template": "^6.3.0" + "homepage": "https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy#readme", + "keywords": [ + "babel", + "babel-plugin", + "es7", + "decorators" + ], + "license": "MIT", + "main": "lib", + "name": "babel-plugin-transform-decorators-legacy", + "repository": { + "type": "git", + "url": "git+https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy.git" }, "scripts": { "build": "babel src -d lib", - "watch": "babel src -d lib -w", "prepublish": "npm run build", - "test": "babel-node node_modules/.bin/_mocha -- test" - } + "test": "babel-node node_modules/.bin/_mocha -- test", + "watch": "babel src -d lib -w" + }, + "version": "1.3.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators/package.json index 9f775cf3c..5289b66d9 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-decorators/package.json @@ -1,21 +1,53 @@ { - "name": "babel-plugin-transform-decorators", - "version": "6.24.1", - "description": "Compile class and object decorators to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-decorators", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-decorators@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-decorators@6.24.1", + "_id": "babel-plugin-transform-decorators@6.24.1", + "_inBundle": false, + "_integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "_location": "/babel-plugin-transform-decorators", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-decorators@6.24.1", + "name": "babel-plugin-transform-decorators", + "escapedName": "babel-plugin-transform-decorators", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-2" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-types": "^6.24.1", - "babel-plugin-syntax-decorators": "^6.13.0", "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-types": "^6.24.1" }, + "description": "Compile class and object decorators to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-decorators", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-decorators" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-arrow-functions/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-arrow-functions/package.json index 0db0959e5..d36c3cee6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-arrow-functions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-arrow-functions/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-arrow-functions", - "version": "6.22.0", - "description": "Compile ES2015 arrow functions to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-arrow-functions", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-arrow-functions@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-arrow-functions@6.22.0", + "_id": "babel-plugin-transform-es2015-arrow-functions@6.22.0", + "_inBundle": false, + "_integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "_location": "/babel-plugin-transform-es2015-arrow-functions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-arrow-functions@6.22.0", + "name": "babel-plugin-transform-es2015-arrow-functions", + "escapedName": "babel-plugin-transform-es2015-arrow-functions", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 arrow functions to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-arrow-functions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-arrow-functions" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoped-functions/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoped-functions/package.json index 922e71188..3bdc408a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoped-functions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoped-functions/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-block-scoped-functions", - "version": "6.22.0", - "description": "Babel plugin to ensure function declarations at the block level are block scoped", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-block-scoped-functions", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-block-scoped-functions@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-block-scoped-functions@6.22.0", + "_id": "babel-plugin-transform-es2015-block-scoped-functions@6.22.0", + "_inBundle": false, + "_integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "_location": "/babel-plugin-transform-es2015-block-scoped-functions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-block-scoped-functions@6.22.0", + "name": "babel-plugin-transform-es2015-block-scoped-functions", + "escapedName": "babel-plugin-transform-es2015-block-scoped-functions", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Babel plugin to ensure function declarations at the block level are block scoped", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-block-scoped-functions", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-block-scoped-functions" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoping/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoping/package.json index 5425c7f1d..d8ac2eee4 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoping/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-block-scoping/package.json @@ -1,10 +1,33 @@ { - "name": "babel-plugin-transform-es2015-block-scoping", - "version": "6.26.0", - "description": "Compile ES2015 block scoping (const and let) to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-block-scoping", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-block-scoping@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-block-scoping@6.26.0", + "_id": "babel-plugin-transform-es2015-block-scoping@6.26.0", + "_inBundle": false, + "_integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "_location": "/babel-plugin-transform-es2015-block-scoping", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-block-scoping@6.26.0", + "name": "babel-plugin-transform-es2015-block-scoping", + "escapedName": "babel-plugin-transform-es2015-block-scoping", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", @@ -12,10 +35,19 @@ "babel-types": "^6.26.0", "lodash": "^4.17.4" }, + "description": "Compile ES2015 block scoping (const and let) to ES5", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" + }, "keywords": [ "babel-plugin" ], - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.24.1" - } + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-block-scoping", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-block-scoping" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-classes/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-classes/package.json index a559e7959..d0d7d254f 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-classes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-classes/package.json @@ -1,25 +1,57 @@ { - "name": "babel-plugin-transform-es2015-classes", - "version": "6.24.1", - "description": "Compile ES2015 classes to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-classes", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-classes@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-classes@6.24.1", + "_id": "babel-plugin-transform-es2015-classes@6.24.1", + "_inBundle": false, + "_integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "_location": "/babel-plugin-transform-es2015-classes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-classes@6.24.1", + "name": "babel-plugin-transform-es2015-classes", + "escapedName": "babel-plugin-transform-es2015-classes", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", "babel-helper-replace-supers": "^6.24.1", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-helper-define-map": "^6.24.1", "babel-messages": "^6.23.0", "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" }, + "description": "Compile ES2015 classes to ES5", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" + }, "keywords": [ "babel-plugin" ], - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.24.1" - } + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-classes", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-classes" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-computed-properties/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-computed-properties/package.json index 46ddea01a..c3f2930d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-computed-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-computed-properties/package.json @@ -1,18 +1,50 @@ { - "name": "babel-plugin-transform-es2015-computed-properties", - "version": "6.24.1", - "description": "Compile ES2015 computed properties to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-computed-properties", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-computed-properties@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-computed-properties@6.24.1", + "_id": "babel-plugin-transform-es2015-computed-properties@6.24.1", + "_inBundle": false, + "_integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "_location": "/babel-plugin-transform-es2015-computed-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-computed-properties@6.24.1", + "name": "babel-plugin-transform-es2015-computed-properties", + "escapedName": "babel-plugin-transform-es2015-computed-properties", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-template": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" }, + "description": "Compile ES2015 computed properties to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-computed-properties", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-computed-properties" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-destructuring/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-destructuring/package.json index 93ab9d2b8..470542ae3 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-destructuring/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-destructuring/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-destructuring", - "version": "6.23.0", - "description": "Compile ES2015 destructuring to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-destructuring", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-destructuring@6.23.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-destructuring@6.23.0", + "_id": "babel-plugin-transform-es2015-destructuring@6.23.0", + "_inBundle": false, + "_integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "_location": "/babel-plugin-transform-es2015-destructuring", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-destructuring@6.23.0", + "name": "babel-plugin-transform-es2015-destructuring", + "escapedName": "babel-plugin-transform-es2015-destructuring", + "rawSpec": "6.23.0", + "saveSpec": null, + "fetchSpec": "6.23.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "_spec": "6.23.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 destructuring to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-destructuring", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-destructuring" + }, + "version": "6.23.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-duplicate-keys/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-duplicate-keys/package.json index ee574a4f5..dcc6225c6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-duplicate-keys/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-duplicate-keys/package.json @@ -1,18 +1,50 @@ { - "name": "babel-plugin-transform-es2015-duplicate-keys", - "version": "6.24.1", - "description": "Compile objects with duplicate keys to valid strict ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-duplicate-keys", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-duplicate-keys@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-duplicate-keys@6.24.1", + "_id": "babel-plugin-transform-es2015-duplicate-keys@6.24.1", + "_inBundle": false, + "_integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "_location": "/babel-plugin-transform-es2015-duplicate-keys", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-duplicate-keys@6.24.1", + "name": "babel-plugin-transform-es2015-duplicate-keys", + "escapedName": "babel-plugin-transform-es2015-duplicate-keys", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" }, + "description": "Compile objects with duplicate keys to valid strict ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-duplicate-keys", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-duplicate-keys" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-for-of/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-for-of/package.json index 470a7f998..9bda553ec 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-for-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-for-of/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-for-of", - "version": "6.23.0", - "description": "Compile ES2015 for...of to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-for-of", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-for-of@6.23.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-for-of@6.23.0", + "_id": "babel-plugin-transform-es2015-for-of@6.23.0", + "_inBundle": false, + "_integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "_location": "/babel-plugin-transform-es2015-for-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-for-of@6.23.0", + "name": "babel-plugin-transform-es2015-for-of", + "escapedName": "babel-plugin-transform-es2015-for-of", + "rawSpec": "6.23.0", + "saveSpec": null, + "fetchSpec": "6.23.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "_spec": "6.23.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 for...of to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-for-of", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-for-of" + }, + "version": "6.23.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-function-name/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-function-name/package.json index 4d96d97f4..f0eac4e61 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-function-name/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-function-name/package.json @@ -1,19 +1,51 @@ { - "name": "babel-plugin-transform-es2015-function-name", - "version": "6.24.1", - "description": "Apply ES2015 function.name semantics to all functions", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-function-name", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-function-name@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-function-name@6.24.1", + "_id": "babel-plugin-transform-es2015-function-name@6.24.1", + "_inBundle": false, + "_integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "_location": "/babel-plugin-transform-es2015-function-name", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-function-name@6.24.1", + "name": "babel-plugin-transform-es2015-function-name", + "escapedName": "babel-plugin-transform-es2015-function-name", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-function-name": "^6.24.1", - "babel-types": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" }, + "description": "Apply ES2015 function.name semantics to all functions", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-function-name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-function-name" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-literals/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-literals/package.json index f99175fe3..98aad77d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-literals/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-literals/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-literals", - "version": "6.22.0", - "description": "Compile ES2015 unicode string and number literals to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-literals", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-literals@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-literals@6.22.0", + "_id": "babel-plugin-transform-es2015-literals@6.22.0", + "_inBundle": false, + "_integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "_location": "/babel-plugin-transform-es2015-literals", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-literals@6.22.0", + "name": "babel-plugin-transform-es2015-literals", + "escapedName": "babel-plugin-transform-es2015-literals", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 unicode string and number literals to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-literals", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-literals" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-amd/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-amd/package.json index 816b5699b..82cfa52de 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-amd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-amd/package.json @@ -1,19 +1,52 @@ { - "name": "babel-plugin-transform-es2015-modules-amd", - "version": "6.24.1", - "description": "This plugin transforms ES2015 modules to AMD", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-amd", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-modules-amd@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-modules-amd@6.24.1", + "_id": "babel-plugin-transform-es2015-modules-amd@6.24.1", + "_inBundle": false, + "_integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "_location": "/babel-plugin-transform-es2015-modules-amd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-modules-amd@6.24.1", + "name": "babel-plugin-transform-es2015-modules-amd", + "escapedName": "babel-plugin-transform-es2015-modules-amd", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-modules-umd", + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-template": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, + "description": "This plugin transforms ES2015 modules to AMD", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" }, "keywords": [ "babel-plugin" ], - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.24.1" - } + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-modules-amd", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-amd" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-commonjs/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-commonjs/package.json index 9472d047a..d2a761129 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-commonjs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-commonjs/package.json @@ -1,21 +1,54 @@ { - "name": "babel-plugin-transform-es2015-modules-commonjs", - "version": "6.26.2", - "description": "This plugin transforms ES2015 modules to CommonJS", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-commonjs", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-modules-commonjs@6.26.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-modules-commonjs@6.26.2", + "_id": "babel-plugin-transform-es2015-modules-commonjs@6.26.2", + "_inBundle": false, + "_integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", + "_location": "/babel-plugin-transform-es2015-modules-commonjs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-modules-commonjs@6.26.2", + "name": "babel-plugin-transform-es2015-modules-commonjs", + "escapedName": "babel-plugin-transform-es2015-modules-commonjs", + "rawSpec": "6.26.2", + "saveSpec": null, + "fetchSpec": "6.26.2" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-modules-amd", + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "_spec": "6.26.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-types": "^6.26.0" }, - "keywords": [ - "babel-plugin" - ], + "description": "This plugin transforms ES2015 modules to CommonJS", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1", "babel-plugin-syntax-object-rest-spread": "^6.13.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-modules-commonjs", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-commonjs" + }, + "version": "6.26.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json index c5e282735..2b9191aea 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-systemjs/package.json @@ -1,20 +1,52 @@ { - "name": "babel-plugin-transform-es2015-modules-systemjs", - "version": "6.24.1", - "description": "This plugin transforms ES2015 modules to SystemJS", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-systemjs", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-modules-systemjs@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-modules-systemjs@6.24.1", + "_id": "babel-plugin-transform-es2015-modules-systemjs@6.24.1", + "_inBundle": false, + "_integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "_location": "/babel-plugin-transform-es2015-modules-systemjs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-modules-systemjs@6.24.1", + "name": "babel-plugin-transform-es2015-modules-systemjs", + "escapedName": "babel-plugin-transform-es2015-modules-systemjs", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-template": "^6.24.1", "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" }, - "keywords": [ - "babel-plugin" - ], + "description": "This plugin transforms ES2015 modules to SystemJS", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1", "babel-plugin-syntax-dynamic-import": "^6.18.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-modules-systemjs", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-systemjs" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-umd/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-umd/package.json index ea38e91bd..8d2287cf9 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-umd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-modules-umd/package.json @@ -1,19 +1,51 @@ { - "name": "babel-plugin-transform-es2015-modules-umd", - "version": "6.24.1", - "description": "This plugin transforms ES2015 modules to UMD", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-umd", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-modules-umd@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-modules-umd@6.24.1", + "_id": "babel-plugin-transform-es2015-modules-umd@6.24.1", + "_inBundle": false, + "_integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "_location": "/babel-plugin-transform-es2015-modules-umd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-modules-umd@6.24.1", + "name": "babel-plugin-transform-es2015-modules-umd", + "escapedName": "babel-plugin-transform-es2015-modules-umd", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-template": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + }, + "description": "This plugin transforms ES2015 modules to UMD", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" }, "keywords": [ "babel-plugin" ], - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.24.1" - } + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-modules-umd", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-modules-umd" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-object-super/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-object-super/package.json index c0bc4a9fd..def8d4731 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-object-super/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-object-super/package.json @@ -1,18 +1,50 @@ { - "name": "babel-plugin-transform-es2015-object-super", - "version": "6.24.1", - "description": "Compile ES2015 object super to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-object-super", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-object-super@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-object-super@6.24.1", + "_id": "babel-plugin-transform-es2015-object-super@6.24.1", + "_inBundle": false, + "_integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "_location": "/babel-plugin-transform-es2015-object-super", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-object-super@6.24.1", + "name": "babel-plugin-transform-es2015-object-super", + "escapedName": "babel-plugin-transform-es2015-object-super", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 object super to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-object-super", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-object-super" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-parameters/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-parameters/package.json index 6d27af9a4..5515b4b7d 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-parameters/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-parameters/package.json @@ -1,22 +1,54 @@ { - "name": "babel-plugin-transform-es2015-parameters", - "version": "6.24.1", - "description": "Compile ES2015 default and rest parameters to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-parameters", - "license": "MIT", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-es2015-parameters@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-parameters@6.24.1", + "_id": "babel-plugin-transform-es2015-parameters@6.24.1", + "_inBundle": false, + "_integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "_location": "/babel-plugin-transform-es2015-parameters", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-parameters@6.24.1", + "name": "babel-plugin-transform-es2015-parameters", + "escapedName": "babel-plugin-transform-es2015-parameters", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-traverse": "^6.24.1", "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", - "babel-types": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + }, + "description": "Compile ES2015 default and rest parameters to ES5", + "devDependencies": { + "babel-helper-plugin-test-runner": "^6.24.1" }, "keywords": [ "babel-plugin" ], - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.24.1" - } + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-parameters", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-parameters" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-shorthand-properties/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-shorthand-properties/package.json index dba2f277b..5b132542c 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-shorthand-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-shorthand-properties/package.json @@ -1,18 +1,50 @@ { - "name": "babel-plugin-transform-es2015-shorthand-properties", - "version": "6.24.1", - "description": "Compile ES2015 shorthand properties to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-shorthand-properties", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-shorthand-properties@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-shorthand-properties@6.24.1", + "_id": "babel-plugin-transform-es2015-shorthand-properties@6.24.1", + "_inBundle": false, + "_integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "_location": "/babel-plugin-transform-es2015-shorthand-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-shorthand-properties@6.24.1", + "name": "babel-plugin-transform-es2015-shorthand-properties", + "escapedName": "babel-plugin-transform-es2015-shorthand-properties", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-types": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" }, + "description": "Compile ES2015 shorthand properties to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-shorthand-properties", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-shorthand-properties" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-spread/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-spread/package.json index f852ac318..bc12fa7e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-spread/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-spread/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-spread", - "version": "6.22.0", - "description": "Compile ES2015 spread to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-spread", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-spread@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-spread@6.22.0", + "_id": "babel-plugin-transform-es2015-spread@6.22.0", + "_inBundle": false, + "_integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "_location": "/babel-plugin-transform-es2015-spread", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-spread@6.22.0", + "name": "babel-plugin-transform-es2015-spread", + "escapedName": "babel-plugin-transform-es2015-spread", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 spread to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-spread", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-spread" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-sticky-regex/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-sticky-regex/package.json index 068c7e0e9..11f9017f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-sticky-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-sticky-regex/package.json @@ -1,19 +1,51 @@ { - "name": "babel-plugin-transform-es2015-sticky-regex", - "version": "6.24.1", - "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-sticky-regex", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-sticky-regex@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-sticky-regex@6.24.1", + "_id": "babel-plugin-transform-es2015-sticky-regex@6.24.1", + "_inBundle": false, + "_integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "_location": "/babel-plugin-transform-es2015-sticky-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-sticky-regex@6.24.1", + "name": "babel-plugin-transform-es2015-sticky-regex", + "escapedName": "babel-plugin-transform-es2015-sticky-regex", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-regex": "^6.24.1", - "babel-types": "^6.24.1", - "babel-runtime": "^6.22.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" }, + "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-sticky-regex", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-sticky-regex" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-template-literals/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-template-literals/package.json index e24bb6d91..1b423f852 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-template-literals/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-template-literals/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-template-literals", - "version": "6.22.0", - "description": "Compile ES2015 template literals to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-template-literals", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-template-literals@6.22.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-template-literals@6.22.0", + "_id": "babel-plugin-transform-es2015-template-literals@6.22.0", + "_inBundle": false, + "_integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "_location": "/babel-plugin-transform-es2015-template-literals", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-template-literals@6.22.0", + "name": "babel-plugin-transform-es2015-template-literals", + "escapedName": "babel-plugin-transform-es2015-template-literals", + "rawSpec": "6.22.0", + "saveSpec": null, + "fetchSpec": "6.22.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "_spec": "6.22.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Compile ES2015 template literals to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-template-literals", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-template-literals" + }, + "version": "6.22.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-typeof-symbol/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-typeof-symbol/package.json index 7a4f28427..24fb2c2cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-typeof-symbol/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-typeof-symbol/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-es2015-typeof-symbol", - "version": "6.23.0", - "description": "This transformer wraps all typeof expressions with a method that replicates native behaviour. (ie. returning “symbol” for symbols)", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-typeof-symbol", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-typeof-symbol@6.23.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-typeof-symbol@6.23.0", + "_id": "babel-plugin-transform-es2015-typeof-symbol@6.23.0", + "_inBundle": false, + "_integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "_location": "/babel-plugin-transform-es2015-typeof-symbol", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-typeof-symbol@6.23.0", + "name": "babel-plugin-transform-es2015-typeof-symbol", + "escapedName": "babel-plugin-transform-es2015-typeof-symbol", + "rawSpec": "6.23.0", + "saveSpec": null, + "fetchSpec": "6.23.0" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "_spec": "6.23.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "This transformer wraps all typeof expressions with a method that replicates native behaviour. (ie. returning “symbol” for symbols)", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-typeof-symbol", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-typeof-symbol" + }, + "version": "6.23.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-unicode-regex/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-unicode-regex/package.json index 0a02d878c..afdb46558 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-unicode-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-es2015-unicode-regex/package.json @@ -1,19 +1,51 @@ { - "name": "babel-plugin-transform-es2015-unicode-regex", - "version": "6.24.1", - "description": "Compile ES2015 Unicode regex to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-unicode-regex", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-es2015-unicode-regex@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-es2015-unicode-regex@6.24.1", + "_id": "babel-plugin-transform-es2015-unicode-regex@6.24.1", + "_inBundle": false, + "_integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "_location": "/babel-plugin-transform-es2015-unicode-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-es2015-unicode-regex@6.24.1", + "name": "babel-plugin-transform-es2015-unicode-regex", + "escapedName": "babel-plugin-transform-es2015-unicode-regex", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "regexpu-core": "^2.0.0" }, + "description": "Compile ES2015 Unicode regex to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-es2015-unicode-regex", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-es2015-unicode-regex" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-exponentiation-operator/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-exponentiation-operator/package.json index 8055d3811..abd3e11d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-exponentiation-operator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-exponentiation-operator/package.json @@ -1,19 +1,52 @@ { - "name": "babel-plugin-transform-exponentiation-operator", - "version": "6.24.1", - "description": "Compile exponentiation operator to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-exponentiation-operator", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-exponentiation-operator@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-exponentiation-operator@6.24.1", + "_id": "babel-plugin-transform-exponentiation-operator@6.24.1", + "_inBundle": false, + "_integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "_location": "/babel-plugin-transform-exponentiation-operator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-exponentiation-operator@6.24.1", + "name": "babel-plugin-transform-exponentiation-operator", + "escapedName": "babel-plugin-transform-exponentiation-operator", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-env", + "/babel-preset-stage-3" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", "babel-runtime": "^6.22.0" }, + "description": "Compile exponentiation operator to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-exponentiation-operator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-exponentiation-operator" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-object-rest-spread/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-object-rest-spread/package.json index fcae4b402..3a4d5696a 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-object-rest-spread/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-object-rest-spread/package.json @@ -1,18 +1,50 @@ { - "name": "babel-plugin-transform-object-rest-spread", - "version": "6.26.0", - "description": "Compile object rest and spread to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-rest-spread", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-object-rest-spread@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-object-rest-spread@6.26.0", + "_id": "babel-plugin-transform-object-rest-spread@6.26.0", + "_inBundle": false, + "_integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "_location": "/babel-plugin-transform-object-rest-spread", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-object-rest-spread@6.26.0", + "name": "babel-plugin-transform-object-rest-spread", + "escapedName": "babel-plugin-transform-object-rest-spread", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-preset-stage-3" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-plugin-syntax-object-rest-spread": "^6.8.0", "babel-runtime": "^6.26.0" }, + "description": "Compile object rest and spread to ES5", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-object-rest-spread", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-object-rest-spread" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-regenerator/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-regenerator/package.json index f69aa3d85..d9b5cfb45 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-regenerator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-regenerator/package.json @@ -1,16 +1,51 @@ { - "name": "babel-plugin-transform-regenerator", - "author": "Ben Newman ", - "description": "Explode async and generator functions into a state machine.", - "version": "6.26.0", - "homepage": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-regenerator", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-regenerator", - "main": "lib/index.js", + "_args": [ + [ + "babel-plugin-transform-regenerator@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-regenerator@6.26.0", + "_id": "babel-plugin-transform-regenerator@6.26.0", + "_inBundle": false, + "_integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "_location": "/babel-plugin-transform-regenerator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-regenerator@6.26.0", + "name": "babel-plugin-transform-regenerator", + "escapedName": "babel-plugin-transform-regenerator", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-preset-env" + ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Newman", + "email": "bn@cs.stanford.edu" + }, "dependencies": { "regenerator-transform": "^0.10.0" }, - "license": "MIT", + "description": "Explode async and generator functions into a state machine.", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "homepage": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-regenerator", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-regenerator", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-regenerator" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-runtime/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-runtime/package.json index 4ca28143b..724675f9a 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-runtime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-runtime/package.json @@ -1,17 +1,49 @@ { - "name": "babel-plugin-transform-runtime", - "version": "6.23.0", - "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-runtime@6.23.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-runtime@6.23.0", + "_id": "babel-plugin-transform-runtime@6.23.0", + "_inBundle": false, + "_integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "_location": "/babel-plugin-transform-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-runtime@6.23.0", + "name": "babel-plugin-transform-runtime", + "escapedName": "babel-plugin-transform-runtime", + "rawSpec": "6.23.0", + "saveSpec": null, + "fetchSpec": "6.23.0" + }, + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz", + "_spec": "6.23.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0" }, + "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", "devDependencies": { "babel-helper-plugin-test-runner": "^6.22.0" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-runtime", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime" + }, + "version": "6.23.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-strict-mode/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-strict-mode/package.json index da1f87179..20b0d6dd1 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-strict-mode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-strict-mode/package.json @@ -1,18 +1,50 @@ { - "name": "babel-plugin-transform-strict-mode", - "version": "6.24.1", - "description": "This plugin places a 'use strict'; directive at the top of all files to enable strict mode", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-strict-mode", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" + "_args": [ + [ + "babel-plugin-transform-strict-mode@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-plugin-transform-strict-mode@6.24.1", + "_id": "babel-plugin-transform-strict-mode@6.24.1", + "_inBundle": false, + "_integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "_location": "/babel-plugin-transform-strict-mode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-strict-mode@6.24.1", + "name": "babel-plugin-transform-strict-mode", + "escapedName": "babel-plugin-transform-strict-mode", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-modules-commonjs" ], + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" }, + "description": "This plugin places a 'use strict'; directive at the top of all files to enable strict mode", "devDependencies": { "babel-helper-plugin-test-runner": "^6.24.1" - } + }, + "keywords": [ + "babel-plugin" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babel-plugin-transform-strict-mode", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-strict-mode" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-vue-jsx/package.json b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-vue-jsx/package.json index 569ff946f..1ca5f8004 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-vue-jsx/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-plugin-transform-vue-jsx/package.json @@ -1,42 +1,43 @@ { - "name": "babel-plugin-transform-vue-jsx", - "version": "3.7.0", - "description": "Babel plugin for Vue 2.0 JSX", - "main": "index.js", - "unpkg": "dist/babel-plugin-transform-vue-jsx.min.js", - "files": [ - "index.js", - "lib", - "dist" + "_args": [ + [ + "babel-plugin-transform-vue-jsx@3.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "eslint index.js", - "test": "npm run lint && mocha --compilers js:babel-register", - "dev": "cd example && webpack --watch", - "build": "webpack -p index.js dist/babel-plugin-transform-vue-jsx.min.js --target=web --output-library=babel-plugin-transform-vue-jsx --output-library-target=umd --module-bind 'js=babel-loader'", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/babel-plugin-transform-vue-jsx.git" + "_development": true, + "_from": "babel-plugin-transform-vue-jsx@3.7.0", + "_id": "babel-plugin-transform-vue-jsx@3.7.0", + "_inBundle": false, + "_integrity": "sha1-1ASS5mkqNrWU9+mhko9D6Wl0CWA=", + "_location": "/babel-plugin-transform-vue-jsx", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-plugin-transform-vue-jsx@3.7.0", + "name": "babel-plugin-transform-vue-jsx", + "escapedName": "babel-plugin-transform-vue-jsx", + "rawSpec": "3.7.0", + "saveSpec": null, + "fetchSpec": "3.7.0" }, - "keywords": [ - "vue", - "babel", - "jsx" + "_requiredBy": [ + "#DEV:/" ], - "author": "Evan You", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/babel-plugin-transform-vue-jsx/download/babel-plugin-transform-vue-jsx-3.7.0.tgz", + "_spec": "3.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "bugs": { "url": "https://github.com/vuejs/babel-plugin-transform-vue-jsx/issues" }, - "homepage": "https://github.com/vuejs/babel-plugin-transform-vue-jsx#readme", "dependencies": { "esutils": "^2.0.2" }, - "peerDependencies": { - "babel-helper-vue-jsx-merge-props": "^2.0.0" - }, + "description": "Babel plugin for Vue 2.0 JSX", "devDependencies": { "babel-cli": "^6.26.0", "babel-core": "^6.26.0", @@ -51,5 +52,35 @@ "mocha": "^5.0.0", "vue": "^2.5.13", "webpack": "^3.10.0" - } + }, + "files": [ + "index.js", + "lib", + "dist" + ], + "homepage": "https://github.com/vuejs/babel-plugin-transform-vue-jsx#readme", + "keywords": [ + "vue", + "babel", + "jsx" + ], + "license": "MIT", + "main": "index.js", + "name": "babel-plugin-transform-vue-jsx", + "peerDependencies": { + "babel-helper-vue-jsx-merge-props": "^2.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/babel-plugin-transform-vue-jsx.git" + }, + "scripts": { + "build": "webpack -p index.js dist/babel-plugin-transform-vue-jsx.min.js --target=web --output-library=babel-plugin-transform-vue-jsx --output-library-target=umd --module-bind 'js=babel-loader'", + "dev": "cd example && webpack --watch", + "lint": "eslint index.js", + "prepublish": "npm run build", + "test": "npm run lint && mocha --compilers js:babel-register" + }, + "unpkg": "dist/babel-plugin-transform-vue-jsx.min.js", + "version": "3.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-preset-env/package.json b/admin/vue2/element-admin-v3/node_modules/babel-preset-env/package.json index 274b91c50..ce543b4b9 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-preset-env/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-preset-env/package.json @@ -1,25 +1,56 @@ { - "name": "babel-preset-env", - "version": "1.7.0", - "description": "A Babel preset for each environment.", - "author": "Henry Zhu ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel-preset-env", - "main": "lib/index.js", - "scripts": { - "build": "rimraf lib && babel src -d lib", - "build-data": "node ./scripts/build-data.js", - "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'", - "coverage": "BABEL_ENV=test nyc npm run test", - "coverage-ci": "nyc report --reporter=json && codecov -f coverage/coverage-final.json", - "dev": "babel -w src -d lib", - "fix": "eslint . --fix", - "lint": "eslint .", - "prepublish": "npm run build", - "test": "npm run build && npm run test-only", - "test-ci": "nyc npm run test", - "test-only": "mocha ./test --compilers js:babel-register -t 10000" + "_args": [ + [ + "babel-preset-env@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-preset-env@1.7.0", + "_id": "babel-preset-env@1.7.0", + "_inBundle": false, + "_integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", + "_location": "/babel-preset-env", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-preset-env@1.7.0", + "name": "babel-preset-env", + "escapedName": "babel-preset-env", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Henry Zhu", + "email": "hi@henryzoo.com" + }, + "babel": { + "presets": [ + [ + "env", + { + "loose": true + } + ] + ], + "env": { + "test": { + "plugins": [ + "istanbul" + ] + } + } + }, + "bugs": { + "url": "https://github.com/babel/babel-preset-env/issues" }, "dependencies": { "babel-plugin-check-es2015-constants": "^6.22.0", @@ -53,6 +84,7 @@ "invariant": "^2.2.2", "semver": "^5.3.0" }, + "description": "A Babel preset for each environment.", "devDependencies": { "babel-cli": "^6.23.0", "babel-eslint": "^7.1.1", @@ -63,7 +95,8 @@ "babel-register": "^6.23.0", "chai": "^3.5.0", "codecov": "^1.0.1", - "compat-table": "kangax/compat-table#957f1ff15972e8fb2892a172f985e9af27bf1c75", + "compat-table": "github:kangax/compat-table#957f1ff15972e8fb2892a172f985e9af27bf1c75", + "electron-to-chromium": "^1.3.11", "eslint": "^3.17.1", "eslint-config-babel": "^6.0.0", "eslint-plugin-flowtype": "^2.29.1", @@ -71,26 +104,12 @@ "lodash": "^4.17.4", "mocha": "^3.2.0", "nyc": "^10.1.2", - "electron-to-chromium": "^1.3.11", "rimraf": "^2.6.1" }, - "babel": { - "presets": [ - [ - "env", - { - "loose": true - } - ] - ], - "env": { - "test": { - "plugins": [ - "istanbul" - ] - } - } - }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-preset-env", "nyc": { "all": true, "include": [ @@ -98,5 +117,24 @@ ], "instrument": false, "sourceMap": false - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/babel/babel-preset-env.git" + }, + "scripts": { + "build": "rimraf lib && babel src -d lib", + "build-data": "node ./scripts/build-data.js", + "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'", + "coverage": "BABEL_ENV=test nyc npm run test", + "coverage-ci": "nyc report --reporter=json && codecov -f coverage/coverage-final.json", + "dev": "babel -w src -d lib", + "fix": "eslint . --fix", + "lint": "eslint .", + "prepublish": "npm run build", + "test": "npm run build && npm run test-only", + "test-ci": "nyc npm run test", + "test-only": "mocha ./test --compilers js:babel-register -t 10000" + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-2/package.json b/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-2/package.json index 1c0928cb2..2f45efb88 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-2/package.json @@ -1,16 +1,51 @@ { - "name": "babel-preset-stage-2", - "version": "6.24.1", - "description": "Babel preset for stage 2 plugins", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-2", - "main": "lib/index.js", + "_args": [ + [ + "babel-preset-stage-2@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-preset-stage-2@6.24.1", + "_id": "babel-preset-stage-2@6.24.1", + "_inBundle": false, + "_integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "_location": "/babel-preset-stage-2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-preset-stage-2@6.24.1", + "name": "babel-preset-stage-2", + "escapedName": "babel-preset-stage-2", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-decorators": "^6.24.1", - "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-preset-stage-3": "^6.24.1" - } + }, + "description": "Babel preset for stage 2 plugins", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-preset-stage-2", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-2" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-3/package.json b/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-3/package.json index 5eb0ba7bb..56a1c2f22 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-3/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-preset-stage-3/package.json @@ -1,17 +1,52 @@ { - "name": "babel-preset-stage-3", - "version": "6.24.1", - "description": "Babel preset for stage 3 plugins", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-3", - "main": "lib/index.js", + "_args": [ + [ + "babel-preset-stage-3@6.24.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-preset-stage-3@6.24.1", + "_id": "babel-preset-stage-3@6.24.1", + "_inBundle": false, + "_integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "_location": "/babel-preset-stage-3", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-preset-stage-3@6.24.1", + "name": "babel-preset-stage-3", + "escapedName": "babel-preset-stage-3", + "rawSpec": "6.24.1", + "saveSpec": null, + "fetchSpec": "6.24.1" + }, + "_requiredBy": [ + "/babel-preset-stage-2" + ], + "_resolved": "https://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz", + "_spec": "6.24.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "babel-plugin-syntax-trailing-function-commas": "^6.22.0", "babel-plugin-transform-async-generator-functions": "^6.24.1", "babel-plugin-transform-async-to-generator": "^6.24.1", "babel-plugin-transform-exponentiation-operator": "^6.24.1", "babel-plugin-transform-object-rest-spread": "^6.22.0" - } + }, + "description": "Babel preset for stage 3 plugins", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-preset-stage-3", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-preset-stage-3" + }, + "version": "6.24.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-register/node_modules/core-js/package.json b/admin/vue2/element-admin-v3/node_modules/babel-register/node_modules/core-js/package.json index 7869f22d7..aad5c207f 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-register/node_modules/core-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-register/node_modules/core-js/package.json @@ -1,12 +1,37 @@ { - "name": "core-js", - "description": "Standard library", - "version": "2.6.12", - "repository": { - "type": "git", - "url": "https://github.com/zloirock/core-js.git" + "_args": [ + [ + "core-js@2.6.12", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "core-js@2.6.12", + "_id": "core-js@2.6.12", + "_inBundle": false, + "_integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "_location": "/babel-register/core-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "core-js@2.6.12", + "name": "core-js", + "escapedName": "core-js", + "rawSpec": "2.6.12", + "saveSpec": null, + "fetchSpec": "2.6.12" }, - "main": "index.js", + "_requiredBy": [ + "/babel-register" + ], + "_resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", + "_spec": "2.6.12", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zloirock/core-js/issues" + }, + "description": "Standard library", "devDependencies": { "LiveScript": "1.3.x", "es-observable-tests": "0.2.x", @@ -21,26 +46,18 @@ "grunt-karma": "^2.0.0", "grunt-livescript": "0.6.x", "karma": "^2.0.0", - "karma-qunit": "^2.1.0", "karma-chrome-launcher": "^2.2.0", "karma-firefox-launcher": "^1.0.1", "karma-ie-launcher": "^1.0.0", "karma-phantomjs-launcher": "1.0.x", + "karma-qunit": "^2.1.0", "phantomjs-prebuilt": "2.1.x", "promises-aplus-tests": "^2.1.2", "qunit": "2.6.x", "temp": "^0.8.3", "webpack": "^3.11.0" }, - "scripts": { - "grunt": "grunt", - "lint": "eslint ./", - "promises-tests": "promises-aplus-tests tests/promises-aplus/adapter", - "observables-tests": "node tests/observables/adapter && node tests/observables/adapter-library", - "test": "npm run grunt clean copy && npm run lint && npm run grunt livescript client karma:default && npm run grunt library karma:library && npm run promises-tests && npm run observables-tests && lsc tests/commonjs", - "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\"" - }, - "license": "MIT", + "homepage": "https://github.com/zloirock/core-js#readme", "keywords": [ "ES3", "ES5", @@ -69,5 +86,21 @@ "Dict", "polyfill", "shim" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "core-js", + "repository": { + "type": "git", + "url": "git+https://github.com/zloirock/core-js.git" + }, + "scripts": { + "grunt": "grunt", + "lint": "eslint ./", + "observables-tests": "node tests/observables/adapter && node tests/observables/adapter-library", + "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\"", + "promises-tests": "promises-aplus-tests tests/promises-aplus/adapter", + "test": "npm run grunt clean copy && npm run lint && npm run grunt livescript client karma:default && npm run grunt library karma:library && npm run promises-tests && npm run observables-tests && lsc tests/commonjs" + }, + "version": "2.6.12" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-register/package.json b/admin/vue2/element-admin-v3/node_modules/babel-register/package.json index 5ec1c7131..80a229039 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-register/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-register/package.json @@ -1,11 +1,37 @@ { - "name": "babel-register", - "version": "6.26.0", - "description": "babel require hook", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-register", - "author": "Sebastian McKenzie ", - "main": "lib/node.js", + "_args": [ + [ + "babel-register@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "babel-register@6.26.0", + "_id": "babel-register@6.26.0", + "_inBundle": false, + "_integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "_location": "/babel-register", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-register@6.26.0", + "name": "babel-register", + "escapedName": "babel-register", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-core" + ], + "_resolved": "https://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "browser": "lib/browser.js", "dependencies": { "babel-core": "^6.26.0", @@ -16,7 +42,16 @@ "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" }, + "description": "babel require hook", "devDependencies": { "decache": "^4.1.0" - } + }, + "license": "MIT", + "main": "lib/node.js", + "name": "babel-register", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-register" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-runtime/node_modules/core-js/package.json b/admin/vue2/element-admin-v3/node_modules/babel-runtime/node_modules/core-js/package.json index 7869f22d7..0ec776956 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-runtime/node_modules/core-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-runtime/node_modules/core-js/package.json @@ -1,12 +1,36 @@ { - "name": "core-js", - "description": "Standard library", - "version": "2.6.12", - "repository": { - "type": "git", - "url": "https://github.com/zloirock/core-js.git" + "_args": [ + [ + "core-js@2.6.12", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "core-js@2.6.12", + "_id": "core-js@2.6.12", + "_inBundle": false, + "_integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "_location": "/babel-runtime/core-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "core-js@2.6.12", + "name": "core-js", + "escapedName": "core-js", + "rawSpec": "2.6.12", + "saveSpec": null, + "fetchSpec": "2.6.12" }, - "main": "index.js", + "_requiredBy": [ + "/babel-runtime" + ], + "_resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", + "_spec": "2.6.12", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zloirock/core-js/issues" + }, + "description": "Standard library", "devDependencies": { "LiveScript": "1.3.x", "es-observable-tests": "0.2.x", @@ -21,26 +45,18 @@ "grunt-karma": "^2.0.0", "grunt-livescript": "0.6.x", "karma": "^2.0.0", - "karma-qunit": "^2.1.0", "karma-chrome-launcher": "^2.2.0", "karma-firefox-launcher": "^1.0.1", "karma-ie-launcher": "^1.0.0", "karma-phantomjs-launcher": "1.0.x", + "karma-qunit": "^2.1.0", "phantomjs-prebuilt": "2.1.x", "promises-aplus-tests": "^2.1.2", "qunit": "2.6.x", "temp": "^0.8.3", "webpack": "^3.11.0" }, - "scripts": { - "grunt": "grunt", - "lint": "eslint ./", - "promises-tests": "promises-aplus-tests tests/promises-aplus/adapter", - "observables-tests": "node tests/observables/adapter && node tests/observables/adapter-library", - "test": "npm run grunt clean copy && npm run lint && npm run grunt livescript client karma:default && npm run grunt library karma:library && npm run promises-tests && npm run observables-tests && lsc tests/commonjs", - "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\"" - }, - "license": "MIT", + "homepage": "https://github.com/zloirock/core-js#readme", "keywords": [ "ES3", "ES5", @@ -69,5 +85,21 @@ "Dict", "polyfill", "shim" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "core-js", + "repository": { + "type": "git", + "url": "git+https://github.com/zloirock/core-js.git" + }, + "scripts": { + "grunt": "grunt", + "lint": "eslint ./", + "observables-tests": "node tests/observables/adapter && node tests/observables/adapter-library", + "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\"", + "promises-tests": "promises-aplus-tests tests/promises-aplus/adapter", + "test": "npm run grunt clean copy && npm run lint && npm run grunt livescript client karma:default && npm run grunt library karma:library && npm run promises-tests && npm run observables-tests && lsc tests/commonjs" + }, + "version": "2.6.12" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-runtime/package.json b/admin/vue2/element-admin-v3/node_modules/babel-runtime/package.json index c17eb9a34..37c633562 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-runtime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-runtime/package.json @@ -1,16 +1,105 @@ { - "name": "babel-runtime", - "version": "6.26.0", - "description": "babel selfContained runtime", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime", - "author": "Sebastian McKenzie ", + "_args": [ + [ + "babel-runtime@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-runtime@6.26.0", + "_id": "babel-runtime@6.26.0", + "_inBundle": false, + "_integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "_location": "/babel-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-runtime@6.26.0", + "name": "babel-runtime", + "escapedName": "babel-runtime", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/async-validator", + "/babel-core", + "/babel-generator", + "/babel-helper-bindify-decorators", + "/babel-helper-builder-binary-assignment-operator-visitor", + "/babel-helper-call-delegate", + "/babel-helper-define-map", + "/babel-helper-explode-assignable-expression", + "/babel-helper-explode-class", + "/babel-helper-function-name", + "/babel-helper-get-function-arity", + "/babel-helper-hoist-variables", + "/babel-helper-optimise-call-expression", + "/babel-helper-regex", + "/babel-helper-remap-async-to-generator", + "/babel-helper-replace-supers", + "/babel-helpers", + "/babel-messages", + "/babel-plugin-check-es2015-constants", + "/babel-plugin-transform-async-generator-functions", + "/babel-plugin-transform-async-to-generator", + "/babel-plugin-transform-class-properties", + "/babel-plugin-transform-decorators", + "/babel-plugin-transform-decorators-legacy", + "/babel-plugin-transform-es2015-arrow-functions", + "/babel-plugin-transform-es2015-block-scoped-functions", + "/babel-plugin-transform-es2015-block-scoping", + "/babel-plugin-transform-es2015-classes", + "/babel-plugin-transform-es2015-computed-properties", + "/babel-plugin-transform-es2015-destructuring", + "/babel-plugin-transform-es2015-duplicate-keys", + "/babel-plugin-transform-es2015-for-of", + "/babel-plugin-transform-es2015-function-name", + "/babel-plugin-transform-es2015-literals", + "/babel-plugin-transform-es2015-modules-amd", + "/babel-plugin-transform-es2015-modules-commonjs", + "/babel-plugin-transform-es2015-modules-systemjs", + "/babel-plugin-transform-es2015-modules-umd", + "/babel-plugin-transform-es2015-object-super", + "/babel-plugin-transform-es2015-parameters", + "/babel-plugin-transform-es2015-shorthand-properties", + "/babel-plugin-transform-es2015-spread", + "/babel-plugin-transform-es2015-sticky-regex", + "/babel-plugin-transform-es2015-template-literals", + "/babel-plugin-transform-es2015-typeof-symbol", + "/babel-plugin-transform-es2015-unicode-regex", + "/babel-plugin-transform-exponentiation-operator", + "/babel-plugin-transform-object-rest-spread", + "/babel-plugin-transform-runtime", + "/babel-plugin-transform-strict-mode", + "/babel-register", + "/babel-template", + "/babel-traverse", + "/babel-types", + "/regenerator-transform", + "/video.js" + ], + "_resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" }, + "description": "babel selfContained runtime", "devDependencies": { "babel-helpers": "^6.22.0", "babel-plugin-transform-runtime": "^6.23.0" - } + }, + "license": "MIT", + "name": "babel-runtime", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-runtime" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-template/package.json b/admin/vue2/element-admin-v3/node_modules/babel-template/package.json index 81eab1ca3..0ae22182c 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-template/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-template/package.json @@ -1,17 +1,66 @@ { - "name": "babel-template", - "version": "6.26.0", - "description": "Generate an AST from a string template.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-template", - "main": "lib/index.js", + "_args": [ + [ + "babel-template@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-template@6.26.0", + "_id": "babel-template@6.26.0", + "_inBundle": false, + "_integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "_location": "/babel-template", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-template@6.26.0", + "name": "babel-template", + "escapedName": "babel-template", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-core", + "/babel-helper-function-name", + "/babel-helper-remap-async-to-generator", + "/babel-helper-replace-supers", + "/babel-helpers", + "/babel-plugin-transform-class-properties", + "/babel-plugin-transform-decorators", + "/babel-plugin-transform-decorators-legacy", + "/babel-plugin-transform-es2015-block-scoping", + "/babel-plugin-transform-es2015-classes", + "/babel-plugin-transform-es2015-computed-properties", + "/babel-plugin-transform-es2015-modules-amd", + "/babel-plugin-transform-es2015-modules-commonjs", + "/babel-plugin-transform-es2015-modules-systemjs", + "/babel-plugin-transform-es2015-modules-umd", + "/babel-plugin-transform-es2015-parameters" + ], + "_resolved": "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "lodash": "^4.17.4" - } + }, + "description": "Generate an AST from a string template.", + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-template", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-template" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-traverse/package.json b/admin/vue2/element-admin-v3/node_modules/babel-traverse/package.json index 2f71a4ad8..d1782469f 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-traverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-traverse/package.json @@ -1,12 +1,47 @@ { - "name": "babel-traverse", - "version": "6.26.0", - "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-traverse", - "main": "lib/index.js", + "_args": [ + [ + "babel-traverse@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-traverse@6.26.0", + "_id": "babel-traverse@6.26.0", + "_inBundle": false, + "_integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "_location": "/babel-traverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-traverse@6.26.0", + "name": "babel-traverse", + "escapedName": "babel-traverse", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-core", + "/babel-helper-bindify-decorators", + "/babel-helper-call-delegate", + "/babel-helper-explode-assignable-expression", + "/babel-helper-explode-class", + "/babel-helper-function-name", + "/babel-helper-remap-async-to-generator", + "/babel-helper-replace-supers", + "/babel-plugin-transform-es2015-block-scoping", + "/babel-plugin-transform-es2015-classes", + "/babel-plugin-transform-es2015-parameters", + "/babel-template" + ], + "_resolved": "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -18,7 +53,17 @@ "invariant": "^2.2.2", "lodash": "^4.17.4" }, + "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", "devDependencies": { "babel-generator": "^6.26.0" - } + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-traverse", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-traverse" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-types/package.json b/admin/vue2/element-admin-v3/node_modules/babel-types/package.json index e93188af2..8f7dc1cf3 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-types/package.json @@ -1,20 +1,82 @@ { - "name": "babel-types", - "version": "6.26.0", - "description": "Babel Types is a Lodash-esque utility library for AST nodes", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-types", - "main": "lib/index.js", + "_args": [ + [ + "babel-types@6.26.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "babel-types@6.26.0", + "_id": "babel-types@6.26.0", + "_inBundle": false, + "_integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "_location": "/babel-types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-types@6.26.0", + "name": "babel-types", + "escapedName": "babel-types", + "rawSpec": "6.26.0", + "saveSpec": null, + "fetchSpec": "6.26.0" + }, + "_requiredBy": [ + "/babel-core", + "/babel-generator", + "/babel-helper-bindify-decorators", + "/babel-helper-builder-binary-assignment-operator-visitor", + "/babel-helper-call-delegate", + "/babel-helper-define-map", + "/babel-helper-explode-assignable-expression", + "/babel-helper-explode-class", + "/babel-helper-function-name", + "/babel-helper-get-function-arity", + "/babel-helper-hoist-variables", + "/babel-helper-optimise-call-expression", + "/babel-helper-regex", + "/babel-helper-remap-async-to-generator", + "/babel-helper-replace-supers", + "/babel-plugin-transform-decorators", + "/babel-plugin-transform-es2015-block-scoping", + "/babel-plugin-transform-es2015-classes", + "/babel-plugin-transform-es2015-duplicate-keys", + "/babel-plugin-transform-es2015-function-name", + "/babel-plugin-transform-es2015-modules-commonjs", + "/babel-plugin-transform-es2015-parameters", + "/babel-plugin-transform-es2015-shorthand-properties", + "/babel-plugin-transform-es2015-sticky-regex", + "/babel-plugin-transform-strict-mode", + "/babel-template", + "/babel-traverse", + "/pug-html-loader/constantinople", + "/regenerator-transform" + ], + "_resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz", + "_spec": "6.26.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" }, + "description": "Babel Types is a Lodash-esque utility library for AST nodes", "devDependencies": { "babel-generator": "^6.26.0", "babylon": "^6.18.0" - } + }, + "homepage": "https://babeljs.io/", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-types", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel/tree/master/packages/babel-types" + }, + "version": "6.26.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/@babel/types/package.json b/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/@babel/types/package.json index 7c45ea375..69a3023b9 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/@babel/types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/@babel/types/package.json @@ -1,20 +1,66 @@ { - "name": "@babel/types", - "version": "7.14.5", + "_args": [ + [ + "@babel/types@7.14.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/types@7.14.5", + "_id": "@babel/types@7.14.5", + "_inBundle": false, + "_integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", + "_location": "/babel-walk/@babel/types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/types@7.14.5", + "name": "@babel/types", + "escapedName": "@babel%2ftypes", + "scope": "@babel", + "rawSpec": "7.14.5", + "saveSpec": null, + "fetchSpec": "7.14.5" + }, + "_requiredBy": [ + "/babel-walk" + ], + "_resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", + "_spec": "7.14.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "The Babel Team", + "url": "https://babel.dev/team" + }, + "bugs": { + "url": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen" + }, + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + }, "description": "Babel Types is a Lodash-esque utility library for AST nodes", - "author": "The Babel Team (https://babel.dev/team)", + "devDependencies": { + "@babel/generator": "7.14.5", + "@babel/parser": "7.14.5", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, "homepage": "https://babel.dev/docs/en/next/babel-types", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen", "license": "MIT", + "main": "./lib/index.js", + "name": "@babel/types", "publishConfig": { "access": "public" }, "repository": { "type": "git", - "url": "https://github.com/babel/babel.git", + "url": "git+https://github.com/babel/babel.git", "directory": "packages/babel-types" }, - "main": "./lib/index.js", "types": "./lib/index-legacy.d.ts", "typesVersions": { ">=3.7": { @@ -23,16 +69,5 @@ ] } }, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "devDependencies": { - "@babel/generator": "7.14.5", - "@babel/parser": "7.14.5", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file + "version": "7.14.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/to-fast-properties/package.json b/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/to-fast-properties/package.json index 7a64b2ccb..20b8436f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/to-fast-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-walk/node_modules/to-fast-properties/package.json @@ -1,23 +1,52 @@ { - "name": "to-fast-properties", - "version": "2.0.0", - "description": "Force V8 to use fast properties for an object", - "license": "MIT", - "repository": "sindresorhus/to-fast-properties", + "_args": [ + [ + "to-fast-properties@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "to-fast-properties@2.0.0", + "_id": "to-fast-properties@2.0.0", + "_inBundle": false, + "_integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "_location": "/babel-walk/to-fast-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-fast-properties@2.0.0", + "name": "to-fast-properties", + "escapedName": "to-fast-properties", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/babel-walk/@babel/types" + ], + "_resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/to-fast-properties/issues" + }, + "description": "Force V8 to use fast properties for an object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "node --allow-natives-syntax test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/to-fast-properties#readme", "keywords": [ "object", "obj", @@ -29,7 +58,14 @@ "convert", "mode" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "to-fast-properties", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/to-fast-properties.git" + }, + "scripts": { + "test": "node --allow-natives-syntax test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/babel-walk/package.json b/admin/vue2/element-admin-v3/node_modules/babel-walk/package.json index 39094af78..3dc86d89c 100644 --- a/admin/vue2/element-admin-v3/node_modules/babel-walk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babel-walk/package.json @@ -1,30 +1,46 @@ { - "name": "babel-walk", - "version": "3.0.0-canary-5", - "description": "Lightweight Babel AST traversal", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "babel-walk@3.0.0-canary-5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "tsc && node lib", - "postbuild": "rimraf lib/**/__tests__", - "lint": "tslint './src/**/*.{ts,tsx}' -t verbose -p .", - "prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'", - "prettier:check": "prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'" + "_development": true, + "_from": "babel-walk@3.0.0-canary-5", + "_id": "babel-walk@3.0.0-canary-5", + "_inBundle": false, + "_integrity": "sha1-9m7Ncpg1eu5ElV8jWm71QhkQSxE=", + "_location": "/babel-walk", + "_phantomChildren": { + "@babel/helper-validator-identifier": "7.14.5" }, - "repository": { - "type": "git", - "url": "https://github.com/pugjs/babel-walk.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "babel-walk@3.0.0-canary-5", + "name": "babel-walk", + "escapedName": "babel-walk", + "rawSpec": "3.0.0-canary-5", + "saveSpec": null, + "fetchSpec": "3.0.0-canary-5" }, - "engines": { - "node": ">= 10.0.0" + "_requiredBy": [ + "/with" + ], + "_resolved": "https://registry.npm.taobao.org/babel-walk/download/babel-walk-3.0.0-canary-5.tgz", + "_spec": "3.0.0-canary-5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, + "bugs": { + "url": "https://github.com/pugjs/babel-walk/issues" }, - "author": "Timothy Gu ", - "license": "MIT", "dependencies": { "@babel/types": "^7.9.6" }, + "description": "Lightweight Babel AST traversal", "devDependencies": { "@forbeslindesay/tsconfig": "^2.0.0", "@types/node": "^14.0.5", @@ -32,5 +48,27 @@ "rimraf": "^3.0.2", "tslint": "^6.1.2", "typescript": "^3.9.3" - } + }, + "engines": { + "node": ">= 10.0.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/pugjs/babel-walk#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "babel-walk", + "repository": { + "type": "git", + "url": "git+https://github.com/pugjs/babel-walk.git" + }, + "scripts": { + "build": "tsc && node lib", + "lint": "tslint './src/**/*.{ts,tsx}' -t verbose -p .", + "postbuild": "rimraf lib/**/__tests__", + "prettier:check": "prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'", + "prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'" + }, + "version": "3.0.0-canary-5" } diff --git a/admin/vue2/element-admin-v3/node_modules/babylon/package.json b/admin/vue2/element-admin-v3/node_modules/babylon/package.json index 4023a24b5..6a44c7556 100644 --- a/admin/vue2/element-admin-v3/node_modules/babylon/package.json +++ b/admin/vue2/element-admin-v3/node_modules/babylon/package.json @@ -1,22 +1,55 @@ { - "name": "babylon", - "version": "6.18.0", - "description": "A JavaScript parser", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "keywords": [ - "babel", - "javascript", - "parser", - "babylon" + "_args": [ + [ + "babylon@6.18.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "https://github.com/babel/babylon", - "main": "lib/index.js", - "files": [ - "bin", - "lib" + "_from": "babylon@6.18.0", + "_id": "babylon@6.18.0", + "_inBundle": false, + "_integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "_location": "/babylon", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "babylon@6.18.0", + "name": "babylon", + "escapedName": "babylon", + "rawSpec": "6.18.0", + "saveSpec": null, + "fetchSpec": "6.18.0" + }, + "_requiredBy": [ + "/babel-core", + "/babel-template", + "/babel-traverse", + "/pug-html-loader/constantinople" ], + "_resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", + "_spec": "6.18.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "ava": { + "files": [ + "test/*.js" + ], + "source": [ + "src/**/*.js", + "bin/**/*.js" + ] + }, + "bin": { + "babylon": "bin/babylon.js" + }, + "bugs": { + "url": "https://github.com/babel/babylon/issues" + }, + "description": "A JavaScript parser", "devDependencies": { "ava": "^0.17.0", "babel-cli": "^6.14.0", @@ -42,43 +75,50 @@ "rollup-watch": "^3.2.2", "unicode-9.0.0": "~0.7.0" }, - "bin": { - "babylon": "./bin/babylon.js" + "files": [ + "bin", + "lib" + ], + "greenkeeper": { + "ignore": [ + "cross-env" + ] + }, + "homepage": "https://babeljs.io/", + "keywords": [ + "babel", + "javascript", + "parser", + "babylon" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "babylon", + "nyc": { + "include": [ + "src/**/*.js", + "bin/**/*.js" + ], + "sourceMap": false, + "instrument": false + }, + "repository": { + "type": "git", + "url": "git+https://github.com/babel/babylon.git" }, "scripts": { "build": "npm run clean && rollup -c", - "coverage": "nyc report --reporter=json && codecov -f coverage/coverage-final.json", - "lint": "eslint src bin", + "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'", "clean": "rimraf lib", + "coverage": "nyc report --reporter=json && codecov -f coverage/coverage-final.json", "flow": "flow", + "lint": "eslint src bin", "prepublish": "cross-env BABEL_ENV=production npm run build", "preversion": "npm run test && npm run changelog", "test": "npm run lint && npm run flow && npm run build -- -m && npm run test-only", - "test-only": "ava", "test-ci": "nyc npm run test-only", - "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'", + "test-only": "ava", "watch": "npm run clean && rollup -c --watch" }, - "nyc": { - "include": [ - "src/**/*.js", - "bin/**/*.js" - ], - "sourceMap": false, - "instrument": false - }, - "ava": { - "files": [ - "test/*.js" - ], - "source": [ - "src/**/*.js", - "bin/**/*.js" - ] - }, - "greenkeeper": { - "ignore": [ - "cross-env" - ] - } + "version": "6.18.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/balanced-match/package.json b/admin/vue2/element-admin-v3/node_modules/balanced-match/package.json index ce6073e04..726304608 100644 --- a/admin/vue2/element-admin-v3/node_modules/balanced-match/package.json +++ b/admin/vue2/element-admin-v3/node_modules/balanced-match/package.json @@ -1,21 +1,46 @@ { - "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" + "_args": [ + [ + "balanced-match@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "balanced-match@1.0.2", + "_id": "balanced-match@1.0.2", + "_inBundle": false, + "_integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "_location": "/balanced-match", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "balanced-match@1.0.2", + "name": "balanced-match", + "escapedName": "balanced-match", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "tape test/test.js", - "bench": "matcha test/bench.js" + "_requiredBy": [ + "/brace-expansion" + ], + "_resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&sync_timestamp=1617714233441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/balanced-match/issues" }, + "description": "Match balanced character pairs, like \"{\" and \"}\"", "devDependencies": { "matcha": "^0.7.0", "tape": "^4.6.0" }, + "homepage": "https://github.com/juliangruber/balanced-match", "keywords": [ "match", "regexp", @@ -23,12 +48,17 @@ "balanced", "parse" ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, "license": "MIT", + "main": "index.js", + "name": "balanced-match", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "scripts": { + "bench": "matcha test/bench.js", + "test": "tape test/test.js" + }, "testling": { "files": "test/*.js", "browsers": [ @@ -44,5 +74,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/base/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/base/node_modules/define-property/package.json index e0ab1ca00..4e2bed79b 100644 --- a/admin/vue2/element-admin-v3/node_modules/base/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/base/node_modules/define-property/package.json @@ -1,31 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@1.0.0", + "_id": "define-property@1.0.0", + "_inBundle": false, + "_integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "_location": "/base/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@1.0.0", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" }, "dependencies": { "is-descriptor": "^1.0.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -38,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -58,5 +91,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-accessor-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-accessor-descriptor/package.json index 47b97ac3c..0bb19c2bf 100644 --- a/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-accessor-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-accessor-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-accessor-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-accessor-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-accessor-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" + "_from": "is-accessor-descriptor@1.0.0", + "_id": "is-accessor-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "_location": "/base/is-accessor-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-accessor-descriptor@1.0.0", + "name": "is-accessor-descriptor", + "escapedName": "is-accessor-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-accessor-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-accessor-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -69,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-data-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-data-descriptor/package.json index 0b0938384..21fcf2922 100644 --- a/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-data-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-data-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-data-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-data-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-data-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-data-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" + "_from": "is-data-descriptor@1.0.0", + "_id": "is-data-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "_location": "/base/is-data-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-data-descriptor@1.0.0", + "name": "is-data-descriptor", + "escapedName": "is-data-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-data-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-data-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-data-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -68,5 +107,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-descriptor/package.json index 87b2975b0..4ece18d2a 100644 --- a/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/base/node_modules/is-descriptor/package.json @@ -1,38 +1,69 @@ { - "name": "is-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-descriptor@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-descriptor/issues" + "_from": "is-descriptor@1.0.2", + "_id": "is-descriptor@1.0.2", + "_inBundle": false, + "_integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "_location": "/base/is-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-descriptor@1.0.2", + "name": "is-descriptor", + "escapedName": "is-descriptor", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base/define-property" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-descriptor/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-descriptor", "keywords": [ "accessor", "check", @@ -51,6 +82,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -71,5 +112,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/base/package.json b/admin/vue2/element-admin-v3/node_modules/base/package.json index d2cc57084..500c7a5be 100644 --- a/admin/vue2/element-admin-v3/node_modules/base/package.json +++ b/admin/vue2/element-admin-v3/node_modules/base/package.json @@ -1,35 +1,62 @@ { - "name": "base", - "description": "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.", - "version": "0.11.2", - "homepage": "https://github.com/node-base/base", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "maintainers": [ - "Brian Woodward (https://github.com/doowb)", - "Jon Schlinkert (https://github.com/jonschlinkert)" + "_args": [ + [ + "base@0.11.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "John O'Donnell (https://github.com/criticalmash)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "tunnckoCore (https://i.am.charlike.online)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_from": "base@0.11.2", + "_id": "base@0.11.2", + "_inBundle": false, + "_integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "_location": "/base", + "_phantomChildren": { + "kind-of": "6.0.3" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "base@0.11.2", + "name": "base", + "escapedName": "base", + "rawSpec": "0.11.2", + "saveSpec": null, + "fetchSpec": "0.11.2" + }, + "_requiredBy": [ + "/snapdragon" ], - "repository": "node-base/base", + "_resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "_spec": "0.11.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" + }, "bugs": { "url": "https://github.com/node-base/base/issues" }, - "license": "MIT", - "files": [ - "index.js" + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "John O'Donnell", + "url": "https://github.com/criticalmash" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -39,6 +66,7 @@ "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, + "description": "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.", "devDependencies": { "gulp": "^3.9.1", "gulp-eslint": "^4.0.0", @@ -51,6 +79,13 @@ "through2": "^2.0.3", "verb-generate-readme": "^0.6.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/node-base/base", "keywords": [ "base", "boilerplate", @@ -64,6 +99,26 @@ "unset", "visit" ], + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "Brian Woodward", + "url": "https://github.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" + } + ], + "name": "base", + "repository": { + "type": "git", + "url": "git+https://github.com/node-base/base.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -107,5 +162,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.11.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/base64-js/package.json b/admin/vue2/element-admin-v3/node_modules/base64-js/package.json index c3972e39f..f714643eb 100644 --- a/admin/vue2/element-admin-v3/node_modules/base64-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/base64-js/package.json @@ -1,12 +1,40 @@ { - "name": "base64-js", - "description": "Base64 encoding/decoding in pure JS", - "version": "1.5.1", - "author": "T. Jameson Little ", - "typings": "index.d.ts", + "_args": [ + [ + "base64-js@1.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "base64-js@1.5.1", + "_id": "base64-js@1.5.1", + "_inBundle": false, + "_integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", + "_location": "/base64-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "base64-js@1.5.1", + "name": "base64-js", + "escapedName": "base64-js", + "rawSpec": "1.5.1", + "saveSpec": null, + "fetchSpec": "1.5.1" + }, + "_requiredBy": [ + "/buffer" + ], + "_resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&sync_timestamp=1605123700994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz", + "_spec": "1.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "T. Jameson Little", + "email": "t.jameson.little@gmail.com" + }, "bugs": { "url": "https://github.com/beatgammit/base64-js/issues" }, + "description": "Base64 encoding/decoding in pure JS", "devDependencies": { "babel-minify": "^0.5.1", "benchmark": "^2.1.4", @@ -14,12 +42,27 @@ "standard": "*", "tape": "4.x" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "homepage": "https://github.com/beatgammit/base64-js", "keywords": [ "base64" ], "license": "MIT", "main": "index.js", + "name": "base64-js", "repository": { "type": "git", "url": "git://github.com/beatgammit/base64-js.git" @@ -30,18 +73,6 @@ "test": "npm run lint && npm run unit", "unit": "tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "typings": "index.d.ts", + "version": "1.5.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/batch-processor/package.json b/admin/vue2/element-admin-v3/node_modules/batch-processor/package.json index ca3e80065..f855f439b 100644 --- a/admin/vue2/element-admin-v3/node_modules/batch-processor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/batch-processor/package.json @@ -1,22 +1,52 @@ { - "name": "batch-processor", - "version": "1.0.0", - "description": "Batch processing in JS", - "main": "src/batch-processor.js", - "scripts": { - "test": "mocha" + "_args": [ + [ + "batch-processor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "batch-processor@1.0.0", + "_id": "batch-processor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "_location": "/batch-processor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "batch-processor@1.0.0", + "name": "batch-processor", + "escapedName": "batch-processor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/wnr/batch-processor.git" + "_requiredBy": [ + "/element-resize-detector" + ], + "_resolved": "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Lucas Wiener" }, - "author": "Lucas Wiener", - "license": "MIT", "bugs": { "url": "https://github.com/wnr/batch-processor/issues" }, - "homepage": "https://github.com/wnr/batch-processor", + "description": "Batch processing in JS", "devDependencies": { "mocha": "^2.4.5" - } + }, + "homepage": "https://github.com/wnr/batch-processor", + "license": "MIT", + "main": "src/batch-processor.js", + "name": "batch-processor", + "repository": { + "type": "git", + "url": "git+https://github.com/wnr/batch-processor.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/batch/package.json b/admin/vue2/element-admin-v3/node_modules/batch/package.json index 26a7eb4a3..773905977 100644 --- a/admin/vue2/element-admin-v3/node_modules/batch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/batch/package.json @@ -1,19 +1,54 @@ { + "_args": [ + [ + "batch@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "batch@0.6.1", + "_id": "batch@0.6.1", + "_inBundle": false, + "_integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "_location": "/batch", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "batch@0.6.1", "name": "batch", - "description": "Simple async batch with concurrency control and progress reporting.", - "version": "0.6.1", - "author": "TJ Holowaychuk ", - "license": "MIT", - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "main": "index", - "browser": { - "emitter": "events" - }, - "repository": { - "type": "git", - "url": "https://github.com/visionmedia/batch.git" - } + "escapedName": "batch", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/serve-index" + ], + "_resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": { + "emitter": "events" + }, + "bugs": { + "url": "https://github.com/visionmedia/batch/issues" + }, + "description": "Simple async batch with concurrency control and progress reporting.", + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "homepage": "https://github.com/visionmedia/batch#readme", + "license": "MIT", + "main": "index", + "name": "batch", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/batch.git" + }, + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/bcrypt-pbkdf/package.json b/admin/vue2/element-admin-v3/node_modules/bcrypt-pbkdf/package.json index e93a969b0..672729fdb 100644 --- a/admin/vue2/element-admin-v3/node_modules/bcrypt-pbkdf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bcrypt-pbkdf/package.json @@ -1,15 +1,48 @@ { - "name": "bcrypt-pbkdf", - "version": "1.0.2", - "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS", - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-bcrypt-pbkdf.git" + "_args": [ + [ + "bcrypt-pbkdf@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "bcrypt-pbkdf@1.0.2", + "_id": "bcrypt-pbkdf@1.0.2", + "_inBundle": false, + "_integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "_location": "/bcrypt-pbkdf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bcrypt-pbkdf@1.0.2", + "name": "bcrypt-pbkdf", + "escapedName": "bcrypt-pbkdf", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/joyent/node-bcrypt-pbkdf/issues" }, - "main": "index.js", "dependencies": { "tweetnacl": "^0.14.3" }, + "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS", "devDependencies": {}, - "license": "BSD-3-Clause" + "homepage": "https://github.com/joyent/node-bcrypt-pbkdf#readme", + "license": "BSD-3-Clause", + "main": "index.js", + "name": "bcrypt-pbkdf", + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-bcrypt-pbkdf.git" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/bfj/package.json b/admin/vue2/element-admin-v3/node_modules/bfj/package.json index 969c7a1cd..19783ec08 100644 --- a/admin/vue2/element-admin-v3/node_modules/bfj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bfj/package.json @@ -1,12 +1,74 @@ { - "name": "bfj", - "version": "6.1.2", + "_args": [ + [ + "bfj@6.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bfj@6.1.2", + "_id": "bfj@6.1.2", + "_inBundle": false, + "_integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", + "_location": "/bfj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bfj@6.1.2", + "name": "bfj", + "escapedName": "bfj", + "rawSpec": "6.1.2", + "saveSpec": null, + "fetchSpec": "6.1.2" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "_spec": "6.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Phil Booth", + "url": "https://gitlab.com/philbooth" + }, + "bugs": { + "url": "https://gitlab.com/philbooth/bfj/issues" + }, + "contributors": [ + { + "name": "Phil Booth", + "email": "pmbooth@gmail.com", + "url": "https://philbooth.me/" + }, + { + "name": "Rowan Manning", + "url": "https://github.com/rowanmanning" + }, + { + "name": "Benedikt Rötsch", + "url": "https://github.com/axe312ger" + } + ], + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, "description": "Big-friendly JSON. Asynchronous streaming functions for large JSON data sets.", + "devDependencies": { + "chai": "^4.2.0", + "eslint": "^6.0.1", + "mocha": "^6.1.4", + "please-release-me": "^2.1.2", + "proxyquire": "^2.1.0", + "request": "^2.88.0", + "spooks": "^2.0.0" + }, + "engines": { + "node": ">= 6.0.0" + }, "homepage": "https://gitlab.com/philbooth/bfj", - "bugs": "https://gitlab.com/philbooth/bfj/issues", - "license": "MIT", - "author": "Phil Booth (https://gitlab.com/philbooth)", - "main": "./src", "keywords": [ "json", "streamify", @@ -21,33 +83,19 @@ "async", "asynchronous" ], + "license": "MIT", + "main": "./src", + "name": "bfj", "repository": { "type": "git", - "url": "https://gitlab.com/philbooth/bfj.git" - }, - "engines": { - "node": ">= 6.0.0" - }, - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "devDependencies": { - "chai": "^4.2.0", - "eslint": "^6.0.1", - "mocha": "^6.1.4", - "please-release-me": "^2.1.2", - "proxyquire": "^2.1.0", - "request": "^2.88.0", - "spooks": "^2.0.0" + "url": "git+https://gitlab.com/philbooth/bfj.git" }, "scripts": { + "integration": "mocha --ui tdd --reporter spec --colors test/integration", "lint": "eslint src", + "perf": "wget -O test/mtg.json http://mtgjson.com/json/AllSets-x.json && node test/performance mtg", "test": "npm run unit && npm run integration", - "unit": "mocha --ui tdd --reporter spec --recursive --colors --slow 120 test/unit", - "integration": "mocha --ui tdd --reporter spec --colors test/integration", - "perf": "wget -O test/mtg.json http://mtgjson.com/json/AllSets-x.json && node test/performance mtg" - } + "unit": "mocha --ui tdd --reporter spec --recursive --colors --slow 120 test/unit" + }, + "version": "6.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/big.js/package.json b/admin/vue2/element-admin-v3/node_modules/big.js/package.json index 92eafe49d..d5538c476 100644 --- a/admin/vue2/element-admin-v3/node_modules/big.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/big.js/package.json @@ -1,50 +1,79 @@ -{ - "name": "big.js", - "description": "A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic", - "version": "5.2.2", - "keywords": [ - "arbitrary", - "precision", - "arithmetic", - "big", - "number", - "decimal", - "float", - "biginteger", - "bigdecimal", - "bignumber", - "bigint", - "bignum" - ], - "repository": { - "type": "git", - "url": "https://github.com/MikeMcl/big.js.git" - }, - "main": "big", - "browser": "big.js", - "module": "big.mjs", - "author": { - "name": "Michael Mclaughlin", - "email": "M8ch88l@gmail.com" - }, - "bugs": { - "url": "https://github.com/MikeMcl/big.js/issues" - }, - "engines": { - "node": "*" - }, - "license": "MIT", - "scripts": { - "test": "node ./test/every-test.js", - "build": "uglifyjs big.js --source-map -c -m -o big.min.js" - }, - "files": [ - "big.js", - "big.mjs", - "big.min.js" - ], - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } -} \ No newline at end of file +{ + "_args": [ + [ + "big.js@5.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "big.js@5.2.2", + "_id": "big.js@5.2.2", + "_inBundle": false, + "_integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "_location": "/big.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "big.js@5.2.2", + "name": "big.js", + "escapedName": "big.js", + "rawSpec": "5.2.2", + "saveSpec": null, + "fetchSpec": "5.2.2" + }, + "_requiredBy": [ + "/loader-utils" + ], + "_resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", + "_spec": "5.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Michael Mclaughlin", + "email": "M8ch88l@gmail.com" + }, + "browser": "big.js", + "bugs": { + "url": "https://github.com/MikeMcl/big.js/issues" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/bigjs" + }, + "description": "A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic", + "engines": { + "node": "*" + }, + "files": [ + "big.js", + "big.mjs", + "big.min.js" + ], + "homepage": "https://github.com/MikeMcl/big.js#readme", + "keywords": [ + "arbitrary", + "precision", + "arithmetic", + "big", + "number", + "decimal", + "float", + "biginteger", + "bigdecimal", + "bignumber", + "bigint", + "bignum" + ], + "license": "MIT", + "main": "big", + "module": "big.mjs", + "name": "big.js", + "repository": { + "type": "git", + "url": "git+https://github.com/MikeMcl/big.js.git" + }, + "scripts": { + "build": "uglifyjs big.js --source-map -c -m -o big.min.js", + "test": "node ./test/every-test.js" + }, + "version": "5.2.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/binary-extensions/package.json b/admin/vue2/element-admin-v3/node_modules/binary-extensions/package.json index e5007c821..f38747453 100644 --- a/admin/vue2/element-admin-v3/node_modules/binary-extensions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/binary-extensions/package.json @@ -1,24 +1,51 @@ { - "name": "binary-extensions", - "version": "1.13.1", - "description": "List of binary file extensions", - "license": "MIT", - "repository": "sindresorhus/binary-extensions", + "_args": [ + [ + "binary-extensions@1.13.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "binary-extensions@1.13.1", + "_id": "binary-extensions@1.13.1", + "_inBundle": false, + "_integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "_location": "/binary-extensions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "binary-extensions@1.13.1", + "name": "binary-extensions", + "escapedName": "binary-extensions", + "rawSpec": "1.13.1", + "saveSpec": null, + "fetchSpec": "1.13.1" + }, + "_requiredBy": [ + "/is-binary-path" + ], + "_resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "_spec": "1.13.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/binary-extensions/issues" + }, + "description": "List of binary file extensions", + "devDependencies": { + "ava": "0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "ava" - }, - "main": "binary-extensions.json", "files": [ "binary-extensions.json" ], + "homepage": "https://github.com/sindresorhus/binary-extensions#readme", "keywords": [ "bin", "binary", @@ -30,7 +57,15 @@ "list", "array" ], - "devDependencies": { - "ava": "0.16.0" - } + "license": "MIT", + "main": "binary-extensions.json", + "name": "binary-extensions", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/binary-extensions.git" + }, + "scripts": { + "test": "ava" + }, + "version": "1.13.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/bluebird/package.json b/admin/vue2/element-admin-v3/node_modules/bluebird/package.json index 33f696cb2..ffcb7bd99 100644 --- a/admin/vue2/element-admin-v3/node_modules/bluebird/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bluebird/package.json @@ -1,44 +1,46 @@ { - "name": "bluebird", - "description": "Full featured Promises/A+ implementation with exceptionally good performance", - "version": "3.7.2", - "keywords": [ - "promise", - "performance", - "promises", - "promises-a", - "promises-aplus", - "async", - "await", - "deferred", - "deferreds", - "future", - "flow control", - "dsl", - "fluent interface" + "_args": [ + [ + "bluebird@3.7.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "node scripts/jshint.js", - "test": "node --expose-gc tools/test.js", - "istanbul": "istanbul", - "prepublish": "npm run generate-browser-core && npm run generate-browser-full", - "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", - "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js" - }, - "homepage": "https://github.com/petkaantonov/bluebird", - "repository": { - "type": "git", - "url": "git://github.com/petkaantonov/bluebird.git" + "_from": "bluebird@3.7.2", + "_id": "bluebird@3.7.2", + "_inBundle": false, + "_integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "_location": "/bluebird", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bluebird@3.7.2", + "name": "bluebird", + "escapedName": "bluebird", + "rawSpec": "3.7.2", + "saveSpec": null, + "fetchSpec": "3.7.2" }, - "bugs": { - "url": "http://github.com/petkaantonov/bluebird/issues" - }, - "license": "MIT", + "_requiredBy": [ + "/bfj", + "/cacache", + "/consolidate", + "/svg-baker", + "/svg-sprite-loader" + ], + "_resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "_spec": "3.7.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Petka Antonov", "email": "petka_antonov@hotmail.com", "url": "http://github.com/petkaantonov/" }, + "browser": "./js/browser/bluebird.js", + "bugs": { + "url": "http://github.com/petkaantonov/bluebird/issues" + }, + "description": "Full featured Promises/A+ implementation with exceptionally good performance", "devDependencies": { "acorn": "^6.0.2", "acorn-walk": "^6.1.0", @@ -66,13 +68,42 @@ "sinon": "~1.7.3", "uglify-js": "~2.4.16" }, - "readmeFilename": "README.md", - "main": "./js/release/bluebird.js", - "webpack": "./js/release/bluebird.js", - "browser": "./js/browser/bluebird.js", "files": [ "js/browser", "js/release", "LICENSE" - ] + ], + "homepage": "https://github.com/petkaantonov/bluebird", + "keywords": [ + "promise", + "performance", + "promises", + "promises-a", + "promises-aplus", + "async", + "await", + "deferred", + "deferreds", + "future", + "flow control", + "dsl", + "fluent interface" + ], + "license": "MIT", + "main": "./js/release/bluebird.js", + "name": "bluebird", + "repository": { + "type": "git", + "url": "git://github.com/petkaantonov/bluebird.git" + }, + "scripts": { + "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js", + "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", + "istanbul": "istanbul", + "lint": "node scripts/jshint.js", + "prepublish": "npm run generate-browser-core && npm run generate-browser-full", + "test": "node --expose-gc tools/test.js" + }, + "version": "3.7.2", + "webpack": "./js/release/bluebird.js" } diff --git a/admin/vue2/element-admin-v3/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/bn.js/package.json index 499443567..85399616c 100644 --- a/admin/vue2/element-admin-v3/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bn.js/package.json @@ -1,7 +1,53 @@ { - "name": "bn.js", - "version": "5.2.0", + "_args": [ + [ + "bn.js@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@5.2.0", + "_id": "bn.js@5.2.0", + "_inBundle": false, + "_integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=", + "_location": "/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@5.2.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/browserify-rsa", + "/browserify-sign" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, "description": "Big number implementation in pure javascript", + "devDependencies": { + "eslint-plugin-es5": "^1.5.0", + "mocha": "^8.3.0", + "standardx": "^7.0.0" + }, + "files": [ + "lib/bn.js" + ], + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "Big number", @@ -9,31 +55,17 @@ "Modulo", "Montgomery" ], - "homepage": "https://github.com/indutny/bn.js", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" - }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" - }, "license": "MIT", - "author": "Fedor Indutny ", - "files": [ - "lib/bn.js" - ], "main": "lib/bn.js", - "browser": { - "buffer": false + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, "scripts": { "lint": "standardx", "test": "npm run lint && npm run unit", "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "eslint-plugin-es5": "^1.5.0", - "mocha": "^8.3.0", - "standardx": "^7.0.0" - } + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/body-parser/package.json b/admin/vue2/element-admin-v3/node_modules/body-parser/package.json index 269ebf285..423df63fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/body-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/body-parser/package.json @@ -1,13 +1,46 @@ { - "name": "body-parser", - "description": "Node.js body parsing middleware", - "version": "1.19.0", + "_args": [ + [ + "body-parser@1.19.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "body-parser@1.19.0", + "_id": "body-parser@1.19.0", + "_inBundle": false, + "_integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "_location": "/body-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "body-parser@1.19.0", + "name": "body-parser", + "escapedName": "body-parser", + "rawSpec": "1.19.0", + "saveSpec": null, + "fetchSpec": "1.19.0" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "_spec": "1.19.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/expressjs/body-parser/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "license": "MIT", - "repository": "expressjs/body-parser", "dependencies": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -20,6 +53,7 @@ "raw-body": "2.4.0", "type-is": "~1.6.17" }, + "description": "Node.js body parsing middleware", "devDependencies": { "eslint": "5.16.0", "eslint-config-standard": "12.0.0", @@ -34,19 +68,27 @@ "safe-buffer": "5.1.2", "supertest": "4.0.2" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "lib/", "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/expressjs/body-parser#readme", + "license": "MIT", + "name": "body-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/body-parser.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/" - } + }, + "version": "1.19.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/bonjour/node_modules/array-flatten/package.json b/admin/vue2/element-admin-v3/node_modules/bonjour/node_modules/array-flatten/package.json index 985b24d82..5aee23284 100644 --- a/admin/vue2/element-admin-v3/node_modules/bonjour/node_modules/array-flatten/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bonjour/node_modules/array-flatten/package.json @@ -1,47 +1,75 @@ { - "name": "array-flatten", - "version": "2.1.2", - "description": "Flatten nested arrays", - "main": "array-flatten.js", - "typings": "array-flatten.d.ts", - "files": [ - "array-flatten.js", - "array-flatten.d.ts", - "LICENSE" + "_args": [ + [ + "array-flatten@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "standard", - "test-spec": "mocha -R spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov", - "benchmark": "node benchmark" + "_from": "array-flatten@2.1.2", + "_id": "array-flatten@2.1.2", + "_inBundle": false, + "_integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "_location": "/bonjour/array-flatten", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-flatten@2.1.2", + "name": "array-flatten", + "escapedName": "array-flatten", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/array-flatten.git" - }, - "keywords": [ - "array", - "flatten", - "arguments", - "depth", - "fast", - "for" + "_requiredBy": [ + "/bonjour" ], + "_resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me" }, - "license": "MIT", "bugs": { "url": "https://github.com/blakeembrey/array-flatten/issues" }, - "homepage": "https://github.com/blakeembrey/array-flatten", + "description": "Flatten nested arrays", "devDependencies": { "benchmarked": "^2.0.0", "istanbul": "^0.4.0", "mocha": "^3.1.2", "standard": "^10.0.0" - } + }, + "files": [ + "array-flatten.js", + "array-flatten.d.ts", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/array-flatten", + "keywords": [ + "array", + "flatten", + "arguments", + "depth", + "fast", + "for" + ], + "license": "MIT", + "main": "array-flatten.js", + "name": "array-flatten", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "scripts": { + "benchmark": "node benchmark", + "lint": "standard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", + "test-spec": "mocha -R spec --bail" + }, + "typings": "array-flatten.d.ts", + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/bonjour/package.json b/admin/vue2/element-admin-v3/node_modules/bonjour/package.json index 0b0ba236f..1b4773180 100644 --- a/admin/vue2/element-admin-v3/node_modules/bonjour/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bonjour/package.json @@ -1,8 +1,44 @@ { - "name": "bonjour", - "version": "3.5.0", - "description": "A Bonjour/Zeroconf implementation in pure JavaScript", - "main": "index.js", + "_args": [ + [ + "bonjour@3.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bonjour@3.5.0", + "_id": "bonjour@3.5.0", + "_inBundle": false, + "_integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "_location": "/bonjour", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bonjour@3.5.0", + "name": "bonjour", + "escapedName": "bonjour", + "rawSpec": "3.5.0", + "saveSpec": null, + "fetchSpec": "3.5.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "_spec": "3.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thomas Watson Steen", + "email": "w@tson.dk", + "url": "https://twitter.com/wa7son" + }, + "bugs": { + "url": "https://github.com/watson/bonjour/issues" + }, + "coordinates": [ + 55.68250900965318, + 12.586377442991648 + ], "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", @@ -11,18 +47,13 @@ "multicast-dns": "^6.0.1", "multicast-dns-service-types": "^1.1.0" }, + "description": "A Bonjour/Zeroconf implementation in pure JavaScript", "devDependencies": { "after-all": "^2.0.2", "standard": "^6.0.8", "tape": "^4.5.1" }, - "scripts": { - "test": "standard && tape test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/watson/bonjour.git" - }, + "homepage": "https://github.com/watson/bonjour", "keywords": [ "bonjour", "zeroconf", @@ -36,14 +67,15 @@ "broadcast", "dns-sd" ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", "license": "MIT", - "bugs": { - "url": "https://github.com/watson/bonjour/issues" + "main": "index.js", + "name": "bonjour", + "repository": { + "type": "git", + "url": "git+https://github.com/watson/bonjour.git" }, - "homepage": "https://github.com/watson/bonjour", - "coordinates": [ - 55.68250900965318, - 12.586377442991648 - ] + "scripts": { + "test": "standard && tape test/*.js" + }, + "version": "3.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/boolbase/package.json b/admin/vue2/element-admin-v3/node_modules/boolbase/package.json index 78330a8f7..e8391dff4 100644 --- a/admin/vue2/element-admin-v3/node_modules/boolbase/package.json +++ b/admin/vue2/element-admin-v3/node_modules/boolbase/package.json @@ -1,23 +1,58 @@ { - "name": "boolbase", - "version": "1.0.0", - "description": "two functions: One that returns true, one that returns false", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "boolbase@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "boolbase@1.0.0", + "_id": "boolbase@1.0.0", + "_inBundle": false, + "_integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "_location": "/boolbase", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "boolbase@1.0.0", + "name": "boolbase", + "escapedName": "boolbase", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/fb55/boolbase" + "_requiredBy": [ + "/css-select", + "/nth-check", + "/svgo/css-select", + "/svgo/nth-check" + ], + "_resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/boolbase/issues" }, + "description": "two functions: One that returns true, one that returns false", + "homepage": "https://github.com/fb55/boolbase", "keywords": [ "boolean", "function" ], - "author": "Felix Boehm ", "license": "ISC", - "bugs": { - "url": "https://github.com/fb55/boolbase/issues" + "main": "index.js", + "name": "boolbase", + "repository": { + "type": "git", + "url": "git+https://github.com/fb55/boolbase.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/fb55/boolbase" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/brace-expansion/package.json b/admin/vue2/element-admin-v3/node_modules/brace-expansion/package.json index a18faa8fd..71003ad0e 100644 --- a/admin/vue2/element-admin-v3/node_modules/brace-expansion/package.json +++ b/admin/vue2/element-admin-v3/node_modules/brace-expansion/package.json @@ -1,33 +1,63 @@ { - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.11", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" + "_args": [ + [ + "brace-expansion@1.1.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "brace-expansion@1.1.11", + "_id": "brace-expansion@1.1.11", + "_inBundle": false, + "_integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "_location": "/brace-expansion", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "brace-expansion@1.1.11", + "name": "brace-expansion", + "escapedName": "brace-expansion", + "rawSpec": "1.1.11", + "saveSpec": null, + "fetchSpec": "1.1.11" }, - "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" + "_requiredBy": [ + "/minimatch" + ], + "_resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "_spec": "1.1.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/brace-expansion/issues" }, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" }, + "description": "Brace expansion as known from sh/bash", "devDependencies": { "matcha": "^0.7.0", "tape": "^4.6.0" }, + "homepage": "https://github.com/juliangruber/brace-expansion", "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, "license": "MIT", + "main": "index.js", + "name": "brace-expansion", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "scripts": { + "bench": "matcha test/perf/bench.js", + "gentest": "bash test/generate.sh", + "test": "tape test/*.js" + }, "testling": { "files": "test/*.js", "browsers": [ @@ -43,5 +73,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "1.1.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/braces/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/braces/node_modules/extend-shallow/package.json index b42e01c7a..121f69634 100644 --- a/admin/vue2/element-admin-v3/node_modules/braces/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/braces/node_modules/extend-shallow/package.json @@ -1,27 +1,43 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/braces/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/braces" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +50,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +75,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/braces/package.json b/admin/vue2/element-admin-v3/node_modules/braces/package.json index 96cbb2b75..74e4ff660 100644 --- a/admin/vue2/element-admin-v3/node_modules/braces/package.json +++ b/admin/vue2/element-admin-v3/node_modules/braces/package.json @@ -1,33 +1,65 @@ { - "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": "2.3.2", - "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)" + "_args": [ + [ + "braces@2.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/braces", - "bugs": { - "url": "https://github.com/micromatch/braces/issues" + "_from": "braces@2.3.2", + "_id": "braces@2.3.2", + "_inBundle": false, + "_integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "_location": "/braces", + "_phantomChildren": { + "is-extendable": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requested": { + "type": "version", + "registry": true, + "raw": "braces@2.3.2", + "name": "braces", + "escapedName": "braces", + "rawSpec": "2.3.2", + "saveSpec": null, + "fetchSpec": "2.3.2" + }, + "_requiredBy": [ + "/chokidar", + "/micromatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "_spec": "2.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "benchmark": "node benchmark" + "bugs": { + "url": "https://github.com/micromatch/braces/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + { + "name": "Eugene Sharygin", + "url": "https://github.com/eush77" + }, + { + "name": "hemanth.hm", + "url": "http://h3manth.com" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -40,6 +72,7 @@ "split-string": "^3.0.2", "to-regex": "^3.0.1" }, + "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.", "devDependencies": { "ansi-cyan": "^0.1.1", "benchmarked": "^2.0.0", @@ -59,6 +92,14 @@ "time-diff": "^0.3.1", "yargs-parser": "^8.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/micromatch/braces", "keywords": [ "alpha", "alphabetical", @@ -83,6 +124,17 @@ "ranges", "sh" ], + "license": "MIT", + "main": "index.js", + "name": "braces", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/braces.git" + }, + "scripts": { + "benchmark": "node benchmark", + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -104,5 +156,6 @@ "nanomatch" ] } - } + }, + "version": "2.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/brorand/package.json b/admin/vue2/element-admin-v3/node_modules/brorand/package.json index f213c9d8f..178865034 100644 --- a/admin/vue2/element-admin-v3/node_modules/brorand/package.json +++ b/admin/vue2/element-admin-v3/node_modules/brorand/package.json @@ -1,31 +1,63 @@ { - "name": "brorand", - "version": "1.1.0", - "description": "Random number generator for browsers and node.js", - "main": "index.js", - "scripts": { - "test": "mocha --reporter=spec test/**/*-test.js" + "_args": [ + [ + "brorand@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "brorand@1.1.0", + "_id": "brorand@1.1.0", + "_inBundle": false, + "_integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "_location": "/brorand", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "brorand@1.1.0", + "name": "brorand", + "escapedName": "brorand", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/brorand" + "_requiredBy": [ + "/elliptic", + "/miller-rabin" + ], + "_resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "crypto": false + }, + "bugs": { + "url": "https://github.com/indutny/brorand/issues" + }, + "description": "Random number generator for browsers and node.js", + "devDependencies": { + "mocha": "^2.0.1" + }, + "homepage": "https://github.com/indutny/brorand", "keywords": [ "Random", "RNG", "browser", "crypto" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/brorand/issues" + "main": "index.js", + "name": "brorand", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/brorand.git" }, - "homepage": "https://github.com/indutny/brorand", - "devDependencies": { - "mocha": "^2.0.1" + "scripts": { + "test": "mocha --reporter=spec test/**/*-test.js" }, - "browser": { - "crypto": false - } + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-aes/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-aes/package.json index ff26b8728..776561ac2 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-aes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-aes/package.json @@ -1,32 +1,38 @@ { - "name": "browserify-aes", - "version": "1.2.0", - "description": "aes, for browserify", - "browser": "browser.js", - "main": "index.js", - "directories": { - "test": "test" - }, - "scripts": { - "standard": "standard", - "unit": "node test/index.js | tspec", - "test": "npm run standard && npm run unit" - }, - "repository": { - "type": "git", - "url": "git://github.com/crypto-browserify/browserify-aes.git" + "_args": [ + [ + "browserify-aes@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "browserify-aes@1.2.0", + "_id": "browserify-aes@1.2.0", + "_inBundle": false, + "_integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "_location": "/browserify-aes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserify-aes@1.2.0", + "name": "browserify-aes", + "escapedName": "browserify-aes", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" }, - "keywords": [ - "aes", - "crypto", - "browserify" + "_requiredBy": [ + "/browserify-cipher", + "/parse-asn1" ], + "_resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", + "browser": "browser.js", "bugs": { "url": "https://github.com/crypto-browserify/browserify-aes/issues" }, - "homepage": "https://github.com/crypto-browserify/browserify-aes", "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -35,9 +41,32 @@ "inherits": "^2.0.1", "safe-buffer": "^5.0.1" }, + "description": "aes, for browserify", "devDependencies": { "standard": "^9.0.0", "tap-spec": "^4.1.1", "tape": "^4.6.3" - } + }, + "directories": { + "test": "test" + }, + "homepage": "https://github.com/crypto-browserify/browserify-aes", + "keywords": [ + "aes", + "crypto", + "browserify" + ], + "license": "MIT", + "main": "index.js", + "name": "browserify-aes", + "repository": { + "type": "git", + "url": "git://github.com/crypto-browserify/browserify-aes.git" + }, + "scripts": { + "standard": "standard", + "test": "npm run standard && npm run unit", + "unit": "node test/index.js | tspec" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-cipher/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-cipher/package.json index 7bdf2a6a0..717dac3a5 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-cipher/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-cipher/package.json @@ -1,26 +1,61 @@ { - "name": "browserify-cipher", - "version": "1.0.1", - "description": "ciphers for the browser", - "main": "index.js", + "_args": [ + [ + "browserify-cipher@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "browserify-cipher@1.0.1", + "_id": "browserify-cipher@1.0.1", + "_inBundle": false, + "_integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "_location": "/browserify-cipher", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserify-cipher@1.0.1", + "name": "browserify-cipher", + "escapedName": "browserify-cipher", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/crypto-browserify" + ], + "_resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf", + "email": "calvin.metcalf@gmail.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/crypto-browserify/browserify-cipher/issues" + }, "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" }, - "browser": "browser.js", + "description": "ciphers for the browser", "devDependencies": { "standard": "^10.0.2", "tap-spec": "^4.1.0", "tape": "^4.2.0" }, - "scripts": { - "test": "standard && node test.js | tspec" - }, - "author": "Calvin Metcalf ", + "homepage": "https://github.com/crypto-browserify/browserify-cipher#readme", "license": "MIT", + "main": "index.js", + "name": "browserify-cipher", "repository": { "type": "git", - "url": "git@github.com:crypto-browserify/browserify-cipher.git" - } + "url": "git+ssh://git@github.com/crypto-browserify/browserify-cipher.git" + }, + "scripts": { + "test": "standard && node test.js | tspec" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-des/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-des/package.json index fa46daa58..c18b168fa 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-des/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-des/package.json @@ -1,30 +1,61 @@ { - "name": "browserify-des", - "version": "1.0.2", - "description": "", - "main": "index.js", - "scripts": { - "test": "standard && node test.js | tspec" + "_args": [ + [ + "browserify-des@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "browserify-des@1.0.2", + "_id": "browserify-des@1.0.2", + "_inBundle": false, + "_integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "_location": "/browserify-des", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserify-des@1.0.2", + "name": "browserify-des", + "escapedName": "browserify-des", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "repository": { - "type": "git", - "url": "git+https://github.com/crypto-browserify/browserify-des.git" + "_requiredBy": [ + "/browserify-cipher" + ], + "_resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf", + "email": "calvin.metcalf@gmail.com" }, - "author": "Calvin Metcalf ", - "license": "MIT", "bugs": { "url": "https://github.com/crypto-browserify/browserify-des/issues" }, - "homepage": "https://github.com/crypto-browserify/browserify-des#readme", "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" }, + "description": "browserify-des ===", "devDependencies": { "standard": "^5.3.1", "tap-spec": "^4.1.0", "tape": "^4.2.0" - } + }, + "homepage": "https://github.com/crypto-browserify/browserify-des#readme", + "license": "MIT", + "main": "index.js", + "name": "browserify-des", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/browserify-des.git" + }, + "scripts": { + "test": "standard && node test.js | tspec" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-rsa/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-rsa/package.json index da4140232..ea037dfb9 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-rsa/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-rsa/package.json @@ -1,31 +1,61 @@ { - "name": "browserify-rsa", - "version": "4.1.0", - "description": "RSA for browserify", + "_args": [ + [ + "browserify-rsa@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "browserify-rsa@4.1.0", + "_id": "browserify-rsa@4.1.0", + "_inBundle": false, + "_integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", + "_location": "/browserify-rsa", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserify-rsa@4.1.0", + "name": "browserify-rsa", + "escapedName": "browserify-rsa", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/browserify-sign", + "/public-encrypt" + ], + "_resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz?cache=0&sync_timestamp=1605194257215&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-rsa%2Fdownload%2Fbrowserify-rsa-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "bugs": { "url": "https://github.com/crypto-browserify/browserify-rsa/issues" }, - "license": "MIT", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "description": "RSA for browserify", + "devDependencies": { + "parse-asn1": "^5.0.0", + "standard": "^6.0.8", + "tape": "^4.5.1" + }, "files": [ "index.js" ], + "homepage": "https://github.com/crypto-browserify/browserify-rsa#readme", + "license": "MIT", "main": "index.js", + "name": "browserify-rsa", "repository": { "type": "git", - "url": "https://github.com:crypto-browserify/browserify-rsa.git" + "url": "git+https://github.com/crypto-browserify/browserify-rsa.git" }, "scripts": { "lint": "standard", "test": "npm run lint && npm run unit", "unit": "tape test/*.js" }, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "devDependencies": { - "parse-asn1": "^5.0.0", - "standard": "^6.0.8", - "tape": "^4.5.1" - } + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/readable-stream/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/readable-stream/package.json index 0b0c4bd20..3ba7fab31 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/readable-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/readable-stream/package.json @@ -1,16 +1,49 @@ { - "name": "readable-stream", - "version": "3.6.0", - "description": "Streams3, a user-land copy of the stream library from Node.js", - "main": "readable.js", - "engines": { - "node": ">= 6" + "_args": [ + [ + "readable-stream@3.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "readable-stream@3.6.0", + "_id": "readable-stream@3.6.0", + "_inBundle": false, + "_integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "_location": "/browserify-sign/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@3.6.0", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "3.6.0", + "saveSpec": null, + "fetchSpec": "3.6.0" + }, + "_requiredBy": [ + "/browserify-sign" + ], + "_resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "_spec": "3.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "util": false, + "worker_threads": false, + "./errors": "./errors-browser.js", + "./readable.js": "./readable-browser.js", + "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" }, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from Node.js", "devDependencies": { "@babel/cli": "^7.2.0", "@babel/core": "^7.2.0", @@ -33,36 +66,35 @@ "tar-fs": "^1.16.2", "util-promisify": "^2.1.0" }, - "scripts": { - "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", - "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", - "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", - "test-browser-local": "airtap --open --local -- test/browser.js", - "cover": "nyc npm test", - "report": "nyc report --reporter=lcov", - "update-browser-errors": "babel -o errors-browser.js errors.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream" + "engines": { + "node": ">= 6" }, + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ "readable", "stream", "pipe" ], - "browser": { - "util": false, - "worker_threads": false, - "./errors": "./errors-browser.js", - "./readable.js": "./readable-browser.js", - "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", - "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" - }, + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", "nyc": { "include": [ "lib/**.js" ] }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", + "test-browser-local": "airtap --open --local -- test/browser.js", + "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", + "update-browser-errors": "babel -o errors-browser.js errors.js" + }, + "version": "3.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/safe-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/safe-buffer/package.json index f2869e256..5a8b534dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/safe-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/safe-buffer/package.json @@ -1,7 +1,33 @@ { - "name": "safe-buffer", - "description": "Safer Node.js Buffer API", - "version": "5.2.1", + "_args": [ + [ + "safe-buffer@5.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safe-buffer@5.2.1", + "_id": "safe-buffer@5.2.1", + "_inBundle": false, + "_integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "_location": "/browserify-sign/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.2.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" + }, + "_requiredBy": [ + "/browserify-sign", + "/browserify-sign/string_decoder" + ], + "_resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "_spec": "5.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -10,10 +36,25 @@ "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, + "description": "Safer Node.js Buffer API", "devDependencies": { "standard": "*", "tape": "^5.0.0" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "homepage": "https://github.com/feross/safe-buffer", "keywords": [ "buffer", @@ -26,7 +67,7 @@ ], "license": "MIT", "main": "index.js", - "types": "index.d.ts", + "name": "safe-buffer", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" @@ -34,18 +75,6 @@ "scripts": { "test": "standard && tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "types": "index.d.ts", + "version": "5.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/string_decoder/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/string_decoder/package.json index b2bb14116..24c203c1f 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/string_decoder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-sign/node_modules/string_decoder/package.json @@ -1,28 +1,48 @@ { - "name": "string_decoder", - "version": "1.3.0", - "description": "The string_decoder module from Node core", - "main": "lib/string_decoder.js", - "files": [ - "lib" + "_args": [ + [ + "string_decoder@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "string_decoder@1.3.0", + "_id": "string_decoder@1.3.0", + "_inBundle": false, + "_integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "_location": "/browserify-sign/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string_decoder@1.3.0", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/browserify-sign/readable-stream" ], + "_resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, "dependencies": { "safe-buffer": "~5.2.0" }, + "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "core-util-is": "^1.0.2", "inherits": "^2.0.3", "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/parallel/*.js && node test/verify-dependencies", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/string_decoder.git" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/nodejs/string_decoder", "keywords": [ "string", @@ -30,5 +50,16 @@ "browser", "browserify" ], - "license": "MIT" + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-sign/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-sign/package.json index d9fbb5152..866f19717 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-sign/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-sign/package.json @@ -1,26 +1,38 @@ { - "name": "browserify-sign", - "version": "4.2.1", - "description": "adds node crypto signing for browsers", - "bugs": { - "url": "https://github.com/crypto-browserify/browserify-sign/issues" - }, - "license": "ISC", - "files": [ - "browser", - "index.js", - "algos.js" + "_args": [ + [ + "browserify-sign@4.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "index.js", - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/browserify-sign.git" + "_from": "browserify-sign@4.2.1", + "_id": "browserify-sign@4.2.1", + "_inBundle": false, + "_integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", + "_location": "/browserify-sign", + "_phantomChildren": { + "inherits": "2.0.4", + "util-deprecate": "1.0.2" }, - "scripts": { - "coverage": "nyc npm run unit", - "lint": "standard", - "test": "npm run lint && npm run unit", - "unit": "tape test/*.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "browserify-sign@4.2.1", + "name": "browserify-sign", + "escapedName": "browserify-sign", + "rawSpec": "4.2.1", + "saveSpec": null, + "fetchSpec": "4.2.1" + }, + "_requiredBy": [ + "/crypto-browserify" + ], + "_resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557838450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz", + "_spec": "4.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "browser/index.js", + "bugs": { + "url": "https://github.com/crypto-browserify/browserify-sign/issues" }, "dependencies": { "bn.js": "^5.1.1", @@ -33,10 +45,30 @@ "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, + "description": "adds node crypto signing for browsers", "devDependencies": { "nyc": "^15.0.1", "standard": "^14.3.3", "tape": "^5.0.0" }, - "browser": "browser/index.js" + "files": [ + "browser", + "index.js", + "algos.js" + ], + "homepage": "https://github.com/crypto-browserify/browserify-sign#readme", + "license": "ISC", + "main": "index.js", + "name": "browserify-sign", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/browserify-sign.git" + }, + "scripts": { + "coverage": "nyc npm run unit", + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "tape test/*.js" + }, + "version": "4.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserify-zlib/package.json b/admin/vue2/element-admin-v3/node_modules/browserify-zlib/package.json index d8bd834fc..9a31ae263 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserify-zlib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserify-zlib/package.json @@ -1,18 +1,50 @@ { - "name": "browserify-zlib", - "version": "0.2.0", - "description": "Full zlib module for the browser", - "keywords": [ - "zlib", - "browserify" + "_args": [ + [ + "browserify-zlib@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib/index.js", - "directories": { - "test": "test" + "_from": "browserify-zlib@0.2.0", + "_id": "browserify-zlib@0.2.0", + "_inBundle": false, + "_integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "_location": "/browserify-zlib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserify-zlib@0.2.0", + "name": "browserify-zlib", + "escapedName": "browserify-zlib", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Devon Govett", + "email": "devongovett@gmail.com" + }, + "babel": { + "plugins": [ + "transform-es2015-arrow-functions", + "transform-es2015-block-scoping", + "transform-es2015-template-literals" + ] + }, + "bugs": { + "url": "https://github.com/devongovett/browserify-zlib/issues" }, "dependencies": { "pako": "~1.0.5" }, + "description": "Full zlib module for the browser", "devDependencies": { "assert": "^1.4.1", "babel-cli": "^6.24.1", @@ -35,30 +67,29 @@ "standard": "^10.0.2", "watchify": "^3.9.0" }, - "scripts": { - "build": "babel src --out-dir lib", - "lint": "standard \"*.js\" \"!(node_modules|lib)/!(*test-zlib*|index).js\"", - "pretest": "npm run build", - "test": "npm run test:node && npm run test:browser", - "test:node": "node node_modules/exec-glob node \"test/test-*\"", - "pretest:browser": "node test/build", - "test:browser": "karma start --single-run=true karma.conf.js" - }, - "babel": { - "plugins": [ - "transform-es2015-arrow-functions", - "transform-es2015-block-scoping", - "transform-es2015-template-literals" - ] + "directories": { + "test": "test" }, - "author": "Devon Govett ", "homepage": "https://github.com/devongovett/browserify-zlib", + "keywords": [ + "zlib", + "browserify" + ], "license": "MIT", + "main": "lib/index.js", + "name": "browserify-zlib", "repository": { "type": "git", "url": "git+https://github.com/devongovett/browserify-zlib.git" }, - "bugs": { - "url": "https://github.com/devongovett/browserify-zlib/issues" - } + "scripts": { + "build": "babel src --out-dir lib", + "lint": "standard \"*.js\" \"!(node_modules|lib)/!(*test-zlib*|index).js\"", + "pretest": "npm run build", + "pretest:browser": "node test/build", + "test": "npm run test:node && npm run test:browser", + "test:browser": "karma start --single-run=true karma.conf.js", + "test:node": "node node_modules/exec-glob node \"test/test-*\"" + }, + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/browserslist/package.json index f4ea934a1..c9bf556a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/browserslist/package.json @@ -1,20 +1,53 @@ { - "name": "browserslist", - "version": "3.2.8", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@3.2.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", + "_development": true, + "_from": "browserslist@3.2.8", + "_id": "browserslist@3.2.8", + "_inBundle": false, + "_integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", + "_location": "/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@3.2.8", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "3.2.8", + "saveSpec": null, + "fetchSpec": "3.2.8" + }, + "_requiredBy": [ + "/autoprefixer", + "/babel-preset-env" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-3.2.8.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-3.2.8.tgz", + "_spec": "3.2.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" + }, "dependencies": { "caniuse-lite": "^1.0.30000844", "electron-to-chromium": "^1.3.47" }, - "bin": "./cli.js", + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "devDependencies": { "cross-spawn": "^6.0.5", "eslint": "^4.19.1", @@ -35,6 +68,7 @@ "size-limit": "^0.18.0", "yaspeller-ci": "^1.0.0" }, + "homepage": "https://github.com/browserslist/browserslist#readme", "jest": { "testEnvironment": "node", "coverageThreshold": { @@ -46,17 +80,25 @@ "/test/fixtures" ] }, + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "pre-commit": [ + "lint-staged" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" + }, "scripts": { + "lint": "eslint-ci *.js test/*.js benchmark/*.js", "lint-staged": "lint-staged", "spellcheck": "yaspeller-ci README.md CHANGELOG.md", - "lint": "eslint-ci *.js test/*.js benchmark/*.js", "test": "jest --coverage && yarn lint && yarn spellcheck && size-limit" }, - "browser": { - "./node.js": "./browser.js", - "path": false - }, - "pre-commit": [ - "lint-staged" - ] + "version": "3.2.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/buffer-from/package.json b/admin/vue2/element-admin-v3/node_modules/buffer-from/package.json index b0024501a..6ba7f3d00 100644 --- a/admin/vue2/element-admin-v3/node_modules/buffer-from/package.json +++ b/admin/vue2/element-admin-v3/node_modules/buffer-from/package.json @@ -1,19 +1,55 @@ { - "name": "buffer-from", - "version": "1.1.1", - "license": "MIT", - "repository": "LinusU/buffer-from", - "files": [ - "index.js" + "_args": [ + [ + "buffer-from@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "standard && node test" + "_from": "buffer-from@1.1.1", + "_id": "buffer-from@1.1.1", + "_inBundle": false, + "_integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "_location": "/buffer-from", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "buffer-from@1.1.1", + "name": "buffer-from", + "escapedName": "buffer-from", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/concat-stream" + ], + "_resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/LinusU/buffer-from/issues" }, + "description": "A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.", "devDependencies": { "standard": "^7.1.2" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/LinusU/buffer-from#readme", "keywords": [ "buffer", "buffer from" - ] + ], + "license": "MIT", + "name": "buffer-from", + "repository": { + "type": "git", + "url": "git+https://github.com/LinusU/buffer-from.git" + }, + "scripts": { + "test": "standard && node test" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/buffer-indexof/package.json b/admin/vue2/element-admin-v3/node_modules/buffer-indexof/package.json index 3e4aafcda..15b8e60e2 100644 --- a/admin/vue2/element-admin-v3/node_modules/buffer-indexof/package.json +++ b/admin/vue2/element-admin-v3/node_modules/buffer-indexof/package.json @@ -1,19 +1,53 @@ { - "name": "buffer-indexof", + "_args": [ + [ + "buffer-indexof@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "buffer-indexof@1.1.1", + "_id": "buffer-indexof@1.1.1", + "_inBundle": false, + "_integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "_location": "/buffer-indexof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "buffer-indexof@1.1.1", + "name": "buffer-indexof", + "escapedName": "buffer-indexof", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/dns-txt" + ], + "_resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ryan Day" + }, + "bugs": { + "url": "https://github.com/soldair/node-buffer-indexof/issues" + }, + "dependencies": {}, "description": "find the index of a buffer in a buffer", - "version": "1.1.1", + "devDependencies": { + "chalk": "^1.1.3", + "tape": "~1.1.0" + }, + "homepage": "https://github.com/soldair/node-buffer-indexof#readme", + "license": "MIT", + "main": "index.js", + "name": "buffer-indexof", "repository": { "url": "git://github.com/soldair/node-buffer-indexof.git" }, - "main": "index.js", "scripts": { "test": "tape test/*.js" }, - "author": "Ryan Day", - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "chalk": "^1.1.3", - "tape": "~1.1.0" - } + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/buffer-xor/package.json b/admin/vue2/element-admin-v3/node_modules/buffer-xor/package.json index 5074b0221..981700b7a 100644 --- a/admin/vue2/element-admin-v3/node_modules/buffer-xor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/buffer-xor/package.json @@ -1,20 +1,43 @@ { - "name": "buffer-xor", - "version": "1.0.3", - "description": "A simple module for bitwise-xor on buffers", - "main": "index.js", - "scripts": { - "standard": "standard", - "test": "npm run-script unit", - "unit": "mocha" + "_args": [ + [ + "buffer-xor@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "buffer-xor@1.0.3", + "_id": "buffer-xor@1.0.3", + "_inBundle": false, + "_integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "_location": "/buffer-xor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "buffer-xor@1.0.3", + "name": "buffer-xor", + "escapedName": "buffer-xor", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" }, - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/buffer-xor.git" + "_requiredBy": [ + "/browserify-aes" + ], + "_resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Daniel Cousens" }, "bugs": { "url": "https://github.com/crypto-browserify/buffer-xor/issues" }, + "description": "A simple module for bitwise-xor on buffers", + "devDependencies": { + "mocha": "*", + "standard": "*" + }, "homepage": "https://github.com/crypto-browserify/buffer-xor", "keywords": [ "bits", @@ -28,10 +51,17 @@ "performance", "xor" ], - "author": "Daniel Cousens", "license": "MIT", - "devDependencies": { - "mocha": "*", - "standard": "*" - } + "main": "index.js", + "name": "buffer-xor", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/buffer-xor.git" + }, + "scripts": { + "standard": "standard", + "test": "npm run-script unit", + "unit": "mocha" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/buffer/package.json b/admin/vue2/element-admin-v3/node_modules/buffer/package.json index da7aa7cf3..98df504fe 100644 --- a/admin/vue2/element-admin-v3/node_modules/buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/buffer/package.json @@ -1,7 +1,32 @@ { - "name": "buffer", - "description": "Node.js Buffer API, for the browser", - "version": "4.9.2", + "_args": [ + [ + "buffer@4.9.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "buffer@4.9.2", + "_id": "buffer@4.9.2", + "_inBundle": false, + "_integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "_location": "/buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "buffer@4.9.2", + "name": "buffer", + "escapedName": "buffer", + "rawSpec": "4.9.2", + "saveSpec": null, + "fetchSpec": "4.9.2" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098073225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", + "_spec": "4.9.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -11,14 +36,21 @@ "url": "https://github.com/feross/buffer/issues" }, "contributors": [ - "Romain Beauxis ", - "James Halliday " + { + "name": "Romain Beauxis", + "email": "toots@rastageeks.org" + }, + { + "name": "James Halliday", + "email": "mail@substack.net" + } ], "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" }, + "description": "Node.js Buffer API, for the browser", "devDependencies": { "benchmark": "^2.0.0", "browserify": "^13.0.0", @@ -51,6 +83,7 @@ ], "license": "MIT", "main": "index.js", + "name": "buffer", "repository": { "type": "git", "url": "git://github.com/feross/buffer.git" @@ -73,5 +106,6 @@ "test/_polyfill.js", "perf/*.js" ] - } + }, + "version": "4.9.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/builtin-status-codes/package.json b/admin/vue2/element-admin-v3/node_modules/builtin-status-codes/package.json index d20dcd843..63cf204be 100644 --- a/admin/vue2/element-admin-v3/node_modules/builtin-status-codes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/builtin-status-codes/package.json @@ -1,20 +1,52 @@ { - "name": "builtin-status-codes", - "main": "index.js", - "browser": "browser.js", - "version": "3.0.0", - "description": "The map of HTTP status codes from the builtin http module", - "license": "MIT", - "repository": "bendrucker/builtin-status-codes", + "_args": [ + [ + "builtin-status-codes@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "builtin-status-codes@3.0.0", + "_id": "builtin-status-codes@3.0.0", + "_inBundle": false, + "_integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "_location": "/builtin-status-codes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "builtin-status-codes@3.0.0", + "name": "builtin-status-codes", + "escapedName": "builtin-status-codes", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/stream-http" + ], + "_resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Drucker", "email": "bvdrucker@gmail.com", "url": "bendrucker.me" }, - "scripts": { - "test": "standard && tape test.js", - "build": "node build.js" + "browser": "browser.js", + "bugs": { + "url": "https://github.com/bendrucker/builtin-status-codes/issues" + }, + "description": "The map of HTTP status codes from the builtin http module", + "devDependencies": { + "standard": "^4.0.0", + "tape": "^4.0.0" }, + "files": [ + "index.js", + "browser.js", + "build.js" + ], + "homepage": "https://github.com/bendrucker/builtin-status-codes#readme", "keywords": [ "http", "status", @@ -22,18 +54,21 @@ "builtin", "map" ], - "devDependencies": { - "tape": "^4.0.0", - "standard": "^4.0.0" + "license": "MIT", + "main": "index.js", + "name": "builtin-status-codes", + "repository": { + "type": "git", + "url": "git+https://github.com/bendrucker/builtin-status-codes.git" + }, + "scripts": { + "build": "node build.js", + "test": "standard && tape test.js" }, - "files": [ - "index.js", - "browser.js", - "build.js" - ], "standard": { "ignore": [ "browser.js" ] - } + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/bytes/package.json b/admin/vue2/element-admin-v3/node_modules/bytes/package.json index 72ee63d03..fb35c428c 100644 --- a/admin/vue2/element-admin-v3/node_modules/bytes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/bytes/package.json @@ -1,41 +1,87 @@ { - "name": "bytes", - "description": "Utility to parse a string bytes to bytes and vice-versa", - "version": "3.1.0", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Jed Watson ", - "Théo FIDRY " + "_args": [ + [ + "bytes@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "byte", - "bytes", - "utility", - "parse", - "parser", - "convert", - "converter" + "_from": "bytes@3.1.0", + "_id": "bytes@3.1.0", + "_inBundle": false, + "_integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "_location": "/bytes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bytes@3.1.0", + "name": "bytes", + "escapedName": "bytes", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/body-parser", + "/raw-body" ], - "repository": "visionmedia/bytes.js", + "_resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/visionmedia/bytes.js/issues" + }, + "contributors": [ + { + "name": "Jed Watson", + "email": "jed.watson@me.com" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Utility to parse a string bytes to bytes and vice-versa", "devDependencies": { "eslint": "5.12.1", "mocha": "5.2.0", "nyc": "13.1.0" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "History.md", "LICENSE", "Readme.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/visionmedia/bytes.js#readme", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "license": "MIT", + "name": "bytes", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/bytes.js.git" }, "scripts": { "lint": "eslint .", "test": "mocha --check-leaks --reporter spec", "test-ci": "nyc --reporter=text npm test", "test-cov": "nyc --reporter=html --reporter=text npm test" - } + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cacache/package.json b/admin/vue2/element-admin-v3/node_modules/cacache/package.json index f3dda9627..4ecbf4d4e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cacache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cacache/package.json @@ -1,62 +1,62 @@ { - "name": "cacache", - "version": "10.0.4", - "cache-version": { - "content": "2", - "index": "5" - }, - "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.", - "main": "index.js", - "files": [ - "*.js", - "lib", - "locales" + "_args": [ + [ + "cacache@10.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "benchmarks": "node test/benchmarks", - "prerelease": "npm t", - "postrelease": "npm publish && git push --follow-tags", - "pretest": "standard", - "release": "standard-version -s", - "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js", - "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" + "_from": "cacache@10.0.4", + "_id": "cacache@10.0.4", + "_inBundle": false, + "_integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "_location": "/cacache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cacache@10.0.4", + "name": "cacache", + "escapedName": "cacache", + "rawSpec": "10.0.4", + "saveSpec": null, + "fetchSpec": "10.0.4" }, - "repository": "https://github.com/zkat/cacache", - "keywords": [ - "cache", - "caching", - "content-addressable", - "sri", - "sri hash", - "subresource integrity", - "cache", - "storage", - "store", - "file store", - "filesystem", - "disk cache", - "disk storage" + "_requiredBy": [ + "/copy-webpack-plugin", + "/uglifyjs-webpack-plugin" ], + "_resolved": "https://registry.nlark.com/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1621949584977&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", + "_spec": "10.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kat Marchán", - "email": "kzm@sykosomatic.org", - "twitter": "maybekatz" + "email": "kzm@sykosomatic.org" + }, + "bugs": { + "url": "https://github.com/zkat/cacache/issues" + }, + "cache-version": { + "content": "2", + "index": "5" + }, + "config": { + "nyc": { + "exclude": [ + "node_modules/**", + "test/**" + ] + } }, "contributors": [ { "name": "Charlotte Spencer", - "email": "charlottelaspencer@gmail.com", - "twitter": "charlotteis" + "email": "charlottelaspencer@gmail.com" }, { "name": "Rebecca Turner", - "email": "me@re-becca.org", - "twitter": "ReBeccaOrg" + "email": "me@re-becca.org" } ], - "license": "ISC", "dependencies": { "bluebird": "^3.5.1", "chownr": "^1.0.1", @@ -72,6 +72,7 @@ "unique-filename": "^1.1.0", "y18n": "^4.0.0" }, + "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.", "devDependencies": { "benchmark": "^2.1.4", "chalk": "^2.3.1", @@ -86,12 +87,44 @@ "weallbehave": "^1.2.0", "weallcontribute": "^1.0.8" }, - "config": { - "nyc": { - "exclude": [ - "node_modules/**", - "test/**" - ] - } - } + "files": [ + "*.js", + "lib", + "locales" + ], + "homepage": "https://github.com/zkat/cacache#readme", + "keywords": [ + "cache", + "caching", + "content-addressable", + "sri", + "sri hash", + "subresource integrity", + "cache", + "storage", + "store", + "file store", + "filesystem", + "disk cache", + "disk storage" + ], + "license": "ISC", + "main": "index.js", + "name": "cacache", + "repository": { + "type": "git", + "url": "git+https://github.com/zkat/cacache.git" + }, + "scripts": { + "benchmarks": "node test/benchmarks", + "postrelease": "npm publish && git push --follow-tags", + "prerelease": "npm t", + "pretest": "standard", + "release": "standard-version -s", + "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js", + "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test", + "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", + "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" + }, + "version": "10.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/cache-base/package.json b/admin/vue2/element-admin-v3/node_modules/cache-base/package.json index fd88a1104..6888a6aca 100644 --- a/admin/vue2/element-admin-v3/node_modules/cache-base/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cache-base/package.json @@ -1,28 +1,48 @@ { - "name": "cache-base", - "description": "Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/cache-base", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "cache-base@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/cache-base", - "bugs": { - "url": "https://github.com/jonschlinkert/cache-base/issues" + "_from": "cache-base@1.0.1", + "_id": "cache-base@1.0.1", + "_inBundle": false, + "_integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "_location": "/cache-base", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cache-base@1.0.1", + "name": "cache-base", + "escapedName": "cache-base", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/cache-base/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -34,10 +54,18 @@ "union-value": "^1.0.0", "unset-value": "^1.0.0" }, + "description": "Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.4.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/cache-base", "keywords": [ "base", "cache", @@ -51,6 +79,16 @@ "set", "store" ], + "license": "MIT", + "main": "index.js", + "name": "cache-base", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/cache-base.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -78,5 +116,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/call-bind/package.json b/admin/vue2/element-admin-v3/node_modules/call-bind/package.json index 4360556a7..780af1d5a 100644 --- a/admin/vue2/element-admin-v3/node_modules/call-bind/package.json +++ b/admin/vue2/element-admin-v3/node_modules/call-bind/package.json @@ -1,80 +1,121 @@ { - "name": "call-bind", - "version": "1.0.2", - "description": "Robustly `.call.bind()` a function", - "main": "index.js", - "exports": { - ".": [ - { - "default": "./index.js" - }, - "./index.js" - ], - "./callBound": [ - { - "default": "./callBound.js" - }, - "./callBound.js" - ], - "./package.json": "./package.json" - }, - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint --ext=.js,.mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/*'", - "test": "npm run tests-only", - "posttest": "aud --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.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-bind/issues" - }, - "homepage": "https://github.com/ljharb/call-bind#readme", - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.17.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" - }, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "call-bind@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "call-bind@1.0.2", + "_id": "call-bind@1.0.2", + "_inBundle": false, + "_integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", + "_location": "/call-bind", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "call-bind@1.0.2", + "name": "call-bind", + "escapedName": "call-bind", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/es-abstract", + "/is-arguments", + "/is-boolean-object", + "/is-regex", + "/object-is", + "/object.assign", + "/object.getownpropertydescriptors", + "/object.values", + "/regexp.prototype.flags", + "/string.prototype.trimend", + "/string.prototype.trimstart" + ], + "_resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610403020286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/ljharb/call-bind/issues" + }, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "description": "Robustly `.call.bind()` a function", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.17.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.1.1" + }, + "exports": { + ".": [ + { + "default": "./index.js" + }, + "./index.js" + ], + "./callBound": [ + { + "default": "./callBound.js" + }, + "./callBound.js" + ], + "./package.json": "./package.json" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/call-bind#readme", + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "license": "MIT", + "main": "index.js", + "name": "call-bind", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind.git" + }, + "scripts": { + "lint": "eslint --ext=.js,.mjs .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/*'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/caller-callsite/node_modules/callsites/package.json b/admin/vue2/element-admin-v3/node_modules/caller-callsite/node_modules/callsites/package.json index 9f978549d..009be82a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/caller-callsite/node_modules/callsites/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caller-callsite/node_modules/callsites/package.json @@ -1,23 +1,53 @@ { - "name": "callsites", - "version": "2.0.0", - "description": "Get callsites from the V8 stack trace API", - "license": "MIT", - "repository": "sindresorhus/callsites", + "_args": [ + [ + "callsites@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "callsites@2.0.0", + "_id": "callsites@2.0.0", + "_inBundle": false, + "_integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "_location": "/caller-callsite/callsites", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "callsites@2.0.0", + "name": "callsites", + "escapedName": "callsites", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/caller-callsite" + ], + "_resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/callsites/issues" + }, + "description": "Get callsites from the V8 stack trace API", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/callsites#readme", "keywords": [ "stacktrace", "v8", @@ -30,10 +60,16 @@ "line", "debug" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "callsites", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/callsites.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/caller-callsite/package.json b/admin/vue2/element-admin-v3/node_modules/caller-callsite/package.json index b477f25d7..35f08521e 100644 --- a/admin/vue2/element-admin-v3/node_modules/caller-callsite/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caller-callsite/package.json @@ -1,23 +1,56 @@ { - "name": "caller-callsite", - "version": "2.0.0", - "description": "Get the callsite of the caller function", - "license": "MIT", - "repository": "sindresorhus/caller-callsite", + "_args": [ + [ + "caller-callsite@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "caller-callsite@2.0.0", + "_id": "caller-callsite@2.0.0", + "_inBundle": false, + "_integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "_location": "/caller-callsite", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "caller-callsite@2.0.0", + "name": "caller-callsite", + "escapedName": "caller-callsite", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/import-fresh/caller-path" + ], + "_resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/caller-callsite/issues" + }, + "dependencies": { + "callsites": "^2.0.0" + }, + "description": "Get the callsite of the caller function", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/caller-callsite#readme", "keywords": [ "caller", "calling", @@ -31,13 +64,16 @@ "function", "file" ], - "dependencies": { - "callsites": "^2.0.0" + "license": "MIT", + "name": "caller-callsite", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/caller-callsite.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/caller-path/package.json b/admin/vue2/element-admin-v3/node_modules/caller-path/package.json index c77d08d35..21c387999 100644 --- a/admin/vue2/element-admin-v3/node_modules/caller-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caller-path/package.json @@ -1,23 +1,55 @@ { - "name": "caller-path", - "version": "0.1.0", - "description": "Get the path of the caller module", - "license": "MIT", - "repository": "sindresorhus/caller-path", + "_args": [ + [ + "caller-path@0.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "caller-path@0.1.0", + "_id": "caller-path@0.1.0", + "_inBundle": false, + "_integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "_location": "/caller-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "caller-path@0.1.0", + "name": "caller-path", + "escapedName": "caller-path", + "rawSpec": "0.1.0", + "saveSpec": null, + "fetchSpec": "0.1.0" + }, + "_requiredBy": [ + "/require-uncached" + ], + "_resolved": "https://registry.nlark.com/caller-path/download/caller-path-0.1.0.tgz", + "_spec": "0.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/caller-path/issues" + }, + "dependencies": { + "callsites": "^0.2.0" + }, + "description": "Get the path of the caller module", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/caller-path#readme", "keywords": [ "caller", "calling", @@ -32,10 +64,14 @@ "function", "file" ], - "dependencies": { - "callsites": "^0.2.0" + "license": "MIT", + "name": "caller-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/caller-path.git" }, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha" + }, + "version": "0.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/callsites/package.json b/admin/vue2/element-admin-v3/node_modules/callsites/package.json index f31c25f42..6bf2d9409 100644 --- a/admin/vue2/element-admin-v3/node_modules/callsites/package.json +++ b/admin/vue2/element-admin-v3/node_modules/callsites/package.json @@ -1,23 +1,52 @@ { - "name": "callsites", - "version": "0.2.0", - "description": "Get callsites from the V8 stack trace API", - "license": "MIT", - "repository": "sindresorhus/callsites", + "_args": [ + [ + "callsites@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "callsites@0.2.0", + "_id": "callsites@0.2.0", + "_inBundle": false, + "_integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "_location": "/callsites", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "callsites@0.2.0", + "name": "callsites", + "escapedName": "callsites", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/caller-path" + ], + "_resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/callsites/issues" + }, + "description": "Get callsites from the V8 stack trace API", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/callsites#readme", "keywords": [ "callsites", "callsite", @@ -30,7 +59,14 @@ "line", "debug" ], - "devDependencies": { - "mocha": "*" - } + "license": "MIT", + "name": "callsites", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/callsites.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/camel-case/package.json b/admin/vue2/element-admin-v3/node_modules/camel-case/package.json index 725b39b0f..2fe693e2c 100644 --- a/admin/vue2/element-admin-v3/node_modules/camel-case/package.json +++ b/admin/vue2/element-admin-v3/node_modules/camel-case/package.json @@ -1,24 +1,57 @@ { - "name": "camel-case", - "version": "3.0.0", + "_args": [ + [ + "camel-case@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "camel-case@3.0.0", + "_id": "camel-case@3.0.0", + "_inBundle": false, + "_integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "_location": "/camel-case", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "camel-case@3.0.0", + "name": "camel-case", + "escapedName": "camel-case", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/html-minifier" + ], + "_resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606867359182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "bugs": { + "url": "https://github.com/blakeembrey/camel-case/issues" + }, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + }, "description": "Camel case a string", - "main": "camel-case.js", - "typings": "camel-case.d.ts", + "devDependencies": { + "istanbul": "^0.4.3", + "mocha": "^2.2.1", + "standard": "^7.1.2" + }, "files": [ "camel-case.js", "camel-case.d.ts", "LICENSE" ], - "scripts": { - "lint": "standard", - "test-spec": "mocha -- -R spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/camel-case.git" - }, + "homepage": "https://github.com/blakeembrey/camel-case", "keywords": [ "camel", "case", @@ -34,23 +67,19 @@ "text", "convert" ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/camel-case/issues" + "main": "camel-case.js", + "name": "camel-case", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/camel-case.git" }, - "homepage": "https://github.com/blakeembrey/camel-case", - "devDependencies": { - "istanbul": "^0.4.3", - "mocha": "^2.2.1", - "standard": "^7.1.2" + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", + "test-spec": "mocha -- -R spec --bail" }, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } + "typings": "camel-case.d.ts", + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/camelcase-keys/node_modules/camelcase/package.json b/admin/vue2/element-admin-v3/node_modules/camelcase-keys/node_modules/camelcase/package.json index 6cee2b520..65bca82d8 100644 --- a/admin/vue2/element-admin-v3/node_modules/camelcase-keys/node_modules/camelcase/package.json +++ b/admin/vue2/element-admin-v3/node_modules/camelcase-keys/node_modules/camelcase/package.json @@ -1,23 +1,53 @@ { - "name": "camelcase", - "version": "2.1.1", - "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar", - "license": "MIT", - "repository": "sindresorhus/camelcase", + "_args": [ + [ + "camelcase@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "camelcase@2.1.1", + "_id": "camelcase@2.1.1", + "_inBundle": false, + "_integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "_location": "/camelcase-keys/camelcase", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "camelcase@2.1.1", + "name": "camelcase", + "escapedName": "camelcase", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/camelcase-keys" + ], + "_resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz?cache=0&sync_timestamp=1603924797555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/camelcase/issues" + }, + "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/camelcase#readme", "keywords": [ "camelcase", "camel-case", @@ -32,8 +62,14 @@ "text", "convert" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "camelcase", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/camelcase.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/camelcase-keys/package.json b/admin/vue2/element-admin-v3/node_modules/camelcase-keys/package.json index 44a34de28..f851a65fe 100644 --- a/admin/vue2/element-admin-v3/node_modules/camelcase-keys/package.json +++ b/admin/vue2/element-admin-v3/node_modules/camelcase-keys/package.json @@ -1,23 +1,57 @@ { - "name": "camelcase-keys", - "version": "2.1.0", - "description": "Convert object keys to camelCase", - "license": "MIT", - "repository": "sindresorhus/camelcase-keys", + "_args": [ + [ + "camelcase-keys@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "camelcase-keys@2.1.0", + "_id": "camelcase-keys@2.1.0", + "_inBundle": false, + "_integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "_location": "/camelcase-keys", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "camelcase-keys@2.1.0", + "name": "camelcase-keys", + "escapedName": "camelcase-keys", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/meow" + ], + "_resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/camelcase-keys/issues" + }, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "description": "Convert object keys to camelCase", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/camelcase-keys#readme", "keywords": [ "map", "obj", @@ -41,12 +75,14 @@ "text", "convert" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "camelcase-keys", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/camelcase-keys.git" }, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/camelcase/package.json b/admin/vue2/element-admin-v3/node_modules/camelcase/package.json index fbdbaaa75..b22411f90 100644 --- a/admin/vue2/element-admin-v3/node_modules/camelcase/package.json +++ b/admin/vue2/element-admin-v3/node_modules/camelcase/package.json @@ -1,43 +1,81 @@ { - "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" - } + "_args": [ + [ + "camelcase@5.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "camelcase@5.3.1", + "_id": "camelcase@5.3.1", + "_inBundle": false, + "_integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "_location": "/camelcase", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "camelcase@5.3.1", + "name": "camelcase", + "escapedName": "camelcase", + "rawSpec": "5.3.1", + "saveSpec": null, + "fetchSpec": "5.3.1" + }, + "_requiredBy": [ + "/sass-graph/yargs-parser", + "/webpack-cli/yargs-parser", + "/webpack-dev-server/yargs-parser", + "/yargs-parser" + ], + "_resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603924797555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "_spec": "5.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/camelcase/issues" + }, + "description": "Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/camelcase#readme", + "keywords": [ + "camelcase", + "camel-case", + "camel", + "case", + "dash", + "hyphen", + "dot", + "underscore", + "separator", + "string", + "text", + "convert", + "pascalcase", + "pascal-case" + ], + "license": "MIT", + "name": "camelcase", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/camelcase.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "5.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/browserslist/package.json index 5deec7979..3e297b69a 100644 --- a/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caniuse-api/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/caniuse-api/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/caniuse-api" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/caniuse-api/package.json b/admin/vue2/element-admin-v3/node_modules/caniuse-api/package.json index a7eb873ee..77e954bc4 100644 --- a/admin/vue2/element-admin-v3/node_modules/caniuse-api/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caniuse-api/package.json @@ -1,27 +1,59 @@ { - "name": "caniuse-api", - "version": "3.0.0", - "description": "request the caniuse data to check browsers compatibilities", - "repository": "https://github.com/nyalab/caniuse-api.git", - "keywords": [ - "caniuse", - "browserslist" + "_args": [ + [ + "caniuse-api@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "caniuse-api@3.0.0", + "_id": "caniuse-api@3.0.0", + "_inBundle": false, + "_integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "_location": "/caniuse-api", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "colorette": "1.2.2", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "node-releases": "1.1.73" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "caniuse-api@3.0.0", + "name": "caniuse-api", + "escapedName": "caniuse-api", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/postcss-merge-rules", + "/postcss-reduce-initial" ], + "_resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "nyalab", "MoOx" ], - "license": "MIT", - "main": "dist/index.js", - "files": [ - "dist" - ], + "babel": { + "presets": [ + "babel-preset-latest" + ] + }, + "bugs": { + "url": "https://github.com/nyalab/caniuse-api/issues" + }, "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" }, + "description": "request the caniuse data to check browsers compatibilities", "devDependencies": { "babel-cli": "^6.22.2", "babel-eslint": "^5.0.0", @@ -32,16 +64,27 @@ "tap-spec": "^4.1.1", "tape": "^4.6.0" }, + "files": [ + "dist" + ], + "homepage": "https://github.com/nyalab/caniuse-api#readme", + "keywords": [ + "caniuse", + "browserslist" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "caniuse-api", + "repository": { + "type": "git", + "url": "git+https://github.com/nyalab/caniuse-api.git" + }, "scripts": { "build": "babel src --out-dir dist", "lint": "jshint src", "prepublish": "npm run build", - "test": "npm run lint && babel-tape-runner test/*.js | tap-spec", - "release": "npmpub" + "release": "npmpub", + "test": "npm run lint && babel-tape-runner test/*.js | tap-spec" }, - "babel": { - "presets": [ - "babel-preset-latest" - ] - } + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/caniuse-lite/package.json b/admin/vue2/element-admin-v3/node_modules/caniuse-lite/package.json index 09fa067e1..52c956142 100644 --- a/admin/vue2/element-admin-v3/node_modules/caniuse-lite/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caniuse-lite/package.json @@ -1,12 +1,60 @@ { - "name": "caniuse-lite", - "version": "1.0.30001236", + "_args": [ + [ + "caniuse-lite@1.0.30001236", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "caniuse-lite@1.0.30001236", + "_id": "caniuse-lite@1.0.30001236", + "_inBundle": false, + "_integrity": "sha1-CoDeTN9i4XcLtGow2IT8jWM+OVg=", + "_location": "/caniuse-lite", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "caniuse-lite@1.0.30001236", + "name": "caniuse-lite", + "escapedName": "caniuse-lite", + "rawSpec": "1.0.30001236", + "saveSpec": null, + "fetchSpec": "1.0.30001236" + }, + "_requiredBy": [ + "/autoprefixer", + "/browserslist", + "/caniuse-api", + "/caniuse-api/browserslist", + "/postcss-colormin/browserslist", + "/postcss-merge-rules/browserslist", + "/postcss-minify-params/browserslist", + "/postcss-normalize-unicode/browserslist", + "/postcss-reduce-initial/browserslist", + "/stylehacks/browserslist" + ], + "_resolved": "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001236.tgz?cache=0&sync_timestamp=1623218904650&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001236.tgz", + "_spec": "1.0.30001236", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/browserslist/caniuse-lite/issues" + }, "description": "A smaller version of caniuse-db, with only the essentials!", - "main": "dist/unpacker/index.js", "files": [ "data", "dist" ], + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/caniuse-lite#readme", "keywords": [ "support", "css", @@ -14,15 +62,12 @@ "html5", "svg" ], - "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" + "license": "CC-BY-4.0", + "main": "dist/unpacker/index.js", + "name": "caniuse-lite", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/caniuse-lite.git" }, - "license": "CC-BY-4.0" + "version": "1.0.30001236" } diff --git a/admin/vue2/element-admin-v3/node_modules/caseless/package.json b/admin/vue2/element-admin-v3/node_modules/caseless/package.json index 408a6e169..61f76c48a 100644 --- a/admin/vue2/element-admin-v3/node_modules/caseless/package.json +++ b/admin/vue2/element-admin-v3/node_modules/caseless/package.json @@ -1,27 +1,60 @@ { - "name": "caseless", - "version": "0.12.0", - "description": "Caseless object set/get/has, very useful when working with HTTP headers.", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "caseless@0.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "caseless@0.12.0", + "_id": "caseless@0.12.0", + "_inBundle": false, + "_integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "_location": "/caseless", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "caseless@0.12.0", + "name": "caseless", + "escapedName": "caseless", + "rawSpec": "0.12.0", + "saveSpec": null, + "fetchSpec": "0.12.0" }, - "repository": { - "type": "git", - "url": "https://github.com/mikeal/caseless" + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "_spec": "0.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com" + }, + "bugs": { + "url": "https://github.com/mikeal/caseless/issues" }, + "description": "Caseless object set/get/has, very useful when working with HTTP headers.", + "devDependencies": { + "tape": "^2.10.2" + }, + "homepage": "https://github.com/mikeal/caseless#readme", "keywords": [ "headers", "http", "caseless" ], - "test": "node test.js", - "author": "Mikeal Rogers ", "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/mikeal/caseless/issues" + "main": "index.js", + "name": "caseless", + "repository": { + "type": "git", + "url": "git+https://github.com/mikeal/caseless.git" }, - "devDependencies": { - "tape": "^2.10.2" - } + "scripts": { + "test": "node test.js" + }, + "test": "node test.js", + "version": "0.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/center-align/package.json b/admin/vue2/element-admin-v3/node_modules/center-align/package.json index eee07ee06..475d12109 100644 --- a/admin/vue2/element-admin-v3/node_modules/center-align/package.json +++ b/admin/vue2/element-admin-v3/node_modules/center-align/package.json @@ -1,32 +1,56 @@ { - "name": "center-align", - "description": "Center-align the text in a string.", - "version": "0.1.3", - "homepage": "https://github.com/jonschlinkert/center-align", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/center-align", - "bugs": { - "url": "https://github.com/jonschlinkert/center-align/issues" + "_args": [ + [ + "center-align@0.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "center-align@0.1.3", + "_id": "center-align@0.1.3", + "_inBundle": false, + "_integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "_location": "/center-align", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "center-align@0.1.3", + "name": "center-align", + "escapedName": "center-align", + "rawSpec": "0.1.3", + "saveSpec": null, + "fetchSpec": "0.1.3" }, - "license": "MIT", - "files": [ - "index.js", - "utils.js" + "_requiredBy": [ + "/pug-html-loader/cliui" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", + "_spec": "0.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/center-align/issues" }, "dependencies": { "align-text": "^0.1.3", "lazy-cache": "^1.0.3" }, + "description": "Center-align the text in a string.", "devDependencies": { "mocha": "^2.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "utils.js" + ], + "homepage": "https://github.com/jonschlinkert/center-align", "keywords": [ "align", "align-center", @@ -37,6 +61,16 @@ "text", "typography" ], + "license": "MIT", + "main": "index.js", + "name": "center-align", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/center-align.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "description": "", @@ -47,5 +81,6 @@ "word-wrap" ] } - } + }, + "version": "0.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj index c31635d8c..bc88a9bc8 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../printj/bin/printj.njs" "$@" + "$basedir/node" "$basedir/../printj/bin/printj.njs" "$@" + ret=$? else - exec node "$basedir/../printj/bin/printj.njs" "$@" + node "$basedir/../printj/bin/printj.njs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.cmd b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.cmd index a143a2fde..7584d6a9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.cmd +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\printj\bin\printj.njs" %* +"%_prog%" "%dp0%\..\printj\bin\printj.njs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.ps1 b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.ps1 index df3da4207..561f103d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/.bin/printj.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args - } else { - & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args - } + & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../printj/bin/printj.njs" $args - } else { - & "node$exe" "$basedir/../printj/bin/printj.njs" $args - } + & "node$exe" "$basedir/../printj/bin/printj.njs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj index c31635d8c..bc88a9bc8 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../printj/bin/printj.njs" "$@" + "$basedir/node" "$basedir/../printj/bin/printj.njs" "$@" + ret=$? else - exec node "$basedir/../printj/bin/printj.njs" "$@" + node "$basedir/../printj/bin/printj.njs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.cmd b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.cmd index a143a2fde..7584d6a9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.cmd +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\printj\bin\printj.njs" %* +"%_prog%" "%dp0%\..\printj\bin\printj.njs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.ps1 b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.ps1 index df3da4207..561f103d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/.bin/printj.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args - } else { - & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args - } + & "$basedir/node$exe" "$basedir/../printj/bin/printj.njs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../printj/bin/printj.njs" $args - } else { - & "node$exe" "$basedir/../printj/bin/printj.njs" $args - } + & "node$exe" "$basedir/../printj/bin/printj.njs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/printj/package.json b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/printj/package.json index dd031a457..79d59a37e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/printj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/node_modules/printj/package.json @@ -1,61 +1,101 @@ { - "name": "printj", - "version": "1.2.3", - "author": "sheetjs", - "description": "Pure-JS printf", - "keywords": [ - "printf", - "sprintf", - "format", - "string" - ], - "bin": { - "printj": "./bin/printj.njs" - }, - "main": "./printj", - "module": "./printj.mjs", - "types": "types", - "browser": { - "process": false, - "util": false - }, - "dependencies": { - }, - "devDependencies": { - "mocha": "~2.5.3", - "blanket": "~1.2.3", - "@sheetjs/uglify-js": "~2.7.3", - "@types/node": "^8.0.7", - "dtslint": "^0.1.2", - "typescript": "2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/printj.git" - }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "printj.js" - } - }, - "alex": { - "allow": [ - "period" - ] - }, - "homepage": "http://sheetjs.com/opensource", - "files": ["printj.js", "printj.mjs", "bin/printj.njs", "LICENSE", "README.md", "dist/*.js", "dist/*.map", "dist/LICENSE", "types/index.d.ts", "types/*.json"], - "bugs": { - "url": "https://github.com/SheetJS/printj/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "printj@1.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "printj@1.2.3", + "_id": "printj@1.2.3", + "_inBundle": false, + "_integrity": "sha1-LPsrGSoeU4XbvltGZYrDSqgoUIo=", + "_location": "/cfb/adler-32/printj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "printj@1.2.3", + "name": "printj", + "escapedName": "printj", + "rawSpec": "1.2.3", + "saveSpec": null, + "fetchSpec": "1.2.3" + }, + "_requiredBy": [ + "/cfb/adler-32" + ], + "_resolved": "https://registry.nlark.com/printj/download/printj-1.2.3.tgz?cache=0&sync_timestamp=1630361456411&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprintj%2Fdownload%2Fprintj-1.2.3.tgz", + "_spec": "1.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "alex": { + "allow": [ + "period" + ] + }, + "author": { + "name": "sheetjs" + }, + "bin": { + "printj": "bin/printj.njs" + }, + "browser": { + "process": false, + "util": false + }, + "bugs": { + "url": "https://github.com/SheetJS/printj/issues" + }, + "config": { + "blanket": { + "pattern": "printj.js" + } + }, + "dependencies": {}, + "description": "Pure-JS printf", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "printj.js", + "printj.mjs", + "bin/printj.njs", + "LICENSE", + "README.md", + "dist/*.js", + "dist/*.map", + "dist/LICENSE", + "types/index.d.ts", + "types/*.json" + ], + "homepage": "http://sheetjs.com/opensource", + "keywords": [ + "printf", + "sprintf", + "format", + "string" + ], + "license": "Apache-2.0", + "main": "./printj", + "module": "./printj.mjs", + "name": "printj", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/printj.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "1.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/package.json b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/package.json index 86320fe58..6d36e5385 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/adler-32/package.json @@ -1,38 +1,84 @@ { - "name": "adler-32", - "version": "1.3.0", - "author": "sheetjs", - "description": "Pure-JS ADLER-32", - "keywords": [ "adler32", "checksum" ], - "main": "./adler32", - "types": "types", - "dependencies": { - "printj": "~1.2.2" - }, - "devDependencies": { - "mocha": "~2.5.3", - "blanket": "~1.2.3", - "codepage": "~1.10.0", - "@sheetjs/uglify-js": "~2.7.3", - "@types/node": "^8.0.7", - "dtslint": "^0.1.2", - "typescript": "2.2.0" - }, - "repository": { "type": "git", "url": "git://github.com/SheetJS/js-adler32.git" }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "adler32.js" - } - }, - "homepage": "http://sheetjs.com/opensource", - "files": ["adler32.js", "LICENSE", "README.md", "types/index.d.ts", "types/*.json"], - "bugs": { "url": "https://github.com/SheetJS/js-adler32/issues" }, - "license": "Apache-2.0", - "engines": { "node": ">=0.8" } + "_args": [ + [ + "adler-32@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "adler-32@1.3.0", + "_id": "adler-32@1.3.0", + "_inBundle": false, + "_integrity": "sha1-PK0bcc36afbIqR8+NhXTGk/e3HI=", + "_location": "/cfb/adler-32", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "adler-32@1.3.0", + "name": "adler-32", + "escapedName": "adler-32", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/cfb" + ], + "_resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "sheetjs" + }, + "bugs": { + "url": "https://github.com/SheetJS/js-adler32/issues" + }, + "config": { + "blanket": { + "pattern": "adler32.js" + } + }, + "dependencies": { + "printj": "~1.2.2" + }, + "description": "Pure-JS ADLER-32", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "codepage": "~1.10.0", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "adler32.js", + "LICENSE", + "README.md", + "types/index.d.ts", + "types/*.json" + ], + "homepage": "http://sheetjs.com/opensource", + "keywords": [ + "adler32", + "checksum" + ], + "license": "Apache-2.0", + "main": "./adler32", + "name": "adler-32", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-adler32.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/printj/package.json b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/printj/package.json index cc2a4817a..1f8c20d8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/printj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cfb/node_modules/printj/package.json @@ -1,64 +1,105 @@ { - "name": "printj", - "version": "1.3.0", - "author": "sheetjs", - "description": "Pure-JS printf", - "keywords": [ - "printf", - "sprintf", - "format", - "string" - ], - "bin": { - "printj": "./bin/printj.njs" - }, - "main": "./printj", - "module": "./printj.mjs", - "types": "types", - "browser": { - "process": false, - "util": false - }, - "dependencies": { - }, - "devDependencies": { - "@sheetjs/uglify-js": "~2.7.3", - "@types/node": "^8.0.7", - "blanket": "~1.2.3", - "dtslint": "^0.1.2", - "mocha": "~2.5.3", - "typescript": "2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/printj.git" - }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "printj.js" - } - }, - "alex": { - "allow": [ - "special", - "period", - "just", - "invalid" - ] - }, - "homepage": "https://sheetjs.com/", - "files": ["printj.js", "printj.mjs", "bin/printj.njs", "LICENSE", "README.md", "shim.js", "dist/*.js", "dist/*.map", "dist/LICENSE", "types/index.d.ts", "types/*.json"], - "bugs": { - "url": "https://github.com/SheetJS/printj/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "printj@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "printj@1.3.0", + "_id": "printj@1.3.0", + "_inBundle": false, + "_integrity": "sha1-kBipGKeQ5DcH8QYl1uEBh6Nnz/Y=", + "_location": "/cfb/printj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "printj@1.3.0", + "name": "printj", + "escapedName": "printj", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/cfb" + ], + "_resolved": "https://registry.nlark.com/printj/download/printj-1.3.0.tgz?cache=0&sync_timestamp=1630361456411&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprintj%2Fdownload%2Fprintj-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "alex": { + "allow": [ + "special", + "period", + "just", + "invalid" + ] + }, + "author": { + "name": "sheetjs" + }, + "bin": { + "printj": "bin/printj.njs" + }, + "browser": { + "process": false, + "util": false + }, + "bugs": { + "url": "https://github.com/SheetJS/printj/issues" + }, + "config": { + "blanket": { + "pattern": "printj.js" + } + }, + "dependencies": {}, + "description": "Pure-JS printf", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "printj.js", + "printj.mjs", + "bin/printj.njs", + "LICENSE", + "README.md", + "shim.js", + "dist/*.js", + "dist/*.map", + "dist/LICENSE", + "types/index.d.ts", + "types/*.json" + ], + "homepage": "https://sheetjs.com/", + "keywords": [ + "printf", + "sprintf", + "format", + "string" + ], + "license": "Apache-2.0", + "main": "./printj", + "module": "./printj.mjs", + "name": "printj", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/printj.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cfb/package.json b/admin/vue2/element-admin-v3/node_modules/cfb/package.json index d032d7e49..a60ff9a39 100644 --- a/admin/vue2/element-admin-v3/node_modules/cfb/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cfb/package.json @@ -1,25 +1,54 @@ { - "name": "cfb", - "version": "1.2.1", - "author": "sheetjs", - "description": "Compound File Binary File Format extractor", - "keywords": [ - "cfb", - "compression", - "office" + "_args": [ + [ + "cfb@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "./cfb", - "types": "types", + "_from": "cfb@1.2.1", + "_id": "cfb@1.2.1", + "_inBundle": false, + "_integrity": "sha1-IJQp5MaO/TBkH2/HSy1gKL0gJAI=", + "_location": "/cfb", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cfb@1.2.1", + "name": "cfb", + "escapedName": "cfb", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/xlsx" + ], + "_resolved": "https://registry.nlark.com/cfb/download/cfb-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "sheetjs" + }, "browser": { "node": false, "process": false, "fs": false }, + "bugs": { + "url": "https://github.com/SheetJS/js-cfb/issues" + }, + "config": { + "blanket": { + "pattern": "cfb.js" + } + }, "dependencies": { "adler-32": "~1.3.0", "crc-32": "~1.2.0", "printj": "~1.3.0" }, + "description": "Compound File Binary File Format extractor", "devDependencies": { "@sheetjs/uglify-js": "~2.7.3", "@types/commander": "^2.9.0", @@ -29,19 +58,8 @@ "mocha": "~2.5.3", "typescript": "2.2.0" }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/js-cfb.git" - }, - "scripts": { - "pretest": "make init", - "test": "make test", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "cfb.js" - } + "engines": { + "node": ">=0.8" }, "files": [ "LICENSE", @@ -53,11 +71,23 @@ "xlscfb.flow.js" ], "homepage": "http://sheetjs.com/", - "bugs": { - "url": "https://github.com/SheetJS/js-cfb/issues" - }, + "keywords": [ + "cfb", + "compression", + "office" + ], "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "main": "./cfb", + "name": "cfb", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-cfb.git" + }, + "scripts": { + "dtslint": "dtslint types", + "pretest": "make init", + "test": "make test" + }, + "types": "types", + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/ansi-styles/package.json index 65edb48c3..1c75801a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/chalk/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..8f32f3de8 100644 --- a/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/chalk/package.json index 089378366..587e83a0a 100644 --- a/admin/vue2/element-admin-v3/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chalk/package.json @@ -1,71 +1,126 @@ { - "name": "chalk", - "version": "2.4.1", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.1", + "_id": "chalk@2.4.1", + "_inBundle": false, + "_integrity": "sha1-GMSasWoDe26wFSzIPjRxM4IVtm4=", + "_location": "/chalk", + "_phantomChildren": { + "color-convert": "1.9.3", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.1", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.1", + "saveSpec": null, + "fetchSpec": "2.4.1" + }, + "_requiredBy": [ + "#DEV:/", + "/@babel/highlight", + "/@webpack-contrib/schema-utils", + "/@webpack-contrib/schema-utils/webpack-log", + "/coa", + "/eslint", + "/eslint-friendly-formatter", + "/inquirer", + "/jest-validate", + "/lint-staged", + "/listr-verbose-renderer", + "/log-symbols", + "/ora", + "/postcss", + "/svgo", + "/table", + "/webpack-cli" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.1.tgz", + "_spec": "2.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.1", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/character-parser/package.json b/admin/vue2/element-admin-v3/node_modules/character-parser/package.json index 9fd14f0f5..32887e04c 100644 --- a/admin/vue2/element-admin-v3/node_modules/character-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/character-parser/package.json @@ -1,16 +1,49 @@ { - "name": "character-parser", - "version": "2.2.0", - "description": "Parse JavaScript one character at a time to look for snippets in Templates. This is not a validator, it's just designed to allow you to have sections of JavaScript delimited by brackets robustly.", - "main": "index.js", - "scripts": { - "coverage": "istanbul cover test/index.js", - "test": "node test/index.js" + "_args": [ + [ + "character-parser@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "character-parser@2.2.0", + "_id": "character-parser@2.2.0", + "_inBundle": false, + "_integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "_location": "/character-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "character-parser@2.2.0", + "name": "character-parser", + "escapedName": "character-parser", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/character-parser.git" + "_requiredBy": [ + "/pug-html-loader/pug-lexer", + "/pug-lexer" + ], + "_resolved": "https://registry.npm.taobao.org/character-parser/download/character-parser-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/ForbesLindesay/character-parser/issues" + }, + "dependencies": { + "is-regex": "^1.0.3" + }, + "description": "Parse JavaScript one character at a time to look for snippets in Templates. This is not a validator, it's just designed to allow you to have sections of JavaScript delimited by brackets robustly.", + "devDependencies": { + "istanbul": "~0.3.22", + "testit": "~2.0.2" }, + "homepage": "https://github.com/ForbesLindesay/character-parser#readme", "keywords": [ "parser", "JavaScript", @@ -21,13 +54,16 @@ "escape", "escaping" ], - "author": "ForbesLindesay", "license": "MIT", - "devDependencies": { - "istanbul": "~0.3.22", - "testit": "~2.0.2" + "main": "index.js", + "name": "character-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/ForbesLindesay/character-parser.git" }, - "dependencies": { - "is-regex": "^1.0.3" - } -} \ No newline at end of file + "scripts": { + "coverage": "istanbul cover test/index.js", + "test": "node test/index.js" + }, + "version": "2.2.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/chardet/package.json b/admin/vue2/element-admin-v3/node_modules/chardet/package.json index 389bc9ba9..ed5997bc1 100644 --- a/admin/vue2/element-admin-v3/node_modules/chardet/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chardet/package.json @@ -1,8 +1,57 @@ { - "name": "chardet", - "version": "0.4.2", - "homepage": "https://github.com/runk/node-chardet", + "_args": [ + [ + "chardet@0.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chardet@0.4.2", + "_id": "chardet@0.4.2", + "_inBundle": false, + "_integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "_location": "/chardet", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chardet@0.4.2", + "name": "chardet", + "escapedName": "chardet", + "rawSpec": "0.4.2", + "saveSpec": null, + "fetchSpec": "0.4.2" + }, + "_requiredBy": [ + "/external-editor" + ], + "_resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&sync_timestamp=1601032529880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz", + "_spec": "0.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dmitry Shirokov", + "email": "deadrunk@gmail.com" + }, + "bugs": { + "url": "http://github.com/runk/node-chardet/issues" + }, + "contributors": [ + { + "name": "@spikying" + } + ], "description": "Character detector", + "devDependencies": { + "github-publish-release": "^4.0.0", + "mocha": "^4.0.1" + }, + "directories": { + "test": "test" + }, + "engine": { + "node": ">=4" + }, + "homepage": "https://github.com/runk/node-chardet", "keywords": [ "encoding", "character", @@ -11,33 +60,16 @@ "chardet", "icu" ], - "author": "Dmitry Shirokov ", - "contributors": [ - "@spikying" - ], - "devDependencies": { - "github-publish-release": "^4.0.0", - "mocha": "^4.0.1" - }, + "license": "MIT", + "main": "index.js", + "name": "chardet", "repository": { "type": "git", - "url": "git@github.com:runk/node-chardet.git" - }, - "bugs": { - "mail": "deadrunk@gmail.com", - "url": "http://github.com/runk/node-chardet/issues" + "url": "git+ssh://git@github.com/runk/node-chardet.git" }, "scripts": { - "test": "mocha -R spec --recursive", - "release": "scripts/release" - }, - "main": "index.js", - "engine": { - "node": ">=4" - }, - "readmeFilename": "README.md", - "directories": { - "test": "test" + "release": "scripts/release", + "test": "mocha -R spec --recursive" }, - "license": "MIT" + "version": "0.4.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/check-types/package.json b/admin/vue2/element-admin-v3/node_modules/check-types/package.json index 6116e672c..3471e7e20 100644 --- a/admin/vue2/element-admin-v3/node_modules/check-types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/check-types/package.json @@ -1,48 +1,82 @@ { - "name": "check-types", - "version": "8.0.3", - "description": "A little library for asserting types and values.", - "homepage": "https://gitlab.com/philbooth/check-types.js", - "bugs": "https://gitlab.com/philbooth/check-types.js/issues", - "license": "MIT", - "author": "Phil Booth (https://philbooth.me/)", - "main": "./src/check-types", - "repository": { - "type": "git", - "url": "https://gitlab.com/philbooth/check-types.js.git" - }, - "keywords": [ - "type", - "types", - "type-check", - "type-checking", - "duck-typing", - "arguments", - "parameters", - "values", - "data", - "contract", - "assert", - "check", - "verify", - "safe", - "safety" - ], - "devDependencies": { - "chai": "4.2.x", - "jshint": "^2.9.7", - "mocha": "5.2.x", - "please-release-me": "^2.1.2", - "uglify-js": "3.4.x" - }, - "scripts": { - "lint": "jshint ./src/check-types.js", - "test": "mocha --ui tdd --reporter spec --colors ./test/check-types.js", - "minify": "uglifyjs ./src/check-types.js --compress --mangle --output ./src/check-types.min.js" - }, - "files": [ - "COPYING", - "HISTORY.md", - "src" + "_args": [ + [ + "check-types@8.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_from": "check-types@8.0.3", + "_id": "check-types@8.0.3", + "_inBundle": false, + "_integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", + "_location": "/check-types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "check-types@8.0.3", + "name": "check-types", + "escapedName": "check-types", + "rawSpec": "8.0.3", + "saveSpec": null, + "fetchSpec": "8.0.3" + }, + "_requiredBy": [ + "/bfj" + ], + "_resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", + "_spec": "8.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Phil Booth", + "email": "pmbooth@gmail.com", + "url": "https://philbooth.me/" + }, + "bugs": { + "url": "https://gitlab.com/philbooth/check-types.js/issues" + }, + "description": "A little library for asserting types and values.", + "devDependencies": { + "chai": "4.2.x", + "jshint": "^2.9.7", + "mocha": "5.2.x", + "please-release-me": "^2.1.2", + "uglify-js": "3.4.x" + }, + "files": [ + "COPYING", + "HISTORY.md", + "src" + ], + "homepage": "https://gitlab.com/philbooth/check-types.js", + "keywords": [ + "type", + "types", + "type-check", + "type-checking", + "duck-typing", + "arguments", + "parameters", + "values", + "data", + "contract", + "assert", + "check", + "verify", + "safe", + "safety" + ], + "license": "MIT", + "main": "./src/check-types", + "name": "check-types", + "repository": { + "type": "git", + "url": "git+https://gitlab.com/philbooth/check-types.js.git" + }, + "scripts": { + "lint": "jshint ./src/check-types.js", + "minify": "uglifyjs ./src/check-types.js --compress --mangle --output ./src/check-types.min.js", + "test": "mocha --ui tdd --reporter spec --colors ./test/check-types.js" + }, + "version": "8.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/chokidar/package.json b/admin/vue2/element-admin-v3/node_modules/chokidar/package.json index 566311ad7..e4bf366f2 100644 --- a/admin/vue2/element-admin-v3/node_modules/chokidar/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chokidar/package.json @@ -1,41 +1,45 @@ { - "name": "chokidar", - "description": "A neat wrapper around node.js fs.watch / fs.watchFile / fsevents.", - "version": "2.1.8", - "keywords": [ - "fs", - "watch", - "watchFile", - "watcher", - "watching", - "file", - "fsevents" + "_args": [ + [ + "chokidar@2.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "types": "./types/index.d.ts", - "homepage": "https://github.com/paulmillr/chokidar", - "author": "Paul Miller (https://paulmillr.com), Elan Shanker", - "repository": { - "type": "git", - "url": "https://github.com/paulmillr/chokidar.git" + "_from": "chokidar@2.1.8", + "_id": "chokidar@2.1.8", + "_inBundle": false, + "_integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "_location": "/chokidar", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chokidar@2.1.8", + "name": "chokidar", + "escapedName": "chokidar", + "rawSpec": "2.1.8", + "saveSpec": null, + "fetchSpec": "2.1.8" + }, + "_requiredBy": [ + "/watchpack-chokidar2", + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "_spec": "2.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Paul Miller", + "url": "https://paulmillr.com" }, "bugs": { "url": "https://github.com/paulmillr/chokidar/issues" }, - "license": "MIT", - "scripts": { - "test": "nyc mocha --exit", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "dtslint": "dtslint types" - }, - "files": [ - "index.js", - "lib/", - "types/index.d.ts" - ], "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", + "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -45,9 +49,7 @@ "readdirp": "^2.2.1", "upath": "^1.1.1" }, - "optionalDependencies": { - "fsevents": "^1.2.7" - }, + "description": "A neat wrapper around node.js fs.watch / fs.watchFile / fsevents.", "devDependencies": { "@types/node": "^11.9.4", "chai": "^3.2.0", @@ -59,5 +61,36 @@ "rimraf": "^2.4.3", "sinon": "^1.10.3", "sinon-chai": "^2.6.0" - } + }, + "files": [ + "index.js", + "lib/", + "types/index.d.ts" + ], + "homepage": "https://github.com/paulmillr/chokidar", + "keywords": [ + "fs", + "watch", + "watchFile", + "watcher", + "watching", + "file", + "fsevents" + ], + "license": "MIT", + "name": "chokidar", + "optionalDependencies": { + "fsevents": "^1.2.7" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/paulmillr/chokidar.git" + }, + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "dtslint": "dtslint types", + "test": "nyc mocha --exit" + }, + "types": "./types/index.d.ts", + "version": "2.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/chownr/package.json b/admin/vue2/element-admin-v3/node_modules/chownr/package.json index c273a7d17..7c6126a53 100644 --- a/admin/vue2/element-admin-v3/node_modules/chownr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chownr/package.json @@ -1,29 +1,65 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "chownr", - "description": "like `chown -R`", - "version": "1.1.4", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/chownr.git" + "_args": [ + [ + "chownr@1.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "chownr@1.1.4", + "_id": "chownr@1.1.4", + "_inBundle": false, + "_integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", + "_location": "/chownr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chownr@1.1.4", + "name": "chownr", + "escapedName": "chownr", + "rawSpec": "1.1.4", + "saveSpec": null, + "fetchSpec": "1.1.4" }, - "main": "chownr.js", - "files": [ - "chownr.js" + "_requiredBy": [ + "/cacache" ], + "_resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", + "_spec": "1.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/chownr/issues" + }, + "description": "like `chown -R`", "devDependencies": { "mkdirp": "0.3", "rimraf": "^2.7.1", "tap": "^14.10.6" }, - "tap": { - "check-coverage": true + "files": [ + "chownr.js" + ], + "homepage": "https://github.com/isaacs/chownr#readme", + "license": "ISC", + "main": "chownr.js", + "name": "chownr", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/chownr.git" }, "scripts": { - "test": "tap", - "preversion": "npm test", "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "test": "tap" + }, + "tap": { + "check-coverage": true }, - "license": "ISC" + "version": "1.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/chrome-trace-event/package.json b/admin/vue2/element-admin-v3/node_modules/chrome-trace-event/package.json index 40f95f10e..b61a0f161 100644 --- a/admin/vue2/element-admin-v3/node_modules/chrome-trace-event/package.json +++ b/admin/vue2/element-admin-v3/node_modules/chrome-trace-event/package.json @@ -1,22 +1,40 @@ { - "name": "chrome-trace-event", - "description": "A library to create a trace of your node app per Google's Trace Event format.", - "license": "MIT", - "version": "1.0.3", - "author": "Trent Mick, Sam Saccone", - "keywords": [ - "trace-event", - "trace", - "event", - "trace-viewer", - "google" + "_args": [ + [ + "chrome-trace-event@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "url": "github:samccone/chrome-trace-event" + "_from": "chrome-trace-event@1.0.3", + "_id": "chrome-trace-event@1.0.3", + "_inBundle": false, + "_integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", + "_location": "/chrome-trace-event", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chrome-trace-event@1.0.3", + "name": "chrome-trace-event", + "escapedName": "chrome-trace-event", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905925551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Trent Mick, Sam Saccone" + }, + "bugs": { + "url": "https://github.com/samccone/chrome-trace-event/issues" }, - "main": "./dist/trace-event.js", - "typings": "./dist/trace-event.d.ts", "dependencies": {}, + "description": "A library to create a trace of your node app per Google's Trace Event format.", "devDependencies": { "@types/node": "*", "prettier": "^1.12.1", @@ -30,9 +48,25 @@ "dist", "CHANGES.md" ], + "homepage": "https://github.com/samccone/chrome-trace-event#readme", + "keywords": [ + "trace-event", + "trace", + "event", + "trace-viewer", + "google" + ], + "license": "MIT", + "main": "./dist/trace-event.js", + "name": "chrome-trace-event", + "repository": { + "url": "git+https://github.com/samccone/chrome-trace-event.git" + }, "scripts": { "build": "tsc", "check_format": "prettier -l lib/** test/** examples/**", "test": "tape test/*.test.js" - } + }, + "typings": "./dist/trace-event.d.ts", + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/ci-info/package.json b/admin/vue2/element-admin-v3/node_modules/ci-info/package.json index 3dec9f933..73a12389f 100644 --- a/admin/vue2/element-admin-v3/node_modules/ci-info/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ci-info/package.json @@ -1,21 +1,53 @@ { - "name": "ci-info", - "version": "1.6.0", - "description": "Get details about the current Continuous Integration environment", - "main": "index.js", + "_args": [ + [ + "ci-info@1.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ci-info@1.6.0", + "_id": "ci-info@1.6.0", + "_inBundle": false, + "_integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", + "_location": "/ci-info", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ci-info@1.6.0", + "name": "ci-info", + "escapedName": "ci-info", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" + }, + "_requiredBy": [ + "/is-ci" + ], + "_resolved": "https://registry.nlark.com/ci-info/download/ci-info-1.6.0.tgz", + "_spec": "1.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thomas Watson Steen", + "email": "w@tson.dk", + "url": "https://twitter.com/wa7son" + }, + "bugs": { + "url": "https://github.com/watson/ci-info/issues" + }, + "coordinates": [ + 55.778271, + 12.593091 + ], "dependencies": {}, + "description": "Get details about the current Continuous Integration environment", "devDependencies": { "clear-require": "^1.0.1", "standard": "^12.0.1", "tape": "^4.9.1" }, - "scripts": { - "test": "standard && node test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/watson/ci-info.git" - }, + "homepage": "https://github.com/watson/ci-info", "keywords": [ "ci", "continuous", @@ -23,14 +55,15 @@ "test", "detect" ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", "license": "MIT", - "bugs": { - "url": "https://github.com/watson/ci-info/issues" + "main": "index.js", + "name": "ci-info", + "repository": { + "type": "git", + "url": "git+https://github.com/watson/ci-info.git" }, - "homepage": "https://github.com/watson/ci-info", - "coordinates": [ - 55.778271, - 12.593091 - ] + "scripts": { + "test": "standard && node test.js" + }, + "version": "1.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cipher-base/package.json b/admin/vue2/element-admin-v3/node_modules/cipher-base/package.json index f3725994f..a477daf41 100644 --- a/admin/vue2/element-admin-v3/node_modules/cipher-base/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cipher-base/package.json @@ -1,32 +1,66 @@ { - "name": "cipher-base", - "version": "1.0.4", - "description": "abstract base class for crypto-streams", - "main": "index.js", - "scripts": { - "test": "node test.js | tspec" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/crypto-browserify/cipher-base.git" + "_args": [ + [ + "cipher-base@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "cipher-base@1.0.4", + "_id": "cipher-base@1.0.4", + "_inBundle": false, + "_integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "_location": "/cipher-base", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cipher-base@1.0.4", + "name": "cipher-base", + "escapedName": "cipher-base", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" }, - "keywords": [ - "cipher", - "stream" + "_requiredBy": [ + "/browserify-aes", + "/browserify-des", + "/create-hash", + "/create-hmac" ], - "author": "Calvin Metcalf ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf", + "email": "calvin.metcalf@gmail.com" + }, "bugs": { "url": "https://github.com/crypto-browserify/cipher-base/issues" }, - "homepage": "https://github.com/crypto-browserify/cipher-base#readme", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" }, + "description": "abstract base class for crypto-streams", "devDependencies": { "standard": "^10.0.2", "tap-spec": "^4.1.0", "tape": "^4.2.0" - } + }, + "homepage": "https://github.com/crypto-browserify/cipher-base#readme", + "keywords": [ + "cipher", + "stream" + ], + "license": "MIT", + "main": "index.js", + "name": "cipher-base", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/cipher-base.git" + }, + "scripts": { + "test": "node test.js | tspec" + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/circular-json/package.json b/admin/vue2/element-admin-v3/node_modules/circular-json/package.json index c665a4f56..67a59056f 100644 --- a/admin/vue2/element-admin-v3/node_modules/circular-json/package.json +++ b/admin/vue2/element-admin-v3/node_modules/circular-json/package.json @@ -1,8 +1,48 @@ { - "version": "0.3.3", - "name": "circular-json", + "_args": [ + [ + "circular-json@0.3.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "circular-json@0.3.3", + "_id": "circular-json@0.3.3", + "_inBundle": false, + "_integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "_location": "/circular-json", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "circular-json@0.3.3", + "name": "circular-json", + "escapedName": "circular-json", + "rawSpec": "0.3.3", + "saveSpec": null, + "fetchSpec": "0.3.3" + }, + "_requiredBy": [ + "/flat-cache" + ], + "_resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz", + "_spec": "0.3.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrea Giammarchi", + "url": "http://webreflection.blogspot.com/" + }, + "bugs": { + "url": "https://github.com/WebReflection/circular-json/issues" + }, "description": "JSON does not handle circular references. This version does", - "license": "MIT", + "devDependencies": { + "coveralls": "^2.13.0", + "istanbul": "^0.4.5", + "tiny-cdn": "^0.7.0", + "tressa": "^0.3.1" + }, + "generator": "https://github.com/WebReflection/gitstrap", "homepage": "https://github.com/WebReflection/circular-json", "keywords": [ "JSON", @@ -13,25 +53,17 @@ "parse", "stringify" ], - "generator": "https://github.com/WebReflection/gitstrap", - "author": { - "name": "Andrea Giammarchi", - "web": "http://webreflection.blogspot.com/" - }, + "license": "MIT", + "main": "./build/circular-json.node.js", + "name": "circular-json", "repository": { "type": "git", "url": "git://github.com/WebReflection/circular-json.git" }, - "main": "./build/circular-json.node.js", "scripts": { - "test": "istanbul cover test/circular-json.js", "coveralls": "cat ./coverage/lcov.info | coveralls", + "test": "istanbul cover test/circular-json.js", "web": "$(sleep 2 && open http://0.0.0.0:7151/) & tiny-cdn run ./" }, - "devDependencies": { - "coveralls": "^2.13.0", - "istanbul": "^0.4.5", - "tiny-cdn": "^0.7.0", - "tressa": "^0.3.1" - } + "version": "0.3.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/class-utils/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/class-utils/node_modules/define-property/package.json index 43561bf56..329542626 100644 --- a/admin/vue2/element-admin-v3/node_modules/class-utils/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/class-utils/node_modules/define-property/package.json @@ -1,28 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "0.2.5", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@0.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@0.2.5", + "_id": "define-property@0.2.5", + "_inBundle": false, + "_integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "_location": "/class-utils/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@0.2.5", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "0.2.5", + "saveSpec": null, + "fetchSpec": "0.2.5" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/class-utils" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "_spec": "0.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" + }, + "dependencies": { + "is-descriptor": "^0.1.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "mocha": "*", "should": "^7.0.4" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -35,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -45,7 +81,5 @@ ] } }, - "dependencies": { - "is-descriptor": "^0.1.0" - } + "version": "0.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/class-utils/package.json b/admin/vue2/element-admin-v3/node_modules/class-utils/package.json index aca75295a..443b39388 100644 --- a/admin/vue2/element-admin-v3/node_modules/class-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/class-utils/package.json @@ -1,35 +1,61 @@ { - "name": "class-utils", - "description": "Utils for working with JavaScript classes and prototype methods.", - "version": "0.3.6", - "homepage": "https://github.com/jonschlinkert/class-utils", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "class-utils@0.3.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/class-utils", - "bugs": { - "url": "https://github.com/jonschlinkert/class-utils/issues" + "_from": "class-utils@0.3.6", + "_id": "class-utils@0.3.6", + "_inBundle": false, + "_integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "_location": "/class-utils", + "_phantomChildren": { + "is-descriptor": "0.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "class-utils@0.3.6", + "name": "class-utils", + "escapedName": "class-utils", + "rawSpec": "0.3.6", + "saveSpec": null, + "fetchSpec": "0.3.6" + }, + "_requiredBy": [ + "/base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "_spec": "0.3.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/class-utils/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, + "description": "Utils for working with JavaScript classes and prototype methods.", "devDependencies": { "gulp": "^3.9.1", "gulp-eslint": "^2.0.0", @@ -40,6 +66,13 @@ "should": "^8.2.2", "through2": "^2.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/class-utils", "keywords": [ "array", "assign", @@ -63,6 +96,16 @@ "util", "utils" ], + "license": "MIT", + "main": "index.js", + "name": "class-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/class-utils.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -86,5 +129,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.3.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/clean-css/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/clean-css/node_modules/source-map/package.json index 24663417e..11270b3e7 100644 --- a/admin/vue2/element-admin-v3/node_modules/clean-css/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/clean-css/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/clean-css/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/clean-css" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/clean-css/package.json b/admin/vue2/element-admin-v3/node_modules/clean-css/package.json index f857aad7e..566f21d39 100644 --- a/admin/vue2/element-admin-v3/node_modules/clean-css/package.json +++ b/admin/vue2/element-admin-v3/node_modules/clean-css/package.json @@ -1,38 +1,46 @@ { - "name": "clean-css", - "version": "4.2.3", - "author": "Jakub Pawlowicz (http://twitter.com/jakubpawlowicz)", - "description": "A well-tested CSS minifier", - "license": "MIT", - "keywords": [ - "css", - "minifier" + "_args": [ + [ + "clean-css@4.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/jakubpawlowicz/clean-css", - "repository": { - "type": "git", - "url": "https://github.com/jakubpawlowicz/clean-css.git" + "_development": true, + "_from": "clean-css@4.2.3", + "_id": "clean-css@4.2.3", + "_inBundle": false, + "_integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", + "_location": "/clean-css", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clean-css@4.2.3", + "name": "clean-css", + "escapedName": "clean-css", + "rawSpec": "4.2.3", + "saveSpec": null, + "fetchSpec": "4.2.3" + }, + "_requiredBy": [ + "/html-minifier", + "/pug-html-loader/pug-filters" + ], + "_resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz?cache=0&sync_timestamp=1616153569589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz", + "_spec": "4.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jakub Pawlowicz", + "email": "contact@jakubpawlowicz.com", + "url": "http://twitter.com/jakubpawlowicz" }, "bugs": { "url": "https://github.com/jakubpawlowicz/clean-css/issues" }, - "main": "index.js", - "files": [ - "lib", - "History.md", - "index.js", - "LICENSE" - ], - "scripts": { - "browserify": "browserify --standalone CleanCSS index.js | uglifyjs --compress --mangle -o cleancss-browser.js", - "bench": "node ./test/bench.js", - "check": "jshint .", - "prepublish": "npm run check", - "test": "vows" - }, "dependencies": { "source-map": "~0.6.0" }, + "description": "A well-tested CSS minifier", "devDependencies": { "browserify": "^14.0.0", "http-proxy": "1.x", @@ -44,5 +52,31 @@ }, "engines": { "node": ">= 4.0" - } + }, + "files": [ + "lib", + "History.md", + "index.js", + "LICENSE" + ], + "homepage": "https://github.com/jakubpawlowicz/clean-css", + "keywords": [ + "css", + "minifier" + ], + "license": "MIT", + "main": "index.js", + "name": "clean-css", + "repository": { + "type": "git", + "url": "git+https://github.com/jakubpawlowicz/clean-css.git" + }, + "scripts": { + "bench": "node ./test/bench.js", + "browserify": "browserify --standalone CleanCSS index.js | uglifyjs --compress --mangle -o cleancss-browser.js", + "check": "jshint .", + "prepublish": "npm run check", + "test": "vows" + }, + "version": "4.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-cursor/package.json b/admin/vue2/element-admin-v3/node_modules/cli-cursor/package.json index 68e792ad5..2bb4835d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-cursor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-cursor/package.json @@ -1,23 +1,60 @@ { - "name": "cli-cursor", - "version": "2.1.0", - "description": "Toggle the CLI cursor", - "license": "MIT", - "repository": "sindresorhus/cli-cursor", + "_args": [ + [ + "cli-cursor@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cli-cursor@2.1.0", + "_id": "cli-cursor@2.1.0", + "_inBundle": false, + "_integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "_location": "/cli-cursor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cli-cursor@2.1.0", + "name": "cli-cursor", + "escapedName": "cli-cursor", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/inquirer", + "/listr-verbose-renderer", + "/log-update", + "/ora", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/cli-cursor/issues" + }, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "description": "Toggle the CLI cursor", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/cli-cursor#readme", "keywords": [ "cli", "cursor", @@ -33,13 +70,16 @@ "shell", "command-line" ], - "dependencies": { - "restore-cursor": "^2.0.0" + "license": "MIT", + "name": "cli-cursor", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/cli-cursor.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.1.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-spinners/package.json b/admin/vue2/element-admin-v3/node_modules/cli-spinners/package.json index 7564d52be..139a9ec12 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-spinners/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-spinners/package.json @@ -1,25 +1,55 @@ { - "name": "cli-spinners", - "version": "1.3.1", - "description": "Spinners for use in the terminal", - "license": "MIT", - "repository": "sindresorhus/cli-spinners", + "_args": [ + [ + "cli-spinners@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cli-spinners@1.3.1", + "_id": "cli-spinners@1.3.1", + "_inBundle": false, + "_integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=", + "_location": "/cli-spinners", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cli-spinners@1.3.1", + "name": "cli-spinners", + "escapedName": "cli-spinners", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" + }, + "_requiredBy": [ + "/ora" + ], + "_resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.3.1.tgz?cache=0&sync_timestamp=1616091641633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/cli-spinners/issues" + }, + "description": "Spinners for use in the terminal", + "devDependencies": { + "ava": "*", + "log-update": "^2.1.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "asciicast": "asciinema rec --command='node example-all.js' --title='cli-spinner' --quiet" - }, "files": [ "index.js", "spinners.json" ], + "homepage": "https://github.com/sindresorhus/cli-spinners#readme", "keywords": [ "cli", "spinner", @@ -37,9 +67,15 @@ "idle", "json" ], - "devDependencies": { - "ava": "*", - "log-update": "^2.1.0", - "xo": "*" - } + "license": "MIT", + "name": "cli-spinners", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/cli-spinners.git" + }, + "scripts": { + "asciicast": "asciinema rec --command='node example-all.js' --title='cli-spinner' --quiet", + "test": "xo && ava" + }, + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/is-fullwidth-code-point/package.json b/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/is-fullwidth-code-point/package.json index b678d40de..8ef6aae15 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/is-fullwidth-code-point/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/is-fullwidth-code-point/package.json @@ -1,23 +1,56 @@ { - "name": "is-fullwidth-code-point", - "version": "1.0.0", - "description": "Check if the character represented by a given Unicode code point is fullwidth", - "license": "MIT", - "repository": "sindresorhus/is-fullwidth-code-point", + "_args": [ + [ + "is-fullwidth-code-point@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-fullwidth-code-point@1.0.0", + "_id": "is-fullwidth-code-point@1.0.0", + "_inBundle": false, + "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "_location": "/cli-truncate/is-fullwidth-code-point", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-fullwidth-code-point@1.0.0", + "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/cli-truncate/string-width" + ], + "_resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" + }, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "devDependencies": { + "ava": "0.0.4", + "code-point-at": "^1.0.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", "keywords": [ "fullwidth", "full-width", @@ -35,11 +68,14 @@ "detect", "check" ], - "dependencies": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "name": "is-fullwidth-code-point", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" }, - "devDependencies": { - "ava": "0.0.4", - "code-point-at": "^1.0.0" - } + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/slice-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/slice-ansi/package.json index 70bc93162..8ae3a50f1 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/slice-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/slice-ansi/package.json @@ -1,28 +1,55 @@ { - "name": "slice-ansi", - "version": "0.0.4", - "description": "Slice a string with ANSI escape codes", - "license": "MIT", - "repository": "chalk/slice-ansi", + "_args": [ + [ + "slice-ansi@0.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "slice-ansi@0.0.4", + "_id": "slice-ansi@0.0.4", + "_inBundle": false, + "_integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "_location": "/cli-truncate/slice-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "slice-ansi@0.0.4", + "name": "slice-ansi", + "escapedName": "slice-ansi", + "rawSpec": "0.0.4", + "saveSpec": null, + "fetchSpec": "0.0.4" + }, + "_requiredBy": [ + "/cli-truncate" + ], + "_resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz?cache=0&sync_timestamp=1618554984144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-0.0.4.tgz", + "_spec": "0.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "David Caccavella", "email": "threedeecee@gmail.com" }, - "maintainers": [ - "David Caccavella (github.com/dthree)", - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" - ], + "bugs": { + "url": "https://github.com/chalk/slice-ansi/issues" + }, + "dependencies": {}, + "description": "Slice a string with ANSI escape codes", + "devDependencies": { + "ava": "^0.2.0", + "chalk": "^1.1.1", + "strip-ansi": "^3.0.0", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js && xo" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/slice-ansi#readme", "keywords": [ "slice", "string", @@ -46,11 +73,36 @@ "command-line", "text" ], - "dependencies": {}, - "devDependencies": { - "ava": "^0.2.0", - "chalk": "^1.1.1", - "strip-ansi": "^3.0.0", - "xo": "*" - } + "license": "MIT", + "maintainers": [ + { + "name": "David Caccavella", + "email": "threedeecee@gmail.com", + "url": "github.com/dthree" + }, + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "slice-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/slice-ansi.git" + }, + "scripts": { + "test": "node test.js && xo" + }, + "version": "0.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/string-width/package.json index 5ba436166..6b106a937 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-truncate/node_modules/string-width/package.json @@ -1,23 +1,58 @@ { - "name": "string-width", - "version": "1.0.2", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", + "_args": [ + [ + "string-width@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@1.0.2", + "_id": "string-width@1.0.2", + "_inBundle": false, + "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "_location": "/cli-truncate/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@1.0.2", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/cli-truncate" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/string-width#readme", "keywords": [ "string", "str", @@ -44,13 +79,14 @@ "korean", "fixed-width" ], - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-truncate/package.json b/admin/vue2/element-admin-v3/node_modules/cli-truncate/package.json index 06e061294..9f950fe82 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-truncate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-truncate/package.json @@ -1,23 +1,61 @@ { - "name": "cli-truncate", - "version": "0.2.1", - "description": "Truncate a string to a specific width in the terminal", - "license": "MIT", - "repository": "sindresorhus/cli-truncate", + "_args": [ + [ + "cli-truncate@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cli-truncate@0.2.1", + "_id": "cli-truncate@0.2.1", + "_inBundle": false, + "_integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "_location": "/cli-truncate", + "_phantomChildren": { + "code-point-at": "1.1.0", + "number-is-nan": "1.0.1", + "strip-ansi": "3.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "cli-truncate@0.2.1", + "name": "cli-truncate", + "escapedName": "cli-truncate", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" + }, + "_requiredBy": [ + "/listr-update-renderer" + ], + "_resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/cli-truncate/issues" + }, + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "description": "Truncate a string to a specific width in the terminal", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/cli-truncate#readme", "keywords": [ "truncate", "ellipsis", @@ -31,12 +69,14 @@ "width", "ansi" ], - "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "license": "MIT", + "name": "cli-truncate", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/cli-truncate.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cli-width/package.json b/admin/vue2/element-admin-v3/node_modules/cli-width/package.json index 720fed7d8..cac131399 100644 --- a/admin/vue2/element-admin-v3/node_modules/cli-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cli-width/package.json @@ -1,29 +1,62 @@ { - "name": "cli-width", - "version": "2.2.1", - "description": "Get stdout window width, with two fallbacks, tty and then a default.", - "main": "index.js", - "scripts": { - "test": "node test | tspec", - "coverage": "nyc node test | tspec", - "coveralls": "npm run coverage -s && coveralls < coverage/lcov.info", - "release": "standard-version" + "_args": [ + [ + "cli-width@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cli-width@2.2.1", + "_id": "cli-width@2.2.1", + "_inBundle": false, + "_integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=", + "_location": "/cli-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cli-width@2.2.1", + "name": "cli-width", + "escapedName": "cli-width", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" }, - "repository": { - "type": "git", - "url": "git@github.com:knownasilya/cli-width.git" + "_requiredBy": [ + "/inquirer", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ilya Radchenko", + "email": "knownasilya@gmail.com" }, - "author": "Ilya Radchenko ", - "license": "ISC", "bugs": { "url": "https://github.com/knownasilya/cli-width/issues" }, - "homepage": "https://github.com/knownasilya/cli-width", + "description": "Get stdout window width, with two fallbacks, tty and then a default.", "devDependencies": { "coveralls": "^3.0.11", "nyc": "^15.0.1", "standard-version": "^7.1.0", "tap-spec": "^5.0.0", "tape": "^4.13.2" - } + }, + "homepage": "https://github.com/knownasilya/cli-width", + "license": "ISC", + "main": "index.js", + "name": "cli-width", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/knownasilya/cli-width.git" + }, + "scripts": { + "coverage": "nyc node test | tspec", + "coveralls": "npm run coverage -s && coveralls < coverage/lcov.info", + "release": "standard-version", + "test": "node test | tspec" + }, + "version": "2.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/clipboard/package.json b/admin/vue2/element-admin-v3/node_modules/clipboard/package.json index 3e55bd7c9..c194d962c 100644 --- a/admin/vue2/element-admin-v3/node_modules/clipboard/package.json +++ b/admin/vue2/element-admin-v3/node_modules/clipboard/package.json @@ -1,27 +1,48 @@ { - "name": "clipboard", - "version": "1.7.1", - "description": "Modern copy to clipboard. No Flash. Just 2kb", - "repository": "zenorocha/clipboard.js", - "license": "MIT", - "main": "lib/clipboard.js", - "keywords": [ - "clipboard", - "copy", - "cut" + "_args": [ + [ + "clipboard@1.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "clipboard@1.7.1", + "_id": "clipboard@1.7.1", + "_inBundle": false, + "_integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=", + "_location": "/clipboard", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clipboard@1.7.1", + "name": "clipboard", + "escapedName": "clipboard", + "rawSpec": "1.7.1", + "saveSpec": null, + "fetchSpec": "1.7.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-1.7.1.tgz?cache=0&sync_timestamp=1615410040723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-1.7.1.tgz", + "_spec": "1.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zenorocha/clipboard.js/issues" + }, "dependencies": { "good-listener": "^1.2.2", "select": "^1.1.2", "tiny-emitter": "^2.0.0" }, + "description": "Modern copy to clipboard. No Flash. Just 2kb", "devDependencies": { "babel-cli": "^6.24.1", "babel-core": "^6.24.1", "babel-plugin-transform-es2015-modules-umd": "^6.24.1", "babel-preset-es2015": "^6.24.1", "babelify": "^7.3.0", - "bannerify": "Vekat/bannerify#feature-option", + "bannerify": "github:Vekat/bannerify#feature-option", "browserify": "^14.3.0", "chai": "^3.5.0", "install": "^0.9.6", @@ -37,12 +58,26 @@ "uglify-js": "^2.8.22", "watchify": "^3.9.0" }, + "homepage": "https://github.com/zenorocha/clipboard.js#readme", + "keywords": [ + "clipboard", + "copy", + "cut" + ], + "license": "MIT", + "main": "lib/clipboard.js", + "name": "clipboard", + "repository": { + "type": "git", + "url": "git+https://github.com/zenorocha/clipboard.js.git" + }, "scripts": { "build": "npm run build-debug && npm run build-min", "build-debug": "browserify src/clipboard.js -s Clipboard -t [babelify] -p [bannerify --file .banner ] -o dist/clipboard.js", "build-min": "uglifyjs dist/clipboard.js --comments '/!/' -m screw_ie8=true -c screw_ie8=true,unused=false -o dist/clipboard.min.js", "build-watch": "watchify src/clipboard.js -s Clipboard -t [babelify] -o dist/clipboard.js -v", - "test": "karma start --single-run", - "prepublish": "babel src --out-dir lib" - } + "prepublish": "babel src --out-dir lib", + "test": "karma start --single-run" + }, + "version": "1.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/ansi-regex/package.json index a849fdf52..26ae2d35d 100644 --- a/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/ansi-regex/package.json @@ -1,53 +1,88 @@ { - "name": "ansi-regex", - "version": "4.1.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^0.25.0", - "xo": "^0.23.0" - } + "_args": [ + [ + "ansi-regex@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-regex@4.1.0", + "_id": "ansi-regex@4.1.0", + "_inBundle": false, + "_integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "_location": "/cliui/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@4.1.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/cliui/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^0.25.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/strip-ansi/package.json index 7494fd7e8..511b5f397 100644 --- a/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cliui/node_modules/strip-ansi/package.json @@ -1,54 +1,89 @@ { - "name": "strip-ansi", - "version": "5.2.0", - "description": "Strip ANSI escape codes from a string", - "license": "MIT", - "repository": "chalk/strip-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "devDependencies": { - "ava": "^1.3.1", - "tsd-check": "^0.5.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "strip-ansi@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "strip-ansi@5.2.0", + "_id": "strip-ansi@5.2.0", + "_inBundle": false, + "_integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "_location": "/cliui/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@5.2.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/cliui" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cliui/package.json b/admin/vue2/element-admin-v3/node_modules/cliui/package.json index 64936f71a..453b6518d 100644 --- a/admin/vue2/element-admin-v3/node_modules/cliui/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cliui/package.json @@ -1,17 +1,40 @@ { - "name": "cliui", - "version": "5.0.0", - "description": "easily create complex multi-column command-line-interfaces", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "nyc mocha", - "coverage": "nyc --reporter=text-lcov mocha | coveralls", - "release": "standard-version" + "_args": [ + [ + "cliui@5.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "cliui@5.0.0", + "_id": "cliui@5.0.0", + "_inBundle": false, + "_integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "_location": "/cliui", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cliui@5.0.0", + "name": "cliui", + "escapedName": "cliui", + "rawSpec": "5.0.0", + "saveSpec": null, + "fetchSpec": "5.0.0" }, - "repository": { - "type": "git", - "url": "http://github.com/yargs/cliui.git" + "_requiredBy": [ + "/sass-graph/yargs", + "/webpack-dev-server/yargs", + "/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1604880249159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz", + "_spec": "5.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/cliui/issues" }, "config": { "blanket": { @@ -25,30 +48,12 @@ "output-reporter": "spec" } }, - "standard": { - "ignore": [ - "**/example/**" - ], - "globals": [ - "it" - ] - }, - "keywords": [ - "cli", - "command-line", - "layout", - "design", - "console", - "wrap", - "table" - ], - "author": "Ben Coe ", - "license": "ISC", "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" }, + "description": "easily create complex multi-column command-line-interfaces", "devDependencies": { "chai": "^4.2.0", "chalk": "^2.4.2", @@ -58,10 +63,42 @@ "standard": "^12.0.1", "standard-version": "^5.0.2" }, + "engine": { + "node": ">=6" + }, "files": [ "index.js" ], - "engine": { - "node": ">=6" - } + "homepage": "https://github.com/yargs/cliui#readme", + "keywords": [ + "cli", + "command-line", + "layout", + "design", + "console", + "wrap", + "table" + ], + "license": "ISC", + "main": "index.js", + "name": "cliui", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yargs/cliui.git" + }, + "scripts": { + "coverage": "nyc --reporter=text-lcov mocha | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc mocha" + }, + "standard": { + "ignore": [ + "**/example/**" + ], + "globals": [ + "it" + ] + }, + "version": "5.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/clone-deep/package.json b/admin/vue2/element-admin-v3/node_modules/clone-deep/package.json index 8ccd4dc73..48f92a478 100644 --- a/admin/vue2/element-admin-v3/node_modules/clone-deep/package.json +++ b/admin/vue2/element-admin-v3/node_modules/clone-deep/package.json @@ -1,23 +1,39 @@ { - "name": "clone-deep", - "description": "Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives.", - "version": "2.0.2", - "homepage": "https://github.com/jonschlinkert/clone-deep", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/clone-deep", - "bugs": { - "url": "https://github.com/jonschlinkert/clone-deep/issues" + "_args": [ + [ + "clone-deep@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "clone-deep@2.0.2", + "_id": "clone-deep@2.0.2", + "_inBundle": false, + "_integrity": "sha1-ANs6Hhc2VnMNEYjD1qztbX6pdxM=", + "_location": "/clone-deep", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clone-deep@2.0.2", + "name": "clone-deep", + "escapedName": "clone-deep", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/sass-loader" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/clone-deep/issues" }, "dependencies": { "for-own": "^1.0.0", @@ -25,10 +41,18 @@ "kind-of": "^6.0.0", "shallow-clone": "^1.0.0" }, + "description": "Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "3.5.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/clone-deep", "keywords": [ "array", "assign", @@ -52,6 +76,16 @@ "util", "utility" ], + "license": "MIT", + "main": "index.js", + "name": "clone-deep", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/clone-deep.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -72,5 +106,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/clone/package.json b/admin/vue2/element-admin-v3/node_modules/clone/package.json index 3ddd242f4..d46f595a8 100644 --- a/admin/vue2/element-admin-v3/node_modules/clone/package.json +++ b/admin/vue2/element-admin-v3/node_modules/clone/package.json @@ -1,51 +1,141 @@ { - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" + "_args": [ + [ + "clone@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "1.0.4", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" + "_development": true, + "_from": "clone@1.0.4", + "_id": "clone@1.0.4", + "_inBundle": false, + "_integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "_location": "/clone", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clone@1.0.4", + "name": "clone", + "escapedName": "clone", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/defaults" + ], + "_resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Paul Vorbach", + "email": "paul@vorba.ch", + "url": "http://paul.vorba.ch/" }, "bugs": { "url": "https://github.com/pvorb/node-clone/issues" }, - "main": "clone.js", - "author": "Paul Vorbach (http://paul.vorba.ch/)", "contributors": [ - "Blake Miner (http://www.blakeminer.com/)", - "Tian You (http://blog.axqd.net/)", - "George Stagas (http://stagas.com/)", - "Tobiasz Cudnik (https://github.com/TobiaszCudnik)", - "Pavel Lang (https://github.com/langpavel)", - "Dan MacTough (http://yabfog.com/)", - "w1nk (https://github.com/w1nk)", - "Hugh Kennedy (http://twitter.com/hughskennedy)", - "Dustin Diaz (http://dustindiaz.com)", - "Ilya Shaisultanov (https://github.com/diversario)", - "Nathan MacInnes (http://macinn.es/)", - "Benjamin E. Coe (https://twitter.com/benjamincoe)", - "Nathan Zadoks (https://github.com/nathan7)", - "Róbert Oroszi (https://github.com/oroce)", - "Aurélio A. Heckert (http://softwarelivre.org/aurium)", - "Guy Ellis (http://www.guyellisrocks.com/)" + { + "name": "Blake Miner", + "email": "miner.blake@gmail.com", + "url": "http://www.blakeminer.com/" + }, + { + "name": "Tian You", + "email": "axqd001@gmail.com", + "url": "http://blog.axqd.net/" + }, + { + "name": "George Stagas", + "email": "gstagas@gmail.com", + "url": "http://stagas.com/" + }, + { + "name": "Tobiasz Cudnik", + "email": "tobiasz.cudnik@gmail.com", + "url": "https://github.com/TobiaszCudnik" + }, + { + "name": "Pavel Lang", + "email": "langpavel@phpskelet.org", + "url": "https://github.com/langpavel" + }, + { + "name": "Dan MacTough", + "url": "http://yabfog.com/" + }, + { + "name": "w1nk", + "url": "https://github.com/w1nk" + }, + { + "name": "Hugh Kennedy", + "url": "http://twitter.com/hughskennedy" + }, + { + "name": "Dustin Diaz", + "url": "http://dustindiaz.com" + }, + { + "name": "Ilya Shaisultanov", + "url": "https://github.com/diversario" + }, + { + "name": "Nathan MacInnes", + "email": "nathan@macinn.es", + "url": "http://macinn.es/" + }, + { + "name": "Benjamin E. Coe", + "email": "ben@npmjs.com", + "url": "https://twitter.com/benjamincoe" + }, + { + "name": "Nathan Zadoks", + "url": "https://github.com/nathan7" + }, + { + "name": "Róbert Oroszi", + "email": "robert+gh@oroszi.net", + "url": "https://github.com/oroce" + }, + { + "name": "Aurélio A. Heckert", + "url": "http://softwarelivre.org/aurium" + }, + { + "name": "Guy Ellis", + "url": "http://www.guyellisrocks.com/" + } ], - "license": "MIT", - "engines": { - "node": ">=0.8" - }, "dependencies": {}, + "description": "deep cloning of objects and arrays", "devDependencies": { "nodeunit": "~0.9.0" }, + "engines": { + "node": ">=0.8" + }, + "homepage": "https://github.com/pvorb/node-clone#readme", + "license": "MIT", + "main": "clone.js", + "name": "clone", "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/pvorb/node-clone.git" + }, "scripts": { "test": "nodeunit test.js" - } + }, + "tags": [ + "clone", + "object", + "array", + "function", + "date" + ], + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/co/package.json b/admin/vue2/element-admin-v3/node_modules/co/package.json index 083d59409..d46c8c6a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/co/package.json +++ b/admin/vue2/element-admin-v3/node_modules/co/package.json @@ -1,7 +1,52 @@ { - "name": "co", - "version": "4.6.0", + "_args": [ + [ + "co@4.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "co@4.6.0", + "_id": "co@4.6.0", + "_inBundle": false, + "_integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "_location": "/co", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "co@4.6.0", + "name": "co", + "escapedName": "co", + "rawSpec": "4.6.0", + "saveSpec": null, + "fetchSpec": "4.6.0" + }, + "_requiredBy": [ + "/eslint/ajv", + "/table/ajv" + ], + "_resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", + "_spec": "4.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/tj/co/issues" + }, "description": "generator async control flow goodness", + "devDependencies": { + "browserify": "^10.0.0", + "istanbul-harmony": "0", + "mocha": "^2.0.0", + "mz": "^1.0.2" + }, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/tj/co#readme", "keywords": [ "async", "flow", @@ -9,26 +54,18 @@ "coro", "coroutine" ], - "devDependencies": { - "browserify": "^10.0.0", - "istanbul-harmony": "0", - "mocha": "^2.0.0", - "mz": "^1.0.2" + "license": "MIT", + "name": "co", + "repository": { + "type": "git", + "url": "git+https://github.com/tj/co.git" }, "scripts": { + "browserify": "browserify index.js -o ./co-browser.js -s co", + "prepublish": "npm run browserify", "test": "mocha --harmony", "test-cov": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --reporter dot", - "test-travis": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --reporter dot", - "prepublish": "npm run browserify", - "browserify": "browserify index.js -o ./co-browser.js -s co" + "test-travis": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --reporter dot" }, - "files": [ - "index.js" - ], - "license": "MIT", - "repository": "tj/co", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } + "version": "4.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/coa/package.json b/admin/vue2/element-admin-v3/node_modules/coa/package.json index e2da57651..d7ce96245 100644 --- a/admin/vue2/element-admin-v3/node_modules/coa/package.json +++ b/admin/vue2/element-admin-v3/node_modules/coa/package.json @@ -1,34 +1,54 @@ { - "name": "coa", - "description": "Command-Option-Argument: Yet another parser for command line options.", - "version": "2.0.2", - "homepage": "http://github.com/veged/coa", - "author": "Sergey Berezhnoy (http://github.com/veged)", - "maintainers": [ - "Sergey Berezhnoy (http://github.com/veged)", - "Sergey Belov (http://github.com/arikon)" - ], - "contributors": [ - "Sergey Belov (http://github.com/arikon)" + "_args": [ + [ + "coa@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib/", - "index.js", - "coa.d.ts", - "README.ru.md" + "_development": true, + "_from": "coa@2.0.2", + "_id": "coa@2.0.2", + "_inBundle": false, + "_integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", + "_location": "/coa", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "coa@2.0.2", + "name": "coa", + "escapedName": "coa", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/svgo" ], - "repository": { - "type": "git", - "url": "git://github.com/veged/coa.git" + "_resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sergey Berezhnoy", + "email": "veged@ya.ru", + "url": "http://github.com/veged" }, - "directories": { - "lib": "./lib" + "bugs": { + "url": "https://github.com/veged/coa/issues" }, + "contributors": [ + { + "name": "Sergey Belov", + "email": "peimei@ya.ru", + "url": "http://github.com/arikon" + } + ], "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" }, + "description": "Command-Option-Argument: Yet another parser for command line options.", "devDependencies": { "chai": "~1.7.2", "coveralls": "^2.11.16", @@ -37,6 +57,37 @@ "mocha": "~1.21.4", "nyc": "^10.1.2" }, + "directories": { + "lib": "./lib" + }, + "engines": { + "node": ">= 4.0" + }, + "files": [ + "lib/", + "index.js", + "coa.d.ts", + "README.ru.md" + ], + "homepage": "http://github.com/veged/coa", + "license": "MIT", + "maintainers": [ + { + "name": "Sergey Berezhnoy", + "email": "veged@ya.ru", + "url": "http://github.com/veged" + }, + { + "name": "Sergey Belov", + "email": "peimei@ya.ru", + "url": "http://github.com/arikon" + } + ], + "name": "coa", + "repository": { + "type": "git", + "url": "git://github.com/veged/coa.git" + }, "scripts": { "clean": "rm -r .nyc_output coverage", "coverage": "nyc --reporter=text --reporter=html mocha; echo; echo 'Open coverage/index.html file in your browser'", @@ -45,9 +96,6 @@ "pretest": "npm run lint", "test": "nyc mocha" }, - "engines": { - "node": ">= 4.0" - }, "types": "./coa.d.ts", - "license": "MIT" + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/coalescy/package.json b/admin/vue2/element-admin-v3/node_modules/coalescy/package.json index 6364debb0..fdc26298b 100644 --- a/admin/vue2/element-admin-v3/node_modules/coalescy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/coalescy/package.json @@ -1,19 +1,48 @@ { - "name": "coalescy", - "version": "1.0.0", - "description": "Simple function that return the first non null or undefined argument ", - "main": "index.js", - "scripts": { - "test": "mocha-runner './specs/**/*.js'", - "lint": "eslint --format 'node_modules/eslint-friendly-formatter' lib/ bin/ specs/ -c './configs/eslint.json'", - "coverage": "istanbul cover -x 'specs/**/*.js' mocha-runner 'specs/**/*.js' html text-summary", - "coverage-cache": "istanbul cover -x 'specs/**/*.js' mocha-runner 'specs/**/*.js' html text-summary -- --useCache=true", - "watch": "npm run coverage && watch-spawn -p 'specs/**/*.js' -p 'bin/**/*.js' -p 'lib/**/*.js' npm run coverage-cache" + "_args": [ + [ + "coalescy@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "coalescy@1.0.0", + "_id": "coalescy@1.0.0", + "_inBundle": false, + "_integrity": "sha1-SwZYRrg2NhrabEtKSr9LwcrDG/E=", + "_location": "/coalescy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "coalescy@1.0.0", + "name": "coalescy", + "escapedName": "coalescy", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/royriojas/coalescy.git" + "_requiredBy": [ + "/eslint-friendly-formatter" + ], + "_resolved": "https://registry.npm.taobao.org/coalescy/download/coalescy-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roy Riojas" + }, + "bugs": { + "url": "https://github.com/royriojas/coalescy/issues" }, + "description": "Simple function that return the first non null or undefined argument ", + "devDependencies": { + "eslint": "^0.16.1", + "eslint-friendly-formatter": "^1.0.3", + "istanbul": "^0.3.7", + "mocha-runner": "^1.0.0", + "watch-spawn": "^1.0.2" + }, + "homepage": "https://github.com/royriojas/coalescy", "keywords": [ "coalesce", "first", @@ -24,17 +53,19 @@ "undefined", "utility" ], - "author": "Roy Riojas", "license": "MIT", - "bugs": { - "url": "https://github.com/royriojas/coalescy/issues" + "main": "index.js", + "name": "coalescy", + "repository": { + "type": "git", + "url": "git+https://github.com/royriojas/coalescy.git" }, - "homepage": "https://github.com/royriojas/coalescy", - "devDependencies": { - "eslint": "^0.16.1", - "eslint-friendly-formatter": "^1.0.3", - "istanbul": "^0.3.7", - "mocha-runner": "^1.0.0", - "watch-spawn": "^1.0.2" - } + "scripts": { + "coverage": "istanbul cover -x 'specs/**/*.js' mocha-runner 'specs/**/*.js' html text-summary", + "coverage-cache": "istanbul cover -x 'specs/**/*.js' mocha-runner 'specs/**/*.js' html text-summary -- --useCache=true", + "lint": "eslint --format 'node_modules/eslint-friendly-formatter' lib/ bin/ specs/ -c './configs/eslint.json'", + "test": "mocha-runner './specs/**/*.js'", + "watch": "npm run coverage && watch-spawn -p 'specs/**/*.js' -p 'bin/**/*.js' -p 'lib/**/*.js' npm run coverage-cache" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/code-point-at/package.json b/admin/vue2/element-admin-v3/node_modules/code-point-at/package.json index c5907a507..0d29d0fef 100644 --- a/admin/vue2/element-admin-v3/node_modules/code-point-at/package.json +++ b/admin/vue2/element-admin-v3/node_modules/code-point-at/package.json @@ -1,23 +1,55 @@ { - "name": "code-point-at", - "version": "1.1.0", - "description": "ES2015 `String#codePointAt()` ponyfill", - "license": "MIT", - "repository": "sindresorhus/code-point-at", + "_args": [ + [ + "code-point-at@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "code-point-at@1.1.0", + "_id": "code-point-at@1.1.0", + "_inBundle": false, + "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "_location": "/code-point-at", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "code-point-at@1.1.0", + "name": "code-point-at", + "escapedName": "code-point-at", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/cli-truncate/string-width", + "/gauge/string-width", + "/webpack-cli/wrap-ansi/string-width" + ], + "_resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/code-point-at/issues" + }, + "description": "ES2015 `String#codePointAt()` ponyfill", + "devDependencies": { + "ava": "*", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/code-point-at#readme", "keywords": [ "es2015", "ponyfill", @@ -31,8 +63,14 @@ "codepoint", "unicode" ], - "devDependencies": { - "ava": "*", - "xo": "^0.16.0" - } + "license": "MIT", + "name": "code-point-at", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/code-point-at.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/codemirror/package.json b/admin/vue2/element-admin-v3/node_modules/codemirror/package.json index 2103e1c32..4dee724f7 100644 --- a/admin/vue2/element-admin-v3/node_modules/codemirror/package.json +++ b/admin/vue2/element-admin-v3/node_modules/codemirror/package.json @@ -1,25 +1,2733 @@ { - "name": "codemirror", - "version": "5.58.2", - "main": "lib/codemirror.js", - "style": "lib/codemirror.css", + "_args": [ + [ + "codemirror@5.58.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "codemirror@5.58.2", + "_id": "codemirror@5.58.2", + "_inBundle": false, + "_integrity": "sha1-7VSheW3hSYaIvqHN1OnusYdWXRs=", + "_location": "/codemirror", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "codemirror@5.58.2", + "name": "codemirror", + "escapedName": "codemirror", + "rawSpec": "5.58.2", + "saveSpec": null, + "fetchSpec": "5.58.2" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/codemirror/download/codemirror-5.58.2.tgz", + "_spec": "5.58.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", "url": "http://marijnhaverbeke.nl" }, - "description": "Full-featured in-browser code editor", - "license": "MIT", - "directories": { - "lib": "./lib" - }, - "scripts": { - "build": "rollup -c", - "watch": "rollup -w -c", - "prepare": "npm run-script build", - "test": "node ./test/run.js", - "lint": "bin/lint" + "bugs": { + "url": "http://github.com/codemirror/CodeMirror/issues" }, + "contributors": [ + { + "name": "List of CodeMirror contributors. Updated before every release." + }, + { + "name": "4oo4" + }, + { + "name": "4r2r" + }, + { + "name": "Aaron Brooks" + }, + { + "name": "Abdelouahab" + }, + { + "name": "Abdussalam Abdurrahman" + }, + { + "name": "Abe Fettig" + }, + { + "name": "Abhishek Gahlot" + }, + { + "name": "Adam Ahmed" + }, + { + "name": "Adam King" + }, + { + "name": "Adam Particka" + }, + { + "name": "adanlobato" + }, + { + "name": "Adán Lobato" + }, + { + "name": "Aditya Toshniwal" + }, + { + "name": "Adrian Aichner" + }, + { + "name": "Adrian Heine" + }, + { + "name": "Adrian Kunz" + }, + { + "name": "Adrien Bertrand" + }, + { + "name": "aeroson" + }, + { + "name": "Ahmad Amireh" + }, + { + "name": "Ahmad M. Zawawi" + }, + { + "name": "ahoward" + }, + { + "name": "Ajin Abraham" + }, + { + "name": "Akeksandr Motsjonov" + }, + { + "name": "Alasdair Smith" + }, + { + "name": "AlbertHilb" + }, + { + "name": "Alberto González Palomo" + }, + { + "name": "Alberto Pose" + }, + { + "name": "Albert Xing" + }, + { + "name": "Alexander Pavlov" + }, + { + "name": "Alexander Schepanovski" + }, + { + "name": "Alexander Shvets" + }, + { + "name": "Alexander Solovyov" + }, + { + "name": "Alexandre Bique" + }, + { + "name": "Alex Churchill" + }, + { + "name": "alexey-k" + }, + { + "name": "Alex Piggott" + }, + { + "name": "Aliaksei Chapyzhenka" + }, + { + "name": "Allen Sarkisyan" + }, + { + "name": "Ami Fischman" + }, + { + "name": "Amin Shali" + }, + { + "name": "Amin Ullah Khan" + }, + { + "name": "amshali@google.com" + }, + { + "name": "Amsul" + }, + { + "name": "amuntean" + }, + { + "name": "Amy" + }, + { + "name": "Ananya Sen" + }, + { + "name": "anaran" + }, + { + "name": "AndersMad" + }, + { + "name": "Anders Nawroth" + }, + { + "name": "Anderson Mesquita" + }, + { + "name": "Anders Wåglund" + }, + { + "name": "Andrea G" + }, + { + "name": "Andreas Reischuck" + }, + { + "name": "Andres Taylor" + }, + { + "name": "Andre von Houck" + }, + { + "name": "Andrew Cheng" + }, + { + "name": "Andrew Dassonville" + }, + { + "name": "Andrey Fedorov" + }, + { + "name": "Andrey Klyuchnikov" + }, + { + "name": "Andrey Lushnikov" + }, + { + "name": "Andrey Shchekin" + }, + { + "name": "Andy Joslin" + }, + { + "name": "Andy Kimball" + }, + { + "name": "Andy Li" + }, + { + "name": "Angelo" + }, + { + "name": "angelozerr" + }, + { + "name": "angelo.zerr@gmail.com" + }, + { + "name": "Ankit" + }, + { + "name": "Ankit Ahuja" + }, + { + "name": "Ansel Santosa" + }, + { + "name": "Anthony Dugois" + }, + { + "name": "anthonygego" + }, + { + "name": "Anthony Gégo" + }, + { + "name": "Anthony Grimes" + }, + { + "name": "Anton Kovalyov" + }, + { + "name": "antosarho" + }, + { + "name": "Apollo Zhu" + }, + { + "name": "AQNOUCH Mohammed" + }, + { + "name": "Aram Shatakhtsyan" + }, + { + "name": "areos" + }, + { + "name": "Arnab Bose" + }, + { + "name": "Arnoud Buzing" + }, + { + "name": "Arsène von Wyss" + }, + { + "name": "Arthur Müller" + }, + { + "name": "Arun Narasani" + }, + { + "name": "as3boyan" + }, + { + "name": "asolove" + }, + { + "name": "atelierbram" + }, + { + "name": "AtomicPages LLC" + }, + { + "name": "Atul Bhouraskar" + }, + { + "name": "Aurelian Oancea" + }, + { + "name": "Axel Lewenhaupt" + }, + { + "name": "Baptiste Augrain" + }, + { + "name": "Barret Rennie" + }, + { + "name": "Bartosz Dziewoński" + }, + { + "name": "Basarat Ali Syed" + }, + { + "name": "Bastian Müller" + }, + { + "name": "belhaj" + }, + { + "name": "Bem Jones-Bey" + }, + { + "name": "benbro" + }, + { + "name": "Benedikt Meurer" + }, + { + "name": "benhormann" + }, + { + "name": "Ben Hormann" + }, + { + "name": "Beni Cherniavsky-Paskin" + }, + { + "name": "Benjamin DeCoste" + }, + { + "name": "Benjamin Young" + }, + { + "name": "Ben Keen" + }, + { + "name": "Ben Miller" + }, + { + "name": "Ben Mosher" + }, + { + "name": "Bernhard Sirlinger" + }, + { + "name": "Bert Chang" + }, + { + "name": "Bharad" + }, + { + "name": "BigBlueHat" + }, + { + "name": "Billy Moon" + }, + { + "name": "Bin Ni" + }, + { + "name": "binny" + }, + { + "name": "Bjorn Hansen" + }, + { + "name": "B Krishna Chaitanya" + }, + { + "name": "Blaine G" + }, + { + "name": "blukat29" + }, + { + "name": "Bo" + }, + { + "name": "boomyjee" + }, + { + "name": "Bo Peng" + }, + { + "name": "borawjm" + }, + { + "name": "Boris K" + }, + { + "name": "Brad Metcalf" + }, + { + "name": "Brandon Frohs" + }, + { + "name": "Brandon Wamboldt" + }, + { + "name": "Bret Little" + }, + { + "name": "Brett Zamir" + }, + { + "name": "Brian Grinstead" + }, + { + "name": "BrianHung" + }, + { + "name": "Brian Sletten" + }, + { + "name": "brrd" + }, + { + "name": "Bruce Mitchener" + }, + { + "name": "Bruno Logerfo" + }, + { + "name": "Bryan Gin-ge Chen" + }, + { + "name": "Bryan Massoth" + }, + { + "name": "Caitlin Potter" + }, + { + "name": "Calin Barbat" + }, + { + "name": "callodacity" + }, + { + "name": "Camilo Roca" + }, + { + "name": "Casey Klebba" + }, + { + "name": "cBiscuit87" + }, + { + "name": "César González Íñiguez" + }, + { + "name": "Chad Jolly" + }, + { + "name": "Chandra Sekhar Pydi" + }, + { + "name": "Charles Skelton" + }, + { + "name": "Cheah Chu Yeow" + }, + { + "name": "Chhekur" + }, + { + "name": "Chris Colborne" + }, + { + "name": "Chris Coyier" + }, + { + "name": "Chris Ford" + }, + { + "name": "Chris Granger" + }, + { + "name": "Chris Houseknecht" + }, + { + "name": "Chris Lohfink" + }, + { + "name": "Chris Morgan" + }, + { + "name": "Chris Reeves" + }, + { + "name": "Chris Smith" + }, + { + "name": "Christian Gruen" + }, + { + "name": "Christian Oyarzun" + }, + { + "name": "Christian Petrov" + }, + { + "name": "christopherblaser" + }, + { + "name": "Christopher Brown" + }, + { + "name": "Christopher Kramer" + }, + { + "name": "Christopher Mitchell" + }, + { + "name": "Christopher Pfohl" + }, + { + "name": "Christopher Wallis" + }, + { + "name": "Chunliang Lyu" + }, + { + "name": "ciaranj" + }, + { + "name": "clone-it" + }, + { + "name": "clso" + }, + { + "name": "CodeAnimal" + }, + { + "name": "CodeBitt" + }, + { + "name": "coderaiser" + }, + { + "name": "Cole R Lawrence" + }, + { + "name": "ComFreek" + }, + { + "name": "Cristian Prieto" + }, + { + "name": "Curran Kelleher" + }, + { + "name": "Curtis Gagliardi" + }, + { + "name": "d8888" + }, + { + "name": "dagsta" + }, + { + "name": "daines" + }, + { + "name": "Dale Jung" + }, + { + "name": "Dan Bentley" + }, + { + "name": "Dan Heberden" + }, + { + "name": "Daniel, Dao Quang Minh" + }, + { + "name": "Daniele Di Sarli" + }, + { + "name": "Daniel Faust" + }, + { + "name": "Daniel Hanggi" + }, + { + "name": "Daniel Huigens" + }, + { + "name": "Daniel Kesler" + }, + { + "name": "Daniel KJ" + }, + { + "name": "Daniel Neel" + }, + { + "name": "Daniel Parnell" + }, + { + "name": "Daniel Thwaites" + }, + { + "name": "Danila Malyutin" + }, + { + "name": "Danny Yoo" + }, + { + "name": "darealshinji" + }, + { + "name": "Darius Roberts" + }, + { + "name": "databricks-david-lewis" + }, + { + "name": "Dave Brondsema" + }, + { + "name": "Dave MacLachlan" + }, + { + "name": "Dave Myers" + }, + { + "name": "David Barnett" + }, + { + "name": "David H. Bronke" + }, + { + "name": "David Mignot" + }, + { + "name": "David Pathakjee" + }, + { + "name": "David R. Myers" + }, + { + "name": "David Rodrigues" + }, + { + "name": "David Santana" + }, + { + "name": "David Vázquez" + }, + { + "name": "David Whittington" + }, + { + "name": "deebugger" + }, + { + "name": "Deep Thought" + }, + { + "name": "Denis Ovsienko" + }, + { + "name": "Devin Abbott" + }, + { + "name": "Devon Carew" + }, + { + "name": "Dick Choi" + }, + { + "name": "Diego Fernandez" + }, + { + "name": "dignifiedquire" + }, + { + "name": "Dimage Sapelkin" + }, + { + "name": "Dinindu D. Wanniarachchi" + }, + { + "name": "dmaclach" + }, + { + "name": "Dmitry Kiselyov" + }, + { + "name": "domagoj412" + }, + { + "name": "Dominator008" + }, + { + "name": "Domizio Demichelis" + }, + { + "name": "Doug Blank" + }, + { + "name": "Doug Wikle" + }, + { + "name": "Drew Bratcher" + }, + { + "name": "Drew Hintz" + }, + { + "name": "Drew Khoury" + }, + { + "name": "Drini Cami" + }, + { + "name": "Dror BG" + }, + { + "name": "Duncan Lilley" + }, + { + "name": "duralog" + }, + { + "name": "dwelle" + }, + { + "name": "Ealton" + }, + { + "name": "eborden" + }, + { + "name": "edoroshenko" + }, + { + "name": "edsharp" + }, + { + "name": "ekhaled" + }, + { + "name": "Elisée" + }, + { + "name": "elpnt" + }, + { + "name": "Emmanuel Schanzer" + }, + { + "name": "Enam Mijbah Noor" + }, + { + "name": "Eric Allam" + }, + { + "name": "Eric Bogard" + }, + { + "name": "Erik Demaine" + }, + { + "name": "Erik Welander" + }, + { + "name": "eustas" + }, + { + "name": "Evan Minsk" + }, + { + "name": "Fabien Dubosson" + }, + { + "name": "Fabien O'Carroll" + }, + { + "name": "Fabio Zendhi Nagao" + }, + { + "name": "Faiza Alsaied" + }, + { + "name": "Fauntleroy" + }, + { + "name": "fbuchinger" + }, + { + "name": "feizhang365" + }, + { + "name": "Felipe Lalanne" + }, + { + "name": "Felix Raab" + }, + { + "name": "ficristo" + }, + { + "name": "Filip Noetzel" + }, + { + "name": "Filip Stollár" + }, + { + "name": "Filype Pereira" + }, + { + "name": "finalfantasia" + }, + { + "name": "flack" + }, + { + "name": "Florian Felten" + }, + { + "name": "Fons van der Plas" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "ForbesLindesay" + }, + { + "name": "Ford_Lawnmower" + }, + { + "name": "Forrest Oliphant" + }, + { + "name": "Franco Catena" + }, + { + "name": "Frank Seifferth" + }, + { + "name": "Frank Wiegand" + }, + { + "name": "fraxx001" + }, + { + "name": "Fredrik Borg" + }, + { + "name": "FUJI Goro", + "url": "gfx" + }, + { + "name": "Gabriel Gheorghian" + }, + { + "name": "Gabriel Horner" + }, + { + "name": "Gabriel Nahmias" + }, + { + "name": "galambalazs" + }, + { + "name": "Gary Sheng" + }, + { + "name": "Gautam Mehta" + }, + { + "name": "Gavin Douglas" + }, + { + "name": "gekkoe" + }, + { + "name": "Geordie Hall" + }, + { + "name": "George Stephanis" + }, + { + "name": "geowarin" + }, + { + "name": "Gerard Braad" + }, + { + "name": "Gergely Hegykozi" + }, + { + "name": "Germain Chazot" + }, + { + "name": "Giovanni Calò" + }, + { + "name": "Glebov Boris" + }, + { + "name": "Glenn Jorde" + }, + { + "name": "Glenn Ruehle" + }, + { + "name": "goldsmcb" + }, + { + "name": "Golevka" + }, + { + "name": "Google LLC" + }, + { + "name": "Gordon Smith" + }, + { + "name": "Grant Skinner" + }, + { + "name": "greengiant" + }, + { + "name": "Gregory Koberger" + }, + { + "name": "Grzegorz Mazur" + }, + { + "name": "Guang Li" + }, + { + "name": "Guan Gui" + }, + { + "name": "Guillaume Massé" + }, + { + "name": "Guillaume Massé" + }, + { + "name": "guraga" + }, + { + "name": "Gustavo Rodrigues" + }, + { + "name": "Hakan Tunc" + }, + { + "name": "Hanno Fellmann" + }, + { + "name": "Hans Engel" + }, + { + "name": "Hanzhao Deng" + }, + { + "name": "Haoran Yu" + }, + { + "name": "Harald Schilly" + }, + { + "name": "Hardest" + }, + { + "name": "Harshvardhan Gupta" + }, + { + "name": "Hasan Delibaş" + }, + { + "name": "Hasan Karahan" + }, + { + "name": "Heanes" + }, + { + "name": "Hector Oswaldo Caballero" + }, + { + "name": "Hein Htat" + }, + { + "name": "Hélio" + }, + { + "name": "Hendrik Wallbaum" + }, + { + "name": "Henrik Haugbølle" + }, + { + "name": "Herculano Campos" + }, + { + "name": "hidaiy" + }, + { + "name": "Hiroyuki Makino" + }, + { + "name": "hitsthings" + }, + { + "name": "Hocdoc" + }, + { + "name": "Howard" + }, + { + "name": "Howard Jing" + }, + { + "name": "Hugues Malphettes" + }, + { + "name": "Ian Beck" + }, + { + "name": "Ian Davies" + }, + { + "name": "Ian Dickinson" + }, + { + "name": "ianhi" + }, + { + "name": "Ian Rose" + }, + { + "name": "Ian Wehrman" + }, + { + "name": "Ian Wetherbee" + }, + { + "name": "Ice White" + }, + { + "name": "ICHIKAWA, Yuji" + }, + { + "name": "idleberg" + }, + { + "name": "Igor Petruk" + }, + { + "name": "ilvalle" + }, + { + "name": "Ilya Kharlamov" + }, + { + "name": "Ilya Zverev" + }, + { + "name": "Ingo Richter" + }, + { + "name": "Intervue" + }, + { + "name": "Irakli Gozalishvili" + }, + { + "name": "Ivan Kurnosov" + }, + { + "name": "Ivoah" + }, + { + "name": "Jack Douglas" + }, + { + "name": "Jacob Lee" + }, + { + "name": "Jaimin" + }, + { + "name": "Jake Peyser" + }, + { + "name": "Jakob Miland" + }, + { + "name": "Jakub Vrana" + }, + { + "name": "Jakub Vrána" + }, + { + "name": "James Campos" + }, + { + "name": "James Cockshull" + }, + { + "name": "James Howard" + }, + { + "name": "James Thorne" + }, + { + "name": "Jamie Hill" + }, + { + "name": "Jamie Morris" + }, + { + "name": "Janice Leung" + }, + { + "name": "Jan Jongboom" + }, + { + "name": "jankeromnes" + }, + { + "name": "Jan Keromnes" + }, + { + "name": "Jan Odvarko" + }, + { + "name": "Jan Schär" + }, + { + "name": "Jan T. Sott" + }, + { + "name": "Jared Dean" + }, + { + "name": "Jared Forsyth" + }, + { + "name": "Jared Jacobs" + }, + { + "name": "Jason" + }, + { + "name": "Jason Barnabe" + }, + { + "name": "Jason Grout" + }, + { + "name": "Jason Heeris" + }, + { + "name": "Jason Johnston" + }, + { + "name": "Jason San Jose" + }, + { + "name": "Jason Siefken" + }, + { + "name": "Jayaprabhakar" + }, + { + "name": "Jay Contonio" + }, + { + "name": "Jaydeep Solanki" + }, + { + "name": "Jean Boussier" + }, + { + "name": "Jeff Blaisdell" + }, + { + "name": "Jeff Hanke" + }, + { + "name": "Jeff Jenkins" + }, + { + "name": "jeffkenton" + }, + { + "name": "Jeff Pickhardt" + }, + { + "name": "jem", + "url": "graphite" + }, + { + "name": "Jeremy Parmenter" + }, + { + "name": "Jim" + }, + { + "name": "Jim Avery" + }, + { + "name": "jkaplon" + }, + { + "name": "JobJob" + }, + { + "name": "jochenberger" + }, + { + "name": "Jochen Berger" + }, + { + "name": "Joel Einbinder" + }, + { + "name": "joelpinheiro" + }, + { + "name": "joewalsh" + }, + { + "name": "Johan Ask" + }, + { + "name": "Johannes" + }, + { + "name": "John Chen" + }, + { + "name": "John Connor" + }, + { + "name": "John-David Dalton" + }, + { + "name": "John Engler" + }, + { + "name": "John Lees-Miller" + }, + { + "name": "John Ryan" + }, + { + "name": "John Snelson" + }, + { + "name": "John Van Der Loo" + }, + { + "name": "Jon Ander Peñalba" + }, + { + "name": "Jonas Döbertin" + }, + { + "name": "Jonas Helfer" + }, + { + "name": "Jonathan Dierksen" + }, + { + "name": "Jonathan Hart" + }, + { + "name": "Jonathan Malmaud" + }, + { + "name": "Jon Gacnik" + }, + { + "name": "jongalloway" + }, + { + "name": "Jon Malmaud" + }, + { + "name": "Jon Sangster" + }, + { + "name": "Joo" + }, + { + "name": "Joost-Wim Boekesteijn" + }, + { + "name": "Joseph Pecoraro" + }, + { + "name": "Josh Barnes" + }, + { + "name": "Josh Cohen" + }, + { + "name": "Josh Soref" + }, + { + "name": "Joshua Newman" + }, + { + "name": "Josh Watzman" + }, + { + "name": "jots" + }, + { + "name": "Joy Zhong" + }, + { + "name": "jsoojeon" + }, + { + "name": "ju1ius" + }, + { + "name": "Juan Benavides Romero" + }, + { + "name": "Jucovschi Constantin" + }, + { + "name": "Juho Vuori" + }, + { + "name": "Julien CROUZET" + }, + { + "name": "Julien Rebetez" + }, + { + "name": "Justin Andresen" + }, + { + "name": "Justin Hileman" + }, + { + "name": "jwallers@gmail.com" + }, + { + "name": "kaniga" + }, + { + "name": "karevn" + }, + { + "name": "Karol" + }, + { + "name": "Kaushik Kulkarni" + }, + { + "name": "Kayur Patel" + }, + { + "name": "Kazuhito Hokamura" + }, + { + "name": "kcwiakala" + }, + { + "name": "Kees de Kooter" + }, + { + "name": "Kenan Christian Dimas" + }, + { + "name": "Ken Newman" + }, + { + "name": "ken restivo" + }, + { + "name": "Ken Rockot" + }, + { + "name": "Kevin Earls" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "Kevin Muret" + }, + { + "name": "Kevin Sawicki" + }, + { + "name": "Kevin Ushey" + }, + { + "name": "Kier Darby" + }, + { + "name": "Klaus Silveira" + }, + { + "name": "Koh Zi Han, Cliff" + }, + { + "name": "komakino" + }, + { + "name": "Konstantin Lopuhin" + }, + { + "name": "koops" + }, + { + "name": "Kris Ciccarello" + }, + { + "name": "ks-ifware" + }, + { + "name": "kubelsmieci" + }, + { + "name": "kvncp" + }, + { + "name": "KwanEsq" + }, + { + "name": "Kyle Kelley" + }, + { + "name": "KyleMcNutt" + }, + { + "name": "LaKing" + }, + { + "name": "Lanfei" + }, + { + "name": "Lanny" + }, + { + "name": "laobubu" + }, + { + "name": "Laszlo Vidacs" + }, + { + "name": "leaf" + }, + { + "name": "leaf corcoran" + }, + { + "name": "Lemmon" + }, + { + "name": "Leo Baschy" + }, + { + "name": "Leonid Khachaturov" + }, + { + "name": "Leon Sorokin" + }, + { + "name": "Leonya Khachaturov" + }, + { + "name": "Liam Newman" + }, + { + "name": "Libo Cannici" + }, + { + "name": "Lior Goldberg" + }, + { + "name": "Lior Shub" + }, + { + "name": "LloydMilligan" + }, + { + "name": "LM" + }, + { + "name": "lochel" + }, + { + "name": "Lonnie Abelbeck" + }, + { + "name": "Lorenzo Simionato" + }, + { + "name": "Lorenzo Stoakes" + }, + { + "name": "Louis Mauchet" + }, + { + "name": "Luca Fabbri" + }, + { + "name": "Lucas Buchala" + }, + { + "name": "Luciano Longo" + }, + { + "name": "Luciano Santana" + }, + { + "name": "Lu Fangjian" + }, + { + "name": "Luke Browning" + }, + { + "name": "Luke Granger-Brown" + }, + { + "name": "Luke Stagner" + }, + { + "name": "lynschinzer" + }, + { + "name": "M1cha" + }, + { + "name": "Madhura Jayaratne" + }, + { + "name": "Maksim Lin" + }, + { + "name": "Maksym Taran" + }, + { + "name": "Malay Majithia" + }, + { + "name": "Manideep" + }, + { + "name": "Manuel Rego Casasnovas" + }, + { + "name": "Marat Dreizin" + }, + { + "name": "Marcel Gerber" + }, + { + "name": "Marcelo Camargo" + }, + { + "name": "Marco Aurélio" + }, + { + "name": "Marco Munizaga" + }, + { + "name": "Marcus Bointon" + }, + { + "name": "Marek Rudnicki" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Mário Gonçalves" + }, + { + "name": "Mario Pietsch" + }, + { + "name": "Mark Anderson" + }, + { + "name": "Mark Boyes" + }, + { + "name": "Mark Dalgleish" + }, + { + "name": "Mark Hamstra" + }, + { + "name": "Mark Lentczner" + }, + { + "name": "Marko Bonaci" + }, + { + "name": "Mark Peace" + }, + { + "name": "Markus Bordihn" + }, + { + "name": "Markus Olsson" + }, + { + "name": "Martin Balek" + }, + { + "name": "Martín Gaitán" + }, + { + "name": "Martin Hasoň" + }, + { + "name": "Martin Hunt" + }, + { + "name": "Martin Laine" + }, + { + "name": "Martin Zagora" + }, + { + "name": "Mason Malone" + }, + { + "name": "Mateusz Paprocki" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "mats cronqvist" + }, + { + "name": "Matt Gaide" + }, + { + "name": "Matthew Bauer" + }, + { + "name": "Matthew Beale" + }, + { + "name": "Matthew Casperson" + }, + { + "name": "matthewhayes" + }, + { + "name": "Matthew Rathbone" + }, + { + "name": "Matthew Suozzo" + }, + { + "name": "Matthias Bussonnier" + }, + { + "name": "Matthias BUSSONNIER" + }, + { + "name": "Mattia Astorino" + }, + { + "name": "Matt MacPherson" + }, + { + "name": "Matt McDonald" + }, + { + "name": "Matt Pass" + }, + { + "name": "Matt Sacks" + }, + { + "name": "mauricio" + }, + { + "name": "Maximilian Hils" + }, + { + "name": "Maxim Kraev" + }, + { + "name": "Max Kirsch" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Wu" + }, + { + "name": "Max Xiantu" + }, + { + "name": "mbarkhau" + }, + { + "name": "McBrainy" + }, + { + "name": "mce2" + }, + { + "name": "Mélanie Chauvel" + }, + { + "name": "melpon" + }, + { + "name": "meshuamam" + }, + { + "name": "Metatheos" + }, + { + "name": "Micah Dubinko" + }, + { + "name": "Michael" + }, + { + "name": "Michael Goderbauer" + }, + { + "name": "Michael Grey" + }, + { + "name": "Michael Kaminsky" + }, + { + "name": "Michael Lehenbauer" + }, + { + "name": "Michael Wadman" + }, + { + "name": "Michael Walker" + }, + { + "name": "Michael Zhou" + }, + { + "name": "Michal Čihař" + }, + { + "name": "Michal Dorner" + }, + { + "name": "Michal Kapiczynski" + }, + { + "name": "Mighty Guava" + }, + { + "name": "Miguel Castillo" + }, + { + "name": "mihailik" + }, + { + "name": "Mika Andrianarijaona" + }, + { + "name": "Mike" + }, + { + "name": "Mike Bostock" + }, + { + "name": "Mike Brevoort" + }, + { + "name": "Mike Diaz" + }, + { + "name": "Mike Ivanov" + }, + { + "name": "Mike Kadin" + }, + { + "name": "Mike Kobit" + }, + { + "name": "Milan Szekely" + }, + { + "name": "MinRK" + }, + { + "name": "Miraculix87" + }, + { + "name": "misfo" + }, + { + "name": "mkaminsky11" + }, + { + "name": "mloginov" + }, + { + "name": "Moritz Schubotz", + "url": "physikerwelt" + }, + { + "name": "Moritz Schwörer" + }, + { + "name": "Moshe Wajnberg" + }, + { + "name": "mps" + }, + { + "name": "ms" + }, + { + "name": "mtaran-google" + }, + { + "name": "Mu-An ✌️ Chiou" + }, + { + "name": "Mu-An Chiou" + }, + { + "name": "mzabuawala" + }, + { + "name": "Narciso Jaramillo" + }, + { + "name": "Nathan Williams" + }, + { + "name": "ndr" + }, + { + "name": "Neil Anderson" + }, + { + "name": "neon-dev" + }, + { + "name": "nerbert" + }, + { + "name": "NetworkNode" + }, + { + "name": "nextrevision" + }, + { + "name": "ngn" + }, + { + "name": "nguillaumin" + }, + { + "name": "Ng Zhi An" + }, + { + "name": "Nicholas Bollweg" + }, + { + "name": "Nicholas Bollweg", + "url": "Nick" + }, + { + "name": "NickKolok" + }, + { + "name": "Nick Kreeger" + }, + { + "name": "Nick Small" + }, + { + "name": "Nicolas Chevobbe" + }, + { + "name": "Nicolas Kick" + }, + { + "name": "Nicolò Ribaudo" + }, + { + "name": "Niels van Groningen" + }, + { + "name": "nightwing" + }, + { + "name": "Nikita Beloglazov" + }, + { + "name": "Nikita Vasilyev" + }, + { + "name": "Nikolaj Kappler" + }, + { + "name": "Nikolay Kostov" + }, + { + "name": "nilp0inter" + }, + { + "name": "Nils Knappmeier" + }, + { + "name": "Nina Pypchenko" + }, + { + "name": "Nisarg Jhaveri" + }, + { + "name": "nlwillia" + }, + { + "name": "noragrossman" + }, + { + "name": "Norman Rzepka" + }, + { + "name": "Nouzbe" + }, + { + "name": "Oleksandr Yakovenko" + }, + { + "name": "Olivia Ytterbrink" + }, + { + "name": "Opender Singh" + }, + { + "name": "opl-" + }, + { + "name": "Oreoluwa Onatemowo" + }, + { + "name": "orionlee" + }, + { + "name": "oscar.lofwenhamn" + }, + { + "name": "Oskar Segersvärd" + }, + { + "name": "ossdev" + }, + { + "name": "overdodactyl" + }, + { + "name": "pablo" + }, + { + "name": "pabloferz" + }, + { + "name": "Pablo Zubieta" + }, + { + "name": "paddya" + }, + { + "name": "Page" + }, + { + "name": "paladox" + }, + { + "name": "Panupong Pasupat" + }, + { + "name": "paris" + }, + { + "name": "Paris" + }, + { + "name": "Paris Kasidiaris" + }, + { + "name": "Patil Arpith" + }, + { + "name": "Patrick Kettner" + }, + { + "name": "Patrick Stoica" + }, + { + "name": "Patrick Strawderman" + }, + { + "name": "Paul Garvin" + }, + { + "name": "Paul Ivanov" + }, + { + "name": "Paul Masson" + }, + { + "name": "Paul Schmidt" + }, + { + "name": "Pavel" + }, + { + "name": "Pavel Feldman" + }, + { + "name": "Pavel Petržela" + }, + { + "name": "Pavel Strashkin" + }, + { + "name": "Paweł Bartkiewicz" + }, + { + "name": "peteguhl" + }, + { + "name": "peter" + }, + { + "name": "Peter Flynn" + }, + { + "name": "peterkroon" + }, + { + "name": "Peter Kroon" + }, + { + "name": "Peter László" + }, + { + "name": "Philipp A" + }, + { + "name": "Philipp Markovics" + }, + { + "name": "Philip Stadermann" + }, + { + "name": "Pi Delport" + }, + { + "name": "Pierre Gerold" + }, + { + "name": "Pieter Ouwerkerk" + }, + { + "name": "Pontus Melke" + }, + { + "name": "prasanthj" + }, + { + "name": "Prasanth J" + }, + { + "name": "Prayag Verma" + }, + { + "name": "prendota" + }, + { + "name": "Prendota" + }, + { + "name": "Qiang Li" + }, + { + "name": "Radek Piórkowski" + }, + { + "name": "Rahul" + }, + { + "name": "Rahul Anand" + }, + { + "name": "ramwin1" + }, + { + "name": "Randall Mason" + }, + { + "name": "Randy Burden" + }, + { + "name": "Randy Edmunds" + }, + { + "name": "Randy Luecke" + }, + { + "name": "Raphael Amorim" + }, + { + "name": "Rasmus Erik Voel Jensen" + }, + { + "name": "Rasmus Schultz" + }, + { + "name": "raymondf" + }, + { + "name": "Raymond Hill" + }, + { + "name": "ray ratchup" + }, + { + "name": "Ray Ratchup" + }, + { + "name": "Remi Nyborg" + }, + { + "name": "Renaud Durlin" + }, + { + "name": "Reynold Xin" + }, + { + "name": "Richard Denton" + }, + { + "name": "Richard van der Meer" + }, + { + "name": "Richard Z.H. Wang" + }, + { + "name": "Rishi Goomar" + }, + { + "name": "Robert Brignull" + }, + { + "name": "Robert Crossfield" + }, + { + "name": "Robert Martin" + }, + { + "name": "Roberto Abdelkader Martínez Pérez" + }, + { + "name": "robertop23" + }, + { + "name": "Roberto Vidal" + }, + { + "name": "Robert Plummer" + }, + { + "name": "Roman Janusz" + }, + { + "name": "Rrandom" + }, + { + "name": "Rrrandom" + }, + { + "name": "Ruslan Osmanov" + }, + { + "name": "rvalavicius" + }, + { + "name": "Ryan Pangrle" + }, + { + "name": "Ryan Petrello" + }, + { + "name": "Ryan Prior" + }, + { + "name": "ryu-sato" + }, + { + "name": "sabaca" + }, + { + "name": "Sam Lee" + }, + { + "name": "Sam Rawlins" + }, + { + "name": "Samuel Ainsworth" + }, + { + "name": "Sam Wilson" + }, + { + "name": "sandeepshetty" + }, + { + "name": "Sander AKA Redsandro" + }, + { + "name": "Sander Verweij" + }, + { + "name": "santec" + }, + { + "name": "Sarah McAlear and Wenlin Zhang" + }, + { + "name": "Sascha Peilicke" + }, + { + "name": "Sasha Varlamov" + }, + { + "name": "satamas" + }, + { + "name": "satchmorun" + }, + { + "name": "sathyamoorthi" + }, + { + "name": "Saul Costa" + }, + { + "name": "S. Chris Colbert" + }, + { + "name": "SCLINIC\\jdecker" + }, + { + "name": "Scott Aikin" + }, + { + "name": "Scott Feeney" + }, + { + "name": "Scott Goodhew" + }, + { + "name": "Seb35" + }, + { + "name": "Sebastian Wilzbach" + }, + { + "name": "Sebastian Zaha" + }, + { + "name": "Seren D" + }, + { + "name": "Sergey Goder" + }, + { + "name": "Sergey Tselovalnikov" + }, + { + "name": "Se-Won Kim" + }, + { + "name": "Shane Liesegang" + }, + { + "name": "shaund" + }, + { + "name": "shaun gilchrist" + }, + { + "name": "Shawn A" + }, + { + "name": "Shea Bunge" + }, + { + "name": "sheopory" + }, + { + "name": "Shil S" + }, + { + "name": "Shiv Deepak" + }, + { + "name": "Shmuel Englard" + }, + { + "name": "Shubham Jain" + }, + { + "name": "Siamak Mokhtari" + }, + { + "name": "Siddhartha Gunti" + }, + { + "name": "silverwind" + }, + { + "name": "Simon Edwards" + }, + { + "name": "sinkuu" + }, + { + "name": "snasa" + }, + { + "name": "soliton4" + }, + { + "name": "sonson" + }, + { + "name": "Sorab Bisht" + }, + { + "name": "spastorelli" + }, + { + "name": "srajanpaliwal" + }, + { + "name": "Stanislav Oaserele" + }, + { + "name": "stan-z" + }, + { + "name": "Stas Kobzar" + }, + { + "name": "Stefan Borsje" + }, + { + "name": "Steffen Beyer" + }, + { + "name": "Steffen Bruchmann" + }, + { + "name": "Steffen Kowalski" + }, + { + "name": "Stephane Moore" + }, + { + "name": "Stephen Lavelle" + }, + { + "name": "Steve Champagne" + }, + { + "name": "Steve Hoover" + }, + { + "name": "Steve O'Hara" + }, + { + "name": "stockiNail" + }, + { + "name": "stoskov" + }, + { + "name": "Stryder Crown" + }, + { + "name": "Stu Kennedy" + }, + { + "name": "Sungho Kim" + }, + { + "name": "sverweij" + }, + { + "name": "Taha Jahangir" + }, + { + "name": "takamori" + }, + { + "name": "Tako Schotanus" + }, + { + "name": "Takuji Shimokawa" + }, + { + "name": "Takuya Matsuyama" + }, + { + "name": "Tarmil" + }, + { + "name": "T. Brandon Ashley" + }, + { + "name": "TDaglis" + }, + { + "name": "Teja" + }, + { + "name": "tel" + }, + { + "name": "Tentone" + }, + { + "name": "tfjgeorge" + }, + { + "name": "Thaddee Tyl" + }, + { + "name": "thanasis" + }, + { + "name": "TheHowl" + }, + { + "name": "themrmax" + }, + { + "name": "think" + }, + { + "name": "Thomas Brouard" + }, + { + "name": "Thomas Dvornik" + }, + { + "name": "Thomas Kluyver" + }, + { + "name": "thomasmaclean" + }, + { + "name": "Thomas Schmid" + }, + { + "name": "Tim Alby" + }, + { + "name": "Tim Baumann" + }, + { + "name": "Tim Gates" + }, + { + "name": "Timothy Farrell" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Timothy Hatcher" + }, + { + "name": "Tim van der Lippe" + }, + { + "name": "Tobias Bertelsen" + }, + { + "name": "TobiasBg" + }, + { + "name": "Todd Berman" + }, + { + "name": "Todd Kennedy" + }, + { + "name": "tokafew420" + }, + { + "name": "Tomas-A" + }, + { + "name": "Tomas Varaneckas" + }, + { + "name": "Tom Erik Støwer" + }, + { + "name": "Tom Klancer" + }, + { + "name": "Tom MacWright" + }, + { + "name": "Tom McLaughlin" + }, + { + "name": "Tony Jian" + }, + { + "name": "tophf" + }, + { + "name": "Torgeir Thoresen" + }, + { + "name": "totalamd" + }, + { + "name": "Travis Heppe" + }, + { + "name": "Triangle717" + }, + { + "name": "Tristan Tarrant" + }, + { + "name": "TSUYUSATO Kitsune" + }, + { + "name": "Tugrul Elmas" + }, + { + "name": "twifkak" + }, + { + "name": "Tyler Long" + }, + { + "name": "Tyler Makaro" + }, + { + "name": "Vadim Dyachenko" + }, + { + "name": "Vadzim Ramanenka" + }, + { + "name": "Vaibhav Sagar" + }, + { + "name": "vamshi.revu" + }, + { + "name": "VapidWorx" + }, + { + "name": "Vestimir Markov" + }, + { + "name": "vf" + }, + { + "name": "Victor Bocharsky" + }, + { + "name": "Vincent Woo" + }, + { + "name": "Volker Mische" + }, + { + "name": "vtripolitakis" + }, + { + "name": "wdouglashall" + }, + { + "name": "Weiyan Shao" + }, + { + "name": "wenli" + }, + { + "name": "Wes Cossick" + }, + { + "name": "Wesley Wiser" + }, + { + "name": "Weston Ruter" + }, + { + "name": "Will Binns-Smith" + }, + { + "name": "Will Dean" + }, + { + "name": "William Desportes" + }, + { + "name": "William Jamieson" + }, + { + "name": "William Stein" + }, + { + "name": "Willy" + }, + { + "name": "Wojtek Ptak" + }, + { + "name": "wonderboyjon" + }, + { + "name": "Wu Cheng-Han" + }, + { + "name": "Xavier Mendez" + }, + { + "name": "Yang Guo" + }, + { + "name": "Yassin N. Hassan" + }, + { + "name": "YNH Webdev" + }, + { + "name": "yoongu" + }, + { + "name": "Yunchi Luo" + }, + { + "name": "Yuvi Panda" + }, + { + "name": "Yvonnick Esnault" + }, + { + "name": "Zac Anger" + }, + { + "name": "Zachary Dremann" + }, + { + "name": "ZeeshanNoor" + }, + { + "name": "Zeno Rocha" + }, + { + "name": "Zhang Hao" + }, + { + "name": "Ziv" + }, + { + "name": "zoobestik" + }, + { + "name": "zziuni" + }, + { + "name": "魏鹏刚" + } + ], + "dependencies": {}, + "description": "Full-featured in-browser code editor", "devDependencies": { "@rollup/plugin-buble": "^0.21.3", "blint": "^1.1.0", @@ -27,21 +2735,34 @@ "puppeteer": "^1.20.0", "rollup": "^1.26.3" }, - "bugs": "http://github.com/codemirror/CodeMirror/issues", + "directories": { + "lib": "./lib" + }, + "homepage": "https://codemirror.net", + "jspm": { + "directories": {}, + "dependencies": {}, + "devDependencies": {} + }, "keywords": [ "JavaScript", "CodeMirror", "Editor" ], - "homepage": "https://codemirror.net", + "license": "MIT", + "main": "lib/codemirror.js", + "name": "codemirror", "repository": { "type": "git", - "url": "https://github.com/codemirror/CodeMirror.git" + "url": "git+https://github.com/codemirror/CodeMirror.git" }, - "jspm": { - "directories": {}, - "dependencies": {}, - "devDependencies": {} + "scripts": { + "build": "rollup -c", + "lint": "bin/lint", + "prepare": "npm run-script build", + "test": "node ./test/run.js", + "watch": "rollup -w -c" }, - "dependencies": {} + "style": "lib/codemirror.css", + "version": "5.58.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/codepage/package.json b/admin/vue2/element-admin-v3/node_modules/codepage/package.json index 51cca8e88..56d945e55 100644 --- a/admin/vue2/element-admin-v3/node_modules/codepage/package.json +++ b/admin/vue2/element-admin-v3/node_modules/codepage/package.json @@ -1,45 +1,32 @@ { - "name": "codepage", - "version": "1.15.0", - "author": "SheetJS", - "description": "pure-JS library to handle codepages", - "keywords": [ - "codepage", - "iconv", - "convert", - "strings" + "_args": [ + [ + "codepage@1.15.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "cputils.js", - "types": "types", - "browser": { - "buffer": "false" - }, - "devDependencies": { - "voc": "~1.1.0", - "mocha": "~2.5.3", - "blanket": "~1.2.3", - "@sheetjs/uglify-js": "~2.7.3", - "@types/node": "^8.0.7", - "@types/commander": "^2.12.0", - "dtslint": "^0.1.2", - "typescript": "2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/js-codepage.git" - }, - "scripts": { - "pretest": "git submodule init && git submodule update", - "test": "make test", - "build": "make js", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "[cputils.js]" - } + "_from": "codepage@1.15.0", + "_id": "codepage@1.15.0", + "_inBundle": false, + "_integrity": "sha1-LgBRkCSzlCTsZu6z7AcifmkmGKs=", + "_location": "/codepage", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "codepage@1.15.0", + "name": "codepage", + "escapedName": "codepage", + "rawSpec": "1.15.0", + "saveSpec": null, + "fetchSpec": "1.15.0" }, + "_requiredBy": [ + "/xlsx" + ], + "_resolved": "https://registry.nlark.com/codepage/download/codepage-1.15.0.tgz", + "_spec": "1.15.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "alex": { "allow": [ "chinese", @@ -49,7 +36,34 @@ "latin" ] }, - "homepage": "https://sheetjs.com/", + "author": { + "name": "SheetJS" + }, + "browser": { + "buffer": "false" + }, + "bugs": { + "url": "https://github.com/SheetJS/js-codepage/issues" + }, + "config": { + "blanket": { + "pattern": "[cputils.js]" + } + }, + "description": "pure-JS library to handle codepages", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/commander": "^2.12.0", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0", + "voc": "~1.1.0" + }, + "engines": { + "node": ">=0.8" + }, "files": [ "LICENSE", "README.md", @@ -62,11 +76,27 @@ "dist/sbcs.full.js", "dist/cpexcel.full.js" ], - "bugs": { - "url": "https://github.com/SheetJS/js-codepage/issues" - }, + "homepage": "https://sheetjs.com/", + "keywords": [ + "codepage", + "iconv", + "convert", + "strings" + ], "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "main": "cputils.js", + "name": "codepage", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-codepage.git" + }, + "scripts": { + "build": "make js", + "dtslint": "dtslint types", + "lint": "make fullint", + "pretest": "git submodule init && git submodule update", + "test": "make test" + }, + "types": "types", + "version": "1.15.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/collection-visit/package.json b/admin/vue2/element-admin-v3/node_modules/collection-visit/package.json index 63697bc08..0393d5388 100644 --- a/admin/vue2/element-admin-v3/node_modules/collection-visit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/collection-visit/package.json @@ -1,32 +1,56 @@ { - "name": "collection-visit", - "description": "Visit a method over the items in an object, or map visit over the objects in an array.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/collection-visit", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "collection-visit@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/collection-visit", - "bugs": { - "url": "https://github.com/jonschlinkert/collection-visit/issues" + "_from": "collection-visit@1.0.0", + "_id": "collection-visit@1.0.0", + "_inBundle": false, + "_integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "_location": "/collection-visit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "collection-visit@1.0.0", + "name": "collection-visit", + "escapedName": "collection-visit", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/cache-base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/collection-visit/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "email": "brian.woodward@gmail.com", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" }, + "description": "Visit a method over the items in an object, or map visit over the objects in an array.", "devDependencies": { "clone-deep": "^0.2.4", "gulp": "^3.9.1", @@ -36,6 +60,13 @@ "gulp-mocha": "^3.0.0", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/collection-visit", "keywords": [ "array", "arrays", @@ -53,6 +84,16 @@ "visit", "visitor" ], + "license": "MIT", + "main": "index.js", + "name": "collection-visit", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/collection-visit.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -72,5 +113,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/color-convert/package.json b/admin/vue2/element-admin-v3/node_modules/color-convert/package.json index dfbc47140..099272abd 100644 --- a/admin/vue2/element-admin-v3/node_modules/color-convert/package.json +++ b/admin/vue2/element-admin-v3/node_modules/color-convert/package.json @@ -1,14 +1,93 @@ { - "name": "color-convert", + "_args": [ + [ + "color-convert@1.9.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "color-convert@1.9.3", + "_id": "color-convert@1.9.3", + "_inBundle": false, + "_integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "_location": "/color-convert", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "color-convert@1.9.3", + "name": "color-convert", + "escapedName": "color-convert", + "rawSpec": "1.9.3", + "saveSpec": null, + "fetchSpec": "1.9.3" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/ansi-styles", + "/chalk/ansi-styles", + "/color", + "/css-declaration-sorter/ansi-styles", + "/cssnano-preset-default/ansi-styles", + "/cssnano-util-raw-cache/ansi-styles", + "/cssnano/ansi-styles", + "/postcss-calc/ansi-styles", + "/postcss-colormin/ansi-styles", + "/postcss-convert-values/ansi-styles", + "/postcss-discard-comments/ansi-styles", + "/postcss-discard-duplicates/ansi-styles", + "/postcss-discard-empty/ansi-styles", + "/postcss-discard-overridden/ansi-styles", + "/postcss-merge-longhand/ansi-styles", + "/postcss-merge-rules/ansi-styles", + "/postcss-minify-font-values/ansi-styles", + "/postcss-minify-gradients/ansi-styles", + "/postcss-minify-params/ansi-styles", + "/postcss-minify-selectors/ansi-styles", + "/postcss-normalize-charset/ansi-styles", + "/postcss-normalize-display-values/ansi-styles", + "/postcss-normalize-positions/ansi-styles", + "/postcss-normalize-repeat-style/ansi-styles", + "/postcss-normalize-string/ansi-styles", + "/postcss-normalize-timing-functions/ansi-styles", + "/postcss-normalize-unicode/ansi-styles", + "/postcss-normalize-url/ansi-styles", + "/postcss-normalize-whitespace/ansi-styles", + "/postcss-ordered-values/ansi-styles", + "/postcss-prefix-selector/ansi-styles", + "/postcss-reduce-initial/ansi-styles", + "/postcss-reduce-transforms/ansi-styles", + "/postcss-svgo/ansi-styles", + "/postcss-unique-selectors/ansi-styles", + "/pretty-format/ansi-styles", + "/stylehacks/ansi-styles", + "/webpack-bundle-analyzer/ansi-styles", + "/webpack-cli/ansi-styles", + "/wrap-ansi/ansi-styles" + ], + "_resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "_spec": "1.9.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + "bugs": { + "url": "https://github.com/Qix-/color-convert/issues" + }, + "dependencies": { + "color-name": "1.1.3" + }, "description": "Plain color conversion functions", - "version": "1.9.3", - "author": "Heather Arthur ", - "license": "MIT", - "repository": "Qix-/color-convert", - "scripts": { - "pretest": "xo", - "test": "node test/basic.js" + "devDependencies": { + "chalk": "1.1.1", + "xo": "0.11.2" }, + "files": [ + "index.js", + "conversions.js", + "css-keywords.js", + "route.js" + ], + "homepage": "https://github.com/Qix-/color-convert#readme", "keywords": [ "color", "colour", @@ -23,24 +102,22 @@ "ansi", "ansi16" ], - "files": [ - "index.js", - "conversions.js", - "css-keywords.js", - "route.js" - ], + "license": "MIT", + "name": "color-convert", + "repository": { + "type": "git", + "url": "git+https://github.com/Qix-/color-convert.git" + }, + "scripts": { + "pretest": "xo", + "test": "node test/basic.js" + }, + "version": "1.9.3", "xo": { "rules": { "default-case": 0, "no-inline-comments": 0, "operator-linebreak": 0 } - }, - "devDependencies": { - "chalk": "1.1.1", - "xo": "0.11.2" - }, - "dependencies": { - "color-name": "1.1.3" } } diff --git a/admin/vue2/element-admin-v3/node_modules/color-name/package.json b/admin/vue2/element-admin-v3/node_modules/color-name/package.json index d061123ef..fd8529f6d 100644 --- a/admin/vue2/element-admin-v3/node_modules/color-name/package.json +++ b/admin/vue2/element-admin-v3/node_modules/color-name/package.json @@ -1,25 +1,57 @@ { - "name": "color-name", - "version": "1.1.3", - "description": "A list of color names and its values", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "color-name@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "color-name@1.1.3", + "_id": "color-name@1.1.3", + "_inBundle": false, + "_integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "_location": "/color-name", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "color-name@1.1.3", + "name": "color-name", + "escapedName": "color-name", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" }, - "repository": { - "type": "git", - "url": "git@github.com:dfcreative/color-name.git" + "_requiredBy": [ + "/color-convert", + "/color-string" + ], + "_resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "DY", + "email": "dfcreative@gmail.com" + }, + "bugs": { + "url": "https://github.com/dfcreative/color-name/issues" }, + "description": "A list of color names and its values", + "homepage": "https://github.com/dfcreative/color-name", "keywords": [ "color-name", "color", "color-keyword", "keyword" ], - "author": "DY ", "license": "MIT", - "bugs": { - "url": "https://github.com/dfcreative/color-name/issues" + "main": "index.js", + "name": "color-name", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/dfcreative/color-name.git" + }, + "scripts": { + "test": "node test.js" }, - "homepage": "https://github.com/dfcreative/color-name" + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/color-string/package.json b/admin/vue2/element-admin-v3/node_modules/color-string/package.json index 905f7b79a..67cf251ee 100644 --- a/admin/vue2/element-admin-v3/node_modules/color-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/color-string/package.json @@ -1,39 +1,85 @@ { - "name": "color-string", - "description": "Parser and generator for CSS color strings", - "version": "1.5.5", - "author": "Heather Arthur ", - "contributors": [ - "Maxime Thirouin", - "Dyma Ywanov ", - "Josh Junon" + "_args": [ + [ + "color-string@1.5.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "Qix-/color-string", - "scripts": { - "pretest": "xo", - "test": "node test/basic.js" + "_development": true, + "_from": "color-string@1.5.5", + "_id": "color-string@1.5.5", + "_inBundle": false, + "_integrity": "sha1-ZUdKjw50OWJfPSemoZ2J/EUiMBQ=", + "_location": "/color-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "color-string@1.5.5", + "name": "color-string", + "escapedName": "color-string", + "rawSpec": "1.5.5", + "saveSpec": null, + "fetchSpec": "1.5.5" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/color" ], - "xo": { - "rules": { - "no-cond-assign": 0, - "operator-linebreak": 0 - } + "_resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.5.tgz", + "_spec": "1.5.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" }, + "bugs": { + "url": "https://github.com/Qix-/color-string/issues" + }, + "contributors": [ + { + "name": "Maxime Thirouin" + }, + { + "name": "Dyma Ywanov", + "email": "dfcreative@gmail.com" + }, + { + "name": "Josh Junon" + } + ], "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" }, + "description": "Parser and generator for CSS color strings", "devDependencies": { "xo": "^0.12.1" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/Qix-/color-string#readme", "keywords": [ "color", "colour", "rgb", "css" - ] + ], + "license": "MIT", + "name": "color-string", + "repository": { + "type": "git", + "url": "git+https://github.com/Qix-/color-string.git" + }, + "scripts": { + "pretest": "xo", + "test": "node test/basic.js" + }, + "version": "1.5.5", + "xo": { + "rules": { + "no-cond-assign": 0, + "operator-linebreak": 0 + } + } } diff --git a/admin/vue2/element-admin-v3/node_modules/color/package.json b/admin/vue2/element-admin-v3/node_modules/color/package.json index 5bf0ed2b3..46a9c7b63 100644 --- a/admin/vue2/element-admin-v3/node_modules/color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/color/package.json @@ -1,40 +1,76 @@ { - "name": "color", - "version": "3.1.3", - "description": "Color conversion and manipulation with CSS string support", - "keywords": [ - "color", - "colour", - "css" + "_args": [ + [ + "color@3.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "color@3.1.3", + "_id": "color@3.1.3", + "_inBundle": false, + "_integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", + "_location": "/color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "color@3.1.3", + "name": "color", + "escapedName": "color", + "rawSpec": "3.1.3", + "saveSpec": null, + "fetchSpec": "3.1.3" + }, + "_requiredBy": [ + "/postcss-colormin" ], + "_resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228725017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz", + "_spec": "3.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "Josh Junon ", "Heather Arthur ", "Maxime Thirouin" ], - "license": "MIT", - "repository": "Qix-/color", - "xo": { - "rules": { - "no-cond-assign": 0, - "new-cap": 0 - } + "bugs": { + "url": "https://github.com/Qix-/color/issues" + }, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + }, + "description": "Color conversion and manipulation with CSS string support", + "devDependencies": { + "mocha": "^6.1.4", + "xo": "0.12.1" }, "files": [ "CHANGELOG.md", "LICENSE", "index.js" ], + "homepage": "https://github.com/Qix-/color#readme", + "keywords": [ + "color", + "colour", + "css" + ], + "license": "MIT", + "name": "color", + "repository": { + "type": "git", + "url": "git+https://github.com/Qix-/color.git" + }, "scripts": { "pretest": "xo", "test": "mocha" }, - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - }, - "devDependencies": { - "mocha": "^6.1.4", - "xo": "0.12.1" + "version": "3.1.3", + "xo": { + "rules": { + "no-cond-assign": 0, + "new-cap": 0 + } } } diff --git a/admin/vue2/element-admin-v3/node_modules/colorette/package.json b/admin/vue2/element-admin-v3/node_modules/colorette/package.json index 25c144678..ada52df72 100644 --- a/admin/vue2/element-admin-v3/node_modules/colorette/package.json +++ b/admin/vue2/element-admin-v3/node_modules/colorette/package.json @@ -1,13 +1,50 @@ { - "name": "colorette", - "version": "1.2.2", - "type": "module", - "main": "index.cjs", - "module": "index.js", - "types": "index.d.ts", + "_args": [ + [ + "colorette@1.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "colorette@1.2.2", + "_id": "colorette@1.2.2", + "_inBundle": false, + "_integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=", + "_location": "/colorette", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "colorette@1.2.2", + "name": "colorette", + "escapedName": "colorette", + "rawSpec": "1.2.2", + "saveSpec": null, + "fetchSpec": "1.2.2" + }, + "_requiredBy": [ + "/caniuse-api/browserslist", + "/postcss-colormin/browserslist", + "/postcss-merge-rules/browserslist", + "/postcss-minify-params/browserslist", + "/postcss-normalize-unicode/browserslist", + "/postcss-reduce-initial/browserslist", + "/stylehacks/browserslist" + ], + "_resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259838969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz", + "_spec": "1.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jorge Bucaran" + }, + "bugs": { + "url": "https://github.com/jorgebucaran/colorette/issues" + }, "description": "Easily set the color and style of text in the terminal.", - "repository": "jorgebucaran/colorette", - "license": "MIT", + "devDependencies": { + "c8": "*", + "twist": "*" + }, "exports": { "./package.json": "./package.json", ".": { @@ -18,22 +55,29 @@ "files": [ "*.*(c)[tj]s*" ], - "author": "Jorge Bucaran", + "homepage": "https://github.com/jorgebucaran/colorette#readme", "keywords": [ "terminal", "styles", "color", "ansi" ], + "license": "MIT", + "main": "index.cjs", + "module": "index.js", + "name": "colorette", + "repository": { + "type": "git", + "url": "git+https://github.com/jorgebucaran/colorette.git" + }, "scripts": { - "test": "c8 twist tests/*.js", "build": "node -e \"fs.writeFileSync('index.cjs',fs.readFileSync('index.js','utf8').replace(/export const /g,'exports.'),'utf8')\"", "deploy": "npm test && git commit --all --message $tag && git tag --sign $tag --message $tag && git push && git push --tags", + "prepare": "npm run build", "release": "tag=$npm_package_version npm run deploy && npm publish --access public", - "prepare": "npm run build" + "test": "c8 twist tests/*.js" }, - "devDependencies": { - "c8": "*", - "twist": "*" - } + "type": "module", + "types": "index.d.ts", + "version": "1.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/combined-stream/package.json b/admin/vue2/element-admin-v3/node_modules/combined-stream/package.json index 6982b6da1..9d5a7dbd2 100644 --- a/admin/vue2/element-admin-v3/node_modules/combined-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/combined-stream/package.json @@ -1,25 +1,62 @@ { - "author": "Felix Geisendörfer (http://debuggable.com/)", - "name": "combined-stream", - "description": "A stream that emits multiple other streams one after another.", - "version": "1.0.8", - "homepage": "https://github.com/felixge/node-combined-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-combined-stream.git" + "_args": [ + [ + "combined-stream@1.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "combined-stream@1.0.8", + "_id": "combined-stream@1.0.8", + "_inBundle": false, + "_integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "_location": "/combined-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "combined-stream@1.0.8", + "name": "combined-stream", + "escapedName": "combined-stream", + "rawSpec": "1.0.8", + "saveSpec": null, + "fetchSpec": "1.0.8" }, - "main": "./lib/combined_stream", - "scripts": { - "test": "node test/run.js" + "_requiredBy": [ + "/form-data", + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "_spec": "1.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Geisendörfer", + "email": "felix@debuggable.com", + "url": "http://debuggable.com/" }, - "engines": { - "node": ">= 0.8" + "bugs": { + "url": "https://github.com/felixge/node-combined-stream/issues" }, "dependencies": { "delayed-stream": "~1.0.0" }, + "description": "A stream that emits multiple other streams one after another.", "devDependencies": { "far": "~0.0.7" }, - "license": "MIT" + "engines": { + "node": ">= 0.8" + }, + "homepage": "https://github.com/felixge/node-combined-stream", + "license": "MIT", + "main": "./lib/combined_stream", + "name": "combined-stream", + "repository": { + "type": "git", + "url": "git://github.com/felixge/node-combined-stream.git" + }, + "scripts": { + "test": "node test/run.js" + }, + "version": "1.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/commander/package.json b/admin/vue2/element-admin-v3/node_modules/commander/package.json index 0023c5cdf..00fcf61dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/commander/package.json +++ b/admin/vue2/element-admin-v3/node_modules/commander/package.json @@ -1,38 +1,76 @@ { - "name": "commander", - "version": "2.20.3", + "_args": [ + [ + "commander@2.20.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "commander@2.20.3", + "_id": "commander@2.20.3", + "_inBundle": false, + "_integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "_location": "/commander", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "commander@2.20.3", + "name": "commander", + "escapedName": "commander", + "rawSpec": "2.20.3", + "saveSpec": null, + "fetchSpec": "2.20.3" + }, + "_requiredBy": [ + "/lint-staged", + "/npm-which", + "/webpack-bundle-analyzer", + "/xss" + ], + "_resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "_spec": "2.20.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/tj/commander.js/issues" + }, + "dependencies": {}, "description": "the complete solution for node.js command-line programs", + "devDependencies": { + "@types/node": "^12.7.8", + "eslint": "^6.4.0", + "should": "^13.2.3", + "sinon": "^7.5.0", + "standard": "^14.3.1", + "ts-node": "^8.4.1", + "typescript": "^3.6.3" + }, + "files": [ + "index.js", + "typings/index.d.ts" + ], + "homepage": "https://github.com/tj/commander.js#readme", "keywords": [ "commander", "command", "option", "parser" ], - "author": "TJ Holowaychuk ", "license": "MIT", + "main": "index", + "name": "commander", "repository": { "type": "git", - "url": "https://github.com/tj/commander.js.git" + "url": "git+https://github.com/tj/commander.js.git" }, "scripts": { "lint": "eslint index.js", "test": "node test/run.js && npm run test-typings", "test-typings": "tsc -p tsconfig.json" }, - "main": "index", - "files": [ - "index.js", - "typings/index.d.ts" - ], - "dependencies": {}, - "devDependencies": { - "@types/node": "^12.7.8", - "eslint": "^6.4.0", - "should": "^13.2.3", - "sinon": "^7.5.0", - "standard": "^14.3.1", - "ts-node": "^8.4.1", - "typescript": "^3.6.3" - }, - "typings": "typings/index.d.ts" + "typings": "typings/index.d.ts", + "version": "2.20.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/commondir/package.json b/admin/vue2/element-admin-v3/node_modules/commondir/package.json index 7320d956c..171020f17 100644 --- a/admin/vue2/element-admin-v3/node_modules/commondir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/commondir/package.json @@ -1,19 +1,50 @@ { - "name": "commondir", - "version": "1.0.1", - "description": "compute the closest common parent for file paths", - "main": "index.js", + "_args": [ + [ + "commondir@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "commondir@1.0.1", + "_id": "commondir@1.0.1", + "_inBundle": false, + "_integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "_location": "/commondir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "commondir@1.0.1", + "name": "commondir", + "escapedName": "commondir", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/find-cache-dir", + "/loader-fs-cache/find-cache-dir" + ], + "_resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/node-commondir/issues" + }, "dependencies": {}, + "description": "compute the closest common parent for file paths", "devDependencies": { "tape": "^3.5.0" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-commondir.git" + "engine": { + "node": ">=0.4" }, + "homepage": "https://github.com/substack/node-commondir#readme", "keywords": [ "common", "path", @@ -22,13 +53,15 @@ "parent", "root" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "license": "MIT", - "engine": { - "node": ">=0.4" - } + "main": "index.js", + "name": "commondir", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/substack/node-commondir.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/component-emitter/package.json b/admin/vue2/element-admin-v3/node_modules/component-emitter/package.json index 403b8c0ea..8bcceffbd 100644 --- a/admin/vue2/element-admin-v3/node_modules/component-emitter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/component-emitter/package.json @@ -1,27 +1,60 @@ { - "name": "component-emitter", - "description": "Event emitter", - "version": "1.3.0", - "license": "MIT", - "devDependencies": { - "mocha": "*", - "should": "*" + "_args": [ + [ + "component-emitter@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "component-emitter@1.3.0", + "_id": "component-emitter@1.3.0", + "_inBundle": false, + "_integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "_location": "/component-emitter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "component-emitter@1.3.0", + "name": "component-emitter", + "escapedName": "component-emitter", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/base", + "/cache-base" + ], + "_resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/component/emitter/issues" }, "component": { "scripts": { "emitter/index.js": "index.js" } }, + "description": "Event emitter", + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "files": [ + "index.js", + "LICENSE" + ], + "homepage": "https://github.com/component/emitter#readme", + "license": "MIT", "main": "index.js", + "name": "component-emitter", "repository": { "type": "git", - "url": "https://github.com/component/emitter.git" + "url": "git+https://github.com/component/emitter.git" }, "scripts": { "test": "make test" }, - "files": [ - "index.js", - "LICENSE" - ] + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/compressible/package.json b/admin/vue2/element-admin-v3/node_modules/compressible/package.json index ab582cb42..5ee5ab581 100644 --- a/admin/vue2/element-admin-v3/node_modules/compressible/package.json +++ b/admin/vue2/element-admin-v3/node_modules/compressible/package.json @@ -1,23 +1,55 @@ { - "name": "compressible", - "description": "Compressible Content-Type / mime checking", - "version": "2.0.18", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)", - "Jeremiah Senkpiel (https://searchbeam.jit.su)" + "_args": [ + [ + "compressible@2.0.18", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": "jshttp/compressible", - "keywords": [ - "compress", - "gzip", - "mime", - "content-type" + "_from": "compressible@2.0.18", + "_id": "compressible@2.0.18", + "_inBundle": false, + "_integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", + "_location": "/compressible", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "compressible@2.0.18", + "name": "compressible", + "escapedName": "compressible", + "rawSpec": "2.0.18", + "saveSpec": null, + "fetchSpec": "2.0.18" + }, + "_requiredBy": [ + "/compression" + ], + "_resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", + "_spec": "2.0.18", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/compressible/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + { + "name": "Jeremiah Senkpiel", + "email": "fishrock123@rocketmail.com", + "url": "https://searchbeam.jit.su" + } ], "dependencies": { "mime-db": ">= 1.43.0 < 2" }, + "description": "Compressible Content-Type / mime checking", "devDependencies": { "eslint": "6.8.0", "eslint-config-standard": "14.1.0", @@ -38,11 +70,25 @@ "README.md", "index.js" ], + "homepage": "https://github.com/jshttp/compressible#readme", + "keywords": [ + "compress", + "gzip", + "mime", + "content-type" + ], + "license": "MIT", + "name": "compressible", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/compressible.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "test-cov": "nyc --reporter=html --reporter=text npm test", "test-travis": "nyc --reporter=text npm test", "version": "node scripts/version-history.js && git add HISTORY.md" - } + }, + "version": "2.0.18" } diff --git a/admin/vue2/element-admin-v3/node_modules/compression/node_modules/bytes/package.json b/admin/vue2/element-admin-v3/node_modules/compression/node_modules/bytes/package.json index 219329659..f23e16687 100644 --- a/admin/vue2/element-admin-v3/node_modules/compression/node_modules/bytes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/compression/node_modules/bytes/package.json @@ -1,39 +1,84 @@ { - "name": "bytes", - "description": "Utility to parse a string bytes to bytes and vice-versa", - "version": "3.0.0", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Jed Watson ", - "Théo FIDRY " + "_args": [ + [ + "bytes@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "byte", - "bytes", - "utility", - "parse", - "parser", - "convert", - "converter" + "_from": "bytes@3.0.0", + "_id": "bytes@3.0.0", + "_inBundle": false, + "_integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "_location": "/compression/bytes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bytes@3.0.0", + "name": "bytes", + "escapedName": "bytes", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/compression" ], - "repository": "visionmedia/bytes.js", + "_resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/visionmedia/bytes.js/issues" + }, + "contributors": [ + { + "name": "Jed Watson", + "email": "jed.watson@me.com" + }, + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Utility to parse a string bytes to bytes and vice-versa", "devDependencies": { "mocha": "2.5.3", "nyc": "10.3.2" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "History.md", "LICENSE", "Readme.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/visionmedia/bytes.js#readme", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "license": "MIT", + "name": "bytes", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/bytes.js.git" }, "scripts": { "test": "mocha --check-leaks --reporter spec", "test-ci": "nyc --reporter=text npm test", "test-cov": "nyc --reporter=html --reporter=text npm test" - } + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/compression/package.json b/admin/vue2/element-admin-v3/node_modules/compression/package.json index 7358c8fbc..258da7141 100644 --- a/admin/vue2/element-admin-v3/node_modules/compression/package.json +++ b/admin/vue2/element-admin-v3/node_modules/compression/package.json @@ -1,13 +1,46 @@ { - "name": "compression", - "description": "Node.js compression middleware", - "version": "1.7.4", + "_args": [ + [ + "compression@1.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "compression@1.7.4", + "_id": "compression@1.7.4", + "_inBundle": false, + "_integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "_location": "/compression", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "compression@1.7.4", + "name": "compression", + "escapedName": "compression", + "rawSpec": "1.7.4", + "saveSpec": null, + "fetchSpec": "1.7.4" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", + "_spec": "1.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/expressjs/compression/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "license": "MIT", - "repository": "expressjs/compression", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -17,6 +50,7 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, + "description": "Node.js compression middleware", "devDependencies": { "after": "0.8.2", "eslint": "5.15.1", @@ -30,18 +64,26 @@ "mocha": "6.0.2", "supertest": "4.0.0" }, + "engines": { + "node": ">= 0.8.0" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8.0" + "homepage": "https://github.com/expressjs/compression#readme", + "license": "MIT", + "name": "compression", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/compression.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --check-leaks --reporter spec --bail", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec" - } + }, + "version": "1.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/concat-map/package.json b/admin/vue2/element-admin-v3/node_modules/concat-map/package.json index d3640e6b0..e95114b43 100644 --- a/admin/vue2/element-admin-v3/node_modules/concat-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/concat-map/package.json @@ -1,43 +1,91 @@ { - "name" : "concat-map", - "description" : "concatenative mapdashery", - "version" : "0.0.1", - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/node-concat-map.git" - }, - "main" : "index.js", - "keywords" : [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories" : { - "example" : "example", - "test" : "test" - }, - "scripts" : { - "test" : "tape test/*.js" - }, - "devDependencies" : { - "tape" : "~2.4.0" - }, - "license" : "MIT", - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "ie" : [ 6, 7, 8, 9 ], - "ff" : [ 3.5, 10, 15.0 ], - "chrome" : [ 10, 22 ], - "safari" : [ 5.1 ], - "opera" : [ 12 ] - } + "_args": [ + [ + "concat-map@0.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "concat-map@0.0.1", + "_id": "concat-map@0.0.1", + "_inBundle": false, + "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "_location": "/concat-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "concat-map@0.0.1", + "name": "concat-map", + "escapedName": "concat-map", + "rawSpec": "0.0.1", + "saveSpec": null, + "fetchSpec": "0.0.1" + }, + "_requiredBy": [ + "/brace-expansion" + ], + "_resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "_spec": "0.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/node-concat-map/issues" + }, + "description": "concatenative mapdashery", + "devDependencies": { + "tape": "~2.4.0" + }, + "directories": { + "example": "example", + "test": "test" + }, + "homepage": "https://github.com/substack/node-concat-map#readme", + "keywords": [ + "concat", + "concatMap", + "map", + "functional", + "higher-order" + ], + "license": "MIT", + "main": "index.js", + "name": "concat-map", + "repository": { + "type": "git", + "url": "git://github.com/substack/node-concat-map.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "testling": { + "files": "test/*.js", + "browsers": { + "ie": [ + 6, + 7, + 8, + 9 + ], + "ff": [ + 3.5, + 10, + 15 + ], + "chrome": [ + 10, + 22 + ], + "safari": [ + 5.1 + ], + "opera": [ + 12 + ] } + }, + "version": "0.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/concat-stream/package.json b/admin/vue2/element-admin-v3/node_modules/concat-stream/package.json index f70902234..f1e1c4179 100644 --- a/admin/vue2/element-admin-v3/node_modules/concat-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/concat-stream/package.json @@ -1,41 +1,73 @@ { - "name": "concat-stream", - "version": "1.6.2", - "description": "writable stream that concatenates strings or binary data and calls a callback with the result", - "tags": [ - "stream", - "simple", - "util", - "utility" + "_args": [ + [ + "concat-stream@1.6.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Max Ogden ", - "repository": { - "type": "git", - "url": "http://github.com/maxogden/concat-stream.git" + "_from": "concat-stream@1.6.2", + "_id": "concat-stream@1.6.2", + "_inBundle": false, + "_integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "_location": "/concat-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "concat-stream@1.6.2", + "name": "concat-stream", + "escapedName": "concat-stream", + "rawSpec": "1.6.2", + "saveSpec": null, + "fetchSpec": "1.6.2" + }, + "_requiredBy": [ + "/eslint", + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "_spec": "1.6.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Max Ogden", + "email": "max@maxogden.com" }, "bugs": { "url": "http://github.com/maxogden/concat-stream/issues" }, - "engines": [ - "node >= 0.8" - ], - "main": "index.js", - "files": [ - "index.js" - ], - "scripts": { - "test": "tape test/*.js test/server/*.js" - }, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" }, + "description": "writable stream that concatenates strings or binary data and calls a callback with the result", "devDependencies": { "tape": "^4.6.3" }, + "engines": [ + "node >= 0.8" + ], + "files": [ + "index.js" + ], + "homepage": "https://github.com/maxogden/concat-stream#readme", + "license": "MIT", + "main": "index.js", + "name": "concat-stream", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/maxogden/concat-stream.git" + }, + "scripts": { + "test": "tape test/*.js test/server/*.js" + }, + "tags": [ + "stream", + "simple", + "util", + "utility" + ], "testling": { "files": "test/*.js", "browsers": [ @@ -51,5 +83,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "1.6.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/connect-history-api-fallback/package.json b/admin/vue2/element-admin-v3/node_modules/connect-history-api-fallback/package.json index 0f872749a..7a7a15b62 100644 --- a/admin/vue2/element-admin-v3/node_modules/connect-history-api-fallback/package.json +++ b/admin/vue2/element-admin-v3/node_modules/connect-history-api-fallback/package.json @@ -1,40 +1,76 @@ { - "name": "connect-history-api-fallback", - "version": "1.6.0", - "description": "Provides a fallback for non-existing directories so that the HTML 5 history API can be used.", - "keyswords": [ - "connect", - "html5", - "history api", - "fallback", - "spa" + "_args": [ + [ + "connect-history-api-fallback@1.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=0.8" + "_from": "connect-history-api-fallback@1.6.0", + "_id": "connect-history-api-fallback@1.6.0", + "_inBundle": false, + "_integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "_location": "/connect-history-api-fallback", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "connect-history-api-fallback@1.6.0", + "name": "connect-history-api-fallback", + "escapedName": "connect-history-api-fallback", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" }, - "main": "lib/index.js", - "files": [ - "lib" + "_requiredBy": [ + "/webpack-dev-server" ], - "scripts": { - "test": "eslint lib/index.js test/index_test.js && nodeunit test/index_test.js" - }, - "repository": { - "type": "git", - "url": "http://github.com/bripkens/connect-history-api-fallback.git" - }, + "_resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "_spec": "1.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Ripkens", "email": "bripkens.dev@gmail.com", "url": "http://bripkens.de" }, + "bugs": { + "url": "https://github.com/bripkens/connect-history-api-fallback/issues" + }, "contributors": [ - "Craig Myles (http://www.craigmyles.com)" + { + "name": "Craig Myles", + "email": "cr@igmyles.com", + "url": "http://www.craigmyles.com" + } ], - "license": "MIT", + "description": "Provides a fallback for non-existing directories so that the HTML 5 history API can be used.", "devDependencies": { "eslint": "^0.18.0", "nodeunit": "^0.11.3", "sinon": "^1.14.1" - } + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/bripkens/connect-history-api-fallback#readme", + "keyswords": [ + "connect", + "html5", + "history api", + "fallback", + "spa" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "connect-history-api-fallback", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/bripkens/connect-history-api-fallback.git" + }, + "scripts": { + "test": "eslint lib/index.js test/index_test.js && nodeunit test/index_test.js" + }, + "version": "1.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/connect/package.json b/admin/vue2/element-admin-v3/node_modules/connect/package.json index 13ac2c1f2..7899096c9 100644 --- a/admin/vue2/element-admin-v3/node_modules/connect/package.json +++ b/admin/vue2/element-admin-v3/node_modules/connect/package.json @@ -1,34 +1,70 @@ { - "name": "connect", - "description": "High performance middleware framework", - "version": "3.6.6", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong ", - "Tim Caswell " + "_args": [ + [ + "connect@3.6.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "framework", - "web", - "middleware", - "connect", - "rack" + "_from": "connect@3.6.6", + "_id": "connect@3.6.6", + "_inBundle": false, + "_integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "_location": "/connect", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "connect@3.6.6", + "name": "connect", + "escapedName": "connect", + "rawSpec": "3.6.6", + "saveSpec": null, + "fetchSpec": "3.6.6" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz", + "_spec": "3.6.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/senchalabs/connect/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com" + }, + { + "name": "Tim Caswell", + "email": "tim@creationix.com" + } ], - "repository": "senchalabs/connect", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.0", "parseurl": "~1.3.2", "utils-merge": "1.0.1" }, + "description": "High performance middleware framework", "devDependencies": { "eslint": "2.13.1", "mocha": "3.5.3", "nyc": "10.3.2", "supertest": "2.0.0" }, - "license": "MIT", + "engines": { + "node": ">= 0.10.0" + }, "files": [ "LICENSE", "HISTORY.md", @@ -36,13 +72,25 @@ "SECURITY.md", "index.js" ], - "engines": { - "node": ">= 0.10.0" + "homepage": "https://github.com/senchalabs/connect#readme", + "keywords": [ + "framework", + "web", + "middleware", + "connect", + "rack" + ], + "license": "MIT", + "name": "connect", + "repository": { + "type": "git", + "url": "git+https://github.com/senchalabs/connect.git" }, "scripts": { "lint": "eslint .", "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/", "test-cov": "nyc --reporter=text npm test", "test-travis": "nyc --reporter=html --reporter=text npm test" - } + }, + "version": "3.6.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/console-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/console-browserify/package.json index 9d856aa81..219388ad7 100644 --- a/admin/vue2/element-admin-v3/node_modules/console-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/console-browserify/package.json @@ -1,44 +1,77 @@ { - "name": "console-browserify", - "version": "1.2.0", - "description": "Emulate console for all the browsers", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/browserify/console-browserify.git", - "main": "index", - "homepage": "https://github.com/browserify/console-browserify", - "contributors": [ - { - "name": "Raynos" - } + "_args": [ + [ + "console-browserify@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "console-browserify@1.2.0", + "_id": "console-browserify@1.2.0", + "_inBundle": false, + "_integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "_location": "/console-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "console-browserify@1.2.0", + "name": "console-browserify", + "escapedName": "console-browserify", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, "bugs": { "url": "https://github.com/browserify/console-browserify/issues", "email": "raynos2@gmail.com" }, + "contributors": [ + { + "name": "Raynos" + } + ], + "description": "Emulate console for all the browsers", "devDependencies": { - "tape": "^2.12.3", "jsonify": "0.0.0", - "tap-spec": "^0.1.8", "run-browser": "^1.3.0", - "tap-dot": "^0.2.1" + "tap-dot": "^0.2.1", + "tap-spec": "^0.1.8", + "tape": "^2.12.3" }, + "homepage": "https://github.com/browserify/console-browserify", + "keywords": [], "licenses": [ { "type": "MIT", "url": "http://github.com/browserify/console-browserify/raw/master/LICENSE" } ], + "main": "index", + "name": "console-browserify", + "repository": { + "type": "git", + "url": "git://github.com/browserify/console-browserify.git" + }, "scripts": { - "test": "node ./test/index.js | tap-spec", - "dot": "node ./test/index.js | tap-dot", - "start": "node ./index.js", - "cover": "istanbul cover --report none --print detail ./test/index.js", - "view-cover": "istanbul report html && google-chrome ./coverage/index.html", "browser": "run-browser test/index.js", - "phantom": "run-browser test/index.js -b | tap-spec", "build": "browserify test/index.js -o test/static/bundle.js", - "testem": "testem" + "cover": "istanbul cover --report none --print detail ./test/index.js", + "dot": "node ./test/index.js | tap-dot", + "phantom": "run-browser test/index.js -b | tap-spec", + "start": "node ./index.js", + "test": "node ./test/index.js | tap-spec", + "testem": "testem", + "view-cover": "istanbul report html && google-chrome ./coverage/index.html" }, "testling": { "files": "test/index.js", @@ -55,5 +88,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/console-control-strings/package.json b/admin/vue2/element-admin-v3/node_modules/console-control-strings/package.json index eb6c62ae2..cb810244c 100644 --- a/admin/vue2/element-admin-v3/node_modules/console-control-strings/package.json +++ b/admin/vue2/element-admin-v3/node_modules/console-control-strings/package.json @@ -1,27 +1,65 @@ { - "name": "console-control-strings", - "version": "1.1.0", + "_args": [ + [ + "console-control-strings@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "console-control-strings@1.1.0", + "_id": "console-control-strings@1.1.0", + "_inBundle": false, + "_integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "_location": "/console-control-strings", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "console-control-strings@1.1.0", + "name": "console-control-strings", + "escapedName": "console-control-strings", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/gauge", + "/npmlog" + ], + "_resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/console-control-strings/issues" + }, "description": "A library of cross-platform tested terminal/console command strings for doing things like color and cursor positioning. This is a subset of both ansi and vt100. All control codes included work on both Windows & Unix-like OSes, except where noted.", - "main": "index.js", + "devDependencies": { + "standard": "^7.1.2", + "tap": "^5.7.2" + }, "directories": { "test": "test" }, - "scripts": { - "test": "standard && tap test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/console-control-strings" - }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", "files": [ "LICENSE", "index.js" ], - "devDependencies": { - "standard": "^7.1.2", - "tap": "^5.7.2" - } + "homepage": "https://github.com/iarna/console-control-strings#readme", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "console-control-strings", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/console-control-strings.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/consolidate/package.json b/admin/vue2/element-admin-v3/node_modules/consolidate/package.json index dcf3346fa..19cb71c8b 100644 --- a/admin/vue2/element-admin-v3/node_modules/consolidate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/consolidate/package.json @@ -1,30 +1,44 @@ { - "name": "consolidate", - "description": "Template engine consolidation library", - "version": "0.15.1", - "homepage": "https://github.com/tj/consolidate.js", - "author": "TJ Holowaychuk ", - "repository": "tj/consolidate.js", - "bugs": { - "url": "https://github.com/tj/consolidate.js/issues" + "_args": [ + [ + "consolidate@0.15.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "consolidate@0.15.1", + "_id": "consolidate@0.15.1", + "_inBundle": false, + "_integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "_location": "/consolidate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "consolidate@0.15.1", + "name": "consolidate", + "escapedName": "consolidate", + "rawSpec": "0.15.1", + "saveSpec": null, + "fetchSpec": "0.15.1" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requiredBy": [ + "/@vue/component-compiler-utils" ], - "main": "index.js", - "engines": { - "node": ">= 0.10.0" + "_resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599597070540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz", + "_spec": "0.15.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" }, - "scripts": { - "lint": "eslint .", - "pretest": "npm run lint", - "test": "mocha" + "bugs": { + "url": "https://github.com/tj/consolidate.js/issues" }, "dependencies": { "bluebird": "^3.1.1" }, + "description": "Template engine consolidation library", "devDependencies": { "arc-templates": "^0.5.1", "atpl": ">=0.7.6", @@ -69,8 +83,8 @@ "react-dom": "^15.3.2", "should": "*", "slm": "^0.5.0", - "swig-templates": "^2.0.2", "swig": "^1.4.1", + "swig-templates": "^2.0.2", "teacup": "^2.0.0", "templayed": ">=0.2.3", "tinyliquid": "^0.2.30", @@ -78,13 +92,34 @@ "twig": "^0.10.0", "underscore": "^1.3.3", "vash": "^0.12.2", + "velocityjs": "^0.8.2", "walrus": "^0.10.1", - "whiskers": "^0.4.0", - "velocityjs": "^0.8.2" + "whiskers": "^0.4.0" + }, + "engines": { + "node": ">= 0.10.0" }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/tj/consolidate.js", "keywords": [ "engine", "template", "view" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "consolidate", + "repository": { + "type": "git", + "url": "git+https://github.com/tj/consolidate.js.git" + }, + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "mocha" + }, + "version": "0.15.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/@babel/types/package.json b/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/@babel/types/package.json index 7c45ea375..c19b45645 100644 --- a/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/@babel/types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/@babel/types/package.json @@ -1,20 +1,66 @@ { - "name": "@babel/types", - "version": "7.14.5", + "_args": [ + [ + "@babel/types@7.14.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/types@7.14.5", + "_id": "@babel/types@7.14.5", + "_inBundle": false, + "_integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", + "_location": "/constantinople/@babel/types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/types@7.14.5", + "name": "@babel/types", + "escapedName": "@babel%2ftypes", + "scope": "@babel", + "rawSpec": "7.14.5", + "saveSpec": null, + "fetchSpec": "7.14.5" + }, + "_requiredBy": [ + "/constantinople" + ], + "_resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", + "_spec": "7.14.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "The Babel Team", + "url": "https://babel.dev/team" + }, + "bugs": { + "url": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen" + }, + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + }, "description": "Babel Types is a Lodash-esque utility library for AST nodes", - "author": "The Babel Team (https://babel.dev/team)", + "devDependencies": { + "@babel/generator": "7.14.5", + "@babel/parser": "7.14.5", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, "homepage": "https://babel.dev/docs/en/next/babel-types", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen", "license": "MIT", + "main": "./lib/index.js", + "name": "@babel/types", "publishConfig": { "access": "public" }, "repository": { "type": "git", - "url": "https://github.com/babel/babel.git", + "url": "git+https://github.com/babel/babel.git", "directory": "packages/babel-types" }, - "main": "./lib/index.js", "types": "./lib/index-legacy.d.ts", "typesVersions": { ">=3.7": { @@ -23,16 +69,5 @@ ] } }, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "devDependencies": { - "@babel/generator": "7.14.5", - "@babel/parser": "7.14.5", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file + "version": "7.14.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/to-fast-properties/package.json b/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/to-fast-properties/package.json index 7a64b2ccb..70cc61a8b 100644 --- a/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/to-fast-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/constantinople/node_modules/to-fast-properties/package.json @@ -1,23 +1,52 @@ { - "name": "to-fast-properties", - "version": "2.0.0", - "description": "Force V8 to use fast properties for an object", - "license": "MIT", - "repository": "sindresorhus/to-fast-properties", + "_args": [ + [ + "to-fast-properties@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "to-fast-properties@2.0.0", + "_id": "to-fast-properties@2.0.0", + "_inBundle": false, + "_integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "_location": "/constantinople/to-fast-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-fast-properties@2.0.0", + "name": "to-fast-properties", + "escapedName": "to-fast-properties", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/constantinople/@babel/types" + ], + "_resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/to-fast-properties/issues" + }, + "description": "Force V8 to use fast properties for an object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "node --allow-natives-syntax test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/to-fast-properties#readme", "keywords": [ "object", "obj", @@ -29,7 +58,14 @@ "convert", "mode" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "to-fast-properties", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/to-fast-properties.git" + }, + "scripts": { + "test": "node --allow-natives-syntax test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/constantinople/package.json b/admin/vue2/element-admin-v3/node_modules/constantinople/package.json index 2d38432ce..12ff8ae11 100644 --- a/admin/vue2/element-admin-v3/node_modules/constantinople/package.json +++ b/admin/vue2/element-admin-v3/node_modules/constantinople/package.json @@ -1,36 +1,75 @@ { - "name": "constantinople", - "version": "4.0.1", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "description": "Determine whether a JavaScript expression evaluates to a constant", - "keywords": [ - "constant", - "ast", - "tooling" + "_args": [ + [ + "constantinople@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "constantinople@4.0.1", + "_id": "constantinople@4.0.1", + "_inBundle": false, + "_integrity": "sha1-De8RP6Dk3I3oMzGlz3nIsyUhMVE=", + "_location": "/constantinople", + "_phantomChildren": { + "@babel/helper-validator-identifier": "7.14.5" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "constantinople@4.0.1", + "name": "constantinople", + "escapedName": "constantinople", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/pug-attrs", + "/pug-code-gen", + "/pug-filters" + ], + "_resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-4.0.1.tgz?cache=0&sync_timestamp=1568720534976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconstantinople%2Fdownload%2Fconstantinople-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/ForbesLindesay/constantinople/issues" + }, "dependencies": { "@babel/parser": "^7.6.0", "@babel/types": "^7.6.1" }, + "description": "Determine whether a JavaScript expression evaluates to a constant", "devDependencies": { "@types/node": "^9.4.4", "mocha": "*", "prettier": "^1.18.2", "typescript": "^2.7.1" }, + "homepage": "https://github.com/ForbesLindesay/constantinople#readme", + "keywords": [ + "constant", + "ast", + "tooling" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "constantinople", + "repository": { + "type": "git", + "url": "git+https://github.com/ForbesLindesay/constantinople.git" + }, "scripts": { - "prepublish": "npm run build", "build": "tsc", + "prepublish": "npm run build", "pretest": "npm run build && npm run prettier:check", - "test": "mocha -R spec", + "prettier:check": "echo \"If prettier fails you can fix it by running npm run prettier:write\" && prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'", "prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'", - "prettier:check": "echo \"If prettier fails you can fix it by running npm run prettier:write\" && prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'" + "test": "mocha -R spec" }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/constantinople.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file + "types": "lib/index.d.ts", + "version": "4.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/constants-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/constants-browserify/package.json index fcdf301bf..adc99a800 100644 --- a/admin/vue2/element-admin-v3/node_modules/constants-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/constants-browserify/package.json @@ -1,27 +1,39 @@ { - "name": "constants-browserify", - "description": "node's constants module for the browser", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/constants-browserify.git" + "_args": [ + [ + "constants-browserify@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "constants-browserify@1.0.0", + "_id": "constants-browserify@1.0.0", + "_inBundle": false, + "_integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "_location": "/constants-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "constants-browserify@1.0.0", + "name": "constants-browserify", + "escapedName": "constants-browserify", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "homepage": "https://github.com/juliangruber/constants-browserify", - "main": "constants.json", - "dependencies": {}, - "keywords": [ - "constants", - "node", - "browser", - "browserify" + "_requiredBy": [ + "/node-libs-browser" ], + "_resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Julian Gruber", "email": "julian@juliangruber.com", "url": "http://juliangruber.com" }, - "scripts": { - "test": "node test.js" + "bugs": { + "url": "https://github.com/juliangruber/constants-browserify/issues" }, "contributors": [ { @@ -30,5 +42,24 @@ "url": "http://netflix.com" } ], - "license": "MIT" + "dependencies": {}, + "description": "node's constants module for the browser", + "homepage": "https://github.com/juliangruber/constants-browserify", + "keywords": [ + "constants", + "node", + "browser", + "browserify" + ], + "license": "MIT", + "main": "constants.json", + "name": "constants-browserify", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/constants-browserify.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/content-disposition/package.json b/admin/vue2/element-admin-v3/node_modules/content-disposition/package.json index 814f7f3f4..61ab8786d 100644 --- a/admin/vue2/element-admin-v3/node_modules/content-disposition/package.json +++ b/admin/vue2/element-admin-v3/node_modules/content-disposition/package.json @@ -1,19 +1,43 @@ { - "name": "content-disposition", - "description": "Create and parse Content-Disposition header", - "version": "0.5.3", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "content-disposition", - "http", - "rfc6266", - "res" + "_args": [ + [ + "content-disposition@0.5.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "content-disposition@0.5.3", + "_id": "content-disposition@0.5.3", + "_inBundle": false, + "_integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", + "_location": "/content-disposition", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "content-disposition@0.5.3", + "name": "content-disposition", + "escapedName": "content-disposition", + "rawSpec": "0.5.3", + "saveSpec": null, + "fetchSpec": "0.5.3" + }, + "_requiredBy": [ + "/express" ], - "repository": "jshttp/content-disposition", + "_resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", + "_spec": "0.5.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/content-disposition/issues" + }, "dependencies": { "safe-buffer": "5.1.2" }, + "description": "Create and parse Content-Disposition header", "devDependencies": { "deep-equal": "1.0.1", "eslint": "5.10.0", @@ -26,19 +50,33 @@ "istanbul": "0.4.5", "mocha": "5.2.0" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/content-disposition#readme", + "keywords": [ + "content-disposition", + "http", + "rfc6266", + "res" + ], + "license": "MIT", + "name": "content-disposition", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/content-disposition.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "0.5.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/content-type/package.json b/admin/vue2/element-admin-v3/node_modules/content-type/package.json index f2d31d412..ec650394d 100644 --- a/admin/vue2/element-admin-v3/node_modules/content-type/package.json +++ b/admin/vue2/element-admin-v3/node_modules/content-type/package.json @@ -1,17 +1,41 @@ { - "name": "content-type", - "description": "Create and parse HTTP Content-Type header", - "version": "1.0.4", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "content-type", - "http", - "req", - "res", - "rfc7231" + "_args": [ + [ + "content-type@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "content-type@1.0.4", + "_id": "content-type@1.0.4", + "_inBundle": false, + "_integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "_location": "/content-type", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "content-type@1.0.4", + "name": "content-type", + "escapedName": "content-type", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/body-parser", + "/express" ], - "repository": "jshttp/content-type", + "_resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/content-type/issues" + }, + "description": "Create and parse HTTP Content-Type header", "devDependencies": { "eslint": "3.19.0", "eslint-config-standard": "10.2.1", @@ -22,19 +46,34 @@ "istanbul": "0.4.5", "mocha": "~1.21.5" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/content-type#readme", + "keywords": [ + "content-type", + "http", + "req", + "res", + "rfc7231" + ], + "license": "MIT", + "name": "content-type", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/content-type.git" }, "scripts": { "lint": "eslint .", "test": "mocha --reporter spec --check-leaks --bail test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/convert-source-map/package.json b/admin/vue2/element-admin-v3/node_modules/convert-source-map/package.json index c1a9592cf..dd0eb8793 100644 --- a/admin/vue2/element-admin-v3/node_modules/convert-source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/convert-source-map/package.json @@ -1,23 +1,59 @@ { - "name": "convert-source-map", - "version": "1.7.0", - "description": "Converts a source-map from/to different formats and allows adding/changing properties.", - "main": "index.js", - "scripts": { - "test": "tap test/*.js --color" + "_args": [ + [ + "convert-source-map@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "convert-source-map@1.7.0", + "_id": "convert-source-map@1.7.0", + "_inBundle": false, + "_integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "_location": "/convert-source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "convert-source-map@1.7.0", + "name": "convert-source-map", + "escapedName": "convert-source-map", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/convert-source-map.git" + "_requiredBy": [ + "/babel-core" + ], + "_resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "http://thlorenz.com" + }, + "browser": { + "fs": false + }, + "bugs": { + "url": "https://github.com/thlorenz/convert-source-map/issues" }, - "homepage": "https://github.com/thlorenz/convert-source-map", "dependencies": { "safe-buffer": "~5.1.1" }, + "description": "Converts a source-map from/to different formats and allows adding/changing properties.", "devDependencies": { "inline-source-map": "~0.6.2", "tap": "~9.0.0" }, + "engine": { + "node": ">=0.6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/thlorenz/convert-source-map", "keywords": [ "convert", "sourcemap", @@ -26,19 +62,15 @@ "browser", "debug" ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "http://thlorenz.com" - }, "license": "MIT", - "engine": { - "node": ">=0.6" + "main": "index.js", + "name": "convert-source-map", + "repository": { + "type": "git", + "url": "git://github.com/thlorenz/convert-source-map.git" }, - "files": [ - "index.js" - ], - "browser": { - "fs": false - } + "scripts": { + "test": "tap test/*.js --color" + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cookie-signature/package.json b/admin/vue2/element-admin-v3/node_modules/cookie-signature/package.json index 29c4498e0..06c592b63 100644 --- a/admin/vue2/element-admin-v3/node_modules/cookie-signature/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cookie-signature/package.json @@ -1,18 +1,60 @@ { - "name": "cookie-signature", - "version": "1.0.6", - "description": "Sign and unsign cookies", - "keywords": ["cookie", "sign", "unsign"], - "author": "TJ Holowaychuk ", - "license": "MIT", - "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, + "_args": [ + [ + "cookie-signature@1.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "cookie-signature@1.0.6", + "_id": "cookie-signature@1.0.6", + "_inBundle": false, + "_integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "_location": "/cookie-signature", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cookie-signature@1.0.6", + "name": "cookie-signature", + "escapedName": "cookie-signature", + "rawSpec": "1.0.6", + "saveSpec": null, + "fetchSpec": "1.0.6" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "_spec": "1.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@learnboost.com" + }, + "bugs": { + "url": "https://github.com/visionmedia/node-cookie-signature/issues" + }, "dependencies": {}, + "description": "Sign and unsign cookies", "devDependencies": { "mocha": "*", "should": "*" }, + "homepage": "https://github.com/visionmedia/node-cookie-signature#readme", + "keywords": [ + "cookie", + "sign", + "unsign" + ], + "license": "MIT", + "main": "index", + "name": "cookie-signature", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/node-cookie-signature.git" + }, "scripts": { "test": "mocha --require should --reporter spec" }, - "main": "index" + "version": "1.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/cookie/package.json b/admin/vue2/element-admin-v3/node_modules/cookie/package.json index 9bfbc47c1..10c55fa8c 100644 --- a/admin/vue2/element-admin-v3/node_modules/cookie/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cookie/package.json @@ -1,17 +1,46 @@ { - "name": "cookie", - "description": "HTTP server cookie parsing and serialization", - "version": "0.4.0", - "author": "Roman Shtylman ", - "contributors": [ - "Douglas Christopher Wilson " + "_args": [ + [ + "cookie@0.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "cookie", - "cookies" + "_from": "cookie@0.4.0", + "_id": "cookie@0.4.0", + "_inBundle": false, + "_integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "_location": "/cookie", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cookie@0.4.0", + "name": "cookie", + "escapedName": "cookie", + "rawSpec": "0.4.0", + "saveSpec": null, + "fetchSpec": "0.4.0" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "_spec": "0.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roman Shtylman", + "email": "shtylman@gmail.com" + }, + "bugs": { + "url": "https://github.com/jshttp/cookie/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "repository": "jshttp/cookie", + "description": "HTTP server cookie parsing and serialization", "devDependencies": { "beautify-benchmark": "0.2.4", "benchmark": "2.1.4", @@ -20,14 +49,25 @@ "istanbul": "0.4.5", "mocha": "6.1.4" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "HISTORY.md", "LICENSE", "README.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/cookie#readme", + "keywords": [ + "cookie", + "cookies" + ], + "license": "MIT", + "name": "cookie", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/cookie.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -36,5 +76,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "version": "node scripts/version-history.js && git add HISTORY.md" - } + }, + "version": "0.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-concurrently/package.json b/admin/vue2/element-admin-v3/node_modules/copy-concurrently/package.json index d0595846e..2e67ea136 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-concurrently/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-concurrently/package.json @@ -1,17 +1,40 @@ { - "name": "copy-concurrently", - "version": "1.0.5", - "description": "Promises of copies of files, directories and symlinks, with concurrency controls and win32 junction fallback.", - "main": "copy.js", - "scripts": { - "test": "standard && tap --coverage test" + "_args": [ + [ + "copy-concurrently@1.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "copy-concurrently@1.0.5", + "_id": "copy-concurrently@1.0.5", + "_inBundle": false, + "_integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "_location": "/copy-concurrently", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "copy-concurrently@1.0.5", + "name": "copy-concurrently", + "escapedName": "copy-concurrently", + "rawSpec": "1.0.5", + "saveSpec": null, + "fetchSpec": "1.0.5" }, - "keywords": [ - "copy", - "cpr" + "_requiredBy": [ + "/move-concurrently" ], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "_spec": "1.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/npm/copy-concurrently/issues" + }, "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -20,24 +43,33 @@ "rimraf": "^2.5.4", "run-queue": "^1.0.0" }, + "description": "Promises of copies of files, directories and symlinks, with concurrency controls and win32 junction fallback.", "devDependencies": { "standard": "^8.6.0", "tacks": "^1.2.6", "tap": "^10.1.1" }, + "directories": { + "test": "test" + }, "files": [ "copy.js", "is-windows.js" ], - "directories": { - "test": "test" - }, + "homepage": "https://www.npmjs.com/package/copy-concurrently", + "keywords": [ + "copy", + "cpr" + ], + "license": "ISC", + "main": "copy.js", + "name": "copy-concurrently", "repository": { "type": "git", "url": "git+https://github.com/npm/copy-concurrently.git" }, - "bugs": { - "url": "https://github.com/npm/copy-concurrently/issues" + "scripts": { + "test": "standard && tap --coverage test" }, - "homepage": "https://www.npmjs.com/package/copy-concurrently" + "version": "1.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/copy-descriptor/package.json index 84a31c551..56966786f 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-descriptor/package.json @@ -1,32 +1,65 @@ { - "name": "copy-descriptor", - "description": "Copy a descriptor from object A to object B", - "version": "0.1.1", - "homepage": "https://github.com/jonschlinkert/copy-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/copy-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/copy-descriptor/issues" + "_args": [ + [ + "copy-descriptor@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "copy-descriptor@0.1.1", + "_id": "copy-descriptor@0.1.1", + "_inBundle": false, + "_integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "_location": "/copy-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "copy-descriptor@0.1.1", + "name": "copy-descriptor", + "escapedName": "copy-descriptor", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/object-copy" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/copy-descriptor/issues" }, + "description": "Copy a descriptor from object A to object B", "devDependencies": { "gulp-format-md": "^0.1.9", "mocha": "^2.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/copy-descriptor", "keywords": [ "copy", "descriptor" ], + "license": "MIT", + "main": "index.js", + "name": "copy-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/copy-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -52,5 +85,6 @@ "verb-readme-generator", "verb" ] - } + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/globby/package.json b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/globby/package.json index ad1e78d98..75faae2a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/globby/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/globby/package.json @@ -1,25 +1,67 @@ { - "name": "globby", - "version": "7.1.1", - "description": "Extends `glob` with support for multiple patterns and exposes a Promise API", - "license": "MIT", - "repository": "sindresorhus/globby", + "_args": [ + [ + "globby@7.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "globby@7.1.1", + "_id": "globby@7.1.1", + "_inBundle": false, + "_integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "_location": "/copy-webpack-plugin/globby", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "globby@7.1.1", + "name": "globby", + "escapedName": "globby", + "rawSpec": "7.1.1", + "saveSpec": null, + "fetchSpec": "7.1.1" + }, + "_requiredBy": [ + "/copy-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", + "_spec": "7.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { - "email": "sindresorhus@gmail.com", "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/globby/issues" + }, + "dependencies": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "description": "Extends `glob` with support for multiple patterns and exposes a Promise API", + "devDependencies": { + "ava": "*", + "fast-glob": "^1.0.1", + "glob-stream": "^6.1.0", + "globby": "github:sindresorhus/globby#master", + "matcha": "^0.7.0", + "rimraf": "^2.2.8", + "xo": "^0.18.0" + }, "engines": { "node": ">=4" }, - "scripts": { - "bench": "npm update glob-stream fast-glob && matcha bench.js", - "test": "xo && ava" - }, "files": [ "index.js", "gitignore.js" ], + "homepage": "https://github.com/sindresorhus/globby#readme", "keywords": [ "all", "array", @@ -54,21 +96,15 @@ "gitignore", "git" ], - "dependencies": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "license": "MIT", + "name": "globby", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/globby.git" }, - "devDependencies": { - "ava": "*", - "fast-glob": "^1.0.1", - "glob-stream": "^6.1.0", - "globby": "sindresorhus/globby#master", - "matcha": "^0.7.0", - "rimraf": "^2.2.8", - "xo": "^0.18.0" - } + "scripts": { + "bench": "npm update glob-stream fast-glob && matcha bench.js", + "test": "xo && ava" + }, + "version": "7.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-limit/package.json b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-limit/package.json index 4079517f1..75b648d5b 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-limit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-limit/package.json @@ -1,49 +1,85 @@ { - "name": "p-limit", - "version": "1.3.0", - "description": "Run multiple promise-returning & async functions with limited concurrency", - "license": "MIT", - "repository": "sindresorhus/p-limit", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "limit", - "limited", - "concurrency", - "throttle", - "throat", - "rate", - "batch", - "ratelimit", - "task", - "queue", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-try": "^1.0.0" - }, - "devDependencies": { - "ava": "*", - "delay": "^2.0.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^2.0.0", - "xo": "*" - } + "_args": [ + [ + "p-limit@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-limit@1.3.0", + "_id": "p-limit@1.3.0", + "_inBundle": false, + "_integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "_location": "/copy-webpack-plugin/p-limit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-limit@1.3.0", + "name": "p-limit", + "escapedName": "p-limit", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/copy-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-limit/issues" + }, + "dependencies": { + "p-try": "^1.0.0" + }, + "description": "Run multiple promise-returning & async functions with limited concurrency", + "devDependencies": { + "ava": "*", + "delay": "^2.0.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-limit#readme", + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-limit", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-limit.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-try/package.json b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-try/package.json index ba2513ade..3818e2e29 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-try/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/p-try/package.json @@ -1,23 +1,53 @@ { - "name": "p-try", - "version": "1.0.0", - "description": "`Promise#try()` ponyfill - Starts a promise chain", - "license": "MIT", - "repository": "sindresorhus/p-try", + "_args": [ + [ + "p-try@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-try@1.0.0", + "_id": "p-try@1.0.0", + "_inBundle": false, + "_integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "_location": "/copy-webpack-plugin/p-try", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-try@1.0.0", + "name": "p-try", + "escapedName": "p-try", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/copy-webpack-plugin/p-limit" + ], + "_resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-try/issues" + }, + "description": "`Promise#try()` ponyfill - Starts a promise chain", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-try#readme", "keywords": [ "promise", "try", @@ -33,10 +63,16 @@ "shim", "bluebird" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "p-try", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-try.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "1.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/pify/package.json index 468d85760..fe18b6f8b 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "3.0.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@3.0.0", + "_id": "pify@3.0.0", + "_inBundle": false, + "_integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "_location": "/copy-webpack-plugin/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@3.0.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/copy-webpack-plugin/globby" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -42,10 +73,15 @@ "es2015", "bluebird" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^2.0.0", - "v8-natives": "^1.0.0", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/package.json index 857b94045..ca7f65bc2 100644 --- a/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/copy-webpack-plugin/package.json @@ -1,35 +1,56 @@ { - "name": "copy-webpack-plugin", - "version": "4.5.2", - "description": "Copy files && directories with webpack", - "author": "Len Boyette", - "license": "MIT", - "main": "dist/index.js", - "engines": { - "node": ">= 4" + "_args": [ + [ + "copy-webpack-plugin@4.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "copy-webpack-plugin@4.5.2", + "_id": "copy-webpack-plugin@4.5.2", + "_inBundle": false, + "_integrity": "sha1-1TREqP6ikS2AbniTc5Dd1+Yy7lw=", + "_location": "/copy-webpack-plugin", + "_phantomChildren": { + "array-union": "1.0.2", + "dir-glob": "2.2.2", + "glob": "7.1.7", + "ignore": "3.3.10", + "slash": "1.0.0" }, - "files": [ - "dist" + "_requested": { + "type": "version", + "registry": true, + "raw": "copy-webpack-plugin@4.5.2", + "name": "copy-webpack-plugin", + "escapedName": "copy-webpack-plugin", + "rawSpec": "4.5.2", + "saveSpec": null, + "fetchSpec": "4.5.2" + }, + "_requiredBy": [ + "#DEV:/" ], - "scripts": { - "lint": "eslint src/ tests/", - "prepare": "npm run build", - "release": "standard-version", - "pretest": "npm run lint && npm run build && npm run build:tests", - "test": "mocha compiled_tests/", - "build": "babel src/ --out-dir dist/", - "build:tests": "babel tests/ --out-dir compiled_tests/ && rimraf compiled_tests/helpers && ncp tests/helpers compiled_tests/helpers && node scripts/createSpecialDirectory.js" + "_resolved": "https://registry.nlark.com/copy-webpack-plugin/download/copy-webpack-plugin-4.5.2.tgz?cache=0&sync_timestamp=1621607204015&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-4.5.2.tgz", + "_spec": "4.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Len Boyette" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/copy-webpack-plugin/issues" }, "dependencies": { - "globby": "^7.1.1", "cacache": "^10.0.4", "find-cache-dir": "^1.0.0", - "serialize-javascript": "^1.4.0", + "globby": "^7.1.1", "is-glob": "^4.0.0", "loader-utils": "^1.1.0", "minimatch": "^3.0.4", - "p-limit": "^1.0.0" + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" }, + "description": "Copy files && directories with webpack", "devDependencies": { "babel-cli": "^6.8.0", "babel-preset-es2015": "^6.6.0", @@ -43,14 +64,35 @@ "rimraf": "^2.6.2", "standard-version": "^4.2.0" }, + "engines": { + "node": ">= 4" + }, + "files": [ + "dist" + ], "homepage": "https://github.com/webpack-contrib/copy-webpack-plugin", - "bugs": "https://github.com/webpack-contrib/copy-webpack-plugin/issues", - "repository": "https://github.com/webpack-contrib/copy-webpack-plugin.git", "keywords": [ "webpack", "plugin", "transfer", "move", "copy" - ] + ], + "license": "MIT", + "main": "dist/index.js", + "name": "copy-webpack-plugin", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/copy-webpack-plugin.git" + }, + "scripts": { + "build": "babel src/ --out-dir dist/", + "build:tests": "babel tests/ --out-dir compiled_tests/ && rimraf compiled_tests/helpers && ncp tests/helpers compiled_tests/helpers && node scripts/createSpecialDirectory.js", + "lint": "eslint src/ tests/", + "prepare": "npm run build", + "pretest": "npm run lint && npm run build && npm run build:tests", + "release": "standard-version", + "test": "mocha compiled_tests/" + }, + "version": "4.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/core-js/package.json b/admin/vue2/element-admin-v3/node_modules/core-js/package.json index 9ec76ada6..a10b903db 100644 --- a/admin/vue2/element-admin-v3/node_modules/core-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/core-js/package.json @@ -1,17 +1,43 @@ { - "name": "core-js", - "description": "Standard library", - "version": "3.21.0", - "repository": { - "type": "git", - "url": "https://github.com/zloirock/core-js.git" + "_args": [ + [ + "core-js@3.21.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "core-js@3.21.0", + "_id": "core-js@3.21.0", + "_inBundle": false, + "_integrity": "sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==", + "_location": "/core-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "core-js@3.21.0", + "name": "core-js", + "escapedName": "core-js", + "rawSpec": "3.21.0", + "saveSpec": null, + "fetchSpec": "3.21.0" }, - "main": "index.js", + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.21.0.tgz", + "_spec": "3.21.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zloirock/core-js/issues" + }, + "description": "Standard library", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" }, - "license": "MIT", + "gitHead": "32492dc5f55ea9bbd21b8fa8145cedd36d68c160", + "homepage": "https://github.com/zloirock/core-js#readme", "keywords": [ "ES3", "ES5", @@ -51,8 +77,15 @@ "ponyfill", "shim" ], + "license": "MIT", + "main": "index.js", + "name": "core-js", + "repository": { + "type": "git", + "url": "git+https://github.com/zloirock/core-js.git" + }, "scripts": { "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\"" }, - "gitHead": "32492dc5f55ea9bbd21b8fa8145cedd36d68c160" + "version": "3.21.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/core-util-is/package.json b/admin/vue2/element-admin-v3/node_modules/core-util-is/package.json index 3368e9519..4b4f5adb9 100644 --- a/admin/vue2/element-admin-v3/node_modules/core-util-is/package.json +++ b/admin/vue2/element-admin-v3/node_modules/core-util-is/package.json @@ -1,12 +1,46 @@ { - "name": "core-util-is", - "version": "1.0.2", + "_args": [ + [ + "core-util-is@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "core-util-is@1.0.2", + "_id": "core-util-is@1.0.2", + "_inBundle": false, + "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "_location": "/core-util-is", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "core-util-is@1.0.2", + "name": "core-util-is", + "escapedName": "core-util-is", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/readable-stream", + "/verror" + ], + "_resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/core-util-is/issues" + }, "description": "The `util.is*` functions introduced in Node v0.12.", - "main": "lib/util.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is" + "devDependencies": { + "tap": "^2.3.0" }, + "homepage": "https://github.com/isaacs/core-util-is#readme", "keywords": [ "util", "isBuffer", @@ -18,15 +52,15 @@ "isThat", "polyfill" ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "license": "MIT", - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" + "main": "lib/util.js", + "name": "core-util-is", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is.git" }, "scripts": { "test": "tap test.js" }, - "devDependencies": { - "tap": "^2.3.0" - } + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/cosmiconfig/package.json b/admin/vue2/element-admin-v3/node_modules/cosmiconfig/package.json index 545bb95ef..17da58d65 100644 --- a/admin/vue2/element-admin-v3/node_modules/cosmiconfig/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cosmiconfig/package.json @@ -1,93 +1,64 @@ { - "name": "cosmiconfig", - "version": "5.2.1", - "description": "Find and load configuration from a package.json property, rc file, or CommonJS module", - "main": "dist/index.js", - "files": [ - "dist" - ], - "scripts": { - "precommit": "lint-staged && jest && flow check", - "lint:md-partial": "remark -u remark-preset-davidtheclark --frail --quiet --no-stdout --output --", - "lint:md": "npm run lint:md-partial -- *.md", - "lint:fix": "eslint . --fix", - "lint": "eslint . && npm run lint:md", - "format": "prettier --write \"{src/*.js,test/*.js}\"", - "pretest": "npm run lint && flow check", - "test": "jest --coverage", - "test:watch": "jest --watch", - "coverage": "jest --coverage --coverageReporters=html --coverageReporters=text", - "build": "flow-remove-types src --out-dir dist --quiet", - "prepublishOnly": "npm run build" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "prettier --write", - "git add" - ], - "*.md": [ - "npm run lint:md-partial", - "git add" + "_args": [ + [ + "cosmiconfig@5.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/davidtheclark/cosmiconfig.git" - }, - "keywords": [ - "load", - "configuration", - "config" ], - "author": "David Clark ", - "contributors": [ - "Bogdan Chadkin ", - "Suhas Karanth " - ], - "license": "MIT", - "bugs": { - "url": "https://github.com/davidtheclark/cosmiconfig/issues" - }, - "homepage": "https://github.com/davidtheclark/cosmiconfig#readme", - "prettier": { - "trailingComma": "es5", - "singleQuote": true, - "printWidth": 80, - "tabWidth": 2 + "_development": true, + "_from": "cosmiconfig@5.2.1", + "_id": "cosmiconfig@5.2.1", + "_inBundle": false, + "_integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "_location": "/cosmiconfig", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cosmiconfig@5.2.1", + "name": "cosmiconfig", + "escapedName": "cosmiconfig", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" }, - "jest": { - "testEnvironment": "node", - "collectCoverageFrom": [ - "src/*.js" - ], - "coverageReporters": [ - "text", - "html", - "lcov" - ], - "coverageThreshold": { - "global": { - "branches": 100, - "functions": 100, - "lines": 100, - "statements": 100 - } - }, - "resetModules": true, - "resetMocks": true + "_requiredBy": [ + "/cssnano", + "/lint-staged", + "/postcss-load-config" + ], + "_resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310657948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", + "_spec": "5.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "David Clark", + "email": "david.dave.clark@gmail.com" }, "babel": { "plugins": [ "transform-flow-strip-types" ] }, + "bugs": { + "url": "https://github.com/davidtheclark/cosmiconfig/issues" + }, + "contributors": [ + { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + { + "name": "Suhas Karanth", + "email": "sudo.suhas@gmail.com" + } + ], "dependencies": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" }, + "description": "Find and load configuration from a package.json property, rc file, or CommonJS module", "devDependencies": { "babel-eslint": "^8.0.3", "babel-plugin-transform-flow-strip-types": "^6.22.0", @@ -110,5 +81,74 @@ }, "engines": { "node": ">=4" - } + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/davidtheclark/cosmiconfig#readme", + "jest": { + "testEnvironment": "node", + "collectCoverageFrom": [ + "src/*.js" + ], + "coverageReporters": [ + "text", + "html", + "lcov" + ], + "coverageThreshold": { + "global": { + "branches": 100, + "functions": 100, + "lines": 100, + "statements": 100 + } + }, + "resetModules": true, + "resetMocks": true + }, + "keywords": [ + "load", + "configuration", + "config" + ], + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "prettier --write", + "git add" + ], + "*.md": [ + "npm run lint:md-partial", + "git add" + ] + }, + "main": "dist/index.js", + "name": "cosmiconfig", + "prettier": { + "trailingComma": "es5", + "singleQuote": true, + "printWidth": 80, + "tabWidth": 2 + }, + "repository": { + "type": "git", + "url": "git+https://github.com/davidtheclark/cosmiconfig.git" + }, + "scripts": { + "build": "flow-remove-types src --out-dir dist --quiet", + "coverage": "jest --coverage --coverageReporters=html --coverageReporters=text", + "format": "prettier --write \"{src/*.js,test/*.js}\"", + "lint": "eslint . && npm run lint:md", + "lint:fix": "eslint . --fix", + "lint:md": "npm run lint:md-partial -- *.md", + "lint:md-partial": "remark -u remark-preset-davidtheclark --frail --quiet --no-stdout --output --", + "precommit": "lint-staged && jest && flow check", + "prepublishOnly": "npm run build", + "pretest": "npm run lint && flow check", + "test": "jest --coverage", + "test:watch": "jest --watch" + }, + "version": "5.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/crc-32/package.json b/admin/vue2/element-admin-v3/node_modules/crc-32/package.json index e1d7565c0..63cfdae05 100644 --- a/admin/vue2/element-admin-v3/node_modules/crc-32/package.json +++ b/admin/vue2/element-admin-v3/node_modules/crc-32/package.json @@ -1,42 +1,91 @@ { - "name": "crc-32", - "version": "1.2.0", - "author": "sheetjs", - "description": "Pure-JS CRC-32", - "keywords": [ "crc", "crc32", "checksum" ], - "bin": { - "crc32": "./bin/crc32.njs" - }, - "main": "./crc32", - "types": "types", - "dependencies": { - "printj":"~1.1.0", - "exit-on-epipe":"~1.0.1" - }, - "devDependencies": { - "mocha":"~2.5.3", - "blanket": "~1.2.3", - "codepage":"~1.10.0", - "@sheetjs/uglify-js":"~2.7.3", - "@types/node":"^8.0.7", - "dtslint": "^0.1.2", - "typescript": "2.2.0" - }, - "repository": { "type":"git", "url":"git://github.com/SheetJS/js-crc32.git" }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "crc32.js" - } - }, - "homepage": "http://sheetjs.com/opensource", - "files": ["crc32.js", "bin/crc32.njs", "LICENSE", "README.md", "types/index.d.ts", "types/*.json"], - "bugs": { "url": "https://github.com/SheetJS/js-crc32/issues" }, - "license": "Apache-2.0", - "engines": { "node": ">=0.8" } + "_args": [ + [ + "crc-32@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "crc-32@1.2.0", + "_id": "crc-32@1.2.0", + "_inBundle": false, + "_integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=", + "_location": "/crc-32", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "crc-32@1.2.0", + "name": "crc-32", + "escapedName": "crc-32", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/cfb", + "/xlsx" + ], + "_resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "sheetjs" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "bugs": { + "url": "https://github.com/SheetJS/js-crc32/issues" + }, + "config": { + "blanket": { + "pattern": "crc32.js" + } + }, + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "description": "Pure-JS CRC-32", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "codepage": "~1.10.0", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "crc32.js", + "bin/crc32.njs", + "LICENSE", + "README.md", + "types/index.d.ts", + "types/*.json" + ], + "homepage": "http://sheetjs.com/opensource", + "keywords": [ + "crc", + "crc32", + "checksum" + ], + "license": "Apache-2.0", + "main": "./crc32", + "name": "crc-32", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-crc32.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/create-ecdh/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/create-ecdh/node_modules/bn.js/package.json index 098b805f9..35ab87051 100644 --- a/admin/vue2/element-admin-v3/node_modules/create-ecdh/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/create-ecdh/node_modules/bn.js/package.json @@ -1,17 +1,49 @@ { - "name": "bn.js", - "version": "4.12.0", - "description": "Big number implementation in pure javascript", - "main": "lib/bn.js", - "scripts": { - "lint": "semistandard", - "unit": "mocha --reporter=spec test/*-test.js", - "test": "npm run lint && npm run unit" + "_args": [ + [ + "bn.js@4.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@4.12.0", + "_id": "bn.js@4.12.0", + "_inBundle": false, + "_integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "_location": "/create-ecdh/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@4.12.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "4.12.0", + "saveSpec": null, + "fetchSpec": "4.12.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" + "_requiredBy": [ + "/create-ecdh" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "_spec": "4.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, + "description": "Big number implementation in pure javascript", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "semistandard": "^7.0.4" + }, + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "BigNum", @@ -19,18 +51,17 @@ "Modulo", "Montgomery" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" + "main": "lib/bn.js", + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, - "homepage": "https://github.com/indutny/bn.js", - "browser": { - "buffer": false + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run unit", + "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "semistandard": "^7.0.4" - } + "version": "4.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/create-ecdh/package.json b/admin/vue2/element-admin-v3/node_modules/create-ecdh/package.json index 9ef2ca77a..5b17aca72 100644 --- a/admin/vue2/element-admin-v3/node_modules/create-ecdh/package.json +++ b/admin/vue2/element-admin-v3/node_modules/create-ecdh/package.json @@ -1,35 +1,65 @@ { - "name": "create-ecdh", - "version": "4.0.4", - "description": "createECDH but browserifiable", - "main": "index.js", + "_args": [ + [ + "create-ecdh@4.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "create-ecdh@4.0.4", + "_id": "create-ecdh@4.0.4", + "_inBundle": false, + "_integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", + "_location": "/create-ecdh", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "create-ecdh@4.0.4", + "name": "create-ecdh", + "escapedName": "create-ecdh", + "rawSpec": "4.0.4", + "saveSpec": null, + "fetchSpec": "4.0.4" + }, + "_requiredBy": [ + "/crypto-browserify" + ], + "_resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", + "_spec": "4.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf" + }, "browser": "browser.js", - "scripts": { - "test": "standard && node test.js | tspec" + "bugs": { + "url": "https://github.com/crypto-browserify/createECDH/issues" }, - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/createECDH.git" + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" }, + "description": "createECDH but browserifiable", + "devDependencies": { + "standard": "^5.4.1", + "tap-spec": "^1.0.1", + "tape": "^3.0.1" + }, + "homepage": "https://github.com/crypto-browserify/createECDH", "keywords": [ "diffie", "hellman", "diffiehellman", "ECDH" ], - "author": "Calvin Metcalf", "license": "MIT", - "bugs": { - "url": "https://github.com/crypto-browserify/createECDH/issues" + "main": "index.js", + "name": "create-ecdh", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/createECDH.git" }, - "homepage": "https://github.com/crypto-browserify/createECDH", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "scripts": { + "test": "standard && node test.js | tspec" }, - "devDependencies": { - "tap-spec": "^1.0.1", - "tape": "^3.0.1", - "standard": "^5.4.1" - } + "version": "4.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/create-hash/package.json b/admin/vue2/element-admin-v3/node_modules/create-hash/package.json index 16f385b07..746c2f2cb 100644 --- a/admin/vue2/element-admin-v3/node_modules/create-hash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/create-hash/package.json @@ -1,27 +1,50 @@ { - "name": "create-hash", - "version": "1.2.0", - "description": "create hashes for browserify", - "browser": "browser.js", - "main": "index.js", - "scripts": { - "standard": "standard", - "test": "npm run-script standard && npm run-script unit", - "unit": "node test.js | tspec" - }, - "repository": { - "type": "git", - "url": "git@github.com:crypto-browserify/createHash.git" + "_args": [ + [ + "create-hash@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "create-hash@1.2.0", + "_id": "create-hash@1.2.0", + "_inBundle": false, + "_integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "_location": "/create-hash", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "create-hash@1.2.0", + "name": "create-hash", + "escapedName": "create-hash", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" }, - "keywords": [ - "crypto" + "_requiredBy": [ + "/browserify-aes", + "/browserify-sign", + "/create-hmac", + "/crypto-browserify", + "/pbkdf2", + "/public-encrypt" ], + "_resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", + "browser": "browser.js", "bugs": { "url": "https://github.com/crypto-browserify/createHash/issues" }, - "homepage": "https://github.com/crypto-browserify/createHash", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + }, + "description": "create hashes for browserify", "devDependencies": { "hash-test-vectors": "^1.3.2", "safe-buffer": "^5.0.1", @@ -29,11 +52,21 @@ "tap-spec": "^2.1.2", "tape": "^4.6.3" }, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } + "homepage": "https://github.com/crypto-browserify/createHash", + "keywords": [ + "crypto" + ], + "license": "MIT", + "main": "index.js", + "name": "create-hash", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/crypto-browserify/createHash.git" + }, + "scripts": { + "standard": "standard", + "test": "npm run-script standard && npm run-script unit", + "unit": "node test.js | tspec" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/create-hmac/package.json b/admin/vue2/element-admin-v3/node_modules/create-hmac/package.json index a7e52d8e1..7d494e8b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/create-hmac/package.json +++ b/admin/vue2/element-admin-v3/node_modules/create-hmac/package.json @@ -1,38 +1,39 @@ { - "name": "create-hmac", - "version": "1.1.7", - "description": "node style hmacs in the browser", - "files": [ - "browser.js", - "index.js", - "legacy.js" + "_args": [ + [ + "create-hmac@1.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "index.js", - "scripts": { - "standard": "standard", - "test": "npm run-script standard && npm run-script unit", - "unit": "node test.js | tspec" - }, - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/createHmac.git" + "_from": "create-hmac@1.1.7", + "_id": "create-hmac@1.1.7", + "_inBundle": false, + "_integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "_location": "/create-hmac", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "create-hmac@1.1.7", + "name": "create-hmac", + "escapedName": "create-hmac", + "rawSpec": "1.1.7", + "saveSpec": null, + "fetchSpec": "1.1.7" }, - "keywords": [ - "crypto", - "hmac" + "_requiredBy": [ + "/browserify-sign", + "/crypto-browserify", + "/pbkdf2" ], + "_resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "_spec": "1.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", + "browser": "./browser.js", "bugs": { "url": "https://github.com/crypto-browserify/createHmac/issues" }, - "homepage": "https://github.com/crypto-browserify/createHmac", - "devDependencies": { - "hash-test-vectors": "^1.3.2", - "standard": "^5.3.1", - "tap-spec": "^2.1.2", - "tape": "^3.0.3" - }, "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -41,5 +42,34 @@ "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" }, - "browser": "./browser.js" + "description": "node style hmacs in the browser", + "devDependencies": { + "hash-test-vectors": "^1.3.2", + "standard": "^5.3.1", + "tap-spec": "^2.1.2", + "tape": "^3.0.3" + }, + "files": [ + "browser.js", + "index.js", + "legacy.js" + ], + "homepage": "https://github.com/crypto-browserify/createHmac", + "keywords": [ + "crypto", + "hmac" + ], + "license": "MIT", + "main": "index.js", + "name": "create-hmac", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/createHmac.git" + }, + "scripts": { + "standard": "standard", + "test": "npm run-script standard && npm run-script unit", + "unit": "node test.js | tspec" + }, + "version": "1.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/cross-env/package.json b/admin/vue2/element-admin-v3/node_modules/cross-env/package.json index bc1d08832..09deb39c1 100644 --- a/admin/vue2/element-admin-v3/node_modules/cross-env/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cross-env/package.json @@ -1,41 +1,56 @@ { - "name": "cross-env", - "version": "5.2.0", - "description": "Run scripts that set and use environment variables across platforms", - "main": "dist/index.js", + "_args": [ + [ + "cross-env@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cross-env@5.2.0", + "_id": "cross-env@5.2.0", + "_inBundle": false, + "_integrity": "sha1-bs1MAV1Xc+YUA57lKQdmabnRJvI=", + "_location": "/cross-env", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cross-env@5.2.0", + "name": "cross-env", + "escapedName": "cross-env", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/cross-env/download/cross-env-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kent C. Dodds", + "email": "kent@doddsfamily.us", + "url": "http://kentcdodds.com/" + }, "bin": { "cross-env": "dist/bin/cross-env.js", "cross-env-shell": "dist/bin/cross-env-shell.js" }, - "engines": { - "node": ">=4.0" - }, - "scripts": { - "add-contributor": "kcd-scripts contributors add", - "build": "kcd-scripts build", - "lint": "kcd-scripts lint", - "test": "kcd-scripts test", - "test:update": "npm test -- --updateSnapshot --coverage", - "validate": "kcd-scripts validate", - "precommit": "kcd-scripts precommit" + "bugs": { + "url": "https://github.com/kentcdodds/cross-env/issues" }, - "files": [ - "dist" - ], - "keywords": [ - "cross-environment", - "environment variable", - "windows" - ], - "author": "Kent C. Dodds (http://kentcdodds.com/)", - "license": "MIT", "dependencies": { "cross-spawn": "^6.0.5", "is-windows": "^1.0.0" }, + "description": "Run scripts that set and use environment variables across platforms", "devDependencies": { "kcd-scripts": "^0.3.4" }, + "engines": { + "node": ">=4.0" + }, "eslintConfig": { "extends": "./node_modules/kcd-scripts/eslint.js" }, @@ -44,12 +59,30 @@ "coverage", "dist" ], + "files": [ + "dist" + ], + "homepage": "https://github.com/kentcdodds/cross-env#readme", + "keywords": [ + "cross-environment", + "environment variable", + "windows" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "cross-env", "repository": { "type": "git", - "url": "https://github.com/kentcdodds/cross-env.git" + "url": "git+https://github.com/kentcdodds/cross-env.git" }, - "bugs": { - "url": "https://github.com/kentcdodds/cross-env/issues" + "scripts": { + "add-contributor": "kcd-scripts contributors add", + "build": "kcd-scripts build", + "lint": "kcd-scripts lint", + "precommit": "kcd-scripts precommit", + "test": "kcd-scripts test", + "test:update": "npm test -- --updateSnapshot --coverage", + "validate": "kcd-scripts validate" }, - "homepage": "https://github.com/kentcdodds/cross-env#readme" -} \ No newline at end of file + "version": "5.2.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver index 86cee84b6..10497aa88 100644 --- a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver +++ b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" + "$basedir/node" "$basedir/../semver/bin/semver" "$@" + ret=$? else - exec node "$basedir/../semver/bin/semver" "$@" + node "$basedir/../semver/bin/semver" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.cmd b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.cmd index 974e8f3a5..f6c4ad47f 100644 --- a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.cmd +++ b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* +"%_prog%" "%dp0%\..\semver\bin\semver" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.ps1 b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.ps1 index 98c1b093f..a3315ffc6 100644 --- a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/.bin/semver.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args - } else { - & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args - } + & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../semver/bin/semver" $args - } else { - & "node$exe" "$basedir/../semver/bin/semver" $args - } + & "node$exe" "$basedir/../semver/bin/semver" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/semver/package.json b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/semver/package.json index 69d2db162..851aa70b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/semver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cross-spawn/node_modules/semver/package.json @@ -1,28 +1,63 @@ { - "name": "semver", - "version": "5.7.1", - "description": "The semantic version parser used by npm.", - "main": "semver.js", - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" + "_args": [ + [ + "semver@5.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "semver@5.7.1", + "_id": "semver@5.7.1", + "_inBundle": false, + "_integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "_location": "/cross-spawn/semver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "semver@5.7.1", + "name": "semver", + "escapedName": "semver", + "rawSpec": "5.7.1", + "saveSpec": null, + "fetchSpec": "5.7.1" + }, + "_requiredBy": [ + "/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", + "_spec": "5.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "semver": "bin/semver" + }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" }, + "description": "The semantic version parser used by npm.", "devDependencies": { "tap": "^13.0.0-rc.18" }, - "license": "ISC", - "repository": "https://github.com/npm/node-semver", - "bin": { - "semver": "./bin/semver" - }, "files": [ "bin", "range.bnf", "semver.js" ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "semver.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true - } + }, + "version": "5.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cross-spawn/package.json b/admin/vue2/element-admin-v3/node_modules/cross-spawn/package.json index 1a69be8cc..bc3cfebc2 100644 --- a/admin/vue2/element-admin-v3/node_modules/cross-spawn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cross-spawn/package.json @@ -1,46 +1,40 @@ { - "name": "cross-spawn", - "version": "6.0.5", - "description": "Cross platform child_process#spawn and child_process#spawnSync", - "keywords": [ - "spawn", - "spawnSync", - "windows", - "cross-platform", - "path-ext", - "shebang", - "cmd", - "execute" + "_args": [ + [ + "cross-spawn@6.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "André Cruz ", - "homepage": "https://github.com/moxystudio/node-cross-spawn", - "repository": { - "type": "git", - "url": "git@github.com:moxystudio/node-cross-spawn.git" + "_from": "cross-spawn@6.0.5", + "_id": "cross-spawn@6.0.5", + "_inBundle": false, + "_integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "_location": "/cross-spawn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cross-spawn@6.0.5", + "name": "cross-spawn", + "escapedName": "cross-spawn", + "rawSpec": "6.0.5", + "saveSpec": null, + "fetchSpec": "6.0.5" }, - "license": "MIT", - "main": "index.js", - "files": [ - "lib" + "_requiredBy": [ + "/cross-env", + "/execa", + "/webpack-cli" ], - "scripts": { - "lint": "eslint .", - "test": "jest --env node --coverage", - "prerelease": "npm t && npm run lint", - "release": "standard-version", - "precommit": "lint-staged", - "commitmsg": "commitlint -e $GIT_PARAMS" - }, - "standard-version": { - "scripts": { - "posttag": "git push --follow-tags origin master && npm publish" - } + "_resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "_spec": "6.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "André Cruz", + "email": "andre@moxy.studio" }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] + "bugs": { + "url": "https://github.com/moxystudio/node-cross-spawn/issues" }, "commitlint": { "extends": [ @@ -54,6 +48,7 @@ "shebang-command": "^1.2.0", "which": "^1.2.9" }, + "description": "Cross platform child_process#spawn and child_process#spawnSync", "devDependencies": { "@commitlint/cli": "^6.0.0", "@commitlint/config-conventional": "^6.0.2", @@ -72,5 +67,46 @@ }, "engines": { "node": ">=4.8" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/moxystudio/node-cross-spawn", + "keywords": [ + "spawn", + "spawnSync", + "windows", + "cross-platform", + "path-ext", + "shebang", + "cmd", + "execute" + ], + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "index.js", + "name": "cross-spawn", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/moxystudio/node-cross-spawn.git" + }, + "scripts": { + "commitmsg": "commitlint -e $GIT_PARAMS", + "lint": "eslint .", + "precommit": "lint-staged", + "prerelease": "npm t && npm run lint", + "release": "standard-version", + "test": "jest --env node --coverage" + }, + "standard-version": { + "scripts": { + "posttag": "git push --follow-tags origin master && npm publish" + } + }, + "version": "6.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/crypto-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/crypto-browserify/package.json index 7de383b01..30a9cc868 100644 --- a/admin/vue2/element-admin-v3/node_modules/crypto-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/crypto-browserify/package.json @@ -1,21 +1,42 @@ { - "author": "Dominic Tarr (dominictarr.com)", - "name": "crypto-browserify", - "description": "implementation of crypto for the browser", - "version": "3.12.0", - "homepage": "https://github.com/crypto-browserify/crypto-browserify", - "repository": { - "type": "git", - "url": "git://github.com/crypto-browserify/crypto-browserify.git" + "_args": [ + [ + "crypto-browserify@3.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "crypto-browserify@3.12.0", + "_id": "crypto-browserify@3.12.0", + "_inBundle": false, + "_integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "_location": "/crypto-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "crypto-browserify@3.12.0", + "name": "crypto-browserify", + "escapedName": "crypto-browserify", + "rawSpec": "3.12.0", + "saveSpec": null, + "fetchSpec": "3.12.0" }, - "scripts": { - "standard": "standard", - "test": "npm run standard && npm run unit", - "unit": "node test/", - "browser": "zuul --browser-version $BROWSER_VERSION --browser-name $BROWSER_NAME -- test/index.js" + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "_spec": "3.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dominic Tarr", + "email": "dominic.tarr@gmail.com", + "url": "dominictarr.com" }, - "engines": { - "node": "*" + "browser": { + "crypto": false + }, + "bugs": { + "url": "https://github.com/crypto-browserify/crypto-browserify/issues" }, "dependencies": { "browserify-cipher": "^1.0.0", @@ -30,6 +51,7 @@ "randombytes": "^2.0.0", "randomfill": "^1.0.3" }, + "description": "implementation of crypto for the browser", "devDependencies": { "hash-test-vectors": "~1.3.2", "pseudorandombytes": "^2.0.0", @@ -38,9 +60,22 @@ "tape": "~2.3.2", "zuul": "^3.6.0" }, + "engines": { + "node": "*" + }, + "homepage": "https://github.com/crypto-browserify/crypto-browserify", + "license": "MIT", + "name": "crypto-browserify", "optionalDependencies": {}, - "browser": { - "crypto": false + "repository": { + "type": "git", + "url": "git://github.com/crypto-browserify/crypto-browserify.git" + }, + "scripts": { + "browser": "zuul --browser-version $BROWSER_VERSION --browser-name $BROWSER_NAME -- test/index.js", + "standard": "standard", + "test": "npm run standard && npm run unit", + "unit": "node test/" }, - "license": "MIT" + "version": "3.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-color-names/package.json b/admin/vue2/element-admin-v3/node_modules/css-color-names/package.json index 283f93958..1a6bee355 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-color-names/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-color-names/package.json @@ -1,28 +1,68 @@ { - "name": "css-color-names", - "description": "A JSON Object of css color names mapped to their hex value", - "version": "0.0.4", - "author": "Dave Eddy (http://www.daveeddy.com)", - "contributors": [], - "main": "./css-color-names.json", - "repository": { - "type": "git", - "url": "git://github.com/bahamas10/css-color-names.git" + "_args": [ + [ + "css-color-names@0.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "css-color-names@0.0.4", + "_id": "css-color-names@0.0.4", + "_inBundle": false, + "_integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "_location": "/css-color-names", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-color-names@0.0.4", + "name": "css-color-names", + "escapedName": "css-color-names", + "rawSpec": "0.0.4", + "saveSpec": null, + "fetchSpec": "0.0.4" }, - "scripts": { - "test": "for f in tests/*.js; do echo \"$f\"; node \"$f\" || exit 1; done; echo 'Passed!'" + "_requiredBy": [ + "/is-color-stop", + "/postcss-merge-longhand" + ], + "_resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "_spec": "0.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dave Eddy", + "email": "dave@daveeddy.com", + "url": "http://www.daveeddy.com" + }, + "bugs": { + "url": "https://github.com/bahamas10/css-color-names/issues" }, + "contributors": [], "dependencies": {}, + "description": "A JSON Object of css color names mapped to their hex value", "devDependencies": {}, - "optionalDependencies": {}, "engines": { "node": "*" }, - "license": "MIT", - "keywords": [ - "css", "colors", "names" - ], "files": [ "css-color-names.json" - ] + ], + "homepage": "https://github.com/bahamas10/css-color-names#readme", + "keywords": [ + "css", + "colors", + "names" + ], + "license": "MIT", + "main": "./css-color-names.json", + "name": "css-color-names", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/bahamas10/css-color-names.git" + }, + "scripts": { + "test": "for f in tests/*.js; do echo \"$f\"; node \"$f\" || exit 1; done; echo 'Passed!'" + }, + "version": "0.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/ansi-styles/package.json index 65edb48c3..4cf7612a2 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/css-declaration-sorter/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/css-declaration-sorter/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..14fd8fff5 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/css-declaration-sorter/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/css-declaration-sorter/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/package.json index bc324685a..4af84da60 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/css-declaration-sorter/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/css-declaration-sorter/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/postcss/package.json index ece04085e..a78bf894a 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/css-declaration-sorter/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/css-declaration-sorter" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/source-map/package.json index 24663417e..7c62512d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/css-declaration-sorter/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/css-declaration-sorter/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/supports-color/package.json index db4ded22b..f52ed96f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/css-declaration-sorter/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/css-declaration-sorter/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/package.json b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/package.json index 6cb49cfe3..a7e3bba51 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-declaration-sorter/package.json @@ -1,24 +1,50 @@ { - "name": "css-declaration-sorter", - "version": "4.0.1", - "description": "Sorts CSS declarations fast and automatically in a certain order.", - "main": "src/index.js", - "files": [ - "src/index.js", - "orders" + "_args": [ + [ + "css-declaration-sorter@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "node tests/test.js", - "test:benchmark": "node tests/benchmark/benchmark.js", - "test:ci": "npm test && npm run lint -- --max-warnings 0", - "lint": "eslint src/*.js tests/*.js", - "preversion": "npm test", - "scrape": "node src/property-scraper" + "_development": true, + "_from": "css-declaration-sorter@4.0.1", + "_id": "css-declaration-sorter@4.0.1", + "_inBundle": false, + "_integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "_location": "/css-declaration-sorter", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-declaration-sorter@4.0.1", + "name": "css-declaration-sorter", + "escapedName": "css-declaration-sorter", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1620754698059&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Selwyn", + "email": "talk@selwyn.cc", + "url": "https://selwyn.cc/" + }, + "bugs": { + "url": "https://github.com/Siilwyn/css-declaration-sorter/issues" }, "dependencies": { "postcss": "^7.0.1", "timsort": "^0.3.0" }, + "description": "Sorts CSS declarations fast and automatically in a certain order.", "devDependencies": { "benchmark": "^2.1.4", "eslint": "^5.0.0", @@ -27,12 +53,11 @@ "engines": { "node": ">4" }, - "repository": { - "type": "git", - "url": "https://github.com/Siilwyn/css-declaration-sorter.git" - }, - "author": "Selwyn (https://selwyn.cc/)", - "license": "MIT", + "files": [ + "src/index.js", + "orders" + ], + "homepage": "https://github.com/Siilwyn/css-declaration-sorter#readme", "keywords": [ "postcss", "postcss-plugin", @@ -41,5 +66,21 @@ "sorter", "property", "order" - ] + ], + "license": "MIT", + "main": "src/index.js", + "name": "css-declaration-sorter", + "repository": { + "type": "git", + "url": "git+https://github.com/Siilwyn/css-declaration-sorter.git" + }, + "scripts": { + "lint": "eslint src/*.js tests/*.js", + "preversion": "npm test", + "scrape": "node src/property-scraper", + "test": "node tests/test.js", + "test:benchmark": "node tests/benchmark/benchmark.js", + "test:ci": "npm test && npm run lint -- --max-warnings 0" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-loader/package.json b/admin/vue2/element-admin-v3/node_modules/css-loader/package.json index 596a52ab6..d952ff214 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-loader/package.json @@ -1,17 +1,39 @@ { - "name": "css-loader", - "version": "1.0.0", - "author": "Tobias Koppers @sokra", - "license": "MIT", - "description": "css loader module for webpack", - "engines": { - "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + "_args": [ + [ + "css-loader@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "css-loader@1.0.0", + "_id": "css-loader@1.0.0", + "_inBundle": false, + "_integrity": "sha1-n0aqpcpB2+MYYOO2K44jxCkWv1Y=", + "_location": "/css-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-loader@1.0.0", + "name": "css-loader", + "escapedName": "css-loader", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "files": [ - "lib", - "index.js", - "locals.js" + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.nlark.com/css-loader/download/css-loader-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/css-loader/issues" + }, "dependencies": { "babel-code-frame": "^6.26.0", "css-selector-tokenizer": "^0.7.0", @@ -26,6 +48,7 @@ "postcss-value-parser": "^3.3.0", "source-list-map": "^2.0.0" }, + "description": "css loader module for webpack", "devDependencies": { "codecov": "^1.0.1", "eslint": "3.14.0", @@ -34,19 +57,32 @@ "should": "^11.1.2", "standard-version": "^4.0.0" }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "files": [ + "lib", + "index.js", + "locals.js" + ], + "homepage": "https://github.com/webpack-contrib/css-loader", + "license": "MIT", + "name": "css-loader", "peerDependencies": { "webpack": "^4.0.0" }, + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/css-loader.git" + }, "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", "lint": "eslint lib test", + "release": "standard-version", "test": "mocha", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", "test:cover": "npm run cover -- --report lcovonly", - "travis:test": "npm run cover", "travis:lint": "npm run lint", - "release": "standard-version" + "travis:test": "npm run cover" }, - "homepage": "https://github.com/webpack-contrib/css-loader", - "repository": "https://github.com/webpack-contrib/css-loader.git", - "bugs": "https://github.com/webpack-contrib/css-loader/issues" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-select-base-adapter/package.json b/admin/vue2/element-admin-v3/node_modules/css-select-base-adapter/package.json index f32e5eba5..94205b5a5 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-select-base-adapter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-select-base-adapter/package.json @@ -1,25 +1,57 @@ { - "name": "css-select-base-adapter", - "version": "0.1.1", - "description": "Provides some base functions needed by a css-select adapter so that you don't have to implement the whole thing.", - "main": "index.js", - "scripts": { - "test": "mocha" + "_args": [ + [ + "css-select-base-adapter@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "css-select-base-adapter@0.1.1", + "_id": "css-select-base-adapter@0.1.1", + "_inBundle": false, + "_integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "_location": "/css-select-base-adapter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-select-base-adapter@0.1.1", + "name": "css-select-base-adapter", + "escapedName": "css-select-base-adapter", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "repository": { - "type": "git", - "url": "https://github.com/nrkn/css-select-base-adapter.git" + "_requiredBy": [ + "/svgo" + ], + "_resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nik Coughlin", + "email": "nrkn.com@gmail.com" + }, + "bugs": { + "url": "https://github.com/nrkn/css-select-base-adapter/issues" }, + "description": "Provides some base functions needed by a css-select adapter so that you don't have to implement the whole thing.", + "homepage": "https://github.com/nrkn/css-select-base-adapter#readme", "keywords": [ "css", "select", "adapter", "css-select" ], - "bugs": { - "url": "https://github.com/nrkn/css-select-base-adapter/issues" + "license": "MIT", + "main": "index.js", + "name": "css-select-base-adapter", + "repository": { + "type": "git", + "url": "git+https://github.com/nrkn/css-select-base-adapter.git" }, - "homepage": "https://github.com/nrkn/css-select-base-adapter#readme", - "author": "Nik Coughlin ", - "license": "MIT" + "scripts": { + "test": "mocha" + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-select/package.json b/admin/vue2/element-admin-v3/node_modules/css-select/package.json index 3448cbf24..086203e8a 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-select/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-select/package.json @@ -1,71 +1,107 @@ { + "_args": [ + [ + "css-select@4.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "css-select@4.1.3", + "_id": "css-select@4.1.3", + "_inBundle": false, + "_integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=", + "_location": "/css-select", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-select@4.1.3", "name": "css-select", - "version": "4.1.3", - "description": "a CSS selector compiler/engine", - "author": "Felix Boehm ", - "funding": { - "url": "https://github.com/sponsors/fb55" - }, - "keywords": [ - "css", - "selector", - "sizzle" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/css-select.git" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib" - ], - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - }, - "devDependencies": { - "@types/boolbase": "^1.0.0", - "@types/jest": "^26.0.14", - "@types/node": "^15.0.2", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "cheerio-soupselect": "^0.1.1", - "coveralls": "^3.0.2", - "eslint": "^7.9.0", - "eslint-config-prettier": "^8.1.0", - "htmlparser2": "^6.0.0", - "jest": "^27.0.3", - "prettier": "^2.1.2", - "ts-jest": "^27.0.1", - "typescript": "^4.0.2" - }, - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint src", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc", - "prepare": "npm run build" - }, - "license": "BSD-2-Clause", - "prettier": { - "tabWidth": 4, - "proseWrap": "always" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node", - "testMatch": [ - "/test/*.ts" - ] - } + "escapedName": "css-select", + "rawSpec": "4.1.3", + "saveSpec": null, + "fetchSpec": "4.1.3" + }, + "_requiredBy": [ + "/renderkid" + ], + "_resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz", + "_spec": "4.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/css-select/issues" + }, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + }, + "description": "a CSS selector compiler/engine", + "devDependencies": { + "@types/boolbase": "^1.0.0", + "@types/jest": "^26.0.14", + "@types/node": "^15.0.2", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "cheerio-soupselect": "^0.1.1", + "coveralls": "^3.0.2", + "eslint": "^7.9.0", + "eslint-config-prettier": "^8.1.0", + "htmlparser2": "^6.0.0", + "jest": "^27.0.3", + "prettier": "^2.1.2", + "ts-jest": "^27.0.1", + "typescript": "^4.0.2" + }, + "files": [ + "lib" + ], + "funding": { + "url": "https://github.com/sponsors/fb55" + }, + "homepage": "https://github.com/fb55/css-select#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "testMatch": [ + "/test/*.ts" + ] + }, + "keywords": [ + "css", + "selector", + "sizzle" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "css-select", + "prettier": { + "tabWidth": 4, + "proseWrap": "always" + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/css-select.git" + }, + "scripts": { + "build": "tsc", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint src", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "test": "jest --coverage && npm run lint" + }, + "types": "lib/index.d.ts", + "version": "4.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-selector-tokenizer/package.json b/admin/vue2/element-admin-v3/node_modules/css-selector-tokenizer/package.json index 3e61900d2..51eafb8d5 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-selector-tokenizer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-selector-tokenizer/package.json @@ -1,39 +1,46 @@ { - "name": "css-selector-tokenizer", - "version": "0.7.3", - "description": "Parses and stringifies CSS selectors", - "main": "lib/index.js", - "scripts": { - "lint": "eslint .", - "pretest": "npm run lint", - "test": "mocha", - "cover": "nyc npm test", - "build-regexpu": "node scripts/build-regexpu.js", - "report:coveralls": "nyc report --reporter=text-lcov | coveralls", - "report:codecov": "nyc report --reporter=text-lcov | codecov --pipe", - "publish-patch": "npm test && npm version patch && git push && git push --tags && npm publish" - }, - "repository": { - "type": "git", - "url": "https://github.com/css-modules/css-selector-tokenizer.git" - }, - "keywords": [ - "css-modules", - "selectors" + "_args": [ + [ + "css-selector-tokenizer@0.7.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib" + "_development": true, + "_from": "css-selector-tokenizer@0.7.3", + "_id": "css-selector-tokenizer@0.7.3", + "_inBundle": false, + "_integrity": "sha1-c18mGG5nx0mq8nV4NAXPBmH66PE=", + "_location": "/css-selector-tokenizer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-selector-tokenizer@0.7.3", + "name": "css-selector-tokenizer", + "escapedName": "css-selector-tokenizer", + "rawSpec": "0.7.3", + "saveSpec": null, + "fetchSpec": "0.7.3" + }, + "_requiredBy": [ + "/css-loader", + "/postcss-modules-local-by-default", + "/postcss-modules-scope" ], - "author": "Tobias Koppers @sokra", - "license": "MIT", + "_resolved": "https://registry.nlark.com/css-selector-tokenizer/download/css-selector-tokenizer-0.7.3.tgz", + "_spec": "0.7.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, "bugs": { "url": "https://github.com/css-modules/css-selector-tokenizer/issues" }, - "homepage": "https://github.com/css-modules/css-selector-tokenizer", "dependencies": { "cssesc": "^3.0.0", "fastparse": "^1.1.2" }, + "description": "Parses and stringifies CSS selectors", "devDependencies": { "codecov": "^3.6.5", "coveralls": "^3.0.9", @@ -44,5 +51,31 @@ }, "directories": { "test": "test" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/css-modules/css-selector-tokenizer", + "keywords": [ + "css-modules", + "selectors" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "css-selector-tokenizer", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/css-selector-tokenizer.git" + }, + "scripts": { + "build-regexpu": "node scripts/build-regexpu.js", + "cover": "nyc npm test", + "lint": "eslint .", + "pretest": "npm run lint", + "publish-patch": "npm test && npm version patch && git push && git push --tags && npm publish", + "report:codecov": "nyc report --reporter=text-lcov | codecov --pipe", + "report:coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "mocha" + }, + "version": "0.7.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-tree/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/css-tree/node_modules/source-map/package.json index 24663417e..f75bb0c9c 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-tree/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-tree/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/css-tree/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/css-tree" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-tree/package.json b/admin/vue2/element-admin-v3/node_modules/css-tree/package.json index beb35f1f5..41a9a26ea 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-tree/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-tree/package.json @@ -1,44 +1,49 @@ { - "name": "css-tree", - "version": "1.0.0-alpha.37", - "description": "CSSTree is a tool set to work with CSS, including fast detailed parser (string->AST), walker (AST traversal), generator (AST->string) and lexer (validation and matching) based on knowledge of spec and browser implementations", - "author": "Roman Dvornov (https://github.com/lahmatiy)", - "license": "MIT", - "repository": "csstree/csstree", - "keywords": [ - "css", - "ast", - "tokenizer", - "parser", - "walker", - "lexer", - "generator", - "utils", - "syntax", - "validation" + "_args": [ + [ + "css-tree@1.0.0-alpha.37", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "./lib/index", + "_development": true, + "_from": "css-tree@1.0.0-alpha.37", + "_id": "css-tree@1.0.0-alpha.37", + "_inBundle": false, + "_integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "_location": "/css-tree", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-tree@1.0.0-alpha.37", + "name": "css-tree", + "escapedName": "css-tree", + "rawSpec": "1.0.0-alpha.37", + "saveSpec": null, + "fetchSpec": "1.0.0-alpha.37" + }, + "_requiredBy": [ + "/svgo" + ], + "_resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz", + "_spec": "1.0.0-alpha.37", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roman Dvornov", + "email": "rdvornov@gmail.com", + "url": "https://github.com/lahmatiy" + }, "browser": { "./data": "./dist/default-syntax.json" }, - "scripts": { - "build": "npm run gen:syntax && rollup --config && terser dist/csstree.js --compress --mangle -o dist/csstree.min.js", - "lint": "eslint data lib scripts test && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint", - "lint-and-test": "npm run lint && npm test", - "update:docs": "node scripts/update-docs", - "gen:syntax": "node scripts/gen-syntax-data", - "review:syntax-patch": "node scripts/review-syntax-patch", - "test": "mocha --reporter progress", - "coverage": "nyc npm test", - "travis": "nyc npm run lint-and-test && npm run coveralls", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "prepublishOnly": "npm run build", - "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null" + "bugs": { + "url": "https://github.com/csstree/csstree/issues" }, "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" }, + "description": "CSSTree is a tool set to work with CSS, including fast detailed parser (string->AST), walker (AST traversal), generator (AST->string) and lexer (validation and matching) based on knowledge of spec and browser implementations", "devDependencies": { "coveralls": "^3.0.4", "eslint": "^6.3.0", @@ -58,5 +63,40 @@ "data", "dist", "lib" - ] + ], + "homepage": "https://github.com/csstree/csstree#readme", + "keywords": [ + "css", + "ast", + "tokenizer", + "parser", + "walker", + "lexer", + "generator", + "utils", + "syntax", + "validation" + ], + "license": "MIT", + "main": "./lib/index", + "name": "css-tree", + "repository": { + "type": "git", + "url": "git+https://github.com/csstree/csstree.git" + }, + "scripts": { + "build": "npm run gen:syntax && rollup --config && terser dist/csstree.js --compress --mangle -o dist/csstree.min.js", + "coverage": "nyc npm test", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "gen:syntax": "node scripts/gen-syntax-data", + "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null", + "lint": "eslint data lib scripts test && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint", + "lint-and-test": "npm run lint && npm test", + "prepublishOnly": "npm run build", + "review:syntax-patch": "node scripts/review-syntax-patch", + "test": "mocha --reporter progress", + "travis": "nyc npm run lint-and-test && npm run coveralls", + "update:docs": "node scripts/update-docs" + }, + "version": "1.0.0-alpha.37" } diff --git a/admin/vue2/element-admin-v3/node_modules/css-what/package.json b/admin/vue2/element-admin-v3/node_modules/css-what/package.json index b0d978209..94c08ba24 100644 --- a/admin/vue2/element-admin-v3/node_modules/css-what/package.json +++ b/admin/vue2/element-admin-v3/node_modules/css-what/package.json @@ -1,55 +1,93 @@ { - "author": "Felix Böhm (http://feedic.com)", + "_args": [ + [ + "css-what@5.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "css-what@5.0.1", + "_id": "css-what@5.0.1", + "_inBundle": false, + "_integrity": "sha1-PvqCATH0ZpqKwkCPnDLnx96fTK0=", + "_location": "/css-what", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-what@5.0.1", "name": "css-what", - "description": "a CSS selector parser", - "version": "5.0.1", - "funding": { - "url": "https://github.com/sponsors/fb55" - }, - "repository": { - "url": "https://github.com/fb55/css-what" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "scripts": { - "test": "jest --coverage -u && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint src", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc", - "prepare": "npm run build" - }, - "devDependencies": { - "@types/jest": "^26.0.3", - "@types/node": "^15.0.1", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "coveralls": "^3.0.5", - "eslint": "^7.0.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-node": "^11.1.0", - "jest": "^27.0.1", - "prettier": "^2.0.5", - "ts-jest": "^27.0.1", - "typescript": "^4.0.2" - }, - "optionalDependencies": {}, - "engines": { - "node": ">= 6" - }, - "license": "BSD-2-Clause", - "jest": { - "preset": "ts-jest" - }, - "prettier": { - "tabWidth": 4 - } + "escapedName": "css-what", + "rawSpec": "5.0.1", + "saveSpec": null, + "fetchSpec": "5.0.1" + }, + "_requiredBy": [ + "/css-select" + ], + "_resolved": "https://registry.nlark.com/css-what/download/css-what-5.0.1.tgz?cache=0&sync_timestamp=1622227760882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-5.0.1.tgz", + "_spec": "5.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Böhm", + "email": "me@feedic.com", + "url": "http://feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/css-what/issues" + }, + "dependencies": {}, + "description": "a CSS selector parser", + "devDependencies": { + "@types/jest": "^26.0.3", + "@types/node": "^15.0.1", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "coveralls": "^3.0.5", + "eslint": "^7.0.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-node": "^11.1.0", + "jest": "^27.0.1", + "prettier": "^2.0.5", + "ts-jest": "^27.0.1", + "typescript": "^4.0.2" + }, + "engines": { + "node": ">= 6" + }, + "files": [ + "lib/**/*" + ], + "funding": { + "url": "https://github.com/sponsors/fb55" + }, + "homepage": "https://github.com/fb55/css-what#readme", + "jest": { + "preset": "ts-jest" + }, + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "css-what", + "optionalDependencies": {}, + "prettier": { + "tabWidth": 4 + }, + "repository": { + "url": "git+https://github.com/fb55/css-what.git" + }, + "scripts": { + "build": "tsc", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint src", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "test": "jest --coverage -u && npm run lint" + }, + "types": "lib/index.d.ts", + "version": "5.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssesc/package.json b/admin/vue2/element-admin-v3/node_modules/cssesc/package.json index 076c84dc8..1aa6ebccf 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssesc/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssesc/package.json @@ -1,42 +1,45 @@ { - "name": "cssesc", - "version": "3.0.0", - "description": "A JavaScript library for escaping CSS strings and identifiers while generating the shortest possible ASCII-only output.", - "homepage": "https://mths.be/cssesc", - "engines": { - "node": ">=4" + "_args": [ + [ + "cssesc@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cssesc@3.0.0", + "_id": "cssesc@3.0.0", + "_inBundle": false, + "_integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "_location": "/cssesc", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssesc@3.0.0", + "name": "cssesc", + "escapedName": "cssesc", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" }, - "main": "cssesc.js", - "bin": "bin/cssesc", - "man": "man/cssesc.1", - "keywords": [ - "css", - "escape", - "identifier", - "string", - "tool" + "_requiredBy": [ + "/css-selector-tokenizer", + "/postcss-selector-parser" ], - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Mathias Bynens", "url": "https://mathiasbynens.be/" }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/cssesc.git" + "bin": { + "cssesc": "bin/cssesc" }, - "bugs": "https://github.com/mathiasbynens/cssesc/issues", - "files": [ - "LICENSE-MIT.txt", - "cssesc.js", - "bin/", - "man/" - ], - "scripts": { - "build": "grunt template && babel cssesc.js -o cssesc.js", - "test": "mocha tests", - "cover": "istanbul cover --report html node_modules/.bin/_mocha tests -- -u exports -R spec" + "bugs": { + "url": "https://github.com/mathiasbynens/cssesc/issues" }, + "description": "A JavaScript library for escaping CSS strings and identifiers while generating the shortest possible ASCII-only output.", "devDependencies": { "babel-cli": "^6.26.0", "babel-preset-env": "^1.6.1", @@ -47,5 +50,38 @@ "mocha": "^2.5.3", "regenerate": "^1.2.1", "requirejs": "^2.1.16" - } + }, + "engines": { + "node": ">=4" + }, + "files": [ + "LICENSE-MIT.txt", + "cssesc.js", + "bin/", + "man/" + ], + "homepage": "https://mths.be/cssesc", + "keywords": [ + "css", + "escape", + "identifier", + "string", + "tool" + ], + "license": "MIT", + "main": "cssesc.js", + "man": [ + "man/cssesc.1" + ], + "name": "cssesc", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/cssesc.git" + }, + "scripts": { + "build": "grunt template && babel cssesc.js -o cssesc.js", + "cover": "istanbul cover --report html node_modules/.bin/_mocha tests -- -u exports -R spec", + "test": "mocha tests" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssfilter/package.json b/admin/vue2/element-admin-v3/node_modules/cssfilter/package.json index 26b92c158..f4eb0ca21 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssfilter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssfilter/package.json @@ -1,20 +1,53 @@ { - "name": "cssfilter", - "version": "0.0.10", + "_args": [ + [ + "cssfilter@0.0.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "cssfilter@0.0.10", + "_id": "cssfilter@0.0.10", + "_inBundle": false, + "_integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", + "_location": "/cssfilter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssfilter@0.0.10", + "name": "cssfilter", + "escapedName": "cssfilter", + "rawSpec": "0.0.10", + "saveSpec": null, + "fetchSpec": "0.0.10" + }, + "_requiredBy": [ + "/xss" + ], + "_resolved": "https://registry.npm.taobao.org/cssfilter/download/cssfilter-0.0.10.tgz", + "_spec": "0.0.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Zongmin Lei", + "email": "leizongmin@gmail.com" + }, + "bugs": { + "url": "https://github.com/leizongmin/js-css-filter/issues" + }, "description": "Sanitize untrusted CSS with a configuration specified by a Whitelist. 根据白名单过滤CSS", - "main": "lib/index.js", + "devDependencies": { + "blanket": "^1.1.6", + "browserify": "^13.1.1", + "coveralls": "^2.11.14", + "istanbul": "^0.4.5", + "mocha": "^3.1.2", + "should": "^11.1.1", + "uglify-js": "^2.7.4" + }, "files": [ "lib" ], - "scripts": { - "test": "istanbul cover _mocha --report lcovonly -- -t 5000 -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage", - "build": "./build", - "prepublish": "npm run test && npm run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/leizongmin/js-css-filter.git" - }, + "homepage": "https://github.com/leizongmin/js-css-filter", "keywords": [ "sanitization", "xss", @@ -31,19 +64,17 @@ "injection", "whitelist" ], - "author": "Zongmin Lei ", "license": "MIT", - "bugs": { - "url": "https://github.com/leizongmin/js-css-filter/issues" + "main": "lib/index.js", + "name": "cssfilter", + "repository": { + "type": "git", + "url": "git+https://github.com/leizongmin/js-css-filter.git" }, - "homepage": "https://github.com/leizongmin/js-css-filter", - "devDependencies": { - "blanket": "^1.1.6", - "browserify": "^13.1.1", - "coveralls": "^2.11.14", - "istanbul": "^0.4.5", - "mocha": "^3.1.2", - "should": "^11.1.1", - "uglify-js": "^2.7.4" - } + "scripts": { + "build": "./build", + "prepublish": "npm run test && npm run build", + "test": "istanbul cover _mocha --report lcovonly -- -t 5000 -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" + }, + "version": "0.0.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/ansi-styles/package.json index 65edb48c3..5d1a59b0e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/cssnano-preset-default/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/cssnano-preset-default/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..0bc9fc96b 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/cssnano-preset-default/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/cssnano-preset-default/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/package.json index bc324685a..ff68081db 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/cssnano-preset-default/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/cssnano-preset-default/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/postcss/package.json index ece04085e..889e7264e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/cssnano-preset-default/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/source-map/package.json index 24663417e..0efd472d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/cssnano-preset-default/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/cssnano-preset-default/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/supports-color/package.json index db4ded22b..aab63f277 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/cssnano-preset-default/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/cssnano-preset-default/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/package.json index 2dbbce261..c398d6970 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-preset-default/package.json @@ -1,16 +1,45 @@ { - "name": "cssnano-preset-default", - "version": "4.0.8", - "main": "dist/index.js", - "description": "Safe defaults for cssnano which require minimal configuration.", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_args": [ + [ + "cssnano-preset-default@4.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cssnano-preset-default@4.0.8", + "_id": "cssnano-preset-default@4.0.8", + "_inBundle": false, + "_integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=", + "_location": "/cssnano-preset-default", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "files": [ - "LICENSE-MIT", - "dist" + "_requested": { + "type": "version", + "registry": true, + "raw": "cssnano-preset-default@4.0.8", + "name": "cssnano-preset-default", + "escapedName": "cssnano-preset-default", + "rawSpec": "4.0.8", + "saveSpec": null, + "fetchSpec": "4.0.8" + }, + "_requiredBy": [ + "/cssnano" ], - "license": "MIT", + "_resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1622234651206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz", + "_spec": "4.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "css-declaration-sorter": "^4.0.1", "cssnano-util-raw-cache": "^4.0.1", @@ -43,21 +72,28 @@ "postcss-svgo": "^4.0.3", "postcss-unique-selectors": "^4.0.1" }, + "description": "Safe defaults for cssnano which require minimal configuration.", "devDependencies": { "babel-cli": "^6.0.0", "cross-env": "^5.0.0" }, - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" + "engines": { + "node": ">=6.9.0" }, - "repository": "cssnano/cssnano", + "files": [ + "LICENSE-MIT", + "dist" + ], "homepage": "https://github.com/cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "license": "MIT", + "main": "dist/index.js", + "name": "cssnano-preset-default", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "engines": { - "node": ">=6.9.0" - } + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-arguments/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-arguments/package.json index cb3768011..9c7aa711e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-arguments/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-arguments/package.json @@ -1,32 +1,68 @@ { - "name": "cssnano-util-get-arguments", - "version": "4.0.0", - "description": "Get a list of arguments, separated by a comma.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "cssnano-util-get-arguments@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "postcss-value-parser": "^3.0.0" + "_development": true, + "_from": "cssnano-util-get-arguments@4.0.0", + "_id": "cssnano-util-get-arguments@4.0.0", + "_inBundle": false, + "_integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "_location": "/cssnano-util-get-arguments", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssnano-util-get-arguments@4.0.0", + "name": "cssnano-util-get-arguments", + "escapedName": "cssnano-util-get-arguments", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" }, + "_requiredBy": [ + "/postcss-minify-gradients", + "/postcss-minify-params", + "/postcss-normalize-positions", + "/postcss-normalize-repeat-style", + "/postcss-ordered-values" + ], + "_resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, - "homepage": "https://github.com/cssnano/cssnano", + "description": "Get a list of arguments, separated by a comma.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "postcss-value-parser": "^3.0.0" + }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "cssnano-util-get-arguments", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-match/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-match/package.json index b2a2dae80..26bc31e8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-match/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-get-match/package.json @@ -1,31 +1,66 @@ { - "name": "cssnano-util-get-match", - "version": "4.0.0", - "main": "dist/index.js", - "description": "Convert a list of keywords into a single keyword match.", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "cssnano-util-get-match@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_development": true, + "_from": "cssnano-util-get-match@4.0.0", + "_id": "cssnano-util-get-match@4.0.0", + "_inBundle": false, + "_integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "_location": "/cssnano-util-get-match", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssnano-util-get-match@4.0.0", + "name": "cssnano-util-get-match", + "escapedName": "cssnano-util-get-match", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" }, + "_requiredBy": [ + "/postcss-normalize-display-values", + "/postcss-normalize-repeat-style", + "/postcss-normalize-timing-functions", + "/postcss-reduce-transforms" + ], + "_resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", - "homepage": "https://github.com/cssnano/cssnano", "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, + "description": "Convert a list of keywords into a single keyword match.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "cssnano-util-get-match", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/ansi-styles/package.json index 65edb48c3..6a5d2575f 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/cssnano-util-raw-cache/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/cssnano-util-raw-cache/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..d4383e7a8 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/cssnano-util-raw-cache/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/cssnano-util-raw-cache/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/package.json index bc324685a..7ca7032dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/cssnano-util-raw-cache/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/cssnano-util-raw-cache/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/postcss/package.json index ece04085e..5160f401e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/cssnano-util-raw-cache/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/cssnano-util-raw-cache" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/source-map/package.json index 24663417e..50093d1fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/cssnano-util-raw-cache/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/cssnano-util-raw-cache/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/supports-color/package.json index db4ded22b..3c67e743a 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/cssnano-util-raw-cache/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/cssnano-util-raw-cache/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/package.json index cba347fe5..c1117e05b 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-raw-cache/package.json @@ -1,16 +1,53 @@ { - "name": "cssnano-util-raw-cache", - "version": "4.0.1", - "repository": "cssnano/cssnano", - "main": "dist/index.js", - "description": "Manages the raw value formatting for generated AST nodes.", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_args": [ + [ + "cssnano-util-raw-cache@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cssnano-util-raw-cache@4.0.1", + "_id": "cssnano-util-raw-cache@4.0.1", + "_inBundle": false, + "_integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "_location": "/cssnano-util-raw-cache", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssnano-util-raw-cache@4.0.1", + "name": "cssnano-util-raw-cache", + "escapedName": "cssnano-util-raw-cache", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" }, - "homepage": "https://github.com/cssnano/cssnano", "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, + "dependencies": { + "postcss": "^7.0.0" + }, + "description": "Manages the raw value formatting for generated AST nodes.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, "engines": { "node": ">=6.9.0" }, @@ -18,17 +55,16 @@ "LICENSE-MIT", "dist" ], + "homepage": "https://github.com/cssnano/cssnano", "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "main": "dist/index.js", + "name": "cssnano-util-raw-cache", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "dependencies": { - "postcss": "^7.0.0" + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - } + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano-util-same-parent/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano-util-same-parent/package.json index ed88d0f3f..5addb6350 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano-util-same-parent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano-util-same-parent/package.json @@ -1,32 +1,64 @@ { - "name": "cssnano-util-same-parent", - "version": "4.0.1", - "main": "dist/index.js", - "description": "Check that two PostCSS nodes share the same parent.", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "cssnano-util-same-parent@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "postcss": "^7.0.0" + "_development": true, + "_from": "cssnano-util-same-parent@4.0.1", + "_id": "cssnano-util-same-parent@4.0.1", + "_inBundle": false, + "_integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "_location": "/cssnano-util-same-parent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cssnano-util-same-parent@4.0.1", + "name": "cssnano-util-same-parent", + "escapedName": "cssnano-util-same-parent", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" }, + "_requiredBy": [ + "/postcss-merge-rules" + ], + "_resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", - "homepage": "https://github.com/cssnano/cssnano", "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, + "description": "Check that two PostCSS nodes share the same parent.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "postcss": "^7.0.0" + }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "cssnano-util-same-parent", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/ansi-styles/package.json index 65edb48c3..7c84a6069 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/cssnano/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/cssnano/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..73ab6157e 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/cssnano/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/cssnano/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/package.json index bc324685a..193dc394c 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/cssnano/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/cssnano/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/postcss/package.json index ece04085e..b0f4ec3d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/cssnano/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/cssnano" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/source-map/package.json index 24663417e..a4bdac333 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/cssnano/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/cssnano/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/supports-color/package.json index db4ded22b..ca4c6d8e0 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/cssnano/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/cssnano/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cssnano/package.json b/admin/vue2/element-admin-v3/node_modules/cssnano/package.json index a0bb555d0..1e0619b74 100644 --- a/admin/vue2/element-admin-v3/node_modules/cssnano/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cssnano/package.json @@ -1,29 +1,52 @@ { - "name": "cssnano", - "version": "4.1.11", - "description": "A modular minifier, built on top of the PostCSS ecosystem.", - "main": "dist/index.js", - "scripts": { - "bundle-size": "webpack --json --config src/__tests__/_webpack.config.js | webpack-bundle-size-analyzer", - "integrations": "babel-node src/__tests__/util/rebuild.js", - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_args": [ + [ + "cssnano@4.1.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cssnano@4.1.11", + "_id": "cssnano@4.1.11", + "_inBundle": false, + "_integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=", + "_location": "/cssnano", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "compress", - "minify", - "optimise", - "optimisation", - "postcss", - "postcss-plugin" + "_requested": { + "type": "version", + "registry": true, + "raw": "cssnano@4.1.11", + "name": "cssnano", + "escapedName": "cssnano", + "rawSpec": "4.1.11", + "saveSpec": null, + "fetchSpec": "4.1.11" + }, + "_requiredBy": [ + "/optimize-css-assets-webpack-plugin" ], - "license": "MIT", + "_resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz", + "_spec": "4.1.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "cosmiconfig": "^5.0.0", "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" }, + "description": "A modular minifier, built on top of the PostCSS ecosystem.", "devDependencies": { "array-to-sentence": "^2.0.0", "babel-cli": "^6.0.0", @@ -35,23 +58,36 @@ "webpack": "^2.0.0", "webpack-bundle-size-analyzer": "^2.0.0" }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" + "engines": { + "node": ">=6.9.0" }, - "repository": "cssnano/cssnano", "files": [ "dist", "LICENSE-MIT", "quickstart.js" ], - "tonicExampleFilename": "quickstart.js", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "compress", + "minify", + "optimise", + "optimisation", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "cssnano", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "engines": { - "node": ">=6.9.0" - } + "scripts": { + "bundle-size": "webpack --json --config src/__tests__/_webpack.config.js | webpack-bundle-size-analyzer", + "integrations": "babel-node src/__tests__/util/rebuild.js", + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "tonicExampleFilename": "quickstart.js", + "version": "4.1.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/csso/node_modules/css-tree/package.json b/admin/vue2/element-admin-v3/node_modules/csso/node_modules/css-tree/package.json index b8f4070dc..20b54d5dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/csso/node_modules/css-tree/package.json +++ b/admin/vue2/element-admin-v3/node_modules/csso/node_modules/css-tree/package.json @@ -1,42 +1,46 @@ { - "name": "css-tree", - "version": "1.1.3", - "description": "A tool set for CSS: fast detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations", - "author": "Roman Dvornov (https://github.com/lahmatiy)", - "license": "MIT", - "repository": "csstree/csstree", - "keywords": [ - "css", - "ast", - "tokenizer", - "parser", - "walker", - "lexer", - "generator", - "utils", - "syntax", - "validation" + "_args": [ + [ + "css-tree@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib/index.js", - "unpkg": "dist/csstree.min.js", - "jsdelivr": "dist/csstree.min.js", - "scripts": { - "build": "rollup --config", - "lint": "eslint data lib scripts test && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint", - "lint-and-test": "npm run lint && npm test", - "update:docs": "node scripts/update-docs", - "review:syntax-patch": "node scripts/review-syntax-patch", - "test": "mocha --reporter progress", - "coverage": "nyc npm test", - "travis": "nyc npm run lint-and-test && npm run coveralls", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "prepublishOnly": "npm run build", - "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null" + "_development": true, + "_from": "css-tree@1.1.3", + "_id": "css-tree@1.1.3", + "_inBundle": false, + "_integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=", + "_location": "/csso/css-tree", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-tree@1.1.3", + "name": "css-tree", + "escapedName": "css-tree", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/csso" + ], + "_resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roman Dvornov", + "email": "rdvornov@gmail.com", + "url": "https://github.com/lahmatiy" + }, + "bugs": { + "url": "https://github.com/csstree/csstree/issues" }, "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" }, + "description": "A tool set for CSS: fast detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations", "devDependencies": { "@rollup/plugin-commonjs": "^11.0.2", "@rollup/plugin-json": "^4.0.2", @@ -56,5 +60,41 @@ "data", "dist", "lib" - ] + ], + "homepage": "https://github.com/csstree/csstree#readme", + "jsdelivr": "dist/csstree.min.js", + "keywords": [ + "css", + "ast", + "tokenizer", + "parser", + "walker", + "lexer", + "generator", + "utils", + "syntax", + "validation" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "css-tree", + "repository": { + "type": "git", + "url": "git+https://github.com/csstree/csstree.git" + }, + "scripts": { + "build": "rollup --config", + "coverage": "nyc npm test", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null", + "lint": "eslint data lib scripts test && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint", + "lint-and-test": "npm run lint && npm test", + "prepublishOnly": "npm run build", + "review:syntax-patch": "node scripts/review-syntax-patch", + "test": "mocha --reporter progress", + "travis": "nyc npm run lint-and-test && npm run coveralls", + "update:docs": "node scripts/update-docs" + }, + "unpkg": "dist/csstree.min.js", + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/csso/node_modules/mdn-data/package.json b/admin/vue2/element-admin-v3/node_modules/csso/node_modules/mdn-data/package.json index 5997dcc64..6dd36b3e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/csso/node_modules/mdn-data/package.json +++ b/admin/vue2/element-admin-v3/node_modules/csso/node_modules/mdn-data/package.json @@ -1,8 +1,44 @@ { - "name": "mdn-data", - "version": "2.0.14", + "_args": [ + [ + "mdn-data@2.0.14", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mdn-data@2.0.14", + "_id": "mdn-data@2.0.14", + "_inBundle": false, + "_integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", + "_location": "/csso/mdn-data", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mdn-data@2.0.14", + "name": "mdn-data", + "escapedName": "mdn-data", + "rawSpec": "2.0.14", + "saveSpec": null, + "fetchSpec": "2.0.14" + }, + "_requiredBy": [ + "/csso/css-tree" + ], + "_resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz", + "_spec": "2.0.14", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mozilla Developer Network" + }, + "bugs": { + "url": "https://github.com/mdn/data/issues" + }, "description": "Open Web data by the Mozilla Developer Network", - "main": "index.js", + "devDependencies": { + "ajv": "^5.0.1", + "better-ajv-errors": "^0.5.1" + }, "files": [ "api/index.js", "api/*.json", @@ -11,29 +47,24 @@ "l10n/index.js", "l10n/*.json" ], - "repository": { - "type": "git", - "url": "https://github.com/mdn/data.git" - }, + "homepage": "https://developer.mozilla.org", "keywords": [ "data", "mdn", "mozilla", "css" ], - "author": "Mozilla Developer Network", "license": "CC0-1.0", - "bugs": { - "url": "https://github.com/mdn/data/issues" - }, - "homepage": "https://developer.mozilla.org", - "devDependencies": { - "ajv": "^5.0.1", - "better-ajv-errors": "^0.5.1" + "main": "index.js", + "name": "mdn-data", + "repository": { + "type": "git", + "url": "git+https://github.com/mdn/data.git" }, "scripts": { "lint": "node test/lint", - "travis": "npm test", - "test": "npm run lint" - } + "test": "npm run lint", + "travis": "npm test" + }, + "version": "2.0.14" } diff --git a/admin/vue2/element-admin-v3/node_modules/csso/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/csso/node_modules/source-map/package.json index 24663417e..fcbcee426 100644 --- a/admin/vue2/element-admin-v3/node_modules/csso/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/csso/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/csso/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/csso/css-tree" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/csso/package.json b/admin/vue2/element-admin-v3/node_modules/csso/package.json index e4485e676..ae424cfd1 100644 --- a/admin/vue2/element-admin-v3/node_modules/csso/package.json +++ b/admin/vue2/element-admin-v3/node_modules/csso/package.json @@ -1,48 +1,48 @@ { - "name": "csso", - "version": "4.2.0", - "description": "CSS minifier with structural optimisations", - "homepage": "https://github.com/css/csso", - "author": "Sergey Kryzhanovsky (https://github.com/afelix)", - "maintainers": [ - { - "name": "Roman Dvornov", - "email": "rdvornov@gmail.com", - "github-username": "lahmatiy" - } + "_args": [ + [ + "csso@4.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": "css/csso", - "bugs": { - "url": "https://github.com/css/csso/issues" + "_development": true, + "_from": "csso@4.2.0", + "_id": "csso@4.2.0", + "_inBundle": false, + "_integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", + "_location": "/csso", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "csso@4.2.0", + "name": "csso", + "escapedName": "csso", + "rawSpec": "4.2.0", + "saveSpec": null, + "fetchSpec": "4.2.0" }, - "keywords": [ - "css", - "compress", - "minifier", - "minify", - "optimise", - "optimisation", - "csstree" + "_requiredBy": [ + "/svgo" ], - "main": "./lib/index", - "scripts": { - "test": "mocha --reporter dot", - "lint": "eslint lib test", - "lint-and-test": "npm run lint && npm test", - "build": "rollup --config && terser dist/csso.js --compress --mangle -o dist/csso.min.js", - "coverage": "nyc npm test", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "travis": "nyc npm run lint-and-test && npm run coveralls", - "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/csso --stat -o /dev/null", - "prepublishOnly": "npm run build" - }, - "dependencies": { - "css-tree": "^1.1.2" + "_resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408886733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz", + "_spec": "4.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sergey Kryzhanovsky", + "email": "skryzhanovsky@ya.ru", + "url": "https://github.com/afelix" }, "browser": { "css-tree": "css-tree/dist/csstree.min.js" }, + "bugs": { + "url": "https://github.com/css/csso/issues" + }, + "dependencies": { + "css-tree": "^1.1.2" + }, + "description": "CSS minifier with structural optimisations", "devDependencies": { "@rollup/plugin-commonjs": "^11.0.1", "@rollup/plugin-json": "^4.0.1", @@ -61,5 +61,40 @@ "files": [ "dist", "lib" - ] + ], + "homepage": "https://github.com/css/csso", + "keywords": [ + "css", + "compress", + "minifier", + "minify", + "optimise", + "optimisation", + "csstree" + ], + "license": "MIT", + "main": "./lib/index", + "maintainers": [ + { + "name": "Roman Dvornov", + "email": "rdvornov@gmail.com" + } + ], + "name": "csso", + "repository": { + "type": "git", + "url": "git+https://github.com/css/csso.git" + }, + "scripts": { + "build": "rollup --config && terser dist/csso.js --compress --mangle -o dist/csso.min.js", + "coverage": "nyc npm test", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/csso --stat -o /dev/null", + "lint": "eslint lib test", + "lint-and-test": "npm run lint && npm test", + "prepublishOnly": "npm run build", + "test": "mocha --reporter dot", + "travis": "nyc npm run lint-and-test && npm run coveralls" + }, + "version": "4.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/cuint/package.json b/admin/vue2/element-admin-v3/node_modules/cuint/package.json index 7e21b0888..aaa2e7423 100644 --- a/admin/vue2/element-admin-v3/node_modules/cuint/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cuint/package.json @@ -1,16 +1,45 @@ { - "name": "cuint", - "version": "0.2.2", - "description": "Unsigned integers for Javascript", - "main": "index.js", - "scripts": { - "test": "mocha", - "prepublish": "node build" + "_args": [ + [ + "cuint@0.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cuint@0.2.2", + "_id": "cuint@0.2.2", + "_inBundle": false, + "_integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "_location": "/cuint", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cuint@0.2.2", + "name": "cuint", + "escapedName": "cuint", + "rawSpec": "0.2.2", + "saveSpec": null, + "fetchSpec": "0.2.2" }, - "repository": { - "type": "git", - "url": "https://github.com/pierrec/js-cuint" + "_requiredBy": [ + "/xxhashjs" + ], + "_resolved": "https://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz", + "_spec": "0.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Pierre Curto" }, + "bugs": { + "url": "https://github.com/pierrec/js-cuint/issues" + }, + "description": "Unsigned integers for Javascript", + "devDependencies": { + "minify": "0.2.x", + "mocha": "^2.1.0" + }, + "homepage": "https://github.com/pierrec/js-cuint", "keywords": [ "C", "unsigned", @@ -18,14 +47,16 @@ "32bits", "64bits" ], - "author": "Pierre Curto", "license": "MIT", - "bugs": { - "url": "https://github.com/pierrec/js-cuint/issues" + "main": "index.js", + "name": "cuint", + "repository": { + "type": "git", + "url": "git+https://github.com/pierrec/js-cuint.git" }, - "homepage": "https://github.com/pierrec/js-cuint", - "devDependencies": { - "minify": "0.2.x", - "mocha": "^2.1.0" - } + "scripts": { + "prepublish": "node build", + "test": "mocha" + }, + "version": "0.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/currently-unhandled/package.json b/admin/vue2/element-admin-v3/node_modules/currently-unhandled/package.json index 3baae3d8b..cd6cd9f06 100644 --- a/admin/vue2/element-admin-v3/node_modules/currently-unhandled/package.json +++ b/admin/vue2/element-admin-v3/node_modules/currently-unhandled/package.json @@ -1,34 +1,51 @@ { - "name": "currently-unhandled", - "version": "0.4.1", - "description": "Track the list of currently unhandled promise rejections.", - "license": "MIT", - "repository": "jamestalmage/currently-unhandled", + "_args": [ + [ + "currently-unhandled@0.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "currently-unhandled@0.4.1", + "_id": "currently-unhandled@0.4.1", + "_inBundle": false, + "_integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "_location": "/currently-unhandled", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "currently-unhandled@0.4.1", + "name": "currently-unhandled", + "escapedName": "currently-unhandled", + "rawSpec": "0.4.1", + "saveSpec": null, + "fetchSpec": "0.4.1" + }, + "_requiredBy": [ + "/loud-rejection" + ], + "_resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", + "_spec": "0.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "James Talmage", "email": "james@talmage.io", "url": "github.com/jamestalmage" }, - "engines": { - "node": ">=0.10.0" + "ava": { + "files": "test.js" }, - "scripts": { - "test": "xo && nyc ava" + "browser": { + "./index.js": "./browser.js" + }, + "bugs": { + "url": "https://github.com/jamestalmage/currently-unhandled/issues" }, - "files": [ - "index.js", - "core.js", - "browser.js" - ], - "keywords": [ - "unhandled", - "unhandledRejection", - "rejected", - "promises" - ], "dependencies": { "array-find-index": "^1.0.1" }, + "description": "Track the list of currently unhandled promise rejections.", "devDependencies": { "ava": "^0.15.1", "bluebird": "^3.4.0", @@ -46,18 +63,37 @@ "watchify": "^3.7.0", "xo": "^0.15.0" }, - "browser": { - "./index.js": "./browser.js" - }, - "ava": { - "files": "test.js" + "engines": { + "node": ">=0.10.0" }, + "files": [ + "index.js", + "core.js", + "browser.js" + ], + "homepage": "https://github.com/jamestalmage/currently-unhandled#readme", + "keywords": [ + "unhandled", + "unhandledRejection", + "rejected", + "promises" + ], + "license": "MIT", + "name": "currently-unhandled", "nyc": { "reporter": [ "lcov", "text" ] }, + "repository": { + "type": "git", + "url": "git+https://github.com/jamestalmage/currently-unhandled.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "0.4.1", "xo": { "ignores": [ "browser-bluebird-test.js" diff --git a/admin/vue2/element-admin-v3/node_modules/cyclist/package.json b/admin/vue2/element-admin-v3/node_modules/cyclist/package.json index 2cb53d5dc..be7b7085d 100644 --- a/admin/vue2/element-admin-v3/node_modules/cyclist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/cyclist/package.json @@ -1,12 +1,46 @@ { - "name": "cyclist", - "version": "1.0.1", - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/cyclist" + "_args": [ + [ + "cyclist@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "cyclist@1.0.1", + "_id": "cyclist@1.0.1", + "_inBundle": false, + "_integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "_location": "/cyclist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cyclist@1.0.1", + "name": "cyclist", + "escapedName": "cyclist", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/parallel-transform" + ], + "_resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, + "bugs": { + "url": "https://github.com/mafintosh/cyclist/issues" }, - "description": "Cyclist is an efficient cyclic list implemention.", "dependencies": {}, + "description": "Cyclist is an efficient cyclic list implemention.", + "devDependencies": { + "standard": "^3.8.0", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/mafintosh/cyclist", "keywords": [ "circular", "buffer", @@ -14,18 +48,15 @@ "cyclic", "data" ], - "author": "Mathias Buus Madsen ", - "devDependencies": { - "standard": "^3.8.0", - "tape": "^4.0.0" - }, - "bugs": { - "url": "https://github.com/mafintosh/cyclist/issues" - }, - "homepage": "https://github.com/mafintosh/cyclist", + "license": "MIT", "main": "index.js", + "name": "cyclist", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/cyclist.git" + }, "scripts": { "test": "standard && tape test.js" }, - "license": "MIT" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/d/package.json b/admin/vue2/element-admin-v3/node_modules/d/package.json index e0370df27..8b426f56f 100644 --- a/admin/vue2/element-admin-v3/node_modules/d/package.json +++ b/admin/vue2/element-admin-v3/node_modules/d/package.json @@ -1,72 +1,110 @@ { - "name": "d", - "version": "1.0.1", - "description": "Property descriptor factory", - "author": "Mariusz Nowak (http://www.medikoo.com/)", - "keywords": [ - "descriptor", - "es", - "ecmascript", - "ecma", - "property", - "descriptors", - "meta", - "properties" - ], - "repository": { - "type": "git", - "url": "git://github.com/medikoo/d.git" - }, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - }, - "devDependencies": { - "eslint": "^5.16.0", - "eslint-config-medikoo": "^2.3.0", - "git-list-updated": "^1.1.2", - "husky": "^2.4.1", - "lint-staged": "^8.2.1", - "prettier-elastic": "^1.18.2", - "tad": "^2.0.1" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.js": [ - "eslint" - ], - "*.{css,html,js,json,md,yaml,yml}": [ - "prettier -c" - ] - }, - "eslintConfig": { - "extends": "medikoo/es5", - "root": true - }, - "prettier": { - "printWidth": 100, - "tabWidth": 4, - "overrides": [ - { - "files": [ - "*.md" - ], - "options": { - "tabWidth": 2 - } - } - ] - }, - "scripts": { - "lint": "eslint --ignore-path=.gitignore .", - "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", - "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", - "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", - "test": "node node_modules/tad/bin/tad" - }, - "license": "ISC" + "_args": [ + [ + "d@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "d@1.0.1", + "_id": "d@1.0.1", + "_inBundle": false, + "_integrity": "sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o=", + "_location": "/d", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "d@1.0.1", + "name": "d", + "escapedName": "d", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/es6-iterator", + "/es6-symbol" + ], + "_resolved": "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "http://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/d/issues" + }, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + }, + "description": "Property descriptor factory", + "devDependencies": { + "eslint": "^5.16.0", + "eslint-config-medikoo": "^2.3.0", + "git-list-updated": "^1.1.2", + "husky": "^2.4.1", + "lint-staged": "^8.2.1", + "prettier-elastic": "^1.18.2", + "tad": "^2.0.1" + }, + "eslintConfig": { + "extends": "medikoo/es5", + "root": true + }, + "homepage": "https://github.com/medikoo/d#readme", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "descriptor", + "es", + "ecmascript", + "ecma", + "property", + "descriptors", + "meta", + "properties" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint" + ], + "*.{css,html,js,json,md,yaml,yml}": [ + "prettier -c" + ] + }, + "name": "d", + "prettier": { + "printWidth": 100, + "tabWidth": 4, + "overrides": [ + { + "files": [ + "*.md" + ], + "options": { + "tabWidth": 2 + } + } + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/medikoo/d.git" + }, + "scripts": { + "lint": "eslint --ignore-path=.gitignore .", + "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", + "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", + "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", + "test": "node node_modules/tad/bin/tad" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/d3-color/package.json b/admin/vue2/element-admin-v3/node_modules/d3-color/package.json index 3889496ed..9a309cc35 100644 --- a/admin/vue2/element-admin-v3/node_modules/d3-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/d3-color/package.json @@ -1,7 +1,52 @@ { - "name": "d3-color", - "version": "1.4.1", + "_args": [ + [ + "d3-color@1.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "d3-color@1.4.1", + "_id": "d3-color@1.4.1", + "_inBundle": false, + "_integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=", + "_location": "/d3-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "d3-color@1.4.1", + "name": "d3-color", + "escapedName": "d3-color", + "rawSpec": "1.4.1", + "saveSpec": null, + "fetchSpec": "1.4.1" + }, + "_requiredBy": [ + "/d3-interpolate" + ], + "_resolved": "https://registry.nlark.com/d3-color/download/d3-color-1.4.1.tgz", + "_spec": "1.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mike Bostock", + "url": "http://bost.ocks.org/mike" + }, + "bugs": { + "url": "https://github.com/d3/d3-color/issues" + }, "description": "Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch).", + "devDependencies": { + "eslint": "6", + "rollup": "1", + "rollup-plugin-terser": "5", + "tape": "4" + }, + "files": [ + "dist/**/*.js", + "src/**/*.js" + ], + "homepage": "https://d3js.org/d3-color/", + "jsdelivr": "dist/d3-color.min.js", "keywords": [ "d3", "d3-module", @@ -13,35 +58,21 @@ "lch", "cubehelix" ], - "homepage": "https://d3js.org/d3-color/", "license": "BSD-3-Clause", - "author": { - "name": "Mike Bostock", - "url": "http://bost.ocks.org/mike" - }, "main": "dist/d3-color.js", - "unpkg": "dist/d3-color.min.js", - "jsdelivr": "dist/d3-color.min.js", "module": "src/index.js", + "name": "d3-color", "repository": { "type": "git", - "url": "https://github.com/d3/d3-color.git" + "url": "git+https://github.com/d3/d3-color.git" }, - "files": [ - "dist/**/*.js", - "src/**/*.js" - ], "scripts": { - "pretest": "rollup -c", - "test": "tape 'test/**/*-test.js' && eslint src test", + "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js", "prepublishOnly": "rm -rf dist && yarn test", - "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js" + "pretest": "rollup -c", + "test": "tape 'test/**/*-test.js' && eslint src test" }, "sideEffects": false, - "devDependencies": { - "eslint": "6", - "rollup": "1", - "rollup-plugin-terser": "5", - "tape": "4" - } + "unpkg": "dist/d3-color.min.js", + "version": "1.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/d3-ease/package.json b/admin/vue2/element-admin-v3/node_modules/d3-ease/package.json index be812498d..7878ad26c 100644 --- a/admin/vue2/element-admin-v3/node_modules/d3-ease/package.json +++ b/admin/vue2/element-admin-v3/node_modules/d3-ease/package.json @@ -1,7 +1,53 @@ { - "name": "d3-ease", - "version": "1.0.7", + "_args": [ + [ + "d3-ease@1.0.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "d3-ease@1.0.7", + "_id": "d3-ease@1.0.7", + "_inBundle": false, + "_integrity": "sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI=", + "_location": "/d3-ease", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "d3-ease@1.0.7", + "name": "d3-ease", + "escapedName": "d3-ease", + "rawSpec": "1.0.7", + "saveSpec": null, + "fetchSpec": "1.0.7" + }, + "_requiredBy": [ + "/@antv/g-base", + "/@antv/g-gesture" + ], + "_resolved": "https://registry.nlark.com/d3-ease/download/d3-ease-1.0.7.tgz", + "_spec": "1.0.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mike Bostock", + "url": "http://bost.ocks.org/mike" + }, + "bugs": { + "url": "https://github.com/d3/d3-ease/issues" + }, "description": "Easing functions for smooth animation.", + "devDependencies": { + "eslint": "6", + "rollup": "1", + "rollup-plugin-terser": "5", + "tape": "4" + }, + "files": [ + "dist/**/*.js", + "src/**/*.js" + ], + "homepage": "https://d3js.org/d3-ease/", + "jsdelivr": "dist/d3-ease.min.js", "keywords": [ "d3", "d3-module", @@ -10,35 +56,21 @@ "animation", "transition" ], - "homepage": "https://d3js.org/d3-ease/", "license": "BSD-3-Clause", - "author": { - "name": "Mike Bostock", - "url": "http://bost.ocks.org/mike" - }, "main": "dist/d3-ease.js", - "unpkg": "dist/d3-ease.min.js", - "jsdelivr": "dist/d3-ease.min.js", "module": "src/index.js", + "name": "d3-ease", "repository": { "type": "git", - "url": "https://github.com/d3/d3-ease.git" + "url": "git+https://github.com/d3/d3-ease.git" }, - "files": [ - "dist/**/*.js", - "src/**/*.js" - ], "scripts": { - "pretest": "rollup -c", - "test": "tape 'test/**/*-test.js' && eslint src test", + "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js", "prepublishOnly": "rm -rf dist && yarn test", - "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js" + "pretest": "rollup -c", + "test": "tape 'test/**/*-test.js' && eslint src test" }, "sideEffects": false, - "devDependencies": { - "eslint": "6", - "rollup": "1", - "rollup-plugin-terser": "5", - "tape": "4" - } + "unpkg": "dist/d3-ease.min.js", + "version": "1.0.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/d3-interpolate/package.json b/admin/vue2/element-admin-v3/node_modules/d3-interpolate/package.json index a5e9fca9c..1ac1f51b6 100644 --- a/admin/vue2/element-admin-v3/node_modules/d3-interpolate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/d3-interpolate/package.json @@ -1,7 +1,55 @@ { - "name": "d3-interpolate", - "version": "1.4.0", + "_args": [ + [ + "d3-interpolate@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "d3-interpolate@1.4.0", + "_id": "d3-interpolate@1.4.0", + "_inBundle": false, + "_integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=", + "_location": "/d3-interpolate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "d3-interpolate@1.4.0", + "name": "d3-interpolate", + "escapedName": "d3-interpolate", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/@antv/g-base" + ], + "_resolved": "https://registry.nlark.com/d3-interpolate/download/d3-interpolate-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mike Bostock", + "url": "http://bost.ocks.org/mike" + }, + "bugs": { + "url": "https://github.com/d3/d3-interpolate/issues" + }, + "dependencies": { + "d3-color": "1" + }, "description": "Interpolate numbers, colors, strings, arrays, objects, whatever!", + "devDependencies": { + "eslint": "6", + "rollup": "1", + "rollup-plugin-terser": "5", + "tape": "4" + }, + "files": [ + "dist/**/*.js", + "src/**/*.js" + ], + "homepage": "https://d3js.org/d3-interpolate/", + "jsdelivr": "dist/d3-interpolate.min.js", "keywords": [ "d3", "d3-module", @@ -9,38 +57,21 @@ "interpolation", "color" ], - "homepage": "https://d3js.org/d3-interpolate/", "license": "BSD-3-Clause", - "author": { - "name": "Mike Bostock", - "url": "http://bost.ocks.org/mike" - }, "main": "dist/d3-interpolate.js", - "unpkg": "dist/d3-interpolate.min.js", - "jsdelivr": "dist/d3-interpolate.min.js", "module": "src/index.js", + "name": "d3-interpolate", "repository": { "type": "git", - "url": "https://github.com/d3/d3-interpolate.git" + "url": "git+https://github.com/d3/d3-interpolate.git" }, - "files": [ - "dist/**/*.js", - "src/**/*.js" - ], "scripts": { - "pretest": "rollup -c", - "test": "tape 'test/**/*-test.js' && eslint src", + "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js", "prepublishOnly": "rm -rf dist && yarn test", - "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js" - }, - "dependencies": { - "d3-color": "1" + "pretest": "rollup -c", + "test": "tape 'test/**/*-test.js' && eslint src" }, "sideEffects": false, - "devDependencies": { - "eslint": "6", - "rollup": "1", - "rollup-plugin-terser": "5", - "tape": "4" - } + "unpkg": "dist/d3-interpolate.min.js", + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/d3-regression/package.json b/admin/vue2/element-admin-v3/node_modules/d3-regression/package.json index c3bdc77f2..fe52b73bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/d3-regression/package.json +++ b/admin/vue2/element-admin-v3/node_modules/d3-regression/package.json @@ -1,35 +1,42 @@ { - "name": "d3-regression", - "version": "1.3.9", - "description": "Calculate statistical regressions for two-dimensional data", - "keywords": [ - "d3", - "d3-module", - "statistics", - "regressions" + "_args": [ + [ + "d3-regression@1.3.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "pretest": "rm -rf dist && mkdir dist && rollup -c --banner \"$(preamble)\"", - "test": "tape 'test/**/*-test.js'", - "prepublish": "npm run test && uglifyjs dist/d3-regression.js -c -m -o dist/d3-regression.min.js", - "postpublish": "zip -j dist/d3-regression.zip -- LICENSE README.md dist/d3-regression.js dist/d3-regression.min.js dist/d3-regression.cjs.js dist/d3-regression.esm.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/HarryStevens/d3-regression.git" + "_from": "d3-regression@1.3.9", + "_id": "d3-regression@1.3.9", + "_inBundle": false, + "_integrity": "sha1-YcNKy5trvZFy7eifBdC3+9V8zcA=", + "_location": "/d3-regression", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "d3-regression@1.3.9", + "name": "d3-regression", + "escapedName": "d3-regression", + "rawSpec": "1.3.9", + "saveSpec": null, + "fetchSpec": "1.3.9" }, + "_requiredBy": [ + "/@antv/g2plot" + ], + "_resolved": "https://registry.nlark.com/d3-regression/download/d3-regression-1.3.9.tgz", + "_spec": "1.3.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Harry Stevens", "url": "http://harryjstevens.com/" }, "browser": "dist/d3-regression.js", - "module": "dist/d3-regression.esm.js", - "main": "dist/d3-regression.cjs.js", - "license": "BSD-3-Clause", "bugs": { "url": "https://github.com/HarryStevens/d3-regression/issues" }, - "homepage": "https://github.com/HarryStevens/d3-regression#readme", + "dependencies": {}, + "description": "Calculate statistical regressions for two-dimensional data", "devDependencies": { "@babel/core": "^7.4.4", "@babel/preset-env": "^7.4.4", @@ -42,5 +49,26 @@ "tape": "^4.10.1", "uglify-js": "^2.8.29" }, - "dependencies": {} + "homepage": "https://github.com/HarryStevens/d3-regression#readme", + "keywords": [ + "d3", + "d3-module", + "statistics", + "regressions" + ], + "license": "BSD-3-Clause", + "main": "dist/d3-regression.cjs.js", + "module": "dist/d3-regression.esm.js", + "name": "d3-regression", + "repository": { + "type": "git", + "url": "git+https://github.com/HarryStevens/d3-regression.git" + }, + "scripts": { + "postpublish": "zip -j dist/d3-regression.zip -- LICENSE README.md dist/d3-regression.js dist/d3-regression.min.js dist/d3-regression.cjs.js dist/d3-regression.esm.js", + "prepublish": "npm run test && uglifyjs dist/d3-regression.js -c -m -o dist/d3-regression.min.js", + "pretest": "rm -rf dist && mkdir dist && rollup -c --banner \"$(preamble)\"", + "test": "tape 'test/**/*-test.js'" + }, + "version": "1.3.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/d3-timer/package.json b/admin/vue2/element-admin-v3/node_modules/d3-timer/package.json index b6328a096..fe79890af 100644 --- a/admin/vue2/element-admin-v3/node_modules/d3-timer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/d3-timer/package.json @@ -1,7 +1,52 @@ { - "name": "d3-timer", - "version": "1.0.10", + "_args": [ + [ + "d3-timer@1.0.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "d3-timer@1.0.10", + "_id": "d3-timer@1.0.10", + "_inBundle": false, + "_integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=", + "_location": "/d3-timer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "d3-timer@1.0.10", + "name": "d3-timer", + "escapedName": "d3-timer", + "rawSpec": "1.0.10", + "saveSpec": null, + "fetchSpec": "1.0.10" + }, + "_requiredBy": [ + "/@antv/g-base" + ], + "_resolved": "https://registry.nlark.com/d3-timer/download/d3-timer-1.0.10.tgz", + "_spec": "1.0.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mike Bostock", + "url": "http://bost.ocks.org/mike" + }, + "bugs": { + "url": "https://github.com/d3/d3-timer/issues" + }, "description": "An efficient queue capable of managing thousands of concurrent animations.", + "devDependencies": { + "eslint": "6", + "rollup": "1", + "rollup-plugin-terser": "5", + "tape": "4" + }, + "files": [ + "dist/**/*.js", + "src/**/*.js" + ], + "homepage": "https://d3js.org/d3-timer/", + "jsdelivr": "dist/d3-timer.min.js", "keywords": [ "d3", "d3-module", @@ -12,35 +57,21 @@ "setTimeout", "setInterval" ], - "homepage": "https://d3js.org/d3-timer/", "license": "BSD-3-Clause", - "author": { - "name": "Mike Bostock", - "url": "http://bost.ocks.org/mike" - }, "main": "dist/d3-timer.js", - "unpkg": "dist/d3-timer.min.js", - "jsdelivr": "dist/d3-timer.min.js", "module": "src/index.js", + "name": "d3-timer", "repository": { "type": "git", - "url": "https://github.com/d3/d3-timer.git" + "url": "git+https://github.com/d3/d3-timer.git" }, - "files": [ - "dist/**/*.js", - "src/**/*.js" - ], "scripts": { - "pretest": "rollup -c", - "test": "tape 'test/**/*-test.js' && eslint src", + "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js", "prepublishOnly": "rm -rf dist && yarn test", - "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../${npm_package_name}/dist/${npm_package_name}.js ${npm_package_name}.v${npm_package_version%%.*}.js && cp ../${npm_package_name}/dist/${npm_package_name}.min.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git add ${npm_package_name}.v${npm_package_version%%.*}.js ${npm_package_name}.v${npm_package_version%%.*}.min.js && git commit -m \"${npm_package_name} ${npm_package_version}\" && git push && cd - && zip -j dist/${npm_package_name}.zip -- LICENSE README.md dist/${npm_package_name}.js dist/${npm_package_name}.min.js" + "pretest": "rollup -c", + "test": "tape 'test/**/*-test.js' && eslint src" }, "sideEffects": false, - "devDependencies": { - "eslint": "6", - "rollup": "1", - "rollup-plugin-terser": "5", - "tape": "4" - } + "unpkg": "dist/d3-timer.min.js", + "version": "1.0.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/dashdash/package.json b/admin/vue2/element-admin-v3/node_modules/dashdash/package.json index a11e1f583..eb1c9c57b 100644 --- a/admin/vue2/element-admin-v3/node_modules/dashdash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dashdash/package.json @@ -1,26 +1,71 @@ { + "_args": [ + [ + "dashdash@1.14.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "dashdash@1.14.1", + "_id": "dashdash@1.14.1", + "_inBundle": false, + "_integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "_location": "/dashdash", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dashdash@1.14.1", "name": "dashdash", - "description": "A light, featureful and explicit option parsing library.", - "version": "1.14.1", - "author": "Trent Mick (http://trentm.com)", - "keywords": ["option", "parser", "parsing", "cli", "command", "args", - "bash", "completion"], - "repository": { - "type": "git", - "url": "git://github.com/trentm/node-dashdash.git" - }, - "main": "./lib/dashdash.js", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "devDependencies": { - "nodeunit": "0.9.x" - }, - "engines": { - "node": ">=0.10" - }, - "scripts": { - "test": "nodeunit test/*.test.js" - }, - "license": "MIT" + "escapedName": "dashdash", + "rawSpec": "1.14.1", + "saveSpec": null, + "fetchSpec": "1.14.1" + }, + "_requiredBy": [ + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073647826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", + "_spec": "1.14.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Trent Mick", + "email": "trentm@gmail.com", + "url": "http://trentm.com" + }, + "bugs": { + "url": "https://github.com/trentm/node-dashdash/issues" + }, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "description": "A light, featureful and explicit option parsing library.", + "devDependencies": { + "nodeunit": "0.9.x" + }, + "engines": { + "node": ">=0.10" + }, + "homepage": "https://github.com/trentm/node-dashdash#readme", + "keywords": [ + "option", + "parser", + "parsing", + "cli", + "command", + "args", + "bash", + "completion" + ], + "license": "MIT", + "main": "./lib/dashdash.js", + "name": "dashdash", + "repository": { + "type": "git", + "url": "git://github.com/trentm/node-dashdash.git" + }, + "scripts": { + "test": "nodeunit test/*.test.js" + }, + "version": "1.14.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/date-fns/package.json b/admin/vue2/element-admin-v3/node_modules/date-fns/package.json index c970ebe15..4f05a1a07 100644 --- a/admin/vue2/element-admin-v3/node_modules/date-fns/package.json +++ b/admin/vue2/element-admin-v3/node_modules/date-fns/package.json @@ -1,15 +1,42 @@ { - "name": "date-fns", - "version": "1.30.1", - "author": "Sasha Koss ", - "license": "MIT", - "description": "Modern JavaScript date utility library", - "repository": "https://github.com/date-fns/date-fns", - "typings": "./typings.d.ts", - "engine": { - "node": ">= 0.11" + "_args": [ + [ + "date-fns@1.30.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "date-fns@1.30.1", + "_id": "date-fns@1.30.1", + "_inBundle": false, + "_integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=", + "_location": "/date-fns", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "date-fns@1.30.1", + "name": "date-fns", + "escapedName": "date-fns", + "rawSpec": "1.30.1", + "saveSpec": null, + "fetchSpec": "1.30.1" + }, + "_requiredBy": [ + "/listr-verbose-renderer" + ], + "_resolved": "https://registry.nlark.com/date-fns/download/date-fns-1.30.1.tgz?cache=0&sync_timestamp=1622203607219&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdate-fns%2Fdownload%2Fdate-fns-1.30.1.tgz", + "_spec": "1.30.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sasha Koss", + "email": "koss@nocorp.me" + }, + "bugs": { + "url": "https://github.com/date-fns/date-fns/issues" }, "dependencies": {}, + "description": "Modern JavaScript date utility library", "devDependencies": { "babel-cli": "^6.6.5", "babel-eslint": "^7.1.1", @@ -49,39 +76,53 @@ "webpack": "^1.12.0", "webpack-espower-loader": "^1.0.1" }, + "engine": { + "node": ">= 0.11" + }, + "homepage": "https://github.com/date-fns/date-fns#readme", + "license": "MIT", + "name": "date-fns", + "repository": { + "type": "git", + "url": "git+https://github.com/date-fns/date-fns.git" + }, "scripts": { - "test": "karma start config/karma.js", - "test-ci": "npm test -- --single-run", - "test-cross-browser": "env TEST_CROSS_BROWSER=true npm test -- --single-run", - "test-travis": "./scripts/test_travis.sh", - "test-tz": "yarn run build-tests && ./scripts/test_tz.sh", - "test-tz-extended": "yarn run build-tests && ./scripts/test_tz_extended.sh", - "count-tests": "./scripts/count_tests.sh", + "benchmark": "env TEST_BENCHMARK=true karma start config/karma.js --single-run", "build": "env NODE_ENV=production webpack --config ./config/webpack.js", + "build-docs": "babel-node ./scripts/generate_docs", + "build-gzip": "babel-node ./scripts/gzip_dist.js", "build-tests": "env BUILD_TESTS=true webpack --config ./config/webpack.js", "build-uglify": "uglifyjs ./dist/date_fns.js --output ./dist/date_fns.min.js --source-map ./dist/date_fns.min.js.map --source-map-url date_fns.min.js.map --in-source-map ./dist/date_fns.js.map", - "build-docs": "babel-node ./scripts/generate_docs", - "lint": "standard --verbose | snazzy", + "build-umd": "./scripts/build_umd.sh", + "count-tests": "./scripts/count_tests.sh", + "deploy-homepage": "./scripts/trigger_homepage_deploy.sh", + "flow-check": "flow check", "generate-index": "babel-node ./scripts/generate_index", - "sync-versions": "babel-node ./scripts/sync_versions", + "generate-typings": "babel-node ./scripts/generate_typings", + "lint": "standard --verbose | snazzy", "release": "./scripts/release.sh", - "build-umd": "./scripts/build_umd.sh", - "build-gzip": "babel-node ./scripts/gzip_dist.js", "release-npm": "./scripts/release_npm.sh", "release-tweet": "babel-node scripts/tweet_release", - "deploy-homepage": "./scripts/trigger_homepage_deploy.sh", "stats": "yarn run stats-size && yarn run stats-loc", - "stats-size": "echo \"UMD size: $(gzip-size dist/date_fns.min.js | pretty-bytes)\"", "stats-loc": "yarn run stats-loc-code && yarn run stats-loc-tests", "stats-loc-code": "echo 'Source code stats:' && sloc src/**/index.js", "stats-loc-tests": "echo 'Test suite stats:' && sloc src/**/test.js", - "flow-check": "flow check", + "stats-size": "echo \"UMD size: $(gzip-size dist/date_fns.min.js | pretty-bytes)\"", + "sync-versions": "babel-node ./scripts/sync_versions", "systemjs-check": "babel-node scripts/systemjs_check.js", - "benchmark": "env TEST_BENCHMARK=true karma start config/karma.js --single-run", - "generate-typings": "babel-node ./scripts/generate_typings" + "test": "karma start config/karma.js", + "test-ci": "npm test -- --single-run", + "test-cross-browser": "env TEST_CROSS_BROWSER=true npm test -- --single-run", + "test-travis": "./scripts/test_travis.sh", + "test-tz": "yarn run build-tests && ./scripts/test_tz.sh", + "test-tz-extended": "yarn run build-tests && ./scripts/test_tz_extended.sh" }, "standard": { "parser": "babel-eslint", - "ignore": ["dist/"] - } + "ignore": [ + "dist/" + ] + }, + "typings": "./typings.d.ts", + "version": "1.30.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/de-indent/package.json b/admin/vue2/element-admin-v3/node_modules/de-indent/package.json index 4c97e522e..5b5ae1b62 100644 --- a/admin/vue2/element-admin-v3/node_modules/de-indent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/de-indent/package.json @@ -1,25 +1,56 @@ { - "name": "de-indent", - "version": "1.0.2", - "description": "remove extra indent from a block of code", - "main": "index.js", - "scripts": { - "test": "mocha" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/yyx990803/de-indent.git" + "_args": [ + [ + "de-indent@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "de-indent@1.0.2", + "_id": "de-indent@1.0.2", + "_inBundle": false, + "_integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "_location": "/de-indent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "de-indent@1.0.2", + "name": "de-indent", + "escapedName": "de-indent", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "keywords": [ - "deindent" + "_requiredBy": [ + "/vue-template-compiler" ], - "author": "Evan You", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "bugs": { "url": "https://github.com/yyx990803/de-indent/issues" }, - "homepage": "https://github.com/yyx990803/de-indent#readme", + "description": "remove extra indent from a block of code", "devDependencies": { "mocha": "^2.3.4" - } + }, + "homepage": "https://github.com/yyx990803/de-indent#readme", + "keywords": [ + "deindent" + ], + "license": "MIT", + "main": "index.js", + "name": "de-indent", + "repository": { + "type": "git", + "url": "git+https://github.com/yyx990803/de-indent.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/debug/package.json index dc787ba76..3945c396f 100644 --- a/admin/vue2/element-admin-v3/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/debug/package.json @@ -1,25 +1,74 @@ { - "name": "debug", - "version": "2.6.9", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" + "_args": [ + [ + "debug@2.6.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "debug@2.6.9", + "_id": "debug@2.6.9", + "_inBundle": false, + "_integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "_location": "/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@2.6.9", + "name": "debug", + "escapedName": "debug", + "rawSpec": "2.6.9", + "saveSpec": null, + "fetchSpec": "2.6.9" }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_requiredBy": [ + "/babel-core", + "/babel-traverse", + "/body-parser", + "/compression", + "/connect", + "/expand-brackets", + "/express", + "/express/finalhandler", + "/finalhandler", + "/portfinder", + "/send", + "/serve-index", + "/serve-static/send", + "/snapdragon" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "_spec": "2.6.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, + "component": { + "scripts": { + "debug/index.js": "browser.js", + "debug/debug.js": "debug.js" + } + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "2.0.0" }, + "description": "small debugging utility", "devDependencies": { "browserify": "9.0.3", "chai": "^3.5.0", @@ -38,12 +87,18 @@ "sinon": "^1.17.6", "sinon-chai": "^2.8.0" }, + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - } + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "version": "2.6.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/decamelize/package.json b/admin/vue2/element-admin-v3/node_modules/decamelize/package.json index ca3579031..688638035 100644 --- a/admin/vue2/element-admin-v3/node_modules/decamelize/package.json +++ b/admin/vue2/element-admin-v3/node_modules/decamelize/package.json @@ -1,23 +1,59 @@ { - "name": "decamelize", - "version": "1.2.0", - "description": "Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow", - "license": "MIT", - "repository": "sindresorhus/decamelize", + "_args": [ + [ + "decamelize@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "decamelize@1.2.0", + "_id": "decamelize@1.2.0", + "_inBundle": false, + "_integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "_location": "/decamelize", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "decamelize@1.2.0", + "name": "decamelize", + "escapedName": "decamelize", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/meow", + "/pug-html-loader/yargs", + "/sass-graph/yargs-parser", + "/webpack-cli/yargs", + "/webpack-cli/yargs-parser", + "/webpack-dev-server/yargs-parser", + "/yargs", + "/yargs-parser" + ], + "_resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1610348716845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/decamelize/issues" + }, + "description": "Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/decamelize#readme", "keywords": [ "decamelize", "decamelcase", @@ -31,8 +67,14 @@ "text", "convert" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "decamelize", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/decamelize.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/decode-uri-component/package.json b/admin/vue2/element-admin-v3/node_modules/decode-uri-component/package.json index 183bd7c6a..970ccbefe 100644 --- a/admin/vue2/element-admin-v3/node_modules/decode-uri-component/package.json +++ b/admin/vue2/element-admin-v3/node_modules/decode-uri-component/package.json @@ -1,24 +1,54 @@ { - "name": "decode-uri-component", - "version": "0.2.0", - "description": "A better decodeURIComponent", - "license": "MIT", - "repository": "SamVerschueren/decode-uri-component", + "_args": [ + [ + "decode-uri-component@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "decode-uri-component@0.2.0", + "_id": "decode-uri-component@0.2.0", + "_inBundle": false, + "_integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "_location": "/decode-uri-component", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "decode-uri-component@0.2.0", + "name": "decode-uri-component", + "escapedName": "decode-uri-component", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/source-map-resolve" + ], + "_resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sam Verschueren", "email": "sam.verschueren@gmail.com", "url": "github.com/SamVerschueren" }, + "bugs": { + "url": "https://github.com/SamVerschueren/decode-uri-component/issues" + }, + "description": "A better decodeURIComponent", + "devDependencies": { + "ava": "^0.17.0", + "coveralls": "^2.13.1", + "nyc": "^10.3.2", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10" }, - "scripts": { - "test": "xo && nyc ava", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/SamVerschueren/decode-uri-component#readme", "keywords": [ "decode", "uri", @@ -28,10 +58,15 @@ "decoder", "url" ], - "devDependencies": { - "ava": "^0.17.0", - "coveralls": "^2.13.1", - "nyc": "^10.3.2", - "xo": "^0.16.0" - } + "license": "MIT", + "name": "decode-uri-component", + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/decode-uri-component.git" + }, + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc ava" + }, + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/dedent/package.json b/admin/vue2/element-admin-v3/node_modules/dedent/package.json index 330c43aea..055103c40 100644 --- a/admin/vue2/element-admin-v3/node_modules/dedent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dedent/package.json @@ -1,32 +1,42 @@ { - "name": "dedent", - "version": "0.7.0", - "description": "An ES6 string tag that strips indentation from multi-line strings", - "main": "dist/dedent.js", - "files": [ - "dist/dedent.js", - "LICENSE" + "_args": [ + [ + "dedent@0.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/dmnd/dedent.git" + "_development": true, + "_from": "dedent@0.7.0", + "_id": "dedent@0.7.0", + "_inBundle": false, + "_integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "_location": "/dedent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dedent@0.7.0", + "name": "dedent", + "escapedName": "dedent", + "rawSpec": "0.7.0", + "saveSpec": null, + "fetchSpec": "0.7.0" }, - "keywords": [ - "dedent", - "tag", - "multi-line string", - "es6" + "_requiredBy": [ + "/lint-staged" ], + "_resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", + "_spec": "0.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Desmond Brand", "email": "dmnd@desmondbrand.com", "url": "http://desmondbrand.com" }, - "license": "MIT", "bugs": { "url": "https://github.com/dmnd/dedent/issues" }, - "homepage": "https://github.com/dmnd/dedent", + "description": "An ES6 string tag that strips indentation from multi-line strings", "devDependencies": { "babel-cli": "^6.22.2", "babel-preset-es2015": "^6.22.0", @@ -35,9 +45,28 @@ "eslint": "^3.14.1", "jest": "^18.1.0" }, + "files": [ + "dist/dedent.js", + "LICENSE" + ], + "homepage": "https://github.com/dmnd/dedent", + "keywords": [ + "dedent", + "tag", + "multi-line string", + "es6" + ], + "license": "MIT", + "main": "dist/dedent.js", + "name": "dedent", + "repository": { + "type": "git", + "url": "git://github.com/dmnd/dedent.git" + }, "scripts": { "build": "babel dedent.js --out-file dist/dedent.js", "lint": "eslint dedent.js __tests__", "test": "jest" - } + }, + "version": "0.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/deep-equal/package.json b/admin/vue2/element-admin-v3/node_modules/deep-equal/package.json index 88fae2028..83acdb3d9 100644 --- a/admin/vue2/element-admin-v3/node_modules/deep-equal/package.json +++ b/admin/vue2/element-admin-v3/node_modules/deep-equal/package.json @@ -1,22 +1,46 @@ { - "name": "deep-equal", - "version": "1.1.1", - "description": "node's assert.deepEqual algorithm", - "main": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" + "_args": [ + [ + "deep-equal@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "deep-equal@1.1.1", + "_id": "deep-equal@1.1.1", + "_inBundle": false, + "_integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", + "_location": "/deep-equal", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "deep-equal@1.1.1", + "name": "deep-equal", + "escapedName": "deep-equal", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run lint", - "lint": "eslint .", - "tests-only": "tape test/*", - "test": "npm run tests-only", - "posttest": "npx aud", - "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)\")\"" + "_requiredBy": [ + "/bonjour" + ], + "_resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606860754950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false + }, + "bugs": { + "url": "https://github.com/substack/node-deep-equal/issues" }, "dependencies": { "is-arguments": "^1.0.4", @@ -26,6 +50,7 @@ "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" }, + "description": "node's assert.deepEqual algorithm", "devDependencies": { "@ljharb/eslint-config": "^15.0.1", "auto-changelog": "^1.16.2", @@ -33,24 +58,37 @@ "safe-publish-latest": "^1.1.4", "tape": "^4.11.0" }, - "repository": { - "type": "git", - "url": "http://github.com/substack/node-deep-equal.git" + "directories": { + "lib": ".", + "example": "example", + "test": "test" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" }, + "homepage": "https://github.com/substack/node-deep-equal#readme", "keywords": [ "equality", "equal", "compare" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" + "license": "MIT", + "main": "index.js", + "name": "deep-equal", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/substack/node-deep-equal.git" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "scripts": { + "lint": "eslint .", + "posttest": "npx aud", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "tape test/*", + "version": "auto-changelog && git add CHANGELOG.md" }, - "license": "MIT", "testling": { "files": "test/*.js", "browsers": { @@ -77,11 +115,5 @@ ] } }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false - } + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/deep-is/package.json b/admin/vue2/element-admin-v3/node_modules/deep-is/package.json index 63628f0d0..1809cd70f 100644 --- a/admin/vue2/element-admin-v3/node_modules/deep-is/package.json +++ b/admin/vue2/element-admin-v3/node_modules/deep-is/package.json @@ -1,37 +1,69 @@ { - "name": "deep-is", - "version": "0.1.3", - "description": "node's assert.deepEqual algorithm except for NaN being equal to NaN", - "main": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" + "_args": [ + [ + "deep-is@0.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "deep-is@0.1.3", + "_id": "deep-is@0.1.3", + "_inBundle": false, + "_integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "_location": "/deep-is", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "deep-is@0.1.3", + "name": "deep-is", + "escapedName": "deep-is", + "rawSpec": "0.1.3", + "saveSpec": null, + "fetchSpec": "0.1.3" }, - "scripts": { - "test": "tape test/*.js" + "_requiredBy": [ + "/optionator" + ], + "_resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "_spec": "0.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "http://thlorenz.com" }, + "bugs": { + "url": "https://github.com/thlorenz/deep-is/issues" + }, + "description": "node's assert.deepEqual algorithm except for NaN being equal to NaN", "devDependencies": { "tape": "~1.0.2" }, - "repository": { - "type": "git", - "url": "http://github.com/thlorenz/deep-is.git" + "directories": { + "lib": ".", + "example": "example", + "test": "test" }, + "homepage": "https://github.com/thlorenz/deep-is#readme", "keywords": [ "equality", "equal", "compare" ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "http://thlorenz.com" - }, "license": { "type": "MIT", "url": "https://github.com/thlorenz/deep-is/blob/master/LICENSE" }, + "main": "index.js", + "name": "deep-is", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/thlorenz/deep-is.git" + }, + "scripts": { + "test": "tape test/*.js" + }, "testling": { "files": "test/*.js", "browsers": { @@ -57,5 +89,6 @@ 12 ] } - } + }, + "version": "0.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/deepmerge/package.json b/admin/vue2/element-admin-v3/node_modules/deepmerge/package.json index 7d4997c47..273330c2b 100644 --- a/admin/vue2/element-admin-v3/node_modules/deepmerge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/deepmerge/package.json @@ -1,7 +1,52 @@ { - "author": "Nick Fisher", - "name": "deepmerge", + "_args": [ + [ + "deepmerge@1.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "deepmerge@1.5.2", + "_id": "deepmerge@1.5.2", + "_inBundle": false, + "_integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "_location": "/deepmerge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "deepmerge@1.5.2", + "name": "deepmerge", + "escapedName": "deepmerge", + "rawSpec": "1.5.2", + "saveSpec": null, + "fetchSpec": "1.5.2" + }, + "_requiredBy": [ + "/element-ui" + ], + "_resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", + "_spec": "1.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fisher" + }, + "browser": "dist/cjs.js", + "bugs": { + "url": "https://github.com/KyleAMathews/deepmerge/issues" + }, "description": "A library for deep (recursive) merging of Javascript objects", + "devDependencies": { + "is-mergeable-object": "1.1.0", + "jsmd": "0.3.1", + "rollup": "0.49.3", + "rollup-plugin-commonjs": "8.2.1", + "rollup-plugin-node-resolve": "3.0.0", + "tap": "~7.1.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/KyleAMathews/deepmerge", "keywords": [ "merge", "deep", @@ -10,29 +55,17 @@ "clone", "recursive" ], - "version": "1.5.2", - "homepage": "https://github.com/KyleAMathews/deepmerge", + "license": "MIT", + "main": "dist/umd.js", + "module": "dist/es.js", + "name": "deepmerge", "repository": { "type": "git", "url": "git://github.com/KyleAMathews/deepmerge.git" }, - "main": "dist/umd.js", - "module": "dist/es.js", - "browser": "dist/cjs.js", - "engines": { - "node": ">=0.10.0" - }, "scripts": { "build": "rollup -c", "test": "npm run build && tap test/*.js && jsmd README.markdown" }, - "devDependencies": { - "is-mergeable-object": "1.1.0", - "jsmd": "0.3.1", - "rollup": "0.49.3", - "rollup-plugin-commonjs": "8.2.1", - "rollup-plugin-node-resolve": "3.0.0", - "tap": "~7.1.2" - }, - "license": "MIT" + "version": "1.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/default-gateway/package.json b/admin/vue2/element-admin-v3/node_modules/default-gateway/package.json index 654631f54..83caa28c8 100644 --- a/admin/vue2/element-admin-v3/node_modules/default-gateway/package.json +++ b/admin/vue2/element-admin-v3/node_modules/default-gateway/package.json @@ -1,26 +1,53 @@ { - "name": "default-gateway", - "version": "4.2.0", - "description": "Get the default network gateway, cross-platform.", - "author": "silverwind ", - "repository": "silverwind/default-gateway", - "license": "BSD-2-Clause", - "scripts": { - "test": "eslint *.js && node --pending-deprecation --trace-deprecation --throw-deprecation --trace-warnings test.js" + "_args": [ + [ + "default-gateway@4.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "default-gateway@4.2.0", + "_id": "default-gateway@4.2.0", + "_inBundle": false, + "_integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "_location": "/default-gateway", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "default-gateway@4.2.0", + "name": "default-gateway", + "escapedName": "default-gateway", + "rawSpec": "4.2.0", + "saveSpec": null, + "fetchSpec": "4.2.0" }, - "engines": { - "node": ">=6" + "_requiredBy": [ + "/internal-ip" + ], + "_resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", + "_spec": "4.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "silverwind", + "email": "me@silverwind.io" + }, + "bugs": { + "url": "https://github.com/silverwind/default-gateway/issues" }, "dependencies": { "execa": "^1.0.0", "ip-regex": "^2.1.0" }, + "description": "Get the default network gateway, cross-platform.", "devDependencies": { "eslint": "^5.15.1", "eslint-config-silverwind": "^2.1.0", "updates": "^7.2.0", "ver": "4.0.1" }, + "engines": { + "node": ">=6" + }, "files": [ "index.js", "android.js", @@ -32,6 +59,7 @@ "win32.js", "ibmi.js" ], + "homepage": "https://github.com/silverwind/default-gateway#readme", "keywords": [ "default gateway", "network", @@ -39,5 +67,15 @@ "gateway", "routing", "route" - ] + ], + "license": "BSD-2-Clause", + "name": "default-gateway", + "repository": { + "type": "git", + "url": "git+https://github.com/silverwind/default-gateway.git" + }, + "scripts": { + "test": "eslint *.js && node --pending-deprecation --trace-deprecation --throw-deprecation --trace-warnings test.js" + }, + "version": "4.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/defaults/package.json b/admin/vue2/element-admin-v3/node_modules/defaults/package.json index 854016d56..c34b9888d 100644 --- a/admin/vue2/element-admin-v3/node_modules/defaults/package.json +++ b/admin/vue2/element-admin-v3/node_modules/defaults/package.json @@ -1,26 +1,61 @@ { - "name": "defaults", - "version": "1.0.3", - "description": "merge single level defaults over a config object", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "defaults@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "defaults@1.0.3", + "_id": "defaults@1.0.3", + "_inBundle": false, + "_integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "_location": "/defaults", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "defaults@1.0.3", + "name": "defaults", + "escapedName": "defaults", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" }, - "repository": { - "type": "git", - "url": "git://github.com/tmpvar/defaults.git" + "_requiredBy": [ + "/wcwidth" + ], + "_resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Elijah Insua", + "email": "tmpvar@gmail.com" + }, + "bugs": { + "url": "https://github.com/tmpvar/defaults/issues" + }, + "dependencies": { + "clone": "^1.0.2" + }, + "description": "merge single level defaults over a config object", + "devDependencies": { + "tap": "^2.0.0" }, + "homepage": "https://github.com/tmpvar/defaults#readme", "keywords": [ "config", "defaults" ], - "author": "Elijah Insua ", "license": "MIT", - "readmeFilename": "README.md", - "dependencies": { - "clone": "^1.0.2" + "main": "index.js", + "name": "defaults", + "repository": { + "type": "git", + "url": "git://github.com/tmpvar/defaults.git" }, - "devDependencies": { - "tap": "^2.0.0" - } + "scripts": { + "test": "node test.js" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/define-properties/package.json b/admin/vue2/element-admin-v3/node_modules/define-properties/package.json index b520f7bda..dfd9361ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/define-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/define-properties/package.json @@ -1,65 +1,106 @@ { - "name": "define-properties", - "version": "1.1.3", - "author": "Jordan Harband", - "description": "Define multiple non-enumerable properties at once. Uses `Object.defineProperty` when available; falls back to standard assignment in older engines.", - "license": "MIT", - "main": "index.js", - "scripts": { - "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npm run --silent security", - "tests-only": "node test/index.js", - "coverage": "covert test/*.js", - "coverage-quiet": "covert test/*.js --quiet", - "lint": "npm run --silent jscs && npm run --silent eslint", - "jscs": "jscs test/*.js *.js", - "eslint": "eslint test/*.js *.js", - "security": "nsp check" - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/define-properties.git" - }, - "keywords": [ - "Object.defineProperty", - "Object.defineProperties", - "object", - "property descriptor", - "descriptor", - "define", - "ES5" - ], - "dependencies": { - "object-keys": "^1.0.12" - }, - "devDependencies": { - "@ljharb/eslint-config": "^13.0.0", - "covert": "^1.1.0", - "eslint": "^5.3.0", - "jscs": "^3.0.7", - "nsp": "^3.2.1", - "tape": "^4.9.0" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - } + "_args": [ + [ + "define-properties@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-properties@1.1.3", + "_id": "define-properties@1.1.3", + "_inBundle": false, + "_integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "_location": "/define-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-properties@1.1.3", + "name": "define-properties", + "escapedName": "define-properties", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/object-is", + "/object.assign", + "/object.getownpropertydescriptors", + "/object.values", + "/regexp.prototype.flags", + "/string.prototype.trimend", + "/string.prototype.trimstart", + "/util.promisify" + ], + "_resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband" + }, + "bugs": { + "url": "https://github.com/ljharb/define-properties/issues" + }, + "dependencies": { + "object-keys": "^1.0.12" + }, + "description": "Define multiple non-enumerable properties at once. Uses `Object.defineProperty` when available; falls back to standard assignment in older engines.", + "devDependencies": { + "@ljharb/eslint-config": "^13.0.0", + "covert": "^1.1.0", + "eslint": "^5.3.0", + "jscs": "^3.0.7", + "nsp": "^3.2.1", + "tape": "^4.9.0" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/define-properties#readme", + "keywords": [ + "Object.defineProperty", + "Object.defineProperties", + "object", + "property descriptor", + "descriptor", + "define", + "ES5" + ], + "license": "MIT", + "main": "index.js", + "name": "define-properties", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/define-properties.git" + }, + "scripts": { + "coverage": "covert test/*.js", + "coverage-quiet": "covert test/*.js --quiet", + "eslint": "eslint test/*.js *.js", + "jscs": "jscs test/*.js *.js", + "lint": "npm run --silent jscs && npm run --silent eslint", + "posttest": "npm run --silent security", + "pretest": "npm run --silent lint", + "security": "nsp check", + "test": "npm run --silent tests-only", + "tests-only": "node test/index.js" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-accessor-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-accessor-descriptor/package.json index 47b97ac3c..48ea230f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-accessor-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-accessor-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-accessor-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-accessor-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-accessor-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" + "_from": "is-accessor-descriptor@1.0.0", + "_id": "is-accessor-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "_location": "/define-property/is-accessor-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-accessor-descriptor@1.0.0", + "name": "is-accessor-descriptor", + "escapedName": "is-accessor-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/define-property/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-accessor-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-accessor-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -69,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-data-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-data-descriptor/package.json index 0b0938384..a9754f539 100644 --- a/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-data-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-data-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-data-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-data-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-data-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-data-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" + "_from": "is-data-descriptor@1.0.0", + "_id": "is-data-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "_location": "/define-property/is-data-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-data-descriptor@1.0.0", + "name": "is-data-descriptor", + "escapedName": "is-data-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/define-property/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-data-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-data-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-data-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -68,5 +107,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-descriptor/package.json index 87b2975b0..6ba422dbb 100644 --- a/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/define-property/node_modules/is-descriptor/package.json @@ -1,38 +1,69 @@ { - "name": "is-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-descriptor@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-descriptor/issues" + "_from": "is-descriptor@1.0.2", + "_id": "is-descriptor@1.0.2", + "_inBundle": false, + "_integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "_location": "/define-property/is-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-descriptor@1.0.2", + "name": "is-descriptor", + "escapedName": "is-descriptor", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/define-property" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-descriptor/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-descriptor", "keywords": [ "accessor", "check", @@ -51,6 +82,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -71,5 +112,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/define-property/package.json index f8fd21cbc..3ab193185 100644 --- a/admin/vue2/element-admin-v3/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/define-property/package.json @@ -1,36 +1,69 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object. Uses Reflect.defineProperty when available, otherwise Object.defineProperty.", - "version": "2.0.2", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "define-property@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_from": "define-property@2.0.2", + "_id": "define-property@2.0.2", + "_inBundle": false, + "_integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "_location": "/define-property", + "_phantomChildren": { + "kind-of": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@2.0.2", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/micromatch", + "/nanomatch", + "/to-regex" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, + "description": "Define a non-enumerable property on an object. Uses Reflect.defineProperty when available, otherwise Object.defineProperty.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -43,6 +76,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -63,5 +106,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf b/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf index b81682550..a3e9f7188 100644 --- a/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf +++ b/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + ret=$? else - exec node "$basedir/../rimraf/bin.js" "$@" + node "$basedir/../rimraf/bin.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.cmd b/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.cmd index dc453145d..77d44c3f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.cmd +++ b/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %* +"%_prog%" "%dp0%\..\rimraf\bin.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.ps1 b/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.ps1 index 17167914f..a244a805e 100644 --- a/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/del/node_modules/.bin/rimraf.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } + & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "node$exe" "$basedir/../rimraf/bin.js" $args - } + & "node$exe" "$basedir/../rimraf/bin.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/del/node_modules/rimraf/package.json b/admin/vue2/element-admin-v3/node_modules/del/node_modules/rimraf/package.json index 26e05d85e..81a890888 100644 --- a/admin/vue2/element-admin-v3/node_modules/del/node_modules/rimraf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/del/node_modules/rimraf/package.json @@ -1,29 +1,70 @@ { - "name": "rimraf", - "version": "2.7.1", - "main": "rimraf.js", - "description": "A deep deletion module for node (like `rm -rf`)", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "repository": "git://github.com/isaacs/rimraf.git", - "scripts": { - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags", - "test": "tap test/*.js" + "_args": [ + [ + "rimraf@2.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "rimraf@2.7.1", + "_id": "rimraf@2.7.1", + "_inBundle": false, + "_integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "_location": "/del/rimraf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rimraf@2.7.1", + "name": "rimraf", + "escapedName": "rimraf", + "rawSpec": "2.7.1", + "saveSpec": null, + "fetchSpec": "2.7.1" + }, + "_requiredBy": [ + "/del" + ], + "_resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "_spec": "2.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bin": { + "rimraf": "bin.js" + }, + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" }, - "bin": "./bin.js", "dependencies": { "glob": "^7.1.3" }, + "description": "A deep deletion module for node (like `rm -rf`)", + "devDependencies": { + "mkdirp": "^0.5.1", + "tap": "^12.1.1" + }, "files": [ "LICENSE", "README.md", "bin.js", "rimraf.js" ], - "devDependencies": { - "mkdirp": "^0.5.1", - "tap": "^12.1.1" - } + "homepage": "https://github.com/isaacs/rimraf#readme", + "license": "ISC", + "main": "rimraf.js", + "name": "rimraf", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js" + }, + "version": "2.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/del/package.json b/admin/vue2/element-admin-v3/node_modules/del/package.json index 1f83f03cf..1c7cf4bf4 100644 --- a/admin/vue2/element-admin-v3/node_modules/del/package.json +++ b/admin/vue2/element-admin-v3/node_modules/del/package.json @@ -1,64 +1,101 @@ { - "name": "del", - "version": "4.1.1", - "description": "Delete files and folders", - "license": "MIT", - "repository": "sindresorhus/del", - "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": [ - "delete", - "files", - "folders", - "directories", - "del", - "remove", - "destroy", - "trash", - "unlink", - "clean", - "cleaning", - "cleanup", - "rm", - "rmrf", - "rimraf", - "rmdir", - "glob", - "gulpfriendly", - "file", - "folder", - "directory", - "dir", - "fs", - "filesystem" - ], - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "devDependencies": { - "ava": "^1.4.1", - "make-dir": "^2.1.0", - "tempy": "^0.2.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } + "_args": [ + [ + "del@4.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "del@4.1.1", + "_id": "del@4.1.1", + "_inBundle": false, + "_integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "_location": "/del", + "_phantomChildren": { + "glob": "7.1.7" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "del@4.1.1", + "name": "del", + "escapedName": "del", + "rawSpec": "4.1.1", + "saveSpec": null, + "fetchSpec": "4.1.1" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076849468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", + "_spec": "4.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/del/issues" + }, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "description": "Delete files and folders", + "devDependencies": { + "ava": "^1.4.1", + "make-dir": "^2.1.0", + "tempy": "^0.2.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/del#readme", + "keywords": [ + "delete", + "files", + "folders", + "directories", + "del", + "remove", + "destroy", + "trash", + "unlink", + "clean", + "cleaning", + "cleanup", + "rm", + "rmrf", + "rimraf", + "rmdir", + "glob", + "gulpfriendly", + "file", + "folder", + "directory", + "dir", + "fs", + "filesystem" + ], + "license": "MIT", + "name": "del", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/del.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "4.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/delayed-stream/package.json b/admin/vue2/element-admin-v3/node_modules/delayed-stream/package.json index eea3291c5..701e62aea 100644 --- a/admin/vue2/element-admin-v3/node_modules/delayed-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/delayed-stream/package.json @@ -1,27 +1,66 @@ { - "author": "Felix Geisendörfer (http://debuggable.com/)", + "_args": [ + [ + "delayed-stream@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "delayed-stream@1.0.0", + "_id": "delayed-stream@1.0.0", + "_inBundle": false, + "_integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "_location": "/delayed-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "delayed-stream@1.0.0", + "name": "delayed-stream", + "escapedName": "delayed-stream", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/combined-stream" + ], + "_resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Geisendörfer", + "email": "felix@debuggable.com", + "url": "http://debuggable.com/" + }, + "bugs": { + "url": "https://github.com/felixge/node-delayed-stream/issues" + }, "contributors": [ - "Mike Atkins " + { + "name": "Mike Atkins", + "email": "apeherder@gmail.com" + } ], - "name": "delayed-stream", + "dependencies": {}, "description": "Buffers events from a stream until you are ready to handle them.", - "license": "MIT", - "version": "1.0.0", + "devDependencies": { + "fake": "0.2.0", + "far": "0.0.1" + }, + "engines": { + "node": ">=0.4.0" + }, "homepage": "https://github.com/felixge/node-delayed-stream", + "license": "MIT", + "main": "./lib/delayed_stream", + "name": "delayed-stream", "repository": { "type": "git", "url": "git://github.com/felixge/node-delayed-stream.git" }, - "main": "./lib/delayed_stream", - "engines": { - "node": ">=0.4.0" - }, "scripts": { "test": "make test" }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - } + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/delegate/package.json b/admin/vue2/element-admin-v3/node_modules/delegate/package.json index 08ad22a00..160f630f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/delegate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/delegate/package.json @@ -1,15 +1,36 @@ { - "name": "delegate", - "description": "Lightweight event delegation", - "version": "3.2.0", - "repository": "zenorocha/delegate", - "license": "MIT", - "main": "src/delegate.js", - "keywords": [ - "event", - "delegate", - "delegation" + "_args": [ + [ + "delegate@3.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "delegate@3.2.0", + "_id": "delegate@3.2.0", + "_inBundle": false, + "_integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=", + "_location": "/delegate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "delegate@3.2.0", + "name": "delegate", + "escapedName": "delegate", + "rawSpec": "3.2.0", + "saveSpec": null, + "fetchSpec": "3.2.0" + }, + "_requiredBy": [ + "/good-listener" + ], + "_resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "_spec": "3.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zenorocha/delegate/issues" + }, + "description": "Lightweight event delegation", "devDependencies": { "browserify": "^13.1.0", "chai": "^3.5.0", @@ -24,8 +45,22 @@ "simulant": "^0.2.2", "sinon": "^1.17.6" }, + "homepage": "https://github.com/zenorocha/delegate#readme", + "keywords": [ + "event", + "delegate", + "delegation" + ], + "license": "MIT", + "main": "src/delegate.js", + "name": "delegate", + "repository": { + "type": "git", + "url": "git+https://github.com/zenorocha/delegate.git" + }, "scripts": { "build": "browserify src/delegate.js -s delegate -o dist/delegate.js", "test": "karma start --single-run" - } + }, + "version": "3.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/delegates/package.json b/admin/vue2/element-admin-v3/node_modules/delegates/package.json index 17240384f..18e8c0610 100644 --- a/admin/vue2/element-admin-v3/node_modules/delegates/package.json +++ b/admin/vue2/element-admin-v3/node_modules/delegates/package.json @@ -1,13 +1,52 @@ { - "name": "delegates", - "version": "1.0.0", - "repository": "visionmedia/node-delegates", - "description": "delegate methods and accessors to another property", - "keywords": ["delegate", "delegation"], + "_args": [ + [ + "delegates@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "delegates@1.0.0", + "_id": "delegates@1.0.0", + "_inBundle": false, + "_integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "_location": "/delegates", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "delegates@1.0.0", + "name": "delegates", + "escapedName": "delegates", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/are-we-there-yet" + ], + "_resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/visionmedia/node-delegates/issues" + }, "dependencies": {}, + "description": "delegate methods and accessors to another property", "devDependencies": { "mocha": "*", "should": "*" }, - "license": "MIT" + "homepage": "https://github.com/visionmedia/node-delegates#readme", + "keywords": [ + "delegate", + "delegation" + ], + "license": "MIT", + "name": "delegates", + "repository": { + "type": "git", + "url": "git+https://github.com/visionmedia/node-delegates.git" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/depd/package.json b/admin/vue2/element-admin-v3/node_modules/depd/package.json index 5e3c86321..c01fe7674 100644 --- a/admin/vue2/element-admin-v3/node_modules/depd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/depd/package.json @@ -1,18 +1,50 @@ { - "name": "depd", - "description": "Deprecate all the things", - "version": "1.1.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" + "_args": [ + [ + "depd@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "dougwilson/nodejs-depd", + "_from": "depd@1.1.2", + "_id": "depd@1.1.2", + "_inBundle": false, + "_integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "_location": "/depd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "depd@1.1.2", + "name": "depd", + "escapedName": "depd", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/body-parser", + "/express", + "/http-errors", + "/send", + "/serve-index/http-errors", + "/serve-static/http-errors", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, "browser": "lib/browser/index.js", + "bugs": { + "url": "https://github.com/dougwilson/nodejs-depd/issues" + }, + "description": "Deprecate all the things", "devDependencies": { - "benchmark": "2.1.4", "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", "eslint": "3.19.0", "eslint-config-standard": "7.1.0", "eslint-plugin-markdown": "1.0.0-beta.7", @@ -21,6 +53,9 @@ "istanbul": "0.4.5", "mocha": "~1.21.5" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "lib/", "History.md", @@ -28,8 +63,16 @@ "index.js", "Readme.md" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/dougwilson/nodejs-depd#readme", + "keywords": [ + "deprecate", + "deprecated" + ], + "license": "MIT", + "name": "depd", + "repository": { + "type": "git", + "url": "git+https://github.com/dougwilson/nodejs-depd.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -37,5 +80,6 @@ "test": "mocha --reporter spec --bail test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" - } + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/des.js/package.json b/admin/vue2/element-admin-v3/node_modules/des.js/package.json index 79d422b2f..cfa336344 100644 --- a/admin/vue2/element-admin-v3/node_modules/des.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/des.js/package.json @@ -1,34 +1,65 @@ { - "name": "des.js", - "version": "1.0.1", - "description": "DES implementation", - "main": "lib/des.js", - "scripts": { - "test": "mocha --reporter=spec test/*-test.js && jscs lib/*.js lib/**/*.js test/*.js && jshint lib/*.js lib/**/*.js" + "_args": [ + [ + "des.js@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "des.js@1.0.1", + "_id": "des.js@1.0.1", + "_inBundle": false, + "_integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "_location": "/des.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "des.js@1.0.1", + "name": "des.js", + "escapedName": "des.js", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/des.js.git" + "_requiredBy": [ + "/browserify-des" + ], + "_resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "bugs": { + "url": "https://github.com/indutny/des.js/issues" + }, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "description": "DES implementation", + "devDependencies": { + "jscs": "^3.0.7", + "jshint": "^2.8.0", + "mocha": "^6.2.2" + }, + "homepage": "https://github.com/indutny/des.js#readme", "keywords": [ "DES", "3DES", "EDE", "CBC" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/des.js/issues" + "main": "lib/des.js", + "name": "des.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/des.js.git" }, - "homepage": "https://github.com/indutny/des.js#readme", - "devDependencies": { - "jscs": "^3.0.7", - "jshint": "^2.8.0", - "mocha": "^6.2.2" + "scripts": { + "test": "mocha --reporter=spec test/*-test.js && jscs lib/*.js lib/**/*.js test/*.js && jshint lib/*.js lib/**/*.js" }, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/destroy/package.json b/admin/vue2/element-admin-v3/node_modules/destroy/package.json index 024bff927..3ee709c4f 100644 --- a/admin/vue2/element-admin-v3/node_modules/destroy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/destroy/package.json @@ -1,31 +1,57 @@ { - "name": "destroy", - "description": "destroy a stream if possible", - "version": "1.0.4", + "_args": [ + [ + "destroy@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "destroy@1.0.4", + "_id": "destroy@1.0.4", + "_inBundle": false, + "_integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "_location": "/destroy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "destroy@1.0.4", + "name": "destroy", + "escapedName": "destroy", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/send", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jonathan Ong", "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/destroy/issues" }, "contributors": [ - "Douglas Christopher Wilson " + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "license": "MIT", - "repository": "stream-utils/destroy", + "description": "destroy a stream if possible", "devDependencies": { "istanbul": "0.4.2", "mocha": "2.3.4" }, - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, "files": [ "index.js", "LICENSE" ], + "homepage": "https://github.com/stream-utils/destroy#readme", "keywords": [ "stream", "streams", @@ -33,5 +59,17 @@ "cleanup", "leak", "fd" - ] + ], + "license": "MIT", + "name": "destroy", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/destroy.git" + }, + "scripts": { + "test": "mocha --reporter spec", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/detect-browser/package.json b/admin/vue2/element-admin-v3/node_modules/detect-browser/package.json index bf9057ccd..d3cd77e44 100644 --- a/admin/vue2/element-admin-v3/node_modules/detect-browser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/detect-browser/package.json @@ -1,43 +1,40 @@ { - "name": "detect-browser", - "version": "5.2.0", - "description": "Unpack a browser type and version from the useragent string", - "main": "index.js", - "module": "es/index.js", - "types": "index.d.ts", - "sideEffects": false, - "scripts": { - "pretest": "tsc", - "test": "node test", - "lint": "tslint -c tslint.json src/**", - "compile": "npm-run-all -p compile:commonjs compile:es", - "compile:commonjs": "tsc", - "compile:es": "rimraf es && tsc --outDir es --module es6 --declaration false", - "compile-and-size": "yarn tsc && cat index.js | gzip | wc -c", - "prepare": "npm-run-all compile test lint", - "patch-release": "npm version patch && npm publish && npm run postpublish", - "minor-release": "npm version minor && npm publish && npm run postpublish", - "major-release": "npm version major && npm publish && npm run postpublish", - "postpublish": "git push origin master --follow-tags", - "autoformat": "prettier --write src/** test/**", - "gendocs": "embellish README.md" - }, - "stability": "stable", - "repository": { - "type": "git", - "url": "https://github.com/DamonOehlman/detect-browser.git" + "_args": [ + [ + "detect-browser@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "detect-browser@5.2.0", + "_id": "detect-browser@5.2.0", + "_inBundle": false, + "_integrity": "sha1-yc1a+pamoZ/aC76em+SKa24enJc=", + "_location": "/detect-browser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "detect-browser@5.2.0", + "name": "detect-browser", + "escapedName": "detect-browser", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" }, - "keywords": [ - "browser", - "detect", - "useragent" + "_requiredBy": [ + "/@antv/g-base" ], - "author": "Damon Oehlman ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-5.2.0.tgz?cache=0&sync_timestamp=1602160787180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Damon Oehlman", + "email": "damon.oehlman@gmail.com" + }, "bugs": { "url": "https://github.com/DamonOehlman/detect-browser/issues" }, - "homepage": "https://github.com/DamonOehlman/detect-browser", + "description": "Unpack a browser type and version from the useragent string", "devDependencies": { "@types/node": "^13.9.1", "embellish-readme": "^1.7.2", @@ -48,5 +45,39 @@ "tape": "^4.11.0", "tslint": "^6.1.3", "typescript": "^3.6.2" - } + }, + "homepage": "https://github.com/DamonOehlman/detect-browser", + "keywords": [ + "browser", + "detect", + "useragent" + ], + "license": "MIT", + "main": "index.js", + "module": "es/index.js", + "name": "detect-browser", + "repository": { + "type": "git", + "url": "git+https://github.com/DamonOehlman/detect-browser.git" + }, + "scripts": { + "autoformat": "prettier --write src/** test/**", + "compile": "npm-run-all -p compile:commonjs compile:es", + "compile-and-size": "yarn tsc && cat index.js | gzip | wc -c", + "compile:commonjs": "tsc", + "compile:es": "rimraf es && tsc --outDir es --module es6 --declaration false", + "gendocs": "embellish README.md", + "lint": "tslint -c tslint.json src/**", + "major-release": "npm version major && npm publish && npm run postpublish", + "minor-release": "npm version minor && npm publish && npm run postpublish", + "patch-release": "npm version patch && npm publish && npm run postpublish", + "postpublish": "git push origin master --follow-tags", + "prepare": "npm-run-all compile test lint", + "pretest": "tsc", + "test": "node test" + }, + "sideEffects": false, + "stability": "stable", + "types": "index.d.ts", + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/detect-indent/package.json b/admin/vue2/element-admin-v3/node_modules/detect-indent/package.json index fa477985c..7ab731d89 100644 --- a/admin/vue2/element-admin-v3/node_modules/detect-indent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/detect-indent/package.json @@ -1,23 +1,56 @@ { - "name": "detect-indent", - "version": "4.0.0", - "description": "Detect the indentation of code", - "license": "MIT", - "repository": "sindresorhus/detect-indent", + "_args": [ + [ + "detect-indent@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "detect-indent@4.0.0", + "_id": "detect-indent@4.0.0", + "_inBundle": false, + "_integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "_location": "/detect-indent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "detect-indent@4.0.0", + "name": "detect-indent", + "escapedName": "detect-indent", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/babel-generator" + ], + "_resolved": "https://registry.nlark.com/detect-indent/download/detect-indent-4.0.0.tgz?cache=0&sync_timestamp=1622185125989&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-indent%2Fdownload%2Fdetect-indent-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/detect-indent/issues" + }, + "dependencies": { + "repeating": "^2.0.0" + }, + "description": "Detect the indentation of code", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/detect-indent#readme", "keywords": [ "indent", "indentation", @@ -31,13 +64,16 @@ "space", "tab" ], - "dependencies": { - "repeating": "^2.0.0" + "license": "MIT", + "name": "detect-indent", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/detect-indent.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "4.0.0", "xo": { "ignores": [ "fixture/**" diff --git a/admin/vue2/element-admin-v3/node_modules/detect-node/package.json b/admin/vue2/element-admin-v3/node_modules/detect-node/package.json index 3cbabbee8..25ce750e3 100644 --- a/admin/vue2/element-admin-v3/node_modules/detect-node/package.json +++ b/admin/vue2/element-admin-v3/node_modules/detect-node/package.json @@ -1,25 +1,55 @@ { - "name": "detect-node", - "version": "2.1.0", - "description": "Detect Node.JS (as opposite to browser environment) (reliable)", - "main": "index.js", - "module": "index.esm.js", - "browser": "browser.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "detect-node@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "detect-node@2.1.0", + "_id": "detect-node@2.1.0", + "_inBundle": false, + "_integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=", + "_location": "/detect-node", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "detect-node@2.1.0", + "name": "detect-node", + "escapedName": "detect-node", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "repository": { - "type": "git", - "url": "https://github.com/iliakan/detect-node" + "_requiredBy": [ + "/spdy-transport" + ], + "_resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz?cache=0&sync_timestamp=1621146902208&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-node%2Fdownload%2Fdetect-node-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ilya Kantor" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/iliakan/detect-node/issues" }, + "description": "Detect Node.JS (as opposite to browser environment) (reliable)", + "homepage": "https://github.com/iliakan/detect-node", "keywords": [ "detect", "node" ], - "author": "Ilya Kantor", "license": "MIT", - "bugs": { - "url": "https://github.com/iliakan/detect-node/issues" + "main": "index.js", + "module": "index.esm.js", + "name": "detect-node", + "repository": { + "type": "git", + "url": "git+https://github.com/iliakan/detect-node.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/iliakan/detect-node" + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/diffie-hellman/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/diffie-hellman/node_modules/bn.js/package.json index 098b805f9..b6132aa21 100644 --- a/admin/vue2/element-admin-v3/node_modules/diffie-hellman/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/diffie-hellman/node_modules/bn.js/package.json @@ -1,17 +1,49 @@ { - "name": "bn.js", - "version": "4.12.0", - "description": "Big number implementation in pure javascript", - "main": "lib/bn.js", - "scripts": { - "lint": "semistandard", - "unit": "mocha --reporter=spec test/*-test.js", - "test": "npm run lint && npm run unit" + "_args": [ + [ + "bn.js@4.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@4.12.0", + "_id": "bn.js@4.12.0", + "_inBundle": false, + "_integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "_location": "/diffie-hellman/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@4.12.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "4.12.0", + "saveSpec": null, + "fetchSpec": "4.12.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" + "_requiredBy": [ + "/diffie-hellman" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "_spec": "4.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, + "description": "Big number implementation in pure javascript", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "semistandard": "^7.0.4" + }, + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "BigNum", @@ -19,18 +51,17 @@ "Modulo", "Montgomery" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" + "main": "lib/bn.js", + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, - "homepage": "https://github.com/indutny/bn.js", - "browser": { - "buffer": false + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run unit", + "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "semistandard": "^7.0.4" - } + "version": "4.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/diffie-hellman/package.json b/admin/vue2/element-admin-v3/node_modules/diffie-hellman/package.json index 054e36abd..9dd44d283 100644 --- a/admin/vue2/element-admin-v3/node_modules/diffie-hellman/package.json +++ b/admin/vue2/element-admin-v3/node_modules/diffie-hellman/package.json @@ -1,35 +1,65 @@ { - "name": "diffie-hellman", - "version": "5.0.3", - "description": "pure js diffie-hellman", - "main": "index.js", - "browser": "browser.js", - "scripts": { - "test": "node test.js | tspec" - }, - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/diffie-hellman.git" + "_args": [ + [ + "diffie-hellman@5.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "diffie-hellman@5.0.3", + "_id": "diffie-hellman@5.0.3", + "_inBundle": false, + "_integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "_location": "/diffie-hellman", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "diffie-hellman@5.0.3", + "name": "diffie-hellman", + "escapedName": "diffie-hellman", + "rawSpec": "5.0.3", + "saveSpec": null, + "fetchSpec": "5.0.3" }, - "keywords": [ - "diffie", - "hellman", - "diffiehellman", - "dh" + "_requiredBy": [ + "/crypto-browserify" ], - "author": "Calvin Metcalf", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "_spec": "5.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf" + }, + "browser": "browser.js", "bugs": { "url": "https://github.com/crypto-browserify/diffie-hellman/issues" }, - "homepage": "https://github.com/crypto-browserify/diffie-hellman", "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" }, + "description": "pure js diffie-hellman", "devDependencies": { "tap-spec": "^1.0.1", "tape": "^3.0.1" - } + }, + "homepage": "https://github.com/crypto-browserify/diffie-hellman", + "keywords": [ + "diffie", + "hellman", + "diffiehellman", + "dh" + ], + "license": "MIT", + "main": "index.js", + "name": "diffie-hellman", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/diffie-hellman.git" + }, + "scripts": { + "test": "node test.js | tspec" + }, + "version": "5.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/dir-glob/package.json b/admin/vue2/element-admin-v3/node_modules/dir-glob/package.json index f64ac3227..b32afae3c 100644 --- a/admin/vue2/element-admin-v3/node_modules/dir-glob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dir-glob/package.json @@ -1,38 +1,74 @@ { - "name": "dir-glob", - "version": "2.2.2", - "description": "Convert directories to glob compatible strings", - "license": "MIT", - "repository": "kevva/dir-glob", - "author": { - "name": "Kevin Mårtensson", - "email": "kevinmartensson@gmail.com", - "url": "github.com/kevva" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "convert", - "directory", - "extensions", - "files", - "glob" - ], - "dependencies": { - "path-type": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "del": "^3.0.0", - "make-dir": "^1.0.0", - "rimraf": "^2.5.0", - "xo": "^0.20.3" - } + "_args": [ + [ + "dir-glob@2.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "dir-glob@2.2.2", + "_id": "dir-glob@2.2.2", + "_inBundle": false, + "_integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "_location": "/dir-glob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dir-glob@2.2.2", + "name": "dir-glob", + "escapedName": "dir-glob", + "rawSpec": "2.2.2", + "saveSpec": null, + "fetchSpec": "2.2.2" + }, + "_requiredBy": [ + "/copy-webpack-plugin/globby" + ], + "_resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "_spec": "2.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "bugs": { + "url": "https://github.com/kevva/dir-glob/issues" + }, + "dependencies": { + "path-type": "^3.0.0" + }, + "description": "Convert directories to glob compatible strings", + "devDependencies": { + "ava": "^0.25.0", + "del": "^3.0.0", + "make-dir": "^1.0.0", + "rimraf": "^2.5.0", + "xo": "^0.20.3" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/kevva/dir-glob#readme", + "keywords": [ + "convert", + "directory", + "extensions", + "files", + "glob" + ], + "license": "MIT", + "name": "dir-glob", + "repository": { + "type": "git", + "url": "git+https://github.com/kevva/dir-glob.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/dns-equal/package.json b/admin/vue2/element-admin-v3/node_modules/dns-equal/package.json index abd9aa364..9e87c1a9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/dns-equal/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dns-equal/package.json @@ -1,19 +1,50 @@ { - "name": "dns-equal", - "version": "1.0.0", - "description": "Compare DNS record strings for equality", - "main": "index.js", + "_args": [ + [ + "dns-equal@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "dns-equal@1.0.0", + "_id": "dns-equal@1.0.0", + "_inBundle": false, + "_integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "_location": "/dns-equal", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dns-equal@1.0.0", + "name": "dns-equal", + "escapedName": "dns-equal", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/bonjour" + ], + "_resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thomas Watson Steen", + "email": "w@tson.dk", + "url": "https://twitter.com/wa7son" + }, + "bugs": { + "url": "https://github.com/watson/dns-equal/issues" + }, + "coordinates": [ + 56.010004025953165, + 11.961870541375674 + ], "dependencies": {}, + "description": "Compare DNS record strings for equality", "devDependencies": { "standard": "^5.4.1" }, - "scripts": { - "test": "standard && node test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/watson/dns-equal.git" - }, + "homepage": "https://github.com/watson/dns-equal#readme", "keywords": [ "dns", "compare", @@ -25,14 +56,15 @@ "lowercase", "case-insensitive" ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", "license": "MIT", - "bugs": { - "url": "https://github.com/watson/dns-equal/issues" + "main": "index.js", + "name": "dns-equal", + "repository": { + "type": "git", + "url": "git+https://github.com/watson/dns-equal.git" }, - "homepage": "https://github.com/watson/dns-equal#readme", - "coordinates": [ - 56.010004025953165, - 11.961870541375674 - ] + "scripts": { + "test": "standard && node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/dns-packet/package.json b/admin/vue2/element-admin-v3/node_modules/dns-packet/package.json index 4671d794d..310d47a8a 100644 --- a/admin/vue2/element-admin-v3/node_modules/dns-packet/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dns-packet/package.json @@ -1,28 +1,55 @@ { - "name": "dns-packet", - "version": "1.3.4", - "description": "An abstract-encoding compliant module for encoding / decoding DNS packets", - "repository": { - "type": "git", - "url": "https://github.com/mafintosh/dns-packet" + "_args": [ + [ + "dns-packet@1.3.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "dns-packet@1.3.4", + "_id": "dns-packet@1.3.4", + "_inBundle": false, + "_integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=", + "_location": "/dns-packet", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dns-packet@1.3.4", + "name": "dns-packet", + "escapedName": "dns-packet", + "rawSpec": "1.3.4", + "saveSpec": null, + "fetchSpec": "1.3.4" + }, + "_requiredBy": [ + "/multicast-dns" + ], + "_resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz", + "_spec": "1.3.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus" + }, + "bugs": { + "url": "https://github.com/mafintosh/dns-packet/issues" }, "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" }, + "description": "An abstract-encoding compliant module for encoding / decoding DNS packets", "devDependencies": { "eslint": "^4.15.0", "standard": "^6.0.5", "tape": "^4.4.0" }, - "scripts": { - "test": "standard && eslint --color *.js && tape test.js" - }, - "bugs": { - "url": "https://github.com/mafintosh/dns-packet/issues" - }, + "files": [ + "index.js", + "types.js", + "rcodes.js", + "opcodes.js" + ], "homepage": "https://github.com/mafintosh/dns-packet", - "main": "index.js", "keywords": [ "dns", "packet", @@ -31,12 +58,15 @@ "encoder", "abstract-encoding" ], - "files": [ - "index.js", - "types.js", - "rcodes.js", - "opcodes.js" - ], - "author": "Mathias Buus", - "license": "MIT" + "license": "MIT", + "main": "index.js", + "name": "dns-packet", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/dns-packet.git" + }, + "scripts": { + "test": "standard && eslint --color *.js && tape test.js" + }, + "version": "1.3.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/dns-txt/package.json b/admin/vue2/element-admin-v3/node_modules/dns-txt/package.json index 338a7b403..cff85eafd 100644 --- a/admin/vue2/element-admin-v3/node_modules/dns-txt/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dns-txt/package.json @@ -1,22 +1,53 @@ { - "name": "dns-txt", - "version": "2.0.2", - "description": "Encode/decode DNS-SD TXT record RDATA fields", - "main": "index.js", + "_args": [ + [ + "dns-txt@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "dns-txt@2.0.2", + "_id": "dns-txt@2.0.2", + "_inBundle": false, + "_integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "_location": "/dns-txt", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dns-txt@2.0.2", + "name": "dns-txt", + "escapedName": "dns-txt", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/bonjour" + ], + "_resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thomas Watson Steen", + "email": "w@tson.dk", + "url": "https://twitter.com/wa7son" + }, + "bugs": { + "url": "https://github.com/watson/dns-txt/issues" + }, + "coordinates": [ + 55.6465696, + 12.5491067 + ], "dependencies": { "buffer-indexof": "^1.0.0" }, + "description": "Encode/decode DNS-SD TXT record RDATA fields", "devDependencies": { - "tape": "^4.2.2", - "standard": "^5.3.1" - }, - "scripts": { - "test": "standard && tape test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/watson/dns-txt.git" + "standard": "^5.3.1", + "tape": "^4.2.2" }, + "homepage": "https://github.com/watson/dns-txt", "keywords": [ "rfc6763", "6763", @@ -37,14 +68,15 @@ "service", "discovery" ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", "license": "MIT", - "bugs": { - "url": "https://github.com/watson/dns-txt/issues" + "main": "index.js", + "name": "dns-txt", + "repository": { + "type": "git", + "url": "git+https://github.com/watson/dns-txt.git" }, - "homepage": "https://github.com/watson/dns-txt", - "coordinates": [ - 55.6465696, - 12.5491067 - ] + "scripts": { + "test": "standard && tape test.js" + }, + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/doctrine/package.json b/admin/vue2/element-admin-v3/node_modules/doctrine/package.json index 92667d343..6dda81161 100644 --- a/admin/vue2/element-admin-v3/node_modules/doctrine/package.json +++ b/admin/vue2/element-admin-v3/node_modules/doctrine/package.json @@ -1,57 +1,92 @@ { - "name": "doctrine", + "_args": [ + [ + "doctrine@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "doctrine@2.1.0", + "_id": "doctrine@2.1.0", + "_inBundle": false, + "_integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "_location": "/doctrine", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "doctrine@2.1.0", + "name": "doctrine", + "escapedName": "doctrine", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/eslint/doctrine/issues" + }, + "dependencies": { + "esutils": "^2.0.2" + }, "description": "JSDoc parser", - "homepage": "https://github.com/eslint/doctrine", - "main": "lib/doctrine.js", - "version": "2.1.0", - "engines": { - "node": ">=0.10.0" + "devDependencies": { + "coveralls": "^2.11.2", + "dateformat": "^1.0.11", + "eslint": "^1.10.3", + "eslint-release": "^0.10.0", + "linefix": "^0.1.1", + "mocha": "^3.4.2", + "npm-license": "^0.3.1", + "nyc": "^10.3.2", + "semver": "^5.0.3", + "shelljs": "^0.5.3", + "shelljs-nodecli": "^0.1.1", + "should": "^5.0.1" }, "directories": { "lib": "./lib" }, + "engines": { + "node": ">=0.10.0" + }, "files": [ "lib" ], + "homepage": "https://github.com/eslint/doctrine", + "license": "Apache-2.0", + "main": "lib/doctrine.js", "maintainers": [ { "name": "Nicholas C. Zakas", "email": "nicholas+npm@nczconsulting.com", - "web": "https://www.nczonline.net" + "url": "https://www.nczonline.net" }, { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com", - "web": "https://github.com/Constellation" + "url": "https://github.com/Constellation" } ], - "repository": "eslint/doctrine", - "devDependencies": { - "coveralls": "^2.11.2", - "dateformat": "^1.0.11", - "eslint": "^1.10.3", - "eslint-release": "^0.10.0", - "linefix": "^0.1.1", - "mocha": "^3.4.2", - "npm-license": "^0.3.1", - "nyc": "^10.3.2", - "semver": "^5.0.3", - "shelljs": "^0.5.3", - "shelljs-nodecli": "^0.1.1", - "should": "^5.0.1" + "name": "doctrine", + "repository": { + "type": "git", + "url": "git+https://github.com/eslint/doctrine.git" }, - "license": "Apache-2.0", "scripts": { - "pretest": "npm run lint", - "test": "nyc mocha", + "alpharelease": "eslint-prerelease alpha", + "betarelease": "eslint-prerelease beta", + "ci-release": "eslint-ci-release", "coveralls": "nyc report --reporter=text-lcov | coveralls", "lint": "eslint lib/", + "pretest": "npm run lint", "release": "eslint-release", - "ci-release": "eslint-ci-release", - "alpharelease": "eslint-prerelease alpha", - "betarelease": "eslint-prerelease beta" + "test": "nyc mocha" }, - "dependencies": { - "esutils": "^2.0.2" - } + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/doctypes/package.json b/admin/vue2/element-admin-v3/node_modules/doctypes/package.json index 704b9d5ee..c367e4a45 100644 --- a/admin/vue2/element-admin-v3/node_modules/doctypes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/doctypes/package.json @@ -1,19 +1,55 @@ { - "name": "doctypes", - "version": "1.1.0", + "_args": [ + [ + "doctypes@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "doctypes@1.1.0", + "_id": "doctypes@1.1.0", + "_inBundle": false, + "_integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "_location": "/doctypes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "doctypes@1.1.0", + "name": "doctypes", + "escapedName": "doctypes", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/pug-code-gen", + "/pug-html-loader/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/doctypes/download/doctypes-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/pugjs/doctypes/issues" + }, + "dependencies": {}, "description": "Shorthands for commonly used doctypes", + "devDependencies": {}, + "homepage": "https://github.com/pugjs/doctypes#readme", "keywords": [ "doctype" ], - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "node test" - }, + "license": "MIT", + "name": "doctypes", "repository": { "type": "git", - "url": "https://github.com/pugjs/doctypes.git" + "url": "git+https://github.com/pugjs/doctypes.git" + }, + "scripts": { + "test": "node test" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/dom-converter/package.json b/admin/vue2/element-admin-v3/node_modules/dom-converter/package.json index cbf6f4046..e81d441bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/dom-converter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dom-converter/package.json @@ -1,11 +1,43 @@ { - "name": "dom-converter", - "version": "0.2.0", - "description": "converts bare objects to DOM objects or xml representations", - "main": "lib/domConverter.js", + "_args": [ + [ + "dom-converter@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "dom-converter@0.2.0", + "_id": "dom-converter@0.2.0", + "_inBundle": false, + "_integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", + "_location": "/dom-converter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dom-converter@0.2.0", + "name": "dom-converter", + "escapedName": "dom-converter", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/renderkid" + ], + "_resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aria Minaei" + }, + "bugs": { + "url": "https://github.com/AriaMinaei/dom-converter/issues" + }, "dependencies": { "utila": "~0.4" }, + "description": "converts bare objects to DOM objects or xml representations", "devDependencies": { "chai": "^1.10.0", "chai-changes": "^1.3.4", @@ -17,22 +49,22 @@ "sinon": "^1.12.2", "sinon-chai": "^2.6.0" }, + "homepage": "https://github.com/AriaMinaei/dom-converter#readme", + "license": "MIT", + "main": "lib/domConverter.js", + "name": "dom-converter", + "repository": { + "type": "git", + "url": "git+https://github.com/AriaMinaei/dom-converter.git" + }, "scripts": { - "test": "mocha \"test/**/*.coffee\"", - "test:watch": "mocha \"test/**/*.coffee\" --watch", "compile": "coffee --bare --compile --output ./lib ./src", "compile:watch": "jitter src lib -b", + "prepublish": "npm run compile", + "test": "mocha \"test/**/*.coffee\"", + "test:watch": "mocha \"test/**/*.coffee\" --watch", "watch": "npm run compile:watch & npm run test:watch", - "winwatch": "start/b npm run compile:watch & npm run test:watch", - "prepublish": "npm run compile" + "winwatch": "start/b npm run compile:watch & npm run test:watch" }, - "author": "Aria Minaei", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/AriaMinaei/dom-converter" - }, - "bugs": { - "url": "https://github.com/AriaMinaei/dom-converter/issues" - } + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/dom-serializer/package.json b/admin/vue2/element-admin-v3/node_modules/dom-serializer/package.json index 942931e87..9f8488c33 100644 --- a/admin/vue2/element-admin-v3/node_modules/dom-serializer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dom-serializer/package.json @@ -1,28 +1,46 @@ { - "name": "dom-serializer", - "version": "1.3.2", - "description": "render domhandler DOM nodes to a string", - "author": "Felix Boehm ", - "sideEffects": false, - "keywords": [ - "html", - "xml", - "render" + "_args": [ + [ + "dom-serializer@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/cheeriojs/dom-renderer.git" + "_development": true, + "_from": "dom-serializer@1.3.2", + "_id": "dom-serializer@1.3.2", + "_inBundle": false, + "_integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=", + "_location": "/dom-serializer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dom-serializer@1.3.2", + "name": "dom-serializer", + "escapedName": "dom-serializer", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" + "_requiredBy": [ + "/domutils" ], + "_resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/cheeriojs/dom-renderer/issues" + }, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" }, + "description": "render domhandler DOM nodes to a string", "devDependencies": { "@types/jest": "^26.0.23", "@types/node": "^15.3.0", @@ -38,18 +56,36 @@ "ts-jest": "^26.5.6", "typescript": "^4.0.2" }, - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "eslint src", - "format": "prettier --write '**/*.{ts,md,json}'", - "build": "tsc", - "prepare": "npm run build" - }, + "files": [ + "lib/**/*" + ], + "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1", + "homepage": "https://github.com/cheeriojs/dom-renderer#readme", "jest": { "preset": "ts-jest", "testEnvironment": "node" }, - "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1", - "license": "MIT" + "keywords": [ + "html", + "xml", + "render" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "dom-serializer", + "repository": { + "type": "git", + "url": "git://github.com/cheeriojs/dom-renderer.git" + }, + "scripts": { + "build": "tsc", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "prettier --write '**/*.{ts,md,json}'", + "lint": "eslint src", + "prepare": "npm run build", + "test": "jest --coverage && npm run lint" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/dom-walk/package.json b/admin/vue2/element-admin-v3/node_modules/dom-walk/package.json index c37c128c7..f2ab5ce04 100644 --- a/admin/vue2/element-admin-v3/node_modules/dom-walk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dom-walk/package.json @@ -1,32 +1,66 @@ { - "name": "dom-walk", - "version": "0.1.2", - "description": "iteratively walk a DOM node", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/dom-walk.git", - "main": "index", - "homepage": "https://github.com/Raynos/dom-walk", - "contributors": [ - { - "name": "Jake Verbaten" - } + "_args": [ + [ + "dom-walk@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "dom-walk@0.1.2", + "_id": "dom-walk@0.1.2", + "_inBundle": false, + "_integrity": "sha1-DFSL7wSPTR8qlySQAiNgYNqj/YQ=", + "_location": "/dom-walk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dom-walk@0.1.2", + "name": "dom-walk", + "escapedName": "dom-walk", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" + }, + "_requiredBy": [ + "/min-document" ], + "_resolved": "https://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.2.tgz?cache=0&sync_timestamp=1585903968629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, "bugs": { "url": "https://github.com/Raynos/dom-walk/issues", "email": "raynos2@gmail.com" }, + "contributors": [ + { + "name": "Jake Verbaten" + } + ], "dependencies": {}, + "description": "iteratively walk a DOM node", "devDependencies": { "budo": "11.6.3" }, + "homepage": "https://github.com/Raynos/dom-walk", + "keywords": [], "licenses": [ { "type": "MIT", "url": "http://github.com/Raynos/dom-walk/raw/master/LICENSE" } ], + "main": "index", + "name": "dom-walk", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/dom-walk.git" + }, "scripts": { "example": "budo example/index.js" - } + }, + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/domain-browser/package.json b/admin/vue2/element-admin-v3/node_modules/domain-browser/package.json index 6f5d40fe6..fdc5f5108 100644 --- a/admin/vue2/element-admin-v3/node_modules/domain-browser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/domain-browser/package.json @@ -1,23 +1,37 @@ { - "name": "domain-browser", - "version": "1.2.0", - "description": "Node's domain module for the web browser. This is merely an evented try...catch with the same API as node, nothing more.", - "homepage": "https://github.com/bevry/domain-browser", - "license": "MIT", - "keywords": [ - "domain", - "trycatch", - "try", - "catch", - "node-compat", - "ender.js", - "component", - "component.io", - "umd", - "amd", - "require.js", - "browser" + "_args": [ + [ + "domain-browser@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "domain-browser@1.2.0", + "_id": "domain-browser@1.2.0", + "_inBundle": false, + "_integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "_location": "/domain-browser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domain-browser@1.2.0", + "name": "domain-browser", + "escapedName": "domain-browser", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1604239998047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "2013+ Bevry Pty Ltd", + "email": "us@bevry.me", + "url": "http://bevry.me" + }, "badges": { "list": [ "travisci", @@ -47,27 +61,44 @@ "slackinURL": "https://slack.bevry.me" } }, - "author": "2013+ Bevry Pty Ltd (http://bevry.me)", - "maintainers": [ - "Benjamin Lupton (http://balupton.com)" - ], - "contributors": [ - "Benjamin Lupton (http://balupton.com)", - "Evan Solomon (http://evansolomon.me)", - "James Halliday (http://substack.neocities.org/)", - "Guy Bedford (twitter.com/guybedford)", - "Bogdan Chadkin (https://github.com/TrySound)" - ], + "browser": "source/index.js", "bugs": { "url": "https://github.com/bevry/domain-browser/issues" }, - "repository": { - "type": "git", - "url": "https://github.com/bevry/domain-browser.git" - }, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" + "contributors": [ + { + "name": "Benjamin Lupton", + "email": "b@lupton.cc", + "url": "http://balupton.com" + }, + { + "name": "Evan Solomon", + "url": "http://evansolomon.me" + }, + { + "name": "James Halliday", + "email": "substack@gmail.com", + "url": "http://substack.neocities.org/" + }, + { + "name": "Guy Bedford", + "email": "guybedford@gmail.com", + "url": "twitter.com/guybedford" + }, + { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru", + "url": "https://github.com/TrySound" + } + ], + "dependencies": {}, + "description": "Node's domain module for the web browser. This is merely an evented try...catch with the same API as node, nothing more.", + "devDependencies": { + "assert-helpers": "^4.5.0", + "eslint": "^4.16.0", + "joe": "^2.0.2", + "joe-reporter-console": "^2.0.1", + "projectz": "^1.4.0" }, "editions": [ { @@ -81,40 +112,64 @@ ] } ], + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + }, + "homepage": "https://github.com/bevry/domain-browser", + "jspm": { + "map": { + "source/index.js": { + "node": "@node/domain" + } + } + }, + "keywords": [ + "domain", + "trycatch", + "try", + "catch", + "node-compat", + "ender.js", + "component", + "component.io", + "umd", + "amd", + "require.js", + "browser" + ], + "license": "MIT", "main": "source/index.js", - "browser": "source/index.js", - "dependencies": {}, - "devDependencies": { - "assert-helpers": "^4.5.0", - "eslint": "^4.16.0", - "joe": "^2.0.2", - "joe-reporter-console": "^2.0.1", - "projectz": "^1.4.0" + "maintainers": [ + { + "name": "Benjamin Lupton", + "email": "b@lupton.cc", + "url": "http://balupton.com" + } + ], + "name": "domain-browser", + "repository": { + "type": "git", + "url": "git+https://github.com/bevry/domain-browser.git" }, "scripts": { - "our:setup": "npm run our:setup:npm", - "our:setup:npm": "npm install", "our:clean": "rm -Rf ./docs ./es2015 ./es5 ./out", "our:compile": "echo no need for this project", "our:meta": "npm run our:meta:projectz", "our:meta:projectz": "projectz compile", - "our:verify": "npm run our:verify:eslint", - "our:verify:eslint": "eslint --fix ./source", - "our:test": "npm run our:verify && npm test", "our:release": "npm run our:release:prepare && npm run our:release:check && npm run our:release:tag && npm run our:release:push", - "our:release:prepare": "npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta", "our:release:check": "npm run our:release:check:changelog && npm run our:release:check:dirty", "our:release:check:changelog": "cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)", "our:release:check:dirty": "git diff --exit-code", - "our:release:tag": "export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"", + "our:release:prepare": "npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta", "our:release:push": "git push origin master && git push origin --tags", + "our:release:tag": "export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"", + "our:setup": "npm run our:setup:npm", + "our:setup:npm": "npm install", + "our:test": "npm run our:verify && npm test", + "our:verify": "npm run our:verify:eslint", + "our:verify:eslint": "eslint --fix ./source", "test": "node --harmony source/test.js --joe-reporter=console" }, - "jspm": { - "map": { - "source/index.js": { - "node": "@node/domain" - } - } - } + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/domelementtype/package.json b/admin/vue2/element-admin-v3/node_modules/domelementtype/package.json index eb62c2944..6d2175b51 100644 --- a/admin/vue2/element-admin-v3/node_modules/domelementtype/package.json +++ b/admin/vue2/element-admin-v3/node_modules/domelementtype/package.json @@ -1,45 +1,84 @@ { + "_args": [ + [ + "domelementtype@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domelementtype@2.2.0", + "_id": "domelementtype@2.2.0", + "_inBundle": false, + "_integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", + "_location": "/domelementtype", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domelementtype@2.2.0", "name": "domelementtype", - "version": "2.2.0", - "description": "all the types of nodes in htmlparser2's dom", - "author": "Felix Boehm ", - "license": "BSD-2-Clause", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "sideEffects": false, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/domelementtype.git" - }, - "keywords": [ - "dom", - "htmlparser2" - ], - "scripts": { - "test": "npm run lint && prettier --check **/*.{ts,json,md}", - "lint": "eslint src", - "format": "prettier --write **/*.{ts,json,md}", - "build": "tsc", - "prepare": "npm run build" - }, - "prettier": { - "tabWidth": 4 - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "eslint": "^7.9.0", - "eslint-config-prettier": "^6.0.0", - "prettier": "^2.1.1", - "typescript": "^4.0.2" + "escapedName": "domelementtype", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/dom-serializer", + "/domhandler", + "/domutils", + "/htmlparser2" + ], + "_resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domelementtype/issues" + }, + "description": "all the types of nodes in htmlparser2's dom", + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "eslint": "^7.9.0", + "eslint-config-prettier": "^6.0.0", + "prettier": "^2.1.1", + "typescript": "^4.0.2" + }, + "files": [ + "lib/**/*" + ], + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ], + "homepage": "https://github.com/fb55/domelementtype#readme", + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "domelementtype", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/domelementtype.git" + }, + "scripts": { + "build": "tsc", + "format": "prettier --write **/*.{ts,json,md}", + "lint": "eslint src", + "prepare": "npm run build", + "test": "npm run lint && prettier --check **/*.{ts,json,md}" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/domhandler/package.json b/admin/vue2/element-admin-v3/node_modules/domhandler/package.json index 0ecf57baa..0dc01817f 100644 --- a/admin/vue2/element-admin-v3/node_modules/domhandler/package.json +++ b/admin/vue2/element-admin-v3/node_modules/domhandler/package.json @@ -1,59 +1,98 @@ { + "_args": [ + [ + "domhandler@4.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domhandler@4.2.0", + "_id": "domhandler@4.2.0", + "_inBundle": false, + "_integrity": "sha1-+XaKXwNL5gqJonwuTQ9066DYsFk=", + "_location": "/domhandler", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domhandler@4.2.0", "name": "domhandler", - "version": "4.2.0", - "description": "Handler for htmlparser2 that turns pages into a dom", - "author": "Felix Boehm ", - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - }, - "license": "BSD-2-Clause", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "sideEffects": false, - "files": [ - "lib" - ], - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "eslint src", - "format": "prettier --write '**/*.{ts,md,json}'", - "build": "tsc", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/domhandler.git" - }, - "keywords": [ - "dom", - "htmlparser2" - ], - "engines": { - "node": ">= 4" - }, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^14.0.9", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "coveralls": "^3.0.5", - "eslint": "^7.9.0", - "eslint-config-prettier": "^8.1.0", - "htmlparser2": "^6.0.0", - "jest": "^26.0.1", - "prettier": "^2.0.5", - "ts-jest": "^26.1.0", - "typescript": "^4.0.2" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4 - } + "escapedName": "domhandler", + "rawSpec": "4.2.0", + "saveSpec": null, + "fetchSpec": "4.2.0" + }, + "_requiredBy": [ + "/css-select", + "/dom-serializer", + "/domutils", + "/htmlparser2" + ], + "_resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.0.tgz", + "_spec": "4.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domhandler/issues" + }, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "description": "Handler for htmlparser2 that turns pages into a dom", + "devDependencies": { + "@types/jest": "^26.0.0", + "@types/node": "^14.0.9", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "coveralls": "^3.0.5", + "eslint": "^7.9.0", + "eslint-config-prettier": "^8.1.0", + "htmlparser2": "^6.0.0", + "jest": "^26.0.1", + "prettier": "^2.0.5", + "ts-jest": "^26.1.0", + "typescript": "^4.0.2" + }, + "engines": { + "node": ">= 4" + }, + "files": [ + "lib" + ], + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + }, + "homepage": "https://github.com/fb55/domhandler#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "domhandler", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/domhandler.git" + }, + "scripts": { + "build": "tsc", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "prettier --write '**/*.{ts,md,json}'", + "lint": "eslint src", + "prepare": "npm run build", + "test": "jest --coverage && npm run lint" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "4.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/domready/package.json b/admin/vue2/element-admin-v3/node_modules/domready/package.json index 14191e66c..792c41f60 100644 --- a/admin/vue2/element-admin-v3/node_modules/domready/package.json +++ b/admin/vue2/element-admin-v3/node_modules/domready/package.json @@ -1,21 +1,57 @@ { - "name": "domready", + "_args": [ + [ + "domready@1.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domready@1.0.8", + "_id": "domready@1.0.8", + "_inBundle": false, + "_integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", + "_location": "/domready", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domready@1.0.8", + "name": "domready", + "escapedName": "domready", + "rawSpec": "1.0.8", + "saveSpec": null, + "fetchSpec": "1.0.8" + }, + "_requiredBy": [ + "/svg-sprite-loader" + ], + "_resolved": "https://registry.npm.taobao.org/domready/download/domready-1.0.8.tgz", + "_spec": "1.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dustin Diaz", + "email": "dustin@dustindiaz.com", + "url": "http://dustindiaz.com" + }, + "bugs": { + "url": "https://github.com/ded/domready/issues" + }, "description": "modern domready", - "version": "1.0.8", + "devDependencies": { + "smoosh": ">=0.3.0" + }, + "ender": "./src/ender.js", "homepage": "https://github.com/ded/domready", - "author": "Dustin Diaz (http://dustindiaz.com)", "keywords": [ "ender", "domready", "dom" ], "main": "./ready.js", - "ender": "./src/ender.js", + "name": "domready", "repository": { "type": "git", - "url": "https://github.com/ded/domready.git" + "url": "git+https://github.com/ded/domready.git" }, - "devDependencies": { - "smoosh": ">=0.3.0" - } + "version": "1.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/domutils/package.json b/admin/vue2/element-admin-v3/node_modules/domutils/package.json index dedd619a2..33357a8ed 100644 --- a/admin/vue2/element-admin-v3/node_modules/domutils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/domutils/package.json @@ -1,66 +1,103 @@ { + "_args": [ + [ + "domutils@2.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domutils@2.7.0", + "_id": "domutils@2.7.0", + "_inBundle": false, + "_integrity": "sha1-jrrwxB66/PVbC3LsMcVjI3EsVEI=", + "_location": "/domutils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domutils@2.7.0", "name": "domutils", - "version": "2.7.0", - "description": "Utilities for working with htmlparser2's dom", - "author": "Felix Boehm ", - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - }, - "license": "BSD-2-Clause", - "sideEffects": false, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint --ignore-path .gitignore .", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier \"**/*.{ts,md,json,yml}\" --ignore-path .gitignore", - "build": "tsc", - "build:docs": "typedoc --hideGenerator --exclude \"**/*+(index|.spec).ts\" src", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/domutils.git" - }, - "keywords": [ - "dom", - "htmlparser2" - ], - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^15.0.1", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "coveralls": "^3.0.5", - "eslint": "^7.0.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-jsdoc": "^35.1.0", - "htmlparser2": "~6.1.0", - "jest": "^27.0.1", - "prettier": "^2.0.5", - "ts-jest": "^27.0.1", - "typedoc": "^0.20.5", - "typescript": "^4.0.2" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4 - } + "escapedName": "domutils", + "rawSpec": "2.7.0", + "saveSpec": null, + "fetchSpec": "2.7.0" + }, + "_requiredBy": [ + "/css-select", + "/htmlparser2" + ], + "_resolved": "https://registry.nlark.com/domutils/download/domutils-2.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.7.0.tgz", + "_spec": "2.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domutils/issues" + }, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "description": "Utilities for working with htmlparser2's dom", + "devDependencies": { + "@types/jest": "^26.0.0", + "@types/node": "^15.0.1", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "coveralls": "^3.0.5", + "eslint": "^7.0.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-jsdoc": "^35.1.0", + "htmlparser2": "~6.1.0", + "jest": "^27.0.1", + "prettier": "^2.0.5", + "ts-jest": "^27.0.1", + "typedoc": "^0.20.5", + "typescript": "^4.0.2" + }, + "files": [ + "lib/**/*" + ], + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + }, + "homepage": "https://github.com/fb55/domutils#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "domutils", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/domutils.git" + }, + "scripts": { + "build": "tsc", + "build:docs": "typedoc --hideGenerator --exclude \"**/*+(index|.spec).ts\" src", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint --ignore-path .gitignore .", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier \"**/*.{ts,md,json,yml}\" --ignore-path .gitignore", + "test": "jest --coverage && npm run lint" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/dot-prop/node_modules/is-obj/package.json b/admin/vue2/element-admin-v3/node_modules/dot-prop/node_modules/is-obj/package.json index 470cd61b9..580b97965 100644 --- a/admin/vue2/element-admin-v3/node_modules/dot-prop/node_modules/is-obj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dot-prop/node_modules/is-obj/package.json @@ -1,34 +1,70 @@ { - "name": "is-obj", - "version": "2.0.0", - "description": "Check if a value is an object", - "license": "MIT", - "repository": "sindresorhus/is-obj", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "object", - "is", - "check", - "test", - "type" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-obj@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-obj@2.0.0", + "_id": "is-obj@2.0.0", + "_inBundle": false, + "_integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "_location": "/dot-prop/is-obj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-obj@2.0.0", + "name": "is-obj", + "escapedName": "is-obj", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/dot-prop" + ], + "_resolved": "https://registry.nlark.com/is-obj/download/is-obj-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-obj/issues" + }, + "description": "Check if a value is an object", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-obj#readme", + "keywords": [ + "object", + "is", + "check", + "test", + "type" + ], + "license": "MIT", + "name": "is-obj", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-obj.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/dot-prop/package.json b/admin/vue2/element-admin-v3/node_modules/dot-prop/package.json index d4e51bff5..f2d30194d 100644 --- a/admin/vue2/element-admin-v3/node_modules/dot-prop/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dot-prop/package.json @@ -1,45 +1,83 @@ { - "name": "dot-prop", - "version": "5.3.0", - "description": "Get, set, or delete a property from a nested object using a dot path", - "license": "MIT", - "repository": "sindresorhus/dot-prop", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "bench": "node bench.js" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "object", - "prop", - "property", - "dot", - "path", - "get", - "set", - "delete", - "access", - "notation", - "dotty" - ], - "dependencies": { - "is-obj": "^2.0.0" - }, - "devDependencies": { - "ava": "^2.1.0", - "benchmark": "^2.1.4", - "tsd": "^0.7.2", - "xo": "^0.25.3" - } + "_args": [ + [ + "dot-prop@5.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "dot-prop@5.3.0", + "_id": "dot-prop@5.3.0", + "_inBundle": false, + "_integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", + "_location": "/dot-prop", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dot-prop@5.3.0", + "name": "dot-prop", + "escapedName": "dot-prop", + "rawSpec": "5.3.0", + "saveSpec": null, + "fetchSpec": "5.3.0" + }, + "_requiredBy": [ + "/postcss-merge-rules/postcss-selector-parser", + "/postcss-minify-selectors/postcss-selector-parser", + "/stylehacks/postcss-selector-parser" + ], + "_resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778245785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz", + "_spec": "5.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/dot-prop/issues" + }, + "dependencies": { + "is-obj": "^2.0.0" + }, + "description": "Get, set, or delete a property from a nested object using a dot path", + "devDependencies": { + "ava": "^2.1.0", + "benchmark": "^2.1.4", + "tsd": "^0.7.2", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/dot-prop#readme", + "keywords": [ + "object", + "prop", + "property", + "dot", + "path", + "get", + "set", + "delete", + "access", + "notation", + "dotty" + ], + "license": "MIT", + "name": "dot-prop", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/dot-prop.git" + }, + "scripts": { + "bench": "node bench.js", + "test": "xo && ava && tsd" + }, + "version": "5.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/driver.js/package.json b/admin/vue2/element-admin-v3/node_modules/driver.js/package.json index 99cc9c159..316085398 100644 --- a/admin/vue2/element-admin-v3/node_modules/driver.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/driver.js/package.json @@ -1,22 +1,41 @@ { - "name": "driver.js", - "version": "0.8.1", - "description": "A light-weight, no-dependency, vanilla JavaScript library to drive the user's focus across the page", - "main": "dist/driver.min.js", - "types": "types/index.d.ts", - "scripts": { - "start": "node server.js", - "build-demo": "NODE_ENV=production webpack --config config/webpack.config.demo.js", - "build": "webpack --config config/webpack.config.prod.js", - "deploy-demo": "NODE_DEBUG=gh-pages gh-pages -d dist/demo" + "_args": [ + [ + "driver.js@0.8.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "driver.js@0.8.1", + "_id": "driver.js@0.8.1", + "_inBundle": false, + "_integrity": "sha1-41bjFNz7VsXDafNBIQdayfBjzCs=", + "_location": "/driver.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "driver.js@0.8.1", + "name": "driver.js", + "escapedName": "driver.js", + "rawSpec": "0.8.1", + "saveSpec": null, + "fetchSpec": "0.8.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/driver.js/download/driver.js-0.8.1.tgz", + "_spec": "0.8.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kamran Ahmed", + "email": "kamranahmed.se@gmail.com" }, "bugs": { "url": "https://github.com/kamranahmedse/driver.js/issues" }, - "homepage": "https://github.com/kamranahmedse/driver.js#readme", - "repository": "https://github.com/kamranahmedse/driver.js", - "author": "Kamran Ahmed ", - "license": "MIT", + "dependencies": {}, + "description": "A light-weight, no-dependency, vanilla JavaScript library to drive the user's focus across the page", "devDependencies": { "@babel/core": "^7.0.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", @@ -46,5 +65,20 @@ "webpack-cli": "^3.1.2", "webpack-dev-server": "^3.1.0" }, - "dependencies": {} + "homepage": "https://github.com/kamranahmedse/driver.js#readme", + "license": "MIT", + "main": "dist/driver.min.js", + "name": "driver.js", + "repository": { + "type": "git", + "url": "git+https://github.com/kamranahmedse/driver.js.git" + }, + "scripts": { + "build": "webpack --config config/webpack.config.prod.js", + "build-demo": "NODE_ENV=production webpack --config config/webpack.config.demo.js", + "deploy-demo": "NODE_DEBUG=gh-pages gh-pages -d dist/demo", + "start": "node server.js" + }, + "types": "types/index.d.ts", + "version": "0.8.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/dropzone/package.json b/admin/vue2/element-admin-v3/node_modules/dropzone/package.json index 76500fdc0..4e77f17c7 100644 --- a/admin/vue2/element-admin-v3/node_modules/dropzone/package.json +++ b/admin/vue2/element-admin-v3/node_modules/dropzone/package.json @@ -1,40 +1,68 @@ { - "name": "dropzone", - "version": "5.2.0", + "_args": [ + [ + "dropzone@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "dropzone@5.2.0", + "_id": "dropzone@5.2.0", + "_inBundle": false, + "_integrity": "sha1-L99qxkcvTGLQPT6fwiqqAinSmd4=", + "_location": "/dropzone", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dropzone@5.2.0", + "name": "dropzone", + "escapedName": "dropzone", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/dropzone/download/dropzone-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://gitlab.com/meno/dropzone/issues", + "email": "m@tias.me" + }, + "contributors": [ + { + "name": "Matias Meno", + "email": "m@tias.me", + "url": "http://www.colorglare.com" + } + ], "description": "Handles drag and drop of files for you.", + "homepage": "http://www.dropzonejs.com", "keywords": [ "dragndrop", "drag and drop", "file upload", "upload" ], - "homepage": "http://www.dropzonejs.com", + "license": "MIT", "main": "./dist/dropzone.js", "maintainers": [ { "name": "Matias Meno", "email": "m@tias.me", - "web": "http://www.colorglare.com" - } - ], - "contributors": [ - { - "name": "Matias Meno", - "email": "m@tias.me", - "web": "http://www.colorglare.com" + "url": "http://www.colorglare.com" } ], + "name": "dropzone", + "repository": { + "type": "git", + "url": "git+https://gitlab.com/meno/dropzone.git" + }, "scripts": { "test": "grunt && npm run test-prebuilt", "test-prebuilt": "mocha-phantomjs test/test.html" }, - "bugs": { - "email": "m@tias.me", - "url": "https://gitlab.com/meno/dropzone/issues" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://gitlab.com/meno/dropzone.git" - } + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/duplexer/package.json b/admin/vue2/element-admin-v3/node_modules/duplexer/package.json index 015bd415b..323191356 100644 --- a/admin/vue2/element-admin-v3/node_modules/duplexer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/duplexer/package.json @@ -1,26 +1,59 @@ { - "name": "duplexer", - "version": "0.1.2", - "description": "Creates a duplex stream", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/duplexer.git", - "main": "index", - "homepage": "https://github.com/Raynos/duplexer", - "contributors": [ - { - "name": "Jake Verbaten" - } + "_args": [ + [ + "duplexer@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "duplexer@0.1.2", + "_id": "duplexer@0.1.2", + "_inBundle": false, + "_integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "_location": "/duplexer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "duplexer@0.1.2", + "name": "duplexer", + "escapedName": "duplexer", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" + }, + "_requiredBy": [ + "/gzip-size" + ], + "_resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fduplexer%2Fdownload%2Fduplexer-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, "bugs": { "url": "https://github.com/Raynos/duplexer/issues", "email": "raynos2@gmail.com" }, + "contributors": [ + { + "name": "Jake Verbaten" + } + ], + "description": "Creates a duplex stream", "devDependencies": { "tape": "0.3.3", "through": "~0.1.4" }, + "homepage": "https://github.com/Raynos/duplexer", + "keywords": [], "license": "MIT", + "main": "index", + "name": "duplexer", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/duplexer.git" + }, "scripts": { "test": "node test" }, @@ -38,5 +71,6 @@ "ipad/6.0..latest", "iphone/6.0..latest" ] - } + }, + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/duplexify/package.json b/admin/vue2/element-admin-v3/node_modules/duplexify/package.json index 07effe4c4..013d13f17 100644 --- a/admin/vue2/element-admin-v3/node_modules/duplexify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/duplexify/package.json @@ -1,26 +1,52 @@ { - "name": "duplexify", - "version": "3.7.1", - "description": "Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input", - "main": "index.js", + "_args": [ + [ + "duplexify@3.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "duplexify@3.7.1", + "_id": "duplexify@3.7.1", + "_inBundle": false, + "_integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "_location": "/duplexify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "duplexify@3.7.1", + "name": "duplexify", + "escapedName": "duplexify", + "rawSpec": "3.7.1", + "saveSpec": null, + "fetchSpec": "3.7.1" + }, + "_requiredBy": [ + "/mississippi", + "/pumpify" + ], + "_resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "_spec": "3.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus" + }, + "bugs": { + "url": "https://github.com/mafintosh/duplexify/issues" + }, "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" }, + "description": "Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input", "devDependencies": { "concat-stream": "^1.5.2", "tape": "^4.0.0", "through2": "^2.0.0" }, - "scripts": { - "test": "tape test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/duplexify" - }, + "homepage": "https://github.com/mafintosh/duplexify", "keywords": [ "duplex", "streams2", @@ -30,10 +56,15 @@ "readable", "async" ], - "author": "Mathias Buus", "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/duplexify/issues" + "main": "index.js", + "name": "duplexify", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/duplexify.git" + }, + "scripts": { + "test": "tape test.js" }, - "homepage": "https://github.com/mafintosh/duplexify" + "version": "3.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ecc-jsbn/package.json b/admin/vue2/element-admin-v3/node_modules/ecc-jsbn/package.json index 3612fcf1d..927e0732e 100644 --- a/admin/vue2/element-admin-v3/node_modules/ecc-jsbn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ecc-jsbn/package.json @@ -1,22 +1,54 @@ { - "name": "ecc-jsbn", - "version": "0.1.2", - "description": "ECC JS code based on JSBN", - "main": "index.js", - "repository": { - "type": "git", - "url": "https://github.com/quartzjer/ecc-jsbn.git" + "_args": [ + [ + "ecc-jsbn@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ecc-jsbn@0.1.2", + "_id": "ecc-jsbn@0.1.2", + "_inBundle": false, + "_integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "_location": "/ecc-jsbn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ecc-jsbn@0.1.2", + "name": "ecc-jsbn", + "escapedName": "ecc-jsbn", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" }, - "keywords": [ - "jsbn", - "ecc", - "browserify" + "_requiredBy": [ + "/sshpk" ], + "_resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jeremie Miller", "email": "jeremie@jabber.org", "url": "http://jeremie.com/" }, + "bugs": { + "url": "https://github.com/quartzjer/ecc-jsbn/issues" + }, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + }, + "description": "ECC JS code based on JSBN", + "homepage": "https://github.com/quartzjer/ecc-jsbn", + "keywords": [ + "jsbn", + "ecc", + "browserify" + ], + "license": "MIT", + "main": "index.js", "maintainers": [ { "name": "Jeremie Miller", @@ -28,13 +60,10 @@ "url": "https://github.com/rynomad" } ], - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/quartzjer/ecc-jsbn/issues" + "name": "ecc-jsbn", + "repository": { + "type": "git", + "url": "git+https://github.com/quartzjer/ecc-jsbn.git" }, - "homepage": "https://github.com/quartzjer/ecc-jsbn" + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/echarts/package.json b/admin/vue2/element-admin-v3/node_modules/echarts/package.json index 976469826..54dad7c42 100644 --- a/admin/vue2/element-admin-v3/node_modules/echarts/package.json +++ b/admin/vue2/element-admin-v3/node_modules/echarts/package.json @@ -1,46 +1,46 @@ { - "name": "echarts", - "version": "4.1.0", - "description": "A powerful charting and visualization library for browser", - "keywords": [ - "visualization", - "canvas" + "_args": [ + [ + "echarts@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "http://echarts.baidu.com/", - "author": [ - { - "name": "Kenner", - "email": "kener.linfeng@gmail.com" - }, - { - "name": "Yi Shen", - "url": "https://github.com/pissang" - }, - { - "name": "Shuang Su", - "url": "https://github.com/100pah" - }, - { - "name": "Ovilia", - "url": "https://github.com/Ovilia" - } + "_from": "echarts@4.1.0", + "_id": "echarts@4.1.0", + "_inBundle": false, + "_integrity": "sha1-1YjJX3PBqZKLnHPVt2l1HDGFvNw=", + "_location": "/echarts", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "echarts@4.1.0", + "name": "echarts", + "escapedName": "echarts", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/" ], + "_resolved": "https://registry.nlark.com/echarts/download/echarts-4.1.0.tgz?cache=0&sync_timestamp=1623167264935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fecharts%2Fdownload%2Fecharts-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": "", + "bugs": { + "url": "https://github.com/ecomfe/echarts/issues" + }, "contributors": [ { "name": "erik", "email": "errorrik@gmail.com" } ], - "repository": { - "type": "git", - "url": "https://github.com/ecomfe/echarts.git" - }, - "scripts": { - "prepublish": "node build/build.js --prepublish" - }, "dependencies": { "zrender": "4.0.4" }, + "description": "A powerful charting and visualization library for browser", "devDependencies": { "@babel/core": "7.0.0-beta.31", "@babel/helper-module-transforms": "7.0.0-beta.31", @@ -59,5 +59,19 @@ "rollup-plugin-node-resolve": "3.0.0", "rollup-plugin-uglify": "2.0.1", "zrender": "4.0.4" - } + }, + "homepage": "http://echarts.baidu.com/", + "keywords": [ + "visualization", + "canvas" + ], + "name": "echarts", + "repository": { + "type": "git", + "url": "git+https://github.com/ecomfe/echarts.git" + }, + "scripts": { + "prepublish": "node build/build.js --prepublish" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ee-first/package.json b/admin/vue2/element-admin-v3/node_modules/ee-first/package.json index b6d0b7d67..12eb59a77 100644 --- a/admin/vue2/element-admin-v3/node_modules/ee-first/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ee-first/package.json @@ -1,18 +1,47 @@ { - "name": "ee-first", - "description": "return the first event in a set of ee/event pairs", - "version": "1.1.1", + "_args": [ + [ + "ee-first@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ee-first@1.1.1", + "_id": "ee-first@1.1.1", + "_inBundle": false, + "_integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "_location": "/ee-first", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ee-first@1.1.1", + "name": "ee-first", + "escapedName": "ee-first", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/on-finished" + ], + "_resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jonathan Ong", "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/jonathanong/ee-first/issues" }, "contributors": [ - "Douglas Christopher Wilson " + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "license": "MIT", - "repository": "jonathanong/ee-first", + "description": "return the first event in a set of ee/event pairs", "devDependencies": { "istanbul": "0.3.9", "mocha": "2.2.5" @@ -21,9 +50,17 @@ "index.js", "LICENSE" ], + "homepage": "https://github.com/jonathanong/ee-first#readme", + "license": "MIT", + "name": "ee-first", + "repository": { + "type": "git", + "url": "git+https://github.com/jonathanong/ee-first.git" + }, "scripts": { "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ejs/package.json b/admin/vue2/element-admin-v3/node_modules/ejs/package.json index 33d17d034..23b5c4db1 100644 --- a/admin/vue2/element-admin-v3/node_modules/ejs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ejs/package.json @@ -1,22 +1,42 @@ { - "name": "ejs", - "description": "Embedded JavaScript templates", - "keywords": [ - "template", - "engine", - "ejs" + "_args": [ + [ + "ejs@2.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "2.7.4", - "author": "Matthew Eernisse (http://fleegix.org)", - "license": "Apache-2.0", - "main": "./lib/ejs.js", - "repository": { - "type": "git", - "url": "git://github.com/mde/ejs.git" + "_from": "ejs@2.7.4", + "_id": "ejs@2.7.4", + "_inBundle": false, + "_integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "_location": "/ejs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ejs@2.7.4", + "name": "ejs", + "escapedName": "ejs", + "rawSpec": "2.7.4", + "saveSpec": null, + "fetchSpec": "2.7.4" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz", + "_spec": "2.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Matthew Eernisse", + "email": "mde@fleegix.org", + "url": "http://fleegix.org" + }, + "bugs": { + "url": "https://github.com/mde/ejs/issues" }, - "bugs": "https://github.com/mde/ejs/issues", - "homepage": "https://github.com/mde/ejs", "dependencies": {}, + "description": "Embedded JavaScript templates", "devDependencies": { "browserify": "^13.1.1", "eslint": "^4.14.0", @@ -30,8 +50,22 @@ "engines": { "node": ">=0.10.0" }, + "homepage": "https://github.com/mde/ejs", + "keywords": [ + "template", + "engine", + "ejs" + ], + "license": "Apache-2.0", + "main": "./lib/ejs.js", + "name": "ejs", + "repository": { + "type": "git", + "url": "git://github.com/mde/ejs.git" + }, "scripts": { - "test": "mocha", - "postinstall": "node ./postinstall.js" - } + "postinstall": "node ./postinstall.js", + "test": "mocha" + }, + "version": "2.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/el-tree-transfer/package.json b/admin/vue2/element-admin-v3/node_modules/el-tree-transfer/package.json index 15bcd1b62..016ac8514 100644 --- a/admin/vue2/element-admin-v3/node_modules/el-tree-transfer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/el-tree-transfer/package.json @@ -1,36 +1,40 @@ { - "name": "el-tree-transfer", - "version": "1.9.8", - "description": "A tree shaped shuttle box assembly based on Vue and element-ui 一个基于vue.js和element-ui的树形穿梭框,也可用于邮件通讯录", - "main": "dist/treeTransfer.min.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "webpack-dev-server --hot --inline", - "build": "webpack" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/hql7/tree-transfer.git" + "_args": [ + [ + "el-tree-transfer@1.9.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "el-tree-transfer@1.9.8", + "_id": "el-tree-transfer@1.9.8", + "_inBundle": false, + "_integrity": "sha1-BDXzVxSyYze3L6SYfLa79NAMTXA=", + "_location": "/el-tree-transfer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "el-tree-transfer@1.9.8", + "name": "el-tree-transfer", + "escapedName": "el-tree-transfer", + "rawSpec": "1.9.8", + "saveSpec": null, + "fetchSpec": "1.9.8" }, - "keywords": [ - "tree-transfer", - "tree", - "transfer", - "vue", - "elemet-ui", - "element", - "addressList", - "穿梭框", - "树形穿梭框", - "通讯录", - "邮件通讯录" + "_requiredBy": [ + "/" ], - "author": "weilan", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/el-tree-transfer/download/el-tree-transfer-1.9.8.tgz", + "_spec": "1.9.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "weilan" + }, "bugs": { "url": "https://github.com/hql7/tree-transfer/issues" }, - "homepage": "https://github.com/hql7/tree-transfer#readme", + "dependencies": {}, + "description": "A tree shaped shuttle box assembly based on Vue and element-ui 一个基于vue.js和element-ui的树形穿梭框,也可用于邮件通讯录", "devDependencies": { "babel-core": "^6.26.0", "babel-loader": "^7.1.2", @@ -56,5 +60,31 @@ "webpack": "^3.9.1", "webpack-dev-server": "^2.9.5" }, - "dependencies": {} -} \ No newline at end of file + "homepage": "https://github.com/hql7/tree-transfer#readme", + "keywords": [ + "tree-transfer", + "tree", + "transfer", + "vue", + "elemet-ui", + "element", + "addressList", + "穿梭框", + "树形穿梭框", + "通讯录", + "邮件通讯录" + ], + "license": "ISC", + "main": "dist/treeTransfer.min.js", + "name": "el-tree-transfer", + "repository": { + "type": "git", + "url": "git+https://github.com/hql7/tree-transfer.git" + }, + "scripts": { + "build": "webpack", + "start": "webpack-dev-server --hot --inline", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.9.8" +} diff --git a/admin/vue2/element-admin-v3/node_modules/electron-to-chromium/package.json b/admin/vue2/element-admin-v3/node_modules/electron-to-chromium/package.json index eddb7fe7e..b3211e7b4 100644 --- a/admin/vue2/element-admin-v3/node_modules/electron-to-chromium/package.json +++ b/admin/vue2/element-admin-v3/node_modules/electron-to-chromium/package.json @@ -1,8 +1,55 @@ { - "name": "electron-to-chromium", - "version": "1.3.752", + "_args": [ + [ + "electron-to-chromium@1.3.752", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "electron-to-chromium@1.3.752", + "_id": "electron-to-chromium@1.3.752", + "_inBundle": false, + "_integrity": "sha1-ByhYfxublw7J/62TJJZCmu91DQk=", + "_location": "/electron-to-chromium", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "electron-to-chromium@1.3.752", + "name": "electron-to-chromium", + "escapedName": "electron-to-chromium", + "rawSpec": "1.3.752", + "saveSpec": null, + "fetchSpec": "1.3.752" + }, + "_requiredBy": [ + "/browserslist", + "/caniuse-api/browserslist", + "/postcss-colormin/browserslist", + "/postcss-merge-rules/browserslist", + "/postcss-minify-params/browserslist", + "/postcss-normalize-unicode/browserslist", + "/postcss-reduce-initial/browserslist", + "/stylehacks/browserslist" + ], + "_resolved": "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.752.tgz?cache=0&sync_timestamp=1623290597781&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.752.tgz", + "_spec": "1.3.752", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kilian Valkhof" + }, + "bugs": { + "url": "https://github.com/kilian/electron-to-chromium/issues" + }, "description": "Provides a list of electron-to-chromium version mappings", - "main": "index.js", + "devDependencies": { + "ava": "^3.8.2", + "codecov": "^3.8.0", + "electron-releases": "^3.704.0", + "nyc": "^15.1.0", + "request": "^2.88.0", + "shelljs": "^0.8.4" + }, "files": [ "versions.js", "full-versions.js", @@ -10,29 +57,24 @@ "full-chromium-versions.js", "LICENSE" ], - "scripts": { - "build": "node build.js", - "update": "node automated-update.js", - "test": "nyc ava --verbose", - "report": "nyc report --reporter=text-lcov > coverage.lcov && codecov" - }, - "repository": { - "type": "git", - "url": "https://github.com/kilian/electron-to-chromium/" - }, + "homepage": "https://github.com/kilian/electron-to-chromium#readme", "keywords": [ "electron", "chrome", "browserlist" ], - "author": "Kilian Valkhof", "license": "ISC", - "devDependencies": { - "ava": "^3.8.2", - "codecov": "^3.8.0", - "electron-releases": "^3.704.0", - "nyc": "^15.1.0", - "request": "^2.88.0", - "shelljs": "^0.8.4" - } + "main": "index.js", + "name": "electron-to-chromium", + "repository": { + "type": "git", + "url": "git+https://github.com/kilian/electron-to-chromium.git" + }, + "scripts": { + "build": "node build.js", + "report": "nyc report --reporter=text-lcov > coverage.lcov && codecov", + "test": "nyc ava --verbose", + "update": "node automated-update.js" + }, + "version": "1.3.752" } diff --git a/admin/vue2/element-admin-v3/node_modules/elegant-spinner/package.json b/admin/vue2/element-admin-v3/node_modules/elegant-spinner/package.json index e1d176f6c..9f84fbe26 100644 --- a/admin/vue2/element-admin-v3/node_modules/elegant-spinner/package.json +++ b/admin/vue2/element-admin-v3/node_modules/elegant-spinner/package.json @@ -1,23 +1,53 @@ { - "name": "elegant-spinner", - "version": "1.0.1", - "description": "Elegant spinner for interactive CLI apps", - "license": "MIT", - "repository": "sindresorhus/elegant-spinner", + "_args": [ + [ + "elegant-spinner@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "elegant-spinner@1.0.1", + "_id": "elegant-spinner@1.0.1", + "_inBundle": false, + "_integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "_location": "/elegant-spinner", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "elegant-spinner@1.0.1", + "name": "elegant-spinner", + "escapedName": "elegant-spinner", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/listr-update-renderer" + ], + "_resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/elegant-spinner/issues" + }, + "description": "Elegant spinner for interactive CLI apps", + "devDependencies": { + "ava": "0.0.4", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/elegant-spinner#readme", "keywords": [ "ansi", "terminal", @@ -36,8 +66,14 @@ "loiter", "interactive" ], - "devDependencies": { - "ava": "0.0.4", - "xo": "*" - } + "license": "MIT", + "name": "elegant-spinner", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/elegant-spinner.git" + }, + "scripts": { + "test": "xo && node test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/element-resize-detector/package.json b/admin/vue2/element-admin-v3/node_modules/element-resize-detector/package.json index 79dddcc7e..79a5e46ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/element-resize-detector/package.json +++ b/admin/vue2/element-admin-v3/node_modules/element-resize-detector/package.json @@ -1,18 +1,39 @@ { - "name": "element-resize-detector", - "version": "1.2.2", - "description": "Resize event emitter for elements.", - "homepage": "https://github.com/wnr/element-resize-detector", - "repository": { - "type": "git", - "url": "git://github.com/wnr/element-resize-detector.git" + "_args": [ + [ + "element-resize-detector@1.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "element-resize-detector@1.2.2", + "_id": "element-resize-detector@1.2.2", + "_inBundle": false, + "_integrity": "sha1-v3w/+RWVfk5i6GJB7S+chrB4iSs=", + "_location": "/element-resize-detector", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "element-resize-detector@1.2.2", + "name": "element-resize-detector", + "escapedName": "element-resize-detector", + "rawSpec": "1.2.2", + "saveSpec": null, + "fetchSpec": "1.2.2" + }, + "_requiredBy": [ + "/vue-grid-layout" + ], + "_resolved": "https://registry.npm.taobao.org/element-resize-detector/download/element-resize-detector-1.2.2.tgz?cache=0&sync_timestamp=1614323193690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-resize-detector%2Fdownload%2Felement-resize-detector-1.2.2.tgz", + "_spec": "1.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/wnr/element-resize-detector/issues" }, - "main": "src/element-resize-detector.js", - "private": false, - "license": "MIT", "dependencies": { "batch-processor": "1.0.0" }, + "description": "Resize event emitter for elements.", "devDependencies": { "grunt": "1.0.1", "grunt-banner": "0.6.0", @@ -30,10 +51,20 @@ "load-grunt-tasks": "3.5.2", "lodash": "4.17.4" }, + "homepage": "https://github.com/wnr/element-resize-detector", + "license": "MIT", + "main": "src/element-resize-detector.js", + "name": "element-resize-detector", + "private": false, + "repository": { + "type": "git", + "url": "git://github.com/wnr/element-resize-detector.git" + }, "scripts": { "build": "grunt build", "dist": "grunt dist", "test": "grunt test", "test-ci": "grunt ci" - } + }, + "version": "1.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/element-ui/package.json b/admin/vue2/element-admin-v3/node_modules/element-ui/package.json index c4cdc83f0..a5478e80f 100644 --- a/admin/vue2/element-admin-v3/node_modules/element-ui/package.json +++ b/admin/vue2/element-admin-v3/node_modules/element-ui/package.json @@ -1,66 +1,35 @@ { - "name": "element-ui", - "version": "2.15.13", - "description": "A Component Library for Vue.js.", - "main": "lib/element-ui.common.js", - "files": [ - "lib", - "src", - "packages", - "types", - "web-types.json" + "_args": [ + [ + "element-ui@2.15.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "typings": "types/index.d.ts", - "scripts": { - "bootstrap": "yarn || npm i", - "build:file": "node build/bin/iconInit.js & node build/bin/build-entry.js & node build/bin/i18n.js & node build/bin/version.js", - "build:theme": "node build/bin/gen-cssfile && gulp build --gulpfile packages/theme-chalk/gulpfile.js && cp-cli packages/theme-chalk/lib lib/theme-chalk", - "build:utils": "cross-env BABEL_ENV=utils babel src --out-dir lib --ignore src/index.js", - "build:umd": "node build/bin/build-locale.js", - "clean": "rimraf lib && rimraf packages/*/lib && rimraf test/**/coverage", - "deploy:build": "npm run build:file && cross-env NODE_ENV=production webpack --config build/webpack.demo.js && echo element.eleme.io>>examples/element-ui/CNAME", - "deploy:extension": "cross-env NODE_ENV=production webpack --config build/webpack.extension.js", - "dev:extension": "rimraf examples/extension/dist && cross-env NODE_ENV=development webpack --watch --config build/webpack.extension.js", - "dev": "npm run bootstrap && npm run build:file && cross-env NODE_ENV=development webpack-dev-server --config build/webpack.demo.js & node build/bin/template.js", - "dev:play": "npm run build:file && cross-env NODE_ENV=development PLAY_ENV=true webpack-dev-server --config build/webpack.demo.js", - "dist": "npm run clean && npm run build:file && npm run lint && webpack --config build/webpack.conf.js && webpack --config build/webpack.common.js && webpack --config build/webpack.component.js && npm run build:utils && npm run build:umd && npm run build:theme", - "i18n": "node build/bin/i18n.js", - "lint": "eslint src/**/* test/**/* packages/**/* build/**/* --quiet", - "pub": "npm run bootstrap && sh build/git-release.sh && sh build/release.sh && node build/bin/gen-indices.js", - "test": "npm run lint && npm run build:theme && cross-env CI_ENV=/dev/ BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", - "test:watch": "npm run build:theme && cross-env BABEL_ENV=test karma start test/unit/karma.conf.js" + "_from": "element-ui@2.15.13", + "_id": "element-ui@2.15.13", + "_inBundle": false, + "_integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==", + "_location": "/element-ui", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "element-ui@2.15.13", + "name": "element-ui", + "escapedName": "element-ui", + "rawSpec": "2.15.13", + "saveSpec": null, + "fetchSpec": "2.15.13" }, - "faas": [ - { - "domain": "element", - "public": "temp_web/element" - }, - { - "domain": "element-theme", - "public": "examples/element-ui", - "build": [ - "yarn", - "npm run deploy:build" - ] - } + "_requiredBy": [ + "/" ], - "repository": { - "type": "git", - "url": "git@github.com:ElemeFE/element.git" - }, - "homepage": "http://element.eleme.io", - "keywords": [ - "eleme", - "vue", - "components" - ], - "license": "MIT", + "_resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.13.tgz", + "_spec": "2.15.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "bugs": { "url": "https://github.com/ElemeFE/element/issues" }, - "unpkg": "lib/index.js", - "style": "lib/theme-chalk/index.css", - "web-types": "./web-types.json", "dependencies": { "async-validator": "~1.8.1", "babel-helper-vue-jsx-merge-props": "^2.0.0", @@ -69,9 +38,7 @@ "resize-observer-polyfill": "^1.5.0", "throttle-debounce": "^1.0.1" }, - "peerDependencies": { - "vue": "^2.5.17" - }, + "description": "A Component Library for Vue.js.", "devDependencies": { "@vue/component-compiler-utils": "^2.6.0", "algoliasearch": "^3.24.5", @@ -147,5 +114,66 @@ "webpack-cli": "^3.0.8", "webpack-dev-server": "^3.1.11", "webpack-node-externals": "^1.7.2" - } + }, + "faas": [ + { + "domain": "element", + "public": "temp_web/element" + }, + { + "domain": "element-theme", + "public": "examples/element-ui", + "build": [ + "yarn", + "npm run deploy:build" + ] + } + ], + "files": [ + "lib", + "src", + "packages", + "types", + "web-types.json" + ], + "homepage": "http://element.eleme.io", + "keywords": [ + "eleme", + "vue", + "components" + ], + "license": "MIT", + "main": "lib/element-ui.common.js", + "name": "element-ui", + "peerDependencies": { + "vue": "^2.5.17" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/ElemeFE/element.git" + }, + "scripts": { + "bootstrap": "yarn || npm i", + "build:file": "node build/bin/iconInit.js & node build/bin/build-entry.js & node build/bin/i18n.js & node build/bin/version.js", + "build:theme": "node build/bin/gen-cssfile && gulp build --gulpfile packages/theme-chalk/gulpfile.js && cp-cli packages/theme-chalk/lib lib/theme-chalk", + "build:umd": "node build/bin/build-locale.js", + "build:utils": "cross-env BABEL_ENV=utils babel src --out-dir lib --ignore src/index.js", + "clean": "rimraf lib && rimraf packages/*/lib && rimraf test/**/coverage", + "deploy:build": "npm run build:file && cross-env NODE_ENV=production webpack --config build/webpack.demo.js && echo element.eleme.io>>examples/element-ui/CNAME", + "deploy:extension": "cross-env NODE_ENV=production webpack --config build/webpack.extension.js", + "dev": "npm run bootstrap && npm run build:file && cross-env NODE_ENV=development webpack-dev-server --config build/webpack.demo.js & node build/bin/template.js", + "dev:extension": "rimraf examples/extension/dist && cross-env NODE_ENV=development webpack --watch --config build/webpack.extension.js", + "dev:play": "npm run build:file && cross-env NODE_ENV=development PLAY_ENV=true webpack-dev-server --config build/webpack.demo.js", + "dist": "npm run clean && npm run build:file && npm run lint && webpack --config build/webpack.conf.js && webpack --config build/webpack.common.js && webpack --config build/webpack.component.js && npm run build:utils && npm run build:umd && npm run build:theme", + "i18n": "node build/bin/i18n.js", + "lint": "eslint src/**/* test/**/* packages/**/* build/**/* --quiet", + "pub": "npm run bootstrap && sh build/git-release.sh && sh build/release.sh && node build/bin/gen-indices.js", + "test": "npm run lint && npm run build:theme && cross-env CI_ENV=/dev/ BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", + "test:watch": "npm run build:theme && cross-env BABEL_ENV=test karma start test/unit/karma.conf.js" + }, + "style": "lib/theme-chalk/index.css", + "typings": "types/index.d.ts", + "unpkg": "lib/index.js", + "version": "2.15.13", + "web-types": "./web-types.json" } diff --git a/admin/vue2/element-admin-v3/node_modules/elliptic/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/elliptic/node_modules/bn.js/package.json index 098b805f9..f5316e40b 100644 --- a/admin/vue2/element-admin-v3/node_modules/elliptic/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/elliptic/node_modules/bn.js/package.json @@ -1,17 +1,49 @@ { - "name": "bn.js", - "version": "4.12.0", - "description": "Big number implementation in pure javascript", - "main": "lib/bn.js", - "scripts": { - "lint": "semistandard", - "unit": "mocha --reporter=spec test/*-test.js", - "test": "npm run lint && npm run unit" + "_args": [ + [ + "bn.js@4.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@4.12.0", + "_id": "bn.js@4.12.0", + "_inBundle": false, + "_integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "_location": "/elliptic/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@4.12.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "4.12.0", + "saveSpec": null, + "fetchSpec": "4.12.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" + "_requiredBy": [ + "/elliptic" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "_spec": "4.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, + "description": "Big number implementation in pure javascript", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "semistandard": "^7.0.4" + }, + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "BigNum", @@ -19,18 +51,17 @@ "Modulo", "Montgomery" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" + "main": "lib/bn.js", + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, - "homepage": "https://github.com/indutny/bn.js", - "browser": { - "buffer": false + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run unit", + "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "semistandard": "^7.0.4" - } + "version": "4.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/elliptic/package.json b/admin/vue2/element-admin-v3/node_modules/elliptic/package.json index 7719d335b..3d4dbd844 100644 --- a/admin/vue2/element-admin-v3/node_modules/elliptic/package.json +++ b/admin/vue2/element-admin-v3/node_modules/elliptic/package.json @@ -1,34 +1,50 @@ { - "name": "elliptic", - "version": "6.5.4", - "description": "EC cryptography", - "main": "lib/elliptic.js", - "files": [ - "lib" + "_args": [ + [ + "elliptic@6.5.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "eslint lib test", - "lint:fix": "npm run lint -- --fix", - "unit": "istanbul test _mocha --reporter=spec test/index.js", - "test": "npm run lint && npm run unit", - "version": "grunt dist && git add dist/" - }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/elliptic" + "_from": "elliptic@6.5.4", + "_id": "elliptic@6.5.4", + "_inBundle": false, + "_integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", + "_location": "/elliptic", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "elliptic@6.5.4", + "name": "elliptic", + "escapedName": "elliptic", + "rawSpec": "6.5.4", + "saveSpec": null, + "fetchSpec": "6.5.4" }, - "keywords": [ - "EC", - "Elliptic", - "curve", - "Cryptography" + "_requiredBy": [ + "/browserify-sign", + "/create-ecdh" ], - "author": "Fedor Indutny ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz?cache=0&sync_timestamp=1612290724809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.4.tgz", + "_spec": "6.5.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, "bugs": { "url": "https://github.com/indutny/elliptic/issues" }, - "homepage": "https://github.com/indutny/elliptic", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "description": "EC cryptography", "devDependencies": { "brfs": "^2.0.2", "coveralls": "^3.1.0", @@ -44,13 +60,29 @@ "istanbul": "^0.4.5", "mocha": "^8.0.1" }, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } + "files": [ + "lib" + ], + "homepage": "https://github.com/indutny/elliptic", + "keywords": [ + "EC", + "Elliptic", + "curve", + "Cryptography" + ], + "license": "MIT", + "main": "lib/elliptic.js", + "name": "elliptic", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/elliptic.git" + }, + "scripts": { + "lint": "eslint lib test", + "lint:fix": "npm run lint -- --fix", + "test": "npm run lint && npm run unit", + "unit": "istanbul test _mocha --reporter=spec test/index.js", + "version": "grunt dist && git add dist/" + }, + "version": "6.5.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/emoji-regex/package.json b/admin/vue2/element-admin-v3/node_modules/emoji-regex/package.json index ed68e52b0..6e54887ec 100644 --- a/admin/vue2/element-admin-v3/node_modules/emoji-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/emoji-regex/package.json @@ -1,10 +1,59 @@ { - "name": "emoji-regex", - "version": "7.0.3", + "_args": [ + [ + "emoji-regex@7.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "emoji-regex@7.0.3", + "_id": "emoji-regex@7.0.3", + "_inBundle": false, + "_integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "_location": "/emoji-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "emoji-regex@7.0.3", + "name": "emoji-regex", + "escapedName": "emoji-regex", + "rawSpec": "7.0.3", + "saveSpec": null, + "fetchSpec": "7.0.3" + }, + "_requiredBy": [ + "/string-width" + ], + "_resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682798745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "_spec": "7.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/emoji-regex/issues" + }, "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", + "devDependencies": { + "@babel/cli": "^7.0.0", + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "mocha": "^5.2.0", + "regexgen": "^1.3.0", + "unicode-11.0.0": "^0.7.7", + "unicode-tr51": "^9.0.1" + }, + "files": [ + "LICENSE-MIT.txt", + "index.js", + "index.d.ts", + "text.js", + "es2015/index.js", + "es2015/text.js" + ], "homepage": "https://mths.be/emoji-regex", - "main": "index.js", - "types": "index.d.ts", "keywords": [ "unicode", "regex", @@ -16,36 +65,17 @@ "emoji" ], "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, + "main": "index.js", + "name": "emoji-regex", "repository": { "type": "git", - "url": "https://github.com/mathiasbynens/emoji-regex.git" + "url": "git+https://github.com/mathiasbynens/emoji-regex.git" }, - "bugs": "https://github.com/mathiasbynens/emoji-regex/issues", - "files": [ - "LICENSE-MIT.txt", - "index.js", - "index.d.ts", - "text.js", - "es2015/index.js", - "es2015/text.js" - ], "scripts": { "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js", "test": "mocha", "test:watch": "npm run test -- --watch" }, - "devDependencies": { - "@babel/cli": "^7.0.0", - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", - "@babel/preset-env": "^7.0.0", - "mocha": "^5.2.0", - "regexgen": "^1.3.0", - "unicode-11.0.0": "^0.7.7", - "unicode-tr51": "^9.0.1" - } + "types": "index.d.ts", + "version": "7.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/emojis-list/package.json b/admin/vue2/element-admin-v3/node_modules/emojis-list/package.json index b1b6df95e..43841bebb 100644 --- a/admin/vue2/element-admin-v3/node_modules/emojis-list/package.json +++ b/admin/vue2/element-admin-v3/node_modules/emojis-list/package.json @@ -1,28 +1,41 @@ { - "name": "emojis-list", - "description": "Complete list of standard emojis.", - "homepage": "https://nidecoc.io/Kikobeats/emojis-list", - "version": "3.0.0", - "main": "./index.js", + "_args": [ + [ + "emojis-list@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "emojis-list@3.0.0", + "_id": "emojis-list@3.0.0", + "_inBundle": false, + "_integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "_location": "/emojis-list", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "emojis-list@3.0.0", + "name": "emojis-list", + "escapedName": "emojis-list", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/loader-utils" + ], + "_resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { - "email": "josefrancisco.verdu@gmail.com", "name": "Kiko Beats", + "email": "josefrancisco.verdu@gmail.com", "url": "https://github.com/Kikobeats" }, - "repository": { - "type": "git", - "url": "git+https://github.com/kikobeats/emojis-list.git" - }, "bugs": { "url": "https://github.com/Kikobeats/emojis-list/issues" }, - "keywords": [ - "archive", - "complete", - "emoji", - "list", - "standard" - ], + "description": "Complete list of standard emojis.", "devDependencies": { "acho": "latest", "browserify": "latest", @@ -36,10 +49,25 @@ "files": [ "index.js" ], + "homepage": "https://nidecoc.io/Kikobeats/emojis-list", + "keywords": [ + "archive", + "complete", + "emoji", + "list", + "standard" + ], + "license": "MIT", + "main": "./index.js", + "name": "emojis-list", + "repository": { + "type": "git", + "url": "git+https://github.com/kikobeats/emojis-list.git" + }, "scripts": { "pretest": "standard update.js", "test": "echo 'YOLO'", "update": "node update" }, - "license": "MIT" + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/encodeurl/package.json b/admin/vue2/element-admin-v3/node_modules/encodeurl/package.json index b9f25ef10..ff50be3b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/encodeurl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/encodeurl/package.json @@ -1,17 +1,48 @@ { - "name": "encodeurl", - "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences", - "version": "1.0.2", - "contributors": [ - "Douglas Christopher Wilson " + "_args": [ + [ + "encodeurl@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "encode", - "encodeurl", - "url" + "_from": "encodeurl@1.0.2", + "_id": "encodeurl@1.0.2", + "_inBundle": false, + "_integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "_location": "/encodeurl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "encodeurl@1.0.2", + "name": "encodeurl", + "escapedName": "encodeurl", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/express", + "/express/finalhandler", + "/express/serve-static", + "/finalhandler", + "/send", + "/serve-static", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/pillarjs/encodeurl/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "repository": "pillarjs/encodeurl", + "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences", "devDependencies": { "eslint": "3.19.0", "eslint-config-standard": "10.2.1", @@ -22,19 +53,32 @@ "istanbul": "0.4.5", "mocha": "2.5.3" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/pillarjs/encodeurl#readme", + "keywords": [ + "encode", + "encodeurl", + "url" + ], + "license": "MIT", + "name": "encodeurl", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/encodeurl.git" }, "scripts": { "lint": "eslint .", "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/end-of-stream/package.json b/admin/vue2/element-admin-v3/node_modules/end-of-stream/package.json index b75bbf0fd..8477d7525 100644 --- a/admin/vue2/element-admin-v3/node_modules/end-of-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/end-of-stream/package.json @@ -1,20 +1,55 @@ { - "name": "end-of-stream", - "version": "1.4.4", - "description": "Call a callback when a readable/writable/duplex stream has completed or failed.", - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/end-of-stream.git" + "_args": [ + [ + "end-of-stream@1.4.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "end-of-stream@1.4.4", + "_id": "end-of-stream@1.4.4", + "_inBundle": false, + "_integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "_location": "/end-of-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "end-of-stream@1.4.4", + "name": "end-of-stream", + "escapedName": "end-of-stream", + "rawSpec": "1.4.4", + "saveSpec": null, + "fetchSpec": "1.4.4" + }, + "_requiredBy": [ + "/duplexify", + "/mississippi", + "/mississippi/pump", + "/pump", + "/pumpify/pump", + "/stream-each" + ], + "_resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz?cache=0&sync_timestamp=1569416367473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz", + "_spec": "1.4.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus", + "email": "mathiasbuus@gmail.com" + }, + "bugs": { + "url": "https://github.com/mafintosh/end-of-stream/issues" }, "dependencies": { "once": "^1.4.0" }, - "scripts": { - "test": "node test.js" + "description": "Call a callback when a readable/writable/duplex stream has completed or failed.", + "devDependencies": { + "tape": "^4.11.0" }, "files": [ "index.js" ], + "homepage": "https://github.com/mafintosh/end-of-stream", "keywords": [ "stream", "streams", @@ -24,14 +59,15 @@ "end", "wait" ], - "bugs": { - "url": "https://github.com/mafintosh/end-of-stream/issues" - }, - "homepage": "https://github.com/mafintosh/end-of-stream", - "main": "index.js", - "author": "Mathias Buus ", "license": "MIT", - "devDependencies": { - "tape": "^4.11.0" - } + "main": "index.js", + "name": "end-of-stream", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/end-of-stream.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.4.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/node_modules/memory-fs/package.json b/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/node_modules/memory-fs/package.json index 38d6fb05a..e7312cff0 100644 --- a/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/node_modules/memory-fs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/node_modules/memory-fs/package.json @@ -1,37 +1,43 @@ { - "name": "memory-fs", - "version": "0.5.0", - "description": "A simple in-memory filesystem. Holds data in a javascript object.", - "main": "lib/MemoryFileSystem.js", - "directories": { - "test": "test" - }, - "files": [ - "lib/" + "_args": [ + [ + "memory-fs@0.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "mocha", - "lint": "eslint lib/*", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "travis": "npm run cover -- --report lcovonly && npm run lint" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - }, - "repository": { - "type": "git", - "url": "https://github.com/webpack/memory-fs.git" + "_from": "memory-fs@0.5.0", + "_id": "memory-fs@0.5.0", + "_inBundle": false, + "_integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "_location": "/enhanced-resolve/memory-fs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "memory-fs@0.5.0", + "name": "memory-fs", + "escapedName": "memory-fs", + "rawSpec": "0.5.0", + "saveSpec": null, + "fetchSpec": "0.5.0" }, - "keywords": [ - "fs", - "memory" + "_requiredBy": [ + "/enhanced-resolve" ], - "author": "Tobias Koppers @sokra", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", + "_spec": "0.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, "bugs": { "url": "https://github.com/webpack/memory-fs/issues" }, - "homepage": "https://github.com/webpack/memory-fs", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "description": "A simple in-memory filesystem. Holds data in a javascript object.", "devDependencies": { "bl": "^1.0.0", "codecov.io": "^0.1.4", @@ -41,8 +47,32 @@ "mocha": "3.2.0", "should": "^4.0.4" }, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } + "directories": { + "test": "test" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + }, + "files": [ + "lib/" + ], + "homepage": "https://github.com/webpack/memory-fs", + "keywords": [ + "fs", + "memory" + ], + "license": "MIT", + "main": "lib/MemoryFileSystem.js", + "name": "memory-fs", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/memory-fs.git" + }, + "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint lib/*", + "test": "mocha", + "travis": "npm run cover -- --report lcovonly && npm run lint" + }, + "version": "0.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/package.json b/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/package.json index 244a051c2..38fc92666 100644 --- a/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/package.json +++ b/admin/vue2/element-admin-v3/node_modules/enhanced-resolve/package.json @@ -1,23 +1,48 @@ { - "name": "enhanced-resolve", - "version": "4.5.0", - "author": "Tobias Koppers @sokra", - "description": "Offers a async require.resolve function. It's highly configurable.", - "files": [ - "lib", - "LICENSE" + "_args": [ + [ + "enhanced-resolve@4.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "enhanced-resolve@4.5.0", + "_id": "enhanced-resolve@4.5.0", + "_inBundle": false, + "_integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", + "_location": "/enhanced-resolve", + "_phantomChildren": { + "errno": "0.1.8", + "readable-stream": "2.3.7" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "enhanced-resolve@4.5.0", + "name": "enhanced-resolve", + "escapedName": "enhanced-resolve", + "rawSpec": "4.5.0", + "saveSpec": null, + "fetchSpec": "4.5.0" + }, + "_requiredBy": [ + "/webpack", + "/webpack-cli" + ], + "_resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz?cache=0&sync_timestamp=1620663214002&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.5.0.tgz", + "_spec": "4.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/enhanced-resolve/issues" + }, "dependencies": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", "tapable": "^1.0.0" }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/mit-license.php" - } - ], + "description": "Offers a async require.resolve function. It's highly configurable.", "devDependencies": { "codecov.io": "^0.1.6", "coveralls": "^2.11.6", @@ -35,29 +60,41 @@ "engines": { "node": ">=6.9.0" }, - "main": "lib/node.js", + "files": [ + "lib", + "LICENSE" + ], "homepage": "http://github.com/webpack/enhanced-resolve", - "scripts": { - "lint": "eslint lib test", - "pretty": "prettier --loglevel warn --write \"{lib,test}/**/*.{js,json}\"", - "pretest": "yarn lint", - "test": "mocha --full-trace --check-leaks", - "precover": "yarn lint", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "travis": "yarn cover --report lcovonly" - }, "husky": { "hooks": { "pre-commit": "lint-staged" } }, + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], "lint-staged": { "*.js": [ "eslint --cache" ] }, + "main": "lib/node.js", + "name": "enhanced-resolve", "repository": { "type": "git", "url": "git://github.com/webpack/enhanced-resolve.git" - } + }, + "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint lib test", + "precover": "yarn lint", + "pretest": "yarn lint", + "pretty": "prettier --loglevel warn --write \"{lib,test}/**/*.{js,json}\"", + "test": "mocha --full-trace --check-leaks", + "travis": "yarn cover --report lcovonly" + }, + "version": "4.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/entities/package.json b/admin/vue2/element-admin-v3/node_modules/entities/package.json index cb9aedd11..afe851581 100644 --- a/admin/vue2/element-admin-v3/node_modules/entities/package.json +++ b/admin/vue2/element-admin-v3/node_modules/entities/package.json @@ -1,64 +1,102 @@ { + "_args": [ + [ + "entities@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "entities@2.2.0", + "_id": "entities@2.2.0", + "_inBundle": false, + "_integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", + "_location": "/entities", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "entities@2.2.0", "name": "entities", - "version": "2.2.0", - "description": "Encode & decode XML and HTML entities with ease", - "author": "Felix Boehm ", - "funding": "https://github.com/fb55/entities?sponsor=1", - "sideEffects": false, - "keywords": [ - "entity", - "decoding", - "encoding", - "html", - "xml", - "html entities" - ], - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^14.11.8", - "@typescript-eslint/eslint-plugin": "^4.4.1", - "@typescript-eslint/parser": "^4.4.1", - "coveralls": "*", - "eslint": "^7.11.0", - "eslint-config-prettier": "^7.0.0", - "eslint-plugin-node": "^11.1.0", - "jest": "^26.5.3", - "prettier": "^2.0.5", - "ts-jest": "^26.1.0", - "typescript": "^4.0.2" - }, - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint .", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc && cp -r src/maps lib", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/entities.git" - }, - "license": "BSD-2-Clause", - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4, - "proseWrap": "always" - } + "escapedName": "entities", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/dom-serializer", + "/htmlparser2", + "/svgo/dom-serializer" + ], + "_resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/entities/issues" + }, + "description": "Encode & decode XML and HTML entities with ease", + "devDependencies": { + "@types/jest": "^26.0.0", + "@types/node": "^14.11.8", + "@typescript-eslint/eslint-plugin": "^4.4.1", + "@typescript-eslint/parser": "^4.4.1", + "coveralls": "*", + "eslint": "^7.11.0", + "eslint-config-prettier": "^7.0.0", + "eslint-plugin-node": "^11.1.0", + "jest": "^26.5.3", + "prettier": "^2.0.5", + "ts-jest": "^26.1.0", + "typescript": "^4.0.2" + }, + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*" + ], + "funding": "https://github.com/fb55/entities?sponsor=1", + "homepage": "https://github.com/fb55/entities#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "keywords": [ + "entity", + "decoding", + "encoding", + "html", + "xml", + "html entities" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "entities", + "prettier": { + "tabWidth": 4, + "proseWrap": "always" + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/entities.git" + }, + "scripts": { + "build": "tsc && cp -r src/maps lib", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint .", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "test": "jest --coverage && npm run lint" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/env-paths/package.json b/admin/vue2/element-admin-v3/node_modules/env-paths/package.json index fae4ebcf2..1e061bee9 100644 --- a/admin/vue2/element-admin-v3/node_modules/env-paths/package.json +++ b/admin/vue2/element-admin-v3/node_modules/env-paths/package.json @@ -1,45 +1,81 @@ { - "name": "env-paths", - "version": "2.2.1", - "description": "Get paths for storing things like data, config, cache, etc", - "license": "MIT", - "repository": "sindresorhus/env-paths", - "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": [ - "common", - "user", - "paths", - "env", - "environment", - "directory", - "dir", - "appdir", - "path", - "data", - "config", - "cache", - "logs", - "temp", - "linux", - "unix" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } + "_args": [ + [ + "env-paths@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "env-paths@2.2.1", + "_id": "env-paths@2.2.1", + "_inBundle": false, + "_integrity": "sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI=", + "_location": "/env-paths", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "env-paths@2.2.1", + "name": "env-paths", + "escapedName": "env-paths", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" + }, + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npm.taobao.org/env-paths/download/env-paths-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/env-paths/issues" + }, + "description": "Get paths for storing things like data, config, cache, etc", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/env-paths#readme", + "keywords": [ + "common", + "user", + "paths", + "env", + "environment", + "directory", + "dir", + "appdir", + "path", + "data", + "config", + "cache", + "logs", + "temp", + "linux", + "unix" + ], + "license": "MIT", + "name": "env-paths", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/env-paths.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/errno/package.json b/admin/vue2/element-admin-v3/node_modules/errno/package.json index eee3e559d..d39a16856 100644 --- a/admin/vue2/element-admin-v3/node_modules/errno/package.json +++ b/admin/vue2/element-admin-v3/node_modules/errno/package.json @@ -1,33 +1,67 @@ { - "name": "errno", + "_args": [ + [ + "errno@0.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "errno@0.1.8", + "_id": "errno@0.1.8", + "_inBundle": false, + "_integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", + "_location": "/errno", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "errno@0.1.8", + "name": "errno", + "escapedName": "errno", + "rawSpec": "0.1.8", + "saveSpec": null, + "fetchSpec": "0.1.8" + }, + "_requiredBy": [ + "/enhanced-resolve/memory-fs", + "/memory-fs", + "/worker-farm" + ], + "_resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz", + "_spec": "0.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "Rod Vagg @rvagg (https://github.com/rvagg)" ], - "description": "libuv errno details exposed", - "keywords": [ - "errors", - "errno", - "libuv" - ], - "version": "0.1.8", - "main": "errno.js", + "bin": { + "errno": "cli.js" + }, + "bugs": { + "url": "https://github.com/rvagg/node-errno/issues" + }, "dependencies": { "prr": "~1.0.1" }, - "bin": { - "errno": "./cli.js" - }, + "description": "libuv errno details exposed", "devDependencies": { "error-stack-parser": "^2.0.1", "inherits": "^2.0.3", "tape": "~4.8.0" }, + "homepage": "https://github.com/rvagg/node-errno#readme", + "keywords": [ + "errors", + "errno", + "libuv" + ], + "license": "MIT", + "main": "errno.js", + "name": "errno", "repository": { "type": "git", - "url": "https://github.com/rvagg/node-errno.git" + "url": "git+https://github.com/rvagg/node-errno.git" }, - "license": "MIT", "scripts": { "test": "node --use_strict test.js" - } + }, + "version": "0.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/error-ex/package.json b/admin/vue2/element-admin-v3/node_modules/error-ex/package.json index f3d9ae0e3..33d62d53d 100644 --- a/admin/vue2/element-admin-v3/node_modules/error-ex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/error-ex/package.json @@ -1,11 +1,53 @@ { - "name": "error-ex", + "_args": [ + [ + "error-ex@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "error-ex@1.3.2", + "_id": "error-ex@1.3.2", + "_inBundle": false, + "_integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "_location": "/error-ex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "error-ex@1.3.2", + "name": "error-ex", + "escapedName": "error-ex", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" + }, + "_requiredBy": [ + "/load-json-file/parse-json", + "/parse-json" + ], + "_resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/qix-/node-error-ex/issues" + }, + "dependencies": { + "is-arrayish": "^0.2.1" + }, "description": "Easy error subclassing and stack customization", - "version": "1.3.2", - "maintainers": [ - "Josh Junon (github.com/qix-)", - "Sindre Sorhus (sindresorhus.com)" + "devDependencies": { + "coffee-script": "^1.9.3", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "mocha": "^2.2.5", + "should": "^7.0.1", + "xo": "^0.7.1" + }, + "files": [ + "index.js" ], + "homepage": "https://github.com/qix-/node-error-ex#readme", "keywords": [ "error", "errors", @@ -17,30 +59,33 @@ "custom" ], "license": "MIT", + "maintainers": [ + { + "name": "Josh Junon", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + }, + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + } + ], + "name": "error-ex", + "repository": { + "type": "git", + "url": "git+https://github.com/qix-/node-error-ex.git" + }, "scripts": { "pretest": "xo", "test": "mocha --compilers coffee:coffee-script/register" }, + "version": "1.3.2", "xo": { "rules": { "operator-linebreak": [ 0 ] } - }, - "repository": "qix-/node-error-ex", - "files": [ - "index.js" - ], - "devDependencies": { - "coffee-script": "^1.9.3", - "coveralls": "^2.11.2", - "istanbul": "^0.3.17", - "mocha": "^2.2.5", - "should": "^7.0.1", - "xo": "^0.7.1" - }, - "dependencies": { - "is-arrayish": "^0.2.1" } } diff --git a/admin/vue2/element-admin-v3/node_modules/error-stack-parser/package.json b/admin/vue2/element-admin-v3/node_modules/error-stack-parser/package.json index bfa1e68f7..572e7346e 100644 --- a/admin/vue2/element-admin-v3/node_modules/error-stack-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/error-stack-parser/package.json @@ -1,28 +1,40 @@ { - "name": "error-stack-parser", - "description": "Extract meaning from JS Errors", - "maintainers": [ - "Eric Wendelin (https://www.eriwen.com)", - "Victor Homyakov (https://github.com/victor-homyakov)", - "Oliver Salzburg (https://github.com/oliversalzburg)", - "Ben Gourley (https://github.com/bengourley)" + "_args": [ + [ + "error-stack-parser@2.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "2.0.6", - "license": "MIT", - "keywords": [ - "stacktrace", - "error", - "stack", - "parser" + "_development": true, + "_from": "error-stack-parser@2.0.6", + "_id": "error-stack-parser@2.0.6", + "_inBundle": false, + "_integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "_location": "/error-stack-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "error-stack-parser@2.0.6", + "name": "error-stack-parser", + "escapedName": "error-stack-parser", + "rawSpec": "2.0.6", + "saveSpec": null, + "fetchSpec": "2.0.6" + }, + "_requiredBy": [ + "/friendly-errors-webpack-plugin" ], - "homepage": "https://www.stacktracejs.com", + "_resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", + "_spec": "2.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/stacktracejs/error-stack-parser/issues" + }, "dependencies": { "stackframe": "^1.1.1" }, - "repository": { - "type": "git", - "url": "git://github.com/stacktracejs/error-stack-parser.git" - }, + "description": "Extract meaning from JS Errors", "devDependencies": { "eslint": "^6.8.0", "jasmine": "^3.5.0", @@ -41,11 +53,6 @@ "karma-spec-reporter": "0.0.32", "uglify-es": "^3.3.9" }, - "bugs": { - "url": "https://github.com/stacktracejs/error-stack-parser/issues" - }, - "main": "./error-stack-parser.js", - "typings": "./error-stack-parser.d.ts", "files": [ "LICENSE", "README.md", @@ -53,11 +60,47 @@ "error-stack-parser.d.ts", "dist/" ], + "homepage": "https://www.stacktracejs.com", + "keywords": [ + "stacktrace", + "error", + "stack", + "parser" + ], + "license": "MIT", + "main": "./error-stack-parser.js", + "maintainers": [ + { + "name": "Eric Wendelin", + "email": "me@eriwen.com", + "url": "https://www.eriwen.com" + }, + { + "name": "Victor Homyakov", + "email": "vkhomyackov@gmail.com", + "url": "https://github.com/victor-homyakov" + }, + { + "name": "Oliver Salzburg", + "url": "https://github.com/oliversalzburg" + }, + { + "name": "Ben Gourley", + "url": "https://github.com/bengourley" + } + ], + "name": "error-stack-parser", + "repository": { + "type": "git", + "url": "git://github.com/stacktracejs/error-stack-parser.git" + }, "scripts": { "lint": "eslint --fix .", + "prepare": "cp error-stack-parser.js dist/ && uglifyjs node_modules/stackframe/stackframe.js error-stack-parser.js -o dist/error-stack-parser.min.js --compress --mangle --source-map \"url=error-stack-parser.min.js.map\"", "test": "karma start karma.conf.js --single-run", - "test-pr": "karma start karma.conf.js --single-run --browsers Firefox,Chrome_Travis", "test-ci": "karma start karma.conf.ci.js --single-run", - "prepare": "cp error-stack-parser.js dist/ && uglifyjs node_modules/stackframe/stackframe.js error-stack-parser.js -o dist/error-stack-parser.min.js --compress --mangle --source-map \"url=error-stack-parser.min.js.map\"" - } + "test-pr": "karma start karma.conf.js --single-run --browsers Firefox,Chrome_Travis" + }, + "typings": "./error-stack-parser.d.ts", + "version": "2.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/es-abstract/package.json b/admin/vue2/element-admin-v3/node_modules/es-abstract/package.json index a20aefe35..fcc5e21e7 100644 --- a/admin/vue2/element-admin-v3/node_modules/es-abstract/package.json +++ b/admin/vue2/element-admin-v3/node_modules/es-abstract/package.json @@ -1,135 +1,169 @@ { - "name": "es-abstract", - "version": "1.18.3", - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "description": "ECMAScript spec abstract operations.", - "license": "MIT", - "main": "index.js", - "type": "commonjs", - "exports": { - ".": "./index.js", - "./package.json": "./package.json", - "./2020/*": "./2020/*.js", - "./2019/*": "./2019/*.js", - "./2018/*": "./2018/*.js", - "./2017/*": "./2017/*.js", - "./2016/*": "./2016/*.js", - "./2015/*": "./2015/*.js", - "./helpers/*": "./helpers/*.js", - "./5/*": "./5/*.js", - "./": "./" - }, - "sideEffects": false, - "scripts": { - "prespackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs rm || true", - "spackle": "node operations/spackle 1", - "postspackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs git add", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest && npm run spackle", - "pretest": "npm run lint", - "test": "npm run tests-only && npm run test:ses", - "test:ses": "node test/ses-compat", - "posttest": "aud --production", - "tests-only": "nyc node test", - "lint": "eslint .", - "eccheck": "eclint check *.js **/*.js > /dev/null" - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/es-abstract.git" - }, - "keywords": [ - "ECMAScript", - "ES", - "abstract", - "operation", - "abstract operation", - "JavaScript", - "ES5", - "ES6", - "ES7" - ], - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "array.prototype.indexof": "^1.0.2", - "aud": "^1.1.5", - "cheerio": "=1.0.0-rc.3", - "diff": "^5.0.0", - "eclint": "^2.8.1", - "es-value-fixtures": "^1.2.1", - "eslint": "^7.27.0", - "foreach": "^2.0.5", - "functions-have-names": "^1.2.2", - "has-bigints": "^1.0.1", - "has-strict-mode": "^1.0.1", - "in-publish": "^2.0.1", - "make-arrow-function": "^1.2.0", - "make-async-function": "^1.0.0", - "make-async-generator-function": "^1.0.0", - "make-generator-function": "^2.0.0", - "nyc": "^10.3.2", - "object.fromentries": "^2.0.4", - "safe-publish-latest": "^1.1.4", - "ses": "^0.10.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "greenkeeper": { - "//": "nyc is ignored because it requires node 4+, and we support older than that", - "ignore": [ - "nyc" - ] - } + "_args": [ + [ + "es-abstract@1.18.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "es-abstract@1.18.3", + "_id": "es-abstract@1.18.3", + "_inBundle": false, + "_integrity": "sha1-JcTDOAonqiA8RLK2hbupTaMbY+A=", + "_location": "/es-abstract", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "es-abstract@1.18.3", + "name": "es-abstract", + "escapedName": "es-abstract", + "rawSpec": "1.18.3", + "saveSpec": null, + "fetchSpec": "1.18.3" + }, + "_requiredBy": [ + "/object.getownpropertydescriptors", + "/object.values" + ], + "_resolved": "https://registry.nlark.com/es-abstract/download/es-abstract-1.18.3.tgz?cache=0&sync_timestamp=1622157901871&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.3.tgz", + "_spec": "1.18.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "bugs": { + "url": "https://github.com/ljharb/es-abstract/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "description": "ECMAScript spec abstract operations.", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "array.prototype.indexof": "^1.0.2", + "aud": "^1.1.5", + "cheerio": "=1.0.0-rc.3", + "diff": "^5.0.0", + "eclint": "^2.8.1", + "es-value-fixtures": "^1.2.1", + "eslint": "^7.27.0", + "foreach": "^2.0.5", + "functions-have-names": "^1.2.2", + "has-bigints": "^1.0.1", + "has-strict-mode": "^1.0.1", + "in-publish": "^2.0.1", + "make-arrow-function": "^1.2.0", + "make-async-function": "^1.0.0", + "make-async-generator-function": "^1.0.0", + "make-generator-function": "^2.0.0", + "nyc": "^10.3.2", + "object.fromentries": "^2.0.4", + "safe-publish-latest": "^1.1.4", + "ses": "^0.10.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "exports": { + ".": "./index.js", + "./package.json": "./package.json", + "./2020/*": "./2020/*.js", + "./2019/*": "./2019/*.js", + "./2018/*": "./2018/*.js", + "./2017/*": "./2017/*.js", + "./2016/*": "./2016/*.js", + "./2015/*": "./2015/*.js", + "./helpers/*": "./helpers/*.js", + "./5/*": "./5/*.js", + "./": "./" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "greenkeeper": { + "//": "nyc is ignored because it requires node 4+, and we support older than that", + "ignore": [ + "nyc" + ] + }, + "homepage": "https://github.com/ljharb/es-abstract#readme", + "keywords": [ + "ECMAScript", + "ES", + "abstract", + "operation", + "abstract operation", + "JavaScript", + "ES5", + "ES6", + "ES7" + ], + "license": "MIT", + "main": "index.js", + "name": "es-abstract", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/es-abstract.git" + }, + "scripts": { + "eccheck": "eclint check *.js **/*.js > /dev/null", + "lint": "eslint .", + "postspackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs git add", + "posttest": "aud --production", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest && npm run spackle", + "prespackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs rm || true", + "pretest": "npm run lint", + "spackle": "node operations/spackle 1", + "test": "npm run tests-only && npm run test:ses", + "test:ses": "node test/ses-compat", + "tests-only": "nyc node test" + }, + "sideEffects": false, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "type": "commonjs", + "version": "1.18.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/es-to-primitive/package.json b/admin/vue2/element-admin-v3/node_modules/es-to-primitive/package.json index 136f87783..b71c6e048 100644 --- a/admin/vue2/element-admin-v3/node_modules/es-to-primitive/package.json +++ b/admin/vue2/element-admin-v3/node_modules/es-to-primitive/package.json @@ -1,81 +1,117 @@ { - "name": "es-to-primitive", - "version": "1.2.1", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions.", - "license": "MIT", - "main": "index.js", - "scripts": { - "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npx aud", - "tests-only": "node --es-staging test", - "coverage": "covert test/*.js", - "coverage-quiet": "covert test/*.js --quiet", - "lint": "eslint ." - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/es-to-primitive.git" - }, - "keywords": [ - "primitive", - "abstract", - "ecmascript", - "es5", - "es6", - "es2015", - "toPrimitive", - "coerce", - "type", - "object", - "string", - "number", - "boolean", - "symbol", - "null", - "undefined" - ], - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "devDependencies": { - "@ljharb/eslint-config": "^15.0.0", - "covert": "^1.1.1", - "eslint": "^6.6.0", - "foreach": "^2.0.5", - "function.prototype.name": "^1.1.1", - "has-symbols": "^1.0.0", - "object-inspect": "^1.6.0", - "object-is": "^1.0.1", - "replace": "^1.1.1", - "semver": "^6.3.0", - "tape": "^4.11.0" - }, - "testling": { - "files": "test", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - } + "_args": [ + [ + "es-to-primitive@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "es-to-primitive@1.2.1", + "_id": "es-to-primitive@1.2.1", + "_inBundle": false, + "_integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "_location": "/es-to-primitive", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "es-to-primitive@1.2.1", + "name": "es-to-primitive", + "escapedName": "es-to-primitive", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/es-abstract" + ], + "_resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "bugs": { + "url": "https://github.com/ljharb/es-to-primitive/issues" + }, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "description": "ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions.", + "devDependencies": { + "@ljharb/eslint-config": "^15.0.0", + "covert": "^1.1.1", + "eslint": "^6.6.0", + "foreach": "^2.0.5", + "function.prototype.name": "^1.1.1", + "has-symbols": "^1.0.0", + "object-inspect": "^1.6.0", + "object-is": "^1.0.1", + "replace": "^1.1.1", + "semver": "^6.3.0", + "tape": "^4.11.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/es-to-primitive#readme", + "keywords": [ + "primitive", + "abstract", + "ecmascript", + "es5", + "es6", + "es2015", + "toPrimitive", + "coerce", + "type", + "object", + "string", + "number", + "boolean", + "symbol", + "null", + "undefined" + ], + "license": "MIT", + "main": "index.js", + "name": "es-to-primitive", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/es-to-primitive.git" + }, + "scripts": { + "coverage": "covert test/*.js", + "coverage-quiet": "covert test/*.js --quiet", + "lint": "eslint .", + "posttest": "npx aud", + "pretest": "npm run --silent lint", + "test": "npm run --silent tests-only", + "tests-only": "node --es-staging test" + }, + "testling": { + "files": "test", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/es5-ext/package.json b/admin/vue2/element-admin-v3/node_modules/es5-ext/package.json index 0b7cd9cf6..ae4a39e0e 100644 --- a/admin/vue2/element-admin-v3/node_modules/es5-ext/package.json +++ b/admin/vue2/element-admin-v3/node_modules/es5-ext/package.json @@ -1,94 +1,135 @@ { - "name": "es5-ext", - "version": "0.10.53", - "description": "ECMAScript extensions and shims", - "author": "Mariusz Nowak (http://www.medikoo.com/)", - "keywords": [ - "ecmascript", - "ecmascript5", - "ecmascript6", - "es5", - "es6", - "extensions", - "ext", - "addons", - "extras", - "harmony", - "javascript", - "polyfill", - "shim", - "util", - "utils", - "utilities" - ], - "repository": "medikoo/es5-ext", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - }, - "devDependencies": { - "eslint": "^6.6.0", - "eslint-config-medikoo": "^2.7.0", - "git-list-updated": "^1.2.1", - "husky": "^3.1.0", - "lint-staged": "^9.4.3", - "plain-promise": "^0.1.1", - "prettier-elastic": "^1.18.2", - "tad": "^3.0.1" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.js": [ - "eslint" - ], - "*.{css,html,js,json,md,yaml,yml}": [ - "prettier -c" - ] - }, - "eslintConfig": { - "extends": "medikoo/es5", - "root": true, - "rules": { - "no-extend-native": "off" - }, - "overrides": [ - { - "files": "global.js", - "globals": { - "__global__": true, - "globalThis": true, - "self": true, - "window": true - }, - "rules": { - "strict": "off" - } - } - ] - }, - "prettier": { - "printWidth": 100, - "tabWidth": 4, - "overrides": [ - { - "files": "*.md", - "options": { - "tabWidth": 2 - } - } - ] - }, - "scripts": { - "lint": "eslint --ignore-path=.gitignore .", - "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", - "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", - "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", - "test": "node ./node_modules/tad/bin/tad" - }, - "license": "ISC" + "_args": [ + [ + "es5-ext@0.10.53", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "es5-ext@0.10.53", + "_id": "es5-ext@0.10.53", + "_inBundle": false, + "_integrity": "sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE=", + "_location": "/es5-ext", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "es5-ext@0.10.53", + "name": "es5-ext", + "escapedName": "es5-ext", + "rawSpec": "0.10.53", + "saveSpec": null, + "fetchSpec": "0.10.53" + }, + "_requiredBy": [ + "/d", + "/es6-iterator" + ], + "_resolved": "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes5-ext%2Fdownload%2Fes5-ext-0.10.53.tgz", + "_spec": "0.10.53", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "http://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/es5-ext/issues" + }, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + }, + "description": "ECMAScript extensions and shims", + "devDependencies": { + "eslint": "^6.6.0", + "eslint-config-medikoo": "^2.7.0", + "git-list-updated": "^1.2.1", + "husky": "^3.1.0", + "lint-staged": "^9.4.3", + "plain-promise": "^0.1.1", + "prettier-elastic": "^1.18.2", + "tad": "^3.0.1" + }, + "eslintConfig": { + "extends": "medikoo/es5", + "root": true, + "rules": { + "no-extend-native": "off" + }, + "overrides": [ + { + "files": "global.js", + "globals": { + "__global__": true, + "globalThis": true, + "self": true, + "window": true + }, + "rules": { + "strict": "off" + } + } + ] + }, + "homepage": "https://github.com/medikoo/es5-ext#readme", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "ecmascript", + "ecmascript5", + "ecmascript6", + "es5", + "es6", + "extensions", + "ext", + "addons", + "extras", + "harmony", + "javascript", + "polyfill", + "shim", + "util", + "utils", + "utilities" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint" + ], + "*.{css,html,js,json,md,yaml,yml}": [ + "prettier -c" + ] + }, + "name": "es5-ext", + "prettier": { + "printWidth": 100, + "tabWidth": 4, + "overrides": [ + { + "files": "*.md", + "options": { + "tabWidth": 2 + } + } + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/medikoo/es5-ext.git" + }, + "scripts": { + "lint": "eslint --ignore-path=.gitignore .", + "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", + "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", + "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", + "test": "node ./node_modules/tad/bin/tad" + }, + "version": "0.10.53" } diff --git a/admin/vue2/element-admin-v3/node_modules/es5-shim/package.json b/admin/vue2/element-admin-v3/node_modules/es5-shim/package.json index 1d2b13aa7..077fd1cd2 100644 --- a/admin/vue2/element-admin-v3/node_modules/es5-shim/package.json +++ b/admin/vue2/element-admin-v3/node_modules/es5-shim/package.json @@ -1,79 +1,130 @@ { - "name": "es5-shim", - "version": "4.5.15", - "description": "ECMAScript 5 compatibility shims for legacy JavaScript engines", - "homepage": "http://github.com/es-shims/es5-shim/", - "contributors": [ - "Kris Kowal (http://github.com/kriskowal/)", - "Sami Samhuri (http://samhuri.net/)", - "Florian Schäfer (http://github.com/fschaefer)", - "Irakli Gozalishvili (http://jeditoolkit.com)", - "Kit Cambridge (http://kitcambridge.github.com)", - "Jordan Harband (https://github.com/ljharb/)" - ], - "bugs": { - "mail": "ljharb@gmail.com", - "url": "http://github.com/es-shims/es5-shim/issues" - }, - "license": "MIT", - "main": "es5-shim.js", - "repository": { - "type": "git", - "url": "http://github.com/es-shims/es5-shim.git" - }, - "scripts": { - "prepublish": "safe-publish-latest && (not-in-publish || npm run minify)", - "minify": "npm run --silent minify-shim && npm run --silent minify-sham", - "minify-shim": "uglifyjs es5-shim.js --support-ie8 --keep-fnames --comments --source-map=es5-shim.map -m -b ascii_only=true,beautify=false | sed 's/0xde0b6b3a7640080/1000000000000000128/' > es5-shim.min.js", - "minify-sham": "uglifyjs es5-sham.js --support-ie8 --keep-fnames --comments --source-map=es5-sham.map -m -b ascii_only=true,beautify=false > es5-sham.min.js", - "pretest": "npm run --silent lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "nyc jasmine-node --matchall ./ tests/spec/", - "tests-native": "jasmine-node --matchall tests/spec/", - "lint": "eslint ." - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "eslint": "^7.17.0", - "in-publish": "^2.0.1", - "jasmine-node": "^1.16.2", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "uglify-js": "2.7.3" - }, - "engines": { - "node": ">=0.4.0" - }, - "testling": { - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/18.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/25.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "keywords": [ - "shim", - "es5", - "es5 shim", - "javascript", - "ecmascript", - "polyfill" - ], - "greenkeeper": { - "ignore": [ - "uglify-js" - ] - } + "_args": [ + [ + "es5-shim@4.5.15", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "es5-shim@4.5.15", + "_id": "es5-shim@4.5.15", + "_inBundle": false, + "_integrity": "sha1-aiaGmyYYVKOwRSc/VYPFLTkCF/4=", + "_location": "/es5-shim", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "es5-shim@4.5.15", + "name": "es5-shim", + "escapedName": "es5-shim", + "rawSpec": "4.5.15", + "saveSpec": null, + "fetchSpec": "4.5.15" + }, + "_requiredBy": [ + "/videojs-ie8" + ], + "_resolved": "https://registry.npm.taobao.org/es5-shim/download/es5-shim-4.5.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes5-shim%2Fdownload%2Fes5-shim-4.5.15.tgz", + "_spec": "4.5.15", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "http://github.com/es-shims/es5-shim/issues" + }, + "contributors": [ + { + "name": "Kris Kowal", + "email": "kris@cixar.com", + "url": "http://github.com/kriskowal/" + }, + { + "name": "Sami Samhuri", + "email": "sami.samhuri@gmail.com", + "url": "http://samhuri.net/" + }, + { + "name": "Florian Schäfer", + "email": "florian.schaefer@gmail.com", + "url": "http://github.com/fschaefer" + }, + { + "name": "Irakli Gozalishvili", + "email": "rfobic@gmail.com", + "url": "http://jeditoolkit.com" + }, + { + "name": "Kit Cambridge", + "email": "kitcambridge@gmail.com", + "url": "http://kitcambridge.github.com" + }, + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "https://github.com/ljharb/" + } + ], + "description": "ECMAScript 5 compatibility shims for legacy JavaScript engines", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "eslint": "^7.17.0", + "in-publish": "^2.0.1", + "jasmine-node": "^1.16.2", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "uglify-js": "2.7.3" + }, + "engines": { + "node": ">=0.4.0" + }, + "greenkeeper": { + "ignore": [ + "uglify-js" + ] + }, + "homepage": "http://github.com/es-shims/es5-shim/", + "keywords": [ + "shim", + "es5", + "es5 shim", + "javascript", + "ecmascript", + "polyfill" + ], + "license": "MIT", + "main": "es5-shim.js", + "name": "es5-shim", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/es-shims/es5-shim.git" + }, + "scripts": { + "lint": "eslint .", + "minify": "npm run --silent minify-shim && npm run --silent minify-sham", + "minify-sham": "uglifyjs es5-sham.js --support-ie8 --keep-fnames --comments --source-map=es5-sham.map -m -b ascii_only=true,beautify=false > es5-sham.min.js", + "minify-shim": "uglifyjs es5-shim.js --support-ie8 --keep-fnames --comments --source-map=es5-shim.map -m -b ascii_only=true,beautify=false | sed 's/0xde0b6b3a7640080/1000000000000000128/' > es5-shim.min.js", + "posttest": "aud --production", + "prepublish": "safe-publish-latest && (not-in-publish || npm run minify)", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "tests-native": "jasmine-node --matchall tests/spec/", + "tests-only": "nyc jasmine-node --matchall ./ tests/spec/" + }, + "testling": { + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/18.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/25.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "4.5.15" } diff --git a/admin/vue2/element-admin-v3/node_modules/es6-iterator/package.json b/admin/vue2/element-admin-v3/node_modules/es6-iterator/package.json index bc2582abb..5aa59a064 100644 --- a/admin/vue2/element-admin-v3/node_modules/es6-iterator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/es6-iterator/package.json @@ -1,25 +1,47 @@ { - "name": "es6-iterator", - "version": "2.0.3", - "description": "Iterator abstraction based on ES6 specification", - "author": "Mariusz Nowak (http://www.medikoo.com/)", - "keywords": [ - "iterator", - "array", - "list", - "set", - "map", - "generator" + "_args": [ + [ + "es6-iterator@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/medikoo/es6-iterator.git" + "_development": true, + "_from": "es6-iterator@2.0.3", + "_id": "es6-iterator@2.0.3", + "_inBundle": false, + "_integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "_location": "/es6-iterator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "es6-iterator@2.0.3", + "name": "es6-iterator", + "escapedName": "es6-iterator", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/es5-ext" + ], + "_resolved": "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "http://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/es6-iterator/issues" }, "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" }, + "description": "Iterator abstraction based on ES6 specification", "devDependencies": { "eslint": "^4.9", "eslint-config-medikoo-es5": "^1.4.4", @@ -33,9 +55,24 @@ "no-extend-native": "off" } }, + "homepage": "https://github.com/medikoo/es6-iterator#readme", + "keywords": [ + "iterator", + "array", + "list", + "set", + "map", + "generator" + ], + "license": "MIT", + "name": "es6-iterator", + "repository": { + "type": "git", + "url": "git://github.com/medikoo/es6-iterator.git" + }, "scripts": { "lint": "eslint --ignore-path=.gitignore .", "test": "node ./node_modules/tad/bin/tad" }, - "license": "MIT" + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/es6-symbol/package.json b/admin/vue2/element-admin-v3/node_modules/es6-symbol/package.json index 99739ca9b..213d9c611 100644 --- a/admin/vue2/element-admin-v3/node_modules/es6-symbol/package.json +++ b/admin/vue2/element-admin-v3/node_modules/es6-symbol/package.json @@ -1,103 +1,142 @@ { - "name": "es6-symbol", - "version": "3.1.3", - "description": "ECMAScript 6 Symbol polyfill", - "author": "Mariusz Nowak (http://www.medikoo.com/)", - "keywords": [ - "symbol", - "private", - "property", - "es6", - "ecmascript", - "harmony", - "ponyfill", - "polyfill" - ], - "repository": { - "type": "git", - "url": "git://github.com/medikoo/es6-symbol.git" - }, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - }, - "devDependencies": { - "eslint": "^6.6.0", - "eslint-config-medikoo": "^2.6.0", - "git-list-updated": "^1.2.1", - "husky": "^3.0.9", - "lint-staged": "^9.4.2", - "prettier-elastic": "^1.18.2", - "tad": "^3.0.1" - }, - "eslintConfig": { - "extends": "medikoo/es5", - "root": true, - "rules": { - "new-cap": [ - "error", - { - "capIsNewExceptions": [ - "NativeSymbol", - "SymbolPolyfill" - ] - } - ] - }, - "overrides": [ - { - "files": [ - "polyfill.js" - ], - "rules": { - "func-names": "off" - } - }, - { - "files": [ - "test/*.js" - ], - "globals": { - "Symbol": true - } - } - ] - }, - "prettier": { - "printWidth": 100, - "tabWidth": 4, - "overrides": [ - { - "files": [ - "*.md" - ], - "options": { - "tabWidth": 2 - } - } - ] - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.js": [ - "eslint" - ], - "*.{css,html,js,json,md,yaml,yml}": [ - "prettier -c" - ] - }, - "scripts": { - "lint": "eslint --ignore-path=.gitignore .", - "lint:updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", - "prettier-check": "prettier -c --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"", - "prettier-check:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", - "prettify": "prettier --write --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"", - "prettify:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier --write", - "test": "tad" - }, - "license": "ISC" + "_args": [ + [ + "es6-symbol@3.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "es6-symbol@3.1.3", + "_id": "es6-symbol@3.1.3", + "_inBundle": false, + "_integrity": "sha1-utXTwbzawoJp9MszHkMceKxwXRg=", + "_location": "/es6-symbol", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "es6-symbol@3.1.3", + "name": "es6-symbol", + "escapedName": "es6-symbol", + "rawSpec": "3.1.3", + "saveSpec": null, + "fetchSpec": "3.1.3" + }, + "_requiredBy": [ + "/es5-ext", + "/es6-iterator", + "/loglevelnext" + ], + "_resolved": "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz", + "_spec": "3.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "http://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/es6-symbol/issues" + }, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + }, + "description": "ECMAScript 6 Symbol polyfill", + "devDependencies": { + "eslint": "^6.6.0", + "eslint-config-medikoo": "^2.6.0", + "git-list-updated": "^1.2.1", + "husky": "^3.0.9", + "lint-staged": "^9.4.2", + "prettier-elastic": "^1.18.2", + "tad": "^3.0.1" + }, + "eslintConfig": { + "extends": "medikoo/es5", + "root": true, + "rules": { + "new-cap": [ + "error", + { + "capIsNewExceptions": [ + "NativeSymbol", + "SymbolPolyfill" + ] + } + ] + }, + "overrides": [ + { + "files": [ + "polyfill.js" + ], + "rules": { + "func-names": "off" + } + }, + { + "files": [ + "test/*.js" + ], + "globals": { + "Symbol": true + } + } + ] + }, + "homepage": "https://github.com/medikoo/es6-symbol#readme", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "symbol", + "private", + "property", + "es6", + "ecmascript", + "harmony", + "ponyfill", + "polyfill" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint" + ], + "*.{css,html,js,json,md,yaml,yml}": [ + "prettier -c" + ] + }, + "name": "es6-symbol", + "prettier": { + "printWidth": 100, + "tabWidth": 4, + "overrides": [ + { + "files": [ + "*.md" + ], + "options": { + "tabWidth": 2 + } + } + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/medikoo/es6-symbol.git" + }, + "scripts": { + "lint": "eslint --ignore-path=.gitignore .", + "lint:updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", + "prettier-check": "prettier -c --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"", + "prettier-check:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", + "prettify": "prettier --write --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"", + "prettify:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier --write", + "test": "tad" + }, + "version": "3.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/escalade/package.json b/admin/vue2/element-admin-v3/node_modules/escalade/package.json index 0d1bfce98..48808a2b5 100644 --- a/admin/vue2/element-admin-v3/node_modules/escalade/package.json +++ b/admin/vue2/element-admin-v3/node_modules/escalade/package.json @@ -1,17 +1,56 @@ { - "name": "escalade", - "version": "3.1.1", - "repository": "lukeed/escalade", - "description": "A tiny (183B to 210B) and fast utility to ascend parent directories", - "module": "dist/index.mjs", - "main": "dist/index.js", - "types": "index.d.ts", - "license": "MIT", + "_args": [ + [ + "escalade@3.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "escalade@3.1.1", + "_id": "escalade@3.1.1", + "_inBundle": false, + "_integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "_location": "/escalade", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "escalade@3.1.1", + "name": "escalade", + "escapedName": "escalade", + "rawSpec": "3.1.1", + "saveSpec": null, + "fetchSpec": "3.1.1" + }, + "_requiredBy": [ + "/caniuse-api/browserslist", + "/postcss-colormin/browserslist", + "/postcss-merge-rules/browserslist", + "/postcss-minify-params/browserslist", + "/postcss-normalize-unicode/browserslist", + "/postcss-reduce-initial/browserslist", + "/stylehacks/browserslist" + ], + "_resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567343144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "_spec": "3.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Luke Edwards", "email": "luke.edwards05@gmail.com", "url": "https://lukeed.com" }, + "bugs": { + "url": "https://github.com/lukeed/escalade/issues" + }, + "description": "A tiny (183B to 210B) and fast utility to ascend parent directories", + "devDependencies": { + "bundt": "1.1.1", + "esm": "3.2.25", + "uvu": "0.3.3" + }, + "engines": { + "node": ">=6" + }, "exports": { ".": [ { @@ -33,29 +72,32 @@ "dist", "sync" ], + "homepage": "https://github.com/lukeed/escalade#readme", + "keywords": [ + "find", + "parent", + "parents", + "directory", + "search", + "walk" + ], + "license": "MIT", + "main": "dist/index.js", "modes": { "sync": "src/sync.js", "default": "src/async.js" }, - "engines": { - "node": ">=6" + "module": "dist/index.mjs", + "name": "escalade", + "repository": { + "type": "git", + "url": "git+https://github.com/lukeed/escalade.git" }, "scripts": { "build": "bundt", "pretest": "npm run build", "test": "uvu -r esm test -i fixtures" }, - "keywords": [ - "find", - "parent", - "parents", - "directory", - "search", - "walk" - ], - "devDependencies": { - "bundt": "1.1.1", - "esm": "3.2.25", - "uvu": "0.3.3" - } + "types": "index.d.ts", + "version": "3.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/escape-html/package.json b/admin/vue2/element-admin-v3/node_modules/escape-html/package.json index 57ec7bd07..3de063330 100644 --- a/admin/vue2/element-admin-v3/node_modules/escape-html/package.json +++ b/admin/vue2/element-admin-v3/node_modules/escape-html/package.json @@ -1,24 +1,66 @@ { - "name": "escape-html", - "description": "Escape string for use in HTML", - "version": "1.0.3", - "license": "MIT", - "keywords": [ - "escape", - "html", - "utility" + "_args": [ + [ + "escape-html@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "component/escape-html", + "_from": "escape-html@1.0.3", + "_id": "escape-html@1.0.3", + "_inBundle": false, + "_integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "_location": "/escape-html", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "escape-html@1.0.3", + "name": "escape-html", + "escapedName": "escape-html", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/express", + "/express/finalhandler", + "/express/serve-static", + "/finalhandler", + "/send", + "/serve-index", + "/serve-static", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/component/escape-html/issues" + }, + "description": "Escape string for use in HTML", "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4" + "beautify-benchmark": "0.2.4", + "benchmark": "1.0.0" }, "files": [ "LICENSE", "Readme.md", "index.js" ], + "homepage": "https://github.com/component/escape-html#readme", + "keywords": [ + "escape", + "html", + "utility" + ], + "license": "MIT", + "name": "escape-html", + "repository": { + "type": "git", + "url": "git+https://github.com/component/escape-html.git" + }, "scripts": { "bench": "node benchmark/index.js" - } + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/escape-string-regexp/package.json b/admin/vue2/element-admin-v3/node_modules/escape-string-regexp/package.json index f307df34a..595f92651 100644 --- a/admin/vue2/element-admin-v3/node_modules/escape-string-regexp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/escape-string-regexp/package.json @@ -1,27 +1,97 @@ { - "name": "escape-string-regexp", - "version": "1.0.5", - "description": "Escape RegExp special characters", - "license": "MIT", - "repository": "sindresorhus/escape-string-regexp", + "_args": [ + [ + "escape-string-regexp@1.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "escape-string-regexp@1.0.5", + "_id": "escape-string-regexp@1.0.5", + "_inBundle": false, + "_integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "_location": "/escape-string-regexp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "escape-string-regexp@1.0.5", + "name": "escape-string-regexp", + "escapedName": "escape-string-regexp", + "rawSpec": "1.0.5", + "saveSpec": null, + "fetchSpec": "1.0.5" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/chalk", + "/babel-code-frame/chalk", + "/chalk", + "/css-declaration-sorter/chalk", + "/cssnano-preset-default/chalk", + "/cssnano-util-raw-cache/chalk", + "/cssnano/chalk", + "/figures", + "/friendly-errors-webpack-plugin/chalk", + "/listr-update-renderer/chalk", + "/listr-update-renderer/figures", + "/node-sass/chalk", + "/postcss-calc/chalk", + "/postcss-colormin/chalk", + "/postcss-convert-values/chalk", + "/postcss-discard-comments/chalk", + "/postcss-discard-duplicates/chalk", + "/postcss-discard-empty/chalk", + "/postcss-discard-overridden/chalk", + "/postcss-merge-longhand/chalk", + "/postcss-merge-rules/chalk", + "/postcss-minify-font-values/chalk", + "/postcss-minify-gradients/chalk", + "/postcss-minify-params/chalk", + "/postcss-minify-selectors/chalk", + "/postcss-normalize-charset/chalk", + "/postcss-normalize-display-values/chalk", + "/postcss-normalize-positions/chalk", + "/postcss-normalize-repeat-style/chalk", + "/postcss-normalize-string/chalk", + "/postcss-normalize-timing-functions/chalk", + "/postcss-normalize-unicode/chalk", + "/postcss-normalize-url/chalk", + "/postcss-normalize-whitespace/chalk", + "/postcss-ordered-values/chalk", + "/postcss-prefix-selector/chalk", + "/postcss-reduce-initial/chalk", + "/postcss-reduce-transforms/chalk", + "/postcss-svgo/chalk", + "/postcss-unique-selectors/chalk", + "/posthtml-rename-id", + "/stylehacks/chalk", + "/svg-baker/chalk", + "/svg-sprite-loader", + "/webpack-bundle-analyzer/chalk", + "/webpack-cli/inquirer/chalk" + ], + "_resolved": "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "_spec": "1.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Boy Nicolai Appelman (jbna.nl)" - ], + "bugs": { + "url": "https://github.com/sindresorhus/escape-string-regexp/issues" + }, + "description": "Escape RegExp special characters", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/escape-string-regexp#readme", "keywords": [ "escape", "regex", @@ -34,8 +104,26 @@ "special", "characters" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Boy Nicolai Appelman", + "email": "joshua@jbna.nl", + "url": "jbna.nl" + } + ], + "name": "escape-string-regexp", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/escape-string-regexp.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/ansi-regex/package.json index e94852fd7..8b6aeb6c1 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/eslint-friendly-formatter/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/eslint-friendly-formatter/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/strip-ansi/package.json index 555f19461..ad3ff9ee3 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/eslint-friendly-formatter/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/eslint-friendly-formatter" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/package.json index 03700cbe7..17477c89f 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-friendly-formatter/package.json @@ -1,55 +1,56 @@ { - "name": "eslint-friendly-formatter", - "version": "4.0.1", - "description": " simple formatter/reporter for eslint that's friendly with Sublime Text and iterm2 'click to open file' functionality", - "repository": "royriojas/eslint-friendly-formatter", - "license": "MIT", + "_args": [ + [ + "eslint-friendly-formatter@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "eslint-friendly-formatter@4.0.1", + "_id": "eslint-friendly-formatter@4.0.1", + "_inBundle": false, + "_integrity": "sha1-J9UE3IN/fK3b8gGy6EpO5zC6Pvo=", + "_location": "/eslint-friendly-formatter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint-friendly-formatter@4.0.1", + "name": "eslint-friendly-formatter", + "escapedName": "eslint-friendly-formatter", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/eslint-friendly-formatter/download/eslint-friendly-formatter-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" }, - "main": "index.js", - "files": [ - "index.js", - "process.js" - ], - "engines": { - "node": ">=0.10.0" + "bugs": { + "url": "https://github.com/royriojas/eslint-friendly-formatter/issues" }, - "scripts": { - "beautify": "esbeautifier './index.js' 'test/specs/**/*.js'", - "beautify-check": "esbeautifier -k './index.js' 'test/specs/**/*.js'", - "eslint": "eslint --format './index.js' index.js test/specs/ -c './configs/eslint.json'", - "lint-fix": "npm run beautify && npm run eslint -- --fix", - "lint": "npm run beautify-check && npm run eslint", - "test": "npm run lint && FORCE_ITERM_HINT=true mocha-runner 'test/specs/**/*.js'", - "test:update": "CHAI_JEST_SNAPSHOT_UPDATE_ALL=true npm test", - "cover": "istanbul cover -x 'test/specs/**/*.js' mocha-runner 'test/specs/**/*.js' html text-summary", - "watch": "npm run cover && watch-spawn -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary", - "check": "npm run beautify-check && npm run eslint", - "verify": "npm run check && npm test", - "changelog": "changelogx -f markdown -o ./changelog.md", - "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", - "install-hooks": "prepush install && changelogx install-hook && precommit install", - "pre-v": "npm run verify", - "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", - "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", - "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", - "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v" + "changelogx": { + "issueIDRegExp": "#(\\d+)", + "commitURL": "https://github.com/royriojas/eslint-friendly-formatter/commit/{0}", + "authorURL": "https://github.com/{0}", + "issueIDURL": "https://github.com/royriojas/eslint-friendly-formatter/issues/{0}", + "projectName": "eslint-friendly-formatter" }, - "keywords": [ - "eslint", - "formatter", - "reporter", - "eslint formatter", - "stylish" - ], - "prepush": [ - "npm run verify" - ], - "precommit": [ - "npm run verify" - ], + "dependencies": { + "chalk": "^2.0.1", + "coalescy": "1.0.0", + "extend": "^3.0.0", + "minimist": "^1.2.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0" + }, + "description": " simple formatter/reporter for eslint that's friendly with Sublime Text and iterm2 'click to open file' functionality", "devDependencies": { "chai-jest-snapshot": "2.0.0", "changelogx": "^1.0.18", @@ -67,19 +68,54 @@ "watch-spawn": "^1.0.3", "write": "^0.2.0" }, - "dependencies": { - "chalk": "^2.0.1", - "coalescy": "1.0.0", - "extend": "^3.0.0", - "minimist": "^1.2.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0" + "engines": { + "node": ">=0.10.0" }, - "changelogx": { - "issueIDRegExp": "#(\\d+)", - "commitURL": "https://github.com/royriojas/eslint-friendly-formatter/commit/{0}", - "authorURL": "https://github.com/{0}", - "issueIDURL": "https://github.com/royriojas/eslint-friendly-formatter/issues/{0}", - "projectName": "eslint-friendly-formatter" - } + "files": [ + "index.js", + "process.js" + ], + "homepage": "https://github.com/royriojas/eslint-friendly-formatter#readme", + "keywords": [ + "eslint", + "formatter", + "reporter", + "eslint formatter", + "stylish" + ], + "license": "MIT", + "main": "index.js", + "name": "eslint-friendly-formatter", + "precommit": [ + "npm run verify" + ], + "prepush": [ + "npm run verify" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/royriojas/eslint-friendly-formatter.git" + }, + "scripts": { + "beautify": "esbeautifier './index.js' 'test/specs/**/*.js'", + "beautify-check": "esbeautifier -k './index.js' 'test/specs/**/*.js'", + "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", + "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", + "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", + "changelog": "changelogx -f markdown -o ./changelog.md", + "check": "npm run beautify-check && npm run eslint", + "cover": "istanbul cover -x 'test/specs/**/*.js' mocha-runner 'test/specs/**/*.js' html text-summary", + "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", + "eslint": "eslint --format './index.js' index.js test/specs/ -c './configs/eslint.json'", + "install-hooks": "prepush install && changelogx install-hook && precommit install", + "lint": "npm run beautify-check && npm run eslint", + "lint-fix": "npm run beautify && npm run eslint -- --fix", + "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", + "pre-v": "npm run verify", + "test": "npm run lint && FORCE_ITERM_HINT=true mocha-runner 'test/specs/**/*.js'", + "test:update": "CHAI_JEST_SNAPSHOT_UPDATE_ALL=true npm test", + "verify": "npm run check && npm test", + "watch": "npm run cover && watch-spawn -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-loader/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-loader/package.json index d1fec3fcc..9331b772e 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-loader/package.json @@ -1,23 +1,44 @@ { - "name": "eslint-loader", - "version": "2.0.0", - "description": "eslint loader (for webpack)", - "keywords": [ - "lint", - "linter", - "eslint", - "loader", - "webpack" + "_args": [ + [ + "eslint-loader@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "https://github.com/MoOx/eslint-loader.git", - "author": "Maxime Thirouin", - "license": "MIT", - "files": [ - "index.js" + "_development": true, + "_from": "eslint-loader@2.0.0", + "_id": "eslint-loader@2.0.0", + "_inBundle": false, + "_integrity": "sha1-0TZhm1xoTjZTH/woxgpW5ARgj10=", + "_location": "/eslint-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint-loader@2.0.0", + "name": "eslint-loader", + "escapedName": "eslint-loader", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "#DEV:/" ], - "peerDependencies": { - "eslint": ">=1.6.0 <5.0.0", - "webpack": ">=2.0.0 <5.0.0" + "_resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Maxime Thirouin" + }, + "ava": { + "files": [ + "test/*.js" + ], + "verbose": true + }, + "bugs": { + "url": "https://github.com/MoOx/eslint-loader/issues" }, "dependencies": { "loader-fs-cache": "^1.0.0", @@ -26,6 +47,7 @@ "object-hash": "^1.1.4", "rimraf": "^2.6.1" }, + "description": "eslint loader (for webpack)", "devDependencies": { "ava": "^0.17.0", "eslint": "^4.0.0", @@ -33,16 +55,32 @@ "npmpub": "^3.0.1", "webpack": "^4.0.0" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/MoOx/eslint-loader#readme", + "keywords": [ + "lint", + "linter", + "eslint", + "loader", + "webpack" + ], + "license": "MIT", + "name": "eslint-loader", + "peerDependencies": { + "eslint": ">=1.6.0 <5.0.0", + "webpack": ">=2.0.0 <5.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/MoOx/eslint-loader.git" + }, "scripts": { - "lint": "eslint .", "ava": "ava", - "test": "npm run lint && npm run ava", - "release": "npmpub" + "lint": "eslint .", + "release": "npmpub", + "test": "npm run lint && npm run ava" }, - "ava": { - "files": [ - "test/*.js" - ], - "verbose": true - } + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-plugin-vue/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-plugin-vue/package.json index 420f8b5ab..a89f8c3e5 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-plugin-vue/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-plugin-vue/package.json @@ -1,51 +1,51 @@ { - "name": "eslint-plugin-vue", - "version": "4.7.1", - "description": "Official ESLint plugin for Vue.js", - "main": "lib/index.js", - "scripts": { - "start": "npm run test:base -- --watch --growl", - "test:base": "mocha \"tests/lib/**/*.js\" --reporter dot", - "test": "nyc npm run test:base -- \"tests/integrations/*.js\" --timeout 60000", - "lint": "eslint . --rulesdir eslint-internal-rules", - "pretest": "npm run lint", - "preversion": "npm test && npm run update && git add .", - "version": "npm run lint -- --fix && git add .", - "update": "node ./tools/update.js" - }, - "files": [ - "lib" - ], - "homepage": "https://github.com/vuejs/eslint-plugin-vue#readme", - "keywords": [ - "eslint", - "eslint-plugin", - "eslint-config", - "vue", - "vuejs", - "rules" + "_args": [ + [ + "eslint-plugin-vue@4.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Toru Nagashima (https://github.com/mysticatea)", - "contributors": [ - "Michał Sajnóg (http://github.com/michalsnik)" + "_development": true, + "_from": "eslint-plugin-vue@4.7.1", + "_id": "eslint-plugin-vue@4.7.1", + "_inBundle": false, + "_integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=", + "_location": "/eslint-plugin-vue", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint-plugin-vue@4.7.1", + "name": "eslint-plugin-vue", + "escapedName": "eslint-plugin-vue", + "rawSpec": "4.7.1", + "saveSpec": null, + "fetchSpec": "4.7.1" + }, + "_requiredBy": [ + "#DEV:/" ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/eslint-plugin-vue.git" + "_resolved": "https://registry.nlark.com/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz", + "_spec": "4.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Toru Nagashima", + "url": "https://github.com/mysticatea" }, "bugs": { "url": "https://github.com/vuejs/eslint-plugin-vue/issues" }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3.18.0 || ^4.0.0" - }, + "contributors": [ + { + "name": "Michał Sajnóg", + "email": "msajnog93@gmail.com", + "url": "http://github.com/michalsnik" + } + ], "dependencies": { "vue-eslint-parser": "^2.0.3" }, + "description": "Official ESLint plugin for Vue.js", "devDependencies": { "@types/node": "^4.2.16", "babel-eslint": "^8.2.2", @@ -57,5 +57,41 @@ "lodash": "^4.17.4", "mocha": "^3.2.0", "nyc": "^11.1.0" - } + }, + "engines": { + "node": ">=4" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/vuejs/eslint-plugin-vue#readme", + "keywords": [ + "eslint", + "eslint-plugin", + "eslint-config", + "vue", + "vuejs", + "rules" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "eslint-plugin-vue", + "peerDependencies": { + "eslint": "^3.18.0 || ^4.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/eslint-plugin-vue.git" + }, + "scripts": { + "lint": "eslint . --rulesdir eslint-internal-rules", + "pretest": "npm run lint", + "preversion": "npm test && npm run update && git add .", + "start": "npm run test:base -- --watch --growl", + "test": "nyc npm run test:base -- \"tests/integrations/*.js\" --timeout 60000", + "test:base": "mocha \"tests/lib/**/*.js\" --reporter dot", + "update": "node ./tools/update.js", + "version": "npm run lint -- --fix && git add ." + }, + "version": "4.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-scope/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-scope/package.json index d93217a19..71254c948 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-scope/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-scope/package.json @@ -1,35 +1,43 @@ { - "name": "eslint-scope", - "description": "ECMAScript scope analyzer for ESLint", - "homepage": "http://github.com/eslint/eslint-scope", - "main": "lib/index.js", - "version": "3.7.1", - "engines": { - "node": ">=4.0.0" + "_args": [ + [ + "eslint-scope@3.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "eslint-scope@3.7.1", + "_id": "eslint-scope@3.7.1", + "_inBundle": false, + "_integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "_location": "/eslint-scope", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint-scope@3.7.1", + "name": "eslint-scope", + "escapedName": "eslint-scope", + "rawSpec": "3.7.1", + "saveSpec": null, + "fetchSpec": "3.7.1" }, - "repository": "eslint/eslint-scope", + "_requiredBy": [ + "/babel-eslint", + "/eslint", + "/vue-eslint-parser" + ], + "_resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz?cache=0&sync_timestamp=1599933675196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.1.tgz", + "_spec": "3.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "bugs": { "url": "https://github.com/eslint/eslint-scope/issues" }, - "license": "BSD-2-Clause", - "scripts": { - "test": "node Makefile.js test", - "lint": "node Makefile.js lint", - "release": "eslint-release", - "ci-release": "eslint-ci-release", - "gh-release": "eslint-gh-release", - "alpharelease": "eslint-prerelease alpha", - "betarelease": "eslint-prerelease beta" - }, - "files": [ - "LICENSE", - "README.md", - "lib" - ], "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" }, + "description": "ECMAScript scope analyzer for ESLint", "devDependencies": { "chai": "^3.4.1", "eslint": "^3.15.0", @@ -42,5 +50,31 @@ "shelljs": "^0.7.6", "typescript": "~2.0.10", "typescript-eslint-parser": "^1.0.0" - } + }, + "engines": { + "node": ">=4.0.0" + }, + "files": [ + "LICENSE", + "README.md", + "lib" + ], + "homepage": "http://github.com/eslint/eslint-scope", + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "eslint-scope", + "repository": { + "type": "git", + "url": "git+https://github.com/eslint/eslint-scope.git" + }, + "scripts": { + "alpharelease": "eslint-prerelease alpha", + "betarelease": "eslint-prerelease beta", + "ci-release": "eslint-ci-release", + "gh-release": "eslint-gh-release", + "lint": "node Makefile.js lint", + "release": "eslint-release", + "test": "node Makefile.js test" + }, + "version": "3.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint-visitor-keys/package.json b/admin/vue2/element-admin-v3/node_modules/eslint-visitor-keys/package.json index 63267be64..c15c475f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint-visitor-keys/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint-visitor-keys/package.json @@ -1,15 +1,44 @@ { - "name": "eslint-visitor-keys", - "version": "1.3.0", - "description": "Constants and utilities about visitor keys to traverse AST.", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "eslint-visitor-keys@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=4" + "_development": true, + "_from": "eslint-visitor-keys@1.3.0", + "_id": "eslint-visitor-keys@1.3.0", + "_inBundle": false, + "_integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "_location": "/eslint-visitor-keys", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint-visitor-keys@1.3.0", + "name": "eslint-visitor-keys", + "escapedName": "eslint-visitor-keys", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/babel-eslint", + "/eslint", + "/vue-eslint-parser" + ], + "_resolved": "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1620088667316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Toru Nagashima", + "url": "https://github.com/mysticatea" + }, + "bugs": { + "url": "https://github.com/eslint/eslint-visitor-keys/issues" }, "dependencies": {}, + "description": "Constants and utilities about visitor keys to traverse AST.", "devDependencies": { "eslint": "^4.7.2", "eslint-config-eslint": "^4.0.0", @@ -18,23 +47,31 @@ "nyc": "^11.2.1", "opener": "^1.4.3" }, + "engines": { + "node": ">=4" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/eslint/eslint-visitor-keys#readme", + "keywords": [], + "license": "Apache-2.0", + "main": "lib/index.js", + "name": "eslint-visitor-keys", + "repository": { + "type": "git", + "url": "git+https://github.com/eslint/eslint-visitor-keys.git" + }, "scripts": { - "lint": "eslint lib tests/lib", - "pretest": "npm run -s lint", - "test": "nyc mocha tests/lib", "coverage": "nyc report --reporter lcov && opener coverage/lcov-report/index.html", - "generate-release": "eslint-generate-release", "generate-alpharelease": "eslint-generate-prerelease alpha", "generate-betarelease": "eslint-generate-prerelease beta", "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" - }, - "repository": "eslint/eslint-visitor-keys", - "keywords": [], - "author": "Toru Nagashima (https://github.com/mysticatea)", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/eslint/eslint-visitor-keys/issues" + "generate-release": "eslint-generate-release", + "lint": "eslint lib tests/lib", + "pretest": "npm run -s lint", + "publish-release": "eslint-publish-release", + "test": "nyc mocha tests/lib" }, - "homepage": "https://github.com/eslint/eslint-visitor-keys#readme" + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ajv/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ajv/package.json index 5b2ba14d2..9e21ae7af 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ajv/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ajv/package.json @@ -1,73 +1,46 @@ { - "name": "ajv", - "version": "5.5.2", - "description": "Another JSON Schema Validator", - "main": "lib/ajv.js", - "typings": "lib/ajv.d.ts", - "files": [ - "lib/", - "dist/", - "scripts/", - "LICENSE", - ".tonic_example.js" - ], - "scripts": { - "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", - "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", - "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", - "test-fast": "AJV_FAST_TEST=true npm run test-spec", - "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", - "bundle": "node ./scripts/bundle.js . Ajv pure_getters", - "bundle-regenerator": "node ./scripts/bundle.js regenerator", - "bundle-nodent": "node ./scripts/bundle.js nodent", - "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", - "bundle-beautify": "node ./scripts/bundle.js js-beautify", - "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", - "test-karma": "karma start --single-run --browsers PhantomJS", - "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", - "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", - "prepublish": "npm run build && npm run bundle-all", - "watch": "watch 'npm run build' ./lib/dot" - }, - "nyc": { - "exclude": [ - "**/spec/**", - "node_modules" - ], - "reporter": [ - "lcov", - "text-summary" + "_args": [ + [ + "ajv@5.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "ajv@5.5.2", + "_id": "ajv@5.5.2", + "_inBundle": false, + "_integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "_location": "/eslint/ajv", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ajv@5.5.2", + "name": "ajv", + "escapedName": "ajv", + "rawSpec": "5.5.2", + "saveSpec": null, + "fetchSpec": "5.5.2" }, - "repository": { - "type": "git", - "url": "https://github.com/epoberezkin/ajv.git" - }, - "keywords": [ - "JSON", - "schema", - "validator", - "validation", - "jsonschema", - "json-schema", - "json-schema-validator", - "json-schema-validation" + "_requiredBy": [ + "/eslint" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.nlark.com/ajv/download/ajv-5.5.2.tgz", + "_spec": "5.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, - "homepage": "https://github.com/epoberezkin/ajv", - "tonicExampleFilename": ".tonic_example.js", "dependencies": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.3.0" }, + "description": "Another JSON Schema Validator", "devDependencies": { "ajv-async": "^0.1.0", "bluebird": "^3.1.5", @@ -99,5 +72,63 @@ "typescript": "^2.6.2", "uglify-js": "^3.1.5", "watch": "^1.0.0" - } + }, + "files": [ + "lib/", + "dist/", + "scripts/", + "LICENSE", + ".tonic_example.js" + ], + "homepage": "https://github.com/epoberezkin/ajv", + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "license": "MIT", + "main": "lib/ajv.js", + "name": "ajv", + "nyc": { + "exclude": [ + "**/spec/**", + "node_modules" + ], + "reporter": [ + "lcov", + "text-summary" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "scripts": { + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "prepublish": "npm run build && npm run bundle-all", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test-cov": "nyc npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "watch": "watch 'npm run build' ./lib/dot" + }, + "tonicExampleFilename": ".tonic_example.js", + "typings": "lib/ajv.d.ts", + "version": "5.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ansi-regex/package.json index e94852fd7..6bbde52f7 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/eslint/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/eslint/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/cross-spawn/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/cross-spawn/package.json index 7c10c9720..dc78dfa14 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/cross-spawn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/cross-spawn/package.json @@ -1,23 +1,62 @@ { - "name": "cross-spawn", - "version": "5.1.0", - "description": "Cross platform child_process#spawn and child_process#spawnSync", - "main": "index.js", - "scripts": { - "test": "node test/prepare && mocha --bail test/test", - "lint": "eslint '{*.js,lib/**/*.js,test/**/*.js}'" + "_args": [ + [ + "cross-spawn@5.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cross-spawn@5.1.0", + "_id": "cross-spawn@5.1.0", + "_inBundle": false, + "_integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "_location": "/eslint/cross-spawn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cross-spawn@5.1.0", + "name": "cross-spawn", + "escapedName": "cross-spawn", + "rawSpec": "5.1.0", + "saveSpec": null, + "fetchSpec": "5.1.0" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "_spec": "5.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "IndigoUnited", + "email": "hello@indigounited.com", + "url": "http://indigounited.com" }, "bugs": { "url": "https://github.com/IndigoUnited/node-cross-spawn/issues/" }, - "repository": { - "type": "git", - "url": "git://github.com/IndigoUnited/node-cross-spawn.git" + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "description": "Cross platform child_process#spawn and child_process#spawnSync", + "devDependencies": { + "@satazor/eslint-config": "^3.0.0", + "eslint": "^3.0.0", + "expect.js": "^0.3.0", + "glob": "^7.0.0", + "mkdirp": "^0.5.1", + "mocha": "^3.0.2", + "once": "^1.4.0", + "rimraf": "^2.5.0" }, "files": [ "index.js", "lib" ], + "homepage": "https://github.com/IndigoUnited/node-cross-spawn#readme", "keywords": [ "spawn", "spawnSync", @@ -33,21 +72,16 @@ "cmd", "execute" ], - "author": "IndigoUnited (http://indigounited.com)", "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "main": "index.js", + "name": "cross-spawn", + "repository": { + "type": "git", + "url": "git://github.com/IndigoUnited/node-cross-spawn.git" }, - "devDependencies": { - "@satazor/eslint-config": "^3.0.0", - "eslint": "^3.0.0", - "expect.js": "^0.3.0", - "glob": "^7.0.0", - "mkdirp": "^0.5.1", - "mocha": "^3.0.2", - "once": "^1.4.0", - "rimraf": "^2.5.0" - } + "scripts": { + "lint": "eslint '{*.js,lib/**/*.js,test/**/*.js}'", + "test": "node test/prepare && mocha --bail test/test" + }, + "version": "5.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/debug/package.json index 191c81547..b952031e3 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/debug/package.json @@ -1,32 +1,56 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_development": true, + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/eslint/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/eslint" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +69,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/fast-deep-equal/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/fast-deep-equal/package.json index 1e7b6b499..7dccf8afa 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/fast-deep-equal/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/fast-deep-equal/package.json @@ -1,30 +1,40 @@ { - "name": "fast-deep-equal", - "version": "1.1.0", - "description": "Fast deep equal", - "main": "index.js", - "scripts": { - "eslint": "eslint *.js benchmark spec", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts", - "test": "npm run eslint && npm run test-ts && npm run test-cov" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + "_args": [ + [ + "fast-deep-equal@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "fast-deep-equal@1.1.0", + "_id": "fast-deep-equal@1.1.0", + "_inBundle": false, + "_integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "_location": "/eslint/fast-deep-equal", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fast-deep-equal@1.1.0", + "name": "fast-deep-equal", + "escapedName": "fast-deep-equal", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "keywords": [ - "fast", - "equal", - "deep-equal" + "_requiredBy": [ + "/eslint/ajv" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/fast-deep-equal/issues" }, - "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "description": "Fast deep equal", "devDependencies": { "benchmark": "^2.1.4", "coveralls": "^2.13.1", @@ -40,6 +50,19 @@ "typescript": "^2.6.1", "underscore": "^1.8.3" }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "keywords": [ + "fast", + "equal", + "deep-equal" + ], + "license": "MIT", + "main": "index.js", + "name": "fast-deep-equal", "nyc": { "exclude": [ "**/spec/**", @@ -50,9 +73,17 @@ "text-summary" ] }, - "files": [ - "index.js", - "index.d.ts" - ], - "types": "index.d.ts" + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + }, + "scripts": { + "eslint": "eslint *.js benchmark spec", + "test": "npm run eslint && npm run test-ts && npm run test-cov", + "test-cov": "nyc npm run test-spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts" + }, + "types": "index.d.ts", + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/globals/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/globals/package.json index dfe459b6f..4f9964ed7 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/globals/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/globals/package.json @@ -1,41 +1,77 @@ { - "name": "globals", - "version": "11.12.0", - "description": "Global identifiers from different JavaScript environments", - "license": "MIT", - "repository": "sindresorhus/globals", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "globals.json" - ], - "keywords": [ - "globals", - "global", - "identifiers", - "variables", - "vars", - "jshint", - "eslint", - "environments" - ], - "devDependencies": { - "ava": "0.21.0", - "xo": "0.18.0" - }, - "xo": { - "ignores": [ - "get-browser-globals.js" - ] - } + "_args": [ + [ + "globals@11.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "globals@11.12.0", + "_id": "globals@11.12.0", + "_inBundle": false, + "_integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "_location": "/eslint/globals", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "globals@11.12.0", + "name": "globals", + "escapedName": "globals", + "rawSpec": "11.12.0", + "saveSpec": null, + "fetchSpec": "11.12.0" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz", + "_spec": "11.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/globals/issues" + }, + "description": "Global identifiers from different JavaScript environments", + "devDependencies": { + "ava": "0.21.0", + "xo": "0.18.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "globals.json" + ], + "homepage": "https://github.com/sindresorhus/globals#readme", + "keywords": [ + "globals", + "global", + "identifiers", + "variables", + "vars", + "jshint", + "eslint", + "environments" + ], + "license": "MIT", + "name": "globals", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/globals.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "11.12.0", + "xo": { + "ignores": [ + "get-browser-globals.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/json-schema-traverse/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/json-schema-traverse/package.json index 843a4ce32..de3ac969b 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/json-schema-traverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/json-schema-traverse/package.json @@ -1,28 +1,40 @@ { - "name": "json-schema-traverse", - "version": "0.3.1", - "description": "Traverse JSON Schema passing each schema object to callback", - "main": "index.js", - "scripts": { - "eslint": "eslint index.js spec", - "test-spec": "mocha spec -R spec", - "test": "npm run eslint && nyc npm run test-spec" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/json-schema-traverse.git" + "_args": [ + [ + "json-schema-traverse@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "json-schema-traverse@0.3.1", + "_id": "json-schema-traverse@0.3.1", + "_inBundle": false, + "_integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "_location": "/eslint/json-schema-traverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-schema-traverse@0.3.1", + "name": "json-schema-traverse", + "escapedName": "json-schema-traverse", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" }, - "keywords": [ - "JSON-Schema", - "traverse", - "iterate" + "_requiredBy": [ + "/eslint/ajv" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/json-schema-traverse/issues" }, - "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme", + "description": "Traverse JSON Schema passing each schema object to callback", "devDependencies": { "coveralls": "^2.13.1", "eslint": "^3.19.0", @@ -30,6 +42,15 @@ "nyc": "^11.0.2", "pre-commit": "^1.2.2" }, + "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme", + "keywords": [ + "JSON-Schema", + "traverse", + "iterate" + ], + "license": "MIT", + "main": "index.js", + "name": "json-schema-traverse", "nyc": { "exclude": [ "**/spec/**", @@ -39,5 +60,15 @@ "lcov", "text-summary" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/json-schema-traverse.git" + }, + "scripts": { + "eslint": "eslint index.js spec", + "test": "npm run eslint && nyc npm run test-spec", + "test-spec": "mocha spec -R spec" + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ms/package.json index 49971890d..e463e2350 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/ms/package.json @@ -1,16 +1,44 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_development": true, + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/eslint/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/eslint/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +47,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +59,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/strip-ansi/package.json index 555f19461..4641686e7 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/eslint/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eslint/package.json b/admin/vue2/element-admin-v3/node_modules/eslint/package.json index 6bb7690c9..cdb3e5987 100644 --- a/admin/vue2/element-admin-v3/node_modules/eslint/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eslint/package.json @@ -1,38 +1,49 @@ { - "name": "eslint", - "version": "4.19.1", - "author": "Nicholas C. Zakas ", - "description": "An AST-based pattern checker for JavaScript.", - "bin": { - "eslint": "./bin/eslint.js" + "_args": [ + [ + "eslint@4.19.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "eslint@4.19.1", + "_id": "eslint@4.19.1", + "_inBundle": false, + "_integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", + "_location": "/eslint", + "_phantomChildren": { + "co": "4.6.0", + "fast-json-stable-stringify": "2.1.0", + "lru-cache": "4.1.5", + "shebang-command": "1.2.0", + "which": "1.3.1" }, - "main": "./lib/api.js", - "scripts": { - "test": "node Makefile.js test", - "lint": "node Makefile.js lint", - "fuzz": "node Makefile.js fuzz", - "release": "node Makefile.js release", - "ci-release": "node Makefile.js ciRelease", - "alpharelease": "node Makefile.js prerelease -- alpha", - "betarelease": "node Makefile.js prerelease -- beta", - "docs": "node Makefile.js docs", - "gensite": "node Makefile.js gensite", - "browserify": "node Makefile.js browserify", - "perf": "node Makefile.js perf", - "profile": "beefy tests/bench/bench.js --open -- -t brfs -t ./tests/bench/xform-rules.js -r espree", - "coveralls": "cat ./coverage/lcov.info | coveralls" + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint@4.19.1", + "name": "eslint", + "escapedName": "eslint", + "rawSpec": "4.19.1", + "saveSpec": null, + "fetchSpec": "4.19.1" }, - "files": [ - "LICENSE", - "README.md", - "bin", - "conf", - "lib", - "messages" + "_requiredBy": [ + "#DEV:/" ], - "repository": "eslint/eslint", - "homepage": "https://eslint.org", - "bugs": "https://github.com/eslint/eslint/issues/", + "_resolved": "https://registry.nlark.com/eslint/download/eslint-4.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-4.19.1.tgz", + "_spec": "4.19.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nicholas C. Zakas", + "email": "nicholas+npm@nczconsulting.com" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "bugs": { + "url": "https://github.com/eslint/eslint/issues/" + }, "dependencies": { "ajv": "^5.3.0", "babel-code-frame": "^6.22.0", @@ -73,6 +84,7 @@ "table": "4.0.2", "text-table": "~0.2.0" }, + "description": "An AST-based pattern checker for JavaScript.", "devDependencies": { "babel-polyfill": "^6.23.0", "babel-preset-es2015": "^6.24.1", @@ -113,6 +125,18 @@ "temp": "^0.8.3", "through": "^2.3.8" }, + "engines": { + "node": ">=4" + }, + "files": [ + "LICENSE", + "README.md", + "bin", + "conf", + "lib", + "messages" + ], + "homepage": "https://eslint.org", "keywords": [ "ast", "lint", @@ -121,7 +145,26 @@ "espree" ], "license": "MIT", - "engines": { - "node": ">=4" - } + "main": "./lib/api.js", + "name": "eslint", + "repository": { + "type": "git", + "url": "git+https://github.com/eslint/eslint.git" + }, + "scripts": { + "alpharelease": "node Makefile.js prerelease -- alpha", + "betarelease": "node Makefile.js prerelease -- beta", + "browserify": "node Makefile.js browserify", + "ci-release": "node Makefile.js ciRelease", + "coveralls": "cat ./coverage/lcov.info | coveralls", + "docs": "node Makefile.js docs", + "fuzz": "node Makefile.js fuzz", + "gensite": "node Makefile.js gensite", + "lint": "node Makefile.js lint", + "perf": "node Makefile.js perf", + "profile": "beefy tests/bench/bench.js --open -- -t brfs -t ./tests/bench/xform-rules.js -r espree", + "release": "node Makefile.js release", + "test": "node Makefile.js test" + }, + "version": "4.19.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/acorn/package.json index 41f858e94..0a0e512e1 100644 --- a/admin/vue2/element-admin-v3/node_modules/espree/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/espree/node_modules/acorn/package.json @@ -1,60 +1,328 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@5.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn@5.7.4", + "_id": "acorn@5.7.4", + "_inBundle": false, + "_integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "_location": "/espree/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@5.7.4", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "5.7.4", + "saveSpec": null, + "fetchSpec": "5.7.4" + }, + "_requiredBy": [ + "/espree" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", + "_spec": "5.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/acornjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Heine" + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Boopesh Mahendran" + }, + { + "name": "Bradley Heinz" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Charmander" + }, + { + "name": "Chris McKnight" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "ehmicky" + }, + { + "name": "Eugene Obrezkov" + }, + { + "name": "Felix Maier" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "John-David Dalton" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "Kai Cataldo" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "laosb" + }, + { + "name": "luckyzeng" + }, + { + "name": "Marek" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mat Garcia" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "naoh" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Renée Kooi" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Shahar Soel" + }, + { + "name": "Sheel Bedi" + }, + { + "name": "Simen Bekkhus" + }, + { + "name": "Teddy Katz" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "Victor Homyakov" + }, + { + "name": "Wexpo Lyu" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/acornjs/acorn", - "main": "dist/acorn.js", - "module": "dist/acorn.es.js", - "version": "5.7.4", + "devDependencies": { + "eslint": "^4.10.0", + "eslint-config-standard": "^10.2.1", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-standard": "^3.0.1", + "rollup": "^0.45.0", + "rollup-plugin-buble": "^0.16.0", + "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72", + "test262-parser-runner": "^0.4.0", + "unicode-11.0.0": "^0.7.7" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/acornjs/acorn", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" }, { "name": "Adrian Heine", "email": "http://adrianheine.de" } ], + "module": "dist/acorn.es.js", + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/acornjs/acorn.git" + "url": "git+https://github.com/acornjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepare": "npm run build && node test/run.js && node test/lint.js", - "test": "node test/run.js && node test/lint.js", - "pretest": "npm run build:main && npm run build:loose", - "test:test262": "node bin/run_test262.js", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js && rollup -c rollup/config.loose_es.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js && rollup -c rollup/config.loose_es.js", - "build:bin": "rollup -c rollup/config.bin.js", - "lint": "eslint src/" - }, - "bin": { - "acorn": "./bin/acorn" + "lint": "eslint src/", + "prepare": "npm run build && node test/run.js && node test/lint.js", + "pretest": "npm run build:main && npm run build:loose", + "test": "node test/run.js && node test/lint.js", + "test:test262": "node bin/run_test262.js" }, - "devDependencies": { - "eslint": "^4.10.0", - "eslint-config-standard": "^10.2.1", - "eslint-plugin-import": "^2.2.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.5.0", - "eslint-plugin-standard": "^3.0.1", - "rollup": "^0.45.0", - "rollup-plugin-buble": "^0.16.0", - "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72", - "test262-parser-runner": "^0.4.0", - "unicode-11.0.0": "^0.7.7" - } + "version": "5.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/espree/package.json b/admin/vue2/element-admin-v3/node_modules/espree/package.json index d7b92f329..18e20cd8c 100644 --- a/admin/vue2/element-admin-v3/node_modules/espree/package.json +++ b/admin/vue2/element-admin-v3/node_modules/espree/package.json @@ -1,26 +1,46 @@ { - "name": "espree", - "description": "An Esprima-compatible JavaScript parser built on Acorn", - "author": "Nicholas C. Zakas ", - "homepage": "https://github.com/eslint/espree", - "main": "espree.js", - "version": "3.5.4", - "files": [ - "lib", - "espree.js" + "_args": [ + [ + "espree@3.5.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=0.10.0" + "_development": true, + "_from": "espree@3.5.4", + "_id": "espree@3.5.4", + "_inBundle": false, + "_integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "_location": "/espree", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "espree@3.5.4", + "name": "espree", + "escapedName": "espree", + "rawSpec": "3.5.4", + "saveSpec": null, + "fetchSpec": "3.5.4" + }, + "_requiredBy": [ + "/eslint", + "/vue-eslint-parser" + ], + "_resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz?cache=0&sync_timestamp=1607144055171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-3.5.4.tgz", + "_spec": "3.5.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nicholas C. Zakas", + "email": "nicholas+npm@nczconsulting.com" }, - "repository": "eslint/espree", "bugs": { "url": "http://github.com/eslint/espree.git" }, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^5.5.0", "acorn-jsx": "^3.0.0" }, + "description": "An Esprima-compatible JavaScript parser built on Acorn", "devDependencies": { "browserify": "^7.0.0", "chai": "^1.10.0", @@ -38,6 +58,14 @@ "shelljs-nodecli": "^0.1.1", "unicode-6.3.0": "~0.1.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "lib", + "espree.js" + ], + "homepage": "https://github.com/eslint/espree", "keywords": [ "ast", "ecmascript", @@ -46,15 +74,23 @@ "syntax", "acorn" ], + "license": "BSD-2-Clause", + "main": "espree.js", + "name": "espree", + "repository": { + "type": "git", + "url": "git+https://github.com/eslint/espree.git" + }, "scripts": { + "alpharelease": "eslint-prelease alpha", + "betarelease": "eslint-prelease beta", + "browserify": "node Makefile.js browserify", + "ci-release": "eslint-ci-release", "generate-regex": "node tools/generate-identifier-regex.js", - "test": "npm run-script lint && node Makefile.js test", + "gh-release": "eslint-gh-release", "lint": "node Makefile.js lint", "release": "eslint-release", - "ci-release": "eslint-ci-release", - "gh-release": "eslint-gh-release", - "alpharelease": "eslint-prelease alpha", - "betarelease": "eslint-prelease beta", - "browserify": "node Makefile.js browserify" - } + "test": "npm run-script lint && node Makefile.js test" + }, + "version": "3.5.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/esprima/package.json b/admin/vue2/element-admin-v3/node_modules/esprima/package.json index 4148b8ce4..f8a41b17e 100644 --- a/admin/vue2/element-admin-v3/node_modules/esprima/package.json +++ b/admin/vue2/element-admin-v3/node_modules/esprima/package.json @@ -1,39 +1,45 @@ { - "name": "esprima", - "description": "ECMAScript parsing infrastructure for multipurpose analysis", - "homepage": "http://esprima.org", - "main": "dist/esprima.js", - "bin": { - "esparse": "./bin/esparse.js", - "esvalidate": "./bin/esvalidate.js" - }, - "version": "4.0.1", - "files": [ - "bin", - "dist/esprima.js" + "_args": [ + [ + "esprima@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=4" + "_development": true, + "_from": "esprima@4.0.1", + "_id": "esprima@4.0.1", + "_inBundle": false, + "_integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "_location": "/esprima", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "esprima@4.0.1", + "name": "esprima", + "escapedName": "esprima", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" }, + "_requiredBy": [ + "/js-yaml" + ], + "_resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ariya Hidayat", "email": "ariya.hidayat@gmail.com" }, - "maintainers": [ - { - "name": "Ariya Hidayat", - "email": "ariya.hidayat@gmail.com", - "web": "http://ariya.ofilabs.com" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/jquery/esprima.git" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "bugs": { "url": "https://github.com/jquery/esprima/issues" }, - "license": "BSD-2-Clause", + "description": "ECMAScript parsing infrastructure for multipurpose analysis", "devDependencies": { "codecov.io": "~0.1.6", "escomplex-js": "1.2.0", @@ -62,6 +68,14 @@ "unicode-8.0.0": "~0.7.0", "webpack": "~1.14.0" }, + "engines": { + "node": ">=4" + }, + "files": [ + "bin", + "dist/esprima.js" + ], + "homepage": "http://esprima.org", "keywords": [ "ast", "ecmascript", @@ -70,43 +84,58 @@ "parser", "syntax" ], + "license": "BSD-2-Clause", + "main": "dist/esprima.js", + "maintainers": [ + { + "name": "Ariya Hidayat", + "email": "ariya.hidayat@gmail.com", + "url": "http://ariya.ofilabs.com" + } + ], + "name": "esprima", + "repository": { + "type": "git", + "url": "git+https://github.com/jquery/esprima.git" + }, "scripts": { + "all-tests": "npm run verify-line-ending && npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests", + "analyze-coverage": "istanbul cover test/unit-tests.js", + "api-tests": "mocha -R dot test/api-tests.js", + "appveyor": "npm run compile && npm run all-tests && npm run browser-tests", + "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer", + "benchmark-parser": "node -expose_gc test/benchmark-parser.js", + "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js", + "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run", + "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100", "check-version": "node test/check-version.js", - "tslint": "tslint src/*.ts", + "circleci": "npm test && npm run codecov && npm run downstream", "code-style": "tsfmt --verify src/*.ts && tsfmt --verify test/*.js", - "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js", + "codecov": "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml", + "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js", "complexity": "node test/check-complexity.js", - "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity", - "hostile-env-tests": "node test/hostile-environment-tests.js", - "unit-tests": "node test/unit-tests.js", - "api-tests": "mocha -R dot test/api-tests.js", + "downstream": "node test/downstream.js", + "droneio": "npm run compile && npm run all-tests && npm run saucelabs", + "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage", + "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js", + "generate-fixtures": "node tools/generate-fixtures.js", + "generate-regex": "node tools/generate-identifier-regex.js", + "generate-xhtml-entities": "node tools/generate-xhtml-entities.js", "grammar-tests": "node test/grammar-tests.js", + "hostile-env-tests": "node test/hostile-environment-tests.js", + "prepublish": "npm run compile", + "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor", "regression-tests": "node test/regression-tests.js", - "all-tests": "npm run verify-line-ending && npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests", - "verify-line-ending": "node test/verify-line-ending.js", - "generate-fixtures": "node tools/generate-fixtures.js", - "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run", + "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari", "saucelabs-evergreen": "cd test && karma start saucelabs-evergreen.conf.js", - "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js", "saucelabs-ie": "cd test && karma start saucelabs-ie.conf.js", - "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari", - "analyze-coverage": "istanbul cover test/unit-tests.js", - "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100", - "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage", - "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js", + "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js", + "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity", "test": "npm run compile && npm run all-tests && npm run static-analysis && npm run dynamic-analysis", - "prepublish": "npm run compile", - "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor", - "benchmark-parser": "node -expose_gc test/benchmark-parser.js", - "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js", - "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer", - "codecov": "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml", - "downstream": "node test/downstream.js", "travis": "npm test", - "circleci": "npm test && npm run codecov && npm run downstream", - "appveyor": "npm run compile && npm run all-tests && npm run browser-tests", - "droneio": "npm run compile && npm run all-tests && npm run saucelabs", - "generate-regex": "node tools/generate-identifier-regex.js", - "generate-xhtml-entities": "node tools/generate-xhtml-entities.js" - } + "tslint": "tslint src/*.ts", + "unit-tests": "node test/unit-tests.js", + "verify-line-ending": "node test/verify-line-ending.js" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/esquery/node_modules/estraverse/package.json b/admin/vue2/element-admin-v3/node_modules/esquery/node_modules/estraverse/package.json index bc99e7c4a..29f39ec2f 100644 --- a/admin/vue2/element-admin-v3/node_modules/esquery/node_modules/estraverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/esquery/node_modules/estraverse/package.json @@ -1,23 +1,37 @@ { - "name": "estraverse", - "description": "ECMAScript JS AST traversal functions", - "homepage": "https://github.com/estools/estraverse", - "main": "estraverse.js", - "version": "5.2.0", - "engines": { - "node": ">=4.0" + "_args": [ + [ + "estraverse@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "estraverse@5.2.0", + "_id": "estraverse@5.2.0", + "_inBundle": false, + "_integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "_location": "/esquery/estraverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "estraverse@5.2.0", + "name": "estraverse", + "escapedName": "estraverse", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" - } + "_requiredBy": [ + "/esquery" ], - "repository": { - "type": "git", - "url": "http://github.com/estools/estraverse.git" + "_resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/estools/estraverse/issues" }, + "description": "ECMAScript JS AST traversal functions", "devDependencies": { "babel-preset-env": "^1.6.1", "babel-register": "^6.3.13", @@ -31,10 +45,28 @@ "jshint": "^2.5.6", "mocha": "^2.1.0" }, + "engines": { + "node": ">=4.0" + }, + "homepage": "https://github.com/estools/estraverse", "license": "BSD-2-Clause", + "main": "estraverse.js", + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "http://github.com/Constellation" + } + ], + "name": "estraverse", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/estools/estraverse.git" + }, "scripts": { - "test": "npm run-script lint && npm run-script unit-test", "lint": "jshint estraverse.js", + "test": "npm run-script lint && npm run-script unit-test", "unit-test": "mocha --compilers js:babel-register" - } + }, + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/esquery/package.json b/admin/vue2/element-admin-v3/node_modules/esquery/package.json index 3d818750d..25c6d973d 100644 --- a/admin/vue2/element-admin-v3/node_modules/esquery/package.json +++ b/admin/vue2/element-admin-v3/node_modules/esquery/package.json @@ -1,11 +1,67 @@ { - "name": "esquery", - "version": "1.4.0", - "author": "Joel Feenstra ", + "_args": [ + [ + "esquery@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "esquery@1.4.0", + "_id": "esquery@1.4.0", + "_inBundle": false, + "_integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", + "_location": "/esquery", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "esquery@1.4.0", + "name": "esquery", + "escapedName": "esquery", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/eslint", + "/vue-eslint-parser" + ], + "_resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Joel Feenstra", + "email": "jrfeenst+esquery@gmail.com" + }, + "bugs": { + "url": "https://github.com/estools/esquery/issues" + }, "contributors": [], + "dependencies": { + "estraverse": "^5.1.0" + }, "description": "A query library for ECMAScript AST using a CSS selector like query language.", - "main": "dist/esquery.min.js", - "module": "dist/esquery.esm.min.js", + "devDependencies": { + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/register": "^7.9.0", + "@rollup/plugin-commonjs": "^11.1.0", + "@rollup/plugin-json": "^4.0.2", + "@rollup/plugin-node-resolve": "^7.1.3", + "babel-plugin-transform-es2017-object-entries": "0.0.5", + "chai": "^4.2.0", + "eslint": "^6.8.0", + "esprima": "~4.0.1", + "mocha": "^7.1.1", + "nyc": "^15.0.1", + "pegjs": "~0.10.0", + "rollup": "^1.32.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-terser": "^5.3.0" + }, + "engines": { + "node": ">=0.10" + }, "files": [ "dist/*.js", "dist/*.map", @@ -13,6 +69,17 @@ "license.txt", "README.md" ], + "homepage": "https://github.com/estools/esquery/", + "keywords": [ + "ast", + "ecmascript", + "javascript", + "query" + ], + "license": "BSD-3-Clause", + "main": "dist/esquery.min.js", + "module": "dist/esquery.esm.min.js", + "name": "esquery", "nyc": { "branches": 100, "lines": 100, @@ -28,51 +95,19 @@ "tests" ] }, + "repository": { + "type": "git", + "url": "git+https://github.com/estools/esquery.git" + }, "scripts": { - "prepublishOnly": "npm run build && npm test", - "build:parser": "rm parser.js && pegjs --cache --format umd -o \"parser.js\" \"grammar.pegjs\"", - "build:browser": "rollup -c", "build": "npm run build:parser && npm run build:browser", + "build:browser": "rollup -c", + "build:parser": "rm parser.js && pegjs --cache --format umd -o \"parser.js\" \"grammar.pegjs\"", + "lint": "eslint .", "mocha": "mocha --require chai/register-assert --require @babel/register tests", + "prepublishOnly": "npm run build && npm test", "test": "nyc npm run mocha && npm run lint", - "test:ci": "npm run mocha", - "lint": "eslint ." - }, - "repository": { - "type": "git", - "url": "https://github.com/estools/esquery.git" + "test:ci": "npm run mocha" }, - "bugs": "https://github.com/estools/esquery/issues", - "homepage": "https://github.com/estools/esquery/", - "keywords": [ - "ast", - "ecmascript", - "javascript", - "query" - ], - "devDependencies": { - "@babel/core": "^7.9.0", - "@babel/preset-env": "^7.9.5", - "@babel/register": "^7.9.0", - "@rollup/plugin-commonjs": "^11.1.0", - "@rollup/plugin-json": "^4.0.2", - "@rollup/plugin-node-resolve": "^7.1.3", - "babel-plugin-transform-es2017-object-entries": "0.0.5", - "chai": "^4.2.0", - "eslint": "^6.8.0", - "esprima": "~4.0.1", - "mocha": "^7.1.1", - "nyc": "^15.0.1", - "pegjs": "~0.10.0", - "rollup": "^1.32.1", - "rollup-plugin-babel": "^4.4.0", - "rollup-plugin-terser": "^5.3.0" - }, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10" - }, - "dependencies": { - "estraverse": "^5.1.0" - } + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/esrecurse/node_modules/estraverse/package.json b/admin/vue2/element-admin-v3/node_modules/esrecurse/node_modules/estraverse/package.json index bc99e7c4a..8bf6dc388 100644 --- a/admin/vue2/element-admin-v3/node_modules/esrecurse/node_modules/estraverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/esrecurse/node_modules/estraverse/package.json @@ -1,23 +1,36 @@ { - "name": "estraverse", - "description": "ECMAScript JS AST traversal functions", - "homepage": "https://github.com/estools/estraverse", - "main": "estraverse.js", - "version": "5.2.0", - "engines": { - "node": ">=4.0" + "_args": [ + [ + "estraverse@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "estraverse@5.2.0", + "_id": "estraverse@5.2.0", + "_inBundle": false, + "_integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "_location": "/esrecurse/estraverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "estraverse@5.2.0", + "name": "estraverse", + "escapedName": "estraverse", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" - } + "_requiredBy": [ + "/esrecurse" ], - "repository": { - "type": "git", - "url": "http://github.com/estools/estraverse.git" + "_resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/estools/estraverse/issues" }, + "description": "ECMAScript JS AST traversal functions", "devDependencies": { "babel-preset-env": "^1.6.1", "babel-register": "^6.3.13", @@ -31,10 +44,28 @@ "jshint": "^2.5.6", "mocha": "^2.1.0" }, + "engines": { + "node": ">=4.0" + }, + "homepage": "https://github.com/estools/estraverse", "license": "BSD-2-Clause", + "main": "estraverse.js", + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "http://github.com/Constellation" + } + ], + "name": "estraverse", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/estools/estraverse.git" + }, "scripts": { - "test": "npm run-script lint && npm run-script unit-test", "lint": "jshint estraverse.js", + "test": "npm run-script lint && npm run-script unit-test", "unit-test": "mocha --compilers js:babel-register" - } + }, + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/esrecurse/package.json b/admin/vue2/element-admin-v3/node_modules/esrecurse/package.json index dec5b1bc1..f67ac821e 100644 --- a/admin/vue2/element-admin-v3/node_modules/esrecurse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/esrecurse/package.json @@ -1,26 +1,45 @@ { - "name": "esrecurse", - "description": "ECMAScript AST recursive visitor", - "homepage": "https://github.com/estools/esrecurse", - "main": "esrecurse.js", - "version": "4.3.0", - "engines": { - "node": ">=4.0" + "_args": [ + [ + "esrecurse@4.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "esrecurse@4.3.0", + "_id": "esrecurse@4.3.0", + "_inBundle": false, + "_integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "_location": "/esrecurse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "esrecurse@4.3.0", + "name": "esrecurse", + "escapedName": "esrecurse", + "rawSpec": "4.3.0", + "saveSpec": null, + "fetchSpec": "4.3.0" }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "https://github.com/Constellation" - } + "_requiredBy": [ + "/eslint-scope", + "/webpack/eslint-scope" ], - "repository": { - "type": "git", - "url": "https://github.com/estools/esrecurse.git" + "_resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", + "_spec": "4.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "babel": { + "presets": [ + "es2015" + ] + }, + "bugs": { + "url": "https://github.com/estools/esrecurse/issues" }, "dependencies": { "estraverse": "^5.2.0" }, + "description": "ECMAScript AST recursive visitor", "devDependencies": { "babel-cli": "^6.24.1", "babel-eslint": "^7.2.3", @@ -38,15 +57,28 @@ "jsdoc": "^3.3.0-alpha10", "minimist": "^1.1.0" }, + "engines": { + "node": ">=4.0" + }, + "homepage": "https://github.com/estools/esrecurse", "license": "BSD-2-Clause", + "main": "esrecurse.js", + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "https://github.com/Constellation" + } + ], + "name": "esrecurse", + "repository": { + "type": "git", + "url": "git+https://github.com/estools/esrecurse.git" + }, "scripts": { + "lint": "gulp lint", "test": "gulp travis", - "unit-test": "gulp test", - "lint": "gulp lint" + "unit-test": "gulp test" }, - "babel": { - "presets": [ - "es2015" - ] - } + "version": "4.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/estraverse/package.json b/admin/vue2/element-admin-v3/node_modules/estraverse/package.json index 113823867..b6fff99d5 100644 --- a/admin/vue2/element-admin-v3/node_modules/estraverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/estraverse/package.json @@ -1,23 +1,37 @@ { - "name": "estraverse", - "description": "ECMAScript JS AST traversal functions", - "homepage": "https://github.com/estools/estraverse", - "main": "estraverse.js", - "version": "4.3.0", - "engines": { - "node": ">=4.0" + "_args": [ + [ + "estraverse@4.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "estraverse@4.3.0", + "_id": "estraverse@4.3.0", + "_inBundle": false, + "_integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "_location": "/estraverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "estraverse@4.3.0", + "name": "estraverse", + "escapedName": "estraverse", + "rawSpec": "4.3.0", + "saveSpec": null, + "fetchSpec": "4.3.0" }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" - } + "_requiredBy": [ + "/eslint-scope", + "/webpack/eslint-scope" ], - "repository": { - "type": "git", - "url": "http://github.com/estools/estraverse.git" + "_resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "_spec": "4.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/estools/estraverse/issues" }, + "description": "ECMAScript JS AST traversal functions", "devDependencies": { "babel-preset-env": "^1.6.1", "babel-register": "^6.3.13", @@ -31,10 +45,28 @@ "jshint": "^2.5.6", "mocha": "^2.1.0" }, + "engines": { + "node": ">=4.0" + }, + "homepage": "https://github.com/estools/estraverse", "license": "BSD-2-Clause", + "main": "estraverse.js", + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "http://github.com/Constellation" + } + ], + "name": "estraverse", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/estools/estraverse.git" + }, "scripts": { - "test": "npm run-script lint && npm run-script unit-test", "lint": "jshint estraverse.js", + "test": "npm run-script lint && npm run-script unit-test", "unit-test": "mocha --compilers js:babel-register" - } + }, + "version": "4.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/esutils/package.json b/admin/vue2/element-admin-v3/node_modules/esutils/package.json index 8396f4cee..18ee13d9b 100644 --- a/admin/vue2/element-admin-v3/node_modules/esutils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/esutils/package.json @@ -1,44 +1,81 @@ { - "name": "esutils", + "_args": [ + [ + "esutils@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "esutils@2.0.3", + "_id": "esutils@2.0.3", + "_inBundle": false, + "_integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "_location": "/esutils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "esutils@2.0.3", + "name": "esutils", + "escapedName": "esutils", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/@babel/highlight", + "/@babel/types", + "/babel-code-frame", + "/babel-plugin-transform-vue-jsx", + "/babel-types", + "/doctrine", + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/estools/esutils/issues" + }, "description": "utility box for ECMAScript language tools", - "homepage": "https://github.com/estools/esutils", - "main": "lib/utils.js", - "version": "2.0.3", - "engines": { - "node": ">=0.10.0" + "devDependencies": { + "chai": "~1.7.2", + "coffee-script": "~1.6.3", + "jshint": "2.6.3", + "mocha": "~2.2.1", + "regenerate": "~1.3.1", + "unicode-9.0.0": "~0.7.0" }, "directories": { "lib": "./lib" }, + "engines": { + "node": ">=0.10.0" + }, "files": [ "LICENSE.BSD", "README.md", "lib" ], + "homepage": "https://github.com/estools/esutils", + "license": "BSD-2-Clause", + "main": "lib/utils.js", "maintainers": [ { "name": "Yusuke Suzuki", "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" + "url": "http://github.com/Constellation" } ], + "name": "esutils", "repository": { "type": "git", - "url": "http://github.com/estools/esutils.git" + "url": "git+ssh://git@github.com/estools/esutils.git" }, - "devDependencies": { - "chai": "~1.7.2", - "coffee-script": "~1.6.3", - "jshint": "2.6.3", - "mocha": "~2.2.1", - "regenerate": "~1.3.1", - "unicode-9.0.0": "~0.7.0" - }, - "license": "BSD-2-Clause", "scripts": { - "test": "npm run-script lint && npm run-script unit-test", + "generate-regex": "node tools/generate-identifier-regex.js", "lint": "jshint lib/*.js", - "unit-test": "mocha --compilers coffee:coffee-script -R spec", - "generate-regex": "node tools/generate-identifier-regex.js" - } + "test": "npm run-script lint && npm run-script unit-test", + "unit-test": "mocha --compilers coffee:coffee-script -R spec" + }, + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/etag/package.json b/admin/vue2/element-admin-v3/node_modules/etag/package.json index b06ab803c..1bec81caa 100644 --- a/admin/vue2/element-admin-v3/node_modules/etag/package.json +++ b/admin/vue2/element-admin-v3/node_modules/etag/package.json @@ -1,18 +1,48 @@ { - "name": "etag", - "description": "Create simple HTTP ETags", - "version": "1.8.1", - "contributors": [ - "Douglas Christopher Wilson ", - "David Björklund " + "_args": [ + [ + "etag@1.8.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "etag", - "http", - "res" + "_from": "etag@1.8.1", + "_id": "etag@1.8.1", + "_inBundle": false, + "_integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "_location": "/etag", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "etag@1.8.1", + "name": "etag", + "escapedName": "etag", + "rawSpec": "1.8.1", + "saveSpec": null, + "fetchSpec": "1.8.1" + }, + "_requiredBy": [ + "/express", + "/send", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "_spec": "1.8.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/etag/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "David Björklund", + "email": "david.bjorklund@gmail.com" + } ], - "repository": "jshttp/etag", + "description": "Create simple HTTP ETags", "devDependencies": { "beautify-benchmark": "0.2.4", "benchmark": "2.1.4", @@ -28,14 +58,26 @@ "safe-buffer": "5.1.1", "seedrandom": "2.4.3" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/etag#readme", + "keywords": [ + "etag", + "http", + "res" + ], + "license": "MIT", + "name": "etag", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/etag.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -43,5 +85,6 @@ "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "1.8.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/eventemitter3/package.json b/admin/vue2/element-admin-v3/node_modules/eventemitter3/package.json index 3c575b467..a4c9f9c3a 100644 --- a/admin/vue2/element-admin-v3/node_modules/eventemitter3/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eventemitter3/package.json @@ -1,26 +1,55 @@ { - "name": "eventemitter3", - "version": "4.0.7", + "_args": [ + [ + "eventemitter3@4.0.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "eventemitter3@4.0.7", + "_id": "eventemitter3@4.0.7", + "_inBundle": false, + "_integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", + "_location": "/eventemitter3", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eventemitter3@4.0.7", + "name": "eventemitter3", + "escapedName": "eventemitter3", + "rawSpec": "4.0.7", + "saveSpec": null, + "fetchSpec": "4.0.7" + }, + "_requiredBy": [ + "/http-proxy" + ], + "_resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&sync_timestamp=1598517819668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz", + "_spec": "4.0.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Arnout Kazemier" + }, + "bugs": { + "url": "https://github.com/primus/eventemitter3/issues" + }, "description": "EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.", - "main": "index.js", - "typings": "index.d.ts", - "scripts": { - "browserify": "rm -rf umd && mkdir umd && browserify index.js -s EventEmitter3 -o umd/eventemitter3.js", - "minify": "uglifyjs umd/eventemitter3.js --source-map -cm -o umd/eventemitter3.min.js", - "benchmark": "find benchmarks/run -name '*.js' -exec benchmarks/start.sh {} \\;", - "test": "nyc --reporter=html --reporter=text mocha test/test.js", - "prepublishOnly": "npm run browserify && npm run minify", - "test-browser": "node test/browser.js" + "devDependencies": { + "assume": "^2.2.0", + "browserify": "^16.5.0", + "mocha": "^8.0.1", + "nyc": "^15.1.0", + "pre-commit": "^1.2.0", + "sauce-browsers": "^2.0.0", + "sauce-test": "^1.3.3", + "uglify-js": "^3.9.0" }, "files": [ "index.js", "index.d.ts", "umd" ], - "repository": { - "type": "git", - "url": "git://github.com/primus/eventemitter3.git" - }, + "homepage": "https://github.com/primus/eventemitter3#readme", "keywords": [ "EventEmitter", "EventEmitter2", @@ -38,19 +67,21 @@ "reactor", "subscribe" ], - "author": "Arnout Kazemier", "license": "MIT", - "bugs": { - "url": "https://github.com/primus/eventemitter3/issues" + "main": "index.js", + "name": "eventemitter3", + "repository": { + "type": "git", + "url": "git://github.com/primus/eventemitter3.git" }, - "devDependencies": { - "assume": "^2.2.0", - "browserify": "^16.5.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0", - "pre-commit": "^1.2.0", - "sauce-browsers": "^2.0.0", - "sauce-test": "^1.3.3", - "uglify-js": "^3.9.0" - } + "scripts": { + "benchmark": "find benchmarks/run -name '*.js' -exec benchmarks/start.sh {} \\;", + "browserify": "rm -rf umd && mkdir umd && browserify index.js -s EventEmitter3 -o umd/eventemitter3.js", + "minify": "uglifyjs umd/eventemitter3.js --source-map -cm -o umd/eventemitter3.min.js", + "prepublishOnly": "npm run browserify && npm run minify", + "test": "nyc --reporter=html --reporter=text mocha test/test.js", + "test-browser": "node test/browser.js" + }, + "typings": "index.d.ts", + "version": "4.0.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/events/package.json b/admin/vue2/element-admin-v3/node_modules/events/package.json index b9580d881..df9056740 100644 --- a/admin/vue2/element-admin-v3/node_modules/events/package.json +++ b/admin/vue2/element-admin-v3/node_modules/events/package.json @@ -1,26 +1,41 @@ { - "name": "events", - "version": "3.3.0", - "description": "Node's event emitter for all engines.", - "keywords": [ - "events", - "eventEmitter", - "eventDispatcher", - "listeners" + "_args": [ + [ + "events@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Irakli Gozalishvili (http://jeditoolkit.com)", - "repository": { - "type": "git", - "url": "git://github.com/Gozala/events.git", - "web": "https://github.com/Gozala/events" + "_from": "events@3.3.0", + "_id": "events@3.3.0", + "_inBundle": false, + "_integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", + "_location": "/events", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "events@3.3.0", + "name": "events", + "escapedName": "events", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz?cache=0&sync_timestamp=1614444838320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Irakli Gozalishvili", + "email": "rfobic@gmail.com", + "url": "http://jeditoolkit.com" }, "bugs": { "url": "http://github.com/Gozala/events/issues/" }, - "main": "./events.js", - "engines": { - "node": ">=0.8.x" - }, + "description": "Node's event emitter for all engines.", "devDependencies": { "airtap": "^1.0.0", "functions-have-names": "^1.2.1", @@ -29,9 +44,27 @@ "isarray": "^2.0.5", "tape": "^5.0.0" }, + "engines": { + "node": ">=0.8.x" + }, + "homepage": "https://github.com/Gozala/events#readme", + "keywords": [ + "events", + "eventEmitter", + "eventDispatcher", + "listeners" + ], + "license": "MIT", + "main": "./events.js", + "name": "events", + "repository": { + "type": "git", + "url": "git://github.com/Gozala/events.git", + "web": "https://github.com/Gozala/events" + }, "scripts": { "test": "node tests/index.js", "test:browsers": "airtap -- tests/index.js" }, - "license": "MIT" + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/eventsource/package.json b/admin/vue2/element-admin-v3/node_modules/eventsource/package.json index 6d1849faa..9d46eed05 100644 --- a/admin/vue2/element-admin-v3/node_modules/eventsource/package.json +++ b/admin/vue2/element-admin-v3/node_modules/eventsource/package.json @@ -1,34 +1,43 @@ { - "name": "eventsource", - "version": "1.1.0", - "description": "W3C compliant EventSource client for Node.js and browser (polyfill)", - "keywords": [ - "eventsource", - "http", - "streaming", - "sse", - "polyfill" + "_args": [ + [ + "eventsource@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "http://github.com/EventSource/eventsource", - "author": "Aslak Hellesøy ", - "repository": { - "type": "git", - "url": "git://github.com/EventSource/eventsource.git" + "_from": "eventsource@1.1.0", + "_id": "eventsource@1.1.0", + "_inBundle": false, + "_integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=", + "_location": "/eventsource", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eventsource@1.1.0", + "name": "eventsource", + "escapedName": "eventsource", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/sockjs-client" + ], + "_resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.1.0.tgz?cache=0&sync_timestamp=1616041748498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aslak Hellesøy", + "email": "aslak.hellesoy@gmail.com" }, "bugs": { "url": "http://github.com/EventSource/eventsource/issues" }, - "directories": { - "lib": "./lib" + "dependencies": { + "original": "^1.0.0" }, - "main": "./lib/eventsource", - "license": "MIT", - "licenses": [ - { - "type": "MIT", - "url": "http://github.com/EventSource/eventsource/raw/master/LICENSE" - } - ], + "description": "W3C compliant EventSource client for Node.js and browser (polyfill)", "devDependencies": { "buffer-from": "^1.1.1", "express": "^4.15.3", @@ -39,21 +48,43 @@ "standard": "^10.0.2", "webpack": "^3.5.6" }, - "scripts": { - "test": "mocha --reporter spec && standard", - "polyfill": "webpack lib/eventsource-polyfill.js example/eventsource-polyfill.js", - "postpublish": "git push && git push --tags", - "coverage": "nyc --reporter=html --reporter=text _mocha --reporter spec" + "directories": { + "lib": "./lib" }, "engines": { "node": ">=0.12.0" }, - "dependencies": { - "original": "^1.0.0" + "homepage": "http://github.com/EventSource/eventsource", + "keywords": [ + "eventsource", + "http", + "streaming", + "sse", + "polyfill" + ], + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/EventSource/eventsource/raw/master/LICENSE" + } + ], + "main": "./lib/eventsource", + "name": "eventsource", + "repository": { + "type": "git", + "url": "git://github.com/EventSource/eventsource.git" + }, + "scripts": { + "coverage": "nyc --reporter=html --reporter=text _mocha --reporter spec", + "polyfill": "webpack lib/eventsource-polyfill.js example/eventsource-polyfill.js", + "postpublish": "git push && git push --tags", + "test": "mocha --reporter spec && standard" }, "standard": { "ignore": [ "example/eventsource-polyfill.js" ] - } + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/evp_bytestokey/package.json b/admin/vue2/element-admin-v3/node_modules/evp_bytestokey/package.json index 517891ad2..64c1d3454 100644 --- a/admin/vue2/element-admin-v3/node_modules/evp_bytestokey/package.json +++ b/admin/vue2/element-admin-v3/node_modules/evp_bytestokey/package.json @@ -1,27 +1,74 @@ { - "name": "evp_bytestokey", - "version": "1.0.3", - "description": "The insecure key derivation algorithm from OpenSSL", - "keywords": [ - "crypto", - "openssl" + "_args": [ + [ + "evp_bytestokey@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/crypto-browserify/EVP_BytesToKey", + "_from": "evp_bytestokey@1.0.3", + "_id": "evp_bytestokey@1.0.3", + "_inBundle": false, + "_integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "_location": "/evp_bytestokey", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "evp_bytestokey@1.0.3", + "name": "evp_bytestokey", + "escapedName": "evp_bytestokey", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/browserify-aes", + "/browserify-cipher", + "/parse-asn1" + ], + "_resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf", + "email": "calvin.metcalf@gmail.com" + }, "bugs": { "url": "https://github.com/crypto-browserify/EVP_BytesToKey/issues" }, - "license": "MIT", - "author": "Calvin Metcalf ", "contributors": [ - "Kirill Fomichev " + { + "name": "Kirill Fomichev", + "email": "fanatid@ya.ru" + } ], + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + }, + "description": "The insecure key derivation algorithm from OpenSSL", + "devDependencies": { + "bindings": "^1.2.1", + "nan": "^2.4.0", + "nyc": "^8.1.0", + "standard": "^8.0.0", + "tape": "^4.6.0" + }, "files": [ "index.js" ], + "gypfile": false, + "homepage": "https://github.com/crypto-browserify/EVP_BytesToKey", + "keywords": [ + "crypto", + "openssl" + ], + "license": "MIT", "main": "index.js", + "name": "evp_bytestokey", "repository": { "type": "git", - "url": "https://github.com/crypto-browserify/EVP_BytesToKey.git" + "url": "git+https://github.com/crypto-browserify/EVP_BytesToKey.git" }, "scripts": { "coverage": "nyc tape test/*.js", @@ -30,16 +77,5 @@ "test:prepare": "node-gyp rebuild", "unit": "tape test/*.js" }, - "devDependencies": { - "bindings": "^1.2.1", - "nan": "^2.4.0", - "nyc": "^8.1.0", - "standard": "^8.0.0", - "tape": "^4.6.0" - }, - "gypfile": false, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/execa/package.json b/admin/vue2/element-admin-v3/node_modules/execa/package.json index ad98225cc..59dd289b4 100644 --- a/admin/vue2/element-admin-v3/node_modules/execa/package.json +++ b/admin/vue2/element-admin-v3/node_modules/execa/package.json @@ -1,69 +1,105 @@ { - "name": "execa", - "version": "1.0.0", - "description": "A better `child_process`", - "license": "MIT", - "repository": "sindresorhus/execa", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && nyc ava" - }, - "files": [ - "index.js", - "lib" - ], - "keywords": [ - "exec", - "child", - "process", - "execute", - "fork", - "execfile", - "spawn", - "file", - "shell", - "bin", - "binary", - "binaries", - "npm", - "path", - "local" - ], - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "devDependencies": { - "ava": "*", - "cat-names": "^1.0.2", - "coveralls": "^3.0.1", - "delay": "^3.0.0", - "is-running": "^2.0.0", - "nyc": "^13.0.1", - "tempfile": "^2.0.0", - "xo": "*" - }, - "nyc": { - "reporter": [ - "text", - "lcov" - ], - "exclude": [ - "**/fixtures/**", - "**/test.js", - "**/test/**" - ] - } + "_args": [ + [ + "execa@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "execa@1.0.0", + "_id": "execa@1.0.0", + "_inBundle": false, + "_integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "_location": "/execa", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "execa@1.0.0", + "name": "execa", + "escapedName": "execa", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/default-gateway", + "/os-locale" + ], + "_resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/execa/issues" + }, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "description": "A better `child_process`", + "devDependencies": { + "ava": "*", + "cat-names": "^1.0.2", + "coveralls": "^3.0.1", + "delay": "^3.0.0", + "is-running": "^2.0.0", + "nyc": "^13.0.1", + "tempfile": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/sindresorhus/execa#readme", + "keywords": [ + "exec", + "child", + "process", + "execute", + "fork", + "execfile", + "spawn", + "file", + "shell", + "bin", + "binary", + "binaries", + "npm", + "path", + "local" + ], + "license": "MIT", + "name": "execa", + "nyc": { + "reporter": [ + "text", + "lcov" + ], + "exclude": [ + "**/fixtures/**", + "**/test.js", + "**/test/**" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/execa.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/exit-on-epipe/package.json b/admin/vue2/element-admin-v3/node_modules/exit-on-epipe/package.json index 0d787e842..c49dc0d51 100644 --- a/admin/vue2/element-admin-v3/node_modules/exit-on-epipe/package.json +++ b/admin/vue2/element-admin-v3/node_modules/exit-on-epipe/package.json @@ -1,21 +1,68 @@ { - "name": "exit-on-epipe", - "version": "1.0.1", - "author": "sheetjs", - "description": "Cleanly exit process on EPIPE", - "keywords": [ "epipe", "pipe", "error", "exit" ], - "main": "./exit-on-epipe", - "dependencies": { - }, - "devDependencies": { - "mocha":"~2.5.3" - }, - "repository": { "type":"git", "url":"git://github.com/SheetJS/node-exit-on-epipe.git" }, - "scripts": { - "test": "make test" - }, - "files": ["exit-on-epipe.js", "LICENSE", "README.md"], - "bugs": { "url": "https://github.com/SheetJS/node-exit-on-epipe/issues" }, - "license": "Apache-2.0", - "engines": { "node": ">=0.8" } + "_args": [ + [ + "exit-on-epipe@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "exit-on-epipe@1.0.1", + "_id": "exit-on-epipe@1.0.1", + "_inBundle": false, + "_integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=", + "_location": "/exit-on-epipe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "exit-on-epipe@1.0.1", + "name": "exit-on-epipe", + "escapedName": "exit-on-epipe", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/adler-32", + "/crc-32" + ], + "_resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "sheetjs" + }, + "bugs": { + "url": "https://github.com/SheetJS/node-exit-on-epipe/issues" + }, + "dependencies": {}, + "description": "Cleanly exit process on EPIPE", + "devDependencies": { + "mocha": "~2.5.3" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "exit-on-epipe.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/SheetJS/node-exit-on-epipe#readme", + "keywords": [ + "epipe", + "pipe", + "error", + "exit" + ], + "license": "Apache-2.0", + "main": "./exit-on-epipe", + "name": "exit-on-epipe", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/node-exit-on-epipe.git" + }, + "scripts": { + "test": "make test" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/define-property/package.json index 43561bf56..63062e7af 100644 --- a/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/define-property/package.json @@ -1,28 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "0.2.5", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@0.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@0.2.5", + "_id": "define-property@0.2.5", + "_inBundle": false, + "_integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "_location": "/expand-brackets/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@0.2.5", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "0.2.5", + "saveSpec": null, + "fetchSpec": "0.2.5" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/expand-brackets" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "_spec": "0.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" + }, + "dependencies": { + "is-descriptor": "^0.1.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "mocha": "*", "should": "^7.0.4" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -35,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -45,7 +81,5 @@ ] } }, - "dependencies": { - "is-descriptor": "^0.1.0" - } + "version": "0.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/extend-shallow/package.json index b42e01c7a..bc03505ee 100644 --- a/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/expand-brackets/node_modules/extend-shallow/package.json @@ -1,27 +1,43 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/expand-brackets/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/expand-brackets" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +50,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +75,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/expand-brackets/package.json b/admin/vue2/element-admin-v3/node_modules/expand-brackets/package.json index 1c5233cf7..842a2aac9 100644 --- a/admin/vue2/element-admin-v3/node_modules/expand-brackets/package.json +++ b/admin/vue2/element-admin-v3/node_modules/expand-brackets/package.json @@ -1,31 +1,62 @@ { - "name": "expand-brackets", - "description": "Expand POSIX bracket expressions (character classes) in glob patterns.", - "version": "2.1.4", - "homepage": "https://github.com/jonschlinkert/expand-brackets", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Elan Shanker (https://github.com/es128)", - "Eugene Sharygin (https://github.com/eush77)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Martin Kolárik (http://kolarik.sk)" + "_args": [ + [ + "expand-brackets@2.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/expand-brackets", - "bugs": { - "url": "https://github.com/jonschlinkert/expand-brackets/issues" + "_from": "expand-brackets@2.1.4", + "_id": "expand-brackets@2.1.4", + "_inBundle": false, + "_integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "_location": "/expand-brackets", + "_phantomChildren": { + "is-descriptor": "0.1.6", + "is-extendable": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requested": { + "type": "version", + "registry": true, + "raw": "expand-brackets@2.1.4", + "name": "expand-brackets", + "escapedName": "expand-brackets", + "rawSpec": "2.1.4", + "saveSpec": null, + "fetchSpec": "2.1.4" + }, + "_requiredBy": [ + "/extglob" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "_spec": "2.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/expand-brackets/issues" }, + "contributors": [ + { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + { + "name": "Eugene Sharygin", + "url": "https://github.com/eush77" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Martin Kolárik", + "email": "martin@kolarik.sk", + "url": "http://kolarik.sk" + } + ], "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -35,6 +66,7 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "description": "Expand POSIX bracket expressions (character classes) in glob patterns.", "devDependencies": { "bash-match": "^0.1.1", "gulp-format-md": "^0.1.10", @@ -44,6 +76,14 @@ "multimatch": "^2.1.0", "yargs-parser": "^4.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/jonschlinkert/expand-brackets", "keywords": [ "bracket", "brackets", @@ -52,6 +92,16 @@ "expression", "posix" ], + "license": "MIT", + "main": "index.js", + "name": "expand-brackets", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/expand-brackets.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -81,5 +131,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/express/node_modules/finalhandler/package.json b/admin/vue2/element-admin-v3/node_modules/express/node_modules/finalhandler/package.json index 79c8f3ed1..9da2ee3f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/express/node_modules/finalhandler/package.json +++ b/admin/vue2/element-admin-v3/node_modules/express/node_modules/finalhandler/package.json @@ -1,10 +1,39 @@ { - "name": "finalhandler", - "description": "Node.js final http responder", - "version": "1.1.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "pillarjs/finalhandler", + "_args": [ + [ + "finalhandler@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "finalhandler@1.1.2", + "_id": "finalhandler@1.1.2", + "_inBundle": false, + "_integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "_location": "/express/finalhandler", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "finalhandler@1.1.2", + "name": "finalhandler", + "escapedName": "finalhandler", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/pillarjs/finalhandler/issues" + }, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -14,6 +43,7 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, + "description": "Node.js final http responder", "devDependencies": { "eslint": "5.16.0", "eslint-config-standard": "12.0.0", @@ -28,18 +58,26 @@ "safe-buffer": "5.1.2", "supertest": "4.0.2" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/pillarjs/finalhandler#readme", + "license": "MIT", + "name": "finalhandler", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/finalhandler.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/express/node_modules/path-to-regexp/package.json b/admin/vue2/element-admin-v3/node_modules/express/node_modules/path-to-regexp/package.json index d4e51b574..32ee07f51 100644 --- a/admin/vue2/element-admin-v3/node_modules/express/node_modules/path-to-regexp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/express/node_modules/path-to-regexp/package.json @@ -1,30 +1,62 @@ { - "name": "path-to-regexp", + "_args": [ + [ + "path-to-regexp@0.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-to-regexp@0.1.7", + "_id": "path-to-regexp@0.1.7", + "_inBundle": false, + "_integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "_location": "/express/path-to-regexp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-to-regexp@0.1.7", + "name": "path-to-regexp", + "escapedName": "path-to-regexp", + "rawSpec": "0.1.7", + "saveSpec": null, + "fetchSpec": "0.1.7" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz?cache=0&sync_timestamp=1601400328354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz", + "_spec": "0.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/component/path-to-regexp/issues" + }, + "component": { + "scripts": { + "path-to-regexp": "index.js" + } + }, "description": "Express style path to RegExp utility", - "version": "0.1.7", + "devDependencies": { + "istanbul": "^0.2.6", + "mocha": "^1.17.1" + }, "files": [ "index.js", "LICENSE" ], - "scripts": { - "test": "istanbul cover _mocha -- -R spec" - }, + "homepage": "https://github.com/component/path-to-regexp#readme", "keywords": [ "express", "regexp" ], - "component": { - "scripts": { - "path-to-regexp": "index.js" - } - }, "license": "MIT", + "name": "path-to-regexp", "repository": { "type": "git", - "url": "https://github.com/component/path-to-regexp.git" + "url": "git+https://github.com/component/path-to-regexp.git" }, - "devDependencies": { - "mocha": "^1.17.1", - "istanbul": "^0.2.6" - } + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "version": "0.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/express/node_modules/serve-static/package.json b/admin/vue2/element-admin-v3/node_modules/express/node_modules/serve-static/package.json index a60c83f10..102e778f2 100644 --- a/admin/vue2/element-admin-v3/node_modules/express/node_modules/serve-static/package.json +++ b/admin/vue2/element-admin-v3/node_modules/express/node_modules/serve-static/package.json @@ -1,16 +1,46 @@ { - "name": "serve-static", - "description": "Serve static files", - "version": "1.14.1", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "expressjs/serve-static", + "_args": [ + [ + "serve-static@1.14.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "serve-static@1.14.1", + "_id": "serve-static@1.14.1", + "_inBundle": false, + "_integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", + "_location": "/express/serve-static", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "serve-static@1.14.1", + "name": "serve-static", + "escapedName": "serve-static", + "rawSpec": "1.14.1", + "saveSpec": null, + "fetchSpec": "1.14.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "_spec": "1.14.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/expressjs/serve-static/issues" + }, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.17.1" }, + "description": "Serve static files", "devDependencies": { "eslint": "5.16.0", "eslint-config-standard": "12.0.0", @@ -24,13 +54,20 @@ "safe-buffer": "5.1.2", "supertest": "4.0.2" }, + "engines": { + "node": ">= 0.8.0" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8.0" + "homepage": "https://github.com/expressjs/serve-static#readme", + "license": "MIT", + "name": "serve-static", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/serve-static.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", @@ -38,5 +75,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "version": "node scripts/version-history.js && git add HISTORY.md" - } + }, + "version": "1.14.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/express/node_modules/statuses/package.json b/admin/vue2/element-admin-v3/node_modules/express/node_modules/statuses/package.json index 7595e2bad..8b5e17b8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/express/node_modules/statuses/package.json +++ b/admin/vue2/element-admin-v3/node_modules/express/node_modules/statuses/package.json @@ -1,24 +1,48 @@ { - "name": "statuses", - "description": "HTTP status utility", - "version": "1.5.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "statuses@1.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/statuses", - "license": "MIT", - "keywords": [ - "http", - "status", - "code" + "_from": "statuses@1.5.0", + "_id": "statuses@1.5.0", + "_inBundle": false, + "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "_location": "/express/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "statuses@1.5.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "1.5.0", + "saveSpec": null, + "fetchSpec": "1.5.0" + }, + "_requiredBy": [ + "/express", + "/express/finalhandler" ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" + "_resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "_spec": "1.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], + "description": "HTTP status utility", "devDependencies": { "csv-parse": "1.2.4", "eslint": "4.19.1", @@ -36,6 +60,24 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, "scripts": { "build": "node scripts/build.js", "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", @@ -44,5 +86,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "update": "npm run fetch && npm run build" - } + }, + "version": "1.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/express/package.json b/admin/vue2/element-admin-v3/node_modules/express/package.json index 2979d57a2..acb77aeb5 100644 --- a/admin/vue2/element-admin-v3/node_modules/express/package.json +++ b/admin/vue2/element-admin-v3/node_modules/express/package.json @@ -1,30 +1,77 @@ { - "name": "express", - "description": "Fast, unopinionated, minimalist web framework", - "version": "4.17.1", - "author": "TJ Holowaychuk ", - "contributors": [ - "Aaron Heckmann ", - "Ciaran Jessup ", - "Douglas Christopher Wilson ", - "Guillermo Rauch ", - "Jonathan Ong ", - "Roman Shtylman ", - "Young Jae Sim " + "_args": [ + [ + "express@4.17.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": "expressjs/express", - "homepage": "http://expressjs.com/", - "keywords": [ - "express", - "framework", - "sinatra", - "web", - "rest", - "restful", - "router", - "app", - "api" + "_from": "express@4.17.1", + "_id": "express@4.17.1", + "_inBundle": false, + "_integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "_location": "/express", + "_phantomChildren": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.3", + "send": "0.17.1", + "unpipe": "1.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "express@4.17.1", + "name": "express", + "escapedName": "express", + "rawSpec": "4.17.1", + "saveSpec": null, + "fetchSpec": "4.17.1" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer", + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", + "_spec": "4.17.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/expressjs/express/issues" + }, + "contributors": [ + { + "name": "Aaron Heckmann", + "email": "aaron.heckmann+github@gmail.com" + }, + { + "name": "Ciaran Jessup", + "email": "ciaranj@gmail.com" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Guillermo Rauch", + "email": "rauchg@gmail.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com" + }, + { + "name": "Roman Shtylman", + "email": "shtylman+expressjs@gmail.com" + }, + { + "name": "Young Jae Sim", + "email": "hanul@hanul.me" + } ], "dependencies": { "accepts": "~1.3.7", @@ -58,6 +105,7 @@ "utils-merge": "1.0.1", "vary": "~1.1.2" }, + "description": "Fast, unopinionated, minimalist web framework", "devDependencies": { "after": "0.8.2", "connect-redis": "3.4.1", @@ -88,11 +136,30 @@ "index.js", "lib/" ], + "homepage": "http://expressjs.com/", + "keywords": [ + "express", + "framework", + "sinatra", + "web", + "rest", + "restful", + "router", + "app", + "api" + ], + "license": "MIT", + "name": "express", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/express.git" + }, "scripts": { "lint": "eslint .", "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/", "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" - } + }, + "version": "4.17.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ext/node_modules/type/package.json b/admin/vue2/element-admin-v3/node_modules/ext/node_modules/type/package.json index 306c92347..d0fd2e82f 100644 --- a/admin/vue2/element-admin-v3/node_modules/ext/node_modules/type/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ext/node_modules/type/package.json @@ -1,96 +1,136 @@ { - "name": "type", - "version": "2.5.0", - "description": "Runtime validation and processing of JavaScript types", - "author": "Mariusz Nowak (https://www.medikoo.com/)", - "keywords": [ - "type", - "coercion" - ], - "repository": "medikoo/type", - "devDependencies": { - "chai": "^4.3.3", - "eslint": "^7.21.0", - "eslint-config-medikoo": "^4.0.0", - "git-list-updated": "^1.2.1", - "husky": "^4.3.8", - "lint-staged": "^10.5.4", - "mocha": "^6.2.3", - "nyc": "^15.1.0", - "prettier-elastic": "^2.1.2" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.js": [ - "eslint" - ], - "*.{css,html,js,json,md,yaml,yml}": [ - "prettier -c" - ] - }, - "eslintConfig": { - "extends": "medikoo/es3", - "root": true, - "globals": { - "Map": true, - "Promise": true, - "Set": true, - "Symbol": true - }, - "overrides": [ - { - "files": "test/**/*.js", - "env": { - "mocha": true - }, - "rules": { - "no-eval": "off", - "no-new-wrappers": "off" - } - }, - { - "files": [ - "string/coerce.js", - "number/coerce.js" - ], - "rules": { - "no-implicit-coercion": "off" - } - }, - { - "files": "plain-object/is.js", - "rules": { - "no-proto": "off" - } - } - ] - }, - "prettier": { - "printWidth": 100, - "tabWidth": 4, - "overrides": [ - { - "files": [ - "*.md" - ], - "options": { - "tabWidth": 2 - } - } - ] - }, - "scripts": { - "coverage": "nyc --reporter=lcov --reporter=html --reporter=text-summary npm test", - "check-coverage": "npm run coverage && nyc check-coverage --statements 80 --function 80 --branches 80 --lines 80", - "lint": "eslint --ignore-path=.gitignore .", - "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", - "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", - "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", - "test": "mocha --recursive" - }, - "license": "ISC" + "_args": [ + [ + "type@2.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "type@2.5.0", + "_id": "type@2.5.0", + "_inBundle": false, + "_integrity": "sha1-Ci54wud5B7JSq+XymMGwHGPw2z0=", + "_location": "/ext/type", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "type@2.5.0", + "name": "type", + "escapedName": "type", + "rawSpec": "2.5.0", + "saveSpec": null, + "fetchSpec": "2.5.0" + }, + "_requiredBy": [ + "/ext" + ], + "_resolved": "https://registry.npm.taobao.org/type/download/type-2.5.0.tgz", + "_spec": "2.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "https://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/type/issues" + }, + "description": "Runtime validation and processing of JavaScript types", + "devDependencies": { + "chai": "^4.3.3", + "eslint": "^7.21.0", + "eslint-config-medikoo": "^4.0.0", + "git-list-updated": "^1.2.1", + "husky": "^4.3.8", + "lint-staged": "^10.5.4", + "mocha": "^6.2.3", + "nyc": "^15.1.0", + "prettier-elastic": "^2.1.2" + }, + "eslintConfig": { + "extends": "medikoo/es3", + "root": true, + "globals": { + "Map": true, + "Promise": true, + "Set": true, + "Symbol": true + }, + "overrides": [ + { + "files": "test/**/*.js", + "env": { + "mocha": true + }, + "rules": { + "no-eval": "off", + "no-new-wrappers": "off" + } + }, + { + "files": [ + "string/coerce.js", + "number/coerce.js" + ], + "rules": { + "no-implicit-coercion": "off" + } + }, + { + "files": "plain-object/is.js", + "rules": { + "no-proto": "off" + } + } + ] + }, + "homepage": "https://github.com/medikoo/type#readme", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "type", + "coercion" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint" + ], + "*.{css,html,js,json,md,yaml,yml}": [ + "prettier -c" + ] + }, + "name": "type", + "prettier": { + "printWidth": 100, + "tabWidth": 4, + "overrides": [ + { + "files": [ + "*.md" + ], + "options": { + "tabWidth": 2 + } + } + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/medikoo/type.git" + }, + "scripts": { + "check-coverage": "npm run coverage && nyc check-coverage --statements 80 --function 80 --branches 80 --lines 80", + "coverage": "nyc --reporter=lcov --reporter=html --reporter=text-summary npm test", + "lint": "eslint --ignore-path=.gitignore .", + "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", + "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", + "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", + "test": "mocha --recursive" + }, + "version": "2.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ext/package.json b/admin/vue2/element-admin-v3/node_modules/ext/package.json index 5a646dad5..8740e31a5 100644 --- a/admin/vue2/element-admin-v3/node_modules/ext/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ext/package.json @@ -1,120 +1,153 @@ { - "name": "ext", - "version": "1.4.0", - "description": "JavaScript utilities with respect to emerging standard", - "author": "Mariusz Nowak (http://www.medikoo.com/)", - "keywords": [ - "ecmascript", - "es", - "es6", - "extensions", - "ext", - "addons", - "lodash", - "extras", - "harmony", - "javascript", - "polyfill", - "shim", - "util", - "utils", - "utilities" - ], - "repository": { - "type": "git", - "url": "https://github.com/medikoo/es5-ext/tree/ext" - }, - "dependencies": { - "type": "^2.0.0" - }, - "devDependencies": { - "chai": "^4.2.0", - "eslint": "^6.7.1", - "eslint-config-medikoo": "^2.7.0", - "git-list-updated": "^1.2.1", - "husky": "^3.1.0", - "lint-staged": "^9.5.0", - "mocha": "^6.2.2", - "prettier-elastic": "^1.18.2", - "sinon": "^7.5.0" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.js": [ - "eslint" - ], - "*.{css,html,js,json,md,yaml,yml}": [ - "prettier -c" - ] - }, - "eslintIgnore": [ - "_es5-ext/*" - ], - "eslintConfig": { - "extends": "medikoo/es3", - "root": true, - "overrides": [ - { - "files": "global-this/implementation.js", - "globals": { - "__global__": true, - "self": true, - "window": true - }, - "rules": { - "no-extend-native": "off", - "strict": "off" - } - }, - { - "files": [ - "global-this/is-implemented.js", - "global-this/index.js" - ], - "globals": { - "globalThis": true - } - }, - { - "files": "test/**/*.js", - "env": { - "mocha": true - } - }, - { - "files": "test/thenable_/finally.js", - "globals": { - "Promise": true - } - } - ] - }, - "prettier": { - "printWidth": 100, - "tabWidth": 4, - "quoteProps": "preserve", - "overrides": [ - { - "files": "*.md", - "options": { - "tabWidth": 2 - } - } - ] - }, - "mocha": { - "recursive": true - }, - "scripts": { - "lint": "eslint .", - "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", - "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", - "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", - "test": "mocha" - }, - "license": "ISC" + "_args": [ + [ + "ext@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ext@1.4.0", + "_id": "ext@1.4.0", + "_inBundle": false, + "_integrity": "sha1-ia56BxWPedNVF4gpBDJAd+Q3kkQ=", + "_location": "/ext", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ext@1.4.0", + "name": "ext", + "escapedName": "ext", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/es6-symbol" + ], + "_resolved": "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fext%2Fdownload%2Fext-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "http://www.medikoo.com/" + }, + "dependencies": { + "type": "^2.0.0" + }, + "description": "JavaScript utilities with respect to emerging standard", + "devDependencies": { + "chai": "^4.2.0", + "eslint": "^6.7.1", + "eslint-config-medikoo": "^2.7.0", + "git-list-updated": "^1.2.1", + "husky": "^3.1.0", + "lint-staged": "^9.5.0", + "mocha": "^6.2.2", + "prettier-elastic": "^1.18.2", + "sinon": "^7.5.0" + }, + "eslintConfig": { + "extends": "medikoo/es3", + "root": true, + "overrides": [ + { + "files": "global-this/implementation.js", + "globals": { + "__global__": true, + "self": true, + "window": true + }, + "rules": { + "no-extend-native": "off", + "strict": "off" + } + }, + { + "files": [ + "global-this/is-implemented.js", + "global-this/index.js" + ], + "globals": { + "globalThis": true + } + }, + { + "files": "test/**/*.js", + "env": { + "mocha": true + } + }, + { + "files": "test/thenable_/finally.js", + "globals": { + "Promise": true + } + } + ] + }, + "eslintIgnore": [ + "_es5-ext/*" + ], + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "ecmascript", + "es", + "es6", + "extensions", + "ext", + "addons", + "lodash", + "extras", + "harmony", + "javascript", + "polyfill", + "shim", + "util", + "utils", + "utilities" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint" + ], + "*.{css,html,js,json,md,yaml,yml}": [ + "prettier -c" + ] + }, + "mocha": { + "recursive": true + }, + "name": "ext", + "prettier": { + "printWidth": 100, + "tabWidth": 4, + "quoteProps": "preserve", + "overrides": [ + { + "files": "*.md", + "options": { + "tabWidth": 2 + } + } + ] + }, + "repository": { + "type": "git", + "url": "https://github.com/medikoo/es5-ext/tree/ext" + }, + "scripts": { + "lint": "eslint .", + "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", + "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", + "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", + "test": "mocha" + }, + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/extend-shallow/node_modules/is-extendable/package.json b/admin/vue2/element-admin-v3/node_modules/extend-shallow/node_modules/is-extendable/package.json index 2aaab65a8..c23469310 100644 --- a/admin/vue2/element-admin-v3/node_modules/extend-shallow/node_modules/is-extendable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extend-shallow/node_modules/is-extendable/package.json @@ -1,33 +1,55 @@ { - "name": "is-extendable", - "description": "Returns true if a value is a plain object, array or function.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/is-extendable", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-extendable", - "bugs": { - "url": "https://github.com/jonschlinkert/is-extendable/issues" + "_args": [ + [ + "is-extendable@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-extendable@1.0.1", + "_id": "is-extendable@1.0.1", + "_inBundle": false, + "_integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "_location": "/extend-shallow/is-extendable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-extendable@1.0.1", + "name": "is-extendable", + "escapedName": "is-extendable", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "license": "MIT", - "files": [ - "index.js", - "index.d.ts" + "_requiredBy": [ + "/extend-shallow" ], - "main": "index.js", - "types": "index.d.ts", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-extendable/issues" }, "dependencies": { "is-plain-object": "^2.0.4" }, + "description": "Returns true if a value is a plain object, array or function.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.4.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/jonschlinkert/is-extendable", "keywords": [ "array", "assign", @@ -42,6 +64,17 @@ "regex", "test" ], + "license": "MIT", + "main": "index.js", + "name": "is-extendable", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-extendable.git" + }, + "scripts": { + "test": "mocha" + }, + "types": "index.d.ts", "verb": { "related": { "list": [ @@ -63,5 +96,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/extend-shallow/package.json index e5e910531..2a6571ee5 100644 --- a/admin/vue2/element-admin-v3/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extend-shallow/package.json @@ -1,32 +1,60 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "3.0.2", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "extend-shallow@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_from": "extend-shallow@3.0.2", + "_id": "extend-shallow@3.0.2", + "_inBundle": false, + "_integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "_location": "/extend-shallow", + "_phantomChildren": { + "is-plain-object": "2.0.4" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@3.0.2", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/micromatch", + "/nanomatch", + "/regex-not", + "/split-string", + "/to-regex" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^1.0.0", "benchmarked": "^2.0.0", @@ -38,6 +66,13 @@ "mocha": "^3.5.3", "object-assign": "^4.1.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "clone", @@ -57,6 +92,16 @@ "utils", "value" ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -79,5 +124,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/extend/package.json b/admin/vue2/element-admin-v3/node_modules/extend/package.json index 85279f780..c6377269b 100644 --- a/admin/vue2/element-admin-v3/node_modules/extend/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extend/package.json @@ -1,42 +1,80 @@ { - "name": "extend", - "author": "Stefan Thomas (http://www.justmoon.net)", - "version": "3.0.2", - "description": "Port of jQuery.extend for node.js and the browser", - "main": "index", - "scripts": { - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "npm run coverage-quiet", - "tests-only": "node test", - "coverage": "covert test/index.js", - "coverage-quiet": "covert test/index.js --quiet", - "lint": "npm run jscs && npm run eslint", - "jscs": "jscs *.js */*.js", - "eslint": "eslint *.js */*.js" - }, - "contributors": [ - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository": { - "type": "git", - "url": "https://github.com/justmoon/node-extend.git" - }, - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^12.2.1", - "covert": "^1.1.0", - "eslint": "^4.19.1", - "jscs": "^3.0.7", - "tape": "^4.9.1" - }, - "license": "MIT" + "_args": [ + [ + "extend@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "extend@3.0.2", + "_id": "extend@3.0.2", + "_inBundle": false, + "_integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "_location": "/extend", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend@3.0.2", + "name": "extend", + "escapedName": "extend", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/eslint-friendly-formatter", + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Stefan Thomas", + "email": "justmoon@members.fsf.org", + "url": "http://www.justmoon.net" + }, + "bugs": { + "url": "https://github.com/justmoon/node-extend/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "url": "https://github.com/ljharb" + } + ], + "dependencies": {}, + "description": "Port of jQuery.extend for node.js and the browser", + "devDependencies": { + "@ljharb/eslint-config": "^12.2.1", + "covert": "^1.1.0", + "eslint": "^4.19.1", + "jscs": "^3.0.7", + "tape": "^4.9.1" + }, + "homepage": "https://github.com/justmoon/node-extend#readme", + "keywords": [ + "extend", + "clone", + "merge" + ], + "license": "MIT", + "main": "index", + "name": "extend", + "repository": { + "type": "git", + "url": "git+https://github.com/justmoon/node-extend.git" + }, + "scripts": { + "coverage": "covert test/index.js", + "coverage-quiet": "covert test/index.js --quiet", + "eslint": "eslint *.js */*.js", + "jscs": "jscs *.js */*.js", + "lint": "npm run jscs && npm run eslint", + "posttest": "npm run coverage-quiet", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "node test" + }, + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/external-editor/package.json b/admin/vue2/element-admin-v3/node_modules/external-editor/package.json index 4edc95b43..16d35d807 100644 --- a/admin/vue2/element-admin-v3/node_modules/external-editor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/external-editor/package.json @@ -1,47 +1,80 @@ { - "name": "external-editor", - "version": "2.2.0", - "description": "Edit a string with the users preferred text editor using $VISUAL or $ENVIRONMENT", - "main": "main/index.js", - "scripts": { - "test": "npm run lint && npm run unit", - "unit": "mocha --recursive --compilers coffee:coffee-script/register --timeout 10000 ./test/spec", - "compile": "coffee --compile --output main/ src/", - "lint": "coffeelint -f .coffeelint.json src" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mrkmg/node-external-editor.git" + "_args": [ + [ + "external-editor@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "external-editor@2.2.0", + "_id": "external-editor@2.2.0", + "_inBundle": false, + "_integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "_location": "/external-editor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "external-editor@2.2.0", + "name": "external-editor", + "escapedName": "external-editor", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" }, - "keywords": [ - "editor", - "external", - "user", - "visual" + "_requiredBy": [ + "/inquirer" ], - "author": "Kevin Gravier (https://mrkmg.com)", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kevin Gravier", + "email": "kevin@mrkmg.com", + "url": "https://mrkmg.com" + }, "bugs": { "url": "https://github.com/mrkmg/node-external-editor/issues" }, - "homepage": "https://github.com/mrkmg/node-external-editor#readme", "dependencies": { "chardet": "^0.4.0", "iconv-lite": "^0.4.17", "tmp": "^0.0.33" }, - "engines": { - "node": ">=0.12" - }, + "description": "Edit a string with the users preferred text editor using $VISUAL or $ENVIRONMENT", "devDependencies": { "chai": "^4.0.0", "coffee-script": "^1.10.0", "coffeelint": "^1.14.2", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.12" + }, "files": [ "main", "example_sync.js", "example_async.js" - ] + ], + "homepage": "https://github.com/mrkmg/node-external-editor#readme", + "keywords": [ + "editor", + "external", + "user", + "visual" + ], + "license": "MIT", + "main": "main/index.js", + "name": "external-editor", + "repository": { + "type": "git", + "url": "git+https://github.com/mrkmg/node-external-editor.git" + }, + "scripts": { + "compile": "coffee --compile --output main/ src/", + "lint": "coffeelint -f .coffeelint.json src", + "test": "npm run lint && npm run unit", + "unit": "mocha --recursive --compilers coffee:coffee-script/register --timeout 10000 ./test/spec" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/define-property/package.json index e0ab1ca00..1e7835229 100644 --- a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/define-property/package.json @@ -1,31 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@1.0.0", + "_id": "define-property@1.0.0", + "_inBundle": false, + "_integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "_location": "/extglob/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@1.0.0", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extglob" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" }, "dependencies": { "is-descriptor": "^1.0.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -38,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -58,5 +91,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/extend-shallow/package.json index b42e01c7a..9efedc403 100644 --- a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/extend-shallow/package.json @@ -1,27 +1,43 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/extglob/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extglob" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +50,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +75,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-accessor-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-accessor-descriptor/package.json index 47b97ac3c..39f938ef7 100644 --- a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-accessor-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-accessor-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-accessor-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-accessor-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-accessor-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" + "_from": "is-accessor-descriptor@1.0.0", + "_id": "is-accessor-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "_location": "/extglob/is-accessor-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-accessor-descriptor@1.0.0", + "name": "is-accessor-descriptor", + "escapedName": "is-accessor-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extglob/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-accessor-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-accessor-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -69,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-data-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-data-descriptor/package.json index 0b0938384..af2bd55cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-data-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-data-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-data-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-data-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-data-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-data-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" + "_from": "is-data-descriptor@1.0.0", + "_id": "is-data-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "_location": "/extglob/is-data-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-data-descriptor@1.0.0", + "name": "is-data-descriptor", + "escapedName": "is-data-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extglob/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-data-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-data-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-data-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -68,5 +107,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-descriptor/package.json index 87b2975b0..1da167376 100644 --- a/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extglob/node_modules/is-descriptor/package.json @@ -1,38 +1,69 @@ { - "name": "is-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-descriptor@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-descriptor/issues" + "_from": "is-descriptor@1.0.2", + "_id": "is-descriptor@1.0.2", + "_inBundle": false, + "_integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "_location": "/extglob/is-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-descriptor@1.0.2", + "name": "is-descriptor", + "escapedName": "is-descriptor", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extglob/define-property" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-descriptor/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-descriptor", "keywords": [ "accessor", "check", @@ -51,6 +82,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -71,5 +112,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/extglob/package.json b/admin/vue2/element-admin-v3/node_modules/extglob/package.json index afe515732..819094f78 100644 --- a/admin/vue2/element-admin-v3/node_modules/extglob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extglob/package.json @@ -1,33 +1,69 @@ { - "name": "extglob", - "description": "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.", - "version": "2.0.4", - "homepage": "https://github.com/micromatch/extglob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Devon Govett (http://badassjs.com)", - "Isiah Meadows (https://www.isiahmeadows.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Matt Bierner (http://mattbierner.com)", - "Shinnosuke Watanabe (https://shinnn.github.io)" + "_args": [ + [ + "extglob@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/extglob", - "bugs": { - "url": "https://github.com/micromatch/extglob/issues" + "_from": "extglob@2.0.4", + "_id": "extglob@2.0.4", + "_inBundle": false, + "_integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "_location": "/extglob", + "_phantomChildren": { + "is-extendable": "0.1.1", + "kind-of": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requested": { + "type": "version", + "registry": true, + "raw": "extglob@2.0.4", + "name": "extglob", + "escapedName": "extglob", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/micromatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/extglob/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Devon Govett", + "url": "http://badassjs.com" + }, + { + "name": "Isiah Meadows", + "url": "https://www.isiahmeadows.com" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Matt Bierner", + "url": "http://mattbierner.com" + }, + { + "name": "Shinnosuke Watanabe", + "url": "https://shinnn.github.io" + } + ], "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -38,6 +74,7 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "description": "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.", "devDependencies": { "bash-match": "^1.0.2", "for-own": "^1.0.0", @@ -55,6 +92,14 @@ "mocha": "^3.5.0", "multimatch": "^2.1.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/micromatch/extglob", "keywords": [ "bash", "extended", @@ -69,6 +114,7 @@ "test", "wildcard" ], + "license": "MIT", "lintDeps": { "devDependencies": { "files": { @@ -80,6 +126,15 @@ } } }, + "main": "index.js", + "name": "extglob", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/extglob.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -104,5 +159,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/extsprintf/package.json b/admin/vue2/element-admin-v3/node_modules/extsprintf/package.json index b788895cd..4cafea4b5 100644 --- a/admin/vue2/element-admin-v3/node_modules/extsprintf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/extsprintf/package.json @@ -1,14 +1,48 @@ { - "name": "extsprintf", - "version": "1.3.0", - "description": "extended POSIX-style sprintf", - "main": "./lib/extsprintf.js", - "repository": { - "type": "git", - "url": "git://github.com/davepacheco/node-extsprintf.git" - }, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" + "_args": [ + [ + "extsprintf@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "extsprintf@1.3.0", + "_id": "extsprintf@1.3.0", + "_inBundle": false, + "_integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "_location": "/extsprintf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extsprintf@1.3.0", + "name": "extsprintf", + "escapedName": "extsprintf", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/jsprim", + "/verror" + ], + "_resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/davepacheco/node-extsprintf/issues" + }, + "description": "extended POSIX-style sprintf", + "engines": [ + "node >=0.6.0" + ], + "homepage": "https://github.com/davepacheco/node-extsprintf#readme", + "license": "MIT", + "main": "./lib/extsprintf.js", + "name": "extsprintf", + "repository": { + "type": "git", + "url": "git://github.com/davepacheco/node-extsprintf.git" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/fast-deep-equal/package.json b/admin/vue2/element-admin-v3/node_modules/fast-deep-equal/package.json index 3cfe66c68..489054a86 100644 --- a/admin/vue2/element-admin-v3/node_modules/fast-deep-equal/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fast-deep-equal/package.json @@ -1,33 +1,39 @@ { - "name": "fast-deep-equal", - "version": "3.1.3", - "description": "Fast deep equal", - "main": "index.js", - "scripts": { - "eslint": "eslint *.js benchmark/*.js spec/*.js", - "build": "node build", - "benchmark": "npm i && npm run build && cd ./benchmark && npm i && node ./", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts", - "test": "npm run build && npm run eslint && npm run test-ts && npm run test-cov", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + "_args": [ + [ + "fast-deep-equal@3.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "fast-deep-equal@3.1.3", + "_id": "fast-deep-equal@3.1.3", + "_inBundle": false, + "_integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "_location": "/fast-deep-equal", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fast-deep-equal@3.1.3", + "name": "fast-deep-equal", + "escapedName": "fast-deep-equal", + "rawSpec": "3.1.3", + "saveSpec": null, + "fetchSpec": "3.1.3" }, - "keywords": [ - "fast", - "equal", - "deep-equal" + "_requiredBy": [ + "/ajv" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", + "_spec": "3.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/fast-deep-equal/issues" }, - "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "description": "Fast deep equal", "devDependencies": { "coveralls": "^3.1.0", "dot": "^1.1.2", @@ -40,6 +46,22 @@ "sinon": "^9.0.2", "typescript": "^3.9.5" }, + "files": [ + "index.js", + "index.d.ts", + "react.js", + "react.d.ts", + "es6/" + ], + "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "keywords": [ + "fast", + "equal", + "deep-equal" + ], + "license": "MIT", + "main": "index.js", + "name": "fast-deep-equal", "nyc": { "exclude": [ "**/spec/**", @@ -50,12 +72,20 @@ "text-summary" ] }, - "files": [ - "index.js", - "index.d.ts", - "react.js", - "react.d.ts", - "es6/" - ], - "types": "index.d.ts" + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + }, + "scripts": { + "benchmark": "npm i && npm run build && cd ./benchmark && npm i && node ./", + "build": "node build", + "eslint": "eslint *.js benchmark/*.js spec/*.js", + "prepublish": "npm run build", + "test": "npm run build && npm run eslint && npm run test-ts && npm run test-cov", + "test-cov": "nyc npm run test-spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts" + }, + "types": "index.d.ts", + "version": "3.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/fast-json-stable-stringify/package.json b/admin/vue2/element-admin-v3/node_modules/fast-json-stable-stringify/package.json index ad2c8bff7..a2bdb2c1b 100644 --- a/admin/vue2/element-admin-v3/node_modules/fast-json-stable-stringify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fast-json-stable-stringify/package.json @@ -1,10 +1,44 @@ { - "name": "fast-json-stable-stringify", - "version": "2.1.0", - "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify", - "main": "index.js", - "types": "index.d.ts", + "_args": [ + [ + "fast-json-stable-stringify@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "fast-json-stable-stringify@2.1.0", + "_id": "fast-json-stable-stringify@2.1.0", + "_inBundle": false, + "_integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "_location": "/fast-json-stable-stringify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fast-json-stable-stringify@2.1.0", + "name": "fast-json-stable-stringify", + "escapedName": "fast-json-stable-stringify", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/ajv", + "/eslint/ajv", + "/table/ajv" + ], + "_resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/epoberezkin/fast-json-stable-stringify/issues" + }, "dependencies": {}, + "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify", "devDependencies": { "benchmark": "^2.1.4", "coveralls": "^3.0.0", @@ -16,15 +50,6 @@ "pre-commit": "^1.2.2", "tape": "^4.11.0" }, - "scripts": { - "eslint": "eslint index.js test", - "test-spec": "tape test/*.js", - "test": "npm run eslint && nyc npm run test-spec" - }, - "repository": { - "type": "git", - "url": "git://github.com/epoberezkin/fast-json-stable-stringify.git" - }, "homepage": "https://github.com/epoberezkin/fast-json-stable-stringify", "keywords": [ "json", @@ -33,12 +58,9 @@ "hash", "stable" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "license": "MIT", + "main": "index.js", + "name": "fast-json-stable-stringify", "nyc": { "exclude": [ "test", @@ -48,5 +70,16 @@ "lcov", "text-summary" ] - } + }, + "repository": { + "type": "git", + "url": "git://github.com/epoberezkin/fast-json-stable-stringify.git" + }, + "scripts": { + "eslint": "eslint index.js test", + "test": "npm run eslint && nyc npm run test-spec", + "test-spec": "tape test/*.js" + }, + "types": "index.d.ts", + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/fast-levenshtein/package.json b/admin/vue2/element-admin-v3/node_modules/fast-levenshtein/package.json index 5b4736d45..662053207 100644 --- a/admin/vue2/element-admin-v3/node_modules/fast-levenshtein/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fast-levenshtein/package.json @@ -1,17 +1,42 @@ { - "name": "fast-levenshtein", - "version": "2.0.6", - "description": "Efficient implementation of Levenshtein algorithm with locale-specific collator support.", - "main": "levenshtein.js", - "files": [ - "levenshtein.js" + "_args": [ + [ + "fast-levenshtein@2.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "grunt build", - "prepublish": "npm run build", - "benchmark": "grunt benchmark", - "test": "mocha" + "_development": true, + "_from": "fast-levenshtein@2.0.6", + "_id": "fast-levenshtein@2.0.6", + "_inBundle": false, + "_integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "_location": "/fast-levenshtein", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fast-levenshtein@2.0.6", + "name": "fast-levenshtein", + "escapedName": "fast-levenshtein", + "rawSpec": "2.0.6", + "saveSpec": null, + "fetchSpec": "2.0.6" + }, + "_requiredBy": [ + "/optionator" + ], + "_resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "_spec": "2.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ramesh Nair", + "email": "ram@hiddentao.com", + "url": "http://www.hiddentao.com/" }, + "bugs": { + "url": "https://github.com/hiddentao/fast-levenshtein/issues" + }, + "description": "Efficient implementation of Levenshtein algorithm with locale-specific collator support.", "devDependencies": { "chai": "~1.5.0", "grunt": "~0.4.1", @@ -25,15 +50,27 @@ "lodash": "^4.0.1", "mocha": "~1.9.0" }, - "repository": { - "type": "git", - "url": "https://github.com/hiddentao/fast-levenshtein.git" - }, + "files": [ + "levenshtein.js" + ], + "homepage": "https://github.com/hiddentao/fast-levenshtein#readme", "keywords": [ "levenshtein", "distance", "string" ], - "author": "Ramesh Nair (http://www.hiddentao.com/)", - "license": "MIT" + "license": "MIT", + "main": "levenshtein.js", + "name": "fast-levenshtein", + "repository": { + "type": "git", + "url": "git+https://github.com/hiddentao/fast-levenshtein.git" + }, + "scripts": { + "benchmark": "grunt benchmark", + "build": "grunt build", + "prepublish": "npm run build", + "test": "mocha" + }, + "version": "2.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/fastparse/package.json b/admin/vue2/element-admin-v3/node_modules/fastparse/package.json index 9682e979f..10494ed1b 100644 --- a/admin/vue2/element-admin-v3/node_modules/fastparse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fastparse/package.json @@ -1,39 +1,70 @@ { - "name": "fastparse", - "version": "1.1.2", - "description": "A very simple and stupid parser, based on a statemachine and regular expressions.", - "main": "lib/Parser.js", - "scripts": { - "pretest": "npm run lint", - "test": "mocha", - "travis": "npm run cover -- --report lcovonly", - "lint": "eslint lib", - "precover": "npm run lint", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "publish-patch": "mocha && npm version patch && git push && git push --tags && npm publish" - }, - "repository": { - "type": "git", - "url": "https://github.com/webpack/fastparse.git" - }, - "keywords": [ - "parser", - "regexp" + "_args": [ + [ + "fastparse@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib" + "_development": true, + "_from": "fastparse@1.1.2", + "_id": "fastparse@1.1.2", + "_inBundle": false, + "_integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", + "_location": "/fastparse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fastparse@1.1.2", + "name": "fastparse", + "escapedName": "fastparse", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/css-selector-tokenizer" ], - "author": "Tobias Koppers @sokra", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, "bugs": { "url": "https://github.com/webpack/fastparse/issues" }, - "homepage": "https://github.com/webpack/fastparse", + "description": "A very simple and stupid parser, based on a statemachine and regular expressions.", "devDependencies": { "coveralls": "^2.11.2", "eslint": "^0.21.2", "istanbul": "^0.3.14", "mocha": "^2.2.5", "should": "^6.0.3" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/webpack/fastparse", + "keywords": [ + "parser", + "regexp" + ], + "license": "MIT", + "main": "lib/Parser.js", + "name": "fastparse", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/fastparse.git" + }, + "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint lib", + "precover": "npm run lint", + "pretest": "npm run lint", + "publish-patch": "mocha && npm version patch && git push && git push --tags && npm publish", + "test": "mocha", + "travis": "npm run cover -- --report lcovonly" + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/faye-websocket/package.json b/admin/vue2/element-admin-v3/node_modules/faye-websocket/package.json index 26acc2ae9..9d741649b 100644 --- a/admin/vue2/element-admin-v3/node_modules/faye-websocket/package.json +++ b/admin/vue2/element-admin-v3/node_modules/faye-websocket/package.json @@ -1,35 +1,70 @@ { - "name": "faye-websocket", - "description": "Standards-compliant WebSocket server and client", - "homepage": "https://github.com/faye/faye-websocket-node", - "author": "James Coglan (http://jcoglan.com/)", - "keywords": [ - "websocket", - "eventsource" - ], - "license": "Apache-2.0", - "version": "0.11.4", - "engines": { - "node": ">=0.8.0" - }, - "files": [ - "lib" - ], - "main": "./lib/faye/websocket", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "devDependencies": { - "jstest": "*", - "pace": "*", - "permessage-deflate": "*" - }, - "scripts": { - "test": "jstest spec/runner.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/faye/faye-websocket-node.git" - }, - "bugs": "https://github.com/faye/faye-websocket-node/issues" + "_args": [ + [ + "faye-websocket@0.11.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "faye-websocket@0.11.4", + "_id": "faye-websocket@0.11.4", + "_inBundle": false, + "_integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=", + "_location": "/faye-websocket", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "faye-websocket@0.11.4", + "name": "faye-websocket", + "escapedName": "faye-websocket", + "rawSpec": "0.11.4", + "saveSpec": null, + "fetchSpec": "0.11.4" + }, + "_requiredBy": [ + "/sockjs", + "/sockjs-client" + ], + "_resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz", + "_spec": "0.11.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Coglan", + "email": "jcoglan@gmail.com", + "url": "http://jcoglan.com/" + }, + "bugs": { + "url": "https://github.com/faye/faye-websocket-node/issues" + }, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "description": "Standards-compliant WebSocket server and client", + "devDependencies": { + "jstest": "*", + "pace": "*", + "permessage-deflate": "*" + }, + "engines": { + "node": ">=0.8.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/faye/faye-websocket-node", + "keywords": [ + "websocket", + "eventsource" + ], + "license": "Apache-2.0", + "main": "./lib/faye/websocket", + "name": "faye-websocket", + "repository": { + "type": "git", + "url": "git://github.com/faye/faye-websocket-node.git" + }, + "scripts": { + "test": "jstest spec/runner.js" + }, + "version": "0.11.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/fecha/package.json b/admin/vue2/element-admin-v3/node_modules/fecha/package.json index 55ff7ea23..78acbcc1f 100644 --- a/admin/vue2/element-admin-v3/node_modules/fecha/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fecha/package.json @@ -1,33 +1,40 @@ { - "name": "fecha", - "version": "4.2.1", - "description": "Date formatting and parsing", - "main": "lib/fecha.umd.js", - "module": "lib/fecha.js", - "scripts": { - "test-only": "ts-node test.js", - "test": "prettier --check *.js src/*.ts && eslint --ext .ts src && npm run build && nyc --cache --reporter=text ts-node test.js", - "build": "NODE_ENV=production rollup -c --sourcemap && tsc", - "format": "prettier --write *.js src/*.ts" - }, - "repository": { - "type": "git", - "url": "https://taylorhakes@github.com/taylorhakes/fecha.git" + "_args": [ + [ + "fecha@4.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "fecha@4.2.1", + "_id": "fecha@4.2.1", + "_inBundle": false, + "_integrity": "sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4=", + "_location": "/fecha", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fecha@4.2.1", + "name": "fecha", + "escapedName": "fecha", + "rawSpec": "4.2.1", + "saveSpec": null, + "fetchSpec": "4.2.1" }, - "keywords": [ - "date", - "parse", - "moment", - "format", - "fecha", - "formatting" + "_requiredBy": [ + "/@antv/component", + "/@antv/scale" ], - "author": "Taylor Hakes", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/fecha/download/fecha-4.2.1.tgz", + "_spec": "4.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Taylor Hakes" + }, "bugs": { "url": "https://github.com/taylorhakes/fecha/issues" }, - "homepage": "https://github.com/taylorhakes/fecha", + "description": "Date formatting and parsing", "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@typescript-eslint/eslint-plugin": "^2.14.0", @@ -51,5 +58,29 @@ "dist", "src" ], - "types": "lib/fecha.d.ts" + "homepage": "https://github.com/taylorhakes/fecha", + "keywords": [ + "date", + "parse", + "moment", + "format", + "fecha", + "formatting" + ], + "license": "MIT", + "main": "lib/fecha.umd.js", + "module": "lib/fecha.js", + "name": "fecha", + "repository": { + "type": "git", + "url": "git+https://taylorhakes@github.com/taylorhakes/fecha.git" + }, + "scripts": { + "build": "NODE_ENV=production rollup -c --sourcemap && tsc", + "format": "prettier --write *.js src/*.ts", + "test": "prettier --check *.js src/*.ts && eslint --ext .ts src && npm run build && nyc --cache --reporter=text ts-node test.js", + "test-only": "ts-node test.js" + }, + "types": "lib/fecha.d.ts", + "version": "4.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/figures/package.json b/admin/vue2/element-admin-v3/node_modules/figures/package.json index 80b6db1b3..2f3f20d3d 100644 --- a/admin/vue2/element-admin-v3/node_modules/figures/package.json +++ b/admin/vue2/element-admin-v3/node_modules/figures/package.json @@ -1,24 +1,60 @@ { - "name": "figures", - "version": "2.0.0", - "description": "Unicode symbols with Windows CMD fallbacks", - "license": "MIT", - "repository": "sindresorhus/figures", + "_args": [ + [ + "figures@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "figures@2.0.0", + "_id": "figures@2.0.0", + "_inBundle": false, + "_integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "_location": "/figures", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "figures@2.0.0", + "name": "figures", + "escapedName": "figures", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/inquirer", + "/listr-verbose-renderer", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/figures/issues" + }, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "description": "Unicode symbols with Windows CMD fallbacks", + "devDependencies": { + "ava": "*", + "markdown-table": "^1.0.0", + "require-uncached": "^1.0.2", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "make": "./makefile.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/figures#readme", "keywords": [ "unicode", "cli", @@ -32,15 +68,17 @@ "figures", "fallback" ], - "dependencies": { - "escape-string-regexp": "^1.0.5" + "license": "MIT", + "name": "figures", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/figures.git" }, - "devDependencies": { - "ava": "*", - "markdown-table": "^1.0.0", - "require-uncached": "^1.0.2", - "xo": "*" + "scripts": { + "make": "./makefile.js", + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/file-entry-cache/package.json b/admin/vue2/element-admin-v3/node_modules/file-entry-cache/package.json index f9f48d10c..47f09efd2 100644 --- a/admin/vue2/element-admin-v3/node_modules/file-entry-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/file-entry-cache/package.json @@ -1,52 +1,40 @@ { - "name": "file-entry-cache", - "version": "2.0.0", - "description": "Super simple cache for file metadata, useful for process that work o a given series of files and that only need to repeat the job on the changed ones since the previous run of the process", - "repository": "royriojas/file-entry-cache", - "license": "MIT", + "_args": [ + [ + "file-entry-cache@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "file-entry-cache@2.0.0", + "_id": "file-entry-cache@2.0.0", + "_inBundle": false, + "_integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "_location": "/file-entry-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "file-entry-cache@2.0.0", + "name": "file-entry-cache", + "escapedName": "file-entry-cache", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" }, - "main": "cache.js", - "files": [ - "cache.js" - ], - "engines": { - "node": ">=0.10.0" + "bugs": { + "url": "https://github.com/royriojas/file-entry-cache/issues" }, - "scripts": { - "beautify": "esbeautifier 'cache.js' 'test/**/*.js'", - "beautify-check": "npm run beautify -- -k", - "eslint": "eslinter 'cache.js' 'specs/**/*.js'", - "lint": "npm run beautify && npm run eslint", - "verify": "npm run beautify-check && npm run eslint", - "install-hooks": "prepush install && changelogx install-hook && precommit install", - "changelog": "changelogx -f markdown -o ./changelog.md", - "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", - "pre-v": "npm run test", - "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", - "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", - "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", - "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", - "test": "npm run verify --silent && mocha -R spec test/specs", - "cover": "istanbul cover test/runner.js html text-summary", - "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" - }, - "prepush": [ - "npm run verify" - ], - "precommit": [ - "npm run verify" - ], - "keywords": [ - "file cache", - "task cache files", - "file cache", - "key par", - "key value", - "cache" - ], "changelogx": { "ignoreRegExp": [ "BLD: Release", @@ -59,6 +47,11 @@ "issueIDURL": "https://github.com/royriojas/file-entry-cache/issues/{0}", "projectName": "file-entry-cache" }, + "dependencies": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "description": "Super simple cache for file metadata, useful for process that work o a given series of files and that only need to repeat the job on the changed ones since the previous run of the process", "devDependencies": { "chai": "^3.2.0", "changelogx": "^1.0.18", @@ -77,8 +70,51 @@ "watch-run": "^1.2.1", "write": "^0.3.1" }, - "dependencies": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "cache.js" + ], + "homepage": "https://github.com/royriojas/file-entry-cache#readme", + "keywords": [ + "file cache", + "task cache files", + "file cache", + "key par", + "key value", + "cache" + ], + "license": "MIT", + "main": "cache.js", + "name": "file-entry-cache", + "precommit": [ + "npm run verify" + ], + "prepush": [ + "npm run verify" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/royriojas/file-entry-cache.git" + }, + "scripts": { + "beautify": "esbeautifier 'cache.js' 'test/**/*.js'", + "beautify-check": "npm run beautify -- -k", + "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", + "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", + "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", + "changelog": "changelogx -f markdown -o ./changelog.md", + "cover": "istanbul cover test/runner.js html text-summary", + "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", + "eslint": "eslinter 'cache.js' 'specs/**/*.js'", + "install-hooks": "prepush install && changelogx install-hook && precommit install", + "lint": "npm run beautify && npm run eslint", + "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", + "pre-v": "npm run test", + "test": "npm run verify --silent && mocha -R spec test/specs", + "verify": "npm run beautify-check && npm run eslint", + "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/file-loader/node_modules/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/file-loader/node_modules/schema-utils/package.json index ab2bf6078..ab322a84d 100644 --- a/admin/vue2/element-admin-v3/node_modules/file-loader/node_modules/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/file-loader/node_modules/schema-utils/package.json @@ -1,25 +1,45 @@ { - "name": "schema-utils", - "version": "0.4.7", - "description": "webpack Validation Utils", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "schema-utils@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_development": true, + "_from": "schema-utils@0.4.7", + "_id": "schema-utils@0.4.7", + "_inBundle": false, + "_integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "_location": "/file-loader/schema-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "schema-utils@0.4.7", + "name": "schema-utils", + "escapedName": "schema-utils", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" }, - "scripts": { - "lint": "eslint --cache src test", - "test": "jest --env node --verbose --coverage", - "clean": "del-cli coverage", - "commits": "commitlint --from $(git rev-list --tags --max-count=1)", - "release": "npm run commits && standard-version" + "_requiredBy": [ + "/file-loader" + ], + "_resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" }, + "description": "webpack Validation Utils", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.0", @@ -32,9 +52,26 @@ "prettier": "^1.0.0", "standard-version": "^4.0.0" }, - "author": "webpack Contrib (https://github.com/webpack-contrib)", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", + "engines": { + "node": ">= 4" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/schema-utils", - "repository": "https://github.com/webpack-contrib/schema-utils", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "schema-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "clean": "del-cli coverage", + "commits": "commitlint --from $(git rev-list --tags --max-count=1)", + "lint": "eslint --cache src test", + "release": "npm run commits && standard-version", + "test": "jest --env node --verbose --coverage" + }, + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/file-loader/package.json b/admin/vue2/element-admin-v3/node_modules/file-loader/package.json index 1e0594081..5e52acb2f 100644 --- a/admin/vue2/element-admin-v3/node_modules/file-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/file-loader/package.json @@ -1,20 +1,47 @@ { - "name": "file-loader", - "version": "1.1.11", - "author": "Tobias Koppers @sokra", - "description": "file loader module for webpack", - "license": "MIT", - "engines": { - "node": ">= 4.3 < 5.0.0 || >= 5.10" + "_args": [ + [ + "file-loader@1.1.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "file-loader@1.1.11", + "_id": "file-loader@1.1.11", + "_inBundle": false, + "_integrity": "sha1-b+iGRJsPKpNuQ8q6rAzb+zaVBvg=", + "_location": "/file-loader", + "_phantomChildren": { + "ajv": "6.12.6", + "ajv-keywords": "3.5.2" }, - "main": "dist/cjs.js", - "files": [ - "dist" + "_requested": { + "type": "version", + "registry": true, + "raw": "file-loader@1.1.11", + "name": "file-loader", + "escapedName": "file-loader", + "rawSpec": "1.1.11", + "saveSpec": null, + "fetchSpec": "1.1.11" + }, + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-1.1.11.tgz", + "_spec": "1.1.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/file-loader/issues" + }, "dependencies": { "loader-utils": "^1.0.2", "schema-utils": "^0.4.5" }, + "description": "file loader module for webpack", "devDependencies": { "babel-cli": "^6.0.0", "babel-jest": "^21.0.0", @@ -36,36 +63,48 @@ "webpack": "^3.0.0", "webpack-defaults": "^1.6.0" }, + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + }, + "files": [ + "dist" + ], + "homepage": "https://webpack.js.org/loaders/file-loader", + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "dist/cjs.js", + "name": "file-loader", "peerDependencies": { "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" }, + "pre-commit": "lint-staged", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/file-loader.git" + }, "scripts": { - "start": "npm run build -- -w", "appveyor:test": "npm run test", "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", "clean": "del-cli dist", "lint": "eslint --cache src test", "lint-staged": "lint-staged", - "prepare": "npm run build", "prebuild": "npm run clean", + "prepare": "npm run build", "release": "standard-version", "security": "nsp check", + "start": "npm run build -- -w", "test": "jest", - "test:watch": "jest --watch", "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", + "test:watch": "jest --watch", + "travis:coverage": "npm run test:coverage -- --runInBand", "travis:lint": "npm run lint && npm run security", "travis:test": "npm run test -- --runInBand", - "travis:coverage": "npm run test:coverage -- --runInBand", "webpack-defaults": "webpack-defaults" }, - "repository": "https://github.com/webpack/file-loader.git", - "bugs": "https://github.com/webpack/file-loader/issues", - "homepage": "https://webpack.js.org/loaders/file-loader", - "pre-commit": "lint-staged", - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - } + "version": "1.1.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/file-saver/package.json b/admin/vue2/element-admin-v3/node_modules/file-saver/package.json index c43a02882..719c5fea9 100644 --- a/admin/vue2/element-admin-v3/node_modules/file-saver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/file-saver/package.json @@ -1,28 +1,33 @@ { - "_from": "file-saver@1.3.3", - "_id": "file-saver@1.3.3", + "_args": [ + [ + "file-saver@1.3.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "file-saver@1.3.8", + "_id": "file-saver@1.3.8", "_inBundle": false, - "_integrity": "sha1-zdTETTqiZOrC9o7BZbx5HDSvEjI=", + "_integrity": "sha1-5oowx8sETi+zYrQoRp/rKRwuCdg=", "_location": "/file-saver", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "file-saver@1.3.3", + "raw": "file-saver@1.3.8", "name": "file-saver", "escapedName": "file-saver", - "rawSpec": "1.3.3", + "rawSpec": "1.3.8", "saveSpec": null, - "fetchSpec": "1.3.3" + "fetchSpec": "1.3.8" }, "_requiredBy": [ - "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/file-saver/-/file-saver-1.3.3.tgz", + "_resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-1.3.8.tgz?cache=0&sync_timestamp=1605790980036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-saver%2Fdownload%2Ffile-saver-1.3.8.tgz", "_shasum": "cdd4c44d3aa264eac2f68ec165bc791c34af1232", - "_spec": "file-saver@1.3.3", - "_where": "/Users/jimmywarting/git/FileSaver.js", + "_spec": "1.3.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Eli Grey", "email": "me@eligrey.com" @@ -30,7 +35,6 @@ "bugs": { "url": "https://github.com/eligrey/FileSaver.js/issues" }, - "bundleDependencies": false, "deprecated": false, "description": "An HTML5 saveAs() FileSaver implementation", "devDependencies": { diff --git a/admin/vue2/element-admin-v3/node_modules/filesize/package.json b/admin/vue2/element-admin-v3/node_modules/filesize/package.json index 8c48a1450..daab8f400 100644 --- a/admin/vue2/element-admin-v3/node_modules/filesize/package.json +++ b/admin/vue2/element-admin-v3/node_modules/filesize/package.json @@ -1,28 +1,44 @@ { - "name": "filesize", - "description": "JavaScript library to generate a human readable String describing the file size", - "version": "3.6.1", - "homepage": "https://filesizejs.com", - "author": "Jason Mulligan ", - "repository": { - "type": "git", - "url": "git://github.com/avoidwork/filesize.js.git" + "_args": [ + [ + "filesize@3.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "filesize@3.6.1", + "_id": "filesize@3.6.1", + "_inBundle": false, + "_integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", + "_location": "/filesize", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "filesize@3.6.1", + "name": "filesize", + "escapedName": "filesize", + "rawSpec": "3.6.1", + "saveSpec": null, + "fetchSpec": "3.6.1" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.nlark.com/filesize/download/filesize-3.6.1.tgz", + "_spec": "3.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jason Mulligan", + "email": "jason.mulligan@avoidwork.com" }, "bugs": { "url": "https://github.com/avoidwork/filesize.js/issues" }, - "license": "BSD-3-Clause", - "main": "lib/filesize", - "engines": { - "node": ">= 0.4.0" - }, - "scripts": { - "test": "grunt test" - }, + "description": "JavaScript library to generate a human readable String describing the file size", "devDependencies": { "babel-core": "^6.26.0", - "babel-preset-env": "^1.6.1", "babel-minify": "^0.3.0", + "babel-preset-env": "^1.6.1", "grunt": "^1.0.1", "grunt-babel": "^7.0.0", "grunt-cli": "^1.2.0", @@ -32,6 +48,10 @@ "grunt-contrib-watch": "^1.0.0", "grunt-eslint": "^20.1.0" }, + "engines": { + "node": ">= 0.4.0" + }, + "homepage": "https://filesizejs.com", "keywords": [ "file", "filesize", @@ -40,5 +60,16 @@ "file system", "bytes", "diff" - ] + ], + "license": "BSD-3-Clause", + "main": "lib/filesize", + "name": "filesize", + "repository": { + "type": "git", + "url": "git://github.com/avoidwork/filesize.js.git" + }, + "scripts": { + "test": "grunt test" + }, + "version": "3.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/fill-range/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/fill-range/node_modules/extend-shallow/package.json index b42e01c7a..67c986d59 100644 --- a/admin/vue2/element-admin-v3/node_modules/fill-range/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fill-range/node_modules/extend-shallow/package.json @@ -1,27 +1,43 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/fill-range/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/fill-range" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +50,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +75,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/fill-range/package.json b/admin/vue2/element-admin-v3/node_modules/fill-range/package.json index fa17dd214..c0601f7eb 100644 --- a/admin/vue2/element-admin-v3/node_modules/fill-range/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fill-range/package.json @@ -1,36 +1,69 @@ { - "name": "fill-range", - "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", - "version": "4.0.0", - "homepage": "https://github.com/jonschlinkert/fill-range", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - " (https://github.com/wtgtybhertgeghgtwtg)", - "Edo Rivai (edo.rivai.nl)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Miller (paulmillr.com)" + "_args": [ + [ + "fill-range@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/fill-range", - "bugs": { - "url": "https://github.com/jonschlinkert/fill-range/issues" + "_from": "fill-range@4.0.0", + "_id": "fill-range@4.0.0", + "_inBundle": false, + "_integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "_location": "/fill-range", + "_phantomChildren": { + "is-extendable": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "fill-range@4.0.0", + "name": "fill-range", + "escapedName": "fill-range", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/braces" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/fill-range/issues" }, + "contributors": [ + { + "email": "wtgtybhertgeghgtwtg@gmail.com", + "url": "https://github.com/wtgtybhertgeghgtwtg" + }, + { + "name": "Edo Rivai", + "email": "edo.rivai@gmail.com", + "url": "edo.rivai.nl" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Paul Miller", + "email": "paul+gh@paulmillr.com", + "url": "paulmillr.com" + } + ], "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", "devDependencies": { "ansi-cyan": "^0.1.1", "benchmarked": "^1.0.0", @@ -38,6 +71,13 @@ "minimist": "^1.2.0", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/fill-range", "keywords": [ "alpha", "alphabetical", @@ -58,6 +98,16 @@ "regex", "sh" ], + "license": "MIT", + "main": "index.js", + "name": "fill-range", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/fill-range.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -78,5 +128,6 @@ "lint": { "reflinks": true } - } + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/finalhandler/package.json b/admin/vue2/element-admin-v3/node_modules/finalhandler/package.json index a3eacc8ad..2242b5b18 100644 --- a/admin/vue2/element-admin-v3/node_modules/finalhandler/package.json +++ b/admin/vue2/element-admin-v3/node_modules/finalhandler/package.json @@ -1,10 +1,39 @@ { - "name": "finalhandler", - "description": "Node.js final http responder", - "version": "1.1.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "pillarjs/finalhandler", + "_args": [ + [ + "finalhandler@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "finalhandler@1.1.0", + "_id": "finalhandler@1.1.0", + "_inBundle": false, + "_integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "_location": "/finalhandler", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "finalhandler@1.1.0", + "name": "finalhandler", + "escapedName": "finalhandler", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/connect" + ], + "_resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/pillarjs/finalhandler/issues" + }, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.1", @@ -14,6 +43,7 @@ "statuses": "~1.3.1", "unpipe": "~1.0.0" }, + "description": "Node.js final http responder", "devDependencies": { "eslint": "3.19.0", "eslint-config-standard": "10.2.1", @@ -28,18 +58,26 @@ "safe-buffer": "5.1.1", "supertest": "1.1.0" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/pillarjs/finalhandler#readme", + "license": "MIT", + "name": "finalhandler", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/finalhandler.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/find-up/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/find-up/package.json index 7ec85bb79..3b0acefc3 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/find-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/find-up/package.json @@ -1,23 +1,56 @@ { - "name": "find-up", - "version": "2.1.0", - "description": "Find a file by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", + "_args": [ + [ + "find-up@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "find-up@2.1.0", + "_id": "find-up@2.1.0", + "_inBundle": false, + "_integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "_location": "/find-cache-dir/find-up", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-up@2.1.0", + "name": "find-up", + "escapedName": "find-up", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/find-cache-dir/pkg-dir" + ], + "_resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/find-up/issues" + }, + "dependencies": { + "locate-path": "^2.0.0" + }, + "description": "Find a file by walking up parent directories", + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.1", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/find-up#readme", "keywords": [ "find", "up", @@ -39,14 +72,16 @@ "walking", "path" ], - "dependencies": { - "locate-path": "^2.0.0" + "license": "MIT", + "name": "find-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/find-up.git" }, - "devDependencies": { - "ava": "*", - "tempfile": "^1.1.1", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.1.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/locate-path/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/locate-path/package.json index 17bcd7ff6..d34367d2d 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/locate-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/locate-path/package.json @@ -1,23 +1,56 @@ { - "name": "locate-path", - "version": "2.0.0", - "description": "Get the first path that exists on disk of multiple paths", - "license": "MIT", - "repository": "sindresorhus/locate-path", + "_args": [ + [ + "locate-path@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "locate-path@2.0.0", + "_id": "locate-path@2.0.0", + "_inBundle": false, + "_integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "_location": "/find-cache-dir/locate-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "locate-path@2.0.0", + "name": "locate-path", + "escapedName": "locate-path", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/find-cache-dir/find-up" + ], + "_resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/locate-path/issues" + }, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "description": "Get the first path that exists on disk of multiple paths", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/locate-path#readme", "keywords": [ "locate", "path", @@ -33,14 +66,16 @@ "iterable", "iterator" ], - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "license": "MIT", + "name": "locate-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/locate-path.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-limit/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-limit/package.json index 4079517f1..3ae118f9b 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-limit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-limit/package.json @@ -1,49 +1,84 @@ { - "name": "p-limit", - "version": "1.3.0", - "description": "Run multiple promise-returning & async functions with limited concurrency", - "license": "MIT", - "repository": "sindresorhus/p-limit", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "limit", - "limited", - "concurrency", - "throttle", - "throat", - "rate", - "batch", - "ratelimit", - "task", - "queue", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-try": "^1.0.0" - }, - "devDependencies": { - "ava": "*", - "delay": "^2.0.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^2.0.0", - "xo": "*" - } + "_args": [ + [ + "p-limit@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-limit@1.3.0", + "_id": "p-limit@1.3.0", + "_inBundle": false, + "_integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "_location": "/find-cache-dir/p-limit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-limit@1.3.0", + "name": "p-limit", + "escapedName": "p-limit", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/find-cache-dir/p-locate" + ], + "_resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-limit/issues" + }, + "dependencies": { + "p-try": "^1.0.0" + }, + "description": "Run multiple promise-returning & async functions with limited concurrency", + "devDependencies": { + "ava": "*", + "delay": "^2.0.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-limit#readme", + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-limit", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-limit.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-locate/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-locate/package.json index 767002b38..ed4b065f1 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-locate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-locate/package.json @@ -1,23 +1,58 @@ { - "name": "p-locate", - "version": "2.0.0", - "description": "Get the first fulfilled promise that satisfies the provided testing function", - "license": "MIT", - "repository": "sindresorhus/p-locate", + "_args": [ + [ + "p-locate@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-locate@2.0.0", + "_id": "p-locate@2.0.0", + "_inBundle": false, + "_integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "_location": "/find-cache-dir/p-locate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-locate@2.0.0", + "name": "p-locate", + "escapedName": "p-locate", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/find-cache-dir/locate-path" + ], + "_resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-locate/issues" + }, + "dependencies": { + "p-limit": "^1.1.0" + }, + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "devDependencies": { + "ava": "*", + "delay": "^1.3.1", + "in-range": "^1.0.0", + "time-span": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-locate#readme", "keywords": [ "promise", "locate", @@ -38,16 +73,16 @@ "promises", "bluebird" ], - "dependencies": { - "p-limit": "^1.1.0" + "license": "MIT", + "name": "p-locate", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-locate.git" }, - "devDependencies": { - "ava": "*", - "delay": "^1.3.1", - "in-range": "^1.0.0", - "time-span": "^1.0.0", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-try/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-try/package.json index ba2513ade..c25cbc937 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-try/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/p-try/package.json @@ -1,23 +1,52 @@ { - "name": "p-try", - "version": "1.0.0", - "description": "`Promise#try()` ponyfill - Starts a promise chain", - "license": "MIT", - "repository": "sindresorhus/p-try", + "_args": [ + [ + "p-try@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-try@1.0.0", + "_id": "p-try@1.0.0", + "_inBundle": false, + "_integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "_location": "/find-cache-dir/p-try", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-try@1.0.0", + "name": "p-try", + "escapedName": "p-try", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/find-cache-dir/p-limit" + ], + "_resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-try/issues" + }, + "description": "`Promise#try()` ponyfill - Starts a promise chain", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-try#readme", "keywords": [ "promise", "try", @@ -33,10 +62,16 @@ "shim", "bluebird" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "p-try", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-try.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "1.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/pkg-dir/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/pkg-dir/package.json index 2bb7277c6..892be3744 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/pkg-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/node_modules/pkg-dir/package.json @@ -1,23 +1,55 @@ { - "name": "pkg-dir", - "version": "2.0.0", - "description": "Find the root directory of a Node.js project or npm package", - "license": "MIT", - "repository": "sindresorhus/pkg-dir", + "_args": [ + [ + "pkg-dir@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pkg-dir@2.0.0", + "_id": "pkg-dir@2.0.0", + "_inBundle": false, + "_integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "_location": "/find-cache-dir/pkg-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pkg-dir@2.0.0", + "name": "pkg-dir", + "escapedName": "pkg-dir", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/find-cache-dir" + ], + "_resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pkg-dir/issues" + }, + "dependencies": { + "find-up": "^2.1.0" + }, + "description": "Find the root directory of a Node.js project or npm package", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pkg-dir#readme", "keywords": [ "package", "json", @@ -43,11 +75,14 @@ "walking", "path" ], - "dependencies": { - "find-up": "^2.1.0" + "license": "MIT", + "name": "pkg-dir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pkg-dir.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/package.json b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/package.json index bf5a64db1..87bac01ec 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-cache-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-cache-dir/package.json @@ -1,23 +1,64 @@ { - "name": "find-cache-dir", - "version": "1.0.0", - "description": "My well-made module", - "license": "MIT", - "repository": "avajs/find-cache-dir", + "_args": [ + [ + "find-cache-dir@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "find-cache-dir@1.0.0", + "_id": "find-cache-dir@1.0.0", + "_inBundle": false, + "_integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "_location": "/find-cache-dir", + "_phantomChildren": { + "path-exists": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-cache-dir@1.0.0", + "name": "find-cache-dir", + "escapedName": "find-cache-dir", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/babel-loader", + "/copy-webpack-plugin", + "/uglifyjs-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "James Talmage", "email": "james@talmage.io", "url": "github.com/jamestalmage" }, + "bugs": { + "url": "https://github.com/avajs/find-cache-dir/issues" + }, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "description": "My well-made module", + "devDependencies": { + "ava": "^0.19.1", + "coveralls": "^2.11.6", + "del": "^2.2.2", + "nyc": "^10.3.2", + "xo": "^0.18.2" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && nyc ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/avajs/find-cache-dir#readme", "keywords": [ "cache", "directory", @@ -26,22 +67,20 @@ "find", "search" ], - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - }, - "devDependencies": { - "ava": "^0.19.1", - "coveralls": "^2.11.6", - "del": "^2.2.2", - "nyc": "^10.3.2", - "xo": "^0.18.2" - }, + "license": "MIT", + "name": "find-cache-dir", "nyc": { "reporter": [ "lcov", "text" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/avajs/find-cache-dir.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/find-parent-dir/package.json b/admin/vue2/element-admin-v3/node_modules/find-parent-dir/package.json index 036e5925e..92117258e 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-parent-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-parent-dir/package.json @@ -1,20 +1,50 @@ { - "name": "find-parent-dir", - "version": "0.3.1", - "description": "Finds the first parent directory that contains a given file or directory.", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "find-parent-dir@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "find-parent-dir@0.3.1", + "_id": "find-parent-dir@0.3.1", + "_inBundle": false, + "_integrity": "sha1-xcOFuWhYwzUfldRGyrhmy/nxESU=", + "_location": "/find-parent-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-parent-dir@0.3.1", + "name": "find-parent-dir", + "escapedName": "find-parent-dir", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/find-parent-dir.git" + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.nlark.com/find-parent-dir/download/find-parent-dir-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "http://thlorenz.com" + }, + "bugs": { + "url": "https://github.com/thlorenz/find-parent-dir/issues" }, - "homepage": "https://github.com/thlorenz/find-parent-dir", "dependencies": {}, + "description": "Finds the first parent directory that contains a given file or directory.", "devDependencies": { "tap": "~0.4.3" }, + "engine": { + "node": ">=0.6" + }, + "homepage": "https://github.com/thlorenz/find-parent-dir", "keywords": [ "find", "parent", @@ -23,13 +53,15 @@ "resolve", "walk" ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "http://thlorenz.com" - }, "license": "MIT", - "engine": { - "node": ">=0.6" - } + "main": "index.js", + "name": "find-parent-dir", + "repository": { + "type": "git", + "url": "git://github.com/thlorenz/find-parent-dir.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/find-up/package.json b/admin/vue2/element-admin-v3/node_modules/find-up/package.json index a708f5727..634ce70de 100644 --- a/admin/vue2/element-admin-v3/node_modules/find-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/find-up/package.json @@ -1,50 +1,88 @@ { - "name": "find-up", - "version": "3.0.0", - "description": "Find a file or directory by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "find", - "up", - "find-up", - "findup", - "look-up", - "look", - "file", - "search", - "match", - "package", - "resolve", - "parent", - "parents", - "folder", - "directory", - "dir", - "walk", - "walking", - "path" - ], - "dependencies": { - "locate-path": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "tempy": "^0.2.1", - "xo": "*" - } + "_args": [ + [ + "find-up@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "find-up@3.0.0", + "_id": "find-up@3.0.0", + "_inBundle": false, + "_integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "_location": "/find-up", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-up@3.0.0", + "name": "find-up", + "escapedName": "find-up", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/pkg-dir", + "/sass-graph/yargs", + "/webpack-dev-server/yargs", + "/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/find-up/issues" + }, + "dependencies": { + "locate-path": "^3.0.0" + }, + "description": "Find a file or directory by walking up parent directories", + "devDependencies": { + "ava": "*", + "tempy": "^0.2.1", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/find-up#readme", + "keywords": [ + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "package", + "resolve", + "parent", + "parents", + "folder", + "directory", + "dir", + "walk", + "walking", + "path" + ], + "license": "MIT", + "name": "find-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/find-up.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/flat-cache/package.json b/admin/vue2/element-admin-v3/node_modules/flat-cache/package.json index 8ef782109..ab88a9d63 100644 --- a/admin/vue2/element-admin-v3/node_modules/flat-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/flat-cache/package.json @@ -1,57 +1,40 @@ { - "name": "flat-cache", - "version": "1.3.4", - "description": "A stupidly simple key/value storage using files to persist some data", - "repository": "royriojas/flat-cache", - "license": "MIT", + "_args": [ + [ + "flat-cache@1.3.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "flat-cache@1.3.4", + "_id": "flat-cache@1.3.4", + "_inBundle": false, + "_integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "_location": "/flat-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "flat-cache@1.3.4", + "name": "flat-cache", + "escapedName": "flat-cache", + "rawSpec": "1.3.4", + "saveSpec": null, + "fetchSpec": "1.3.4" + }, + "_requiredBy": [ + "/file-entry-cache" + ], + "_resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz", + "_spec": "1.3.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" }, - "main": "cache.js", - "files": [ - "cache.js", - "utils.js", - "del.js" - ], - "engines": { - "node": ">=0.10.0" - }, - "precommit": [ - "npm run verify --silent" - ], - "prepush": [ - "npm run verify --silent" - ], - "scripts": { - "beautify": "esbeautifier 'cache.js' 'utils.js' 'del.js' 'test/specs/**/*.js'", - "beautify-check": "npm run beautify -- -k", - "eslint": "eslinter 'cache.js' 'utils.js' 'del.js' 'specs/**/*.js'", - "eslint-fix": "npm run eslint -- --fix", - "autofix": "npm run beautify && npm run eslint-fix", - "check": "npm run beautify-check && npm run eslint", - "verify": "npm run check && npm run test:cache", - "install-hooks": "prepush install && changelogx install-hook && precommit install", - "changelog": "changelogx -f markdown -o ./changelog.md", - "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", - "pre-v": "npm run verify", - "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", - "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", - "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", - "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", - "test:cache": "mocha -R spec test/specs", - "test": "npm run verify --silent", - "cover": "istanbul cover test/runner.js html text-summary", - "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" + "bugs": { + "url": "https://github.com/royriojas/flat-cache/issues" }, - "keywords": [ - "json cache", - "simple cache", - "file cache", - "key par", - "key value", - "cache" - ], "changelogx": { "ignoreRegExp": [ "BLD: Release", @@ -64,6 +47,13 @@ "issueIDURL": "https://github.com/royriojas/flat-cache/issues/{0}", "projectName": "flat-cache" }, + "dependencies": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "description": "A stupidly simple key/value storage using files to persist some data", "devDependencies": { "chai": "^3.2.0", "changelogx": "3.0.0", @@ -79,10 +69,56 @@ "sinon-chai": "^2.8.0", "watch-run": "^1.2.2" }, - "dependencies": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "cache.js", + "utils.js", + "del.js" + ], + "homepage": "https://github.com/royriojas/flat-cache#readme", + "keywords": [ + "json cache", + "simple cache", + "file cache", + "key par", + "key value", + "cache" + ], + "license": "MIT", + "main": "cache.js", + "name": "flat-cache", + "precommit": [ + "npm run verify --silent" + ], + "prepush": [ + "npm run verify --silent" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/royriojas/flat-cache.git" + }, + "scripts": { + "autofix": "npm run beautify && npm run eslint-fix", + "beautify": "esbeautifier 'cache.js' 'utils.js' 'del.js' 'test/specs/**/*.js'", + "beautify-check": "npm run beautify -- -k", + "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", + "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", + "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", + "changelog": "changelogx -f markdown -o ./changelog.md", + "check": "npm run beautify-check && npm run eslint", + "cover": "istanbul cover test/runner.js html text-summary", + "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", + "eslint": "eslinter 'cache.js' 'utils.js' 'del.js' 'specs/**/*.js'", + "eslint-fix": "npm run eslint -- --fix", + "install-hooks": "prepush install && changelogx install-hook && precommit install", + "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", + "pre-v": "npm run verify", + "test": "npm run verify --silent", + "test:cache": "mocha -R spec test/specs", + "verify": "npm run check && npm run test:cache", + "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" + }, + "version": "1.3.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/flush-write-stream/package.json b/admin/vue2/element-admin-v3/node_modules/flush-write-stream/package.json index 9d6326ca5..dd09c9c61 100644 --- a/admin/vue2/element-admin-v3/node_modules/flush-write-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/flush-write-stream/package.json @@ -1,26 +1,57 @@ { - "name": "flush-write-stream", - "version": "1.1.1", - "description": "A write stream constructor that supports a flush function that is called before finish is emitted", - "main": "index.js", + "_args": [ + [ + "flush-write-stream@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "flush-write-stream@1.1.1", + "_id": "flush-write-stream@1.1.1", + "_inBundle": false, + "_integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "_location": "/flush-write-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "flush-write-stream@1.1.1", + "name": "flush-write-stream", + "escapedName": "flush-write-stream", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/flush-write-stream/issues" + }, "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" }, + "description": "A write stream constructor that supports a flush function that is called before finish is emitted", "devDependencies": { "tape": "^4.2.2" }, - "scripts": { - "test": "tape test.js" - }, + "homepage": "https://github.com/mafintosh/flush-write-stream", + "license": "MIT", + "main": "index.js", + "name": "flush-write-stream", "repository": { "type": "git", - "url": "https://github.com/mafintosh/flush-write-stream.git" + "url": "git+https://github.com/mafintosh/flush-write-stream.git" }, - "author": "Mathias Buus (@mafintosh)", - "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/flush-write-stream/issues" + "scripts": { + "test": "tape test.js" }, - "homepage": "https://github.com/mafintosh/flush-write-stream" + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/follow-redirects/package.json b/admin/vue2/element-admin-v3/node_modules/follow-redirects/package.json index 73c18fdde..d064ec09c 100644 --- a/admin/vue2/element-admin-v3/node_modules/follow-redirects/package.json +++ b/admin/vue2/element-admin-v3/node_modules/follow-redirects/package.json @@ -1,28 +1,74 @@ { - "name": "follow-redirects", - "version": "1.14.1", - "description": "HTTP and HTTPS modules that follow redirects.", - "license": "MIT", - "main": "index.js", - "files": [ - "*.js" + "_args": [ + [ + "follow-redirects@1.14.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=4.0" + "_from": "follow-redirects@1.14.1", + "_id": "follow-redirects@1.14.1", + "_inBundle": false, + "_integrity": "sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M=", + "_location": "/follow-redirects", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "follow-redirects@1.14.1", + "name": "follow-redirects", + "escapedName": "follow-redirects", + "rawSpec": "1.14.1", + "saveSpec": null, + "fetchSpec": "1.14.1" }, - "scripts": { - "test": "npm run lint && npm run mocha", - "lint": "eslint *.js test", - "mocha": "nyc mocha" - }, - "repository": { - "type": "git", - "url": "git@github.com:follow-redirects/follow-redirects.git" + "_requiredBy": [ + "/axios", + "/http-proxy" + ], + "_resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz", + "_spec": "1.14.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ruben Verborgh", + "email": "ruben@verborgh.org", + "url": "https://ruben.verborgh.org/" }, - "homepage": "https://github.com/follow-redirects/follow-redirects", "bugs": { "url": "https://github.com/follow-redirects/follow-redirects/issues" }, + "contributors": [ + { + "name": "Olivier Lalonde", + "email": "olalonde@gmail.com", + "url": "http://www.syskall.com" + }, + { + "name": "James Talmage", + "email": "james@talmage.io" + } + ], + "description": "HTTP and HTTPS modules that follow redirects.", + "devDependencies": { + "concat-stream": "^2.0.0", + "eslint": "^5.16.0", + "express": "^4.16.4", + "lolex": "^3.1.0", + "mocha": "^6.0.2", + "nyc": "^14.1.1" + }, + "engines": { + "node": ">=4.0" + }, + "files": [ + "*.js" + ], + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "homepage": "https://github.com/follow-redirects/follow-redirects", "keywords": [ "http", "https", @@ -32,28 +78,22 @@ "location", "utility" ], - "author": "Ruben Verborgh (https://ruben.verborgh.org/)", - "contributors": [ - "Olivier Lalonde (http://www.syskall.com)", - "James Talmage " - ], - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "license": "MIT", + "main": "index.js", + "name": "follow-redirects", "peerDependenciesMeta": { "debug": { "optional": true } }, - "devDependencies": { - "concat-stream": "^2.0.0", - "eslint": "^5.16.0", - "express": "^4.16.4", - "lolex": "^3.1.0", - "mocha": "^6.0.2", - "nyc": "^14.1.1" - } + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/follow-redirects/follow-redirects.git" + }, + "scripts": { + "lint": "eslint *.js test", + "mocha": "nyc mocha", + "test": "npm run lint && npm run mocha" + }, + "version": "1.14.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/for-in/package.json b/admin/vue2/element-admin-v3/node_modules/for-in/package.json index 48810a18d..45d4aeeca 100644 --- a/admin/vue2/element-admin-v3/node_modules/for-in/package.json +++ b/admin/vue2/element-admin-v3/node_modules/for-in/package.json @@ -1,32 +1,63 @@ { - "name": "for-in", - "description": "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/for-in", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Irish (http://paulirish.com)" + "_args": [ + [ + "for-in@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/for-in", - "bugs": { - "url": "https://github.com/jonschlinkert/for-in/issues" + "_from": "for-in@1.0.2", + "_id": "for-in@1.0.2", + "_inBundle": false, + "_integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "_location": "/for-in", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "for-in@1.0.2", + "name": "for-in", + "escapedName": "for-in", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/for-own", + "/mixin-deep" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/for-in/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Paul Irish", + "url": "http://paulirish.com" + } + ], + "description": "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js", "devDependencies": { "gulp-format-md": "^0.1.11", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/for-in", "keywords": [ "for", "for-in", @@ -41,6 +72,16 @@ "own", "value" ], + "license": "MIT", + "main": "index.js", + "name": "for-in", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/for-in.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -64,5 +105,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/for-own/package.json b/admin/vue2/element-admin-v3/node_modules/for-own/package.json index 5eb73af65..f652739d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/for-own/package.json +++ b/admin/vue2/element-admin-v3/node_modules/for-own/package.json @@ -1,35 +1,67 @@ { - "name": "for-own", - "description": "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/for-own", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Javier Cejudo (https://www.javiercejudo.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "for-own@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/for-own", - "bugs": { - "url": "https://github.com/jonschlinkert/for-own/issues" + "_development": true, + "_from": "for-own@1.0.0", + "_id": "for-own@1.0.0", + "_inBundle": false, + "_integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "_location": "/for-own", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "for-own@1.0.0", + "name": "for-own", + "escapedName": "for-own", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/clone-deep" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/for-own/issues" }, + "contributors": [ + { + "name": "Javier Cejudo", + "email": "javier@javiercejudo.com", + "url": "https://www.javiercejudo.com" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "for-in": "^1.0.1" }, + "description": "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.", "devDependencies": { "gulp-format-md": "^0.1.11", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/for-own", "keywords": [ "for", "for-in", @@ -43,6 +75,16 @@ "own", "value" ], + "license": "MIT", + "main": "index.js", + "name": "for-own", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/for-own.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -66,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/forever-agent/package.json b/admin/vue2/element-admin-v3/node_modules/forever-agent/package.json index f76062980..ad181583d 100644 --- a/admin/vue2/element-admin-v3/node_modules/forever-agent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/forever-agent/package.json @@ -1,17 +1,54 @@ { - "author": "Mikeal Rogers (http://www.futurealoof.com)", - "name": "forever-agent", - "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.", - "version": "0.6.1", - "license": "Apache-2.0", - "repository": { - "url": "https://github.com/mikeal/forever-agent" + "_args": [ + [ + "forever-agent@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "forever-agent@0.6.1", + "_id": "forever-agent@0.6.1", + "_inBundle": false, + "_integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "_location": "/forever-agent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "forever-agent@0.6.1", + "name": "forever-agent", + "escapedName": "forever-agent", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "bugs": { + "url": "https://github.com/mikeal/forever-agent/issues" }, - "main": "index.js", "dependencies": {}, + "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, "engines": { "node": "*" - } + }, + "homepage": "https://github.com/mikeal/forever-agent#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "forever-agent", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/forever-agent.git" + }, + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/form-data/package.json b/admin/vue2/element-admin-v3/node_modules/form-data/package.json index adacbae78..72aecfd84 100644 --- a/admin/vue2/element-admin-v3/node_modules/form-data/package.json +++ b/admin/vue2/element-admin-v3/node_modules/form-data/package.json @@ -1,46 +1,48 @@ { - "author": "Felix Geisendörfer (http://debuggable.com/)", - "name": "form-data", - "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", - "version": "2.3.3", - "repository": { - "type": "git", - "url": "git://github.com/form-data/form-data.git" - }, - "main": "./lib/form_data", - "browser": "./lib/browser", - "scripts": { - "pretest": "rimraf coverage test/tmp", - "test": "istanbul cover test/run.js", - "posttest": "istanbul report lcov text", - "lint": "eslint lib/*.js test/*.js test/integration/*.js", - "report": "istanbul report lcov text", - "ci-lint": "is-node-modern 6 && npm run lint || is-node-not-modern 6", - "ci-test": "npm run test && npm run browser && npm run report", - "predebug": "rimraf coverage test/tmp", - "debug": "verbose=1 ./test/run.js", - "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage", - "check": "istanbul check-coverage coverage/coverage*.json", - "files": "pkgfiles --sort=name", - "get-version": "node -e \"console.log(require('./package.json').version)\"", - "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md", - "restore-readme": "mv README.md.bak README.md", - "prepublish": "in-publish && npm run update-readme || not-in-publish", - "postpublish": "npm run restore-readme" + "_args": [ + [ + "form-data@2.3.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "form-data@2.3.3", + "_id": "form-data@2.3.3", + "_inBundle": false, + "_integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "_location": "/form-data", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "form-data@2.3.3", + "name": "form-data", + "escapedName": "form-data", + "rawSpec": "2.3.3", + "saveSpec": null, + "fetchSpec": "2.3.3" }, - "pre-commit": [ - "lint", - "ci-test", - "check" + "_requiredBy": [ + "/request" ], - "engines": { - "node": ">= 0.12" + "_resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz?cache=0&sync_timestamp=1613410971123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz", + "_spec": "2.3.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Geisendörfer", + "email": "felix@debuggable.com", + "url": "http://debuggable.com/" + }, + "browser": "./lib/browser", + "bugs": { + "url": "https://github.com/form-data/form-data/issues" }, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" }, + "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", "devDependencies": { "browserify": "^13.1.1", "browserify-istanbul": "^2.0.0", @@ -61,5 +63,40 @@ "rimraf": "^2.5.4", "tape": "^4.6.2" }, - "license": "MIT" + "engines": { + "node": ">= 0.12" + }, + "homepage": "https://github.com/form-data/form-data#readme", + "license": "MIT", + "main": "./lib/form_data", + "name": "form-data", + "pre-commit": [ + "lint", + "ci-test", + "check" + ], + "repository": { + "type": "git", + "url": "git://github.com/form-data/form-data.git" + }, + "scripts": { + "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage", + "check": "istanbul check-coverage coverage/coverage*.json", + "ci-lint": "is-node-modern 6 && npm run lint || is-node-not-modern 6", + "ci-test": "npm run test && npm run browser && npm run report", + "debug": "verbose=1 ./test/run.js", + "files": "pkgfiles --sort=name", + "get-version": "node -e \"console.log(require('./package.json').version)\"", + "lint": "eslint lib/*.js test/*.js test/integration/*.js", + "postpublish": "npm run restore-readme", + "posttest": "istanbul report lcov text", + "predebug": "rimraf coverage test/tmp", + "prepublish": "in-publish && npm run update-readme || not-in-publish", + "pretest": "rimraf coverage test/tmp", + "report": "istanbul report lcov text", + "restore-readme": "mv README.md.bak README.md", + "test": "istanbul cover test/run.js", + "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md" + }, + "version": "2.3.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/forwarded/package.json b/admin/vue2/element-admin-v3/node_modules/forwarded/package.json index bf9c7d655..e710c18e7 100644 --- a/admin/vue2/element-admin-v3/node_modules/forwarded/package.json +++ b/admin/vue2/element-admin-v3/node_modules/forwarded/package.json @@ -1,17 +1,42 @@ { - "name": "forwarded", - "description": "Parse HTTP X-Forwarded-For header", - "version": "0.2.0", - "contributors": [ - "Douglas Christopher Wilson " + "_args": [ + [ + "forwarded@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "x-forwarded-for", - "http", - "req" + "_from": "forwarded@0.2.0", + "_id": "forwarded@0.2.0", + "_inBundle": false, + "_integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=", + "_location": "/forwarded", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "forwarded@0.2.0", + "name": "forwarded", + "escapedName": "forwarded", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/proxy-addr" + ], + "_resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz?cache=0&sync_timestamp=1622503508967&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fforwarded%2Fdownload%2Fforwarded-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/forwarded/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "repository": "jshttp/forwarded", + "description": "Parse HTTP X-Forwarded-For header", "devDependencies": { "beautify-benchmark": "0.2.4", "benchmark": "2.1.4", @@ -25,14 +50,26 @@ "mocha": "8.4.0", "nyc": "15.1.0" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/forwarded#readme", + "keywords": [ + "x-forwarded-for", + "http", + "req" + ], + "license": "MIT", + "name": "forwarded", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/forwarded.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -41,5 +78,6 @@ "test-ci": "nyc --reporter=lcov --reporter=text npm test", "test-cov": "nyc --reporter=html --reporter=text npm test", "version": "node scripts/version-history.js && git add HISTORY.md" - } + }, + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/frac/package.json b/admin/vue2/element-admin-v3/node_modules/frac/package.json index d9ee483eb..f70d85359 100644 --- a/admin/vue2/element-admin-v3/node_modules/frac/package.json +++ b/admin/vue2/element-admin-v3/node_modules/frac/package.json @@ -1,36 +1,78 @@ { - "name": "frac", - "version": "1.1.2", - "author": "SheetJS", - "description": "Rational approximation with bounded denominator", - "keywords": [ "math", "fraction", "rational", "approximation" ], - "main": "./frac", - "types": "types", + "_args": [ + [ + "frac@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "frac@1.1.2", + "_id": "frac@1.1.2", + "_inBundle": false, + "_integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs=", + "_location": "/frac", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "frac@1.1.2", + "name": "frac", + "escapedName": "frac", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/ssf" + ], + "_resolved": "https://registry.nlark.com/frac/download/frac-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "SheetJS" + }, + "bugs": { + "url": "https://github.com/SheetJS/frac/issues" + }, + "config": { + "blanket": { + "pattern": "frac.js" + } + }, "dependencies": {}, + "description": "Rational approximation with bounded denominator", "devDependencies": { - "voc": "~1.1.0", - "mocha": "~2.5.3", - "blanket": "~1.2.3", - "codepage": "~1.10.0", "@sheetjs/uglify-js": "~2.7.3", "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "codepage": "~1.10.0", "dtslint": "^0.1.2", - "typescript": "2.2.0" + "mocha": "~2.5.3", + "typescript": "2.2.0", + "voc": "~1.1.0" + }, + "engines": { + "node": ">=0.8" + }, + "homepage": "http://sheetjs.com/opensource", + "keywords": [ + "math", + "fraction", + "rational", + "approximation" + ], + "license": "Apache-2.0", + "main": "./frac", + "name": "frac", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/frac.git" }, - "repository": { "type":"git", "url":"git://github.com/SheetJS/frac.git" }, "scripts": { - "test": "make test", "build": "make", + "dtslint": "dtslint types", "lint": "make fullint", - "dtslint": "dtslint types" + "test": "make test" }, - "config": { - "blanket": { - "pattern": "frac.js" - } - }, - "homepage": "http://sheetjs.com/opensource", - "bugs": { "url": "https://github.com/SheetJS/frac/issues" }, - "license": "Apache-2.0", - "engines": { "node": ">=0.8" } + "types": "types", + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/fragment-cache/package.json b/admin/vue2/element-admin-v3/node_modules/fragment-cache/package.json index f87c5dad3..ee9409ff2 100644 --- a/admin/vue2/element-admin-v3/node_modules/fragment-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fragment-cache/package.json @@ -1,27 +1,46 @@ { - "name": "fragment-cache", - "description": "A cache for managing namespaced sub-caches", - "version": "0.2.1", - "homepage": "https://github.com/jonschlinkert/fragment-cache", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/fragment-cache", - "bugs": { - "url": "https://github.com/jonschlinkert/fragment-cache/issues" + "_args": [ + [ + "fragment-cache@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "fragment-cache@0.2.1", + "_id": "fragment-cache@0.2.1", + "_inBundle": false, + "_integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "_location": "/fragment-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fragment-cache@0.2.1", + "name": "fragment-cache", + "escapedName": "fragment-cache", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/extglob", + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/fragment-cache/issues" }, "dependencies": { "map-cache": "^0.2.2" }, + "description": "A cache for managing namespaced sub-caches", "devDependencies": { "gulp": "^3.9.1", "gulp-eslint": "^3.0.1", @@ -30,10 +49,27 @@ "gulp-mocha": "^3.0.1", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/fragment-cache", "keywords": [ "cache", "fragment" ], + "license": "MIT", + "main": "index.js", + "name": "fragment-cache", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/fragment-cache.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "plugins": [ "gulp-format-md" @@ -56,5 +92,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/fresh/package.json b/admin/vue2/element-admin-v3/node_modules/fresh/package.json index c2fa0f487..edafc3bbe 100644 --- a/admin/vue2/element-admin-v3/node_modules/fresh/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fresh/package.json @@ -1,20 +1,54 @@ { - "name": "fresh", - "description": "HTTP response freshness testing", - "version": "0.5.2", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "fresh@0.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "fresh", - "http", - "conditional", - "cache" + "_from": "fresh@0.5.2", + "_id": "fresh@0.5.2", + "_inBundle": false, + "_integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "_location": "/fresh", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fresh@0.5.2", + "name": "fresh", + "escapedName": "fresh", + "rawSpec": "0.5.2", + "saveSpec": null, + "fetchSpec": "0.5.2" + }, + "_requiredBy": [ + "/express", + "/send", + "/serve-static/send" ], - "repository": "jshttp/fresh", + "_resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "_spec": "0.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/jshttp/fresh/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "description": "HTTP response freshness testing", "devDependencies": { "beautify-benchmark": "0.2.4", "benchmark": "2.1.4", @@ -28,13 +62,26 @@ "istanbul": "0.4.5", "mocha": "1.21.5" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "HISTORY.md", "LICENSE", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/fresh#readme", + "keywords": [ + "fresh", + "http", + "conditional", + "cache" + ], + "license": "MIT", + "name": "fresh", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/fresh.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -42,5 +89,6 @@ "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "0.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/ansi-regex/package.json index e94852fd7..63a2cb71a 100644 --- a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/friendly-errors-webpack-plugin/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/friendly-errors-webpack-plugin/string-width/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/chalk/package.json index 2b5881e9a..09507614e 100644 --- a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/chalk/package.json @@ -1,26 +1,61 @@ { - "name": "chalk", - "version": "1.1.3", - "description": "Terminal string styling done right. Much color.", - "license": "MIT", - "repository": "chalk/chalk", - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" + "_args": [ + [ + "chalk@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@1.1.3", + "_id": "chalk@1.1.3", + "_inBundle": false, + "_integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "_location": "/friendly-errors-webpack-plugin/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@1.1.3", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/friendly-errors-webpack-plugin" ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "description": "Terminal string styling done right. Much color.", + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && mocha", - "bench": "matcha benchmark.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/chalk#readme", "keywords": [ "color", "colour", @@ -44,23 +79,36 @@ "command-line", "text" ], - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" }, - "devDependencies": { - "coveralls": "^2.11.2", - "matcha": "^0.6.0", - "mocha": "*", - "nyc": "^3.0.0", - "require-uncached": "^1.0.2", - "resolve-from": "^1.0.0", - "semver": "^4.3.3", - "xo": "*" + "scripts": { + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "test": "xo && mocha" }, + "version": "1.1.3", "xo": { "envs": [ "node", diff --git a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/node_modules/strip-ansi/package.json index 555f19461..6d3fb9e04 100644 --- a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/friendly-errors-webpack-plugin/string-width/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/friendly-errors-webpack-plugin/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/package.json index 89f0b6a6c..3f291bce9 100644 --- a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/node_modules/string-width/package.json @@ -1,55 +1,93 @@ { - "name": "string-width", - "version": "2.1.1", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "string-width@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@2.1.1", + "_id": "string-width@2.1.1", + "_inBundle": false, + "_integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "_location": "/friendly-errors-webpack-plugin/string-width", + "_phantomChildren": { + "ansi-regex": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@2.1.1", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/friendly-errors-webpack-plugin" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/package.json index 36058c8bf..013c6314e 100644 --- a/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/friendly-errors-webpack-plugin/package.json @@ -1,33 +1,52 @@ { - "name": "friendly-errors-webpack-plugin", - "version": "1.7.0", - "description": "Recognizes certain classes of webpack errors and cleans, aggregates and prioritizes them to provide a better Developer Experience", - "main": "index.js", - "scripts": { - "test": "eslint --ignore-pattern test/* && jest" - }, - "files": [ - "src", - "index.js" + "_args": [ + [ + "friendly-errors-webpack-plugin@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "friendly", - "errors", - "webpack", - "plugin" + "_development": true, + "_from": "friendly-errors-webpack-plugin@1.7.0", + "_id": "friendly-errors-webpack-plugin@1.7.0", + "_inBundle": false, + "_integrity": "sha1-78hsu4FiJFZYYaG+ep2E0Kr+oTY=", + "_location": "/friendly-errors-webpack-plugin", + "_phantomChildren": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "friendly-errors-webpack-plugin@1.7.0", + "name": "friendly-errors-webpack-plugin", + "escapedName": "friendly-errors-webpack-plugin", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" + }, + "_requiredBy": [ + "#DEV:/" ], - "author": "Geoffroy Warin", - "repository": { - "type": "git", - "url": "git+https://github.com/geowarin/friendly-errors-webpack-plugin.git" + "_resolved": "https://registry.npm.taobao.org/friendly-errors-webpack-plugin/download/friendly-errors-webpack-plugin-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffriendly-errors-webpack-plugin%2Fdownload%2Ffriendly-errors-webpack-plugin-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Geoffroy Warin" }, "bugs": { "url": "https://github.com/geowarin/friendly-errors-webpack-plugin/issues" }, - "license": "MIT", - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + "dependencies": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" }, + "description": "Recognizes certain classes of webpack errors and cleans, aggregates and prioritizes them to provide a better Developer Experience", "devDependencies": { "babel-core": "^6.23.1", "babel-eslint": "^7.1.1", @@ -41,9 +60,29 @@ "memory-fs": "^0.4.1", "webpack": "^2.2.1" }, - "dependencies": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" - } + "files": [ + "src", + "index.js" + ], + "homepage": "https://github.com/geowarin/friendly-errors-webpack-plugin#readme", + "keywords": [ + "friendly", + "errors", + "webpack", + "plugin" + ], + "license": "MIT", + "main": "index.js", + "name": "friendly-errors-webpack-plugin", + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/geowarin/friendly-errors-webpack-plugin.git" + }, + "scripts": { + "test": "eslint --ignore-pattern test/* && jest" + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/from2/package.json b/admin/vue2/element-admin-v3/node_modules/from2/package.json index 943b8a81d..9f4dcdd32 100644 --- a/admin/vue2/element-admin-v3/node_modules/from2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/from2/package.json @@ -1,30 +1,54 @@ { - "name": "from2", - "description": "Convenience wrapper for ReadableStream, with an API lifted from \"from\" and \"through2\"", - "version": "2.3.0", - "main": "index.js", - "scripts": { - "test": "node test" + "_args": [ + [ + "from2@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "from2@2.3.0", + "_id": "from2@2.3.0", + "_inBundle": false, + "_integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "_location": "/from2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "from2@2.3.0", + "name": "from2", + "escapedName": "from2", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com", + "url": "http://hughsk.io/" }, + "bugs": { + "url": "https://github.com/hughsk/from2/issues" + }, + "contributors": [ + { + "name": "Mathias Buus", + "email": "mathiasbuus@gmail.com" + } + ], "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" }, + "description": "Convenience wrapper for ReadableStream, with an API lifted from \"from\" and \"through2\"", "devDependencies": { "tape": "^4.0.0" }, - "author": "Hugh Kennedy (http://hughsk.io/)", - "contributors": [ - "Mathias Buus " - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/hughsk/from2" - }, - "bugs": { - "url": "https://github.com/hughsk/from2/issues" - }, "homepage": "https://github.com/hughsk/from2", "keywords": [ "from", @@ -33,5 +57,16 @@ "pull", "convenience", "wrapper" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "from2", + "repository": { + "type": "git", + "url": "git://github.com/hughsk/from2.git" + }, + "scripts": { + "test": "node test" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/fs-minipass/package.json b/admin/vue2/element-admin-v3/node_modules/fs-minipass/package.json index 2f2436cb5..ef451c6f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/fs-minipass/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fs-minipass/package.json @@ -1,39 +1,72 @@ { - "name": "fs-minipass", - "version": "2.1.0", - "main": "index.js", - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "_args": [ + [ + "fs-minipass@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "fs-minipass@2.1.0", + "_id": "fs-minipass@2.1.0", + "_inBundle": false, + "_integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "_location": "/fs-minipass", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fs-minipass@2.1.0", + "name": "fs-minipass", + "escapedName": "fs-minipass", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "keywords": [], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fs-minipass.git" + "_requiredBy": [ + "/tar" + ], + "_resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628584498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" }, "bugs": { "url": "https://github.com/npm/fs-minipass/issues" }, - "homepage": "https://github.com/npm/fs-minipass#readme", - "description": "fs read and write streams based on minipass", "dependencies": { "minipass": "^3.0.0" }, + "description": "fs read and write streams based on minipass", "devDependencies": { "mutate-fs": "^2.0.1", "tap": "^14.6.4" }, + "engines": { + "node": ">= 8" + }, "files": [ "index.js" ], + "homepage": "https://github.com/npm/fs-minipass#readme", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "fs-minipass", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/fs-minipass.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true }, - "engines": { - "node": ">= 8" - } + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/fs-write-stream-atomic/package.json b/admin/vue2/element-admin-v3/node_modules/fs-write-stream-atomic/package.json index 5b3c0d11e..7ccf8a9b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/fs-write-stream-atomic/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fs-write-stream-atomic/package.json @@ -1,10 +1,40 @@ { - "name": "fs-write-stream-atomic", - "version": "1.0.10", - "description": "Like `fs.createWriteStream(...)`, but atomic.", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "fs-write-stream-atomic@1.0.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "fs-write-stream-atomic@1.0.10", + "_id": "fs-write-stream-atomic@1.0.10", + "_inBundle": false, + "_integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "_location": "/fs-write-stream-atomic", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fs-write-stream-atomic@1.0.10", + "name": "fs-write-stream-atomic", + "escapedName": "fs-write-stream-atomic", + "rawSpec": "1.0.10", + "saveSpec": null, + "fetchSpec": "1.0.10" + }, + "_requiredBy": [ + "/copy-concurrently", + "/move-concurrently" + ], + "_resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "_spec": "1.0.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/fs-write-stream-atomic/issues" }, "dependencies": { "graceful-fs": "^4.1.2", @@ -12,22 +42,25 @@ "imurmurhash": "^0.1.4", "readable-stream": "1 || 2" }, + "description": "Like `fs.createWriteStream(...)`, but atomic.", "devDependencies": { "rimraf": "^2.4.4", "standard": "^5.4.1", "tap": "^2.3.1" }, - "scripts": { - "test": "standard && tap --coverage test/*.js" + "directories": { + "test": "test" }, + "homepage": "https://github.com/npm/fs-write-stream-atomic", + "license": "ISC", + "main": "index.js", + "name": "fs-write-stream-atomic", "repository": { "type": "git", - "url": "https://github.com/npm/fs-write-stream-atomic" + "url": "git+https://github.com/npm/fs-write-stream-atomic.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/fs-write-stream-atomic/issues" + "scripts": { + "test": "standard && tap --coverage test/*.js" }, - "homepage": "https://github.com/npm/fs-write-stream-atomic" + "version": "1.0.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/fs.realpath/package.json b/admin/vue2/element-admin-v3/node_modules/fs.realpath/package.json index 3edc57d21..1a4eca3bd 100644 --- a/admin/vue2/element-admin-v3/node_modules/fs.realpath/package.json +++ b/admin/vue2/element-admin-v3/node_modules/fs.realpath/package.json @@ -1,26 +1,62 @@ { - "name": "fs.realpath", - "version": "1.0.0", - "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "tap test/*.js --cov" + "_args": [ + [ + "fs.realpath@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "fs.realpath@1.0.0", + "_id": "fs.realpath@1.0.0", + "_inBundle": false, + "_integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "_location": "/fs.realpath", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fs.realpath@1.0.0", + "name": "fs.realpath", + "escapedName": "fs.realpath", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/fs.realpath.git" + "_requiredBy": [ + "/glob" + ], + "_resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" }, + "bugs": { + "url": "https://github.com/isaacs/fs.realpath/issues" + }, + "dependencies": {}, + "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", + "devDependencies": {}, + "files": [ + "old.js", + "index.js" + ], + "homepage": "https://github.com/isaacs/fs.realpath#readme", "keywords": [ "realpath", "fs", "polyfill" ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "license": "ISC", - "files": [ - "old.js", - "index.js" - ] + "main": "index.js", + "name": "fs.realpath", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/fs.realpath.git" + }, + "scripts": { + "test": "tap test/*.js --cov" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/function-bind/package.json b/admin/vue2/element-admin-v3/node_modules/function-bind/package.json index 20a1727cb..08fc99be7 100644 --- a/admin/vue2/element-admin-v3/node_modules/function-bind/package.json +++ b/admin/vue2/element-admin-v3/node_modules/function-bind/package.json @@ -1,17 +1,44 @@ { - "name": "function-bind", - "version": "1.1.1", - "description": "Implementation of Function.prototype.bind", - "keywords": [ - "function", - "bind", - "shim", - "es5" + "_args": [ + [ + "function-bind@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Raynos ", - "repository": "git://github.com/Raynos/function-bind.git", - "main": "index", - "homepage": "https://github.com/Raynos/function-bind", + "_from": "function-bind@1.1.1", + "_id": "function-bind@1.1.1", + "_inBundle": false, + "_integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "_location": "/function-bind", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "function-bind@1.1.1", + "name": "function-bind", + "escapedName": "function-bind", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/call-bind", + "/es-abstract", + "/get-intrinsic", + "/has", + "/unbox-primitive" + ], + "_resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "bugs": { + "url": "https://github.com/Raynos/function-bind/issues", + "email": "raynos2@gmail.com" + }, "contributors": [ { "name": "Raynos" @@ -21,11 +48,8 @@ "url": "https://github.com/ljharb" } ], - "bugs": { - "url": "https://github.com/Raynos/function-bind/issues", - "email": "raynos2@gmail.com" - }, "dependencies": {}, + "description": "Implementation of Function.prototype.bind", "devDependencies": { "@ljharb/eslint-config": "^12.2.1", "covert": "^1.1.0", @@ -33,16 +57,29 @@ "jscs": "^3.0.7", "tape": "^4.8.0" }, + "homepage": "https://github.com/Raynos/function-bind", + "keywords": [ + "function", + "bind", + "shim", + "es5" + ], "license": "MIT", + "main": "index", + "name": "function-bind", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/function-bind.git" + }, "scripts": { - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "npm run coverage -- --quiet", - "tests-only": "node test", "coverage": "covert test/*.js", - "lint": "npm run jscs && npm run eslint", + "eslint": "eslint *.js */*.js", "jscs": "jscs *.js */*.js", - "eslint": "eslint *.js */*.js" + "lint": "npm run jscs && npm run eslint", + "posttest": "npm run coverage -- --quiet", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "node test" }, "testling": { "files": "test/index.js", @@ -59,5 +96,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/functional-red-black-tree/package.json b/admin/vue2/element-admin-v3/node_modules/functional-red-black-tree/package.json index 13d6f270c..c3511164a 100644 --- a/admin/vue2/element-admin-v3/node_modules/functional-red-black-tree/package.json +++ b/admin/vue2/element-admin-v3/node_modules/functional-red-black-tree/package.json @@ -1,23 +1,49 @@ { - "name": "functional-red-black-tree", - "version": "1.0.1", - "description": "A fully persistent balanced binary search tree", - "main": "rbtree.js", - "directories": { - "test": "test" + "_args": [ + [ + "functional-red-black-tree@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "functional-red-black-tree@1.0.1", + "_id": "functional-red-black-tree@1.0.1", + "_inBundle": false, + "_integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "_location": "/functional-red-black-tree", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "functional-red-black-tree@1.0.1", + "name": "functional-red-black-tree", + "escapedName": "functional-red-black-tree", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikola Lysenko" + }, + "bugs": { + "url": "https://github.com/mikolalysenko/functional-red-black-tree/issues" }, "dependencies": {}, + "description": "A fully persistent balanced binary search tree", "devDependencies": { "iota-array": "^0.0.1", "tape": "^2.12.0" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/mikolalysenko/functional-red-black-tree.git" + "directories": { + "test": "test" }, + "homepage": "https://github.com/mikolalysenko/functional-red-black-tree#readme", "keywords": [ "functional", "red", @@ -32,9 +58,15 @@ "data", "structure" ], - "author": "Mikola Lysenko", "license": "MIT", - "bugs": { - "url": "https://github.com/mikolalysenko/functional-red-black-tree/issues" - } + "main": "rbtree.js", + "name": "functional-red-black-tree", + "repository": { + "type": "git", + "url": "git://github.com/mikolalysenko/functional-red-black-tree.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json b/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json index b678d40de..57d56d894 100644 --- a/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json +++ b/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json @@ -1,23 +1,56 @@ { - "name": "is-fullwidth-code-point", - "version": "1.0.0", - "description": "Check if the character represented by a given Unicode code point is fullwidth", - "license": "MIT", - "repository": "sindresorhus/is-fullwidth-code-point", + "_args": [ + [ + "is-fullwidth-code-point@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-fullwidth-code-point@1.0.0", + "_id": "is-fullwidth-code-point@1.0.0", + "_inBundle": false, + "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "_location": "/gauge/is-fullwidth-code-point", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-fullwidth-code-point@1.0.0", + "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/gauge/string-width" + ], + "_resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" + }, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "devDependencies": { + "ava": "0.0.4", + "code-point-at": "^1.0.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", "keywords": [ "fullwidth", "full-width", @@ -35,11 +68,14 @@ "detect", "check" ], - "dependencies": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "name": "is-fullwidth-code-point", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" }, - "devDependencies": { - "ava": "0.0.4", - "code-point-at": "^1.0.0" - } + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/string-width/package.json index 5ba436166..b94bb76ff 100644 --- a/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/gauge/node_modules/string-width/package.json @@ -1,23 +1,58 @@ { - "name": "string-width", - "version": "1.0.2", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", + "_args": [ + [ + "string-width@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@1.0.2", + "_id": "string-width@1.0.2", + "_inBundle": false, + "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "_location": "/gauge/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@1.0.2", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/gauge" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/string-width#readme", "keywords": [ "string", "str", @@ -44,13 +79,14 @@ "korean", "fixed-width" ], - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/gauge/package.json b/admin/vue2/element-admin-v3/node_modules/gauge/package.json index 4882cff83..695aada1d 100644 --- a/admin/vue2/element-admin-v3/node_modules/gauge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/gauge/package.json @@ -1,27 +1,44 @@ { - "name": "gauge", - "version": "2.7.4", - "description": "A terminal based horizontal guage", - "main": "index.js", - "scripts": { - "test": "standard && tap test/*.js --coverage", - "prepublish": "rm -f *~" + "_args": [ + [ + "gauge@2.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "gauge@2.7.4", + "_id": "gauge@2.7.4", + "_inBundle": false, + "_integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "_location": "/gauge", + "_phantomChildren": { + "code-point-at": "1.1.0", + "number-is-nan": "1.0.1", + "strip-ansi": "3.0.1" }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/gauge" + "_requested": { + "type": "version", + "registry": true, + "raw": "gauge@2.7.4", + "name": "gauge", + "escapedName": "gauge", + "rawSpec": "2.7.4", + "saveSpec": null, + "fetchSpec": "2.7.4" }, - "keywords": [ - "progressbar", - "progress", - "gauge" + "_requiredBy": [ + "/npmlog" ], - "author": "Rebecca Turner ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz?cache=0&sync_timestamp=1580507640343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz", + "_spec": "2.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org" + }, "bugs": { "url": "https://github.com/iarna/gauge/issues" }, - "homepage": "https://github.com/iarna/gauge", "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -32,6 +49,7 @@ "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" }, + "description": "A terminal based horizontal guage", "devDependencies": { "readable-stream": "^2.0.6", "require-inject": "^1.4.0", @@ -59,5 +77,23 @@ "theme-set.js", "themes.js", "wide-truncate.js" - ] + ], + "homepage": "https://github.com/iarna/gauge", + "keywords": [ + "progressbar", + "progress", + "gauge" + ], + "license": "ISC", + "main": "index.js", + "name": "gauge", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/gauge.git" + }, + "scripts": { + "prepublish": "rm -f *~", + "test": "standard && tap test/*.js --coverage" + }, + "version": "2.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/gaze/package.json b/admin/vue2/element-admin-v3/node_modules/gaze/package.json index 85dbfb9f0..2c69595d9 100644 --- a/admin/vue2/element-admin-v3/node_modules/gaze/package.json +++ b/admin/vue2/element-admin-v3/node_modules/gaze/package.json @@ -1,30 +1,44 @@ { - "name": "gaze", - "description": "A globbing fs.watch wrapper built from the best parts of other fine watch libs.", - "version": "1.1.3", - "homepage": "https://github.com/shama/gaze", + "_args": [ + [ + "gaze@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "gaze@1.1.3", + "_id": "gaze@1.1.3", + "_inBundle": false, + "_integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", + "_location": "/gaze", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "gaze@1.1.3", + "name": "gaze", + "escapedName": "gaze", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/node-sass" + ], + "_resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kyle Robinson Young", "email": "kyle@dontkry.com" }, - "repository": { - "type": "git", - "url": "https://github.com/shama/gaze.git" - }, "bugs": { "url": "https://github.com/shama/gaze/issues" }, - "license": "MIT", - "main": "lib/gaze", - "engines": { - "node": ">= 4.0.0" - }, - "scripts": { - "test": "semistandard && grunt nodeunit -v" - }, "dependencies": { "globule": "^1.0.0" }, + "description": "A globbing fs.watch wrapper built from the best parts of other fine watch libs.", "devDependencies": { "async": "^2.6.1", "grunt": "^1.0.1", @@ -35,14 +49,28 @@ "rimraf": "^2.5.2", "semistandard": "^12.0.1" }, - "keywords": [ - "watch", - "glob" - ], + "engines": { + "node": ">= 4.0.0" + }, "files": [ "lib", "LICENSE-MIT" ], + "homepage": "https://github.com/shama/gaze", + "keywords": [ + "watch", + "glob" + ], + "license": "MIT", + "main": "lib/gaze", + "name": "gaze", + "repository": { + "type": "git", + "url": "git+https://github.com/shama/gaze.git" + }, + "scripts": { + "test": "semistandard && grunt nodeunit -v" + }, "semistandard": { "ignore": [ "benchmarks", @@ -50,5 +78,6 @@ "build", "test" ] - } + }, + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/get-caller-file/package.json b/admin/vue2/element-admin-v3/node_modules/get-caller-file/package.json index b0dd57139..2a9bdabbe 100644 --- a/admin/vue2/element-admin-v3/node_modules/get-caller-file/package.json +++ b/admin/vue2/element-admin-v3/node_modules/get-caller-file/package.json @@ -1,31 +1,41 @@ { - "name": "get-caller-file", - "version": "2.0.5", - "description": "", - "main": "index.js", - "directories": { - "test": "tests" - }, - "files": [ - "index.js", - "index.js.map", - "index.d.ts" + "_args": [ + [ + "get-caller-file@2.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepare": "tsc", - "test": "mocha test", - "test:debug": "mocha test" + "_from": "get-caller-file@2.0.5", + "_id": "get-caller-file@2.0.5", + "_inBundle": false, + "_integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "_location": "/get-caller-file", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-caller-file@2.0.5", + "name": "get-caller-file", + "escapedName": "get-caller-file", + "rawSpec": "2.0.5", + "saveSpec": null, + "fetchSpec": "2.0.5" }, - "repository": { - "type": "git", - "url": "git+https://github.com/stefanpenner/get-caller-file.git" + "_requiredBy": [ + "/sass-graph/yargs", + "/webpack-dev-server/yargs", + "/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "_spec": "2.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Stefan Penner" }, - "author": "Stefan Penner", - "license": "ISC", "bugs": { "url": "https://github.com/stefanpenner/get-caller-file/issues" }, - "homepage": "https://github.com/stefanpenner/get-caller-file#readme", + "description": "[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) [![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master)", "devDependencies": { "@types/chai": "^4.1.7", "@types/ensure-posix-path": "^1.0.0", @@ -36,7 +46,29 @@ "mocha": "^5.2.0", "typescript": "^3.3.3333" }, + "directories": { + "test": "tests" + }, "engines": { "node": "6.* || 8.* || >= 10.*" - } + }, + "files": [ + "index.js", + "index.js.map", + "index.d.ts" + ], + "homepage": "https://github.com/stefanpenner/get-caller-file#readme", + "license": "ISC", + "main": "index.js", + "name": "get-caller-file", + "repository": { + "type": "git", + "url": "git+https://github.com/stefanpenner/get-caller-file.git" + }, + "scripts": { + "prepare": "tsc", + "test": "mocha test", + "test:debug": "mocha test" + }, + "version": "2.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/get-intrinsic/package.json b/admin/vue2/element-admin-v3/node_modules/get-intrinsic/package.json index d34894a06..960922491 100644 --- a/admin/vue2/element-admin-v3/node_modules/get-intrinsic/package.json +++ b/admin/vue2/element-admin-v3/node_modules/get-intrinsic/package.json @@ -1,78 +1,110 @@ { - "name": "get-intrinsic", - "version": "1.1.1", - "description": "Get and robustly cache all JS language-level intrinsics at first require time", - "main": "index.js", - "exports": { - ".": [ - { - "default": "./index.js" - }, - "./index.js" - ], - "./package.json": "./package.json" - }, - "scripts": { - "prelint": "evalmd README.md", - "lint": "eslint --ext=.js,.mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --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/get-intrinsic.git" - }, - "keywords": [ - "javascript", - "ecmascript", - "es", - "js", - "intrinsic", - "getintrinsic", - "es-abstract" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/get-intrinsic/issues" - }, - "homepage": "https://github.com/ljharb/get-intrinsic#readme", - "devDependencies": { - "@ljharb/eslint-config": "^17.5.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "es-value-fixtures": "^1.0.0", - "eslint": "^7.19.0", - "evalmd": "^0.0.19", - "foreach": "^2.0.5", - "has-bigints": "^1.0.1", - "make-async-function": "^1.0.0", - "make-async-generator-function": "^1.0.0", - "make-generator-function": "^2.0.0", - "nyc": "^10.3.2", - "object-inspect": "^1.9.0", - "tape": "^5.1.1" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } + "_args": [ + [ + "get-intrinsic@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "get-intrinsic@1.1.1", + "_id": "get-intrinsic@1.1.1", + "_inBundle": false, + "_integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", + "_location": "/get-intrinsic", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-intrinsic@1.1.1", + "name": "get-intrinsic", + "escapedName": "get-intrinsic", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/call-bind", + "/es-abstract" + ], + "_resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/ljharb/get-intrinsic/issues" + }, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "description": "Get and robustly cache all JS language-level intrinsics at first require time", + "devDependencies": { + "@ljharb/eslint-config": "^17.5.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "es-value-fixtures": "^1.0.0", + "eslint": "^7.19.0", + "evalmd": "^0.0.19", + "foreach": "^2.0.5", + "has-bigints": "^1.0.1", + "make-async-function": "^1.0.0", + "make-async-generator-function": "^1.0.0", + "make-generator-function": "^2.0.0", + "nyc": "^10.3.2", + "object-inspect": "^1.9.0", + "tape": "^5.1.1" + }, + "exports": { + ".": [ + { + "default": "./index.js" + }, + "./index.js" + ], + "./package.json": "./package.json" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/get-intrinsic#readme", + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "intrinsic", + "getintrinsic", + "es-abstract" + ], + "license": "MIT", + "main": "index.js", + "name": "get-intrinsic", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/get-intrinsic.git" + }, + "scripts": { + "lint": "eslint --ext=.js,.mjs .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prelint": "evalmd README.md", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/get-own-enumerable-property-symbols/package.json b/admin/vue2/element-admin-v3/node_modules/get-own-enumerable-property-symbols/package.json index 3b85d008f..417a5d50a 100644 --- a/admin/vue2/element-admin-v3/node_modules/get-own-enumerable-property-symbols/package.json +++ b/admin/vue2/element-admin-v3/node_modules/get-own-enumerable-property-symbols/package.json @@ -1,50 +1,42 @@ { - "name": "get-own-enumerable-property-symbols", - "version": "3.0.2", - "description": "Returns an array of all enumerable symbol properties found directly upon a given object", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/index.d.ts", - "lib/index.js", - "lib/index.js.map" - ], - "scripts": { - "release": "standard-version", - "lint": "eslint --ext .ts .", - "transpile": "tsc", - "unit": "node lib/test.js", - "test": "run-s lint transpile unit" - }, - "standard": { - "ignore": [ - "lib" + "_args": [ + [ + "get-own-enumerable-property-symbols@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "get-own-enumerable-property-symbols@3.0.2", + "_id": "get-own-enumerable-property-symbols@3.0.2", + "_inBundle": false, + "_integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", + "_location": "/get-own-enumerable-property-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-own-enumerable-property-symbols@3.0.2", + "name": "get-own-enumerable-property-symbols", + "escapedName": "get-own-enumerable-property-symbols", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" }, - "repository": { - "type": "git", - "url": "git+https://github.com/mightyiam/get-own-enumerable-property-symbols.git" - }, - "keywords": [ - "get", - "enumerable", - "symbol", - "property", - "key", - "object" + "_requiredBy": [ + "/stringify-object" ], - "author": "Shahar Or (mightyiam)", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Shahar Or", + "email": "mightyiampresence@gmail.com", + "url": "mightyiam" + }, "bugs": { "url": "https://github.com/mightyiam/get-own-enumerable-property-symbols/issues" }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "npm test" - } - }, - "homepage": "https://github.com/mightyiam/get-own-enumerable-property-symbols#readme", + "description": "Returns an array of all enumerable symbol properties found directly upon a given object", "devDependencies": { "@commitlint/cli": "^8.2.0", "@commitlint/config-conventional": "^8.2.0", @@ -65,5 +57,46 @@ }, "eslintIgnore": [ "*.d.ts" - ] + ], + "files": [ + "lib/index.d.ts", + "lib/index.js", + "lib/index.js.map" + ], + "homepage": "https://github.com/mightyiam/get-own-enumerable-property-symbols#readme", + "husky": { + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", + "pre-commit": "npm test" + } + }, + "keywords": [ + "get", + "enumerable", + "symbol", + "property", + "key", + "object" + ], + "license": "ISC", + "main": "lib/index.js", + "name": "get-own-enumerable-property-symbols", + "repository": { + "type": "git", + "url": "git+https://github.com/mightyiam/get-own-enumerable-property-symbols.git" + }, + "scripts": { + "lint": "eslint --ext .ts .", + "release": "standard-version", + "test": "run-s lint transpile unit", + "transpile": "tsc", + "unit": "node lib/test.js" + }, + "standard": { + "ignore": [ + "lib" + ] + }, + "types": "lib/index.d.ts", + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/get-stdin/package.json b/admin/vue2/element-admin-v3/node_modules/get-stdin/package.json index 9a3e42a62..95419212e 100644 --- a/admin/vue2/element-admin-v3/node_modules/get-stdin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/get-stdin/package.json @@ -1,23 +1,54 @@ { - "name": "get-stdin", - "version": "4.0.1", - "description": "Easier stdin", - "license": "MIT", - "repository": "sindresorhus/get-stdin", + "_args": [ + [ + "get-stdin@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "get-stdin@4.0.1", + "_id": "get-stdin@4.0.1", + "_inBundle": false, + "_integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "_location": "/get-stdin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-stdin@4.0.1", + "name": "get-stdin", + "escapedName": "get-stdin", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/node-sass", + "/redent/strip-indent" + ], + "_resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz?cache=0&sync_timestamp=1618557719783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/get-stdin/issues" + }, + "description": "Easier stdin", + "devDependencies": { + "ava": "0.0.4", + "buffer-equal": "0.0.1" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js && node test-buffer.js && echo unicorns | node test-real.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/get-stdin#readme", "keywords": [ "std", "stdin", @@ -28,8 +59,14 @@ "process", "stream" ], - "devDependencies": { - "ava": "0.0.4", - "buffer-equal": "0.0.1" - } + "license": "MIT", + "name": "get-stdin", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/get-stdin.git" + }, + "scripts": { + "test": "node test.js && node test-buffer.js && echo unicorns | node test-real.js" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/get-stream/package.json b/admin/vue2/element-admin-v3/node_modules/get-stream/package.json index 619651cdf..9d621f97f 100644 --- a/admin/vue2/element-admin-v3/node_modules/get-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/get-stream/package.json @@ -1,46 +1,81 @@ { - "name": "get-stream", - "version": "4.1.0", - "description": "Get a stream as a string, buffer, or array", - "license": "MIT", - "repository": "sindresorhus/get-stream", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "buffer-stream.js" - ], - "keywords": [ - "get", - "stream", - "promise", - "concat", - "string", - "text", - "buffer", - "read", - "data", - "consume", - "readable", - "readablestream", - "array", - "object" - ], - "dependencies": { - "pump": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "into-stream": "^3.0.0", - "xo": "*" - } + "_args": [ + [ + "get-stream@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "get-stream@4.1.0", + "_id": "get-stream@4.1.0", + "_inBundle": false, + "_integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "_location": "/get-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-stream@4.1.0", + "name": "get-stream", + "escapedName": "get-stream", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/execa" + ], + "_resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/get-stream/issues" + }, + "dependencies": { + "pump": "^3.0.0" + }, + "description": "Get a stream as a string, buffer, or array", + "devDependencies": { + "ava": "*", + "into-stream": "^3.0.0", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "buffer-stream.js" + ], + "homepage": "https://github.com/sindresorhus/get-stream#readme", + "keywords": [ + "get", + "stream", + "promise", + "concat", + "string", + "text", + "buffer", + "read", + "data", + "consume", + "readable", + "readablestream", + "array", + "object" + ], + "license": "MIT", + "name": "get-stream", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/get-stream.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/get-value/package.json b/admin/vue2/element-admin-v3/node_modules/get-value/package.json index df168cd88..33ef6cc62 100644 --- a/admin/vue2/element-admin-v3/node_modules/get-value/package.json +++ b/admin/vue2/element-admin-v3/node_modules/get-value/package.json @@ -1,24 +1,43 @@ { - "name": "get-value", - "description": "Use property paths (`a.b.c`) to get a nested value from an object.", - "version": "2.0.6", - "homepage": "https://github.com/jonschlinkert/get-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/get-value", - "bugs": { - "url": "https://github.com/jonschlinkert/get-value/issues" + "_args": [ + [ + "get-value@2.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "get-value@2.0.6", + "_id": "get-value@2.0.6", + "_inBundle": false, + "_integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "_location": "/get-value", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-value@2.0.6", + "name": "get-value", + "escapedName": "get-value", + "rawSpec": "2.0.6", + "saveSpec": null, + "fetchSpec": "2.0.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/cache-base", + "/has-value", + "/union-value", + "/unset-value/has-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "_spec": "2.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/get-value/issues" }, + "description": "Use property paths (`a.b.c`) to get a nested value from an object.", "devDependencies": { "ansi-bold": "^0.1.1", "arr-reduce": "^1.0.1", @@ -34,6 +53,13 @@ "matched": "^0.3.2", "minimist": "^1.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/get-value", "keywords": [ "get", "key", @@ -49,6 +75,16 @@ "value", "values" ], + "license": "MIT", + "main": "index.js", + "name": "get-value", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/get-value.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -75,5 +111,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/getpass/package.json b/admin/vue2/element-admin-v3/node_modules/getpass/package.json index f1638eb3c..534c030f3 100644 --- a/admin/vue2/element-admin-v3/node_modules/getpass/package.json +++ b/admin/vue2/element-admin-v3/node_modules/getpass/package.json @@ -1,18 +1,54 @@ { - "name": "getpass", - "version": "0.1.7", - "description": "getpass for node.js", - "main": "lib/index.js", + "_args": [ + [ + "getpass@0.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "getpass@0.1.7", + "_id": "getpass@0.1.7", + "_inBundle": false, + "_integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "_location": "/getpass", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "getpass@0.1.7", + "name": "getpass", + "escapedName": "getpass", + "rawSpec": "0.1.7", + "saveSpec": null, + "fetchSpec": "0.1.7" + }, + "_requiredBy": [ + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "_spec": "0.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Alex Wilson", + "email": "alex.wilson@joyent.com" + }, + "bugs": { + "url": "https://github.com/arekinath/node-getpass/issues" + }, "dependencies": { "assert-plus": "^1.0.0" }, + "description": "getpass for node.js", + "homepage": "https://github.com/arekinath/node-getpass#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "getpass", "repository": { "type": "git", - "url": "https://github.com/arekinath/node-getpass.git" + "url": "git+https://github.com/arekinath/node-getpass.git" }, "scripts": { "test": "tape test/*.test.js" }, - "author": "Alex Wilson ", - "license": "MIT" + "version": "0.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/gl-matrix/package.json b/admin/vue2/element-admin-v3/node_modules/gl-matrix/package.json index 1d0c4b971..0ad19577c 100644 --- a/admin/vue2/element-admin-v3/node_modules/gl-matrix/package.json +++ b/admin/vue2/element-admin-v3/node_modules/gl-matrix/package.json @@ -1,19 +1,37 @@ { - "version": "3.3.0", - "name": "gl-matrix", - "description": "Javascript Matrix and Vector library for High Performance WebGL apps", - "sideEffects": false, - "main": "cjs/index.js", - "module": "esm/index.js", - "homepage": "http://glmatrix.net", - "license": "MIT", + "_args": [ + [ + "gl-matrix@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "gl-matrix@3.3.0", + "_id": "gl-matrix@3.3.0", + "_inBundle": false, + "_integrity": "sha1-Iy7vYLHIswooy751ssr2xI/WNYs=", + "_location": "/gl-matrix", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "gl-matrix@3.3.0", + "name": "gl-matrix", + "escapedName": "gl-matrix", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/@antv/g-canvas", + "/@antv/g-math", + "/@antv/matrix-util" + ], + "_resolved": "https://registry.npm.taobao.org/gl-matrix/download/gl-matrix-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "bugs": { "url": "https://github.com/toji/gl-matrix/issues" }, - "repository": { - "type": "git", - "url": "https://github.com/toji/gl-matrix.git" - }, "contributors": [ { "name": "Brandon Jones", @@ -24,5 +42,17 @@ "email": "sinisterchipmunk@gmail.com" } ], - "dependencies": {} -} \ No newline at end of file + "dependencies": {}, + "description": "Javascript Matrix and Vector library for High Performance WebGL apps", + "homepage": "http://glmatrix.net", + "license": "MIT", + "main": "cjs/index.js", + "module": "esm/index.js", + "name": "gl-matrix", + "repository": { + "type": "git", + "url": "git+https://github.com/toji/gl-matrix.git" + }, + "sideEffects": false, + "version": "3.3.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/glob-parent/node_modules/is-glob/package.json b/admin/vue2/element-admin-v3/node_modules/glob-parent/node_modules/is-glob/package.json index 53a137d8c..b3f064a14 100644 --- a/admin/vue2/element-admin-v3/node_modules/glob-parent/node_modules/is-glob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/glob-parent/node_modules/is-glob/package.json @@ -1,35 +1,66 @@ { - "name": "is-glob", - "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", - "version": "3.1.0", - "homepage": "https://github.com/jonschlinkert/is-glob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Daniel Perez (http://tuvistavie.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "is-glob@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-glob", - "bugs": { - "url": "https://github.com/jonschlinkert/is-glob/issues" + "_from": "is-glob@3.1.0", + "_id": "is-glob@3.1.0", + "_inBundle": false, + "_integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "_location": "/glob-parent/is-glob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-glob@3.1.0", + "name": "is-glob", + "escapedName": "is-glob", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/glob-parent" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-glob/issues" }, + "contributors": [ + { + "name": "Daniel Perez", + "email": "daniel@claudetech.com", + "url": "http://tuvistavie.com" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "is-extglob": "^2.1.0" }, + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", "devDependencies": { "gulp-format-md": "^0.1.10", "mocha": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-glob", "keywords": [ "bash", "braces", @@ -49,6 +80,16 @@ "string", "test" ], + "license": "MIT", + "main": "index.js", + "name": "is-glob", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-glob.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "layout": "default", "plugins": [ @@ -76,5 +117,6 @@ "verb", "vinyl" ] - } + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/glob-parent/package.json b/admin/vue2/element-admin-v3/node_modules/glob-parent/package.json index e0023857a..6bd8aade2 100644 --- a/admin/vue2/element-admin-v3/node_modules/glob-parent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/glob-parent/package.json @@ -1,16 +1,55 @@ { - "name": "glob-parent", - "version": "3.1.0", - "description": "Strips glob magic from a string to provide the parent directory path", - "main": "index.js", - "scripts": { - "test": "istanbul test node_modules/mocha/bin/_mocha", - "ci-test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls" + "_args": [ + [ + "glob-parent@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "glob-parent@3.1.0", + "_id": "glob-parent@3.1.0", + "_inBundle": false, + "_integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "_location": "/glob-parent", + "_phantomChildren": { + "is-extglob": "2.1.1" }, - "repository": { - "type": "git", - "url": "https://github.com/es128/glob-parent" + "_requested": { + "type": "version", + "registry": true, + "raw": "glob-parent@3.1.0", + "name": "glob-parent", + "escapedName": "glob-parent", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + "bugs": { + "url": "https://github.com/es128/glob-parent/issues" + }, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "description": "Strips glob magic from a string to provide the parent directory path", + "devDependencies": { + "coveralls": "^2.11.2", + "istanbul": "^0.3.5", + "mocha": "^2.1.0" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/es128/glob-parent", "keywords": [ "glob", "parent", @@ -21,22 +60,16 @@ "base", "wildcard" ], - "files": [ - "index.js" - ], - "author": "Elan Shanker (https://github.com/es128)", "license": "ISC", - "bugs": { - "url": "https://github.com/es128/glob-parent/issues" + "main": "index.js", + "name": "glob-parent", + "repository": { + "type": "git", + "url": "git+https://github.com/es128/glob-parent.git" }, - "homepage": "https://github.com/es128/glob-parent", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "scripts": { + "ci-test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls", + "test": "istanbul test node_modules/mocha/bin/_mocha" }, - "devDependencies": { - "coveralls": "^2.11.2", - "istanbul": "^0.3.5", - "mocha": "^2.1.0" - } + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/glob/package.json b/admin/vue2/element-admin-v3/node_modules/glob/package.json index b345ae1e9..86e69d0ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/glob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/glob/package.json @@ -1,20 +1,51 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "glob", - "description": "a little globber", - "version": "7.1.7", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" + "_args": [ + [ + "glob@7.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "glob@7.1.7", + "_id": "glob@7.1.7", + "_inBundle": false, + "_integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", + "_location": "/glob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "glob@7.1.7", + "name": "glob", + "escapedName": "glob", + "rawSpec": "7.1.7", + "saveSpec": null, + "fetchSpec": "7.1.7" }, - "main": "glob.js", - "files": [ - "glob.js", - "sync.js", - "common.js" + "_requiredBy": [ + "/cacache", + "/copy-webpack-plugin/globby", + "/del/rimraf", + "/eslint", + "/globby", + "/globule", + "/node-gyp", + "/node-gyp/rimraf", + "/node-sass", + "/rimraf", + "/sass-graph", + "/shelljs", + "/true-case-path" ], - "engines": { - "node": "*" + "_resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&sync_timestamp=1620337382269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz", + "_spec": "7.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/node-glob/issues" }, "dependencies": { "fs.realpath": "^1.0.0", @@ -24,28 +55,45 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, + "description": "a little globber", "devDependencies": { "mkdirp": "0", "rimraf": "^2.2.8", "tap": "^15.0.6", "tick": "0.0.6" }, - "tap": { - "before": "test/00-setup.js", - "after": "test/zz-cleanup.js", - "jobs": 1 + "engines": { + "node": "*" + }, + "files": [ + "glob.js", + "sync.js", + "common.js" + ], + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "homepage": "https://github.com/isaacs/node-glob#readme", + "license": "ISC", + "main": "glob.js", + "name": "glob", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" }, "scripts": { + "bench": "bash benchmark.sh", + "benchclean": "node benchclean.js", "prepublish": "npm run benchclean", + "prof": "bash prof.sh && cat profile.txt", "profclean": "rm -f v8.log profile.txt", "test": "tap", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", - "bench": "bash benchmark.sh", - "prof": "bash prof.sh && cat profile.txt", - "benchclean": "node benchclean.js" + "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" }, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "tap": { + "before": "test/00-setup.js", + "after": "test/zz-cleanup.js", + "jobs": 1 + }, + "version": "7.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/global-modules-path/package.json b/admin/vue2/element-admin-v3/node_modules/global-modules-path/package.json index d767ffc4e..55baa4cf1 100644 --- a/admin/vue2/element-admin-v3/node_modules/global-modules-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/global-modules-path/package.json @@ -1,33 +1,65 @@ { - "name": "global-modules-path", - "version": "2.3.1", - "description": "Returns path to globally installed package", - "main": "./lib/index.js", - "scripts": { - "test": "istanbul cover node_modules/mocha/bin/_mocha -- --recursive --reporter spec-xunit-file --timeout 1500 test/", - "lint": "eslint lib/* test/*" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/rosen-vladimirov/global-modules-path.git" + "_args": [ + [ + "global-modules-path@2.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "global-modules-path@2.3.1", + "_id": "global-modules-path@2.3.1", + "_inBundle": false, + "_integrity": "sha1-5UH0yAChqFFKmQR3smesZ1JbmTE=", + "_location": "/global-modules-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "global-modules-path@2.3.1", + "name": "global-modules-path", + "escapedName": "global-modules-path", + "rawSpec": "2.3.1", + "saveSpec": null, + "fetchSpec": "2.3.1" }, - "keywords": [ - "npm", - "global", - "installed", - "path" + "_requiredBy": [ + "/webpack-cli" ], - "author": "Telerik ", - "license": "Apache-2.0", + "_resolved": "https://registry.npm.taobao.org/global-modules-path/download/global-modules-path-2.3.1.tgz", + "_spec": "2.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Telerik", + "email": "support@telerik.com" + }, "bugs": { "url": "https://github.com/rosen-vladimirov/global-modules-path/issues" }, - "homepage": "https://github.com/rosen-vladimirov/global-modules-path#readme", + "description": "Returns path to globally installed package", "devDependencies": { "chai": "3.5.0", "eslint": "3.8.1", "istanbul": "0.4.5", "mocha": "3.1.2", "spec-xunit-file": "0.0.1-3" - } + }, + "homepage": "https://github.com/rosen-vladimirov/global-modules-path#readme", + "keywords": [ + "npm", + "global", + "installed", + "path" + ], + "license": "Apache-2.0", + "main": "./lib/index.js", + "name": "global-modules-path", + "repository": { + "type": "git", + "url": "git+https://github.com/rosen-vladimirov/global-modules-path.git" + }, + "scripts": { + "lint": "eslint lib/* test/*", + "test": "istanbul cover node_modules/mocha/bin/_mocha -- --recursive --reporter spec-xunit-file --timeout 1500 test/" + }, + "version": "2.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/global/package.json b/admin/vue2/element-admin-v3/node_modules/global/package.json index d79c2f277..0fc537426 100644 --- a/admin/vue2/element-admin-v3/node_modules/global/package.json +++ b/admin/vue2/element-admin-v3/node_modules/global/package.json @@ -1,36 +1,73 @@ { - "name": "global", - "version": "4.3.2", - "description": "Require global variables", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/global.git", - "main": "window.js", - "homepage": "https://github.com/Raynos/global", - "contributors": [ - { - "name": "Raynos" - } + "_args": [ + [ + "global@4.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "bugs": { - "url": "https://github.com/Raynos/global/issues", + "_from": "global@4.3.2", + "_id": "global@4.3.2", + "_inBundle": false, + "_integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "_location": "/global", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "global@4.3.2", + "name": "global", + "escapedName": "global", + "rawSpec": "4.3.2", + "saveSpec": null, + "fetchSpec": "4.3.2" + }, + "_requiredBy": [ + "/video.js", + "/videojs-contrib-hls", + "/videojs-contrib-media-sources", + "/videojs-vtt.js", + "/xhr" + ], + "_resolved": "https://registry.npm.taobao.org/global/download/global-4.3.2.tgz", + "_spec": "4.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", "email": "raynos2@gmail.com" }, "browser": { "min-document": false, "individual": false }, + "bugs": { + "url": "https://github.com/Raynos/global/issues", + "email": "raynos2@gmail.com" + }, + "contributors": [ + { + "name": "Raynos" + } + ], "dependencies": { "min-document": "^2.19.0", "process": "~0.5.1" }, + "description": "Require global variables", "devDependencies": { "tape": "^2.12.0" }, + "homepage": "https://github.com/Raynos/global", + "keywords": [], "license": "MIT", + "main": "window.js", + "name": "global", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/global.git" + }, "scripts": { - "test": "node ./test", "build": "browserify test/index.js -o test/static/bundle.js", + "test": "node ./test", "testem": "testem" }, "testling": { @@ -59,5 +96,6 @@ "5.1" ] } - } + }, + "version": "4.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/globals/package.json b/admin/vue2/element-admin-v3/node_modules/globals/package.json index 410c07653..9ee52743c 100644 --- a/admin/vue2/element-admin-v3/node_modules/globals/package.json +++ b/admin/vue2/element-admin-v3/node_modules/globals/package.json @@ -1,24 +1,52 @@ { - "name": "globals", - "version": "9.18.0", - "description": "Global identifiers from different JavaScript environments", - "license": "MIT", - "repository": "sindresorhus/globals", + "_args": [ + [ + "globals@9.18.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "globals@9.18.0", + "_id": "globals@9.18.0", + "_inBundle": false, + "_integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "_location": "/globals", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "globals@9.18.0", + "name": "globals", + "escapedName": "globals", + "rawSpec": "9.18.0", + "saveSpec": null, + "fetchSpec": "9.18.0" + }, + "_requiredBy": [ + "/babel-traverse" + ], + "_resolved": "https://registry.nlark.com/globals/download/globals-9.18.0.tgz", + "_spec": "9.18.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/globals/issues" + }, + "description": "Global identifiers from different JavaScript environments", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js", "globals.json" ], + "homepage": "https://github.com/sindresorhus/globals#readme", "keywords": [ "globals", "global", @@ -29,7 +57,14 @@ "eslint", "environments" ], - "devDependencies": { - "mocha": "*" - } + "license": "MIT", + "name": "globals", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/globals.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "9.18.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/globby/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/globby/node_modules/pify/package.json index 311d1982e..be1f0f0c7 100644 --- a/admin/vue2/element-admin-v3/node_modules/globby/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/globby/node_modules/pify/package.json @@ -1,24 +1,54 @@ { - "name": "pify", - "version": "2.3.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pify@2.3.0", + "_id": "pify@2.3.0", + "_inBundle": false, + "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "_location": "/globby/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@2.3.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/globby" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^1.0.0", + "v8-natives": "0.0.2", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -39,10 +69,15 @@ "async", "es2015" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^1.0.0", - "v8-natives": "0.0.2", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/globby/package.json b/admin/vue2/element-admin-v3/node_modules/globby/package.json index 925148862..d9f261a38 100644 --- a/admin/vue2/element-admin-v3/node_modules/globby/package.json +++ b/admin/vue2/element-admin-v3/node_modules/globby/package.json @@ -1,24 +1,63 @@ { - "name": "globby", - "version": "6.1.0", - "description": "Extends `glob` with support for multiple patterns and exposes a Promise API", - "license": "MIT", - "repository": "sindresorhus/globby", + "_args": [ + [ + "globby@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "globby@6.1.0", + "_id": "globby@6.1.0", + "_inBundle": false, + "_integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "_location": "/globby", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "globby@6.1.0", + "name": "globby", + "escapedName": "globby", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/del" + ], + "_resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { - "email": "sindresorhus@gmail.com", "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/globby/issues" + }, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "description": "Extends `glob` with support for multiple patterns and exposes a Promise API", + "devDependencies": { + "ava": "*", + "glob-stream": "github:gulpjs/glob-stream#master", + "globby": "github:sindresorhus/globby#master", + "matcha": "^0.7.0", + "rimraf": "^2.2.8", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "bench": "npm update glob-stream && matcha bench.js", - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/globby#readme", "keywords": [ "all", "array", @@ -51,19 +90,15 @@ "wildcards", "promise" ], - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "license": "MIT", + "name": "globby", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/globby.git" }, - "devDependencies": { - "ava": "*", - "glob-stream": "gulpjs/glob-stream#master", - "globby": "sindresorhus/globby#master", - "matcha": "^0.7.0", - "rimraf": "^2.2.8", - "xo": "^0.16.0" - } + "scripts": { + "bench": "npm update glob-stream && matcha bench.js", + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/globule/package.json b/admin/vue2/element-admin-v3/node_modules/globule/package.json index 32c8fc4bf..0297833e5 100644 --- a/admin/vue2/element-admin-v3/node_modules/globule/package.json +++ b/admin/vue2/element-admin-v3/node_modules/globule/package.json @@ -1,36 +1,59 @@ { - "name": "globule", - "description": "An easy-to-use wildcard globbing library.", - "version": "1.3.2", - "homepage": "https://github.com/cowboy/node-globule", + "_args": [ + [ + "globule@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "globule@1.3.2", + "_id": "globule@1.3.2", + "_inBundle": false, + "_integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=", + "_location": "/globule", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "globule@1.3.2", + "name": "globule", + "escapedName": "globule", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" + }, + "_requiredBy": [ + "/gaze" + ], + "_resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "\"Cowboy\" Ben Alman", "url": "http://benalman.com/" }, - "repository": { - "type": "git", - "url": "git://github.com/cowboy/node-globule.git" - }, "bugs": { "url": "https://github.com/cowboy/node-globule/issues" }, - "license": "MIT", - "main": "lib/globule", - "files": [ - "lib" - ], - "engines": { - "node": ">= 0.10" - }, - "scripts": { - "test": "grunt" + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" }, + "description": "An easy-to-use wildcard globbing library.", "devDependencies": { + "grunt": "^1.0.2", "grunt-contrib-jshint": "^1.0.0", "grunt-contrib-nodeunit": "^2.0.0", - "grunt-contrib-watch": "^1.1.0", - "grunt": "^1.0.2" + "grunt-contrib-watch": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" }, + "files": [ + "lib" + ], + "homepage": "https://github.com/cowboy/node-globule", "keywords": [ "glob", "file", @@ -42,9 +65,15 @@ "sync", "awesome" ], - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } + "license": "MIT", + "main": "lib/globule", + "name": "globule", + "repository": { + "type": "git", + "url": "git://github.com/cowboy/node-globule.git" + }, + "scripts": { + "test": "grunt" + }, + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/good-listener/package.json b/admin/vue2/element-admin-v3/node_modules/good-listener/package.json index 8e90979ec..7d1d0fc0a 100644 --- a/admin/vue2/element-admin-v3/node_modules/good-listener/package.json +++ b/admin/vue2/element-admin-v3/node_modules/good-listener/package.json @@ -1,17 +1,41 @@ { - "name": "good-listener", - "description": "A more versatile way of adding & removing event listeners", - "version": "1.2.2", - "repository": "zenorocha/good-listener", - "license": "MIT", - "main": "src/listen.js", - "keywords": [ - "event", - "listener" + "_args": [ + [ + "good-listener@1.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "good-listener@1.2.2", + "_id": "good-listener@1.2.2", + "_inBundle": false, + "_integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "_location": "/good-listener", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "good-listener@1.2.2", + "name": "good-listener", + "escapedName": "good-listener", + "rawSpec": "1.2.2", + "saveSpec": null, + "fetchSpec": "1.2.2" + }, + "_requiredBy": [ + "/clipboard", + "/vue-clipboard2/clipboard", + "/vue-json-viewer/clipboard" + ], + "_resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "_spec": "1.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zenorocha/good-listener/issues" + }, "dependencies": { "delegate": "^3.1.2" }, + "description": "A more versatile way of adding & removing event listeners", "devDependencies": { "browserify": "^13.0.0", "chai": "^3.5.0", @@ -28,8 +52,21 @@ "sinon": "^1.17.3", "watchify": "^3.7.0" }, + "homepage": "https://github.com/zenorocha/good-listener#readme", + "keywords": [ + "event", + "listener" + ], + "license": "MIT", + "main": "src/listen.js", + "name": "good-listener", + "repository": { + "type": "git", + "url": "git+https://github.com/zenorocha/good-listener.git" + }, "scripts": { "build": "browserify src/listen.js -s listen -o dist/good-listener.js", "test": "karma start --single-run" - } + }, + "version": "1.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/graceful-fs/package.json b/admin/vue2/element-admin-v3/node_modules/graceful-fs/package.json index d73f971fc..9e43e0e28 100644 --- a/admin/vue2/element-admin-v3/node_modules/graceful-fs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/graceful-fs/package.json @@ -1,22 +1,61 @@ { - "name": "graceful-fs", + "_args": [ + [ + "graceful-fs@4.2.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "graceful-fs@4.2.6", + "_id": "graceful-fs@4.2.6", + "_inBundle": false, + "_integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=", + "_location": "/graceful-fs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "graceful-fs@4.2.6", + "name": "graceful-fs", + "escapedName": "graceful-fs", + "rawSpec": "4.2.6", + "saveSpec": null, + "fetchSpec": "4.2.6" + }, + "_requiredBy": [ + "/cacache", + "/enhanced-resolve", + "/flat-cache", + "/fs-write-stream-atomic", + "/load-json-file", + "/node-gyp", + "/read-pkg/path-type", + "/readdirp", + "/watchpack" + ], + "_resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.6.tgz", + "_spec": "4.2.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/isaacs/node-graceful-fs/issues" + }, "description": "A drop-in replacement for fs, making various improvements.", - "version": "4.2.6", - "repository": { - "type": "git", - "url": "https://github.com/isaacs/node-graceful-fs" + "devDependencies": { + "import-fresh": "^2.0.0", + "mkdirp": "^0.5.0", + "rimraf": "^2.2.8", + "tap": "^12.7.0" }, - "main": "graceful-fs.js", "directories": { "test": "test" }, - "scripts": { - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags", - "test": "nyc --silent node test.js | tap -c -", - "posttest": "nyc report" - }, + "files": [ + "fs.js", + "graceful-fs.js", + "legacy-streams.js", + "polyfills.js", + "clone.js" + ], + "homepage": "https://github.com/isaacs/node-graceful-fs#readme", "keywords": [ "fs", "module", @@ -34,17 +73,18 @@ "EACCESS" ], "license": "ISC", - "devDependencies": { - "import-fresh": "^2.0.0", - "mkdirp": "^0.5.0", - "rimraf": "^2.2.8", - "tap": "^12.7.0" + "main": "graceful-fs.js", + "name": "graceful-fs", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/node-graceful-fs.git" }, - "files": [ - "fs.js", - "graceful-fs.js", - "legacy-streams.js", - "polyfills.js", - "clone.js" - ] + "scripts": { + "postpublish": "git push origin --follow-tags", + "posttest": "nyc report", + "postversion": "npm publish", + "preversion": "npm test", + "test": "nyc --silent node test.js | tap -c -" + }, + "version": "4.2.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/growly/package.json b/admin/vue2/element-admin-v3/node_modules/growly/package.json index 78cca2509..776c41371 100644 --- a/admin/vue2/element-admin-v3/node_modules/growly/package.json +++ b/admin/vue2/element-admin-v3/node_modules/growly/package.json @@ -1,15 +1,61 @@ { + "_args": [ + [ + "growly@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "growly@1.3.0", + "_id": "growly@1.3.0", + "_inBundle": false, + "_integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "_location": "/growly", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "growly@1.3.0", "name": "growly", - "version": "1.3.0", - "description": "Simple zero-dependency Growl notifications using GNTP.", - "keywords": ["growl", "growly", "snarl", "notifications", "gntp", "messages"], - "author": "Ibrahim Al-Rajhi (http://ibrahimalrajhi.com/)", - "repository": "http://github.com/theabraham/growly", - "bugs": "http://github.com/theabraham/growly/issues", - "main": "lib/growly.js", - "directories": { - "example": "example", - "lib": "lib" - }, - "license": "MIT" + "escapedName": "growly", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/node-notifier" + ], + "_resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ibrahim Al-Rajhi", + "email": "abrahamalrajhi@gmail.com", + "url": "http://ibrahimalrajhi.com/" + }, + "bugs": { + "url": "http://github.com/theabraham/growly/issues" + }, + "description": "Simple zero-dependency Growl notifications using GNTP.", + "directories": { + "example": "example", + "lib": "lib" + }, + "homepage": "https://github.com/theabraham/growly#readme", + "keywords": [ + "growl", + "growly", + "snarl", + "notifications", + "gntp", + "messages" + ], + "license": "MIT", + "main": "lib/growly.js", + "name": "growly", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/theabraham/growly.git" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/gzip-size/package.json b/admin/vue2/element-admin-v3/node_modules/gzip-size/package.json index 6509f792a..139e981d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/gzip-size/package.json +++ b/admin/vue2/element-admin-v3/node_modules/gzip-size/package.json @@ -1,42 +1,77 @@ { - "name": "gzip-size", - "version": "5.1.1", - "description": "Get the gzipped size of a string or buffer", - "license": "MIT", - "repository": "sindresorhus/gzip-size", - "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": [ - "app", - "tool", - "zlib", - "gzip", - "compressed", - "size", - "string", - "buffer" - ], - "dependencies": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "devDependencies": { - "ava": "^1.4.1", - "p-event": "^2.1.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "gzip-size@5.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "gzip-size@5.1.1", + "_id": "gzip-size@5.1.1", + "_inBundle": false, + "_integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "_location": "/gzip-size", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "gzip-size@5.1.1", + "name": "gzip-size", + "escapedName": "gzip-size", + "rawSpec": "5.1.1", + "saveSpec": null, + "fetchSpec": "5.1.1" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", + "_spec": "5.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/gzip-size/issues" + }, + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "description": "Get the gzipped size of a string or buffer", + "devDependencies": { + "ava": "^1.4.1", + "p-event": "^2.1.0", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/gzip-size#readme", + "keywords": [ + "app", + "tool", + "zlib", + "gzip", + "compressed", + "size", + "string", + "buffer" + ], + "license": "MIT", + "name": "gzip-size", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/gzip-size.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "5.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/handle-thing/package.json b/admin/vue2/element-admin-v3/node_modules/handle-thing/package.json index 2a36fcf5a..f121d311e 100644 --- a/admin/vue2/element-admin-v3/node_modules/handle-thing/package.json +++ b/admin/vue2/element-admin-v3/node_modules/handle-thing/package.json @@ -1,32 +1,40 @@ { - "name": "handle-thing", - "version": "2.0.1", - "description": "Wrap Streams2 instance into a HandleWrap", - "main": "lib/handle.js", - "scripts": { - "lint": "standard", - "test": "mocha --reporter=spec test/*-test.js", - "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js" - }, - "pre-commit": [ - "lint", - "test" + "_args": [ + [ + "handle-thing@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/handle-thing.git" + "_from": "handle-thing@2.0.1", + "_id": "handle-thing@2.0.1", + "_inBundle": false, + "_integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", + "_location": "/handle-thing", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "handle-thing@2.0.1", + "name": "handle-thing", + "escapedName": "handle-thing", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "keywords": [ - "handle", - "net", - "streams2" + "_requiredBy": [ + "/spdy" ], - "author": "Fedor Indutny ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, "bugs": { "url": "https://github.com/spdy-http2/handle-thing/issues" }, - "homepage": "https://github.com/spdy-http2/handle-thing#readme", + "description": "Wrap Streams2 instance into a HandleWrap", "devDependencies": { "istanbul": "^0.4.5", "mocha": "^5.2.0", @@ -34,5 +42,28 @@ "readable-stream": "^3.0.6", "standard": "^12.0.1", "stream-pair": "^1.0.3" - } + }, + "homepage": "https://github.com/spdy-http2/handle-thing#readme", + "keywords": [ + "handle", + "net", + "streams2" + ], + "license": "MIT", + "main": "lib/handle.js", + "name": "handle-thing", + "pre-commit": [ + "lint", + "test" + ], + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/handle-thing.git" + }, + "scripts": { + "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js", + "lint": "standard", + "test": "mocha --reporter=spec test/*-test.js" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/har-schema/package.json b/admin/vue2/element-admin-v3/node_modules/har-schema/package.json index d14650bd7..9573fc18b 100644 --- a/admin/vue2/element-admin-v3/node_modules/har-schema/package.json +++ b/admin/vue2/element-admin-v3/node_modules/har-schema/package.json @@ -1,47 +1,53 @@ { - "version": "2.0.0", - "name": "har-schema", - "description": "JSON Schema for HTTP Archive (HAR)", - "author": "Ahmad Nassri (https://www.ahmadnassri.com/)", - "contributors": [ - "Evgeny Poberezkin " + "_args": [ + [ + "har-schema@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/ahmadnassri/har-schema", - "repository": { - "type": "git", - "url": "https://github.com/ahmadnassri/har-schema.git" + "_development": true, + "_from": "har-schema@2.0.0", + "_id": "har-schema@2.0.0", + "_inBundle": false, + "_integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "_location": "/har-schema", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "har-schema@2.0.0", + "name": "har-schema", + "escapedName": "har-schema", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "license": "ISC", - "main": "lib/index.js", - "keywords": [ - "har", - "http", - "archive", - "JSON", - "schema", - "JSON-schema" + "_requiredBy": [ + "/har-validator" ], - "engines": { - "node": ">=4" + "_resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ahmad Nassri", + "email": "ahmad@ahmadnassri.com", + "url": "https://www.ahmadnassri.com/" }, - "files": [ - "lib" - ], "bugs": { "url": "https://github.com/ahmadnassri/har-schema/issues" }, - "scripts": { - "test": "tap test --reporter spec", - "pretest": "snazzy && echint", - "coverage": "tap test --reporter silent --coverage", - "codeclimate": "tap --coverage-report=text-lcov | codeclimate-test-reporter", - "semantic-release": "semantic-release pre && npm publish && semantic-release post" - }, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } }, + "contributors": [ + { + "name": "Evgeny Poberezkin", + "email": "e.poberezkin@me.com" + } + ], + "description": "JSON Schema for HTTP Archive (HAR)", "devDependencies": { "ajv": "^5.0.0", "codeclimate-test-reporter": "^0.4.0", @@ -50,5 +56,35 @@ "semantic-release": "^6.3.2", "snazzy": "^5.0.0", "tap": "^8.0.1" - } -} \ No newline at end of file + }, + "engines": { + "node": ">=4" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/ahmadnassri/har-schema", + "keywords": [ + "har", + "http", + "archive", + "JSON", + "schema", + "JSON-schema" + ], + "license": "ISC", + "main": "lib/index.js", + "name": "har-schema", + "repository": { + "type": "git", + "url": "git+https://github.com/ahmadnassri/har-schema.git" + }, + "scripts": { + "codeclimate": "tap --coverage-report=text-lcov | codeclimate-test-reporter", + "coverage": "tap test --reporter silent --coverage", + "pretest": "snazzy && echint", + "semantic-release": "semantic-release pre && npm publish && semantic-release post", + "test": "tap test --reporter spec" + }, + "version": "2.0.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/har-validator/package.json b/admin/vue2/element-admin-v3/node_modules/har-validator/package.json index 8d1eed179..0f2da3971 100644 --- a/admin/vue2/element-admin-v3/node_modules/har-validator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/har-validator/package.json @@ -1,15 +1,56 @@ { - "version": "5.1.5", - "name": "har-validator", + "_args": [ + [ + "har-validator@5.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "har-validator@5.1.5", + "_id": "har-validator@5.1.5", + "_inBundle": false, + "_integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "_location": "/har-validator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "har-validator@5.1.5", + "name": "har-validator", + "escapedName": "har-validator", + "rawSpec": "5.1.5", + "saveSpec": null, + "fetchSpec": "5.1.5" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082578993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", + "_spec": "5.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ahmad Nassri", + "email": "ahmad@ahmadnassri.com", + "url": "https://www.ahmadnassri.com/" + }, + "bugs": { + "url": "https://github.com/ahmadnassri/node-har-validator/issues" + }, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema", - "author": "Ahmad Nassri (https://www.ahmadnassri.com/)", - "homepage": "https://github.com/ahmadnassri/node-har-validator", - "repository": { - "type": "git", - "url": "https://github.com/ahmadnassri/node-har-validator.git" + "devDependencies": { + "tap": "^14.10.8" }, - "license": "MIT", - "main": "lib/promise.js", + "engines": { + "node": ">=6" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/ahmadnassri/node-har-validator", "keywords": [ "har", "cli", @@ -19,25 +60,17 @@ "validate", "validator" ], - "engines": { - "node": ">=6" - }, - "files": [ - "lib" - ], - "bugs": { - "url": "https://github.com/ahmadnassri/node-har-validator/issues" + "license": "MIT", + "main": "lib/promise.js", + "name": "har-validator", + "repository": { + "type": "git", + "url": "git+https://github.com/ahmadnassri/node-har-validator.git" }, "scripts": { "lint": "npx run-p lint:*", "test": "tap test --no-coverage", "test:coverage": "tap test --coverage-report=lcov --no-browser" }, - "devDependencies": { - "tap": "^14.10.8" - }, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } + "version": "5.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/has-ansi/package.json index 01e08d4fd..95c634cd4 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-ansi/package.json @@ -1,27 +1,58 @@ { - "name": "has-ansi", - "version": "2.0.0", - "description": "Check if a string has ANSI escape codes", - "license": "MIT", - "repository": "sindresorhus/has-ansi", + "_args": [ + [ + "has-ansi@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-ansi@2.0.0", + "_id": "has-ansi@2.0.0", + "_inBundle": false, + "_integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "_location": "/has-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-ansi@2.0.0", + "name": "has-ansi", + "escapedName": "has-ansi", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/babel-code-frame/chalk", + "/friendly-errors-webpack-plugin/chalk", + "/listr-update-renderer/chalk", + "/node-sass/chalk", + "/svg-baker/chalk" + ], + "_resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)" - ], + "bugs": { + "url": "https://github.com/sindresorhus/has-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "description": "Check if a string has ANSI escape codes", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/has-ansi#readme", "keywords": [ "ansi", "styles", @@ -46,10 +77,26 @@ "pattern", "has" ], - "dependencies": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + } + ], + "name": "has-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/has-ansi.git" }, - "devDependencies": { - "ava": "0.0.4" - } + "scripts": { + "test": "node test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-bigints/package.json b/admin/vue2/element-admin-v3/node_modules/has-bigints/package.json index 82144f0e7..9cbf5be11 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-bigints/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-bigints/package.json @@ -1,53 +1,85 @@ { - "name": "has-bigints", - "version": "1.0.1", - "description": "Determine if the JS environment has BigInt support.", - "main": "index.js", - "scripts": { - "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)\")\"", - "prepublish": "not-in-publish || safe-publish-latest", - "lint": "eslint --ext=js,mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/has-bigints.git" - }, - "keywords": [ - "BigInt", - "bigints", - "typeof", - "ES2020" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/has-bigints/issues" - }, - "homepage": "https://github.com/ljharb/has-bigints#readme", - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.15.0", - "in-publish": "^2.0.1", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "has-bigints@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "has-bigints@1.0.1", + "_id": "has-bigints@1.0.1", + "_inBundle": false, + "_integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", + "_location": "/has-bigints", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-bigints@1.0.1", + "name": "has-bigints", + "escapedName": "has-bigints", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/unbox-primitive" + ], + "_resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&sync_timestamp=1615461262702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/ljharb/has-bigints/issues" + }, + "description": "Determine if the JS environment has BigInt support.", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.15.0", + "in-publish": "^2.0.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/has-bigints#readme", + "keywords": [ + "BigInt", + "bigints", + "typeof", + "ES2020" + ], + "license": "MIT", + "main": "index.js", + "name": "has-bigints", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/has-bigints.git" + }, + "scripts": { + "lint": "eslint --ext=js,mjs .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-color/package.json b/admin/vue2/element-admin-v3/node_modules/has-color/package.json index c631c1c7d..1d5893865 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-color/package.json @@ -1,23 +1,51 @@ { - "name": "has-color", - "version": "0.1.7", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "sindresorhus/has-color", + "_args": [ + [ + "has-color@0.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-color@0.1.7", + "_id": "has-color@0.1.7", + "_inBundle": false, + "_integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "_location": "/has-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-color@0.1.7", + "name": "has-color", + "escapedName": "has-color", + "rawSpec": "0.1.7", + "saveSpec": null, + "fetchSpec": "0.1.7" + }, + "_requiredBy": [ + "/nomnom/chalk" + ], + "_resolved": "https://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz", + "_spec": "0.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/has-color/issues" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/has-color#readme", "keywords": [ "color", "colour", @@ -37,7 +65,14 @@ "capability", "detect" ], - "devDependencies": { - "mocha": "*" - } + "license": "MIT", + "name": "has-color", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/has-color.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-flag/package.json b/admin/vue2/element-admin-v3/node_modules/has-flag/package.json index e1eb17a15..1a41cf4a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-flag/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-flag/package.json @@ -1,23 +1,124 @@ { - "name": "has-flag", - "version": "3.0.0", - "description": "Check if argv has a specific flag", - "license": "MIT", - "repository": "sindresorhus/has-flag", + "_args": [ + [ + "has-flag@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-flag@3.0.0", + "_id": "has-flag@3.0.0", + "_inBundle": false, + "_integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "_location": "/has-flag", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-flag@3.0.0", + "name": "has-flag", + "escapedName": "has-flag", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/chalk/supports-color", + "/@vue/component-compiler-utils/supports-color", + "/chalk/supports-color", + "/css-declaration-sorter/chalk/supports-color", + "/css-declaration-sorter/supports-color", + "/cssnano-preset-default/chalk/supports-color", + "/cssnano-preset-default/supports-color", + "/cssnano-util-raw-cache/chalk/supports-color", + "/cssnano-util-raw-cache/supports-color", + "/cssnano/chalk/supports-color", + "/cssnano/supports-color", + "/postcss-calc/chalk/supports-color", + "/postcss-calc/supports-color", + "/postcss-colormin/chalk/supports-color", + "/postcss-colormin/supports-color", + "/postcss-convert-values/chalk/supports-color", + "/postcss-convert-values/supports-color", + "/postcss-discard-comments/chalk/supports-color", + "/postcss-discard-comments/supports-color", + "/postcss-discard-duplicates/chalk/supports-color", + "/postcss-discard-duplicates/supports-color", + "/postcss-discard-empty/chalk/supports-color", + "/postcss-discard-empty/supports-color", + "/postcss-discard-overridden/chalk/supports-color", + "/postcss-discard-overridden/supports-color", + "/postcss-merge-longhand/chalk/supports-color", + "/postcss-merge-longhand/supports-color", + "/postcss-merge-rules/chalk/supports-color", + "/postcss-merge-rules/supports-color", + "/postcss-minify-font-values/chalk/supports-color", + "/postcss-minify-font-values/supports-color", + "/postcss-minify-gradients/chalk/supports-color", + "/postcss-minify-gradients/supports-color", + "/postcss-minify-params/chalk/supports-color", + "/postcss-minify-params/supports-color", + "/postcss-minify-selectors/chalk/supports-color", + "/postcss-minify-selectors/supports-color", + "/postcss-normalize-charset/chalk/supports-color", + "/postcss-normalize-charset/supports-color", + "/postcss-normalize-display-values/chalk/supports-color", + "/postcss-normalize-display-values/supports-color", + "/postcss-normalize-positions/chalk/supports-color", + "/postcss-normalize-positions/supports-color", + "/postcss-normalize-repeat-style/chalk/supports-color", + "/postcss-normalize-repeat-style/supports-color", + "/postcss-normalize-string/chalk/supports-color", + "/postcss-normalize-string/supports-color", + "/postcss-normalize-timing-functions/chalk/supports-color", + "/postcss-normalize-timing-functions/supports-color", + "/postcss-normalize-unicode/chalk/supports-color", + "/postcss-normalize-unicode/supports-color", + "/postcss-normalize-url/chalk/supports-color", + "/postcss-normalize-url/supports-color", + "/postcss-normalize-whitespace/chalk/supports-color", + "/postcss-normalize-whitespace/supports-color", + "/postcss-ordered-values/chalk/supports-color", + "/postcss-ordered-values/supports-color", + "/postcss-prefix-selector/chalk/supports-color", + "/postcss-prefix-selector/supports-color", + "/postcss-reduce-initial/chalk/supports-color", + "/postcss-reduce-initial/supports-color", + "/postcss-reduce-transforms/chalk/supports-color", + "/postcss-reduce-transforms/supports-color", + "/postcss-svgo/chalk/supports-color", + "/postcss-svgo/supports-color", + "/postcss-unique-selectors/chalk/supports-color", + "/postcss-unique-selectors/supports-color", + "/postcss/supports-color", + "/stylehacks/chalk/supports-color", + "/stylehacks/supports-color", + "/webpack-bundle-analyzer/supports-color", + "/webpack-cli/supports-color", + "/webpack-dev-server/supports-color" + ], + "_resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/has-flag/issues" + }, + "description": "Check if argv has a specific flag", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/has-flag#readme", "keywords": [ "has", "check", @@ -37,8 +138,14 @@ "minimist", "optimist" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "has-flag", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/has-flag.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-symbols/package.json b/admin/vue2/element-admin-v3/node_modules/has-symbols/package.json index 2c2f57278..289b03cb7 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-symbols/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-symbols/package.json @@ -1,96 +1,133 @@ { - "name": "has-symbols", - "version": "1.0.2", - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run --silent lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams", - "test:stock": "nyc node test", - "test:staging": "nyc node --harmony --es-staging test", - "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", - "test:shams:corejs": "nyc node test/shams/core-js.js", - "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", - "lint": "eslint --ext=js,mjs .", - "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://github.com/inspect-js/has-symbols.git" - }, - "keywords": [ - "Symbol", - "symbols", - "typeof", - "sham", - "polyfill", - "native", - "core-js", - "ES6" - ], - "devDependencies": { - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "auto-changelog": "^2.2.1", - "core-js": "^2.6.12", - "eslint": "^7.20.0", - "get-own-property-symbols": "^0.9.5", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.0" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "greenkeeper": { - "ignore": [ - "core-js" - ] - } + "_args": [ + [ + "has-symbols@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-symbols@1.0.2", + "_id": "has-symbols@1.0.2", + "_inBundle": false, + "_integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", + "_location": "/has-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-symbols@1.0.2", + "name": "has-symbols", + "escapedName": "has-symbols", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/es-abstract", + "/get-intrinsic", + "/is-regex", + "/is-symbol", + "/object.assign", + "/unbox-primitive" + ], + "_resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443557459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/has-symbols/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", + "devDependencies": { + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "auto-changelog": "^2.2.1", + "core-js": "^2.6.12", + "eslint": "^7.20.0", + "get-own-property-symbols": "^0.9.5", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "greenkeeper": { + "ignore": [ + "core-js" + ] + }, + "homepage": "https://github.com/inspect-js/has-symbols#readme", + "keywords": [ + "Symbol", + "symbols", + "typeof", + "sham", + "polyfill", + "native", + "core-js", + "ES6" + ], + "license": "MIT", + "main": "index.js", + "name": "has-symbols", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/has-symbols.git" + }, + "scripts": { + "lint": "eslint --ext=js,mjs .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "test:staging": "nyc node --harmony --es-staging test", + "test:stock": "nyc node test", + "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-unicode/package.json b/admin/vue2/element-admin-v3/node_modules/has-unicode/package.json index ebe9d76d6..520ab9fdf 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-unicode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-unicode/package.json @@ -1,30 +1,62 @@ { - "name": "has-unicode", - "version": "2.0.1", - "description": "Try to guess if your terminal supports unicode", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/has-unicode" - }, - "keywords": [ - "unicode", - "terminal" + "_args": [ + [ + "has-unicode@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "index.js" + "_development": true, + "_from": "has-unicode@2.0.1", + "_id": "has-unicode@2.0.1", + "_inBundle": false, + "_integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "_location": "/has-unicode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-unicode@2.0.1", + "name": "has-unicode", + "escapedName": "has-unicode", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/gauge" ], - "author": "Rebecca Turner ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org" + }, "bugs": { "url": "https://github.com/iarna/has-unicode/issues" }, - "homepage": "https://github.com/iarna/has-unicode", + "description": "Try to guess if your terminal supports unicode", "devDependencies": { "require-inject": "^1.3.0", "tap": "^2.3.1" - } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/iarna/has-unicode", + "keywords": [ + "unicode", + "terminal" + ], + "license": "ISC", + "main": "index.js", + "name": "has-unicode", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/has-unicode.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-value/package.json b/admin/vue2/element-admin-v3/node_modules/has-value/package.json index e65d4380d..c25c9f1ac 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-value/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-value/package.json @@ -1,37 +1,66 @@ { - "name": "has-value", - "description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/has-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ryan M Harrison (https://linkedin.com/in/harrisonrm)" + "_args": [ + [ + "has-value@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/has-value", - "bugs": { - "url": "https://github.com/jonschlinkert/has-value/issues" + "_from": "has-value@1.0.0", + "_id": "has-value@1.0.0", + "_inBundle": false, + "_integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "_location": "/has-value", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-value@1.0.0", + "name": "has-value", + "escapedName": "has-value", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/cache-base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/has-value/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ryan M Harrison", + "url": "https://linkedin.com/in/harrisonrm" + } + ], "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" }, + "description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.4.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/has-value", "keywords": [ "array", "boolean", @@ -57,6 +86,16 @@ "utility", "value" ], + "license": "MIT", + "main": "index.js", + "name": "has-value", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/has-value.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -79,5 +118,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-values/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/has-values/node_modules/kind-of/package.json index 222afc0b2..a29c6d2d4 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-values/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-values/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "4.0.0", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@4.0.0", + "_id": "kind-of@4.0.0", + "_inBundle": false, + "_integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "_location": "/has-values/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@4.0.0", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/has-values" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.1.1", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/has-values/package.json b/admin/vue2/element-admin-v3/node_modules/has-values/package.json index bdd841d93..c9e88b608 100644 --- a/admin/vue2/element-admin-v3/node_modules/has-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has-values/package.json @@ -1,32 +1,57 @@ { - "name": "has-values", - "description": "Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. ", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/has-values", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/has-values", - "bugs": { - "url": "https://github.com/jonschlinkert/has-values/issues" + "_args": [ + [ + "has-values@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-values@1.0.0", + "_id": "has-values@1.0.0", + "_inBundle": false, + "_integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "_location": "/has-values", + "_phantomChildren": { + "is-buffer": "1.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "has-values@1.0.0", + "name": "has-values", + "escapedName": "has-values", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/has-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/has-values/issues" }, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, + "description": "Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. ", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.4.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/has-values", "keywords": [ "array", "boolean", @@ -53,6 +78,16 @@ "value", "values" ], + "license": "MIT", + "main": "index.js", + "name": "has-values", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/has-values.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -78,5 +113,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/has/package.json b/admin/vue2/element-admin-v3/node_modules/has/package.json index 7c4592f16..2a4c9abf4 100644 --- a/admin/vue2/element-admin-v3/node_modules/has/package.json +++ b/admin/vue2/element-admin-v3/node_modules/has/package.json @@ -1,37 +1,58 @@ { - "name": "has", - "description": "Object.prototype.hasOwnProperty.call shortcut", - "version": "1.0.3", - "homepage": "https://github.com/tarruda/has", + "_args": [ + [ + "has@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has@1.0.3", + "_id": "has@1.0.3", + "_inBundle": false, + "_integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "_location": "/has", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has@1.0.3", + "name": "has", + "escapedName": "has", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/es-abstract", + "/get-intrinsic", + "/is-core-module", + "/postcss-colormin", + "/postcss-minify-selectors", + "/postcss-normalize-positions", + "/postcss-normalize-string", + "/postcss-reduce-initial", + "/postcss-reduce-transforms" + ], + "_resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Thiago de Arruda", "email": "tpadilha84@gmail.com" }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/tarruda/has.git" - }, "bugs": { "url": "https://github.com/tarruda/has/issues" }, - "license": "MIT", - "licenses": [ + "contributors": [ { - "type": "MIT", - "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT" + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" } ], - "main": "./src", "dependencies": { "function-bind": "^1.1.1" }, + "description": "Object.prototype.hasOwnProperty.call shortcut", "devDependencies": { "@ljharb/eslint-config": "^12.2.1", "eslint": "^4.19.1", @@ -40,9 +61,24 @@ "engines": { "node": ">= 0.4.0" }, + "homepage": "https://github.com/tarruda/has", + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT" + } + ], + "main": "./src", + "name": "has", + "repository": { + "type": "git", + "url": "git://github.com/tarruda/has.git" + }, "scripts": { "lint": "eslint .", "pretest": "npm run lint", "test": "tape test" - } + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/readable-stream/package.json b/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/readable-stream/package.json index 0b0c4bd20..5a7547f74 100644 --- a/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/readable-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/readable-stream/package.json @@ -1,16 +1,49 @@ { - "name": "readable-stream", - "version": "3.6.0", - "description": "Streams3, a user-land copy of the stream library from Node.js", - "main": "readable.js", - "engines": { - "node": ">= 6" + "_args": [ + [ + "readable-stream@3.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "readable-stream@3.6.0", + "_id": "readable-stream@3.6.0", + "_inBundle": false, + "_integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "_location": "/hash-base/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@3.6.0", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "3.6.0", + "saveSpec": null, + "fetchSpec": "3.6.0" + }, + "_requiredBy": [ + "/hash-base" + ], + "_resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "_spec": "3.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "util": false, + "worker_threads": false, + "./errors": "./errors-browser.js", + "./readable.js": "./readable-browser.js", + "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" }, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from Node.js", "devDependencies": { "@babel/cli": "^7.2.0", "@babel/core": "^7.2.0", @@ -33,36 +66,35 @@ "tar-fs": "^1.16.2", "util-promisify": "^2.1.0" }, - "scripts": { - "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", - "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", - "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", - "test-browser-local": "airtap --open --local -- test/browser.js", - "cover": "nyc npm test", - "report": "nyc report --reporter=lcov", - "update-browser-errors": "babel -o errors-browser.js errors.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream" + "engines": { + "node": ">= 6" }, + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ "readable", "stream", "pipe" ], - "browser": { - "util": false, - "worker_threads": false, - "./errors": "./errors-browser.js", - "./readable.js": "./readable-browser.js", - "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", - "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" - }, + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", "nyc": { "include": [ "lib/**.js" ] }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", + "test-browser-local": "airtap --open --local -- test/browser.js", + "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", + "update-browser-errors": "babel -o errors-browser.js errors.js" + }, + "version": "3.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/safe-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/safe-buffer/package.json index f2869e256..7a5c8304d 100644 --- a/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/safe-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/safe-buffer/package.json @@ -1,7 +1,33 @@ { - "name": "safe-buffer", - "description": "Safer Node.js Buffer API", - "version": "5.2.1", + "_args": [ + [ + "safe-buffer@5.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safe-buffer@5.2.1", + "_id": "safe-buffer@5.2.1", + "_inBundle": false, + "_integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "_location": "/hash-base/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.2.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" + }, + "_requiredBy": [ + "/hash-base", + "/hash-base/string_decoder" + ], + "_resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "_spec": "5.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -10,10 +36,25 @@ "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, + "description": "Safer Node.js Buffer API", "devDependencies": { "standard": "*", "tape": "^5.0.0" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "homepage": "https://github.com/feross/safe-buffer", "keywords": [ "buffer", @@ -26,7 +67,7 @@ ], "license": "MIT", "main": "index.js", - "types": "index.d.ts", + "name": "safe-buffer", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" @@ -34,18 +75,6 @@ "scripts": { "test": "standard && tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "types": "index.d.ts", + "version": "5.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/string_decoder/package.json b/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/string_decoder/package.json index b2bb14116..4a7ae01ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/string_decoder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hash-base/node_modules/string_decoder/package.json @@ -1,28 +1,48 @@ { - "name": "string_decoder", - "version": "1.3.0", - "description": "The string_decoder module from Node core", - "main": "lib/string_decoder.js", - "files": [ - "lib" + "_args": [ + [ + "string_decoder@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "string_decoder@1.3.0", + "_id": "string_decoder@1.3.0", + "_inBundle": false, + "_integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "_location": "/hash-base/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string_decoder@1.3.0", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/hash-base/readable-stream" ], + "_resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, "dependencies": { "safe-buffer": "~5.2.0" }, + "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "core-util-is": "^1.0.2", "inherits": "^2.0.3", "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/parallel/*.js && node test/verify-dependencies", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/string_decoder.git" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/nodejs/string_decoder", "keywords": [ "string", @@ -30,5 +50,16 @@ "browser", "browserify" ], - "license": "MIT" + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/hash-base/package.json b/admin/vue2/element-admin-v3/node_modules/hash-base/package.json index cfea6d441..cea391105 100644 --- a/admin/vue2/element-admin-v3/node_modules/hash-base/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hash-base/package.json @@ -1,36 +1,50 @@ { - "name": "hash-base", - "version": "3.1.0", - "description": "abstract base class for hash-streams", - "keywords": [ - "hash", - "stream" + "_args": [ + [ + "hash-base@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/crypto-browserify/hash-base", - "bugs": { - "url": "https://github.com/crypto-browserify/hash-base/issues" + "_from": "hash-base@3.1.0", + "_id": "hash-base@3.1.0", + "_inBundle": false, + "_integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "_location": "/hash-base", + "_phantomChildren": { + "inherits": "2.0.4", + "util-deprecate": "1.0.2" }, - "license": "MIT", - "author": "Kirill Fomichev (https://github.com/fanatid)", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "hash-base@3.1.0", + "name": "hash-base", + "escapedName": "hash-base", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/md5.js", + "/ripemd160" ], - "main": "index.js", - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/hash-base.git" + "_resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kirill Fomichev", + "email": "fanatid@ya.ru", + "url": "https://github.com/fanatid" }, - "scripts": { - "coverage": "nyc node test/*.js", - "lint": "standard", - "test": "npm run lint && npm run unit", - "unit": "node test/*.js" + "bugs": { + "url": "https://github.com/crypto-browserify/hash-base/issues" }, "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, + "description": "abstract base class for hash-streams", "devDependencies": { "nyc": "^15.0.1", "standard": "^14.3.3", @@ -38,5 +52,27 @@ }, "engines": { "node": ">=4" - } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/crypto-browserify/hash-base", + "keywords": [ + "hash", + "stream" + ], + "license": "MIT", + "main": "index.js", + "name": "hash-base", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/hash-base.git" + }, + "scripts": { + "coverage": "nyc node test/*.js", + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "node test/*.js" + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/hash-sum/package.json b/admin/vue2/element-admin-v3/node_modules/hash-sum/package.json index 771ffc2af..57c961962 100644 --- a/admin/vue2/element-admin-v3/node_modules/hash-sum/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hash-sum/package.json @@ -1,27 +1,59 @@ { - "name": "hash-sum", - "description": "Blazing fast unique hash generator", - "version": "1.0.2", - "homepage": "https://github.com/bevacqua/hash-sum", + "_args": [ + [ + "hash-sum@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "hash-sum@1.0.2", + "_id": "hash-sum@1.0.2", + "_inBundle": false, + "_integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "_location": "/hash-sum", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hash-sum@1.0.2", + "name": "hash-sum", + "escapedName": "hash-sum", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "#DEV:/", + "/@vue/component-compiler-utils", + "/vue-loader", + "/vue-style-loader" + ], + "_resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "Nicolas Bevacqua " ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/bevacqua/hash-sum.git" - }, "bugs": { "url": "https://github.com/bevacqua/hash-sum/issues" }, - "main": "hash-sum.js", - "scripts": { - "test": "jshint . && tape test.js" - }, "dependencies": {}, + "description": "Blazing fast unique hash generator", "devDependencies": { "jshint": "2.5.0", "jshint-stylish": "0.2.0", "tape": "3.0.3" - } + }, + "homepage": "https://github.com/bevacqua/hash-sum", + "license": "MIT", + "main": "hash-sum.js", + "name": "hash-sum", + "repository": { + "type": "git", + "url": "git://github.com/bevacqua/hash-sum.git" + }, + "scripts": { + "test": "jshint . && tape test.js" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/hash.js/package.json b/admin/vue2/element-admin-v3/node_modules/hash.js/package.json index c1a338a4c..f7abbd10d 100644 --- a/admin/vue2/element-admin-v3/node_modules/hash.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hash.js/package.json @@ -1,35 +1,67 @@ { - "name": "hash.js", - "version": "1.1.7", - "description": "Various hash functions that could be run by both browser and node", - "main": "lib/hash.js", - "typings": "lib/hash.d.ts", - "scripts": { - "test": "mocha --reporter=spec test/*-test.js && npm run lint", - "lint": "eslint lib/*.js lib/**/*.js lib/**/**/*.js test/*.js" - }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/hash.js" + "_args": [ + [ + "hash.js@1.1.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "hash.js@1.1.7", + "_id": "hash.js@1.1.7", + "_inBundle": false, + "_integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "_location": "/hash.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hash.js@1.1.7", + "name": "hash.js", + "escapedName": "hash.js", + "rawSpec": "1.1.7", + "saveSpec": null, + "fetchSpec": "1.1.7" }, - "keywords": [ - "hash", - "sha256", - "sha224", - "hmac" + "_requiredBy": [ + "/elliptic", + "/hmac-drbg" ], - "author": "Fedor Indutny ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "_spec": "1.1.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, "bugs": { "url": "https://github.com/indutny/hash.js/issues" }, - "homepage": "https://github.com/indutny/hash.js", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" }, + "description": "Various hash functions that could be run by both browser and node", "devDependencies": { "eslint": "^4.19.1", "mocha": "^5.2.0" - } + }, + "homepage": "https://github.com/indutny/hash.js", + "keywords": [ + "hash", + "sha256", + "sha224", + "hmac" + ], + "license": "MIT", + "main": "lib/hash.js", + "name": "hash.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/hash.js.git" + }, + "scripts": { + "lint": "eslint lib/*.js lib/**/*.js lib/**/**/*.js test/*.js", + "test": "mocha --reporter=spec test/*-test.js && npm run lint" + }, + "typings": "lib/hash.d.ts", + "version": "1.1.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/he/package.json b/admin/vue2/element-admin-v3/node_modules/he/package.json index 76eff3178..2f9f71182 100644 --- a/admin/vue2/element-admin-v3/node_modules/he/package.json +++ b/admin/vue2/element-admin-v3/node_modules/he/package.json @@ -1,44 +1,46 @@ { - "name": "he", - "version": "1.2.0", - "description": "A robust HTML entities encoder/decoder with full Unicode support.", - "homepage": "https://mths.be/he", - "main": "he.js", - "bin": "bin/he", - "keywords": [ - "string", - "entities", - "entity", - "html", - "encode", - "decode", - "unicode" + "_args": [ + [ + "he@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", + "_development": true, + "_from": "he@1.2.0", + "_id": "he@1.2.0", + "_inBundle": false, + "_integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "_location": "/he", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "he@1.2.0", + "name": "he", + "escapedName": "he", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/html-minifier", + "/svg-baker", + "/vue-template-compiler" + ], + "_resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Mathias Bynens", "url": "https://mathiasbynens.be/" }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/he.git" + "bin": { + "he": "bin/he" }, - "bugs": "https://github.com/mathiasbynens/he/issues", - "files": [ - "LICENSE-MIT.txt", - "he.js", - "bin/", - "man/" - ], - "directories": { - "bin": "bin", - "man": "man", - "test": "tests" - }, - "scripts": { - "test": "node tests/tests.js", - "build": "grunt build" + "bugs": { + "url": "https://github.com/mathiasbynens/he/issues" }, + "description": "A robust HTML entities encoder/decoder with full Unicode support.", "devDependencies": { "codecov.io": "^0.1.6", "grunt": "^0.4.5", @@ -54,5 +56,41 @@ "regexgen": "^1.3.0", "requirejs": "^2.1.22", "sort-object": "^3.0.2" - } + }, + "directories": { + "bin": "bin", + "man": "man", + "test": "tests" + }, + "files": [ + "LICENSE-MIT.txt", + "he.js", + "bin/", + "man/" + ], + "homepage": "https://mths.be/he", + "keywords": [ + "string", + "entities", + "entity", + "html", + "encode", + "decode", + "unicode" + ], + "license": "MIT", + "main": "he.js", + "man": [ + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3\\node_modules\\he\\man\\he.1" + ], + "name": "he", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/he.git" + }, + "scripts": { + "build": "grunt build", + "test": "node tests/tests.js" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/hex-color-regex/package.json b/admin/vue2/element-admin-v3/node_modules/hex-color-regex/package.json index 539d09f3c..f5285abde 100644 --- a/admin/vue2/element-admin-v3/node_modules/hex-color-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hex-color-regex/package.json @@ -1,18 +1,47 @@ { - "name": "hex-color-regex", - "version": "1.1.0", - "description": "The best regular expression (regex) for matching hex color values from string.", - "repository": "regexps/hex-color-regex", - "author": "Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk)", - "main": "index.js", - "license": "MIT", - "scripts": { - "test": "standard && node test.js" + "_args": [ + [ + "hex-color-regex@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "hex-color-regex@1.1.0", + "_id": "hex-color-regex@1.1.0", + "_inBundle": false, + "_integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "_location": "/hex-color-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hex-color-regex@1.1.0", + "name": "hex-color-regex", + "escapedName": "hex-color-regex", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/is-color-stop" + ], + "_resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Charlike Mike Reagent", + "email": "@tunnckoCore", + "url": "http://www.tunnckocore.tk" + }, + "bugs": { + "url": "https://github.com/regexps/hex-color-regex/issues" }, "dependencies": {}, + "description": "The best regular expression (regex) for matching hex color values from string.", "devDependencies": { "mukla": "^0.4.9" }, + "homepage": "https://github.com/regexps/hex-color-regex#readme", "keywords": [ "color", "colors", @@ -28,5 +57,16 @@ "regexps", "regular", "web" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "hex-color-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/regexps/hex-color-regex.git" + }, + "scripts": { + "test": "standard && node test.js" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/highlight.js-async-webpack/package.json b/admin/vue2/element-admin-v3/node_modules/highlight.js-async-webpack/package.json index 95b5d5a3b..e6e41ea01 100644 --- a/admin/vue2/element-admin-v3/node_modules/highlight.js-async-webpack/package.json +++ b/admin/vue2/element-admin-v3/node_modules/highlight.js-async-webpack/package.json @@ -1,29 +1,59 @@ { - "name": "highlight.js-async-webpack", - "version": "1.0.4", - "description": "webpack async for highlight.js", - "main": "src/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "highlight.js-async-webpack@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "highlight.js-async-webpack@1.0.4", + "_id": "highlight.js-async-webpack@1.0.4", + "_inBundle": false, + "_integrity": "sha1-wGtnv5nwSQRdYrdW5YVbCRLsYWw=", + "_location": "/highlight.js-async-webpack", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "highlight.js-async-webpack@1.0.4", + "name": "highlight.js-async-webpack", + "escapedName": "highlight.js-async-webpack", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" }, - "repository": { - "type": "git", - "url": "git+https://github.com/CHENXCHEN/highlight.js-async-webpack.git" + "_requiredBy": [ + "/mavon-editor" + ], + "_resolved": "https://registry.npm.taobao.org/highlight.js-async-webpack/download/highlight.js-async-webpack-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "CHENXCHEN" }, "bugs": { "url": "https://github.com/CHENXCHEN/highlight.js-async-webpack/issues" }, + "dependencies": {}, + "description": "webpack async for highlight.js", + "devDependencies": { + "highlight.js": "^9.12.0", + "path": "^0.12.7" + }, "homepage": "https://github.com/CHENXCHEN/highlight.js-async-webpack", "keywords": [ "highlight.js", "async", "highlightjs" ], - "author": "CHENXCHEN", "license": "MIT", - "dependencies": {}, - "devDependencies": { - "highlight.js": "^9.12.0", - "path": "^0.12.7" - } + "main": "src/index.js", + "name": "highlight.js-async-webpack", + "repository": { + "type": "git", + "url": "git+https://github.com/CHENXCHEN/highlight.js-async-webpack.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/highlight.js/package.json b/admin/vue2/element-admin-v3/node_modules/highlight.js/package.json index b3fe3e70f..b980f4d10 100644 --- a/admin/vue2/element-admin-v3/node_modules/highlight.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/highlight.js/package.json @@ -1,16 +1,39 @@ { - "name": "highlight.js", - "description": "Syntax highlighting with language autodetection.", - "keywords": [ - "highlight", - "syntax" + "_args": [ + [ + "highlight.js@9.18.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://highlightjs.org/", - "version": "9.18.5", + "_from": "highlight.js@9.18.5", + "_id": "highlight.js@9.18.5", + "_inBundle": false, + "_integrity": "sha1-0Yo1mGfzeME41oGe38KorNXymCU=", + "_location": "/highlight.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "highlight.js@9.18.5", + "name": "highlight.js", + "escapedName": "highlight.js", + "rawSpec": "9.18.5", + "saveSpec": null, + "fetchSpec": "9.18.5" + }, + "_requiredBy": [ + "/mavon-editor" + ], + "_resolved": "https://registry.nlark.com/highlight.js/download/highlight.js-9.18.5.tgz", + "_spec": "9.18.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ivan Sagalaev", "email": "maniac@softwaremaniacs.org" }, + "bugs": { + "url": "https://github.com/highlightjs/highlight.js/issues" + }, "contributors": [ { "name": "Gidi Meir Morris", @@ -37,8 +60,9 @@ "email": "hello@joshgoebel.com" }, { - "name": "Ivan Sagalaev (original author)", - "email": "maniac@softwaremaniacs.org" + "name": "Ivan Sagalaev", + "email": "maniac@softwaremaniacs.org", + "url": "original author" }, { "name": "Jeremy Hull", @@ -1013,8 +1037,9 @@ "email": "development@arcticicestudio.com" }, { - "name": "Google Inc. (David Benjamin)", - "email": "davidben@google.com" + "name": "Google Inc.", + "email": "davidben@google.com", + "url": "David Benjamin" }, { "name": "Ahmad Awais", @@ -1109,24 +1134,8 @@ "email": "samiaab1990@gmail.com" } ], - "bugs": { - "url": "https://github.com/highlightjs/highlight.js/issues" - }, - "license": "BSD-3-Clause", - "repository": { - "type": "git", - "url": "git://github.com/highlightjs/highlight.js.git" - }, - "main": "./lib/index.js", - "scripts": { - "mocha": "mocha", - "test": "mocha --globals document test", - "postinstall": "node deprecated.js", - "test-browser": "mocha --globals document test/browser" - }, - "engines": { - "node": "*" - }, + "dependencies": {}, + "description": "Syntax highlighting with language autodetection.", "devDependencies": { "bluebird": "^3.5.5", "cli-table": "^0.3.1", @@ -1146,5 +1155,26 @@ "should": "^13.2.3", "tiny-worker": "^2.3.0" }, - "dependencies": {} -} \ No newline at end of file + "engines": { + "node": "*" + }, + "homepage": "https://highlightjs.org/", + "keywords": [ + "highlight", + "syntax" + ], + "license": "BSD-3-Clause", + "main": "./lib/index.js", + "name": "highlight.js", + "repository": { + "type": "git", + "url": "git://github.com/highlightjs/highlight.js.git" + }, + "scripts": { + "mocha": "mocha", + "postinstall": "node deprecated.js", + "test": "mocha --globals document test", + "test-browser": "mocha --globals document test/browser" + }, + "version": "9.18.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/hmac-drbg/package.json b/admin/vue2/element-admin-v3/node_modules/hmac-drbg/package.json index b95d39111..f08c4428e 100644 --- a/admin/vue2/element-admin-v3/node_modules/hmac-drbg/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hmac-drbg/package.json @@ -1,32 +1,63 @@ { - "name": "hmac-drbg", - "version": "1.0.1", - "description": "Deterministic random bit generator (hmac)", - "main": "lib/hmac-drbg.js", - "scripts": { - "test": "mocha --reporter=spec test/*-test.js" + "_args": [ + [ + "hmac-drbg@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "hmac-drbg@1.0.1", + "_id": "hmac-drbg@1.0.1", + "_inBundle": false, + "_integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "_location": "/hmac-drbg", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hmac-drbg@1.0.1", + "name": "hmac-drbg", + "escapedName": "hmac-drbg", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/hmac-drbg.git" + "_requiredBy": [ + "/elliptic" + ], + "_resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "bugs": { + "url": "https://github.com/indutny/hmac-drbg/issues" + }, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + }, + "description": "Deterministic random bit generator (hmac)", + "devDependencies": { + "mocha": "^3.2.0" + }, + "homepage": "https://github.com/indutny/hmac-drbg#readme", "keywords": [ "hmac", "drbg", "prng" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/hmac-drbg/issues" + "main": "lib/hmac-drbg.js", + "name": "hmac-drbg", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/hmac-drbg.git" }, - "homepage": "https://github.com/indutny/hmac-drbg#readme", - "devDependencies": { - "mocha": "^3.2.0" + "scripts": { + "test": "mocha --reporter=spec test/*-test.js" }, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/home-or-tmp/package.json b/admin/vue2/element-admin-v3/node_modules/home-or-tmp/package.json index 5926f323c..54170abf2 100644 --- a/admin/vue2/element-admin-v3/node_modules/home-or-tmp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/home-or-tmp/package.json @@ -1,23 +1,56 @@ { - "name": "home-or-tmp", - "version": "2.0.0", - "description": "Get the user home directory with fallback to the system temp directory", - "license": "MIT", - "repository": "sindresorhus/home-or-tmp", + "_args": [ + [ + "home-or-tmp@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "home-or-tmp@2.0.0", + "_id": "home-or-tmp@2.0.0", + "_inBundle": false, + "_integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "_location": "/home-or-tmp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "home-or-tmp@2.0.0", + "name": "home-or-tmp", + "escapedName": "home-or-tmp", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/babel-register" + ], + "_resolved": "https://registry.nlark.com/home-or-tmp/download/home-or-tmp-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/home-or-tmp/issues" + }, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "description": "Get the user home directory with fallback to the system temp directory", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/home-or-tmp#readme", "keywords": [ "user", "home", @@ -33,11 +66,14 @@ "graceful", "userprofile" ], - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "license": "MIT", + "name": "home-or-tmp", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/home-or-tmp.git" }, - "devDependencies": { - "ava": "0.0.4" - } + "scripts": { + "test": "node test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/hoopy/package.json b/admin/vue2/element-admin-v3/node_modules/hoopy/package.json index 0340c6517..8d9b836e0 100644 --- a/admin/vue2/element-admin-v3/node_modules/hoopy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hoopy/package.json @@ -1,8 +1,62 @@ { - "name": "hoopy", - "version": "0.1.4", - "license": "MIT", + "_args": [ + [ + "hoopy@0.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "hoopy@0.1.4", + "_id": "hoopy@0.1.4", + "_inBundle": false, + "_integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", + "_location": "/hoopy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hoopy@0.1.4", + "name": "hoopy", + "escapedName": "hoopy", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" + }, + "_requiredBy": [ + "/bfj" + ], + "_resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "_spec": "0.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Phil Booth", + "email": "pmbooth@gmail.com", + "url": "https://philbooth.me/" + }, + "bugs": { + "url": "https://gitlab.com/philbooth/hoopy/issues" + }, + "contributors": [ + { + "name": "Phil Booth", + "email": "pmbooth@gmail.com", + "url": "https://philbooth.me/" + }, + { + "name": "James M. Greene", + "url": "https://github.com/JamesMGreene" + } + ], "description": "Like an array, but rounder.", + "devDependencies": { + "chai": "^4.1.2", + "eslint": "^3.19.0", + "mocha": "^5.2.0", + "please-release-me": "^2.0.2" + }, + "engines": { + "node": ">= 6.0.0" + }, + "homepage": "https://gitlab.com/philbooth/hoopy#readme", "keywords": [ "data", "structure", @@ -12,28 +66,17 @@ "extends", "proxy" ], - "author": "Phil Booth (https://philbooth.me/)", + "license": "MIT", "main": "index.js", - "engines": { - "node": ">= 6.0.0" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --es_staging --ui tdd test.js", - "release": "release" - }, + "name": "hoopy", "repository": { "type": "git", "url": "git+https://gitlab.com/philbooth/hoopy.git" }, - "homepage": "https://gitlab.com/philbooth/hoopy#readme", - "bugs": { - "url": "https://gitlab.com/philbooth/hoopy/issues" + "scripts": { + "lint": "eslint .", + "release": "release", + "test": "mocha --es_staging --ui tdd test.js" }, - "devDependencies": { - "chai": "^4.1.2", - "eslint": "^3.19.0", - "mocha": "^5.2.0", - "please-release-me": "^2.0.2" - } + "version": "0.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/hosted-git-info/package.json b/admin/vue2/element-admin-v3/node_modules/hosted-git-info/package.json index 8cc554c3e..2bf096ee1 100644 --- a/admin/vue2/element-admin-v3/node_modules/hosted-git-info/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hosted-git-info/package.json @@ -1,40 +1,73 @@ { - "name": "hosted-git-info", - "version": "2.8.9", + "_args": [ + [ + "hosted-git-info@2.8.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "hosted-git-info@2.8.9", + "_id": "hosted-git-info@2.8.9", + "_inBundle": false, + "_integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", + "_location": "/hosted-git-info", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hosted-git-info@2.8.9", + "name": "hosted-git-info", + "escapedName": "hosted-git-info", + "rawSpec": "2.8.9", + "saveSpec": null, + "fetchSpec": "2.8.9" + }, + "_requiredBy": [ + "/normalize-package-data" + ], + "_resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz", + "_spec": "2.8.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org" + }, + "bugs": { + "url": "https://github.com/npm/hosted-git-info/issues" + }, "description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab", - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/hosted-git-info.git" + "devDependencies": { + "standard": "^11.0.1", + "standard-version": "^4.4.0", + "tap": "^12.7.0" }, + "files": [ + "index.js", + "git-host.js", + "git-host-info.js" + ], + "homepage": "https://github.com/npm/hosted-git-info", "keywords": [ "git", "github", "bitbucket", "gitlab" ], - "author": "Rebecca Turner (http://re-becca.org)", "license": "ISC", - "bugs": { - "url": "https://github.com/npm/hosted-git-info/issues" + "main": "index.js", + "name": "hosted-git-info", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/hosted-git-info.git" }, - "homepage": "https://github.com/npm/hosted-git-info", "scripts": { - "prerelease": "npm t", "postrelease": "npm publish --tag=ancient-legacy-fixes && git push --follow-tags", "posttest": "standard", + "prerelease": "npm t", "release": "standard-version -s", - "test:coverage": "tap --coverage-report=html -J --coverage=90 --no-esm test/*.js", - "test": "tap -J --coverage=90 --no-esm test/*.js" - }, - "devDependencies": { - "standard": "^11.0.1", - "standard-version": "^4.4.0", - "tap": "^12.7.0" + "test": "tap -J --coverage=90 --no-esm test/*.js", + "test:coverage": "tap --coverage-report=html -J --coverage=90 --no-esm test/*.js" }, - "files": [ - "index.js", - "git-host.js", - "git-host-info.js" - ] + "version": "2.8.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/hpack.js/package.json b/admin/vue2/element-admin-v3/node_modules/hpack.js/package.json index 35f8d4926..8446626ed 100644 --- a/admin/vue2/element-admin-v3/node_modules/hpack.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hpack.js/package.json @@ -1,15 +1,50 @@ { - "name": "hpack.js", - "version": "2.1.6", - "description": "HPACK implementation", - "main": "lib/hpack.js", - "scripts": { - "test": "mocha test/*-test.js" + "_args": [ + [ + "hpack.js@2.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "hpack.js@2.1.6", + "_id": "hpack.js@2.1.6", + "_inBundle": false, + "_integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "_location": "/hpack.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hpack.js@2.1.6", + "name": "hpack.js", + "escapedName": "hpack.js", + "rawSpec": "2.1.6", + "saveSpec": null, + "fetchSpec": "2.1.6" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/hpack.js.git" + "_requiredBy": [ + "/spdy-transport" + ], + "_resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "_spec": "2.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "bugs": { + "url": "https://github.com/indutny/hpack.js/issues" + }, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "description": "HPACK implementation", + "devDependencies": { + "mocha": "^2.2.5" + }, + "homepage": "https://github.com/indutny/hpack.js#readme", "keywords": [ "HPACK", "HTTP2", @@ -17,19 +52,15 @@ "decompress", "headers" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/hpack.js/issues" + "main": "lib/hpack.js", + "name": "hpack.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/hpack.js.git" }, - "homepage": "https://github.com/indutny/hpack.js#readme", - "devDependencies": { - "mocha": "^2.2.5" + "scripts": { + "test": "mocha test/*-test.js" }, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } + "version": "2.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/hsl-regex/package.json b/admin/vue2/element-admin-v3/node_modules/hsl-regex/package.json index f83ed89fa..cd371a3be 100644 --- a/admin/vue2/element-admin-v3/node_modules/hsl-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hsl-regex/package.json @@ -1,19 +1,48 @@ { - "name": "hsl-regex", + "_args": [ + [ + "hsl-regex@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "hsl-regex@1.0.0", + "_id": "hsl-regex@1.0.0", + "_inBundle": false, + "_integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "_location": "/hsl-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hsl-regex@1.0.0", + "name": "hsl-regex", + "escapedName": "hsl-regex", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/is-color-stop" + ], + "_resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John Otander" + }, + "bugs": { + "url": "https://github.com/regexps/hsl-regex/issues" + }, + "dependencies": {}, "description": "Regex for matching HSL colors.", - "author": "John Otander", - "version": "1.0.0", - "main": "index.js", + "devDependencies": { + "mocha": "*" + }, "directories": { "test": "test" }, - "scripts": { - "test": "mocha test" - }, - "repository": { - "type": "git", - "url": "https://github.com/regexps/hsl-regex.git" - }, + "homepage": "https://github.com/regexps/hsl-regex", "keywords": [ "hsl", "regex", @@ -22,12 +51,14 @@ "css" ], "license": "MIT", - "bugs": { - "url": "https://github.com/regexps/hsl-regex/issues" + "main": "index.js", + "name": "hsl-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/regexps/hsl-regex.git" }, - "homepage": "https://github.com/regexps/hsl-regex", - "dependencies": {}, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha test" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/hsla-regex/package.json b/admin/vue2/element-admin-v3/node_modules/hsla-regex/package.json index 1a5860b13..7e4b88520 100644 --- a/admin/vue2/element-admin-v3/node_modules/hsla-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/hsla-regex/package.json @@ -1,19 +1,48 @@ { - "name": "hsla-regex", + "_args": [ + [ + "hsla-regex@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "hsla-regex@1.0.0", + "_id": "hsla-regex@1.0.0", + "_inBundle": false, + "_integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "_location": "/hsla-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "hsla-regex@1.0.0", + "name": "hsla-regex", + "escapedName": "hsla-regex", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/is-color-stop" + ], + "_resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John Otander" + }, + "bugs": { + "url": "https://github.com/regexps/hsla-regex/issues" + }, + "dependencies": {}, "description": "Regex for matching HSLA colors.", - "author": "John Otander", - "version": "1.0.0", - "main": "index.js", + "devDependencies": { + "mocha": "*" + }, "directories": { "test": "test" }, - "scripts": { - "test": "mocha test" - }, - "repository": { - "type": "git", - "url": "https://github.com/regexps/hsla-regex.git" - }, + "homepage": "https://github.com/regexps/hsla-regex", "keywords": [ "hsla", "regex", @@ -22,12 +51,14 @@ "css" ], "license": "MIT", - "bugs": { - "url": "https://github.com/regexps/hsla-regex/issues" + "main": "index.js", + "name": "hsla-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/regexps/hsla-regex.git" }, - "homepage": "https://github.com/regexps/hsla-regex", - "dependencies": {}, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha test" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/html-entities/package.json b/admin/vue2/element-admin-v3/node_modules/html-entities/package.json index d311e9f0e..6be11f335 100644 --- a/admin/vue2/element-admin-v3/node_modules/html-entities/package.json +++ b/admin/vue2/element-admin-v3/node_modules/html-entities/package.json @@ -1,21 +1,41 @@ { - "name": "html-entities", - "version": "1.4.0", - "description": "Faster HTML entities encode/decode library.", - "keywords": [ - "html", - "html entities", - "html entities encode", - "html entities decode", - "entities", - "entities encode", - "entities decode" + "_args": [ + [ + "html-entities@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "html-entities@1.4.0", + "_id": "html-entities@1.4.0", + "_inBundle": false, + "_integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=", + "_location": "/html-entities", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "html-entities@1.4.0", + "name": "html-entities", + "escapedName": "html-entities", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031553039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Marat Dulin", "email": "mdevils@yandex.ru" }, + "bugs": { + "url": "https://github.com/mdevils/node-html-entities/issues" + }, "dependencies": {}, + "description": "Faster HTML entities encode/decode library.", "devDependencies": { "@types/benchmark": "^2.1.0", "@types/chai": "^4.2.11", @@ -30,24 +50,36 @@ "ts-node": "^8.9.1", "typescript": "^3.8.3" }, + "files": [ + "index.js", + "lib", + "LICENSE" + ], + "homepage": "https://github.com/mdevils/node-html-entities#readme", + "keywords": [ + "html", + "html entities", + "html entities encode", + "html entities decode", + "entities", + "entities encode", + "entities decode" + ], + "license": "MIT", + "main": "./lib/index.js", + "name": "html-entities", "repository": { "type": "git", - "url": "https://github.com/mdevils/node-html-entities.git" + "url": "git+https://github.com/mdevils/node-html-entities.git" }, - "main": "./lib/index.js", - "typings": "./lib/index.d.ts", - "types": "./lib/index.d.ts", "scripts": { - "test": "mocha --recursive -r ts-node/register test/**/*.ts", "benchmark": "ts-node benchmark/benchmark", - "travis": "yarn test", "build": "tsc", - "prepublishOnly": "yarn build" + "prepublishOnly": "yarn build", + "test": "mocha --recursive -r ts-node/register test/**/*.ts", + "travis": "yarn test" }, - "files": [ - "index.js", - "lib", - "LICENSE" - ], - "license": "MIT" + "types": "./lib/index.d.ts", + "typings": "./lib/index.d.ts", + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/html-minifier/node_modules/commander/package.json b/admin/vue2/element-admin-v3/node_modules/html-minifier/node_modules/commander/package.json index d3a1b24b5..92f7d4e58 100644 --- a/admin/vue2/element-admin-v3/node_modules/html-minifier/node_modules/commander/package.json +++ b/admin/vue2/element-admin-v3/node_modules/html-minifier/node_modules/commander/package.json @@ -1,37 +1,73 @@ { - "name": "commander", - "version": "2.17.1", + "_args": [ + [ + "commander@2.17.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "commander@2.17.1", + "_id": "commander@2.17.1", + "_inBundle": false, + "_integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "_location": "/html-minifier/commander", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "commander@2.17.1", + "name": "commander", + "escapedName": "commander", + "rawSpec": "2.17.1", + "saveSpec": null, + "fetchSpec": "2.17.1" + }, + "_requiredBy": [ + "/html-minifier" + ], + "_resolved": "https://registry.nlark.com/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "_spec": "2.17.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/tj/commander.js/issues" + }, + "dependencies": {}, "description": "the complete solution for node.js command-line programs", + "devDependencies": { + "@types/node": "^10.5.7", + "eslint": "^5.3.0", + "should": "^13.2.3", + "sinon": "^6.1.4", + "standard": "^11.0.1", + "typescript": "^2.9.2" + }, + "files": [ + "index.js", + "typings/index.d.ts" + ], + "homepage": "https://github.com/tj/commander.js#readme", "keywords": [ "commander", "command", "option", "parser" ], - "author": "TJ Holowaychuk ", "license": "MIT", + "main": "index", + "name": "commander", "repository": { "type": "git", - "url": "https://github.com/tj/commander.js.git" + "url": "git+https://github.com/tj/commander.js.git" }, "scripts": { "lint": "eslint index.js", "test": "node test/run.js && npm run test-typings", "test-typings": "tsc -p tsconfig.json" }, - "main": "index", - "files": [ - "index.js", - "typings/index.d.ts" - ], - "dependencies": {}, - "devDependencies": { - "@types/node": "^10.5.7", - "eslint": "^5.3.0", - "should": "^13.2.3", - "sinon": "^6.1.4", - "standard": "^11.0.1", - "typescript": "^2.9.2" - }, - "typings": "typings/index.d.ts" + "typings": "typings/index.d.ts", + "version": "2.17.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/html-minifier/package.json b/admin/vue2/element-admin-v3/node_modules/html-minifier/package.json index 430b257df..c9d740976 100644 --- a/admin/vue2/element-admin-v3/node_modules/html-minifier/package.json +++ b/admin/vue2/element-admin-v3/node_modules/html-minifier/package.json @@ -1,7 +1,91 @@ { - "name": "html-minifier", + "_args": [ + [ + "html-minifier@3.5.21", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "html-minifier@3.5.21", + "_id": "html-minifier@3.5.21", + "_inBundle": false, + "_integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", + "_location": "/html-minifier", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "html-minifier@3.5.21", + "name": "html-minifier", + "escapedName": "html-minifier", + "rawSpec": "3.5.21", + "saveSpec": null, + "fetchSpec": "3.5.21" + }, + "_requiredBy": [ + "/html-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "_spec": "3.5.21", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Juriy \"kangax\" Zaytsev" + }, + "benchmarkDependencies": { + "brotli": "1.3.x", + "chalk": "2.4.x", + "cli-table": "0.3.x", + "lzma": "2.3.x", + "minimize": "2.2.x", + "progress": "2.0.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "bugs": { + "url": "https://github.com/kangax/html-minifier/issues" + }, + "contributors": [ + { + "name": "Gilmore Davidson", + "url": "https://github.com/gilmoreorless" + }, + { + "name": "Hugo Wetterberg", + "email": "hugo@wetterberg.nu" + }, + { + "name": "Zoltan Frombach", + "email": "tssajo@gmail.com" + } + ], + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, "description": "Highly configurable, well-tested, JavaScript-based HTML minifier.", - "version": "3.5.21", + "devDependencies": { + "grunt": "1.0.x", + "grunt-browserify": "5.3.x", + "grunt-contrib-uglify": "3.4.x", + "gruntify-eslint": "4.0.x", + "phantomjs-prebuilt": "2.1.x", + "qunit": "2.x" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "src/*.js", + "cli.js", + "sample-cli-config-file.conf" + ], + "homepage": "https://kangax.github.io/html-minifier/", "keywords": [ "cli", "compress", @@ -23,64 +107,27 @@ "uglifier", "uglify" ], - "homepage": "https://kangax.github.io/html-minifier/", - "author": "Juriy \"kangax\" Zaytsev", - "maintainers": [ - "Alex Lam ", - "Juriy Zaytsev (http://perfectionkills.com/)" - ], - "contributors": [ - "Gilmore Davidson (https://github.com/gilmoreorless)", - "Hugo Wetterberg ", - "Zoltan Frombach " - ], "license": "MIT", - "bin": { - "html-minifier": "./cli.js" - }, "main": "src/htmlminifier.js", + "maintainers": [ + { + "name": "Alex Lam", + "email": "alexlamsl@gmail.com" + }, + { + "name": "Juriy Zaytsev", + "email": "kangax@gmail.com", + "url": "http://perfectionkills.com/" + } + ], + "name": "html-minifier", "repository": { "type": "git", "url": "git+https://github.com/kangax/html-minifier.git" }, - "bugs": { - "url": "https://github.com/kangax/html-minifier/issues" - }, - "engines": { - "node": ">=4" - }, "scripts": { "dist": "grunt dist", "test": "grunt test" }, - "dependencies": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "devDependencies": { - "grunt": "1.0.x", - "grunt-browserify": "5.3.x", - "grunt-contrib-uglify": "3.4.x", - "gruntify-eslint": "4.0.x", - "phantomjs-prebuilt": "2.1.x", - "qunit": "2.x" - }, - "benchmarkDependencies": { - "brotli": "1.3.x", - "chalk": "2.4.x", - "cli-table": "0.3.x", - "lzma": "2.3.x", - "minimize": "2.2.x", - "progress": "2.0.x" - }, - "files": [ - "src/*.js", - "cli.js", - "sample-cli-config-file.conf" - ] + "version": "3.5.21" } diff --git a/admin/vue2/element-admin-v3/node_modules/html-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/html-webpack-plugin/package.json index d00f82a6c..9ab163f29 100644 --- a/admin/vue2/element-admin-v3/node_modules/html-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/html-webpack-plugin/package.json @@ -1,28 +1,56 @@ { - "name": "html-webpack-plugin", - "version": "4.0.0-alpha", - "license": "MIT", - "description": "Simplifies creation of HTML files to serve your webpack bundles", - "author": "Charles Blaxland (https://github.com/ampedandwired)", - "main": "index.js", - "files": [ - "lib/", - "index.js", - "default_index.ejs" + "_args": [ + [ + "html-webpack-plugin@4.0.0-alpha", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "pretest": "semistandard", - "posttest": "tsc --pretty", - "commit": "git-cz", - "build-examples": "node examples/build-examples.js", - "test": "jasmine", - "release": "standard-version" + "_development": true, + "_from": "html-webpack-plugin@4.0.0-alpha", + "_id": "html-webpack-plugin@4.0.0-alpha", + "_inBundle": false, + "_integrity": "sha1-sse21IhaIJyZnfzj/7mGbiyMDqo=", + "_location": "/html-webpack-plugin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "html-webpack-plugin@4.0.0-alpha", + "name": "html-webpack-plugin", + "escapedName": "html-webpack-plugin", + "rawSpec": "4.0.0-alpha", + "saveSpec": null, + "fetchSpec": "4.0.0-alpha" }, - "semistandard": { - "ignore": [ - "examples/*/dist/**/*.*" - ] + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-4.0.0-alpha.tgz", + "_spec": "4.0.0-alpha", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Charles Blaxland", + "email": "charles.blaxland@gmail.com", + "url": "https://github.com/ampedandwired" + }, + "bugs": { + "url": "https://github.com/jantimon/html-webpack-plugin/issues" }, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + }, + "dependencies": { + "@types/tapable": "1.0.2", + "html-minifier": "^3.2.3", + "loader-utils": "^1.1.0", + "lodash": "^4.17.10", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "util.promisify": "1.0.0" + }, + "description": "Simplifies creation of HTML files to serve your webpack bundles", "devDependencies": { "@types/node": "10.1.1", "appcache-webpack-plugin": "^1.3.0", @@ -48,33 +76,43 @@ "webpack-cli": "2.0.12", "webpack-recompilation-simulator": "^1.3.0" }, - "dependencies": { - "@types/tapable": "1.0.2", - "html-minifier": "^3.2.3", - "loader-utils": "^1.1.0", - "lodash": "^4.17.10", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "util.promisify": "1.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" + "engines": { + "node": ">=6.9" }, + "files": [ + "lib/", + "index.js", + "default_index.ejs" + ], + "homepage": "https://github.com/jantimon/html-webpack-plugin", "keywords": [ "webpack", "plugin", "html", "html-webpack-plugin" ], - "bugs": "https://github.com/jantimon/html-webpack-plugin/issues", - "homepage": "https://github.com/jantimon/html-webpack-plugin", - "repository": "https://github.com/jantimon/html-webpack-plugin.git", - "engines": { - "node": ">=6.9" + "license": "MIT", + "main": "index.js", + "name": "html-webpack-plugin", + "peerDependencies": { + "webpack": "^4.0.0" }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - } + "repository": { + "type": "git", + "url": "git+https://github.com/jantimon/html-webpack-plugin.git" + }, + "scripts": { + "build-examples": "node examples/build-examples.js", + "commit": "git-cz", + "posttest": "tsc --pretty", + "pretest": "semistandard", + "release": "standard-version", + "test": "jasmine" + }, + "semistandard": { + "ignore": [ + "examples/*/dist/**/*.*" + ] + }, + "version": "4.0.0-alpha" } diff --git a/admin/vue2/element-admin-v3/node_modules/htmlparser2/package.json b/admin/vue2/element-admin-v3/node_modules/htmlparser2/package.json index 9b3a63687..3ad04115b 100644 --- a/admin/vue2/element-admin-v3/node_modules/htmlparser2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/htmlparser2/package.json @@ -1,74 +1,110 @@ { + "_args": [ + [ + "htmlparser2@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "htmlparser2@6.1.0", + "_id": "htmlparser2@6.1.0", + "_inBundle": false, + "_integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=", + "_location": "/htmlparser2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "htmlparser2@6.1.0", "name": "htmlparser2", - "description": "Fast & forgiving HTML/XML parser", - "version": "6.1.0", - "author": "Felix Boehm ", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "sideEffects": false, - "keywords": [ - "html", - "parser", - "streams", - "xml", - "dom", - "rss", - "feed", - "atom" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/htmlparser2.git" - }, - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "scripts": { - "test": "jest --coverage", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint src", - "lint:prettier": "npm run format:prettier:raw -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run format:prettier:raw -- --write", - "format:prettier:raw": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc", - "prepare": "npm run build" - }, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - }, - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^14.0.5", - "@typescript-eslint/eslint-plugin": "^4.9.1", - "@typescript-eslint/parser": "^4.9.1", - "eslint": "^7.15.0", - "eslint-config-prettier": "^8.1.0", - "jest": "^26.0.1", - "prettier": "^2.1.1", - "ts-jest": "^26.0.0", - "typescript": "^4.0.2" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4 + "escapedName": "htmlparser2", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/renderkid" + ], + "_resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1617914940336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/htmlparser2/issues" + }, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "description": "Fast & forgiving HTML/XML parser", + "devDependencies": { + "@types/jest": "^26.0.0", + "@types/node": "^14.0.5", + "@typescript-eslint/eslint-plugin": "^4.9.1", + "@typescript-eslint/parser": "^4.9.1", + "eslint": "^7.15.0", + "eslint-config-prettier": "^8.1.0", + "jest": "^26.0.1", + "prettier": "^2.1.1", + "ts-jest": "^26.0.0", + "typescript": "^4.0.2" + }, + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*" + ], + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ], + "homepage": "https://github.com/fb55/htmlparser2#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "keywords": [ + "html", + "parser", + "streams", + "xml", + "dom", + "rss", + "feed", + "atom" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "htmlparser2", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/htmlparser2.git" + }, + "scripts": { + "build": "tsc", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run format:prettier:raw -- --write", + "format:prettier:raw": "prettier '**/*.{ts,md,json,yml}'", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint src", + "lint:prettier": "npm run format:prettier:raw -- --check", + "prepare": "npm run build", + "test": "jest --coverage" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-deceiver/package.json b/admin/vue2/element-admin-v3/node_modules/http-deceiver/package.json index 7866085ed..65e0e84af 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-deceiver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-deceiver/package.json @@ -1,30 +1,61 @@ { - "name": "http-deceiver", - "version": "1.2.7", - "description": "Deceive HTTP parser", - "main": "lib/deceiver.js", - "scripts": { - "test": "mocha --reporter=spec test/*-test.js" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/http-deceiver.git" + "_args": [ + [ + "http-deceiver@1.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "http-deceiver@1.2.7", + "_id": "http-deceiver@1.2.7", + "_inBundle": false, + "_integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "_location": "/http-deceiver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-deceiver@1.2.7", + "name": "http-deceiver", + "escapedName": "http-deceiver", + "rawSpec": "1.2.7", + "saveSpec": null, + "fetchSpec": "1.2.7" }, - "keywords": [ - "http", - "net", - "deceive" + "_requiredBy": [ + "/spdy" ], - "author": "Fedor Indutny ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "_spec": "1.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, "bugs": { "url": "https://github.com/indutny/http-deceiver/issues" }, - "homepage": "https://github.com/indutny/http-deceiver#readme", + "description": "Deceive HTTP parser", "devDependencies": { "handle-thing": "^1.0.1", "mocha": "^2.2.5", "readable-stream": "^2.0.1", "stream-pair": "^1.0.0" - } + }, + "homepage": "https://github.com/indutny/http-deceiver#readme", + "keywords": [ + "http", + "net", + "deceive" + ], + "license": "MIT", + "main": "lib/deceiver.js", + "name": "http-deceiver", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/http-deceiver.git" + }, + "scripts": { + "test": "mocha --reporter=spec test/*-test.js" + }, + "version": "1.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/inherits/package.json b/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/inherits/package.json index 7cf62b95c..d15d82a83 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/inherits/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/inherits/package.json @@ -1,7 +1,45 @@ { - "name": "inherits", + "_args": [ + [ + "inherits@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "inherits@2.0.3", + "_id": "inherits@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "_location": "/http-errors/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.3", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", + "devDependencies": { + "tap": "^7.1.0" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", "class", @@ -12,18 +50,15 @@ "browser", "browserify" ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, "scripts": { "test": "node test" }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/statuses/package.json b/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/statuses/package.json index 7595e2bad..c4574138e 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/statuses/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-errors/node_modules/statuses/package.json @@ -1,24 +1,47 @@ { - "name": "statuses", - "description": "HTTP status utility", - "version": "1.5.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "statuses@1.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/statuses", - "license": "MIT", - "keywords": [ - "http", - "status", - "code" + "_from": "statuses@1.5.0", + "_id": "statuses@1.5.0", + "_inBundle": false, + "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "_location": "/http-errors/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "statuses@1.5.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "1.5.0", + "saveSpec": null, + "fetchSpec": "1.5.0" + }, + "_requiredBy": [ + "/http-errors" ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" + "_resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "_spec": "1.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], + "description": "HTTP status utility", "devDependencies": { "csv-parse": "1.2.4", "eslint": "4.19.1", @@ -36,6 +59,24 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, "scripts": { "build": "node scripts/build.js", "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", @@ -44,5 +85,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "update": "npm run fetch && npm run build" - } + }, + "version": "1.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-errors/package.json b/admin/vue2/element-admin-v3/node_modules/http-errors/package.json index 96cd630d0..9c2a04ba6 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-errors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-errors/package.json @@ -1,14 +1,52 @@ { - "name": "http-errors", - "description": "Create HTTP error objects", - "version": "1.7.2", - "author": "Jonathan Ong (http://jongleberry.com)", + "_args": [ + [ + "http-errors@1.7.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "http-errors@1.7.2", + "_id": "http-errors@1.7.2", + "_inBundle": false, + "_integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "_location": "/http-errors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-errors@1.7.2", + "name": "http-errors", + "escapedName": "http-errors", + "rawSpec": "1.7.2", + "saveSpec": null, + "fetchSpec": "1.7.2" + }, + "_requiredBy": [ + "/body-parser", + "/raw-body", + "/send" + ], + "_resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407676273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", + "_spec": "1.7.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/jshttp/http-errors/issues" + }, "contributors": [ - "Alan Plum ", - "Douglas Christopher Wilson " + { + "name": "Alan Plum", + "email": "me@pluma.io" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "license": "MIT", - "repository": "jshttp/http-errors", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -16,6 +54,7 @@ "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, + "description": "Create HTTP error objects", "devDependencies": { "eslint": "5.13.0", "eslint-config-standard": "12.0.0", @@ -30,20 +69,28 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "index.js", + "HISTORY.md", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/jshttp/http-errors#readme", + "keywords": [ + "http", + "error" + ], + "license": "MIT", + "name": "http-errors", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/http-errors.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md . && node ./scripts/lint-readme-list.js", "test": "mocha --reporter spec --bail", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" }, - "keywords": [ - "http", - "error" - ], - "files": [ - "index.js", - "HISTORY.md", - "LICENSE", - "README.md" - ] + "version": "1.7.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-parser-js/package.json b/admin/vue2/element-admin-v3/node_modules/http-parser-js/package.json index 05636c05b..95d7f7a19 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-parser-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-parser-js/package.json @@ -1,28 +1,75 @@ { - "name": "http-parser-js", - "version": "0.5.3", - "description": "A pure JS HTTP parser for node.", - "main": "http-parser.js", - "scripts": { - "test": "python tests/test.py && node tests/iojs/test-http-parser-durability.js", - "testv12": "python tests/test.py --node-args=\"--http-parser=legacy\" && node --http-parser=legacy tests/iojs/test-http-parser-durability.js" + "_args": [ + [ + "http-parser-js@0.5.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "http-parser-js@0.5.3", + "_id": "http-parser-js@0.5.3", + "_inBundle": false, + "_integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=", + "_location": "/http-parser-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-parser-js@0.5.3", + "name": "http-parser-js", + "escapedName": "http-parser-js", + "rawSpec": "0.5.3", + "saveSpec": null, + "fetchSpec": "0.5.3" }, - "repository": { - "type": "git", - "url": "git://github.com/creationix/http-parser-js.git" + "_requiredBy": [ + "/websocket-driver" + ], + "_resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz", + "_spec": "0.5.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tim Caswell", + "url": "https://github.com/creationix" }, + "bugs": { + "url": "https://github.com/creationix/http-parser-js/issues" + }, + "contributors": [ + { + "name": "Jimb Esser", + "url": "https://github.com/Jimbly" + }, + { + "name": "Lawrence Rowe", + "url": "https://github.com/lrowe" + }, + { + "name": "Jan Schär", + "url": "https://github.com/jscissr" + }, + { + "name": "Paul Rütter", + "url": "https://github.com/paulrutter" + } + ], + "description": "A pure JS HTTP parser for node.", "files": [ "http-parser.js" ], + "homepage": "https://github.com/creationix/http-parser-js#readme", "keywords": [ "http" ], - "author": "Tim Caswell (https://github.com/creationix)", - "contributors": [ - "Jimb Esser (https://github.com/Jimbly)", - "Lawrence Rowe (https://github.com/lrowe)", - "Jan Schär (https://github.com/jscissr)", - "Paul Rütter (https://github.com/paulrutter)" - ], - "license": "MIT" + "license": "MIT", + "main": "http-parser.js", + "name": "http-parser-js", + "repository": { + "type": "git", + "url": "git://github.com/creationix/http-parser-js.git" + }, + "scripts": { + "test": "python tests/test.py && node tests/iojs/test-http-parser-durability.js", + "testv12": "python tests/test.py --node-args=\"--http-parser=legacy\" && node --http-parser=legacy tests/iojs/test-http-parser-durability.js" + }, + "version": "0.5.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-proxy-middleware/package.json b/admin/vue2/element-admin-v3/node_modules/http-proxy-middleware/package.json index 4cb71bc9f..cb9514f79 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-proxy-middleware/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-proxy-middleware/package.json @@ -1,45 +1,50 @@ { - "name": "http-proxy-middleware", - "version": "0.19.1", - "description": "The one-liner node.js proxy middleware for connect, express and browser-sync", - "main": "index.js", - "files": [ - "index.js", - "lib" + "_args": [ + [ + "http-proxy-middleware@0.19.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "clean": "rm -rf coverage", - "lint": "prettier \"**/*.{js,md}\" --list-different", - "lint:fix": "prettier \"**/*.{js,md}\" --write", - "test": "npm run lint && mocha --recursive --colors --reporter spec", - "cover": "npm run clean && istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive", - "coveralls": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --recursive --reporter spec && istanbul-coveralls && npm run clean" - }, - "repository": { - "type": "git", - "url": "https://github.com/chimurai/http-proxy-middleware.git" + "_from": "http-proxy-middleware@0.19.1", + "_id": "http-proxy-middleware@0.19.1", + "_inBundle": false, + "_integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "_location": "/http-proxy-middleware", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-proxy-middleware@0.19.1", + "name": "http-proxy-middleware", + "escapedName": "http-proxy-middleware", + "rawSpec": "0.19.1", + "saveSpec": null, + "fetchSpec": "0.19.1" }, - "keywords": [ - "reverse", - "proxy", - "middleware", - "http", - "https", - "connect", - "express", - "browser-sync", - "gulp", - "grunt-contrib-connect", - "websocket", - "ws", - "cors" + "_requiredBy": [ + "/webpack-dev-server" ], - "author": "Steven Chim", - "license": "MIT", + "_resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", + "_spec": "0.19.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Steven Chim" + }, "bugs": { "url": "https://github.com/chimurai/http-proxy-middleware/issues" }, - "homepage": "https://github.com/chimurai/http-proxy-middleware", + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "description": "The one-liner node.js proxy middleware for connect, express and browser-sync", "devDependencies": { "@commitlint/cli": "^7.2.1", "@commitlint/config-conventional": "^7.1.2", @@ -58,24 +63,49 @@ "prettier": "^1.15.2", "ws": "^6.1.2" }, - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, "engines": { "node": ">=4.0.0" }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/chimurai/http-proxy-middleware", "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", "pre-commit": "precise-commits" } }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - } + "keywords": [ + "reverse", + "proxy", + "middleware", + "http", + "https", + "connect", + "express", + "browser-sync", + "gulp", + "grunt-contrib-connect", + "websocket", + "ws", + "cors" + ], + "license": "MIT", + "main": "index.js", + "name": "http-proxy-middleware", + "repository": { + "type": "git", + "url": "git+https://github.com/chimurai/http-proxy-middleware.git" + }, + "scripts": { + "clean": "rm -rf coverage", + "cover": "npm run clean && istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive", + "coveralls": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --recursive --reporter spec && istanbul-coveralls && npm run clean", + "lint": "prettier \"**/*.{js,md}\" --list-different", + "lint:fix": "prettier \"**/*.{js,md}\" --write", + "test": "npm run lint && mocha --recursive --colors --reporter spec" + }, + "version": "0.19.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-proxy/package.json b/admin/vue2/element-admin-v3/node_modules/http-proxy/package.json index 9fe81a26d..b81ec67cd 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-proxy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-proxy/package.json @@ -1,21 +1,45 @@ { - "name": "http-proxy", - "version": "1.18.1", - "repository": { - "type": "git", - "url": "https://github.com/http-party/node-http-proxy.git" + "_args": [ + [ + "http-proxy@1.18.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "http-proxy@1.18.1", + "_id": "http-proxy@1.18.1", + "_inBundle": false, + "_integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", + "_location": "/http-proxy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-proxy@1.18.1", + "name": "http-proxy", + "escapedName": "http-proxy", + "rawSpec": "1.18.1", + "saveSpec": null, + "fetchSpec": "1.18.1" }, - "description": "HTTP proxying for the masses", - "author": "Charlie Robbins ", - "maintainers": [ - "jcrugzz " + "_requiredBy": [ + "/http-proxy-middleware" ], - "main": "index.js", + "_resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", + "_spec": "1.18.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Charlie Robbins", + "email": "charlie.robbins@gmail.com" + }, + "bugs": { + "url": "https://github.com/http-party/node-http-proxy/issues" + }, "dependencies": { "eventemitter3": "^4.0.0", - "requires-port": "^1.0.0", - "follow-redirects": "^1.0.0" + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, + "description": "HTTP proxying for the masses", "devDependencies": { "async": "^3.0.0", "auto-changelog": "^1.15.0", @@ -29,13 +53,27 @@ "sse": "0.0.8", "ws": "^3.0.0" }, + "engines": { + "node": ">=8.0.0" + }, + "homepage": "https://github.com/http-party/node-http-proxy#readme", + "license": "MIT", + "main": "index.js", + "maintainers": [ + { + "name": "jcrugzz", + "email": "jcrugzz@gmail.com" + } + ], + "name": "http-proxy", + "repository": { + "type": "git", + "url": "git+https://github.com/http-party/node-http-proxy.git" + }, "scripts": { "mocha": "mocha test/*-test.js", "test": "nyc --reporter=text --reporter=lcov npm run mocha", "version": "auto-changelog -p && git add CHANGELOG.md" }, - "engines": { - "node": ">=8.0.0" - }, - "license": "MIT" + "version": "1.18.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/http-signature/package.json b/admin/vue2/element-admin-v3/node_modules/http-signature/package.json index df07d53d7..4a5f94778 100644 --- a/admin/vue2/element-admin-v3/node_modules/http-signature/package.json +++ b/admin/vue2/element-admin-v3/node_modules/http-signature/package.json @@ -1,39 +1,81 @@ { - "name": "http-signature", - "description": "Reference implementation of Joyent's HTTP Signature scheme.", - "version": "1.2.0", - "license": "MIT", - "author": "Joyent, Inc", - "contributors": [ - "Mark Cavage ", - "David I. Lehn ", - "Patrick Mooney " + "_args": [ + [ + "http-signature@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-http-signature.git" + "_development": true, + "_from": "http-signature@1.2.0", + "_id": "http-signature@1.2.0", + "_inBundle": false, + "_integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "_location": "/http-signature", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-signature@1.2.0", + "name": "http-signature", + "escapedName": "http-signature", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" }, - "homepage": "https://github.com/joyent/node-http-signature/", - "bugs": "https://github.com/joyent/node-http-signature/issues", - "keywords": [ - "https", - "request" + "_requiredBy": [ + "/request" ], - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "_resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868555829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Joyent, Inc" }, - "main": "lib/index.js", - "scripts": { - "test": "tap test/*.js" + "bugs": { + "url": "https://github.com/joyent/node-http-signature/issues" }, + "contributors": [ + { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + { + "name": "David I. Lehn", + "email": "dil@lehn.org" + }, + { + "name": "Patrick Mooney", + "email": "patrick.f.mooney@gmail.com" + } + ], "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" }, + "description": "Reference implementation of Joyent's HTTP Signature scheme.", "devDependencies": { "tap": "0.4.2", "uuid": "^2.0.2" - } + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + }, + "homepage": "https://github.com/joyent/node-http-signature/", + "keywords": [ + "https", + "request" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "http-signature", + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-http-signature.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/https-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/https-browserify/package.json index a3c050c1c..a55ba08e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/https-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/https-browserify/package.json @@ -1,12 +1,41 @@ { - "name": "https-browserify", - "description": "https module compatability for browserify", - "version": "1.0.0", + "_args": [ + [ + "https-browserify@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "https-browserify@1.0.0", + "_id": "https-browserify@1.0.0", + "_inBundle": false, + "_integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "_location": "/https-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "https-browserify@1.0.0", + "name": "https-browserify", + "escapedName": "https-browserify", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "James Halliday", "email": "mail@substack.net", "url": "http://substack.net" }, + "bugs": { + "url": "https://github.com/substack/https-browserify/issues" + }, + "description": "https module compatability for browserify", "devDependencies": { "standard": "^9.0.2" }, @@ -18,11 +47,13 @@ ], "license": "MIT", "main": "index.js", + "name": "https-browserify", "repository": { "type": "git", "url": "git://github.com/substack/https-browserify.git" }, "scripts": { "test": "standard" - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/husky/node_modules/normalize-path/package.json b/admin/vue2/element-admin-v3/node_modules/husky/node_modules/normalize-path/package.json index 772c04d49..9dbbe25aa 100644 --- a/admin/vue2/element-admin-v3/node_modules/husky/node_modules/normalize-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/husky/node_modules/normalize-path/package.json @@ -1,35 +1,52 @@ { - "name": "normalize-path", - "description": "Normalize file path slashes to be unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/normalize-path", + "_args": [ + [ + "normalize-path@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "normalize-path@1.0.0", + "_id": "normalize-path@1.0.0", + "_inBundle": false, + "_integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "_location": "/husky/normalize-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-path@1.0.0", + "name": "normalize-path", + "escapedName": "normalize-path", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/husky" + ], + "_resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" }, - "repository": { - "type": "git", - "url": "git://github.com/jonschlinkert/normalize-path.git" - }, "bugs": { "url": "https://github.com/jonschlinkert/normalize-path/issues" }, - "license": { - "type": "MIT", - "url": "https://github.com/jonschlinkert/normalize-path/blob/master/LICENSE-MIT" - }, - "files": ["index.js"], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha -R spec" - }, + "description": "Normalize file path slashes to be unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes.", "devDependencies": { "benchmarked": "^0.1.1", "mocha": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/normalize-path", "keywords": [ "file", "filepath", @@ -40,5 +57,19 @@ "slashes", "trailing", "unix" - ] -} \ No newline at end of file + ], + "license": { + "type": "MIT", + "url": "https://github.com/jonschlinkert/normalize-path/blob/master/LICENSE-MIT" + }, + "main": "index.js", + "name": "normalize-path", + "repository": { + "type": "git", + "url": "git://github.com/jonschlinkert/normalize-path.git" + }, + "scripts": { + "test": "mocha -R spec" + }, + "version": "1.0.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/husky/package.json b/admin/vue2/element-admin-v3/node_modules/husky/package.json index 1b595f552..c42d0c708 100644 --- a/admin/vue2/element-admin-v3/node_modules/husky/package.json +++ b/admin/vue2/element-admin-v3/node_modules/husky/package.json @@ -1,20 +1,57 @@ { - "name": "husky", - "version": "0.14.3", + "_args": [ + [ + "husky@0.14.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "husky@0.14.3", + "_id": "husky@0.14.3", + "_inBundle": false, + "_integrity": "sha1-xp7XTi0neXaaF7qDmbVM4LY8EsM=", + "_location": "/husky", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "husky@0.14.3", + "name": "husky", + "escapedName": "husky", + "rawSpec": "0.14.3", + "saveSpec": null, + "fetchSpec": "0.14.3" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/husky/download/husky-0.14.3.tgz?cache=0&sync_timestamp=1617004245593&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhusky%2Fdownload%2Fhusky-0.14.3.tgz", + "_spec": "0.14.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Typicode", + "email": "typicode@gmail.com" + }, + "bugs": { + "url": "https://github.com/typicode/husky/issues" + }, + "dependencies": { + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, "description": "Prevents bad commit or push (git hooks, pre-commit/precommit, pre-push/prepush, post-merge/postmerge and all that stuff...)", + "devDependencies": { + "jest": "^20.0.4", + "mkdirp": "^0.5.1", + "prettier": "^1.4.4", + "rimraf": "^2.6.1", + "tempy": "^0.1.0" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "jest", - "format": "prettier --single-quote --no-semi --write **/*.js", - "install": "node ./bin/install.js", - "uninstall": "node ./bin/uninstall.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/typicode/husky.git" - }, + "homepage": "https://github.com/typicode/husky", "keywords": [ "git", "hook", @@ -29,27 +66,22 @@ "postmerge", "test" ], - "author": "Typicode ", "license": "MIT", - "bugs": { - "url": "https://github.com/typicode/husky/issues" - }, - "homepage": "https://github.com/typicode/husky", - "devDependencies": { - "jest": "^20.0.4", - "mkdirp": "^0.5.1", - "prettier": "^1.4.4", - "rimraf": "^2.6.1", - "tempy": "^0.1.0" + "name": "husky", + "repository": { + "type": "git", + "url": "git://github.com/typicode/husky.git" }, - "dependencies": { - "is-ci": "^1.0.10", - "normalize-path": "^1.0.0", - "strip-indent": "^2.0.0" + "scripts": { + "format": "prettier --single-quote --no-semi --write **/*.js", + "install": "node ./bin/install.js", + "test": "jest", + "uninstall": "node ./bin/uninstall.js" }, "standard": { "env": { "jest": true } - } + }, + "version": "0.14.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/iconv-lite/package.json b/admin/vue2/element-admin-v3/node_modules/iconv-lite/package.json index a7c74fcc2..a104b4533 100644 --- a/admin/vue2/element-admin-v3/node_modules/iconv-lite/package.json +++ b/admin/vue2/element-admin-v3/node_modules/iconv-lite/package.json @@ -1,46 +1,82 @@ { + "_args": [ + [ + "iconv-lite@0.4.24", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "iconv-lite@0.4.24", + "_id": "iconv-lite@0.4.24", + "_inBundle": false, + "_integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "_location": "/iconv-lite", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "iconv-lite@0.4.24", "name": "iconv-lite", - "description": "Convert character encodings in pure javascript.", - "version": "0.4.24", - "license": "MIT", - "keywords": [ - "iconv", - "convert", - "charset", - "icu" - ], - "author": "Alexander Shtuchkin ", - "main": "./lib/index.js", - "typings": "./lib/index.d.ts", - "homepage": "https://github.com/ashtuchkin/iconv-lite", - "bugs": "https://github.com/ashtuchkin/iconv-lite/issues", - "repository": { - "type": "git", - "url": "git://github.com/ashtuchkin/iconv-lite.git" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "coverage": "istanbul cover _mocha -- --grep .", - "coverage-open": "open coverage/lcov-report/index.html", - "test": "mocha --reporter spec --grep ." - }, - "browser": { - "./lib/extend-node": false, - "./lib/streams": false - }, - "devDependencies": { - "mocha": "^3.1.0", - "request": "~2.87.0", - "unorm": "*", - "errto": "*", - "async": "*", - "istanbul": "*", - "semver": "*", - "iconv": "*" - }, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - } + "escapedName": "iconv-lite", + "rawSpec": "0.4.24", + "saveSpec": null, + "fetchSpec": "0.4.24" + }, + "_requiredBy": [ + "/body-parser", + "/external-editor", + "/raw-body", + "/webpack-cli/external-editor" + ], + "_resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1621826342262&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", + "_spec": "0.4.24", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Alexander Shtuchkin", + "email": "ashtuchkin@gmail.com" + }, + "browser": { + "./lib/extend-node": false, + "./lib/streams": false + }, + "bugs": { + "url": "https://github.com/ashtuchkin/iconv-lite/issues" + }, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "description": "Convert character encodings in pure javascript.", + "devDependencies": { + "async": "*", + "errto": "*", + "iconv": "*", + "istanbul": "*", + "mocha": "^3.1.0", + "request": "~2.87.0", + "semver": "*", + "unorm": "*" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/ashtuchkin/iconv-lite", + "keywords": [ + "iconv", + "convert", + "charset", + "icu" + ], + "license": "MIT", + "main": "./lib/index.js", + "name": "iconv-lite", + "repository": { + "type": "git", + "url": "git://github.com/ashtuchkin/iconv-lite.git" + }, + "scripts": { + "coverage": "istanbul cover _mocha -- --grep .", + "coverage-open": "open coverage/lcov-report/index.html", + "test": "mocha --reporter spec --grep ." + }, + "typings": "./lib/index.d.ts", + "version": "0.4.24" } diff --git a/admin/vue2/element-admin-v3/node_modules/icss-replace-symbols/package.json b/admin/vue2/element-admin-v3/node_modules/icss-replace-symbols/package.json index aa5c4a735..ad45db1e5 100644 --- a/admin/vue2/element-admin-v3/node_modules/icss-replace-symbols/package.json +++ b/admin/vue2/element-admin-v3/node_modules/icss-replace-symbols/package.json @@ -1,33 +1,40 @@ { - "name": "icss-replace-symbols", - "version": "1.1.0", - "description": "Replacing symbols during the linking phase of ICSS", - "main": "lib/index.js", - "scripts": { - "lint": "standard src test", - "build": "babel --out-dir lib src", - "autotest": "chokidar src test -c 'npm test'", - "test": "mocha --compilers js:babel-register", - "posttest": "npm run lint && npm run build", - "travis": "npm run test", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/css-modules/icss-replace-symbols.git" + "_args": [ + [ + "icss-replace-symbols@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "icss-replace-symbols@1.1.0", + "_id": "icss-replace-symbols@1.1.0", + "_inBundle": false, + "_integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "_location": "/icss-replace-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "icss-replace-symbols@1.1.0", + "name": "icss-replace-symbols", + "escapedName": "icss-replace-symbols", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "keywords": [ - "css", - "modules", - "icss", - "postcss" + "_requiredBy": [ + "/postcss-modules-values" ], - "author": "Glen Maddern", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Glen Maddern" + }, "bugs": { "url": "https://github.com/css-modules/icss-replace-symbols/issues" }, - "homepage": "https://github.com/css-modules/icss-replace-symbols#readme", + "description": "Replacing symbols during the linking phase of ICSS", "devDependencies": { "babel-cli": "^6.18.0", "babel-preset-es2015": "^6.18.0", @@ -36,5 +43,29 @@ "mocha": "^3.1.2", "postcss": "^6.0.1", "standard": "^8.4.0" - } + }, + "homepage": "https://github.com/css-modules/icss-replace-symbols#readme", + "keywords": [ + "css", + "modules", + "icss", + "postcss" + ], + "license": "ISC", + "main": "lib/index.js", + "name": "icss-replace-symbols", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/icss-replace-symbols.git" + }, + "scripts": { + "autotest": "chokidar src test -c 'npm test'", + "build": "babel --out-dir lib src", + "lint": "standard src test", + "posttest": "npm run lint && npm run build", + "prepublish": "npm run build", + "test": "mocha --compilers js:babel-register", + "travis": "npm run test" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/icss-utils/package.json b/admin/vue2/element-admin-v3/node_modules/icss-utils/package.json index 297dcb252..00e37d067 100644 --- a/admin/vue2/element-admin-v3/node_modules/icss-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/icss-utils/package.json @@ -1,30 +1,35 @@ { - "name": "icss-utils", - "version": "2.1.0", - "description": "ICSS utils for postcss ast", - "main": "lib/index.js", - "files": [ - "lib" - ], - "scripts": { - "build": "babel --out-dir lib src", - "test": "jest --coverage", - "precommit": "lint-staged", - "prepublish": "yarn test && yarn run build" - }, - "lint-staged": { - "*.js": [ - "eslint", - "prettier --write", - "git add" + "_args": [ + [ + "icss-utils@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "icss-utils@2.1.0", + "_id": "icss-utils@2.1.0", + "_inBundle": false, + "_integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "_location": "/icss-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "icss-utils@2.1.0", + "name": "icss-utils", + "escapedName": "icss-utils", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "eslintConfig": { - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module" - }, - "extends": "eslint:recommended" + "_requiredBy": [ + "/css-loader" + ], + "_resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz?cache=0&sync_timestamp=1605801458520&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Glen Maddern" }, "babel": { "presets": [ @@ -38,25 +43,13 @@ ] ] }, - "repository": { - "type": "git", - "url": "git+https://github.com/css-modules/icss-utils.git" - }, - "keywords": [ - "css", - "modules", - "icss", - "postcss" - ], - "author": "Glen Maddern", - "license": "ISC", "bugs": { "url": "https://github.com/css-modules/icss-utils/issues" }, - "homepage": "https://github.com/css-modules/icss-utils#readme", "dependencies": { "postcss": "^6.0.1" }, + "description": "ICSS utils for postcss ast", "devDependencies": { "babel-cli": "^6.24.1", "babel-jest": "^20.0.3", @@ -66,5 +59,43 @@ "jest": "^20.0.3", "lint-staged": "^3.4.2", "prettier": "^1.3.1" - } + }, + "eslintConfig": { + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + "extends": "eslint:recommended" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/css-modules/icss-utils#readme", + "keywords": [ + "css", + "modules", + "icss", + "postcss" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "name": "icss-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/icss-utils.git" + }, + "scripts": { + "build": "babel --out-dir lib src", + "precommit": "lint-staged", + "prepublish": "yarn test && yarn run build", + "test": "jest --coverage" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ieee754/package.json b/admin/vue2/element-admin-v3/node_modules/ieee754/package.json index 7b2385138..e6699fabe 100644 --- a/admin/vue2/element-admin-v3/node_modules/ieee754/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ieee754/package.json @@ -1,20 +1,68 @@ { - "name": "ieee754", - "description": "Read/write IEEE754 floating point numbers from/to a Buffer or array-like object", - "version": "1.2.1", + "_args": [ + [ + "ieee754@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ieee754@1.2.1", + "_id": "ieee754@1.2.1", + "_inBundle": false, + "_integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", + "_location": "/ieee754", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ieee754@1.2.1", + "name": "ieee754", + "escapedName": "ieee754", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/@webassemblyjs/ieee754", + "/buffer" + ], + "_resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838418666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", "url": "https://feross.org" }, + "bugs": { + "url": "https://github.com/feross/ieee754/issues" + }, "contributors": [ - "Romain Beauxis " + { + "name": "Romain Beauxis", + "email": "toots@rastageeks.org" + } ], + "description": "Read/write IEEE754 floating point numbers from/to a Buffer or array-like object", "devDependencies": { "airtap": "^3.0.0", "standard": "*", "tape": "^5.0.1" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/ieee754#readme", "keywords": [ "IEEE 754", "buffer", @@ -24,7 +72,7 @@ ], "license": "BSD-3-Clause", "main": "index.js", - "types": "index.d.ts", + "name": "ieee754", "repository": { "type": "git", "url": "git://github.com/feross/ieee754.git" @@ -35,18 +83,6 @@ "test-browser-local": "airtap --local -- test/*.js", "test-node": "tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "types": "index.d.ts", + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/iferr/package.json b/admin/vue2/element-admin-v3/node_modules/iferr/package.json index 9653654c9..49fb0ff55 100644 --- a/admin/vue2/element-admin-v3/node_modules/iferr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/iferr/package.json @@ -1,28 +1,59 @@ { - "name": "iferr", - "version": "0.1.5", - "description": "Higher-order functions for easier error handling", - "main": "index.js", - "scripts": { - "test": "mocha", - "prepublish": "coffee -c index.coffee" - }, - "repository": { - "type": "git", - "url": "https://github.com/shesek/iferr" + "_args": [ + [ + "iferr@0.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "iferr@0.1.5", + "_id": "iferr@0.1.5", + "_inBundle": false, + "_integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "_location": "/iferr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "iferr@0.1.5", + "name": "iferr", + "escapedName": "iferr", + "rawSpec": "0.1.5", + "saveSpec": null, + "fetchSpec": "0.1.5" }, - "keywords": [ - "error", - "errors" + "_requiredBy": [ + "/copy-concurrently", + "/fs-write-stream-atomic" ], - "author": "Nadav Ivgi", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "_spec": "0.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nadav Ivgi" + }, "bugs": { "url": "https://github.com/shesek/iferr/issues" }, - "homepage": "https://github.com/shesek/iferr", + "description": "Higher-order functions for easier error handling", "devDependencies": { "coffee-script": "^1.7.1", "mocha": "^1.18.2" - } + }, + "homepage": "https://github.com/shesek/iferr", + "keywords": [ + "error", + "errors" + ], + "license": "MIT", + "main": "index.js", + "name": "iferr", + "repository": { + "type": "git", + "url": "git+https://github.com/shesek/iferr.git" + }, + "scripts": { + "prepublish": "coffee -c index.coffee", + "test": "mocha" + }, + "version": "0.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/ignore/package.json b/admin/vue2/element-admin-v3/node_modules/ignore/package.json index d61a8ef95..33c5a316a 100644 --- a/admin/vue2/element-admin-v3/node_modules/ignore/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ignore/package.json @@ -1,24 +1,60 @@ { - "name": "ignore", - "version": "3.3.10", + "_args": [ + [ + "ignore@3.3.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ignore@3.3.10", + "_id": "ignore@3.3.10", + "_inBundle": false, + "_integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "_location": "/ignore", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ignore@3.3.10", + "name": "ignore", + "escapedName": "ignore", + "rawSpec": "3.3.10", + "saveSpec": null, + "fetchSpec": "3.3.10" + }, + "_requiredBy": [ + "/copy-webpack-plugin/globby", + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", + "_spec": "3.3.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "kael" + }, + "bugs": { + "url": "https://github.com/kaelzhang/node-ignore/issues" + }, "description": "Ignore is a manager and filter for .gitignore rules.", - "main": "./ignore.js", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-preset-es2015": "^6.24.1", + "chai": "~1.7.2", + "codecov": "^3.0.2", + "istanbul": "^0.4.5", + "mkdirp": "^0.5.1", + "mocha": "~1.13.0", + "pre-suf": "^1.0.4", + "rimraf": "^2.6.2", + "spawn-sync": "^1.0.15", + "tmp": "0.0.33", + "typescript": "^2.9.2" + }, "files": [ "ignore.js", "index.d.ts" ], - "scripts": { - "prepublish": "npm run build", - "build": "babel -o ignore.js index.js", - "tsc": "tsc ./test/ts/simple.ts", - "test": "npm run tsc && npm run build && istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec ./test/ignore.js && codecov", - "test-no-cov": "npm run tsc && npm run build && mocha --reporter spec ./test/ignore.js", - "cov-report": "istanbul report" - }, - "repository": { - "type": "git", - "url": "git@github.com:kaelzhang/node-ignore.git" - }, + "homepage": "https://github.com/kaelzhang/node-ignore#readme", "keywords": [ "ignore", ".gitignore", @@ -34,23 +70,20 @@ "asterisks", "regular-expression" ], - "author": "kael", "license": "MIT", - "bugs": { - "url": "https://github.com/kaelzhang/node-ignore/issues" + "main": "./ignore.js", + "name": "ignore", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/kaelzhang/node-ignore.git" }, - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-preset-es2015": "^6.24.1", - "chai": "~1.7.2", - "codecov": "^3.0.2", - "istanbul": "^0.4.5", - "mkdirp": "^0.5.1", - "mocha": "~1.13.0", - "pre-suf": "^1.0.4", - "rimraf": "^2.6.2", - "spawn-sync": "^1.0.15", - "tmp": "0.0.33", - "typescript": "^2.9.2" - } + "scripts": { + "build": "babel -o ignore.js index.js", + "cov-report": "istanbul report", + "prepublish": "npm run build", + "test": "npm run tsc && npm run build && istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec ./test/ignore.js && codecov", + "test-no-cov": "npm run tsc && npm run build && mocha --reporter spec ./test/ignore.js", + "tsc": "tsc ./test/ts/simple.ts" + }, + "version": "3.3.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/image-size/package.json b/admin/vue2/element-admin-v3/node_modules/image-size/package.json index a26130ebf..560767687 100644 --- a/admin/vue2/element-admin-v3/node_modules/image-size/package.json +++ b/admin/vue2/element-admin-v3/node_modules/image-size/package.json @@ -1,24 +1,62 @@ { - "name": "image-size", - "version": "0.5.5", - "description": "get dimensions of any image file", - "main": "lib/index.js", - "files": [ - "bin", - "lib" + "_args": [ + [ + "image-size@0.5.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=0.10.0" + "_development": true, + "_from": "image-size@0.5.5", + "_id": "image-size@0.5.5", + "_inBundle": false, + "_integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "_location": "/image-size", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "image-size@0.5.5", + "name": "image-size", + "escapedName": "image-size", + "rawSpec": "0.5.5", + "saveSpec": null, + "fetchSpec": "0.5.5" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1618424661730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", + "_spec": "0.5.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "netroy", + "email": "aditya@netroy.in", + "url": "http://netroy.in/" }, "bin": { "image-size": "bin/image-size.js" }, - "scripts": { - "pretest": "jshint", - "test": "mocha specs", - "coverage": "istanbul cover _mocha specs" + "bugs": { + "url": "https://github.com/image-size/image-size/issues" + }, + "description": "get dimensions of any image file", + "devDependencies": { + "escomplex-js": "^1.2.0", + "expect.js": "^0.3.1", + "glob": "^7.1.1", + "istanbul": "^1.1.0-alpha.1", + "jshint": "^2.9.4", + "mocha": "^3.4.1", + "sinon": "^2.2.0" }, - "repository": "image-size/image-size", + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "bin", + "lib" + ], + "homepage": "https://github.com/image-size/image-size#readme", "keywords": [ "image", "size", @@ -35,15 +73,17 @@ "webp", "svg" ], - "author": "netroy (http://netroy.in/)", "license": "MIT", - "devDependencies": { - "escomplex-js": "^1.2.0", - "expect.js": "^0.3.1", - "glob": "^7.1.1", - "istanbul": "^1.1.0-alpha.1", - "jshint": "^2.9.4", - "mocha": "^3.4.1", - "sinon": "^2.2.0" - } + "main": "lib/index.js", + "name": "image-size", + "repository": { + "type": "git", + "url": "git+https://github.com/image-size/image-size.git" + }, + "scripts": { + "coverage": "istanbul cover _mocha specs", + "pretest": "jshint", + "test": "mocha specs" + }, + "version": "0.5.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/immediate/package.json b/admin/vue2/element-admin-v3/node_modules/immediate/package.json index 98af60063..03aa9fa1c 100644 --- a/admin/vue2/element-admin-v3/node_modules/immediate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/immediate/package.json @@ -1,34 +1,58 @@ { - "name": "immediate", - "version": "3.0.6", - "description": "A cross browser microtask library", - "contributors": [ - "Domenic Denicola (http://domenicdenicola.com)", - "Donavon West (http://donavon.com)", - "Yaffle", - "Calvin Metcalf " + "_args": [ + [ + "immediate@3.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/calvinmetcalf/immediate.git" + "_from": "immediate@3.0.6", + "_id": "immediate@3.0.6", + "_inBundle": false, + "_integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "_location": "/immediate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "immediate@3.0.6", + "name": "immediate", + "escapedName": "immediate", + "rawSpec": "3.0.6", + "saveSpec": null, + "fetchSpec": "3.0.6" }, - "files": [ - "lib", - "dist" + "_requiredBy": [ + "/lie" ], - "bugs": "https://github.com/calvinmetcalf/immediate/issues", - "main": "lib/index.js", - "scripts": { - "build": "npm run build-node && npm run build-js && npm run uglify", - "build-node": "browserify-transform-cli inline-process-browser unreachable-branch-transform < ./lib/index.js > ./lib/browser.js", - "uglify": "uglifyjs dist/immediate.js -mc > dist/immediate.min.js", - "build-js": "browserify -s immediate ./lib/browser.js | derequire > dist/immediate.js", - "test": "jshint lib/*.js && node test/tests.js" - }, + "_resolved": "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", + "_spec": "3.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "browser": { "./lib/index.js": "./lib/browser.js" }, + "bugs": { + "url": "https://github.com/calvinmetcalf/immediate/issues" + }, + "contributors": [ + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { + "name": "Donavon West", + "email": "github@donavon.com", + "url": "http://donavon.com" + }, + { + "name": "Yaffle" + }, + { + "name": "Calvin Metcalf", + "email": "calvin.metcalf@gmail.com" + } + ], + "description": "A cross browser microtask library", "devDependencies": { "browserify": "^13.0.0", "browserify-transform-cli": "^1.1.1", @@ -38,5 +62,25 @@ "tape": "^4.0.0", "uglify-js": "^2.4.13", "unreachable-branch-transform": "^0.5.1" - } + }, + "files": [ + "lib", + "dist" + ], + "homepage": "https://github.com/calvinmetcalf/immediate#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "immediate", + "repository": { + "type": "git", + "url": "git://github.com/calvinmetcalf/immediate.git" + }, + "scripts": { + "build": "npm run build-node && npm run build-js && npm run uglify", + "build-js": "browserify -s immediate ./lib/browser.js | derequire > dist/immediate.js", + "build-node": "browserify-transform-cli inline-process-browser unreachable-branch-transform < ./lib/index.js > ./lib/browser.js", + "test": "jshint lib/*.js && node test/tests.js", + "uglify": "uglifyjs dist/immediate.js -mc > dist/immediate.min.js" + }, + "version": "3.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/import-cwd/package.json b/admin/vue2/element-admin-v3/node_modules/import-cwd/package.json index 9f9e05bd2..a59cfe64a 100644 --- a/admin/vue2/element-admin-v3/node_modules/import-cwd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/import-cwd/package.json @@ -1,23 +1,56 @@ { - "name": "import-cwd", - "version": "2.1.0", - "description": "Import a module like with `require()` but from the current working directory", - "license": "MIT", - "repository": "sindresorhus/import-cwd", + "_args": [ + [ + "import-cwd@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "import-cwd@2.1.0", + "_id": "import-cwd@2.1.0", + "_inBundle": false, + "_integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "_location": "/import-cwd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "import-cwd@2.1.0", + "name": "import-cwd", + "escapedName": "import-cwd", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/postcss-load-config" + ], + "_resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/import-cwd/issues" + }, + "dependencies": { + "import-from": "^2.1.0" + }, + "description": "Import a module like with `require()` but from the current working directory", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/import-cwd#readme", "keywords": [ "require", "resolve", @@ -31,11 +64,14 @@ "directory", "import" ], - "dependencies": { - "import-from": "^2.1.0" + "license": "MIT", + "name": "import-cwd", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/import-cwd.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/import-fresh/node_modules/caller-path/package.json b/admin/vue2/element-admin-v3/node_modules/import-fresh/node_modules/caller-path/package.json index bc61fec99..a20857887 100644 --- a/admin/vue2/element-admin-v3/node_modules/import-fresh/node_modules/caller-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/import-fresh/node_modules/caller-path/package.json @@ -1,23 +1,56 @@ { - "name": "caller-path", - "version": "2.0.0", - "description": "Get the path of the caller function", - "license": "MIT", - "repository": "sindresorhus/caller-path", + "_args": [ + [ + "caller-path@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "caller-path@2.0.0", + "_id": "caller-path@2.0.0", + "_inBundle": false, + "_integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "_location": "/import-fresh/caller-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "caller-path@2.0.0", + "name": "caller-path", + "escapedName": "caller-path", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/import-fresh" + ], + "_resolved": "https://registry.nlark.com/caller-path/download/caller-path-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/caller-path/issues" + }, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "description": "Get the path of the caller function", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/caller-path#readme", "keywords": [ "caller", "calling", @@ -32,13 +65,16 @@ "function", "file" ], - "dependencies": { - "caller-callsite": "^2.0.0" + "license": "MIT", + "name": "caller-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/caller-path.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/import-fresh/package.json b/admin/vue2/element-admin-v3/node_modules/import-fresh/package.json index 28a57af71..0ddd1eb50 100644 --- a/admin/vue2/element-admin-v3/node_modules/import-fresh/package.json +++ b/admin/vue2/element-admin-v3/node_modules/import-fresh/package.json @@ -1,24 +1,60 @@ { - "name": "import-fresh", - "version": "2.0.0", - "description": "Import a module while bypassing the cache", - "license": "MIT", - "repository": "sindresorhus/import-fresh", + "_args": [ + [ + "import-fresh@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "import-fresh@2.0.0", + "_id": "import-fresh@2.0.0", + "_inBundle": false, + "_integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "_location": "/import-fresh", + "_phantomChildren": { + "caller-callsite": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "import-fresh@2.0.0", + "name": "import-fresh", + "escapedName": "import-fresh", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/cosmiconfig" + ], + "_resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/import-fresh/issues" + }, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "description": "Import a module while bypassing the cache", + "devDependencies": { + "ava": "*", + "optional-dev-dependency": "^2.0.1", + "xo": "^0.18.2" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "heapdump": "optional-dev-dependency && node heapdump.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/import-fresh#readme", "keywords": [ "require", "cache", @@ -28,18 +64,20 @@ "fresh", "bypass" ], - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "optional-dev-dependency": "^2.0.1", - "xo": "^0.18.2" - }, + "license": "MIT", + "name": "import-fresh", "optionalDevDependencies": { "heapdump": "^0.3.7" }, + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/import-fresh.git" + }, + "scripts": { + "heapdump": "optional-dev-dependency && node heapdump.js", + "test": "xo && ava" + }, + "version": "2.0.0", "xo": { "rules": { "import/no-extraneous-dependencies": "off" diff --git a/admin/vue2/element-admin-v3/node_modules/import-from/package.json b/admin/vue2/element-admin-v3/node_modules/import-from/package.json index 2fdd1e6b7..40712368a 100644 --- a/admin/vue2/element-admin-v3/node_modules/import-from/package.json +++ b/admin/vue2/element-admin-v3/node_modules/import-from/package.json @@ -1,23 +1,56 @@ { - "name": "import-from", - "version": "2.1.0", - "description": "Import a module like with `require()` but from a given path", - "license": "MIT", - "repository": "sindresorhus/import-from", + "_args": [ + [ + "import-from@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "import-from@2.1.0", + "_id": "import-from@2.1.0", + "_inBundle": false, + "_integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "_location": "/import-from", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "import-from@2.1.0", + "name": "import-from", + "escapedName": "import-from", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/import-cwd" + ], + "_resolved": "https://registry.nlark.com/import-from/download/import-from-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/import-from/issues" + }, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "description": "Import a module like with `require()` but from a given path", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/import-from#readme", "keywords": [ "require", "resolve", @@ -28,11 +61,14 @@ "import", "path" ], - "dependencies": { - "resolve-from": "^3.0.0" + "license": "MIT", + "name": "import-from", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/import-from.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/import-local/package.json b/admin/vue2/element-admin-v3/node_modules/import-local/package.json index ea4e6ff09..4910cdc2f 100644 --- a/admin/vue2/element-admin-v3/node_modules/import-local/package.json +++ b/admin/vue2/element-admin-v3/node_modules/import-local/package.json @@ -1,51 +1,86 @@ { - "name": "import-local", - "version": "2.0.0", - "description": "Let a globally installed package use a locally installed version of itself if available", - "license": "MIT", - "repository": "sindresorhus/import-local", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "fixtures/cli.js" - ], - "keywords": [ - "import", - "local", - "require", - "resolve", - "global", - "version", - "prefer", - "cli" - ], - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "devDependencies": { - "ava": "*", - "cpy": "^7.0.1", - "del": "^3.0.0", - "execa": "^0.11.0", - "xo": "*" - }, - "xo": { - "ignores": [ - "fixtures" - ] - } + "_args": [ + [ + "import-local@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "import-local@2.0.0", + "_id": "import-local@2.0.0", + "_inBundle": false, + "_integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "_location": "/import-local", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "import-local@2.0.0", + "name": "import-local", + "escapedName": "import-local", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "bugs": { + "url": "https://github.com/sindresorhus/import-local/issues" + }, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "description": "Let a globally installed package use a locally installed version of itself if available", + "devDependencies": { + "ava": "*", + "cpy": "^7.0.1", + "del": "^3.0.0", + "execa": "^0.11.0", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "fixtures/cli.js" + ], + "homepage": "https://github.com/sindresorhus/import-local#readme", + "keywords": [ + "import", + "local", + "require", + "resolve", + "global", + "version", + "prefer", + "cli" + ], + "license": "MIT", + "name": "import-local", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/import-local.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0", + "xo": { + "ignores": [ + "fixtures" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/imurmurhash/package.json b/admin/vue2/element-admin-v3/node_modules/imurmurhash/package.json index 8a93edb55..26dc92f8a 100644 --- a/admin/vue2/element-admin-v3/node_modules/imurmurhash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/imurmurhash/package.json @@ -1,22 +1,55 @@ { - "name": "imurmurhash", - "version": "0.1.4", + "_args": [ + [ + "imurmurhash@0.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "imurmurhash@0.1.4", + "_id": "imurmurhash@0.1.4", + "_inBundle": false, + "_integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "_location": "/imurmurhash", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "imurmurhash@0.1.4", + "name": "imurmurhash", + "escapedName": "imurmurhash", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" + }, + "_requiredBy": [ + "/eslint", + "/fs-write-stream-atomic", + "/unique-slug" + ], + "_resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "_spec": "0.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jens Taylor", + "email": "jensyt@gmail.com", + "url": "https://github.com/homebrewing" + }, + "bugs": { + "url": "https://github.com/jensyt/imurmurhash-js/issues" + }, + "dependencies": {}, "description": "An incremental implementation of MurmurHash3", - "homepage": "https://github.com/jensyt/imurmurhash-js", - "main": "imurmurhash.js", + "devDependencies": {}, + "engines": { + "node": ">=0.8.19" + }, "files": [ "imurmurhash.js", "imurmurhash.min.js", "package.json", "README.md" ], - "repository": { - "type": "git", - "url": "https://github.com/jensyt/imurmurhash-js" - }, - "bugs": { - "url": "https://github.com/jensyt/imurmurhash-js/issues" - }, + "homepage": "https://github.com/jensyt/imurmurhash-js", "keywords": [ "murmur", "murmurhash", @@ -24,17 +57,12 @@ "hash", "incremental" ], - "author": { - "name": "Jens Taylor", - "email": "jensyt@gmail.com", - "url": "https://github.com/homebrewing" - }, "license": "MIT", - "dependencies": { - }, - "devDependencies": { + "main": "imurmurhash.js", + "name": "imurmurhash", + "repository": { + "type": "git", + "url": "git+https://github.com/jensyt/imurmurhash-js.git" }, - "engines": { - "node": ">=0.8.19" - } + "version": "0.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/indent-string/package.json b/admin/vue2/element-admin-v3/node_modules/indent-string/package.json index e2a938b81..548c7902e 100644 --- a/admin/vue2/element-admin-v3/node_modules/indent-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/indent-string/package.json @@ -1,23 +1,53 @@ { - "name": "indent-string", - "version": "3.2.0", - "description": "Indent each line in a string", - "license": "MIT", - "repository": "sindresorhus/indent-string", + "_args": [ + [ + "indent-string@3.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "indent-string@3.2.0", + "_id": "indent-string@3.2.0", + "_inBundle": false, + "_integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "_location": "/indent-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "indent-string@3.2.0", + "name": "indent-string", + "escapedName": "indent-string", + "rawSpec": "3.2.0", + "saveSpec": null, + "fetchSpec": "3.2.0" + }, + "_requiredBy": [ + "/listr-update-renderer" + ], + "_resolved": "https://registry.nlark.com/indent-string/download/indent-string-3.2.0.tgz?cache=0&sync_timestamp=1618847271946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-3.2.0.tgz", + "_spec": "3.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/indent-string/issues" + }, + "description": "Indent each line in a string", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/indent-string#readme", "keywords": [ "indent", "string", @@ -29,8 +59,14 @@ "each", "every" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "indent-string", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/indent-string.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/indexes-of/package.json b/admin/vue2/element-admin-v3/node_modules/indexes-of/package.json index e6346cf16..e6c355091 100644 --- a/admin/vue2/element-admin-v3/node_modules/indexes-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/indexes-of/package.json @@ -1,8 +1,51 @@ { - "name": "indexes-of", + "_args": [ + [ + "indexes-of@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "indexes-of@1.0.1", + "_id": "indexes-of@1.0.1", + "_inBundle": false, + "_integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "_location": "/indexes-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "indexes-of@1.0.1", + "name": "indexes-of", + "escapedName": "indexes-of", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/postcss-selector-parser", + "/postcss-merge-rules/postcss-selector-parser", + "/postcss-minify-selectors/postcss-selector-parser", + "/stylehacks/postcss-selector-parser" + ], + "_resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dominic Tarr", + "email": "dominic.tarr@gmail.com", + "url": "dominictarr.com" + }, + "bugs": { + "url": "https://github.com/dominictarr/indexes-of/issues" + }, "description": "line String/Array#indexOf but return all the indexes in an array", - "version": "1.0.1", + "devDependencies": { + "tape": "~2.1.0" + }, "homepage": "https://github.com/dominictarr/indexes-of", + "license": "MIT", + "name": "indexes-of", "repository": { "type": "git", "url": "git://github.com/dominictarr/indexes-of.git" @@ -10,9 +53,5 @@ "scripts": { "test": "node test.js" }, - "author": "Dominic Tarr (dominictarr.com)", - "license": "MIT", - "devDependencies": { - "tape": "~2.1.0" - } + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/individual/package.json b/admin/vue2/element-admin-v3/node_modules/individual/package.json index 5534374ac..e49fb82ca 100644 --- a/admin/vue2/element-admin-v3/node_modules/individual/package.json +++ b/admin/vue2/element-admin-v3/node_modules/individual/package.json @@ -1,37 +1,70 @@ { - "name": "individual", - "version": "2.0.0", - "description": "Garantueed individual values", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/individual.git", - "main": "index", - "homepage": "https://github.com/Raynos/individual", - "contributors": [ - { - "name": "Jake Verbaten" - } + "_args": [ + [ + "individual@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "individual@2.0.0", + "_id": "individual@2.0.0", + "_inBundle": false, + "_integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=", + "_location": "/individual", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "individual@2.0.0", + "name": "individual", + "escapedName": "individual", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/rust-result" + ], + "_resolved": "https://registry.npm.taobao.org/individual/download/individual-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, "bugs": { "url": "https://github.com/Raynos/individual/issues", "email": "raynos2@gmail.com" }, + "contributors": [ + { + "name": "Jake Verbaten" + } + ], "dependencies": {}, + "description": "Garantueed individual values", "devDependencies": { "coveralls": "^2.10.0", "istanbul": "^0.2.7", "run-browser": "^1.3.1", "tape": "^2.12.3" }, + "homepage": "https://github.com/Raynos/individual", + "keywords": [], "licenses": [ { "type": "MIT", "url": "http://github.com/Raynos/individual/raw/master/LICENSE" } ], + "main": "index", + "name": "individual", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/individual.git" + }, "scripts": { - "test": "node test.js", "cover": "istanbul cover --report none --print detail test.js", + "test": "node test.js", "travis": "npm run cover -s && istanbul report lcov && ((cat coverage/lcov.info | coveralls) || exit 0)" }, "testling": { @@ -49,5 +82,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/inflight/package.json b/admin/vue2/element-admin-v3/node_modules/inflight/package.json index 6084d3509..f961819a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/inflight/package.json +++ b/admin/vue2/element-admin-v3/node_modules/inflight/package.json @@ -1,29 +1,61 @@ { - "name": "inflight", - "version": "1.0.6", - "description": "Add callbacks to requests in flight to avoid async duplication", - "main": "inflight.js", - "files": [ - "inflight.js" + "_args": [ + [ + "inflight@1.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "inflight@1.0.6", + "_id": "inflight@1.0.6", + "_inBundle": false, + "_integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "_location": "/inflight", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inflight@1.0.6", + "name": "inflight", + "escapedName": "inflight", + "rawSpec": "1.0.6", + "saveSpec": null, + "fetchSpec": "1.0.6" + }, + "_requiredBy": [ + "/glob" ], + "_resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "_spec": "1.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/inflight/issues" + }, "dependencies": { "once": "^1.3.0", "wrappy": "1" }, + "description": "Add callbacks to requests in flight to avoid async duplication", "devDependencies": { "tap": "^7.1.2" }, - "scripts": { - "test": "tap test.js --100" - }, + "files": [ + "inflight.js" + ], + "homepage": "https://github.com/isaacs/inflight", + "license": "ISC", + "main": "inflight.js", + "name": "inflight", "repository": { "type": "git", - "url": "https://github.com/npm/inflight.git" + "url": "git+https://github.com/npm/inflight.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" + "scripts": { + "test": "tap test.js --100" }, - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC" + "version": "1.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/inherits/package.json b/admin/vue2/element-admin-v3/node_modules/inherits/package.json index 37b4366b8..bd38d6973 100644 --- a/admin/vue2/element-admin-v3/node_modules/inherits/package.json +++ b/admin/vue2/element-admin-v3/node_modules/inherits/package.json @@ -1,7 +1,77 @@ { - "name": "inherits", + "_args": [ + [ + "inherits@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "inherits@2.0.4", + "_id": "inherits@2.0.4", + "_inBundle": false, + "_integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "_location": "/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.4", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/asn1.js", + "/browserify-aes", + "/browserify-des", + "/browserify-sign", + "/browserify-sign/readable-stream", + "/chokidar", + "/cipher-base", + "/concat-stream", + "/create-hash", + "/create-hmac", + "/crypto-browserify", + "/des.js", + "/duplexify", + "/elliptic", + "/flush-write-stream", + "/from2", + "/glob", + "/hash-base", + "/hash-base/readable-stream", + "/hash.js", + "/hpack.js", + "/md5.js", + "/parallel-transform", + "/posthtml-parser/htmlparser2", + "/posthtml-parser/readable-stream", + "/pumpify", + "/readable-stream", + "/ripemd160", + "/sha.js", + "/sockjs-client", + "/spdy-transport/readable-stream", + "/stream-browserify", + "/stream-http" + ], + "_resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.4", + "devDependencies": { + "tap": "^14.2.4" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", "class", @@ -12,18 +82,15 @@ "browser", "browserify" ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, "scripts": { "test": "tap" }, - "devDependencies": { - "tap": "^14.2.4" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/ansi-regex/package.json index e94852fd7..2a1fef334 100644 --- a/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/inquirer/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/inquirer/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/string-width/package.json index 89f0b6a6c..2e97b009c 100644 --- a/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/string-width/package.json @@ -1,55 +1,91 @@ { - "name": "string-width", - "version": "2.1.1", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "string-width@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@2.1.1", + "_id": "string-width@2.1.1", + "_inBundle": false, + "_integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "_location": "/inquirer/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@2.1.1", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/inquirer" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/strip-ansi/package.json index 555f19461..0d2a849fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/inquirer/node_modules/strip-ansi/package.json @@ -1,23 +1,57 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/inquirer/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/inquirer", + "/inquirer/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +76,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/inquirer/package.json b/admin/vue2/element-admin-v3/node_modules/inquirer/package.json index e87820fe1..91faef0df 100644 --- a/admin/vue2/element-admin-v3/node_modules/inquirer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/inquirer/package.json @@ -1,26 +1,42 @@ { - "name": "inquirer", - "version": "3.3.0", - "description": "A collection of common interactive command line user interfaces.", - "author": "Simon Boudrias ", - "files": [ - "lib" + "_args": [ + [ + "inquirer@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib/inquirer.js", - "keywords": [ - "command", - "prompt", - "stdin", - "cli", - "tty", - "menu" + "_development": true, + "_from": "inquirer@3.3.0", + "_id": "inquirer@3.3.0", + "_inBundle": false, + "_integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", + "_location": "/inquirer", + "_phantomChildren": { + "is-fullwidth-code-point": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "inquirer@3.3.0", + "name": "inquirer", + "escapedName": "inquirer", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/eslint" ], - "scripts": { - "test": "gulp", - "prepublish": "gulp prepublish" + "_resolved": "https://registry.nlark.com/inquirer/download/inquirer-3.3.0.tgz?cache=0&sync_timestamp=1621628995749&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finquirer%2Fdownload%2Finquirer-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Boudrias", + "email": "admin@simonboudrias.com" + }, + "bugs": { + "url": "https://github.com/SBoudrias/Inquirer.js/issues" }, - "repository": "SBoudrias/Inquirer.js", - "license": "MIT", "dependencies": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", @@ -37,6 +53,7 @@ "strip-ansi": "^4.0.0", "through": "^2.3.6" }, + "description": "A collection of common interactive command line user interfaces.", "devDependencies": { "chai": "^4.0.1", "cmdify": "^0.0.4", @@ -55,5 +72,29 @@ "mocha": "^3.4.2", "mockery": "^2.1.0", "sinon": "^3.0.0" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/SBoudrias/Inquirer.js#readme", + "keywords": [ + "command", + "prompt", + "stdin", + "cli", + "tty", + "menu" + ], + "license": "MIT", + "main": "lib/inquirer.js", + "name": "inquirer", + "repository": { + "type": "git", + "url": "git+https://github.com/SBoudrias/Inquirer.js.git" + }, + "scripts": { + "prepublish": "gulp prepublish", + "test": "gulp" + }, + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/internal-ip/package.json b/admin/vue2/element-admin-v3/node_modules/internal-ip/package.json index d79f4f293..aaf2c248e 100644 --- a/admin/vue2/element-admin-v3/node_modules/internal-ip/package.json +++ b/admin/vue2/element-admin-v3/node_modules/internal-ip/package.json @@ -1,43 +1,78 @@ { - "name": "internal-ip", - "version": "4.3.0", - "description": "Get your internal IP address", - "license": "MIT", - "repository": "sindresorhus/internal-ip", - "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": [ - "ip", - "ipv6", - "ipv4", - "address", - "internal", - "local", - "machine", - "system", - "net", - "gateway" - ], - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "internal-ip@4.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "internal-ip@4.3.0", + "_id": "internal-ip@4.3.0", + "_inBundle": false, + "_integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "_location": "/internal-ip", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "internal-ip@4.3.0", + "name": "internal-ip", + "escapedName": "internal-ip", + "rawSpec": "4.3.0", + "saveSpec": null, + "fetchSpec": "4.3.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1605885656632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", + "_spec": "4.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/internal-ip/issues" + }, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "description": "Get your internal IP address", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/internal-ip#readme", + "keywords": [ + "ip", + "ipv6", + "ipv4", + "address", + "internal", + "local", + "machine", + "system", + "net", + "gateway" + ], + "license": "MIT", + "name": "internal-ip", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/internal-ip.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "4.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/interpret/package.json b/admin/vue2/element-admin-v3/node_modules/interpret/package.json index 06535164d..995821e74 100644 --- a/admin/vue2/element-admin-v3/node_modules/interpret/package.json +++ b/admin/vue2/element-admin-v3/node_modules/interpret/package.json @@ -1,31 +1,54 @@ { - "name": "interpret", - "version": "1.4.0", - "description": "A dictionary of file extensions and associated module loaders.", - "author": "Gulp Team (http://gulpjs.com/)", - "contributors": [ - "Blaine Bublitz ", - "Tyler Kellen (http://goingslowly.com/)" + "_args": [ + [ + "interpret@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "gulpjs/interpret", - "license": "MIT", - "engines": { - "node": ">= 0.10" + "_from": "interpret@1.4.0", + "_id": "interpret@1.4.0", + "_inBundle": false, + "_integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", + "_location": "/interpret", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "interpret@1.4.0", + "name": "interpret", + "escapedName": "interpret", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" }, - "main": "index.js", - "files": [ - "LICENSE", - "index.js", - "mjs-stub.js" + "_requiredBy": [ + "/shelljs", + "/webpack-cli" ], - "scripts": { - "lint": "eslint .", - "pretest": "rm -rf tmp/ && npm run lint", - "test": "mocha --async-only", - "cover": "istanbul cover _mocha --report lcovonly", - "coveralls": "npm run cover && istanbul-coveralls" + "_resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Gulp Team", + "email": "team@gulpjs.com", + "url": "http://gulpjs.com/" }, + "bugs": { + "url": "https://github.com/gulpjs/interpret/issues" + }, + "contributors": [ + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com" + }, + { + "name": "Tyler Kellen", + "email": "tyler@sleekcode.net", + "url": "http://goingslowly.com/" + } + ], "dependencies": {}, + "description": "A dictionary of file extensions and associated module loaders.", "devDependencies": { "eslint": "^2.13.0", "eslint-config-gulp": "^3.0.1", @@ -38,6 +61,15 @@ "shelljs": "0.7.5", "trash-cli": "^3.0.0" }, + "engines": { + "node": ">= 0.10" + }, + "files": [ + "LICENSE", + "index.js", + "mjs-stub.js" + ], + "homepage": "https://github.com/gulpjs/interpret#readme", "keywords": [ "cirru-script", "cjsx", @@ -71,5 +103,20 @@ "xml", "yaml", "yml" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "interpret", + "repository": { + "type": "git", + "url": "git+https://github.com/gulpjs/interpret.git" + }, + "scripts": { + "cover": "istanbul cover _mocha --report lcovonly", + "coveralls": "npm run cover && istanbul-coveralls", + "lint": "eslint .", + "pretest": "rm -rf tmp/ && npm run lint", + "test": "mocha --async-only" + }, + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/invariant/package.json b/admin/vue2/element-admin-v3/node_modules/invariant/package.json index bb1499fd6..3a5cb86e5 100644 --- a/admin/vue2/element-admin-v3/node_modules/invariant/package.json +++ b/admin/vue2/element-admin-v3/node_modules/invariant/package.json @@ -1,35 +1,75 @@ { - "name": "invariant", - "version": "2.2.4", - "description": "invariant", - "keywords": [ - "test", - "invariant" + "_args": [ + [ + "invariant@2.2.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "author": "Andres Suarez ", - "files": [ - "browser.js", - "invariant.js", - "invariant.js.flow" + "_from": "invariant@2.2.4", + "_id": "invariant@2.2.4", + "_inBundle": false, + "_integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "_location": "/invariant", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "invariant@2.2.4", + "name": "invariant", + "escapedName": "invariant", + "rawSpec": "2.2.4", + "saveSpec": null, + "fetchSpec": "2.2.4" + }, + "_requiredBy": [ + "/@babel/traverse", + "/babel-preset-env", + "/babel-traverse" ], - "repository": "https://github.com/zertosh/invariant", - "scripts": { - "test": "NODE_ENV=production tap test/*.js && NODE_ENV=development tap test/*.js" + "_resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", + "_spec": "2.2.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andres Suarez", + "email": "zertosh@gmail.com" + }, + "browser": "browser.js", + "browserify": { + "transform": [ + "loose-envify" + ] + }, + "bugs": { + "url": "https://github.com/zertosh/invariant/issues" }, "dependencies": { "loose-envify": "^1.0.0" }, + "description": "invariant", "devDependencies": { "browserify": "^11.0.1", "flow-bin": "^0.67.1", "tap": "^1.4.0" }, + "files": [ + "browser.js", + "invariant.js", + "invariant.js.flow" + ], + "homepage": "https://github.com/zertosh/invariant#readme", + "keywords": [ + "test", + "invariant" + ], + "license": "MIT", "main": "invariant.js", - "browser": "browser.js", - "browserify": { - "transform": [ - "loose-envify" - ] - } + "name": "invariant", + "repository": { + "type": "git", + "url": "git+https://github.com/zertosh/invariant.git" + }, + "scripts": { + "test": "NODE_ENV=production tap test/*.js && NODE_ENV=development tap test/*.js" + }, + "version": "2.2.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/invert-kv/package.json b/admin/vue2/element-admin-v3/node_modules/invert-kv/package.json index d9160d7e6..1c9ec28cb 100644 --- a/admin/vue2/element-admin-v3/node_modules/invert-kv/package.json +++ b/admin/vue2/element-admin-v3/node_modules/invert-kv/package.json @@ -1,32 +1,68 @@ { - "name": "invert-kv", - "version": "2.0.0", - "description": "Invert the key/value of an object. Example: `{foo: 'bar'}` → `{bar: 'foo'}`", - "license": "MIT", - "repository": "sindresorhus/invert-kv", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "object", - "key", - "value", - "kv", - "invert" - ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "invert-kv@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "invert-kv@2.0.0", + "_id": "invert-kv@2.0.0", + "_inBundle": false, + "_integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", + "_location": "/invert-kv", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "invert-kv@2.0.0", + "name": "invert-kv", + "escapedName": "invert-kv", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/lcid" + ], + "_resolved": "https://registry.nlark.com/invert-kv/download/invert-kv-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/invert-kv/issues" + }, + "description": "Invert the key/value of an object. Example: `{foo: 'bar'}` → `{bar: 'foo'}`", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/invert-kv#readme", + "keywords": [ + "object", + "key", + "value", + "kv", + "invert" + ], + "license": "MIT", + "name": "invert-kv", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/invert-kv.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ip-regex/package.json b/admin/vue2/element-admin-v3/node_modules/ip-regex/package.json index aa5147928..5eb58851a 100644 --- a/admin/vue2/element-admin-v3/node_modules/ip-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ip-regex/package.json @@ -1,23 +1,52 @@ { - "name": "ip-regex", - "version": "2.1.0", - "description": "Regular expression for matching IP addresses (IPv4 & IPv6)", - "license": "MIT", - "repository": "sindresorhus/ip-regex", + "_args": [ + [ + "ip-regex@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ip-regex@2.1.0", + "_id": "ip-regex@2.1.0", + "_inBundle": false, + "_integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "_location": "/ip-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ip-regex@2.1.0", + "name": "ip-regex", + "escapedName": "ip-regex", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/default-gateway" + ], + "_resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/ip-regex/issues" + }, + "description": "Regular expression for matching IP addresses (IPv4 & IPv6)", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/ip-regex#readme", "keywords": [ "ip", "ipv6", @@ -35,10 +64,16 @@ "address", "validate" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "ip-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/ip-regex.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "2.1.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/ip/package.json b/admin/vue2/element-admin-v3/node_modules/ip/package.json index c783fdd43..cabfa326f 100644 --- a/admin/vue2/element-admin-v3/node_modules/ip/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ip/package.json @@ -1,21 +1,57 @@ { - "name": "ip", - "version": "1.1.5", - "author": "Fedor Indutny ", - "homepage": "https://github.com/indutny/node-ip", - "repository": { - "type": "git", - "url": "http://github.com/indutny/node-ip.git" + "_args": [ + [ + "ip@1.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ip@1.1.5", + "_id": "ip@1.1.5", + "_inBundle": false, + "_integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "_location": "/ip", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ip@1.1.5", + "name": "ip", + "escapedName": "ip", + "rawSpec": "1.1.5", + "saveSpec": null, + "fetchSpec": "1.1.5" }, - "main": "lib/ip", + "_requiredBy": [ + "/dns-packet", + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "_spec": "1.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/indutny/node-ip/issues" + }, + "description": "[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip)", "devDependencies": { "jscs": "^2.1.1", "jshint": "^2.8.0", "mocha": "~1.3.2" }, + "homepage": "https://github.com/indutny/node-ip", + "license": "MIT", + "main": "lib/ip", + "name": "ip", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/node-ip.git" + }, "scripts": { - "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter spec test/*-test.js", - "fix": "jscs lib/*.js test/*.js --fix" + "fix": "jscs lib/*.js test/*.js --fix", + "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter spec test/*-test.js" }, - "license": "MIT" + "version": "1.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/ipaddr.js/package.json b/admin/vue2/element-admin-v3/node_modules/ipaddr.js/package.json index f4d35475d..3ad750a3d 100644 --- a/admin/vue2/element-admin-v3/node_modules/ipaddr.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ipaddr.js/package.json @@ -1,35 +1,74 @@ { - "name": "ipaddr.js", - "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", - "version": "1.9.1", - "author": "whitequark ", - "directories": { - "lib": "./lib" + "_args": [ + [ + "ipaddr.js@1.9.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ipaddr.js@1.9.1", + "_id": "ipaddr.js@1.9.1", + "_inBundle": false, + "_integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "_location": "/ipaddr.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ipaddr.js@1.9.1", + "name": "ipaddr.js", + "escapedName": "ipaddr.js", + "rawSpec": "1.9.1", + "saveSpec": null, + "fetchSpec": "1.9.1" + }, + "_requiredBy": [ + "/internal-ip", + "/proxy-addr" + ], + "_resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "_spec": "1.9.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "whitequark", + "email": "whitequark@whitequark.org" + }, + "bugs": { + "url": "https://github.com/whitequark/ipaddr.js/issues" }, "dependencies": {}, + "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", "devDependencies": { "coffee-script": "~1.12.6", "nodeunit": "^0.11.3", "uglify-js": "~3.0.19" }, - "scripts": { - "test": "cake build test" + "directories": { + "lib": "./lib" + }, + "engines": { + "node": ">= 0.10" }, "files": [ "lib/", "LICENSE", "ipaddr.min.js" ], + "homepage": "https://github.com/whitequark/ipaddr.js#readme", "keywords": [ "ip", "ipv4", "ipv6" ], - "repository": "git://github.com/whitequark/ipaddr.js", + "license": "MIT", "main": "./lib/ipaddr.js", - "engines": { - "node": ">= 0.10" + "name": "ipaddr.js", + "repository": { + "type": "git", + "url": "git://github.com/whitequark/ipaddr.js.git" }, - "license": "MIT", - "types": "./lib/ipaddr.js.d.ts" + "scripts": { + "test": "cake build test" + }, + "types": "./lib/ipaddr.js.d.ts", + "version": "1.9.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-absolute-url/package.json b/admin/vue2/element-admin-v3/node_modules/is-absolute-url/package.json index 9cb5d6859..70d441718 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-absolute-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-absolute-url/package.json @@ -1,35 +1,70 @@ { - "name": "is-absolute-url", - "version": "3.0.3", - "description": "Check if a URL is absolute", - "license": "MIT", - "repository": "sindresorhus/is-absolute-url", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "url", - "absolute", - "relative", - "uri", - "is", - "check" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-absolute-url@3.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-absolute-url@3.0.3", + "_id": "is-absolute-url@3.0.3", + "_inBundle": false, + "_integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "_location": "/is-absolute-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-absolute-url@3.0.3", + "name": "is-absolute-url", + "escapedName": "is-absolute-url", + "rawSpec": "3.0.3", + "saveSpec": null, + "fetchSpec": "3.0.3" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", + "_spec": "3.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-absolute-url/issues" + }, + "description": "Check if a URL is absolute", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-absolute-url#readme", + "keywords": [ + "url", + "absolute", + "relative", + "uri", + "is", + "check" + ], + "license": "MIT", + "name": "is-absolute-url", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-absolute-url.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "3.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json index 5de879e11..46327f49c 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/is-accessor-descriptor/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/is-accessor-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/package.json index 0f39c64c8..7269bb851 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-accessor-descriptor/package.json @@ -1,31 +1,56 @@ { - "name": "is-accessor-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "version": "0.1.6", - "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-accessor-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" + "_args": [ + [ + "is-accessor-descriptor@0.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-accessor-descriptor@0.1.6", + "_id": "is-accessor-descriptor@0.1.6", + "_inBundle": false, + "_integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "_location": "/is-accessor-descriptor", + "_phantomChildren": { + "is-buffer": "1.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "is-accessor-descriptor@0.1.6", + "name": "is-accessor-descriptor", + "escapedName": "is-accessor-descriptor", + "rawSpec": "0.1.6", + "saveSpec": null, + "fetchSpec": "0.1.6" + }, + "_requiredBy": [ + "/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "_spec": "0.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" }, "dependencies": { "kind-of": "^3.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", "devDependencies": { "mocha": "*", "should": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", "keywords": [ "accessor", "check", @@ -44,6 +69,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-accessor-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-accessor-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -57,5 +92,6 @@ "gulp-format-md" ], "layout": "default" - } + }, + "version": "0.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-arguments/package.json b/admin/vue2/element-admin-v3/node_modules/is-arguments/package.json index 2cfb2d29b..8c4a01aeb 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-arguments/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-arguments/package.json @@ -1,89 +1,117 @@ { - "name": "is-arguments", - "version": "1.1.0", - "description": "Is this an arguments object? It's a harder question than you think.", - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run --silent lint", - "test": "npm run tests-only", - "tests-only": "nyc tape 'test/**/*.js'", - "posttest": "npx aud --production", - "lint": "eslint .", - "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://github.com/inspect-js/is-arguments.git" - }, - "bugs": { - "url": "https://github.com/inspect-js/is-arguments/issues" - }, - "homepage": "https://github.com/inspect-js/is-arguments", - "keywords": [ - "arguments", - "js", - "javascript", - "is-arguments", - "is", - "object" - ], - "dependencies": { - "call-bind": "^1.0.0" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.14.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" - }, - "testling": { - "files": "test.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-arguments@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-arguments@1.1.0", + "_id": "is-arguments@1.1.0", + "_inBundle": false, + "_integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=", + "_location": "/is-arguments", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-arguments@1.1.0", + "name": "is-arguments", + "escapedName": "is-arguments", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/deep-equal" + ], + "_resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117383813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-arguments/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": { + "call-bind": "^1.0.0" + }, + "description": "Is this an arguments object? It's a harder question than you think.", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.14.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-arguments", + "keywords": [ + "arguments", + "js", + "javascript", + "is-arguments", + "is", + "object" + ], + "license": "MIT", + "main": "index.js", + "name": "is-arguments", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-arguments.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-arrayish/package.json b/admin/vue2/element-admin-v3/node_modules/is-arrayish/package.json index 8b2d1c308..b3f91fa57 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-arrayish/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-arrayish/package.json @@ -1,8 +1,50 @@ { - "name": "is-arrayish", + "_args": [ + [ + "is-arrayish@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-arrayish@0.2.1", + "_id": "is-arrayish@0.2.1", + "_inBundle": false, + "_integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "_location": "/is-arrayish", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-arrayish@0.2.1", + "name": "is-arrayish", + "escapedName": "is-arrayish", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" + }, + "_requiredBy": [ + "/error-ex" + ], + "_resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Qix", + "url": "http://github.com/qix-" + }, + "bugs": { + "url": "https://github.com/qix-/node-is-arrayish/issues" + }, "description": "Determines if an object can be used as an array", - "version": "0.2.1", - "author": "Qix (http://github.com/qix-)", + "devDependencies": { + "coffee-script": "^1.9.3", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "mocha": "^2.2.5", + "should": "^7.0.1", + "xo": "^0.6.1" + }, + "homepage": "https://github.com/qix-/node-is-arrayish#readme", "keywords": [ "is", "array", @@ -15,20 +57,14 @@ "type" ], "license": "MIT", + "name": "is-arrayish", + "repository": { + "type": "git", + "url": "git+https://github.com/qix-/node-is-arrayish.git" + }, "scripts": { "pretest": "xo", "test": "mocha --compilers coffee:coffee-script/register" }, - "repository": { - "type": "git", - "url": "https://github.com/qix-/node-is-arrayish.git" - }, - "devDependencies": { - "coffee-script": "^1.9.3", - "coveralls": "^2.11.2", - "istanbul": "^0.3.17", - "mocha": "^2.2.5", - "should": "^7.0.1", - "xo": "^0.6.1" - } + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-bigint/package.json b/admin/vue2/element-admin-v3/node_modules/is-bigint/package.json index b2786b6a0..98fda0110 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-bigint/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-bigint/package.json @@ -1,55 +1,87 @@ { - "name": "is-bigint", - "version": "1.0.2", - "description": "Is this value an ES BigInt?", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "lint": "eslint .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --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/inspect-js/is-bigint.git" - }, - "keywords": [ - "bigint", - "es", - "integer", - "is" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-bigint/issues" - }, - "homepage": "https://github.com/inspect-js/is-bigint#readme", - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "eslint": "^7.25.0", - "has-symbols": "^1.0.2", - "nyc": "^10.3.2", - "object-inspect": "^1.10.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-bigint@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-bigint@1.0.2", + "_id": "is-bigint@1.0.2", + "_inBundle": false, + "_integrity": "sha1-/7OBRCUDI1rSReqJ5Fs9v/BA7lo=", + "_location": "/is-bigint", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-bigint@1.0.2", + "name": "is-bigint", + "escapedName": "is-bigint", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/which-boxed-primitive" + ], + "_resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-bigint/issues" + }, + "description": "Is this value an ES BigInt?", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "eslint": "^7.25.0", + "has-symbols": "^1.0.2", + "nyc": "^10.3.2", + "object-inspect": "^1.10.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-bigint#readme", + "keywords": [ + "bigint", + "es", + "integer", + "is" + ], + "license": "MIT", + "main": "index.js", + "name": "is-bigint", + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/is-bigint.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-binary-path/package.json b/admin/vue2/element-admin-v3/node_modules/is-binary-path/package.json index cd21d885c..c2b9b8e69 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-binary-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-binary-path/package.json @@ -1,23 +1,54 @@ { - "name": "is-binary-path", - "version": "1.0.1", - "description": "Check if a filepath is a binary file", - "license": "MIT", - "repository": "sindresorhus/is-binary-path", + "_args": [ + [ + "is-binary-path@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-binary-path@1.0.1", + "_id": "is-binary-path@1.0.1", + "_inBundle": false, + "_integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "_location": "/is-binary-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-binary-path@1.0.1", + "name": "is-binary-path", + "escapedName": "is-binary-path", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-binary-path/issues" + }, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "description": "Check if a filepath is a binary file", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-binary-path#readme", "keywords": [ "bin", "binary", @@ -30,10 +61,14 @@ "detect", "is" ], - "dependencies": { - "binary-extensions": "^1.0.0" + "license": "MIT", + "name": "is-binary-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-binary-path.git" }, - "devDependencies": { - "ava": "0.0.4" - } + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-boolean-object/package.json b/admin/vue2/element-admin-v3/node_modules/is-boolean-object/package.json index 6ad211285..ce51fb19c 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-boolean-object/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-boolean-object/package.json @@ -1,86 +1,122 @@ { - "name": "is-boolean-object", - "version": "1.1.1", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "Is this value a JS Boolean? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "test": "npm run tests-only && npm run test:harmony && npm run test:corejs", - "tests-only": "nyc tape 'test/**/*.js'", - "test:harmony": "node --harmony --es-staging test", - "test:corejs": "nyc tape test-corejs.js", - "posttest": "aud --production", - "prelint": "npm run eccheck", - "lint": "eslint --ext=js,mjs .", - "eccheck": "eclint check $(git ls-files)", - "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://github.com/inspect-js/is-boolean-object.git" - }, - "keywords": [ - "Boolean", - "ES6", - "toStringTag", - "@@toStringTag", - "Boolean object", - "true", - "false", - "is-boolean" - ], - "dependencies": { - "call-bind": "^1.0.2" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "core-js": "^3.12.0", - "eclint": "^2.8.1", - "eslint": "^7.25.0", - "foreach": "^2.0.5", - "indexof": "^0.0.1", - "is": "^3.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-boolean-object@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-boolean-object@1.1.1", + "_id": "is-boolean-object@1.1.1", + "_inBundle": false, + "_integrity": "sha1-PAh48DXLghIo01DS4eNnGXFqPeg=", + "_location": "/is-boolean-object", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-boolean-object@1.1.1", + "name": "is-boolean-object", + "escapedName": "is-boolean-object", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/which-boxed-primitive" + ], + "_resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-boolean-object/issues" + }, + "dependencies": { + "call-bind": "^1.0.2" + }, + "description": "Is this value a JS Boolean? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eclint": "^2.8.1", + "eslint": "^7.25.0", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-boolean-object#readme", + "keywords": [ + "Boolean", + "ES6", + "toStringTag", + "@@toStringTag", + "Boolean object", + "true", + "false", + "is-boolean" + ], + "license": "MIT", + "main": "index.js", + "name": "is-boolean-object", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-boolean-object.git" + }, + "scripts": { + "eccheck": "eclint check $(git ls-files)", + "lint": "eslint --ext=js,mjs .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prelint": "npm run eccheck", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only && npm run test:harmony && npm run test:corejs", + "test:corejs": "nyc tape test-corejs.js", + "test:harmony": "node --harmony --es-staging test", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/is-buffer/package.json index ea12137a6..ab8aab27e 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-buffer/package.json @@ -1,7 +1,39 @@ { - "name": "is-buffer", - "description": "Determine if an object is a Buffer", - "version": "1.1.6", + "_args": [ + [ + "is-buffer@1.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-buffer@1.1.6", + "_id": "is-buffer@1.1.6", + "_inBundle": false, + "_integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "_location": "/is-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-buffer@1.1.6", + "name": "is-buffer", + "escapedName": "is-buffer", + "rawSpec": "1.1.6", + "saveSpec": null, + "fetchSpec": "1.1.6" + }, + "_requiredBy": [ + "/align-text/kind-of", + "/has-values/kind-of", + "/is-accessor-descriptor/kind-of", + "/is-data-descriptor/kind-of", + "/is-number/kind-of", + "/object-copy/kind-of", + "/snapdragon-util/kind-of", + "/to-object-path/kind-of" + ], + "_resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429876103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", + "_spec": "1.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -11,11 +43,13 @@ "url": "https://github.com/feross/is-buffer/issues" }, "dependencies": {}, + "description": "Determine if an object is a Buffer", "devDependencies": { "standard": "*", "tape": "^4.0.0", "zuul": "^3.0.0" }, + "homepage": "https://github.com/feross/is-buffer#readme", "keywords": [ "buffer", "buffers", @@ -35,6 +69,7 @@ ], "license": "MIT", "main": "index.js", + "name": "is-buffer", "repository": { "type": "git", "url": "git://github.com/feross/is-buffer.git" @@ -47,5 +82,6 @@ }, "testling": { "files": "test/*.js" - } + }, + "version": "1.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-callable/package.json b/admin/vue2/element-admin-v3/node_modules/is-callable/package.json index fe36c0a21..84268adbc 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-callable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-callable/package.json @@ -1,100 +1,134 @@ { - "name": "is-callable", - "version": "1.2.3", - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "description": "Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npx aud --production", - "tests-only": "npm run --silent test:stock && npm run --silent test:staging", - "test:stock": "node test", - "test:staging": "node --es-staging test", - "coverage": "npm run --silent istanbul", - "covert": "covert test", - "covert:quiet": "covert test --quiet", - "istanbul": "npm run --silent istanbul:clean && npm run --silent istanbul:std && npm run --silent istanbul:harmony && npm run --silent istanbul:merge && istanbul check", - "istanbul:clean": "rimraf coverage coverage-std coverage-harmony", - "istanbul:merge": "istanbul-merge --out coverage/coverage.raw.json coverage-harmony/coverage.raw.json coverage-std/coverage.raw.json && istanbul report html", - "istanbul:harmony": "node --harmony ./node_modules/istanbul/lib/cli.js cover test --dir coverage-harmony", - "istanbul:std": "istanbul cover test --report html --dir coverage-std", - "prelint": "eclint check *", - "lint": "eslint ." - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/is-callable.git" - }, - "keywords": [ - "Function", - "function", - "callable", - "generator", - "generator function", - "arrow", - "arrow function", - "ES6", - "toStringTag", - "@@toStringTag" - ], - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^17.5.0", - "aud": "^1.1.3", - "covert": "^1.1.1", - "eclint": "^2.8.1", - "eslint": "^7.19.0", - "foreach": "^2.0.5", - "istanbul": "1.1.0-alpha.1", - "istanbul-merge": "^1.1.1", - "make-arrow-function": "^1.2.0", - "make-async-function": "^1.0.0", - "make-generator-function": "^2.0.0", - "rimraf": "^2.7.1", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "greenkeeper": { - "ignore": [ - "rimraf" - ] - } + "_args": [ + [ + "is-callable@1.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-callable@1.2.3", + "_id": "is-callable@1.2.3", + "_inBundle": false, + "_integrity": "sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=", + "_location": "/is-callable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-callable@1.2.3", + "name": "is-callable", + "escapedName": "is-callable", + "rawSpec": "1.2.3", + "saveSpec": null, + "fetchSpec": "1.2.3" + }, + "_requiredBy": [ + "/es-abstract", + "/es-to-primitive" + ], + "_resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz?cache=0&sync_timestamp=1612133072647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.3.tgz", + "_spec": "1.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "bugs": { + "url": "https://github.com/ljharb/is-callable/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "description": "Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^17.5.0", + "aud": "^1.1.3", + "covert": "^1.1.1", + "eclint": "^2.8.1", + "eslint": "^7.19.0", + "foreach": "^2.0.5", + "istanbul": "1.1.0-alpha.1", + "istanbul-merge": "^1.1.1", + "make-arrow-function": "^1.2.0", + "make-async-function": "^1.0.0", + "make-generator-function": "^2.0.0", + "rimraf": "^2.7.1", + "safe-publish-latest": "^1.1.4", + "tape": "^5.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "greenkeeper": { + "ignore": [ + "rimraf" + ] + }, + "homepage": "https://github.com/ljharb/is-callable#readme", + "keywords": [ + "Function", + "function", + "callable", + "generator", + "generator function", + "arrow", + "arrow function", + "ES6", + "toStringTag", + "@@toStringTag" + ], + "license": "MIT", + "main": "index.js", + "name": "is-callable", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-callable.git" + }, + "scripts": { + "coverage": "npm run --silent istanbul", + "covert": "covert test", + "covert:quiet": "covert test --quiet", + "istanbul": "npm run --silent istanbul:clean && npm run --silent istanbul:std && npm run --silent istanbul:harmony && npm run --silent istanbul:merge && istanbul check", + "istanbul:clean": "rimraf coverage coverage-std coverage-harmony", + "istanbul:harmony": "node --harmony ./node_modules/istanbul/lib/cli.js cover test --dir coverage-harmony", + "istanbul:merge": "istanbul-merge --out coverage/coverage.raw.json coverage-harmony/coverage.raw.json coverage-std/coverage.raw.json && istanbul report html", + "istanbul:std": "istanbul cover test --report html --dir coverage-std", + "lint": "eslint .", + "posttest": "npx aud --production", + "prelint": "eclint check *", + "prepublish": "safe-publish-latest", + "pretest": "npm run --silent lint", + "test": "npm run --silent tests-only", + "test:staging": "node --es-staging test", + "test:stock": "node test", + "tests-only": "npm run --silent test:stock && npm run --silent test:staging" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-ci/package.json b/admin/vue2/element-admin-v3/node_modules/is-ci/package.json index 2d567b010..44dc9bfa0 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-ci/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-ci/package.json @@ -1,23 +1,57 @@ { - "name": "is-ci", - "version": "1.2.1", - "description": "Detect if the current environment is a CI server", - "bin": "bin.js", - "main": "index.js", + "_args": [ + [ + "is-ci@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-ci@1.2.1", + "_id": "is-ci@1.2.1", + "_inBundle": false, + "_integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", + "_location": "/is-ci", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-ci@1.2.1", + "name": "is-ci", + "escapedName": "is-ci", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/husky" + ], + "_resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thomas Watson Steen", + "email": "w@tson.dk", + "url": "https://twitter.com/wa7son" + }, + "bin": { + "is-ci": "bin.js" + }, + "bugs": { + "url": "https://github.com/watson/is-ci/issues" + }, + "coordinates": [ + 55.778255, + 12.593033 + ], "dependencies": { "ci-info": "^1.5.0" }, + "description": "Detect if the current environment is a CI server", "devDependencies": { "clear-require": "^1.0.1", "standard": "^11.0.1" }, - "scripts": { - "test": "standard && node test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/watson/is-ci.git" - }, + "homepage": "https://github.com/watson/is-ci", "keywords": [ "ci", "continuous", @@ -25,14 +59,15 @@ "test", "detect" ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", "license": "MIT", - "bugs": { - "url": "https://github.com/watson/is-ci/issues" + "main": "index.js", + "name": "is-ci", + "repository": { + "type": "git", + "url": "git+https://github.com/watson/is-ci.git" }, - "homepage": "https://github.com/watson/is-ci", - "coordinates": [ - 55.778255, - 12.593033 - ] + "scripts": { + "test": "standard && node test.js" + }, + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-color-stop/package.json b/admin/vue2/element-admin-v3/node_modules/is-color-stop/package.json index 2260103b3..b7562332f 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-color-stop/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-color-stop/package.json @@ -1,23 +1,39 @@ { - "name": "is-color-stop", - "description": "Check if a string is CSS color stop", - "version": "1.1.0", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "is-color-stop@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-color-stop@1.1.0", + "_id": "is-color-stop@1.1.0", + "_inBundle": false, + "_integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "_location": "/is-color-stop", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-color-stop@1.1.0", + "name": "is-color-stop", + "escapedName": "is-color-stop", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "scripts": { - "test": "nyc --reporter=lcov --reporter=text mocha", - "coveralls": "cat ./coverage/lcov.info | coveralls", - "lint": "eslint --ext .js lib util ./index.js" + "_requiredBy": [ + "/postcss-minify-gradients" + ], + "_resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "pigcan", + "email": "jiangjay818@gmail.com" }, - "devDependencies": { - "coveralls": "^2.13.1", - "eslint": "^4.3.0", - "eslint-config-airbnb": "^15.1.0", - "eslint-plugin-import": "^2.7.0", - "mocha": "^3.4.2", - "nyc": "^11.0.3" + "bugs": { + "url": "https://github.com/pigcan/is-color-stop/issues" }, "dependencies": { "css-color-names": "^0.0.4", @@ -27,18 +43,34 @@ "rgb-regex": "^1.0.1", "rgba-regex": "^1.0.0" }, - "repository": { - "type": "git", - "url": "git+https://github.com/pigcan/is-color-stop.git" + "description": "Check if a string is CSS color stop", + "devDependencies": { + "coveralls": "^2.13.1", + "eslint": "^4.3.0", + "eslint-config-airbnb": "^15.1.0", + "eslint-plugin-import": "^2.7.0", + "mocha": "^3.4.2", + "nyc": "^11.0.3" + }, + "directories": { + "test": "test" }, + "homepage": "https://github.com/pigcan/is-color-stop#readme", "keywords": [ "color-stop", "is-color" ], - "author": "pigcan ", "license": "MIT", - "bugs": { - "url": "https://github.com/pigcan/is-color-stop/issues" + "main": "index.js", + "name": "is-color-stop", + "repository": { + "type": "git", + "url": "git+https://github.com/pigcan/is-color-stop.git" + }, + "scripts": { + "coveralls": "cat ./coverage/lcov.info | coveralls", + "lint": "eslint --ext .js lib util ./index.js", + "test": "nyc --reporter=lcov --reporter=text mocha" }, - "homepage": "https://github.com/pigcan/is-color-stop#readme" + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-core-module/package.json b/admin/vue2/element-admin-v3/node_modules/is-core-module/package.json index 0442e92cd..dd3c1bc3e 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-core-module/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-core-module/package.json @@ -1,68 +1,99 @@ { - "name": "is-core-module", - "version": "2.4.0", - "description": "Is this specifier a node.js core module?", - "main": "index.js", - "exports": { - ".": [ - { - "default": "./index.js" - }, - "./index.js" - ], - "./package.json": "./package.json" - }, - "scripts": { - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "lint": "eslint .", - "pretest": "npm run lint", - "tests-only": "tape 'test/**/*.js'", - "test": "nyc npm run tests-only", - "posttest": "aud --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/inspect-js/is-core-module.git" - }, - "keywords": [ - "core", - "modules", - "module", - "npm", - "node", - "dependencies" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-core-module/issues" - }, - "homepage": "https://github.com/inspect-js/is-core-module", - "dependencies": { - "has": "^1.0.3" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "eslint": "^7.26.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "semver": "^6.3.0", - "tape": "^5.2.2" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-core-module@2.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-core-module@2.4.0", + "_id": "is-core-module@2.4.0", + "_inBundle": false, + "_integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=", + "_location": "/is-core-module", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-core-module@2.4.0", + "name": "is-core-module", + "escapedName": "is-core-module", + "rawSpec": "2.4.0", + "saveSpec": null, + "fetchSpec": "2.4.0" + }, + "_requiredBy": [ + "/resolve" + ], + "_resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz", + "_spec": "2.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-core-module/issues" + }, + "dependencies": { + "has": "^1.0.3" + }, + "description": "Is this specifier a node.js core module?", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "eslint": "^7.26.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "semver": "^6.3.0", + "tape": "^5.2.2" + }, + "exports": { + ".": [ + { + "default": "./index.js" + }, + "./index.js" + ], + "./package.json": "./package.json" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-core-module", + "keywords": [ + "core", + "modules", + "module", + "npm", + "node", + "dependencies" + ], + "license": "MIT", + "main": "index.js", + "name": "is-core-module", + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/is-core-module.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "nyc npm run tests-only", + "tests-only": "tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "2.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/node_modules/kind-of/package.json index 5de879e11..3bcafb8e7 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/is-data-descriptor/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/is-data-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/package.json index 5fb294b7e..5a2de23c4 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-data-descriptor/package.json @@ -1,31 +1,56 @@ { - "name": "is-data-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "version": "0.1.4", - "homepage": "https://github.com/jonschlinkert/is-data-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-data-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" + "_args": [ + [ + "is-data-descriptor@0.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-data-descriptor@0.1.4", + "_id": "is-data-descriptor@0.1.4", + "_inBundle": false, + "_integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "_location": "/is-data-descriptor", + "_phantomChildren": { + "is-buffer": "1.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "is-data-descriptor@0.1.4", + "name": "is-data-descriptor", + "escapedName": "is-data-descriptor", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" + }, + "_requiredBy": [ + "/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "_spec": "0.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" }, "dependencies": { "kind-of": "^3.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", "devDependencies": { "mocha": "*", "should": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-data-descriptor", "keywords": [ "accessor", "check", @@ -44,6 +69,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-data-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-data-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -56,5 +91,6 @@ "plugins": [ "gulp-format-md" ] - } + }, + "version": "0.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-date-object/package.json b/admin/vue2/element-admin-v3/node_modules/is-date-object/package.json index 28c8f5c4a..fc650f391 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-date-object/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-date-object/package.json @@ -1,76 +1,111 @@ { - "name": "is-date-object", - "version": "1.0.4", - "author": "Jordan Harband", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "Is this value a JS Date object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "test": "npm run tests-only && npm run test:corejs", - "tests-only": "nyc tape 'test/**/*.js'", - "test:corejs": "nyc tape test-corejs.js", - "posttest": "aud --production", - "lint": "eslint .", - "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://github.com/inspect-js/is-date-object.git" - }, - "keywords": [ - "Date", - "ES6", - "toStringTag", - "@@toStringTag", - "Date object" - ], - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "core-js": "^3.12.0", - "eslint": "^7.26.0", - "foreach": "^2.0.5", - "indexof": "^0.0.1", - "is": "^3.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-date-object@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-date-object@1.0.4", + "_id": "is-date-object@1.0.4", + "_inBundle": false, + "_integrity": "sha1-VQz8wDr62gXuo90wmBx7CVUfc+U=", + "_location": "/is-date-object", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-date-object@1.0.4", + "name": "is-date-object", + "escapedName": "is-date-object", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/deep-equal", + "/es-to-primitive" + ], + "_resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-date-object/issues" + }, + "description": "Is this value a JS Date object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eslint": "^7.26.0", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-date-object#readme", + "keywords": [ + "Date", + "ES6", + "toStringTag", + "@@toStringTag", + "Date object" + ], + "license": "MIT", + "main": "index.js", + "name": "is-date-object", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-date-object.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only && npm run test:corejs", + "test:corejs": "nyc tape test-corejs.js", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-descriptor/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/is-descriptor/node_modules/kind-of/package.json index 334235fb0..f5ade956e 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-descriptor/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-descriptor/node_modules/kind-of/package.json @@ -1,35 +1,74 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "5.1.0", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@5.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@5.1.0", + "_id": "kind-of@5.1.0", + "_inBundle": false, + "_integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "_location": "/is-descriptor/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@5.1.0", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "5.1.0", + "saveSpec": null, + "fetchSpec": "5.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "_spec": "5.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.1.1", @@ -40,6 +79,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -63,6 +109,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -87,5 +144,6 @@ "typeof", "verb" ] - } + }, + "version": "5.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/is-descriptor/package.json index a561bfefc..bbba7e4ab 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-descriptor/package.json @@ -1,38 +1,73 @@ { - "name": "is-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "version": "0.1.6", - "homepage": "https://github.com/jonschlinkert/is-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-descriptor@0.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-descriptor/issues" + "_from": "is-descriptor@0.1.6", + "_id": "is-descriptor@0.1.6", + "_inBundle": false, + "_integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "_location": "/is-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-descriptor@0.1.6", + "name": "is-descriptor", + "escapedName": "is-descriptor", + "rawSpec": "0.1.6", + "saveSpec": null, + "fetchSpec": "0.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/class-utils/define-property", + "/expand-brackets/define-property", + "/object-copy/define-property", + "/snapdragon/define-property", + "/static-extend/define-property" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "_spec": "0.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-descriptor/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.4.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-descriptor", "keywords": [ "accessor", "check", @@ -51,6 +86,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -71,5 +116,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-directory/package.json b/admin/vue2/element-admin-v3/node_modules/is-directory/package.json index 701d0b275..6f921251a 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-directory/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-directory/package.json @@ -1,28 +1,52 @@ { - "name": "is-directory", - "description": "Returns true if a filepath exists on the file system and it's directory.", - "version": "0.3.1", - "homepage": "https://github.com/jonschlinkert/is-directory", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-directory", - "bugs": { - "url": "https://github.com/jonschlinkert/is-directory/issues" + "_args": [ + [ + "is-directory@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-directory@0.3.1", + "_id": "is-directory@0.3.1", + "_inBundle": false, + "_integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "_location": "/is-directory", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-directory@0.3.1", + "name": "is-directory", + "escapedName": "is-directory", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/cosmiconfig" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-directory/issues" }, + "description": "Returns true if a filepath exists on the file system and it's directory.", "devDependencies": { "gulp-format-md": "^0.1.9", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-directory", "keywords": [ "dir", "directories", @@ -39,6 +63,16 @@ "paths", "system" ], + "license": "MIT", + "main": "index.js", + "name": "is-directory", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-directory.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -61,5 +95,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-docker/package.json b/admin/vue2/element-admin-v3/node_modules/is-docker/package.json index ae282258f..042df3196 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-docker/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-docker/package.json @@ -1,42 +1,80 @@ { - "name": "is-docker", - "version": "2.2.1", - "description": "Check if the process is running inside a Docker container", - "license": "MIT", - "repository": "sindresorhus/is-docker", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "bin": "cli.js", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "cli.js" - ], - "keywords": [ - "detect", - "docker", - "dockerized", - "container", - "inside", - "is", - "env", - "environment", - "process" - ], - "devDependencies": { - "ava": "^1.4.1", - "sinon": "^7.3.2", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-docker@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-docker@2.2.1", + "_id": "is-docker@2.2.1", + "_inBundle": false, + "_integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=", + "_location": "/is-docker", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-docker@2.2.1", + "name": "is-docker", + "escapedName": "is-docker", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" + }, + "_requiredBy": [ + "/node-notifier/is-wsl" + ], + "_resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "bin": { + "is-docker": "cli.js" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-docker/issues" + }, + "description": "Check if the process is running inside a Docker container", + "devDependencies": { + "ava": "^1.4.1", + "sinon": "^7.3.2", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts", + "cli.js" + ], + "funding": "https://github.com/sponsors/sindresorhus", + "homepage": "https://github.com/sindresorhus/is-docker#readme", + "keywords": [ + "detect", + "docker", + "dockerized", + "container", + "inside", + "is", + "env", + "environment", + "process" + ], + "license": "MIT", + "name": "is-docker", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-docker.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-expression/package.json b/admin/vue2/element-admin-v3/node_modules/is-expression/package.json index 07f77c44c..27254cd81 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-expression/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-expression/package.json @@ -1,30 +1,66 @@ { - "name": "is-expression", - "version": "4.0.0", - "files": [ - "index.js" + "_args": [ + [ + "is-expression@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "description": "Check if a string is a valid JavaScript expression", - "keywords": [ - "javascript", - "expression" + "_development": true, + "_from": "is-expression@4.0.0", + "_id": "is-expression@4.0.0", + "_inBundle": false, + "_integrity": "sha1-wzFVliq/IdCv0lUlFNZ9LsFv0qs=", + "_location": "/is-expression", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-expression@4.0.0", + "name": "is-expression", + "escapedName": "is-expression", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/pug-lexer" ], + "_resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, + "bugs": { + "url": "https://github.com/pugjs/is-expression/issues" + }, "dependencies": { "acorn": "^7.1.1", "object-assign": "^4.1.1" }, + "description": "Check if a string is a valid JavaScript expression", "devDependencies": { "nyc": "^15.0.1", "testit": "^3.1.0" }, - "scripts": { - "test": "node test && npm run coverage", - "coverage": "nyc node test.js" - }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/pugjs/is-expression#readme", + "keywords": [ + "javascript", + "expression" + ], + "license": "MIT", + "name": "is-expression", "repository": { "type": "git", - "url": "https://github.com/pugjs/is-expression.git" + "url": "git+https://github.com/pugjs/is-expression.git" + }, + "scripts": { + "coverage": "nyc node test.js", + "test": "node test && npm run coverage" }, - "author": "Timothy Gu ", - "license": "MIT" + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-extendable/package.json b/admin/vue2/element-admin-v3/node_modules/is-extendable/package.json index 5dd006ead..ff6739f90 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-extendable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-extendable/package.json @@ -1,27 +1,60 @@ { - "name": "is-extendable", - "description": "Returns true if a value is any of the object types: array, regexp, plain object, function or date. This is useful for determining if a value can be extended, e.g. \"can the value have keys?\"", - "version": "0.1.1", - "homepage": "https://github.com/jonschlinkert/is-extendable", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-extendable", - "bugs": { - "url": "https://github.com/jonschlinkert/is-extendable/issues" + "_args": [ + [ + "is-extendable@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-extendable@0.1.1", + "_id": "is-extendable@0.1.1", + "_inBundle": false, + "_integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "_location": "/is-extendable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-extendable@0.1.1", + "name": "is-extendable", + "escapedName": "is-extendable", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/braces/extend-shallow", + "/expand-brackets/extend-shallow", + "/extglob/extend-shallow", + "/fill-range/extend-shallow", + "/mixin-object", + "/set-value", + "/set-value/extend-shallow", + "/shallow-clone", + "/snapdragon/extend-shallow", + "/svg-baker/extend-shallow", + "/union-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-extendable/issues" }, + "description": "Returns true if a value is any of the object types: array, regexp, plain object, function or date. This is useful for determining if a value can be extended, e.g. \"can the value have keys?\"", "devDependencies": { "mocha": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-extendable", "keywords": [ "array", "assign", @@ -35,6 +68,16 @@ "regex", "test" ], + "license": "MIT", + "main": "index.js", + "name": "is-extendable", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-extendable.git" + }, + "scripts": { + "test": "mocha" + }, "verbiage": { "related": { "list": [ @@ -47,5 +90,6 @@ "assign-deep" ] } - } + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-extglob/package.json b/admin/vue2/element-admin-v3/node_modules/is-extglob/package.json index 7a908369d..4fef5fcbc 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-extglob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-extglob/package.json @@ -1,28 +1,52 @@ { - "name": "is-extglob", - "description": "Returns true if a string has an extglob.", - "version": "2.1.1", - "homepage": "https://github.com/jonschlinkert/is-extglob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-extglob", - "bugs": { - "url": "https://github.com/jonschlinkert/is-extglob/issues" + "_args": [ + [ + "is-extglob@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-extglob@2.1.1", + "_id": "is-extglob@2.1.1", + "_inBundle": false, + "_integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "_location": "/is-extglob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-extglob@2.1.1", + "name": "is-extglob", + "escapedName": "is-extglob", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/glob-parent/is-glob", + "/is-glob" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-extglob/issues" }, + "description": "Returns true if a string has an extglob.", "devDependencies": { "gulp-format-md": "^0.1.10", "mocha": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-extglob", "keywords": [ "bash", "braces", @@ -42,6 +66,16 @@ "string", "test" ], + "license": "MIT", + "main": "index.js", + "name": "is-extglob", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-extglob.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -65,5 +99,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-finite/package.json b/admin/vue2/element-admin-v3/node_modules/is-finite/package.json index efe20f31d..9ebe27a37 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-finite/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-finite/package.json @@ -1,34 +1,70 @@ { - "name": "is-finite", - "version": "1.1.0", - "description": "ES2015 Number.isFinite() ponyfill", - "license": "MIT", - "repository": "sindresorhus/is-finite", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "es2015", - "ponyfill", - "polyfill", - "shim", - "number", - "finite", - "is" - ], - "devDependencies": { - "ava": "^3.2.0" - } + "_args": [ + [ + "is-finite@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-finite@1.1.0", + "_id": "is-finite@1.1.0", + "_inBundle": false, + "_integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", + "_location": "/is-finite", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-finite@1.1.0", + "name": "is-finite", + "escapedName": "is-finite", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/repeating" + ], + "_resolved": "https://registry.nlark.com/is-finite/download/is-finite-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-finite/issues" + }, + "description": "ES2015 Number.isFinite() ponyfill", + "devDependencies": { + "ava": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "funding": "https://github.com/sponsors/sindresorhus", + "homepage": "https://github.com/sindresorhus/is-finite#readme", + "keywords": [ + "es2015", + "ponyfill", + "polyfill", + "shim", + "number", + "finite", + "is" + ], + "license": "MIT", + "name": "is-finite", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-finite.git" + }, + "scripts": { + "test": "ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-fullwidth-code-point/package.json b/admin/vue2/element-admin-v3/node_modules/is-fullwidth-code-point/package.json index 3049d9e03..96ad27553 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-fullwidth-code-point/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-fullwidth-code-point/package.json @@ -1,23 +1,59 @@ { - "name": "is-fullwidth-code-point", - "version": "2.0.0", - "description": "Check if the character represented by a given Unicode code point is fullwidth", - "license": "MIT", - "repository": "sindresorhus/is-fullwidth-code-point", + "_args": [ + [ + "is-fullwidth-code-point@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-fullwidth-code-point@2.0.0", + "_id": "is-fullwidth-code-point@2.0.0", + "_inBundle": false, + "_integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "_location": "/is-fullwidth-code-point", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-fullwidth-code-point@2.0.0", + "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/friendly-errors-webpack-plugin/string-width", + "/inquirer/string-width", + "/log-update/string-width", + "/slice-ansi", + "/string-width", + "/table/string-width", + "/webpack-cli/string-width", + "/wide-align/string-width" + ], + "_resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" + }, + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", "keywords": [ "fullwidth", "full-width", @@ -35,10 +71,16 @@ "detect", "check" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "is-fullwidth-code-point", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/is-function/package.json b/admin/vue2/element-admin-v3/node_modules/is-function/package.json index a8357edf3..92ce5130f 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-function/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-function/package.json @@ -1,27 +1,60 @@ { - "name": "is-function", - "version": "1.0.2", - "description": "is that thing a function? Use this module to find out", - "main": "index.js", + "_args": [ + [ + "is-function@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-function@1.0.2", + "_id": "is-function@1.0.2", + "_inBundle": false, + "_integrity": "sha1-Twl/MKv2762smDOxfKXcA/gUTgg=", + "_location": "/is-function", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-function@1.0.2", + "name": "is-function", + "escapedName": "is-function", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/xhr" + ], + "_resolved": "https://registry.npm.taobao.org/is-function/download/is-function-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Stephen Sugden", + "email": "me@stephensugden.com" + }, + "bugs": { + "url": "https://github.com/grncdr/js-is-function/issues" + }, "dependencies": {}, + "description": "is that thing a function? Use this module to find out", "devDependencies": { "tape": "~2.3.2" }, - "scripts": { - "test": "tape test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/grncdr/js-is-function.git" - }, "homepage": "https://github.com/grncdr/js-is-function", "keywords": [ "polyfill", "is-function", "ie6" ], - "author": "Stephen Sugden ", "license": "MIT", + "main": "index.js", + "name": "is-function", + "repository": { + "type": "git", + "url": "git://github.com/grncdr/js-is-function.git" + }, + "scripts": { + "test": "tape test.js" + }, "testling": { "files": "test.js", "browsers": [ @@ -39,5 +72,6 @@ "iphone/6.0..latest", "android-browser/4.2" ] - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-glob/package.json b/admin/vue2/element-admin-v3/node_modules/is-glob/package.json index 806000dbd..cf3e38dca 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-glob/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-glob/package.json @@ -1,36 +1,73 @@ { - "name": "is-glob", - "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", - "version": "4.0.1", - "homepage": "https://github.com/micromatch/is-glob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Daniel Perez (https://tuvistavie.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "is-glob@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/is-glob", - "bugs": { - "url": "https://github.com/micromatch/is-glob/issues" + "_from": "is-glob@4.0.1", + "_id": "is-glob@4.0.1", + "_inBundle": false, + "_integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "_location": "/is-glob", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-glob@4.0.1", + "name": "is-glob", + "escapedName": "is-glob", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/chokidar", + "/copy-webpack-plugin", + "/http-proxy-middleware", + "/lint-staged", + "/watchpack/chokidar", + "/watchpack/glob-parent" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/is-glob/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Daniel Perez", + "url": "https://tuvistavie.com" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "is-extglob": "^2.1.1" }, + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", "devDependencies": { "gulp-format-md": "^0.1.10", "mocha": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/micromatch/is-glob", "keywords": [ "bash", "braces", @@ -50,6 +87,16 @@ "string", "test" ], + "license": "MIT", + "main": "index.js", + "name": "is-glob", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/is-glob.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "layout": "default", "plugins": [ @@ -77,5 +124,6 @@ "verb", "vinyl" ] - } + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-negative-zero/package.json b/admin/vue2/element-admin-v3/node_modules/is-negative-zero/package.json index ca5fdc4b1..271179584 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-negative-zero/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-negative-zero/package.json @@ -1,79 +1,111 @@ { - "name": "is-negative-zero", - "version": "2.0.1", - "description": "Is this value negative zero? === will lie to you", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run lint", - "test": "npm run tests-only", - "tests-only": "nyc tape 'test/**/*.js'", - "posttest": "npx aud --production", - "lint": "eslint .", - "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://github.com/inspect-js/is-negative-zero.git" - }, - "bugs": { - "url": "https://github.com/inspect-js/is-negative-zero/issues" - }, - "homepage": "https://github.com/inspect-js/is-negative-zero", - "keywords": [ - "is", - "negative", - "zero", - "negative zero", - "number", - "positive", - "0", - "-0" - ], - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.14.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..12.0", - "opera/15.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-negative-zero@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-negative-zero@2.0.1", + "_id": "is-negative-zero@2.0.1", + "_inBundle": false, + "_integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", + "_location": "/is-negative-zero", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-negative-zero@2.0.1", + "name": "is-negative-zero", + "escapedName": "is-negative-zero", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/es-abstract" + ], + "_resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607125693555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-negative-zero/issues" + }, + "dependencies": {}, + "description": "Is this value negative zero? === will lie to you", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.14.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-negative-zero", + "keywords": [ + "is", + "negative", + "zero", + "negative zero", + "number", + "positive", + "0", + "-0" + ], + "license": "MIT", + "main": "index.js", + "name": "is-negative-zero", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-negative-zero.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..12.0", + "opera/15.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-number-object/package.json b/admin/vue2/element-admin-v3/node_modules/is-number-object/package.json index 3816d2fa4..2b1894237 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-number-object/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-number-object/package.json @@ -1,78 +1,114 @@ { - "name": "is-number-object", - "version": "1.0.5", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "npx aud --production", - "lint": "eslint .", - "eccheck": "eclint check *.js **/*.js > /dev/null", - "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://github.com/inspect-js/is-number-object.git" - }, - "keywords": [ - "Number", - "ES6", - "toStringTag", - "@@toStringTag", - "Number object" - ], - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "core-js": "^3.12.0", - "eclint": "^2.8.1", - "eslint": "^7.25.0", - "foreach": "^2.0.5", - "has-symbols": "^1.0.2", - "indexof": "^0.0.1", - "is": "^3.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-number-object@1.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-number-object@1.0.5", + "_id": "is-number-object@1.0.5", + "_inBundle": false, + "_integrity": "sha1-bt+u7XlQz/Ga/tzp+/yp7m3Sies=", + "_location": "/is-number-object", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-number-object@1.0.5", + "name": "is-number-object", + "escapedName": "is-number-object", + "rawSpec": "1.0.5", + "saveSpec": null, + "fetchSpec": "1.0.5" + }, + "_requiredBy": [ + "/which-boxed-primitive" + ], + "_resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.5.tgz", + "_spec": "1.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-number-object/issues" + }, + "description": "Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eclint": "^2.8.1", + "eslint": "^7.25.0", + "foreach": "^2.0.5", + "has-symbols": "^1.0.2", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-number-object#readme", + "keywords": [ + "Number", + "ES6", + "toStringTag", + "@@toStringTag", + "Number object" + ], + "license": "MIT", + "main": "index.js", + "name": "is-number-object", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-number-object.git" + }, + "scripts": { + "eccheck": "eclint check *.js **/*.js > /dev/null", + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-number/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/is-number/node_modules/kind-of/package.json index 5de879e11..33bbffe1b 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-number/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-number/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/is-number/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/is-number" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-number/package.json b/admin/vue2/element-admin-v3/node_modules/is-number/package.json index 8c1f9ab48..52a71643b 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-number/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-number/package.json @@ -1,37 +1,71 @@ { - "name": "is-number", - "description": "Returns true if the value is a number. comprehensive tests.", - "version": "3.0.0", - "homepage": "https://github.com/jonschlinkert/is-number", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Charlike Mike Reagent (http://www.tunnckocore.tk)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "is-number@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-number", - "bugs": { - "url": "https://github.com/jonschlinkert/is-number/issues" + "_from": "is-number@3.0.0", + "_id": "is-number@3.0.0", + "_inBundle": false, + "_integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "_location": "/is-number", + "_phantomChildren": { + "is-buffer": "1.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "is-number@3.0.0", + "name": "is-number", + "escapedName": "is-number", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/fill-range", + "/has-values", + "/to-regex-range" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" }, + "contributors": [ + { + "name": "Charlike Mike Reagent", + "url": "http://www.tunnckocore.tk" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "kind-of": "^3.0.2" }, + "description": "Returns true if the value is a number. comprehensive tests.", "devDependencies": { "benchmarked": "^0.2.5", "chalk": "^1.1.3", "gulp-format-md": "^0.1.10", "mocha": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-number", "keywords": [ "check", "coerce", @@ -53,6 +87,16 @@ "typeof", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-number", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-number.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -79,5 +123,6 @@ "verb", "verb-generate-readme" ] - } -} \ No newline at end of file + }, + "version": "3.0.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/is-obj/package.json b/admin/vue2/element-admin-v3/node_modules/is-obj/package.json index c441d272a..090e4a4a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-obj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-obj/package.json @@ -1,23 +1,53 @@ { - "name": "is-obj", - "version": "1.0.1", - "description": "Check if a value is an object", - "license": "MIT", - "repository": "sindresorhus/is-obj", + "_args": [ + [ + "is-obj@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-obj@1.0.1", + "_id": "is-obj@1.0.1", + "_inBundle": false, + "_integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "_location": "/is-obj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-obj@1.0.1", + "name": "is-obj", + "escapedName": "is-obj", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/stringify-object" + ], + "_resolved": "https://registry.nlark.com/is-obj/download/is-obj-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-obj/issues" + }, + "description": "Check if a value is an object", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-obj#readme", "keywords": [ "obj", "object", @@ -26,8 +56,14 @@ "test", "type" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "is-obj", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-obj.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-observable/package.json b/admin/vue2/element-admin-v3/node_modules/is-observable/package.json index d7891ee54..6925374b3 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-observable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-observable/package.json @@ -1,40 +1,76 @@ { - "name": "is-observable", - "version": "1.1.0", - "description": "Check if a value is an Observable", - "license": "MIT", - "repository": "sindresorhus/is-observable", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "observable", - "observables", - "is", - "check", - "detect", - "type" - ], - "dependencies": { - "symbol-observable": "^1.1.0" - }, - "devDependencies": { - "ava": "*", - "most": "^1.7.2", - "rxjs": "^5.5.5", - "xo": "*", - "xstream": "^11.0.0", - "zen-observable": "^0.6.0" - } + "_args": [ + [ + "is-observable@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-observable@1.1.0", + "_id": "is-observable@1.1.0", + "_inBundle": false, + "_integrity": "sha1-s+mGyPRN6VCGfKtUA/WjRlAFl14=", + "_location": "/is-observable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-observable@1.1.0", + "name": "is-observable", + "escapedName": "is-observable", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz?cache=0&sync_timestamp=1596373335763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-observable%2Fdownload%2Fis-observable-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-observable/issues" + }, + "dependencies": { + "symbol-observable": "^1.1.0" + }, + "description": "Check if a value is an Observable", + "devDependencies": { + "ava": "*", + "most": "^1.7.2", + "rxjs": "^5.5.5", + "xo": "*", + "xstream": "^11.0.0", + "zen-observable": "^0.6.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/is-observable#readme", + "keywords": [ + "observable", + "observables", + "is", + "check", + "detect", + "type" + ], + "license": "MIT", + "name": "is-observable", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-observable.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-path-cwd/package.json b/admin/vue2/element-admin-v3/node_modules/is-path-cwd/package.json index 55bad2220..d3b141fd9 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-path-cwd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-path-cwd/package.json @@ -1,36 +1,71 @@ { - "name": "is-path-cwd", - "version": "2.2.0", - "description": "Check if a path is the current working directory", - "license": "MIT", - "repository": "sindresorhus/is-path-cwd", - "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": [ - "path", - "cwd", - "pwd", - "check", - "filepath", - "file", - "folder" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-path-cwd@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-path-cwd@2.2.0", + "_id": "is-path-cwd@2.2.0", + "_inBundle": false, + "_integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "_location": "/is-path-cwd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-path-cwd@2.2.0", + "name": "is-path-cwd", + "escapedName": "is-path-cwd", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/del" + ], + "_resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1562347283002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-path-cwd/issues" + }, + "description": "Check if a path is the current working directory", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-path-cwd#readme", + "keywords": [ + "path", + "cwd", + "pwd", + "check", + "filepath", + "file", + "folder" + ], + "license": "MIT", + "name": "is-path-cwd", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-path-cwd.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-path-in-cwd/package.json b/admin/vue2/element-admin-v3/node_modules/is-path-in-cwd/package.json index 5e04983d2..e255b2ce1 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-path-in-cwd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-path-in-cwd/package.json @@ -1,41 +1,76 @@ { - "name": "is-path-in-cwd", - "version": "2.1.0", - "description": "Check if a path is in the current working directory", - "license": "MIT", - "repository": "sindresorhus/is-path-in-cwd", - "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": [ - "path", - "cwd", - "pwd", - "check", - "filepath", - "file", - "folder", - "in", - "inside" - ], - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-path-in-cwd@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-path-in-cwd@2.1.0", + "_id": "is-path-in-cwd@2.1.0", + "_inBundle": false, + "_integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "_location": "/is-path-in-cwd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-path-in-cwd@2.1.0", + "name": "is-path-in-cwd", + "escapedName": "is-path-in-cwd", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/del" + ], + "_resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-path-in-cwd/issues" + }, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "description": "Check if a path is in the current working directory", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-path-in-cwd#readme", + "keywords": [ + "path", + "cwd", + "pwd", + "check", + "filepath", + "file", + "folder", + "in", + "inside" + ], + "license": "MIT", + "name": "is-path-in-cwd", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-path-in-cwd.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-path-inside/package.json b/admin/vue2/element-admin-v3/node_modules/is-path-inside/package.json index 068e8c1a6..97fc8402a 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-path-inside/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-path-inside/package.json @@ -1,39 +1,74 @@ { - "name": "is-path-inside", - "version": "2.1.0", - "description": "Check if a path is inside another path", - "license": "MIT", - "repository": "sindresorhus/is-path-inside", - "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": [ - "path", - "inside", - "folder", - "directory", - "dir", - "file", - "resolve" - ], - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-path-inside@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-path-inside@2.1.0", + "_id": "is-path-inside@2.1.0", + "_inBundle": false, + "_integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "_location": "/is-path-inside", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-path-inside@2.1.0", + "name": "is-path-inside", + "escapedName": "is-path-inside", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/is-path-in-cwd" + ], + "_resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-path-inside/issues" + }, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "description": "Check if a path is inside another path", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-path-inside#readme", + "keywords": [ + "path", + "inside", + "folder", + "directory", + "dir", + "file", + "resolve" + ], + "license": "MIT", + "name": "is-path-inside", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-path-inside.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-plain-obj/package.json b/admin/vue2/element-admin-v3/node_modules/is-plain-obj/package.json index d331f6e81..3aed90724 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-plain-obj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-plain-obj/package.json @@ -1,23 +1,52 @@ { - "name": "is-plain-obj", - "version": "1.1.0", - "description": "Check if a value is a plain object", - "license": "MIT", - "repository": "sindresorhus/is-plain-obj", + "_args": [ + [ + "is-plain-obj@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-plain-obj@1.1.0", + "_id": "is-plain-obj@1.1.0", + "_inBundle": false, + "_integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "_location": "/is-plain-obj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-plain-obj@1.1.0", + "name": "is-plain-obj", + "escapedName": "is-plain-obj", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/merge-options" + ], + "_resolved": "https://registry.nlark.com/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-plain-obj/issues" + }, + "description": "Check if a value is a plain object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-plain-obj#readme", "keywords": [ "obj", "object", @@ -30,7 +59,14 @@ "pure", "simple" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "is-plain-obj", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-plain-obj.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-plain-object/package.json b/admin/vue2/element-admin-v3/node_modules/is-plain-object/package.json index dd6049860..b0d9378ff 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-plain-object/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-plain-object/package.json @@ -1,37 +1,63 @@ { - "name": "is-plain-object", - "description": "Returns true if an object was created by the `Object` constructor.", - "version": "2.0.4", - "homepage": "https://github.com/jonschlinkert/is-plain-object", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Osman Nuri Okumuş (http://onokumus.com)", - "Steven Vachon (https://svachon.com)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-plain-object@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-plain-object", - "bugs": { - "url": "https://github.com/jonschlinkert/is-plain-object/issues" + "_from": "is-plain-object@2.0.4", + "_id": "is-plain-object@2.0.4", + "_inBundle": false, + "_integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "_location": "/is-plain-object", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-plain-object@2.0.4", + "name": "is-plain-object", + "escapedName": "is-plain-object", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" }, - "license": "MIT", - "files": [ - "index.d.ts", - "index.js" + "_requiredBy": [ + "/clone-deep", + "/extend-shallow/is-extendable", + "/mixin-deep/is-extendable", + "/set-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1599667246252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js", - "test_browser": "mocha-phantomjs test/browser.html", - "test_node": "mocha", - "test": "npm run test_node && npm run browserify && npm run test_browser" + "bugs": { + "url": "https://github.com/jonschlinkert/is-plain-object/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Osman Nuri Okumuş", + "url": "http://onokumus.com" + }, + { + "name": "Steven Vachon", + "url": "https://svachon.com" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "isobject": "^3.0.1" }, + "description": "Returns true if an object was created by the `Object` constructor.", "devDependencies": { "browserify": "^14.4.0", "chai": "^4.0.2", @@ -41,6 +67,14 @@ "phantomjs": "^2.1.7", "uglify-js": "^3.0.24" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.d.ts", + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-plain-object", "keywords": [ "check", "is", @@ -55,6 +89,19 @@ "typeof", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-plain-object", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-plain-object.git" + }, + "scripts": { + "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js", + "test": "npm run test_node && npm run browserify && npm run test_browser", + "test_browser": "mocha-phantomjs test/browser.html", + "test_node": "mocha" + }, "types": "index.d.ts", "verb": { "toc": false, @@ -75,5 +122,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-promise/package.json b/admin/vue2/element-admin-v3/node_modules/is-promise/package.json index d70c7d840..caccaf773 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-promise/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-promise/package.json @@ -1,23 +1,59 @@ { - "name": "is-promise", - "version": "2.2.2", + "_args": [ + [ + "is-promise@2.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-promise@2.2.2", + "_id": "is-promise@2.2.2", + "_inBundle": false, + "_integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", + "_location": "/is-promise", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-promise@2.2.2", + "name": "is-promise", + "escapedName": "is-promise", + "rawSpec": "2.2.2", + "saveSpec": null, + "fetchSpec": "2.2.2" + }, + "_requiredBy": [ + "/jstransformer", + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz", + "_spec": "2.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/then/is-promise/issues" + }, "description": "Test whether an object looks like a promises-a+ promise", - "main": "./index.js", - "scripts": { - "test": "mocha -R spec" + "devDependencies": { + "better-assert": "^1.0.2", + "mocha": "~1.7.4" }, "files": [ "index.js", "index.mjs" ], + "homepage": "https://github.com/then/is-promise#readme", + "license": "MIT", + "main": "./index.js", + "name": "is-promise", "repository": { "type": "git", - "url": "https://github.com/then/is-promise.git" + "url": "git+https://github.com/then/is-promise.git" }, - "author": "ForbesLindesay", - "license": "MIT", - "devDependencies": { - "better-assert": "^1.0.2", - "mocha": "~1.7.4" - } -} \ No newline at end of file + "scripts": { + "test": "mocha -R spec" + }, + "version": "2.2.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/is-regex/package.json b/admin/vue2/element-admin-v3/node_modules/is-regex/package.json index 7a6dc8aef..e982e57cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-regex/package.json @@ -1,86 +1,119 @@ { - "name": "is-regex", - "version": "1.1.3", - "description": "Is this value a JS regex? Works cross-realm/iframe, and despite ES6 @@toStringTag", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "test": "npm run tests-only && npm run test:harmony", - "tests-only": "nyc node test", - "test:harmony": "nyc node --harmony --es-staging test", - "test:corejs": "nyc tape test-corejs.js", - "posttest": "npx aud --production", - "lint": "eslint .", - "eccheck": "eclint check *.js **/*.js > /dev/null", - "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://github.com/inspect-js/is-regex.git" - }, - "bugs": { - "url": "https://github.com/inspect-js/is-regex/issues" - }, - "homepage": "https://github.com/inspect-js/is-regex", - "keywords": [ - "regex", - "regexp", - "is", - "regular expression", - "regular", - "expression" - ], - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "core-js": "^3.12.0", - "eclint": "^2.8.1", - "eslint": "^7.26.0", - "foreach": "^2.0.5", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-regex@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-regex@1.1.3", + "_id": "is-regex@1.1.3", + "_inBundle": false, + "_integrity": "sha1-0Cn5r/ZEi5Prvj8z2scVEf3L758=", + "_location": "/is-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-regex@1.1.3", + "name": "is-regex", + "escapedName": "is-regex", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/character-parser", + "/deep-equal", + "/es-abstract" + ], + "_resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.3.tgz?cache=0&sync_timestamp=1620452285370&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-regex/issues" + }, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "description": "Is this value a JS regex? Works cross-realm/iframe, and despite ES6 @@toStringTag", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eclint": "^2.8.1", + "eslint": "^7.26.0", + "foreach": "^2.0.5", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-regex", + "keywords": [ + "regex", + "regexp", + "is", + "regular expression", + "regular", + "expression" + ], + "license": "MIT", + "main": "index.js", + "name": "is-regex", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-regex.git" + }, + "scripts": { + "eccheck": "eclint check *.js **/*.js > /dev/null", + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only && npm run test:harmony", + "test:corejs": "nyc tape test-corejs.js", + "test:harmony": "nyc node --harmony --es-staging test", + "tests-only": "nyc node test", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-regexp/package.json b/admin/vue2/element-admin-v3/node_modules/is-regexp/package.json index bb74b7083..bd57850a5 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-regexp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-regexp/package.json @@ -1,23 +1,52 @@ { - "name": "is-regexp", - "version": "1.0.0", - "description": "Check whether a variable is a regular expression", - "license": "MIT", - "repository": "sindresorhus/is-regexp", + "_args": [ + [ + "is-regexp@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-regexp@1.0.0", + "_id": "is-regexp@1.0.0", + "_inBundle": false, + "_integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "_location": "/is-regexp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-regexp@1.0.0", + "name": "is-regexp", + "escapedName": "is-regexp", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/stringify-object" + ], + "_resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz?cache=0&sync_timestamp=1617816768041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-regexp/issues" + }, + "description": "Check whether a variable is a regular expression", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-regexp#readme", "keywords": [ "regex", "regexp", @@ -29,7 +58,14 @@ "type", "is" ], - "devDependencies": { - "mocha": "*" - } + "license": "MIT", + "name": "is-regexp", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-regexp.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-resolvable/package.json b/admin/vue2/element-admin-v3/node_modules/is-resolvable/package.json index ed4cbdef9..8c157a9d4 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-resolvable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-resolvable/package.json @@ -1,37 +1,77 @@ { - "name": "is-resolvable", - "version": "1.1.0", - "description": "Check if a module ID is resolvable with require()", - "repository": "shinnn/is-resolvable", - "author": "Shinnosuke Watanabe (https://github.com/shinnn)", - "scripts": { - "pretest": "eslint --fix --format=codeframe index.js test.js", - "test": "node --throw-deprecation --track-heap-objects test.js", - "coverage": "istanbul cover --print=both test.js" - }, - "license": "ISC", - "files": [ - "index.js" - ], - "keywords": [ - "file", - "path", - "resolve", - "resolvable", - "check", - "module" - ], - "devDependencies": { - "@shinnn/eslint-config-node": "^5.0.0", - "eslint": "^4.16.0", - "istanbul": "^0.4.5", - "tape": "^4.8.0" - }, - "eslintConfig": { - "extends": "@shinnn/node", - "rules": { - "no-var": "off", - "prefer-template": "off" - } - } + "_args": [ + [ + "is-resolvable@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-resolvable@1.1.0", + "_id": "is-resolvable@1.1.0", + "_inBundle": false, + "_integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "_location": "/is-resolvable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-resolvable@1.1.0", + "name": "is-resolvable", + "escapedName": "is-resolvable", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/cssnano", + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Shinnosuke Watanabe", + "url": "https://github.com/shinnn" + }, + "bugs": { + "url": "https://github.com/shinnn/is-resolvable/issues" + }, + "description": "Check if a module ID is resolvable with require()", + "devDependencies": { + "@shinnn/eslint-config-node": "^5.0.0", + "eslint": "^4.16.0", + "istanbul": "^0.4.5", + "tape": "^4.8.0" + }, + "eslintConfig": { + "extends": "@shinnn/node", + "rules": { + "no-var": "off", + "prefer-template": "off" + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/shinnn/is-resolvable#readme", + "keywords": [ + "file", + "path", + "resolve", + "resolvable", + "check", + "module" + ], + "license": "ISC", + "name": "is-resolvable", + "repository": { + "type": "git", + "url": "git+https://github.com/shinnn/is-resolvable.git" + }, + "scripts": { + "coverage": "istanbul cover --print=both test.js", + "pretest": "eslint --fix --format=codeframe index.js test.js", + "test": "node --throw-deprecation --track-heap-objects test.js" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-stream/package.json b/admin/vue2/element-admin-v3/node_modules/is-stream/package.json index 0308918d0..37b89db6b 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-stream/package.json @@ -1,23 +1,55 @@ { - "name": "is-stream", - "version": "1.1.0", - "description": "Check if something is a Node.js stream", - "license": "MIT", - "repository": "sindresorhus/is-stream", + "_args": [ + [ + "is-stream@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-stream@1.1.0", + "_id": "is-stream@1.1.0", + "_inBundle": false, + "_integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "_location": "/is-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-stream@1.1.0", + "name": "is-stream", + "escapedName": "is-stream", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/execa", + "/lint-staged/execa", + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-stream/issues" + }, + "description": "Check if something is a Node.js stream", + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.0", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-stream#readme", "keywords": [ "stream", "type", @@ -30,9 +62,14 @@ "detect", "is" ], - "devDependencies": { - "ava": "*", - "tempfile": "^1.1.0", - "xo": "*" - } + "license": "MIT", + "name": "is-stream", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-stream.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-string/package.json b/admin/vue2/element-admin-v3/node_modules/is-string/package.json index ecb7855ef..b9a7ebd60 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-string/package.json @@ -1,78 +1,115 @@ { - "name": "is-string", - "version": "1.0.6", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test:corejs": "nyc tape test-corejs.js", - "test": "npm run tests-only && npm run test:corejs", - "posttest": "npx aud --production", - "lint": "eslint .", - "eccheck": "eclint check *.js **/*.js > /dev/null", - "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://github.com/ljharb/is-string.git" - }, - "keywords": [ - "String", - "string", - "ES6", - "toStringTag", - "@@toStringTag", - "String object" - ], - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "core-js": "^3.12.0", - "eclint": "^2.8.1", - "eslint": "^7.26.0", - "foreach": "^2.0.5", - "indexof": "^0.0.1", - "is": "^3.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false - } + "_args": [ + [ + "is-string@1.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-string@1.0.6", + "_id": "is-string@1.0.6", + "_inBundle": false, + "_integrity": "sha1-P+XVmS+w2TQE8yWE1LAXmnG1Sl8=", + "_location": "/is-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-string@1.0.6", + "name": "is-string", + "escapedName": "is-string", + "rawSpec": "1.0.6", + "saveSpec": null, + "fetchSpec": "1.0.6" + }, + "_requiredBy": [ + "/es-abstract", + "/which-boxed-primitive" + ], + "_resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.6.tgz?cache=0&sync_timestamp=1620448217105&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-string%2Fdownload%2Fis-string-1.0.6.tgz", + "_spec": "1.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false + }, + "bugs": { + "url": "https://github.com/ljharb/is-string/issues" + }, + "description": "Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eclint": "^2.8.1", + "eslint": "^7.26.0", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/is-string#readme", + "keywords": [ + "String", + "string", + "ES6", + "toStringTag", + "@@toStringTag", + "String object" + ], + "license": "MIT", + "main": "index.js", + "name": "is-string", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-string.git" + }, + "scripts": { + "eccheck": "eclint check *.js **/*.js > /dev/null", + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only && npm run test:corejs", + "test:corejs": "nyc tape test-corejs.js", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-symbol/package.json b/admin/vue2/element-admin-v3/node_modules/is-symbol/package.json index 4472b176f..c18e4bfbc 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-symbol/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-symbol/package.json @@ -1,77 +1,111 @@ { - "name": "is-symbol", - "version": "1.0.4", - "description": "Determine if a value is an ES6 Symbol or not.", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "npx aud --production", - "lint": "eslint .", - "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://github.com/inspect-js/is-symbol.git" - }, - "keywords": [ - "symbol", - "es6", - "is", - "Symbol" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-symbol/issues" - }, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "eslint": "^7.26.0", - "nyc": "^10.3.2", - "object-inspect": "^1.10.3", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "is-symbol@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-symbol@1.0.4", + "_id": "is-symbol@1.0.4", + "_inBundle": false, + "_integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", + "_location": "/is-symbol", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-symbol@1.0.4", + "name": "is-symbol", + "escapedName": "is-symbol", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/es-to-primitive", + "/which-boxed-primitive" + ], + "_resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501182675&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/is-symbol/issues" + }, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "description": "Determine if a value is an ES6 Symbol or not.", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "eslint": "^7.26.0", + "nyc": "^10.3.2", + "object-inspect": "^1.10.3", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/is-symbol#readme", + "keywords": [ + "symbol", + "es6", + "is", + "Symbol" + ], + "license": "MIT", + "main": "index.js", + "name": "is-symbol", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-symbol.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-typedarray/package.json b/admin/vue2/element-admin-v3/node_modules/is-typedarray/package.json index 37f7ae31c..75c596171 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-typedarray/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-typedarray/package.json @@ -1,21 +1,47 @@ { - "name": "is-typedarray", - "version": "1.0.0", - "description": "Detect whether or not an object is a Typed Array", - "main": "index.js", - "scripts": { - "test": "node test" + "_args": [ + [ + "is-typedarray@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-typedarray@1.0.0", + "_id": "is-typedarray@1.0.0", + "_inBundle": false, + "_integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "_location": "/is-typedarray", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-typedarray@1.0.0", + "name": "is-typedarray", + "escapedName": "is-typedarray", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com", + "url": "http://hughsk.io/" + }, + "bugs": { + "url": "https://github.com/hughsk/is-typedarray/issues" }, - "author": "Hugh Kennedy (http://hughsk.io/)", - "license": "MIT", "dependencies": {}, + "description": "Detect whether or not an object is a Typed Array", "devDependencies": { "tape": "^2.13.1" }, - "repository": { - "type": "git", - "url": "git://github.com/hughsk/is-typedarray.git" - }, + "homepage": "https://github.com/hughsk/is-typedarray", "keywords": [ "typed", "array", @@ -23,8 +49,15 @@ "is", "util" ], - "bugs": { - "url": "https://github.com/hughsk/is-typedarray/issues" + "license": "MIT", + "main": "index.js", + "name": "is-typedarray", + "repository": { + "type": "git", + "url": "git://github.com/hughsk/is-typedarray.git" + }, + "scripts": { + "test": "node test" }, - "homepage": "https://github.com/hughsk/is-typedarray" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-utf8/package.json b/admin/vue2/element-admin-v3/node_modules/is-utf8/package.json index dab1234c7..1b404ed36 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-utf8/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-utf8/package.json @@ -1,19 +1,57 @@ { - "name": "is-utf8", - "version": "0.2.1", - "description": "Detect if a buffer is utf8 encoded.", - "main": "is-utf8.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "is-utf8@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-utf8@0.2.1", + "_id": "is-utf8@0.2.1", + "_inBundle": false, + "_integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "_location": "/is-utf8", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-utf8@0.2.1", + "name": "is-utf8", + "escapedName": "is-utf8", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" }, - "repository": "https://github.com/wayfind/is-utf8.git", - "keywords": [ - "utf8", - "charset" + "_requiredBy": [ + "/strip-bom" ], + "_resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "wayfind" + }, + "bugs": { + "url": "https://github.com/wayfind/is-utf8/issues" + }, + "description": "Detect if a buffer is utf8 encoded.", "files": [ "is-utf8.js" ], - "author": "wayfind", - "license": "MIT" + "homepage": "https://github.com/wayfind/is-utf8#readme", + "keywords": [ + "utf8", + "charset" + ], + "license": "MIT", + "main": "is-utf8.js", + "name": "is-utf8", + "repository": { + "type": "git", + "url": "git+https://github.com/wayfind/is-utf8.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-windows/package.json b/admin/vue2/element-admin-v3/node_modules/is-windows/package.json index fca09f9c0..8decd2a07 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-windows/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-windows/package.json @@ -1,33 +1,67 @@ { - "name": "is-windows", - "description": "Returns true if the platform is windows. UMD module, works with node.js, commonjs, browser, AMD, electron, etc.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-windows", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Simen Bekkhus (https://github.com/SimenB)", - "刘祺 (gucong.co.cc)" + "_args": [ + [ + "is-windows@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-windows", - "bugs": { - "url": "https://github.com/jonschlinkert/is-windows/issues" + "_from": "is-windows@1.0.2", + "_id": "is-windows@1.0.2", + "_inBundle": false, + "_integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "_location": "/is-windows", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-windows@1.0.2", + "name": "is-windows", + "escapedName": "is-windows", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/cross-env", + "/lint-staged", + "/nanomatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-windows/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Simen Bekkhus", + "url": "https://github.com/SimenB" + }, + { + "name": "刘祺", + "url": "gucong.co.cc" + } + ], + "description": "Returns true if the platform is windows. UMD module, works with node.js, commonjs, browser, AMD, electron, etc.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-windows", "keywords": [ "check", "cywin", @@ -43,6 +77,16 @@ "win32", "windows" ], + "license": "MIT", + "main": "index.js", + "name": "is-windows", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-windows.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -67,5 +111,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/is-wsl/package.json b/admin/vue2/element-admin-v3/node_modules/is-wsl/package.json index 55961402c..0b211cf40 100644 --- a/admin/vue2/element-admin-v3/node_modules/is-wsl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/is-wsl/package.json @@ -1,23 +1,54 @@ { - "name": "is-wsl", - "version": "1.1.0", - "description": "Check if the process is running inside Windows Subsystem for Linux (Bash on Windows)", - "license": "MIT", - "repository": "sindresorhus/is-wsl", + "_args": [ + [ + "is-wsl@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-wsl@1.1.0", + "_id": "is-wsl@1.1.0", + "_inBundle": false, + "_integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "_location": "/is-wsl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-wsl@1.1.0", + "name": "is-wsl", + "escapedName": "is-wsl", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/opn" + ], + "_resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-wsl/issues" + }, + "description": "Check if the process is running inside Windows Subsystem for Linux (Bash on Windows)", + "devDependencies": { + "ava": "*", + "clear-require": "^2.0.0", + "proxyquire": "^1.7.11", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-wsl#readme", "keywords": [ "check", "wsl", @@ -31,10 +62,14 @@ "terminal", "is" ], - "devDependencies": { - "ava": "*", - "clear-require": "^2.0.0", - "proxyquire": "^1.7.11", - "xo": "*" - } + "license": "MIT", + "name": "is-wsl", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-wsl.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/isarray/package.json b/admin/vue2/element-admin-v3/node_modules/isarray/package.json index 1a4317a9c..9909644a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/isarray/package.json +++ b/admin/vue2/element-admin-v3/node_modules/isarray/package.json @@ -1,28 +1,64 @@ { - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" + "_args": [ + [ + "isarray@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "isarray@1.0.0", + "_id": "isarray@1.0.0", + "_inBundle": false, + "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "_location": "/isarray", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isarray@1.0.0", + "name": "isarray", + "escapedName": "isarray", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/buffer", + "/posthtml-parser/isobject", + "/readable-stream", + "/unset-value/has-value/isobject" + ], + "_resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/isarray/issues" }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", "dependencies": {}, + "description": "Array#isArray for older browsers", "devDependencies": { "tape": "~2.13.4" }, + "homepage": "https://github.com/juliangruber/isarray", "keywords": [ "browser", "isarray", "array" ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, "license": "MIT", + "main": "index.js", + "name": "isarray", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/isarray.git" + }, + "scripts": { + "test": "tape test.js" + }, "testling": { "files": "test.js", "browsers": [ @@ -39,7 +75,5 @@ "android-browser/4.2..latest" ] }, - "scripts": { - "test": "tape test.js" - } + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/isexe/package.json b/admin/vue2/element-admin-v3/node_modules/isexe/package.json index e45268944..9486423de 100644 --- a/admin/vue2/element-admin-v3/node_modules/isexe/package.json +++ b/admin/vue2/element-admin-v3/node_modules/isexe/package.json @@ -1,31 +1,66 @@ { - "name": "isexe", - "version": "2.0.0", - "description": "Minimal module to check if a file is executable.", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "isexe@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "isexe@2.0.0", + "_id": "isexe@2.0.0", + "_inBundle": false, + "_integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "_location": "/isexe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isexe@2.0.0", + "name": "isexe", + "escapedName": "isexe", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/node-gyp/which", + "/node-notifier/which", + "/node-sass/which", + "/which" + ], + "_resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" }, + "bugs": { + "url": "https://github.com/isaacs/isexe/issues" + }, + "description": "Minimal module to check if a file is executable.", "devDependencies": { "mkdirp": "^0.5.1", "rimraf": "^2.5.0", "tap": "^10.3.0" }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" + "directories": { + "test": "test" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "homepage": "https://github.com/isaacs/isexe#readme", + "keywords": [], "license": "ISC", + "main": "index.js", + "name": "isexe", "repository": { "type": "git", "url": "git+https://github.com/isaacs/isexe.git" }, - "keywords": [], - "bugs": { - "url": "https://github.com/isaacs/isexe/issues" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" }, - "homepage": "https://github.com/isaacs/isexe#readme" + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/isobject/package.json b/admin/vue2/element-admin-v3/node_modules/isobject/package.json index 62aa8c1b2..15f8ae4dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/isobject/package.json +++ b/admin/vue2/element-admin-v3/node_modules/isobject/package.json @@ -1,37 +1,84 @@ { - "name": "isobject", - "description": "Returns true if the value is an object and not an array or null.", - "version": "3.0.1", - "homepage": "https://github.com/jonschlinkert/isobject", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "(https://github.com/LeSuisse)", - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Magnús Dæhlen (https://github.com/magnudae)", - "Tom MacWright (https://macwright.org)" + "_args": [ + [ + "isobject@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/isobject", - "bugs": { - "url": "https://github.com/jonschlinkert/isobject/issues" + "_from": "isobject@3.0.1", + "_id": "isobject@3.0.1", + "_inBundle": false, + "_integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "_location": "/isobject", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isobject@3.0.1", + "name": "isobject", + "escapedName": "isobject", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" }, - "license": "MIT", - "files": [ - "index.d.ts", - "index.js" + "_requiredBy": [ + "/base", + "/braces", + "/cache-base", + "/class-utils", + "/define-property", + "/has-value", + "/is-plain-object", + "/object-visit", + "/object.pick", + "/snapdragon-node", + "/unset-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/isobject/issues" }, + "contributors": [ + { + "url": "https://github.com/LeSuisse" + }, + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Magnús Dæhlen", + "url": "https://github.com/magnudae" + }, + { + "name": "Tom MacWright", + "url": "https://macwright.org" + } + ], "dependencies": {}, + "description": "Returns true if the value is an object and not an array or null.", "devDependencies": { "gulp-format-md": "^0.1.9", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.d.ts", + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/isobject", "keywords": [ "check", "is", @@ -46,6 +93,16 @@ "typeof", "value" ], + "license": "MIT", + "main": "index.js", + "name": "isobject", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/isobject.git" + }, + "scripts": { + "test": "mocha" + }, "types": "index.d.ts", "verb": { "related": { @@ -70,5 +127,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/isstream/package.json b/admin/vue2/element-admin-v3/node_modules/isstream/package.json index 9ee8bf824..4690c10cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/isstream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/isstream/package.json @@ -1,15 +1,49 @@ { - "name": "isstream", - "version": "0.1.2", - "description": "Determine if an object is a Stream", - "main": "isstream.js", - "scripts": { - "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/" + "_args": [ + [ + "isstream@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "isstream@0.1.2", + "_id": "isstream@0.1.2", + "_inBundle": false, + "_integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "_location": "/isstream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isstream@0.1.2", + "name": "isstream", + "escapedName": "isstream", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" }, - "repository": { - "type": "git", - "url": "https://github.com/rvagg/isstream.git" + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rod Vagg", + "email": "rod@vagg.org" + }, + "bugs": { + "url": "https://github.com/rvagg/isstream/issues" + }, + "description": "Determine if an object is a Stream", + "devDependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x", + "tape": "~2.12.3" }, + "homepage": "https://github.com/rvagg/isstream", "keywords": [ "stream", "type", @@ -17,17 +51,15 @@ "readable-stream", "hippo" ], - "devDependencies": { - "tape": "~2.12.3", - "core-util-is": "~1.0.0", - "isarray": "0.0.1", - "string_decoder": "~0.10.x", - "inherits": "~2.0.1" - }, - "author": "Rod Vagg ", "license": "MIT", - "bugs": { - "url": "https://github.com/rvagg/isstream/issues" + "main": "isstream.js", + "name": "isstream", + "repository": { + "type": "git", + "url": "git+https://github.com/rvagg/isstream.git" + }, + "scripts": { + "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/" }, - "homepage": "https://github.com/rvagg/isstream" + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/jest-get-type/package.json b/admin/vue2/element-admin-v3/node_modules/jest-get-type/package.json index 4802a3aef..319af0cd8 100644 --- a/admin/vue2/element-admin-v3/node_modules/jest-get-type/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jest-get-type/package.json @@ -1,11 +1,44 @@ { - "name": "jest-get-type", + "_args": [ + [ + "jest-get-type@22.4.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jest-get-type@22.4.3", + "_id": "jest-get-type@22.4.3", + "_inBundle": false, + "_integrity": "sha1-46hQTYR5NC3UQgI2syKGnxiQDOQ=", + "_location": "/jest-get-type", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jest-get-type@22.4.3", + "name": "jest-get-type", + "escapedName": "jest-get-type", + "rawSpec": "22.4.3", + "saveSpec": null, + "fetchSpec": "22.4.3" + }, + "_requiredBy": [ + "/jest-validate" + ], + "_resolved": "https://registry.nlark.com/jest-get-type/download/jest-get-type-22.4.3.tgz?cache=0&sync_timestamp=1621937309906&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjest-get-type%2Fdownload%2Fjest-get-type-22.4.3.tgz", + "_spec": "22.4.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/facebook/jest/issues" + }, "description": "A utility function to get the type of a value", - "version": "22.4.3", + "homepage": "https://github.com/facebook/jest#readme", + "license": "MIT", + "main": "build/index.js", + "name": "jest-get-type", "repository": { "type": "git", - "url": "https://github.com/facebook/jest.git" + "url": "git+https://github.com/facebook/jest.git" }, - "license": "MIT", - "main": "build/index.js" + "version": "22.4.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/jest-validate/package.json b/admin/vue2/element-admin-v3/node_modules/jest-validate/package.json index e9a5683ce..5c50ded30 100644 --- a/admin/vue2/element-admin-v3/node_modules/jest-validate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jest-validate/package.json @@ -1,16 +1,50 @@ { - "name": "jest-validate", - "version": "23.6.0", - "repository": { - "type": "git", - "url": "https://github.com/facebook/jest.git" + "_args": [ + [ + "jest-validate@23.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jest-validate@23.6.0", + "_id": "jest-validate@23.6.0", + "_inBundle": false, + "_integrity": "sha1-NnYfmdHtM/zUJbTkxVldYrZZdHQ=", + "_location": "/jest-validate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jest-validate@23.6.0", + "name": "jest-validate", + "escapedName": "jest-validate", + "rawSpec": "23.6.0", + "saveSpec": null, + "fetchSpec": "23.6.0" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.nlark.com/jest-validate/download/jest-validate-23.6.0.tgz", + "_spec": "23.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/facebook/jest/issues" }, - "license": "MIT", - "main": "build/index.js", "dependencies": { "chalk": "^2.0.1", "jest-get-type": "^22.1.0", "leven": "^2.1.0", "pretty-format": "^23.6.0" - } + }, + "description": "Generic configuration validation tool that helps you with warnings, errors and deprecation messages as well as showing users examples of correct configuration.", + "homepage": "https://github.com/facebook/jest#readme", + "license": "MIT", + "main": "build/index.js", + "name": "jest-validate", + "repository": { + "type": "git", + "url": "git+https://github.com/facebook/jest.git" + }, + "version": "23.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/js-base64/package.json b/admin/vue2/element-admin-v3/node_modules/js-base64/package.json index b53a882b1..965dc966d 100644 --- a/admin/vue2/element-admin-v3/node_modules/js-base64/package.json +++ b/admin/vue2/element-admin-v3/node_modules/js-base64/package.json @@ -1,19 +1,41 @@ { - "name": "js-base64", - "version": "2.6.4", - "description": "Yet another Base64 transcoder in pure-JS", - "main": "base64.js", - "files": [ - "base64.js", - "base64.min.js" + "_args": [ + [ + "js-base64@2.6.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "directories": { - "test": "test" + "_development": true, + "_from": "js-base64@2.6.4", + "_id": "js-base64@2.6.4", + "_inBundle": false, + "_integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=", + "_location": "/js-base64", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-base64@2.6.4", + "name": "js-base64", + "escapedName": "js-base64", + "rawSpec": "2.6.4", + "saveSpec": null, + "fetchSpec": "2.6.4" }, - "scripts": { - "test": "mocha --require @babel/register", - "minify": "uglifyjs base64.js > base64.min.js" + "_requiredBy": [ + "/scss-tokenizer", + "/svg-baker/postcss" + ], + "_resolved": "https://registry.nlark.com/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1621703447855&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz", + "_spec": "2.6.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dan Kogai" }, + "bugs": { + "url": "https://github.com/dankogai/js-base64/issues" + }, + "description": "Yet another Base64 transcoder in pure-JS", "devDependencies": { "@babel/core": "^7.10.5", "@babel/preset-env": "^7.10.5", @@ -21,15 +43,28 @@ "mocha": "^8.0.0", "uglify-js": "^3.10.0" }, - "repository": { - "type": "git", - "url": "git://github.com/dankogai/js-base64.git" + "directories": { + "test": "test" }, + "files": [ + "base64.js", + "base64.min.js" + ], + "gitHead": "8bfa436f733bec60c95c720e1d720c28b43ae0b2", + "homepage": "https://github.com/dankogai/js-base64#readme", "keywords": [ "base64" ], - "author": "Dan Kogai", "license": "BSD-3-Clause", - "readmeFilename": "README.md", - "gitHead": "8bfa436f733bec60c95c720e1d720c28b43ae0b2" + "main": "base64.js", + "name": "js-base64", + "repository": { + "type": "git", + "url": "git://github.com/dankogai/js-base64.git" + }, + "scripts": { + "minify": "uglifyjs base64.js > base64.min.js", + "test": "mocha --require @babel/register" + }, + "version": "2.6.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/js-cookie/package.json b/admin/vue2/element-admin-v3/node_modules/js-cookie/package.json index 1979a9d11..f1c05e8f9 100644 --- a/admin/vue2/element-admin-v3/node_modules/js-cookie/package.json +++ b/admin/vue2/element-admin-v3/node_modules/js-cookie/package.json @@ -1,11 +1,63 @@ { - "name": "js-cookie", - "version": "2.2.0", + "_args": [ + [ + "js-cookie@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "js-cookie@2.2.0", + "_id": "js-cookie@2.2.0", + "_inBundle": false, + "_integrity": "sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s=", + "_location": "/js-cookie", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-cookie@2.2.0", + "name": "js-cookie", + "escapedName": "js-cookie", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Klaus Hartl" + }, + "bugs": { + "url": "https://github.com/js-cookie/js-cookie/issues" + }, "description": "A simple, lightweight JavaScript API for handling cookies", - "main": "src/js.cookie.js", + "devDependencies": { + "grunt": "1.0.1", + "grunt-compare-size": "0.4.2", + "grunt-contrib-connect": "1.0.2", + "grunt-contrib-jshint": "1.1.0", + "grunt-contrib-nodeunit": "1.0.0", + "grunt-contrib-qunit": "2.0.0", + "grunt-contrib-uglify": "2.3.0", + "grunt-contrib-watch": "1.0.0", + "grunt-jscs": "3.0.1", + "grunt-saucelabs": "9.0.0", + "gzip-js": "0.3.2", + "qunitjs": "1.23.1", + "requirejs": "2.3.5" + }, "directories": { "test": "test" }, + "files": [ + "src/**/*.js", + "SERVER_SIDE.md", + "CONTRIBUTING.md" + ], + "homepage": "https://github.com/js-cookie/js-cookie#readme", "keywords": [ "jquery-plugin", "cookie", @@ -17,33 +69,15 @@ "js-cookie", "browserify" ], - "scripts": { - "test": "grunt test" - }, + "license": "MIT", + "main": "src/js.cookie.js", + "name": "js-cookie", "repository": { "type": "git", "url": "git://github.com/js-cookie/js-cookie.git" }, - "files": [ - "src/**/*.js", - "SERVER_SIDE.md", - "CONTRIBUTING.md" - ], - "author": "Klaus Hartl", - "license": "MIT", - "devDependencies": { - "grunt": "1.0.1", - "grunt-compare-size": "0.4.2", - "grunt-contrib-connect": "1.0.2", - "grunt-contrib-jshint": "1.1.0", - "grunt-contrib-nodeunit": "1.0.0", - "grunt-contrib-qunit": "2.0.0", - "grunt-contrib-uglify": "2.3.0", - "grunt-contrib-watch": "1.0.0", - "grunt-jscs": "3.0.1", - "grunt-saucelabs": "9.0.0", - "gzip-js": "0.3.2", - "qunitjs": "1.23.1", - "requirejs": "2.3.5" - } + "scripts": { + "test": "grunt test" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/js-stringify/package.json b/admin/vue2/element-admin-v3/node_modules/js-stringify/package.json index c5f1c170a..ecfe9d977 100644 --- a/admin/vue2/element-admin-v3/node_modules/js-stringify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/js-stringify/package.json @@ -1,17 +1,55 @@ { - "name": "js-stringify", - "version": "1.0.2", - "description": "Stringify an object so it can be safely inlined in JavaScript code", - "keywords": [], + "_args": [ + [ + "js-stringify@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "js-stringify@1.0.2", + "_id": "js-stringify@1.0.2", + "_inBundle": false, + "_integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "_location": "/js-stringify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-stringify@1.0.2", + "name": "js-stringify", + "escapedName": "js-stringify", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/pug-attrs", + "/pug-code-gen", + "/pug-html-loader/pug-attrs", + "/pug-html-loader/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/js-stringify/download/js-stringify-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/jadejs/js-stringify/issues" + }, "dependencies": {}, + "description": "Stringify an object so it can be safely inlined in JavaScript code", "devDependencies": {}, - "scripts": { - "test": "node test" - }, + "homepage": "https://github.com/jadejs/js-stringify#readme", + "keywords": [], + "license": "MIT", + "name": "js-stringify", "repository": { "type": "git", - "url": "https://github.com/jadejs/js-stringify.git" + "url": "git+https://github.com/jadejs/js-stringify.git" + }, + "scripts": { + "test": "node test" }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file + "version": "1.0.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/js-tokens/package.json b/admin/vue2/element-admin-v3/node_modules/js-tokens/package.json index 66752fab2..fb13eb80d 100644 --- a/admin/vue2/element-admin-v3/node_modules/js-tokens/package.json +++ b/admin/vue2/element-admin-v3/node_modules/js-tokens/package.json @@ -1,9 +1,49 @@ { - "name": "js-tokens", - "version": "4.0.0", - "author": "Simon Lydell", - "license": "MIT", + "_args": [ + [ + "js-tokens@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "js-tokens@4.0.0", + "_id": "js-tokens@4.0.0", + "_inBundle": false, + "_integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "_location": "/js-tokens", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-tokens@4.0.0", + "name": "js-tokens", + "escapedName": "js-tokens", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/loose-envify" + ], + "_resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/js-tokens/issues" + }, "description": "A regex that tokenizes JavaScript.", + "devDependencies": { + "coffeescript": "2.1.1", + "esprima": "4.0.0", + "everything.js": "1.0.3", + "mocha": "5.0.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/lydell/js-tokens#readme", "keywords": [ "JavaScript", "js", @@ -11,20 +51,17 @@ "tokenize", "regex" ], - "files": [ - "index.js" - ], - "repository": "lydell/js-tokens", + "license": "MIT", + "name": "js-tokens", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/js-tokens.git" + }, "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" + "dev": "npm run build && npm test", + "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", + "test": "mocha --ui tdd" }, - "devDependencies": { - "coffeescript": "2.1.1", - "esprima": "4.0.0", - "everything.js": "1.0.3", - "mocha": "5.0.0" - } + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/js-yaml/package.json b/admin/vue2/element-admin-v3/node_modules/js-yaml/package.json index 0d2366762..f2fa961d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/js-yaml/package.json +++ b/admin/vue2/element-admin-v3/node_modules/js-yaml/package.json @@ -1,37 +1,67 @@ { - "name": "js-yaml", - "version": "3.14.1", - "description": "YAML 1.2 parser and serializer", - "keywords": [ - "yaml", - "parser", - "serializer", - "pyyaml" + "_args": [ + [ + "js-yaml@3.14.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "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/" + "_development": true, + "_from": "js-yaml@3.14.1", + "_id": "js-yaml@3.14.1", + "_inBundle": false, + "_integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "_location": "/js-yaml", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "js-yaml@3.14.1", + "name": "js-yaml", + "escapedName": "js-yaml", + "rawSpec": "3.14.1", + "saveSpec": null, + "fetchSpec": "3.14.1" + }, + "_requiredBy": [ + "/cosmiconfig", + "/eslint", + "/svgo" ], + "_resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618435151523&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", + "_spec": "3.14.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Vladimir Zapparov", + "email": "dervus.grim@gmail.com" + }, "bin": { "js-yaml": "bin/js-yaml.js" }, - "unpkg": "dist/js-yaml.min.js", - "jsdelivr": "dist/js-yaml.min.js", + "bugs": { + "url": "https://github.com/nodeca/js-yaml/issues" + }, + "contributors": [ + { + "name": "Aleksey V Zapparov", + "email": "ixti@member.fsf.org", + "url": "http://www.ixti.net/" + }, + { + "name": "Vitaly Puzrin", + "email": "vitaly@rcdesign.ru", + "url": "https://github.com/puzrin" + }, + { + "name": "Martin Grenfell", + "email": "martin.grenfell@gmail.com", + "url": "http://got-ravings.blogspot.com" + } + ], "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, + "description": "YAML 1.2 parser and serializer", "devDependencies": { "ansi": "^0.3.1", "benchmark": "^2.1.4", @@ -43,7 +73,29 @@ "mocha": "^7.1.2", "uglify-js": "^3.0.1" }, + "files": [ + "index.js", + "lib/", + "bin/", + "dist/" + ], + "homepage": "https://github.com/nodeca/js-yaml", + "jsdelivr": "dist/js-yaml.min.js", + "keywords": [ + "yaml", + "parser", + "serializer", + "pyyaml" + ], + "license": "MIT", + "name": "js-yaml", + "repository": { + "type": "git", + "url": "git+https://github.com/nodeca/js-yaml.git" + }, "scripts": { "test": "make test" - } + }, + "unpkg": "dist/js-yaml.min.js", + "version": "3.14.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/jsbn/package.json b/admin/vue2/element-admin-v3/node_modules/jsbn/package.json index 7220c19f5..4dec6dfdb 100644 --- a/admin/vue2/element-admin-v3/node_modules/jsbn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jsbn/package.json @@ -1,21 +1,57 @@ { - "name": "jsbn", - "version": "0.1.1", - "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.", - "main": "index.js", - "scripts": { - "test": "mocha test.js" + "_args": [ + [ + "jsbn@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jsbn@0.1.1", + "_id": "jsbn@0.1.1", + "_inBundle": false, + "_integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "_location": "/jsbn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jsbn@0.1.1", + "name": "jsbn", + "escapedName": "jsbn", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "repository": { - "type": "git", - "url": "https://github.com/andyperlitch/jsbn.git" + "_requiredBy": [ + "/ecc-jsbn", + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tom Wu" + }, + "bugs": { + "url": "https://github.com/andyperlitch/jsbn/issues" }, + "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.", + "homepage": "https://github.com/andyperlitch/jsbn#readme", "keywords": [ "biginteger", "bignumber", "big", "integer" ], - "author": "Tom Wu", - "license": "MIT" + "license": "MIT", + "main": "index.js", + "name": "jsbn", + "repository": { + "type": "git", + "url": "git+https://github.com/andyperlitch/jsbn.git" + }, + "scripts": { + "test": "mocha test.js" + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/jsesc/package.json b/admin/vue2/element-admin-v3/node_modules/jsesc/package.json index 1ae439fd6..b6d5a4022 100644 --- a/admin/vue2/element-admin-v3/node_modules/jsesc/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jsesc/package.json @@ -1,46 +1,81 @@ { - "name": "jsesc", - "version": "1.3.0", - "description": "A JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.", - "homepage": "https://mths.be/jsesc", - "main": "jsesc.js", - "bin": "bin/jsesc", - "man": "man/jsesc.1", - "keywords": [ - "string", - "escape", - "javascript", - "tool" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/jsesc.git" - }, - "bugs": "https://github.com/mathiasbynens/jsesc/issues", - "files": [ - "LICENSE-MIT.txt", - "jsesc.js", - "bin/", - "man/" - ], - "scripts": { - "test": "node tests/tests.js", - "build": "grunt template" - }, - "devDependencies": { - "coveralls": "^2.11.6", - "grunt": "^0.4.5", - "grunt-shell": "^1.1.2", - "grunt-template": "^0.2.3", - "istanbul": "^0.4.2", - "qunit-extras": "^1.4.5", - "qunitjs": "~1.11.0", - "regenerate": "^1.2.1", - "requirejs": "^2.1.22" - } + "_args": [ + [ + "jsesc@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jsesc@1.3.0", + "_id": "jsesc@1.3.0", + "_inBundle": false, + "_integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "_location": "/jsesc", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jsesc@1.3.0", + "name": "jsesc", + "escapedName": "jsesc", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/babel-generator" + ], + "_resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz?cache=0&sync_timestamp=1603891224688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bin": { + "jsesc": "bin/jsesc" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/jsesc/issues" + }, + "description": "A JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.", + "devDependencies": { + "coveralls": "^2.11.6", + "grunt": "^0.4.5", + "grunt-shell": "^1.1.2", + "grunt-template": "^0.2.3", + "istanbul": "^0.4.2", + "qunit-extras": "^1.4.5", + "qunitjs": "~1.11.0", + "regenerate": "^1.2.1", + "requirejs": "^2.1.22" + }, + "files": [ + "LICENSE-MIT.txt", + "jsesc.js", + "bin/", + "man/" + ], + "homepage": "https://mths.be/jsesc", + "keywords": [ + "string", + "escape", + "javascript", + "tool" + ], + "license": "MIT", + "main": "jsesc.js", + "man": [ + "man/jsesc.1" + ], + "name": "jsesc", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/jsesc.git" + }, + "scripts": { + "build": "grunt template", + "test": "node tests/tests.js" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/json-parse-better-errors/package.json b/admin/vue2/element-admin-v3/node_modules/json-parse-better-errors/package.json index c4c2c20a6..e49bc69a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/json-parse-better-errors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json-parse-better-errors/package.json @@ -1,38 +1,39 @@ { - "name": "json-parse-better-errors", - "version": "1.0.2", - "description": "JSON.parse with context information on error", - "main": "index.js", - "files": [ - "*.js" + "_args": [ + [ + "json-parse-better-errors@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prerelease": "npm t", - "postrelease": "npm publish && git push --follow-tags", - "pretest": "standard", - "release": "standard-version -s", - "test": "tap -J --coverage test/*.js", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" + "_from": "json-parse-better-errors@1.0.2", + "_id": "json-parse-better-errors@1.0.2", + "_inBundle": false, + "_integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "_location": "/json-parse-better-errors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-parse-better-errors@1.0.2", + "name": "json-parse-better-errors", + "escapedName": "json-parse-better-errors", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "repository": "https://github.com/zkat/json-parse-better-errors", - "keywords": [ - "JSON", - "parser" + "_requiredBy": [ + "/parse-json", + "/webpack" ], + "_resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kat Marchán", - "email": "kzm@zkat.tech", - "twitter": "maybekatz" + "email": "kzm@zkat.tech" }, - "license": "MIT", - "devDependencies": { - "nyc": "^10.3.2", - "standard": "^9.0.2", - "standard-version": "^4.1.0", - "tap": "^10.3.3", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" + "bugs": { + "url": "https://github.com/zkat/json-parse-better-errors/issues" }, "config": { "nyc": { @@ -41,5 +42,39 @@ "test/**" ] } - } + }, + "description": "JSON.parse with context information on error", + "devDependencies": { + "nyc": "^10.3.2", + "standard": "^9.0.2", + "standard-version": "^4.1.0", + "tap": "^10.3.3", + "weallbehave": "^1.2.0", + "weallcontribute": "^1.0.8" + }, + "files": [ + "*.js" + ], + "homepage": "https://github.com/zkat/json-parse-better-errors#readme", + "keywords": [ + "JSON", + "parser" + ], + "license": "MIT", + "main": "index.js", + "name": "json-parse-better-errors", + "repository": { + "type": "git", + "url": "git+https://github.com/zkat/json-parse-better-errors.git" + }, + "scripts": { + "postrelease": "npm publish && git push --follow-tags", + "prerelease": "npm t", + "pretest": "standard", + "release": "standard-version -s", + "test": "tap -J --coverage test/*.js", + "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", + "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/json-schema-traverse/package.json b/admin/vue2/element-admin-v3/node_modules/json-schema-traverse/package.json index 156606327..5642f2832 100644 --- a/admin/vue2/element-admin-v3/node_modules/json-schema-traverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json-schema-traverse/package.json @@ -1,28 +1,39 @@ { - "name": "json-schema-traverse", - "version": "0.4.1", - "description": "Traverse JSON Schema passing each schema object to callback", - "main": "index.js", - "scripts": { - "eslint": "eslint index.js spec", - "test-spec": "mocha spec -R spec", - "test": "npm run eslint && nyc npm run test-spec" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/json-schema-traverse.git" + "_args": [ + [ + "json-schema-traverse@0.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "json-schema-traverse@0.4.1", + "_id": "json-schema-traverse@0.4.1", + "_inBundle": false, + "_integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "_location": "/json-schema-traverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-schema-traverse@0.4.1", + "name": "json-schema-traverse", + "escapedName": "json-schema-traverse", + "rawSpec": "0.4.1", + "saveSpec": null, + "fetchSpec": "0.4.1" }, - "keywords": [ - "JSON-Schema", - "traverse", - "iterate" + "_requiredBy": [ + "/ajv" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", + "_spec": "0.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/json-schema-traverse/issues" }, - "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme", + "description": "Traverse JSON Schema passing each schema object to callback", "devDependencies": { "coveralls": "^2.13.1", "eslint": "^3.19.0", @@ -30,6 +41,15 @@ "nyc": "^11.0.2", "pre-commit": "^1.2.2" }, + "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme", + "keywords": [ + "JSON-Schema", + "traverse", + "iterate" + ], + "license": "MIT", + "main": "index.js", + "name": "json-schema-traverse", "nyc": { "exclude": [ "**/spec/**", @@ -39,5 +59,15 @@ "lcov", "text-summary" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/json-schema-traverse.git" + }, + "scripts": { + "eslint": "eslint index.js spec", + "test": "npm run eslint && nyc npm run test-spec", + "test-spec": "mocha spec -R spec" + }, + "version": "0.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/json-schema/package.json b/admin/vue2/element-admin-v3/node_modules/json-schema/package.json index b9b7bac83..5a18a1226 100644 --- a/admin/vue2/element-admin-v3/node_modules/json-schema/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json-schema/package.json @@ -1,31 +1,75 @@ -{ - "name": "json-schema", - "version": "0.2.3", - "author": "Kris Zyp", - "description": "JSON Schema validation and specifications", - "maintainers":[ - {"name": "Kris Zyp", "email": "kriszyp@gmail.com"}], - "keywords": [ - "json", - "schema" - ], - "licenses": [ - { - "type": "AFLv2.1", - "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43" - }, - { - "type": "BSD", - "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13" - } - ], - "repository": { - "type":"git", - "url":"http://github.com/kriszyp/json-schema" - }, - "directories": { "lib": "./lib" }, - "main": "./lib/validate.js", - "devDependencies": { "vows": "*" }, - "scripts": { "test": "echo TESTS DISABLED vows --spec test/*.js" } -} - +{ + "_args": [ + [ + "json-schema@0.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "json-schema@0.2.3", + "_id": "json-schema@0.2.3", + "_inBundle": false, + "_integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "_location": "/json-schema", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-schema@0.2.3", + "name": "json-schema", + "escapedName": "json-schema", + "rawSpec": "0.2.3", + "saveSpec": null, + "fetchSpec": "0.2.3" + }, + "_requiredBy": [ + "/jsprim" + ], + "_resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1609553708276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", + "_spec": "0.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kris Zyp" + }, + "bugs": { + "url": "https://github.com/kriszyp/json-schema/issues" + }, + "description": "JSON Schema validation and specifications", + "devDependencies": { + "vows": "*" + }, + "directories": { + "lib": "./lib" + }, + "homepage": "https://github.com/kriszyp/json-schema#readme", + "keywords": [ + "json", + "schema" + ], + "licenses": [ + { + "type": "AFLv2.1", + "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43" + }, + { + "type": "BSD", + "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13" + } + ], + "main": "./lib/validate.js", + "maintainers": [ + { + "name": "Kris Zyp", + "email": "kriszyp@gmail.com" + } + ], + "name": "json-schema", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/kriszyp/json-schema.git" + }, + "scripts": { + "test": "echo TESTS DISABLED vows --spec test/*.js" + }, + "version": "0.2.3" +} diff --git a/admin/vue2/element-admin-v3/node_modules/json-stable-stringify-without-jsonify/package.json b/admin/vue2/element-admin-v3/node_modules/json-stable-stringify-without-jsonify/package.json index c59c87edb..a79338a05 100644 --- a/admin/vue2/element-admin-v3/node_modules/json-stable-stringify-without-jsonify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json-stable-stringify-without-jsonify/package.json @@ -1,13 +1,62 @@ { - "name": "json-stable-stringify-without-jsonify", - "version": "1.0.1", - "description": "deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results, with no public domain dependencies", - "main": "index.js", - "dependencies": { + "_args": [ + [ + "json-stable-stringify-without-jsonify@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "json-stable-stringify-without-jsonify@1.0.1", + "_id": "json-stable-stringify-without-jsonify@1.0.1", + "_inBundle": false, + "_integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "_location": "/json-stable-stringify-without-jsonify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-stable-stringify-without-jsonify@1.0.1", + "name": "json-stable-stringify-without-jsonify", + "escapedName": "json-stable-stringify-without-jsonify", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/samn/json-stable-stringify/issues" }, + "dependencies": {}, + "description": "deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results, with no public domain dependencies", "devDependencies": { "tape": "~1.0.4" }, + "homepage": "https://github.com/samn/json-stable-stringify", + "keywords": [ + "json", + "stringify", + "deterministic", + "hash", + "sort", + "stable" + ], + "license": "MIT", + "main": "index.js", + "name": "json-stable-stringify-without-jsonify", + "repository": { + "type": "git", + "url": "git://github.com/samn/json-stable-stringify.git" + }, "scripts": { "test": "tape test/*.js" }, @@ -15,29 +64,13 @@ "files": "test/*.js", "browsers": [ "ie/8..latest", - "ff/5", "ff/latest", - "chrome/15", "chrome/latest", + "ff/5", + "ff/latest", + "chrome/15", + "chrome/latest", "safari/latest", "opera/latest" ] }, - "repository": { - "type": "git", - "url": "git://github.com/samn/json-stable-stringify.git" - }, - "homepage": "https://github.com/samn/json-stable-stringify", - "keywords": [ - "json", - "stringify", - "deterministic", - "hash", - "sort", - "stable" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/json-stringify-safe/package.json b/admin/vue2/element-admin-v3/node_modules/json-stringify-safe/package.json index 8e17b1266..5cc45f5e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/json-stringify-safe/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json-stringify-safe/package.json @@ -1,31 +1,70 @@ { - "name": "json-stringify-safe", - "version": "5.0.1", + "_args": [ + [ + "json-stringify-safe@5.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "json-stringify-safe@5.0.1", + "_id": "json-stringify-safe@5.0.1", + "_inBundle": false, + "_integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "_location": "/json-stringify-safe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-stringify-safe@5.0.1", + "name": "json-stringify-safe", + "escapedName": "json-stringify-safe", + "rawSpec": "5.0.1", + "saveSpec": null, + "fetchSpec": "5.0.1" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "_spec": "5.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "bugs": { + "url": "https://github.com/isaacs/json-stringify-safe/issues" + }, + "contributors": [ + { + "name": "Andri Möll", + "email": "andri@dot.ee", + "url": "http://themoll.com" + } + ], "description": "Like JSON.stringify, but doesn't blow up on circular refs.", + "devDependencies": { + "mocha": ">= 2.1.0 < 3", + "must": ">= 0.12 < 0.13", + "sinon": ">= 1.12.2 < 2" + }, + "homepage": "https://github.com/isaacs/json-stringify-safe", "keywords": [ "json", "stringify", "circular", "safe" ], - "homepage": "https://github.com/isaacs/json-stringify-safe", - "bugs": "https://github.com/isaacs/json-stringify-safe/issues", - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "contributors": [ - "Andri Möll (http://themoll.com)" - ], "license": "ISC", + "main": "stringify.js", + "name": "json-stringify-safe", "repository": { "type": "git", - "url": "git://github.com/isaacs/json-stringify-safe" + "url": "git://github.com/isaacs/json-stringify-safe.git" }, - "main": "stringify.js", "scripts": { "test": "node test.js" }, - "devDependencies": { - "mocha": ">= 2.1.0 < 3", - "must": ">= 0.12 < 0.13", - "sinon": ">= 1.12.2 < 2" - } + "version": "5.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/json3/package.json b/admin/vue2/element-admin-v3/node_modules/json3/package.json index 0672e8e6b..d210c6237 100644 --- a/admin/vue2/element-admin-v3/node_modules/json3/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json3/package.json @@ -1,67 +1,70 @@ { - "name": "json3", - "version": "3.3.3", - "description": "A JSON polyfill for older JavaScript platforms.", - "homepage": "https://bestiejs.github.io/json3", - "main": "./lib/json3", - "keywords": [ - "json", - "spec", - "ecma", - "es5", - "lexer", - "parser", - "stringify" + "_args": [ + [ + "json3@3.3.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", + "_from": "json3@3.3.3", + "_id": "json3@3.3.3", + "_inBundle": false, + "_integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "_location": "/json3", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json3@3.3.3", + "name": "json3", + "escapedName": "json3", + "rawSpec": "3.3.3", + "saveSpec": null, + "fetchSpec": "3.3.3" + }, + "_requiredBy": [ + "/sockjs-client" + ], + "_resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "_spec": "3.3.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kit Cambridge", "email": "github@kitcambridge.be", - "web": "http://kitcambridge.be/" + "url": "http://kitcambridge.be/" + }, + "bugs": { + "url": "https://github.com/bestiejs/json3/issues" }, - "maintainers": [ - { - "name": "Kit Cambridge", - "email": "github@kitcambridge.be", - "web": "http://kitcambridge.be/" - }, - { - "name": "Benjamin Tan", - "email": "demoneaux@gmail.com", - "web": "https://d10.github.io/" - } - ], "contributors": [ { "name": "Mangled Deutz", "email": "olivier@webitup.fr", - "web": "http://tech.roxee.tv/" + "url": "http://tech.roxee.tv/" }, { "name": "Øyvind Sean Kinsey", "email": "oyvind@kinsey.no", - "web": "http://fb.me/ok" + "url": "http://fb.me/ok" }, { "name": "Oskar Schöldström", "email": "public@oxy.fi", - "web": "http://oxy.fi/" + "url": "http://oxy.fi/" }, { "name": "Kiryl Yermakou", "email": "rma4ok@gmail.com", - "web": "https://github.com/rma4ok" + "url": "https://github.com/rma4ok" } ], - "bugs": { - "url": "https://github.com/bestiejs/json3/issues" - }, - "scripts": { - "test": "node test/test_*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/bestiejs/json3.git" + "description": "A JSON polyfill for older JavaScript platforms.", + "devDependencies": { + "curl-amd": "~0.8.12", + "highlight.js": "~8.3.0", + "marked": "~0.3.2", + "requirejs": "~2.1.15", + "spec": "~1.0.1", + "tar": "~1.0.2" }, "files": [ "README.md", @@ -69,6 +72,7 @@ "lib/json3.js", "lib/json3.min.js" ], + "homepage": "https://bestiejs.github.io/json3", "jam": { "main": "./lib/json3.js", "includes": [ @@ -78,6 +82,38 @@ "lib/json3.min.js" ] }, + "keywords": [ + "json", + "spec", + "ecma", + "es5", + "lexer", + "parser", + "stringify" + ], + "license": "MIT", + "main": "./lib/json3", + "maintainers": [ + { + "name": "Kit Cambridge", + "email": "github@kitcambridge.be", + "url": "http://kitcambridge.be/" + }, + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + } + ], + "name": "json3", + "repository": { + "type": "git", + "url": "git://github.com/bestiejs/json3.git" + }, + "scripts": { + "test": "node test/test_*.js" + }, + "version": "3.3.3", "volo": { "type": "directory", "ignore": [ @@ -91,13 +127,5 @@ "test", "vendor" ] - }, - "devDependencies": { - "curl-amd": "~0.8.12", - "highlight.js": "~8.3.0", - "marked": "~0.3.2", - "requirejs": "~2.1.15", - "spec": "~1.0.1", - "tar": "~1.0.2" } } diff --git a/admin/vue2/element-admin-v3/node_modules/json5/package.json b/admin/vue2/element-admin-v3/node_modules/json5/package.json index 44059b492..c144cc43f 100644 --- a/admin/vue2/element-admin-v3/node_modules/json5/package.json +++ b/admin/vue2/element-admin-v3/node_modules/json5/package.json @@ -1,38 +1,85 @@ { + "_args": [ + [ + "json5@0.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "json5@0.5.1", + "_id": "json5@0.5.1", + "_inBundle": false, + "_integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "_location": "/json5", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json5@0.5.1", "name": "json5", - "version": "0.5.1", - "description": "JSON for the ES5 era.", - "keywords": [ - "json", - "es5" - ], - "author": "Aseem Kishore ", - "contributors": [ - "Max Nanasy ", - "Andrew Eisenberg ", - "Jordan Tucker " - ], - "main": "lib/json5.js", - "bin": "lib/cli.js", - "files": [ - "lib/" - ], - "dependencies": {}, - "devDependencies": { - "gulp": "^3.9.1", - "gulp-jshint": "^2.0.1", - "jshint": "^2.9.3", - "jshint-stylish": "^2.2.1", - "mocha": "^3.1.0" + "escapedName": "json5", + "rawSpec": "0.5.1", + "saveSpec": null, + "fetchSpec": "0.5.1" + }, + "_requiredBy": [ + "/babel-core", + "/pug-html-loader/loader-utils" + ], + "_resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", + "_spec": "0.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aseem Kishore", + "email": "aseem.kishore@gmail.com" + }, + "bin": { + "json5": "lib/cli.js" + }, + "bugs": { + "url": "https://github.com/aseemk/json5/issues" + }, + "contributors": [ + { + "name": "Max Nanasy", + "email": "max.nanasy@gmail.com" }, - "scripts": { - "build": "node ./lib/cli.js -c package.json5", - "test": "mocha --ui exports --reporter spec" + { + "name": "Andrew Eisenberg", + "email": "andrew@eisenberg.as" }, - "homepage": "http://json5.org/", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/aseemk/json5.git" + { + "name": "Jordan Tucker", + "email": "jordanbtucker@gmail.com" } -} \ No newline at end of file + ], + "dependencies": {}, + "description": "JSON for the ES5 era.", + "devDependencies": { + "gulp": "^3.9.1", + "gulp-jshint": "^2.0.1", + "jshint": "^2.9.3", + "jshint-stylish": "^2.2.1", + "mocha": "^3.1.0" + }, + "files": [ + "lib/" + ], + "homepage": "http://json5.org/", + "keywords": [ + "json", + "es5" + ], + "license": "MIT", + "main": "lib/json5.js", + "name": "json5", + "repository": { + "type": "git", + "url": "git+https://github.com/aseemk/json5.git" + }, + "scripts": { + "build": "node ./lib/cli.js -c package.json5", + "test": "mocha --ui exports --reporter spec" + }, + "version": "0.5.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/jsonlint/package.json b/admin/vue2/element-admin-v3/node_modules/jsonlint/package.json index 1525d9a4f..d8ad0c2b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/jsonlint/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jsonlint/package.json @@ -1,41 +1,73 @@ { - "author": "Zach Carter (http://zaa.ch)", - "name": "jsonlint", - "description": "Validate JSON", - "keywords": [ - "json", - "validation", - "lint", - "jsonlint" + "_args": [ + [ + "jsonlint@1.6.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "1.6.3", - "preferGlobal": true, - "repository": { - "type": "git", - "url": "git://github.com/zaach/jsonlint.git" + "_from": "jsonlint@1.6.3", + "_id": "jsonlint@1.6.3", + "_inBundle": false, + "_integrity": "sha1-y14x78C3gpHQ2GL77wWQCt8hKYg=", + "_location": "/jsonlint", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jsonlint@1.6.3", + "name": "jsonlint", + "escapedName": "jsonlint", + "rawSpec": "1.6.3", + "saveSpec": null, + "fetchSpec": "1.6.3" }, - "bugs": { - "url": "http://github.com/zaach/jsonlint/issues" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/jsonlint/download/jsonlint-1.6.3.tgz", + "_spec": "1.6.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Zach Carter", + "email": "zach@carter.name", + "url": "http://zaa.ch" }, - "main": "lib/jsonlint.js", "bin": { "jsonlint": "lib/cli.js" }, - "engines": { - "node": ">= 0.6" + "bugs": { + "url": "http://github.com/zaach/jsonlint/issues" }, "dependencies": { - "nomnom": "^1.5.x", - "JSV": "^4.0.x" + "JSV": "^4.0.x", + "nomnom": "^1.5.x" }, + "description": "Validate JSON", "devDependencies": { - "test": "*", "jison": "*", + "test": "*", "uglify-js": "*" }, + "engines": { + "node": ">= 0.6" + }, + "homepage": "http://zaach.github.com/jsonlint/", + "keywords": [ + "json", + "validation", + "lint", + "jsonlint" + ], + "main": "lib/jsonlint.js", + "name": "jsonlint", + "optionalDependencies": {}, + "preferGlobal": true, + "repository": { + "type": "git", + "url": "git://github.com/zaach/jsonlint.git" + }, "scripts": { "test": "node test/all-tests.js" }, - "homepage": "http://zaach.github.com/jsonlint/", - "optionalDependencies": {} + "version": "1.6.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/jsprim/package.json b/admin/vue2/element-admin-v3/node_modules/jsprim/package.json index 25345ee04..2bccaa8cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/jsprim/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jsprim/package.json @@ -1,20 +1,53 @@ { - "name": "jsprim", - "version": "1.4.1", - "description": "utilities for primitive JavaScript types", - "main": "./lib/jsprim.js", - "repository": { - "type": "git", - "url": "git://github.com/joyent/node-jsprim.git" - }, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" + "_args": [ + [ + "jsprim@1.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jsprim@1.4.1", + "_id": "jsprim@1.4.1", + "_inBundle": false, + "_integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "_location": "/jsprim", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jsprim@1.4.1", + "name": "jsprim", + "escapedName": "jsprim", + "rawSpec": "1.4.1", + "saveSpec": null, + "fetchSpec": "1.4.1" + }, + "_requiredBy": [ + "/http-signature" + ], + "_resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "_spec": "1.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/joyent/node-jsprim/issues" + }, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "description": "utilities for primitive JavaScript types", + "engines": [ + "node >=0.6.0" + ], + "homepage": "https://github.com/joyent/node-jsprim#readme", + "license": "MIT", + "main": "./lib/jsprim.js", + "name": "jsprim", + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-jsprim.git" + }, + "version": "1.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/jstransformer/package.json b/admin/vue2/element-admin-v3/node_modules/jstransformer/package.json index 3dce89ac5..5148eb108 100644 --- a/admin/vue2/element-admin-v3/node_modules/jstransformer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jstransformer/package.json @@ -1,31 +1,67 @@ { - "name": "jstransformer", - "version": "1.0.0", - "description": "Normalize the API of any jstransformer", - "keywords": [ - "jstransformer" + "_args": [ + [ + "jstransformer@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jstransformer@1.0.0", + "_id": "jstransformer@1.0.0", + "_inBundle": false, + "_integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "_location": "/jstransformer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jstransformer@1.0.0", + "name": "jstransformer", + "escapedName": "jstransformer", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/pug-filters", + "/pug-html-loader/pug-filters" ], + "_resolved": "https://registry.npm.taobao.org/jstransformer/download/jstransformer-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/jstransformers/jstransformer/issues" + }, "dependencies": { "is-promise": "^2.0.0", "promise": "^7.0.1" }, + "description": "Normalize the API of any jstransformer", "devDependencies": { "coveralls": "^2.11.2", "istanbul": "^0.4.0", "testit": "^2.0.2" }, - "scripts": { - "test": "node test", - "coverage": "istanbul cover test", - "coveralls": "npm run coverage && cat ./coverage/lcov.info | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/jstransformers/jstransformer#readme", + "keywords": [ + "jstransformer" + ], + "license": "MIT", + "name": "jstransformer", "repository": { "type": "git", - "url": "https://github.com/jstransformers/jstransformer.git" + "url": "git+https://github.com/jstransformers/jstransformer.git" + }, + "scripts": { + "coverage": "istanbul cover test", + "coveralls": "npm run coverage && cat ./coverage/lcov.info | coveralls", + "test": "node test" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/jszip/package.json b/admin/vue2/element-admin-v3/node_modules/jszip/package.json index aa56bc7c1..3abd173a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/jszip/package.json +++ b/admin/vue2/element-admin-v3/node_modules/jszip/package.json @@ -1,13 +1,42 @@ { - "name": "jszip", - "version": "3.7.1", - "author": "Stuart Knightley ", - "description": "Create, read and edit .zip files with JavaScript http://stuartk.com/jszip", - "scripts": { - "test": "npm run test-node && npm run test-browser", - "test-node": "qunit --require ./test/helpers/test-utils.js --require ./test/helpers/node-test-utils.js test/asserts/", - "test-browser": "grunt build && grunt test", - "lint": "grunt jshint" + "_args": [ + [ + "jszip@3.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "jszip@3.7.1", + "_id": "jszip@3.7.1", + "_inBundle": false, + "_integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "_location": "/jszip", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jszip@3.7.1", + "name": "jszip", + "escapedName": "jszip", + "rawSpec": "3.7.1", + "saveSpec": null, + "fetchSpec": "3.7.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmmirror.com/jszip/download/jszip-3.7.1.tgz", + "_spec": "3.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Stuart Knightley", + "email": "stuart@stuartk.com" + }, + "browser": { + "readable-stream": "./lib/readable-stream-browser.js", + "./lib/index": "./dist/jszip.min.js" + }, + "bugs": { + "url": "https://github.com/Stuk/jszip/issues" }, "contributors": [ { @@ -23,21 +52,13 @@ "name": "yiminghe" } ], - "main": "./lib/index", - "browser": { - "readable-stream": "./lib/readable-stream-browser.js", - "./lib/index": "./dist/jszip.min.js" - }, - "types": "./index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/Stuk/jszip.git" + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" }, - "keywords": [ - "zip", - "deflate", - "inflate" - ], + "description": "Create, read and edit .zip files with JavaScript http://stuartk.com/jszip", "devDependencies": { "browserify": "~13.0.0", "grunt": "~0.4.1", @@ -46,18 +67,32 @@ "grunt-contrib-connect": "~2.0.0", "grunt-contrib-jshint": "~1.0.0", "grunt-contrib-uglify": "~4.0.1", - "grunt-saucelabs": "Stuk/grunt-saucelabs#v10.0.0", + "grunt-saucelabs": "github:Stuk/grunt-saucelabs#v10.0.0", "jshint": "~2.9.1", "jszip-utils": "~0.0.2", "package-json-versionify": "1.0.2", "qunit": "~2.9.2", "tmp": "0.0.28" }, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "homepage": "https://github.com/Stuk/jszip#readme", + "keywords": [ + "zip", + "deflate", + "inflate" + ], + "license": "(MIT OR GPL-3.0-or-later)", + "main": "./lib/index", + "name": "jszip", + "repository": { + "type": "git", + "url": "git+https://github.com/Stuk/jszip.git" + }, + "scripts": { + "lint": "grunt jshint", + "test": "npm run test-node && npm run test-browser", + "test-browser": "grunt build && grunt test", + "test-node": "qunit --require ./test/helpers/test-utils.js --require ./test/helpers/node-test-utils.js test/asserts/" }, - "license": "(MIT OR GPL-3.0-or-later)" + "types": "./index.d.ts", + "version": "3.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/killable/package.json b/admin/vue2/element-admin-v3/node_modules/killable/package.json index bbbc347b0..5d7ed0bc9 100644 --- a/admin/vue2/element-admin-v3/node_modules/killable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/killable/package.json @@ -1,12 +1,40 @@ { - "name": "killable", - "version": "1.0.1", - "description": "Keeps track of a server's open sockets so they can be destroyed at a moment's notice.", - "main": "index.js", - "repository": { - "type": "git", - "url": "https://github.com/marten-de-vries/killable.git" + "_args": [ + [ + "killable@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "killable@1.0.1", + "_id": "killable@1.0.1", + "_inBundle": false, + "_integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "_location": "/killable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "killable@1.0.1", + "name": "killable", + "escapedName": "killable", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Marten de Vries" }, + "bugs": { + "url": "https://github.com/marten-de-vries/killable/issues" + }, + "description": "Keeps track of a server's open sockets so they can be destroyed at a moment's notice.", + "homepage": "https://github.com/marten-de-vries/killable#readme", "keywords": [ "express", "http", @@ -19,9 +47,12 @@ "shutdown", "immeadiately" ], - "author": "Marten de Vries", "license": "ISC", - "bugs": { - "url": "https://github.com/marten-de-vries/killable/issues" - } + "main": "index.js", + "name": "killable", + "repository": { + "type": "git", + "url": "git+https://github.com/marten-de-vries/killable.git" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/kind-of/package.json index 5820cad23..12a069052 100644 --- a/admin/vue2/element-admin-v3/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/kind-of/package.json @@ -1,35 +1,88 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "6.0.3", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@6.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@6.0.3", + "_id": "kind-of@6.0.3", + "_inBundle": false, + "_integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "_location": "/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@6.0.3", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "6.0.3", + "saveSpec": null, + "fetchSpec": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base/is-accessor-descriptor", + "/base/is-data-descriptor", + "/base/is-descriptor", + "/clone-deep", + "/define-property/is-accessor-descriptor", + "/define-property/is-data-descriptor", + "/define-property/is-descriptor", + "/extglob/is-accessor-descriptor", + "/extglob/is-data-descriptor", + "/extglob/is-descriptor", + "/micromatch", + "/nanomatch", + "/snapdragon-node/is-accessor-descriptor", + "/snapdragon-node/is-data-descriptor", + "/snapdragon-node/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "_spec": "6.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "benchmarked": "^2.0.0", "browserify": "^14.4.0", @@ -37,6 +90,13 @@ "mocha": "^4.0.1", "write": "^1.0.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -60,6 +120,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -84,5 +155,6 @@ "typeof", "verb" ] - } + }, + "version": "6.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/last-call-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/last-call-webpack-plugin/package.json index ec4ccfdd1..844e4b16f 100644 --- a/admin/vue2/element-admin-v3/node_modules/last-call-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/last-call-webpack-plugin/package.json @@ -1,18 +1,45 @@ { - "name": "last-call-webpack-plugin", - "version": "3.0.0", - "author": "Nuno Rodrigues", - "description": "A Webpack plugin that allows to transform \\ modify assets just before Webpack emits them.", + "_args": [ + [ + "last-call-webpack-plugin@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "last-call-webpack-plugin@3.0.0", + "_id": "last-call-webpack-plugin@3.0.0", + "_inBundle": false, + "_integrity": "sha1-l0LfDhDjz0blwDgcLekNOnotdVU=", + "_location": "/last-call-webpack-plugin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "last-call-webpack-plugin@3.0.0", + "name": "last-call-webpack-plugin", + "escapedName": "last-call-webpack-plugin", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/optimize-css-assets-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nuno Rodrigues" + }, + "bugs": { + "url": "https://github.com/NMFR/last-call-webpack-plugin/issues" + }, "dependencies": { "lodash": "^4.17.5", "webpack-sources": "^1.1.0" }, - "main": "src/index.js", + "description": "A Webpack plugin that allows to transform \\ modify assets just before Webpack emits them.", "homepage": "http://github.com/NMFR/last-call-webpack-plugin", - "repository": { - "type": "git", - "url": "http://github.com/NMFR/last-call-webpack-plugin.git" - }, "keywords": [ "transform", "modify", @@ -23,5 +50,12 @@ "webpack", "assets" ], - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "last-call-webpack-plugin", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/NMFR/last-call-webpack-plugin.git" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lazy-cache/package.json b/admin/vue2/element-admin-v3/node_modules/lazy-cache/package.json index e635e982d..c78ce44a7 100644 --- a/admin/vue2/element-admin-v3/node_modules/lazy-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lazy-cache/package.json @@ -1,30 +1,54 @@ { - "name": "lazy-cache", - "description": "Cache requires to be lazy-loaded when needed.", - "version": "1.0.4", - "homepage": "https://github.com/jonschlinkert/lazy-cache", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/lazy-cache", - "bugs": { - "url": "https://github.com/jonschlinkert/lazy-cache/issues" + "_args": [ + [ + "lazy-cache@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "lazy-cache@1.0.4", + "_id": "lazy-cache@1.0.4", + "_inBundle": false, + "_integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "_location": "/lazy-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lazy-cache@1.0.4", + "name": "lazy-cache", + "escapedName": "lazy-cache", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/center-align" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/lazy-cache/issues" }, + "description": "Cache requires to be lazy-loaded when needed.", "devDependencies": { "ansi-yellow": "^0.1.1", "glob": "^7.0.3", "gulp-format-md": "^0.1.8", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/lazy-cache", "keywords": [ "cache", "caching", @@ -34,6 +58,16 @@ "require", "requires" ], + "license": "MIT", + "main": "index.js", + "name": "lazy-cache", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/lazy-cache.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -54,5 +88,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/lcid/package.json b/admin/vue2/element-admin-v3/node_modules/lcid/package.json index ac40908df..6a76e21d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/lcid/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lcid/package.json @@ -1,47 +1,83 @@ { - "name": "lcid", - "version": "2.0.0", - "description": "Mapping between standard locale identifiers and Windows locale identifiers (LCID)", - "license": "MIT", - "repository": "sindresorhus/lcid", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "lcid.json" - ], - "keywords": [ - "lcid", - "locale", - "string", - "str", - "id", - "identifier", - "windows", - "language", - "lang", - "map", - "mapping", - "convert", - "json", - "bcp47", - "ietf", - "tag" - ], - "dependencies": { - "invert-kv": "^2.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "lcid@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "lcid@2.0.0", + "_id": "lcid@2.0.0", + "_inBundle": false, + "_integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "_location": "/lcid", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lcid@2.0.0", + "name": "lcid", + "escapedName": "lcid", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/os-locale" + ], + "_resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/lcid/issues" + }, + "dependencies": { + "invert-kv": "^2.0.0" + }, + "description": "Mapping between standard locale identifiers and Windows locale identifiers (LCID)", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "lcid.json" + ], + "homepage": "https://github.com/sindresorhus/lcid#readme", + "keywords": [ + "lcid", + "locale", + "string", + "str", + "id", + "identifier", + "windows", + "language", + "lang", + "map", + "mapping", + "convert", + "json", + "bcp47", + "ietf", + "tag" + ], + "license": "MIT", + "name": "lcid", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/lcid.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/leven/package.json b/admin/vue2/element-admin-v3/node_modules/leven/package.json index 4fd64bb22..bb1c6e486 100644 --- a/admin/vue2/element-admin-v3/node_modules/leven/package.json +++ b/admin/vue2/element-admin-v3/node_modules/leven/package.json @@ -1,24 +1,62 @@ { - "name": "leven", - "version": "2.1.0", - "description": "Measure the difference between two strings using the fastest JS implementation of the Levenshtein distance algorithm", - "license": "MIT", - "repository": "sindresorhus/leven", + "_args": [ + [ + "leven@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "leven@2.1.0", + "_id": "leven@2.1.0", + "_inBundle": false, + "_integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "_location": "/leven", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "leven@2.1.0", + "name": "leven", + "escapedName": "leven", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/jest-validate" + ], + "_resolved": "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/leven/issues" + }, + "description": "Measure the difference between two strings using the fastest JS implementation of the Levenshtein distance algorithm", + "devDependencies": { + "ava": "^0.17.0", + "fast-levenshtein": "^2.0.5", + "ld": "^0.1.0", + "levdist": "^2.0.0", + "levenshtein": "^1.0.4", + "levenshtein-component": "0.0.1", + "levenshtein-edit-distance": "^2.0.0", + "matcha": "^0.7.0", + "natural": "^0.4.0", + "talisman": "^0.18.0", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava", - "bench": "matcha bench.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/leven#readme", "keywords": [ "leven", "levenshtein", @@ -39,17 +77,15 @@ "match", "matching" ], - "devDependencies": { - "ava": "^0.17.0", - "fast-levenshtein": "^2.0.5", - "ld": "^0.1.0", - "levdist": "^2.0.0", - "levenshtein": "^1.0.4", - "levenshtein-component": "0.0.1", - "levenshtein-edit-distance": "^2.0.0", - "matcha": "^0.7.0", - "natural": "^0.4.0", - "talisman": "^0.18.0", - "xo": "^0.16.0" - } + "license": "MIT", + "name": "leven", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/leven.git" + }, + "scripts": { + "bench": "matcha bench.js", + "test": "xo && ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/levn/package.json b/admin/vue2/element-admin-v3/node_modules/levn/package.json index 56dfbc426..aac419092 100644 --- a/admin/vue2/element-admin-v3/node_modules/levn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/levn/package.json @@ -1,8 +1,59 @@ { - "name": "levn", - "version": "0.3.0", - "author": "George Zahariev ", + "_args": [ + [ + "levn@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "levn@0.3.0", + "_id": "levn@0.3.0", + "_inBundle": false, + "_integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "_location": "/levn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "levn@0.3.0", + "name": "levn", + "escapedName": "levn", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/eslint", + "/optionator" + ], + "_resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "George Zahariev", + "email": "z@georgezahariev.com" + }, + "bugs": { + "url": "https://github.com/gkz/levn/issues" + }, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, "description": "Light ECMAScript (JavaScript) Value Notation - human written, concise, typed, flexible", + "devDependencies": { + "istanbul": "~0.4.1", + "livescript": "~1.4.0", + "mocha": "~2.3.4" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "lib", + "README.md", + "LICENSE" + ], "homepage": "https://github.com/gkz/levn", "keywords": [ "levn", @@ -17,17 +68,9 @@ "typed", "flexible" ], - "files": [ - "lib", - "README.md", - "LICENSE" - ], - "main": "./lib/", - "bugs": "https://github.com/gkz/levn/issues", "license": "MIT", - "engines": { - "node": ">= 0.8.0" - }, + "main": "./lib/", + "name": "levn", "repository": { "type": "git", "url": "git://github.com/gkz/levn.git" @@ -35,13 +78,5 @@ "scripts": { "test": "make test" }, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "devDependencies": { - "livescript": "~1.4.0", - "mocha": "~2.3.4", - "istanbul": "~0.4.1" - } + "version": "0.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lie/package.json b/admin/vue2/element-admin-v3/node_modules/lie/package.json index 0f698a717..8e02fdde4 100644 --- a/admin/vue2/element-admin-v3/node_modules/lie/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lie/package.json @@ -1,38 +1,42 @@ { - "name": "lie", - "version": "3.3.0", - "description": "A basic but performant promise implementation", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/calvinmetcalf/lie.git" + "_args": [ + [ + "lie@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "lie@3.3.0", + "_id": "lie@3.3.0", + "_inBundle": false, + "_integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", + "_location": "/lie", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lie@3.3.0", + "name": "lie", + "escapedName": "lie", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/jszip" + ], + "_resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "./lib/index.js": "./lib/browser.js" }, "bugs": { "url": "https://github.com/calvinmetcalf/lie/issues" }, - "keywords": [ - "lie", - "promise", - "async", - "aplus" - ], - "main": "lib/index.js", - "scripts": { - "pretest": "npm run build", - "test": "npm run jshint && mocha -R nyan ./test/cover.js && tsc --noEmit ./test/types.ts", - "build-node": "copyfiles -f src/index.js lib && browserify-transform-cli inline-process-browser unreachable-branch-transform es3ify < src/index.js > lib/browser.js", - "build-js": "browserify -s Promise -p bundle-collapser/plugin . | derequire > ./dist/lie.js", - "build-min": "uglifyjs ./dist/lie.js -mc > ./dist/lie.min.js", - "build-poly-js": "browserify -p bundle-collapser/plugin ./polyfill.js | derequire > ./dist/lie.polyfill.js", - "build-poly-min": "uglifyjs ./dist/lie.polyfill.js -mc > ./dist/lie.polyfill.min.js", - "build-poly": "npm run build-poly-js && npm run build-poly-min", - "build": "npm run build-node && npm run build-js && npm run build-min && npm run build-poly", - "prebuild": "rimraf lib dist && mkdirp lib dist", - "cover": "istanbul cover _mocha ./test/cover.js -- -R spec && istanbul check-coverage --lines 100 --function 100 --statements 100 --branches 100", - "jshint": "jshint src", - "node": "mocha -R spec ./test/cover.js", - "browser": "browserify test/cover.js > test/browser.js && mocha-phantomjs test/test.html" + "dependencies": { + "immediate": "~3.0.5" }, + "description": "A basic but performant promise implementation", "devDependencies": { "browserify": "^13.0.0", "browserify-transform-cli": "^1.1.1", @@ -47,23 +51,48 @@ "mocha": "^1.18.0", "mocha-phantomjs": "~3.5.0", "phantomjs": "^1.9.9", - "promises-aplus-tests": "calvinmetcalf/promises-tests#phantom", + "promises-aplus-tests": "github:calvinmetcalf/promises-tests#phantom", "rimraf": "^2.5.4", "typescript": "^2.7.1", "uglify-js": "^2.4.13", "unreachable-branch-transform": "^0.3.0" }, - "dependencies": { - "immediate": "~3.0.5" - }, - "browser": { - "./lib/index.js": "./lib/browser.js" - }, "files": [ "lib", "dist", "polyfill.js", "lie.d.ts" ], - "types": "lie.d.ts" + "homepage": "https://github.com/calvinmetcalf/lie#readme", + "keywords": [ + "lie", + "promise", + "async", + "aplus" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "lie", + "repository": { + "type": "git", + "url": "git+https://github.com/calvinmetcalf/lie.git" + }, + "scripts": { + "browser": "browserify test/cover.js > test/browser.js && mocha-phantomjs test/test.html", + "build": "npm run build-node && npm run build-js && npm run build-min && npm run build-poly", + "build-js": "browserify -s Promise -p bundle-collapser/plugin . | derequire > ./dist/lie.js", + "build-min": "uglifyjs ./dist/lie.js -mc > ./dist/lie.min.js", + "build-node": "copyfiles -f src/index.js lib && browserify-transform-cli inline-process-browser unreachable-branch-transform es3ify < src/index.js > lib/browser.js", + "build-poly": "npm run build-poly-js && npm run build-poly-min", + "build-poly-js": "browserify -p bundle-collapser/plugin ./polyfill.js | derequire > ./dist/lie.polyfill.js", + "build-poly-min": "uglifyjs ./dist/lie.polyfill.js -mc > ./dist/lie.polyfill.min.js", + "cover": "istanbul cover _mocha ./test/cover.js -- -R spec && istanbul check-coverage --lines 100 --function 100 --statements 100 --branches 100", + "jshint": "jshint src", + "node": "mocha -R spec ./test/cover.js", + "prebuild": "rimraf lib dist && mkdirp lib dist", + "pretest": "npm run build", + "test": "npm run jshint && mocha -R nyan ./test/cover.js && tsc --noEmit ./test/types.ts" + }, + "types": "lie.d.ts", + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/cross-spawn/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/cross-spawn/package.json index 7c10c9720..2c0385312 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/cross-spawn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/cross-spawn/package.json @@ -1,23 +1,62 @@ { - "name": "cross-spawn", - "version": "5.1.0", - "description": "Cross platform child_process#spawn and child_process#spawnSync", - "main": "index.js", - "scripts": { - "test": "node test/prepare && mocha --bail test/test", - "lint": "eslint '{*.js,lib/**/*.js,test/**/*.js}'" + "_args": [ + [ + "cross-spawn@5.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cross-spawn@5.1.0", + "_id": "cross-spawn@5.1.0", + "_inBundle": false, + "_integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "_location": "/lint-staged/cross-spawn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cross-spawn@5.1.0", + "name": "cross-spawn", + "escapedName": "cross-spawn", + "rawSpec": "5.1.0", + "saveSpec": null, + "fetchSpec": "5.1.0" + }, + "_requiredBy": [ + "/lint-staged/execa" + ], + "_resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "_spec": "5.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "IndigoUnited", + "email": "hello@indigounited.com", + "url": "http://indigounited.com" }, "bugs": { "url": "https://github.com/IndigoUnited/node-cross-spawn/issues/" }, - "repository": { - "type": "git", - "url": "git://github.com/IndigoUnited/node-cross-spawn.git" + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "description": "Cross platform child_process#spawn and child_process#spawnSync", + "devDependencies": { + "@satazor/eslint-config": "^3.0.0", + "eslint": "^3.0.0", + "expect.js": "^0.3.0", + "glob": "^7.0.0", + "mkdirp": "^0.5.1", + "mocha": "^3.0.2", + "once": "^1.4.0", + "rimraf": "^2.5.0" }, "files": [ "index.js", "lib" ], + "homepage": "https://github.com/IndigoUnited/node-cross-spawn#readme", "keywords": [ "spawn", "spawnSync", @@ -33,21 +72,16 @@ "cmd", "execute" ], - "author": "IndigoUnited (http://indigounited.com)", "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "main": "index.js", + "name": "cross-spawn", + "repository": { + "type": "git", + "url": "git://github.com/IndigoUnited/node-cross-spawn.git" }, - "devDependencies": { - "@satazor/eslint-config": "^3.0.0", - "eslint": "^3.0.0", - "expect.js": "^0.3.0", - "glob": "^7.0.0", - "mkdirp": "^0.5.1", - "mocha": "^3.0.2", - "once": "^1.4.0", - "rimraf": "^2.5.0" - } + "scripts": { + "lint": "eslint '{*.js,lib/**/*.js,test/**/*.js}'", + "test": "node test/prepare && mocha --bail test/test" + }, + "version": "5.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/debug/package.json index 191c81547..a69e52870 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/debug/package.json @@ -1,32 +1,56 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_development": true, + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/lint-staged/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/lint-staged" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +69,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/execa/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/execa/package.json index eac923e96..a5ebfed01 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/execa/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/execa/package.json @@ -1,31 +1,69 @@ { - "name": "execa", - "version": "0.9.0", - "description": "A better `child_process`", - "license": "MIT", - "repository": "sindresorhus/execa", + "_args": [ + [ + "execa@0.9.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "execa@0.9.0", + "_id": "execa@0.9.0", + "_inBundle": false, + "_integrity": "sha1-rbfOYs+YUHH2BYDetKiLnjRxLQE=", + "_location": "/lint-staged/execa", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "execa@0.9.0", + "name": "execa", + "escapedName": "execa", + "rawSpec": "0.9.0", + "saveSpec": null, + "fetchSpec": "0.9.0" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.nlark.com/execa/download/execa-0.9.0.tgz", + "_spec": "0.9.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - { - "name": "James Talmage", - "email": "james@talmage.io", - "url": "github.com/jamestalmage" - } - ], + "bugs": { + "url": "https://github.com/sindresorhus/execa/issues" + }, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "description": "A better `child_process`", + "devDependencies": { + "ava": "*", + "cat-names": "^1.0.2", + "coveralls": "^2.11.9", + "delay": "^2.0.0", + "is-running": "^2.0.0", + "nyc": "^11.0.2", + "tempfile": "^2.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && nyc ava" - }, "files": [ "index.js", "lib" ], + "homepage": "https://github.com/sindresorhus/execa#readme", "keywords": [ "exec", "child", @@ -43,25 +81,15 @@ "path", "local" ], - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "devDependencies": { - "ava": "*", - "cat-names": "^1.0.2", - "coveralls": "^2.11.9", - "delay": "^2.0.0", - "is-running": "^2.0.0", - "nyc": "^11.0.2", - "tempfile": "^2.0.0", - "xo": "*" - }, + "license": "MIT", + "maintainers": [ + { + "name": "James Talmage", + "email": "james@talmage.io", + "url": "github.com/jamestalmage" + } + ], + "name": "execa", "nyc": { "reporter": [ "text", @@ -72,5 +100,13 @@ "**/test.js", "**/test/**" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/execa.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "0.9.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/get-stream/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/get-stream/package.json index 2f2adf0d5..1642815b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/get-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/get-stream/package.json @@ -1,24 +1,55 @@ { - "name": "get-stream", - "version": "3.0.0", - "description": "Get a stream as a string, buffer, or array", - "license": "MIT", - "repository": "sindresorhus/get-stream", + "_args": [ + [ + "get-stream@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "get-stream@3.0.0", + "_id": "get-stream@3.0.0", + "_inBundle": false, + "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "_location": "/lint-staged/get-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-stream@3.0.0", + "name": "get-stream", + "escapedName": "get-stream", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/lint-staged/execa" + ], + "_resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/get-stream/issues" + }, + "description": "Get a stream as a string, buffer, or array", + "devDependencies": { + "ava": "*", + "into-stream": "^3.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js", "buffer-stream.js" ], + "homepage": "https://github.com/sindresorhus/get-stream#readme", "keywords": [ "get", "stream", @@ -37,11 +68,16 @@ "object", "obj" ], - "devDependencies": { - "ava": "*", - "into-stream": "^3.0.0", - "xo": "*" + "license": "MIT", + "name": "get-stream", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/get-stream.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "3.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/ms/package.json index 49971890d..36b5eab34 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/ms/package.json @@ -1,16 +1,44 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_development": true, + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/lint-staged/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/lint-staged/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +47,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +59,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/p-map/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/p-map/package.json index 948b1e2e8..e17ea6a64 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/p-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/p-map/package.json @@ -1,47 +1,83 @@ { - "name": "p-map", - "version": "1.2.0", - "description": "Map over promises concurrently", - "license": "MIT", - "repository": "sindresorhus/p-map", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "map", - "resolved", - "wait", - "collection", - "iterable", - "iterator", - "race", - "fulfilled", - "async", - "await", - "promises", - "concurrently", - "concurrency", - "parallel", - "bluebird" - ], - "devDependencies": { - "ava": "*", - "delay": "^2.0.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^2.0.0", - "xo": "*" - } + "_args": [ + [ + "p-map@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-map@1.2.0", + "_id": "p-map@1.2.0", + "_inBundle": false, + "_integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "_location": "/lint-staged/p-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-map@1.2.0", + "name": "p-map", + "escapedName": "p-map", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.nlark.com/p-map/download/p-map-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-map/issues" + }, + "description": "Map over promises concurrently", + "devDependencies": { + "ava": "*", + "delay": "^2.0.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-map#readme", + "keywords": [ + "promise", + "map", + "resolved", + "wait", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "async", + "await", + "promises", + "concurrently", + "concurrency", + "parallel", + "bluebird" + ], + "license": "MIT", + "name": "p-map", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-map.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/pify/package.json index 468d85760..fde37cf71 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "3.0.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@3.0.0", + "_id": "pify@3.0.0", + "_inBundle": false, + "_integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "_location": "/lint-staged/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@3.0.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -42,10 +73,15 @@ "es2015", "bluebird" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^2.0.0", - "v8-natives": "^1.0.0", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lint-staged/package.json b/admin/vue2/element-admin-v3/node_modules/lint-staged/package.json index 17736f200..014f687e8 100644 --- a/admin/vue2/element-admin-v3/node_modules/lint-staged/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lint-staged/package.json @@ -1,31 +1,56 @@ { - "name": "lint-staged", - "version": "7.2.2", - "description": "Lint files staged by git", - "license": "MIT", - "repository": "https://github.com/okonet/lint-staged", - "author": "Andrey Okonetchnikov ", - "maintainers": [ - "Lufty Wiranda ", - "Suhas Karanth " + "_args": [ + [ + "lint-staged@7.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=6" + "_development": true, + "_from": "lint-staged@7.2.2", + "_id": "lint-staged@7.2.2", + "_inBundle": false, + "_integrity": "sha1-CYPVXUl/GfNtEf8sgkKy9WzC3QU=", + "_location": "/lint-staged", + "_phantomChildren": { + "is-stream": "1.1.0", + "lru-cache": "4.1.5", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "shebang-command": "1.2.0", + "signal-exit": "3.0.3", + "strip-eof": "1.0.0", + "which": "1.3.1" }, - "bin": "index.js", - "files": [ - "index.js", - "src" + "_requested": { + "type": "version", + "registry": true, + "raw": "lint-staged@7.2.2", + "name": "lint-staged", + "escapedName": "lint-staged", + "rawSpec": "7.2.2", + "saveSpec": null, + "fetchSpec": "7.2.2" + }, + "_requiredBy": [ + "#DEV:/" ], - "scripts": { - "precommit": "node index.js", - "cz": "git-cz", - "lint:base": "eslint --rule \"prettier/prettier: 2\"", - "lint": "npm run lint:base -- .", - "lint:fix": "npm run lint --fix", - "pretest": "npm run lint", - "test": "jest --coverage", - "test:watch": "jest --watch" + "_resolved": "https://registry.nlark.com/lint-staged/download/lint-staged-7.2.2.tgz?cache=0&sync_timestamp=1620406121591&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flint-staged%2Fdownload%2Flint-staged-7.2.2.tgz", + "_spec": "7.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Okonetchnikov", + "email": "andrey@okonet.ru" + }, + "bin": { + "lint-staged": "index.js" + }, + "bugs": { + "url": "https://github.com/okonet/lint-staged/issues" + }, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } }, "dependencies": { "chalk": "^2.3.1", @@ -51,6 +76,7 @@ "string-argv": "^0.0.2", "stringify-object": "^3.2.2" }, + "description": "Lint files staged by git", "devDependencies": { "babel-plugin-transform-object-rest-spread": "^6.26.0", "babel-preset-env": "^1.6.0", @@ -65,11 +91,14 @@ "jsonlint": "^1.6.2", "prettier": "1.11.1" }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } + "engines": { + "node": ">=6" }, + "files": [ + "index.js", + "src" + ], + "homepage": "https://github.com/okonet/lint-staged#readme", "jest": { "testEnvironment": "node", "setupFiles": [ @@ -88,5 +117,32 @@ "check", "format", "validate" - ] + ], + "license": "MIT", + "maintainers": [ + { + "name": "Lufty Wiranda", + "email": "lufty.wiranda@gmail.com" + }, + { + "name": "Suhas Karanth", + "email": "sudo.suhas@gmail.com" + } + ], + "name": "lint-staged", + "repository": { + "type": "git", + "url": "git+https://github.com/okonet/lint-staged.git" + }, + "scripts": { + "cz": "git-cz", + "lint": "npm run lint:base -- .", + "lint:base": "eslint --rule \"prettier/prettier: 2\"", + "lint:fix": "npm run lint --fix", + "precommit": "node index.js", + "pretest": "npm run lint", + "test": "jest --coverage", + "test:watch": "jest --watch" + }, + "version": "7.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/listr-silent-renderer/package.json b/admin/vue2/element-admin-v3/node_modules/listr-silent-renderer/package.json index 72e6c79c3..66ead3b59 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr-silent-renderer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr-silent-renderer/package.json @@ -1,23 +1,53 @@ { - "name": "listr-silent-renderer", - "version": "1.1.1", - "description": "Supress Listr rendering output", - "license": "MIT", - "repository": "SamVerschueren/listr-silent-renderer", + "_args": [ + [ + "listr-silent-renderer@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "listr-silent-renderer@1.1.1", + "_id": "listr-silent-renderer@1.1.1", + "_inBundle": false, + "_integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "_location": "/listr-silent-renderer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "listr-silent-renderer@1.1.1", + "name": "listr-silent-renderer", + "escapedName": "listr-silent-renderer", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sam Verschueren", "email": "sam.verschueren@gmail.com", "url": "github.com/SamVerschueren" }, + "bugs": { + "url": "https://github.com/SamVerschueren/listr-silent-renderer/issues" + }, + "dependencies": {}, + "description": "Supress Listr rendering output", + "devDependencies": { + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo" - }, "files": [ "index.js" ], + "homepage": "https://github.com/SamVerschueren/listr-silent-renderer#readme", "keywords": [ "listr", "silent", @@ -26,10 +56,16 @@ "supress", "nooutput" ], - "dependencies": {}, - "devDependencies": { - "xo": "*" + "license": "MIT", + "name": "listr-silent-renderer", + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/listr-silent-renderer.git" + }, + "scripts": { + "test": "xo" }, + "version": "1.1.1", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/chalk/package.json index 2b5881e9a..384b69341 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/chalk/package.json @@ -1,26 +1,62 @@ { - "name": "chalk", - "version": "1.1.3", - "description": "Terminal string styling done right. Much color.", - "license": "MIT", - "repository": "chalk/chalk", - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" + "_args": [ + [ + "chalk@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@1.1.3", + "_id": "chalk@1.1.3", + "_inBundle": false, + "_integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "_location": "/listr-update-renderer/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@1.1.3", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/listr-update-renderer", + "/listr-update-renderer/log-symbols" ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "description": "Terminal string styling done right. Much color.", + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && mocha", - "bench": "matcha benchmark.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/chalk#readme", "keywords": [ "color", "colour", @@ -44,23 +80,36 @@ "command-line", "text" ], - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" }, - "devDependencies": { - "coveralls": "^2.11.2", - "matcha": "^0.6.0", - "mocha": "*", - "nyc": "^3.0.0", - "require-uncached": "^1.0.2", - "resolve-from": "^1.0.0", - "semver": "^4.3.3", - "xo": "*" + "scripts": { + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "test": "xo && mocha" }, + "version": "1.1.3", "xo": { "envs": [ "node", diff --git a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/figures/package.json b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/figures/package.json index c950e07c5..f1a29eb98 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/figures/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/figures/package.json @@ -1,24 +1,59 @@ { - "name": "figures", - "version": "1.7.0", - "description": "Unicode symbols with Windows CMD fallbacks", - "license": "MIT", - "repository": "sindresorhus/figures", + "_args": [ + [ + "figures@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "figures@1.7.0", + "_id": "figures@1.7.0", + "_inBundle": false, + "_integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "_location": "/listr-update-renderer/figures", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "figures@1.7.0", + "name": "figures", + "escapedName": "figures", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" + }, + "_requiredBy": [ + "/listr-update-renderer" + ], + "_resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/figures/issues" + }, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "description": "Unicode symbols with Windows CMD fallbacks", + "devDependencies": { + "ava": "*", + "markdown-table": "^0.4.0", + "require-uncached": "^1.0.2", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava", - "make": "./makefile.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/figures#readme", "keywords": [ "unicode", "cli", @@ -32,14 +67,15 @@ "figures", "fallback" ], - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "license": "MIT", + "name": "figures", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/figures.git" }, - "devDependencies": { - "ava": "*", - "markdown-table": "^0.4.0", - "require-uncached": "^1.0.2", - "xo": "*" - } + "scripts": { + "make": "./makefile.js", + "test": "xo && ava" + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/log-symbols/package.json b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/log-symbols/package.json index 24180ac5d..fdfa1d1b6 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/log-symbols/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/node_modules/log-symbols/package.json @@ -1,23 +1,55 @@ { - "name": "log-symbols", - "version": "1.0.2", - "description": "Colored symbols for various log levels. Example: ✔︎ success", - "license": "MIT", - "repository": "sindresorhus/log-symbols", + "_args": [ + [ + "log-symbols@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "log-symbols@1.0.2", + "_id": "log-symbols@1.0.2", + "_inBundle": false, + "_integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "_location": "/listr-update-renderer/log-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "log-symbols@1.0.2", + "name": "log-symbols", + "escapedName": "log-symbols", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/listr-update-renderer" + ], + "_resolved": "https://registry.nlark.com/log-symbols/download/log-symbols-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/log-symbols/issues" + }, + "dependencies": { + "chalk": "^1.0.0" + }, + "description": "Colored symbols for various log levels. Example: ✔︎ success", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/log-symbols#readme", "keywords": [ "unicode", "cli", @@ -37,10 +69,14 @@ "terminal", "stdout" ], - "dependencies": { - "chalk": "^1.0.0" + "license": "MIT", + "name": "log-symbols", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/log-symbols.git" }, - "devDependencies": { - "ava": "0.0.4" - } + "scripts": { + "test": "node test.js" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/package.json b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/package.json index c71af3392..2ccde2a20 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr-update-renderer/package.json @@ -1,49 +1,92 @@ { - "name": "listr-update-renderer", - "version": "0.5.0", - "description": "Listr update renderer", - "license": "MIT", - "repository": "SamVerschueren/listr-update-renderer", - "author": { - "name": "Sam Verschueren", - "email": "sam.verschueren@gmail.com", - "url": "github.com/SamVerschueren" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo" - }, - "files": [ - "index.js", - "lib" - ], - "keywords": [ - "listr", - "update", - "renderer", - "ora", - "logupdate", - "rendering" - ], - "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "devDependencies": { - "delay": "^1.3.1", - "listr": "^0.14.2", - "xo": "^0.23.0", - "zen-observable": "^0.4.0" - }, - "peerDependencies": { - "listr": "^0.14.2" - } + "_args": [ + [ + "listr-update-renderer@0.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "listr-update-renderer@0.5.0", + "_id": "listr-update-renderer@0.5.0", + "_inBundle": false, + "_integrity": "sha1-Tqg2hUinuK7LfgbYyVy0WuLt5qI=", + "_location": "/listr-update-renderer", + "_phantomChildren": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "object-assign": "4.1.1", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "listr-update-renderer@0.5.0", + "name": "listr-update-renderer", + "escapedName": "listr-update-renderer", + "rawSpec": "0.5.0", + "saveSpec": null, + "fetchSpec": "0.5.0" + }, + "_requiredBy": [ + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flistr-update-renderer%2Fdownload%2Flistr-update-renderer-0.5.0.tgz", + "_spec": "0.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sam Verschueren", + "email": "sam.verschueren@gmail.com", + "url": "github.com/SamVerschueren" + }, + "bugs": { + "url": "https://github.com/SamVerschueren/listr-update-renderer/issues" + }, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "description": "Listr update renderer", + "devDependencies": { + "delay": "^1.3.1", + "listr": "^0.14.2", + "xo": "^0.23.0", + "zen-observable": "^0.4.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/SamVerschueren/listr-update-renderer#readme", + "keywords": [ + "listr", + "update", + "renderer", + "ora", + "logupdate", + "rendering" + ], + "license": "MIT", + "name": "listr-update-renderer", + "peerDependencies": { + "listr": "^0.14.2" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/listr-update-renderer.git" + }, + "scripts": { + "test": "xo" + }, + "version": "0.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/listr-verbose-renderer/package.json b/admin/vue2/element-admin-v3/node_modules/listr-verbose-renderer/package.json index 5ece0aaf2..dc7ffb287 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr-verbose-renderer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr-verbose-renderer/package.json @@ -1,24 +1,63 @@ { - "name": "listr-verbose-renderer", - "version": "0.5.0", - "description": "Listr verbose renderer", - "license": "MIT", - "repository": "SamVerschueren/listr-verbose-renderer", + "_args": [ + [ + "listr-verbose-renderer@0.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "listr-verbose-renderer@0.5.0", + "_id": "listr-verbose-renderer@0.5.0", + "_inBundle": false, + "_integrity": "sha1-8RMhZ1NepMEmEQK58o2sfLoeA9s=", + "_location": "/listr-verbose-renderer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "listr-verbose-renderer@0.5.0", + "name": "listr-verbose-renderer", + "escapedName": "listr-verbose-renderer", + "rawSpec": "0.5.0", + "saveSpec": null, + "fetchSpec": "0.5.0" + }, + "_requiredBy": [ + "/listr" + ], + "_resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.5.0.tgz", + "_spec": "0.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sam Verschueren", "email": "sam.verschueren@gmail.com", "url": "github.com/SamVerschueren" }, + "bugs": { + "url": "https://github.com/SamVerschueren/listr-verbose-renderer/issues" + }, + "dependencies": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "description": "Listr verbose renderer", + "devDependencies": { + "ava": "^0.25.0", + "hook-std": "^1.1.0", + "listr": "*", + "strip-ansi": "^5.0.0", + "xo": "^0.23.0" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js", "lib" ], + "homepage": "https://github.com/SamVerschueren/listr-verbose-renderer#readme", "keywords": [ "listr", "verbose", @@ -27,17 +66,14 @@ "custom", "format" ], - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" + "license": "MIT", + "name": "listr-verbose-renderer", + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/listr-verbose-renderer.git" }, - "devDependencies": { - "ava": "^0.25.0", - "hook-std": "^1.1.0", - "listr": "*", - "strip-ansi": "^5.0.0", - "xo": "^0.23.0" - } + "scripts": { + "test": "xo && ava" + }, + "version": "0.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/listr/package.json b/admin/vue2/element-admin-v3/node_modules/listr/package.json index 19129c8c2..06ddacad2 100644 --- a/admin/vue2/element-admin-v3/node_modules/listr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/listr/package.json @@ -1,74 +1,110 @@ { - "name": "listr", - "version": "0.14.3", - "description": "Terminal task list", - "license": "MIT", - "repository": "SamVerschueren/listr", - "author": { - "name": "Sam Verschueren", - "email": "sam.verschueren@gmail.com", - "url": "github.com/SamVerschueren" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "clinton && xo && nyc ava", - "lint:staged": "lint-staged" - }, - "files": [ - "index.js", - "lib" - ], - "keywords": [ - "cli", - "task", - "list", - "tasklist", - "terminal", - "term", - "console", - "ascii", - "unicode", - "loading", - "indicator", - "progress", - "busy", - "wait", - "idle" - ], - "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - }, - "devDependencies": { - "ava": "*", - "clinton": "*", - "codecov": "^3.1.0", - "delay": "^4.1.0", - "hook-std": "^1.1.0", - "lint-staged": "^8.0.5", - "log-symbols": "^2.2.0", - "nyc": "^13.1.0", - "pre-commit": "^1.2.2", - "split": "^1.0.1", - "xo": "*", - "zen-observable": "^0.8.11" - }, - "lint-staged": { - "*.js": "xo" - }, - "pre-commit": "lint:staged", - "xo": { - "rules": { - "prefer-destructuring": "off" - } - } + "_args": [ + [ + "listr@0.14.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "listr@0.14.3", + "_id": "listr@0.14.3", + "_inBundle": false, + "_integrity": "sha1-L+qQlgTkNL5GTFC926DUlpKPpYY=", + "_location": "/listr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "listr@0.14.3", + "name": "listr", + "escapedName": "listr", + "rawSpec": "0.14.3", + "saveSpec": null, + "fetchSpec": "0.14.3" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/listr/download/listr-0.14.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flistr%2Fdownload%2Flistr-0.14.3.tgz", + "_spec": "0.14.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sam Verschueren", + "email": "sam.verschueren@gmail.com", + "url": "github.com/SamVerschueren" + }, + "bugs": { + "url": "https://github.com/SamVerschueren/listr/issues" + }, + "dependencies": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "description": "Terminal task list", + "devDependencies": { + "ava": "*", + "clinton": "*", + "codecov": "^3.1.0", + "delay": "^4.1.0", + "hook-std": "^1.1.0", + "lint-staged": "^8.0.5", + "log-symbols": "^2.2.0", + "nyc": "^13.1.0", + "pre-commit": "^1.2.2", + "split": "^1.0.1", + "xo": "*", + "zen-observable": "^0.8.11" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/SamVerschueren/listr#readme", + "keywords": [ + "cli", + "task", + "list", + "tasklist", + "terminal", + "term", + "console", + "ascii", + "unicode", + "loading", + "indicator", + "progress", + "busy", + "wait", + "idle" + ], + "license": "MIT", + "lint-staged": { + "*.js": "xo" + }, + "name": "listr", + "pre-commit": "lint:staged", + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/listr.git" + }, + "scripts": { + "lint:staged": "lint-staged", + "test": "clinton && xo && nyc ava" + }, + "version": "0.14.3", + "xo": { + "rules": { + "prefer-destructuring": "off" + } + } } diff --git a/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/parse-json/package.json b/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/parse-json/package.json index 93e3c41ba..aa0a917a2 100644 --- a/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/parse-json/package.json +++ b/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/parse-json/package.json @@ -1,24 +1,57 @@ { - "name": "parse-json", - "version": "2.2.0", - "description": "Parse JSON with more helpful errors", - "license": "MIT", - "repository": "sindresorhus/parse-json", + "_args": [ + [ + "parse-json@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "parse-json@2.2.0", + "_id": "parse-json@2.2.0", + "_inBundle": false, + "_integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "_location": "/load-json-file/parse-json", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parse-json@2.2.0", + "name": "parse-json", + "escapedName": "parse-json", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/load-json-file" + ], + "_resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/parse-json/issues" + }, + "dependencies": { + "error-ex": "^1.2.0" + }, + "description": "Parse JSON with more helpful errors", + "devDependencies": { + "ava": "0.0.4", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && node test.js" - }, "files": [ "index.js", "vendor" ], + "homepage": "https://github.com/sindresorhus/parse-json#readme", "keywords": [ "parse", "json", @@ -31,13 +64,16 @@ "string", "str" ], - "dependencies": { - "error-ex": "^1.2.0" + "license": "MIT", + "name": "parse-json", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/parse-json.git" }, - "devDependencies": { - "ava": "0.0.4", - "xo": "*" + "scripts": { + "test": "xo && node test.js" }, + "version": "2.2.0", "xo": { "ignores": [ "vendor/**" diff --git a/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/pify/package.json index 311d1982e..147133bc7 100644 --- a/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/load-json-file/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "2.3.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@2.3.0", + "_id": "pify@2.3.0", + "_inBundle": false, + "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "_location": "/load-json-file/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@2.3.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/load-json-file" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^1.0.0", + "v8-natives": "0.0.2", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -39,10 +70,15 @@ "async", "es2015" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^1.0.0", - "v8-natives": "0.0.2", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/load-json-file/package.json b/admin/vue2/element-admin-v3/node_modules/load-json-file/package.json index b44c8a128..878cdef94 100644 --- a/admin/vue2/element-admin-v3/node_modules/load-json-file/package.json +++ b/admin/vue2/element-admin-v3/node_modules/load-json-file/package.json @@ -1,23 +1,62 @@ { - "name": "load-json-file", - "version": "1.1.0", - "description": "Read and parse a JSON file", - "license": "MIT", - "repository": "sindresorhus/load-json-file", + "_args": [ + [ + "load-json-file@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "load-json-file@1.1.0", + "_id": "load-json-file@1.1.0", + "_inBundle": false, + "_integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "_location": "/load-json-file", + "_phantomChildren": { + "error-ex": "1.3.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "load-json-file@1.1.0", + "name": "load-json-file", + "escapedName": "load-json-file", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/read-pkg" + ], + "_resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/load-json-file/issues" + }, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "description": "Read and parse a JSON file", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/load-json-file#readme", "keywords": [ "json", "read", @@ -27,17 +66,16 @@ "graceful", "load" ], - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "license": "MIT", + "name": "load-json-file", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/load-json-file.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "1.1.0", "xo": { "ignores": [ "test.js" diff --git a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-cache-dir/package.json b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-cache-dir/package.json index 1af1793cb..45c131e0e 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-cache-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-cache-dir/package.json @@ -1,38 +1,74 @@ { - "name": "find-cache-dir", - "version": "0.1.1", - "description": "My well-made module", - "license": "MIT", - "repository": "jamestalmage/find-cache-dir", + "_args": [ + [ + "find-cache-dir@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "find-cache-dir@0.1.1", + "_id": "find-cache-dir@0.1.1", + "_inBundle": false, + "_integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "_location": "/loader-fs-cache/find-cache-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-cache-dir@0.1.1", + "name": "find-cache-dir", + "escapedName": "find-cache-dir", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" + }, + "_requiredBy": [ + "/loader-fs-cache" + ], + "_resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "James Talmage", "email": "james@talmage.io", "url": "github.com/jamestalmage" }, - "engines": { - "node": ">=0.10.0" + "bugs": { + "url": "https://github.com/jamestalmage/find-cache-dir/issues" }, - "scripts": { - "test": "xo && nyc --reporter=lcov --reporter=text ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "cache", - "directory", - "dir" - ], "dependencies": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", "pkg-dir": "^1.0.0" }, + "description": "My well-made module", "devDependencies": { "ava": "^0.8.0", "coveralls": "^2.11.6", "nyc": "^5.0.1", "rimraf": "^2.5.0", "xo": "^0.12.1" - } + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jamestalmage/find-cache-dir#readme", + "keywords": [ + "cache", + "directory", + "dir" + ], + "license": "MIT", + "name": "find-cache-dir", + "repository": { + "type": "git", + "url": "git+https://github.com/jamestalmage/find-cache-dir.git" + }, + "scripts": { + "test": "xo && nyc --reporter=lcov --reporter=text ava" + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-up/package.json b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-up/package.json index 478866c49..10b332996 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/find-up/package.json @@ -1,23 +1,58 @@ { - "name": "find-up", - "version": "1.1.2", - "description": "Find a file by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", + "_args": [ + [ + "find-up@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "find-up@1.1.2", + "_id": "find-up@1.1.2", + "_inBundle": false, + "_integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "_location": "/loader-fs-cache/find-up", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-up@1.1.2", + "name": "find-up", + "escapedName": "find-up", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/loader-fs-cache/pkg-dir" + ], + "_resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/find-up/issues" + }, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "description": "Find a file by walking up parent directories", + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.1", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/find-up#readme", "keywords": [ "find", "up", @@ -39,13 +74,14 @@ "walking", "path" ], - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "license": "MIT", + "name": "find-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/find-up.git" }, - "devDependencies": { - "ava": "*", - "tempfile": "^1.1.1", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/path-exists/package.json b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/path-exists/package.json index 5477ee8d9..e0a32d7b9 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/path-exists/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/path-exists/package.json @@ -1,23 +1,56 @@ { - "name": "path-exists", - "version": "2.1.0", - "description": "Check if a path exists", - "license": "MIT", - "repository": "sindresorhus/path-exists", + "_args": [ + [ + "path-exists@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "path-exists@2.1.0", + "_id": "path-exists@2.1.0", + "_inBundle": false, + "_integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "_location": "/loader-fs-cache/path-exists", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-exists@2.1.0", + "name": "path-exists", + "escapedName": "path-exists", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/loader-fs-cache/find-up" + ], + "_resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-exists/issues" + }, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "description": "Check if a path exists", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/path-exists#readme", "keywords": [ "path", "exists", @@ -30,11 +63,14 @@ "access", "stat" ], - "dependencies": { - "pinkie-promise": "^2.0.0" + "license": "MIT", + "name": "path-exists", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-exists.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/pkg-dir/package.json b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/pkg-dir/package.json index 81f38d5cd..e6aafecb6 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/pkg-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/node_modules/pkg-dir/package.json @@ -1,23 +1,56 @@ { - "name": "pkg-dir", - "version": "1.0.0", - "description": "Find the root directory of a npm package", - "license": "MIT", - "repository": "sindresorhus/pkg-dir", + "_args": [ + [ + "pkg-dir@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pkg-dir@1.0.0", + "_id": "pkg-dir@1.0.0", + "_inBundle": false, + "_integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "_location": "/loader-fs-cache/pkg-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pkg-dir@1.0.0", + "name": "pkg-dir", + "escapedName": "pkg-dir", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/loader-fs-cache/find-cache-dir" + ], + "_resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pkg-dir/issues" + }, + "dependencies": { + "find-up": "^1.0.0" + }, + "description": "Find the root directory of a npm package", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pkg-dir#readme", "keywords": [ "package", "json", @@ -44,11 +77,14 @@ "walking", "path" ], - "dependencies": { - "find-up": "^1.0.0" + "license": "MIT", + "name": "pkg-dir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pkg-dir.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/package.json b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/package.json index 4fc4b088b..148e89e89 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-fs-cache/package.json @@ -1,19 +1,58 @@ { - "name": "loader-fs-cache", - "version": "1.0.3", - "description": "A published package of https://github.com/babel/babel-loader/blob/master/src/fs-cache.js", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "loader-fs-cache@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "loader-fs-cache@1.0.3", + "_id": "loader-fs-cache@1.0.3", + "_inBundle": false, + "_integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=", + "_location": "/loader-fs-cache", + "_phantomChildren": { + "commondir": "1.0.1", + "mkdirp": "0.5.5", + "pinkie-promise": "2.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "loader-fs-cache@1.0.3", + "name": "loader-fs-cache", + "escapedName": "loader-fs-cache", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/eslint-loader" + ], + "_resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ade Viankakrisna Fadlil" + }, + "bugs": { + "url": "https://github.com/viankakrisna/loader-fs-cache/issues" }, - "author": "Ade Viankakrisna Fadlil", - "license": "MIT", "dependencies": { "find-cache-dir": "^0.1.1", "mkdirp": "^0.5.1" }, + "description": "A published package of https://github.com/babel/babel-loader/blob/master/src/fs-cache.js", + "homepage": "https://github.com/viankakrisna/loader-fs-cache#readme", + "license": "MIT", + "main": "index.js", + "name": "loader-fs-cache", "repository": { "type": "git", - "url": "https://github.com/viankakrisna/loader-fs-cache.git" - } + "url": "git+https://github.com/viankakrisna/loader-fs-cache.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-runner/package.json b/admin/vue2/element-admin-v3/node_modules/loader-runner/package.json index 043bd667d..ccfc763b9 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-runner/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-runner/package.json @@ -1,30 +1,49 @@ { - "name": "loader-runner", - "version": "2.4.0", - "description": "Runs (webpack) loaders", - "main": "lib/LoaderRunner.js", - "scripts": { - "lint": "eslint lib test", - "pretest": "npm run lint", - "test": "mocha --reporter spec", - "precover": "npm run lint", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "travis": "npm run cover -- --report lcovonly" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/webpack/loader-runner.git" + "_args": [ + [ + "loader-runner@2.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "loader-runner@2.4.0", + "_id": "loader-runner@2.4.0", + "_inBundle": false, + "_integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", + "_location": "/loader-runner", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "loader-runner@2.4.0", + "name": "loader-runner", + "escapedName": "loader-runner", + "rawSpec": "2.4.0", + "saveSpec": null, + "fetchSpec": "2.4.0" }, - "keywords": [ - "webpack", - "loader" + "_requiredBy": [ + "/webpack" ], - "author": "Tobias Koppers @sokra", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610028023329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "_spec": "2.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, "bugs": { "url": "https://github.com/webpack/loader-runner/issues" }, - "homepage": "https://github.com/webpack/loader-runner#readme", + "description": "Runs (webpack) loaders", + "devDependencies": { + "codecov.io": "^0.1.6", + "coveralls": "^2.11.6", + "eslint": "^3.12.2", + "eslint-plugin-node": "^3.0.5", + "eslint-plugin-nodeca": "^1.0.3", + "istanbul": "^0.4.1", + "mocha": "^3.2.0", + "should": "^8.0.2" + }, "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" }, @@ -35,14 +54,25 @@ "web_modules/", "schemas/" ], - "devDependencies": { - "codecov.io": "^0.1.6", - "coveralls": "^2.11.6", - "eslint": "^3.12.2", - "eslint-plugin-node": "^3.0.5", - "eslint-plugin-nodeca": "^1.0.3", - "istanbul": "^0.4.1", - "mocha": "^3.2.0", - "should": "^8.0.2" - } + "homepage": "https://github.com/webpack/loader-runner#readme", + "keywords": [ + "webpack", + "loader" + ], + "license": "MIT", + "main": "lib/LoaderRunner.js", + "name": "loader-runner", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/loader-runner.git" + }, + "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint lib test", + "precover": "npm run lint", + "pretest": "npm run lint", + "test": "mocha --reporter spec", + "travis": "npm run cover -- --report lcovonly" + }, + "version": "2.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5 b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5 index 977b75071..882cecdde 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5 +++ b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5 @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" + "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" + ret=$? else - exec node "$basedir/../json5/lib/cli.js" "$@" + node "$basedir/../json5/lib/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.cmd b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.cmd index d9924813a..fe63e908d 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.cmd +++ b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %* +"%_prog%" "%dp0%\..\json5\lib\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.ps1 b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.ps1 index 8700ddbef..585f9ad19 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/.bin/json5.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../json5/lib/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/json5/package.json b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/json5/package.json index b51b76241..e3f32d1cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/json5/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-utils/node_modules/json5/package.json @@ -1,49 +1,61 @@ { - "name": "json5", - "version": "1.0.1", - "description": "JSON for humans.", - "main": "lib/index.js", - "bin": "lib/cli.js", - "browser": "dist/index.js", - "files": [ - "lib/", - "dist/" + "_args": [ + [ + "json5@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "babel-node build/build.js && babel src -d lib && rollup -c", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "lint": "eslint --fix build src", - "prepublishOnly": "npm run lint && npm test && npm run production", - "pretest": "cross-env NODE_ENV=test npm run build", - "preversion": "npm run lint && npm test && npm run production", - "production": "cross-env NODE_ENV=production npm run build", - "test": "nyc --reporter=html --reporter=text mocha" + "_from": "json5@1.0.1", + "_id": "json5@1.0.1", + "_inBundle": false, + "_integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "_location": "/loader-utils/json5", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json5@1.0.1", + "name": "json5", + "escapedName": "json5", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/json5/json5.git" - }, - "keywords": [ - "json", - "json5", - "es5", - "es2015", - "ecmascript" - ], - "author": "Aseem Kishore ", - "contributors": [ - "Max Nanasy ", - "Andrew Eisenberg ", - "Jordan Tucker " + "_requiredBy": [ + "/loader-utils" ], - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aseem Kishore", + "email": "aseem.kishore@gmail.com" + }, + "bin": { + "json5": "lib/cli.js" + }, + "browser": "dist/index.js", "bugs": { "url": "https://github.com/json5/json5/issues" }, - "homepage": "http://json5.org/", + "contributors": [ + { + "name": "Max Nanasy", + "email": "max.nanasy@gmail.com" + }, + { + "name": "Andrew Eisenberg", + "email": "andrew@eisenberg.as" + }, + { + "name": "Jordan Tucker", + "email": "jordanbtucker@gmail.com" + } + ], "dependencies": { "minimist": "^1.2.0" }, + "description": "JSON for humans.", "devDependencies": { "babel-cli": "^6.26.0", "babel-core": "^6.26.0", @@ -72,5 +84,35 @@ "rollup-plugin-uglify": "^3.0.0", "sinon": "^4.4.2", "unicode-9.0.0": "^0.7.5" - } + }, + "files": [ + "lib/", + "dist/" + ], + "homepage": "http://json5.org/", + "keywords": [ + "json", + "json5", + "es5", + "es2015", + "ecmascript" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "json5", + "repository": { + "type": "git", + "url": "git+https://github.com/json5/json5.git" + }, + "scripts": { + "build": "babel-node build/build.js && babel src -d lib && rollup -c", + "coverage": "nyc report --reporter=text-lcov | coveralls", + "lint": "eslint --fix build src", + "prepublishOnly": "npm run lint && npm test && npm run production", + "pretest": "cross-env NODE_ENV=test npm run build", + "preversion": "npm run lint && npm test && npm run production", + "production": "cross-env NODE_ENV=production npm run build", + "test": "nyc --reporter=html --reporter=text mocha" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/loader-utils/package.json b/admin/vue2/element-admin-v3/node_modules/loader-utils/package.json index 6abe0f010..d117b6033 100644 --- a/admin/vue2/element-admin-v3/node_modules/loader-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loader-utils/package.json @@ -1,28 +1,62 @@ { - "name": "loader-utils", - "version": "1.4.0", - "author": "Tobias Koppers @sokra", - "description": "utils for webpack loaders", + "_args": [ + [ + "loader-utils@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "loader-utils@1.4.0", + "_id": "loader-utils@1.4.0", + "_inBundle": false, + "_integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "_location": "/loader-utils", + "_phantomChildren": { + "minimist": "1.2.5" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "loader-utils@1.4.0", + "name": "loader-utils", + "escapedName": "loader-utils", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/babel-loader", + "/copy-webpack-plugin", + "/css-loader", + "/eslint-loader", + "/file-loader", + "/html-webpack-plugin", + "/mini-css-extract-plugin", + "/postcss-loader", + "/pug-plain-loader", + "/sass-loader", + "/svg-baker", + "/svg-sprite-loader", + "/url-loader", + "/vue-loader", + "/vue-style-loader", + "/webpack", + "/webpack-cli" + ], + "_resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/loader-utils/issues" + }, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^1.0.1" }, - "scripts": { - "lint": "eslint lib test", - "pretest": "yarn lint", - "test": "jest", - "test:ci": "jest --coverage", - "release": "yarn test && standard-version" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/webpack/loader-utils.git" - }, - "engines": { - "node": ">=4.0.0" - }, + "description": "utils for webpack loaders", "devDependencies": { "coveralls": "^3.0.2", "eslint": "^5.11.0", @@ -32,8 +66,26 @@ "prettier": "^1.19.1", "standard-version": "^4.0.0" }, - "main": "lib/index.js", + "engines": { + "node": ">=4.0.0" + }, "files": [ "lib" - ] + ], + "homepage": "https://github.com/webpack/loader-utils#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "loader-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/loader-utils.git" + }, + "scripts": { + "lint": "eslint lib test", + "pretest": "yarn lint", + "release": "yarn test && standard-version", + "test": "jest", + "test:ci": "jest --coverage" + }, + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/locate-path/package.json b/admin/vue2/element-admin-v3/node_modules/locate-path/package.json index d41aab44e..b7674ab76 100644 --- a/admin/vue2/element-admin-v3/node_modules/locate-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/locate-path/package.json @@ -1,44 +1,79 @@ { - "name": "locate-path", - "version": "3.0.0", - "description": "Get the first path that exists on disk of multiple paths", - "license": "MIT", - "repository": "sindresorhus/locate-path", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "locate", - "path", - "paths", - "file", - "files", - "exists", - "find", - "finder", - "search", - "searcher", - "array", - "iterable", - "iterator" - ], - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "locate-path@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "locate-path@3.0.0", + "_id": "locate-path@3.0.0", + "_inBundle": false, + "_integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "_location": "/locate-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "locate-path@3.0.0", + "name": "locate-path", + "escapedName": "locate-path", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/find-up" + ], + "_resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/locate-path/issues" + }, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "description": "Get the first path that exists on disk of multiple paths", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/locate-path#readme", + "keywords": [ + "locate", + "path", + "paths", + "file", + "files", + "exists", + "find", + "finder", + "search", + "searcher", + "array", + "iterable", + "iterator" + ], + "license": "MIT", + "name": "locate-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/locate-path.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lodash.camelcase/package.json b/admin/vue2/element-admin-v3/node_modules/lodash.camelcase/package.json index aca63e0bb..b783b2c64 100644 --- a/admin/vue2/element-admin-v3/node_modules/lodash.camelcase/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lodash.camelcase/package.json @@ -1,17 +1,73 @@ { - "name": "lodash.camelcase", - "version": "4.3.0", + "_args": [ + [ + "lodash.camelcase@4.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "lodash.camelcase@4.3.0", + "_id": "lodash.camelcase@4.3.0", + "_inBundle": false, + "_integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "_location": "/lodash.camelcase", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lodash.camelcase@4.3.0", + "name": "lodash.camelcase", + "escapedName": "lodash.camelcase", + "rawSpec": "4.3.0", + "saveSpec": null, + "fetchSpec": "4.3.0" + }, + "_requiredBy": [ + "/css-loader" + ], + "_resolved": "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz", + "_spec": "4.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com", + "url": "https://github.com/phated" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], "description": "The lodash method `_.camelCase` exported as a module.", "homepage": "https://lodash.com/", "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": "lodash-modularized, camelcase", - "author": "John-David Dalton (http://allyoucanleet.com/)", - "contributors": [ - "John-David Dalton (http://allyoucanleet.com/)", - "Blaine Bublitz (https://github.com/phated)", - "Mathias Bynens (https://mathiasbynens.be/)" + "keywords": [ + "lodash-modularized", + "camelcase" ], - "repository": "lodash/lodash", - "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } + "license": "MIT", + "name": "lodash.camelcase", + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "4.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lodash.memoize/package.json b/admin/vue2/element-admin-v3/node_modules/lodash.memoize/package.json index 2b75f2824..998cb5a5a 100644 --- a/admin/vue2/element-admin-v3/node_modules/lodash.memoize/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lodash.memoize/package.json @@ -1,17 +1,73 @@ { - "name": "lodash.memoize", - "version": "4.1.2", + "_args": [ + [ + "lodash.memoize@4.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "lodash.memoize@4.1.2", + "_id": "lodash.memoize@4.1.2", + "_inBundle": false, + "_integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "_location": "/lodash.memoize", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lodash.memoize@4.1.2", + "name": "lodash.memoize", + "escapedName": "lodash.memoize", + "rawSpec": "4.1.2", + "saveSpec": null, + "fetchSpec": "4.1.2" + }, + "_requiredBy": [ + "/caniuse-api" + ], + "_resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", + "_spec": "4.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com", + "url": "https://github.com/phated" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], "description": "The lodash method `_.memoize` exported as a module.", "homepage": "https://lodash.com/", "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": "lodash-modularized, memoize", - "author": "John-David Dalton (http://allyoucanleet.com/)", - "contributors": [ - "John-David Dalton (http://allyoucanleet.com/)", - "Blaine Bublitz (https://github.com/phated)", - "Mathias Bynens (https://mathiasbynens.be/)" + "keywords": [ + "lodash-modularized", + "memoize" ], - "repository": "lodash/lodash", - "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } + "license": "MIT", + "name": "lodash.memoize", + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "4.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/lodash.tail/package.json b/admin/vue2/element-admin-v3/node_modules/lodash.tail/package.json index 66112825e..b363cb351 100644 --- a/admin/vue2/element-admin-v3/node_modules/lodash.tail/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lodash.tail/package.json @@ -1,17 +1,73 @@ { - "name": "lodash.tail", - "version": "4.1.1", + "_args": [ + [ + "lodash.tail@4.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "lodash.tail@4.1.1", + "_id": "lodash.tail@4.1.1", + "_inBundle": false, + "_integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "_location": "/lodash.tail", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lodash.tail@4.1.1", + "name": "lodash.tail", + "escapedName": "lodash.tail", + "rawSpec": "4.1.1", + "saveSpec": null, + "fetchSpec": "4.1.1" + }, + "_requiredBy": [ + "/sass-loader" + ], + "_resolved": "https://registry.npm.taobao.org/lodash.tail/download/lodash.tail-4.1.1.tgz", + "_spec": "4.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com", + "url": "https://github.com/phated" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], "description": "The lodash method `_.tail` exported as a module.", "homepage": "https://lodash.com/", "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": "lodash-modularized, tail", - "author": "John-David Dalton (http://allyoucanleet.com/)", - "contributors": [ - "John-David Dalton (http://allyoucanleet.com/)", - "Blaine Bublitz (https://github.com/phated)", - "Mathias Bynens (https://mathiasbynens.be/)" + "keywords": [ + "lodash-modularized", + "tail" ], - "repository": "lodash/lodash", - "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } + "license": "MIT", + "name": "lodash.tail", + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "4.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/lodash.uniq/package.json b/admin/vue2/element-admin-v3/node_modules/lodash.uniq/package.json index d43312344..f5e8a334c 100644 --- a/admin/vue2/element-admin-v3/node_modules/lodash.uniq/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lodash.uniq/package.json @@ -1,17 +1,73 @@ { - "name": "lodash.uniq", - "version": "4.5.0", + "_args": [ + [ + "lodash.uniq@4.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "lodash.uniq@4.5.0", + "_id": "lodash.uniq@4.5.0", + "_inBundle": false, + "_integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "_location": "/lodash.uniq", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lodash.uniq@4.5.0", + "name": "lodash.uniq", + "escapedName": "lodash.uniq", + "rawSpec": "4.5.0", + "saveSpec": null, + "fetchSpec": "4.5.0" + }, + "_requiredBy": [ + "/caniuse-api" + ], + "_resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", + "_spec": "4.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com", + "url": "http://allyoucanleet.com/" + }, + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com", + "url": "https://github.com/phated" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], "description": "The lodash method `_.uniq` exported as a module.", "homepage": "https://lodash.com/", "icon": "https://lodash.com/icon.svg", - "license": "MIT", - "keywords": "lodash-modularized, uniq", - "author": "John-David Dalton (http://allyoucanleet.com/)", - "contributors": [ - "John-David Dalton (http://allyoucanleet.com/)", - "Blaine Bublitz (https://github.com/phated)", - "Mathias Bynens (https://mathiasbynens.be/)" + "keywords": [ + "lodash-modularized", + "uniq" ], - "repository": "lodash/lodash", - "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } + "license": "MIT", + "name": "lodash.uniq", + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + }, + "version": "4.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lodash/package.json b/admin/vue2/element-admin-v3/node_modules/lodash/package.json index b35fd95cc..f8a24883c 100644 --- a/admin/vue2/element-admin-v3/node_modules/lodash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lodash/package.json @@ -1,17 +1,95 @@ { - "name": "lodash", - "version": "4.17.21", + "_args": [ + [ + "lodash@4.17.21", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "lodash@4.17.21", + "_id": "lodash@4.17.21", + "_inBundle": false, + "_integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", + "_location": "/lodash", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lodash@4.17.21", + "name": "lodash", + "escapedName": "lodash", + "rawSpec": "4.17.21", + "saveSpec": null, + "fetchSpec": "4.17.21" + }, + "_requiredBy": [ + "/@babel/generator", + "/@babel/template", + "/@babel/traverse", + "/@babel/types", + "/async", + "/babel-core", + "/babel-generator", + "/babel-helper-define-map", + "/babel-helper-regex", + "/babel-plugin-transform-es2015-block-scoping", + "/babel-register", + "/babel-template", + "/babel-traverse", + "/babel-types", + "/eslint", + "/globule", + "/html-webpack-plugin", + "/http-proxy-middleware", + "/inquirer", + "/last-call-webpack-plugin", + "/lint-staged", + "/node-sass", + "/pretty-error", + "/renderkid", + "/sass-graph", + "/table", + "/vue-eslint-parser", + "/webpack-bundle-analyzer", + "/webpack-cli/inquirer", + "/webpack-merge" + ], + "_resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz", + "_spec": "4.17.21", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com" + }, + "bugs": { + "url": "https://github.com/lodash/lodash/issues" + }, + "contributors": [ + { + "name": "John-David Dalton", + "email": "john.david.dalton@gmail.com" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be" + } + ], "description": "Lodash modular utilities.", - "keywords": "modules, stdlib, util", "homepage": "https://lodash.com/", - "repository": "lodash/lodash", "icon": "https://lodash.com/icon.svg", + "keywords": [ + "modules", + "stdlib", + "util" + ], "license": "MIT", "main": "lodash.js", - "author": "John-David Dalton ", - "contributors": [ - "John-David Dalton ", - "Mathias Bynens " - ], - "scripts": { "test": "echo \"See https://travis-ci.org/lodash-archive/lodash-cli for testing details.\"" } + "name": "lodash", + "repository": { + "type": "git", + "url": "git+https://github.com/lodash/lodash.git" + }, + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash-archive/lodash-cli for testing details.\"" + }, + "version": "4.17.21" } diff --git a/admin/vue2/element-admin-v3/node_modules/log-symbols/package.json b/admin/vue2/element-admin-v3/node_modules/log-symbols/package.json index 41736c780..242a184c9 100644 --- a/admin/vue2/element-admin-v3/node_modules/log-symbols/package.json +++ b/admin/vue2/element-admin-v3/node_modules/log-symbols/package.json @@ -1,50 +1,88 @@ { - "name": "log-symbols", - "version": "2.2.0", - "description": "Colored symbols for various log levels. Example: ✔︎ Success", - "license": "MIT", - "repository": "sindresorhus/log-symbols", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "browser.js" - ], - "keywords": [ - "unicode", - "cli", - "cmd", - "command-line", - "characters", - "char", - "symbol", - "symbols", - "figure", - "figures", - "fallback", - "win", - "windows", - "log", - "logging", - "terminal", - "stdout" - ], - "dependencies": { - "chalk": "^2.0.1" - }, - "devDependencies": { - "ava": "*", - "strip-ansi": "^4.0.0", - "xo": "*" - }, - "browser": "browser.js" + "_args": [ + [ + "log-symbols@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "log-symbols@2.2.0", + "_id": "log-symbols@2.2.0", + "_inBundle": false, + "_integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "_location": "/log-symbols", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "log-symbols@2.2.0", + "name": "log-symbols", + "escapedName": "log-symbols", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils/webpack-log", + "/lint-staged", + "/ora" + ], + "_resolved": "https://registry.nlark.com/log-symbols/download/log-symbols-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/sindresorhus/log-symbols/issues" + }, + "dependencies": { + "chalk": "^2.0.1" + }, + "description": "Colored symbols for various log levels. Example: ✔︎ Success", + "devDependencies": { + "ava": "*", + "strip-ansi": "^4.0.0", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/sindresorhus/log-symbols#readme", + "keywords": [ + "unicode", + "cli", + "cmd", + "command-line", + "characters", + "char", + "symbol", + "symbols", + "figure", + "figures", + "fallback", + "win", + "windows", + "log", + "logging", + "terminal", + "stdout" + ], + "license": "MIT", + "name": "log-symbols", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/log-symbols.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/ansi-regex/package.json index e94852fd7..d8bb79f34 100644 --- a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/log-update/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/log-update/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/string-width/package.json index 89f0b6a6c..d640faffe 100644 --- a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/string-width/package.json @@ -1,55 +1,91 @@ { - "name": "string-width", - "version": "2.1.1", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "string-width@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@2.1.1", + "_id": "string-width@2.1.1", + "_inBundle": false, + "_integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "_location": "/log-update/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@2.1.1", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/log-update/wrap-ansi" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/strip-ansi/package.json index 555f19461..4fcd96044 100644 --- a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/strip-ansi/package.json @@ -1,23 +1,57 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/log-update/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/log-update/string-width", + "/log-update/wrap-ansi" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +76,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/wrap-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/wrap-ansi/package.json index 79e8b3a97..2a37fb57c 100644 --- a/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/wrap-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/log-update/node_modules/wrap-ansi/package.json @@ -1,24 +1,62 @@ { - "name": "wrap-ansi", - "version": "3.0.1", - "description": "Wordwrap a string with ANSI escape codes", - "license": "MIT", - "repository": "chalk/wrap-ansi", + "_args": [ + [ + "wrap-ansi@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "wrap-ansi@3.0.1", + "_id": "wrap-ansi@3.0.1", + "_inBundle": false, + "_integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "_location": "/log-update/wrap-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "wrap-ansi@3.0.1", + "name": "wrap-ansi", + "escapedName": "wrap-ansi", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/log-update" + ], + "_resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/wrap-ansi/issues" + }, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "description": "Wordwrap a string with ANSI escape codes", + "devDependencies": { + "ava": "^0.21.0", + "chalk": "^2.0.1", + "coveralls": "^2.11.4", + "has-ansi": "^3.0.0", + "nyc": "^11.0.3", + "strip-ansi": "^4.0.0", + "xo": "^0.18.2" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && nyc ava", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/wrap-ansi#readme", "keywords": [ "wrap", "break", @@ -46,17 +84,15 @@ "command-line", "text" ], - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "license": "MIT", + "name": "wrap-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/wrap-ansi.git" }, - "devDependencies": { - "ava": "^0.21.0", - "chalk": "^2.0.1", - "coveralls": "^2.11.4", - "has-ansi": "^3.0.0", - "nyc": "^11.0.3", - "strip-ansi": "^4.0.0", - "xo": "^0.18.2" - } + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc ava" + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/log-update/package.json b/admin/vue2/element-admin-v3/node_modules/log-update/package.json index 40ac4b5ce..fab45d33e 100644 --- a/admin/vue2/element-admin-v3/node_modules/log-update/package.json +++ b/admin/vue2/element-admin-v3/node_modules/log-update/package.json @@ -1,23 +1,59 @@ { - "name": "log-update", - "version": "2.3.0", - "description": "Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.", - "license": "MIT", - "repository": "sindresorhus/log-update", + "_args": [ + [ + "log-update@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "log-update@2.3.0", + "_id": "log-update@2.3.0", + "_inBundle": false, + "_integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "_location": "/log-update", + "_phantomChildren": { + "is-fullwidth-code-point": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "log-update@2.3.0", + "name": "log-update", + "escapedName": "log-update", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/listr-update-renderer" + ], + "_resolved": "https://registry.npm.taobao.org/log-update/download/log-update-2.3.0.tgz?cache=0&sync_timestamp=1582186637481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-update%2Fdownload%2Flog-update-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/log-update/issues" + }, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "description": "Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.", + "devDependencies": { + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/log-update#readme", "keywords": [ "log", "logger", @@ -36,12 +72,14 @@ "bar", "animation" ], - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "license": "MIT", + "name": "log-update", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/log-update.git" }, - "devDependencies": { - "xo": "*" - } + "scripts": { + "test": "xo && node test.js" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/loglevel/package.json b/admin/vue2/element-admin-v3/node_modules/loglevel/package.json index c9f49c08d..fa7581872 100644 --- a/admin/vue2/element-admin-v3/node_modules/loglevel/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loglevel/package.json @@ -1,37 +1,42 @@ { - "name": "loglevel", - "description": "Minimal lightweight logging for JavaScript, adding reliable log level methods to any available console.log methods", - "version": "1.7.1", - "homepage": "https://github.com/pimterry/loglevel", + "_args": [ + [ + "loglevel@1.7.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "loglevel@1.7.1", + "_id": "loglevel@1.7.1", + "_inBundle": false, + "_integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", + "_location": "/loglevel", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "loglevel@1.7.1", + "name": "loglevel", + "escapedName": "loglevel", + "rawSpec": "1.7.1", + "saveSpec": null, + "fetchSpec": "1.7.1" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606312221245&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz", + "_spec": "1.7.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Tim Perry", "email": "pimterry@gmail.com", "url": "http://tim-perry.co.uk" }, - "repository": { - "type": "git", - "url": "git://github.com/pimterry/loglevel.git" - }, "bugs": { "url": "https://github.com/pimterry/loglevel/issues" }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - }, - "license": "MIT", - "main": "lib/loglevel.js", - "types": "./index.d.ts", - "engines": { - "node": ">= 0.6.0" - }, - "scripts": { - "test": "grunt test && tsc --noEmit ./test/type-test.ts", - "ci": "grunt ci", - "dist": "grunt dist", - "watch": "grunt watch" - }, "dependencies": {}, + "description": "Minimal lightweight logging for JavaScript, adding reliable log level methods to any available console.log methods", "devDependencies": { "@types/core-js": "2.5.0", "@types/node": "^12.0.4", @@ -55,10 +60,33 @@ "qunitjs": "1.14.0", "typescript": "^3.5.1" }, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + }, + "homepage": "https://github.com/pimterry/loglevel", "keywords": [ "log", "logger", "logging", "browser" - ] + ], + "license": "MIT", + "main": "lib/loglevel.js", + "name": "loglevel", + "repository": { + "type": "git", + "url": "git://github.com/pimterry/loglevel.git" + }, + "scripts": { + "ci": "grunt ci", + "dist": "grunt dist", + "test": "grunt test && tsc --noEmit ./test/type-test.ts", + "watch": "grunt watch" + }, + "types": "./index.d.ts", + "version": "1.7.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/loglevelnext/package.json b/admin/vue2/element-admin-v3/node_modules/loglevelnext/package.json index 2772015f7..2493d62f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/loglevelnext/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loglevelnext/package.json @@ -1,34 +1,77 @@ { - "name": "loglevelnext", - "version": "1.0.5", + "_args": [ + [ + "loglevelnext@1.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "loglevelnext@1.0.5", + "_id": "loglevelnext@1.0.5", + "_inBundle": false, + "_integrity": "sha1-NvxPWZbWZA9Tn/IDuoGWQWgNdaI=", + "_location": "/loglevelnext", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "loglevelnext@1.0.5", + "name": "loglevelnext", + "escapedName": "loglevelnext", + "rawSpec": "1.0.5", + "saveSpec": null, + "fetchSpec": "1.0.5" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils/webpack-log" + ], + "_resolved": "https://registry.npm.taobao.org/loglevelnext/download/loglevelnext-1.0.5.tgz", + "_spec": "1.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrew Powell", + "email": "andrew@shellscape.org" + }, + "bugs": { + "url": "https://github.com/shellscape/loglevelnext/issues" + }, + "dependencies": { + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" + }, "description": "A modern logging library for Node.js and modern browsers that provides log level mapping to the console", - "license": "MIT", - "repository": "shellscape/loglevelnext", - "author": "Andrew Powell ", - "homepage": "https://github.com/shellscape/loglevelnext", - "main": "index.js", + "devDependencies": { + "@babel/cli": "^7.0.0-beta.46", + "@babel/core": "^7.0.0-beta.46", + "@babel/polyfill": "^7.0.0-beta.46", + "@babel/preset-env": "^7.0.0-beta.46", + "@babel/register": "^7.0.0-beta.46", + "assert": "^1.4.1", + "babel-loader": "^8.0.0-beta.2", + "better-assert": "github:devinrhode2/better-assert-browser", + "chalk": "^2.3.0", + "check-node-version": "^3.1.1", + "codecov.io": "^0.1.6", + "eslint": "^4.13.1", + "eslint-config-webpack": "^1.2.5", + "eslint-plugin-import": "^2.8.0", + "istanbul": "^0.4.5", + "mocha": "^5.1.1", + "mocha-chrome": "^1.0.2", + "sinon": "^4.1.3", + "webpack": "^4.0.0-alpha.1", + "webpack-cli": "^2.0.2" + }, "engines": { "node": ">= 6" }, - "scripts": { - "build": "npm run build:dev && npm run build:prod", - "build:dev": "NODE_ENV=development webpack index.js", - "build:prod": "NODE_ENV=production webpack index.js", - "ci": "npm run cover -- --report lcovonly && npm run lint && npm run test", - "check-node": "check-node-version --node 9", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "lint": "eslint index.js lib test", - "test": "npm run test:node && npm run test:browser", - "test:browser": "if npm run check-node --silent; then mocha-chrome test/tests/browser/entry.html; else npm run test:browser:skip; fi", - "test:browser:skip": "echo \"\\nSkipping Browser Test\\n\\n\\033[32mTests Completed Successfully\\033[0m\"", - "test:node": "mocha --full-trace --check-leaks" - }, "files": [ "dist/", "factory/", "lib/", "index.js" ], + "homepage": "https://github.com/shellscape/loglevelnext", "keywords": [ "browser", "console", @@ -47,30 +90,25 @@ "trace", "warn" ], - "dependencies": { - "es6-symbol": "^3.1.1", - "object.assign": "^4.1.0" + "license": "MIT", + "main": "index.js", + "name": "loglevelnext", + "repository": { + "type": "git", + "url": "git+https://github.com/shellscape/loglevelnext.git" }, - "devDependencies": { - "@babel/cli": "^7.0.0-beta.46", - "@babel/core": "^7.0.0-beta.46", - "@babel/polyfill": "^7.0.0-beta.46", - "@babel/preset-env": "^7.0.0-beta.46", - "@babel/register": "^7.0.0-beta.46", - "assert": "^1.4.1", - "babel-loader": "^8.0.0-beta.2", - "better-assert": "github:devinrhode2/better-assert-browser", - "chalk": "^2.3.0", - "check-node-version": "^3.1.1", - "codecov.io": "^0.1.6", - "eslint": "^4.13.1", - "eslint-config-webpack": "^1.2.5", - "eslint-plugin-import": "^2.8.0", - "istanbul": "^0.4.5", - "mocha": "^5.1.1", - "mocha-chrome": "^1.0.2", - "sinon": "^4.1.3", - "webpack": "^4.0.0-alpha.1", - "webpack-cli": "^2.0.2" - } + "scripts": { + "build": "npm run build:dev && npm run build:prod", + "build:dev": "NODE_ENV=development webpack index.js", + "build:prod": "NODE_ENV=production webpack index.js", + "check-node": "check-node-version --node 9", + "ci": "npm run cover -- --report lcovonly && npm run lint && npm run test", + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint index.js lib test", + "test": "npm run test:node && npm run test:browser", + "test:browser": "if npm run check-node --silent; then mocha-chrome test/tests/browser/entry.html; else npm run test:browser:skip; fi", + "test:browser:skip": "echo \"\\nSkipping Browser Test\\n\\n\\033[32mTests Completed Successfully\\033[0m\"", + "test:node": "mocha --full-trace --check-leaks" + }, + "version": "1.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/long/package.json b/admin/vue2/element-admin-v3/node_modules/long/package.json index bb91636da..280c3a0a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/long/package.json +++ b/admin/vue2/element-admin-v3/node_modules/long/package.json @@ -1,33 +1,67 @@ { + "_args": [ + [ + "long@3.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "long@3.2.0", + "_id": "long@3.2.0", + "_inBundle": false, + "_integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "_location": "/long", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "long@3.2.0", "name": "long", - "version": "3.2.0", - "author": "Daniel Wirtz ", - "description": "A Long class for representing a 64-bit two's-complement integer value.", - "main": "dist/long.js", - "repository": { - "type": "git", - "url": "https://github.com/dcodeIO/long.js.git" - }, - "bugs": { - "url": "https://github.com/dcodeIO/long.js/issues" - }, - "keywords": ["math"], - "dependencies": { - }, - "devDependencies": { - "testjs": "latest", - "closurecompiler": "^1.6", - "metascript": "~0" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.6" - }, - "scripts": { - "build": "node scripts/build.js", - "make": "npm run-script build && npm run-script compile && npm run-script compress && npm test", - "compile": "ccjs dist/long.js --compilation_level=SIMPLE_OPTIMIZATIONS --create_source_map=dist/long.min.map > dist/long.min.js", - "compress": "gzip -c -9 dist/long.min.js > dist/long.min.js.gz", - "test": "node node_modules/testjs/bin/testjs tests/suite.js" - } + "escapedName": "long", + "rawSpec": "3.2.0", + "saveSpec": null, + "fetchSpec": "3.2.0" + }, + "_requiredBy": [ + "/@webassemblyjs/wast-parser", + "/@webassemblyjs/wast-printer" + ], + "_resolved": "https://registry.npm.taobao.org/long/download/long-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flong%2Fdownload%2Flong-3.2.0.tgz", + "_spec": "3.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Daniel Wirtz", + "email": "dcode@dcode.io" + }, + "bugs": { + "url": "https://github.com/dcodeIO/long.js/issues" + }, + "dependencies": {}, + "description": "A Long class for representing a 64-bit two's-complement integer value.", + "devDependencies": { + "closurecompiler": "^1.6", + "metascript": "~0", + "testjs": "latest" + }, + "engines": { + "node": ">=0.6" + }, + "homepage": "https://github.com/dcodeIO/long.js#readme", + "keywords": [ + "math" + ], + "license": "Apache-2.0", + "main": "dist/long.js", + "name": "long", + "repository": { + "type": "git", + "url": "git+https://github.com/dcodeIO/long.js.git" + }, + "scripts": { + "build": "node scripts/build.js", + "compile": "ccjs dist/long.js --compilation_level=SIMPLE_OPTIMIZATIONS --create_source_map=dist/long.min.map > dist/long.min.js", + "compress": "gzip -c -9 dist/long.min.js > dist/long.min.js.gz", + "make": "npm run-script build && npm run-script compile && npm run-script compress && npm test", + "test": "node node_modules/testjs/bin/testjs tests/suite.js" + }, + "version": "3.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/longest/package.json b/admin/vue2/element-admin-v3/node_modules/longest/package.json index 76e7afd72..fda6f6c72 100644 --- a/admin/vue2/element-admin-v3/node_modules/longest/package.json +++ b/admin/vue2/element-admin-v3/node_modules/longest/package.json @@ -1,37 +1,52 @@ { - "name": "longest", - "description": "Get the longest item in an array.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/longest", + "_args": [ + [ + "longest@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "longest@1.0.1", + "_id": "longest@1.0.1", + "_inBundle": false, + "_integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "_location": "/longest", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "longest@1.0.1", + "name": "longest", + "escapedName": "longest", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/align-text" + ], + "_resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" }, - "repository": { - "type": "git", - "url": "https://github.com/jonschlinkert/longest.git" - }, "bugs": { "url": "https://github.com/jonschlinkert/longest/issues" }, - "license": { - "type": "MIT", - "url": "https://github.com/jonschlinkert/longest/blob/master/LICENSE" - }, - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, + "description": "Get the longest item in an array.", "devDependencies": { "fill-range": "^2.1.0", "mocha": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/longest", "keywords": [ "array", "element", @@ -39,5 +54,19 @@ "long", "length", "longest" - ] + ], + "license": { + "type": "MIT", + "url": "https://github.com/jonschlinkert/longest/blob/master/LICENSE" + }, + "main": "index.js", + "name": "longest", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/longest.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/loose-envify/package.json b/admin/vue2/element-admin-v3/node_modules/loose-envify/package.json index 5e3d0e277..097dc9e4d 100644 --- a/admin/vue2/element-admin-v3/node_modules/loose-envify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loose-envify/package.json @@ -1,7 +1,53 @@ { - "name": "loose-envify", - "version": "1.4.0", + "_args": [ + [ + "loose-envify@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "loose-envify@1.4.0", + "_id": "loose-envify@1.4.0", + "_inBundle": false, + "_integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "_location": "/loose-envify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "loose-envify@1.4.0", + "name": "loose-envify", + "escapedName": "loose-envify", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/invariant", + "/warning" + ], + "_resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andres Suarez", + "email": "zertosh@gmail.com" + }, + "bin": { + "loose-envify": "cli.js" + }, + "bugs": { + "url": "https://github.com/zertosh/loose-envify/issues" + }, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, "description": "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST", + "devDependencies": { + "browserify": "^13.1.1", + "envify": "^3.4.0", + "tap": "^8.0.0" + }, + "homepage": "https://github.com/zertosh/loose-envify", "keywords": [ "environment", "variables", @@ -11,13 +57,9 @@ "source", "configuration" ], - "homepage": "https://github.com/zertosh/loose-envify", "license": "MIT", - "author": "Andres Suarez ", "main": "index.js", - "bin": { - "loose-envify": "cli.js" - }, + "name": "loose-envify", "repository": { "type": "git", "url": "git://github.com/zertosh/loose-envify.git" @@ -25,12 +67,5 @@ "scripts": { "test": "tap test/*.js" }, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "devDependencies": { - "browserify": "^13.1.1", - "envify": "^3.4.0", - "tap": "^8.0.0" - } + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/loud-rejection/package.json b/admin/vue2/element-admin-v3/node_modules/loud-rejection/package.json index da5adaf68..ae0dd528b 100644 --- a/admin/vue2/element-admin-v3/node_modules/loud-rejection/package.json +++ b/admin/vue2/element-admin-v3/node_modules/loud-rejection/package.json @@ -1,26 +1,65 @@ { - "name": "loud-rejection", - "version": "1.6.0", - "description": "Make unhandled promise rejections fail loudly instead of the default silent fail", - "license": "MIT", - "repository": "sindresorhus/loud-rejection", + "_args": [ + [ + "loud-rejection@1.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "loud-rejection@1.6.0", + "_id": "loud-rejection@1.6.0", + "_inBundle": false, + "_integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "_location": "/loud-rejection", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "loud-rejection@1.6.0", + "name": "loud-rejection", + "escapedName": "loud-rejection", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" + }, + "_requiredBy": [ + "/meow" + ], + "_resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floud-rejection%2Fdownload%2Floud-rejection-1.6.0.tgz", + "_spec": "1.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/loud-rejection/issues" + }, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "description": "Make unhandled promise rejections fail loudly instead of the default silent fail", + "devDependencies": { + "ava": "*", + "bluebird": "^3.0.5", + "coveralls": "^2.11.4", + "delay": "^1.0.0", + "execa": "^0.4.0", + "get-stream": "^2.0.0", + "nyc": "^6.2.1", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && nyc ava", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js", "register.js", "api.js" ], + "homepage": "https://github.com/sindresorhus/loud-rejection#readme", "keywords": [ "promise", "promises", @@ -37,23 +76,20 @@ "debugging", "verbose" ], - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "bluebird": "^3.0.5", - "coveralls": "^2.11.4", - "delay": "^1.0.0", - "execa": "^0.4.0", - "get-stream": "^2.0.0", - "nyc": "^6.2.1", - "xo": "*" - }, + "license": "MIT", + "name": "loud-rejection", "nyc": { "exclude": [ "fixture.js" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/loud-rejection.git" + }, + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc ava" + }, + "version": "1.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/lower-case/package.json b/admin/vue2/element-admin-v3/node_modules/lower-case/package.json index 7a62a14ca..9a8ab9706 100644 --- a/admin/vue2/element-admin-v3/node_modules/lower-case/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lower-case/package.json @@ -1,52 +1,81 @@ { - "name": "lower-case", - "version": "1.1.4", - "description": "Lowercase a string", - "main": "lower-case.js", - "typings": "lower-case.d.ts", - "files": [ - "lower-case.js", - "lower-case.d.ts", - "LICENSE" - ], - "scripts": { - "lint": "standard", - "test-std": "mocha -- -R spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov" - }, - "standard": { - "ignore": [ - "coverage/**", - "node_modules/**", - "bower_components/**" + "_args": [ + [ + "lower-case@1.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "lower-case@1.1.4", + "_id": "lower-case@1.1.4", + "_inBundle": false, + "_integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "_location": "/lower-case", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lower-case@1.1.4", + "name": "lower-case", + "escapedName": "lower-case", + "rawSpec": "1.1.4", + "saveSpec": null, + "fetchSpec": "1.1.4" }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/lower-case.git" - }, - "keywords": [ - "cases", - "lower", - "lowercase", - "case" + "_requiredBy": [ + "/no-case" ], + "_resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867304538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz", + "_spec": "1.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me" }, - "license": "MIT", "bugs": { "url": "https://github.com/blakeembrey/lower-case/issues" }, - "homepage": "https://github.com/blakeembrey/lower-case", + "dependencies": {}, + "description": "Lowercase a string", "devDependencies": { "istanbul": "^0.3.5", "mocha": "^2.1.0", "pre-commit": "^1.0.2", "standard": "^2.4.5" }, - "dependencies": {} + "files": [ + "lower-case.js", + "lower-case.d.ts", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/lower-case", + "keywords": [ + "cases", + "lower", + "lowercase", + "case" + ], + "license": "MIT", + "main": "lower-case.js", + "name": "lower-case", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/lower-case.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", + "test-std": "mocha -- -R spec --bail" + }, + "standard": { + "ignore": [ + "coverage/**", + "node_modules/**", + "bower_components/**" + ] + }, + "typings": "lower-case.d.ts", + "version": "1.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/lru-cache/package.json b/admin/vue2/element-admin-v3/node_modules/lru-cache/package.json index bf7a06dc6..d8729e1d8 100644 --- a/admin/vue2/element-admin-v3/node_modules/lru-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/lru-cache/package.json @@ -1,36 +1,77 @@ { - "name": "lru-cache", + "_args": [ + [ + "lru-cache@4.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "lru-cache@4.1.5", + "_id": "lru-cache@4.1.5", + "_inBundle": false, + "_integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "_location": "/lru-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lru-cache@4.1.5", + "name": "lru-cache", + "escapedName": "lru-cache", + "rawSpec": "4.1.5", + "saveSpec": null, + "fetchSpec": "4.1.5" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils", + "/cacache", + "/eslint/cross-spawn", + "/lint-staged/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", + "_spec": "4.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + "bugs": { + "url": "https://github.com/isaacs/node-lru-cache/issues" + }, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + }, "description": "A cache object that deletes the least-recently-used items.", - "version": "4.1.5", - "author": "Isaac Z. Schlueter ", + "devDependencies": { + "benchmark": "^2.1.4", + "standard": "^12.0.1", + "tap": "^12.1.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/isaacs/node-lru-cache#readme", "keywords": [ "mru", "lru", "cache" ], + "license": "ISC", + "main": "index.js", + "name": "lru-cache", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-lru-cache.git" + }, "scripts": { - "test": "tap test/*.js --100 -J", - "snap": "TAP_SNAPSHOT=1 tap test/*.js -J", - "posttest": "standard test/*.js index.js", "coveragerport": "tap --coverage-report=html", "lintfix": "standard --fix test/*.js index.js", - "preversion": "npm test", + "postpublish": "git push origin --all; git push origin --tags", + "posttest": "standard test/*.js index.js", "postversion": "npm publish --tag=legacy", - "postpublish": "git push origin --all; git push origin --tags" - }, - "main": "index.js", - "repository": "git://github.com/isaacs/node-lru-cache.git", - "devDependencies": { - "benchmark": "^2.1.4", - "standard": "^12.0.1", - "tap": "^12.1.0" - }, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "preversion": "npm test", + "snap": "TAP_SNAPSHOT=1 tap test/*.js -J", + "test": "tap test/*.js --100 -J" }, - "files": [ - "index.js" - ] + "version": "4.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/m3u8-parser/package.json b/admin/vue2/element-admin-v3/node_modules/m3u8-parser/package.json index 50fd3fd0b..59a31c4be 100644 --- a/admin/vue2/element-admin-v3/node_modules/m3u8-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/m3u8-parser/package.json @@ -1,29 +1,111 @@ { - "name": "m3u8-parser", - "version": "2.1.0", - "description": "m3u8 parser", - "jsnext:main": "src/index.js", - "main": "es5/index.js", - "repository": { - "type": "git", - "url": "git@github.com:videojs/m3u8-parser.git" + "_args": [ + [ + "m3u8-parser@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "m3u8-parser@2.1.0", + "_id": "m3u8-parser@2.1.0", + "_inBundle": false, + "_integrity": "sha1-yBcDKewc1RXQ1Yu4t2LamJbLA2g=", + "_location": "/m3u8-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "m3u8-parser@2.1.0", + "name": "m3u8-parser", + "escapedName": "m3u8-parser", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/videojs-contrib-hls" + ], + "_resolved": "https://registry.nlark.com/m3u8-parser/download/m3u8-parser-2.1.0.tgz?cache=0&sync_timestamp=1621435940345&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fm3u8-parser%2Fdownload%2Fm3u8-parser-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove, Inc" + }, + "browserify-shim": { + "qunit": "global:QUnit", + "sinon": "global:sinon" + }, + "bugs": { + "url": "https://github.com/videojs/m3u8-parser/issues" }, "contributors": [ { - "name": "gkatsev", - "github": "https://github.com/gkatsev" + "name": "gkatsev" }, { - "name": "imbcmdth", - "github": "https://github.com/imbcmdth" + "name": "imbcmdth" }, { - "name": "dmlap", - "github": "https://github.com/dmlap" + "name": "dmlap" } ], + "dependencies": {}, + "description": "m3u8 parser", + "devDependencies": { + "babel": "^6.5.2", + "babel-cli": "^6.11.4", + "babel-plugin-transform-object-assign": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-es2015-loose": "^7.0.0", + "babel-preset-es3": "^1.0.1", + "babelify": "^7.3.0", + "bannerize": "^1.0.2", + "bluebird": "^3.2.2", + "browserify": "^12.0.2", + "browserify-shim": "^3.8.12", + "budo": "^8.0.4", + "chg": "^0.3.2", + "doctoc": "^0.15.0", + "glob": "^6.0.3", + "global": "^4.3.0", + "jsdoc": "^3.4.0", + "karma": "^0.13.19", + "karma-chrome-launcher": "^0.2.2", + "karma-detect-browsers": "^2.0.2", + "karma-firefox-launcher": "^0.1.7", + "karma-ie-launcher": "^0.2.0", + "karma-qunit": "^0.1.9", + "karma-safari-launcher": "^0.1.1", + "mkdirp": "^0.5.1", + "npm-run-all": "^1.5.1", + "qunitjs": "^1.21.0", + "rimraf": "^2.5.1", + "sinon": "~1.14.0", + "uglify-js": "^2.6.1", + "videojs-standard": "5.2.0", + "watchify": "^3.7.0" + }, + "files": [ + "CONTRIBUTING.md", + "bower.json", + "dist/", + "docs/", + "es5/", + "index.html", + "scripts/", + "src/", + "test/" + ], + "homepage": "https://github.com/videojs/m3u8-parser#readme", + "jsnext:main": "src/index.js", + "keywords": [], + "license": "Apache-2.0", + "main": "es5/index.js", + "name": "m3u8-parser", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/videojs/m3u8-parser.git" + }, "scripts": { - "prebuild": "npm run clean", "build": "npm-run-all -p build:*", "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:uglify", "build:js:babel": "babel src -d es5", @@ -37,30 +119,25 @@ "docs:api": "jsdoc src -r -d docs/api", "docs:toc": "doctoc README.md", "lint": "vjsstandard", + "postversion": "babel-node scripts/postversion.js", + "prebuild": "npm run clean", + "prepublish": "npm run build", + "pretest": "npm-run-all lint build", + "preversion": "npm test", "start": "npm-run-all -p watch start:*", "start:serve": "babel-node scripts/server.js", - "pretest": "npm-run-all lint build", "test": "karma start test/karma.conf.js", "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", - "preversion": "npm test", "version": "babel-node scripts/version.js", - "postversion": "babel-node scripts/postversion.js", - "prepublish": "npm run build", "watch": "npm-run-all -p watch:*", "watch:js": "npm-run-all -p watch:js:babel watch:js:browserify", "watch:js:babel": "npm run build:js:babel -- --watch", "watch:js:browserify": "watchify . -v -g browserify-shim -o dist/m3u8-parser.js" }, - "keywords": [], - "author": "Brightcove, Inc", - "license": "Apache-2.0", - "browserify-shim": { - "qunit": "global:QUnit", - "sinon": "global:sinon" - }, + "version": "2.1.0", "vjsstandard": { "ignore": [ "dist", @@ -72,51 +149,5 @@ "test/test-manifests.js", "test/fixtures/m3u8/**/*.js" ] - }, - "files": [ - "CONTRIBUTING.md", - "bower.json", - "dist/", - "docs/", - "es5/", - "index.html", - "scripts/", - "src/", - "test/" - ], - "dependencies": {}, - "devDependencies": { - "babel": "^6.5.2", - "babel-cli": "^6.11.4", - "babel-plugin-transform-object-assign": "^6.8.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-loose": "^7.0.0", - "babel-preset-es3": "^1.0.1", - "babelify": "^7.3.0", - "bannerize": "^1.0.2", - "bluebird": "^3.2.2", - "browserify": "^12.0.2", - "browserify-shim": "^3.8.12", - "budo": "^8.0.4", - "chg": "^0.3.2", - "doctoc": "^0.15.0", - "glob": "^6.0.3", - "global": "^4.3.0", - "jsdoc": "^3.4.0", - "karma": "^0.13.19", - "karma-chrome-launcher": "^0.2.2", - "karma-detect-browsers": "^2.0.2", - "karma-firefox-launcher": "^0.1.7", - "karma-ie-launcher": "^0.2.0", - "karma-qunit": "^0.1.9", - "karma-safari-launcher": "^0.1.1", - "mkdirp": "^0.5.1", - "npm-run-all": "^1.5.1", - "qunitjs": "^1.21.0", - "rimraf": "^2.5.1", - "sinon": "~1.14.0", - "uglify-js": "^2.6.1", - "videojs-standard": "5.2.0", - "watchify": "^3.7.0" } } diff --git a/admin/vue2/element-admin-v3/node_modules/make-dir/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/make-dir/node_modules/pify/package.json index 468d85760..39b3c5254 100644 --- a/admin/vue2/element-admin-v3/node_modules/make-dir/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/make-dir/node_modules/pify/package.json @@ -1,24 +1,54 @@ { - "name": "pify", - "version": "3.0.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pify@3.0.0", + "_id": "pify@3.0.0", + "_inBundle": false, + "_integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "_location": "/make-dir/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@3.0.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/make-dir" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -42,10 +72,15 @@ "es2015", "bluebird" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^2.0.0", - "v8-natives": "^1.0.0", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/make-dir/package.json b/admin/vue2/element-admin-v3/node_modules/make-dir/package.json index ec907a71f..e8279d19c 100644 --- a/admin/vue2/element-admin-v3/node_modules/make-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/make-dir/package.json @@ -1,54 +1,89 @@ { - "name": "make-dir", - "version": "1.3.0", - "description": "Make a directory and its parents if needed - Think `mkdir -p`", - "license": "MIT", - "repository": "sindresorhus/make-dir", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && nyc ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "mkdir", - "mkdirp", - "make", - "directories", - "dir", - "dirs", - "folders", - "directory", - "folder", - "path", - "parent", - "parents", - "intermediate", - "recursively", - "recursive", - "create", - "fs", - "filesystem", - "file-system" - ], - "dependencies": { - "pify": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "codecov": "^3.0.0", - "graceful-fs": "^4.1.11", - "nyc": "^11.3.0", - "path-type": "^3.0.0", - "tempy": "^0.2.1", - "xo": "^0.20.0" - } + "_args": [ + [ + "make-dir@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "make-dir@1.3.0", + "_id": "make-dir@1.3.0", + "_inBundle": false, + "_integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "_location": "/make-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "make-dir@1.3.0", + "name": "make-dir", + "escapedName": "make-dir", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/find-cache-dir" + ], + "_resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/make-dir/issues" + }, + "dependencies": { + "pify": "^3.0.0" + }, + "description": "Make a directory and its parents if needed - Think `mkdir -p`", + "devDependencies": { + "ava": "*", + "codecov": "^3.0.0", + "graceful-fs": "^4.1.11", + "nyc": "^11.3.0", + "path-type": "^3.0.0", + "tempy": "^0.2.1", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/make-dir#readme", + "keywords": [ + "mkdir", + "mkdirp", + "make", + "directories", + "dir", + "dirs", + "folders", + "directory", + "folder", + "path", + "parent", + "parents", + "intermediate", + "recursively", + "recursive", + "create", + "fs", + "filesystem", + "file-system" + ], + "license": "MIT", + "name": "make-dir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/make-dir.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mamacro/package.json b/admin/vue2/element-admin-v3/node_modules/mamacro/package.json index 1da88807e..0dfc736c4 100644 --- a/admin/vue2/element-admin-v3/node_modules/mamacro/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mamacro/package.json @@ -1,11 +1,43 @@ { - "name": "mamacro", - "version": "0.0.3", + "_args": [ + [ + "mamacro@0.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mamacro@0.0.3", + "_id": "mamacro@0.0.3", + "_inBundle": false, + "_integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=", + "_location": "/mamacro", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mamacro@0.0.3", + "name": "mamacro", + "escapedName": "mamacro", + "rawSpec": "0.0.3", + "saveSpec": null, + "fetchSpec": "0.0.3" + }, + "_requiredBy": [ + "/@webassemblyjs/ast", + "/@webassemblyjs/helper-module-context", + "/@webassemblyjs/wast-parser" + ], + "_resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", + "_spec": "0.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sven Sauleau" + }, "description": "", + "license": "MIT", "main": "index.js", + "name": "mamacro", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "author": "Sven Sauleau", - "license": "MIT" + "version": "0.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/map-age-cleaner/package.json b/admin/vue2/element-admin-v3/node_modules/map-age-cleaner/package.json index dc7065062..56eb1d901 100644 --- a/admin/vue2/element-admin-v3/node_modules/map-age-cleaner/package.json +++ b/admin/vue2/element-admin-v3/node_modules/map-age-cleaner/package.json @@ -1,59 +1,95 @@ { - "name": "map-age-cleaner", - "version": "0.1.3", - "description": "Automatically cleanup expired items in a Map", - "license": "MIT", - "repository": "SamVerschueren/map-age-cleaner", - "author": { - "name": "Sam Verschueren", - "email": "sam.verschueren@gmail.com", - "url": "github.com/SamVerschueren" - }, - "main": "dist/index.js", - "engines": { - "node": ">=6" - }, - "scripts": { - "prepublishOnly": "npm run build", - "pretest": "npm run build -- --sourceMap", - "test": "npm run lint && nyc ava dist/test.js", - "lint": "tslint --format stylish --project .", - "build": "npm run clean && tsc", - "clean": "del-cli dist" - }, - "files": [ - "dist/index.js", - "dist/index.d.ts" - ], - "keywords": [ - "map", - "age", - "cleaner", - "maxage", - "expire", - "expiration", - "expiring" - ], - "dependencies": { - "p-defer": "^1.0.0" - }, - "devDependencies": { - "@types/delay": "^2.0.1", - "@types/node": "^10.7.1", - "ava": "^0.25.0", - "codecov": "^3.0.0", - "del-cli": "^1.1.0", - "delay": "^3.0.0", - "nyc": "^12.0.0", - "tslint": "^5.11.0", - "tslint-xo": "^0.9.0", - "typescript": "^3.0.1" - }, - "typings": "dist/index.d.ts", - "sideEffects": false, - "nyc": { - "exclude": [ - "dist/test.js" - ] - } + "_args": [ + [ + "map-age-cleaner@0.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "map-age-cleaner@0.1.3", + "_id": "map-age-cleaner@0.1.3", + "_inBundle": false, + "_integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "_location": "/map-age-cleaner", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "map-age-cleaner@0.1.3", + "name": "map-age-cleaner", + "escapedName": "map-age-cleaner", + "rawSpec": "0.1.3", + "saveSpec": null, + "fetchSpec": "0.1.3" + }, + "_requiredBy": [ + "/mem" + ], + "_resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "_spec": "0.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sam Verschueren", + "email": "sam.verschueren@gmail.com", + "url": "github.com/SamVerschueren" + }, + "bugs": { + "url": "https://github.com/SamVerschueren/map-age-cleaner/issues" + }, + "dependencies": { + "p-defer": "^1.0.0" + }, + "description": "Automatically cleanup expired items in a Map", + "devDependencies": { + "@types/delay": "^2.0.1", + "@types/node": "^10.7.1", + "ava": "^0.25.0", + "codecov": "^3.0.0", + "del-cli": "^1.1.0", + "delay": "^3.0.0", + "nyc": "^12.0.0", + "tslint": "^5.11.0", + "tslint-xo": "^0.9.0", + "typescript": "^3.0.1" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "dist/index.js", + "dist/index.d.ts" + ], + "homepage": "https://github.com/SamVerschueren/map-age-cleaner#readme", + "keywords": [ + "map", + "age", + "cleaner", + "maxage", + "expire", + "expiration", + "expiring" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "map-age-cleaner", + "nyc": { + "exclude": [ + "dist/test.js" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SamVerschueren/map-age-cleaner.git" + }, + "scripts": { + "build": "npm run clean && tsc", + "clean": "del-cli dist", + "lint": "tslint --format stylish --project .", + "prepublishOnly": "npm run build", + "pretest": "npm run build -- --sourceMap", + "test": "npm run lint && nyc ava dist/test.js" + }, + "sideEffects": false, + "typings": "dist/index.d.ts", + "version": "0.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/map-cache/package.json b/admin/vue2/element-admin-v3/node_modules/map-cache/package.json index 8bf0af2ce..fffaef1c0 100644 --- a/admin/vue2/element-admin-v3/node_modules/map-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/map-cache/package.json @@ -1,28 +1,52 @@ { - "name": "map-cache", - "description": "Basic cache object for storing key-value pairs.", - "version": "0.2.2", - "homepage": "https://github.com/jonschlinkert/map-cache", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/map-cache", - "bugs": { - "url": "https://github.com/jonschlinkert/map-cache/issues" + "_args": [ + [ + "map-cache@0.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "map-cache@0.2.2", + "_id": "map-cache@0.2.2", + "_inBundle": false, + "_integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "_location": "/map-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "map-cache@0.2.2", + "name": "map-cache", + "escapedName": "map-cache", + "rawSpec": "0.2.2", + "saveSpec": null, + "fetchSpec": "0.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/fragment-cache", + "/snapdragon" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "_spec": "0.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/map-cache/issues" }, + "description": "Basic cache object for storing key-value pairs.", "devDependencies": { "gulp-format-md": "^0.1.9", "should": "^8.3.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/map-cache", "keywords": [ "cache", "get", @@ -32,6 +56,16 @@ "storage", "store" ], + "license": "MIT", + "main": "index.js", + "name": "map-cache", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/map-cache.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -55,5 +89,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/map-obj/package.json b/admin/vue2/element-admin-v3/node_modules/map-obj/package.json index d178305c6..24a933d54 100644 --- a/admin/vue2/element-admin-v3/node_modules/map-obj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/map-obj/package.json @@ -1,23 +1,53 @@ { - "name": "map-obj", - "version": "1.0.1", - "description": "Map object keys and values into a new object", - "license": "MIT", - "repository": "sindresorhus/map-obj", + "_args": [ + [ + "map-obj@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "map-obj@1.0.1", + "_id": "map-obj@1.0.1", + "_inBundle": false, + "_integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "_location": "/map-obj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "map-obj@1.0.1", + "name": "map-obj", + "escapedName": "map-obj", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/camelcase-keys", + "/meow" + ], + "_resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617771341569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/map-obj/issues" + }, + "description": "Map object keys and values into a new object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/map-obj#readme", "keywords": [ "map", "obj", @@ -30,7 +60,14 @@ "iterate", "iterator" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "map-obj", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/map-obj.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/map-visit/package.json b/admin/vue2/element-admin-v3/node_modules/map-visit/package.json index e8d0f41c6..aa380edc0 100644 --- a/admin/vue2/element-admin-v3/node_modules/map-visit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/map-visit/package.json @@ -1,31 +1,55 @@ { - "name": "map-visit", - "description": "Map `visit` over an array of objects.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/map-visit", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "map-visit@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/map-visit", - "bugs": { - "url": "https://github.com/jonschlinkert/map-visit/issues" + "_from": "map-visit@1.0.0", + "_id": "map-visit@1.0.0", + "_inBundle": false, + "_integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "_location": "/map-visit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "map-visit@1.0.0", + "name": "map-visit", + "escapedName": "map-visit", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/collection-visit" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/map-visit/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "email": "brian.woodward@gmail.com", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "object-visit": "^1.0.0" }, + "description": "Map `visit` over an array of objects.", "devDependencies": { "clone-deep": "^0.2.4", "extend-shallow": "^2.0.1", @@ -33,6 +57,13 @@ "lodash": "^4.17.4", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/map-visit", "keywords": [ "array", "arrays", @@ -48,6 +79,16 @@ "visit", "visitor" ], + "license": "MIT", + "main": "index.js", + "name": "map-visit", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/map-visit.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -70,5 +111,6 @@ "verb", "verb-generate-readme" ] - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mavon-editor/package.json b/admin/vue2/element-admin-v3/node_modules/mavon-editor/package.json index d2951c7d9..060d3f0a9 100644 --- a/admin/vue2/element-admin-v3/node_modules/mavon-editor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mavon-editor/package.json @@ -1,37 +1,44 @@ { - "name": "mavon-editor", - "version": "2.9.1", - "description": "Vue markdown editor", - "main": "dist/mavon-editor.js", - "types": "./mavon-editor.d.ts", - "scripts": { - "test": "echo true", - "dev": "webpack-dev-server --open --progress --config webpack/webpack.dev.js", - "build": "webpack --progress --config webpack/webpack.build.js", - "lint": "eslint --fix --ext .js,.vue src/" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/hinesboy/mavonEditor.git" + "_args": [ + [ + "mavon-editor@2.9.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mavon-editor@2.9.1", + "_id": "mavon-editor@2.9.1", + "_inBundle": false, + "_integrity": "sha1-Wa3Hy9Ghpx9pHPWyon5g7D5pl8w=", + "_location": "/mavon-editor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mavon-editor@2.9.1", + "name": "mavon-editor", + "escapedName": "mavon-editor", + "rawSpec": "2.9.1", + "saveSpec": null, + "fetchSpec": "2.9.1" }, - "keywords": [ - "javascript", - "vue", - "markdown", - "editor", - "html" + "_requiredBy": [ + "/" ], - "author": "hinesboy", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/mavon-editor/download/mavon-editor-2.9.1.tgz", + "_spec": "2.9.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "hinesboy" + }, "bugs": { "url": "https://github.com/hinesboy/mavonEditor/issues" }, - "homepage": "https://github.com/hinesboy/mavonEditor#readme", "dependencies": { "highlight.js": "^9.11.0", "highlight.js-async-webpack": "^1.0.4", "xss": "^1.0.6" }, + "description": "Vue markdown editor", "devDependencies": { "auto-textarea": "^1.4.0", "autoprefixer": "^8.3.0", @@ -110,5 +117,28 @@ "webpack-bundle-analyzer": "^3.3.2", "webpack-dev-server": "^2.11.5", "webpack-md5-hash": "^0.0.5" - } + }, + "homepage": "https://github.com/hinesboy/mavonEditor#readme", + "keywords": [ + "javascript", + "vue", + "markdown", + "editor", + "html" + ], + "license": "MIT", + "main": "dist/mavon-editor.js", + "name": "mavon-editor", + "repository": { + "type": "git", + "url": "git+https://github.com/hinesboy/mavonEditor.git" + }, + "scripts": { + "build": "webpack --progress --config webpack/webpack.build.js", + "dev": "webpack-dev-server --open --progress --config webpack/webpack.dev.js", + "lint": "eslint --fix --ext .js,.vue src/", + "test": "echo true" + }, + "types": "./mavon-editor.d.ts", + "version": "2.9.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/md5.js/package.json b/admin/vue2/element-admin-v3/node_modules/md5.js/package.json index e12e3c72b..a39612ea5 100644 --- a/admin/vue2/element-admin-v3/node_modules/md5.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/md5.js/package.json @@ -1,38 +1,71 @@ { - "name": "md5.js", - "version": "1.3.5", - "description": "node style md5 on pure JavaScript", - "keywords": [ - "crypto", - "md5" + "_args": [ + [ + "md5.js@1.3.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/crypto-browserify/md5.js", + "_from": "md5.js@1.3.5", + "_id": "md5.js@1.3.5", + "_inBundle": false, + "_integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "_location": "/md5.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "md5.js@1.3.5", + "name": "md5.js", + "escapedName": "md5.js", + "rawSpec": "1.3.5", + "saveSpec": null, + "fetchSpec": "1.3.5" + }, + "_requiredBy": [ + "/create-hash", + "/evp_bytestokey" + ], + "_resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "_spec": "1.3.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kirill Fomichev", + "email": "fanatid@ya.ru", + "url": "https://github.com/fanatid" + }, "bugs": { "url": "https://github.com/crypto-browserify/md5.js/issues" }, - "license": "MIT", - "author": "Kirill Fomichev (https://github.com/fanatid)", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "description": "node style md5 on pure JavaScript", + "devDependencies": { + "hash-test-vectors": "^1.3.2", + "standard": "^7.0.0", + "tape": "^4.2.0" + }, "files": [ "index.js" ], + "homepage": "https://github.com/crypto-browserify/md5.js", + "keywords": [ + "crypto", + "md5" + ], + "license": "MIT", "main": "index.js", + "name": "md5.js", "repository": { "type": "git", - "url": "https://github.com/crypto-browserify/md5.js.git" + "url": "git+https://github.com/crypto-browserify/md5.js.git" }, "scripts": { "lint": "standard", "test": "npm run lint && npm run unit", "unit": "node test/*.js" }, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "devDependencies": { - "hash-test-vectors": "^1.3.2", - "standard": "^7.0.0", - "tape": "^4.2.0" - } + "version": "1.3.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/mdn-data/package.json b/admin/vue2/element-admin-v3/node_modules/mdn-data/package.json index 9d2da01c8..e3b974a5b 100644 --- a/admin/vue2/element-admin-v3/node_modules/mdn-data/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mdn-data/package.json @@ -1,36 +1,67 @@ { - "name": "mdn-data", - "version": "2.0.4", + "_args": [ + [ + "mdn-data@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mdn-data@2.0.4", + "_id": "mdn-data@2.0.4", + "_inBundle": false, + "_integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", + "_location": "/mdn-data", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mdn-data@2.0.4", + "name": "mdn-data", + "escapedName": "mdn-data", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/css-tree" + ], + "_resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mozilla Developer Network" + }, + "bugs": { + "url": "https://github.com/mdn/data/issues" + }, "description": "Open Web data by the Mozilla Developer Network", - "main": "index.js", + "devDependencies": { + "ajv": "^5.0.1", + "better-ajv-errors": "^0.5.1" + }, "files": [ "api/*.json", "css/*.json", "l10n/*.json" ], - "repository": { - "type": "git", - "url": "https://github.com/mdn/data.git" - }, + "homepage": "https://developer.mozilla.org", "keywords": [ "data", "mdn", "mozilla", "css" ], - "author": "Mozilla Developer Network", "license": "CC0-1.0", - "bugs": { - "url": "https://github.com/mdn/data/issues" - }, - "homepage": "https://developer.mozilla.org", - "devDependencies": { - "ajv": "^5.0.1", - "better-ajv-errors": "^0.5.1" + "main": "index.js", + "name": "mdn-data", + "repository": { + "type": "git", + "url": "git+https://github.com/mdn/data.git" }, "scripts": { "lint": "node test/lint", - "travis": "npm test", - "test": "npm run lint" - } + "test": "npm run lint", + "travis": "npm test" + }, + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/media-typer/package.json b/admin/vue2/element-admin-v3/node_modules/media-typer/package.json index 8cf3ebcd7..3f6fc7efd 100644 --- a/admin/vue2/element-admin-v3/node_modules/media-typer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/media-typer/package.json @@ -1,26 +1,64 @@ { - "name": "media-typer", + "_args": [ + [ + "media-typer@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "media-typer@0.3.0", + "_id": "media-typer@0.3.0", + "_inBundle": false, + "_integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "_location": "/media-typer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "media-typer@0.3.0", + "name": "media-typer", + "escapedName": "media-typer", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/type-is" + ], + "_resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/media-typer/issues" + }, "description": "Simple RFC 6838 media type parser and formatter", - "version": "0.3.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "jshttp/media-typer", "devDependencies": { "istanbul": "0.3.2", "mocha": "~1.21.4", "should": "~4.0.4" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/media-typer#readme", + "license": "MIT", + "name": "media-typer", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/media-typer.git" }, "scripts": { "test": "mocha --reporter spec --check-leaks --bail test/", "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/" - } + }, + "version": "0.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mem/node_modules/mimic-fn/package.json b/admin/vue2/element-admin-v3/node_modules/mem/node_modules/mimic-fn/package.json index 199d2c7e0..3171096af 100644 --- a/admin/vue2/element-admin-v3/node_modules/mem/node_modules/mimic-fn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mem/node_modules/mimic-fn/package.json @@ -1,42 +1,78 @@ { - "name": "mimic-fn", - "version": "2.1.0", - "description": "Make a function mimic another one", - "license": "MIT", - "repository": "sindresorhus/mimic-fn", - "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": [ - "function", - "mimic", - "imitate", - "rename", - "copy", - "inherit", - "properties", - "name", - "func", - "fn", - "set", - "infer", - "change" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } + "_args": [ + [ + "mimic-fn@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mimic-fn@2.1.0", + "_id": "mimic-fn@2.1.0", + "_inBundle": false, + "_integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "_location": "/mem/mimic-fn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mimic-fn@2.1.0", + "name": "mimic-fn", + "escapedName": "mimic-fn", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/mem" + ], + "_resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/mimic-fn/issues" + }, + "description": "Make a function mimic another one", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/mimic-fn#readme", + "keywords": [ + "function", + "mimic", + "imitate", + "rename", + "copy", + "inherit", + "properties", + "name", + "func", + "fn", + "set", + "infer", + "change" + ], + "license": "MIT", + "name": "mimic-fn", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/mimic-fn.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mem/package.json b/admin/vue2/element-admin-v3/node_modules/mem/package.json index a74c1eace..4f8e74e8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/mem/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mem/package.json @@ -1,46 +1,82 @@ { - "name": "mem", - "version": "4.3.0", - "description": "Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input", - "license": "MIT", - "repository": "sindresorhus/mem", - "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": [ - "memoize", - "function", - "mem", - "memoization", - "cache", - "caching", - "optimize", - "performance", - "ttl", - "expire", - "promise" - ], - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "delay": "^4.1.0", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } + "_args": [ + [ + "mem@4.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mem@4.3.0", + "_id": "mem@4.3.0", + "_inBundle": false, + "_integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "_location": "/mem", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mem@4.3.0", + "name": "mem", + "escapedName": "mem", + "rawSpec": "4.3.0", + "saveSpec": null, + "fetchSpec": "4.3.0" + }, + "_requiredBy": [ + "/os-locale" + ], + "_resolved": "https://registry.nlark.com/mem/download/mem-4.3.0.tgz?cache=0&sync_timestamp=1618933830567&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", + "_spec": "4.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/mem/issues" + }, + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "description": "Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input", + "devDependencies": { + "ava": "^1.4.1", + "delay": "^4.1.0", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/mem#readme", + "keywords": [ + "memoize", + "function", + "mem", + "memoization", + "cache", + "caching", + "optimize", + "performance", + "ttl", + "expire", + "promise" + ], + "license": "MIT", + "name": "mem", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/mem.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "4.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/memory-fs/package.json b/admin/vue2/element-admin-v3/node_modules/memory-fs/package.json index 47b8c9cc1..ba0a24210 100644 --- a/admin/vue2/element-admin-v3/node_modules/memory-fs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/memory-fs/package.json @@ -1,33 +1,44 @@ { - "name": "memory-fs", - "version": "0.4.1", - "description": "A simple in-memory filesystem. Holds data in a javascript object.", - "main": "lib/MemoryFileSystem.js", - "directories": { - "test": "test" - }, - "files": [ - "lib/" + "_args": [ + [ + "memory-fs@0.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "mocha", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "travis": "npm run cover -- --report lcovonly" - }, - "repository": { - "type": "git", - "url": "https://github.com/webpack/memory-fs.git" + "_from": "memory-fs@0.4.1", + "_id": "memory-fs@0.4.1", + "_inBundle": false, + "_integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "_location": "/memory-fs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "memory-fs@0.4.1", + "name": "memory-fs", + "escapedName": "memory-fs", + "rawSpec": "0.4.1", + "saveSpec": null, + "fetchSpec": "0.4.1" }, - "keywords": [ - "fs", - "memory" + "_requiredBy": [ + "/webpack", + "/webpack-dev-middleware" ], - "author": "Tobias Koppers @sokra", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", + "_spec": "0.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, "bugs": { "url": "https://github.com/webpack/memory-fs/issues" }, - "homepage": "https://github.com/webpack/memory-fs", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "description": "A simple in-memory filesystem. Holds data in a javascript object.", "devDependencies": { "bl": "^1.0.0", "codecov.io": "^0.1.4", @@ -36,8 +47,28 @@ "mocha": "^1.20.1", "should": "^4.0.4" }, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } + "directories": { + "test": "test" + }, + "files": [ + "lib/" + ], + "homepage": "https://github.com/webpack/memory-fs", + "keywords": [ + "fs", + "memory" + ], + "license": "MIT", + "main": "lib/MemoryFileSystem.js", + "name": "memory-fs", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/memory-fs.git" + }, + "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "test": "mocha", + "travis": "npm run cover -- --report lcovonly" + }, + "version": "0.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/meow/package.json b/admin/vue2/element-admin-v3/node_modules/meow/package.json index 2750de4c2..061d7c932 100644 --- a/admin/vue2/element-admin-v3/node_modules/meow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/meow/package.json @@ -1,23 +1,67 @@ { - "name": "meow", - "version": "3.7.0", - "description": "CLI app helper", - "license": "MIT", - "repository": "sindresorhus/meow", + "_args": [ + [ + "meow@3.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "meow@3.7.0", + "_id": "meow@3.7.0", + "_inBundle": false, + "_integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "_location": "/meow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "meow@3.7.0", + "name": "meow", + "escapedName": "meow", + "rawSpec": "3.7.0", + "saveSpec": null, + "fetchSpec": "3.7.0" + }, + "_requiredBy": [ + "/node-sass" + ], + "_resolved": "https://registry.nlark.com/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1623137159863&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz", + "_spec": "3.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/meow/issues" + }, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "description": "CLI app helper", + "devDependencies": { + "ava": "*", + "execa": "^0.1.1", + "indent-string": "^2.1.0", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/meow#readme", "keywords": [ "cli", "bin", @@ -37,22 +81,14 @@ "cmd", "console" ], - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "license": "MIT", + "name": "meow", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/meow.git" }, - "devDependencies": { - "ava": "*", - "execa": "^0.1.1", - "indent-string": "^2.1.0", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "3.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/merge-descriptors/package.json b/admin/vue2/element-admin-v3/node_modules/merge-descriptors/package.json index 514cdbd81..a3f227411 100644 --- a/admin/vue2/element-admin-v3/node_modules/merge-descriptors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/merge-descriptors/package.json @@ -1,19 +1,51 @@ { - "name": "merge-descriptors", - "description": "Merge objects using descriptors", - "version": "1.0.1", + "_args": [ + [ + "merge-descriptors@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "merge-descriptors@1.0.1", + "_id": "merge-descriptors@1.0.1", + "_inBundle": false, + "_integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "_location": "/merge-descriptors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "merge-descriptors@1.0.1", + "name": "merge-descriptors", + "escapedName": "merge-descriptors", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jonathan Ong", "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/component/merge-descriptors/issues" }, "contributors": [ - "Douglas Christopher Wilson ", - "Mike Grabowski " + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Mike Grabowski", + "email": "grabbou@gmail.com" + } ], - "license": "MIT", - "repository": "component/merge-descriptors", + "description": "Merge objects using descriptors", "devDependencies": { "istanbul": "0.4.1", "mocha": "1.21.5" @@ -24,9 +56,17 @@ "README.md", "index.js" ], + "homepage": "https://github.com/component/merge-descriptors#readme", + "license": "MIT", + "name": "merge-descriptors", + "repository": { + "type": "git", + "url": "git+https://github.com/component/merge-descriptors.git" + }, "scripts": { "test": "mocha --reporter spec --bail --check-leaks test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/merge-options/package.json b/admin/vue2/element-admin-v3/node_modules/merge-options/package.json index 85a57174d..5f7586410 100644 --- a/admin/vue2/element-admin-v3/node_modules/merge-options/package.json +++ b/admin/vue2/element-admin-v3/node_modules/merge-options/package.json @@ -1,25 +1,60 @@ { - "name": "merge-options", - "version": "1.0.1", - "description": "Merge Option Objects", - "license": "MIT", - "repository": "schnittstabil/merge-options", + "_args": [ + [ + "merge-options@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "merge-options@1.0.1", + "_id": "merge-options@1.0.1", + "_inBundle": false, + "_integrity": "sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=", + "_location": "/merge-options", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "merge-options@1.0.1", + "name": "merge-options", + "escapedName": "merge-options", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/posthtml-svg-mode", + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz?cache=0&sync_timestamp=1606147071422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-options%2Fdownload%2Fmerge-options-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Michael Mayer", "email": "michael@schnittstabil.de", "url": "schnittstabil.de" }, + "bugs": { + "url": "https://github.com/schnittstabil/merge-options/issues" + }, + "dependencies": { + "is-plain-obj": "^1.1" + }, + "description": "Merge Option Objects", + "devDependencies": { + "ava": "^0.25", + "coveralls": "^3.0", + "nyc": "^11.7", + "rimraf": "^2.5", + "xo": "^0.20" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && nyc ava", - "clean": "rimraf .nyc_output/ coverage/", - "coverage-html": "nyc ava && nyc report --reporter=html" - }, "files": [ "index.js" ], + "homepage": "https://github.com/schnittstabil/merge-options#readme", "keywords": [ "merge", "options", @@ -29,14 +64,16 @@ "extend", "clone" ], - "devDependencies": { - "ava": "^0.25", - "coveralls": "^3.0", - "nyc": "^11.7", - "rimraf": "^2.5", - "xo": "^0.20" + "license": "MIT", + "name": "merge-options", + "repository": { + "type": "git", + "url": "git+https://github.com/schnittstabil/merge-options.git" }, - "dependencies": { - "is-plain-obj": "^1.1" - } + "scripts": { + "clean": "rimraf .nyc_output/ coverage/", + "coverage-html": "nyc ava && nyc report --reporter=html", + "test": "xo && nyc ava" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/merge-source-map/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/merge-source-map/node_modules/source-map/package.json index 24663417e..6e38d6d62 100644 --- a/admin/vue2/element-admin-v3/node_modules/merge-source-map/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/merge-source-map/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/merge-source-map/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/merge-source-map" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/merge-source-map/package.json b/admin/vue2/element-admin-v3/node_modules/merge-source-map/package.json index 167150558..422862259 100644 --- a/admin/vue2/element-admin-v3/node_modules/merge-source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/merge-source-map/package.json @@ -1,29 +1,44 @@ { - "name": "merge-source-map", - "version": "1.1.0", - "description": "Merge old source map and new source map in multi-transform flow", - "main": "index.js", - "scripts": { - "test": "nyc tape test/*.js", - "lint": "eslint index.js 'test/**/*.js'", - "version": "npm run lint && npm run test" + "_args": [ + [ + "merge-source-map@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "merge-source-map@1.1.0", + "_id": "merge-source-map@1.1.0", + "_inBundle": false, + "_integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "_location": "/merge-source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "merge-source-map@1.1.0", + "name": "merge-source-map", + "escapedName": "merge-source-map", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "repository": { - "type": "git", - "url": "git+https://github.com/keik/merge-source-map.git" + "_requiredBy": [ + "/@vue/component-compiler-utils" + ], + "_resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "keik", + "email": "k4t0.kei@gmail.com" }, - "author": "keik ", - "license": "MIT", "bugs": { "url": "https://github.com/keik/merge-source-map/issues" }, - "keywords": [ - "sourcemap", - "source-map" - ], "dependencies": { "source-map": "^0.6.1" }, + "description": "Merge old source map and new source map in multi-transform flow", "devDependencies": { "babel-core": "^6.25.0", "babel-plugin-syntax-object-rest-spread": "^6.13.0", @@ -38,5 +53,23 @@ "nyc": "^8.4.0", "tape": "^4.6.3" }, - "files": [] + "files": [], + "homepage": "https://github.com/keik/merge-source-map#readme", + "keywords": [ + "sourcemap", + "source-map" + ], + "license": "MIT", + "main": "index.js", + "name": "merge-source-map", + "repository": { + "type": "git", + "url": "git+https://github.com/keik/merge-source-map.git" + }, + "scripts": { + "lint": "eslint index.js 'test/**/*.js'", + "test": "nyc tape test/*.js", + "version": "npm run lint && npm run test" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/methods/package.json b/admin/vue2/element-admin-v3/node_modules/methods/package.json index c4ce6f053..7a9dcb9c4 100644 --- a/admin/vue2/element-admin-v3/node_modules/methods/package.json +++ b/admin/vue2/element-admin-v3/node_modules/methods/package.json @@ -1,36 +1,82 @@ { - "name": "methods", - "description": "HTTP methods that node supports", - "version": "1.1.2", + "_args": [ + [ + "methods@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "methods@1.1.2", + "_id": "methods@1.1.2", + "_inBundle": false, + "_integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "_location": "/methods", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "methods@1.1.2", + "name": "methods", + "escapedName": "methods", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "http": false + }, + "bugs": { + "url": "https://github.com/jshttp/methods/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)", - "TJ Holowaychuk (http://tjholowaychuk.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + } ], - "license": "MIT", - "repository": "jshttp/methods", + "description": "HTTP methods that node supports", "devDependencies": { "istanbul": "0.4.1", "mocha": "1.21.5" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "index.js", "HISTORY.md", "LICENSE" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/methods#readme", + "keywords": [ + "http", + "methods" + ], + "license": "MIT", + "name": "methods", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/methods.git" }, "scripts": { "test": "mocha --reporter spec --bail --check-leaks test/", "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/" }, - "browser": { - "http": false - }, - "keywords": [ - "http", - "methods" - ] + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/micromatch/package.json b/admin/vue2/element-admin-v3/node_modules/micromatch/package.json index 44751558d..f1e6c162c 100644 --- a/admin/vue2/element-admin-v3/node_modules/micromatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/micromatch/package.json @@ -1,40 +1,96 @@ { - "name": "micromatch", - "description": "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.", - "version": "3.1.10", - "homepage": "https://github.com/micromatch/micromatch", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Amila Welihinda (amilajack.com)", - "Bogdan Chadkin (https://github.com/TrySound)", - "Brian Woodward (https://twitter.com/doowb)", - "Devon Govett (http://badassjs.com)", - "Elan Shanker (https://github.com/es128)", - "Fabrício Matté (https://ultcombo.js.org)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Martin Kolárik (https://kolarik.sk)", - "Olsten Larck (https://i.am.charlike.online)", - "Paul Miller (paulmillr.com)", - "Tom Byrer (https://github.com/tomByrer)", - "Tyler Akins (http://rumkin.com)", - "(https://github.com/DianeLooney)" + "_args": [ + [ + "micromatch@3.1.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/micromatch", - "bugs": { - "url": "https://github.com/micromatch/micromatch/issues" + "_from": "micromatch@3.1.10", + "_id": "micromatch@3.1.10", + "_inBundle": false, + "_integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "_location": "/micromatch", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "micromatch@3.1.10", + "name": "micromatch", + "escapedName": "micromatch", + "rawSpec": "3.1.10", + "saveSpec": null, + "fetchSpec": "3.1.10" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requiredBy": [ + "/anymatch", + "/http-proxy-middleware", + "/lint-staged", + "/readdirp", + "/webpack" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", + "_spec": "3.1.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/micromatch/issues" }, + "contributors": [ + { + "name": "Amila Welihinda", + "url": "amilajack.com" + }, + { + "name": "Bogdan Chadkin", + "url": "https://github.com/TrySound" + }, + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Devon Govett", + "url": "http://badassjs.com" + }, + { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + { + "name": "Fabrício Matté", + "url": "https://ultcombo.js.org" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Martin Kolárik", + "url": "https://kolarik.sk" + }, + { + "name": "Olsten Larck", + "url": "https://i.am.charlike.online" + }, + { + "name": "Paul Miller", + "url": "paulmillr.com" + }, + { + "name": "Tom Byrer", + "url": "https://github.com/tomByrer" + }, + { + "name": "Tyler Akins", + "url": "http://rumkin.com" + }, + { + "url": "https://github.com/DianeLooney" + } + ], "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -50,6 +106,7 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" }, + "description": "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.", "devDependencies": { "bash-match": "^1.0.2", "for-own": "^1.0.0", @@ -64,6 +121,14 @@ "mocha": "^3.5.3", "multimatch": "^2.1.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/micromatch/micromatch", "keywords": [ "bash", "expand", @@ -93,6 +158,7 @@ "shell", "wildcard" ], + "license": "MIT", "lintDeps": { "dependencies": { "options": { @@ -111,6 +177,15 @@ } } }, + "main": "index.js", + "name": "micromatch", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/micromatch.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": "collapsible", "layout": "default", @@ -143,5 +218,6 @@ "multimatch", "snapdragon" ] - } + }, + "version": "3.1.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/miller-rabin/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/miller-rabin/node_modules/bn.js/package.json index 098b805f9..da897bfb4 100644 --- a/admin/vue2/element-admin-v3/node_modules/miller-rabin/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/miller-rabin/node_modules/bn.js/package.json @@ -1,17 +1,49 @@ { - "name": "bn.js", - "version": "4.12.0", - "description": "Big number implementation in pure javascript", - "main": "lib/bn.js", - "scripts": { - "lint": "semistandard", - "unit": "mocha --reporter=spec test/*-test.js", - "test": "npm run lint && npm run unit" + "_args": [ + [ + "bn.js@4.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@4.12.0", + "_id": "bn.js@4.12.0", + "_inBundle": false, + "_integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "_location": "/miller-rabin/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@4.12.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "4.12.0", + "saveSpec": null, + "fetchSpec": "4.12.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" + "_requiredBy": [ + "/miller-rabin" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "_spec": "4.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, + "description": "Big number implementation in pure javascript", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "semistandard": "^7.0.4" + }, + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "BigNum", @@ -19,18 +51,17 @@ "Modulo", "Montgomery" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" + "main": "lib/bn.js", + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, - "homepage": "https://github.com/indutny/bn.js", - "browser": { - "buffer": false + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run unit", + "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "semistandard": "^7.0.4" - } + "version": "4.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/miller-rabin/package.json b/admin/vue2/element-admin-v3/node_modules/miller-rabin/package.json index af0f80573..8d0ccafd8 100644 --- a/admin/vue2/element-admin-v3/node_modules/miller-rabin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/miller-rabin/package.json @@ -1,32 +1,65 @@ { - "name": "miller-rabin", - "version": "4.0.1", - "description": "Miller Rabin algorithm for primality test", - "main": "lib/mr.js", - "bin": "bin/miller-rabin", - "scripts": { - "test": "mocha --reporter=spec test/**/*-test.js" + "_args": [ + [ + "miller-rabin@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "miller-rabin@4.0.1", + "_id": "miller-rabin@4.0.1", + "_inBundle": false, + "_integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "_location": "/miller-rabin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "miller-rabin@4.0.1", + "name": "miller-rabin", + "escapedName": "miller-rabin", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/miller-rabin" + "_requiredBy": [ + "/diffie-hellman" + ], + "_resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + }, + "bugs": { + "url": "https://github.com/indutny/miller-rabin/issues" + }, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "description": "Miller Rabin algorithm for primality test", + "devDependencies": { + "mocha": "^2.0.1" }, + "homepage": "https://github.com/indutny/miller-rabin", "keywords": [ "prime", "miller-rabin", "bignumber" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/miller-rabin/issues" + "main": "lib/mr.js", + "name": "miller-rabin", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/miller-rabin.git" }, - "homepage": "https://github.com/indutny/miller-rabin", - "devDependencies": { - "mocha": "^2.0.1" + "scripts": { + "test": "mocha --reporter=spec test/**/*-test.js" }, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/mime-db/package.json b/admin/vue2/element-admin-v3/node_modules/mime-db/package.json index d4395a727..5f5335b72 100644 --- a/admin/vue2/element-admin-v3/node_modules/mime-db/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mime-db/package.json @@ -1,23 +1,53 @@ { - "name": "mime-db", - "description": "Media Type Database", - "version": "1.48.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)", - "Robert Kieffer (http://github.com/broofa)" + "_args": [ + [ + "mime-db@1.48.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "mime", - "db", - "type", - "types", - "database", - "charset", - "charsets" + "_from": "mime-db@1.48.0", + "_id": "mime-db@1.48.0", + "_inBundle": false, + "_integrity": "sha1-41sxBF3X6to6qtU37YijOvvvLR0=", + "_location": "/mime-db", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime-db@1.48.0", + "name": "mime-db", + "escapedName": "mime-db", + "rawSpec": "1.48.0", + "saveSpec": null, + "fetchSpec": "1.48.0" + }, + "_requiredBy": [ + "/compressible", + "/mime-types" ], - "repository": "jshttp/mime-db", + "_resolved": "https://registry.nlark.com/mime-db/download/mime-db-1.48.0.tgz?cache=0&sync_timestamp=1622433556078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-db%2Fdownload%2Fmime-db-1.48.0.tgz", + "_spec": "1.48.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/mime-db/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + { + "name": "Robert Kieffer", + "email": "robert@broofa.com", + "url": "http://github.com/broofa" + } + ], + "description": "Media Type Database", "devDependencies": { "bluebird": "3.7.2", "co": "4.6.0", @@ -36,6 +66,9 @@ "raw-body": "2.4.1", "stream-to-array": "2.3.0" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "HISTORY.md", "LICENSE", @@ -43,8 +76,21 @@ "db.json", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/mime-db#readme", + "keywords": [ + "mime", + "db", + "type", + "types", + "database", + "charset", + "charsets" + ], + "license": "MIT", + "name": "mime-db", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/mime-db.git" }, "scripts": { "build": "node scripts/build", @@ -55,5 +101,6 @@ "test-cov": "nyc --reporter=html --reporter=text npm test", "update": "npm run fetch && npm run build", "version": "node scripts/version-history.js && git add HISTORY.md" - } + }, + "version": "1.48.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mime-types/package.json b/admin/vue2/element-admin-v3/node_modules/mime-types/package.json index a271000ec..4b2547075 100644 --- a/admin/vue2/element-admin-v3/node_modules/mime-types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mime-types/package.json @@ -1,21 +1,59 @@ { - "name": "mime-types", - "description": "The ultimate javascript content-type utility.", - "version": "2.1.31", - "contributors": [ - "Douglas Christopher Wilson ", - "Jeremiah Senkpiel (https://searchbeam.jit.su)", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "mime-types@2.1.31", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "mime", - "types" + "_from": "mime-types@2.1.31", + "_id": "mime-types@2.1.31", + "_inBundle": false, + "_integrity": "sha1-oA12t0MXxh+cLbIhi46fjpxcnms=", + "_location": "/mime-types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime-types@2.1.31", + "name": "mime-types", + "escapedName": "mime-types", + "rawSpec": "2.1.31", + "saveSpec": null, + "fetchSpec": "2.1.31" + }, + "_requiredBy": [ + "/accepts", + "/form-data", + "/request", + "/serve-index", + "/type-is" + ], + "_resolved": "https://registry.nlark.com/mime-types/download/mime-types-2.1.31.tgz?cache=0&sync_timestamp=1622569304088&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.31.tgz", + "_spec": "2.1.31", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/mime-types/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jeremiah Senkpiel", + "email": "fishrock123@rocketmail.com", + "url": "https://searchbeam.jit.su" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "repository": "jshttp/mime-types", "dependencies": { "mime-db": "1.48.0" }, + "description": "The ultimate javascript content-type utility.", "devDependencies": { "eslint": "7.27.0", "eslint-config-standard": "14.1.1", @@ -27,18 +65,30 @@ "mocha": "8.4.0", "nyc": "15.1.0" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "HISTORY.md", "LICENSE", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/mime-types#readme", + "keywords": [ + "mime", + "types" + ], + "license": "MIT", + "name": "mime-types", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/mime-types.git" }, "scripts": { "lint": "eslint .", "test": "mocha --reporter spec test/test.js", "test-ci": "nyc --reporter=lcov --reporter=text npm test", "test-cov": "nyc --reporter=html --reporter=text npm test" - } + }, + "version": "2.1.31" } diff --git a/admin/vue2/element-admin-v3/node_modules/mime/package.json b/admin/vue2/element-admin-v3/node_modules/mime/package.json index 6bd24bc53..4e10cce9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/mime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mime/package.json @@ -1,44 +1,77 @@ { + "_args": [ + [ + "mime@1.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mime@1.6.0", + "_id": "mime@1.6.0", + "_inBundle": false, + "_integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "_location": "/mime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime@1.6.0", + "name": "mime", + "escapedName": "mime", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" + }, + "_requiredBy": [ + "/postcss-url", + "/send" + ], + "_resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz", + "_spec": "1.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Robert Kieffer", - "url": "http://github.com/broofa", - "email": "robert@broofa.com" + "email": "robert@broofa.com", + "url": "http://github.com/broofa" }, "bin": { "mime": "cli.js" }, - "engines": { - "node": ">=4" + "bugs": { + "url": "https://github.com/broofa/node-mime/issues" }, "contributors": [ { "name": "Benjamin Thomas", - "url": "http://github.com/bentomas", - "email": "benjamin@benjaminthomas.org" + "email": "benjamin@benjaminthomas.org", + "url": "http://github.com/bentomas" } ], - "description": "A comprehensive library for mime-type mapping", - "license": "MIT", "dependencies": {}, + "description": "A comprehensive library for mime-type mapping", "devDependencies": { "github-release-notes": "0.13.1", "mime-db": "1.31.0", "mime-score": "1.1.0" }, - "scripts": { - "prepare": "node src/build.js", - "changelog": "gren changelog --tags=all --generate --override", - "test": "node src/test.js" + "engines": { + "node": ">=4" }, + "homepage": "https://github.com/broofa/node-mime#readme", "keywords": [ "util", "mime" ], + "license": "MIT", "main": "mime.js", "name": "mime", "repository": { - "url": "https://github.com/broofa/node-mime", + "url": "git+https://github.com/broofa/node-mime.git", "type": "git" }, + "scripts": { + "changelog": "gren changelog --tags=all --generate --override", + "prepare": "node src/build.js", + "test": "node src/test.js" + }, "version": "1.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mimic-fn/package.json b/admin/vue2/element-admin-v3/node_modules/mimic-fn/package.json index f6c229946..20e672e62 100644 --- a/admin/vue2/element-admin-v3/node_modules/mimic-fn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mimic-fn/package.json @@ -1,40 +1,76 @@ { - "name": "mimic-fn", - "version": "1.2.0", - "description": "Make a function mimic another one", - "license": "MIT", - "repository": "sindresorhus/mimic-fn", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "function", - "mimic", - "imitate", - "rename", - "copy", - "inherit", - "properties", - "name", - "func", - "fn", - "set", - "infer", - "change" - ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "mimic-fn@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mimic-fn@1.2.0", + "_id": "mimic-fn@1.2.0", + "_inBundle": false, + "_integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "_location": "/mimic-fn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mimic-fn@1.2.0", + "name": "mimic-fn", + "escapedName": "mimic-fn", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/onetime" + ], + "_resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/mimic-fn/issues" + }, + "description": "Make a function mimic another one", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/mimic-fn#readme", + "keywords": [ + "function", + "mimic", + "imitate", + "rename", + "copy", + "inherit", + "properties", + "name", + "func", + "fn", + "set", + "infer", + "change" + ], + "license": "MIT", + "name": "mimic-fn", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/mimic-fn.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/min-document/package.json b/admin/vue2/element-admin-v3/node_modules/min-document/package.json index 807490209..2fd4da175 100644 --- a/admin/vue2/element-admin-v3/node_modules/min-document/package.json +++ b/admin/vue2/element-admin-v3/node_modules/min-document/package.json @@ -1,43 +1,77 @@ { - "name": "min-document", - "version": "2.19.0", - "description": "A minimal DOM implementation", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/min-document.git", - "main": "index", - "homepage": "https://github.com/Raynos/min-document", - "contributors": [ - { - "name": "Raynos" - } + "_args": [ + [ + "min-document@2.19.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "min-document@2.19.0", + "_id": "min-document@2.19.0", + "_inBundle": false, + "_integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "_location": "/min-document", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "min-document@2.19.0", + "name": "min-document", + "escapedName": "min-document", + "rawSpec": "2.19.0", + "saveSpec": null, + "fetchSpec": "2.19.0" + }, + "_requiredBy": [ + "/global", + "/videojs-flash/global" ], + "_resolved": "https://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz", + "_spec": "2.19.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, "bugs": { "url": "https://github.com/Raynos/min-document/issues", "email": "raynos2@gmail.com" }, + "contributors": [ + { + "name": "Raynos" + } + ], "dependencies": { "dom-walk": "^0.1.0" }, + "description": "A minimal DOM implementation", "devDependencies": { - "run-browser": "git://github.com/Raynos/run-browser", + "run-browser": "git://github.com/Raynos/run-browser.git", "tap-dot": "^0.2.1", "tap-spec": "^0.1.8", "tape": "^2.12.3" }, + "homepage": "https://github.com/Raynos/min-document", + "keywords": [], "licenses": [ { "type": "MIT", "url": "http://github.com/Raynos/min-document/raw/master/LICENSE" } ], + "main": "index", + "name": "min-document", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/min-document.git" + }, "scripts": { - "test": "node ./test/index.js | tap-spec", - "dot": "node ./test/index.js | tap-dot", - "cover": "istanbul cover --report none --print detail ./test/index.js", - "view-cover": "istanbul report html && google-chrome ./coverage/index.html", "browser": "run-browser test/index.js", - "phantom": "run-browser test/index.js -b | tap-spec" + "cover": "istanbul cover --report none --print detail ./test/index.js", + "dot": "node ./test/index.js | tap-dot", + "phantom": "run-browser test/index.js -b | tap-spec", + "test": "node ./test/index.js | tap-spec", + "view-cover": "istanbul report html && google-chrome ./coverage/index.html" }, "testling": { "files": "test/index.js", @@ -54,5 +88,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "2.19.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mini-css-extract-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/mini-css-extract-plugin/package.json index 629c606ee..70907539d 100644 --- a/admin/vue2/element-admin-v3/node_modules/mini-css-extract-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mini-css-extract-plugin/package.json @@ -1,52 +1,45 @@ { - "name": "mini-css-extract-plugin", - "version": "0.4.1", - "description": "desc", - "license": "MIT", - "repository": "webpack-contrib/mini-css-extract-plugin", - "author": "Tobias Koppers @sokra", - "homepage": "https://github.com/webpack-contrib/mini-css-extract-plugin", - "bugs": "https://github.com/webpack-contrib/mini-css-extract-plugin/issues", - "bin": "", - "main": "dist/cjs.js", - "engines": { - "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" - }, - "scripts": { - "start": "npm run build -- -w", - "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", - "clean": "del-cli dist", - "commitlint": "commitlint", - "commitmsg": "commitlint -e $GIT_PARAMS", - "lint": "eslint --cache src test", - "ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", - "lint-staged": "lint-staged", - "prebuild": "npm run clean", - "prepublish": "npm run build", - "release": "standard-version", - "release:ci": "conventional-github-releaser -p angular", - "release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", - "security": "nsp check", - "test": "jest", - "test:watch": "jest --watch", - "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", - "test:manual": "webpack-dev-server test/manual/src/index.js --open --config test/manual/webpack.config.js", - "ci:lint": "npm run lint && npm run security", - "ci:test": "npm run test -- --runInBand", - "ci:coverage": "npm run test:coverage -- --runInBand", - "defaults": "webpack-defaults" + "_args": [ + [ + "mini-css-extract-plugin@0.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mini-css-extract-plugin@0.4.1", + "_id": "mini-css-extract-plugin@0.4.1", + "_inBundle": false, + "_integrity": "sha1-0rz3e7JZa45L2SV+Q9P5Fkwuhss=", + "_location": "/mini-css-extract-plugin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mini-css-extract-plugin@0.4.1", + "name": "mini-css-extract-plugin", + "escapedName": "mini-css-extract-plugin", + "rawSpec": "0.4.1", + "saveSpec": null, + "fetchSpec": "0.4.1" }, - "files": [ - "dist" + "_requiredBy": [ + "#DEV:/" ], - "peerDependencies": { - "webpack": "^4.4.0" + "_resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.4.1.tgz", + "_spec": "0.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/mini-css-extract-plugin/issues" }, "dependencies": { "@webpack-contrib/schema-utils": "^1.0.0-beta.0", "loader-utils": "^1.1.0", "webpack-sources": "^1.1.0" }, + "description": "desc", "devDependencies": { "@commitlint/cli": "^6.1.3", "@commitlint/config-conventional": "^6.1.3", @@ -78,14 +71,56 @@ "webpack-defaults": "^2.3.0", "webpack-dev-server": "^3.1.1" }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/webpack-contrib/mini-css-extract-plugin", "keywords": [ "webpack" ], - "pre-commit": "lint-staged", + "license": "MIT", "lint-staged": { "*.js": [ "eslint --fix", "git add" ] - } + }, + "main": "dist/cjs.js", + "name": "mini-css-extract-plugin", + "peerDependencies": { + "webpack": "^4.4.0" + }, + "pre-commit": "lint-staged", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/mini-css-extract-plugin.git" + }, + "scripts": { + "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", + "ci:coverage": "npm run test:coverage -- --runInBand", + "ci:lint": "npm run lint && npm run security", + "ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", + "ci:test": "npm run test -- --runInBand", + "clean": "del-cli dist", + "commitlint": "commitlint", + "commitmsg": "commitlint -e $GIT_PARAMS", + "defaults": "webpack-defaults", + "lint": "eslint --cache src test", + "lint-staged": "lint-staged", + "prebuild": "npm run clean", + "prepublish": "npm run build", + "release": "standard-version", + "release:ci": "conventional-github-releaser -p angular", + "release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", + "security": "nsp check", + "start": "npm run build -- -w", + "test": "jest", + "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", + "test:manual": "webpack-dev-server test/manual/src/index.js --open --config test/manual/webpack.config.js", + "test:watch": "jest --watch" + }, + "version": "0.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/minimalistic-assert/package.json b/admin/vue2/element-admin-v3/node_modules/minimalistic-assert/package.json index f8de10d9d..2d42ca4dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/minimalistic-assert/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minimalistic-assert/package.json @@ -1,19 +1,52 @@ { - "name": "minimalistic-assert", - "version": "1.0.1", + "_args": [ + [ + "minimalistic-assert@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "minimalistic-assert@1.0.1", + "_id": "minimalistic-assert@1.0.1", + "_inBundle": false, + "_integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", + "_location": "/minimalistic-assert", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "minimalistic-assert@1.0.1", + "name": "minimalistic-assert", + "escapedName": "minimalistic-assert", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/asn1.js", + "/des.js", + "/elliptic", + "/hash.js", + "/hmac-drbg", + "/wbuf" + ], + "_resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": "", + "bugs": { + "url": "https://github.com/calvinmetcalf/minimalistic-assert/issues" + }, "description": "minimalistic-assert ===", + "homepage": "https://github.com/calvinmetcalf/minimalistic-assert", + "license": "ISC", "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, + "name": "minimalistic-assert", "repository": { "type": "git", - "url": "https://github.com/calvinmetcalf/minimalistic-assert.git" + "url": "git+https://github.com/calvinmetcalf/minimalistic-assert.git" }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/calvinmetcalf/minimalistic-assert/issues" + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/calvinmetcalf/minimalistic-assert" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/minimalistic-crypto-utils/package.json b/admin/vue2/element-admin-v3/node_modules/minimalistic-crypto-utils/package.json index bc4c79a47..50c9d9a22 100644 --- a/admin/vue2/element-admin-v3/node_modules/minimalistic-crypto-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minimalistic-crypto-utils/package.json @@ -1,27 +1,59 @@ { - "name": "minimalistic-crypto-utils", - "version": "1.0.1", - "description": "Minimalistic tools for JS crypto modules", - "main": "lib/utils.js", - "scripts": { - "test": "mocha --reporter=spec test/*-test.js" + "_args": [ + [ + "minimalistic-crypto-utils@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "minimalistic-crypto-utils@1.0.1", + "_id": "minimalistic-crypto-utils@1.0.1", + "_inBundle": false, + "_integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "_location": "/minimalistic-crypto-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "minimalistic-crypto-utils@1.0.1", + "name": "minimalistic-crypto-utils", + "escapedName": "minimalistic-crypto-utils", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/minimalistic-crypto-utils.git" + "_requiredBy": [ + "/elliptic", + "/hmac-drbg" + ], + "_resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/indutny/minimalistic-crypto-utils/issues" }, + "description": "Minimalistic tools for JS crypto modules", + "devDependencies": { + "mocha": "^3.2.0" + }, + "homepage": "https://github.com/indutny/minimalistic-crypto-utils#readme", "keywords": [ "minimalistic", "utils", "crypto" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/minimalistic-crypto-utils/issues" + "main": "lib/utils.js", + "name": "minimalistic-crypto-utils", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/minimalistic-crypto-utils.git" }, - "homepage": "https://github.com/indutny/minimalistic-crypto-utils#readme", - "devDependencies": { - "mocha": "^3.2.0" - } + "scripts": { + "test": "mocha --reporter=spec test/*-test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/minimatch/package.json b/admin/vue2/element-admin-v3/node_modules/minimatch/package.json index c4514c807..6b76443ac 100644 --- a/admin/vue2/element-admin-v3/node_modules/minimatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minimatch/package.json @@ -1,30 +1,71 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "name": "minimatch", - "description": "a glob matcher in javascript", - "version": "3.0.4", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" + "_args": [ + [ + "minimatch@3.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "minimatch@3.0.4", + "_id": "minimatch@3.0.4", + "_inBundle": false, + "_integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "_location": "/minimatch", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "minimatch@3.0.4", + "name": "minimatch", + "escapedName": "minimatch", + "rawSpec": "3.0.4", + "saveSpec": null, + "fetchSpec": "3.0.4" }, - "main": "minimatch.js", - "scripts": { - "test": "tap test/*.js --cov", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" + "_requiredBy": [ + "/babel-core", + "/copy-webpack-plugin", + "/eslint", + "/glob", + "/globule", + "/postcss-url" + ], + "_resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "_spec": "3.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" }, - "engines": { - "node": "*" + "bugs": { + "url": "https://github.com/isaacs/minimatch/issues" }, "dependencies": { "brace-expansion": "^1.1.7" }, + "description": "a glob matcher in javascript", "devDependencies": { "tap": "^10.3.2" }, - "license": "ISC", + "engines": { + "node": "*" + }, "files": [ "minimatch.js" - ] + ], + "homepage": "https://github.com/isaacs/minimatch#readme", + "license": "ISC", + "main": "minimatch.js", + "name": "minimatch", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/minimatch.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --cov" + }, + "version": "3.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/minimist/package.json b/admin/vue2/element-admin-v3/node_modules/minimist/package.json index c091d4137..4d347dd59 100644 --- a/admin/vue2/element-admin-v3/node_modules/minimist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minimist/package.json @@ -1,16 +1,66 @@ { - "name": "minimist", - "version": "1.2.5", + "_args": [ + [ + "minimist@1.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "minimist@1.2.5", + "_id": "minimist@1.2.5", + "_inBundle": false, + "_integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", + "_location": "/minimist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "minimist@1.2.5", + "name": "minimist", + "escapedName": "minimist", + "rawSpec": "1.2.5", + "saveSpec": null, + "fetchSpec": "1.2.5" + }, + "_requiredBy": [ + "/eslint-friendly-formatter", + "/loader-utils/json5", + "/meow", + "/mkdirp" + ], + "_resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "_spec": "1.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/minimist/issues" + }, "description": "parse argument options", - "main": "index.js", "devDependencies": { "covert": "^1.0.0", "tap": "~0.4.0", "tape": "^3.5.0" }, + "homepage": "https://github.com/substack/minimist", + "keywords": [ + "argv", + "getopt", + "parser", + "optimist" + ], + "license": "MIT", + "main": "index.js", + "name": "minimist", + "repository": { + "type": "git", + "url": "git://github.com/substack/minimist.git" + }, "scripts": { - "test": "tap test/*.js", - "coverage": "covert test/*.js" + "coverage": "covert test/*.js", + "test": "tap test/*.js" }, "testling": { "files": "test/*.js", @@ -25,21 +75,5 @@ "opera/12" ] }, - "repository": { - "type": "git", - "url": "git://github.com/substack/minimist.git" - }, - "homepage": "https://github.com/substack/minimist", - "keywords": [ - "argv", - "getopt", - "parser", - "optimist" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT" + "version": "1.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/minipass/node_modules/yallist/package.json b/admin/vue2/element-admin-v3/node_modules/minipass/node_modules/yallist/package.json index 8a083867d..8882d6369 100644 --- a/admin/vue2/element-admin-v3/node_modules/minipass/node_modules/yallist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minipass/node_modules/yallist/package.json @@ -1,8 +1,46 @@ { - "name": "yallist", - "version": "4.0.0", + "_args": [ + [ + "yallist@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yallist@4.0.0", + "_id": "yallist@4.0.0", + "_inBundle": false, + "_integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "_location": "/minipass/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yallist@4.0.0", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/minipass" + ], + "_resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "dependencies": {}, "description": "Yet Another Linked List", - "main": "yallist.js", + "devDependencies": { + "tap": "^12.1.0" + }, "directories": { "test": "test" }, @@ -10,20 +48,19 @@ "yallist.js", "iterator.js" ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", "repository": { "type": "git", "url": "git+https://github.com/isaacs/yallist.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/minipass/package.json b/admin/vue2/element-admin-v3/node_modules/minipass/package.json index 54f62d56d..1d82fd6bd 100644 --- a/admin/vue2/element-admin-v3/node_modules/minipass/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minipass/package.json @@ -1,39 +1,78 @@ { - "name": "minipass", - "version": "3.1.3", - "description": "minimal implementation of a PassThrough stream", - "main": "index.js", + "_args": [ + [ + "minipass@3.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "minipass@3.1.3", + "_id": "minipass@3.1.3", + "_inBundle": false, + "_integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", + "_location": "/minipass", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "minipass@3.1.3", + "name": "minipass", + "escapedName": "minipass", + "rawSpec": "3.1.3", + "saveSpec": null, + "fetchSpec": "3.1.3" + }, + "_requiredBy": [ + "/fs-minipass", + "/minizlib", + "/tar" + ], + "_resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", + "_spec": "3.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/minipass/issues" + }, "dependencies": { "yallist": "^4.0.0" }, + "description": "minimal implementation of a PassThrough stream", "devDependencies": { "end-of-stream": "^1.4.0", "tap": "^14.6.5", "through2": "^2.0.3" }, - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish --tag=next", - "postpublish": "git push origin --follow-tags" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/minipass.git" + "engines": { + "node": ">=8" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/isaacs/minipass#readme", "keywords": [ "passthrough", "stream" ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "license": "ISC", - "files": [ - "index.js" - ], + "main": "index.js", + "name": "minipass", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/minipass.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish --tag=next", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true }, - "engines": { - "node": ">=8" - } + "version": "3.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/minizlib/node_modules/yallist/package.json b/admin/vue2/element-admin-v3/node_modules/minizlib/node_modules/yallist/package.json index 8a083867d..339862e30 100644 --- a/admin/vue2/element-admin-v3/node_modules/minizlib/node_modules/yallist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minizlib/node_modules/yallist/package.json @@ -1,8 +1,46 @@ { - "name": "yallist", - "version": "4.0.0", + "_args": [ + [ + "yallist@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yallist@4.0.0", + "_id": "yallist@4.0.0", + "_inBundle": false, + "_integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "_location": "/minizlib/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yallist@4.0.0", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/minizlib" + ], + "_resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "dependencies": {}, "description": "Yet Another Linked List", - "main": "yallist.js", + "devDependencies": { + "tap": "^12.1.0" + }, "directories": { "test": "test" }, @@ -10,20 +48,19 @@ "yallist.js", "iterator.js" ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", "repository": { "type": "git", "url": "git+https://github.com/isaacs/yallist.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/minizlib/package.json b/admin/vue2/element-admin-v3/node_modules/minizlib/package.json index 98825a549..f81ed95ca 100644 --- a/admin/vue2/element-admin-v3/node_modules/minizlib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/minizlib/package.json @@ -1,22 +1,57 @@ { - "name": "minizlib", - "version": "2.1.2", - "description": "A small fast zlib stream built on [minipass](http://npm.im/minipass) and Node.js's zlib binding.", - "main": "index.js", + "_args": [ + [ + "minizlib@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "minizlib@2.1.2", + "_id": "minizlib@2.1.2", + "_inBundle": false, + "_integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "_location": "/minizlib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "minizlib@2.1.2", + "name": "minizlib", + "escapedName": "minizlib", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/tar" + ], + "_resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/minizlib/issues" + }, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, - "scripts": { - "test": "tap test/*.js --100 -J", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" + "description": "A small fast zlib stream built on [minipass](http://npm.im/minipass) and Node.js's zlib binding.", + "devDependencies": { + "tap": "^14.6.9" }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/minizlib.git" + "engines": { + "node": ">= 8" }, + "files": [ + "index.js", + "constants.js" + ], + "homepage": "https://github.com/isaacs/minizlib#readme", "keywords": [ "zlib", "gzip", @@ -27,16 +62,18 @@ "zip", "unzip" ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "license": "MIT", - "devDependencies": { - "tap": "^14.6.9" + "main": "index.js", + "name": "minizlib", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/minizlib.git" }, - "files": [ - "index.js", - "constants.js" - ], - "engines": { - "node": ">= 8" - } + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100 -J" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/mississippi/node_modules/pump/package.json b/admin/vue2/element-admin-v3/node_modules/mississippi/node_modules/pump/package.json index 0f921f6c0..eae774673 100644 --- a/admin/vue2/element-admin-v3/node_modules/mississippi/node_modules/pump/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mississippi/node_modules/pump/package.json @@ -1,24 +1,62 @@ { - "name": "pump", - "version": "2.0.1", - "repository": "git://github.com/mafintosh/pump.git", - "license": "MIT", - "description": "pipe streams together and close all of them if one of them closes", + "_args": [ + [ + "pump@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pump@2.0.1", + "_id": "pump@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "_location": "/mississippi/pump", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pump@2.0.1", + "name": "pump", + "escapedName": "pump", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, "browser": { "fs": false }, + "bugs": { + "url": "https://github.com/mafintosh/pump/issues" + }, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "description": "pipe streams together and close all of them if one of them closes", + "homepage": "https://github.com/mafintosh/pump#readme", "keywords": [ "streams", "pipe", "destroy", "callback" ], - "author": "Mathias Buus Madsen ", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "license": "MIT", + "name": "pump", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/pump.git" }, "scripts": { "test": "node test-browser.js && node test-node.js" - } + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/mississippi/package.json b/admin/vue2/element-admin-v3/node_modules/mississippi/package.json index 188a16615..fd82fb1b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/mississippi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mississippi/package.json @@ -1,13 +1,41 @@ { - "name": "mississippi", - "version": "2.0.0", - "description": "a collection of useful streams", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "mississippi@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mississippi@2.0.0", + "_id": "mississippi@2.0.0", + "_inBundle": false, + "_integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "_location": "/mississippi", + "_phantomChildren": { + "end-of-stream": "1.4.4", + "once": "1.4.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "mississippi@2.0.0", + "name": "mississippi", + "escapedName": "mississippi", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/cacache" + ], + "_resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "max ogden" + }, + "bugs": { + "url": "https://github.com/maxogden/mississippi/issues" }, - "author": "max ogden", - "license": "BSD-2-Clause", "dependencies": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -20,16 +48,21 @@ "stream-each": "^1.1.0", "through2": "^2.0.0" }, + "description": "a collection of useful streams", "devDependencies": {}, + "engines": { + "node": ">=4.0.0" + }, + "homepage": "https://github.com/maxogden/mississippi#readme", + "license": "BSD-2-Clause", + "main": "index.js", + "name": "mississippi", "repository": { "type": "git", "url": "git+https://github.com/maxogden/mississippi.git" }, - "engines": { - "node": ">=4.0.0" - }, - "bugs": { - "url": "https://github.com/maxogden/mississippi/issues" + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/maxogden/mississippi#readme" + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/mitt/package.json b/admin/vue2/element-admin-v3/node_modules/mitt/package.json index 6f5c3a825..1ef7b6aec 100644 --- a/admin/vue2/element-admin-v3/node_modules/mitt/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mitt/package.json @@ -1,60 +1,40 @@ { - "name": "mitt", - "version": "1.1.2", - "description": "Tiny 200b functional Event Emitter / pubsub.", - "jsnext:main": "dist/mitt.es.js", - "module": "dist/mitt.es.js", - "main": "dist/mitt.js", - "umd:main": "dist/mitt.umd.js", - "scripts": { - "bump": "standard-version", - "testonly": "mocha --compilers js:babel-register test/**/*.js", - "lint": "eslint src test", - "test": "flow && npm run lint && npm run testonly", - "build": "npm-run-all --silent clean -p rollup -p minify:* -s docs size", - "clean": "rimraf dist", - "rollup": "rollup -c", - "minify:cjs": "uglifyjs $npm_package_main -cm toplevel -o $npm_package_main -p relative --in-source-map ${npm_package_main}.map --source-map ${npm_package_main}.map", - "minify:umd": "uglifyjs $npm_package_umd_main -cm -o $npm_package_umd_main -p relative --in-source-map ${npm_package_umd_main}.map --source-map ${npm_package_umd_main}.map", - "docs": "documentation readme src/index.js --section API -q", - "size": "echo \"Gzipped Size: $(strip-json-comments --no-whitespace $npm_package_main | gzip-size | pretty-bytes)\"", - "release": "npm run build -s && npm run bump && git push --follow-tags origin master && npm publish" + "_args": [ + [ + "mitt@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mitt@1.1.2", + "_id": "mitt@1.1.2", + "_inBundle": false, + "_integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", + "_location": "/mitt", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mitt@1.1.2", + "name": "mitt", + "escapedName": "mitt", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" }, - "repository": "developit/mitt", - "keywords": [ - "events", - "eventemitter", - "pubsub" + "_requiredBy": [ + "/svg-baker-runtime" ], - "homepage": "https://github.com/developit/mitt", + "_resolved": "https://registry.npm.taobao.org/mitt/download/mitt-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "Jason Miller " ], - "license": "MIT", - "files": [ - "src", - "dist", - "mitt.d.ts" - ], - "eslintConfig": { - "parser": "babel-eslint", - "extends": "eslint:recommended", - "env": { - "browser": true, - "mocha": true, - "es6": true - }, - "globals": { - "expect": true - }, - "rules": { - "semi": [ - 2, - "always" - ] - } + "bugs": { + "url": "https://github.com/developit/mitt/issues" }, - "typings": "./mitt.d.ts", + "description": "Tiny 200b functional Event Emitter / pubsub.", "devDependencies": { "babel-core": "^6.9.1", "babel-eslint": "^7.1.1", @@ -79,5 +59,60 @@ "standard-version": "^4.0.0", "strip-json-comments-cli": "^1.0.1", "uglify-js": "^2.6.2" - } + }, + "eslintConfig": { + "parser": "babel-eslint", + "extends": "eslint:recommended", + "env": { + "browser": true, + "mocha": true, + "es6": true + }, + "globals": { + "expect": true + }, + "rules": { + "semi": [ + 2, + "always" + ] + } + }, + "files": [ + "src", + "dist", + "mitt.d.ts" + ], + "homepage": "https://github.com/developit/mitt", + "jsnext:main": "dist/mitt.es.js", + "keywords": [ + "events", + "eventemitter", + "pubsub" + ], + "license": "MIT", + "main": "dist/mitt.js", + "module": "dist/mitt.es.js", + "name": "mitt", + "repository": { + "type": "git", + "url": "git+https://github.com/developit/mitt.git" + }, + "scripts": { + "build": "npm-run-all --silent clean -p rollup -p minify:* -s docs size", + "bump": "standard-version", + "clean": "rimraf dist", + "docs": "documentation readme src/index.js --section API -q", + "lint": "eslint src test", + "minify:cjs": "uglifyjs $npm_package_main -cm toplevel -o $npm_package_main -p relative --in-source-map ${npm_package_main}.map --source-map ${npm_package_main}.map", + "minify:umd": "uglifyjs $npm_package_umd_main -cm -o $npm_package_umd_main -p relative --in-source-map ${npm_package_umd_main}.map --source-map ${npm_package_umd_main}.map", + "release": "npm run build -s && npm run bump && git push --follow-tags origin master && npm publish", + "rollup": "rollup -c", + "size": "echo \"Gzipped Size: $(strip-json-comments --no-whitespace $npm_package_main | gzip-size | pretty-bytes)\"", + "test": "flow && npm run lint && npm run testonly", + "testonly": "mocha --compilers js:babel-register test/**/*.js" + }, + "typings": "./mitt.d.ts", + "umd:main": "dist/mitt.umd.js", + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/mixin-deep/node_modules/is-extendable/package.json b/admin/vue2/element-admin-v3/node_modules/mixin-deep/node_modules/is-extendable/package.json index 2aaab65a8..5c7c9f2ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/mixin-deep/node_modules/is-extendable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mixin-deep/node_modules/is-extendable/package.json @@ -1,33 +1,55 @@ { - "name": "is-extendable", - "description": "Returns true if a value is a plain object, array or function.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/is-extendable", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-extendable", - "bugs": { - "url": "https://github.com/jonschlinkert/is-extendable/issues" + "_args": [ + [ + "is-extendable@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-extendable@1.0.1", + "_id": "is-extendable@1.0.1", + "_inBundle": false, + "_integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "_location": "/mixin-deep/is-extendable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-extendable@1.0.1", + "name": "is-extendable", + "escapedName": "is-extendable", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "license": "MIT", - "files": [ - "index.js", - "index.d.ts" + "_requiredBy": [ + "/mixin-deep" ], - "main": "index.js", - "types": "index.d.ts", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-extendable/issues" }, "dependencies": { "is-plain-object": "^2.0.4" }, + "description": "Returns true if a value is a plain object, array or function.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.4.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/jonschlinkert/is-extendable", "keywords": [ "array", "assign", @@ -42,6 +64,17 @@ "regex", "test" ], + "license": "MIT", + "main": "index.js", + "name": "is-extendable", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-extendable.git" + }, + "scripts": { + "test": "mocha" + }, + "types": "index.d.ts", "verb": { "related": { "list": [ @@ -63,5 +96,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/mixin-deep/package.json b/admin/vue2/element-admin-v3/node_modules/mixin-deep/package.json index 0581c46af..12ec9762a 100644 --- a/admin/vue2/element-admin-v3/node_modules/mixin-deep/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mixin-deep/package.json @@ -1,33 +1,58 @@ { - "name": "mixin-deep", - "description": "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.", - "version": "1.3.2", - "homepage": "https://github.com/jonschlinkert/mixin-deep", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/mixin-deep", - "bugs": { - "url": "https://github.com/jonschlinkert/mixin-deep/issues" + "_args": [ + [ + "mixin-deep@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mixin-deep@1.3.2", + "_id": "mixin-deep@1.3.2", + "_inBundle": false, + "_integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "_location": "/mixin-deep", + "_phantomChildren": { + "is-plain-object": "2.0.4" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "mixin-deep@1.3.2", + "name": "mixin-deep", + "escapedName": "mixin-deep", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" + }, + "_requiredBy": [ + "/base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz?cache=0&sync_timestamp=1561436244196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/mixin-deep/issues" }, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, + "description": "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3", "should": "^13.1.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/mixin-deep", "keywords": [ "deep", "extend", @@ -41,6 +66,16 @@ "util", "values" ], + "license": "MIT", + "main": "index.js", + "name": "mixin-deep", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/mixin-deep.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -61,5 +96,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/mixin-object/node_modules/for-in/package.json b/admin/vue2/element-admin-v3/node_modules/mixin-object/node_modules/for-in/package.json index 6d0d37383..479a3db39 100644 --- a/admin/vue2/element-admin-v3/node_modules/mixin-object/node_modules/for-in/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mixin-object/node_modules/for-in/package.json @@ -1,28 +1,59 @@ { - "name": "for-in", - "description": "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js", - "version": "0.1.8", - "homepage": "https://github.com/jonschlinkert/for-in", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Irish (http://paulirish.com)" + "_args": [ + [ + "for-in@0.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/for-in", + "_development": true, + "_from": "for-in@0.1.8", + "_id": "for-in@0.1.8", + "_inBundle": false, + "_integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "_location": "/mixin-object/for-in", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "for-in@0.1.8", + "name": "for-in", + "escapedName": "for-in", + "rawSpec": "0.1.8", + "saveSpec": null, + "fetchSpec": "0.1.8" + }, + "_requiredBy": [ + "/mixin-object" + ], + "_resolved": "https://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz", + "_spec": "0.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" + }, "bugs": { "url": "https://github.com/jonschlinkert/for-in/issues" }, - "license": "MIT", - "files": [ - "index.js" + "contributors": [ + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Paul Irish", + "url": "http://paulirish.com" + } ], - "main": "index.js", + "description": "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js", "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/for-in", "keywords": [ "for", "for-in", @@ -37,6 +68,16 @@ "own", "value" ], + "license": "MIT", + "main": "index.js", + "name": "for-in", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/for-in.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -60,5 +101,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/mixin-object/package.json b/admin/vue2/element-admin-v3/node_modules/mixin-object/package.json index 8edf2b046..6bcc04670 100644 --- a/admin/vue2/element-admin-v3/node_modules/mixin-object/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mixin-object/package.json @@ -1,32 +1,56 @@ { - "name": "mixin-object", - "description": "Mixin the own and inherited properties of other objects onto the first object. Pass an empty object as the first arg to shallow clone.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/mixin-object", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/mixin-object", - "bugs": { - "url": "https://github.com/jonschlinkert/mixin-object/issues" + "_args": [ + [ + "mixin-object@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mixin-object@2.0.1", + "_id": "mixin-object@2.0.1", + "_inBundle": false, + "_integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "_location": "/mixin-object", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mixin-object@2.0.1", + "name": "mixin-object", + "escapedName": "mixin-object", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/shallow-clone" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/mixin-object/download/mixin-object-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/mixin-object/issues" }, "dependencies": { "for-in": "^0.1.3", "is-extendable": "^0.1.1" }, + "description": "Mixin the own and inherited properties of other objects onto the first object. Pass an empty object as the first arg to shallow clone.", "devDependencies": { "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/mixin-object", "keywords": [ "assign", "copy", @@ -43,6 +67,16 @@ "util", "value" ], + "license": "MIT", + "main": "index.js", + "name": "mixin-object", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/mixin-object.git" + }, + "scripts": { + "test": "mocha" + }, "verbiage": { "related": { "list": [ @@ -57,5 +91,6 @@ "for-in" ] } - } -} \ No newline at end of file + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/mkdirp/package.json b/admin/vue2/element-admin-v3/node_modules/mkdirp/package.json index 67e86405c..6139a4249 100644 --- a/admin/vue2/element-admin-v3/node_modules/mkdirp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mkdirp/package.json @@ -1,34 +1,88 @@ { - "name": "mkdirp", - "description": "Recursively mkdir, like `mkdir -p`", - "version": "0.5.5", - "publishConfig": { - "tag": "legacy" + "_args": [ + [ + "mkdirp@0.5.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mkdirp@0.5.5", + "_id": "mkdirp@0.5.5", + "_inBundle": false, + "_integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "_location": "/mkdirp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mkdirp@0.5.5", + "name": "mkdirp", + "escapedName": "mkdirp", + "rawSpec": "0.5.5", + "saveSpec": null, + "fetchSpec": "0.5.5" }, - "author": "James Halliday (http://substack.net)", - "main": "index.js", - "keywords": [ - "mkdir", - "directory" + "_requiredBy": [ + "/babel-loader", + "/babel-register", + "/cacache", + "/copy-concurrently", + "/eslint", + "/loader-fs-cache", + "/loader-fs-cache/find-cache-dir", + "/move-concurrently", + "/node-sass", + "/portfinder", + "/postcss-url", + "/svgo", + "/webpack", + "/webpack-bundle-analyzer", + "/webpack-dev-middleware", + "/webpack-dev-server/portfinder", + "/write" ], - "repository": { - "type": "git", - "url": "https://github.com/substack/node-mkdirp.git" + "_resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "_spec": "0.5.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" }, - "scripts": { - "test": "tap test/*.js" + "bin": { + "mkdirp": "bin/cmd.js" + }, + "bugs": { + "url": "https://github.com/substack/node-mkdirp/issues" }, "dependencies": { "minimist": "^1.2.5" }, + "description": "Recursively mkdir, like `mkdir -p`", "devDependencies": { "mock-fs": "^3.7.0", "tap": "^5.4.2" }, - "bin": "bin/cmd.js", - "license": "MIT", "files": [ "bin", "index.js" - ] + ], + "homepage": "https://github.com/substack/node-mkdirp#readme", + "keywords": [ + "mkdir", + "directory" + ], + "license": "MIT", + "main": "index.js", + "name": "mkdirp", + "publishConfig": { + "tag": "legacy" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/substack/node-mkdirp.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.5.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/moment/package.json b/admin/vue2/element-admin-v3/node_modules/moment/package.json index 89306df81..44d48c5de 100644 --- a/admin/vue2/element-admin-v3/node_modules/moment/package.json +++ b/admin/vue2/element-admin-v3/node_modules/moment/package.json @@ -1,112 +1,163 @@ { + "_args": [ + [ + "moment@2.29.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "moment@2.29.1", + "_id": "moment@2.29.1", + "_inBundle": false, + "_integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", + "_location": "/moment", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "moment@2.29.1", "name": "moment", - "version": "2.29.1", - "description": "Parse, validate, manipulate, and display dates", - "homepage": "https://momentjs.com", - "author": "Iskren Ivov Chernev (https://github.com/ichernev)", - "contributors": [ - "Tim Wood (http://timwoodcreates.com/)", - "Rocky Meza (http://rockymeza.com)", - "Matt Johnson (http://codeofmatt.com)", - "Isaac Cambron (http://isaaccambron.com)", - "Andre Polykanine (https://github.com/oire)" - ], - "keywords": [ - "moment", - "date", - "time", - "parse", - "format", - "validate", - "i18n", - "l10n", - "ender" - ], - "main": "./moment.js", - "jsnext:main": "./dist/moment.js", - "typings": "./moment.d.ts", - "typesVersions": { - ">=3.1": { - "*": [ - "ts3.1-typings/*" - ] - } - }, - "engines": { - "node": "*" - }, - "repository": { - "type": "git", - "url": "https://github.com/moment/moment.git" + "escapedName": "moment", + "rawSpec": "2.29.1", + "saveSpec": null, + "fetchSpec": "2.29.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz", + "_spec": "2.29.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Iskren Ivov Chernev", + "email": "iskren.chernev@gmail.com", + "url": "https://github.com/ichernev" + }, + "bugs": { + "url": "https://github.com/moment/moment/issues" + }, + "contributors": [ + { + "name": "Tim Wood", + "email": "washwithcare@gmail.com", + "url": "http://timwoodcreates.com/" }, - "bugs": { - "url": "https://github.com/moment/moment/issues" + { + "name": "Rocky Meza", + "url": "http://rockymeza.com" }, - "license": "MIT", - "devDependencies": { - "benchmark": "latest", - "coveralls": "latest", - "cross-env": "^6.0.3", - "es6-promise": "latest", - "eslint": "~6", - "grunt": "latest", - "grunt-benchmark": "latest", - "grunt-cli": "latest", - "grunt-contrib-clean": "latest", - "grunt-contrib-concat": "latest", - "grunt-contrib-copy": "latest", - "grunt-contrib-uglify": "latest", - "grunt-contrib-watch": "latest", - "grunt-env": "latest", - "grunt-exec": "latest", - "grunt-karma": "latest", - "grunt-nuget": "latest", - "grunt-string-replace": "latest", - "karma": "latest", - "karma-chrome-launcher": "latest", - "karma-firefox-launcher": "latest", - "karma-qunit": "latest", - "karma-sauce-launcher": "4.1.4", - "load-grunt-tasks": "latest", - "lodash": ">=4.17.19", - "node-qunit": "latest", - "nyc": "latest", - "prettier": "latest", - "qunit": "^2.10.0", - "rollup": "2.17.1", - "typescript": "^1.8.10", - "typescript3": "npm:typescript@^3.1.6", - "uglify-js": "latest" + { + "name": "Matt Johnson", + "email": "mj1856@hotmail.com", + "url": "http://codeofmatt.com" }, - "ender": "./ender.js", - "dojoBuild": "package.js", - "jspm": { - "files": [ - "moment.js", - "moment.d.ts", - "locale" - ], - "map": { - "moment": "./moment" - }, - "buildConfig": { - "uglify": true - } + { + "name": "Isaac Cambron", + "email": "isaac@isaaccambron.com", + "url": "http://isaaccambron.com" }, - "scripts": { - "ts3.1-typescript-test": "cross-env node_modules/typescript3/bin/tsc --project ts3.1-typing-tests", - "typescript-test": "cross-env node_modules/typescript/bin/tsc --project typing-tests", - "test": "grunt test", - "eslint": "eslint Gruntfile.js tasks src", - "prettier-check": "prettier --check Gruntfile.js tasks src", - "prettier-fmt": "prettier --write Gruntfile.js tasks src", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + { + "name": "Andre Polykanine", + "email": "andre@oire.org", + "url": "https://github.com/oire" + } + ], + "description": "Parse, validate, manipulate, and display dates", + "devDependencies": { + "benchmark": "latest", + "coveralls": "latest", + "cross-env": "^6.0.3", + "es6-promise": "latest", + "eslint": "~6", + "grunt": "latest", + "grunt-benchmark": "latest", + "grunt-cli": "latest", + "grunt-contrib-clean": "latest", + "grunt-contrib-concat": "latest", + "grunt-contrib-copy": "latest", + "grunt-contrib-uglify": "latest", + "grunt-contrib-watch": "latest", + "grunt-env": "latest", + "grunt-exec": "latest", + "grunt-karma": "latest", + "grunt-nuget": "latest", + "grunt-string-replace": "latest", + "karma": "latest", + "karma-chrome-launcher": "latest", + "karma-firefox-launcher": "latest", + "karma-qunit": "latest", + "karma-sauce-launcher": "4.1.4", + "load-grunt-tasks": "latest", + "lodash": ">=4.17.19", + "node-qunit": "latest", + "nyc": "latest", + "prettier": "latest", + "qunit": "^2.10.0", + "rollup": "2.17.1", + "typescript": "^1.8.10", + "typescript3": "npm:typescript@^3.1.6", + "uglify-js": "latest" + }, + "dojoBuild": "package.js", + "ender": "./ender.js", + "engines": { + "node": "*" + }, + "homepage": "https://momentjs.com", + "jsnext:main": "./dist/moment.js", + "jspm": { + "files": [ + "moment.js", + "moment.d.ts", + "locale" + ], + "map": { + "moment": "./moment" }, - "spm": { - "main": "moment.js", - "output": [ - "locale/*.js" - ] + "buildConfig": { + "uglify": true + } + }, + "keywords": [ + "moment", + "date", + "time", + "parse", + "format", + "validate", + "i18n", + "l10n", + "ender" + ], + "license": "MIT", + "main": "./moment.js", + "name": "moment", + "repository": { + "type": "git", + "url": "git+https://github.com/moment/moment.git" + }, + "scripts": { + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "eslint": "eslint Gruntfile.js tasks src", + "prettier-check": "prettier --check Gruntfile.js tasks src", + "prettier-fmt": "prettier --write Gruntfile.js tasks src", + "test": "grunt test", + "ts3.1-typescript-test": "cross-env node_modules/typescript3/bin/tsc --project ts3.1-typing-tests", + "typescript-test": "cross-env node_modules/typescript/bin/tsc --project typing-tests" + }, + "spm": { + "main": "moment.js", + "output": [ + "locale/*.js" + ] + }, + "typesVersions": { + ">=3.1": { + "*": [ + "ts3.1-typings/*" + ] } + }, + "typings": "./moment.d.ts", + "version": "2.29.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/move-concurrently/package.json b/admin/vue2/element-admin-v3/node_modules/move-concurrently/package.json index 072a3ff9b..a787fc112 100644 --- a/admin/vue2/element-admin-v3/node_modules/move-concurrently/package.json +++ b/admin/vue2/element-admin-v3/node_modules/move-concurrently/package.json @@ -1,42 +1,74 @@ { - "name": "move-concurrently", - "version": "1.0.1", - "description": "Promises of moves of files or directories with rename, falling back to recursive rename/copy on EXDEV errors, with configurable concurrency and win32 junction support.", - "main": "move.js", - "scripts": { - "test": "standard && tap --coverage test" + "_args": [ + [ + "move-concurrently@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "move-concurrently@1.0.1", + "_id": "move-concurrently@1.0.1", + "_inBundle": false, + "_integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "_location": "/move-concurrently", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "move-concurrently@1.0.1", + "name": "move-concurrently", + "escapedName": "move-concurrently", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "keywords": [ - "move" + "_requiredBy": [ + "/cacache" ], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/npm/move-concurrently/issues" + }, "dependencies": { - "copy-concurrently": "^1.0.0", "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", "fs-write-stream-atomic": "^1.0.8", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" }, + "description": "Promises of moves of files or directories with rename, falling back to recursive rename/copy on EXDEV errors, with configurable concurrency and win32 junction support.", "devDependencies": { "standard": "^8.6.0", "tacks": "^1.2.6", "tap": "^10.1.1" }, + "directories": { + "test": "test" + }, "files": [ "move.js", "is-windows.js" ], - "directories": { - "test": "test" - }, + "homepage": "https://www.npmjs.com/package/move-concurrently", + "keywords": [ + "move" + ], + "license": "ISC", + "main": "move.js", + "name": "move-concurrently", "repository": { "type": "git", "url": "git+https://github.com/npm/move-concurrently.git" }, - "bugs": { - "url": "https://github.com/npm/move-concurrently/issues" + "scripts": { + "test": "standard && tap --coverage test" }, - "homepage": "https://www.npmjs.com/package/move-concurrently" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/ms/package.json index 6a31c81fa..7e4d78ebb 100644 --- a/admin/vue2/element-admin-v3/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.0.0", - "description": "Tiny milisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.0.0", + "_id": "ms@2.0.0", + "_inBundle": false, + "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "_location": "/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.0.0", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/debug", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "description": "Tiny milisecond conversion utility", + "devDependencies": { + "eslint": "3.19.0", + "expect.js": "0.3.1", + "husky": "0.13.3", + "lint-staged": "3.4.1", + "mocha": "3.4.1" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,12 +58,16 @@ "git add" ] }, - "license": "MIT", - "devDependencies": { - "eslint": "3.19.0", - "expect.js": "0.3.1", - "husky": "0.13.3", - "lint-staged": "3.4.1", - "mocha": "3.4.1" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/multicast-dns-service-types/package.json b/admin/vue2/element-admin-v3/node_modules/multicast-dns-service-types/package.json index 2e516670e..4e81e01b7 100644 --- a/admin/vue2/element-admin-v3/node_modules/multicast-dns-service-types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/multicast-dns-service-types/package.json @@ -1,30 +1,61 @@ { - "name": "multicast-dns-service-types", - "version": "1.1.0", - "description": "Parse and stringify mdns service types", - "main": "index.js", + "_args": [ + [ + "multicast-dns-service-types@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "multicast-dns-service-types@1.1.0", + "_id": "multicast-dns-service-types@1.1.0", + "_inBundle": false, + "_integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "_location": "/multicast-dns-service-types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "multicast-dns-service-types@1.1.0", + "name": "multicast-dns-service-types", + "escapedName": "multicast-dns-service-types", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/bonjour" + ], + "_resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/multicast-dns-service-types/issues" + }, "dependencies": {}, + "description": "Parse and stringify mdns service types", "devDependencies": { "standard": "^3.5.0", "tape": "^4.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/mafintosh/multicast-dns-service-types.git" - }, - "scripts": { - "test": "standard && tape test.js" - }, - "author": "Mathias Buus (@mafintosh)", - "license": "MIT", + "homepage": "https://github.com/mafintosh/multicast-dns-service-types", "keywords": [ "mdns", "bonjour", "zero", "conf" ], - "bugs": { - "url": "https://github.com/mafintosh/multicast-dns-service-types/issues" + "license": "MIT", + "main": "index.js", + "name": "multicast-dns-service-types", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/multicast-dns-service-types.git" + }, + "scripts": { + "test": "standard && tape test.js" }, - "homepage": "https://github.com/mafintosh/multicast-dns-service-types" + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/multicast-dns/package.json b/admin/vue2/element-admin-v3/node_modules/multicast-dns/package.json index 3b7e897a8..a1ce02350 100644 --- a/admin/vue2/element-admin-v3/node_modules/multicast-dns/package.json +++ b/admin/vue2/element-admin-v3/node_modules/multicast-dns/package.json @@ -1,29 +1,55 @@ { - "name": "multicast-dns", - "version": "6.2.3", - "description": "Low level multicast-dns implementation in pure javascript", - "main": "index.js", - "scripts": { - "test": "standard && tape test.js" + "_args": [ + [ + "multicast-dns@6.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "multicast-dns@6.2.3", + "_id": "multicast-dns@6.2.3", + "_inBundle": false, + "_integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "_location": "/multicast-dns", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "multicast-dns@6.2.3", + "name": "multicast-dns", + "escapedName": "multicast-dns", + "rawSpec": "6.2.3", + "saveSpec": null, + "fetchSpec": "6.2.3" + }, + "_requiredBy": [ + "/bonjour" + ], + "_resolved": "https://registry.nlark.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1621890647706&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", + "_spec": "6.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bin": { + "multicast-dns": "cli.js" }, - "bin": "cli.js", + "bugs": { + "url": "https://github.com/mafintosh/multicast-dns/issues" + }, + "coordinates": [ + 55.6465878, + 12.5492251 + ], "dependencies": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" }, + "description": "Low level multicast-dns implementation in pure javascript", "devDependencies": { "standard": "^10.0.3", "tape": "^4.8.0" }, - "repository": { - "type": "git", - "url": "https://github.com/mafintosh/multicast-dns.git" - }, - "author": "Mathias Buus (@mafintosh)", - "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/multicast-dns/issues" - }, "homepage": "https://github.com/mafintosh/multicast-dns", "keywords": [ "multicast", @@ -36,8 +62,15 @@ "bonjour", "avahi" ], - "coordinates": [ - 55.6465878, - 12.5492251 - ] + "license": "MIT", + "main": "index.js", + "name": "multicast-dns", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/multicast-dns.git" + }, + "scripts": { + "test": "standard && tape test.js" + }, + "version": "6.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/mute-stream/package.json b/admin/vue2/element-admin-v3/node_modules/mute-stream/package.json index dcd2d37aa..f43ec5123 100644 --- a/admin/vue2/element-admin-v3/node_modules/mute-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mute-stream/package.json @@ -1,26 +1,64 @@ { - "name": "mute-stream", - "version": "0.0.7", - "main": "mute.js", - "directories": { - "test": "test" + "_args": [ + [ + "mute-stream@0.0.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mute-stream@0.0.7", + "_id": "mute-stream@0.0.7", + "_inBundle": false, + "_integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "_location": "/mute-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mute-stream@0.0.7", + "name": "mute-stream", + "escapedName": "mute-stream", + "rawSpec": "0.0.7", + "saveSpec": null, + "fetchSpec": "0.0.7" + }, + "_requiredBy": [ + "/inquirer", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "_spec": "0.0.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/mute-stream/issues" }, + "description": "Bytes go in, but they don't come out (when muted).", "devDependencies": { "tap": "^5.4.4" }, - "scripts": { - "test": "tap test/*.js --cov" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/mute-stream" + "directories": { + "test": "test" }, + "homepage": "https://github.com/isaacs/mute-stream#readme", "keywords": [ "mute", "stream", "pipe" ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "license": "ISC", - "description": "Bytes go in, but they don't come out (when muted)." + "main": "mute.js", + "name": "mute-stream", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/mute-stream.git" + }, + "scripts": { + "test": "tap test/*.js --cov" + }, + "version": "0.0.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/mux.js/package.json b/admin/vue2/element-admin-v3/node_modules/mux.js/package.json index b40c8d071..d33f2df45 100644 --- a/admin/vue2/element-admin-v3/node_modules/mux.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/mux.js/package.json @@ -1,66 +1,44 @@ { - "name": "mux.js", - "version": "4.3.2", - "description": "A collection of lightweight utilities for inspecting and manipulating video container formats.", - "repository": { - "type": "git", - "url": "https://github.com/videojs/mux.js.git" + "_args": [ + [ + "mux.js@4.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mux.js@4.3.2", + "_id": "mux.js@4.3.2", + "_inBundle": false, + "_integrity": "sha1-V21TffA33F7DXsExa5SNgV01whA=", + "_location": "/mux.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mux.js@4.3.2", + "name": "mux.js", + "escapedName": "mux.js", + "rawSpec": "4.3.2", + "saveSpec": null, + "fetchSpec": "4.3.2" }, - "main": "./lib/index.js", - "scripts": { - "test": "npm run lint && karma start test/karma/karma.conf.js", - "start": "npm-run-all -p watch serve", - "serve": "node scripts/server.js", - "watch": "npm run mkdirs && npm-run-all -p watch:*", - "watch:js": "watchify -s muxjs -p bundle-collapser/plugin lib/index.js -v -o dist/mux.js", - "watch:test": "watchify test/*.test.js -g browserify-shim -p bundle-collapser/plugin -v -o dist-test/mux.js", - "mkdirs": "mkdir -p dist dist-test", - "build": "npm run mkdirs && npm-run-all -p build:* && npm run collapse && npm run uglify", - "build:mp4": "browserify -s muxjs lib/mp4/index.js -o dist/mux-mp4.js", - "build:flv": "browserify -s muxjs lib/flv/index.js -o dist/mux-flv.js", - "build:js": "browserify -s muxjs lib/index.js -o dist/mux.js", - "build:test": "browserify test/*.test.js -g browserify-shim -o dist-test/mux.js", - "lint": "eslint \"lib/**/*.js\" \"test/**/*.js\"", - "collapse": "npm-run-all -p collapse:*", - "collapse:mp4": "bundle-collapser dist/mux-mp4.js -o dist/mux-mp4.min.js", - "collapse:flv": "bundle-collapser dist/mux-flv.js -o dist/mux-flv.min.js", - "collapse:js": "bundle-collapser dist/mux.js -o dist/mux.min.js", - "uglify": "npm-run-all -p uglify:*", - "uglify:mp4": "uglifyjs --mangle --compress -o dist/mux-mp4.min.js dist/mux-mp4.min.js", - "uglify:flv": "uglifyjs --mangle --compress -o dist/mux-flv.min.js dist/mux-flv.min.js", - "uglify:js": "uglifyjs --mangle --compress -o dist/mux.min.js dist/mux.min.js", - "clean": "rm -rf dist dist-test" + "_requiredBy": [ + "/videojs-contrib-hls", + "/videojs-contrib-media-sources" + ], + "_resolved": "https://registry.npm.taobao.org/mux.js/download/mux.js-4.3.2.tgz", + "_spec": "4.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove" }, "browser": "./lib/index.js", - "keywords": [ - "video", - "container", - "transmux", - "mux", - "player", - "hls", - "mp4", - "flv", - "aac", - "h264" - ], "browserify-shim": { "qunit": "global:QUnit" }, - "author": "Brightcove", - "license": "Apache-2.0", - "eslintConfig": { - "ignore": [ - "dist", - "dist-test", - "docs", - "scripts" - ] + "bugs": { + "url": "https://github.com/videojs/mux.js/issues" }, - "files": [ - "lib/", - "dist/" - ], + "description": "A collection of lightweight utilities for inspecting and manipulating video container formats.", "devDependencies": { "browserify": "^12.0.1", "browserify-shim": "^3.8.12", @@ -80,5 +58,62 @@ "uglify-js": "^2.6.2", "watchify": "^3.6.1", "webworkify": "^1.0.2" - } + }, + "eslintConfig": { + "ignore": [ + "dist", + "dist-test", + "docs", + "scripts" + ] + }, + "files": [ + "lib/", + "dist/" + ], + "homepage": "https://github.com/videojs/mux.js#readme", + "keywords": [ + "video", + "container", + "transmux", + "mux", + "player", + "hls", + "mp4", + "flv", + "aac", + "h264" + ], + "license": "Apache-2.0", + "main": "./lib/index.js", + "name": "mux.js", + "repository": { + "type": "git", + "url": "git+https://github.com/videojs/mux.js.git" + }, + "scripts": { + "build": "npm run mkdirs && npm-run-all -p build:* && npm run collapse && npm run uglify", + "build:flv": "browserify -s muxjs lib/flv/index.js -o dist/mux-flv.js", + "build:js": "browserify -s muxjs lib/index.js -o dist/mux.js", + "build:mp4": "browserify -s muxjs lib/mp4/index.js -o dist/mux-mp4.js", + "build:test": "browserify test/*.test.js -g browserify-shim -o dist-test/mux.js", + "clean": "rm -rf dist dist-test", + "collapse": "npm-run-all -p collapse:*", + "collapse:flv": "bundle-collapser dist/mux-flv.js -o dist/mux-flv.min.js", + "collapse:js": "bundle-collapser dist/mux.js -o dist/mux.min.js", + "collapse:mp4": "bundle-collapser dist/mux-mp4.js -o dist/mux-mp4.min.js", + "lint": "eslint \"lib/**/*.js\" \"test/**/*.js\"", + "mkdirs": "mkdir -p dist dist-test", + "serve": "node scripts/server.js", + "start": "npm-run-all -p watch serve", + "test": "npm run lint && karma start test/karma/karma.conf.js", + "uglify": "npm-run-all -p uglify:*", + "uglify:flv": "uglifyjs --mangle --compress -o dist/mux-flv.min.js dist/mux-flv.min.js", + "uglify:js": "uglifyjs --mangle --compress -o dist/mux.min.js dist/mux.min.js", + "uglify:mp4": "uglifyjs --mangle --compress -o dist/mux-mp4.min.js dist/mux-mp4.min.js", + "watch": "npm run mkdirs && npm-run-all -p watch:*", + "watch:js": "watchify -s muxjs -p bundle-collapser/plugin lib/index.js -v -o dist/mux.js", + "watch:test": "watchify test/*.test.js -g browserify-shim -p bundle-collapser/plugin -v -o dist-test/mux.js" + }, + "version": "4.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/nan/package.json b/admin/vue2/element-admin-v3/node_modules/nan/package.json index 224eaab86..e701489fe 100644 --- a/admin/vue2/element-admin-v3/node_modules/nan/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nan/package.json @@ -1,37 +1,102 @@ { - "name": "nan", - "version": "2.14.2", - "description": "Native Abstractions for Node.js: C++ header for Node 0.8 -> 14 compatibility", - "main": "include_dirs.js", - "repository": { - "type": "git", - "url": "git://github.com/nodejs/nan.git" + "_args": [ + [ + "nan@2.14.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "nan@2.14.2", + "_id": "nan@2.14.2", + "_inBundle": false, + "_integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", + "_location": "/nan", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nan@2.14.2", + "name": "nan", + "escapedName": "nan", + "rawSpec": "2.14.2", + "saveSpec": null, + "fetchSpec": "2.14.2" }, - "scripts": { - "test": "tap --gc --stderr test/js/*-test.js", - "test:worker": "node --experimental-worker test/tap-as-worker.js --gc --stderr test/js/*-test.js", - "rebuild-tests": "node-gyp rebuild --msvs_version=2015 --directory test", - "docs": "doc/.build.sh" + "_requiredBy": [ + "/fsevents", + "/node-sass" + ], + "_resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591607196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", + "_spec": "2.14.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/nan/issues" }, "contributors": [ - "Rod Vagg (https://github.com/rvagg)", - "Benjamin Byholm (https://github.com/kkoopa/)", - "Trevor Norris (https://github.com/trevnorris)", - "Nathan Rajlich (https://github.com/TooTallNate)", - "Brett Lawson (https://github.com/brett19)", - "Ben Noordhuis (https://github.com/bnoordhuis)", - "David Siegel (https://github.com/agnat)", - "Michael Ira Krufky (https://github.com/mkrufky)" + { + "name": "Rod Vagg", + "email": "r@va.gg", + "url": "https://github.com/rvagg" + }, + { + "name": "Benjamin Byholm", + "email": "bbyholm@abo.fi", + "url": "https://github.com/kkoopa/" + }, + { + "name": "Trevor Norris", + "email": "trev.norris@gmail.com", + "url": "https://github.com/trevnorris" + }, + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "https://github.com/TooTallNate" + }, + { + "name": "Brett Lawson", + "email": "brett19@gmail.com", + "url": "https://github.com/brett19" + }, + { + "name": "Ben Noordhuis", + "email": "info@bnoordhuis.nl", + "url": "https://github.com/bnoordhuis" + }, + { + "name": "David Siegel", + "email": "david@artcom.de", + "url": "https://github.com/agnat" + }, + { + "name": "Michael Ira Krufky", + "email": "mkrufky@gmail.com", + "url": "https://github.com/mkrufky" + } ], + "description": "Native Abstractions for Node.js: C++ header for Node 0.8 -> 14 compatibility", "devDependencies": { "bindings": "~1.2.1", "commander": "^2.8.1", "glob": "^5.0.14", - "request": "=2.81.0", "node-gyp": "~3.6.2", "readable-stream": "^2.1.4", + "request": "=2.81.0", "tap": "~0.7.1", "xtend": "~4.0.0" }, - "license": "MIT" + "homepage": "https://github.com/nodejs/nan#readme", + "license": "MIT", + "main": "include_dirs.js", + "name": "nan", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/nan.git" + }, + "scripts": { + "docs": "doc/.build.sh", + "rebuild-tests": "node-gyp rebuild --msvs_version=2015 --directory test", + "test": "tap --gc --stderr test/js/*-test.js", + "test:worker": "node --experimental-worker test/tap-as-worker.js --gc --stderr test/js/*-test.js" + }, + "version": "2.14.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/nanomatch/package.json b/admin/vue2/element-admin-v3/node_modules/nanomatch/package.json index 0a85f0aaa..3dc118b0a 100644 --- a/admin/vue2/element-admin-v3/node_modules/nanomatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nanomatch/package.json @@ -1,29 +1,50 @@ { - "name": "nanomatch", - "description": "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)", - "version": "1.2.13", - "homepage": "https://github.com/micromatch/nanomatch", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Devon Govett (http://badassjs.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "nanomatch@1.2.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/nanomatch", - "bugs": { - "url": "https://github.com/micromatch/nanomatch/issues" + "_from": "nanomatch@1.2.13", + "_id": "nanomatch@1.2.13", + "_inBundle": false, + "_integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "_location": "/nanomatch", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nanomatch@1.2.13", + "name": "nanomatch", + "escapedName": "nanomatch", + "rawSpec": "1.2.13", + "saveSpec": null, + "fetchSpec": "1.2.13" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requiredBy": [ + "/micromatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "_spec": "1.2.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/nanomatch/issues" }, + "contributors": [ + { + "name": "Devon Govett", + "url": "http://badassjs.com" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -37,6 +58,7 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "description": "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)", "devDependencies": { "bash-match": "^1.0.2", "for-own": "^1.0.0", @@ -50,6 +72,14 @@ "mocha": "^3.5.3", "multimatch": "^2.1.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/micromatch/nanomatch", "keywords": [ "bash", "expand", @@ -80,6 +110,7 @@ "shell", "wildcard" ], + "license": "MIT", "lintDeps": { "dependencies": { "options": { @@ -98,6 +129,15 @@ } } }, + "main": "index.js", + "name": "nanomatch", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/nanomatch.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": "collapsible", "layout": "default", @@ -130,5 +170,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.2.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/natural-compare/package.json b/admin/vue2/element-admin-v3/node_modules/natural-compare/package.json index 1a71362ee..bd500766f 100644 --- a/admin/vue2/element-admin-v3/node_modules/natural-compare/package.json +++ b/admin/vue2/element-admin-v3/node_modules/natural-compare/package.json @@ -1,10 +1,55 @@ { - "name": "natural-compare", - "version": "1.4.0", - "stability": 3, - "author": "Lauri Rooden (https://github.com/litejs/natural-compare-lite)", - "license": "MIT", + "_args": [ + [ + "natural-compare@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "natural-compare@1.4.0", + "_id": "natural-compare@1.4.0", + "_inBundle": false, + "_integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "_location": "/natural-compare", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "natural-compare@1.4.0", + "name": "natural-compare", + "escapedName": "natural-compare", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Lauri Rooden", + "url": "https://github.com/litejs/natural-compare-lite" + }, + "bugs": { + "url": "https://github.com/litejs/natural-compare-lite/issues" + }, + "buildman": { + "dist/index-min.js": { + "banner": "/*! litejs.com/MIT-LICENSE.txt */", + "input": "index.js" + } + }, "description": "Compare strings containing a mix of letters and numbers in the way a human being would in sort order.", + "devDependencies": { + "buildman": "*", + "testman": "*" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/litejs/natural-compare-lite#readme", "keywords": [ "string", "natural", @@ -16,27 +61,17 @@ "alphanum", "litejs" ], + "license": "MIT", "main": "index.js", - "readmeFilename": "README.md", - "files": [ - "index.js" - ], + "name": "natural-compare", + "repository": { + "type": "git", + "url": "git://github.com/litejs/natural-compare-lite.git" + }, "scripts": { "build": "node node_modules/buildman/index.js --all", "test": "node tests/index.js" }, - "repository": "git://github.com/litejs/natural-compare-lite.git", - "bugs": { - "url": "https://github.com/litejs/natural-compare-lite/issues" - }, - "devDependencies": { - "buildman": "*", - "testman": "*" - }, - "buildman": { - "dist/index-min.js": { - "banner": "/*! litejs.com/MIT-LICENSE.txt */", - "input": "index.js" - } - } + "stability": 3, + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/negotiator/package.json b/admin/vue2/element-admin-v3/node_modules/negotiator/package.json index 0c7ff3c2e..87e63d3f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/negotiator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/negotiator/package.json @@ -1,28 +1,60 @@ { - "name": "negotiator", - "description": "HTTP content negotiation", - "version": "0.6.2", - "contributors": [ - "Douglas Christopher Wilson ", - "Federico Romero ", - "Isaac Z. Schlueter (http://blog.izs.me/)" + "_args": [ + [ + "negotiator@0.6.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "http", - "content negotiation", - "accept", - "accept-language", - "accept-encoding", - "accept-charset" + "_from": "negotiator@0.6.2", + "_id": "negotiator@0.6.2", + "_inBundle": false, + "_integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "_location": "/negotiator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "negotiator@0.6.2", + "name": "negotiator", + "escapedName": "negotiator", + "rawSpec": "0.6.2", + "saveSpec": null, + "fetchSpec": "0.6.2" + }, + "_requiredBy": [ + "/accepts" ], - "repository": "jshttp/negotiator", + "_resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "_spec": "0.6.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/negotiator/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Federico Romero", + "email": "federico.romero@outboxlabs.com" + }, + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + } + ], + "description": "HTTP content negotiation", "devDependencies": { "eslint": "5.16.0", "eslint-plugin-markdown": "1.0.0", "mocha": "6.1.4", "nyc": "14.0.0" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "lib/", "HISTORY.md", @@ -30,13 +62,26 @@ "index.js", "README.md" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/negotiator#readme", + "keywords": [ + "http", + "content negotiation", + "accept", + "accept-language", + "accept-encoding", + "accept-charset" + ], + "license": "MIT", + "name": "negotiator", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/negotiator.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --check-leaks --bail test/", "test-cov": "nyc --reporter=html --reporter=text npm test", "test-travis": "nyc --reporter=text npm test" - } + }, + "version": "0.6.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/neo-async/package.json b/admin/vue2/element-admin-v3/node_modules/neo-async/package.json index d5702c4e2..e6efacf05 100644 --- a/admin/vue2/element-admin-v3/node_modules/neo-async/package.json +++ b/admin/vue2/element-admin-v3/node_modules/neo-async/package.json @@ -1,19 +1,40 @@ { - "name": "neo-async", - "version": "2.6.2", - "description": "Neo-Async is a drop-in replacement for Async, it almost fully covers its functionality and runs faster ", - "main": "async.js", - "license": "MIT", - "keywords": [ - "async", - "util" + "_args": [ + [ + "neo-async@2.6.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git@github.com:suguru03/neo-async.git" + "_from": "neo-async@2.6.2", + "_id": "neo-async@2.6.2", + "_inBundle": false, + "_integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "_location": "/neo-async", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "neo-async@2.6.2", + "name": "neo-async", + "escapedName": "neo-async", + "rawSpec": "2.6.2", + "saveSpec": null, + "fetchSpec": "2.6.2" + }, + "_requiredBy": [ + "/sass-loader", + "/watchpack", + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317361810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", + "_spec": "2.6.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "async.min.js", + "bugs": { + "url": "https://github.com/suguru03/neo-async/issues" }, - "homepage": "https://github.com/suguru03/neo-async", "dependencies": {}, + "description": "Neo-Async is a drop-in replacement for Async, it almost fully covers its functionality and runs faster ", "devDependencies": { "aigle": "^1.14.0", "async": "^2.6.0", @@ -43,15 +64,27 @@ "prettier": "^1.15.2", "require-dir": "^0.3.0" }, + "homepage": "https://github.com/suguru03/neo-async", + "keywords": [ + "async", + "util" + ], + "license": "MIT", "lint-staged": { "*.{js,ts}": [ "prettier --write", "git add" ] }, + "main": "async.js", + "name": "neo-async", "prettier": { "printWidth": 100, "singleQuote": true }, - "browser": "async.min.js" -} \ No newline at end of file + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/suguru03/neo-async.git" + }, + "version": "2.6.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/next-tick/package.json b/admin/vue2/element-admin-v3/node_modules/next-tick/package.json index 752ba2eac..c318df1c0 100644 --- a/admin/vue2/element-admin-v3/node_modules/next-tick/package.json +++ b/admin/vue2/element-admin-v3/node_modules/next-tick/package.json @@ -1,27 +1,64 @@ { - "name": "next-tick", - "version": "1.0.0", + "_args": [ + [ + "next-tick@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "next-tick@1.0.0", + "_id": "next-tick@1.0.0", + "_inBundle": false, + "_integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "_location": "/next-tick", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "next-tick@1.0.0", + "name": "next-tick", + "escapedName": "next-tick", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/es5-ext" + ], + "_resolved": "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "http://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/next-tick/issues" + }, "description": "Environment agnostic nextTick polyfill", - "author": "Mariusz Nowak (http://www.medikoo.com/)", + "devDependencies": { + "tad": "^0.2.4", + "xlint": "^0.2.2", + "xlint-jslint-medikoo": "^0.1.4" + }, + "homepage": "https://github.com/medikoo/next-tick#readme", "keywords": [ "nexttick", "setImmediate", "setTimeout", "async" ], + "license": "MIT", + "name": "next-tick", "repository": { "type": "git", "url": "git://github.com/medikoo/next-tick.git" }, - "devDependencies": { - "tad": "^0.2.4", - "xlint": "^0.2.2", - "xlint-jslint-medikoo": "^0.1.4" - }, "scripts": { "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream", "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch", "test": "node node_modules/tad/bin/tad" }, - "license": "MIT" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/nice-try/package.json b/admin/vue2/element-admin-v3/node_modules/nice-try/package.json index d3d8887ed..22d766b08 100644 --- a/admin/vue2/element-admin-v3/node_modules/nice-try/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nice-try/package.json @@ -1,33 +1,64 @@ { - "name": "nice-try", - "version": "1.0.5", + "_args": [ + [ + "nice-try@1.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "nice-try@1.0.5", + "_id": "nice-try@1.0.5", + "_inBundle": false, + "_integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "_location": "/nice-try", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nice-try@1.0.5", + "name": "nice-try", + "escapedName": "nice-try", + "rawSpec": "1.0.5", + "saveSpec": null, + "fetchSpec": "1.0.5" + }, + "_requiredBy": [ + "/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "_spec": "1.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "Tobias Reich " ], + "bugs": { + "url": "https://github.com/electerious/nice-try/issues" + }, "description": "Tries to execute a function and discards any error that occurs", - "main": "src/index.js", + "devDependencies": { + "chai": "^4.1.2", + "coveralls": "^3.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1" + }, + "files": [ + "src" + ], + "homepage": "https://github.com/electerious/nice-try", "keywords": [ "try", "catch", "error" ], "license": "MIT", - "homepage": "https://github.com/electerious/nice-try", + "main": "src/index.js", + "name": "nice-try", "repository": { "type": "git", - "url": "https://github.com/electerious/nice-try.git" + "url": "git+https://github.com/electerious/nice-try.git" }, - "files": [ - "src" - ], "scripts": { "coveralls": "nyc report --reporter=text-lcov | coveralls", "test": "nyc node_modules/mocha/bin/_mocha" }, - "devDependencies": { - "chai": "^4.1.2", - "coveralls": "^3.0.0", - "nyc": "^12.0.1", - "mocha": "^5.1.1" - } + "version": "1.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/no-case/package.json b/admin/vue2/element-admin-v3/node_modules/no-case/package.json index f00a45660..6d7e803d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/no-case/package.json +++ b/admin/vue2/element-admin-v3/node_modules/no-case/package.json @@ -1,47 +1,46 @@ { - "name": "no-case", - "version": "2.3.2", - "description": "Remove case from a string", - "main": "no-case.js", - "typings": "no-case.d.ts", - "files": [ - "no-case.js", - "no-case.d.ts", - "vendor", - "LICENSE" - ], - "scripts": { - "lint": "standard", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov", - "build": "node build.js" - }, - "standard": { - "ignore": [ - "coverage/**" + "_args": [ + [ + "no-case@2.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "no-case@2.3.2", + "_id": "no-case@2.3.2", + "_inBundle": false, + "_integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "_location": "/no-case", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "no-case@2.3.2", + "name": "no-case", + "escapedName": "no-case", + "rawSpec": "2.3.2", + "saveSpec": null, + "fetchSpec": "2.3.2" }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/no-case.git" - }, - "keywords": [ - "no", - "case", - "space", - "lower", - "trim" + "_requiredBy": [ + "/camel-case", + "/param-case" ], + "_resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1606867512442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "_spec": "2.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me" }, - "license": "MIT", "bugs": { "url": "https://github.com/blakeembrey/no-case/issues" }, - "homepage": "https://github.com/blakeembrey/no-case", + "dependencies": { + "lower-case": "^1.1.1" + }, + "description": "Remove case from a string", "devDependencies": { "chai": "^4.0.2", "istanbul": "^0.4.3", @@ -50,7 +49,38 @@ "standard": "^10.0.2", "xregexp": "^3.1.1" }, - "dependencies": { - "lower-case": "^1.1.1" - } + "files": [ + "no-case.js", + "no-case.d.ts", + "vendor", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/no-case", + "keywords": [ + "no", + "case", + "space", + "lower", + "trim" + ], + "license": "MIT", + "main": "no-case.js", + "name": "no-case", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/no-case.git" + }, + "scripts": { + "build": "node build.js", + "lint": "standard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail" + }, + "standard": { + "ignore": [ + "coverage/**" + ] + }, + "typings": "no-case.d.ts", + "version": "2.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-forge/package.json b/admin/vue2/element-admin-v3/node_modules/node-forge/package.json index f5cc879f9..c8d3d8967 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-forge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-forge/package.json @@ -1,19 +1,65 @@ { - "name": "node-forge", - "version": "0.10.0", - "description": "JavaScript implementations of network transports, cryptography, ciphers, PKI, message digests, and various utilities.", - "homepage": "https://github.com/digitalbazaar/forge", + "_args": [ + [ + "node-forge@0.10.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "node-forge@0.10.0", + "_id": "node-forge@0.10.0", + "_inBundle": false, + "_integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", + "_location": "/node-forge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-forge@0.10.0", + "name": "node-forge", + "escapedName": "node-forge", + "rawSpec": "0.10.0", + "saveSpec": null, + "fetchSpec": "0.10.0" + }, + "_requiredBy": [ + "/selfsigned" + ], + "_resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010726129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz", + "_spec": "0.10.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Digital Bazaar, Inc.", "email": "support@digitalbazaar.com", "url": "http://digitalbazaar.com/" }, + "browser": { + "buffer": false, + "crypto": false, + "process": false + }, + "bugs": { + "url": "https://github.com/digitalbazaar/forge/issues", + "email": "support@digitalbazaar.com" + }, "contributors": [ - "Dave Longley ", - "David I. Lehn ", - "Stefan Siegl ", - "Christoph Dorn " + { + "name": "Dave Longley", + "email": "dlongley@digitalbazaar.com" + }, + { + "name": "David I. Lehn", + "email": "dlehn@digitalbazaar.com" + }, + { + "name": "Stefan Siegl", + "email": "stesie@brokenpipe.de" + }, + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com" + } ], + "description": "JavaScript implementations of network transports, cryptography, ciphers, PKI, message digests, and various utilities.", "devDependencies": { "browserify": "^16.5.2", "commander": "^2.20.0", @@ -43,24 +89,18 @@ "webpack-cli": "^3.3.12", "worker-loader": "^2.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/digitalbazaar/forge" - }, - "bugs": { - "url": "https://github.com/digitalbazaar/forge/issues", - "email": "support@digitalbazaar.com" + "engines": { + "node": ">= 6.0.0" }, - "license": "(BSD-3-Clause OR GPL-2.0)", - "main": "lib/index.js", "files": [ "lib/*.js", "flash/swf/*.swf", "dist/*.min.js", "dist/*.min.js.map" ], - "engines": { - "node": ">= 6.0.0" + "homepage": "https://github.com/digitalbazaar/forge", + "jspm": { + "format": "amd" }, "keywords": [ "aes", @@ -91,31 +131,31 @@ "x.509", "x509" ], + "license": "(BSD-3-Clause OR GPL-2.0)", + "main": "lib/index.js", + "name": "node-forge", + "nyc": { + "exclude": [ + "tests" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/digitalbazaar/forge.git" + }, "scripts": { - "prepublish": "npm run build", "build": "webpack", - "test-build": "webpack --config webpack-tests.config.js", + "coverage": "rm -rf coverage && nyc --reporter=lcov --reporter=text-summary npm test", + "coverage-report": "nyc report", + "lint": "eslint *.js lib/*.js tests/*.js tests/**/*.js examples/*.js flash/*.js", + "prepublish": "npm run build", "test": "cross-env NODE_ENV=test mocha -t 30000 -R ${REPORTER:-spec} tests/unit/index.js", + "test-build": "webpack --config webpack-tests.config.js", "test-karma": "karma start", "test-karma-sauce": "karma start karma-sauce.conf", "test-server": "node tests/server.js", - "test-server-ws": "node tests/websockets/server-ws.js", "test-server-webid": "node tests/websockets/server-webid.js", - "coverage": "rm -rf coverage && nyc --reporter=lcov --reporter=text-summary npm test", - "coverage-report": "nyc report", - "lint": "eslint *.js lib/*.js tests/*.js tests/**/*.js examples/*.js flash/*.js" - }, - "nyc": { - "exclude": [ - "tests" - ] + "test-server-ws": "node tests/websockets/server-ws.js" }, - "jspm": { - "format": "amd" - }, - "browser": { - "buffer": false, - "crypto": false, - "process": false - } + "version": "0.10.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which index aece73531..cd9503c85 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../which/bin/node-which" "$@" + "$basedir/node" "$basedir/../which/bin/node-which" "$@" + ret=$? else - exec node "$basedir/../which/bin/node-which" "$@" + node "$basedir/../which/bin/node-which" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.cmd b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.cmd index 7eeb31642..937098a65 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\node-which" %* +"%_prog%" "%dp0%\..\which\bin\node-which" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.ps1 b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.ps1 index cfb09e844..60d6560f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/node-which.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../which/bin/node-which" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf index b81682550..a3e9f7188 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + "$basedir/node" "$basedir/../rimraf/bin.js" "$@" + ret=$? else - exec node "$basedir/../rimraf/bin.js" "$@" + node "$basedir/../rimraf/bin.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.cmd b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.cmd index dc453145d..77d44c3f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %* +"%_prog%" "%dp0%\..\rimraf\bin.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.ps1 b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.ps1 index 17167914f..a244a805e 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/rimraf.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } + & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "node$exe" "$basedir/../rimraf/bin.js" $args - } + & "node$exe" "$basedir/../rimraf/bin.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver index 77443e787..7e365277d 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + ret=$? else - exec node "$basedir/../semver/bin/semver.js" "$@" + node "$basedir/../semver/bin/semver.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.cmd b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.cmd index 7d4c104af..3493d8d96 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* +"%_prog%" "%dp0%\..\semver\bin\semver.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.ps1 b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.ps1 index 314717ad4..6a85e3405 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/.bin/semver.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../semver/bin/semver.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/lru-cache/package.json b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/lru-cache/package.json index 43b7502c3..4a7ec5ddc 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/lru-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/lru-cache/package.json @@ -1,34 +1,73 @@ { - "name": "lru-cache", - "description": "A cache object that deletes the least-recently-used items.", - "version": "6.0.0", - "author": "Isaac Z. Schlueter ", - "keywords": [ - "mru", - "lru", - "cache" + "_args": [ + [ + "lru-cache@6.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" + "_development": true, + "_from": "lru-cache@6.0.0", + "_id": "lru-cache@6.0.0", + "_inBundle": false, + "_integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "_location": "/node-gyp/lru-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lru-cache@6.0.0", + "name": "lru-cache", + "escapedName": "lru-cache", + "rawSpec": "6.0.0", + "saveSpec": null, + "fetchSpec": "6.0.0" }, - "main": "index.js", - "repository": "git://github.com/isaacs/node-lru-cache.git", + "_requiredBy": [ + "/node-gyp/semver" + ], + "_resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", + "_spec": "6.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + "bugs": { + "url": "https://github.com/isaacs/node-lru-cache/issues" + }, + "dependencies": { + "yallist": "^4.0.0" + }, + "description": "A cache object that deletes the least-recently-used items.", "devDependencies": { "benchmark": "^2.1.4", "tap": "^14.10.7" }, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "engines": { + "node": ">=10" }, "files": [ "index.js" ], - "engines": { - "node": ">=10" - } + "homepage": "https://github.com/isaacs/node-lru-cache#readme", + "keywords": [ + "mru", + "lru", + "cache" + ], + "license": "ISC", + "main": "index.js", + "name": "lru-cache", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-lru-cache.git" + }, + "scripts": { + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "snap": "tap", + "test": "tap" + }, + "version": "6.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/rimraf/package.json b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/rimraf/package.json index 1bf8d5e38..993c50d23 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/rimraf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/rimraf/package.json @@ -1,32 +1,74 @@ { - "name": "rimraf", - "version": "3.0.2", - "main": "rimraf.js", - "description": "A deep deletion module for node (like `rm -rf`)", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "repository": "git://github.com/isaacs/rimraf.git", - "scripts": { - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags", - "test": "tap test/*.js" + "_args": [ + [ + "rimraf@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "rimraf@3.0.2", + "_id": "rimraf@3.0.2", + "_inBundle": false, + "_integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "_location": "/node-gyp/rimraf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rimraf@3.0.2", + "name": "rimraf", + "escapedName": "rimraf", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bin": { + "rimraf": "bin.js" + }, + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" }, - "bin": "./bin.js", "dependencies": { "glob": "^7.1.3" }, + "description": "A deep deletion module for node (like `rm -rf`)", + "devDependencies": { + "mkdirp": "^0.5.1", + "tap": "^12.1.1" + }, "files": [ "LICENSE", "README.md", "bin.js", "rimraf.js" ], - "devDependencies": { - "mkdirp": "^0.5.1", - "tap": "^12.1.1" - }, "funding": { "url": "https://github.com/sponsors/isaacs" - } + }, + "homepage": "https://github.com/isaacs/rimraf#readme", + "license": "ISC", + "main": "rimraf.js", + "name": "rimraf", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js" + }, + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/semver/package.json b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/semver/package.json index 4e1154195..1f1541588 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/semver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/semver/package.json @@ -1,22 +1,48 @@ { - "name": "semver", - "version": "7.3.5", - "description": "The semantic version parser used by npm.", - "main": "index.js", - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "_args": [ + [ + "semver@7.3.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "semver@7.3.5", + "_id": "semver@7.3.5", + "_inBundle": false, + "_integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "_location": "/node-gyp/semver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "semver@7.3.5", + "name": "semver", + "escapedName": "semver", + "rawSpec": "7.3.5", + "saveSpec": null, + "fetchSpec": "7.3.5" + }, + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", + "_spec": "7.3.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "semver": "bin/semver.js" }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" + }, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "description": "The semantic version parser used by npm.", "devDependencies": { "tap": "^14.10.7" }, - "license": "ISC", - "repository": "https://github.com/npm/node-semver", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=10" }, "files": [ "bin/**/*.js", @@ -28,14 +54,24 @@ "index.js", "preload.js" ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "index.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "snap": "tap", + "test": "tap" + }, "tap": { "check-coverage": true, "coverage-map": "map.js" }, - "engines": { - "node": ">=10" - }, - "dependencies": { - "lru-cache": "^6.0.0" - } + "version": "7.3.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/which/package.json b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/which/package.json index 97ad7fbab..765130c4d 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/which/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/which/package.json @@ -1,43 +1,80 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "2.0.2", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" + "_args": [ + [ + "which@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "which@2.0.2", + "_id": "which@2.0.2", + "_inBundle": false, + "_integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "_location": "/node-gyp/which", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "which@2.0.2", + "name": "which", + "escapedName": "which", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" }, - "main": "which.js", "bin": { - "node-which": "./bin/node-which" + "node-which": "bin/node-which" + }, + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" }, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.6.2", "tap": "^14.6.9" }, - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublish": "npm run changelog", - "prechangelog": "bash gen-changelog.sh", - "changelog": "git add CHANGELOG.md", - "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", - "postpublish": "git push origin --follow-tags" + "engines": { + "node": ">= 8" }, "files": [ "which.js", "bin/node-which" ], + "homepage": "https://github.com/isaacs/node-which#readme", + "license": "ISC", + "main": "which.js", + "name": "which", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "scripts": { + "changelog": "git add CHANGELOG.md", + "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "prechangelog": "bash gen-changelog.sh", + "prepublish": "npm run changelog", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true }, - "engines": { - "node": ">= 8" - } + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/yallist/package.json b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/yallist/package.json index 8a083867d..4c6afa8bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/yallist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/node_modules/yallist/package.json @@ -1,8 +1,46 @@ { - "name": "yallist", - "version": "4.0.0", + "_args": [ + [ + "yallist@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yallist@4.0.0", + "_id": "yallist@4.0.0", + "_inBundle": false, + "_integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "_location": "/node-gyp/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yallist@4.0.0", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/node-gyp/lru-cache" + ], + "_resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "dependencies": {}, "description": "Yet Another Linked List", - "main": "yallist.js", + "devDependencies": { + "tap": "^12.1.0" + }, "directories": { "test": "test" }, @@ -10,20 +48,19 @@ "yallist.js", "iterator.js" ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", "repository": { "type": "git", "url": "git+https://github.com/isaacs/yallist.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-gyp/package.json b/admin/vue2/element-admin-v3/node_modules/node-gyp/package.json index 8e256f017..c3194ce38 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-gyp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-gyp/package.json @@ -1,26 +1,47 @@ { - "name": "node-gyp", - "description": "Node.js native addon build tool", - "license": "MIT", - "keywords": [ - "native", - "addon", - "module", - "c", - "c++", - "bindings", - "gyp" + "_args": [ + [ + "node-gyp@7.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "7.1.2", - "installVersion": 9, - "author": "Nathan Rajlich (http://tootallnate.net)", - "repository": { - "type": "git", - "url": "git://github.com/nodejs/node-gyp.git" + "_development": true, + "_from": "node-gyp@7.1.2", + "_id": "node-gyp@7.1.2", + "_inBundle": false, + "_integrity": "sha1-IagQrrsYcSAlHDvOyXmvFYexiK4=", + "_location": "/node-gyp", + "_phantomChildren": { + "glob": "7.1.7", + "isexe": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-gyp@7.1.2", + "name": "node-gyp", + "escapedName": "node-gyp", + "rawSpec": "7.1.2", + "saveSpec": null, + "fetchSpec": "7.1.2" + }, + "_requiredBy": [ + "/node-sass" + ], + "_resolved": "https://registry.nlark.com/node-gyp/download/node-gyp-7.1.2.tgz?cache=0&sync_timestamp=1622168102506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.1.2.tgz", + "_spec": "7.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://tootallnate.net" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "bugs": { + "url": "https://github.com/nodejs/node-gyp/issues" }, - "preferGlobal": true, - "bin": "./bin/node-gyp.js", - "main": "./lib/node-gyp.js", "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", @@ -33,9 +54,7 @@ "tar": "^6.0.2", "which": "^2.0.2" }, - "engines": { - "node": ">= 10.12.0" - }, + "description": "Node.js native addon build tool", "devDependencies": { "bindings": "^1.5.0", "nan": "^2.14.2", @@ -43,8 +62,31 @@ "standard": "^14.3.4", "tap": "^12.7.0" }, + "engines": { + "node": ">= 10.12.0" + }, + "homepage": "https://github.com/nodejs/node-gyp#readme", + "installVersion": 9, + "keywords": [ + "native", + "addon", + "module", + "c", + "c++", + "bindings", + "gyp" + ], + "license": "MIT", + "main": "./lib/node-gyp.js", + "name": "node-gyp", + "preferGlobal": true, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/node-gyp.git" + }, "scripts": { "lint": "standard */*.js test/**/*.js", "test": "npm run lint && tap --timeout=120 test/test-*" - } + }, + "version": "7.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/process/package.json b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/process/package.json index d2cfaade4..8e705fe99 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/process/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/process/package.json @@ -1,27 +1,62 @@ { - "author": "Roman Shtylman ", - "name": "process", + "_args": [ + [ + "process@0.11.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "process@0.11.10", + "_id": "process@0.11.10", + "_inBundle": false, + "_integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "_location": "/node-libs-browser/process", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "process@0.11.10", + "name": "process", + "escapedName": "process", + "rawSpec": "0.11.10", + "saveSpec": null, + "fetchSpec": "0.11.10" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "_spec": "0.11.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roman Shtylman", + "email": "shtylman@gmail.com" + }, + "browser": "./browser.js", + "bugs": { + "url": "https://github.com/shtylman/node-process/issues" + }, "description": "process information for node.js and browsers", + "devDependencies": { + "mocha": "2.2.1", + "zuul": "^3.10.3" + }, + "engines": { + "node": ">= 0.6.0" + }, + "homepage": "https://github.com/shtylman/node-process#readme", "keywords": [ "process" ], - "scripts": { - "test": "mocha test.js", - "browser": "zuul --no-coverage --ui mocha-bdd --local 8080 -- test.js" - }, - "version": "0.11.10", + "license": "MIT", + "main": "./index.js", + "name": "process", "repository": { "type": "git", "url": "git://github.com/shtylman/node-process.git" }, - "license": "MIT", - "browser": "./browser.js", - "main": "./index.js", - "engines": { - "node": ">= 0.6.0" + "scripts": { + "browser": "zuul --no-coverage --ui mocha-bdd --local 8080 -- test.js", + "test": "mocha test.js" }, - "devDependencies": { - "mocha": "2.2.1", - "zuul": "^3.10.3" - } + "version": "0.11.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/punycode/package.json b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/punycode/package.json index accb5306f..9085fa7e4 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/punycode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/punycode/package.json @@ -1,60 +1,90 @@ { - "name": "punycode", - "version": "1.4.1", - "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", - "homepage": "https://mths.be/punycode", - "main": "punycode.js", - "keywords": [ - "punycode", - "unicode", - "idn", - "idna", - "dns", - "url", - "domain" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "contributors": [ - { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - { - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/bestiejs/punycode.js.git" - }, - "bugs": "https://github.com/bestiejs/punycode.js/issues", - "files": [ - "LICENSE-MIT.txt", - "punycode.js" - ], - "scripts": { - "test": "node tests/tests.js" - }, - "devDependencies": { - "coveralls": "^2.11.4", - "grunt": "^0.4.5", - "grunt-contrib-uglify": "^0.11.0", - "grunt-shell": "^1.1.2", - "istanbul": "^0.4.1", - "qunit-extras": "^1.4.4", - "qunitjs": "~1.11.0", - "requirejs": "^2.1.22" - }, - "jspm": { - "map": { - "./punycode.js": { - "node": "@node/punycode" - } - } - } + "_args": [ + [ + "punycode@1.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "punycode@1.4.1", + "_id": "punycode@1.4.1", + "_inBundle": false, + "_integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "_location": "/node-libs-browser/punycode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "punycode@1.4.1", + "name": "punycode", + "escapedName": "punycode", + "rawSpec": "1.4.1", + "saveSpec": null, + "fetchSpec": "1.4.1" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "_spec": "1.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "contributors": [ + { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + { + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + } + ], + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "devDependencies": { + "coveralls": "^2.11.4", + "grunt": "^0.4.5", + "grunt-contrib-uglify": "^0.11.0", + "grunt-shell": "^1.1.2", + "istanbul": "^0.4.1", + "qunit-extras": "^1.4.4", + "qunitjs": "~1.11.0", + "requirejs": "^2.1.22" + }, + "files": [ + "LICENSE-MIT.txt", + "punycode.js" + ], + "homepage": "https://mths.be/punycode", + "jspm": { + "map": { + "./punycode.js": { + "node": "@node/punycode" + } + } + }, + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "license": "MIT", + "main": "punycode.js", + "name": "punycode", + "repository": { + "type": "git", + "url": "git+https://github.com/bestiejs/punycode.js.git" + }, + "scripts": { + "test": "node tests/tests.js" + }, + "version": "1.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer/package.json index f2869e256..9fee6d8a0 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer/package.json @@ -1,7 +1,32 @@ { - "name": "safe-buffer", - "description": "Safer Node.js Buffer API", - "version": "5.2.1", + "_args": [ + [ + "safe-buffer@5.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safe-buffer@5.2.1", + "_id": "safe-buffer@5.2.1", + "_inBundle": false, + "_integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "_location": "/node-libs-browser/string_decoder/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.2.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" + }, + "_requiredBy": [ + "/node-libs-browser/string_decoder" + ], + "_resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "_spec": "5.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -10,10 +35,25 @@ "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, + "description": "Safer Node.js Buffer API", "devDependencies": { "standard": "*", "tape": "^5.0.0" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "homepage": "https://github.com/feross/safe-buffer", "keywords": [ "buffer", @@ -26,7 +66,7 @@ ], "license": "MIT", "main": "index.js", - "types": "index.d.ts", + "name": "safe-buffer", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" @@ -34,18 +74,6 @@ "scripts": { "test": "standard && tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "types": "index.d.ts", + "version": "5.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/package.json b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/package.json index b2bb14116..c16bd054b 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/node_modules/string_decoder/package.json @@ -1,28 +1,48 @@ { - "name": "string_decoder", - "version": "1.3.0", - "description": "The string_decoder module from Node core", - "main": "lib/string_decoder.js", - "files": [ - "lib" + "_args": [ + [ + "string_decoder@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "string_decoder@1.3.0", + "_id": "string_decoder@1.3.0", + "_inBundle": false, + "_integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "_location": "/node-libs-browser/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string_decoder@1.3.0", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/node-libs-browser" ], + "_resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, "dependencies": { "safe-buffer": "~5.2.0" }, + "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "core-util-is": "^1.0.2", "inherits": "^2.0.3", "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/parallel/*.js && node test/verify-dependencies", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/string_decoder.git" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/nodejs/string_decoder", "keywords": [ "string", @@ -30,5 +50,16 @@ "browser", "browserify" ], - "license": "MIT" + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/package.json b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/package.json index 5ae8cd5ca..6d540c2de 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-libs-browser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-libs-browser/package.json @@ -1,11 +1,37 @@ { - "name": "node-libs-browser", - "version": "2.2.1", - "author": "Tobias Koppers @sokra", - "description": "The node core libs for in browser usage.", - "repository": { - "type": "git", - "url": "git+https://github.com/webpack/node-libs-browser.git" + "_args": [ + [ + "node-libs-browser@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "node-libs-browser@2.2.1", + "_id": "node-libs-browser@2.2.1", + "_inBundle": false, + "_integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "_location": "/node-libs-browser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-libs-browser@2.2.1", + "name": "node-libs-browser", + "escapedName": "node-libs-browser", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" + }, + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-libs-browser%2Fdownload%2Fnode-libs-browser-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/node-libs-browser/issues" }, "dependencies": { "assert": "^1.1.1", @@ -32,17 +58,21 @@ "util": "^0.11.0", "vm-browserify": "^1.0.1" }, - "homepage": "http://github.com/webpack/node-libs-browser", - "main": "index.js", + "description": "The node core libs for in browser usage.", "files": [ "index.js", "mock/" ], + "homepage": "http://github.com/webpack/node-libs-browser", + "license": "MIT", + "main": "index.js", + "name": "node-libs-browser", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/node-libs-browser.git" + }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "license": "MIT", - "bugs": { - "url": "https://github.com/webpack/node-libs-browser/issues" - } + "version": "2.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which index aece73531..cd9503c85 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../which/bin/node-which" "$@" + "$basedir/node" "$basedir/../which/bin/node-which" "$@" + ret=$? else - exec node "$basedir/../which/bin/node-which" "$@" + node "$basedir/../which/bin/node-which" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.cmd b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.cmd index 7eeb31642..937098a65 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\node-which" %* +"%_prog%" "%dp0%\..\which\bin\node-which" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.ps1 b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.ps1 index cfb09e844..60d6560f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/node-which.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../which/bin/node-which" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver index 77443e787..7e365277d 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + ret=$? else - exec node "$basedir/../semver/bin/semver.js" "$@" + node "$basedir/../semver/bin/semver.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.cmd b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.cmd index 7d4c104af..3493d8d96 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* +"%_prog%" "%dp0%\..\semver\bin\semver.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.ps1 b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.ps1 index 314717ad4..6a85e3405 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/semver.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../semver/bin/semver.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid index c3ec0035f..316d9ab47 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@" + "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@" + ret=$? else - exec node "$basedir/../uuid/dist/bin/uuid" "$@" + node "$basedir/../uuid/dist/bin/uuid" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.cmd b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.cmd index 5663d427b..aa9429b59 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %* +"%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.ps1 b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.ps1 index 78046284b..58e864b49 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/.bin/uuid.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/is-wsl/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/is-wsl/package.json index 2fa7f7542..e4cac6800 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/is-wsl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/is-wsl/package.json @@ -1,45 +1,81 @@ { - "name": "is-wsl", - "version": "2.2.0", - "description": "Check if the process is running inside Windows Subsystem for Linux (Bash on Windows)", - "license": "MIT", - "repository": "sindresorhus/is-wsl", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "check", - "wsl", - "windows", - "subsystem", - "linux", - "detect", - "bash", - "process", - "console", - "terminal", - "is" - ], - "dependencies": { - "is-docker": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "clear-module": "^3.2.0", - "proxyquire": "^2.1.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-wsl@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-wsl@2.2.0", + "_id": "is-wsl@2.2.0", + "_inBundle": false, + "_integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", + "_location": "/node-notifier/is-wsl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-wsl@2.2.0", + "name": "is-wsl", + "escapedName": "is-wsl", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/node-notifier" + ], + "_resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-wsl/issues" + }, + "dependencies": { + "is-docker": "^2.0.0" + }, + "description": "Check if the process is running inside Windows Subsystem for Linux (Bash on Windows)", + "devDependencies": { + "ava": "^1.4.1", + "clear-module": "^3.2.0", + "proxyquire": "^2.1.0", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-wsl#readme", + "keywords": [ + "check", + "wsl", + "windows", + "subsystem", + "linux", + "detect", + "bash", + "process", + "console", + "terminal", + "is" + ], + "license": "MIT", + "name": "is-wsl", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-wsl.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/lru-cache/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/lru-cache/package.json index 43b7502c3..e8a05eb7b 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/lru-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/lru-cache/package.json @@ -1,34 +1,73 @@ { - "name": "lru-cache", - "description": "A cache object that deletes the least-recently-used items.", - "version": "6.0.0", - "author": "Isaac Z. Schlueter ", - "keywords": [ - "mru", - "lru", - "cache" + "_args": [ + [ + "lru-cache@6.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" + "_development": true, + "_from": "lru-cache@6.0.0", + "_id": "lru-cache@6.0.0", + "_inBundle": false, + "_integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "_location": "/node-notifier/lru-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "lru-cache@6.0.0", + "name": "lru-cache", + "escapedName": "lru-cache", + "rawSpec": "6.0.0", + "saveSpec": null, + "fetchSpec": "6.0.0" }, - "main": "index.js", - "repository": "git://github.com/isaacs/node-lru-cache.git", + "_requiredBy": [ + "/node-notifier/semver" + ], + "_resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", + "_spec": "6.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + "bugs": { + "url": "https://github.com/isaacs/node-lru-cache/issues" + }, + "dependencies": { + "yallist": "^4.0.0" + }, + "description": "A cache object that deletes the least-recently-used items.", "devDependencies": { "benchmark": "^2.1.4", "tap": "^14.10.7" }, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "engines": { + "node": ">=10" }, "files": [ "index.js" ], - "engines": { - "node": ">=10" - } + "homepage": "https://github.com/isaacs/node-lru-cache#readme", + "keywords": [ + "mru", + "lru", + "cache" + ], + "license": "ISC", + "main": "index.js", + "name": "lru-cache", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-lru-cache.git" + }, + "scripts": { + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "snap": "tap", + "test": "tap" + }, + "version": "6.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/semver/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/semver/package.json index 4e1154195..08eeba53f 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/semver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/semver/package.json @@ -1,22 +1,48 @@ { - "name": "semver", - "version": "7.3.5", - "description": "The semantic version parser used by npm.", - "main": "index.js", - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "_args": [ + [ + "semver@7.3.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "semver@7.3.5", + "_id": "semver@7.3.5", + "_inBundle": false, + "_integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "_location": "/node-notifier/semver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "semver@7.3.5", + "name": "semver", + "escapedName": "semver", + "rawSpec": "7.3.5", + "saveSpec": null, + "fetchSpec": "7.3.5" + }, + "_requiredBy": [ + "/node-notifier" + ], + "_resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", + "_spec": "7.3.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "semver": "bin/semver.js" }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" + }, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "description": "The semantic version parser used by npm.", "devDependencies": { "tap": "^14.10.7" }, - "license": "ISC", - "repository": "https://github.com/npm/node-semver", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=10" }, "files": [ "bin/**/*.js", @@ -28,14 +54,24 @@ "index.js", "preload.js" ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "index.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "snap": "tap", + "test": "tap" + }, "tap": { "check-coverage": true, "coverage-map": "map.js" }, - "engines": { - "node": ">=10" - }, - "dependencies": { - "lru-cache": "^6.0.0" - } + "version": "7.3.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/uuid/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/uuid/package.json index f0ab3711e..70a6cc3be 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/uuid/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/uuid/package.json @@ -1,49 +1,51 @@ { - "name": "uuid", - "version": "8.3.2", - "description": "RFC4122 (v1, v4, and v5) UUIDs", - "commitlint": { - "extends": [ - "@commitlint/config-conventional" + "_args": [ + [ + "uuid@8.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "uuid@8.3.2", + "_id": "uuid@8.3.2", + "_inBundle": false, + "_integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", + "_location": "/node-notifier/uuid", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uuid@8.3.2", + "name": "uuid", + "escapedName": "uuid", + "rawSpec": "8.3.2", + "saveSpec": null, + "fetchSpec": "8.3.2" }, - "keywords": [ - "uuid", - "guid", - "rfc4122" + "_requiredBy": [ + "/node-notifier" ], - "license": "MIT", + "_resolved": "https://registry.nlark.com/uuid/download/uuid-8.3.2.tgz", + "_spec": "8.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "bin": { - "uuid": "./dist/bin/uuid" + "uuid": "dist/bin/uuid" }, - "sideEffects": false, - "main": "./dist/index.js", - "exports": { - ".": { - "node": { - "module": "./dist/esm-node/index.js", - "require": "./dist/index.js", - "import": "./wrapper.mjs" - }, - "default": "./dist/esm-browser/index.js" - }, - "./package.json": "./package.json" - }, - "module": "./dist/esm-node/index.js", "browser": { "./dist/md5.js": "./dist/md5-browser.js", "./dist/rng.js": "./dist/rng-browser.js", "./dist/sha1.js": "./dist/sha1-browser.js", "./dist/esm-node/index.js": "./dist/esm-browser/index.js" }, - "files": [ - "CHANGELOG.md", - "CONTRIBUTING.md", - "LICENSE.md", - "README.md", - "dist", - "wrapper.mjs" - ], + "bugs": { + "url": "https://github.com/uuidjs/uuid/issues" + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "description": "RFC4122 (v1, v4, and v5) UUIDs", "devDependencies": { "@babel/cli": "7.11.6", "@babel/core": "7.11.6", @@ -73,6 +75,49 @@ "runmd": "1.3.2", "standard-version": "9.0.0" }, + "exports": { + ".": { + "node": { + "module": "./dist/esm-node/index.js", + "require": "./dist/index.js", + "import": "./wrapper.mjs" + }, + "default": "./dist/esm-browser/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "CHANGELOG.md", + "CONTRIBUTING.md", + "LICENSE.md", + "README.md", + "dist", + "wrapper.mjs" + ], + "homepage": "https://github.com/uuidjs/uuid#readme", + "husky": { + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "uuid", + "guid", + "rfc4122" + ], + "license": "MIT", + "lint-staged": { + "*.{js,jsx,json,md}": [ + "prettier --write" + ], + "*.{js,jsx}": [ + "eslint --fix" + ] + }, + "main": "./dist/index.js", + "module": "./dist/esm-node/index.js", + "name": "uuid", "optionalDevDependencies": { "@wdio/browserstack-service": "6.4.0", "@wdio/cli": "6.4.0", @@ -82,54 +127,42 @@ "@wdio/static-server-service": "6.4.0", "@wdio/sync": "6.4.0" }, + "repository": { + "type": "git", + "url": "git+https://github.com/uuidjs/uuid.git" + }, "scripts": { - "examples:browser:webpack:build": "cd examples/browser-webpack && npm install && npm run build", + "build": "./scripts/build.sh", + "bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json", + "docs": "( node --version | grep -q 'v12' ) && ( npm run build && runmd --output=README.md README_js.md )", + "docs:diff": "npm run docs && git diff --quiet README.md", + "eslint:check": "eslint src/ test/ examples/ *.js", + "eslint:fix": "eslint --fix src/ test/ examples/ *.js", "examples:browser:rollup:build": "cd examples/browser-rollup && npm install && npm run build", + "examples:browser:webpack:build": "cd examples/browser-webpack && npm install && npm run build", "examples:node:commonjs:test": "cd examples/node-commonjs && npm install && npm test", "examples:node:esmodules:test": "cd examples/node-esmodules && npm install && npm test", "lint": "npm run eslint:check && npm run prettier:check", - "eslint:check": "eslint src/ test/ examples/ *.js", - "eslint:fix": "eslint --fix src/ test/ examples/ *.js", + "md": "runmd --watch --output=README.md README_js.md", + "prepack": "npm run build", "pretest": "[ -n $CI ] || npm run build", - "test": "BABEL_ENV=commonjs node --throw-deprecation node_modules/.bin/jest test/unit/", + "pretest:benchmark": "npm run build", "pretest:browser": "optional-dev-dependency && npm run build && npm-run-all --parallel examples:browser:**", - "test:browser": "wdio run ./wdio.conf.js", "pretest:node": "npm run build", - "test:node": "npm-run-all --parallel examples:node:**", - "test:pack": "./scripts/testpack.sh", - "pretest:benchmark": "npm run build", - "test:benchmark": "cd examples/benchmark && npm install && npm test", "prettier:check": "prettier --ignore-path .prettierignore --check '**/*.{js,jsx,json,md}'", "prettier:fix": "prettier --ignore-path .prettierignore --write '**/*.{js,jsx,json,md}'", - "bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json", - "md": "runmd --watch --output=README.md README_js.md", - "docs": "( node --version | grep -q 'v12' ) && ( npm run build && runmd --output=README.md README_js.md )", - "docs:diff": "npm run docs && git diff --quiet README.md", - "build": "./scripts/build.sh", - "prepack": "npm run build", - "release": "standard-version --no-verify" - }, - "repository": { - "type": "git", - "url": "https://github.com/uuidjs/uuid.git" - }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.{js,jsx,json,md}": [ - "prettier --write" - ], - "*.{js,jsx}": [ - "eslint --fix" - ] + "release": "standard-version --no-verify", + "test": "BABEL_ENV=commonjs node --throw-deprecation node_modules/.bin/jest test/unit/", + "test:benchmark": "cd examples/benchmark && npm install && npm test", + "test:browser": "wdio run ./wdio.conf.js", + "test:node": "npm-run-all --parallel examples:node:**", + "test:pack": "./scripts/testpack.sh" }, + "sideEffects": false, "standard-version": { "scripts": { "postchangelog": "prettier --write CHANGELOG.md" } - } + }, + "version": "8.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/which/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/which/package.json index 97ad7fbab..2ecc7afcd 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/which/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/which/package.json @@ -1,43 +1,80 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "2.0.2", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" + "_args": [ + [ + "which@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "which@2.0.2", + "_id": "which@2.0.2", + "_inBundle": false, + "_integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "_location": "/node-notifier/which", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "which@2.0.2", + "name": "which", + "escapedName": "which", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/node-notifier" + ], + "_resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" }, - "main": "which.js", "bin": { - "node-which": "./bin/node-which" + "node-which": "bin/node-which" + }, + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" }, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.6.2", "tap": "^14.6.9" }, - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublish": "npm run changelog", - "prechangelog": "bash gen-changelog.sh", - "changelog": "git add CHANGELOG.md", - "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", - "postpublish": "git push origin --follow-tags" + "engines": { + "node": ">= 8" }, "files": [ "which.js", "bin/node-which" ], + "homepage": "https://github.com/isaacs/node-which#readme", + "license": "ISC", + "main": "which.js", + "name": "which", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "scripts": { + "changelog": "git add CHANGELOG.md", + "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "prechangelog": "bash gen-changelog.sh", + "prepublish": "npm run changelog", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true }, - "engines": { - "node": ">= 8" - } + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/yallist/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/yallist/package.json index 8a083867d..b9e60b2ff 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/yallist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/node_modules/yallist/package.json @@ -1,8 +1,46 @@ { - "name": "yallist", - "version": "4.0.0", + "_args": [ + [ + "yallist@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yallist@4.0.0", + "_id": "yallist@4.0.0", + "_inBundle": false, + "_integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "_location": "/node-notifier/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yallist@4.0.0", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/node-notifier/lru-cache" + ], + "_resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "dependencies": {}, "description": "Yet Another Linked List", - "main": "yallist.js", + "devDependencies": { + "tap": "^12.1.0" + }, "directories": { "test": "test" }, @@ -10,20 +48,19 @@ "yallist.js", "iterator.js" ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", "repository": { "type": "git", "url": "git+https://github.com/isaacs/yallist.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-notifier/package.json b/admin/vue2/element-admin-v3/node_modules/node-notifier/package.json index eda73bfe0..54e9584e9 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-notifier/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-notifier/package.json @@ -1,42 +1,51 @@ { - "name": "node-notifier", - "version": "9.0.0", - "description": "A Node.js module for sending notifications on native Mac, Windows (post and pre 8) and Linux (or Growl as fallback)", - "main": "index.js", - "scripts": { - "pretest": "npm run lint", - "test": "jest", - "example": "node ./example/message.js", - "example:mac": "node ./example/advanced.js", - "example:mac:input": "node ./example/macInput.js", - "example:windows": "node ./example/toaster.js", - "example:windows:actions": "node ./example/toaster-with-actions.js", - "lint": "eslint example/*.js lib/*.js notifiers/*.js test/**/*.js index.js" - }, - "jest": { - "testRegex": "/test/[^_]*.js", - "testEnvironment": "node", - "setupFilesAfterEnv": [ - "./test/_test-matchers.js" + "_args": [ + [ + "node-notifier@9.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "node-notifier@9.0.0", + "_id": "node-notifier@9.0.0", + "_inBundle": false, + "_integrity": "sha1-RsW77Lt5bUqAP2Rs6lvJFAPy/zg=", + "_location": "/node-notifier", + "_phantomChildren": { + "is-docker": "2.2.1", + "isexe": "2.0.0" }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/mikaelbr/node-notifier.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "node-notifier@9.0.0", + "name": "node-notifier", + "escapedName": "node-notifier", + "rawSpec": "9.0.0", + "saveSpec": null, + "fetchSpec": "9.0.0" }, - "keywords": [ - "notification center", - "mac os x 10.8", - "notify", - "terminal-notifier", - "notify-send", - "growl", - "windows 8 notification", - "toaster", - "notification" + "_requiredBy": [ + "#DEV:/" ], - "author": "Mikael Brevik", - "license": "MIT", + "_resolved": "https://registry.nlark.com/node-notifier/download/node-notifier-9.0.0.tgz?cache=0&sync_timestamp=1621962335259&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-notifier%2Fdownload%2Fnode-notifier-9.0.0.tgz", + "_spec": "9.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikael Brevik" + }, + "bugs": { + "url": "https://github.com/mikaelbr/node-notifier/issues" + }, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "description": "A Node.js module for sending notifications on native Mac, Windows (post and pre 8) and Linux (or Growl as fallback)", "devDependencies": { "eslint": "^7.6.0", "eslint-config-semistandard": "^15.0.1", @@ -50,31 +59,56 @@ "lint-staged": "^10.2.11", "prettier": "^2.0.5" }, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" + "directories": { + "example": "example", + "test": "test" }, + "homepage": "https://github.com/mikaelbr/node-notifier#readme", "husky": { "hooks": { "pre-commit": "lint-staged" } }, + "jest": { + "testRegex": "/test/[^_]*.js", + "testEnvironment": "node", + "setupFilesAfterEnv": [ + "./test/_test-matchers.js" + ] + }, + "keywords": [ + "notification center", + "mac os x 10.8", + "notify", + "terminal-notifier", + "notify-send", + "growl", + "windows 8 notification", + "toaster", + "notification" + ], + "license": "MIT", "lint-staged": { "*.{js,json,css,md}": [ "prettier --write", "git add" ] }, - "bugs": { - "url": "https://github.com/mikaelbr/node-notifier/issues" + "main": "index.js", + "name": "node-notifier", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mikaelbr/node-notifier.git" }, - "homepage": "https://github.com/mikaelbr/node-notifier#readme", - "directories": { - "example": "example", - "test": "test" - } + "scripts": { + "example": "node ./example/message.js", + "example:mac": "node ./example/advanced.js", + "example:mac:input": "node ./example/macInput.js", + "example:windows": "node ./example/toaster.js", + "example:windows:actions": "node ./example/toaster-with-actions.js", + "lint": "eslint example/*.js lib/*.js notifiers/*.js test/**/*.js index.js", + "pretest": "npm run lint", + "test": "jest" + }, + "version": "9.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-releases/package.json b/admin/vue2/element-admin-v3/node_modules/node-releases/package.json index fe056c61a..8783f7427 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-releases/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-releases/package.json @@ -1,24 +1,66 @@ { - "name": "node-releases", - "version": "1.1.73", - "description": "Node.js releases data", - "scripts": { - "build": "npm run fetch && npm run process", - "fetch": "node scripts/fetch.js", - "process": "node scripts/process.js" + "_args": [ + [ + "node-releases@1.1.73", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "node-releases@1.1.73", + "_id": "node-releases@1.1.73", + "_inBundle": false, + "_integrity": "sha1-3U6B3dUnf/hGuAtSu0DEnt96eyA=", + "_location": "/node-releases", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-releases@1.1.73", + "name": "node-releases", + "escapedName": "node-releases", + "rawSpec": "1.1.73", + "saveSpec": null, + "fetchSpec": "1.1.73" }, - "repository": { - "type": "git", - "url": "git+https://github.com/chicoxyzzy/node-releases.git" + "_requiredBy": [ + "/caniuse-api/browserslist", + "/postcss-colormin/browserslist", + "/postcss-merge-rules/browserslist", + "/postcss-minify-params/browserslist", + "/postcss-normalize-unicode/browserslist", + "/postcss-reduce-initial/browserslist", + "/stylehacks/browserslist" + ], + "_resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.73.tgz", + "_spec": "1.1.73", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sergey Rubanov", + "email": "chi187@gmail.com" + }, + "bugs": { + "url": "https://github.com/chicoxyzzy/node-releases/issues" + }, + "dependencies": {}, + "description": "Node.js releases data", + "devDependencies": { + "semver": "^6.3.0" }, + "homepage": "https://github.com/chicoxyzzy/node-releases#readme", "keywords": [ "nodejs", "releases" ], - "author": "Sergey Rubanov ", "license": "MIT", - "dependencies": {}, - "devDependencies": { - "semver": "^6.3.0" - } + "name": "node-releases", + "repository": { + "type": "git", + "url": "git+https://github.com/chicoxyzzy/node-releases.git" + }, + "scripts": { + "build": "npm run fetch && npm run process", + "fetch": "node scripts/fetch.js", + "process": "node scripts/process.js" + }, + "version": "1.1.73" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which index aece73531..cd9503c85 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../which/bin/node-which" "$@" + "$basedir/node" "$basedir/../which/bin/node-which" "$@" + ret=$? else - exec node "$basedir/../which/bin/node-which" "$@" + node "$basedir/../which/bin/node-which" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.cmd b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.cmd index 7eeb31642..937098a65 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.cmd +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\node-which" %* +"%_prog%" "%dp0%\..\which\bin\node-which" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.ps1 b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.ps1 index cfb09e844..60d6560f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/.bin/node-which.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../which/bin/node-which" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/chalk/package.json index 2b5881e9a..12dba5d2f 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/chalk/package.json @@ -1,26 +1,61 @@ { - "name": "chalk", - "version": "1.1.3", - "description": "Terminal string styling done right. Much color.", - "license": "MIT", - "repository": "chalk/chalk", - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" + "_args": [ + [ + "chalk@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@1.1.3", + "_id": "chalk@1.1.3", + "_inBundle": false, + "_integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "_location": "/node-sass/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@1.1.3", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/node-sass" ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "description": "Terminal string styling done right. Much color.", + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && mocha", - "bench": "matcha benchmark.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/chalk#readme", "keywords": [ "color", "colour", @@ -44,23 +79,36 @@ "command-line", "text" ], - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" }, - "devDependencies": { - "coveralls": "^2.11.2", - "matcha": "^0.6.0", - "mocha": "*", - "nyc": "^3.0.0", - "require-uncached": "^1.0.2", - "resolve-from": "^1.0.0", - "semver": "^4.3.3", - "xo": "*" + "scripts": { + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "test": "xo && mocha" }, + "version": "1.1.3", "xo": { "envs": [ "node", diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/cross-spawn/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/cross-spawn/package.json index 232ff97e0..a7ea61205 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/cross-spawn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/cross-spawn/package.json @@ -1,46 +1,39 @@ { - "name": "cross-spawn", - "version": "7.0.3", - "description": "Cross platform child_process#spawn and child_process#spawnSync", - "keywords": [ - "spawn", - "spawnSync", - "windows", - "cross-platform", - "path-ext", - "shebang", - "cmd", - "execute" + "_args": [ + [ + "cross-spawn@7.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "André Cruz ", - "homepage": "https://github.com/moxystudio/node-cross-spawn", - "repository": { - "type": "git", - "url": "git@github.com:moxystudio/node-cross-spawn.git" + "_development": true, + "_from": "cross-spawn@7.0.3", + "_id": "cross-spawn@7.0.3", + "_inBundle": false, + "_integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "_location": "/node-sass/cross-spawn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cross-spawn@7.0.3", + "name": "cross-spawn", + "escapedName": "cross-spawn", + "rawSpec": "7.0.3", + "saveSpec": null, + "fetchSpec": "7.0.3" }, - "license": "MIT", - "main": "index.js", - "files": [ - "lib" + "_requiredBy": [ + "/node-sass" ], - "scripts": { - "lint": "eslint .", - "test": "jest --env node --coverage", - "prerelease": "npm t && npm run lint", - "release": "standard-version", - "postrelease": "git push --follow-tags origin HEAD && npm publish" - }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } + "_resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "_spec": "7.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "André Cruz", + "email": "andre@moxy.studio" }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] + "bugs": { + "url": "https://github.com/moxystudio/node-cross-spawn/issues" }, "commitlint": { "extends": [ @@ -52,6 +45,7 @@ "shebang-command": "^2.0.0", "which": "^2.0.1" }, + "description": "Cross platform child_process#spawn and child_process#spawnSync", "devDependencies": { "@commitlint/cli": "^8.1.0", "@commitlint/config-conventional": "^8.1.0", @@ -69,5 +63,46 @@ }, "engines": { "node": ">= 8" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/moxystudio/node-cross-spawn", + "husky": { + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "spawn", + "spawnSync", + "windows", + "cross-platform", + "path-ext", + "shebang", + "cmd", + "execute" + ], + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "index.js", + "name": "cross-spawn", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/moxystudio/node-cross-spawn.git" + }, + "scripts": { + "lint": "eslint .", + "postrelease": "git push --follow-tags origin HEAD && npm publish", + "prerelease": "npm t && npm run lint", + "release": "standard-version", + "test": "jest --env node --coverage" + }, + "version": "7.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/path-key/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/path-key/package.json index c8cbd383a..08be4b500 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/path-key/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/path-key/package.json @@ -1,39 +1,75 @@ { - "name": "path-key", - "version": "3.1.1", - "description": "Get the PATH environment variable key cross-platform", - "license": "MIT", - "repository": "sindresorhus/path-key", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "path", - "key", - "environment", - "env", - "variable", - "var", - "get", - "cross-platform", - "windows" - ], - "devDependencies": { - "@types/node": "^11.13.0", - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "path-key@3.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "path-key@3.1.1", + "_id": "path-key@3.1.1", + "_inBundle": false, + "_integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "_location": "/node-sass/path-key", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-key@3.1.1", + "name": "path-key", + "escapedName": "path-key", + "rawSpec": "3.1.1", + "saveSpec": null, + "fetchSpec": "3.1.1" + }, + "_requiredBy": [ + "/node-sass/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971613935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", + "_spec": "3.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/path-key/issues" + }, + "description": "Get the PATH environment variable key cross-platform", + "devDependencies": { + "@types/node": "^11.13.0", + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/path-key#readme", + "keywords": [ + "path", + "key", + "environment", + "env", + "variable", + "var", + "get", + "cross-platform", + "windows" + ], + "license": "MIT", + "name": "path-key", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-key.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "3.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-command/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-command/package.json index 18e3c0463..685fba089 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-command/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-command/package.json @@ -1,34 +1,70 @@ { - "name": "shebang-command", - "version": "2.0.0", - "description": "Get the command from a shebang", - "license": "MIT", - "repository": "kevva/shebang-command", - "author": { - "name": "Kevin Mårtensson", - "email": "kevinmartensson@gmail.com", - "url": "github.com/kevva" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "cmd", - "command", - "parse", - "shebang" - ], - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "devDependencies": { - "ava": "^2.3.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "shebang-command@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "shebang-command@2.0.0", + "_id": "shebang-command@2.0.0", + "_inBundle": false, + "_integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "_location": "/node-sass/shebang-command", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shebang-command@2.0.0", + "name": "shebang-command", + "escapedName": "shebang-command", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/node-sass/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "bugs": { + "url": "https://github.com/kevva/shebang-command/issues" + }, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "description": "Get the command from a shebang", + "devDependencies": { + "ava": "^2.3.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/kevva/shebang-command#readme", + "keywords": [ + "cmd", + "command", + "parse", + "shebang" + ], + "license": "MIT", + "name": "shebang-command", + "repository": { + "type": "git", + "url": "git+https://github.com/kevva/shebang-command.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-regex/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-regex/package.json index 00ab30fee..6d8af2511 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/shebang-regex/package.json @@ -1,35 +1,71 @@ { - "name": "shebang-regex", - "version": "3.0.0", - "description": "Regular expression for matching a shebang line", - "license": "MIT", - "repository": "sindresorhus/shebang-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "regex", - "regexp", - "shebang", - "match", - "test", - "line" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "shebang-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "shebang-regex@3.0.0", + "_id": "shebang-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "_location": "/node-sass/shebang-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shebang-regex@3.0.0", + "name": "shebang-regex", + "escapedName": "shebang-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/node-sass/shebang-command" + ], + "_resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/shebang-regex/issues" + }, + "description": "Regular expression for matching a shebang line", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/shebang-regex#readme", + "keywords": [ + "regex", + "regexp", + "shebang", + "match", + "test", + "line" + ], + "license": "MIT", + "name": "shebang-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/shebang-regex.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/which/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/which/package.json index 97ad7fbab..52583b6b4 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/which/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/node_modules/which/package.json @@ -1,43 +1,80 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "2.0.2", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" + "_args": [ + [ + "which@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "which@2.0.2", + "_id": "which@2.0.2", + "_inBundle": false, + "_integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "_location": "/node-sass/which", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "which@2.0.2", + "name": "which", + "escapedName": "which", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/node-sass/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" }, - "main": "which.js", "bin": { - "node-which": "./bin/node-which" + "node-which": "bin/node-which" + }, + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" }, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.6.2", "tap": "^14.6.9" }, - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublish": "npm run changelog", - "prechangelog": "bash gen-changelog.sh", - "changelog": "git add CHANGELOG.md", - "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", - "postpublish": "git push origin --follow-tags" + "engines": { + "node": ">= 8" }, "files": [ "which.js", "bin/node-which" ], + "homepage": "https://github.com/isaacs/node-which#readme", + "license": "ISC", + "main": "which.js", + "name": "which", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "scripts": { + "changelog": "git add CHANGELOG.md", + "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "prechangelog": "bash gen-changelog.sh", + "prepublish": "npm run changelog", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true }, - "engines": { - "node": ">= 8" - } + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/node-sass/package.json b/admin/vue2/element-admin-v3/node_modules/node-sass/package.json index bd26cb1af..c587b3bcd 100644 --- a/admin/vue2/element-admin-v3/node_modules/node-sass/package.json +++ b/admin/vue2/element-admin-v3/node_modules/node-sass/package.json @@ -1,57 +1,51 @@ { - "name": "node-sass", - "version": "5.0.0", - "libsass": "3.5.5", - "description": "Wrapper around libsass", - "license": "MIT", - "bugs": "https://github.com/sass/node-sass/issues", - "homepage": "https://github.com/sass/node-sass", - "repository": { - "type": "git", - "url": "https://github.com/sass/node-sass" + "_args": [ + [ + "node-sass@5.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "node-sass@5.0.0", + "_id": "node-sass@5.0.0", + "_inBundle": false, + "_integrity": "sha1-To85++87rI0txy6+O1OXEYg6eNI=", + "_location": "/node-sass", + "_phantomChildren": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "isexe": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "node-sass@5.0.0", + "name": "node-sass", + "escapedName": "node-sass", + "rawSpec": "5.0.0", + "saveSpec": null, + "fetchSpec": "5.0.0" }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/node-sass/download/node-sass-5.0.0.tgz", + "_spec": "5.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Andrew Nesbitt", "email": "andrewnez@gmail.com", "url": "http://andrew.github.com" }, - "engines": { - "node": ">=10" - }, - "main": "lib/index.js", - "nodeSassConfig": { - "binarySite": "https://github.com/sass/node-sass/releases/download" - }, "bin": { "node-sass": "bin/node-sass" }, - "gypfile": true, - "scripts": { - "coverage": "nyc npm run test", - "install": "node scripts/install.js", - "postinstall": "node scripts/build.js", - "lint": "eslint bin/node-sass lib scripts test", - "test": "mocha test/{*,**/**}.js", - "build": "node scripts/build.js --force", - "prepublishOnly ": "scripts/prepublish.js" + "bugs": { + "url": "https://github.com/sass/node-sass/issues" }, - "files": [ - "bin", - "binding.gyp", - "lib", - "scripts", - "src", - "test", - "vendor" - ], - "keywords": [ - "css", - "libsass", - "preprocessor", - "sass", - "scss", - "style" - ], "dependencies": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", @@ -70,6 +64,7 @@ "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, + "description": "Wrapper around libsass", "devDependencies": { "eslint": "^7.10.0", "fs-extra": "^0.30.0", @@ -77,5 +72,48 @@ "nyc": "^15.1.0", "rimraf": "^3.0.2", "unique-temp-dir": "^1.0.0" - } + }, + "engines": { + "node": ">=10" + }, + "files": [ + "bin", + "binding.gyp", + "lib", + "scripts", + "src", + "test", + "vendor" + ], + "gypfile": true, + "homepage": "https://github.com/sass/node-sass", + "keywords": [ + "css", + "libsass", + "preprocessor", + "sass", + "scss", + "style" + ], + "libsass": "3.5.5", + "license": "MIT", + "main": "lib/index.js", + "name": "node-sass", + "nodeSassConfig": { + "binarySite": "https://github.com/sass/node-sass/releases/download" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sass/node-sass.git" + }, + "scripts": { + "build": "node scripts/build.js --force", + "coverage": "nyc npm run test", + "install": "node scripts/install.js", + "lint": "eslint bin/node-sass lib scripts test", + "postinstall": "node scripts/build.js", + "prepublishOnly ": "scripts/prepublish.js", + "test": "mocha test/{*,**/**}.js" + }, + "version": "5.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi index c920a027c..b039dc6d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../strip-ansi/cli.js" "$@" + "$basedir/node" "$basedir/../strip-ansi/cli.js" "$@" + ret=$? else - exec node "$basedir/../strip-ansi/cli.js" "$@" + node "$basedir/../strip-ansi/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.cmd b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.cmd index 2b1660638..c334f58f1 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.cmd +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\strip-ansi\cli.js" %* +"%_prog%" "%dp0%\..\strip-ansi\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.ps1 b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.ps1 index 37b2e39d0..0dba0cde2 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/.bin/strip-ansi.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../strip-ansi/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../strip-ansi/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../strip-ansi/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../strip-ansi/cli.js" $args - } else { - & "node$exe" "$basedir/../strip-ansi/cli.js" $args - } + & "node$exe" "$basedir/../strip-ansi/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/ansi-styles/package.json index f0af5291d..338d32e4d 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/ansi-styles/package.json @@ -1,7 +1,51 @@ { - "name": "ansi-styles", - "version": "1.0.0", + "_args": [ + [ + "ansi-styles@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-styles@1.0.0", + "_id": "ansi-styles@1.0.0", + "_inBundle": false, + "_integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "_location": "/nomnom/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@1.0.0", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/nomnom/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-1.0.0.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/ansi-styles/issues" + }, "description": "ANSI escape codes for colorizing strings in the terminal", + "devDependencies": { + "mocha": "~1.12.0" + }, + "engines": { + "node": ">=0.8.0" + }, + "files": [ + "ansi-styles.js" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", "keywords": [ "ansi", "styles", @@ -24,18 +68,9 @@ "command-line", "text" ], - "homepage": "https://github.com/sindresorhus/ansi-styles", - "bugs": "https://github.com/sindresorhus/ansi-styles/issues", "license": "MIT", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "http://sindresorhus.com" - }, - "files": [ - "ansi-styles.js" - ], "main": "ansi-styles", + "name": "ansi-styles", "repository": { "type": "git", "url": "git://github.com/sindresorhus/ansi-styles.git" @@ -43,10 +78,5 @@ "scripts": { "test": "mocha" }, - "devDependencies": { - "mocha": "~1.12.0" - }, - "engines": { - "node": ">=0.8.0" - } + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/chalk/package.json index 448f75aac..af639b96a 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/chalk/package.json @@ -1,23 +1,56 @@ { - "name": "chalk", - "version": "0.4.0", - "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", - "license": "MIT", - "repository": "sindresorhus/chalk", + "_args": [ + [ + "chalk@0.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "chalk@0.4.0", + "_id": "chalk@0.4.0", + "_inBundle": false, + "_integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "_location": "/nomnom/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@0.4.0", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "0.4.0", + "saveSpec": null, + "fetchSpec": "0.4.0" + }, + "_requiredBy": [ + "/nomnom" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-0.4.0.tgz", + "_spec": "0.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/chalk/issues" + }, + "dependencies": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + }, + "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", + "devDependencies": { + "mocha": "~1.x" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/chalk#readme", "keywords": [ "color", "colour", @@ -39,12 +72,14 @@ "command-line", "text" ], - "dependencies": { - "has-color": "~0.1.0", - "ansi-styles": "~1.0.0", - "strip-ansi": "~0.1.0" + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/chalk.git" }, - "devDependencies": { - "mocha": "~1.x" - } + "scripts": { + "test": "mocha" + }, + "version": "0.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/strip-ansi/package.json index 406b90164..fa3107089 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/node_modules/strip-ansi/package.json @@ -1,27 +1,55 @@ { - "name": "strip-ansi", - "version": "0.1.1", - "description": "Strip ANSI escape codes (used for colorizing strings in the terminal)", - "license": "MIT", - "bin": { - "strip-ansi": "cli.js" + "_args": [ + [ + "strip-ansi@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "strip-ansi@0.1.1", + "_id": "strip-ansi@0.1.1", + "_inBundle": false, + "_integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "_location": "/nomnom/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@0.1.1", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "repository": "sindresorhus/strip-ansi", + "_requiredBy": [ + "/nomnom/chalk" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-0.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bin": { + "strip-ansi": "cli.js" + }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-ansi/issues" + }, + "description": "Strip ANSI escape codes (used for colorizing strings in the terminal)", + "devDependencies": { + "mocha": "~1.x" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js", "cli.js" ], + "homepage": "https://github.com/sindresorhus/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -47,7 +75,14 @@ "command-line", "text" ], - "devDependencies": { - "mocha": "~1.x" - } + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-ansi.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/nomnom/package.json b/admin/vue2/element-admin-v3/node_modules/nomnom/package.json index 6556f5889..9265b758c 100644 --- a/admin/vue2/element-admin-v3/node_modules/nomnom/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nomnom/package.json @@ -1,16 +1,50 @@ { - "name": "nomnom", - "description": "Option parser with generated usage and commands", - "version": "1.8.1", - "author": "Heather Arthur ", - "scripts": { - "test": "./node_modules/.bin/nodeunit test/*.js" + "_args": [ + [ + "nomnom@1.8.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "nomnom@1.8.1", + "_id": "nomnom@1.8.1", + "_inBundle": false, + "_integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "_location": "/nomnom", + "_phantomChildren": { + "has-color": "0.1.7" }, - "repository": { - "type": "git", - "url": "http://github.com/harthur/nomnom.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "nomnom@1.8.1", + "name": "nomnom", + "escapedName": "nomnom", + "rawSpec": "1.8.1", + "saveSpec": null, + "fetchSpec": "1.8.1" }, - "main": "./nomnom", + "_requiredBy": [ + "/jsonlint" + ], + "_resolved": "https://registry.npm.taobao.org/nomnom/download/nomnom-1.8.1.tgz", + "_spec": "1.8.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + "bugs": { + "url": "https://github.com/harthur/nomnom/issues" + }, + "dependencies": { + "chalk": "~0.4.0", + "underscore": "~1.6.0" + }, + "description": "Option parser with generated usage and commands", + "devDependencies": { + "nodeunit": "~0.7.4" + }, + "homepage": "https://github.com/harthur/nomnom#readme", "keywords": [ "arguments", "option parser", @@ -18,11 +52,14 @@ "options", "parser" ], - "dependencies": { - "underscore": "~1.6.0", - "chalk": "~0.4.0" + "main": "./nomnom", + "name": "nomnom", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/harthur/nomnom.git" }, - "devDependencies": { - "nodeunit": "~0.7.4" - } + "scripts": { + "test": "nodeunit test/*.js" + }, + "version": "1.8.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/nopt/package.json b/admin/vue2/element-admin-v3/node_modules/nopt/package.json index 12ed02da5..3f6915ae6 100644 --- a/admin/vue2/element-admin-v3/node_modules/nopt/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nopt/package.json @@ -1,34 +1,71 @@ { - "name": "nopt", - "version": "5.0.0", - "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "main": "lib/nopt.js", - "scripts": { - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags", - "test": "tap test/*.js" + "_args": [ + [ + "nopt@5.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "nopt@5.0.0", + "_id": "nopt@5.0.0", + "_inBundle": false, + "_integrity": "sha1-UwlCu1ilEvzK/lP+IQ8TolNV3Ig=", + "_location": "/nopt", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nopt@5.0.0", + "name": "nopt", + "escapedName": "nopt", + "rawSpec": "5.0.0", + "saveSpec": null, + "fetchSpec": "5.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/npm/nopt.git" + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npm.taobao.org/nopt/download/nopt-5.0.0.tgz?cache=0&sync_timestamp=1597649892953&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-5.0.0.tgz", + "_spec": "5.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" }, "bin": { "nopt": "bin/nopt.js" }, - "license": "ISC", + "bugs": { + "url": "https://github.com/npm/nopt/issues" + }, "dependencies": { "abbrev": "1" }, + "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.", "devDependencies": { "tap": "^14.10.6" }, + "engines": { + "node": ">=6" + }, "files": [ "bin", "lib" ], - "engines": { - "node": ">=6" - } + "homepage": "https://github.com/npm/nopt#readme", + "license": "ISC", + "main": "lib/nopt.js", + "name": "nopt", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/nopt.git" + }, + "scripts": { + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "test": "tap test/*.js" + }, + "version": "5.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/normalize-package-data/package.json b/admin/vue2/element-admin-v3/node_modules/normalize-package-data/package.json index dea34bb7f..b6179de05 100644 --- a/admin/vue2/element-admin-v3/node_modules/normalize-package-data/package.json +++ b/admin/vue2/element-admin-v3/node_modules/normalize-package-data/package.json @@ -1,23 +1,62 @@ { - "name": "normalize-package-data", - "version": "2.5.0", - "author": "Meryn Stol ", - "description": "Normalizes data that can be found in package.json files.", - "license": "BSD-2-Clause", - "repository": { - "type": "git", - "url": "git://github.com/npm/normalize-package-data.git" + "_args": [ + [ + "normalize-package-data@2.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "normalize-package-data@2.5.0", + "_id": "normalize-package-data@2.5.0", + "_inBundle": false, + "_integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "_location": "/normalize-package-data", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-package-data@2.5.0", + "name": "normalize-package-data", + "escapedName": "normalize-package-data", + "rawSpec": "2.5.0", + "saveSpec": null, + "fetchSpec": "2.5.0" }, - "main": "lib/normalize.js", - "scripts": { - "test": "tap test/*.js" + "_requiredBy": [ + "/meow", + "/read-pkg" + ], + "_resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1616087070459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", + "_spec": "2.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Meryn Stol", + "email": "merynstol@gmail.com" }, + "bugs": { + "url": "https://github.com/npm/normalize-package-data/issues" + }, + "contributors": [ + { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + { + "name": "Meryn Stol", + "email": "merynstol@gmail.com" + }, + { + "name": "Robert Kowalski", + "email": "rok@kowalski.gd" + } + ], "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" }, + "description": "Normalizes data that can be found in package.json files.", "devDependencies": { "async": "^2.6.1", "tap": "^12.4.0", @@ -27,5 +66,17 @@ "lib/*.js", "lib/*.json", "AUTHORS" - ] + ], + "homepage": "https://github.com/npm/normalize-package-data#readme", + "license": "BSD-2-Clause", + "main": "lib/normalize.js", + "name": "normalize-package-data", + "repository": { + "type": "git", + "url": "git://github.com/npm/normalize-package-data.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/normalize-path/package.json b/admin/vue2/element-admin-v3/node_modules/normalize-path/package.json index ad61098a8..6945dbf8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/normalize-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/normalize-path/package.json @@ -1,33 +1,64 @@ { - "name": "normalize-path", - "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.", - "version": "3.0.0", - "homepage": "https://github.com/jonschlinkert/normalize-path", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Blaine Bublitz (https://twitter.com/BlaineBublitz)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "normalize-path@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/normalize-path", - "bugs": { - "url": "https://github.com/jonschlinkert/normalize-path/issues" + "_from": "normalize-path@3.0.0", + "_id": "normalize-path@3.0.0", + "_inBundle": false, + "_integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "_location": "/normalize-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-path@3.0.0", + "name": "normalize-path", + "escapedName": "normalize-path", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/chokidar", + "/watchpack/anymatch", + "/watchpack/chokidar" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/normalize-path/issues" }, + "contributors": [ + { + "name": "Blaine Bublitz", + "url": "https://twitter.com/BlaineBublitz" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], + "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.", "devDependencies": { "gulp-format-md": "^1.0.0", "minimist": "^1.2.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/normalize-path", "keywords": [ "absolute", "backslash", @@ -49,6 +80,16 @@ "unix", "urix" ], + "license": "MIT", + "main": "index.js", + "name": "normalize-path", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/normalize-path.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -73,5 +114,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/normalize-range/package.json b/admin/vue2/element-admin-v3/node_modules/normalize-range/package.json index b98035ae0..36a42c260 100644 --- a/admin/vue2/element-admin-v3/node_modules/normalize-range/package.json +++ b/admin/vue2/element-admin-v3/node_modules/normalize-range/package.json @@ -1,28 +1,61 @@ { - "name": "normalize-range", - "version": "0.1.2", - "description": "Utility for normalizing a numeric range, with a wrapping function useful for polar coordinates", - "license": "MIT", - "repository": "jamestalmage/normalize-range", + "_args": [ + [ + "normalize-range@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "normalize-range@0.1.2", + "_id": "normalize-range@0.1.2", + "_inBundle": false, + "_integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "_location": "/normalize-range", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-range@0.1.2", + "name": "normalize-range", + "escapedName": "normalize-range", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" + }, + "_requiredBy": [ + "/autoprefixer" + ], + "_resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "James Talmage", "email": "james@talmage.io", "url": "github.com/jamestalmage" }, + "bugs": { + "url": "https://github.com/jamestalmage/normalize-range/issues" + }, + "dependencies": {}, + "description": "Utility for normalizing a numeric range, with a wrapping function useful for polar coordinates", + "devDependencies": { + "almost-equal": "^1.0.0", + "codeclimate-test-reporter": "^0.1.0", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "jscs": "^2.1.1", + "jshint": "^2.8.0", + "jshint-stylish": "^2.0.1", + "mocha": "^2.2.5", + "stringify-pi": "0.0.3" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "npm run cover && npm run lint && npm run style", - "cover": "istanbul cover ./node_modules/.bin/_mocha", - "lint": "jshint --reporter=node_modules/jshint-stylish *.js test/*.js", - "debug": "mocha", - "watch": "mocha -w", - "style": "jscs *.js ./**/*.js && jscs ./test/** --config=./test/.jscsrc" - }, "files": [ "index.js" ], + "homepage": "https://github.com/jamestalmage/normalize-range#readme", "keywords": [ "range", "normalize", @@ -31,16 +64,19 @@ "degrees", "polar" ], - "dependencies": {}, - "devDependencies": { - "almost-equal": "^1.0.0", - "codeclimate-test-reporter": "^0.1.0", - "coveralls": "^2.11.2", - "istanbul": "^0.3.17", - "jscs": "^2.1.1", - "jshint": "^2.8.0", - "jshint-stylish": "^2.0.1", - "mocha": "^2.2.5", - "stringify-pi": "0.0.3" - } + "license": "MIT", + "name": "normalize-range", + "repository": { + "type": "git", + "url": "git+https://github.com/jamestalmage/normalize-range.git" + }, + "scripts": { + "cover": "istanbul cover ./node_modules/.bin/_mocha", + "debug": "mocha", + "lint": "jshint --reporter=node_modules/jshint-stylish *.js test/*.js", + "style": "jscs *.js ./**/*.js && jscs ./test/** --config=./test/.jscsrc", + "test": "npm run cover && npm run lint && npm run style", + "watch": "mocha -w" + }, + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/normalize-url/package.json b/admin/vue2/element-admin-v3/node_modules/normalize-url/package.json index 0bbfb04af..3787710dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/normalize-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/normalize-url/package.json @@ -1,42 +1,78 @@ { - "name": "normalize-url", - "version": "3.3.0", - "description": "Normalize a URL", - "license": "MIT", - "repository": "sindresorhus/normalize-url", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && nyc ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "normalize", - "url", - "uri", - "address", - "string", - "normalization", - "normalisation", - "query", - "querystring", - "simplify", - "strip", - "trim", - "canonical" - ], - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "nyc": "^12.0.2", - "xo": "*" - } + "_args": [ + [ + "normalize-url@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "normalize-url@3.3.0", + "_id": "normalize-url@3.3.0", + "_inBundle": false, + "_integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "_location": "/normalize-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-url@3.3.0", + "name": "normalize-url", + "escapedName": "normalize-url", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/postcss-normalize-url" + ], + "_resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/normalize-url/issues" + }, + "description": "Normalize a URL", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "nyc": "^12.0.2", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/normalize-url#readme", + "keywords": [ + "normalize", + "url", + "uri", + "address", + "string", + "normalization", + "normalisation", + "query", + "querystring", + "simplify", + "strip", + "trim", + "canonical" + ], + "license": "MIT", + "name": "normalize-url", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/normalize-url.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/normalize-wheel/package.json b/admin/vue2/element-admin-v3/node_modules/normalize-wheel/package.json index ae22a3431..2d12946c6 100644 --- a/admin/vue2/element-admin-v3/node_modules/normalize-wheel/package.json +++ b/admin/vue2/element-admin-v3/node_modules/normalize-wheel/package.json @@ -1,16 +1,46 @@ { - "name": "normalize-wheel", - "version": "1.0.1", - "description": "Mouse wheel normalization across multiple multiple browsers.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "normalize-wheel@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "normalize-wheel@1.0.1", + "_id": "normalize-wheel@1.0.1", + "_inBundle": false, + "_integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=", + "_location": "/normalize-wheel", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize-wheel@1.0.1", + "name": "normalize-wheel", + "escapedName": "normalize-wheel", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/element-ui" + ], + "_resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bas Stottelaar" }, + "description": "Mouse wheel normalization across multiple multiple browsers.", "keywords": [ "mouse wheel", "normalization", "browser" ], - "author": "Bas Stottelaar", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "main": "index.js", + "name": "normalize-wheel", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/normalize.css/package.json b/admin/vue2/element-admin-v3/node_modules/normalize.css/package.json index 2c2d77056..47dd89d57 100644 --- a/admin/vue2/element-admin-v3/node_modules/normalize.css/package.json +++ b/admin/vue2/element-admin-v3/node_modules/normalize.css/package.json @@ -1,33 +1,68 @@ { - "name": "normalize.css", - "version": "7.0.0", + "_args": [ + [ + "normalize.css@7.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "normalize.css@7.0.0", + "_id": "normalize.css@7.0.0", + "_inBundle": false, + "_integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=", + "_location": "/normalize.css", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "normalize.css@7.0.0", + "name": "normalize.css", + "escapedName": "normalize.css", + "rawSpec": "7.0.0", + "saveSpec": null, + "fetchSpec": "7.0.0" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/normalize.css/download/normalize.css-7.0.0.tgz", + "_spec": "7.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/necolas/normalize.css/issues" + }, "description": "A modern alternative to CSS resets", - "main": "normalize.css", - "style": "normalize.css", + "devDependencies": { + "stylelint": "^7.9.0", + "stylelint-config-standard": "^16.0.0" + }, "files": [ "LICENSE.md", "normalize.css" ], - "devDependencies": { - "stylelint": "^7.9.0", - "stylelint-config-standard": "^16.0.0" + "homepage": "https://necolas.github.io/normalize.css", + "license": "MIT", + "main": "normalize.css", + "name": "normalize.css", + "repository": { + "type": "git", + "url": "git+https://github.com/necolas/normalize.css.git" }, "scripts": { "test": "stylelint normalize.css" }, - "repository": "necolas/normalize.css", - "license": "MIT", - "bugs": "https://github.com/necolas/normalize.css/issues", - "homepage": "https://necolas.github.io/normalize.css", + "style": "normalize.css", "stylelint": { "extends": "stylelint-config-standard", "rules": { "font-family-no-duplicate-names": [ true, { - "ignoreFontFamilyNames": ["monospace"] + "ignoreFontFamilyNames": [ + "monospace" + ] } ] } - } + }, + "version": "7.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/npm-path/package.json b/admin/vue2/element-admin-v3/node_modules/npm-path/package.json index 298f5dae8..0358f733f 100644 --- a/admin/vue2/element-admin-v3/node_modules/npm-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/npm-path/package.json @@ -1,25 +1,46 @@ { - "name": "npm-path", - "version": "2.0.4", - "description": "Get a PATH with all executables available to npm scripts.", - "main": "index.js", + "_args": [ + [ + "npm-path@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "npm-path@2.0.4", + "_id": "npm-path@2.0.4", + "_inBundle": false, + "_integrity": "sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ=", + "_location": "/npm-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "npm-path@2.0.4", + "name": "npm-path", + "escapedName": "npm-path", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/npm-which" + ], + "_resolved": "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tim Oxley" + }, "bin": { "npm-path": "bin/npm-path" }, - "scripts": { - "clean": "rimraf build-test && (rm *.js || true)", - "prebuild": "npm run clean", - "build": "babel src --out-dir . && babel test --out-dir build-test", - "prepublish": "not-in-publish || npm run build", - "tests-only": "tape build-test -r airbnb-js-shims | faucet", - "pretest": "standard src/* test/* bin/*", - "test": "npm run build && npm run tests-only" + "bugs": { + "url": "https://github.com/timoxley/npm-path/issues" }, - "author": "Tim Oxley", - "license": "MIT", - "engines": { - "node": ">=0.8" + "dependencies": { + "which": "^1.2.10" }, + "description": "Get a PATH with all executables available to npm scripts.", "devDependencies": { "airbnb-js-shims": "^1.4.0", "babel-cli": "^6.26.0", @@ -32,23 +53,33 @@ "standard": "^7.1.2", "tape": "^4.8.0" }, - "dependencies": { - "which": "^1.2.10" - }, "directories": { "test": "test" }, - "repository": { - "type": "git", - "url": "https://github.com/timoxley/npm-path.git" + "engines": { + "node": ">=0.8" }, + "homepage": "https://github.com/timoxley/npm-path", "keywords": [ "npm", "run", "executable" ], - "bugs": { - "url": "https://github.com/timoxley/npm-path/issues" + "license": "MIT", + "main": "index.js", + "name": "npm-path", + "repository": { + "type": "git", + "url": "git+https://github.com/timoxley/npm-path.git" + }, + "scripts": { + "build": "babel src --out-dir . && babel test --out-dir build-test", + "clean": "rimraf build-test && (rm *.js || true)", + "prebuild": "npm run clean", + "prepublish": "not-in-publish || npm run build", + "pretest": "standard src/* test/* bin/*", + "test": "npm run build && npm run tests-only", + "tests-only": "tape build-test -r airbnb-js-shims | faucet" }, - "homepage": "https://github.com/timoxley/npm-path" + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/npm-run-path/package.json b/admin/vue2/element-admin-v3/node_modules/npm-run-path/package.json index 3c27504c5..bee894762 100644 --- a/admin/vue2/element-admin-v3/node_modules/npm-run-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/npm-run-path/package.json @@ -1,23 +1,56 @@ { - "name": "npm-run-path", - "version": "2.0.2", - "description": "Get your PATH prepended with locally installed binaries", - "license": "MIT", - "repository": "sindresorhus/npm-run-path", + "_args": [ + [ + "npm-run-path@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "npm-run-path@2.0.2", + "_id": "npm-run-path@2.0.2", + "_inBundle": false, + "_integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "_location": "/npm-run-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "npm-run-path@2.0.2", + "name": "npm-run-path", + "escapedName": "npm-run-path", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/execa", + "/lint-staged/execa" + ], + "_resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/npm-run-path/issues" + }, + "dependencies": { + "path-key": "^2.0.0" + }, + "description": "Get your PATH prepended with locally installed binaries", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/npm-run-path#readme", "keywords": [ "npm", "run", @@ -32,13 +65,16 @@ "execute", "executable" ], - "dependencies": { - "path-key": "^2.0.0" + "license": "MIT", + "name": "npm-run-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/npm-run-path.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.2", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/npm-which/package.json b/admin/vue2/element-admin-v3/node_modules/npm-which/package.json index 2080b0633..9a3839e56 100644 --- a/admin/vue2/element-admin-v3/node_modules/npm-which/package.json +++ b/admin/vue2/element-admin-v3/node_modules/npm-which/package.json @@ -1,24 +1,48 @@ { - "name": "npm-which", - "version": "3.0.1", - "description": "Locate a program or locally installed node module's executable", - "main": "index.js", + "_args": [ + [ + "npm-which@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "npm-which@3.0.1", + "_id": "npm-which@3.0.1", + "_inBundle": false, + "_integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "_location": "/npm-which", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "npm-which@3.0.1", + "name": "npm-which", + "escapedName": "npm-which", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tim Oxley" + }, "bin": { "npm-which": "bin/npm-which.js" }, - "scripts": { - "test": "node test/index.js | tap-spec" - }, - "author": "Tim Oxley", - "license": "MIT", - "engines": { - "node": ">=4.2.0" + "bugs": { + "url": "https://github.com/timoxley/npm-which/issues" }, "dependencies": { "commander": "^2.9.0", "npm-path": "^2.0.2", "which": "^1.2.10" }, + "description": "Locate a program or locally installed node module's executable", "devDependencies": { "tap-spec": "^4.1.1", "tape": "^4.6.0" @@ -26,18 +50,25 @@ "directories": { "test": "test" }, - "repository": { - "type": "git", - "url": "https://github.com/timoxley/npm-which.git" + "engines": { + "node": ">=4.2.0" }, + "homepage": "https://github.com/timoxley/npm-which", "keywords": [ "npm", "path", "executable", "run" ], - "bugs": { - "url": "https://github.com/timoxley/npm-which/issues" + "license": "MIT", + "main": "index.js", + "name": "npm-which", + "repository": { + "type": "git", + "url": "git+https://github.com/timoxley/npm-which.git" + }, + "scripts": { + "test": "node test/index.js | tap-spec" }, - "homepage": "https://github.com/timoxley/npm-which" + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/npmlog/package.json b/admin/vue2/element-admin-v3/node_modules/npmlog/package.json index 7220f8e72..e208fee5b 100644 --- a/admin/vue2/element-admin-v3/node_modules/npmlog/package.json +++ b/admin/vue2/element-admin-v3/node_modules/npmlog/package.json @@ -1,18 +1,41 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "npmlog", - "description": "logger for npm", - "version": "4.1.2", - "repository": { - "type": "git", - "url": "https://github.com/npm/npmlog.git" + "_args": [ + [ + "npmlog@4.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "npmlog@4.1.2", + "_id": "npmlog@4.1.2", + "_inBundle": false, + "_integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "_location": "/npmlog", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "npmlog@4.1.2", + "name": "npmlog", + "escapedName": "npmlog", + "rawSpec": "4.1.2", + "saveSpec": null, + "fetchSpec": "4.1.2" }, - "main": "log.js", - "files": [ - "log.js" + "_requiredBy": [ + "/node-gyp", + "/node-sass" ], - "scripts": { - "test": "standard && tap test/*.js" + "_resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz", + "_spec": "4.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/npmlog/issues" }, "dependencies": { "are-we-there-yet": "~1.1.2", @@ -20,9 +43,24 @@ "gauge": "~2.7.3", "set-blocking": "~2.0.0" }, + "description": "logger for npm", "devDependencies": { "standard": "~7.1.2", "tap": "~5.7.3" }, - "license": "ISC" + "files": [ + "log.js" + ], + "homepage": "https://github.com/npm/npmlog#readme", + "license": "ISC", + "main": "log.js", + "name": "npmlog", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/npmlog.git" + }, + "scripts": { + "test": "standard && tap test/*.js" + }, + "version": "4.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/nprogress/package.json b/admin/vue2/element-admin-v3/node_modules/nprogress/package.json index aa732dda5..8ae6bfaa9 100644 --- a/admin/vue2/element-admin-v3/node_modules/nprogress/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nprogress/package.json @@ -1,17 +1,41 @@ { - "name": "nprogress", - "author": "Rico Sta. Cruz ", - "description": "Simple slim progress bars", - "version": "0.2.0", - "repository": { - "type": "git", - "url": "https://github.com/rstacruz/nprogress.git" + "_args": [ + [ + "nprogress@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "nprogress@0.2.0", + "_id": "nprogress@0.2.0", + "_inBundle": false, + "_integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=", + "_location": "/nprogress", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nprogress@0.2.0", + "name": "nprogress", + "escapedName": "nprogress", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" }, - "scripts": { - "test": "mocha" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rico Sta. Cruz", + "email": "hi@ricostacruz.com" }, - "main": "nprogress.js", - "license": "MIT", + "bugs": { + "url": "https://github.com/rstacruz/nprogress/issues" + }, + "dependencies": {}, + "description": "Simple slim progress bars", "devDependencies": { "chai": "~1.6.1", "jquery": "^2.1.1", @@ -19,7 +43,7 @@ "mocha": "^2.2.4", "mocha-jsdom": "^0.3.0" }, - "dependencies": {}, + "homepage": "https://github.com/rstacruz/nprogress#readme", "jspm": { "format": "global", "shim": { @@ -33,6 +57,16 @@ "css": "*" } }, + "license": "MIT", + "main": "nprogress.js", + "name": "nprogress", + "repository": { + "type": "git", + "url": "git+https://github.com/rstacruz/nprogress.git" + }, + "scripts": { + "test": "mocha" + }, "spm": { "main": "nprogress.js", "output": [ @@ -43,5 +77,6 @@ "test", "vendor" ] - } + }, + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/nth-check/package.json b/admin/vue2/element-admin-v3/node_modules/nth-check/package.json index a410c9515..0f3f48443 100644 --- a/admin/vue2/element-admin-v3/node_modules/nth-check/package.json +++ b/admin/vue2/element-admin-v3/node_modules/nth-check/package.json @@ -1,67 +1,99 @@ { + "_args": [ + [ + "nth-check@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "nth-check@2.0.0", + "_id": "nth-check@2.0.0", + "_inBundle": false, + "_integrity": "sha1-G7T22scAcvwxPoyc0UF7UHTAoSU=", + "_location": "/nth-check", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nth-check@2.0.0", "name": "nth-check", - "version": "2.0.0", - "description": "Parses and compiles CSS nth-checks to highly optimized functions.", - "author": "Felix Boehm ", - "license": "BSD-2-Clause", - "sideEffects": false, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - }, - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint .", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/fb55/nth-check" - }, - "keywords": [ - "nth-child", - "nth", - "css" - ], - "bugs": { - "url": "https://github.com/fb55/nth-check/issues" - }, - "homepage": "https://github.com/fb55/nth-check", - "dependencies": { - "boolbase": "^1.0.0" - }, - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^14.0.5", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "eslint": "^7.0.0", - "eslint-config-prettier": "^6.0.0", - "jest": "^26.0.1", - "prettier": "^2.1.1", - "ts-jest": "^26.0.0", - "typescript": "^4.0.2" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4 - } + "escapedName": "nth-check", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/css-select" + ], + "_resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/nth-check/issues" + }, + "dependencies": { + "boolbase": "^1.0.0" + }, + "description": "Parses and compiles CSS nth-checks to highly optimized functions.", + "devDependencies": { + "@types/jest": "^26.0.0", + "@types/node": "^14.0.5", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "eslint": "^7.0.0", + "eslint-config-prettier": "^6.0.0", + "jest": "^26.0.1", + "prettier": "^2.1.1", + "ts-jest": "^26.0.0", + "typescript": "^4.0.2" + }, + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*" + ], + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + }, + "homepage": "https://github.com/fb55/nth-check", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "keywords": [ + "nth-child", + "nth", + "css" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "nth-check", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fb55/nth-check.git" + }, + "scripts": { + "build": "tsc", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint .", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "test": "jest --coverage && npm run lint" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/num2fraction/package.json b/admin/vue2/element-admin-v3/node_modules/num2fraction/package.json index ff9709065..4c302808e 100644 --- a/admin/vue2/element-admin-v3/node_modules/num2fraction/package.json +++ b/admin/vue2/element-admin-v3/node_modules/num2fraction/package.json @@ -1,18 +1,46 @@ { - "name": "num2fraction", - "version": "1.2.2", - "description": "Convert number to fraction", - "main": "index.js", + "_args": [ + [ + "num2fraction@1.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "num2fraction@1.2.2", + "_id": "num2fraction@1.2.2", + "_inBundle": false, + "_integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "_location": "/num2fraction", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "num2fraction@1.2.2", + "name": "num2fraction", + "escapedName": "num2fraction", + "rawSpec": "1.2.2", + "saveSpec": null, + "fetchSpec": "1.2.2" + }, + "_requiredBy": [ + "/autoprefixer" + ], + "_resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", + "_spec": "1.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "yisi", "email": "yiorsi@gmail.com", "url": "http://iyunlu.com/view" }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git@github.com:yisibl/num2fraction.git" + "bugs": { + "url": "https://github.com/yisibl/num2fraction/issues" }, + "description": "Convert number to fraction", + "devDependencies": { + "tape": "^3.0.0" + }, + "homepage": "https://github.com/yisibl/num2fraction#readme", "keywords": [ "fraction", "number", @@ -22,10 +50,15 @@ "gcd", "rational" ], - "devDependencies": { - "tape": "^3.0.0" + "license": "MIT", + "main": "index.js", + "name": "num2fraction", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yisibl/num2fraction.git" }, "scripts": { "test": "tape test/*.js" - } + }, + "version": "1.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/number-is-nan/package.json b/admin/vue2/element-admin-v3/node_modules/number-is-nan/package.json index d2f51d4b1..893180105 100644 --- a/admin/vue2/element-admin-v3/node_modules/number-is-nan/package.json +++ b/admin/vue2/element-admin-v3/node_modules/number-is-nan/package.json @@ -1,23 +1,54 @@ { - "name": "number-is-nan", - "version": "1.0.1", - "description": "ES2015 Number.isNaN() ponyfill", - "license": "MIT", - "repository": "sindresorhus/number-is-nan", + "_args": [ + [ + "number-is-nan@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "number-is-nan@1.0.1", + "_id": "number-is-nan@1.0.1", + "_inBundle": false, + "_integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "_location": "/number-is-nan", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "number-is-nan@1.0.1", + "name": "number-is-nan", + "escapedName": "number-is-nan", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/cli-truncate/is-fullwidth-code-point", + "/gauge/is-fullwidth-code-point", + "/webpack-cli/wrap-ansi/is-fullwidth-code-point" + ], + "_resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/number-is-nan/issues" + }, + "description": "ES2015 Number.isNaN() ponyfill", + "devDependencies": { + "ava": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/number-is-nan#readme", "keywords": [ "es2015", "ecmascript", @@ -29,7 +60,14 @@ "nan", "not" ], - "devDependencies": { - "ava": "*" - } + "license": "MIT", + "name": "number-is-nan", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/number-is-nan.git" + }, + "scripts": { + "test": "ava" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/oauth-sign/package.json b/admin/vue2/element-admin-v3/node_modules/oauth-sign/package.json index 036d2b0bc..d36964ec1 100644 --- a/admin/vue2/element-admin-v3/node_modules/oauth-sign/package.json +++ b/admin/vue2/element-admin-v3/node_modules/oauth-sign/package.json @@ -1,23 +1,60 @@ { - "author": "Mikeal Rogers (http://www.futurealoof.com)", - "name": "oauth-sign", - "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", - "version": "0.9.0", - "license": "Apache-2.0", - "repository": { - "url": "https://github.com/mikeal/oauth-sign" + "_args": [ + [ + "oauth-sign@0.9.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "oauth-sign@0.9.0", + "_id": "oauth-sign@0.9.0", + "_inBundle": false, + "_integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "_location": "/oauth-sign", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "oauth-sign@0.9.0", + "name": "oauth-sign", + "escapedName": "oauth-sign", + "rawSpec": "0.9.0", + "saveSpec": null, + "fetchSpec": "0.9.0" }, - "main": "index.js", - "files": [ - "index.js" + "_requiredBy": [ + "/request" ], + "_resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "_spec": "0.9.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "bugs": { + "url": "https://github.com/mikeal/oauth-sign/issues" + }, "dependencies": {}, + "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, "engines": { "node": "*" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/mikeal/oauth-sign#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "oauth-sign", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/oauth-sign.git" + }, "scripts": { "test": "node test.js" - } + }, + "version": "0.9.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-assign/package.json b/admin/vue2/element-admin-v3/node_modules/object-assign/package.json index 503eb1e6d..8024e7afb 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-assign/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-assign/package.json @@ -1,24 +1,67 @@ { - "name": "object-assign", - "version": "4.1.1", - "description": "ES2015 `Object.assign()` ponyfill", - "license": "MIT", - "repository": "sindresorhus/object-assign", + "_args": [ + [ + "object-assign@4.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "object-assign@4.1.1", + "_id": "object-assign@4.1.1", + "_inBundle": false, + "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "_location": "/object-assign", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object-assign@4.1.1", + "name": "object-assign", + "escapedName": "object-assign", + "rawSpec": "4.1.1", + "saveSpec": null, + "fetchSpec": "4.1.1" + }, + "_requiredBy": [ + "/assert", + "/eslint-loader", + "/file-entry-cache", + "/gauge", + "/globby", + "/is-expression", + "/listr-update-renderer/figures", + "/meow", + "/pug-html-loader/is-expression", + "/pug-html-loader/loader-utils", + "/pug-html-loader/pug-load", + "/pug-load", + "/query-string", + "/vue-video-player" + ], + "_resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", + "_spec": "4.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/object-assign/issues" + }, + "description": "ES2015 `Object.assign()` ponyfill", + "devDependencies": { + "ava": "^0.16.0", + "lodash": "^4.16.4", + "matcha": "^0.7.0", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava", - "bench": "matcha bench.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/object-assign#readme", "keywords": [ "object", "assign", @@ -33,10 +76,15 @@ "shim", "browser" ], - "devDependencies": { - "ava": "^0.16.0", - "lodash": "^4.16.4", - "matcha": "^0.7.0", - "xo": "^0.16.0" - } + "license": "MIT", + "name": "object-assign", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/object-assign.git" + }, + "scripts": { + "bench": "matcha bench.js", + "test": "xo && ava" + }, + "version": "4.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/define-property/package.json index 43561bf56..0c3b85c7d 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/define-property/package.json @@ -1,28 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "0.2.5", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@0.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@0.2.5", + "_id": "define-property@0.2.5", + "_inBundle": false, + "_integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "_location": "/object-copy/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@0.2.5", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "0.2.5", + "saveSpec": null, + "fetchSpec": "0.2.5" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/object-copy" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "_spec": "0.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" + }, + "dependencies": { + "is-descriptor": "^0.1.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "mocha": "*", "should": "^7.0.4" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -35,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -45,7 +81,5 @@ ] } }, - "dependencies": { - "is-descriptor": "^0.1.0" - } + "version": "0.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/kind-of/package.json index 5de879e11..0fdc1b778 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-copy/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/object-copy/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/object-copy" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-copy/package.json b/admin/vue2/element-admin-v3/node_modules/object-copy/package.json index f02a96cde..fb43cdd24 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-copy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-copy/package.json @@ -1,37 +1,73 @@ { - "name": "object-copy", - "description": "Copy static properties, prototype properties, and descriptors from one object to another.", - "version": "0.1.0", - "homepage": "https://github.com/jonschlinkert/object-copy", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/object-copy", - "bugs": { - "url": "https://github.com/jonschlinkert/object-copy/issues" + "_args": [ + [ + "object-copy@0.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "object-copy@0.1.0", + "_id": "object-copy@0.1.0", + "_inBundle": false, + "_integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "_location": "/object-copy", + "_phantomChildren": { + "is-buffer": "1.1.6", + "is-descriptor": "0.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "object-copy@0.1.0", + "name": "object-copy", + "escapedName": "object-copy", + "rawSpec": "0.1.0", + "saveSpec": null, + "fetchSpec": "0.1.0" + }, + "_requiredBy": [ + "/static-extend" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "_spec": "0.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/object-copy/issues" }, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, + "description": "Copy static properties, prototype properties, and descriptors from one object to another.", "devDependencies": { "gulp-format-md": "*", "mocha": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/object-copy", "keywords": [ "copy", "object" ], + "license": "MIT", + "main": "index.js", + "name": "object-copy", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/object-copy.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "layout": "default", "plugins": [ @@ -43,5 +79,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "0.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-hash/package.json b/admin/vue2/element-admin-v3/node_modules/object-hash/package.json index 97a7a968d..ba02c414c 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-hash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-hash/package.json @@ -1,27 +1,42 @@ { - "name": "object-hash", - "version": "1.3.1", - "description": "Generate hashes from javascript objects in node and the browser.", - "homepage": "https://github.com/puleos/object-hash", - "repository": { - "type": "git", - "url": "https://github.com/puleos/object-hash" + "_args": [ + [ + "object-hash@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "object-hash@1.3.1", + "_id": "object-hash@1.3.1", + "_inBundle": false, + "_integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=", + "_location": "/object-hash", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object-hash@1.3.1", + "name": "object-hash", + "escapedName": "object-hash", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" }, - "keywords": [ - "object", - "hash", - "sha1", - "md5" + "_requiredBy": [ + "/eslint-loader" ], + "_resolved": "https://registry.nlark.com/object-hash/download/object-hash-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Scott Puleo", + "email": "puleos@gmail.com" + }, + "browser": "./dist/object_hash.js", "bugs": { "url": "https://github.com/puleos/object-hash/issues" }, - "scripts": { - "test": "node ./node_modules/.bin/mocha test", - "prepublish": "gulp dist" - }, - "author": "Scott Puleo ", - "license": "MIT", + "description": "Generate hashes from javascript objects in node and the browser.", "devDependencies": { "browserify": "^13.0.0", "gulp": "^3.9.0", @@ -46,6 +61,23 @@ "engines": { "node": ">= 0.10.0" }, + "homepage": "https://github.com/puleos/object-hash", + "keywords": [ + "object", + "hash", + "sha1", + "md5" + ], + "license": "MIT", "main": "./index.js", - "browser": "./dist/object_hash.js" + "name": "object-hash", + "repository": { + "type": "git", + "url": "git+https://github.com/puleos/object-hash.git" + }, + "scripts": { + "prepublish": "gulp dist", + "test": "node ./node_modules/.bin/mocha test" + }, + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-inspect/package.json b/admin/vue2/element-admin-v3/node_modules/object-inspect/package.json index 014e18999..eaa3132fb 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-inspect/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-inspect/package.json @@ -1,8 +1,45 @@ { - "name": "object-inspect", - "version": "1.10.3", + "_args": [ + [ + "object-inspect@1.10.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "object-inspect@1.10.3", + "_id": "object-inspect@1.10.3", + "_inBundle": false, + "_integrity": "sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k=", + "_location": "/object-inspect", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object-inspect@1.10.3", + "name": "object-inspect", + "escapedName": "object-inspect", + "rawSpec": "1.10.3", + "saveSpec": null, + "fetchSpec": "1.10.3" + }, + "_requiredBy": [ + "/es-abstract" + ], + "_resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.10.3.tgz", + "_spec": "1.10.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "browser": { + "./util.inspect.js": false + }, + "bugs": { + "url": "https://github.com/inspect-js/object-inspect/issues" + }, "description": "string representations of objects in node and the browser", - "main": "index.js", "devDependencies": { "@ljharb/eslint-config": "^17.6.0", "aud": "^1.1.5", @@ -16,15 +53,39 @@ "string.prototype.repeat": "^1.0.0", "tape": "^5.2.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "greenkeeper": { + "ignore": [ + "nyc", + "core-js" + ] + }, + "homepage": "https://github.com/inspect-js/object-inspect", + "keywords": [ + "inspect", + "util.inspect", + "object", + "stringify", + "pretty" + ], + "license": "MIT", + "main": "index.js", + "name": "object-inspect", + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/object-inspect.git" + }, "scripts": { + "lint": "eslint .", + "posttest": "npx aud --production", "prepublish": "not-in-publish || npm run prepublishOnly", "prepublishOnly": "safe-publish-latest", "pretest": "npm run lint", - "lint": "eslint .", "test": "npm run tests-only && npm run test:corejs", - "tests-only": "nyc tape 'test/*.js'", "test:corejs": "nyc tape test-core-js.js 'test/*.js'", - "posttest": "npx aud --production" + "tests-only": "nyc tape 'test/*.js'" }, "testling": { "files": [ @@ -42,34 +103,5 @@ "android/latest" ] }, - "repository": { - "type": "git", - "url": "git://github.com/inspect-js/object-inspect.git" - }, - "homepage": "https://github.com/inspect-js/object-inspect", - "keywords": [ - "inspect", - "util.inspect", - "object", - "stringify", - "pretty" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "browser": { - "./util.inspect.js": false - }, - "greenkeeper": { - "ignore": [ - "nyc", - "core-js" - ] - } + "version": "1.10.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-is/package.json b/admin/vue2/element-admin-v3/node_modules/object-is/package.json index 4f0992b34..5bf6e4172 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-is/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-is/package.json @@ -1,87 +1,117 @@ { - "name": "object-is", - "version": "1.1.5", - "description": "ES2015-compliant shim for Object.is - differentiates between -0 and +0", - "author": "Jordan Harband", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "lint": "eslint .", - "postlint": "es-shim-api --bound", - "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://github.com/es-shims/object-is.git" - }, - "bugs": { - "url": "https://github.com/es-shims/object-is/issues" - }, - "homepage": "https://github.com/es-shims/object-is", - "keywords": [ - "is", - "Object.is", - "equality", - "sameValueZero", - "ES6", - "ES2015", - "shim", - "polyfill", - "es-shim API" - ], - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "auto-changelog": "^2.2.1", - "eslint": "^7.20.0", - "functions-have-names": "^1.2.2", - "has-symbols": "^1.0.1", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.0" - }, - "testling": { - "files": "test.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..12.0", - "opera/15.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "object-is@1.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "object-is@1.1.5", + "_id": "object-is@1.1.5", + "_inBundle": false, + "_integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", + "_location": "/object-is", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object-is@1.1.5", + "name": "object-is", + "escapedName": "object-is", + "rawSpec": "1.1.5", + "saveSpec": null, + "fetchSpec": "1.1.5" + }, + "_requiredBy": [ + "/deep-equal" + ], + "_resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz", + "_spec": "1.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/es-shims/object-is/issues" + }, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "description": "ES2015-compliant shim for Object.is - differentiates between -0 and +0", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "auto-changelog": "^2.2.1", + "eslint": "^7.20.0", + "functions-have-names": "^1.2.2", + "has-symbols": "^1.0.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/es-shims/object-is", + "keywords": [ + "is", + "Object.is", + "equality", + "sameValueZero", + "ES6", + "ES2015", + "shim", + "polyfill", + "es-shim API" + ], + "license": "MIT", + "main": "index.js", + "name": "object-is", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/object-is.git" + }, + "scripts": { + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..12.0", + "opera/15.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-keys/package.json b/admin/vue2/element-admin-v3/node_modules/object-keys/package.json index 99ea92387..95bf52796 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-keys/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-keys/package.json @@ -1,88 +1,123 @@ { - "name": "object-keys", - "version": "1.1.1", - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - { - "name": "Raynos", - "email": "raynos2@gmail.com" - }, - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net" - }, - { - "name": "Ivan Starkov", - "email": "istarkov@gmail.com" - }, - { - "name": "Gary Katsevman", - "email": "git@gkatsev.com" - } - ], - "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim", - "license": "MIT", - "main": "index.js", - "scripts": { - "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npm run --silent audit", - "tests-only": "node test/index.js", - "coverage": "covert test/*.js", - "coverage-quiet": "covert test/*.js --quiet", - "lint": "eslint .", - "preaudit": "npm install --package-lock --package-lock-only", - "audit": "npm audit", - "postaudit": "rm package-lock.json" - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/object-keys.git" - }, - "keywords": [ - "Object.keys", - "keys", - "ES5", - "shim" - ], - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^13.1.1", - "covert": "^1.1.1", - "eslint": "^5.13.0", - "foreach": "^2.0.5", - "indexof": "^0.0.1", - "is": "^3.3.0", - "tape": "^4.9.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - } + "_args": [ + [ + "object-keys@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "object-keys@1.1.1", + "_id": "object-keys@1.1.1", + "_inBundle": false, + "_integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "_location": "/object-keys", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object-keys@1.1.1", + "name": "object-keys", + "escapedName": "object-keys", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/deep-equal", + "/define-properties", + "/es-abstract", + "/object.assign" + ], + "_resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "bugs": { + "url": "https://github.com/ljharb/object-keys/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net" + }, + { + "name": "Ivan Starkov", + "email": "istarkov@gmail.com" + }, + { + "name": "Gary Katsevman", + "email": "git@gkatsev.com" + } + ], + "dependencies": {}, + "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim", + "devDependencies": { + "@ljharb/eslint-config": "^13.1.1", + "covert": "^1.1.1", + "eslint": "^5.13.0", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.3.0", + "tape": "^4.9.2" + }, + "engines": { + "node": ">= 0.4" + }, + "homepage": "https://github.com/ljharb/object-keys#readme", + "keywords": [ + "Object.keys", + "keys", + "ES5", + "shim" + ], + "license": "MIT", + "main": "index.js", + "name": "object-keys", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/object-keys.git" + }, + "scripts": { + "audit": "npm audit", + "coverage": "covert test/*.js", + "coverage-quiet": "covert test/*.js --quiet", + "lint": "eslint .", + "postaudit": "rm package-lock.json", + "posttest": "npm run --silent audit", + "preaudit": "npm install --package-lock --package-lock-only", + "pretest": "npm run --silent lint", + "test": "npm run --silent tests-only", + "tests-only": "node test/index.js" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/object-visit/package.json b/admin/vue2/element-admin-v3/node_modules/object-visit/package.json index 15fd0ff8d..e2026bd31 100644 --- a/admin/vue2/element-admin-v3/node_modules/object-visit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object-visit/package.json @@ -1,27 +1,44 @@ { - "name": "object-visit", - "description": "Call a specified method on each value in the given object.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/object-visit", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/object-visit", - "bugs": { - "url": "https://github.com/jonschlinkert/object-visit/issues" + "_args": [ + [ + "object-visit@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "object-visit@1.0.1", + "_id": "object-visit@1.0.1", + "_inBundle": false, + "_integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "_location": "/object-visit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object-visit@1.0.1", + "name": "object-visit", + "escapedName": "object-visit", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/collection-visit", + "/map-visit" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/object-visit/issues" }, "dependencies": { "isobject": "^3.0.0" }, + "description": "Call a specified method on each value in the given object.", "devDependencies": { "gulp": "^3.9.1", "gulp-eslint": "^3.0.1", @@ -30,6 +47,13 @@ "gulp-mocha": "^3.0.0", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/object-visit", "keywords": [ "context", "function", @@ -41,6 +65,16 @@ "visit", "visitor" ], + "license": "MIT", + "main": "index.js", + "name": "object-visit", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/object-visit.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -61,5 +95,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/object.assign/package.json b/admin/vue2/element-admin-v3/node_modules/object.assign/package.json index 25247a876..561737317 100644 --- a/admin/vue2/element-admin-v3/node_modules/object.assign/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object.assign/package.json @@ -1,83 +1,120 @@ { - "name": "object.assign", - "version": "4.1.2", - "author": "Jordan Harband", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim", - "license": "MIT", - "main": "index.js", - "scripts": { - "pretest": "npm run lint && es-shim-api --bound", - "test": "npm run tests-only && npm run test:ses", - "posttest": "aud --production", - "tests-only": "npm run test:implementation && npm run test:shim", - "test:native": "nyc node test/native", - "test:shim": "nyc node test/shimmed", - "test:implementation": "nyc node test", - "test:ses": "node test/ses-compat", - "lint": "eslint .", - "build": "mkdir -p dist && browserify browserShim.js > dist/browser.js", - "prepublish": "safe-publish-latest && npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/object.assign.git" - }, - "keywords": [ - "Object.assign", - "assign", - "ES6", - "extend", - "$.extend", - "jQuery", - "_.extend", - "Underscore", - "es-shim API", - "polyfill", - "shim" - ], - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.2.0", - "aud": "^1.1.2", - "browserify": "^16.5.2", - "eslint": "^7.12.1", - "for-each": "^0.3.3", - "functions-have-names": "^1.2.1", - "has": "^1.0.3", - "is": "^3.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "ses": "^0.10.4", - "tape": "^5.0.1" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - } + "_args": [ + [ + "object.assign@4.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "object.assign@4.1.2", + "_id": "object.assign@4.1.2", + "_inBundle": false, + "_integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", + "_location": "/object.assign", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object.assign@4.1.2", + "name": "object.assign", + "escapedName": "object.assign", + "rawSpec": "4.1.2", + "saveSpec": null, + "fetchSpec": "4.1.2" + }, + "_requiredBy": [ + "/babel-plugin-dynamic-import-node", + "/es-abstract", + "/loglevelnext" + ], + "_resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115212739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", + "_spec": "4.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband" + }, + "bugs": { + "url": "https://github.com/ljharb/object.assign/issues" + }, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "description": "ES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.2.0", + "aud": "^1.1.2", + "browserify": "^16.5.2", + "eslint": "^7.12.1", + "for-each": "^0.3.3", + "functions-have-names": "^1.2.1", + "has": "^1.0.3", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "ses": "^0.10.4", + "tape": "^5.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/object.assign#readme", + "keywords": [ + "Object.assign", + "assign", + "ES6", + "extend", + "$.extend", + "jQuery", + "_.extend", + "Underscore", + "es-shim API", + "polyfill", + "shim" + ], + "license": "MIT", + "main": "index.js", + "name": "object.assign", + "repository": { + "type": "git", + "url": "git://github.com/ljharb/object.assign.git" + }, + "scripts": { + "build": "mkdir -p dist && browserify browserShim.js > dist/browser.js", + "lint": "eslint .", + "posttest": "aud --production", + "prepublish": "safe-publish-latest && npm run build", + "pretest": "npm run lint && es-shim-api --bound", + "test": "npm run tests-only && npm run test:ses", + "test:implementation": "nyc node test", + "test:native": "nyc node test/native", + "test:ses": "node test/ses-compat", + "test:shim": "nyc node test/shimmed", + "tests-only": "npm run test:implementation && npm run test:shim" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "4.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/object.getownpropertydescriptors/package.json b/admin/vue2/element-admin-v3/node_modules/object.getownpropertydescriptors/package.json index 89f559864..d3b7090bf 100644 --- a/admin/vue2/element-admin-v3/node_modules/object.getownpropertydescriptors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object.getownpropertydescriptors/package.json @@ -1,75 +1,111 @@ { - "name": "object.getownpropertydescriptors", - "version": "2.1.2", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npx aud --production", - "tests-only": "nyc tape 'test/**/*.js'", - "lint": "eslint .", - "postlint": "es-shim-api --bound" - }, - "repository": { - "type": "git", - "url": "git://github.com/es-shims/object.getownpropertydescriptors.git" - }, - "keywords": [ - "Object.getOwnPropertyDescriptors", - "descriptor", - "property descriptor", - "ES8", - "ES2017", - "shim", - "polyfill", - "getOwnPropertyDescriptor", - "es-shim API" - ], - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "eslint": "^7.20.0", - "functions-have-names": "^1.2.2", - "has-strict-mode": "^1.0.1", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.0" - }, - "testling": { - "files": [ - "test/index.js", - "test/shimmed.js" - ], - "browsers": [ - "iexplore/9.0..latest", - "firefox/4.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/5.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/12.0..latest", - "opera/next", - "safari/5.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.8" - } + "_args": [ + [ + "object.getownpropertydescriptors@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "object.getownpropertydescriptors@2.1.2", + "_id": "object.getownpropertydescriptors@2.1.2", + "_inBundle": false, + "_integrity": "sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c=", + "_location": "/object.getownpropertydescriptors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object.getownpropertydescriptors@2.1.2", + "name": "object.getownpropertydescriptors", + "escapedName": "object.getownpropertydescriptors", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/util.promisify" + ], + "_resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613862016164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "bugs": { + "url": "https://github.com/es-shims/object.getownpropertydescriptors/issues" + }, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "description": "ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "eslint": "^7.20.0", + "functions-have-names": "^1.2.2", + "has-strict-mode": "^1.0.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/es-shims/object.getownpropertydescriptors#readme", + "keywords": [ + "Object.getOwnPropertyDescriptors", + "descriptor", + "property descriptor", + "ES8", + "ES2017", + "shim", + "polyfill", + "getOwnPropertyDescriptor", + "es-shim API" + ], + "license": "MIT", + "main": "index.js", + "name": "object.getownpropertydescriptors", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/object.getownpropertydescriptors.git" + }, + "scripts": { + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "posttest": "npx aud --production", + "prepublish": "safe-publish-latest", + "pretest": "npm run --silent lint", + "test": "npm run --silent tests-only", + "tests-only": "nyc tape 'test/**/*.js'" + }, + "testling": { + "files": [ + "test/index.js", + "test/shimmed.js" + ], + "browsers": [ + "iexplore/9.0..latest", + "firefox/4.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/5.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/12.0..latest", + "opera/next", + "safari/5.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/object.pick/package.json b/admin/vue2/element-admin-v3/node_modules/object.pick/package.json index b655dbeb4..4b488d343 100644 --- a/admin/vue2/element-admin-v3/node_modules/object.pick/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object.pick/package.json @@ -1,36 +1,71 @@ { - "name": "object.pick", - "description": "Returns a filtered copy of an object with only the specified keys, similar to `_.pick` from lodash / underscore.", - "version": "1.3.0", - "homepage": "https://github.com/jonschlinkert/object.pick", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/object.pick", - "bugs": { - "url": "https://github.com/jonschlinkert/object.pick/issues" + "_args": [ + [ + "object.pick@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "object.pick@1.3.0", + "_id": "object.pick@1.3.0", + "_inBundle": false, + "_integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "_location": "/object.pick", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object.pick@1.3.0", + "name": "object.pick", + "escapedName": "object.pick", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/object.pick/issues" }, "dependencies": { "isobject": "^3.0.1" }, + "description": "Returns a filtered copy of an object with only the specified keys, similar to `_.pick` from lodash / underscore.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.1.2", "vinyl": "^2.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/object.pick", "keywords": [ "object", "pick" ], + "license": "MIT", + "main": "index.js", + "name": "object.pick", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/object.pick.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -56,5 +91,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/object.values/package.json b/admin/vue2/element-admin-v3/node_modules/object.values/package.json index c80ef964e..47c193992 100644 --- a/admin/vue2/element-admin-v3/node_modules/object.values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/object.values/package.json @@ -1,90 +1,126 @@ { - "name": "object.values", - "version": "1.1.4", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ES2017 spec-compliant Object.values shim.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "npx aud --production", - "tests-only": "nyc tape 'test/**/*.js'", - "lint": "eslint .", - "postlint": "es-shim-api --bound", - "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://github.com/es-shims/Object.values.git" - }, - "keywords": [ - "Object.values", - "Object.keys", - "Object.entries", - "values", - "ES7", - "ES8", - "ES2017", - "shim", - "object", - "keys", - "entries", - "polyfill", - "es-shim API" - ], - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.6.0", - "array.prototype.map": "^1.0.3", - "aud": "^1.1.5", - "auto-changelog": "^2.3.0", - "eslint": "^7.27.0", - "functions-have-names": "^1.2.2", - "has-strict-mode": "^1.0.1", - "nyc": "^10.3.2", - "object-keys": "^1.1.1", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/9.0..latest", - "firefox/4.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/11.6..latest", - "opera/next", - "safari/5.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "object.values@1.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "object.values@1.1.4", + "_id": "object.values@1.1.4", + "_inBundle": false, + "_integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", + "_location": "/object.values", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "object.values@1.1.4", + "name": "object.values", + "escapedName": "object.values", + "rawSpec": "1.1.4", + "saveSpec": null, + "fetchSpec": "1.1.4" + }, + "_requiredBy": [ + "/svgo" + ], + "_resolved": "https://registry.nlark.com/object.values/download/object.values-1.1.4.tgz", + "_spec": "1.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/es-shims/Object.values/issues" + }, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "description": "ES2017 spec-compliant Object.values shim.", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.6.0", + "array.prototype.map": "^1.0.3", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "eslint": "^7.27.0", + "functions-have-names": "^1.2.2", + "has-strict-mode": "^1.0.1", + "nyc": "^10.3.2", + "object-keys": "^1.1.1", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/es-shims/Object.values#readme", + "keywords": [ + "Object.values", + "Object.keys", + "Object.entries", + "values", + "ES7", + "ES8", + "ES2017", + "shim", + "object", + "keys", + "entries", + "polyfill", + "es-shim API" + ], + "license": "MIT", + "main": "index.js", + "name": "object.values", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/Object.values.git" + }, + "scripts": { + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/9.0..latest", + "firefox/4.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/11.6..latest", + "opera/next", + "safari/5.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/obuf/package.json b/admin/vue2/element-admin-v3/node_modules/obuf/package.json index 1f8500e35..66bd06b7c 100644 --- a/admin/vue2/element-admin-v3/node_modules/obuf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/obuf/package.json @@ -1,27 +1,59 @@ { - "name": "obuf", - "version": "1.1.2", - "description": "", - "main": "index.js", - "scripts": { - "test": "mocha test/**/*-test.js" + "_args": [ + [ + "obuf@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "obuf@1.1.2", + "_id": "obuf@1.1.2", + "_inBundle": false, + "_integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", + "_location": "/obuf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "obuf@1.1.2", + "name": "obuf", + "escapedName": "obuf", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/offset-buffer" + "_requiredBy": [ + "/hpack.js", + "/spdy-transport" + ], + "_resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/indutny/offset-buffer/issues" + }, + "description": "Byte buffer specialized for data in chunks with special cases for dropping bytes in the front, merging bytes in to various integer types and abandoning buffer without penalty for previous chunk merges.", + "devDependencies": { + "mocha": "^1.21.4" }, + "homepage": "https://github.com/indutny/offset-buffer", "keywords": [ "Offset", "Buffer", "reader" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/offset-buffer/issues" + "main": "index.js", + "name": "obuf", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/offset-buffer.git" }, - "homepage": "https://github.com/indutny/offset-buffer", - "devDependencies": { - "mocha": "^1.21.4" - } + "scripts": { + "test": "mocha test/**/*-test.js" + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/on-finished/package.json b/admin/vue2/element-admin-v3/node_modules/on-finished/package.json index b9df1bd20..1a5b0565a 100644 --- a/admin/vue2/element-admin-v3/node_modules/on-finished/package.json +++ b/admin/vue2/element-admin-v3/node_modules/on-finished/package.json @@ -1,16 +1,55 @@ { - "name": "on-finished", - "description": "Execute a callback when a request closes, finishes, or errors", - "version": "2.3.0", + "_args": [ + [ + "on-finished@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "on-finished@2.3.0", + "_id": "on-finished@2.3.0", + "_inBundle": false, + "_integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "_location": "/on-finished", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "on-finished@2.3.0", + "name": "on-finished", + "escapedName": "on-finished", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/body-parser", + "/express", + "/express/finalhandler", + "/finalhandler", + "/send", + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/on-finished/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "license": "MIT", - "repository": "jshttp/on-finished", "dependencies": { "ee-first": "1.1.1" }, + "description": "Execute a callback when a request closes, finishes, or errors", "devDependencies": { "istanbul": "0.3.9", "mocha": "2.2.5" @@ -23,9 +62,17 @@ "LICENSE", "index.js" ], + "homepage": "https://github.com/jshttp/on-finished#readme", + "license": "MIT", + "name": "on-finished", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/on-finished.git" + }, "scripts": { "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/on-headers/package.json b/admin/vue2/element-admin-v3/node_modules/on-headers/package.json index 1e9bf9e25..de5021d82 100644 --- a/admin/vue2/element-admin-v3/node_modules/on-headers/package.json +++ b/admin/vue2/element-admin-v3/node_modules/on-headers/package.json @@ -1,16 +1,40 @@ { - "name": "on-headers", - "description": "Execute a listener when a response is about to write headers", - "version": "1.0.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "event", - "headers", - "http", - "onheaders" + "_args": [ + [ + "on-headers@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "on-headers@1.0.2", + "_id": "on-headers@1.0.2", + "_inBundle": false, + "_integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", + "_location": "/on-headers", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "on-headers@1.0.2", + "name": "on-headers", + "escapedName": "on-headers", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/compression" ], - "repository": "jshttp/on-headers", + "_resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/on-headers/issues" + }, + "description": "Execute a listener when a response is about to write headers", "devDependencies": { "eslint": "5.14.1", "eslint-config-standard": "12.0.0", @@ -23,14 +47,27 @@ "mocha": "6.0.1", "supertest": "3.4.2" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/jshttp/on-headers#readme", + "keywords": [ + "event", + "headers", + "http", + "onheaders" + ], + "license": "MIT", + "name": "on-headers", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/on-headers.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", @@ -38,5 +75,6 @@ "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/", "version": "node scripts/version-history.js && git add HISTORY.md" - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/once/package.json b/admin/vue2/element-admin-v3/node_modules/once/package.json index 16815b2fa..04ab9538f 100644 --- a/admin/vue2/element-admin-v3/node_modules/once/package.json +++ b/admin/vue2/element-admin-v3/node_modules/once/package.json @@ -1,33 +1,74 @@ { - "name": "once", - "version": "1.4.0", - "description": "Run a function exactly one time", - "main": "once.js", - "directories": { - "test": "test" + "_args": [ + [ + "once@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "once@1.4.0", + "_id": "once@1.4.0", + "_inBundle": false, + "_integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "_location": "/once", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "once@1.4.0", + "name": "once", + "escapedName": "once", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/end-of-stream", + "/glob", + "/inflight", + "/mississippi/pump", + "/pump", + "/pumpify/pump" + ], + "_resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/once/issues" }, "dependencies": { "wrappy": "1" }, + "description": "Run a function exactly one time", "devDependencies": { "tap": "^7.0.1" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, "files": [ "once.js" ], - "repository": { - "type": "git", - "url": "git://github.com/isaacs/once" - }, + "homepage": "https://github.com/isaacs/once#readme", "keywords": [ "once", "function", "one", "single" ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "license": "ISC", + "main": "once.js", + "name": "once", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/once.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/onetime/package.json b/admin/vue2/element-admin-v3/node_modules/onetime/package.json index 73223ff96..2a66064fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/onetime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/onetime/package.json @@ -1,23 +1,56 @@ { - "name": "onetime", - "version": "2.0.1", - "description": "Ensure a function is only called once", - "license": "MIT", - "repository": "sindresorhus/onetime", + "_args": [ + [ + "onetime@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "onetime@2.0.1", + "_id": "onetime@2.0.1", + "_inBundle": false, + "_integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "_location": "/onetime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "onetime@2.0.1", + "name": "onetime", + "escapedName": "onetime", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/restore-cursor" + ], + "_resolved": "https://registry.nlark.com/onetime/download/onetime-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/onetime/issues" + }, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "description": "Ensure a function is only called once", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/onetime#readme", "keywords": [ "once", "function", @@ -30,11 +63,14 @@ "called", "prevent" ], - "dependencies": { - "mimic-fn": "^1.0.0" + "license": "MIT", + "name": "onetime", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/onetime.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/opener/package.json b/admin/vue2/element-admin-v3/node_modules/opener/package.json index 0af377d15..0434847fa 100644 --- a/admin/vue2/element-admin-v3/node_modules/opener/package.json +++ b/admin/vue2/element-admin-v3/node_modules/opener/package.json @@ -1,20 +1,61 @@ { + "_args": [ + [ + "opener@1.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "opener@1.5.2", + "_id": "opener@1.5.2", + "_inBundle": false, + "_integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", + "_location": "/opener", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "opener@1.5.2", "name": "opener", - "description": "Opens stuff, like webpages and files and executables, cross-platform", - "version": "1.5.2", - "author": "Domenic Denicola (https://domenic.me/)", - "license": "(WTFPL OR MIT)", - "repository": "domenic/opener", - "main": "lib/opener.js", - "bin": "bin/opener-bin.js", - "files": [ - "lib/", - "bin/" - ], - "scripts": { - "lint": "eslint ." - }, - "devDependencies": { - "eslint": "^7.7.0" - } + "escapedName": "opener", + "rawSpec": "1.5.2", + "saveSpec": null, + "fetchSpec": "1.5.2" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz", + "_spec": "1.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Domenic Denicola", + "email": "d@domenic.me", + "url": "https://domenic.me/" + }, + "bin": { + "opener": "bin/opener-bin.js" + }, + "bugs": { + "url": "https://github.com/domenic/opener/issues" + }, + "description": "Opens stuff, like webpages and files and executables, cross-platform", + "devDependencies": { + "eslint": "^7.7.0" + }, + "files": [ + "lib/", + "bin/" + ], + "homepage": "https://github.com/domenic/opener#readme", + "license": "(WTFPL OR MIT)", + "main": "lib/opener.js", + "name": "opener", + "repository": { + "type": "git", + "url": "git+https://github.com/domenic/opener.git" + }, + "scripts": { + "lint": "eslint ." + }, + "version": "1.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/opn/package.json b/admin/vue2/element-admin-v3/node_modules/opn/package.json index e5171177a..d98a1f00e 100644 --- a/admin/vue2/element-admin-v3/node_modules/opn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/opn/package.json @@ -1,56 +1,91 @@ { - "name": "opn", - "version": "5.5.0", - "description": "A better node-open. Opens stuff like websites, files, executables. Cross-platform.", - "license": "MIT", - "repository": "sindresorhus/opn", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo" - }, - "files": [ - "index.js", - "xdg-open" - ], - "keywords": [ - "app", - "open", - "opn", - "opener", - "opens", - "launch", - "start", - "xdg-open", - "xdg", - "default", - "cmd", - "browser", - "editor", - "executable", - "exe", - "url", - "urls", - "arguments", - "args", - "spawn", - "exec", - "child", - "process", - "website", - "file" - ], - "dependencies": { - "is-wsl": "^1.1.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "xo": "^0.20.0" - } + "_args": [ + [ + "opn@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "opn@5.5.0", + "_id": "opn@5.5.0", + "_inBundle": false, + "_integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", + "_location": "/opn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "opn@5.5.0", + "name": "opn", + "escapedName": "opn", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/opn/issues" + }, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "description": "A better node-open. Opens stuff like websites, files, executables. Cross-platform.", + "devDependencies": { + "ava": "^0.25.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "xdg-open" + ], + "homepage": "https://github.com/sindresorhus/opn#readme", + "keywords": [ + "app", + "open", + "opn", + "opener", + "opens", + "launch", + "start", + "xdg-open", + "xdg", + "default", + "cmd", + "browser", + "editor", + "executable", + "exe", + "url", + "urls", + "arguments", + "args", + "spawn", + "exec", + "child", + "process", + "website", + "file" + ], + "license": "MIT", + "name": "opn", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/opn.git" + }, + "scripts": { + "test": "xo" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/optimize-css-assets-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/optimize-css-assets-webpack-plugin/package.json index 3faaa14ee..7593fa815 100644 --- a/admin/vue2/element-admin-v3/node_modules/optimize-css-assets-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/optimize-css-assets-webpack-plugin/package.json @@ -1,38 +1,44 @@ { - "name": "optimize-css-assets-webpack-plugin", - "version": "5.0.0", - "description": "A Webpack plugin to optimize \\ minimize CSS assets.", - "keywords": [ - "CSS", - "duplicate", - "extract-text-webpack-plugin", - "minimize", - "optimize", - "remove", - "webpack" + "_args": [ + [ + "optimize-css-assets-webpack-plugin@5.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "http://github.com/NMFR/optimize-css-assets-webpack-plugin", - "license": "MIT", - "author": "Nuno Rodrigues", - "main": "src/index.js", - "repository": { - "type": "git", - "url": "http://github.com/NMFR/optimize-css-assets-webpack-plugin.git" + "_development": true, + "_from": "optimize-css-assets-webpack-plugin@5.0.0", + "_id": "optimize-css-assets-webpack-plugin@5.0.0", + "_inBundle": false, + "_integrity": "sha1-jJrfAOhBhx9if4KoCXpPn8wxTeQ=", + "_location": "/optimize-css-assets-webpack-plugin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "optimize-css-assets-webpack-plugin@5.0.0", + "name": "optimize-css-assets-webpack-plugin", + "escapedName": "optimize-css-assets-webpack-plugin", + "rawSpec": "5.0.0", + "saveSpec": null, + "fetchSpec": "5.0.0" }, - "scripts": { - "test": "jest", - "test:watch": "jest --watch" + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.0.tgz?cache=0&sync_timestamp=1621216382664&other_urls=https%3A%2F%2Fregistry.nlark.com%2Foptimize-css-assets-webpack-plugin%2Fdownload%2Foptimize-css-assets-webpack-plugin-5.0.0.tgz", + "_spec": "5.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nuno Rodrigues" }, - "jest": { - "testEnvironment": "node", - "watchPathIgnorePatterns": [ - "/test/js/*.*" - ] + "bugs": { + "url": "https://github.com/NMFR/optimize-css-assets-webpack-plugin/issues" }, "dependencies": { "cssnano": "^4.0.2", "last-call-webpack-plugin": "^3.0.0" }, + "description": "A Webpack plugin to optimize \\ minimize CSS assets.", "devDependencies": { "babel-core": "^6.26.0", "babel-jest": "^22.1.0", @@ -45,7 +51,35 @@ "style-loader": "^0.20.1", "webpack": "^4.9.1" }, + "homepage": "http://github.com/NMFR/optimize-css-assets-webpack-plugin", + "jest": { + "testEnvironment": "node", + "watchPathIgnorePatterns": [ + "/test/js/*.*" + ] + }, + "keywords": [ + "CSS", + "duplicate", + "extract-text-webpack-plugin", + "minimize", + "optimize", + "remove", + "webpack" + ], + "license": "MIT", + "main": "src/index.js", + "name": "optimize-css-assets-webpack-plugin", "peerDependencies": { "webpack": "^4.0.0" - } + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/NMFR/optimize-css-assets-webpack-plugin.git" + }, + "scripts": { + "test": "jest", + "test:watch": "jest --watch" + }, + "version": "5.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/optionator/package.json b/admin/vue2/element-admin-v3/node_modules/optionator/package.json index fbeb2f9da..1ca0d099c 100644 --- a/admin/vue2/element-admin-v3/node_modules/optionator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/optionator/package.json @@ -1,8 +1,62 @@ { - "name": "optionator", - "version": "0.8.3", - "author": "George Zahariev ", + "_args": [ + [ + "optionator@0.8.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "optionator@0.8.3", + "_id": "optionator@0.8.3", + "_inBundle": false, + "_integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "_location": "/optionator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "optionator@0.8.3", + "name": "optionator", + "escapedName": "optionator", + "rawSpec": "0.8.3", + "saveSpec": null, + "fetchSpec": "0.8.3" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966238288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", + "_spec": "0.8.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "George Zahariev", + "email": "z@georgezahariev.com" + }, + "bugs": { + "url": "https://github.com/gkz/optionator/issues" + }, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, "description": "option parsing and help generation", + "devDependencies": { + "istanbul": "~0.4.5", + "livescript": "~1.6.0", + "mocha": "~6.2.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "lib", + "README.md", + "LICENSE" + ], "homepage": "https://github.com/gkz/optionator", "keywords": [ "options", @@ -10,17 +64,9 @@ "option parsing", "cli" ], - "files": [ - "lib", - "README.md", - "LICENSE" - ], - "main": "./lib/", - "bugs": "https://github.com/gkz/optionator/issues", "license": "MIT", - "engines": { - "node": ">= 0.8.0" - }, + "main": "./lib/", + "name": "optionator", "repository": { "type": "git", "url": "git://github.com/gkz/optionator.git" @@ -28,17 +74,5 @@ "scripts": { "test": "make test" }, - "dependencies": { - "prelude-ls": "~1.1.2", - "deep-is": "~0.1.3", - "word-wrap": "~1.2.3", - "type-check": "~0.3.2", - "levn": "~0.3.0", - "fast-levenshtein": "~2.0.6" - }, - "devDependencies": { - "livescript": "~1.6.0", - "mocha": "~6.2.2", - "istanbul": "~0.4.5" - } + "version": "0.8.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/ora/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/ora/node_modules/ansi-regex/package.json index e94852fd7..9a01b8204 100644 --- a/admin/vue2/element-admin-v3/node_modules/ora/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ora/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/ora/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/ora/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ora/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/ora/node_modules/strip-ansi/package.json index 555f19461..f6186e6fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/ora/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ora/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/ora/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/ora" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ora/package.json b/admin/vue2/element-admin-v3/node_modules/ora/package.json index 25498c72b..e772b8f5c 100644 --- a/admin/vue2/element-admin-v3/node_modules/ora/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ora/package.json @@ -1,23 +1,62 @@ { - "name": "ora", - "version": "3.0.0", - "description": "Elegant terminal spinner", - "license": "MIT", - "repository": "sindresorhus/ora", + "_args": [ + [ + "ora@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ora@3.0.0", + "_id": "ora@3.0.0", + "_inBundle": false, + "_integrity": "sha1-gXnjUluar9mSQtY8wgb9ZHMnQdA=", + "_location": "/ora", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ora@3.0.0", + "name": "ora", + "escapedName": "ora", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/ora/download/ora-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/ora/issues" + }, + "dependencies": { + "chalk": "^2.3.1", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.1.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^4.0.0", + "wcwidth": "^1.0.1" + }, + "description": "Elegant terminal spinner", + "devDependencies": { + "ava": "1.0.0-beta.6", + "get-stream": "^3.0.0", + "xo": "*" + }, "engines": { "node": ">=6" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/ora#readme", "keywords": [ "cli", "spinner", @@ -34,17 +73,14 @@ "wait", "idle" ], - "dependencies": { - "chalk": "^2.3.1", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.1.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^4.0.0", - "wcwidth": "^1.0.1" + "license": "MIT", + "name": "ora", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/ora.git" }, - "devDependencies": { - "ava": "1.0.0-beta.6", - "get-stream": "^3.0.0", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/original/package.json b/admin/vue2/element-admin-v3/node_modules/original/package.json index e7c9732f2..b52f932cb 100644 --- a/admin/vue2/element-admin-v3/node_modules/original/package.json +++ b/admin/vue2/element-admin-v3/node_modules/original/package.json @@ -1,33 +1,67 @@ { - "name": "original", - "version": "1.0.2", - "description": "Generate the origin from an URL or check if two URL/Origins are the same", - "main": "index.js", - "scripts": { - "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", - "test-travis": "istanbul cover _mocha --report lcovonly -- test.js", - "coverage": "istanbul cover _mocha -- test.js", - "watch": "mocha --watch test.js", - "test": "mocha test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/unshiftio/original" + "_args": [ + [ + "original@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "original@1.0.2", + "_id": "original@1.0.2", + "_inBundle": false, + "_integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", + "_location": "/original", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "original@1.0.2", + "name": "original", + "escapedName": "original", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "keywords": [ - "origin", - "url", - "parse" + "_requiredBy": [ + "/eventsource" ], - "author": "Arnout Kazemier", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Arnout Kazemier" + }, + "bugs": { + "url": "https://github.com/unshiftio/original/issues" + }, "dependencies": { "url-parse": "^1.4.3" }, + "description": "Generate the origin from an URL or check if two URL/Origins are the same", "devDependencies": { "assume": "~2.1.0", "istanbul": "0.4.x", "mocha": "~3.5.0", "pre-commit": "~1.2.0" - } + }, + "homepage": "https://github.com/unshiftio/original#readme", + "keywords": [ + "origin", + "url", + "parse" + ], + "license": "MIT", + "main": "index.js", + "name": "original", + "repository": { + "type": "git", + "url": "git+https://github.com/unshiftio/original.git" + }, + "scripts": { + "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", + "coverage": "istanbul cover _mocha -- test.js", + "test": "mocha test.js", + "test-travis": "istanbul cover _mocha --report lcovonly -- test.js", + "watch": "mocha --watch test.js" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/os-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/os-browserify/package.json index 1ef42b490..79be97188 100644 --- a/admin/vue2/element-admin-v3/node_modules/os-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/os-browserify/package.json @@ -1,20 +1,56 @@ { - "name": "os-browserify", - "version": "0.3.0", - "author": "CoderPuppy ", - "license": "MIT", - "main": "main.js", - "browser": "browser.js", - "jspm": { - "map": { - "./main.js": { - "node": "@node/os", - "browser": "./browser.js" - } - } - }, - "repository": { - "type": "git", - "url": "http://github.com/CoderPuppy/os-browserify.git" - } + "_args": [ + [ + "os-browserify@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "os-browserify@0.3.0", + "_id": "os-browserify@0.3.0", + "_inBundle": false, + "_integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "_location": "/os-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "os-browserify@0.3.0", + "name": "os-browserify", + "escapedName": "os-browserify", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "CoderPuppy", + "email": "coderpup@gmail.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/CoderPuppy/os-browserify/issues" + }, + "description": "The [os](https://nodejs.org/api/os.html) module from node.js, but for browsers.", + "homepage": "https://github.com/CoderPuppy/os-browserify#readme", + "jspm": { + "map": { + "./main.js": { + "node": "@node/os", + "browser": "./browser.js" + } + } + }, + "license": "MIT", + "main": "main.js", + "name": "os-browserify", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/CoderPuppy/os-browserify.git" + }, + "version": "0.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/os-homedir/package.json b/admin/vue2/element-admin-v3/node_modules/os-homedir/package.json index 525b22517..c12d7b29b 100644 --- a/admin/vue2/element-admin-v3/node_modules/os-homedir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/os-homedir/package.json @@ -1,23 +1,54 @@ { - "name": "os-homedir", - "version": "1.0.2", - "description": "Node.js 4 `os.homedir()` ponyfill", - "license": "MIT", - "repository": "sindresorhus/os-homedir", + "_args": [ + [ + "os-homedir@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "os-homedir@1.0.2", + "_id": "os-homedir@1.0.2", + "_inBundle": false, + "_integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "_location": "/os-homedir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "os-homedir@1.0.2", + "name": "os-homedir", + "escapedName": "os-homedir", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/home-or-tmp" + ], + "_resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/os-homedir/issues" + }, + "description": "Node.js 4 `os.homedir()` ponyfill", + "devDependencies": { + "ava": "*", + "path-exists": "^2.0.0", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/os-homedir#readme", "keywords": [ "builtin", "core", @@ -33,9 +64,14 @@ "user", "path" ], - "devDependencies": { - "ava": "*", - "path-exists": "^2.0.0", - "xo": "^0.16.0" - } + "license": "MIT", + "name": "os-homedir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/os-homedir.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/os-locale/package.json b/admin/vue2/element-admin-v3/node_modules/os-locale/package.json index 37f3ffa14..f56fe6327 100644 --- a/admin/vue2/element-admin-v3/node_modules/os-locale/package.json +++ b/admin/vue2/element-admin-v3/node_modules/os-locale/package.json @@ -1,45 +1,81 @@ { - "name": "os-locale", - "version": "3.1.0", - "description": "Get the system locale", - "license": "MIT", - "repository": "sindresorhus/os-locale", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "locale", - "lang", - "language", - "system", - "os", - "string", - "str", - "user", - "country", - "id", - "identifier", - "region" - ], - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "devDependencies": { - "ava": "^1.0.1", - "import-fresh": "^3.0.0", - "xo": "^0.23.0" - } + "_args": [ + [ + "os-locale@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "os-locale@3.1.0", + "_id": "os-locale@3.1.0", + "_inBundle": false, + "_integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "_location": "/os-locale", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "os-locale@3.1.0", + "name": "os-locale", + "escapedName": "os-locale", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1584865515583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/os-locale/issues" + }, + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "description": "Get the system locale", + "devDependencies": { + "ava": "^1.0.1", + "import-fresh": "^3.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/os-locale#readme", + "keywords": [ + "locale", + "lang", + "language", + "system", + "os", + "string", + "str", + "user", + "country", + "id", + "identifier", + "region" + ], + "license": "MIT", + "name": "os-locale", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/os-locale.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/os-tmpdir/package.json b/admin/vue2/element-admin-v3/node_modules/os-tmpdir/package.json index 180a3176b..6d4136599 100644 --- a/admin/vue2/element-admin-v3/node_modules/os-tmpdir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/os-tmpdir/package.json @@ -1,23 +1,54 @@ { - "name": "os-tmpdir", - "version": "1.0.2", - "description": "Node.js os.tmpdir() ponyfill", - "license": "MIT", - "repository": "sindresorhus/os-tmpdir", + "_args": [ + [ + "os-tmpdir@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "os-tmpdir@1.0.2", + "_id": "os-tmpdir@1.0.2", + "_inBundle": false, + "_integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "_location": "/os-tmpdir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "os-tmpdir@1.0.2", + "name": "os-tmpdir", + "escapedName": "os-tmpdir", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/home-or-tmp", + "/tmp" + ], + "_resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/os-tmpdir/issues" + }, + "description": "Node.js os.tmpdir() ponyfill", + "devDependencies": { + "ava": "*", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/os-tmpdir#readme", "keywords": [ "built-in", "core", @@ -34,8 +65,14 @@ "env", "environment" ], - "devDependencies": { - "ava": "*", - "xo": "^0.16.0" - } + "license": "MIT", + "name": "os-tmpdir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/os-tmpdir.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/p-defer/package.json b/admin/vue2/element-admin-v3/node_modules/p-defer/package.json index f3ba49410..417d7d3c9 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-defer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-defer/package.json @@ -1,23 +1,53 @@ { - "name": "p-defer", - "version": "1.0.0", - "description": "Create a deferred promise", - "license": "MIT", - "repository": "sindresorhus/p-defer", + "_args": [ + [ + "p-defer@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-defer@1.0.0", + "_id": "p-defer@1.0.0", + "_inBundle": false, + "_integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "_location": "/p-defer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-defer@1.0.0", + "name": "p-defer", + "escapedName": "p-defer", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/map-age-cleaner" + ], + "_resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&sync_timestamp=1617945878897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-defer/issues" + }, + "description": "Create a deferred promise", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-defer#readme", "keywords": [ "promise", "defer", @@ -31,10 +61,16 @@ "promises", "bluebird" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "p-defer", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-defer.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "1.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/p-finally/package.json b/admin/vue2/element-admin-v3/node_modules/p-finally/package.json index b26ab5188..89863d839 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-finally/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-finally/package.json @@ -1,23 +1,53 @@ { - "name": "p-finally", - "version": "1.0.0", - "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome", - "license": "MIT", - "repository": "sindresorhus/p-finally", + "_args": [ + [ + "p-finally@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-finally@1.0.0", + "_id": "p-finally@1.0.0", + "_inBundle": false, + "_integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "_location": "/p-finally", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-finally@1.0.0", + "name": "p-finally", + "escapedName": "p-finally", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/execa", + "/lint-staged/execa" + ], + "_resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-finally/issues" + }, + "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-finally#readme", "keywords": [ "promise", "finally", @@ -32,10 +62,16 @@ "shim", "bluebird" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "p-finally", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-finally.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "1.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/p-is-promise/package.json b/admin/vue2/element-admin-v3/node_modules/p-is-promise/package.json index 1a163a8e4..d2485c627 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-is-promise/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-is-promise/package.json @@ -1,42 +1,78 @@ { - "name": "p-is-promise", - "version": "2.1.0", - "description": "Check if something is a promise", - "license": "MIT", - "repository": "sindresorhus/p-is-promise", - "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": [ - "promise", - "is", - "detect", - "check", - "kind", - "type", - "thenable", - "es2015", - "async", - "await", - "promises", - "bluebird" - ], - "devDependencies": { - "ava": "^1.4.1", - "bluebird": "^3.5.4", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-is-promise@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-is-promise@2.1.0", + "_id": "p-is-promise@2.1.0", + "_inBundle": false, + "_integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "_location": "/p-is-promise", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-is-promise@2.1.0", + "name": "p-is-promise", + "escapedName": "p-is-promise", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/mem" + ], + "_resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz?cache=0&sync_timestamp=1618557038207&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-is-promise%2Fdownload%2Fp-is-promise-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-is-promise/issues" + }, + "description": "Check if something is a promise", + "devDependencies": { + "ava": "^1.4.1", + "bluebird": "^3.5.4", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/p-is-promise#readme", + "keywords": [ + "promise", + "is", + "detect", + "check", + "kind", + "type", + "thenable", + "es2015", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-is-promise", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-is-promise.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/p-limit/package.json b/admin/vue2/element-admin-v3/node_modules/p-limit/package.json index 99a814f6e..403837d8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-limit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-limit/package.json @@ -1,52 +1,87 @@ { - "name": "p-limit", - "version": "2.3.0", - "description": "Run multiple promise-returning & async functions with limited concurrency", - "license": "MIT", - "repository": "sindresorhus/p-limit", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "promise", - "limit", - "limited", - "concurrency", - "throttle", - "throat", - "rate", - "batch", - "ratelimit", - "task", - "queue", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-try": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.2.1", - "delay": "^4.1.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^2.0.0", - "tsd-check": "^0.3.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-limit@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-limit@2.3.0", + "_id": "p-limit@2.3.0", + "_inBundle": false, + "_integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "_location": "/p-limit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-limit@2.3.0", + "name": "p-limit", + "escapedName": "p-limit", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/p-locate" + ], + "_resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-limit/issues" + }, + "dependencies": { + "p-try": "^2.0.0" + }, + "description": "Run multiple promise-returning & async functions with limited concurrency", + "devDependencies": { + "ava": "^1.2.1", + "delay": "^4.1.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "tsd-check": "^0.3.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "funding": "https://github.com/sponsors/sindresorhus", + "homepage": "https://github.com/sindresorhus/p-limit#readme", + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-limit", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-limit.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/p-locate/package.json b/admin/vue2/element-admin-v3/node_modules/p-locate/package.json index 1d28b54c0..3c1a8392c 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-locate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-locate/package.json @@ -1,51 +1,86 @@ { - "name": "p-locate", - "version": "3.0.0", - "description": "Get the first fulfilled promise that satisfies the provided testing function", - "license": "MIT", - "repository": "sindresorhus/p-locate", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "locate", - "find", - "finder", - "search", - "searcher", - "test", - "array", - "collection", - "iterable", - "iterator", - "race", - "fulfilled", - "fastest", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-limit": "^2.0.0" - }, - "devDependencies": { - "ava": "*", - "delay": "^3.0.0", - "in-range": "^1.0.0", - "time-span": "^2.0.0", - "xo": "*" - } + "_args": [ + [ + "p-locate@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-locate@3.0.0", + "_id": "p-locate@3.0.0", + "_inBundle": false, + "_integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "_location": "/p-locate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-locate@3.0.0", + "name": "p-locate", + "escapedName": "p-locate", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/locate-path" + ], + "_resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-locate/issues" + }, + "dependencies": { + "p-limit": "^2.0.0" + }, + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "devDependencies": { + "ava": "*", + "delay": "^3.0.0", + "in-range": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-locate#readme", + "keywords": [ + "promise", + "locate", + "find", + "finder", + "search", + "searcher", + "test", + "array", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "fastest", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-locate", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-locate.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/p-map/package.json b/admin/vue2/element-admin-v3/node_modules/p-map/package.json index 60a866c16..013a1db20 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-map/package.json @@ -1,49 +1,85 @@ { - "name": "p-map", - "version": "2.1.0", - "description": "Map over promises concurrently", - "license": "MIT", - "repository": "sindresorhus/p-map", - "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": [ - "promise", - "map", - "resolved", - "wait", - "collection", - "iterable", - "iterator", - "race", - "fulfilled", - "async", - "await", - "promises", - "concurrently", - "concurrency", - "parallel", - "bluebird" - ], - "devDependencies": { - "ava": "^1.4.1", - "delay": "^4.1.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^3.1.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-map@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-map@2.1.0", + "_id": "p-map@2.1.0", + "_inBundle": false, + "_integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "_location": "/p-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-map@2.1.0", + "name": "p-map", + "escapedName": "p-map", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/del", + "/listr" + ], + "_resolved": "https://registry.nlark.com/p-map/download/p-map-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-map/issues" + }, + "description": "Map over promises concurrently", + "devDependencies": { + "ava": "^1.4.1", + "delay": "^4.1.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^3.1.0", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/p-map#readme", + "keywords": [ + "promise", + "map", + "resolved", + "wait", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "async", + "await", + "promises", + "concurrently", + "concurrency", + "parallel", + "bluebird" + ], + "license": "MIT", + "name": "p-map", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-map.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/p-retry/package.json b/admin/vue2/element-admin-v3/node_modules/p-retry/package.json index f89ca1792..8f70df847 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-retry/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-retry/package.json @@ -1,48 +1,83 @@ { - "name": "p-retry", - "version": "3.0.1", - "description": "Retry a promise-returning or async function", - "license": "MIT", - "repository": "sindresorhus/p-retry", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "retry", - "retries", - "operation", - "failed", - "rejected", - "try", - "exponential", - "backoff", - "attempt", - "async", - "await", - "promises", - "concurrently", - "concurrency", - "parallel", - "bluebird" - ], - "dependencies": { - "retry": "^0.12.0" - }, - "devDependencies": { - "ava": "^1.1.0", - "delay": "^4.1.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-retry@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-retry@3.0.1", + "_id": "p-retry@3.0.1", + "_inBundle": false, + "_integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "_location": "/p-retry", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-retry@3.0.1", + "name": "p-retry", + "escapedName": "p-retry", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1617001968077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-retry/issues" + }, + "dependencies": { + "retry": "^0.12.0" + }, + "description": "Retry a promise-returning or async function", + "devDependencies": { + "ava": "^1.1.0", + "delay": "^4.1.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-retry#readme", + "keywords": [ + "promise", + "retry", + "retries", + "operation", + "failed", + "rejected", + "try", + "exponential", + "backoff", + "attempt", + "async", + "await", + "promises", + "concurrently", + "concurrency", + "parallel", + "bluebird" + ], + "license": "MIT", + "name": "p-retry", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-retry.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/p-try/package.json b/admin/vue2/element-admin-v3/node_modules/p-try/package.json index 81c4d32e4..15adddc95 100644 --- a/admin/vue2/element-admin-v3/node_modules/p-try/package.json +++ b/admin/vue2/element-admin-v3/node_modules/p-try/package.json @@ -1,42 +1,77 @@ { - "name": "p-try", - "version": "2.2.0", - "description": "`Start a promise chain", - "license": "MIT", - "repository": "sindresorhus/p-try", - "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": [ - "promise", - "try", - "resolve", - "function", - "catch", - "async", - "await", - "promises", - "settled", - "ponyfill", - "polyfill", - "shim", - "bluebird" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-try@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "p-try@2.2.0", + "_id": "p-try@2.2.0", + "_inBundle": false, + "_integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "_location": "/p-try", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-try@2.2.0", + "name": "p-try", + "escapedName": "p-try", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/p-limit" + ], + "_resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-try/issues" + }, + "description": "`Start a promise chain", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/p-try#readme", + "keywords": [ + "promise", + "try", + "resolve", + "function", + "catch", + "async", + "await", + "promises", + "settled", + "ponyfill", + "polyfill", + "shim", + "bluebird" + ], + "license": "MIT", + "name": "p-try", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-try.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pako/package.json b/admin/vue2/element-admin-v3/node_modules/pako/package.json index 7aaade84c..d215e3ec0 100644 --- a/admin/vue2/element-admin-v3/node_modules/pako/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pako/package.json @@ -1,32 +1,62 @@ { - "name": "pako", - "description": "zlib port to javascript - fast, modularized, with browser support", - "version": "1.0.11", - "keywords": [ - "zlib", - "deflate", - "inflate", - "gzip" - ], - "homepage": "https://github.com/nodeca/pako", - "contributors": [ - "Andrei Tuputcyn (https://github.com/andr83)", - "Vitaly Puzrin (https://github.com/puzrin)", - "Friedel Ziegelmayer (https://github.com/dignifiedquire)", - "Kirill Efimov (https://github.com/Kirill89)", - "Jean-loup Gailly", - "Mark Adler" + "_args": [ + [ + "pako@1.0.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "index.js", - "dist/", - "lib/" + "_from": "pako@1.0.11", + "_id": "pako@1.0.11", + "_inBundle": false, + "_integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "_location": "/pako", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pako@1.0.11", + "name": "pako", + "escapedName": "pako", + "rawSpec": "1.0.11", + "saveSpec": null, + "fetchSpec": "1.0.11" + }, + "_requiredBy": [ + "/browserify-zlib", + "/jszip" ], - "license": "(MIT AND Zlib)", - "repository": "nodeca/pako", - "scripts": { - "test": "make test" + "_resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1610209123970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", + "_spec": "1.0.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodeca/pako/issues" }, + "contributors": [ + { + "name": "Andrei Tuputcyn", + "url": "https://github.com/andr83" + }, + { + "name": "Vitaly Puzrin", + "url": "https://github.com/puzrin" + }, + { + "name": "Friedel Ziegelmayer", + "url": "https://github.com/dignifiedquire" + }, + { + "name": "Kirill Efimov", + "url": "https://github.com/Kirill89" + }, + { + "name": "Jean-loup Gailly" + }, + { + "name": "Mark Adler" + } + ], + "dependencies": {}, + "description": "zlib port to javascript - fast, modularized, with browser support", "devDependencies": { "ansi": "^0.3.1", "benchmark": "^2.1.4", @@ -40,5 +70,26 @@ "uglify-js": "=3.4.8", "zlibjs": "^0.3.1" }, - "dependencies": {} + "files": [ + "index.js", + "dist/", + "lib/" + ], + "homepage": "https://github.com/nodeca/pako", + "keywords": [ + "zlib", + "deflate", + "inflate", + "gzip" + ], + "license": "(MIT AND Zlib)", + "name": "pako", + "repository": { + "type": "git", + "url": "git+https://github.com/nodeca/pako.git" + }, + "scripts": { + "test": "make test" + }, + "version": "1.0.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/parallel-transform/package.json b/admin/vue2/element-admin-v3/node_modules/parallel-transform/package.json index acfd9cb13..48843aadd 100644 --- a/admin/vue2/element-admin-v3/node_modules/parallel-transform/package.json +++ b/admin/vue2/element-admin-v3/node_modules/parallel-transform/package.json @@ -1,9 +1,46 @@ { - "name": "parallel-transform", - "version": "1.2.0", - "repository": "git://github.com/mafintosh/parallel-transform", - "license": "MIT", + "_args": [ + [ + "parallel-transform@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "parallel-transform@1.2.0", + "_id": "parallel-transform@1.2.0", + "_inBundle": false, + "_integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "_location": "/parallel-transform", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parallel-transform@1.2.0", + "name": "parallel-transform", + "escapedName": "parallel-transform", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, + "bugs": { + "url": "https://github.com/mafintosh/parallel-transform/issues" + }, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, "description": "Transform stream that allows you to run your transforms in parallel without changing the order", + "homepage": "https://github.com/mafintosh/parallel-transform#readme", "keywords": [ "transform", "stream", @@ -11,10 +48,11 @@ "preserve", "order" ], - "author": "Mathias Buus Madsen ", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } + "license": "MIT", + "name": "parallel-transform", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/parallel-transform.git" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/param-case/package.json b/admin/vue2/element-admin-v3/node_modules/param-case/package.json index d6ccb41fb..d3913e5fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/param-case/package.json +++ b/admin/vue2/element-admin-v3/node_modules/param-case/package.json @@ -1,46 +1,75 @@ { - "name": "param-case", - "version": "2.1.1", - "description": "Param case a string", - "main": "param-case.js", - "typings": "param-case.d.ts", - "files": [ - "param-case.js", - "param-case.d.ts", - "LICENSE" + "_args": [ + [ + "param-case@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "standard", - "test-std": "mocha -- -R spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/param-case.git" + "_development": true, + "_from": "param-case@2.1.1", + "_id": "param-case@2.1.1", + "_inBundle": false, + "_integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "_location": "/param-case", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "param-case@2.1.1", + "name": "param-case", + "escapedName": "param-case", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" }, - "keywords": [ - "param", - "case", - "dash", - "hyphen" + "_requiredBy": [ + "/html-minifier" ], + "_resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me" }, - "license": "MIT", "bugs": { "url": "https://github.com/blakeembrey/param-case/issues" }, - "homepage": "https://github.com/blakeembrey/param-case", + "dependencies": { + "no-case": "^2.2.0" + }, + "description": "Param case a string", "devDependencies": { "istanbul": "^0.4.3", "mocha": "^3.2.0", "standard": "^9.0.1" }, - "dependencies": { - "no-case": "^2.2.0" - } + "files": [ + "param-case.js", + "param-case.d.ts", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/param-case", + "keywords": [ + "param", + "case", + "dash", + "hyphen" + ], + "license": "MIT", + "main": "param-case.js", + "name": "param-case", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/param-case.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", + "test-std": "mocha -- -R spec --bail" + }, + "typings": "param-case.d.ts", + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/parse-asn1/package.json b/admin/vue2/element-admin-v3/node_modules/parse-asn1/package.json index 8eac07fe4..42bda8af2 100644 --- a/admin/vue2/element-admin-v3/node_modules/parse-asn1/package.json +++ b/admin/vue2/element-admin-v3/node_modules/parse-asn1/package.json @@ -1,26 +1,37 @@ { - "name": "parse-asn1", - "version": "5.1.6", - "description": "utility library for parsing asn1 files for use with browserify-sign.", - "main": "index.js", - "files": [ - "asn1.js", - "aesid.json", - "certificate.js", - "fixProc.js", - "index.js" + "_args": [ + [ + "parse-asn1@5.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "unit": "node ./test", - "standard": "standard", - "test": "npm run standard && npm run unit" - }, - "repository": { - "type": "git", - "url": "git://github.com/crypto-browserify/parse-asn1.git" + "_from": "parse-asn1@5.1.6", + "_id": "parse-asn1@5.1.6", + "_inBundle": false, + "_integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", + "_location": "/parse-asn1", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parse-asn1@5.1.6", + "name": "parse-asn1", + "escapedName": "parse-asn1", + "rawSpec": "5.1.6", + "saveSpec": null, + "fetchSpec": "5.1.6" }, + "_requiredBy": [ + "/browserify-sign", + "/public-encrypt" + ], + "_resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597165710136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz", + "_spec": "5.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "ISC", + "bugs": { + "url": "https://github.com/crypto-browserify/parse-asn1/issues" + }, "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", @@ -28,8 +39,30 @@ "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" }, + "description": "utility library for parsing asn1 files for use with browserify-sign.", "devDependencies": { "standard": "^14.3.4", "tape": "^5.0.1" - } + }, + "files": [ + "asn1.js", + "aesid.json", + "certificate.js", + "fixProc.js", + "index.js" + ], + "homepage": "https://github.com/crypto-browserify/parse-asn1#readme", + "license": "ISC", + "main": "index.js", + "name": "parse-asn1", + "repository": { + "type": "git", + "url": "git://github.com/crypto-browserify/parse-asn1.git" + }, + "scripts": { + "standard": "standard", + "test": "npm run standard && npm run unit", + "unit": "node ./test" + }, + "version": "5.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/parse-headers/package.json b/admin/vue2/element-admin-v3/node_modules/parse-headers/package.json index 9bd4ae26b..96a513b23 100644 --- a/admin/vue2/element-admin-v3/node_modules/parse-headers/package.json +++ b/admin/vue2/element-admin-v3/node_modules/parse-headers/package.json @@ -1,27 +1,58 @@ { - "name": "parse-headers", - "version": "2.0.3", - "description": "Parse http headers, works with browserify/xhr", - "main": "parse-headers.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "parse-headers@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "parse-headers@2.0.3", + "_id": "parse-headers@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Xo51Ejg9FAugLwx6qfSbQ5nJJRU=", + "_location": "/parse-headers", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parse-headers@2.0.3", + "name": "parse-headers", + "escapedName": "parse-headers", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" }, - "repository": { - "type": "git", - "url": "https://github.com/kesla/parse-headers.git" + "_requiredBy": [ + "/xhr" + ], + "_resolved": "https://registry.npm.taobao.org/parse-headers/download/parse-headers-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "David Björklund", + "email": "david.bjorklund@gmail.com" + }, + "bugs": { + "url": "https://github.com/kesla/parse-headers/issues" + }, + "dependencies": {}, + "description": "Parse http headers, works with browserify/xhr", + "devDependencies": { + "tape": "^4.10.1" }, + "homepage": "https://github.com/kesla/parse-headers", "keywords": [ "http", "headers" ], - "author": "David Björklund ", "license": "MIT", - "bugs": { - "url": "https://github.com/kesla/parse-headers/issues" + "main": "parse-headers.js", + "name": "parse-headers", + "repository": { + "type": "git", + "url": "git+https://github.com/kesla/parse-headers.git" }, - "homepage": "https://github.com/kesla/parse-headers", - "devDependencies": { - "tape": "^4.10.1" + "scripts": { + "test": "node test.js" }, - "dependencies": {} + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/parse-json/package.json b/admin/vue2/element-admin-v3/node_modules/parse-json/package.json index 7aca6eded..3175ee21d 100644 --- a/admin/vue2/element-admin-v3/node_modules/parse-json/package.json +++ b/admin/vue2/element-admin-v3/node_modules/parse-json/package.json @@ -1,24 +1,59 @@ { - "name": "parse-json", - "version": "4.0.0", - "description": "Parse JSON with more helpful errors", - "license": "MIT", - "repository": "sindresorhus/parse-json", + "_args": [ + [ + "parse-json@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "parse-json@4.0.0", + "_id": "parse-json@4.0.0", + "_inBundle": false, + "_integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "_location": "/parse-json", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parse-json@4.0.0", + "name": "parse-json", + "escapedName": "parse-json", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/cosmiconfig" + ], + "_resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/parse-json/issues" + }, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "description": "Parse JSON with more helpful errors", + "devDependencies": { + "ava": "*", + "nyc": "^11.2.1", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && nyc ava" - }, "files": [ "index.js", "vendor" ], + "homepage": "https://github.com/sindresorhus/parse-json#readme", "keywords": [ "parse", "json", @@ -31,13 +66,14 @@ "string", "str" ], - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "license": "MIT", + "name": "parse-json", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/parse-json.git" }, - "devDependencies": { - "ava": "*", - "nyc": "^11.2.1", - "xo": "*" - } + "scripts": { + "test": "xo && nyc ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/parseurl/package.json b/admin/vue2/element-admin-v3/node_modules/parseurl/package.json index 6b443ca7a..d9b7674ab 100644 --- a/admin/vue2/element-admin-v3/node_modules/parseurl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/parseurl/package.json @@ -1,13 +1,53 @@ { - "name": "parseurl", - "description": "parse a url with memoization", - "version": "1.3.3", + "_args": [ + [ + "parseurl@1.3.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "parseurl@1.3.3", + "_id": "parseurl@1.3.3", + "_inBundle": false, + "_integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "_location": "/parseurl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "parseurl@1.3.3", + "name": "parseurl", + "escapedName": "parseurl", + "rawSpec": "1.3.3", + "saveSpec": null, + "fetchSpec": "1.3.3" + }, + "_requiredBy": [ + "/connect", + "/express", + "/express/finalhandler", + "/express/serve-static", + "/finalhandler", + "/serve-index", + "/serve-static" + ], + "_resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "_spec": "1.3.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/pillarjs/parseurl/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "repository": "pillarjs/parseurl", - "license": "MIT", + "description": "parse a url with memoization", "devDependencies": { "beautify-benchmark": "0.2.4", "benchmark": "2.1.4", @@ -21,14 +61,21 @@ "istanbul": "0.4.5", "mocha": "6.1.3" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/pillarjs/parseurl#readme", + "license": "MIT", + "name": "parseurl", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/parseurl.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -36,5 +83,6 @@ "test": "mocha --check-leaks --bail --reporter spec test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/" - } + }, + "version": "1.3.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/pascalcase/package.json b/admin/vue2/element-admin-v3/node_modules/pascalcase/package.json index 0576d1397..d10b3923f 100644 --- a/admin/vue2/element-admin-v3/node_modules/pascalcase/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pascalcase/package.json @@ -1,28 +1,51 @@ { - "name": "pascalcase", - "description": "Convert a string to pascal-case.", - "version": "0.1.1", - "homepage": "https://github.com/jonschlinkert/pascalcase", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/pascalcase", - "bugs": { - "url": "https://github.com/jonschlinkert/pascalcase/issues" + "_args": [ + [ + "pascalcase@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pascalcase@0.1.1", + "_id": "pascalcase@0.1.1", + "_inBundle": false, + "_integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "_location": "/pascalcase", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pascalcase@0.1.1", + "name": "pascalcase", + "escapedName": "pascalcase", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/pascalcase/issues" }, + "description": "Convert a string to pascal-case.", "devDependencies": { "mocha": "*", "should": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/pascalcase", "keywords": [ "camelcase", "case", @@ -32,6 +55,16 @@ "pascalcase", "string" ], + "license": "MIT", + "main": "index.js", + "name": "pascalcase", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/pascalcase.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -42,5 +75,6 @@ "justified" ] } - } -} \ No newline at end of file + }, + "version": "0.1.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/path-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/path-browserify/package.json index 61828d6d5..ad72e7e42 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-browserify/package.json @@ -1,29 +1,60 @@ { - "name": "path-browserify", - "version": "0.0.1", - "description": "the path module from node core for browsers", - "main": "index.js", + "_args": [ + [ + "path-browserify@0.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-browserify@0.0.1", + "_id": "path-browserify@0.0.1", + "_inBundle": false, + "_integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", + "_location": "/path-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-browserify@0.0.1", + "name": "path-browserify", + "escapedName": "path-browserify", + "rawSpec": "0.0.1", + "saveSpec": null, + "fetchSpec": "0.0.1" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "_spec": "0.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/path-browserify/issues" + }, "dependencies": {}, + "description": "the path module from node core for browsers", "devDependencies": { "tape": "~1.0.4" }, - "scripts": { - "test": "node test/test-path.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/path-browserify.git" - }, "homepage": "https://github.com/substack/path-browserify", "keywords": [ "path", "browser", "browserify" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" + "license": "MIT", + "main": "index.js", + "name": "path-browserify", + "repository": { + "type": "git", + "url": "git://github.com/substack/path-browserify.git" + }, + "scripts": { + "test": "node test/test-path.js" }, - "license": "MIT" + "version": "0.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-dirname/package.json b/admin/vue2/element-admin-v3/node_modules/path-dirname/package.json index eb78533b7..5a772bc7f 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-dirname/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-dirname/package.json @@ -1,16 +1,43 @@ { - "name": "path-dirname", - "version": "1.0.2", - "description": "Node.js path.dirname() ponyfill", - "license": "MIT", - "repository": "es128/path-dirname", - "author": "Elan Shanker", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "path-dirname@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-dirname@1.0.2", + "_id": "path-dirname@1.0.2", + "_inBundle": false, + "_integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "_location": "/path-dirname", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-dirname@1.0.2", + "name": "path-dirname", + "escapedName": "path-dirname", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/glob-parent" + ], + "_resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Elan Shanker" + }, + "bugs": { + "url": "https://github.com/es128/path-dirname/issues" }, + "description": "Node.js path.dirname() ponyfill", "files": [ "index.js" ], + "homepage": "https://github.com/es128/path-dirname#readme", "keywords": [ "dirname", "dir", @@ -25,5 +52,15 @@ "ponyfill", "polyfill", "shim" - ] + ], + "license": "MIT", + "name": "path-dirname", + "repository": { + "type": "git", + "url": "git+https://github.com/es128/path-dirname.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-exists/package.json b/admin/vue2/element-admin-v3/node_modules/path-exists/package.json index efd56267e..dd6294f9b 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-exists/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-exists/package.json @@ -1,23 +1,55 @@ { - "name": "path-exists", - "version": "3.0.0", - "description": "Check if a path exists", - "license": "MIT", - "repository": "sindresorhus/path-exists", + "_args": [ + [ + "path-exists@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-exists@3.0.0", + "_id": "path-exists@3.0.0", + "_inBundle": false, + "_integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "_location": "/path-exists", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-exists@3.0.0", + "name": "path-exists", + "escapedName": "path-exists", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/find-cache-dir/locate-path", + "/locate-path", + "/webpack-cli/locate-path", + "/webpack-cli/yargs/locate-path" + ], + "_resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-exists/issues" + }, + "description": "Check if a path exists", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/path-exists#readme", "keywords": [ "path", "exists", @@ -30,10 +62,16 @@ "access", "stat" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "path-exists", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-exists.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "3.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/path-is-absolute/package.json b/admin/vue2/element-admin-v3/node_modules/path-is-absolute/package.json index 91196d5e9..a849a8260 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-is-absolute/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-is-absolute/package.json @@ -1,23 +1,53 @@ { - "name": "path-is-absolute", - "version": "1.0.1", - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "license": "MIT", - "repository": "sindresorhus/path-is-absolute", + "_args": [ + [ + "path-is-absolute@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-is-absolute@1.0.1", + "_id": "path-is-absolute@1.0.1", + "_inBundle": false, + "_integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "_location": "/path-is-absolute", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-is-absolute@1.0.1", + "name": "path-is-absolute", + "escapedName": "path-is-absolute", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/babel-core", + "/chokidar", + "/glob" + ], + "_resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-is-absolute/issues" + }, + "description": "Node.js 0.12 path.isAbsolute() ponyfill", + "devDependencies": { + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/path-is-absolute#readme", "keywords": [ "path", "paths", @@ -37,7 +67,14 @@ "detect", "check" ], - "devDependencies": { - "xo": "^0.16.0" - } + "license": "MIT", + "name": "path-is-absolute", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-is-absolute.git" + }, + "scripts": { + "test": "xo && node test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-is-inside/package.json b/admin/vue2/element-admin-v3/node_modules/path-is-inside/package.json index 74c56e695..526ca2e05 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-is-inside/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-is-inside/package.json @@ -1,21 +1,68 @@ { + "_args": [ + [ + "path-is-inside@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-is-inside@1.0.2", + "_id": "path-is-inside@1.0.2", + "_inBundle": false, + "_integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "_location": "/path-is-inside", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-is-inside@1.0.2", "name": "path-is-inside", - "description": "Tests whether one path is inside another path", - "keywords": ["path", "directory", "folder", "inside", "relative"], - "version": "1.0.2", - "author": "Domenic Denicola (https://domenic.me)", - "license": "(WTFPL OR MIT)", - "repository": "domenic/path-is-inside", - "main": "lib/path-is-inside.js", - "files": [ - "lib" - ], - "scripts": { - "test": "mocha", - "lint": "jshint lib" - }, - "devDependencies": { - "jshint": "~2.3.0", - "mocha": "~1.15.1" - } + "escapedName": "path-is-inside", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/eslint", + "/is-path-inside", + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Domenic Denicola", + "email": "d@domenic.me", + "url": "https://domenic.me" + }, + "bugs": { + "url": "https://github.com/domenic/path-is-inside/issues" + }, + "description": "Tests whether one path is inside another path", + "devDependencies": { + "jshint": "~2.3.0", + "mocha": "~1.15.1" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/domenic/path-is-inside#readme", + "keywords": [ + "path", + "directory", + "folder", + "inside", + "relative" + ], + "license": "(WTFPL OR MIT)", + "main": "lib/path-is-inside.js", + "name": "path-is-inside", + "repository": { + "type": "git", + "url": "git+https://github.com/domenic/path-is-inside.git" + }, + "scripts": { + "lint": "jshint lib", + "test": "mocha" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-key/package.json b/admin/vue2/element-admin-v3/node_modules/path-key/package.json index 81e0e8bed..3c1c565a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-key/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-key/package.json @@ -1,23 +1,53 @@ { - "name": "path-key", - "version": "2.0.1", - "description": "Get the PATH environment variable key cross-platform", - "license": "MIT", - "repository": "sindresorhus/path-key", + "_args": [ + [ + "path-key@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-key@2.0.1", + "_id": "path-key@2.0.1", + "_inBundle": false, + "_integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "_location": "/path-key", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-key@2.0.1", + "name": "path-key", + "escapedName": "path-key", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/cross-spawn", + "/npm-run-path" + ], + "_resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971613935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-key/issues" + }, + "description": "Get the PATH environment variable key cross-platform", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/path-key#readme", "keywords": [ "path", "key", @@ -29,10 +59,16 @@ "cross-platform", "windows" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "path-key", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-key.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "2.0.1", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/path-parse/package.json b/admin/vue2/element-admin-v3/node_modules/path-parse/package.json index 36c23f84e..f8b0b8e46 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-parse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-parse/package.json @@ -1,15 +1,41 @@ { - "name": "path-parse", - "version": "1.0.7", - "description": "Node.js path.parse() ponyfill", - "main": "index.js", - "scripts": { - "test": "node test.js" + "_args": [ + [ + "path-parse@1.0.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "path-parse@1.0.7", + "_id": "path-parse@1.0.7", + "_inBundle": false, + "_integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "_location": "/path-parse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-parse@1.0.7", + "name": "path-parse", + "escapedName": "path-parse", + "rawSpec": "1.0.7", + "saveSpec": null, + "fetchSpec": "1.0.7" }, - "repository": { - "type": "git", - "url": "https://github.com/jbgutierrez/path-parse.git" + "_requiredBy": [ + "/resolve" + ], + "_resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz", + "_spec": "1.0.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Javier Blanco", + "email": "http://jbgutierrez.info" + }, + "bugs": { + "url": "https://github.com/jbgutierrez/path-parse/issues" }, + "description": "Node.js path.parse() ponyfill", + "homepage": "https://github.com/jbgutierrez/path-parse#readme", "keywords": [ "path", "paths", @@ -24,10 +50,15 @@ "polyfill", "shim" ], - "author": "Javier Blanco ", "license": "MIT", - "bugs": { - "url": "https://github.com/jbgutierrez/path-parse/issues" + "main": "index.js", + "name": "path-parse", + "repository": { + "type": "git", + "url": "git+https://github.com/jbgutierrez/path-parse.git" + }, + "scripts": { + "test": "node test.js" }, - "homepage": "https://github.com/jbgutierrez/path-parse#readme" + "version": "1.0.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-to-regexp/package.json b/admin/vue2/element-admin-v3/node_modules/path-to-regexp/package.json index ac1f71930..77d59bbf1 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-to-regexp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-to-regexp/package.json @@ -1,36 +1,42 @@ { - "name": "path-to-regexp", - "description": "Express style path to RegExp utility", - "version": "2.4.0", - "main": "index.js", - "typings": "index.d.ts", - "files": [ - "index.js", - "index.d.ts", - "LICENSE" + "_args": [ + [ + "path-to-regexp@2.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "standard", - "test-spec": "mocha --require ts-node/register -R spec --bail test.ts", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require ts-node/register -R spec test.ts", - "test": "npm run lint && npm run test-cov" + "_development": true, + "_from": "path-to-regexp@2.4.0", + "_id": "path-to-regexp@2.4.0", + "_inBundle": false, + "_integrity": "sha1-Nc5/Mz1WFvHB4b/iZsOrouWy5wQ=", + "_location": "/path-to-regexp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-to-regexp@2.4.0", + "name": "path-to-regexp", + "escapedName": "path-to-regexp", + "rawSpec": "2.4.0", + "saveSpec": null, + "fetchSpec": "2.4.0" }, - "keywords": [ - "express", - "regexp", - "route", - "routing" + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-2.4.0.tgz?cache=0&sync_timestamp=1601400328354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-2.4.0.tgz", + "_spec": "2.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/pillarjs/path-to-regexp/issues" + }, "component": { "scripts": { "path-to-regexp": "index.js" } }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/pillarjs/path-to-regexp.git" - }, + "description": "Express style path to RegExp utility", "devDependencies": { "@types/chai": "^4.0.4", "@types/mocha": "^5.2.5", @@ -41,5 +47,32 @@ "standard": "^11.0.1", "ts-node": "^7.0.1", "typescript": "^3.0.1" - } + }, + "files": [ + "index.js", + "index.d.ts", + "LICENSE" + ], + "homepage": "https://github.com/pillarjs/path-to-regexp#readme", + "keywords": [ + "express", + "regexp", + "route", + "routing" + ], + "license": "MIT", + "main": "index.js", + "name": "path-to-regexp", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/path-to-regexp.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require ts-node/register -R spec test.ts", + "test-spec": "mocha --require ts-node/register -R spec --bail test.ts" + }, + "typings": "index.d.ts", + "version": "2.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-type/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/path-type/node_modules/pify/package.json index 468d85760..bd3f5da21 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-type/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-type/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "3.0.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@3.0.0", + "_id": "pify@3.0.0", + "_inBundle": false, + "_integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "_location": "/path-type/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@3.0.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/path-type" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -42,10 +73,15 @@ "es2015", "bluebird" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^2.0.0", - "v8-natives": "^1.0.0", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/path-type/package.json b/admin/vue2/element-admin-v3/node_modules/path-type/package.json index bdcb46e6f..c78edc0a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/path-type/package.json +++ b/admin/vue2/element-admin-v3/node_modules/path-type/package.json @@ -1,45 +1,81 @@ { - "name": "path-type", - "version": "3.0.0", - "description": "Check if a path is a file, directory, or symlink", - "license": "MIT", - "repository": "sindresorhus/path-type", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "path", - "fs", - "type", - "is", - "check", - "directory", - "dir", - "file", - "filepath", - "symlink", - "symbolic", - "link", - "stat", - "stats", - "filesystem" - ], - "dependencies": { - "pify": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "path-type@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "path-type@3.0.0", + "_id": "path-type@3.0.0", + "_inBundle": false, + "_integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "_location": "/path-type", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-type@3.0.0", + "name": "path-type", + "escapedName": "path-type", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/dir-glob" + ], + "_resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/path-type/issues" + }, + "dependencies": { + "pify": "^3.0.0" + }, + "description": "Check if a path is a file, directory, or symlink", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/path-type#readme", + "keywords": [ + "path", + "fs", + "type", + "is", + "check", + "directory", + "dir", + "file", + "filepath", + "symlink", + "symbolic", + "link", + "stat", + "stats", + "filesystem" + ], + "license": "MIT", + "name": "path-type", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-type.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pbkdf2/package.json b/admin/vue2/element-admin-v3/node_modules/pbkdf2/package.json index 30a322ee4..1b28dfe13 100644 --- a/admin/vue2/element-admin-v3/node_modules/pbkdf2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pbkdf2/package.json @@ -1,70 +1,101 @@ { - "name": "pbkdf2", - "version": "3.1.2", - "description": "This library provides the functionality of PBKDF2 with the ability to use any supported hashing algorithm returned from crypto.getHashes()", - "keywords": [ - "pbkdf2", - "kdf", - "salt", - "hash" + "_args": [ + [ + "pbkdf2@3.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/crypto-browserify/pbkdf2", - "bugs": { - "url": "https://github.com/crypto-browserify/pbkdf2/issues" + "_from": "pbkdf2@3.1.2", + "_id": "pbkdf2@3.1.2", + "_inBundle": false, + "_integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=", + "_location": "/pbkdf2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pbkdf2@3.1.2", + "name": "pbkdf2", + "escapedName": "pbkdf2", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" + }, + "_requiredBy": [ + "/crypto-browserify", + "/parse-asn1" + ], + "_resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.2.tgz?cache=0&sync_timestamp=1617976027191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.2.tgz", + "_spec": "3.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Daniel Cousens" }, - "license": "MIT", - "author": "Daniel Cousens", "browser": { "./index.js": "./browser.js", "./lib/sync.js": "./lib/sync-browser.js" }, + "bugs": { + "url": "https://github.com/crypto-browserify/pbkdf2/issues" + }, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "description": "This library provides the functionality of PBKDF2 with the ability to use any supported hashing algorithm returned from crypto.getHashes()", + "devDependencies": { + "benchmark": "^2.1.4", + "browserify": "*", + "nyc": "^6.4.0", + "standard": "*", + "tape": "^4.5.1" + }, + "engines": { + "node": ">=0.12" + }, "files": [ "browser.js", "index.js", "lib/" ], + "homepage": "https://github.com/crypto-browserify/pbkdf2", + "keywords": [ + "pbkdf2", + "kdf", + "salt", + "hash" + ], + "license": "MIT", "main": "index.js", + "name": "pbkdf2", + "nyc": { + "exclude": [ + "lib/async.js", + "test/bundle.js" + ] + }, "repository": { "type": "git", - "url": "https://github.com/crypto-browserify/pbkdf2.git" + "url": "git+https://github.com/crypto-browserify/pbkdf2.git" }, "scripts": { - "prepublish": "npm run test", - "coverage-report": "nyc report --reporter=lcov", - "coverage-html": "nyc report --reporter=html", + "bench": "node bench/", + "bundle-test": "browserify test/index.js > test/bundle.js", "coverage": "nyc --check-coverage --branches 95 --functions 95 tape test/*.js", + "coverage-html": "nyc report --reporter=html", + "coverage-report": "nyc report --reporter=lcov", "lint": "standard", + "prepublish": "npm run test", "test": "npm run lint && npm run unit", - "bundle-test": "browserify test/index.js > test/bundle.js", - "unit": "tape test/*.js", - "bench": "node bench/" - }, - "devDependencies": { - "benchmark": "^2.1.4", - "browserify": "*", - "nyc": "^6.4.0", - "standard": "*", - "tape": "^4.5.1" - }, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "unit": "tape test/*.js" }, "standard": { "ignore": [ "test/bundle.js" ] }, - "engines": { - "node": ">=0.12" - }, - "nyc": { - "exclude": [ - "lib/async.js", - "test/bundle.js" - ] - } + "version": "3.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/performance-now/package.json b/admin/vue2/element-admin-v3/node_modules/performance-now/package.json index 962bfc85f..f6e9b3169 100644 --- a/admin/vue2/element-admin-v3/node_modules/performance-now/package.json +++ b/admin/vue2/element-admin-v3/node_modules/performance-now/package.json @@ -1,18 +1,42 @@ { - "name": "performance-now", - "description": "Implements performance.now (based on process.hrtime).", - "keywords": [], - "version": "2.1.0", - "author": "Braveg1rl ", - "license": "MIT", - "homepage": "https://github.com/braveg1rl/performance-now", - "bugs": "https://github.com/braveg1rl/performance-now/issues", - "repository": { - "type": "git", - "url": "git://github.com/braveg1rl/performance-now.git" + "_args": [ + [ + "performance-now@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "performance-now@2.1.0", + "_id": "performance-now@2.1.0", + "_inBundle": false, + "_integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "_location": "/performance-now", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "performance-now@2.1.0", + "name": "performance-now", + "escapedName": "performance-now", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Braveg1rl", + "email": "braveg1rl@outlook.com" + }, + "bugs": { + "url": "https://github.com/braveg1rl/performance-now/issues" }, - "private": false, "dependencies": {}, + "description": "Implements performance.now (based on process.hrtime).", "devDependencies": { "bluebird": "^3.4.7", "call-delayed": "^1.0.0", @@ -22,14 +46,24 @@ "mocha": "~3.2.0", "pre-commit": "^1.2.2" }, - "optionalDependencies": {}, + "homepage": "https://github.com/braveg1rl/performance-now", + "keywords": [], + "license": "MIT", "main": "lib/performance-now.js", + "name": "performance-now", + "optionalDependencies": {}, + "private": false, + "repository": { + "type": "git", + "url": "git://github.com/braveg1rl/performance-now.git" + }, "scripts": { "build": "mkdir -p lib && rm -rf lib/* && node_modules/.bin/coffee --compile -m --output lib/ src/", "prepublish": "npm test", "pretest": "npm run build", - "test": "node_modules/.bin/mocha", - "watch": "node_modules/.bin/coffee --watch --compile --output lib/ src/" + "test": "mocha", + "watch": "coffee --watch --compile --output lib/ src/" }, - "typings": "src/index.d.ts" + "typings": "src/index.d.ts", + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/picomatch/package.json b/admin/vue2/element-admin-v3/node_modules/picomatch/package.json index 4c8acf0b0..9e89b4077 100644 --- a/admin/vue2/element-admin-v3/node_modules/picomatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/picomatch/package.json @@ -1,30 +1,42 @@ { - "name": "picomatch", - "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", - "version": "2.3.0", - "homepage": "https://github.com/micromatch/picomatch", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "funding": "https://github.com/sponsors/jonschlinkert", - "repository": "micromatch/picomatch", - "bugs": { - "url": "https://github.com/micromatch/picomatch/issues" + "_args": [ + [ + "picomatch@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "picomatch@2.3.0", + "_id": "picomatch@2.3.0", + "_inBundle": false, + "_integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", + "_location": "/picomatch", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "picomatch@2.3.0", + "name": "picomatch", + "escapedName": "picomatch", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requiredBy": [ + "/watchpack/anymatch", + "/watchpack/readdirp" ], - "main": "index.js", - "engines": { - "node": ">=8.6" + "_resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", - "mocha": "mocha --reporter dot", - "test": "npm run lint && npm run mocha", - "test:ci": "npm run test:cover", - "test:cover": "nyc npm run mocha" + "bugs": { + "url": "https://github.com/micromatch/picomatch/issues" }, + "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", "devDependencies": { "eslint": "^6.8.0", "fill-range": "^7.0.1", @@ -33,11 +45,23 @@ "nyc": "^15.0.0", "time-require": "github:jonschlinkert/time-require" }, + "engines": { + "node": ">=8.6" + }, + "files": [ + "index.js", + "lib" + ], + "funding": "https://github.com/sponsors/jonschlinkert", + "homepage": "https://github.com/micromatch/picomatch", "keywords": [ "glob", "match", "picomatch" ], + "license": "MIT", + "main": "index.js", + "name": "picomatch", "nyc": { "reporter": [ "html", @@ -45,6 +69,17 @@ "text-summary" ] }, + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/picomatch.git" + }, + "scripts": { + "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --reporter dot", + "test": "npm run lint && npm run mocha", + "test:ci": "npm run test:cover", + "test:cover": "nyc npm run mocha" + }, "verb": { "toc": { "render": true, @@ -77,5 +112,6 @@ "nanomatch", "picomatch" ] - } + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/pify/package.json index a5468cd29..7a35d5e2a 100644 --- a/admin/vue2/element-admin-v3/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pify/package.json @@ -1,51 +1,87 @@ { - "name": "pify", - "version": "4.0.1", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "promises", - "promisify", - "all", - "denodify", - "denodeify", - "callback", - "cb", - "node", - "then", - "thenify", - "convert", - "transform", - "wrap", - "wrapper", - "bind", - "to", - "async", - "await", - "es2015", - "bluebird" - ], - "devDependencies": { - "ava": "^0.25.0", - "pinkie-promise": "^2.0.0", - "v8-natives": "^1.1.0", - "xo": "^0.23.0" - } + "_args": [ + [ + "pify@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pify@4.0.1", + "_id": "pify@4.0.1", + "_inBundle": false, + "_integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "_location": "/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@4.0.1", + "name": "pify", + "escapedName": "pify", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/del", + "/gzip-size" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "^0.25.0", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.1.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/pify#readme", + "keywords": [ + "promise", + "promises", + "promisify", + "all", + "denodify", + "denodeify", + "callback", + "cb", + "node", + "then", + "thenify", + "convert", + "transform", + "wrap", + "wrapper", + "bind", + "to", + "async", + "await", + "es2015", + "bluebird" + ], + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pinkie-promise/package.json b/admin/vue2/element-admin-v3/node_modules/pinkie-promise/package.json index 3515f8ff3..a67763805 100644 --- a/admin/vue2/element-admin-v3/node_modules/pinkie-promise/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pinkie-promise/package.json @@ -1,23 +1,60 @@ { - "name": "pinkie-promise", - "version": "2.0.1", - "description": "ES2015 Promise ponyfill", - "license": "MIT", - "repository": "floatdrop/pinkie-promise", + "_args": [ + [ + "pinkie-promise@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pinkie-promise@2.0.1", + "_id": "pinkie-promise@2.0.1", + "_inBundle": false, + "_integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "_location": "/pinkie-promise", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pinkie-promise@2.0.1", + "name": "pinkie-promise", + "escapedName": "pinkie-promise", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/globby", + "/load-json-file", + "/loader-fs-cache/find-up", + "/loader-fs-cache/path-exists", + "/read-pkg-up/find-up", + "/read-pkg-up/path-exists", + "/read-pkg/path-type" + ], + "_resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Vsevolod Strukchinsky", "email": "floatdrop@gmail.com", "url": "github.com/floatdrop" }, + "bugs": { + "url": "https://github.com/floatdrop/pinkie-promise/issues" + }, + "dependencies": { + "pinkie": "^2.0.0" + }, + "description": "ES2015 Promise ponyfill", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/floatdrop/pinkie-promise#readme", "keywords": [ "promise", "promises", @@ -26,10 +63,14 @@ "polyfill", "ponyfill" ], - "dependencies": { - "pinkie": "^2.0.0" + "license": "MIT", + "name": "pinkie-promise", + "repository": { + "type": "git", + "url": "git+https://github.com/floatdrop/pinkie-promise.git" }, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pinkie/package.json b/admin/vue2/element-admin-v3/node_modules/pinkie/package.json index cb9057b81..13fccf3ab 100644 --- a/admin/vue2/element-admin-v3/node_modules/pinkie/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pinkie/package.json @@ -1,36 +1,71 @@ { - "name": "pinkie", - "version": "2.0.4", - "description": "Itty bitty little widdle twinkie pinkie ES2015 Promise implementation", - "license": "MIT", - "repository": "floatdrop/pinkie", + "_args": [ + [ + "pinkie@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pinkie@2.0.4", + "_id": "pinkie@2.0.4", + "_inBundle": false, + "_integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "_location": "/pinkie", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pinkie@2.0.4", + "name": "pinkie", + "escapedName": "pinkie", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/pinkie-promise" + ], + "_resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Vsevolod Strukchinsky", "email": "floatdrop@gmail.com", "url": "github.com/floatdrop" }, + "bugs": { + "url": "https://github.com/floatdrop/pinkie/issues" + }, + "description": "Itty bitty little widdle twinkie pinkie ES2015 Promise implementation", + "devDependencies": { + "core-assert": "^0.1.1", + "coveralls": "^2.11.4", + "mocha": "*", + "nyc": "^3.2.2", + "promises-aplus-tests": "*", + "xo": "^0.10.1" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && nyc mocha", - "coverage": "nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/floatdrop/pinkie#readme", "keywords": [ "promise", "promises", "es2015", "es6" ], - "devDependencies": { - "core-assert": "^0.1.1", - "coveralls": "^2.11.4", - "mocha": "*", - "nyc": "^3.2.2", - "promises-aplus-tests": "*", - "xo": "^0.10.1" - } + "license": "MIT", + "name": "pinkie", + "repository": { + "type": "git", + "url": "git+https://github.com/floatdrop/pinkie.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc mocha" + }, + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/pkcs7/package.json b/admin/vue2/element-admin-v3/node_modules/pkcs7/package.json index e372e33cd..1d4423a04 100644 --- a/admin/vue2/element-admin-v3/node_modules/pkcs7/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pkcs7/package.json @@ -1,30 +1,42 @@ { - "name": "pkcs7", - "version": "0.2.3", - "main": "lib/pkcs7.js", - "description": "Add and remove pkcs7-style padding.", - "homepage": "https://github.com/brightcove/pkcs7", - "bugs": "https://github.com/brightcove/pkcs7/issues", - "engines": { - "npm": "^1.4.6", - "node": "^0.10" + "_args": [ + [ + "pkcs7@0.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pkcs7@0.2.3", + "_id": "pkcs7@0.2.3", + "_inBundle": false, + "_integrity": "sha1-ItYGZtAQZcXyRDkJjkpIMEUic74=", + "_location": "/pkcs7", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pkcs7@0.2.3", + "name": "pkcs7", + "escapedName": "pkcs7", + "rawSpec": "0.2.3", + "saveSpec": null, + "fetchSpec": "0.2.3" }, + "_requiredBy": [ + "/aes-decrypter" + ], + "_resolved": "https://registry.npm.taobao.org/pkcs7/download/pkcs7-0.2.3.tgz", + "_spec": "0.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Brightcove" }, - "repository": { - "type": "git", - "url": "https://github.com/brightcove/pkcs7" + "bin": { + "pkcs7": "lib/cli.js" }, - "license": "Apache2", - "files": [ - "lib", - "dist" - ], - "keywords": [ - "pkcs7", - "pkcs7 encrypt decrypt padding pkcs" - ], + "bugs": { + "url": "https://github.com/brightcove/pkcs7/issues" + }, + "description": "Add and remove pkcs7-style padding.", "devDependencies": { "grunt-browserify": "^2.1.4", "grunt-contrib-jshint": "^0.10.0", @@ -34,10 +46,28 @@ "load-grunt-tasks": "^0.4.0", "time-grunt": "^0.3.1" }, + "engines": { + "node": "^0.10", + "npm": "^1.4.6" + }, + "files": [ + "lib", + "dist" + ], + "homepage": "https://github.com/brightcove/pkcs7", + "keywords": [ + "pkcs7", + "pkcs7 encrypt decrypt padding pkcs" + ], + "license": "Apache2", + "main": "lib/pkcs7.js", + "name": "pkcs7", + "repository": { + "type": "git", + "url": "git+https://github.com/brightcove/pkcs7.git" + }, "scripts": { "test": "grunt" }, - "bin": { - "pkcs7": "lib/cli.js" - } + "version": "0.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/pkg-dir/package.json b/admin/vue2/element-admin-v3/node_modules/pkg-dir/package.json index da0639256..94b7d5df9 100644 --- a/admin/vue2/element-admin-v3/node_modules/pkg-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pkg-dir/package.json @@ -1,53 +1,88 @@ { - "name": "pkg-dir", - "version": "3.0.0", - "description": "Find the root directory of a Node.js project or npm package", - "license": "MIT", - "repository": "sindresorhus/pkg-dir", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "package", - "json", - "root", - "npm", - "entry", - "find", - "up", - "find-up", - "findup", - "look-up", - "look", - "file", - "search", - "match", - "resolve", - "parent", - "parents", - "folder", - "directory", - "dir", - "walk", - "walking", - "path" - ], - "dependencies": { - "find-up": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "pkg-dir@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pkg-dir@3.0.0", + "_id": "pkg-dir@3.0.0", + "_inBundle": false, + "_integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "_location": "/pkg-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pkg-dir@3.0.0", + "name": "pkg-dir", + "escapedName": "pkg-dir", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/import-local" + ], + "_resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/pkg-dir/issues" + }, + "dependencies": { + "find-up": "^3.0.0" + }, + "description": "Find the root directory of a Node.js project or npm package", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/pkg-dir#readme", + "keywords": [ + "package", + "json", + "root", + "npm", + "entry", + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "resolve", + "parent", + "parents", + "folder", + "directory", + "dir", + "walk", + "walking", + "path" + ], + "license": "MIT", + "name": "pkg-dir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pkg-dir.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/please-upgrade-node/package.json b/admin/vue2/element-admin-v3/node_modules/please-upgrade-node/package.json index 087b45487..049af53a8 100644 --- a/admin/vue2/element-admin-v3/node_modules/please-upgrade-node/package.json +++ b/admin/vue2/element-admin-v3/node_modules/please-upgrade-node/package.json @@ -1,32 +1,43 @@ { - "name": "please-upgrade-node", - "version": "3.2.0", - "description": "Displays a beginner-friendly message telling your user to upgrade their version of Node", - "main": "index.js", - "scripts": { - "test": "node test", - "lint": "eslint .", - "fix": "npm run lint -- --fix", - "prepublishOnly": "npm test && npm run lint && pkg-ok" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/typicode/please-upgrade-node.git" + "_args": [ + [ + "please-upgrade-node@3.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "please-upgrade-node@3.2.0", + "_id": "please-upgrade-node@3.2.0", + "_inBundle": false, + "_integrity": "sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=", + "_location": "/please-upgrade-node", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "please-upgrade-node@3.2.0", + "name": "please-upgrade-node", + "escapedName": "please-upgrade-node", + "rawSpec": "3.2.0", + "saveSpec": null, + "fetchSpec": "3.2.0" }, - "keywords": [ - "node", - "engines", - "version", - "check", - "verify", - "upgrade" + "_requiredBy": [ + "/lint-staged" ], - "author": "typicode", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/please-upgrade-node/download/please-upgrade-node-3.2.0.tgz", + "_spec": "3.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "typicode" + }, "bugs": { "url": "https://github.com/typicode/please-upgrade-node/issues" }, - "homepage": "https://github.com/typicode/please-upgrade-node#readme", + "dependencies": { + "semver-compare": "^1.0.0" + }, + "description": "Displays a beginner-friendly message telling your user to upgrade their version of Node", "devDependencies": { "eslint": "^4.19.1", "eslint-plugin-prettier": "^2.6.0", @@ -35,12 +46,32 @@ "prettier": "1.12.1", "tape": "^4.9.1" }, - "dependencies": { - "semver-compare": "^1.0.0" - }, + "homepage": "https://github.com/typicode/please-upgrade-node#readme", "husky": { "hooks": { "pre-commit": "npm test && npm run lint" } - } + }, + "keywords": [ + "node", + "engines", + "version", + "check", + "verify", + "upgrade" + ], + "license": "MIT", + "main": "index.js", + "name": "please-upgrade-node", + "repository": { + "type": "git", + "url": "git+https://github.com/typicode/please-upgrade-node.git" + }, + "scripts": { + "fix": "npm run lint -- --fix", + "lint": "eslint .", + "prepublishOnly": "npm test && npm run lint && pkg-ok", + "test": "node test" + }, + "version": "3.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pluralize/package.json b/admin/vue2/element-admin-v3/node_modules/pluralize/package.json index daad05021..b5e05ab14 100644 --- a/admin/vue2/element-admin-v3/node_modules/pluralize/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pluralize/package.json @@ -1,40 +1,75 @@ { - "name": "pluralize", - "version": "7.0.0", - "description": "Pluralize and singularize any word", - "main": "pluralize.js", - "files": [ - "pluralize.js" + "_args": [ + [ + "pluralize@7.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "semistandard", - "test-spec": "mocha -R spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov" + "_development": true, + "_from": "pluralize@7.0.0", + "_id": "pluralize@7.0.0", + "_inBundle": false, + "_integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", + "_location": "/pluralize", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pluralize@7.0.0", + "name": "pluralize", + "escapedName": "pluralize", + "rawSpec": "7.0.0", + "saveSpec": null, + "fetchSpec": "7.0.0" }, - "repository": "https://github.com/blakeembrey/pluralize.git", - "keywords": [ - "plural", - "plurals", - "pluralize", - "singular", - "singularize", - "inflection" + "_requiredBy": [ + "/eslint" ], + "_resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz", + "_spec": "7.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", "url": "http://blakeembrey.me" }, - "license": "MIT", - "readmeFilename": "Readme.md", - "engines": { - "node": ">=4" + "bugs": { + "url": "https://github.com/blakeembrey/pluralize/issues" }, + "description": "Pluralize and singularize any word", "devDependencies": { "chai": "^4.0.0", "istanbul": "^0.4.5", "mocha": "^3.2.0", "semistandard": "^11.0.0" - } + }, + "engines": { + "node": ">=4" + }, + "files": [ + "pluralize.js" + ], + "homepage": "https://github.com/blakeembrey/pluralize#readme", + "keywords": [ + "plural", + "plurals", + "pluralize", + "singular", + "singularize", + "inflection" + ], + "license": "MIT", + "main": "pluralize.js", + "name": "pluralize", + "repository": { + "type": "git", + "url": "git+https://github.com/blakeembrey/pluralize.git" + }, + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", + "test-spec": "mocha -R spec --bail" + }, + "version": "7.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/portfinder/node_modules/async/package.json b/admin/vue2/element-admin-v3/node_modules/portfinder/node_modules/async/package.json index 11725e8de..6d6441986 100644 --- a/admin/vue2/element-admin-v3/node_modules/portfinder/node_modules/async/package.json +++ b/admin/vue2/element-admin-v3/node_modules/portfinder/node_modules/async/package.json @@ -1,30 +1,42 @@ { - "name": "async", - "description": "Higher-order functions and common patterns for asynchronous code", - "main": "lib/async.js", - "files": [ - "lib", - "dist/async.js", - "dist/async.min.js" + "_args": [ + [ + "async@1.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Caolan McMahon", - "version": "1.5.2", - "keywords": [ - "async", - "callback", - "utility", - "module" + "_development": true, + "_from": "async@1.5.2", + "_id": "async@1.5.2", + "_inBundle": false, + "_integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "_location": "/portfinder/async", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "async@1.5.2", + "name": "async", + "escapedName": "async", + "rawSpec": "1.5.2", + "saveSpec": null, + "fetchSpec": "1.5.2" + }, + "_requiredBy": [ + "/portfinder" ], - "repository": { - "type": "git", - "url": "https://github.com/caolan/async.git" + "_resolved": "https://registry.npm.taobao.org/async/download/async-1.5.2.tgz", + "_spec": "1.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Caolan McMahon" }, "bugs": { "url": "https://github.com/caolan/async/issues" }, - "license": "MIT", + "description": "Higher-order functions and common patterns for asynchronous code", "devDependencies": { - "benchmark": "bestiejs/benchmark.js", + "benchmark": "github:bestiejs/benchmark.js", "bluebird": "^2.9.32", "chai": "^3.1.0", "coveralls": "^2.11.2", @@ -48,6 +60,12 @@ "xyz": "^0.5.0", "yargs": "~3.9.1" }, + "files": [ + "lib", + "dist/async.js", + "dist/async.min.js" + ], + "homepage": "https://github.com/caolan/async#readme", "jam": { "main": "lib/async.js", "include": [ @@ -59,19 +77,33 @@ "Utilities" ] }, + "keywords": [ + "async", + "callback", + "utility", + "module" + ], + "license": "MIT", + "main": "lib/async.js", + "name": "async", + "repository": { + "type": "git", + "url": "git+https://github.com/caolan/async.git" + }, "scripts": { - "mocha-node-test": "mocha mocha_test/", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js", "mocha-browser-test": "karma start", + "mocha-node-test": "mocha mocha_test/", "mocha-test": "npm run mocha-node-test && npm run mocha-browser-test", "nodeunit-test": "nodeunit test/test-async.js", - "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test", - "lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + "test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test" }, "spm": { "main": "lib/async.js" }, + "version": "1.5.2", "volo": { "main": "lib/async.js", "ignore": [ diff --git a/admin/vue2/element-admin-v3/node_modules/portfinder/package.json b/admin/vue2/element-admin-v3/node_modules/portfinder/package.json index 8ac022a15..70a57fead 100644 --- a/admin/vue2/element-admin-v3/node_modules/portfinder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/portfinder/package.json @@ -1,36 +1,72 @@ { - "name": "portfinder", - "description": "A simple tool to find an open port on the current machine", - "version": "1.0.13", - "author": "Charlie Robbins ", - "repository": { - "type": "git", - "url": "git@github.com:indexzero/node-portfinder.git" - }, - "keywords": [ - "http", - "ports", - "utilities" + "_args": [ + [ + "portfinder@1.0.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib" + "_development": true, + "_from": "portfinder@1.0.13", + "_id": "portfinder@1.0.13", + "_inBundle": false, + "_integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "_location": "/portfinder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "portfinder@1.0.13", + "name": "portfinder", + "escapedName": "portfinder", + "rawSpec": "1.0.13", + "saveSpec": null, + "fetchSpec": "1.0.13" + }, + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.13.tgz?cache=0&sync_timestamp=1596019866852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.13.tgz", + "_spec": "1.0.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Charlie Robbins", + "email": "charlie.robbins@gmail.com" + }, + "bugs": { + "url": "https://github.com/indexzero/node-portfinder/issues" + }, "dependencies": { "async": "^1.5.2", "debug": "^2.2.0", "mkdirp": "0.5.x" }, + "description": "A simple tool to find an open port on the current machine", "devDependencies": { "glob": "^6.0.4", "vows": "0.8.0" }, + "engines": { + "node": ">= 0.12.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/indexzero/node-portfinder#readme", + "keywords": [ + "http", + "ports", + "utilities" + ], + "license": "MIT", "main": "./lib/portfinder", - "types": "./lib/portfinder.d.ts", + "name": "portfinder", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indexzero/node-portfinder.git" + }, "scripts": { "test": "vows test/*-test.js --spec" }, - "engines": { - "node": ">= 0.12.0" - }, - "license": "MIT" + "types": "./lib/portfinder.d.ts", + "version": "1.0.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/posix-character-classes/package.json b/admin/vue2/element-admin-v3/node_modules/posix-character-classes/package.json index acce4ba70..0e4a141a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/posix-character-classes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posix-character-classes/package.json @@ -1,33 +1,66 @@ { - "name": "posix-character-classes", - "description": "POSIX character classes for creating regular expressions.", - "version": "0.1.1", - "homepage": "https://github.com/jonschlinkert/posix-character-classes", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/posix-character-classes", - "bugs": { - "url": "https://github.com/jonschlinkert/posix-character-classes/issues" + "_args": [ + [ + "posix-character-classes@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "posix-character-classes@0.1.1", + "_id": "posix-character-classes@0.1.1", + "_inBundle": false, + "_integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "_location": "/posix-character-classes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "posix-character-classes@0.1.1", + "name": "posix-character-classes", + "escapedName": "posix-character-classes", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/expand-brackets" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/posix-character-classes/issues" }, + "description": "POSIX character classes for creating regular expressions.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/posix-character-classes", "keywords": [ "character", "classes", "posix" ], + "license": "MIT", + "main": "index.js", + "name": "posix-character-classes", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/posix-character-classes.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -50,5 +83,6 @@ "extglob", "expand-brackets" ] - } + }, + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/ansi-styles/package.json index 65edb48c3..a56597880 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-calc/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-calc/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..110bc0c5e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-calc/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-calc/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/package.json index bc324685a..6816380e0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-calc/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-calc/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss-value-parser/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss-value-parser/package.json index 55789ae13..e23a10495 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss-value-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss-value-parser/package.json @@ -1,11 +1,41 @@ { - "name": "postcss-value-parser", - "version": "4.1.0", - "description": "Transforms css values and at-rule params into the tree", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "postcss-value-parser@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-value-parser@4.1.0", + "_id": "postcss-value-parser@4.1.0", + "_inBundle": false, + "_integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "_location": "/postcss-calc/postcss-value-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-value-parser@4.1.0", + "name": "postcss-value-parser", + "escapedName": "postcss-value-parser", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/postcss-calc" ], + "_resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + "bugs": { + "url": "https://github.com/TrySound/postcss-value-parser/issues" + }, + "description": "Transforms css values and at-rule params into the tree", "devDependencies": { "eslint": "^5.16.0", "husky": "^2.3.0", @@ -14,13 +44,6 @@ "tap-spec": "^5.0.0", "tape": "^4.10.2" }, - "scripts": { - "lint:prettier": "prettier '**/*.js' '**/*.ts' --list-different", - "lint:js": "eslint . --cache", - "lint": "yarn lint:js && yarn lint:prettier", - "pretest": "yarn lint", - "test": "tape test/*.js | tap-spec" - }, "eslintConfig": { "env": { "es6": true, @@ -28,31 +51,40 @@ }, "extends": "eslint:recommended" }, - "lint-staged": { - "*.js": [ - "eslint", - "prettier --write", - "git add" - ] - }, + "files": [ + "lib" + ], + "homepage": "https://github.com/TrySound/postcss-value-parser", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "author": "Bogdan Chadkin ", - "license": "MIT", - "homepage": "https://github.com/TrySound/postcss-value-parser", - "repository": { - "type": "git", - "url": "https://github.com/TrySound/postcss-value-parser.git" - }, "keywords": [ "postcss", "value", "parser" ], - "bugs": { - "url": "https://github.com/TrySound/postcss-value-parser/issues" - } + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "name": "postcss-value-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/TrySound/postcss-value-parser.git" + }, + "scripts": { + "lint": "yarn lint:js && yarn lint:prettier", + "lint:js": "eslint . --cache", + "lint:prettier": "prettier '**/*.js' '**/*.ts' --list-different", + "pretest": "yarn lint", + "test": "tape test/*.js | tap-spec" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss/package.json index ece04085e..a9793ecfb 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-calc/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-calc" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/source-map/package.json index 24663417e..412df155a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-calc/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-calc/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/supports-color/package.json index db4ded22b..2cd5d4b9d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-calc/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-calc/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-calc/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-calc/package.json index 1a8eb6338..46f3f099e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-calc/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-calc/package.json @@ -1,35 +1,55 @@ { - "name": "postcss-calc", - "version": "7.0.5", - "description": "PostCSS plugin to reduce calc()", - "keywords": [ - "css", - "postcss", - "postcss-plugin", - "calculation", - "calc" + "_args": [ + [ + "postcss-calc@7.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE" + "_development": true, + "_from": "postcss-calc@7.0.5", + "_id": "postcss-calc@7.0.5", + "_inBundle": false, + "_integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", + "_location": "/postcss-calc", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-calc@7.0.5", + "name": "postcss-calc", + "escapedName": "postcss-calc", + "rawSpec": "7.0.5", + "saveSpec": null, + "fetchSpec": "7.0.5" + }, + "_requiredBy": [ + "/cssnano-preset-default" ], - "scripts": { - "prepublish": "npm run build", - "build": "del-cli dist && cross-env BABEL_ENV=publish babel src --out-dir dist --ignore src/__tests__/**/*.js && jison src/parser.jison -o dist/parser.js", - "pretest": "npm run build && eslint src", - "test": "ava" + "_resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689176591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", + "_spec": "7.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andy Jansson" }, - "author": "Andy Jansson", - "license": "MIT", - "repository": "https://github.com/postcss/postcss-calc.git", - "eslintConfig": { - "parser": "babel-eslint", - "extends": "eslint-config-i-am-meticulous", - "rules": { - "curly": "error" - } + "ava": { + "require": [ + "@babel/register", + "@babel/polyfill" + ] + }, + "bugs": { + "url": "https://github.com/postcss/postcss-calc/issues" + }, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" }, + "description": "PostCSS plugin to reduce calc()", "devDependencies": { "@babel/cli": "^7.1.2", "@babel/core": "^7.1.2", @@ -47,15 +67,37 @@ "eslint-plugin-import": "^2.14.0", "jison-gho": "^0.6.1-215" }, - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "eslintConfig": { + "parser": "babel-eslint", + "extends": "eslint-config-i-am-meticulous", + "rules": { + "curly": "error" + } }, - "ava": { - "require": [ - "@babel/register", - "@babel/polyfill" - ] - } + "files": [ + "dist", + "LICENSE" + ], + "homepage": "https://github.com/postcss/postcss-calc#readme", + "keywords": [ + "css", + "postcss", + "postcss-plugin", + "calculation", + "calc" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-calc", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-calc.git" + }, + "scripts": { + "build": "del-cli dist && cross-env BABEL_ENV=publish babel src --out-dir dist --ignore src/__tests__/**/*.js && jison src/parser.jison -o dist/parser.js", + "prepublish": "npm run build", + "pretest": "npm run build && eslint src", + "test": "ava" + }, + "version": "7.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/ansi-styles/package.json index 65edb48c3..d38ddda33 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-colormin/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-colormin/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/browserslist/package.json index 5deec7979..011ce0f3b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/postcss-colormin/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/postcss-colormin" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..042d92c88 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-colormin/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-colormin/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/package.json index bc324685a..050826605 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-colormin/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-colormin/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/postcss/package.json index ece04085e..9d92d76a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-colormin/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-colormin" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/source-map/package.json index 24663417e..3a88d693a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-colormin/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-colormin/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/supports-color/package.json index db4ded22b..5b2b63c86 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-colormin/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-colormin/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/package.json index 0fe32bfc7..88478d17b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-colormin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-colormin/package.json @@ -1,38 +1,50 @@ { - "name": "postcss-colormin", - "version": "4.0.3", - "description": "Minify colors in your CSS files with PostCSS.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-colormin@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel-node ./src/generate.js && babel src --out-dir dist --ignore /__tests__/,src/generate.js" + "_development": true, + "_from": "postcss-colormin@4.0.3", + "_id": "postcss-colormin@4.0.3", + "_inBundle": false, + "_integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "_location": "/postcss-colormin", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "color-convert": "1.9.3", + "colorette": "1.2.2", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "node-releases": "1.1.73" }, - "keywords": [ - "color", - "colors", - "compression", - "css", - "minify", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "css-color-names": "0.0.4", - "write-file": "^1.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-colormin@4.0.3", + "name": "postcss-colormin", + "escapedName": "postcss-colormin", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "browserslist": "^4.0.0", "color": "^3.0.0", @@ -40,10 +52,39 @@ "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Minify colors in your CSS files with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "css-color-names": "0.0.4", + "write-file": "^1.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "color", + "colors", + "compression", + "css", + "minify", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-colormin", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel-node ./src/generate.js && babel src --out-dir dist --ignore /__tests__/,src/generate.js" + }, + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/ansi-styles/package.json index 65edb48c3..6d9d70a75 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-convert-values/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-convert-values/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..ba9a18b80 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-convert-values/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-convert-values/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/package.json index bc324685a..a1b203ce0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-convert-values/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-convert-values/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/postcss/package.json index ece04085e..93f5e2104 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-convert-values/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-convert-values" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/source-map/package.json index 24663417e..de0c3d61d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-convert-values/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-convert-values/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/supports-color/package.json index db4ded22b..6aef04060 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-convert-values/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-convert-values/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/package.json index 433d04d68..4f19c8d75 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-convert-values/package.json @@ -1,41 +1,77 @@ { - "name": "postcss-convert-values", - "version": "4.0.1", - "description": "Convert values with PostCSS (e.g. ms -> s)", - "main": "dist/index.js", - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-convert-values@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-convert-values@4.0.1", + "_id": "postcss-convert-values@4.0.1", + "_inBundle": false, + "_integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "_location": "/postcss-convert-values", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "optimisation", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-convert-values@4.0.1", + "name": "postcss-convert-values", + "escapedName": "postcss-convert-values", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Convert values with PostCSS (e.g. ms -> s)", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "optimisation", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-convert-values", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/ansi-styles/package.json index 65edb48c3..decccc6c5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-discard-comments/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-discard-comments/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..509de6012 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-discard-comments/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-discard-comments/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/package.json index bc324685a..59bd8c210 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-discard-comments/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-discard-comments/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/postcss/package.json index ece04085e..bf7d2bc55 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-discard-comments/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-discard-comments" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/source-map/package.json index 24663417e..165aecb30 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-discard-comments/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-discard-comments/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/supports-color/package.json index db4ded22b..35d599a1c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-discard-comments/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-discard-comments/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/package.json index a3ff402ed..890055f81 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-comments/package.json @@ -1,42 +1,78 @@ { - "name": "postcss-discard-comments", - "version": "4.0.2", - "description": "Discard comments in your CSS files with PostCSS.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-discard-comments@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-discard-comments@4.0.2", + "_id": "postcss-discard-comments@4.0.2", + "_inBundle": false, + "_integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "_location": "/postcss-discard-comments", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "comments", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "postcss-scss": "^2.0.0", - "postcss-simple-vars": "^5.0.1" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-discard-comments@4.0.2", + "name": "postcss-discard-comments", + "escapedName": "postcss-discard-comments", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1621449592883&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "postcss": "^7.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Discard comments in your CSS files with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "postcss-scss": "^2.0.0", + "postcss-simple-vars": "^5.0.1" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "comments", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-discard-comments", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/ansi-styles/package.json index 65edb48c3..e0a22cdae 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-discard-duplicates/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-discard-duplicates/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..e0a9ea585 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-discard-duplicates/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-discard-duplicates/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/package.json index bc324685a..fd423a356 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-discard-duplicates/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-discard-duplicates/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/postcss/package.json index ece04085e..180ef5098 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-discard-duplicates/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-discard-duplicates" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/source-map/package.json index 24663417e..4f065de78 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-discard-duplicates/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-discard-duplicates/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/supports-color/package.json index db4ded22b..d2bde0324 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-discard-duplicates/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-discard-duplicates/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/package.json index f917007f0..aad2a8056 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-duplicates/package.json @@ -1,15 +1,61 @@ { - "name": "postcss-discard-duplicates", - "version": "4.0.2", + "_args": [ + [ + "postcss-discard-duplicates@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-discard-duplicates@4.0.2", + "_id": "postcss-discard-duplicates@4.0.2", + "_inBundle": false, + "_integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "_location": "/postcss-discard-duplicates", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-discard-duplicates@4.0.2", + "name": "postcss-discard-duplicates", + "escapedName": "postcss-discard-duplicates", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1621449593093&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, + "dependencies": { + "postcss": "^7.0.0" + }, "description": "Discard duplicate rules in your CSS files with PostCSS.", - "main": "dist/index.js", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, "files": [ "dist", "LICENSE-MIT" ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, + "homepage": "https://github.com/cssnano/cssnano", "keywords": [ "css", "dedupe", @@ -18,24 +64,14 @@ "postcss-plugin" ], "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" - }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" + "main": "dist/index.js", + "name": "postcss-discard-duplicates", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "repository": "cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/ansi-styles/package.json index 65edb48c3..ef28e987b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-discard-empty/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-discard-empty/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..66c849938 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-discard-empty/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-discard-empty/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/package.json index bc324685a..7da4207b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-discard-empty/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-discard-empty/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/postcss/package.json index ece04085e..2c566d152 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-discard-empty/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-discard-empty" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/source-map/package.json index 24663417e..90fc82005 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-discard-empty/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-discard-empty/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/supports-color/package.json index db4ded22b..8f37d86b1 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-discard-empty/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-discard-empty/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/package.json index cfe7f75e0..37bbcdd85 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-empty/package.json @@ -1,15 +1,61 @@ { - "name": "postcss-discard-empty", - "version": "4.0.1", + "_args": [ + [ + "postcss-discard-empty@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-discard-empty@4.0.1", + "_id": "postcss-discard-empty@4.0.1", + "_inBundle": false, + "_integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "_location": "/postcss-discard-empty", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-discard-empty@4.0.1", + "name": "postcss-discard-empty", + "escapedName": "postcss-discard-empty", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, + "dependencies": { + "postcss": "^7.0.0" + }, "description": "Discard empty rules and values with PostCSS.", - "main": "dist/index.js", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, "files": [ "dist", "LICENSE-MIT" ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, + "homepage": "https://github.com/cssnano/cssnano", "keywords": [ "compress", "css", @@ -20,24 +66,14 @@ "postcss-plugin" ], "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" - }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" + "main": "dist/index.js", + "name": "postcss-discard-empty", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "repository": "cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/ansi-styles/package.json index 65edb48c3..9df78af38 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-discard-overridden/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-discard-overridden/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..056488fa5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-discard-overridden/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-discard-overridden/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/package.json index bc324685a..20a5ce8f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-discard-overridden/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-discard-overridden/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/postcss/package.json index ece04085e..8f2a98500 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-discard-overridden/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-discard-overridden" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/source-map/package.json index 24663417e..cf9a0261c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-discard-overridden/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-discard-overridden/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/supports-color/package.json index db4ded22b..32c6fd877 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-discard-overridden/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-discard-overridden/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/package.json index 544623410..9498be07a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-discard-overridden/package.json @@ -1,36 +1,75 @@ { - "name": "postcss-discard-overridden", - "version": "4.0.1", - "description": "PostCSS plugin to discard overridden @keyframes or @counter-style.", - "main": "dist/index.js", - "keywords": [ - "postcss", - "css", - "postcss-plugin", - "at-rules", - "@keyframes", - "@counter-style" + "_args": [ + [ + "postcss-discard-overridden@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Justineo ", - "license": "MIT", - "repository": "cssnano/cssnano", + "_development": true, + "_from": "postcss-discard-overridden@4.0.1", + "_id": "postcss-discard-overridden@4.0.1", + "_inBundle": false, + "_integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "_location": "/postcss-discard-overridden", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-discard-overridden@4.0.1", + "name": "postcss-discard-overridden", + "escapedName": "postcss-discard-overridden", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Justineo", + "email": "justice360@gmail.com" + }, "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, - "homepage": "https://github.com/cssnano/cssnano", "dependencies": { "postcss": "^7.0.0" }, + "description": "PostCSS plugin to discard overridden @keyframes or @counter-style.", "devDependencies": { "babel-cli": "^6.0.0", "chalk": "^2.0.0", "cross-env": "^5.0.0", "diff": "^3.0.0" }, + "engines": { + "node": ">=6.9.0" + }, + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "postcss", + "css", + "postcss-plugin", + "at-rules", + "@keyframes", + "@counter-style" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-discard-overridden", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, "scripts": { "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-import/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-import/package.json index 68e446c07..f520e504e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-import/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-import/package.json @@ -1,28 +1,46 @@ { - "name": "postcss-import", - "version": "11.1.0", - "description": "PostCSS plugin to import CSS files", - "keywords": [ - "css", - "postcss", - "postcss-plugin", - "import", - "node modules", - "npm" + "_args": [ + [ + "postcss-import@11.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Maxime Thirouin", - "license": "MIT", - "repository": "https://github.com/postcss/postcss-import.git", - "files": [ - "index.js", - "lib" + "_development": true, + "_from": "postcss-import@11.1.0", + "_id": "postcss-import@11.1.0", + "_inBundle": false, + "_integrity": "sha1-Vck2LJGSmU7GiGXSJEGd8dspgfA=", + "_location": "/postcss-import", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-import@11.1.0", + "name": "postcss-import", + "escapedName": "postcss-import", + "rawSpec": "11.1.0", + "saveSpec": null, + "fetchSpec": "11.1.0" + }, + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.nlark.com/postcss-import/download/postcss-import-11.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-import%2Fdownload%2Fpostcss-import-11.1.0.tgz", + "_spec": "11.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Maxime Thirouin" + }, + "bugs": { + "url": "https://github.com/postcss/postcss-import/issues" + }, "dependencies": { "postcss": "^6.0.1", "postcss-value-parser": "^3.2.3", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, + "description": "PostCSS plugin to import CSS files", "devDependencies": { "ava": "^0.25.0", "eslint": "^4.16.0", @@ -34,13 +52,6 @@ "prettier": "1.10.2", "sugarss": "^1.0.0" }, - "scripts": { - "ci": "eslint . && ava", - "lint": "eslint . --fix", - "pretest": "npm run lint", - "test": "ava", - "release": "npmpub" - }, "eslintConfig": { "extends": "eslint-config-i-am-meticulous", "plugins": [ @@ -55,5 +66,32 @@ } ] } - } + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/postcss/postcss-import#readme", + "keywords": [ + "css", + "postcss", + "postcss-plugin", + "import", + "node modules", + "npm" + ], + "license": "MIT", + "name": "postcss-import", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-import.git" + }, + "scripts": { + "ci": "eslint . && ava", + "lint": "eslint . --fix", + "pretest": "npm run lint", + "release": "npmpub", + "test": "ava" + }, + "version": "11.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-load-config/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-load-config/package.json index ea2c3299d..9c1086204 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-load-config/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-load-config/package.json @@ -1,34 +1,81 @@ { - "name": "postcss-load-config", - "version": "2.1.2", - "description": "Autoload Config for PostCSS", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "postcss-load-config@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-load-config@2.1.2", + "_id": "postcss-load-config@2.1.2", + "_inBundle": false, + "_integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", + "_location": "/postcss-load-config", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-load-config@2.1.2", + "name": "postcss-load-config", + "escapedName": "postcss-load-config", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/postcss-loader" ], + "_resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1612743037145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Michael Ciniawky", + "email": "michael.ciniawsky@gmail.com" + }, + "bugs": { + "url": "https://github.com/postcss/postcss-load-config/issues" + }, + "contributors": [ + { + "name": "Ryan Dunckel" + }, + { + "name": "Mateusz Derks" + }, + { + "name": "Dalton Santos" + }, + { + "name": "Patrick Gilday" + } + ], + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "description": "Autoload Config for PostCSS", "engines": { "node": ">= 4" }, + "files": [ + "src" + ], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, + "homepage": "https://github.com/postcss/postcss-load-config#readme", "keywords": [ "postcss", "postcssrc", "postcss.config.js" ], - "author": "Michael Ciniawky ", - "contributors": [ - "Ryan Dunckel", - "Mateusz Derks", - "Dalton Santos", - "Patrick Gilday" - ], - "repository": "postcss/postcss-load-config.git", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "postcss-load-config", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-load-config.git" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-loader/node_modules/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-loader/node_modules/schema-utils/package.json index ab2bf6078..c1e651503 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-loader/node_modules/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-loader/node_modules/schema-utils/package.json @@ -1,25 +1,45 @@ { - "name": "schema-utils", - "version": "0.4.7", - "description": "webpack Validation Utils", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "schema-utils@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_development": true, + "_from": "schema-utils@0.4.7", + "_id": "schema-utils@0.4.7", + "_inBundle": false, + "_integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "_location": "/postcss-loader/schema-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "schema-utils@0.4.7", + "name": "schema-utils", + "escapedName": "schema-utils", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" }, - "scripts": { - "lint": "eslint --cache src test", - "test": "jest --env node --verbose --coverage", - "clean": "del-cli coverage", - "commits": "commitlint --from $(git rev-list --tags --max-count=1)", - "release": "npm run commits && standard-version" + "_requiredBy": [ + "/postcss-loader" + ], + "_resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" }, + "description": "webpack Validation Utils", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.0", @@ -32,9 +52,26 @@ "prettier": "^1.0.0", "standard-version": "^4.0.0" }, - "author": "webpack Contrib (https://github.com/webpack-contrib)", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", + "engines": { + "node": ">= 4" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/schema-utils", - "repository": "https://github.com/webpack-contrib/schema-utils", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "schema-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "clean": "del-cli coverage", + "commits": "commitlint --from $(git rev-list --tags --max-count=1)", + "lint": "eslint --cache src test", + "release": "npm run commits && standard-version", + "test": "jest --env node --verbose --coverage" + }, + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-loader/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-loader/package.json index 91f7872de..15edf632c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-loader/package.json @@ -1,13 +1,42 @@ { - "name": "postcss-loader", - "version": "2.1.6", - "description": "PostCSS loader for webpack", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "postcss-loader@2.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_development": true, + "_from": "postcss-loader@2.1.6", + "_id": "postcss-loader@2.1.6", + "_inBundle": false, + "_integrity": "sha1-HX3XsXxrojS5vtWvE+C+pApC10A=", + "_location": "/postcss-loader", + "_phantomChildren": { + "ajv": "6.12.6", + "ajv-keywords": "3.5.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-loader@2.1.6", + "name": "postcss-loader", + "escapedName": "postcss-loader", + "rawSpec": "2.1.6", + "saveSpec": null, + "fetchSpec": "2.1.6" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/postcss-loader/download/postcss-loader-2.1.6.tgz", + "_spec": "2.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bugs": { + "url": "https://github.com/postcss/postcss-loader/issues" }, "dependencies": { "loader-utils": "^1.1.0", @@ -15,6 +44,7 @@ "postcss-load-config": "^2.0.0", "schema-utils": "^0.4.0" }, + "description": "PostCSS loader for webpack", "devDependencies": { "jest": "^22.0.0", "jsdoc-to-markdown": "^4.0.0", @@ -27,13 +57,13 @@ "util.promisify": "^1.0.0", "webpack": "^3.0.0" }, - "scripts": { - "lint": "standard --env jest", - "test": "jest --verbose --coverage", - "docs": "jsdoc2md lib/index.js > LOADER.md", - "clean": "rm -rf coverage test/outputs", - "release": "standard-version" + "engines": { + "node": ">= 4" }, + "files": [ + "lib" + ], + "homepage": "https://github.com/postcss/postcss-loader#readme", "keywords": [ "css", "postcss", @@ -41,9 +71,19 @@ "webpack", "webpack-loader" ], - "author": "Andrey Sitnik ", - "repository": "https://github.com/postcss/postcss-loader.git", - "bugs": "https://github.com/postcss/postcss-loader/issues", - "homepage": "https://github.com/postcss/postcss-loader#readme", - "license": "MIT" + "license": "MIT", + "main": "lib/index.js", + "name": "postcss-loader", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-loader.git" + }, + "scripts": { + "clean": "rm -rf coverage test/outputs", + "docs": "jsdoc2md lib/index.js > LOADER.md", + "lint": "standard --env jest", + "release": "standard-version", + "test": "jest --verbose --coverage" + }, + "version": "2.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/ansi-styles/package.json index 65edb48c3..bb56db0dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-merge-longhand/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-merge-longhand/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..8f794b0a2 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-merge-longhand/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-merge-longhand/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/package.json index bc324685a..64ca5fe86 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-merge-longhand/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-merge-longhand/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/postcss/package.json index ece04085e..5f0724c28 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-merge-longhand/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-merge-longhand" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/source-map/package.json index 24663417e..95559df8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-merge-longhand/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-merge-longhand/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/supports-color/package.json index db4ded22b..8d6180e27 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-merge-longhand/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-merge-longhand/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/package.json index 9ecbb08e2..cb1d40f5d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-longhand/package.json @@ -1,44 +1,80 @@ { - "name": "postcss-merge-longhand", - "version": "4.0.11", - "description": "Merge longhand properties into shorthand with PostCSS.", - "main": "dist/index.js", - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-merge-longhand@4.0.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-merge-longhand@4.0.11", + "_id": "postcss-merge-longhand@4.0.11", + "_inBundle": false, + "_integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "_location": "/postcss-merge-longhand", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "minify", - "optimise", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-merge-longhand@4.0.11", + "name": "postcss-merge-longhand", + "escapedName": "postcss-merge-longhand", + "rawSpec": "4.0.11", + "saveSpec": null, + "fetchSpec": "4.0.11" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "_spec": "4.0.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "css-color-names": "0.0.4", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "stylehacks": "^4.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Merge longhand properties into shorthand with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "minify", + "optimise", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-merge-longhand", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/ansi-styles/package.json index 65edb48c3..66b43a016 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-merge-rules/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-merge-rules/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/browserslist/package.json index 5deec7979..fc69d4611 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/postcss-merge-rules/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/postcss-merge-rules" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..3d7aa4d5b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-merge-rules/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-merge-rules/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/package.json index bc324685a..d940c0660 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-merge-rules/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-merge-rules/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss-selector-parser/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss-selector-parser/package.json index d32d917dc..4ab8a45f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss-selector-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss-selector-parser/package.json @@ -1,6 +1,58 @@ { - "name": "postcss-selector-parser", - "version": "3.1.2", + "_args": [ + [ + "postcss-selector-parser@3.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-selector-parser@3.1.2", + "_id": "postcss-selector-parser@3.1.2", + "_inBundle": false, + "_integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "_location": "/postcss-merge-rules/postcss-selector-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-selector-parser@3.1.2", + "name": "postcss-selector-parser", + "escapedName": "postcss-selector-parser", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" + }, + "_requiredBy": [ + "/postcss-merge-rules" + ], + "_resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "_spec": "3.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "ava": { + "require": "babel-register", + "concurrency": 5 + }, + "bugs": { + "url": "https://github.com/postcss/postcss-selector-parser/issues" + }, + "contributors": [ + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + { + "name": "Chris Eppstein", + "email": "chris@eppsteins.net", + "url": "http://twitter.com/chriseppstein" + } + ], + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "description": "> Selector parser with built in methods for working with selector strings.", "devDependencies": { "ava": "^0.20.0", "babel-cli": "^6.4.0", @@ -22,8 +74,12 @@ "nyc": "^10.0.0", "postcss": "^6.0.6" }, - "main": "dist/index.js", - "types": "postcss-selector-parser.d.ts", + "engines": { + "node": ">=8" + }, + "eslintConfig": { + "extends": "cssnano" + }, "files": [ "API.md", "CHANGELOG.md", @@ -31,46 +87,26 @@ "dist", "postcss-selector-parser.d.ts" ], - "scripts": { - "pretest": "eslint src", - "prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", - "report": "nyc report --reporter=html", - "test": "nyc ava src/__tests__/*.js" - }, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "license": "MIT", - "engines": { - "node": ">=8" - }, "homepage": "https://github.com/postcss/postcss-selector-parser", - "contributors": [ - { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - { - "name": "Chris Eppstein", - "email": "chris@eppsteins.net", - "url": "http://twitter.com/chriseppstein" - } - ], - "repository": "postcss/postcss-selector-parser", - "ava": { - "require": "babel-register", - "concurrency": 5 - }, + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-selector-parser", "nyc": { "exclude": [ "node_modules", "**/__tests__" ] }, - "eslintConfig": { - "extends": "cssnano" - } + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-selector-parser.git" + }, + "scripts": { + "prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", + "pretest": "eslint src", + "report": "nyc report --reporter=html", + "test": "nyc ava src/__tests__/*.js" + }, + "types": "postcss-selector-parser.d.ts", + "version": "3.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss/package.json index ece04085e..64f0ac5ea 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-merge-rules/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-merge-rules" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/source-map/package.json index 24663417e..aa7882a4c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-merge-rules/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-merge-rules/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/supports-color/package.json index db4ded22b..3f7d48cb7 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-merge-rules/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-merge-rules/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/package.json index 4f95ecf49..ad2b08af3 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-merge-rules/package.json @@ -1,35 +1,53 @@ { - "name": "postcss-merge-rules", - "version": "4.0.3", - "description": "Merge CSS rules with PostCSS.", - "main": "dist/index.js", - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-merge-rules@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-merge-rules@4.0.3", + "_id": "postcss-merge-rules@4.0.3", + "_inBundle": false, + "_integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "_location": "/postcss-merge-rules", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "color-convert": "1.9.3", + "colorette": "1.2.2", + "dot-prop": "5.3.0", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "indexes-of": "1.0.1", + "node-releases": "1.1.73", + "uniq": "1.0.1" }, - "keywords": [ - "css", - "optimise", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "postcss-discard-comments": "^4.0.0", - "postcss-simple-vars": "^5.0.1" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-merge-rules@4.0.3", + "name": "postcss-merge-rules", + "escapedName": "postcss-merge-rules", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1622234641993&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "browserslist": "^4.0.0", "caniuse-api": "^3.0.0", @@ -38,10 +56,36 @@ "postcss-selector-parser": "^3.0.0", "vendors": "^1.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Merge CSS rules with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "postcss-discard-comments": "^4.0.0", + "postcss-simple-vars": "^5.0.1" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "optimise", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-merge-rules", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/ansi-styles/package.json index 65edb48c3..989bc4db6 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-minify-font-values/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-minify-font-values/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..9998e358b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-minify-font-values/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-minify-font-values/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/package.json index bc324685a..d8b401f45 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-minify-font-values/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-minify-font-values/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/postcss/package.json index ece04085e..42de55ae9 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-minify-font-values/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-minify-font-values" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/source-map/package.json index 24663417e..67750d1ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-minify-font-values/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-minify-font-values/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/supports-color/package.json index db4ded22b..8aa04a243 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-minify-font-values/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-minify-font-values/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/package.json index 264505b4d..9fa123780 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-font-values/package.json @@ -1,13 +1,60 @@ { - "name": "postcss-minify-font-values", - "version": "4.0.2", + "_args": [ + [ + "postcss-minify-font-values@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-minify-font-values@4.0.2", + "_id": "postcss-minify-font-values@4.0.2", + "_inBundle": false, + "_integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "_location": "/postcss-minify-font-values", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-minify-font-values@4.0.2", + "name": "postcss-minify-font-values", + "escapedName": "postcss-minify-font-values", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, "description": "Minify font declarations with PostCSS", - "main": "dist/index.js", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, "files": [ "dist" ], - "author": "Bogdan Chadkin ", - "license": "MIT", + "homepage": "https://github.com/cssnano/cssnano", "keywords": [ "css", "font", @@ -16,23 +63,15 @@ "optimise", "postcss-plugin" ], - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "repository": "cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-minify-font-values", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "homepage": "https://github.com/cssnano/cssnano", "scripts": { "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" - }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/ansi-styles/package.json index 65edb48c3..20447188a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-minify-gradients/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-minify-gradients/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..42f320f01 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-minify-gradients/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-minify-gradients/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/package.json index bc324685a..daa15d79b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-minify-gradients/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-minify-gradients/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/postcss/package.json index ece04085e..e8f442ba1 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-minify-gradients/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-minify-gradients" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/source-map/package.json index 24663417e..67dc661b5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-minify-gradients/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-minify-gradients/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/supports-color/package.json index db4ded22b..45322a6c7 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-minify-gradients/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-minify-gradients/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/package.json index 0913f9239..8ec83429c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-gradients/package.json @@ -1,42 +1,78 @@ { - "name": "postcss-minify-gradients", - "version": "4.0.2", - "description": "Minify gradient parameters with PostCSS.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" - ], - "keywords": [ - "css", - "postcss", - "postcss-plugin" + "_args": [ + [ + "postcss-minify-gradients@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_development": true, + "_from": "postcss-minify-gradients@4.0.2", + "_id": "postcss-minify-gradients@4.0.2", + "_inBundle": false, + "_integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "_location": "/postcss-minify-gradients", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-minify-gradients@4.0.2", + "name": "postcss-minify-gradients", + "escapedName": "postcss-minify-gradients", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1621449598992&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "is-color-stop": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Minify gradient parameters with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-minify-gradients", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/ansi-styles/package.json index 65edb48c3..384336675 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-minify-params/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-minify-params/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/browserslist/package.json index 5deec7979..c9c011ed0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/postcss-minify-params/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/postcss-minify-params" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..8faf231a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-minify-params/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-minify-params/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/package.json index bc324685a..c3f63b299 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-minify-params/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-minify-params/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/postcss/package.json index ece04085e..f7ef51e0a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-minify-params/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-minify-params" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/source-map/package.json index 24663417e..c2584291f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-minify-params/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-minify-params/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/supports-color/package.json index db4ded22b..b2cb08ebd 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-minify-params/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-minify-params/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/package.json index 376acc279..edf5f0788 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-params/package.json @@ -1,26 +1,49 @@ { - "name": "postcss-minify-params", - "version": "4.0.2", - "description": "Minify at-rule params with PostCSS", - "keywords": [ - "postcss", - "css", - "postcss-plugin", - "minify", - "optimise", - "params" + "_args": [ + [ + "postcss-minify-params@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "dist/index.js", - "files": [ - "dist" + "_development": true, + "_from": "postcss-minify-params@4.0.2", + "_id": "postcss-minify-params@4.0.2", + "_inBundle": false, + "_integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "_location": "/postcss-minify-params", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "color-convert": "1.9.3", + "colorette": "1.2.2", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "node-releases": "1.1.73" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-minify-params@4.0.2", + "name": "postcss-minify-params", + "escapedName": "postcss-minify-params", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/cssnano-preset-default" ], - "author": "Bogdan Chadkin ", - "license": "MIT", - "repository": "cssnano/cssnano", + "_resolved": "https://registry.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, - "homepage": "https://github.com/cssnano/cssnano", "dependencies": { "alphanum-sort": "^1.0.0", "browserslist": "^4.0.0", @@ -29,14 +52,35 @@ "postcss-value-parser": "^3.0.0", "uniqs": "^2.0.0" }, - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, + "description": "Minify at-rule params with PostCSS", "devDependencies": { "babel-cli": "^6.0.0", "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "postcss", + "css", + "postcss-plugin", + "minify", + "optimise", + "params" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-minify-params", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/ansi-styles/package.json index 65edb48c3..856c5390c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-minify-selectors/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-minify-selectors/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..8769656a8 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-minify-selectors/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-minify-selectors/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/package.json index bc324685a..a6ab46645 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-minify-selectors/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-minify-selectors/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser/package.json index d32d917dc..1e19f4177 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser/package.json @@ -1,6 +1,58 @@ { - "name": "postcss-selector-parser", - "version": "3.1.2", + "_args": [ + [ + "postcss-selector-parser@3.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-selector-parser@3.1.2", + "_id": "postcss-selector-parser@3.1.2", + "_inBundle": false, + "_integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "_location": "/postcss-minify-selectors/postcss-selector-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-selector-parser@3.1.2", + "name": "postcss-selector-parser", + "escapedName": "postcss-selector-parser", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" + }, + "_requiredBy": [ + "/postcss-minify-selectors" + ], + "_resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "_spec": "3.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "ava": { + "require": "babel-register", + "concurrency": 5 + }, + "bugs": { + "url": "https://github.com/postcss/postcss-selector-parser/issues" + }, + "contributors": [ + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + { + "name": "Chris Eppstein", + "email": "chris@eppsteins.net", + "url": "http://twitter.com/chriseppstein" + } + ], + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "description": "> Selector parser with built in methods for working with selector strings.", "devDependencies": { "ava": "^0.20.0", "babel-cli": "^6.4.0", @@ -22,8 +74,12 @@ "nyc": "^10.0.0", "postcss": "^6.0.6" }, - "main": "dist/index.js", - "types": "postcss-selector-parser.d.ts", + "engines": { + "node": ">=8" + }, + "eslintConfig": { + "extends": "cssnano" + }, "files": [ "API.md", "CHANGELOG.md", @@ -31,46 +87,26 @@ "dist", "postcss-selector-parser.d.ts" ], - "scripts": { - "pretest": "eslint src", - "prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", - "report": "nyc report --reporter=html", - "test": "nyc ava src/__tests__/*.js" - }, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "license": "MIT", - "engines": { - "node": ">=8" - }, "homepage": "https://github.com/postcss/postcss-selector-parser", - "contributors": [ - { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - { - "name": "Chris Eppstein", - "email": "chris@eppsteins.net", - "url": "http://twitter.com/chriseppstein" - } - ], - "repository": "postcss/postcss-selector-parser", - "ava": { - "require": "babel-register", - "concurrency": 5 - }, + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-selector-parser", "nyc": { "exclude": [ "node_modules", "**/__tests__" ] }, - "eslintConfig": { - "extends": "cssnano" - } + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-selector-parser.git" + }, + "scripts": { + "prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", + "pretest": "eslint src", + "report": "nyc report --reporter=html", + "test": "nyc ava src/__tests__/*.js" + }, + "types": "postcss-selector-parser.d.ts", + "version": "3.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss/package.json index ece04085e..ea5474a74 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-minify-selectors/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-minify-selectors" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/source-map/package.json index 24663417e..8dabf32e5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-minify-selectors/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-minify-selectors/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/supports-color/package.json index db4ded22b..257df3b30 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-minify-selectors/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-minify-selectors/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/package.json index 8bbbaf982..45dde947a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-minify-selectors/package.json @@ -1,46 +1,85 @@ { - "name": "postcss-minify-selectors", - "version": "4.0.2", - "description": "Minify selectors with PostCSS.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-minify-selectors@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-minify-selectors@4.0.2", + "_id": "postcss-minify-selectors@4.0.2", + "_inBundle": false, + "_integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "_location": "/postcss-minify-selectors", + "_phantomChildren": { + "color-convert": "1.9.3", + "dot-prop": "5.3.0", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "indexes-of": "1.0.1", + "uniq": "1.0.1" }, - "keywords": [ - "css", - "minify", - "optimise", - "postcss", - "postcss-plugin", - "selectors" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "postcss-font-magician": "^2.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-minify-selectors@4.0.2", + "name": "postcss-minify-selectors", + "escapedName": "postcss-minify-selectors", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1621449593365&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "alphanum-sort": "^1.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-selector-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Minify selectors with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "postcss-font-magician": "^2.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "minify", + "optimise", + "postcss", + "postcss-plugin", + "selectors" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-minify-selectors", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-modules-extract-imports/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-modules-extract-imports/package.json index 83fee78a6..b4db32d2a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-modules-extract-imports/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-modules-extract-imports/package.json @@ -1,22 +1,35 @@ { - "name": "postcss-modules-extract-imports", - "version": "1.2.1", - "description": "A CSS Modules transform to extract local aliases for inline imports", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "postcss-modules-extract-imports@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "babel --out-dir lib src", - "test": "jest --coverage", - "precommit": "lint-staged", - "prepublish": "yarn run test && yarn run build" + "_development": true, + "_from": "postcss-modules-extract-imports@1.2.1", + "_id": "postcss-modules-extract-imports@1.2.1", + "_inBundle": false, + "_integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=", + "_location": "/postcss-modules-extract-imports", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-modules-extract-imports@1.2.1", + "name": "postcss-modules-extract-imports", + "escapedName": "postcss-modules-extract-imports", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" }, - "lint-staged": { - "*.js": [ - "prettier --single-quote --no-semi --write", - "git add" - ] + "_requiredBy": [ + "/css-loader" + ], + "_resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz?cache=0&sync_timestamp=1602588202058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Glen Maddern" }, "babel": { "presets": [ @@ -30,24 +43,13 @@ ] ] }, - "repository": { - "type": "git", - "url": "https://github.com/css-modules/postcss-modules-extract-imports.git" - }, - "keywords": [ - "css-modules", - "postcss", - "plugin" - ], - "author": "Glen Maddern", - "license": "ISC", "bugs": { "url": "https://github.com/css-modules/postcss-modules-extract-imports/issues" }, - "homepage": "https://github.com/css-modules/postcss-modules-extract-imports", "dependencies": { "postcss": "^6.0.1" }, + "description": "A CSS Modules transform to extract local aliases for inline imports", "devDependencies": { "babel-cli": "^6.24.1", "babel-eslint": "^7.2.2", @@ -59,5 +61,34 @@ "jest": "^20.0.3", "lint-staged": "^3.4.2", "prettier": "^1.3.1" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/css-modules/postcss-modules-extract-imports", + "keywords": [ + "css-modules", + "postcss", + "plugin" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "prettier --single-quote --no-semi --write", + "git add" + ] + }, + "main": "lib/index.js", + "name": "postcss-modules-extract-imports", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/postcss-modules-extract-imports.git" + }, + "scripts": { + "build": "babel --out-dir lib src", + "precommit": "lint-staged", + "prepublish": "yarn run test && yarn run build", + "test": "jest --coverage" + }, + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-modules-local-by-default/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-modules-local-by-default/package.json index 7d6359eb6..f9a575992 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-modules-local-by-default/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-modules-local-by-default/package.json @@ -1,23 +1,44 @@ { - "name": "postcss-modules-local-by-default", - "version": "1.2.0", - "description": "A CSS Modules transform to make local scope the default", - "keywords": [ - "css-modules", - "postcss", - "css", - "postcss-plugin" + "_args": [ + [ + "postcss-modules-local-by-default@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Mark Dalgleish", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/css-modules/postcss-modules-local-by-default.git" + "_development": true, + "_from": "postcss-modules-local-by-default@1.2.0", + "_id": "postcss-modules-local-by-default@1.2.0", + "_inBundle": false, + "_integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "_location": "/postcss-modules-local-by-default", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-modules-local-by-default@1.2.0", + "name": "postcss-modules-local-by-default", + "escapedName": "postcss-modules-local-by-default", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/css-loader" + ], + "_resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&sync_timestamp=1602587625149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mark Dalgleish" + }, + "bugs": { + "url": "https://github.com/css-modules/postcss-modules-local-by-default/issues" }, "dependencies": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" }, + "description": "A CSS Modules transform to make local scope the default", "devDependencies": { "chokidar-cli": "^1.0.1", "codecov.io": "^0.1.2", @@ -26,18 +47,32 @@ "istanbul": "^0.4.5", "tape": "^4.0.0" }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/css-modules/postcss-modules-local-by-default#readme", + "keywords": [ + "css-modules", + "postcss", + "css", + "postcss-plugin" + ], + "license": "MIT", + "name": "postcss-modules-local-by-default", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/postcss-modules-local-by-default.git" + }, "scripts": { - "lint": "eslint index.js test.js", - "pretest": "npm run lint", - "test": "tape test.js", "autotest": "chokidar index.js test.js -c 'npm test'", - "precover": "npm run lint", "cover": "istanbul cover test.js", - "travis": "npm run cover -- --report lcovonly", + "lint": "eslint index.js test.js", + "precover": "npm run lint", "prepublish": "npm prune && npm test", - "publish-patch": "npm prune && npm test && npm version patch && git push && git push --tags && npm publish" + "pretest": "npm run lint", + "publish-patch": "npm prune && npm test && npm version patch && git push && git push --tags && npm publish", + "test": "tape test.js", + "travis": "npm run cover -- --report lcovonly" }, - "files": [ - "index.js" - ] + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-modules-scope/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-modules-scope/package.json index f08fba683..d3a95015e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-modules-scope/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-modules-scope/package.json @@ -1,42 +1,44 @@ { - "name": "postcss-modules-scope", - "version": "1.1.0", - "description": "A CSS Modules transform to extract export statements from local-scope classes", - "main": "lib/index.js", - "scripts": { - "lint": "eslint src", - "build": "babel --out-dir lib src", - "watch": "chokidar src -c 'npm run build'", - "test": "mocha --compilers js:babel/register", - "posttest": "npm run lint && npm run build", - "autotest": "chokidar src test -c 'npm test'", - "precover": "npm run lint && npm run build", - "cover": "babel-istanbul cover node_modules/.bin/_mocha", - "travis": "npm run cover -- --report lcovonly", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/css-modules/postcss-modules-scope.git" - }, - "keywords": [ - "css-modules", - "postcss", - "plugin" + "_args": [ + [ + "postcss-modules-scope@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib" + "_development": true, + "_from": "postcss-modules-scope@1.1.0", + "_id": "postcss-modules-scope@1.1.0", + "_inBundle": false, + "_integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "_location": "/postcss-modules-scope", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-modules-scope@1.1.0", + "name": "postcss-modules-scope", + "escapedName": "postcss-modules-scope", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/css-loader" ], - "author": "Glen Maddern", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz?cache=0&sync_timestamp=1602593133331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Glen Maddern" + }, "bugs": { "url": "https://github.com/css-modules/postcss-modules-scope/issues" }, - "homepage": "https://github.com/css-modules/postcss-modules-scope", "dependencies": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" }, + "description": "A CSS Modules transform to extract export statements from local-scope classes", "devDependencies": { "babel": "^5.4.7", "babel-eslint": "^6.1.2", @@ -48,5 +50,34 @@ "css-selector-parser": "^1.0.4", "eslint": "^1.5.0", "mocha": "^3.0.1" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/css-modules/postcss-modules-scope", + "keywords": [ + "css-modules", + "postcss", + "plugin" + ], + "license": "ISC", + "main": "lib/index.js", + "name": "postcss-modules-scope", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/postcss-modules-scope.git" + }, + "scripts": { + "autotest": "chokidar src test -c 'npm test'", + "build": "babel --out-dir lib src", + "cover": "babel-istanbul cover node_modules/.bin/_mocha", + "lint": "eslint src", + "posttest": "npm run lint && npm run build", + "precover": "npm run lint && npm run build", + "prepublish": "npm run build", + "test": "mocha --compilers js:babel/register", + "travis": "npm run cover -- --report lcovonly", + "watch": "chokidar src -c 'npm run build'" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-modules-values/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-modules-values/package.json index bc22c107b..3cc969105 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-modules-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-modules-values/package.json @@ -1,32 +1,52 @@ { - "name": "postcss-modules-values", - "version": "1.3.0", - "description": "PostCSS plugin for CSS Modules to pass arbitrary values between your module files", - "main": "lib/index.js", - "scripts": { - "lint": "standard src test", - "build": "babel --out-dir lib src", - "autotest": "chokidar src test -c 'npm test'", - "test": "mocha --compilers js:babel-core/register", - "posttest": "npm run lint && npm run build", - "travis": "npm run test", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/css-modules/postcss-modules-values.git" + "_args": [ + [ + "postcss-modules-values@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-modules-values@1.3.0", + "_id": "postcss-modules-values@1.3.0", + "_inBundle": false, + "_integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "_location": "/postcss-modules-values", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-modules-values@1.3.0", + "name": "postcss-modules-values", + "escapedName": "postcss-modules-values", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" }, - "keywords": [ - "css", - "modules", - "postcss" + "_requiredBy": [ + "/css-loader" ], - "author": "Glen Maddern", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz?cache=0&sync_timestamp=1602586179271&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Glen Maddern" + }, + "babel": { + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports" + ] + }, "bugs": { "url": "https://github.com/css-modules/postcss-modules-values/issues" }, - "homepage": "https://github.com/css-modules/postcss-modules-values#readme", + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "description": "PostCSS plugin for CSS Modules to pass arbitrary values between your module files", "devDependencies": { "babel-cli": "^6.5.2", "babel-core": "^6.5.2", @@ -36,16 +56,27 @@ "mocha": "^3.0.2", "standard": "^8.4.0" }, - "dependencies": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" + "homepage": "https://github.com/css-modules/postcss-modules-values#readme", + "keywords": [ + "css", + "modules", + "postcss" + ], + "license": "ISC", + "main": "lib/index.js", + "name": "postcss-modules-values", + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/postcss-modules-values.git" }, - "babel": { - "presets": [ - "es2015" - ], - "plugins": [ - "add-module-exports" - ] - } + "scripts": { + "autotest": "chokidar src test -c 'npm test'", + "build": "babel --out-dir lib src", + "lint": "standard src test", + "posttest": "npm run lint && npm run build", + "prepublish": "npm run build", + "test": "mocha --compilers js:babel-core/register", + "travis": "npm run test" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/ansi-styles/package.json index 65edb48c3..98c8e934a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-charset/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-charset/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..84bc407d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-charset/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-charset/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/package.json index bc324685a..6c9ecac89 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-charset/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-charset/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/postcss/package.json index ece04085e..58d314d79 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-charset/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-charset" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/source-map/package.json index 24663417e..d8e9cf595 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-charset/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-charset/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/supports-color/package.json index db4ded22b..08a67c94c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-charset/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-charset/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/package.json index 90efcc26d..c3045c255 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-charset/package.json @@ -1,36 +1,75 @@ { - "name": "postcss-normalize-charset", - "version": "4.0.1", - "description": "Add necessary or remove extra charset with PostCSS", - "keywords": [ - "postcss", - "css", - "postcss-plugin", - "charset" + "_args": [ + [ + "postcss-normalize-charset@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Bogdan Chadkin ", - "files": [ - "dist" + "_development": true, + "_from": "postcss-normalize-charset@4.0.1", + "_id": "postcss-normalize-charset@4.0.1", + "_inBundle": false, + "_integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "_location": "/postcss-normalize-charset", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-charset@4.0.1", + "name": "postcss-normalize-charset", + "escapedName": "postcss-normalize-charset", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" ], - "license": "MIT", - "repository": "cssnano/cssnano", + "_resolved": "https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1621449593655&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, - "homepage": "https://github.com/cssnano/cssnano", "dependencies": { "postcss": "^7.0.0" }, + "description": "Add necessary or remove extra charset with PostCSS", "devDependencies": { "babel-cli": "^6.0.0", "cross-env": "^5.0.0", "postcss-devtools": "^1.0.0" }, + "engines": { + "node": ">=6.9.0" + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "postcss", + "css", + "postcss-plugin", + "charset" + ], + "license": "MIT", "main": "dist/index.js", + "name": "postcss-normalize-charset", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, "scripts": { "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/ansi-styles/package.json index 65edb48c3..eb47fd937 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-display-values/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-display-values/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..defe5c526 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-display-values/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-display-values/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/package.json index bc324685a..468e086dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-display-values/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-display-values/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/postcss/package.json index ece04085e..63161ae4f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-display-values/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-display-values" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/source-map/package.json index 24663417e..c4bfee9f0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-display-values/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-display-values/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/supports-color/package.json index db4ded22b..a99b736a8 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-display-values/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-display-values/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/package.json index 6d41bc669..3089d3b2e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-display-values/package.json @@ -1,36 +1,72 @@ { - "name": "postcss-normalize-display-values", - "version": "4.0.2", - "description": "Normalize multiple value display syntaxes into single values.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-normalize-display-values@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "_development": true, + "_from": "postcss-normalize-display-values@4.0.2", + "_id": "postcss-normalize-display-values@4.0.2", + "_inBundle": false, + "_integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "_location": "/postcss-normalize-display-values", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-display-values@4.0.2", + "name": "postcss-normalize-display-values", + "escapedName": "postcss-normalize-display-values", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1621449599414&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, - "homepage": "https://github.com/cssnano/cssnano", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "description": "Normalize multiple value display syntaxes into single values.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-display-values", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/ansi-styles/package.json index 65edb48c3..9c2841807 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-positions/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-positions/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..79a82b1f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-positions/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-positions/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/package.json index bc324685a..67e29260e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-positions/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-positions/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/postcss/package.json index ece04085e..a5ce3af81 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-positions/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-positions" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/source-map/package.json index 24663417e..62ccc8862 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-positions/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-positions/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/supports-color/package.json index db4ded22b..2128c938f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-positions/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-positions/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/package.json index 85d2f5263..d0c202801 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-positions/package.json @@ -1,42 +1,78 @@ { - "name": "postcss-normalize-positions", - "version": "4.0.2", - "description": "Normalize keyword values for position into length values.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-normalize-positions@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-normalize-positions@4.0.2", + "_id": "postcss-normalize-positions@4.0.2", + "_inBundle": false, + "_integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "_location": "/postcss-normalize-positions", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-positions@4.0.2", + "name": "postcss-normalize-positions", + "escapedName": "postcss-normalize-positions", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Normalize keyword values for position into length values.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-positions", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles/package.json index 65edb48c3..6d6d9c650 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-repeat-style/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-repeat-style/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..90ecafd28 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-repeat-style/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-repeat-style/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/package.json index bc324685a..0984ad114 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-repeat-style/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-repeat-style/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/postcss/package.json index ece04085e..109dbcc6f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-repeat-style/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-repeat-style" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/source-map/package.json index 24663417e..294331e34 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-repeat-style/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-repeat-style/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/supports-color/package.json index db4ded22b..54a523f15 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-repeat-style/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-repeat-style/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/package.json index 5a078503f..81a49c1cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-repeat-style/package.json @@ -1,37 +1,73 @@ { - "name": "postcss-normalize-repeat-style", - "version": "4.0.2", - "description": "Convert two value syntax for repeat-style into one value.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_args": [ + [ + "postcss-normalize-repeat-style@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-normalize-repeat-style@4.0.2", + "_id": "postcss-normalize-repeat-style@4.0.2", + "_inBundle": false, + "_integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "_location": "/postcss-normalize-repeat-style", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "files": [ - "LICENSE-MIT", - "dist" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-repeat-style@4.0.2", + "name": "postcss-normalize-repeat-style", + "escapedName": "postcss-normalize-repeat-style", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/cssnano-preset-default" ], - "license": "MIT", + "_resolved": "https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1621449596114&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "cssnano-util-get-match": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, + "description": "Convert two value syntax for repeat-style into one value.", "devDependencies": { "babel-cli": "^6.0.0", "cross-env": "^5.0.0" }, - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" - }, - "homepage": "https://github.com/cssnano/cssnano", "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-repeat-style", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/ansi-styles/package.json index 65edb48c3..c9500a933 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-string/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-string/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..c165e9bd5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-string/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-string/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/package.json index bc324685a..0bb36fb4c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-string/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-string/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/postcss/package.json index ece04085e..40f0fa317 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-string/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-string" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/source-map/package.json index 24663417e..8ee7ff837 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-string/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-string/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/supports-color/package.json index db4ded22b..17d3a490c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-string/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-string/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/package.json index 4ab787c9b..968a78a2c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-string/package.json @@ -1,41 +1,77 @@ { - "name": "postcss-normalize-string", - "version": "4.0.2", - "description": "Normalize wrapping quotes for CSS string literals.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-normalize-string@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-normalize-string@4.0.2", + "_id": "postcss-normalize-string@4.0.2", + "_inBundle": false, + "_integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "_location": "/postcss-normalize-string", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-string@4.0.2", + "name": "postcss-normalize-string", + "escapedName": "postcss-normalize-string", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1621449595099&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Normalize wrapping quotes for CSS string literals.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-string", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles/package.json index 65edb48c3..8347e7f9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-timing-functions/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-timing-functions/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..b5cfda06a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-timing-functions/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-timing-functions/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/package.json index bc324685a..e33ae974d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-timing-functions/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-timing-functions/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/postcss/package.json index ece04085e..506195fbd 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-timing-functions/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-timing-functions" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/source-map/package.json index 24663417e..dedc5c5fb 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-timing-functions/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-timing-functions/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/supports-color/package.json index db4ded22b..883694755 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-timing-functions/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-timing-functions/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/package.json index a82e0df44..2bb110527 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-timing-functions/package.json @@ -1,36 +1,72 @@ { - "name": "postcss-normalize-timing-functions", - "version": "4.0.2", - "description": "Normalize CSS animation/transition timing functions.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-normalize-timing-functions@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "_development": true, + "_from": "postcss-normalize-timing-functions@4.0.2", + "_id": "postcss-normalize-timing-functions@4.0.2", + "_inBundle": false, + "_integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "_location": "/postcss-normalize-timing-functions", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-timing-functions@4.0.2", + "name": "postcss-normalize-timing-functions", + "escapedName": "postcss-normalize-timing-functions", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", "bugs": { "url": "https://github.com/cssnano/cssnano/issues" }, - "homepage": "https://github.com/cssnano/cssnano", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "description": "Normalize CSS animation/transition timing functions.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-timing-functions", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/ansi-styles/package.json index 65edb48c3..3704f7905 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-unicode/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-unicode/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/browserslist/package.json index 5deec7979..032dd247e 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/postcss-normalize-unicode/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/postcss-normalize-unicode" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..4493fa84b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-unicode/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-unicode/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/package.json index bc324685a..1b0e0533f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-unicode/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-unicode/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/postcss/package.json index ece04085e..a159b2f73 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-unicode/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-unicode" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/source-map/package.json index 24663417e..d4f170c25 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-unicode/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-unicode/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/supports-color/package.json index db4ded22b..67d24761a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-unicode/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-unicode/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/package.json index 792a29fcb..9c7c12571 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-unicode/package.json @@ -1,41 +1,82 @@ { - "name": "postcss-normalize-unicode", - "version": "4.0.1", - "description": "Normalize unicode-range descriptors, and can convert to wildcard ranges.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-normalize-unicode@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-normalize-unicode@4.0.1", + "_id": "postcss-normalize-unicode@4.0.1", + "_inBundle": false, + "_integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "_location": "/postcss-normalize-unicode", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "color-convert": "1.9.3", + "colorette": "1.2.2", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "node-releases": "1.1.73" }, - "keywords": [ - "css", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-unicode@4.0.1", + "name": "postcss-normalize-unicode", + "escapedName": "postcss-normalize-unicode", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "browserslist": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Normalize unicode-range descriptors, and can convert to wildcard ranges.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-unicode", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/ansi-styles/package.json index 65edb48c3..a8ff0e341 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-url/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-url/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..852783c02 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-url/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-url/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/package.json index bc324685a..e287f41fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-url/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-url/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/is-absolute-url/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/is-absolute-url/package.json index 9208b2879..bfdc31563 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/is-absolute-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/is-absolute-url/package.json @@ -1,23 +1,52 @@ { - "name": "is-absolute-url", - "version": "2.1.0", - "description": "Check if an URL is absolute", - "license": "MIT", - "repository": "sindresorhus/is-absolute-url", + "_args": [ + [ + "is-absolute-url@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-absolute-url@2.1.0", + "_id": "is-absolute-url@2.1.0", + "_inBundle": false, + "_integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "_location": "/postcss-normalize-url/is-absolute-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-absolute-url@2.1.0", + "name": "is-absolute-url", + "escapedName": "is-absolute-url", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-url" + ], + "_resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-absolute-url/issues" + }, + "description": "Check if an URL is absolute", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-absolute-url#readme", "keywords": [ "url", "absolute", @@ -26,7 +55,14 @@ "is", "check" ], - "devDependencies": { - "mocha": "*" - } + "license": "MIT", + "name": "is-absolute-url", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-absolute-url.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/postcss/package.json index ece04085e..600361557 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-url/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-url" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/source-map/package.json index 24663417e..6ef9d8a0b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-url/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-url/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/supports-color/package.json index db4ded22b..95b7587d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-url/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-url/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/package.json index d0317b754..3dfe1d1a5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-url/package.json @@ -1,15 +1,64 @@ { - "name": "postcss-normalize-url", - "version": "4.0.1", + "_args": [ + [ + "postcss-normalize-url@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-normalize-url@4.0.1", + "_id": "postcss-normalize-url@4.0.1", + "_inBundle": false, + "_integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "_location": "/postcss-normalize-url", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-url@4.0.1", + "name": "postcss-normalize-url", + "escapedName": "postcss-normalize-url", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, "description": "Normalize URLs with PostCSS", - "main": "dist/index.js", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, "files": [ "dist", "LICENSE-MIT" ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, + "homepage": "https://github.com/cssnano/cssnano", "keywords": [ "css", "normalize", @@ -20,27 +69,14 @@ "url" ], "license": "MIT", - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" - }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" + "main": "dist/index.js", + "name": "postcss-normalize-url", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "repository": "cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/ansi-styles/package.json index 65edb48c3..c4843615d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-normalize-whitespace/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-normalize-whitespace/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..88132a936 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-normalize-whitespace/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-normalize-whitespace/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/package.json index bc324685a..88bb9ee35 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-normalize-whitespace/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-normalize-whitespace/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/postcss/package.json index ece04085e..60095b5e6 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-normalize-whitespace/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-normalize-whitespace" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/source-map/package.json index 24663417e..055d459a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-normalize-whitespace/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-normalize-whitespace/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/supports-color/package.json index db4ded22b..1217d1522 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-normalize-whitespace/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-normalize-whitespace/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/package.json index ba9c77339..246cf8584 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-normalize-whitespace/package.json @@ -1,40 +1,76 @@ { - "name": "postcss-normalize-whitespace", - "version": "4.0.2", - "description": "Trim whitespace inside and around CSS rules & declarations.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-normalize-whitespace@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-normalize-whitespace@4.0.2", + "_id": "postcss-normalize-whitespace@4.0.2", + "_inBundle": false, + "_integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "_location": "/postcss-normalize-whitespace", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-normalize-whitespace@4.0.2", + "name": "postcss-normalize-whitespace", + "escapedName": "postcss-normalize-whitespace", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1621449593892&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Trim whitespace inside and around CSS rules & declarations.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-normalize-whitespace", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/ansi-styles/package.json index 65edb48c3..6b3a56f1a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-ordered-values/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-ordered-values/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..d46ff5ae6 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-ordered-values/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-ordered-values/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/package.json index bc324685a..d1dfdbac3 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-ordered-values/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-ordered-values/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/postcss/package.json index ece04085e..565b66bba 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-ordered-values/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-ordered-values" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/source-map/package.json index 24663417e..821b9ee57 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-ordered-values/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-ordered-values/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/supports-color/package.json index db4ded22b..f8bd6fb85 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-ordered-values/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-ordered-values/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/package.json index 230f8fe22..499aaf18d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-ordered-values/package.json @@ -1,41 +1,77 @@ { - "name": "postcss-ordered-values", - "version": "4.1.2", - "description": "Ensure values are ordered consistently in your CSS.", - "main": "dist/index.js", - "files": [ - "dist", - "LICENSE-MIT" + "_args": [ + [ + "postcss-ordered-values@4.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "_development": true, + "_from": "postcss-ordered-values@4.1.2", + "_id": "postcss-ordered-values@4.1.2", + "_inBundle": false, + "_integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "_location": "/postcss-ordered-values", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "keywords": [ - "css", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-ordered-values@4.1.2", + "name": "postcss-ordered-values", + "escapedName": "postcss-ordered-values", + "rawSpec": "4.1.2", + "saveSpec": null, + "fetchSpec": "4.1.2" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "_spec": "4.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "cssnano-util-get-arguments": "^4.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Ensure values are ordered consistently in your CSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "dist", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-ordered-values", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/ansi-styles/package.json index 65edb48c3..978612a87 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-prefix-selector/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-prefix-selector/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..321a72392 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-prefix-selector/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-prefix-selector/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/package.json index bc324685a..9ab397964 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-prefix-selector/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-prefix-selector/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/postcss/package.json index ece04085e..90a1e4fc8 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-prefix-selector/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-prefix-selector" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/source-map/package.json index 24663417e..9bcdc8744 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-prefix-selector/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-prefix-selector/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/supports-color/package.json index db4ded22b..64446d422 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-prefix-selector/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-prefix-selector/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/package.json index 29896d434..63a066fcf 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-prefix-selector/package.json @@ -1,56 +1,102 @@ -{ - "name": "postcss-prefix-selector", - "description": "Prefix all CSS rules with a selector", - "version": "1.9.0", - "author": "Jonathan Ong (http://jongleberry.com)", - "contributors": [ - "Valentin Radulescu (https://valentin.io)" - ], - "license": "MIT", - "repository": "RadValentin/postcss-prefix-selector", - "bugs": "https://github.com/RadValentin/postcss-prefix-selector/issues", - "homepage": "https://github.com/RadValentin/postcss-prefix-selector", - "dependencies": { - "postcss": "^7.0.0" - }, - "devDependencies": { - "husky": "^4.0.2", - "istanbul": "~0.4.5", - "lint-staged": "^10.0.3", - "mocha": "~7.2.0", - "prettier": "^2.0.0" - }, - "scripts": { - "test": "mocha", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot", - "lint": "prettier --write '**/*.{js,css}'" - }, - "lint-staged": { - "*.js": [ - "prettier --write", - "git add" - ] - }, - "prettier": { - "printWidth": 80, - "singleQuote": true - }, - "keywords": [ - "postcss", - "prefix", - "selectors", - "postcss-plugin", - "css", - "selector", - "plugin" - ], - "files": [ - "index.js" - ], - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - } -} +{ + "_args": [ + [ + "postcss-prefix-selector@1.9.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-prefix-selector@1.9.0", + "_id": "postcss-prefix-selector@1.9.0", + "_inBundle": false, + "_integrity": "sha1-21SYArefn5H3QZyMH4bTHZdK/14=", + "_location": "/postcss-prefix-selector", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-prefix-selector@1.9.0", + "name": "postcss-prefix-selector", + "escapedName": "postcss-prefix-selector", + "rawSpec": "1.9.0", + "saveSpec": null, + "fetchSpec": "1.9.0" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/postcss-prefix-selector/download/postcss-prefix-selector-1.9.0.tgz", + "_spec": "1.9.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/RadValentin/postcss-prefix-selector/issues" + }, + "contributors": [ + { + "name": "Valentin Radulescu", + "email": "hi@valentin.io", + "url": "https://valentin.io" + } + ], + "dependencies": { + "postcss": "^7.0.0" + }, + "description": "Prefix all CSS rules with a selector", + "devDependencies": { + "husky": "^4.0.2", + "istanbul": "~0.4.5", + "lint-staged": "^10.0.3", + "mocha": "~7.2.0", + "prettier": "^2.0.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/RadValentin/postcss-prefix-selector", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "postcss", + "prefix", + "selectors", + "postcss-plugin", + "css", + "selector", + "plugin" + ], + "license": "MIT", + "lint-staged": { + "*.js": [ + "prettier --write", + "git add" + ] + }, + "name": "postcss-prefix-selector", + "prettier": { + "printWidth": 80, + "singleQuote": true + }, + "repository": { + "type": "git", + "url": "git+https://github.com/RadValentin/postcss-prefix-selector.git" + }, + "scripts": { + "lint": "prettier --write '**/*.{js,css}'", + "test": "mocha", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" + }, + "version": "1.9.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/ansi-styles/package.json index 65edb48c3..bb3dca2da 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-reduce-initial/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-reduce-initial/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/browserslist/package.json index 5deec7979..2afeb1c28 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/postcss-reduce-initial/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/postcss-reduce-initial" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..a17893109 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-reduce-initial/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-reduce-initial/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/package.json index bc324685a..3b8da6e25 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-reduce-initial/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-reduce-initial/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/postcss/package.json index ece04085e..e4731e0e4 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-reduce-initial/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-reduce-initial" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/source-map/package.json index 24663417e..dda5ee716 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-reduce-initial/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-reduce-initial/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/supports-color/package.json index db4ded22b..b76d0c293 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-reduce-initial/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-reduce-initial/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/package.json index 6ef2ca2a3..118378f76 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-initial/package.json @@ -1,47 +1,88 @@ { - "name": "postcss-reduce-initial", - "version": "4.0.3", - "description": "Reduce initial definitions to the actual initial value, where possible.", - "main": "dist/index.js", - "files": [ - "data", - "dist/index.js", - "LICENSE-MIT" + "_args": [ + [ + "postcss-reduce-initial@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "acquire": "babel-node ./src/acquire.js", - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/,src/acquire.js" + "_development": true, + "_from": "postcss-reduce-initial@4.0.3", + "_id": "postcss-reduce-initial@4.0.3", + "_inBundle": false, + "_integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "_location": "/postcss-reduce-initial", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "color-convert": "1.9.3", + "colorette": "1.2.2", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "node-releases": "1.1.73" }, - "keywords": [ - "css", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "got": "^8.0.0", - "html2plaintext": "^2.0.0", - "write-file": "^1.0.0" + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-reduce-initial@4.0.3", + "name": "postcss-reduce-initial", + "escapedName": "postcss-reduce-initial", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1621449599206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "browserslist": "^4.0.0", "caniuse-api": "^3.0.0", "has": "^1.0.0", "postcss": "^7.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Reduce initial definitions to the actual initial value, where possible.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "got": "^8.0.0", + "html2plaintext": "^2.0.0", + "write-file": "^1.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "data", + "dist/index.js", + "LICENSE-MIT" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-reduce-initial", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "acquire": "babel-node ./src/acquire.js", + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/,src/acquire.js" + }, + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/ansi-styles/package.json index 65edb48c3..884b1cec5 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-reduce-transforms/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-reduce-transforms/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..21e169245 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-reduce-transforms/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-reduce-transforms/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/package.json index bc324685a..74b922c59 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-reduce-transforms/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-reduce-transforms/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/postcss/package.json index ece04085e..0a3a4346d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-reduce-transforms/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-reduce-transforms" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/source-map/package.json index 24663417e..8e228e9db 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-reduce-transforms/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-reduce-transforms/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/supports-color/package.json index db4ded22b..a5d4509f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-reduce-transforms/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-reduce-transforms/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/package.json index 5d089fe69..44fb214f3 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-reduce-transforms/package.json @@ -1,37 +1,73 @@ { - "name": "postcss-reduce-transforms", - "version": "4.0.2", - "description": "Reduce transform functions with PostCSS.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-reduce-transforms@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "_development": true, + "_from": "postcss-reduce-transforms@4.0.2", + "_id": "postcss-reduce-transforms@4.0.2", + "_inBundle": false, + "_integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "_location": "/postcss-reduce-transforms", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "homepage": "https://github.com/cssnano/cssnano", + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-reduce-transforms@4.0.2", + "name": "postcss-reduce-transforms", + "escapedName": "postcss-reduce-transforms", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, "dependencies": { "cssnano-util-get-match": "^4.0.0", "has": "^1.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Reduce transform functions with PostCSS.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-reduce-transforms", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-selector-parser/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-selector-parser/package.json index fe1f1cd1a..936da533d 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-selector-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-selector-parser/package.json @@ -1,6 +1,60 @@ { - "name": "postcss-selector-parser", - "version": "6.0.6", + "_args": [ + [ + "postcss-selector-parser@6.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-selector-parser@6.0.6", + "_id": "postcss-selector-parser@6.0.6", + "_inBundle": false, + "_integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", + "_location": "/postcss-selector-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-selector-parser@6.0.6", + "name": "postcss-selector-parser", + "escapedName": "postcss-selector-parser", + "rawSpec": "6.0.6", + "saveSpec": null, + "fetchSpec": "6.0.6" + }, + "_requiredBy": [ + "/postcss-calc" + ], + "_resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz", + "_spec": "6.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "ava": { + "require": [ + "@babel/register" + ], + "concurrency": 5, + "timeout": "25s" + }, + "bugs": { + "url": "https://github.com/postcss/postcss-selector-parser/issues" + }, + "contributors": [ + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + { + "name": "Chris Eppstein", + "email": "chris@eppsteins.net", + "url": "http://twitter.com/chriseppstein" + } + ], + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "description": "> Selector parser with built in methods for working with selector strings.", "devDependencies": { "@babel/cli": "^7.11.6", "@babel/core": "^7.11.6", @@ -22,8 +76,9 @@ "semver": "^7.3.2", "typescript": "^4.0.3" }, - "main": "dist/index.js", - "types": "postcss-selector-parser.d.ts", + "engines": { + "node": ">=4" + }, "files": [ "API.md", "CHANGELOG.md", @@ -31,47 +86,28 @@ "dist", "postcss-selector-parser.d.ts" ], - "scripts": { - "pretest": "eslint src && tsc --noEmit postcss-selector-parser.d.ts", - "prepare": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", - "lintfix": "eslint --fix src", - "report": "nyc report --reporter=html", - "test": "nyc ava src/__tests__/*.js ", - "testone": "ava" - }, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "license": "MIT", - "engines": { - "node": ">=4" - }, "homepage": "https://github.com/postcss/postcss-selector-parser", - "contributors": [ - { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - { - "name": "Chris Eppstein", - "email": "chris@eppsteins.net", - "url": "http://twitter.com/chriseppstein" - } - ], - "repository": "postcss/postcss-selector-parser", - "ava": { - "require": [ - "@babel/register" - ], - "concurrency": 5, - "timeout": "25s" - }, + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-selector-parser", "nyc": { "exclude": [ "node_modules", "**/__tests__" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-selector-parser.git" + }, + "scripts": { + "lintfix": "eslint --fix src", + "prepare": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", + "pretest": "eslint src && tsc --noEmit postcss-selector-parser.d.ts", + "report": "nyc report --reporter=html", + "test": "nyc ava src/__tests__/*.js ", + "testone": "ava" + }, + "types": "postcss-selector-parser.d.ts", + "version": "6.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/ansi-styles/package.json index 65edb48c3..d5db237b9 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-svgo/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-svgo/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..fee928e66 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-svgo/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-svgo/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/package.json index bc324685a..435718853 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-svgo/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-svgo/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/postcss/package.json index ece04085e..5cafc777b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-svgo/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-svgo" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/source-map/package.json index 24663417e..056ddcba2 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-svgo/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-svgo/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/supports-color/package.json index db4ded22b..4ce5c50c2 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-svgo/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-svgo/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/package.json index 974fad67b..e76d8956c 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-svgo/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-svgo/package.json @@ -1,15 +1,64 @@ { - "name": "postcss-svgo", - "version": "4.0.3", + "_args": [ + [ + "postcss-svgo@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-svgo@4.0.3", + "_id": "postcss-svgo@4.0.3", + "_inBundle": false, + "_integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=", + "_location": "/postcss-svgo", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-svgo@4.0.3", + "name": "postcss-svgo", + "escapedName": "postcss-svgo", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" + }, + "_requiredBy": [ + "/cssnano-preset-default" + ], + "_resolved": "https://registry.nlark.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz?cache=0&sync_timestamp=1622234649078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, "description": "Optimise inline SVG with PostCSS.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0", + "pleeease-filters": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" }, "files": [ "LICENSE-MIT", "dist" ], + "homepage": "https://github.com/cssnano/cssnano", "keywords": [ "css", "minify", @@ -20,27 +69,14 @@ "svgo" ], "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0", - "pleeease-filters": "^4.0.0" - }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "cssnano/cssnano", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" + "main": "dist/index.js", + "name": "postcss-svgo", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/ansi-styles/package.json index 65edb48c3..a4aa94816 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/postcss-unique-selectors/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/postcss-unique-selectors/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..607df37c1 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss-unique-selectors/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss-unique-selectors/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/package.json index bc324685a..a24d92780 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/postcss-unique-selectors/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/postcss-unique-selectors/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/postcss/package.json index ece04085e..272deefec 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/postcss-unique-selectors/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/postcss-unique-selectors" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/source-map/package.json index 24663417e..389e03730 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss-unique-selectors/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss-unique-selectors/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/supports-color/package.json index db4ded22b..c2e7c49a0 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/postcss-unique-selectors/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/postcss-unique-selectors/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/package.json index bdbcd3116..bdbf8cbbb 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-unique-selectors/package.json @@ -1,41 +1,77 @@ { - "name": "postcss-unique-selectors", - "version": "4.0.1", - "description": "Ensure CSS selectors are unique.", - "main": "dist/index.js", - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, - "files": [ - "LICENSE-MIT", - "dist" + "_args": [ + [ + "postcss-unique-selectors@4.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "css", - "postcss", - "postcss-plugin" + "_development": true, + "_from": "postcss-unique-selectors@4.0.1", + "_id": "postcss-unique-selectors@4.0.1", + "_inBundle": false, + "_integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "_location": "/postcss-unique-selectors", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-unique-selectors@4.0.1", + "name": "postcss-unique-selectors", + "escapedName": "postcss-unique-selectors", + "rawSpec": "4.0.1", + "saveSpec": null, + "fetchSpec": "4.0.1" + }, + "_requiredBy": [ + "/cssnano-preset-default" ], - "license": "MIT", - "homepage": "https://github.com/cssnano/cssnano", + "_resolved": "https://registry.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", + "_spec": "4.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Briggs", "email": "beneb.info@gmail.com", "url": "http://beneb.info" }, - "repository": "cssnano/cssnano", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" }, "dependencies": { "alphanum-sort": "^1.0.0", "postcss": "^7.0.0", "uniqs": "^2.0.0" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "description": "Ensure CSS selectors are unique.", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" }, "engines": { "node": ">=6.9.0" - } + }, + "files": [ + "LICENSE-MIT", + "dist" + ], + "homepage": "https://github.com/cssnano/cssnano", + "keywords": [ + "css", + "postcss", + "postcss-plugin" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-unique-selectors", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" + }, + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" + }, + "version": "4.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-url/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-url/package.json index 6456287ba..c8f03d9cc 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-url/package.json @@ -1,24 +1,39 @@ { - "name": "postcss-url", - "version": "7.3.2", - "description": "PostCSS plugin to rebase or inline on url().", - "keywords": [ - "css", - "postcss", - "postcss-plugin", - "url", - "rebase", - "inline", - "base64", - "assets" + "_args": [ + [ + "postcss-url@7.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Maxime Thirouin", - "license": "MIT", - "repository": "https://github.com/postcss/postcss-url.git", - "main": "src/index.js", - "files": [ - "src" + "_development": true, + "_from": "postcss-url@7.3.2", + "_id": "postcss-url@7.3.2", + "_inBundle": false, + "_integrity": "sha1-X+onOAf7hLOMRhw8mp6KvSNfcSA=", + "_location": "/postcss-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-url@7.3.2", + "name": "postcss-url", + "escapedName": "postcss-url", + "rawSpec": "7.3.2", + "saveSpec": null, + "fetchSpec": "7.3.2" + }, + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.npm.taobao.org/postcss-url/download/postcss-url-7.3.2.tgz?cache=0&sync_timestamp=1616158702494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-url%2Fdownload%2Fpostcss-url-7.3.2.tgz", + "_spec": "7.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Maxime Thirouin" + }, + "bugs": { + "url": "https://github.com/postcss/postcss-url/issues" + }, "dependencies": { "mime": "^1.4.1", "minimatch": "^3.0.4", @@ -26,6 +41,7 @@ "postcss": "^6.0.1", "xxhashjs": "^0.2.1" }, + "description": "PostCSS plugin to rebase or inline on url().", "devDependencies": { "chai": "^3.5.0", "eslint": "^3.16.1", @@ -33,10 +49,32 @@ "npmpub": "^3.0.1", "postcss-import": "^10.0.0" }, + "files": [ + "src" + ], + "homepage": "https://github.com/postcss/postcss-url#readme", + "keywords": [ + "css", + "postcss", + "postcss-plugin", + "url", + "rebase", + "inline", + "base64", + "assets" + ], + "license": "MIT", + "main": "src/index.js", + "name": "postcss-url", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-url.git" + }, "scripts": { "lint": "eslint --fix .", - "tests": "mocha", + "release": "npmpub", "test": "npm run lint && npm run tests", - "release": "npmpub" - } + "tests": "mocha" + }, + "version": "7.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss-value-parser/package.json b/admin/vue2/element-admin-v3/node_modules/postcss-value-parser/package.json index 14ae1dc7b..a89695eb1 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss-value-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss-value-parser/package.json @@ -1,11 +1,60 @@ { - "name": "postcss-value-parser", - "version": "3.3.1", - "description": "Transforms css values and at-rule params into the tree", - "main": "lib/index.js", - "files": [ - "lib" + "_args": [ + [ + "postcss-value-parser@3.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-value-parser@3.3.1", + "_id": "postcss-value-parser@3.3.1", + "_inBundle": false, + "_integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "_location": "/postcss-value-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-value-parser@3.3.1", + "name": "postcss-value-parser", + "escapedName": "postcss-value-parser", + "rawSpec": "3.3.1", + "saveSpec": null, + "fetchSpec": "3.3.1" + }, + "_requiredBy": [ + "/autoprefixer", + "/css-loader", + "/postcss-colormin", + "/postcss-convert-values", + "/postcss-import", + "/postcss-merge-longhand", + "/postcss-minify-font-values", + "/postcss-minify-gradients", + "/postcss-minify-params", + "/postcss-normalize-display-values", + "/postcss-normalize-positions", + "/postcss-normalize-repeat-style", + "/postcss-normalize-string", + "/postcss-normalize-timing-functions", + "/postcss-normalize-unicode", + "/postcss-normalize-url", + "/postcss-normalize-whitespace", + "/postcss-ordered-values", + "/postcss-reduce-transforms", + "/postcss-svgo" ], + "_resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "_spec": "3.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + "bugs": { + "url": "https://github.com/TrySound/postcss-value-parser/issues" + }, + "description": "Transforms css values and at-rule params into the tree", "devDependencies": { "eslint": "^5.6.1", "husky": "^1.0.0", @@ -14,13 +63,6 @@ "tap-spec": "^5.0.0", "tape": "^4.2.0" }, - "scripts": { - "lint:prettier": "prettier '**/*.js' --list-different", - "lint:js": "eslint . --cache", - "lint": "yarn lint:js && yarn lint:prettier", - "pretest": "yarn lint", - "test": "tape test/*.js | tap-spec" - }, "eslintConfig": { "env": { "es6": true, @@ -28,31 +70,40 @@ }, "extends": "eslint:recommended" }, - "lint-staged": { - "*.js": [ - "eslint", - "prettier --write", - "git add" - ] - }, + "files": [ + "lib" + ], + "homepage": "https://github.com/TrySound/postcss-value-parser", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "author": "Bogdan Chadkin ", - "license": "MIT", - "homepage": "https://github.com/TrySound/postcss-value-parser", - "repository": { - "type": "git", - "url": "https://github.com/TrySound/postcss-value-parser.git" - }, "keywords": [ "postcss", "value", "parser" ], - "bugs": { - "url": "https://github.com/TrySound/postcss-value-parser/issues" - } + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint", + "prettier --write", + "git add" + ] + }, + "main": "lib/index.js", + "name": "postcss-value-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/TrySound/postcss-value-parser.git" + }, + "scripts": { + "lint": "yarn lint:js && yarn lint:prettier", + "lint:js": "eslint . --cache", + "lint:prettier": "prettier '**/*.js' --list-different", + "pretest": "yarn lint", + "test": "tape test/*.js | tap-spec" + }, + "version": "3.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/source-map/package.json index 24663417e..7fe2a129b 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/postcss/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/supports-color/package.json index ad199f5cd..76e44c94a 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/postcss/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/postcss/package.json index 4e3dcb9f4..28e3589e2 100644 --- a/admin/vue2/element-admin-v3/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/postcss/package.json @@ -1,25 +1,84 @@ { - "name": "postcss", - "version": "6.0.23", - "description": "Tool for transforming styles with JS plugins", - "engines": { - "node": ">=4.0.0" + "_args": [ + [ + "postcss@6.0.23", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@6.0.23", + "_id": "postcss@6.0.23", + "_inBundle": false, + "_integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "_location": "/postcss", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@6.0.23", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "6.0.23", + "saveSpec": null, + "fetchSpec": "6.0.23" + }, + "_requiredBy": [ + "/autoprefixer", + "/css-loader", + "/icss-utils", + "/postcss-import", + "/postcss-loader", + "/postcss-modules-extract-imports", + "/postcss-modules-local-by-default", + "/postcss-modules-scope", + "/postcss-modules-values", + "/postcss-url" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz", + "_spec": "6.0.23", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "supports-color": false, + "chalk": false, + "fs": false + }, + "bugs": { + "url": "https://github.com/postcss/postcss/issues" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], - "author": "Andrey Sitnik ", - "license": "MIT", - "homepage": "https://postcss.org/", - "repository": "postcss/postcss", "dependencies": { "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.4.0" }, + "description": "Tool for transforming styles with JS plugins", + "engines": { + "node": ">=4.0.0" + }, + "homepage": "https://postcss.org/", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" + }, "types": "lib/postcss.d.ts", - "browser": { - "supports-color": false, - "chalk": false, - "fs": false - } -} \ No newline at end of file + "version": "6.0.23" +} diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype/package.json index eb62c2944..6a40f8c35 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype/package.json @@ -1,45 +1,81 @@ { + "_args": [ + [ + "domelementtype@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domelementtype@2.2.0", + "_id": "domelementtype@2.2.0", + "_inBundle": false, + "_integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", + "_location": "/posthtml-parser/dom-serializer/domelementtype", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domelementtype@2.2.0", "name": "domelementtype", - "version": "2.2.0", - "description": "all the types of nodes in htmlparser2's dom", - "author": "Felix Boehm ", - "license": "BSD-2-Clause", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "sideEffects": false, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/domelementtype.git" - }, - "keywords": [ - "dom", - "htmlparser2" - ], - "scripts": { - "test": "npm run lint && prettier --check **/*.{ts,json,md}", - "lint": "eslint src", - "format": "prettier --write **/*.{ts,json,md}", - "build": "tsc", - "prepare": "npm run build" - }, - "prettier": { - "tabWidth": 4 - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "eslint": "^7.9.0", - "eslint-config-prettier": "^6.0.0", - "prettier": "^2.1.1", - "typescript": "^4.0.2" + "escapedName": "domelementtype", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/posthtml-parser/dom-serializer" + ], + "_resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domelementtype/issues" + }, + "description": "all the types of nodes in htmlparser2's dom", + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "eslint": "^7.9.0", + "eslint-config-prettier": "^6.0.0", + "prettier": "^2.1.1", + "typescript": "^4.0.2" + }, + "files": [ + "lib/**/*" + ], + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ], + "homepage": "https://github.com/fb55/domelementtype#readme", + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "domelementtype", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/domelementtype.git" + }, + "scripts": { + "build": "tsc", + "format": "prettier --write **/*.{ts,json,md}", + "lint": "eslint src", + "prepare": "npm run build", + "test": "npm run lint && prettier --check **/*.{ts,json,md}" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities/package.json index cb9aedd11..e5730f872 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities/package.json @@ -1,64 +1,100 @@ { + "_args": [ + [ + "entities@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "entities@2.2.0", + "_id": "entities@2.2.0", + "_inBundle": false, + "_integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", + "_location": "/posthtml-parser/dom-serializer/entities", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "entities@2.2.0", "name": "entities", - "version": "2.2.0", - "description": "Encode & decode XML and HTML entities with ease", - "author": "Felix Boehm ", - "funding": "https://github.com/fb55/entities?sponsor=1", - "sideEffects": false, - "keywords": [ - "entity", - "decoding", - "encoding", - "html", - "xml", - "html entities" - ], - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^14.11.8", - "@typescript-eslint/eslint-plugin": "^4.4.1", - "@typescript-eslint/parser": "^4.4.1", - "coveralls": "*", - "eslint": "^7.11.0", - "eslint-config-prettier": "^7.0.0", - "eslint-plugin-node": "^11.1.0", - "jest": "^26.5.3", - "prettier": "^2.0.5", - "ts-jest": "^26.1.0", - "typescript": "^4.0.2" - }, - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint .", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc && cp -r src/maps lib", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/entities.git" - }, - "license": "BSD-2-Clause", - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4, - "proseWrap": "always" - } + "escapedName": "entities", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/posthtml-parser/dom-serializer" + ], + "_resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/entities/issues" + }, + "description": "Encode & decode XML and HTML entities with ease", + "devDependencies": { + "@types/jest": "^26.0.0", + "@types/node": "^14.11.8", + "@typescript-eslint/eslint-plugin": "^4.4.1", + "@typescript-eslint/parser": "^4.4.1", + "coveralls": "*", + "eslint": "^7.11.0", + "eslint-config-prettier": "^7.0.0", + "eslint-plugin-node": "^11.1.0", + "jest": "^26.5.3", + "prettier": "^2.0.5", + "ts-jest": "^26.1.0", + "typescript": "^4.0.2" + }, + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*" + ], + "funding": "https://github.com/fb55/entities?sponsor=1", + "homepage": "https://github.com/fb55/entities#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "keywords": [ + "entity", + "decoding", + "encoding", + "html", + "xml", + "html entities" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "entities", + "prettier": { + "tabWidth": 4, + "proseWrap": "always" + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/entities.git" + }, + "scripts": { + "build": "tsc && cp -r src/maps lib", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint .", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "test": "jest --coverage && npm run lint" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/package.json index 0ee1437f4..5daf6c9d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/dom-serializer/package.json @@ -1,27 +1,45 @@ { - "name": "dom-serializer", - "version": "0.2.2", - "description": "render dom nodes to string", - "author": "Felix Boehm ", - "keywords": [ - "html", - "xml", - "render" + "_args": [ + [ + "dom-serializer@0.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/cheeriojs/dom-renderer.git" + "_development": true, + "_from": "dom-serializer@0.2.2", + "_id": "dom-serializer@0.2.2", + "_inBundle": false, + "_integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "_location": "/posthtml-parser/dom-serializer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dom-serializer@0.2.2", + "name": "dom-serializer", + "escapedName": "dom-serializer", + "rawSpec": "0.2.2", + "saveSpec": null, + "fetchSpec": "0.2.2" }, - "main": "./index.js", - "files": [ - "index.js", - "index.d.ts", - "foreignNames.json" + "_requiredBy": [ + "/posthtml-parser/domutils" ], + "_resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "_spec": "0.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/cheeriojs/dom-renderer/issues" + }, "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" }, + "description": "render dom nodes to string", "devDependencies": { "cheerio": "^1.0.0-rc.2", "expect.js": "~0.3.1", @@ -30,11 +48,29 @@ "mocha": "^6.2.0", "xyz": "^3.0.0" }, - "scripts": { - "test": "mocha test.js" - }, + "files": [ + "index.js", + "index.d.ts", + "foreignNames.json" + ], + "homepage": "https://github.com/cheeriojs/dom-renderer#readme", + "keywords": [ + "html", + "xml", + "render" + ], + "license": "MIT", + "main": "./index.js", + "name": "dom-serializer", "prettier": { "singleQuote": true }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/cheeriojs/dom-renderer.git" + }, + "scripts": { + "test": "mocha test.js" + }, + "version": "0.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domelementtype/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domelementtype/package.json index 21f3c2336..f2dcd5600 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domelementtype/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domelementtype/package.json @@ -1,16 +1,54 @@ { - "name": "domelementtype", - "version": "1.3.1", + "_args": [ + [ + "domelementtype@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domelementtype@1.3.1", + "_id": "domelementtype@1.3.1", + "_inBundle": false, + "_integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "_location": "/posthtml-parser/domelementtype", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domelementtype@1.3.1", + "name": "domelementtype", + "escapedName": "domelementtype", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" + }, + "_requiredBy": [ + "/posthtml-parser/domhandler", + "/posthtml-parser/domutils", + "/posthtml-parser/htmlparser2" + ], + "_resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domelementtype/issues" + }, "description": "all the types of nodes in htmlparser2's dom", + "homepage": "https://github.com/fb55/domelementtype#readme", + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", "main": "index.js", + "name": "domelementtype", "repository": { "type": "git", "url": "git://github.com/fb55/domelementtype.git" }, - "keywords": [ - "dom", - "htmlparser2" - ], - "author": "Felix Boehm ", - "license": "BSD-2-Clause" + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domhandler/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domhandler/package.json index 55aab999a..41861fae6 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domhandler/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domhandler/package.json @@ -1,32 +1,53 @@ { - "name": "domhandler", - "version": "2.4.2", - "description": "handler for htmlparser2 that turns pages into a dom", - "main": "index.js", - "directories": { - "test": "tests" + "_args": [ + [ + "domhandler@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domhandler@2.4.2", + "_id": "domhandler@2.4.2", + "_inBundle": false, + "_integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "_location": "/posthtml-parser/domhandler", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domhandler@2.4.2", + "name": "domhandler", + "escapedName": "domhandler", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" }, - "scripts": { - "test": "mocha -R list && jshint index.js test/" + "_requiredBy": [ + "/posthtml-parser/htmlparser2" + ], + "_resolved": "https://registry.nlark.com/domhandler/download/domhandler-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/DomHandler.git" + "bugs": { + "url": "https://github.com/fb55/DomHandler/issues" }, - "keywords": [ - "dom", - "htmlparser2" - ], "dependencies": { "domelementtype": "1" }, + "description": "handler for htmlparser2 that turns pages into a dom", "devDependencies": { "htmlparser2": "^3.9.0", - "mocha": "^3.0.2", - "jshint": "^2.9.1" + "jshint": "^2.9.1", + "mocha": "^3.0.2" }, - "author": "Felix Boehm ", - "license": "BSD-2-Clause", + "directories": { + "test": "tests" + }, + "homepage": "https://github.com/fb55/DomHandler#readme", "jshintConfig": { "quotmark": "double", "trailing": true, @@ -37,5 +58,20 @@ "globals": { "it": true } - } + }, + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "index.js", + "name": "domhandler", + "repository": { + "type": "git", + "url": "git://github.com/fb55/DomHandler.git" + }, + "scripts": { + "test": "mocha -R list && jshint index.js test/" + }, + "version": "2.4.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domutils/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domutils/package.json index 0267af910..a77d84b5b 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domutils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/domutils/package.json @@ -1,34 +1,55 @@ { - "name": "domutils", - "version": "1.7.0", - "description": "utilities for working with htmlparser2's dom", - "main": "index.js", - "directories": { - "test": "tests" + "_args": [ + [ + "domutils@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domutils@1.7.0", + "_id": "domutils@1.7.0", + "_inBundle": false, + "_integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "_location": "/posthtml-parser/domutils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domutils@1.7.0", + "name": "domutils", + "escapedName": "domutils", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" }, - "scripts": { - "test": "mocha test/tests/**.js && jshint index.js test/**/*.js lib/*.js" + "_requiredBy": [ + "/posthtml-parser/htmlparser2" + ], + "_resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" }, - "repository": { - "type": "git", - "url": "git://github.com/FB55/domutils.git" + "bugs": { + "url": "https://github.com/FB55/domutils/issues" }, - "keywords": [ - "dom", - "htmlparser2" - ], "dependencies": { "dom-serializer": "0", "domelementtype": "1" }, + "description": "utilities for working with htmlparser2's dom", "devDependencies": { - "htmlparser2": "~3.9.2", "domhandler": "2", + "htmlparser2": "~3.9.2", "jshint": "~2.9.4", "mocha": "~3.2.0" }, - "author": "Felix Boehm ", - "license": "BSD-2-Clause", + "directories": { + "test": "tests" + }, + "homepage": "https://github.com/FB55/domutils#readme", "jshintConfig": { "proto": true, "unused": true, @@ -43,5 +64,20 @@ "it": true, "beforeEach": true } - } + }, + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "index.js", + "name": "domutils", + "repository": { + "type": "git", + "url": "git://github.com/FB55/domutils.git" + }, + "scripts": { + "test": "mocha test/tests/**.js && jshint index.js test/**/*.js lib/*.js" + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/entities/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/entities/package.json index 6a1729678..258e1cbcf 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/entities/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/entities/package.json @@ -1,37 +1,52 @@ { - "name": "entities", - "version": "1.1.2", - "description": "Encode & decode XML/HTML entities with ease", - "author": "Felix Boehm ", - "keywords": [ - "html", - "xml", - "entity", - "decoding", - "encoding" + "_args": [ + [ + "entities@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "./index.js", - "directories": { - "test": "test" + "_development": true, + "_from": "entities@1.1.2", + "_id": "entities@1.1.2", + "_inBundle": false, + "_integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "_location": "/posthtml-parser/entities", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "entities@1.1.2", + "name": "entities", + "escapedName": "entities", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" }, + "_requiredBy": [ + "/posthtml-parser/htmlparser2" + ], + "_resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/entities/issues" + }, + "description": "Encode & decode XML/HTML entities with ease", "devDependencies": { - "mocha": "^5.0.1", - "mocha-lcov-reporter": "*", "coveralls": "*", "istanbul": "*", - "jshint": "2" - }, - "scripts": { - "test": "mocha && npm run lint", - "lint": "jshint index.js lib/*.js test/*.js", - "lcov": "istanbul cover _mocha --report lcovonly -- -R spec", - "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)" + "jshint": "2", + "mocha": "^5.0.1", + "mocha-lcov-reporter": "*" }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/entities.git" + "directories": { + "test": "test" }, - "license": "BSD-2-Clause", + "homepage": "https://github.com/fb55/entities#readme", "jshintConfig": { "eqeqeq": true, "freeze": true, @@ -51,7 +66,28 @@ "it": true } }, + "keywords": [ + "html", + "xml", + "entity", + "decoding", + "encoding" + ], + "license": "BSD-2-Clause", + "main": "./index.js", + "name": "entities", "prettier": { "tabWidth": 4 - } + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/entities.git" + }, + "scripts": { + "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)", + "lcov": "istanbul cover _mocha --report lcovonly -- -R spec", + "lint": "jshint index.js lib/*.js test/*.js", + "test": "mocha && npm run lint" + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/htmlparser2/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/htmlparser2/package.json index 4ac66d05b..e39f24900 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/htmlparser2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/htmlparser2/package.json @@ -1,59 +1,91 @@ { + "_args": [ + [ + "htmlparser2@3.10.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "htmlparser2@3.10.1", + "_id": "htmlparser2@3.10.1", + "_inBundle": false, + "_integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "_location": "/posthtml-parser/htmlparser2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "htmlparser2@3.10.1", "name": "htmlparser2", - "description": "Fast & forgiving HTML/XML/RSS parser", - "version": "3.10.1", - "author": "Felix Boehm ", - "keywords": [ - "html", - "parser", - "streams", - "xml", - "dom", - "rss", - "feed", - "atom" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/htmlparser2.git" - }, - "bugs": { - "mail": "me@feedic.com", - "url": "http://github.com/fb55/htmlparser2/issues" - }, - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "files": [ - "lib" - ], - "scripts": { - "lcov": "istanbul cover _mocha --report lcovonly -- -R spec", - "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)", - "test": "mocha && npm run lint", - "lint": "eslint lib test" - }, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "devDependencies": { - "coveralls": "^3.0.1", - "eslint": "^5.13.0", - "istanbul": "^0.4.3", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0" - }, - "browser": { - "readable-stream": false - }, - "license": "MIT", - "prettier": { - "tabWidth": 4 - } + "escapedName": "htmlparser2", + "rawSpec": "3.10.1", + "saveSpec": null, + "fetchSpec": "3.10.1" + }, + "_requiredBy": [ + "/posthtml-parser" + ], + "_resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1617914940336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", + "_spec": "3.10.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "browser": { + "readable-stream": false + }, + "bugs": { + "url": "http://github.com/fb55/htmlparser2/issues" + }, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "description": "Fast & forgiving HTML/XML/RSS parser", + "devDependencies": { + "coveralls": "^3.0.1", + "eslint": "^5.13.0", + "istanbul": "^0.4.3", + "mocha": "^5.2.0", + "mocha-lcov-reporter": "^1.2.0" + }, + "directories": { + "lib": "lib/" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/fb55/htmlparser2#readme", + "keywords": [ + "html", + "parser", + "streams", + "xml", + "dom", + "rss", + "feed", + "atom" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "htmlparser2", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/htmlparser2.git" + }, + "scripts": { + "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)", + "lcov": "istanbul cover _mocha --report lcovonly -- -R spec", + "lint": "eslint lib test", + "test": "mocha && npm run lint" + }, + "version": "3.10.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/isobject/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/isobject/package.json index 954f4113f..6a5803b80 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/isobject/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/isobject/package.json @@ -1,31 +1,55 @@ { - "name": "isobject", - "description": "Returns true if the value is an object and not an array or null.", - "version": "2.1.0", - "homepage": "https://github.com/jonschlinkert/isobject", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/isobject", - "bugs": { - "url": "https://github.com/jonschlinkert/isobject/issues" + "_args": [ + [ + "isobject@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "isobject@2.1.0", + "_id": "isobject@2.1.0", + "_inBundle": false, + "_integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "_location": "/posthtml-parser/isobject", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isobject@2.1.0", + "name": "isobject", + "escapedName": "isobject", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/posthtml-parser" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/isobject/issues" }, "dependencies": { "isarray": "1.0.0" }, + "description": "Returns true if the value is an object and not an array or null.", "devDependencies": { "gulp-format-md": "^0.1.9", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/isobject", "keywords": [ "check", "is", @@ -40,6 +64,16 @@ "typeof", "value" ], + "license": "MIT", + "main": "index.js", + "name": "isobject", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/isobject.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -63,5 +97,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/readable-stream/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/readable-stream/package.json index 0b0c4bd20..98de842fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/readable-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/readable-stream/package.json @@ -1,16 +1,50 @@ { - "name": "readable-stream", - "version": "3.6.0", - "description": "Streams3, a user-land copy of the stream library from Node.js", - "main": "readable.js", - "engines": { - "node": ">= 6" + "_args": [ + [ + "readable-stream@3.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "readable-stream@3.6.0", + "_id": "readable-stream@3.6.0", + "_inBundle": false, + "_integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "_location": "/posthtml-parser/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@3.6.0", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "3.6.0", + "saveSpec": null, + "fetchSpec": "3.6.0" + }, + "_requiredBy": [ + "/posthtml-parser/htmlparser2" + ], + "_resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "_spec": "3.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "util": false, + "worker_threads": false, + "./errors": "./errors-browser.js", + "./readable.js": "./readable-browser.js", + "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" }, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from Node.js", "devDependencies": { "@babel/cli": "^7.2.0", "@babel/core": "^7.2.0", @@ -33,36 +67,35 @@ "tar-fs": "^1.16.2", "util-promisify": "^2.1.0" }, - "scripts": { - "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", - "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", - "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", - "test-browser-local": "airtap --open --local -- test/browser.js", - "cover": "nyc npm test", - "report": "nyc report --reporter=lcov", - "update-browser-errors": "babel -o errors-browser.js errors.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream" + "engines": { + "node": ">= 6" }, + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ "readable", "stream", "pipe" ], - "browser": { - "util": false, - "worker_threads": false, - "./errors": "./errors-browser.js", - "./readable.js": "./readable-browser.js", - "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", - "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" - }, + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", "nyc": { "include": [ "lib/**.js" ] }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", + "test-browser-local": "airtap --open --local -- test/browser.js", + "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", + "update-browser-errors": "babel -o errors-browser.js errors.js" + }, + "version": "3.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/safe-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/safe-buffer/package.json index f2869e256..09ef24563 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/safe-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/safe-buffer/package.json @@ -1,7 +1,33 @@ { - "name": "safe-buffer", - "description": "Safer Node.js Buffer API", - "version": "5.2.1", + "_args": [ + [ + "safe-buffer@5.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "safe-buffer@5.2.1", + "_id": "safe-buffer@5.2.1", + "_inBundle": false, + "_integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "_location": "/posthtml-parser/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.2.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" + }, + "_requiredBy": [ + "/posthtml-parser/string_decoder" + ], + "_resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "_spec": "5.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -10,10 +36,25 @@ "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, + "description": "Safer Node.js Buffer API", "devDependencies": { "standard": "*", "tape": "^5.0.0" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "homepage": "https://github.com/feross/safe-buffer", "keywords": [ "buffer", @@ -26,7 +67,7 @@ ], "license": "MIT", "main": "index.js", - "types": "index.d.ts", + "name": "safe-buffer", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" @@ -34,18 +75,6 @@ "scripts": { "test": "standard && tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "types": "index.d.ts", + "version": "5.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/string_decoder/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/string_decoder/package.json index b2bb14116..95f863b9f 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/string_decoder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/node_modules/string_decoder/package.json @@ -1,28 +1,49 @@ { - "name": "string_decoder", - "version": "1.3.0", - "description": "The string_decoder module from Node core", - "main": "lib/string_decoder.js", - "files": [ - "lib" + "_args": [ + [ + "string_decoder@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string_decoder@1.3.0", + "_id": "string_decoder@1.3.0", + "_inBundle": false, + "_integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "_location": "/posthtml-parser/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string_decoder@1.3.0", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/posthtml-parser/readable-stream" ], + "_resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, "dependencies": { "safe-buffer": "~5.2.0" }, + "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "core-util-is": "^1.0.2", "inherits": "^2.0.3", "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/parallel/*.js && node test/verify-dependencies", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/string_decoder.git" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/nodejs/string_decoder", "keywords": [ "string", @@ -30,5 +51,16 @@ "browser", "browserify" ], - "license": "MIT" + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/package.json index fac3e9111..80f152fe8 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-parser/package.json @@ -1,33 +1,50 @@ { - "name": "posthtml-parser", - "version": "0.2.1", - "description": "Parse HTML/XML to PostHTMLTree", - "keywords": [ - "html", - "xml", - "parser", - "posthtml", - "posthtmltree" + "_args": [ + [ + "posthtml-parser@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "index.js", - "scripts": { - "test": "npm run lint && npm run coverage", - "lint": "jshint . && jscs -v .", - "coverage": "istanbul cover --report text --report html --report lcov node_modules/mocha/bin/_mocha", - "preversion": "npm test", - "postversion": "git push && git push --tags && rm -rf coverage" + "_development": true, + "_from": "posthtml-parser@0.2.1", + "_id": "posthtml-parser@0.2.1", + "_inBundle": false, + "_integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", + "_location": "/posthtml-parser", + "_phantomChildren": { + "inherits": "2.0.4", + "isarray": "1.0.0", + "util-deprecate": "1.0.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "posthtml-parser@0.2.1", + "name": "posthtml-parser", + "escapedName": "posthtml-parser", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" + }, + "_requiredBy": [ + "/posthtml", + "/posthtml-svg-mode" + ], + "_resolved": "https://registry.nlark.com/posthtml-parser/download/posthtml-parser-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ivan Voischev", + "email": "voischev.ivan@ya.ru" }, - "repository": "posthtml/posthtml-parser", - "author": "Ivan Voischev ", - "license": "MIT", "bugs": { "url": "https://github.com/posthtml/posthtml-parser/issues" }, - "homepage": "https://github.com/posthtml/posthtml-parser#readme", "dependencies": { "htmlparser2": "^3.8.3", "isobject": "^2.1.0" }, + "description": "Parse HTML/XML to PostHTMLTree", "devDependencies": { "chai": "^3.3.0", "istanbul": "^0.4.0", @@ -37,5 +54,28 @@ "rewire": "^2.5.2", "sinon": "^1.17.4", "sinon-chai": "^2.8.0" - } + }, + "homepage": "https://github.com/posthtml/posthtml-parser#readme", + "keywords": [ + "html", + "xml", + "parser", + "posthtml", + "posthtmltree" + ], + "license": "MIT", + "main": "index.js", + "name": "posthtml-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/posthtml/posthtml-parser.git" + }, + "scripts": { + "coverage": "istanbul cover --report text --report html --report lcov node_modules/mocha/bin/_mocha", + "lint": "jshint . && jscs -v .", + "postversion": "git push && git push --tags && rm -rf coverage", + "preversion": "npm test", + "test": "npm run lint && npm run coverage" + }, + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-rename-id/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-rename-id/package.json index 93a9da1dd..ffdec534e 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-rename-id/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-rename-id/package.json @@ -1,20 +1,57 @@ { - "name": "posthtml-rename-id", - "version": "1.0.12", + "_args": [ + [ + "posthtml-rename-id@1.0.12", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "posthtml-rename-id@1.0.12", + "_id": "posthtml-rename-id@1.0.12", + "_inBundle": false, + "_integrity": "sha1-z39us3FGvxr6wx5o8YxswZrmFDM=", + "_location": "/posthtml-rename-id", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "posthtml-rename-id@1.0.12", + "name": "posthtml-rename-id", + "escapedName": "posthtml-rename-id", + "rawSpec": "1.0.12", + "saveSpec": null, + "fetchSpec": "1.0.12" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/posthtml-rename-id/download/posthtml-rename-id-1.0.12.tgz", + "_spec": "1.0.12", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "JetBrains" + }, + "bugs": { + "url": "https://github.com/JetBrains/svg-mixer/issues" + }, + "dependencies": { + "escape-string-regexp": "1.0.5" + }, "description": "PostHTML plugin to rename id attributes and it's references", + "files": [ + "index.js" + ], + "gitHead": "eb37ef4bcbf7a24173b76319cfa2f299b60ae6dd", + "homepage": "https://github.com/JetBrains/svg-mixer/tree/master/packages/posthtml-rename-id", "keywords": [ "posthtml", "posthtml plugin" ], "license": "MIT", - "author": "JetBrains", - "homepage": "https://github.com/JetBrains/svg-mixer/tree/master/packages/posthtml-rename-id", - "repository": "https://github.com/JetBrains/svg-mixer", - "files": [ - "index.js" - ], - "dependencies": { - "escape-string-regexp": "1.0.5" + "name": "posthtml-rename-id", + "repository": { + "type": "git", + "url": "git+https://github.com/JetBrains/svg-mixer.git" }, - "gitHead": "eb37ef4bcbf7a24173b76319cfa2f299b60ae6dd" + "version": "1.0.12" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-render/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-render/package.json index 736b9cc1b..072a42e01 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-render/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-render/package.json @@ -1,29 +1,42 @@ { - "name": "posthtml-render", - "version": "1.4.0", - "description": "Renders PostHTML Tree to HTML/XML", - "license": "MIT", - "repository": "posthtml/posthtml-render", - "author": "Ivan Voischev ", - "main": "lib/index.js", - "engines": { - "node": ">=10" - }, - "scripts": { - "version": "conventional-changelog -i changelog.md -s -r 0 && git add changelog.md", - "test": "c8 mocha", - "docs": "jsdoc2md lib/*.js > render.md", - "pretest": "clinton" - }, - "files": [ - "lib" + "_args": [ + [ + "posthtml-render@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "posthtml", - "render", - "html", - "xml" + "_development": true, + "_from": "posthtml-render@1.4.0", + "_id": "posthtml-render@1.4.0", + "_inBundle": false, + "_integrity": "sha1-QBFAcMRYgcrLkzR9rj7/U6+8/xM=", + "_location": "/posthtml-render", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "posthtml-render@1.4.0", + "name": "posthtml-render", + "escapedName": "posthtml-render", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/posthtml", + "/posthtml-svg-mode" ], + "_resolved": "https://registry.nlark.com/posthtml-render/download/posthtml-render-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ivan Voischev", + "email": "voischev.ivan@ya.ru" + }, + "bugs": { + "url": "https://github.com/posthtml/posthtml-render/issues" + }, + "description": "Renders PostHTML Tree to HTML/XML", "devDependencies": { "@commitlint/cli": "^11.0.0", "@commitlint/config-angular": "^11.0.0", @@ -37,5 +50,32 @@ "mocha": "^8.2.1", "xo": "^0.34.2" }, - "types": "lib/index.d.ts" + "engines": { + "node": ">=10" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/posthtml/posthtml-render#readme", + "keywords": [ + "posthtml", + "render", + "html", + "xml" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "posthtml-render", + "repository": { + "type": "git", + "url": "git+https://github.com/posthtml/posthtml-render.git" + }, + "scripts": { + "docs": "jsdoc2md lib/*.js > render.md", + "pretest": "clinton", + "test": "c8 mocha", + "version": "conventional-changelog -i changelog.md -s -r 0 && git add changelog.md" + }, + "types": "lib/index.d.ts", + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml-svg-mode/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml-svg-mode/package.json index fb6450a58..b153cc531 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml-svg-mode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml-svg-mode/package.json @@ -1,23 +1,57 @@ { - "name": "posthtml-svg-mode", - "version": "1.0.3", - "description": "", - "license": "MIT", - "author": "JetBrains", - "repository": "https://github.com/JetBrains/svg-mixer/tree/v1/posthtml-svg-mode", - "main": "lib/processor.js", - "files": [ - "lib/", - "README.md" + "_args": [ + [ + "posthtml-svg-mode@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "posthtml-svg-mode@1.0.3", + "_id": "posthtml-svg-mode@1.0.3", + "_inBundle": false, + "_integrity": "sha1-q9VU+s6BIjyrDLNn4Y5O/SpOdLA=", + "_location": "/posthtml-svg-mode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "posthtml-svg-mode@1.0.3", + "name": "posthtml-svg-mode", + "escapedName": "posthtml-svg-mode", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/posthtml-svg-mode/download/posthtml-svg-mode-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "JetBrains" + }, "dependencies": { "merge-options": "1.0.1", "posthtml": "^0.9.2", "posthtml-parser": "^0.2.1", "posthtml-render": "^1.0.6" }, + "description": "", + "files": [ + "lib/", + "README.md" + ], + "license": "MIT", + "main": "lib/processor.js", + "name": "posthtml-svg-mode", + "repository": { + "type": "git", + "url": "https://github.com/JetBrains/svg-mixer/tree/v1/posthtml-svg-mode" + }, "scripts": { "lint": "eslint lib test", "test": "nyc --reporter=lcov mocha -r ../../test/mocha-setup.js" - } + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/posthtml/package.json b/admin/vue2/element-admin-v3/node_modules/posthtml/package.json index 0f9220ba6..66770ada4 100644 --- a/admin/vue2/element-admin-v3/node_modules/posthtml/package.json +++ b/admin/vue2/element-admin-v3/node_modules/posthtml/package.json @@ -1,26 +1,59 @@ { - "name": "posthtml", - "version": "0.9.2", - "description": "HTML/XML processor", - "keywords": [ - "html", - "xml", - "postproccessor", - "parser", - "transform", - "transformations", - "manipulation", - "preprocessor", - "processor" + "_args": [ + [ + "posthtml@0.9.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "main": "lib", - "engines": { - "node": ">=0.10.0" + "_development": true, + "_from": "posthtml@0.9.2", + "_id": "posthtml@0.9.2", + "_inBundle": false, + "_integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", + "_location": "/posthtml", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "posthtml@0.9.2", + "name": "posthtml", + "escapedName": "posthtml", + "rawSpec": "0.9.2", + "saveSpec": null, + "fetchSpec": "0.9.2" + }, + "_requiredBy": [ + "/posthtml-svg-mode" + ], + "_resolved": "https://registry.nlark.com/posthtml/download/posthtml-0.9.2.tgz?cache=0&sync_timestamp=1623143664789&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fposthtml%2Fdownload%2Fposthtml-0.9.2.tgz", + "_spec": "0.9.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Anton Winogradov", + "email": "winogradovaa@gmail.com" }, + "bugs": { + "url": "https://github.com/posthtml/posthtml/issues" + }, + "contributors": [ + { + "name": "Ivan Voischev", + "email": "voischev.ivan@ya.ru" + }, + { + "name": "Anton Winogradov", + "email": "winogradovaa@gmail.com" + }, + { + "name": "Alexej Yaroshevich", + "email": "zxqfox@gmail.com" + } + ], "dependencies": { "posthtml-parser": "^0.2.0", "posthtml-render": "^1.0.5" }, + "description": "HTML/XML processor", "devDependencies": { "chai": "^3.0.0", "chai-as-promised": "^6.0.0", @@ -34,39 +67,38 @@ "object.assign": "^4.0.3", "standard": "^8.3.0" }, - "scripts": { - "lint": "standard", - "test": "npm run lint && mocha -R dot && npm run cover", - "clean": "rm -rf coverage jsdoc-api", - "cover": "istanbul cover --report text --report html --report lcov node_modules/mocha/bin/_mocha -- -R tap", - "docs:api": "jsdoc2md lib/api.js > docs/api.md", - "docs:core": "jsdoc2md lib/index.js > docs/core.md", - "release:patch": "mversion patch", - "release:minor": "mversion minor", - "release:major": "mversion major" + "engines": { + "node": ">=0.10.0" }, - "author": "Anton Winogradov ", - "contributors": [ - { - "name": "Ivan Voischev", - "email": "voischev.ivan@ya.ru" - }, - { - "name": "Anton Winogradov", - "email": "winogradovaa@gmail.com" - }, - { - "name": "Alexej Yaroshevich", - "email": "zxqfox@gmail.com" - } - ], "homepage": "https://github.com/posthtml/posthtml", + "keywords": [ + "html", + "xml", + "postproccessor", + "parser", + "transform", + "transformations", + "manipulation", + "preprocessor", + "processor" + ], + "license": "MIT", + "main": "lib", + "name": "posthtml", "repository": { "type": "git", "url": "git://github.com/posthtml/posthtml.git" }, - "bugs": { - "url": "https://github.com/posthtml/posthtml/issues" + "scripts": { + "clean": "rm -rf coverage jsdoc-api", + "cover": "istanbul cover --report text --report html --report lcov node_modules/mocha/bin/_mocha -- -R tap", + "docs:api": "jsdoc2md lib/api.js > docs/api.md", + "docs:core": "jsdoc2md lib/index.js > docs/core.md", + "lint": "standard", + "release:major": "mversion major", + "release:minor": "mversion minor", + "release:patch": "mversion patch", + "test": "npm run lint && mocha -R dot && npm run cover" }, - "license": "MIT" + "version": "0.9.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/prelude-ls/package.json b/admin/vue2/element-admin-v3/node_modules/prelude-ls/package.json index 5507d3c7a..3f2d03360 100644 --- a/admin/vue2/element-admin-v3/node_modules/prelude-ls/package.json +++ b/admin/vue2/element-admin-v3/node_modules/prelude-ls/package.json @@ -1,8 +1,60 @@ { - "name": "prelude-ls", - "version": "1.1.2", - "author": "George Zahariev ", + "_args": [ + [ + "prelude-ls@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "prelude-ls@1.1.2", + "_id": "prelude-ls@1.1.2", + "_inBundle": false, + "_integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "_location": "/prelude-ls", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "prelude-ls@1.1.2", + "name": "prelude-ls", + "escapedName": "prelude-ls", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/levn", + "/optionator", + "/type-check" + ], + "_resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz?cache=0&sync_timestamp=1585868608597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "George Zahariev", + "email": "z@georgezahariev.com" + }, + "bugs": { + "url": "https://github.com/gkz/prelude-ls/issues" + }, "description": "prelude.ls is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, LiveScript.", + "devDependencies": { + "browserify": "~3.24.13", + "istanbul": "~0.2.4", + "livescript": "~1.4.0", + "mocha": "~2.2.4", + "sinon": "~1.10.2", + "uglify-js": "~2.4.12" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "lib/", + "README.md", + "LICENSE" + ], + "homepage": "http://preludels.com", "keywords": [ "prelude", "livescript", @@ -17,23 +69,14 @@ "object", "string" ], - "main": "lib/", - "files": [ - "lib/", - "README.md", - "LICENSE" - ], - "homepage": "http://preludels.com", - "bugs": "https://github.com/gkz/prelude-ls/issues", "licenses": [ { "type": "MIT", "url": "https://raw.github.com/gkz/prelude-ls/master/LICENSE" } ], - "engines": { - "node": ">= 0.8.0" - }, + "main": "lib/", + "name": "prelude-ls", "repository": { "type": "git", "url": "git://github.com/gkz/prelude-ls.git" @@ -41,12 +84,5 @@ "scripts": { "test": "make test" }, - "devDependencies": { - "livescript": "~1.4.0", - "uglify-js": "~2.4.12", - "mocha": "~2.2.4", - "istanbul": "~0.2.4", - "browserify": "~3.24.13", - "sinon": "~1.10.2" - } + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/prettier/package.json b/admin/vue2/element-admin-v3/node_modules/prettier/package.json index 6dc419d55..6f631072f 100644 --- a/admin/vue2/element-admin-v3/node_modules/prettier/package.json +++ b/admin/vue2/element-admin-v3/node_modules/prettier/package.json @@ -1,15 +1,56 @@ { - "name": "prettier", - "version": "1.16.3", + "_args": [ + [ + "prettier@1.16.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "prettier@1.16.3", + "_id": "prettier@1.16.3", + "_inBundle": false, + "_integrity": "sha1-jGIWhFO63vcC80tFtu6JlXSmpl0=", + "_location": "/prettier", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "prettier@1.16.3", + "name": "prettier", + "escapedName": "prettier", + "rawSpec": "1.16.3", + "saveSpec": null, + "fetchSpec": "1.16.3" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils" + ], + "_resolved": "https://registry.nlark.com/prettier/download/prettier-1.16.3.tgz?cache=0&sync_timestamp=1622888668729&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.16.3.tgz", + "_spec": "1.16.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Long" + }, + "bin": { + "prettier": "bin-prettier.js" + }, + "bugs": { + "url": "https://github.com/prettier/prettier/issues" + }, "description": "Prettier is an opinionated code formatter", - "bin": "./bin-prettier.js", - "repository": "prettier/prettier", + "engines": { + "node": ">=4" + }, + "files": [ + "*.js" + ], "homepage": "https://prettier.io", - "author": "James Long", "license": "MIT", "main": "./index.js", - "engines": { - "node": ">=4" + "name": "prettier", + "repository": { + "type": "git", + "url": "git+https://github.com/prettier/prettier.git" }, "resolutions": { "@babel/code-frame": "7.0.0-beta.46" @@ -17,7 +58,5 @@ "scripts": { "prepublishOnly": "node -e \"assert.equal(require('.').version, require('..').version)\"" }, - "files": [ - "*.js" - ] -} \ No newline at end of file + "version": "1.16.3" +} diff --git a/admin/vue2/element-admin-v3/node_modules/pretty-error/package.json b/admin/vue2/element-admin-v3/node_modules/pretty-error/package.json index 2d448b5b2..48d02c101 100644 --- a/admin/vue2/element-admin-v3/node_modules/pretty-error/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pretty-error/package.json @@ -1,37 +1,51 @@ { - "name": "pretty-error", - "version": "2.1.2", - "description": "See nodejs errors with less clutter", - "main": "./lib/PrettyError.js", - "typings": "index.d.ts", - "scripts": { - "test": "mocha \"test/**/*.coffee\"", - "test:watch": "mocha \"test/**/*.coffee\" --watch", - "compile": "coffee --bare --compile --output ./lib ./src", - "compile:watch": "jitter src lib -b", - "watch": "npm run compile:watch & npm run test:watch", - "winwatch": "start/b npm run compile:watch & npm run test:watch", - "prepublish": "npm run compile" + "_args": [ + [ + "pretty-error@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pretty-error@2.1.2", + "_id": "pretty-error@2.1.2", + "_inBundle": false, + "_integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", + "_location": "/pretty-error", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pretty-error@2.1.2", + "name": "pretty-error", + "escapedName": "pretty-error", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/html-webpack-plugin" + ], + "_resolved": "https://registry.nlark.com/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1623178829041&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aria Minaei" + }, + "bugs": { + "url": "https://github.com/AriaMinaei/pretty-error/issues" }, "dependencies": { "lodash": "^4.17.20", "renderkid": "^2.0.4" }, + "description": "See nodejs errors with less clutter", "devDependencies": { - "coffee-script": "~1.8.0", "chai": "~1.9.2", - "mocha": "~2.0.1", - "jitter": "^1.3.0" - }, - "author": "Aria Minaei", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/AriaMinaei/pretty-error.git" - }, - "bugs": { - "url": "https://github.com/AriaMinaei/pretty-error/issues" + "coffee-script": "~1.8.0", + "jitter": "^1.3.0", + "mocha": "~2.0.1" }, + "homepage": "https://github.com/AriaMinaei/pretty-error#readme", "keywords": [ "pretty", "error", @@ -43,5 +57,23 @@ "prettify", "format", "human" - ] + ], + "license": "MIT", + "main": "./lib/PrettyError.js", + "name": "pretty-error", + "repository": { + "type": "git", + "url": "git+https://github.com/AriaMinaei/pretty-error.git" + }, + "scripts": { + "compile": "coffee --bare --compile --output ./lib ./src", + "compile:watch": "jitter src lib -b", + "prepublish": "npm run compile", + "test": "mocha \"test/**/*.coffee\"", + "test:watch": "mocha \"test/**/*.coffee\" --watch", + "watch": "npm run compile:watch & npm run test:watch", + "winwatch": "start/b npm run compile:watch & npm run test:watch" + }, + "typings": "index.d.ts", + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-regex/package.json index e94852fd7..7ff12fecf 100644 --- a/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/pretty-format/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/pretty-format" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-styles/package.json index 65edb48c3..5ab869dfa 100644 --- a/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pretty-format/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/pretty-format/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/pretty-format" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pretty-format/package.json b/admin/vue2/element-admin-v3/node_modules/pretty-format/package.json index 9faa09da4..4abf6e61f 100644 --- a/admin/vue2/element-admin-v3/node_modules/pretty-format/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pretty-format/package.json @@ -1,23 +1,61 @@ { - "name": "pretty-format", - "version": "23.6.0", - "repository": { - "type": "git", - "url": "https://github.com/facebook/jest.git" + "_args": [ + [ + "pretty-format@23.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pretty-format@23.6.0", + "_id": "pretty-format@23.6.0", + "_inBundle": false, + "_integrity": "sha1-XqrI7razO5h7f+YJfqaooUarV2A=", + "_location": "/pretty-format", + "_phantomChildren": { + "color-convert": "1.9.3" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "pretty-format@23.6.0", + "name": "pretty-format", + "escapedName": "pretty-format", + "rawSpec": "23.6.0", + "saveSpec": null, + "fetchSpec": "23.6.0" + }, + "_requiredBy": [ + "/jest-validate" + ], + "_resolved": "https://registry.nlark.com/pretty-format/download/pretty-format-23.6.0.tgz?cache=0&sync_timestamp=1622290311384&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpretty-format%2Fdownload%2Fpretty-format-23.6.0.tgz", + "_spec": "23.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Kyle", + "email": "me@thejameskyle.com" }, - "license": "MIT", - "description": "Stringify any JavaScript value.", - "main": "build/index.js", "browser": "build-es5/index.js", - "author": "James Kyle ", + "bugs": { + "url": "https://github.com/facebook/jest/issues" + }, "dependencies": { "ansi-regex": "^3.0.0", "ansi-styles": "^3.2.0" }, + "description": "Stringify any JavaScript value.", "devDependencies": { "immutable": "^4.0.0-rc.9", "react": "*", "react-dom": "*", "react-test-renderer": "*" - } + }, + "homepage": "https://github.com/facebook/jest#readme", + "license": "MIT", + "main": "build/index.js", + "name": "pretty-format", + "repository": { + "type": "git", + "url": "git+https://github.com/facebook/jest.git" + }, + "version": "23.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/print-js/package.json b/admin/vue2/element-admin-v3/node_modules/print-js/package.json index 352da940d..57f2697d9 100644 --- a/admin/vue2/element-admin-v3/node_modules/print-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/print-js/package.json @@ -1,12 +1,40 @@ { - "name": "print-js", - "homepage": "http://printjs.crabbly.com", + "_args": [ + [ + "print-js@1.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "print-js@1.6.0", + "_id": "print-js@1.6.0", + "_inBundle": false, + "_integrity": "sha1-aSsEbPMZkrRq+mxtip2xxp1DHR8=", + "_location": "/print-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "print-js@1.6.0", + "name": "print-js", + "escapedName": "print-js", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/print-js/download/print-js-1.6.0.tgz", + "_spec": "1.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rodrigo Vieira", + "email": "rodrigo@crabbly.com" + }, + "bugs": { + "url": "https://github.com/crabbly/Print.js/issues" + }, "description": "A tiny javascript library to help printing from the web.", - "version": "1.6.0", - "main": "dist/print.js", - "types": "src/index.d.ts", - "repository": "https://github.com/crabbly/Print.js", - "license": "MIT", "devDependencies": { "@babel/core": "7.11.6", "@babel/preset-env": "7.11.5", @@ -32,17 +60,29 @@ "webpack-cli": "3.3.12", "webpack-dev-server": "3.11.0" }, + "homepage": "http://printjs.crabbly.com", + "keywords": [ + "printjs", + "print.js", + "print-js" + ], + "license": "MIT", + "main": "dist/print.js", + "name": "print-js", + "repository": { + "type": "git", + "url": "git+https://github.com/crabbly/Print.js.git" + }, "scripts": { - "test": "standard && karma start", - "dev": "webpack --mode development --progress --hide-modules --devtool source-map", - "watch": "webpack --mode development --watch --progress --hide-modules", - "production": "webpack --mode production --progress --hide-modules", "coverage": "open coverage/lcov-report/index.html", "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", - "start": "webpack-dev-server --public http://localhost:8080/test/manual --open", - "standard:fix": "standard --fix" + "dev": "webpack --mode development --progress --hide-modules --devtool source-map", + "production": "webpack --mode production --progress --hide-modules", + "standard:fix": "standard --fix", + "start": "webpack-dev-server --public http://localhost:8080/test/manual --open", + "test": "standard && karma start", + "watch": "webpack --mode development --watch --progress --hide-modules" }, - "author": "Rodrigo Vieira ", "standard": { "ignore": [ "/dist/print.js" @@ -52,9 +92,6 @@ "jasmine": true } }, - "keywords": [ - "printjs", - "print.js", - "print-js" - ] + "types": "src/index.d.ts", + "version": "1.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/printj/package.json b/admin/vue2/element-admin-v3/node_modules/printj/package.json index 34f019f3b..da08013d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/printj/package.json +++ b/admin/vue2/element-admin-v3/node_modules/printj/package.json @@ -1,60 +1,100 @@ { - "name": "printj", - "version": "1.1.2", - "author": "sheetjs", - "description": "Pure-JS printf", - "keywords": [ - "printf", - "sprintf", - "format", - "string" - ], - "bin": { - "printj": "./bin/printj.njs" - }, - "main": "./printj", - "types": "types", - "browser": { - "process": false, - "util": false - }, - "dependencies": { - }, - "devDependencies": { - "mocha": "~2.5.3", - "blanket": "~1.2.3", - "@sheetjs/uglify-js": "~2.7.3", - "@types/node": "^8.0.7", - "dtslint": "^0.1.2", - "typescript": "2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/printj.git" - }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "printj.js" - } - }, - "alex": { - "allow": [ - "period" - ] - }, - "homepage": "http://sheetjs.com/opensource", - "files": ["printj.js", "bin/printj.njs", "LICENSE", "README.md", "dist/*.js", "dist/*.map", "dist/LICENSE", "types/index.d.ts", "types/*.json"], - "bugs": { - "url": "https://github.com/SheetJS/printj/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "printj@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "printj@1.1.2", + "_id": "printj@1.1.2", + "_inBundle": false, + "_integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI=", + "_location": "/printj", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "printj@1.1.2", + "name": "printj", + "escapedName": "printj", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/adler-32", + "/crc-32" + ], + "_resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "alex": { + "allow": [ + "period" + ] + }, + "author": { + "name": "sheetjs" + }, + "bin": { + "printj": "bin/printj.njs" + }, + "browser": { + "process": false, + "util": false + }, + "bugs": { + "url": "https://github.com/SheetJS/printj/issues" + }, + "config": { + "blanket": { + "pattern": "printj.js" + } + }, + "dependencies": {}, + "description": "Pure-JS printf", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "printj.js", + "bin/printj.njs", + "LICENSE", + "README.md", + "dist/*.js", + "dist/*.map", + "dist/LICENSE", + "types/index.d.ts", + "types/*.json" + ], + "homepage": "http://sheetjs.com/opensource", + "keywords": [ + "printf", + "sprintf", + "format", + "string" + ], + "license": "Apache-2.0", + "main": "./printj", + "name": "printj", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/printj.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/private/package.json b/admin/vue2/element-admin-v3/node_modules/private/package.json index 6f2b45703..ab7738368 100644 --- a/admin/vue2/element-admin-v3/node_modules/private/package.json +++ b/admin/vue2/element-admin-v3/node_modules/private/package.json @@ -1,10 +1,52 @@ { + "_args": [ + [ + "private@0.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "private@0.1.8", + "_id": "private@0.1.8", + "_inBundle": false, + "_integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", + "_location": "/private", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "private@0.1.8", + "name": "private", + "escapedName": "private", + "rawSpec": "0.1.8", + "saveSpec": null, + "fetchSpec": "0.1.8" + }, + "_requiredBy": [ + "/babel-core", + "/regenerator-transform" + ], + "_resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", + "_spec": "0.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Newman", "email": "bn@cs.stanford.edu" }, - "name": "private", + "bugs": { + "url": "https://github.com/benjamn/private/issues" + }, "description": "Utility for associating truly private state with any JavaScript object", + "devDependencies": { + "mocha": "^4.0.1" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "private.js" + ], + "homepage": "http://github.com/benjamn/private", "keywords": [ "private", "access control", @@ -16,24 +58,15 @@ "scope", "es5" ], - "version": "0.1.8", - "homepage": "http://github.com/benjamn/private", + "license": "MIT", + "main": "private.js", + "name": "private", "repository": { "type": "git", "url": "git://github.com/benjamn/private.git" }, - "license": "MIT", - "main": "private.js", - "files": [ - "private.js" - ], "scripts": { "test": "mocha --reporter spec --full-trace test/run.js" }, - "engines": { - "node": ">= 0.6" - }, - "devDependencies": { - "mocha": "^4.0.1" - } + "version": "0.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/process-nextick-args/package.json b/admin/vue2/element-admin-v3/node_modules/process-nextick-args/package.json index 6070b723f..3d76be1b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/process-nextick-args/package.json +++ b/admin/vue2/element-admin-v3/node_modules/process-nextick-args/package.json @@ -1,25 +1,53 @@ { - "name": "process-nextick-args", - "version": "2.0.1", - "description": "process.nextTick but always with args", - "main": "index.js", - "files": [ - "index.js" + "_args": [ + [ + "process-nextick-args@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/calvinmetcalf/process-nextick-args.git" + "_from": "process-nextick-args@2.0.1", + "_id": "process-nextick-args@2.0.1", + "_inBundle": false, + "_integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "_location": "/process-nextick-args", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "process-nextick-args@2.0.1", + "name": "process-nextick-args", + "escapedName": "process-nextick-args", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", "bugs": { "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" }, - "homepage": "https://github.com/calvinmetcalf/process-nextick-args", + "description": "process.nextTick but always with args", "devDependencies": { "tap": "~0.2.6" - } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/calvinmetcalf/process-nextick-args", + "license": "MIT", + "main": "index.js", + "name": "process-nextick-args", + "repository": { + "type": "git", + "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/process/package.json b/admin/vue2/element-admin-v3/node_modules/process/package.json index a0eb77447..812f88f77 100644 --- a/admin/vue2/element-admin-v3/node_modules/process/package.json +++ b/admin/vue2/element-admin-v3/node_modules/process/package.json @@ -1,18 +1,53 @@ { - "author": "Roman Shtylman ", - "name": "process", + "_args": [ + [ + "process@0.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "process@0.5.2", + "_id": "process@0.5.2", + "_inBundle": false, + "_integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "_location": "/process", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "process@0.5.2", + "name": "process", + "escapedName": "process", + "rawSpec": "0.5.2", + "saveSpec": null, + "fetchSpec": "0.5.2" + }, + "_requiredBy": [ + "/global" + ], + "_resolved": "https://registry.npm.taobao.org/process/download/process-0.5.2.tgz", + "_spec": "0.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roman Shtylman", + "email": "shtylman@gmail.com" + }, + "browser": "./browser.js", + "bugs": { + "url": "https://github.com/shtylman/node-process/issues" + }, "description": "process information for node.js and browsers", + "engines": { + "node": ">= 0.6.0" + }, + "homepage": "https://github.com/shtylman/node-process#readme", "keywords": [ "process" ], - "version": "0.5.2", + "main": "./index.js", + "name": "process", "repository": { "type": "git", "url": "git://github.com/shtylman/node-process.git" }, - "browser": "./browser.js", - "main": "./index.js", - "engines": { - "node": ">= 0.6.0" - } + "version": "0.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/progress/package.json b/admin/vue2/element-admin-v3/node_modules/progress/package.json index bb81fa0bc..5be776cf4 100644 --- a/admin/vue2/element-admin-v3/node_modules/progress/package.json +++ b/admin/vue2/element-admin-v3/node_modules/progress/package.json @@ -1,26 +1,74 @@ { - "name": "progress", - "version": "2.0.3", - "description": "Flexible ascii progress bar", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/node-progress" + "_args": [ + [ + "progress@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "progress@2.0.3", + "_id": "progress@2.0.3", + "_inBundle": false, + "_integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "_location": "/progress", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "progress@2.0.3", + "name": "progress", + "escapedName": "progress", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" }, - "keywords": [ - "cli", - "progress" + "_requiredBy": [ + "/eslint" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/visionmedia/node-progress/issues" + }, "contributors": [ - "Christoffer Hallas ", - "Jordan Scales ", - "Andrew Rhyne ", - "Marco Brack " + { + "name": "Christoffer Hallas", + "email": "christoffer.hallas@gmail.com" + }, + { + "name": "Jordan Scales", + "email": "scalesjordan@gmail.com" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "Marco Brack", + "email": "PapstDonB@Googlemail.com" + } ], "dependencies": {}, - "main": "./index.js", + "description": "Flexible ascii progress bar", "engines": { "node": ">=0.4.0" }, - "license": "MIT" + "homepage": "https://github.com/visionmedia/node-progress#readme", + "keywords": [ + "cli", + "progress" + ], + "license": "MIT", + "main": "./index.js", + "name": "progress", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/node-progress.git" + }, + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/promise-inflight/package.json b/admin/vue2/element-admin-v3/node_modules/promise-inflight/package.json index 0d8930c5b..bc4752da6 100644 --- a/admin/vue2/element-admin-v3/node_modules/promise-inflight/package.json +++ b/admin/vue2/element-admin-v3/node_modules/promise-inflight/package.json @@ -1,24 +1,56 @@ { - "name": "promise-inflight", - "version": "1.0.1", + "_args": [ + [ + "promise-inflight@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "promise-inflight@1.0.1", + "_id": "promise-inflight@1.0.1", + "_inBundle": false, + "_integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "_location": "/promise-inflight", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "promise-inflight@1.0.1", + "name": "promise-inflight", + "escapedName": "promise-inflight", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/cacache" + ], + "_resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/promise-inflight/issues" + }, "description": "One promise for multiple requests in flight to avoid async duplication", - "main": "inflight.js", + "devDependencies": {}, "files": [ "inflight.js" ], - "license": "ISC", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, + "homepage": "https://github.com/iarna/promise-inflight#readme", "keywords": [], - "author": "Rebecca Turner (http://re-becca.org/)", - "devDependencies": {}, + "license": "ISC", + "main": "inflight.js", + "name": "promise-inflight", "repository": { "type": "git", "url": "git+https://github.com/iarna/promise-inflight.git" }, - "bugs": { - "url": "https://github.com/iarna/promise-inflight/issues" + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/iarna/promise-inflight#readme" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/promise/package.json b/admin/vue2/element-admin-v3/node_modules/promise/package.json index 6f605ea96..355c4a01b 100644 --- a/admin/vue2/element-admin-v3/node_modules/promise/package.json +++ b/admin/vue2/element-admin-v3/node_modules/promise/package.json @@ -1,35 +1,70 @@ { - "name": "promise", - "version": "7.3.1", + "_args": [ + [ + "promise@7.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "promise@7.3.1", + "_id": "promise@7.3.1", + "_inBundle": false, + "_integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "_location": "/promise", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "promise@7.3.1", + "name": "promise", + "escapedName": "promise", + "rawSpec": "7.3.1", + "saveSpec": null, + "fetchSpec": "7.3.1" + }, + "_requiredBy": [ + "/jstransformer" + ], + "_resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", + "_spec": "7.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/then/promise/issues" + }, + "dependencies": { + "asap": "~2.0.3" + }, "description": "Bare bones Promises/A+ implementation", + "devDependencies": { + "acorn": "^1.0.1", + "better-assert": "*", + "istanbul": "^0.3.13", + "mocha": "*", + "promises-aplus-tests": "*", + "rimraf": "^2.3.2" + }, + "homepage": "https://github.com/then/promise#readme", + "license": "MIT", "main": "index.js", + "name": "promise", + "repository": { + "type": "git", + "url": "git+https://github.com/then/promise.git" + }, "scripts": { + "coverage": "istanbul cover node_modules/mocha/bin/_mocha -- --bail --timeout 200 --slow 99999 -R dot", "prepublish": "node build", "pretest": "node build", - "pretest-resolve": "node build", "pretest-extensions": "node build", "pretest-memory-leak": "node build", + "pretest-resolve": "node build", "test": "mocha --bail --timeout 200 --slow 99999 -R dot && npm run test-memory-leak", - "test-resolve": "mocha test/resolver-tests.js --timeout 200 --slow 999999", "test-extensions": "mocha test/extensions-tests.js --timeout 200 --slow 999999", "test-memory-leak": "node --expose-gc test/memory-leak.js", - "coverage": "istanbul cover node_modules/mocha/bin/_mocha -- --bail --timeout 200 --slow 99999 -R dot" - }, - "repository": { - "type": "git", - "url": "https://github.com/then/promise.git" - }, - "author": "ForbesLindesay", - "license": "MIT", - "devDependencies": { - "acorn": "^1.0.1", - "better-assert": "*", - "istanbul": "^0.3.13", - "mocha": "*", - "promises-aplus-tests": "*", - "rimraf": "^2.3.2" + "test-resolve": "mocha test/resolver-tests.js --timeout 200 --slow 999999" }, - "dependencies": { - "asap": "~2.0.3" - } -} \ No newline at end of file + "version": "7.3.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/proxy-addr/package.json b/admin/vue2/element-admin-v3/node_modules/proxy-addr/package.json index 24ba8f7db..103de9bb1 100644 --- a/admin/vue2/element-admin-v3/node_modules/proxy-addr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/proxy-addr/package.json @@ -1,22 +1,47 @@ { - "name": "proxy-addr", - "description": "Determine address of proxied request", - "version": "2.0.7", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "ip", - "proxy", - "x-forwarded-for" + "_args": [ + [ + "proxy-addr@2.0.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/proxy-addr", + "_from": "proxy-addr@2.0.7", + "_id": "proxy-addr@2.0.7", + "_inBundle": false, + "_integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=", + "_location": "/proxy-addr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "proxy-addr@2.0.7", + "name": "proxy-addr", + "escapedName": "proxy-addr", + "rawSpec": "2.0.7", + "saveSpec": null, + "fetchSpec": "2.0.7" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz", + "_spec": "2.0.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/proxy-addr/issues" + }, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, + "description": "Determine address of proxied request", "devDependencies": { - "benchmark": "2.1.4", "beautify-benchmark": "0.2.4", + "benchmark": "2.1.4", "deep-equal": "1.0.1", "eslint": "7.26.0", "eslint-config-standard": "14.1.1", @@ -28,14 +53,26 @@ "mocha": "8.4.0", "nyc": "15.1.0" }, + "engines": { + "node": ">= 0.10" + }, "files": [ "LICENSE", "HISTORY.md", "README.md", "index.js" ], - "engines": { - "node": ">= 0.10" + "homepage": "https://github.com/jshttp/proxy-addr#readme", + "keywords": [ + "ip", + "proxy", + "x-forwarded-for" + ], + "license": "MIT", + "name": "proxy-addr", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/proxy-addr.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -43,5 +80,6 @@ "test": "mocha --reporter spec --bail --check-leaks test/", "test-ci": "nyc --reporter=lcov --reporter=text npm test", "test-cov": "nyc --reporter=html --reporter=text npm test" - } + }, + "version": "2.0.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/prr/package.json b/admin/vue2/element-admin-v3/node_modules/prr/package.json index 5d298e598..53a97eef4 100644 --- a/admin/vue2/element-admin-v3/node_modules/prr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/prr/package.json @@ -1,26 +1,61 @@ { - "name": "prr", + "_args": [ + [ + "prr@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "prr@1.0.1", + "_id": "prr@1.0.1", + "_inBundle": false, + "_integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "_location": "/prr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "prr@1.0.1", + "name": "prr", + "escapedName": "prr", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/errno" + ], + "_resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rod Vagg", + "email": "rod@vagg.org", + "url": "https://github.com/rvagg" + }, + "bugs": { + "url": "https://github.com/rvagg/prr/issues" + }, + "dependencies": {}, "description": "A better Object.defineProperty()", - "version": "1.0.1", + "devDependencies": { + "tap": "*" + }, "homepage": "https://github.com/rvagg/prr", - "author": "Rod Vagg (https://github.com/rvagg)", "keywords": [ "property", "properties", "defineProperty", "ender" ], + "license": "MIT", "main": "./prr.js", + "name": "prr", "repository": { "type": "git", - "url": "https://github.com/rvagg/prr.git" - }, - "dependencies": {}, - "devDependencies": { - "tap": "*" + "url": "git+https://github.com/rvagg/prr.git" }, "scripts": { "test": "node ./test.js" }, - "license": "MIT" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pseudomap/package.json b/admin/vue2/element-admin-v3/node_modules/pseudomap/package.json index 4b02ab7c7..fb173bc47 100644 --- a/admin/vue2/element-admin-v3/node_modules/pseudomap/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pseudomap/package.json @@ -1,25 +1,57 @@ { - "name": "pseudomap", - "version": "1.0.2", - "description": "A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available.", - "main": "map.js", - "directories": { - "test": "test" + "_args": [ + [ + "pseudomap@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pseudomap@1.0.2", + "_id": "pseudomap@1.0.2", + "_inBundle": false, + "_integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "_location": "/pseudomap", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pseudomap@1.0.2", + "name": "pseudomap", + "escapedName": "pseudomap", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/lru-cache" + ], + "_resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" }, + "bugs": { + "url": "https://github.com/isaacs/pseudomap/issues" + }, + "description": "A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available.", "devDependencies": { "tap": "^2.3.1" }, - "scripts": { - "test": "tap test/*.js" + "directories": { + "test": "test" }, + "homepage": "https://github.com/isaacs/pseudomap#readme", + "license": "ISC", + "main": "map.js", + "name": "pseudomap", "repository": { "type": "git", "url": "git+https://github.com/isaacs/pseudomap.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/isaacs/pseudomap/issues" + "scripts": { + "test": "tap test/*.js" }, - "homepage": "https://github.com/isaacs/pseudomap#readme" + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/psl/package.json b/admin/vue2/element-admin-v3/node_modules/psl/package.json index ee2da19fa..040ac3102 100644 --- a/admin/vue2/element-admin-v3/node_modules/psl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/psl/package.json @@ -1,28 +1,42 @@ { - "name": "psl", - "version": "1.8.0", - "description": "Domain name parser based on the Public Suffix List", - "repository": { - "type": "git", - "url": "git@github.com:lupomontero/psl.git" - }, - "main": "index.js", - "scripts": { - "pretest": "eslint .", - "test": "mocha test && karma start ./karma.conf.js --single-run", - "watch": "mocha test --watch", - "prebuild": "./scripts/update-rules.js", - "build": "browserify ./index.js --standalone=psl > ./dist/psl.js", - "postbuild": "cat ./dist/psl.js | uglifyjs -c -m > ./dist/psl.min.js", - "commit-and-pr": "commit-and-pr", - "changelog": "git log $(git describe --tags --abbrev=0)..HEAD --oneline --format=\"%h %s (%an <%ae>)\"" + "_args": [ + [ + "psl@1.8.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "psl@1.8.0", + "_id": "psl@1.8.0", + "_inBundle": false, + "_integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", + "_location": "/psl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "psl@1.8.0", + "name": "psl", + "escapedName": "psl", + "rawSpec": "1.8.0", + "saveSpec": null, + "fetchSpec": "1.8.0" }, - "keywords": [ - "publicsuffix", - "publicsuffixlist" + "_requiredBy": [ + "/tough-cookie" ], - "author": "Lupo Montero (https://lupomontero.com/)", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "_spec": "1.8.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Lupo Montero", + "email": "lupomontero@gmail.com", + "url": "https://lupomontero.com/" + }, + "bugs": { + "url": "https://github.com/lupomontero/psl/issues" + }, + "description": "Domain name parser based on the Public Suffix List", "devDependencies": { "JSONStream": "^1.3.5", "browserify": "^16.5.0", @@ -40,5 +54,28 @@ "request": "^2.88.2", "uglify-js": "^3.8.0", "watchify": "^3.11.1" - } + }, + "homepage": "https://github.com/lupomontero/psl#readme", + "keywords": [ + "publicsuffix", + "publicsuffixlist" + ], + "license": "MIT", + "main": "index.js", + "name": "psl", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/lupomontero/psl.git" + }, + "scripts": { + "build": "browserify ./index.js --standalone=psl > ./dist/psl.js", + "changelog": "git log $(git describe --tags --abbrev=0)..HEAD --oneline --format=\"%h %s (%an <%ae>)\"", + "commit-and-pr": "commit-and-pr", + "postbuild": "cat ./dist/psl.js | uglifyjs -c -m > ./dist/psl.min.js", + "prebuild": "./scripts/update-rules.js", + "pretest": "eslint .", + "test": "mocha test && karma start ./karma.conf.js --single-run", + "watch": "mocha test --watch" + }, + "version": "1.8.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/public-encrypt/node_modules/bn.js/package.json b/admin/vue2/element-admin-v3/node_modules/public-encrypt/node_modules/bn.js/package.json index 098b805f9..55281285e 100644 --- a/admin/vue2/element-admin-v3/node_modules/public-encrypt/node_modules/bn.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/public-encrypt/node_modules/bn.js/package.json @@ -1,17 +1,49 @@ { - "name": "bn.js", - "version": "4.12.0", - "description": "Big number implementation in pure javascript", - "main": "lib/bn.js", - "scripts": { - "lint": "semistandard", - "unit": "mocha --reporter=spec test/*-test.js", - "test": "npm run lint && npm run unit" + "_args": [ + [ + "bn.js@4.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "bn.js@4.12.0", + "_id": "bn.js@4.12.0", + "_inBundle": false, + "_integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "_location": "/public-encrypt/bn.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bn.js@4.12.0", + "name": "bn.js", + "escapedName": "bn.js", + "rawSpec": "4.12.0", + "saveSpec": null, + "fetchSpec": "4.12.0" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/bn.js" + "_requiredBy": [ + "/public-encrypt" + ], + "_resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", + "_spec": "4.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "browser": { + "buffer": false + }, + "bugs": { + "url": "https://github.com/indutny/bn.js/issues" + }, + "description": "Big number implementation in pure javascript", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "semistandard": "^7.0.4" + }, + "homepage": "https://github.com/indutny/bn.js", "keywords": [ "BN", "BigNum", @@ -19,18 +51,17 @@ "Modulo", "Montgomery" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/bn.js/issues" + "main": "lib/bn.js", + "name": "bn.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/bn.js.git" }, - "homepage": "https://github.com/indutny/bn.js", - "browser": { - "buffer": false + "scripts": { + "lint": "semistandard", + "test": "npm run lint && npm run unit", + "unit": "mocha --reporter=spec test/*-test.js" }, - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "semistandard": "^7.0.4" - } + "version": "4.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/public-encrypt/package.json b/admin/vue2/element-admin-v3/node_modules/public-encrypt/package.json index 2c38c18a6..a05e6e1eb 100644 --- a/admin/vue2/element-admin-v3/node_modules/public-encrypt/package.json +++ b/admin/vue2/element-admin-v3/node_modules/public-encrypt/package.json @@ -1,26 +1,39 @@ { - "name": "public-encrypt", - "version": "4.0.3", - "description": "browserify version of publicEncrypt & privateDecrypt", - "main": "index.js", - "browser": "browser.js", - "directories": { - "test": "test" - }, - "scripts": { - "test": "node test/index.js | tspec", - "lint": "standard" + "_args": [ + [ + "public-encrypt@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "public-encrypt@4.0.3", + "_id": "public-encrypt@4.0.3", + "_inBundle": false, + "_integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "_location": "/public-encrypt", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "public-encrypt@4.0.3", + "name": "public-encrypt", + "escapedName": "public-encrypt", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" }, - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/publicEncrypt.git" + "_requiredBy": [ + "/crypto-browserify" + ], + "_resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Calvin Metcalf" }, - "author": "Calvin Metcalf", - "license": "MIT", + "browser": "browser.js", "bugs": { "url": "https://github.com/crypto-browserify/publicEncrypt/issues" }, - "homepage": "https://github.com/crypto-browserify/publicEncrypt", "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -29,9 +42,26 @@ "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" }, + "description": "browserify version of publicEncrypt & privateDecrypt", "devDependencies": { "standard": "^12.0.0", "tap-spec": "^2.1.2", "tape": "^3.0.3" - } + }, + "directories": { + "test": "test" + }, + "homepage": "https://github.com/crypto-browserify/publicEncrypt", + "license": "MIT", + "main": "index.js", + "name": "public-encrypt", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/publicEncrypt.git" + }, + "scripts": { + "lint": "standard", + "test": "node test/index.js | tspec" + }, + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-attrs/package.json b/admin/vue2/element-admin-v3/node_modules/pug-attrs/package.json index 45c07389b..09936778a 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-attrs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-attrs/package.json @@ -1,22 +1,53 @@ { - "name": "pug-attrs", - "version": "3.0.0", - "description": "Generate code for Pug attributes", - "keywords": [ - "pug" + "_args": [ + [ + "pug-attrs@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-attrs@3.0.0", + "_id": "pug-attrs@3.0.0", + "_inBundle": false, + "_integrity": "sha1-sQRR4DSBZeMfrRzCPr3dncc0fEE=", + "_location": "/pug-attrs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-attrs@3.0.0", + "name": "pug-attrs", + "escapedName": "pug-attrs", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/pug-code-gen" ], + "_resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-3.0.0.tgz?cache=0&sync_timestamp=1590409922141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-attrs%2Fdownload%2Fpug-attrs-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "constantinople": "^4.0.1", "js-stringify": "^1.0.2", "pug-runtime": "^3.0.0" }, + "description": "Generate code for Pug attributes", "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-attrs", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-attrs" }, - "author": "Forbes Lindesay", - "license": "MIT" + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-code-gen/package.json b/admin/vue2/element-admin-v3/node_modules/pug-code-gen/package.json index edb59ead0..35ed098e2 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-code-gen/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-code-gen/package.json @@ -1,10 +1,36 @@ { - "name": "pug-code-gen", - "version": "3.0.2", - "description": "Default code-generator for pug. It generates HTML via a JavaScript template function.", - "keywords": [ - "pug" + "_args": [ + [ + "pug-code-gen@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-code-gen@3.0.2", + "_id": "pug-code-gen@3.0.2", + "_inBundle": false, + "_integrity": "sha1-rRkPSUMTO/GGtguA3kgxAOEy4s4=", + "_location": "/pug-code-gen", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-code-gen@3.0.2", + "name": "pug-code-gen", + "escapedName": "pug-code-gen", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-3.0.2.tgz?cache=0&sync_timestamp=1614537308606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-code-gen%2Fdownload%2Fpug-code-gen-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "constantinople": "^4.0.1", "doctypes": "^1.1.0", @@ -15,13 +41,18 @@ "void-elements": "^3.1.0", "with": "^7.0.0" }, + "description": "Default code-generator for pug. It generates HTML via a JavaScript template function.", "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-code-gen", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-code-gen" }, - "author": "Forbes Lindesay", - "license": "MIT" + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-error/package.json b/admin/vue2/element-admin-v3/node_modules/pug-error/package.json index cbe85ea8e..c695fdcaf 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-error/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-error/package.json @@ -1,17 +1,53 @@ { - "name": "pug-error", - "version": "2.0.0", - "description": "Standard error objects for pug", - "keywords": [ - "pug" + "_args": [ + [ + "pug-error@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-error@2.0.0", + "_id": "pug-error@2.0.0", + "_inBundle": false, + "_integrity": "sha1-XGIXPLCcNN4qLOBPF7it/sdNjKU=", + "_location": "/pug-error", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-error@2.0.0", + "name": "pug-error", + "escapedName": "pug-error", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/pug-code-gen", + "/pug-filters", + "/pug-lexer", + "/pug-linker", + "/pug-parser", + "/pug-strip-comments" ], + "_resolved": "https://registry.npm.taobao.org/pug-error/download/pug-error-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, + "description": "Standard error objects for pug", "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-error", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-error" }, - "author": "Forbes Lindesay", - "license": "MIT" + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-filters/package.json b/admin/vue2/element-admin-v3/node_modules/pug-filters/package.json index f55f53957..1f93a97cb 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-filters/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-filters/package.json @@ -1,10 +1,36 @@ { - "name": "pug-filters", - "version": "4.0.0", - "description": "Code for processing filters in pug templates", - "keywords": [ - "pug" + "_args": [ + [ + "pug-filters@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-filters@4.0.0", + "_id": "pug-filters@4.0.0", + "_inBundle": false, + "_integrity": "sha1-0+Sa9bqEcum3pm2YDnB86dLMm14=", + "_location": "/pug-filters", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-filters@4.0.0", + "name": "pug-filters", + "escapedName": "pug-filters", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "constantinople": "^4.0.1", "jstransformer": "1.0.0", @@ -12,6 +38,7 @@ "pug-walk": "^2.0.0", "resolve": "^1.15.1" }, + "description": "Code for processing filters in pug templates", "devDependencies": { "jstransformer-cdata": "^1.0.0", "jstransformer-coffee-script": "^1.1.1", @@ -28,10 +55,14 @@ "lib/run-filter.js", "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-filters", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-filters" }, - "author": "Forbes Lindesay", - "license": "MIT" + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs index 1d0ff1966..8aa695c41 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@" + "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@" + ret=$? else - exec node "$basedir/../uglify-js/bin/uglifyjs" "$@" + node "$basedir/../uglify-js/bin/uglifyjs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.cmd b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.cmd index 136c78503..d23b40d2e 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.cmd +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uglify-js\bin\uglifyjs" %* +"%_prog%" "%dp0%\..\uglify-js\bin\uglifyjs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.ps1 b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.ps1 index 5e0bc56db..e6749c733 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/.bin/uglifyjs.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } else { - & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } + & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } else { - & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args - } + & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/acorn/package.json index b37222691..36593b45e 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/acorn/package.json @@ -1,46 +1,254 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn@3.3.0", + "_id": "acorn@3.3.0", + "_inBundle": false, + "_integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "_location": "/pug-html-loader/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@3.3.0", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/pug-html-loader/with" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/ternjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "ForbesLindesay" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Rich-Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/ternjs/acorn", - "main": "dist/acorn.js", - "jsnext:main": "dist/acorn.es.js", - "version": "3.3.0", + "devDependencies": { + "rollup": "^0.34.1", + "rollup-plugin-buble": "^0.11.0", + "unicode-9.0.0": "^0.7.0" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/ternjs/acorn", + "jsnext:main": "dist/acorn.es.js", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" } ], + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/ternjs/acorn.git" + "url": "git+https://github.com/ternjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepublish": "npm test", - "test": "node test/run.js", - "pretest": "npm run build", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js", - "build:bin": "rollup -c rollup/config.bin.js" - }, - "bin": { - "acorn": "./bin/acorn" + "prepublish": "npm test", + "pretest": "npm run build", + "test": "node test/run.js" }, - "devDependencies": { - "rollup": "^0.34.1", - "rollup-plugin-buble": "^0.11.0", - "unicode-9.0.0": "^0.7.0" - } + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/big.js/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/big.js/package.json index e4cf9ea2c..1b6cbc211 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/big.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/big.js/package.json @@ -1,43 +1,73 @@ -{ - "name": "big.js", - "description": "A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic", - "version": "3.2.0", - "keywords": [ - "arbitrary", - "precision", - "arithmetic", - "big", - "number", - "decimal", - "float", - "biginteger", - "bigdecimal", - "bignumber", - "bigint", - "bignum" - ], - "repository" : { - "type": "git", - "url": "https://github.com/MikeMcl/big.js.git" - }, - "main": "big.js", - "author": { - "name": "Michael Mclaughlin", - "email": "M8ch88l@gmail.com" - }, - "bugs": { - "url": "https://github.com/MikeMcl/big.js/issues" - }, - "engines": { - "node": "*" - }, - "license": "MIT", - "scripts": { - "test": "node ./test/every-test.js", - "build": "uglifyjs big.js --source-map doc/big.js.map -c -m -o big.min.js --preamble \"/* big.js v3.2.0 https://github.com/MikeMcl/big.js/LICENCE */\"" - }, - "files": [ - "big.js", - "big.min.js" - ] -} +{ + "_args": [ + [ + "big.js@3.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "big.js@3.2.0", + "_id": "big.js@3.2.0", + "_inBundle": false, + "_integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "_location": "/pug-html-loader/big.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "big.js@3.2.0", + "name": "big.js", + "escapedName": "big.js", + "rawSpec": "3.2.0", + "saveSpec": null, + "fetchSpec": "3.2.0" + }, + "_requiredBy": [ + "/pug-html-loader/loader-utils" + ], + "_resolved": "https://registry.nlark.com/big.js/download/big.js-3.2.0.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-3.2.0.tgz", + "_spec": "3.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Michael Mclaughlin", + "email": "M8ch88l@gmail.com" + }, + "bugs": { + "url": "https://github.com/MikeMcl/big.js/issues" + }, + "description": "A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic", + "engines": { + "node": "*" + }, + "files": [ + "big.js", + "big.min.js" + ], + "homepage": "https://github.com/MikeMcl/big.js#readme", + "keywords": [ + "arbitrary", + "precision", + "arithmetic", + "big", + "number", + "decimal", + "float", + "biginteger", + "bigdecimal", + "bignumber", + "bigint", + "bignum" + ], + "license": "MIT", + "main": "big.js", + "name": "big.js", + "repository": { + "type": "git", + "url": "git+https://github.com/MikeMcl/big.js.git" + }, + "scripts": { + "build": "uglifyjs big.js --source-map doc/big.js.map -c -m -o big.min.js --preamble \"/* big.js v3.2.0 https://github.com/MikeMcl/big.js/LICENCE */\"", + "test": "node ./test/every-test.js" + }, + "version": "3.2.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/camelcase/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/camelcase/package.json index 34f75e745..ab2164255 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/camelcase/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/camelcase/package.json @@ -1,23 +1,52 @@ { - "name": "camelcase", - "version": "1.2.1", - "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar", - "license": "MIT", - "repository": "sindresorhus/camelcase", + "_args": [ + [ + "camelcase@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "camelcase@1.2.1", + "_id": "camelcase@1.2.1", + "_inBundle": false, + "_integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "_location": "/pug-html-loader/camelcase", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "camelcase@1.2.1", + "name": "camelcase", + "escapedName": "camelcase", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/pug-html-loader/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1603924797555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/camelcase/issues" + }, + "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/camelcase#readme", "keywords": [ "camelcase", "camel-case", @@ -32,7 +61,14 @@ "text", "convert" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "camelcase", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/camelcase.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/cliui/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/cliui/package.json index 868ae2eaa..b90b3bc87 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/cliui/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/cliui/package.json @@ -1,14 +1,39 @@ { - "name": "cliui", - "version": "2.1.0", - "description": "easily create complex multi-column command-line-interfaces", - "main": "index.js", - "scripts": { - "test": "standard && mocha --check-leaks --ui exports --require patched-blanket -R mocoverage" + "_args": [ + [ + "cliui@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cliui@2.1.0", + "_id": "cliui@2.1.0", + "_inBundle": false, + "_integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "_location": "/pug-html-loader/cliui", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "cliui@2.1.0", + "name": "cliui", + "escapedName": "cliui", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "repository": { - "type": "git", - "url": "http://github.com/bcoe/cliui.git" + "_requiredBy": [ + "/pug-html-loader/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz?cache=0&sync_timestamp=1604880249159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/bcoe/cliui/issues" }, "config": { "blanket": { @@ -22,30 +47,12 @@ "output-reporter": "spec" } }, - "standard": { - "ignore": [ - "**/example/**" - ], - "globals": [ - "it" - ] - }, - "keywords": [ - "cli", - "command-line", - "layout", - "design", - "console", - "wrap", - "table" - ], - "author": "Ben Coe ", - "license": "ISC", "dependencies": { "center-align": "^0.1.1", "right-align": "^0.1.1", "wordwrap": "0.0.2" }, + "description": "easily create complex multi-column command-line-interfaces", "devDependencies": { "blanket": "^1.1.6", "chai": "^2.2.0", @@ -55,5 +62,34 @@ "mocoverage": "^1.0.0", "patched-blanket": "^1.0.1", "standard": "^3.6.1" - } + }, + "homepage": "https://github.com/bcoe/cliui#readme", + "keywords": [ + "cli", + "command-line", + "layout", + "design", + "console", + "wrap", + "table" + ], + "license": "ISC", + "main": "index.js", + "name": "cliui", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/bcoe/cliui.git" + }, + "scripts": { + "test": "standard && mocha --check-leaks --ui exports --require patched-blanket -R mocoverage" + }, + "standard": { + "ignore": [ + "**/example/**" + ], + "globals": [ + "it" + ] + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/constantinople/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/constantinople/package.json index 2728b432c..8beba34e0 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/constantinople/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/constantinople/package.json @@ -1,35 +1,72 @@ { - "name": "constantinople", - "version": "3.1.2", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "description": "Determine whether a JavaScript expression evaluates to a constant (using acorn)", - "keywords": [ - "acorn", - "ast", - "tooling" + "_args": [ + [ + "constantinople@3.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "constantinople@3.1.2", + "_id": "constantinople@3.1.2", + "_inBundle": false, + "_integrity": "sha1-1F7XJPV9PRBQABen06iJwTga5kc=", + "_location": "/pug-html-loader/constantinople", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "constantinople@3.1.2", + "name": "constantinople", + "escapedName": "constantinople", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" + }, + "_requiredBy": [ + "/pug-html-loader/pug-attrs", + "/pug-html-loader/pug-code-gen", + "/pug-html-loader/pug-filters" + ], + "_resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-3.1.2.tgz?cache=0&sync_timestamp=1568720534976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconstantinople%2Fdownload%2Fconstantinople-3.1.2.tgz", + "_spec": "3.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/ForbesLindesay/constantinople/issues" + }, "dependencies": { "@types/babel-types": "^7.0.0", "@types/babylon": "^6.16.2", "babel-types": "^6.26.0", "babylon": "^6.18.0" }, + "description": "Determine whether a JavaScript expression evaluates to a constant (using acorn)", "devDependencies": { "@types/node": "^9.4.4", "mocha": "*", "typescript": "^2.7.1" }, + "homepage": "https://github.com/ForbesLindesay/constantinople#readme", + "keywords": [ + "acorn", + "ast", + "tooling" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "constantinople", + "repository": { + "type": "git", + "url": "git+https://github.com/ForbesLindesay/constantinople.git" + }, "scripts": { - "prepublish": "npm run build", "build": "tsc", + "prepublish": "npm run build", "pretest": "npm run build", "test": "mocha -R spec" }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/constantinople.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file + "types": "lib/index.d.ts", + "version": "3.1.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/emojis-list/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/emojis-list/package.json index 328a1dbe2..3e17a1bd2 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/emojis-list/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/emojis-list/package.json @@ -1,28 +1,42 @@ { - "name": "emojis-list", - "description": "Complete list of standard emojis.", - "homepage": "https://github.com/Kikobeats/emojis-list", - "version": "2.1.0", - "main": "./index.js", + "_args": [ + [ + "emojis-list@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "emojis-list@2.1.0", + "_id": "emojis-list@2.1.0", + "_inBundle": false, + "_integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "_location": "/pug-html-loader/emojis-list", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "emojis-list@2.1.0", + "name": "emojis-list", + "escapedName": "emojis-list", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/pug-html-loader/loader-utils" + ], + "_resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { - "email": "josefrancisco.verdu@gmail.com", "name": "Kiko Beats", + "email": "josefrancisco.verdu@gmail.com", "url": "https://github.com/Kikobeats" }, - "repository": { - "type": "git", - "url": "git+https://github.com/kikobeats/emojis-list.git" - }, "bugs": { "url": "https://github.com/Kikobeats/emojis-list/issues" }, - "keywords": [ - "archive", - "complete", - "emoji", - "list", - "standard" - ], + "description": "Complete list of standard emojis.", "devDependencies": { "acho": "latest", "browserify": "latest", @@ -42,10 +56,25 @@ "files": [ "index.js" ], + "homepage": "https://github.com/Kikobeats/emojis-list", + "keywords": [ + "archive", + "complete", + "emoji", + "list", + "standard" + ], + "license": "MIT", + "main": "./index.js", + "name": "emojis-list", + "repository": { + "type": "git", + "url": "git+https://github.com/kikobeats/emojis-list.git" + }, "scripts": { "pretest": "standard update.js", "test": "echo 'YOLO'", "update": "node update" }, - "license": "MIT" + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/acorn/package.json index 1cc57bac1..666c5874c 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/node_modules/acorn/package.json @@ -1,46 +1,263 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@4.0.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "acorn@4.0.13", + "_id": "acorn@4.0.13", + "_inBundle": false, + "_integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "_location": "/pug-html-loader/is-expression/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@4.0.13", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "4.0.13", + "saveSpec": null, + "fetchSpec": "4.0.13" + }, + "_requiredBy": [ + "/pug-html-loader/is-expression" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-4.0.13.tgz", + "_spec": "4.0.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/ternjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "Kai Cataldo" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mat Garcia" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "naoh" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Simen Bekkhus" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "Wexpo Lyu" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/ternjs/acorn", - "main": "dist/acorn.js", - "jsnext:main": "dist/acorn.es.js", - "version": "4.0.13", + "devDependencies": { + "rollup": "^0.34.1", + "rollup-plugin-buble": "^0.11.0", + "unicode-9.0.0": "^0.7.0" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/ternjs/acorn", + "jsnext:main": "dist/acorn.es.js", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" } ], + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/ternjs/acorn.git" + "url": "git+https://github.com/ternjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepublish": "npm test", - "test": "node test/run.js", - "pretest": "npm run build", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js", - "build:bin": "rollup -c rollup/config.bin.js" - }, - "bin": { - "acorn": "./bin/acorn" + "prepublish": "npm test", + "pretest": "npm run build", + "test": "node test/run.js" }, - "devDependencies": { - "rollup": "^0.34.1", - "rollup-plugin-buble": "^0.11.0", - "unicode-9.0.0": "^0.7.0" - } + "version": "4.0.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/package.json index 1b8454736..6e3282750 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/is-expression/package.json @@ -1,27 +1,63 @@ { - "name": "is-expression", - "version": "3.0.0", - "description": "Check if a string is a valid JavaScript expression", - "keywords": [ - "javascript", - "expression" + "_args": [ + [ + "is-expression@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "is-expression@3.0.0", + "_id": "is-expression@3.0.0", + "_inBundle": false, + "_integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "_location": "/pug-html-loader/is-expression", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-expression@3.0.0", + "name": "is-expression", + "escapedName": "is-expression", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/pug-html-loader/pug-lexer" + ], + "_resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, + "bugs": { + "url": "https://github.com/pugjs/is-expression/issues" + }, "dependencies": { "acorn": "~4.0.2", "object-assign": "^4.0.1" }, + "description": "Check if a string is a valid JavaScript expression", "devDependencies": { "istanbul": "*", "testit": "^2.0.2" }, - "scripts": { - "test": "node test && npm run coverage", - "coverage": "istanbul cover test.js" - }, + "homepage": "https://github.com/pugjs/is-expression#readme", + "keywords": [ + "javascript", + "expression" + ], + "license": "MIT", + "name": "is-expression", "repository": { "type": "git", - "url": "https://github.com/pugjs/is-expression.git" + "url": "git+https://github.com/pugjs/is-expression.git" + }, + "scripts": { + "coverage": "istanbul cover test.js", + "test": "node test && npm run coverage" }, - "author": "Timothy Gu ", - "license": "MIT" + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/loader-utils/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/loader-utils/package.json index 699cb0282..88bc84e00 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/loader-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/loader-utils/package.json @@ -1,25 +1,46 @@ { - "name": "loader-utils", - "version": "0.2.17", - "author": "Tobias Koppers @sokra", - "description": "utils for webpack loaders", + "_args": [ + [ + "loader-utils@0.2.17", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "loader-utils@0.2.17", + "_id": "loader-utils@0.2.17", + "_inBundle": false, + "_integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "_location": "/pug-html-loader/loader-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "loader-utils@0.2.17", + "name": "loader-utils", + "escapedName": "loader-utils", + "rawSpec": "0.2.17", + "saveSpec": null, + "fetchSpec": "0.2.17" + }, + "_requiredBy": [ + "/pug-html-loader" + ], + "_resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "_spec": "0.2.17", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/loader-utils/issues" + }, "dependencies": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", "json5": "^0.5.0", "object-assign": "^4.0.1" }, - "scripts": { - "test": "mocha", - "travis": "npm run cover -- --report lcovonly", - "cover": "istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha", - "publish-patch": "mocha && npm version patch && git push && git push --tags && npm publish" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/webpack/loader-utils.git" - }, + "description": "utils for webpack loaders", "devDependencies": { "coveralls": "^2.11.2", "istanbul": "^0.3.14", @@ -27,5 +48,19 @@ }, "files": [ "index.js" - ] + ], + "homepage": "https://github.com/webpack/loader-utils#readme", + "license": "MIT", + "name": "loader-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/loader-utils.git" + }, + "scripts": { + "cover": "istanbul cover -x *.runtime.js node_modules/mocha/bin/_mocha", + "publish-patch": "mocha && npm version patch && git push && git push --tags && npm publish", + "test": "mocha", + "travis": "npm run cover -- --report lcovonly" + }, + "version": "0.2.17" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-attrs/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-attrs/package.json index 5caf02d51..4340bb765 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-attrs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-attrs/package.json @@ -1,23 +1,54 @@ { - "name": "pug-attrs", - "version": "2.0.4", - "description": "Generate code for Pug attributes", - "keywords": [ - "pug" + "_args": [ + [ + "pug-attrs@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-attrs@2.0.4", + "_id": "pug-attrs@2.0.4", + "_inBundle": false, + "_integrity": "sha1-svRMQ55OtK1dTvJcrCDRitKMwzY=", + "_location": "/pug-html-loader/pug-attrs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-attrs@2.0.4", + "name": "pug-attrs", + "escapedName": "pug-attrs", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/pug-html-loader/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-2.0.4.tgz?cache=0&sync_timestamp=1590409922141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-attrs%2Fdownload%2Fpug-attrs-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "constantinople": "^3.0.1", "js-stringify": "^1.0.1", "pug-runtime": "^2.0.5" }, + "description": "Generate code for Pug attributes", "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-attrs", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-attrs" }, - "author": "Forbes Lindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-code-gen/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-code-gen/package.json index 5b7e57c9e..acdda6048 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-code-gen/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-code-gen/package.json @@ -1,10 +1,36 @@ { - "name": "pug-code-gen", - "version": "2.0.3", - "description": "Default code-generator for pug. It generates HTML via a JavaScript template function.", - "keywords": [ - "pug" + "_args": [ + [ + "pug-code-gen@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-code-gen@2.0.3", + "_id": "pug-code-gen@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Ei65ram1v2AXBf4VqqCn0mvBNKs=", + "_location": "/pug-html-loader/pug-code-gen", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-code-gen@2.0.3", + "name": "pug-code-gen", + "escapedName": "pug-code-gen", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/pug-html-loader/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-2.0.3.tgz?cache=0&sync_timestamp=1614537308606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-code-gen%2Fdownload%2Fpug-code-gen-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "constantinople": "^3.1.2", "doctypes": "^1.1.0", @@ -15,13 +41,18 @@ "void-elements": "^2.0.1", "with": "^5.0.0" }, + "description": "Default code-generator for pug. It generates HTML via a JavaScript template function.", "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-code-gen", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-code-gen" }, - "author": "Forbes Lindesay", - "license": "MIT" + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-error/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-error/package.json index 866c8519b..17e93986c 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-error/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-error/package.json @@ -1,18 +1,54 @@ { - "name": "pug-error", - "version": "1.3.3", - "description": "Standard error objects for pug", - "keywords": [ - "pug" + "_args": [ + [ + "pug-error@1.3.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-error@1.3.3", + "_id": "pug-error@1.3.3", + "_inBundle": false, + "_integrity": "sha1-80L7AIdS1YA0wYXeA2At2f/hX6Y=", + "_location": "/pug-html-loader/pug-error", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-error@1.3.3", + "name": "pug-error", + "escapedName": "pug-error", + "rawSpec": "1.3.3", + "saveSpec": null, + "fetchSpec": "1.3.3" + }, + "_requiredBy": [ + "/pug-html-loader/pug-code-gen", + "/pug-html-loader/pug-filters", + "/pug-html-loader/pug-lexer", + "/pug-html-loader/pug-linker", + "/pug-html-loader/pug-parser", + "/pug-html-loader/pug-strip-comments" + ], + "_resolved": "https://registry.npm.taobao.org/pug-error/download/pug-error-1.3.3.tgz", + "_spec": "1.3.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, + "description": "Standard error objects for pug", "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-error", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-error" }, - "author": "Forbes Lindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "1.3.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-filters/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-filters/package.json index c00d858e1..abc02d6a7 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-filters/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-filters/package.json @@ -1,10 +1,36 @@ { - "name": "pug-filters", - "version": "3.1.1", - "description": "Code for processing filters in pug templates", - "keywords": [ - "pug" + "_args": [ + [ + "pug-filters@3.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-filters@3.1.1", + "_id": "pug-filters@3.1.1", + "_inBundle": false, + "_integrity": "sha1-qyzILbnuzPV4vaiRMOJSoNsCaqc=", + "_location": "/pug-html-loader/pug-filters", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-filters@3.1.1", + "name": "pug-filters", + "escapedName": "pug-filters", + "rawSpec": "3.1.1", + "saveSpec": null, + "fetchSpec": "3.1.1" + }, + "_requiredBy": [ + "/pug-html-loader/pug" + ], + "_resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-3.1.1.tgz", + "_spec": "3.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "clean-css": "^4.1.11", "constantinople": "^3.0.1", @@ -14,6 +40,7 @@ "resolve": "^1.1.6", "uglify-js": "^2.6.1" }, + "description": "Code for processing filters in pug templates", "devDependencies": { "get-repo": "^1.0.0", "jstransformer-cdata": "^1.0.0", @@ -31,11 +58,15 @@ "lib/run-filter.js", "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-filters", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-filters" }, - "author": "Forbes Lindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "3.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-lexer/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-lexer/package.json index b2b2c20b1..0ca349ab4 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-lexer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-lexer/package.json @@ -1,26 +1,57 @@ { - "name": "pug-lexer", - "version": "4.1.0", - "description": "The pug lexer (takes a string and converts it to an array of tokens)", - "keywords": [ - "pug" + "_args": [ + [ + "pug-lexer@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-lexer@4.1.0", + "_id": "pug-lexer@4.1.0", + "_inBundle": false, + "_integrity": "sha1-UxzeSMfAsfy7wrhUhchmXjFInP0=", + "_location": "/pug-html-loader/pug-lexer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-lexer@4.1.0", + "name": "pug-lexer", + "escapedName": "pug-lexer", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/pug-html-loader/pug" + ], + "_resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, "dependencies": { "character-parser": "^2.1.1", "is-expression": "^3.0.0", "pug-error": "^1.3.3" }, + "description": "The pug lexer (takes a string and converts it to an array of tokens)", "devDependencies": { "acorn": "^3.0.4" }, "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-lexer", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-lexer" }, - "author": "ForbesLindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-linker/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-linker/package.json index df64b504c..091ac43ed 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-linker/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-linker/package.json @@ -1,14 +1,41 @@ { - "name": "pug-linker", - "version": "3.0.6", - "description": "Link multiple pug ASTs together using include/extends", - "keywords": [ - "pug" + "_args": [ + [ + "pug-linker@3.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-linker@3.0.6", + "_id": "pug-linker@3.0.6", + "_inBundle": false, + "_integrity": "sha1-9b8hiw79Zc5mcPevxRZY0Pgpifs=", + "_location": "/pug-html-loader/pug-linker", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-linker@3.0.6", + "name": "pug-linker", + "escapedName": "pug-linker", + "rawSpec": "3.0.6", + "saveSpec": null, + "fetchSpec": "3.0.6" + }, + "_requiredBy": [ + "/pug-html-loader/pug" + ], + "_resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-3.0.6.tgz", + "_spec": "3.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "pug-error": "^1.3.3", "pug-walk": "^1.1.8" }, + "description": "Link multiple pug ASTs together using include/extends", "devDependencies": { "pug-lexer": "^4.1.0", "pug-load": "^2.0.12", @@ -17,11 +44,15 @@ "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-linker", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-linker" }, - "author": "Forbes Lindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "3.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-load/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-load/package.json index 99915fdfb..7b25bac15 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-load/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-load/package.json @@ -1,14 +1,41 @@ { - "name": "pug-load", - "version": "2.0.12", - "description": "The Pug loader is responsible for loading the depenendencies of a given Pug file.", - "keywords": [ - "pug" + "_args": [ + [ + "pug-load@2.0.12", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-load@2.0.12", + "_id": "pug-load@2.0.12", + "_inBundle": false, + "_integrity": "sha1-04yF64X24vcE3qFNzKlBRNNdPns=", + "_location": "/pug-html-loader/pug-load", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-load@2.0.12", + "name": "pug-load", + "escapedName": "pug-load", + "rawSpec": "2.0.12", + "saveSpec": null, + "fetchSpec": "2.0.12" + }, + "_requiredBy": [ + "/pug-html-loader/pug" + ], + "_resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-2.0.12.tgz", + "_spec": "2.0.12", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, "dependencies": { "object-assign": "^4.1.0", "pug-walk": "^1.1.8" }, + "description": "The Pug loader is responsible for loading the depenendencies of a given Pug file.", "devDependencies": { "pug-lexer": "^4.1.0", "pug-parser": "^5.0.1" @@ -16,11 +43,15 @@ "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-load", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-load" }, - "author": "ForbesLindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "2.0.12" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-parser/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-parser/package.json index 5052c46bd..96f71769f 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-parser/package.json @@ -1,14 +1,41 @@ { - "name": "pug-parser", - "version": "5.0.1", - "description": "The pug parser (takes an array of tokens and converts it to an abstract syntax tree)", - "keywords": [ - "pug" + "_args": [ + [ + "pug-parser@5.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-parser@5.0.1", + "_id": "pug-parser@5.0.1", + "_inBundle": false, + "_integrity": "sha1-A+etpItoQL04Ivhn19kPhC0P/ck=", + "_location": "/pug-html-loader/pug-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-parser@5.0.1", + "name": "pug-parser", + "escapedName": "pug-parser", + "rawSpec": "5.0.1", + "saveSpec": null, + "fetchSpec": "5.0.1" + }, + "_requiredBy": [ + "/pug-html-loader/pug" + ], + "_resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-5.0.1.tgz", + "_spec": "5.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, "dependencies": { "pug-error": "^1.3.3", "token-stream": "0.0.1" }, + "description": "The pug parser (takes an array of tokens and converts it to an abstract syntax tree)", "devDependencies": { "get-repo": "^1.0.0" }, @@ -16,11 +43,15 @@ "lib/inline-tags.js", "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-parser", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-parser" }, - "author": "ForbesLindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "5.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-runtime/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-runtime/package.json index 513c11558..94e899a0a 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-runtime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-runtime/package.json @@ -1,10 +1,42 @@ { - "name": "pug-runtime", - "version": "2.0.5", - "description": "The runtime components for the pug templating language", - "keywords": [ - "pug" + "_args": [ + [ + "pug-runtime@2.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-runtime@2.0.5", + "_id": "pug-runtime@2.0.5", + "_inBundle": false, + "_integrity": "sha1-baeXbDa/IvaOczw1kkDYrnoylTo=", + "_location": "/pug-html-loader/pug-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-runtime@2.0.5", + "name": "pug-runtime", + "escapedName": "pug-runtime", + "rawSpec": "2.0.5", + "saveSpec": null, + "fetchSpec": "2.0.5" + }, + "_requiredBy": [ + "/pug-html-loader/pug", + "/pug-html-loader/pug-attrs", + "/pug-html-loader/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-2.0.5.tgz", + "_spec": "2.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "browser": { + "fs": false + }, + "description": "The runtime components for the pug templating language", "devDependencies": { "uglify-js": "^2.6.1" }, @@ -16,18 +48,19 @@ "lib/sources.js", "wrap.js" ], - "scripts": { - "prepublish": "node prepublish", - "pretest": "npm run prepublish" - }, + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-runtime", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-runtime" }, - "browser": { - "fs": false + "scripts": { + "prepublish": "node prepublish", + "pretest": "npm run prepublish" }, - "author": "ForbesLindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "2.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-strip-comments/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-strip-comments/package.json index 46217c875..45742f9ce 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-strip-comments/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-strip-comments/package.json @@ -1,24 +1,56 @@ { - "name": "pug-strip-comments", - "version": "1.0.4", - "description": "Strip comments from a Pug token stream (from the lexer)", - "keywords": [ - "pug" + "_args": [ + [ + "pug-strip-comments@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-strip-comments@1.0.4", + "_id": "pug-strip-comments@1.0.4", + "_inBundle": false, + "_integrity": "sha1-zBtt4fbo9ZMc8C7GbN/9P1Dq+Kg=", + "_location": "/pug-html-loader/pug-strip-comments", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-strip-comments@1.0.4", + "name": "pug-strip-comments", + "escapedName": "pug-strip-comments", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/pug-html-loader/pug" + ], + "_resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, "dependencies": { "pug-error": "^1.3.3" }, + "description": "Strip comments from a Pug token stream (from the lexer)", "devDependencies": { "line-json": "^1.0.0" }, "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-strip-comments", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-strip-comments" }, - "author": "Timothy Gu ", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-walk/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-walk/package.json index 0259a4b86..e5cce8125 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-walk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug-walk/package.json @@ -1,10 +1,39 @@ { - "name": "pug-walk", - "version": "1.1.8", - "description": "Walk and transform a pug AST", - "keywords": [ - "pug" + "_args": [ + [ + "pug-walk@1.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "pug-walk@1.1.8", + "_id": "pug-walk@1.1.8", + "_inBundle": false, + "_integrity": "sha1-tAj2fyeRL4wh2i9FtyMMS9Kl6no=", + "_location": "/pug-html-loader/pug-walk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-walk@1.1.8", + "name": "pug-walk", + "escapedName": "pug-walk", + "rawSpec": "1.1.8", + "saveSpec": null, + "fetchSpec": "1.1.8" + }, + "_requiredBy": [ + "/pug-html-loader/pug-filters", + "/pug-html-loader/pug-linker", + "/pug-html-loader/pug-load" + ], + "_resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-1.1.8.tgz", + "_spec": "1.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "description": "Walk and transform a pug AST", "devDependencies": { "pug-lexer": "^4.1.0", "pug-parser": "^5.0.1" @@ -12,11 +41,15 @@ "files": [ "index.js" ], + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-walk", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-walk" }, - "author": "ForbesLindesay", - "license": "MIT", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "version": "1.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug/package.json index 00490e36f..b41e85f45 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/pug/package.json @@ -1,30 +1,40 @@ { - "name": "pug", - "description": "A clean, whitespace-sensitive template language for writing HTML", - "keywords": [ - "html", - "jade", - "pug", - "template" + "_args": [ + [ + "pug@2.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "2.0.4", - "author": "TJ Holowaychuk ", - "maintainers": [ - "Forbes Lindesay ", - "Matthias Le Brun ", - "Joshua Appelman ", - "Jonathan Ong ", - "Alex Kocharin ", - "Hemanth ", - "Timothy Gu ", - "Andreas Lubbe " + "_development": true, + "_from": "pug@2.0.4", + "_id": "pug@2.0.4", + "_inBundle": false, + "_integrity": "sha1-7naC7ApgSUs41IqI8F87CskxN30=", + "_location": "/pug-html-loader/pug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug@2.0.4", + "name": "pug", + "escapedName": "pug", + "rawSpec": "2.0.4", + "saveSpec": null, + "fetchSpec": "2.0.4" + }, + "_requiredBy": [ + "/pug-html-loader" ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/pugjs/pug/tree/master/packages/pug" + "_resolved": "https://registry.npm.taobao.org/pug/download/pug-2.0.4.tgz", + "_spec": "2.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": { + "fs": false }, - "main": "lib", "dependencies": { "pug-code-gen": "^2.0.2", "pug-filters": "^3.1.1", @@ -35,6 +45,7 @@ "pug-runtime": "^2.0.5", "pug-strip-comments": "^1.0.4" }, + "description": "A clean, whitespace-sensitive template language for writing HTML", "devDependencies": { "jstransformer-cdata": "^1.0.0", "jstransformer-coffee-script": "^1.0.0", @@ -51,9 +62,54 @@ "lib/index.js", "register.js" ], - "browser": { - "fs": false - }, + "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130", "homepage": "https://pugjs.org", - "gitHead": "1bdf628a70fda7a0d840c52f3abce54b1c6b0130" + "keywords": [ + "html", + "jade", + "pug", + "template" + ], + "license": "MIT", + "main": "lib", + "maintainers": [ + { + "name": "Forbes Lindesay", + "email": "forbes@lindesay.co.uk" + }, + { + "name": "Matthias Le Brun", + "email": "mlbli@me.com" + }, + { + "name": "Joshua Appelman", + "email": "joshua@jbna.nl" + }, + { + "name": "Jonathan Ong", + "email": "jonathanrichardong@gmail.com" + }, + { + "name": "Alex Kocharin", + "email": "alex@kocharin.ru" + }, + { + "name": "Hemanth", + "email": "hemanth.hm@gmail.com" + }, + { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, + { + "name": "Andreas Lubbe", + "email": "git@lubbe.org" + } + ], + "name": "pug", + "repository": { + "type": "git", + "url": "https://github.com/pugjs/pug/tree/master/packages/pug" + }, + "version": "2.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/token-stream/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/token-stream/package.json index ba8bb5542..a3bf45851 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/token-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/token-stream/package.json @@ -1,19 +1,54 @@ { - "name": "token-stream", - "version": "0.0.1", - "description": "Take an array of token and produce a more useful API to give to a parser", + "_args": [ + [ + "token-stream@0.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "token-stream@0.0.1", + "_id": "token-stream@0.0.1", + "_inBundle": false, + "_integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", + "_location": "/pug-html-loader/token-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "token-stream@0.0.1", + "name": "token-stream", + "escapedName": "token-stream", + "rawSpec": "0.0.1", + "saveSpec": null, + "fetchSpec": "0.0.1" + }, + "_requiredBy": [ + "/pug-html-loader/pug-parser" + ], + "_resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-0.0.1.tgz", + "_spec": "0.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/jadejs/token-stream/issues" + }, "dependencies": {}, + "description": "Take an array of token and produce a more useful API to give to a parser", "devDependencies": { "istanbul": "^0.3.2" }, - "scripts": { - "test": "node test && npm run coverage", - "coverage": "istanbul cover test" - }, + "homepage": "https://github.com/jadejs/token-stream#readme", + "license": "MIT", + "name": "token-stream", "repository": { "type": "git", - "url": "https://github.com/jadejs/token-stream.git" + "url": "git+https://github.com/jadejs/token-stream.git" + }, + "scripts": { + "coverage": "istanbul cover test", + "test": "node test && npm run coverage" }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file + "version": "0.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/uglify-js/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/uglify-js/package.json index 13562e8d5..8555ab998 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/uglify-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/uglify-js/package.json @@ -1,51 +1,94 @@ { - "name": "uglify-js", - "description": "JavaScript parser, mangler/compressor and beautifier toolkit", - "homepage": "http://lisperator.net/uglifyjs", - "author": "Mihai Bazon (http://lisperator.net/)", - "license": "BSD-2-Clause", - "version": "2.8.29", - "engines": { - "node": ">=0.8.0" - }, - "maintainers": [ - "Mihai Bazon (http://lisperator.net/)" + "_args": [ + [ + "uglify-js@2.8.29", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "https://github.com/mishoo/UglifyJS2.git" + "_development": true, + "_from": "uglify-js@2.8.29", + "_id": "uglify-js@2.8.29", + "_inBundle": false, + "_integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "_location": "/pug-html-loader/uglify-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uglify-js@2.8.29", + "name": "uglify-js", + "escapedName": "uglify-js", + "rawSpec": "2.8.29", + "saveSpec": null, + "fetchSpec": "2.8.29" }, - "bugs": { - "url": "https://github.com/mishoo/UglifyJS2/issues" + "_requiredBy": [ + "/pug-html-loader/pug-filters" + ], + "_resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-2.8.29.tgz?cache=0&sync_timestamp=1622845500166&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-2.8.29.tgz", + "_spec": "2.8.29", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" }, - "main": "tools/node.js", "bin": { "uglifyjs": "bin/uglifyjs" }, - "files": [ - "bin", - "lib", - "tools", - "LICENSE" - ], + "browserify": { + "transform": [ + "uglify-to-browserify" + ] + }, + "bugs": { + "url": "https://github.com/mishoo/UglifyJS2/issues" + }, "dependencies": { "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", "yargs": "~3.10.0" }, + "description": "JavaScript parser, mangler/compressor and beautifier toolkit", "devDependencies": { "acorn": "~5.0.3", "mocha": "~2.3.4" }, + "engines": { + "node": ">=0.8.0" + }, + "files": [ + "bin", + "lib", + "tools", + "LICENSE" + ], + "homepage": "http://lisperator.net/uglifyjs", + "keywords": [ + "uglify", + "uglify-js", + "minify", + "minifier" + ], + "license": "BSD-2-Clause", + "main": "tools/node.js", + "maintainers": [ + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" + } + ], + "name": "uglify-js", "optionalDependencies": { "uglify-to-browserify": "~1.0.0" }, - "browserify": { - "transform": [ - "uglify-to-browserify" - ] + "repository": { + "type": "git", + "url": "git+https://github.com/mishoo/UglifyJS2.git" }, "scripts": { "test": "node test/run-tests.js" }, - "keywords": ["uglify", "uglify-js", "minify", "minifier"] + "version": "2.8.29" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/void-elements/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/void-elements/package.json index 4652c8315..bb53f9f76 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/void-elements/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/void-elements/package.json @@ -1,28 +1,62 @@ { - "name": "void-elements", - "version": "2.0.1", + "_args": [ + [ + "void-elements@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "void-elements@2.0.1", + "_id": "void-elements@2.0.1", + "_inBundle": false, + "_integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "_location": "/pug-html-loader/void-elements", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "void-elements@2.0.1", + "name": "void-elements", + "escapedName": "void-elements", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/pug-html-loader/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "hemanth.hm" + }, + "bugs": { + "url": "https://github.com/hemanth/void-elements/issues" + }, "description": "Array of \"void elements\" defined by the HTML specification.", - "main": "index.js", - "scripts": { - "test": "node test", - "prepublish": "node pre-publish.js > index.js" + "devDependencies": { + "cheerio": "^0.18.0" + }, + "engines": { + "node": ">=0.10.0" }, + "homepage": "https://github.com/hemanth/void-elements", "keywords": [ "html", "void", "elements" ], - "repository": "hemanth/void-elements", - "author": "hemanth.hm", - "engines": { - "node": ">=0.10.0" - }, "license": "MIT", - "bugs": { - "url": "https://github.com/hemanth/void-elements/issues" + "main": "index.js", + "name": "void-elements", + "repository": { + "type": "git", + "url": "git+https://github.com/hemanth/void-elements.git" }, - "homepage": "https://github.com/hemanth/void-elements", - "devDependencies": { - "cheerio": "^0.18.0" - } + "scripts": { + "prepublish": "node pre-publish.js > index.js", + "test": "node test" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/with/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/with/package.json index 66d3c9a44..b8cad0489 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/with/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/with/package.json @@ -1,23 +1,58 @@ { - "name": "with", - "version": "5.1.1", - "description": "Compile time `with` for strict mode JavaScript", - "main": "index.js", - "scripts": { - "test": "mocha test/index.js -R spec" + "_args": [ + [ + "with@5.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "with@5.1.1", + "_id": "with@5.1.1", + "_inBundle": false, + "_integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", + "_location": "/pug-html-loader/with", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "with@5.1.1", + "name": "with", + "escapedName": "with", + "rawSpec": "5.1.1", + "saveSpec": null, + "fetchSpec": "5.1.1" }, - "repository": { - "type": "git", - "url": "https://github.com/pugjs/with.git" + "_requiredBy": [ + "/pug-html-loader/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/with/download/with-5.1.1.tgz", + "_spec": "5.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/pugjs/with/issues" }, - "author": "ForbesLindesay", - "license": "MIT", "dependencies": { "acorn": "^3.1.0", "acorn-globals": "^3.0.0" }, + "description": "Compile time `with` for strict mode JavaScript", "devDependencies": { "mocha": "~2.5.3", "uglify-js": "^2.4.15" - } -} \ No newline at end of file + }, + "homepage": "https://github.com/pugjs/with#readme", + "license": "MIT", + "main": "index.js", + "name": "with", + "repository": { + "type": "git", + "url": "git+https://github.com/pugjs/with.git" + }, + "scripts": { + "test": "mocha test/index.js -R spec" + }, + "version": "5.1.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/yargs/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/yargs/package.json index 7dfc3ced7..67664e556 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/yargs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/node_modules/yargs/package.json @@ -1,58 +1,41 @@ { - "name": "yargs", - "version": "3.10.0", - "description": "Light-weight option parsing with an argv hash. No optstrings attached.", - "main": "./index.js", - "files": [ - "index.js", - "lib", - "completion.sh.hbs", - "LICENSE" - ], - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - }, - "devDependencies": { - "chai": "^2.2.0", - "coveralls": "^2.11.2", - "hashish": "0.0.4", - "mocha": "^2.2.1", - "nyc": "^2.2.1", - "standard": "^3.11.1" - }, - "scripts": { - "test": "standard && nyc mocha --check-leaks && nyc report", - "coverage": "nyc report --reporter=text-lcov | coveralls" - }, - "repository": { - "type": "git", - "url": "http://github.com/bcoe/yargs.git" - }, - "standard": { - "ignore": [ - "**/example/**" - ], - "globals": [ - "it" + "_args": [ + [ + "yargs@3.10.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "yargs@3.10.0", + "_id": "yargs@3.10.0", + "_inBundle": false, + "_integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "_location": "/pug-html-loader/yargs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs@3.10.0", + "name": "yargs", + "escapedName": "yargs", + "rawSpec": "3.10.0", + "saveSpec": null, + "fetchSpec": "3.10.0" }, - "keywords": [ - "argument", - "args", - "option", - "parser", - "parsing", - "cli", - "command" + "_requiredBy": [ + "/pug-html-loader/uglify-js" ], + "_resolved": "https://registry.nlark.com/yargs/download/yargs-3.10.0.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-3.10.0.tgz", + "_spec": "3.10.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Alex Ford", "email": "Alex.Ford@CodeTunnel.com", "url": "http://CodeTunnel.com" }, + "bugs": { + "url": "https://github.com/bcoe/yargs/issues" + }, "contributors": [ { "name": "Benjamin Coe", @@ -78,8 +61,58 @@ "url": "https://github.com/linclark" } ], - "license": "MIT", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + }, + "description": "Light-weight option parsing with an argv hash. No optstrings attached.", + "devDependencies": { + "chai": "^2.2.0", + "coveralls": "^2.11.2", + "hashish": "0.0.4", + "mocha": "^2.2.1", + "nyc": "^2.2.1", + "standard": "^3.11.1" + }, "engine": { "node": ">=0.4" - } + }, + "files": [ + "index.js", + "lib", + "completion.sh.hbs", + "LICENSE" + ], + "homepage": "https://github.com/bcoe/yargs#readme", + "keywords": [ + "argument", + "args", + "option", + "parser", + "parsing", + "cli", + "command" + ], + "license": "MIT", + "main": "./index.js", + "name": "yargs", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/bcoe/yargs.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "test": "standard && nyc mocha --check-leaks && nyc report" + }, + "standard": { + "ignore": [ + "**/example/**" + ], + "globals": [ + "it" + ] + }, + "version": "3.10.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/package.json b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/package.json index f2f14b6ec..16a26aeaa 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-html-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-html-loader/package.json @@ -1,18 +1,66 @@ { - "name": "pug-html-loader", - "version": "1.1.5", - "description": "Pug to html loader for webpack", - "main": "lib/index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "pug-html-loader@1.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-html-loader@1.1.5", + "_id": "pug-html-loader@1.1.5", + "_inBundle": false, + "_integrity": "sha1-tGhVp3kKMG5D7F2yl9vbt5lfS1o=", + "_location": "/pug-html-loader", + "_phantomChildren": { + "@types/babel-types": "7.0.9", + "@types/babylon": "6.16.5", + "acorn-globals": "3.1.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "center-align": "0.1.3", + "character-parser": "2.2.0", + "clean-css": "4.2.3", + "decamelize": "1.2.0", + "doctypes": "1.1.0", + "js-stringify": "1.0.2", + "json5": "0.5.1", + "jstransformer": "1.0.0", + "object-assign": "4.1.1", + "resolve": "1.20.0", + "right-align": "0.1.3", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "window-size": "0.1.0", + "wordwrap": "0.0.2" }, - "repository": { - "type": "git", - "url": "https://github.com/willyelm/pug-html-loader.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-html-loader@1.1.5", + "name": "pug-html-loader", + "escapedName": "pug-html-loader", + "rawSpec": "1.1.5", + "saveSpec": null, + "fetchSpec": "1.1.5" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/pug-html-loader/download/pug-html-loader-1.1.5.tgz", + "_spec": "1.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Williams Medina", + "email": "williams.medinaa@gmail.com" }, "bugs": { "url": "https://github.com/willyelm/pug-html-loader/issues" }, + "dependencies": { + "loader-utils": "^0.2.17", + "pug": "^2.0.0-rc.2" + }, + "description": "Pug to html loader for webpack", "homepage": "https://github.com/willyelm/pug-html-loader", "keywords": [ "html", @@ -22,10 +70,15 @@ "compile", "plain" ], - "author": "Williams Medina ", "license": "MIT", - "dependencies": { - "loader-utils": "^0.2.17", - "pug": "^2.0.0-rc.2" - } + "main": "lib/index.js", + "name": "pug-html-loader", + "repository": { + "type": "git", + "url": "git+https://github.com/willyelm/pug-html-loader.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-lexer/package.json b/admin/vue2/element-admin-v3/node_modules/pug-lexer/package.json index 88d85d16a..b8e979f6a 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-lexer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-lexer/package.json @@ -1,15 +1,42 @@ { - "name": "pug-lexer", - "version": "5.0.1", - "description": "The pug lexer (takes a string and converts it to an array of tokens)", - "keywords": [ - "pug" + "_args": [ + [ + "pug-lexer@5.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-lexer@5.0.1", + "_id": "pug-lexer@5.0.1", + "_inBundle": false, + "_integrity": "sha1-rkRijFvvmxkLZlaDsojKkCS4sNU=", + "_location": "/pug-lexer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-lexer@5.0.1", + "name": "pug-lexer", + "escapedName": "pug-lexer", + "rawSpec": "5.0.1", + "saveSpec": null, + "fetchSpec": "5.0.1" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-5.0.1.tgz", + "_spec": "5.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, "dependencies": { "character-parser": "^2.2.0", "is-expression": "^4.0.0", "pug-error": "^2.0.0" }, + "description": "The pug lexer (takes a string and converts it to an array of tokens)", "devDependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -18,10 +45,14 @@ "index.js", "index.d.ts" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-lexer", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-lexer" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "5.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-linker/package.json b/admin/vue2/element-admin-v3/node_modules/pug-linker/package.json index df734f47e..3a4c28168 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-linker/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-linker/package.json @@ -1,14 +1,41 @@ { - "name": "pug-linker", - "version": "4.0.0", - "description": "Link multiple pug ASTs together using include/extends", - "keywords": [ - "pug" + "_args": [ + [ + "pug-linker@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-linker@4.0.0", + "_id": "pug-linker@4.0.0", + "_inBundle": false, + "_integrity": "sha1-EsvAWU/Fo+Brn8Web5PBRpYqdwg=", + "_location": "/pug-linker", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-linker@4.0.0", + "name": "pug-linker", + "escapedName": "pug-linker", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Forbes Lindesay" + }, "dependencies": { "pug-error": "^2.0.0", "pug-walk": "^2.0.0" }, + "description": "Link multiple pug ASTs together using include/extends", "devDependencies": { "pug-lexer": "^5.0.0", "pug-load": "^3.0.0", @@ -17,10 +44,14 @@ "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-linker", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-linker" }, - "author": "Forbes Lindesay", - "license": "MIT" + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-load/package.json b/admin/vue2/element-admin-v3/node_modules/pug-load/package.json index f6b03d94e..a3f5502f7 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-load/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-load/package.json @@ -1,14 +1,41 @@ { - "name": "pug-load", - "version": "3.0.0", - "description": "The Pug loader is responsible for loading the depenendencies of a given Pug file.", - "keywords": [ - "pug" + "_args": [ + [ + "pug-load@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-load@3.0.0", + "_id": "pug-load@3.0.0", + "_inBundle": false, + "_integrity": "sha1-n9nNpSICsIrbEdJWgfufNL1BtmI=", + "_location": "/pug-load", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-load@3.0.0", + "name": "pug-load", + "escapedName": "pug-load", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, "dependencies": { "object-assign": "^4.1.1", "pug-walk": "^2.0.0" }, + "description": "The Pug loader is responsible for loading the depenendencies of a given Pug file.", "devDependencies": { "pug-lexer": "^5.0.0", "pug-parser": "^6.0.0" @@ -16,10 +43,14 @@ "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-load", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-load" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-parser/package.json b/admin/vue2/element-admin-v3/node_modules/pug-parser/package.json index d99f41dbb..667ab7d43 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-parser/package.json @@ -1,23 +1,54 @@ { - "name": "pug-parser", - "version": "6.0.0", - "description": "The pug parser (takes an array of tokens and converts it to an abstract syntax tree)", - "keywords": [ - "pug" + "_args": [ + [ + "pug-parser@6.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-parser@6.0.0", + "_id": "pug-parser@6.0.0", + "_inBundle": false, + "_integrity": "sha1-qP3ANYY6lbLB3F6/Ts+AtOdqEmA=", + "_location": "/pug-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-parser@6.0.0", + "name": "pug-parser", + "escapedName": "pug-parser", + "rawSpec": "6.0.0", + "saveSpec": null, + "fetchSpec": "6.0.0" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-6.0.0.tgz", + "_spec": "6.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, "dependencies": { "pug-error": "^2.0.0", "token-stream": "1.0.0" }, + "description": "The pug parser (takes an array of tokens and converts it to an abstract syntax tree)", "devDependencies": {}, "files": [ "lib/inline-tags.js", "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-parser", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-parser" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "6.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-plain-loader/package.json b/admin/vue2/element-admin-v3/node_modules/pug-plain-loader/package.json index e747673c0..d16e57398 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-plain-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-plain-loader/package.json @@ -1,15 +1,47 @@ { - "name": "pug-plain-loader", - "version": "1.1.0", - "description": "Pug to plain html loader for webpack", - "main": "index.js", - "repository": { - "type": "git", - "url": "https://github.com/yyx990803/pug-plain-loader.git" + "_args": [ + [ + "pug-plain-loader@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-plain-loader@1.1.0", + "_id": "pug-plain-loader@1.1.0", + "_inBundle": false, + "_integrity": "sha1-WfO0dShIca/NahjSrTMYsVD9xTM=", + "_location": "/pug-plain-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-plain-loader@1.1.0", + "name": "pug-plain-loader", + "escapedName": "pug-plain-loader", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/pug-plain-loader/download/pug-plain-loader-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You", + "email": "yyx990803@gmail.com" }, "bugs": { "url": "https://github.com/yyx990803/pug-plain-loader/issues" }, + "dependencies": { + "loader-utils": "^1.1.0" + }, + "description": "Pug to plain html loader for webpack", + "devDependencies": { + "pug": "^2.0.3" + }, "homepage": "https://github.com/yyx990803/pug-plain-loader", "keywords": [ "pug", @@ -17,15 +49,15 @@ "webpack", "plain" ], - "author": "Evan You ", "license": "MIT", + "main": "index.js", + "name": "pug-plain-loader", "peerDependencies": { "pug": "^2.0.0 || ^3.0.0" }, - "dependencies": { - "loader-utils": "^1.1.0" + "repository": { + "type": "git", + "url": "git+https://github.com/yyx990803/pug-plain-loader.git" }, - "devDependencies": { - "pug": "^2.0.3" - } + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-runtime/package.json b/admin/vue2/element-admin-v3/node_modules/pug-runtime/package.json index ea995d02d..8dfdca973 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-runtime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-runtime/package.json @@ -1,10 +1,42 @@ { - "name": "pug-runtime", - "version": "3.0.1", - "description": "The runtime components for the pug templating language", - "keywords": [ - "pug" + "_args": [ + [ + "pug-runtime@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-runtime@3.0.1", + "_id": "pug-runtime@3.0.1", + "_inBundle": false, + "_integrity": "sha1-9jaXYgRyPzWoxfb61qzaKhkbg9c=", + "_location": "/pug-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-runtime@3.0.1", + "name": "pug-runtime", + "escapedName": "pug-runtime", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/pug", + "/pug-attrs", + "/pug-code-gen" ], + "_resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "browser": { + "fs": false + }, + "description": "The runtime components for the pug templating language", "devDependencies": { "uglify-js": "^2.6.1" }, @@ -16,18 +48,19 @@ "lib/sources.js", "wrap.js" ], - "scripts": { - "prepublish": "node prepublish", - "pretest": "npm run prepublish", - "build": "node prepublish" - }, + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-runtime", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-runtime" }, - "browser": { - "fs": false + "scripts": { + "build": "node prepublish", + "prepublish": "node prepublish", + "pretest": "npm run prepublish" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-strip-comments/package.json b/admin/vue2/element-admin-v3/node_modules/pug-strip-comments/package.json index 539cf44d4..392ade234 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-strip-comments/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-strip-comments/package.json @@ -1,23 +1,55 @@ { - "name": "pug-strip-comments", - "version": "2.0.0", - "description": "Strip comments from a Pug token stream (from the lexer)", - "keywords": [ - "pug" + "_args": [ + [ + "pug-strip-comments@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-strip-comments@2.0.0", + "_id": "pug-strip-comments@2.0.0", + "_inBundle": false, + "_integrity": "sha1-+UsH/WtJVSMzD0kKf1VLT/h2MD4=", + "_location": "/pug-strip-comments", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-strip-comments@2.0.0", + "name": "pug-strip-comments", + "escapedName": "pug-strip-comments", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/pug" ], + "_resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, "dependencies": { "pug-error": "^2.0.0" }, + "description": "Strip comments from a Pug token stream (from the lexer)", "devDependencies": { "line-json": "^2.0.0" }, "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-strip-comments", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-strip-comments" }, - "author": "Timothy Gu ", - "license": "MIT" + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug-walk/package.json b/admin/vue2/element-admin-v3/node_modules/pug-walk/package.json index 080c713e3..23c8d6984 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug-walk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug-walk/package.json @@ -1,10 +1,39 @@ { - "name": "pug-walk", - "version": "2.0.0", - "description": "Walk and transform a pug AST", - "keywords": [ - "pug" + "_args": [ + [ + "pug-walk@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pug-walk@2.0.0", + "_id": "pug-walk@2.0.0", + "_inBundle": false, + "_integrity": "sha1-QXqrwpIyu0SZtbUGmistKiTV9f4=", + "_location": "/pug-walk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug-walk@2.0.0", + "name": "pug-walk", + "escapedName": "pug-walk", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/pug-filters", + "/pug-linker", + "/pug-load" ], + "_resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "description": "Walk and transform a pug AST", "devDependencies": { "pug-lexer": "^5.0.0", "pug-parser": "^6.0.0" @@ -12,10 +41,14 @@ "files": [ "index.js" ], + "keywords": [ + "pug" + ], + "license": "MIT", + "name": "pug-walk", "repository": { "type": "git", "url": "https://github.com/pugjs/pug/tree/master/packages/pug-walk" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pug/package.json b/admin/vue2/element-admin-v3/node_modules/pug/package.json index ed4d3f607..053d1c7af 100644 --- a/admin/vue2/element-admin-v3/node_modules/pug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pug/package.json @@ -1,30 +1,40 @@ { - "name": "pug", - "description": "A clean, whitespace-sensitive template language for writing HTML", - "keywords": [ - "html", - "jade", - "pug", - "template" + "_args": [ + [ + "pug@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "3.0.2", - "author": "TJ Holowaychuk ", - "maintainers": [ - "Forbes Lindesay ", - "Matthias Le Brun ", - "Joshua Appelman ", - "Jonathan Ong ", - "Alex Kocharin ", - "Hemanth ", - "Timothy Gu ", - "Andreas Lubbe " + "_development": true, + "_from": "pug@3.0.2", + "_id": "pug@3.0.2", + "_inBundle": false, + "_integrity": "sha1-81xxBzQ0VOQ7wnrg/3bHMbeOpTU=", + "_location": "/pug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pug@3.0.2", + "name": "pug", + "escapedName": "pug", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "#DEV:/" ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/pugjs/pug/tree/master/packages/pug" + "_resolved": "https://registry.npm.taobao.org/pug/download/pug-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": { + "fs": false }, - "main": "lib", "dependencies": { "pug-code-gen": "^3.0.2", "pug-filters": "^4.0.0", @@ -35,6 +45,7 @@ "pug-runtime": "^3.0.1", "pug-strip-comments": "^2.0.0" }, + "description": "A clean, whitespace-sensitive template language for writing HTML", "devDependencies": { "jstransformer-cdata": "^1.0.0", "jstransformer-coffee-script": "^1.0.0", @@ -51,8 +62,53 @@ "lib/index.js", "register.js" ], - "browser": { - "fs": false + "homepage": "https://pugjs.org", + "keywords": [ + "html", + "jade", + "pug", + "template" + ], + "license": "MIT", + "main": "lib", + "maintainers": [ + { + "name": "Forbes Lindesay", + "email": "forbes@lindesay.co.uk" + }, + { + "name": "Matthias Le Brun", + "email": "mlbli@me.com" + }, + { + "name": "Joshua Appelman", + "email": "joshua@jbna.nl" + }, + { + "name": "Jonathan Ong", + "email": "jonathanrichardong@gmail.com" + }, + { + "name": "Alex Kocharin", + "email": "alex@kocharin.ru" + }, + { + "name": "Hemanth", + "email": "hemanth.hm@gmail.com" + }, + { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com" + }, + { + "name": "Andreas Lubbe", + "email": "git@lubbe.org" + } + ], + "name": "pug", + "repository": { + "type": "git", + "url": "https://github.com/pugjs/pug/tree/master/packages/pug" }, - "homepage": "https://pugjs.org" + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/pump/package.json b/admin/vue2/element-admin-v3/node_modules/pump/package.json index 0b838f90d..0a9244e46 100644 --- a/admin/vue2/element-admin-v3/node_modules/pump/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pump/package.json @@ -1,24 +1,62 @@ { - "name": "pump", - "version": "3.0.0", - "repository": "git://github.com/mafintosh/pump.git", - "license": "MIT", - "description": "pipe streams together and close all of them if one of them closes", + "_args": [ + [ + "pump@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pump@3.0.0", + "_id": "pump@3.0.0", + "_inBundle": false, + "_integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "_location": "/pump", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pump@3.0.0", + "name": "pump", + "escapedName": "pump", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/get-stream" + ], + "_resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, "browser": { "fs": false }, + "bugs": { + "url": "https://github.com/mafintosh/pump/issues" + }, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "description": "pipe streams together and close all of them if one of them closes", + "homepage": "https://github.com/mafintosh/pump#readme", "keywords": [ "streams", "pipe", "destroy", "callback" ], - "author": "Mathias Buus Madsen ", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "license": "MIT", + "name": "pump", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/pump.git" }, "scripts": { "test": "node test-browser.js && node test-node.js" - } + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/pumpify/node_modules/pump/package.json b/admin/vue2/element-admin-v3/node_modules/pumpify/node_modules/pump/package.json index 0f921f6c0..e84e4b83b 100644 --- a/admin/vue2/element-admin-v3/node_modules/pumpify/node_modules/pump/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pumpify/node_modules/pump/package.json @@ -1,24 +1,62 @@ { - "name": "pump", - "version": "2.0.1", - "repository": "git://github.com/mafintosh/pump.git", - "license": "MIT", - "description": "pipe streams together and close all of them if one of them closes", + "_args": [ + [ + "pump@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pump@2.0.1", + "_id": "pump@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "_location": "/pumpify/pump", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pump@2.0.1", + "name": "pump", + "escapedName": "pump", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/pumpify" + ], + "_resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, "browser": { "fs": false }, + "bugs": { + "url": "https://github.com/mafintosh/pump/issues" + }, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "description": "pipe streams together and close all of them if one of them closes", + "homepage": "https://github.com/mafintosh/pump#readme", "keywords": [ "streams", "pipe", "destroy", "callback" ], - "author": "Mathias Buus Madsen ", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "license": "MIT", + "name": "pump", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/pump.git" }, "scripts": { "test": "node test-browser.js && node test-node.js" - } + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/pumpify/package.json b/admin/vue2/element-admin-v3/node_modules/pumpify/package.json index 616e3c34e..128d31d84 100644 --- a/admin/vue2/element-admin-v3/node_modules/pumpify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/pumpify/package.json @@ -1,24 +1,52 @@ { - "name": "pumpify", - "version": "1.5.1", - "description": "Combine an array of streams into a single duplex stream using pump and duplexify", - "main": "index.js", + "_args": [ + [ + "pumpify@1.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "pumpify@1.5.1", + "_id": "pumpify@1.5.1", + "_inBundle": false, + "_integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "_location": "/pumpify", + "_phantomChildren": { + "end-of-stream": "1.4.4", + "once": "1.4.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "pumpify@1.5.1", + "name": "pumpify", + "escapedName": "pumpify", + "rawSpec": "1.5.1", + "saveSpec": null, + "fetchSpec": "1.5.1" + }, + "_requiredBy": [ + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", + "_spec": "1.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus" + }, + "bugs": { + "url": "https://github.com/mafintosh/pumpify/issues" + }, "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" }, + "description": "Combine an array of streams into a single duplex stream using pump and duplexify", "devDependencies": { "tape": "^4.8.0", "through2": "^2.0.3" }, - "scripts": { - "test": "tape test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/pumpify" - }, + "homepage": "https://github.com/mafintosh/pumpify", "keywords": [ "pump", "duplexify", @@ -28,10 +56,15 @@ "pipeline", "combine" ], - "author": "Mathias Buus", "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/pumpify/issues" + "main": "index.js", + "name": "pumpify", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/pumpify.git" + }, + "scripts": { + "test": "tape test.js" }, - "homepage": "https://github.com/mafintosh/pumpify" + "version": "1.5.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/punycode/package.json b/admin/vue2/element-admin-v3/node_modules/punycode/package.json index 9202ccf8c..7c8cc3006 100644 --- a/admin/vue2/element-admin-v3/node_modules/punycode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/punycode/package.json @@ -1,58 +1,89 @@ { - "name": "punycode", - "version": "2.1.1", - "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", - "homepage": "https://mths.be/punycode", - "main": "punycode.js", - "jsnext:main": "punycode.es6.js", - "module": "punycode.es6.js", - "engines": { - "node": ">=6" + "_args": [ + [ + "punycode@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "punycode@2.1.1", + "_id": "punycode@2.1.1", + "_inBundle": false, + "_integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "_location": "/punycode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "punycode@2.1.1", + "name": "punycode", + "escapedName": "punycode", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" }, - "keywords": [ - "punycode", - "unicode", - "idn", - "idna", - "dns", - "url", - "domain" + "_requiredBy": [ + "/tough-cookie", + "/uri-js" ], - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Mathias Bynens", "url": "https://mathiasbynens.be/" }, + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, "contributors": [ { "name": "Mathias Bynens", "url": "https://mathiasbynens.be/" } ], - "repository": { - "type": "git", - "url": "https://github.com/bestiejs/punycode.js.git" + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "devDependencies": { + "codecov": "^1.0.1", + "istanbul": "^0.4.1", + "mocha": "^2.5.3" + }, + "engines": { + "node": ">=6" }, - "bugs": "https://github.com/bestiejs/punycode.js/issues", "files": [ "LICENSE-MIT.txt", "punycode.js", "punycode.es6.js" ], - "scripts": { - "test": "mocha tests", - "prepublish": "node scripts/prepublish.js" - }, - "devDependencies": { - "codecov": "^1.0.1", - "istanbul": "^0.4.1", - "mocha": "^2.5.3" - }, + "homepage": "https://mths.be/punycode", + "jsnext:main": "punycode.es6.js", "jspm": { "map": { "./punycode.js": { "node": "@node/punycode" } } - } + }, + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "license": "MIT", + "main": "punycode.js", + "module": "punycode.es6.js", + "name": "punycode", + "repository": { + "type": "git", + "url": "git+https://github.com/bestiejs/punycode.js.git" + }, + "scripts": { + "prepublish": "node scripts/prepublish.js", + "test": "mocha tests" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/q/package.json b/admin/vue2/element-admin-v3/node_modules/q/package.json index 8c3b5fe37..c243d1a46 100644 --- a/admin/vue2/element-admin-v3/node_modules/q/package.json +++ b/admin/vue2/element-admin-v3/node_modules/q/package.json @@ -1,9 +1,84 @@ { - "name": "q", - "version": "1.5.1", + "_args": [ + [ + "q@1.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "q@1.5.1", + "_id": "q@1.5.1", + "_inBundle": false, + "_integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "_location": "/q", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "q@1.5.1", + "name": "q", + "escapedName": "q", + "rawSpec": "1.5.1", + "saveSpec": null, + "fetchSpec": "1.5.1" + }, + "_requiredBy": [ + "/coa" + ], + "_resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", + "_spec": "1.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kris Kowal", + "email": "kris@cixar.com", + "url": "https://github.com/kriskowal" + }, + "bugs": { + "url": "http://github.com/kriskowal/q/issues" + }, + "contributors": [ + { + "name": "Kris Kowal", + "email": "kris@cixar.com", + "url": "https://github.com/kriskowal" + }, + { + "name": "Irakli Gozalishvili", + "email": "rfobic@gmail.com", + "url": "http://jeditoolkit.com" + }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + } + ], + "dependencies": {}, "description": "A library for promises (CommonJS/Promises/A,B,D)", + "devDependencies": { + "cover": "*", + "grunt": "~0.4.1", + "grunt-cli": "~0.1.9", + "grunt-contrib-uglify": "~0.9.1", + "jasmine-node": "1.11.0", + "jshint": "~2.1.9", + "matcha": "~0.2.0", + "opener": "*", + "promises-aplus-tests": "1.x" + }, + "directories": { + "test": "./spec" + }, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + }, + "files": [ + "LICENSE", + "q.js", + "queue.js" + ], "homepage": "https://github.com/kriskowal/q", - "author": "Kris Kowal (https://github.com/kriskowal)", "keywords": [ "q", "promise", @@ -18,59 +93,28 @@ "browser", "node" ], - "contributors": [ - "Kris Kowal (https://github.com/kriskowal)", - "Irakli Gozalishvili (http://jeditoolkit.com)", - "Domenic Denicola (http://domenicdenicola.com)" - ], - "bugs": { - "mail": "kris@cixar.com", - "url": "http://github.com/kriskowal/q/issues" - }, "license": "MIT", "main": "q.js", - "files": [ - "LICENSE", - "q.js", - "queue.js" - ], + "name": "q", + "overlay": { + "teleport": { + "dependencies": { + "system": ">=0.0.4" + } + } + }, "repository": { "type": "git", "url": "git://github.com/kriskowal/q.git" }, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - }, - "dependencies": {}, - "devDependencies": { - "cover": "*", - "grunt": "~0.4.1", - "grunt-cli": "~0.1.9", - "grunt-contrib-uglify": "~0.9.1", - "jasmine-node": "1.11.0", - "jshint": "~2.1.9", - "matcha": "~0.2.0", - "opener": "*", - "promises-aplus-tests": "1.x" - }, "scripts": { - "test": "npm ls -s && jasmine-node spec && promises-aplus-tests spec/aplus-adapter && npm run -s lint", - "test-browser": "opener spec/q-spec.html", "benchmark": "matcha", - "lint": "jshint q.js", "cover": "cover run jasmine-node spec && cover report html && opener cover_html/index.html", + "lint": "jshint q.js", "minify": "grunt", - "prepublish": "grunt" - }, - "overlay": { - "teleport": { - "dependencies": { - "system": ">=0.0.4" - } - } + "prepublish": "grunt", + "test": "npm ls -s && jasmine-node spec && promises-aplus-tests spec/aplus-adapter && npm run -s lint", + "test-browser": "opener spec/q-spec.html" }, - "directories": { - "test": "./spec" - } + "version": "1.5.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/qs/package.json b/admin/vue2/element-admin-v3/node_modules/qs/package.json index 28d98a11b..0cd11a191 100644 --- a/admin/vue2/element-admin-v3/node_modules/qs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/qs/package.json @@ -1,58 +1,90 @@ { + "_args": [ + [ + "qs@6.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "qs@6.7.0", + "_id": "qs@6.7.0", + "_inBundle": false, + "_integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "_location": "/qs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "qs@6.7.0", "name": "qs", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/ljharb/qs", - "version": "6.7.0", - "repository": { - "type": "git", - "url": "https://github.com/ljharb/qs.git" - }, - "main": "lib/index.js", - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "keywords": [ - "querystring", - "qs", - "query", - "url", - "parse", - "stringify" - ], - "engines": { - "node": ">=0.6" - }, - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^13.1.1", - "browserify": "^16.2.3", - "covert": "^1.1.1", - "editorconfig-tools": "^0.1.1", - "eslint": "^5.15.3", - "evalmd": "^0.0.17", - "for-each": "^0.3.3", - "iconv-lite": "^0.4.24", - "mkdirp": "^0.5.1", - "object-inspect": "^1.6.0", - "qs-iconv": "^1.0.4", - "safe-publish-latest": "^1.1.2", - "safer-buffer": "^2.1.2", - "tape": "^4.10.1" - }, - "scripts": { - "prepublish": "safe-publish-latest && npm run dist", - "pretest": "npm run --silent readme && npm run --silent lint", - "test": "npm run --silent coverage", - "tests-only": "node test", - "readme": "evalmd README.md", - "postlint": "editorconfig-tools check * lib/* test/*", - "lint": "eslint lib/*.js test/*.js", - "coverage": "covert test", - "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js" - }, - "license": "BSD-3-Clause" + "escapedName": "qs", + "rawSpec": "6.7.0", + "saveSpec": null, + "fetchSpec": "6.7.0" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "_spec": "6.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/ljharb/qs/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "devDependencies": { + "@ljharb/eslint-config": "^13.1.1", + "browserify": "^16.2.3", + "covert": "^1.1.1", + "editorconfig-tools": "^0.1.1", + "eslint": "^5.15.3", + "evalmd": "^0.0.17", + "for-each": "^0.3.3", + "iconv-lite": "^0.4.24", + "mkdirp": "^0.5.1", + "object-inspect": "^1.6.0", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^1.1.2", + "safer-buffer": "^2.1.2", + "tape": "^4.10.1" + }, + "engines": { + "node": ">=0.6" + }, + "homepage": "https://github.com/ljharb/qs", + "keywords": [ + "querystring", + "qs", + "query", + "url", + "parse", + "stringify" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "qs", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/qs.git" + }, + "scripts": { + "coverage": "covert test", + "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", + "lint": "eslint lib/*.js test/*.js", + "postlint": "editorconfig-tools check * lib/* test/*", + "prepublish": "safe-publish-latest && npm run dist", + "pretest": "npm run --silent readme && npm run --silent lint", + "readme": "evalmd README.md", + "test": "npm run --silent coverage", + "tests-only": "node test" + }, + "version": "6.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/query-string/package.json b/admin/vue2/element-admin-v3/node_modules/query-string/package.json index f3cc9d14f..d0189934d 100644 --- a/admin/vue2/element-admin-v3/node_modules/query-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/query-string/package.json @@ -1,23 +1,57 @@ { - "name": "query-string", - "version": "4.3.4", - "description": "Parse and stringify URL query strings", - "license": "MIT", - "repository": "sindresorhus/query-string", + "_args": [ + [ + "query-string@4.3.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "query-string@4.3.4", + "_id": "query-string@4.3.4", + "_inBundle": false, + "_integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "_location": "/query-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "query-string@4.3.4", + "name": "query-string", + "escapedName": "query-string", + "rawSpec": "4.3.4", + "saveSpec": null, + "fetchSpec": "4.3.4" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1616068686629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", + "_spec": "4.3.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/query-string/issues" + }, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "description": "Parse and stringify URL query strings", + "devDependencies": { + "ava": "^0.17.0", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/query-string#readme", "keywords": [ "browser", "querystring", @@ -33,12 +67,14 @@ "encode", "decode" ], - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "license": "MIT", + "name": "query-string", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/query-string.git" }, - "devDependencies": { - "ava": "^0.17.0", - "xo": "^0.16.0" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.3.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/querystring-es3/package.json b/admin/vue2/element-admin-v3/node_modules/querystring-es3/package.json index 695d8a0e9..1fd25a7ee 100644 --- a/admin/vue2/element-admin-v3/node_modules/querystring-es3/package.json +++ b/admin/vue2/element-admin-v3/node_modules/querystring-es3/package.json @@ -1,27 +1,68 @@ { - "name": "querystring-es3", - "id": "querystring-es3", - "version": "0.2.1", - "description": "Node's querystring module for all engines. (ES3 compat fork)", - "keywords": [ "commonjs", "query", "querystring" ], - "author": "Irakli Gozalishvili ", - "repository": { - "type": "git", - "url": "git://github.com/mike-spainhower/querystring.git", - "web": "https://github.com/mike-spainhower/querystring" + "_args": [ + [ + "querystring-es3@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "querystring-es3@0.2.1", + "_id": "querystring-es3@0.2.1", + "_inBundle": false, + "_integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "_location": "/querystring-es3", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "querystring-es3@0.2.1", + "name": "querystring-es3", + "escapedName": "querystring-es3", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Irakli Gozalishvili", + "email": "rfobic@gmail.com" }, "bugs": { "url": "http://github.com/mike-spainhower/querystring/issues/" }, + "description": "Node's querystring module for all engines. (ES3 compat fork)", "devDependencies": { - "test": "~0.x.0", "phantomify": "~0.x.0", "retape": "~0.x.0", - "tape": "~0.1.5" + "tape": "~0.1.5", + "test": "~0.x.0" }, "engines": { "node": ">=0.4.x" }, + "homepage": "https://github.com/mike-spainhower/querystring#readme", + "id": "querystring-es3", + "keywords": [ + "commonjs", + "query", + "querystring" + ], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/Gozala/enchain/License.md" + } + ], + "name": "querystring-es3", + "repository": { + "type": "git", + "url": "git://github.com/mike-spainhower/querystring.git", + "web": "https://github.com/mike-spainhower/querystring" + }, "scripts": { "test": "npm run test-node && npm run test-browser && npm run test-tap", "test-browser": "node ./node_modules/phantomify/bin/cmd.js ./test/common-index.js", @@ -58,8 +99,5 @@ ] } }, - "licenses": [{ - "type" : "MIT", - "url" : "https://github.com/Gozala/enchain/License.md" - }] + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/querystring/package.json b/admin/vue2/element-admin-v3/node_modules/querystring/package.json index bdbc97073..b2fb0d288 100644 --- a/admin/vue2/element-admin-v3/node_modules/querystring/package.json +++ b/admin/vue2/element-admin-v3/node_modules/querystring/package.json @@ -1,27 +1,68 @@ { - "name": "querystring", - "id": "querystring", - "version": "0.2.0", - "description": "Node's querystring module for all engines.", - "keywords": [ "commonjs", "query", "querystring" ], - "author": "Irakli Gozalishvili ", - "repository": { - "type": "git", - "url": "git://github.com/Gozala/querystring.git", - "web": "https://github.com/Gozala/querystring" + "_args": [ + [ + "querystring@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "querystring@0.2.0", + "_id": "querystring@0.2.0", + "_inBundle": false, + "_integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "_location": "/querystring", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "querystring@0.2.0", + "name": "querystring", + "escapedName": "querystring", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/url" + ], + "_resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz?cache=0&sync_timestamp=1613399913000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Irakli Gozalishvili", + "email": "rfobic@gmail.com" }, "bugs": { "url": "http://github.com/Gozala/querystring/issues/" }, + "description": "Node's querystring module for all engines.", "devDependencies": { - "test": "~0.x.0", "phantomify": "~0.x.0", "retape": "~0.x.0", - "tape": "~0.1.5" + "tape": "~0.1.5", + "test": "~0.x.0" }, "engines": { "node": ">=0.4.x" }, + "homepage": "https://github.com/Gozala/querystring#readme", + "id": "querystring", + "keywords": [ + "commonjs", + "query", + "querystring" + ], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/Gozala/enchain/License.md" + } + ], + "name": "querystring", + "repository": { + "type": "git", + "url": "git://github.com/Gozala/querystring.git", + "web": "https://github.com/Gozala/querystring" + }, "scripts": { "test": "npm run test-node && npm run test-browser && npm run test-tap", "test-browser": "node ./node_modules/phantomify/bin/cmd.js ./test/common-index.js", @@ -58,8 +99,5 @@ ] } }, - "licenses": [{ - "type" : "MIT", - "url" : "https://github.com/Gozala/enchain/License.md" - }] + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/querystringify/package.json b/admin/vue2/element-admin-v3/node_modules/querystringify/package.json index 7b259047f..133031034 100644 --- a/admin/vue2/element-admin-v3/node_modules/querystringify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/querystringify/package.json @@ -1,16 +1,47 @@ { - "name": "querystringify", - "version": "2.2.0", - "description": "Querystringify - Small, simple but powerful query string parser.", - "main": "index.js", - "scripts": { - "test": "nyc --reporter=html --reporter=text mocha test.js", - "watch": "mocha --watch test.js" + "_args": [ + [ + "querystringify@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "querystringify@2.2.0", + "_id": "querystringify@2.2.0", + "_inBundle": false, + "_integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", + "_location": "/querystringify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "querystringify@2.2.0", + "name": "querystringify", + "escapedName": "querystringify", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" }, - "repository": { - "type": "git", - "url": "https://github.com/unshiftio/querystringify" + "_requiredBy": [ + "/url-parse" + ], + "_resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597687052330&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Arnout Kazemier" }, + "bugs": { + "url": "https://github.com/unshiftio/querystringify/issues" + }, + "description": "Querystringify - Small, simple but powerful query string parser.", + "devDependencies": { + "assume": "^2.1.0", + "coveralls": "^3.1.0", + "mocha": "^8.1.1", + "nyc": "^15.1.0", + "pre-commit": "^1.2.2" + }, + "homepage": "https://github.com/unshiftio/querystringify", "keywords": [ "query", "string", @@ -22,17 +53,16 @@ "decode", "encode" ], - "author": "Arnout Kazemier", "license": "MIT", - "bugs": { - "url": "https://github.com/unshiftio/querystringify/issues" + "main": "index.js", + "name": "querystringify", + "repository": { + "type": "git", + "url": "git+https://github.com/unshiftio/querystringify.git" }, - "homepage": "https://github.com/unshiftio/querystringify", - "devDependencies": { - "assume": "^2.1.0", - "coveralls": "^3.1.0", - "mocha": "^8.1.1", - "nyc": "^15.1.0", - "pre-commit": "^1.2.2" - } + "scripts": { + "test": "nyc --reporter=html --reporter=text mocha test.js", + "watch": "mocha --watch test.js" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/randombytes/package.json b/admin/vue2/element-admin-v3/node_modules/randombytes/package.json index 36236526b..8fdfe6d68 100644 --- a/admin/vue2/element-admin-v3/node_modules/randombytes/package.json +++ b/admin/vue2/element-admin-v3/node_modules/randombytes/package.json @@ -1,28 +1,45 @@ { - "name": "randombytes", - "version": "2.1.0", - "description": "random bytes from browserify stand alone", - "main": "index.js", - "scripts": { - "test": "standard && node test.js | tspec", - "phantom": "zuul --phantom -- test.js", - "local": "zuul --local --no-coverage -- test.js" - }, - "repository": { - "type": "git", - "url": "git@github.com:crypto-browserify/randombytes.git" + "_args": [ + [ + "randombytes@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "randombytes@2.1.0", + "_id": "randombytes@2.1.0", + "_inBundle": false, + "_integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "_location": "/randombytes", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "randombytes@2.1.0", + "name": "randombytes", + "escapedName": "randombytes", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "keywords": [ - "crypto", - "random" + "_requiredBy": [ + "/browserify-rsa", + "/crypto-browserify", + "/diffie-hellman", + "/public-encrypt", + "/randomfill" ], + "_resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", + "browser": "browser.js", "bugs": { "url": "https://github.com/crypto-browserify/randombytes/issues" }, - "homepage": "https://github.com/crypto-browserify/randombytes", - "browser": "browser.js", + "dependencies": { + "safe-buffer": "^5.1.0" + }, + "description": "random bytes from browserify stand alone", "devDependencies": { "phantomjs": "^1.9.9", "standard": "^10.0.2", @@ -30,7 +47,22 @@ "tape": "^4.6.3", "zuul": "^3.7.2" }, - "dependencies": { - "safe-buffer": "^5.1.0" - } + "homepage": "https://github.com/crypto-browserify/randombytes", + "keywords": [ + "crypto", + "random" + ], + "license": "MIT", + "main": "index.js", + "name": "randombytes", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/crypto-browserify/randombytes.git" + }, + "scripts": { + "local": "zuul --local --no-coverage -- test.js", + "phantom": "zuul --phantom -- test.js", + "test": "standard && node test.js | tspec" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/randomfill/package.json b/admin/vue2/element-admin-v3/node_modules/randomfill/package.json index ce4be97d8..ac54b297b 100644 --- a/admin/vue2/element-admin-v3/node_modules/randomfill/package.json +++ b/admin/vue2/element-admin-v3/node_modules/randomfill/package.json @@ -1,28 +1,42 @@ { - "name": "randomfill", - "version": "1.0.4", - "description": "random fill from browserify stand alone", - "main": "index.js", - "scripts": { - "test": "standard && node test.js | tspec", - "phantom": "zuul --phantom -- test.js", - "local": "zuul --local --no-coverage -- test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/crypto-browserify/randomfill.git" + "_args": [ + [ + "randomfill@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "randomfill@1.0.4", + "_id": "randomfill@1.0.4", + "_inBundle": false, + "_integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "_location": "/randomfill", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "randomfill@1.0.4", + "name": "randomfill", + "escapedName": "randomfill", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" }, - "keywords": [ - "crypto", - "random" + "_requiredBy": [ + "/crypto-browserify" ], + "_resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": "", - "license": "MIT", + "browser": "browser.js", "bugs": { "url": "https://github.com/crypto-browserify/randomfill/issues" }, - "homepage": "https://github.com/crypto-browserify/randomfill", - "browser": "browser.js", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + }, + "description": "random fill from browserify stand alone", "devDependencies": { "phantomjs": "^1.9.9", "standard": "^10.0.2", @@ -30,8 +44,22 @@ "tape": "^4.6.3", "zuul": "^3.7.2" }, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } + "homepage": "https://github.com/crypto-browserify/randomfill", + "keywords": [ + "crypto", + "random" + ], + "license": "MIT", + "main": "index.js", + "name": "randomfill", + "repository": { + "type": "git", + "url": "git+https://github.com/crypto-browserify/randomfill.git" + }, + "scripts": { + "local": "zuul --local --no-coverage -- test.js", + "phantom": "zuul --phantom -- test.js", + "test": "standard && node test.js | tspec" + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/range-parser/package.json b/admin/vue2/element-admin-v3/node_modules/range-parser/package.json index abea6d852..ed4bc1a20 100644 --- a/admin/vue2/element-admin-v3/node_modules/range-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/range-parser/package.json @@ -1,44 +1,96 @@ { - "name": "range-parser", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "description": "Range header field string parser", - "version": "1.2.1", - "contributors": [ - "Douglas Christopher Wilson ", - "James Wyatt Cready ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "range-parser@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "keywords": [ - "range", - "parser", - "http" + "_from": "range-parser@1.2.1", + "_id": "range-parser@1.2.1", + "_inBundle": false, + "_integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "_location": "/range-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "range-parser@1.2.1", + "name": "range-parser", + "escapedName": "range-parser", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" + }, + "_requiredBy": [ + "/express", + "/send", + "/serve-static/send", + "/webpack-dev-middleware" ], - "repository": "jshttp/range-parser", + "_resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/jshttp/range-parser/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "wyatt.cready@lanetix.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "description": "Range header field string parser", "devDependencies": { "deep-equal": "1.0.1", "eslint": "5.16.0", "eslint-config-standard": "12.0.0", - "eslint-plugin-markdown": "1.0.0", "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", "eslint-plugin-node": "8.0.1", "eslint-plugin-promise": "4.1.1", "eslint-plugin-standard": "4.0.0", "mocha": "6.1.4", "nyc": "14.1.1" }, + "engines": { + "node": ">= 0.6" + }, "files": [ "HISTORY.md", "LICENSE", "index.js" ], - "engines": { - "node": ">= 0.6" + "homepage": "https://github.com/jshttp/range-parser#readme", + "keywords": [ + "range", + "parser", + "http" + ], + "license": "MIT", + "name": "range-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/range-parser.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec", "test-cov": "nyc --reporter=html --reporter=text npm test", "test-travis": "nyc --reporter=text npm test" - } + }, + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/raw-body/package.json b/admin/vue2/element-admin-v3/node_modules/raw-body/package.json index 7f1e5af7d..64b006eae 100644 --- a/admin/vue2/element-admin-v3/node_modules/raw-body/package.json +++ b/admin/vue2/element-admin-v3/node_modules/raw-body/package.json @@ -1,20 +1,57 @@ { - "name": "raw-body", - "description": "Get and validate the raw body of a readable stream.", - "version": "2.4.0", - "author": "Jonathan Ong (http://jongleberry.com)", + "_args": [ + [ + "raw-body@2.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "raw-body@2.4.0", + "_id": "raw-body@2.4.0", + "_inBundle": false, + "_integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "_location": "/raw-body", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "raw-body@2.4.0", + "name": "raw-body", + "escapedName": "raw-body", + "rawSpec": "2.4.0", + "saveSpec": null, + "fetchSpec": "2.4.0" + }, + "_requiredBy": [ + "/body-parser" + ], + "_resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "_spec": "2.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/raw-body/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Raynos " + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Raynos", + "email": "raynos2@gmail.com" + } ], - "license": "MIT", - "repository": "stream-utils/raw-body", "dependencies": { "bytes": "3.1.0", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, + "description": "Get and validate the raw body of a readable stream.", "devDependencies": { "bluebird": "3.5.4", "eslint": "5.16.0", @@ -39,10 +76,18 @@ "index.d.ts", "index.js" ], + "homepage": "https://github.com/stream-utils/raw-body#readme", + "license": "MIT", + "name": "raw-body", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/raw-body.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/" - } + }, + "version": "2.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/raw-loader/package.json b/admin/vue2/element-admin-v3/node_modules/raw-loader/package.json index 86facf3f4..849d5e0f7 100644 --- a/admin/vue2/element-admin-v3/node_modules/raw-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/raw-loader/package.json @@ -1,16 +1,51 @@ -{ - "name": "raw-loader", - "version": "0.5.1", - "author": "Tobias Koppers @sokra", - "description": "raw loader module for webpack", - "repository": { - "type": "git", - "url": "git@github.com:webpack/raw-loader.git" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://www.opensource.org/licenses/mit-license.php" - } - ] -} +{ + "_args": [ + [ + "raw-loader@0.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "raw-loader@0.5.1", + "_id": "raw-loader@0.5.1", + "_inBundle": false, + "_integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "_location": "/raw-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "raw-loader@0.5.1", + "name": "raw-loader", + "escapedName": "raw-loader", + "rawSpec": "0.5.1", + "saveSpec": null, + "fetchSpec": "0.5.1" + }, + "_requiredBy": [ + "/script-loader" + ], + "_resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-0.5.1.tgz", + "_spec": "0.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/raw-loader/issues" + }, + "description": "raw loader module for webpack", + "homepage": "https://github.com/webpack/raw-loader#readme", + "licenses": [ + { + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" + } + ], + "name": "raw-loader", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/webpack/raw-loader.git" + }, + "version": "0.5.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/read-cache/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/read-cache/node_modules/pify/package.json index 311d1982e..ce79f928f 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-cache/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-cache/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "2.3.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@2.3.0", + "_id": "pify@2.3.0", + "_inBundle": false, + "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "_location": "/read-cache/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@2.3.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/read-cache" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^1.0.0", + "v8-natives": "0.0.2", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -39,10 +70,15 @@ "async", "es2015" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^1.0.0", - "v8-natives": "0.0.2", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/read-cache/package.json b/admin/vue2/element-admin-v3/node_modules/read-cache/package.json index 87199b0e0..e948b976f 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-cache/package.json @@ -1,34 +1,66 @@ { - "name": "read-cache", - "version": "1.0.0", + "_args": [ + [ + "read-cache@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "read-cache@1.0.0", + "_id": "read-cache@1.0.0", + "_inBundle": false, + "_integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "_location": "/read-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "read-cache@1.0.0", + "name": "read-cache", + "escapedName": "read-cache", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/postcss-import" + ], + "_resolved": "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bogdan Chadkin", + "email": "trysound@yandex.ru" + }, + "bugs": { + "url": "https://github.com/TrySound/read-cache/issues" + }, + "dependencies": { + "pify": "^2.3.0" + }, "description": "Reads and caches the entire contents of a file until it is modified", + "devDependencies": { + "ava": "^0.9.1", + "del": "^2.2.0" + }, "files": [ "index.js" ], - "main": "index.js", - "scripts": { - "test": "ava" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/TrySound/read-cache.git" - }, + "homepage": "https://github.com/TrySound/read-cache#readme", "keywords": [ "fs", "read", "cache" ], - "author": "Bogdan Chadkin ", "license": "MIT", - "bugs": { - "url": "https://github.com/TrySound/read-cache/issues" + "main": "index.js", + "name": "read-cache", + "repository": { + "type": "git", + "url": "git+https://github.com/TrySound/read-cache.git" }, - "homepage": "https://github.com/TrySound/read-cache#readme", - "devDependencies": { - "ava": "^0.9.1", - "del": "^2.2.0" + "scripts": { + "test": "ava" }, - "dependencies": { - "pify": "^2.3.0" - } + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/find-up/package.json b/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/find-up/package.json index 478866c49..5f1bb4bfe 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/find-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/find-up/package.json @@ -1,23 +1,58 @@ { - "name": "find-up", - "version": "1.1.2", - "description": "Find a file by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", + "_args": [ + [ + "find-up@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "find-up@1.1.2", + "_id": "find-up@1.1.2", + "_inBundle": false, + "_integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "_location": "/read-pkg-up/find-up", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-up@1.1.2", + "name": "find-up", + "escapedName": "find-up", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/read-pkg-up" + ], + "_resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/find-up/issues" + }, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "description": "Find a file by walking up parent directories", + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.1", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/find-up#readme", "keywords": [ "find", "up", @@ -39,13 +74,14 @@ "walking", "path" ], - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "license": "MIT", + "name": "find-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/find-up.git" }, - "devDependencies": { - "ava": "*", - "tempfile": "^1.1.1", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/path-exists/package.json b/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/path-exists/package.json index 5477ee8d9..6489a6d1e 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/path-exists/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-pkg-up/node_modules/path-exists/package.json @@ -1,23 +1,56 @@ { - "name": "path-exists", - "version": "2.1.0", - "description": "Check if a path exists", - "license": "MIT", - "repository": "sindresorhus/path-exists", + "_args": [ + [ + "path-exists@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "path-exists@2.1.0", + "_id": "path-exists@2.1.0", + "_inBundle": false, + "_integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "_location": "/read-pkg-up/path-exists", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-exists@2.1.0", + "name": "path-exists", + "escapedName": "path-exists", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/read-pkg-up/find-up" + ], + "_resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-exists/issues" + }, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "description": "Check if a path exists", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/path-exists#readme", "keywords": [ "path", "exists", @@ -30,11 +63,14 @@ "access", "stat" ], - "dependencies": { - "pinkie-promise": "^2.0.0" + "license": "MIT", + "name": "path-exists", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-exists.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/read-pkg-up/package.json b/admin/vue2/element-admin-v3/node_modules/read-pkg-up/package.json index 0f7ff70b2..5c2ccc526 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-pkg-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-pkg-up/package.json @@ -1,23 +1,59 @@ { - "name": "read-pkg-up", - "version": "1.0.1", - "description": "Read the closest package.json file", - "license": "MIT", - "repository": "sindresorhus/read-pkg-up", + "_args": [ + [ + "read-pkg-up@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "read-pkg-up@1.0.1", + "_id": "read-pkg-up@1.0.1", + "_inBundle": false, + "_integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "_location": "/read-pkg-up", + "_phantomChildren": { + "pinkie-promise": "2.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "read-pkg-up@1.0.1", + "name": "read-pkg-up", + "escapedName": "read-pkg-up", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/meow" + ], + "_resolved": "https://registry.nlark.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1618846971516&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/read-pkg-up/issues" + }, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "description": "Read the closest package.json file", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/read-pkg-up#readme", "keywords": [ "json", "read", @@ -48,12 +84,14 @@ "walking", "path" ], - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "license": "MIT", + "name": "read-pkg-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/read-pkg-up.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/path-type/package.json b/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/path-type/package.json index 6e54f69bb..ffcea9556 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/path-type/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/path-type/package.json @@ -1,23 +1,58 @@ { - "name": "path-type", - "version": "1.1.0", - "description": "Check if a path is a file, directory, or symlink", - "license": "MIT", - "repository": "sindresorhus/path-type", + "_args": [ + [ + "path-type@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "path-type@1.1.0", + "_id": "path-type@1.1.0", + "_inBundle": false, + "_integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "_location": "/read-pkg/path-type", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "path-type@1.1.0", + "name": "path-type", + "escapedName": "path-type", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/read-pkg" + ], + "_resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/path-type/issues" + }, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "description": "Check if a path is a file, directory, or symlink", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/path-type#readme", "keywords": [ "path", "fs", @@ -35,15 +70,16 @@ "stats", "filesystem" ], - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "license": "MIT", + "name": "path-type", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/path-type.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "1.1.0", "xo": { "ignores": [ "test.js" diff --git a/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/pify/package.json index 311d1982e..306d867c9 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-pkg/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "2.3.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@2.3.0", + "_id": "pify@2.3.0", + "_inBundle": false, + "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "_location": "/read-pkg/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@2.3.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/read-pkg/path-type" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^1.0.0", + "v8-natives": "0.0.2", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -39,10 +70,15 @@ "async", "es2015" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^1.0.0", - "v8-natives": "0.0.2", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/read-pkg/package.json b/admin/vue2/element-admin-v3/node_modules/read-pkg/package.json index 594b0c28b..33d173c45 100644 --- a/admin/vue2/element-admin-v3/node_modules/read-pkg/package.json +++ b/admin/vue2/element-admin-v3/node_modules/read-pkg/package.json @@ -1,23 +1,61 @@ { - "name": "read-pkg", - "version": "1.1.0", - "description": "Read a package.json file", - "license": "MIT", - "repository": "sindresorhus/read-pkg", + "_args": [ + [ + "read-pkg@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "read-pkg@1.1.0", + "_id": "read-pkg@1.1.0", + "_inBundle": false, + "_integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "_location": "/read-pkg", + "_phantomChildren": { + "graceful-fs": "4.2.6", + "pinkie-promise": "2.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "read-pkg@1.1.0", + "name": "read-pkg", + "escapedName": "read-pkg", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/read-pkg-up" + ], + "_resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/read-pkg/issues" + }, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "description": "Read a package.json file", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/read-pkg#readme", "keywords": [ "json", "read", @@ -30,13 +68,14 @@ "package", "normalize" ], - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "license": "MIT", + "name": "read-pkg", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/read-pkg.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/readable-stream/package.json b/admin/vue2/element-admin-v3/node_modules/readable-stream/package.json index 2afa6fbd8..631f53d06 100644 --- a/admin/vue2/element-admin-v3/node_modules/readable-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/readable-stream/package.json @@ -1,8 +1,58 @@ { - "name": "readable-stream", - "version": "2.3.7", - "description": "Streams3, a user-land copy of the stream library from Node.js", - "main": "readable.js", + "_args": [ + [ + "readable-stream@2.3.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "readable-stream@2.3.7", + "_id": "readable-stream@2.3.7", + "_inBundle": false, + "_integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "_location": "/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@2.3.7", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "2.3.7", + "saveSpec": null, + "fetchSpec": "2.3.7" + }, + "_requiredBy": [ + "/are-we-there-yet", + "/concat-stream", + "/duplexify", + "/enhanced-resolve/memory-fs", + "/flush-write-stream", + "/from2", + "/fs-write-stream-atomic", + "/hpack.js", + "/jszip", + "/memory-fs", + "/node-libs-browser", + "/parallel-transform", + "/readdirp", + "/stdout-stream", + "/stream-browserify", + "/stream-http", + "/through2" + ], + "_resolved": "https://registry.nlark.com/readable-stream/download/readable-stream-2.3.7.tgz", + "_spec": "2.3.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "util": false, + "./readable.js": "./readable-browser.js", + "./writable.js": "./writable-browser.js", + "./duplex.js": "./duplex-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12,6 +62,7 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from Node.js", "devDependencies": { "assert": "^1.4.0", "babel-polyfill": "^6.9.1", @@ -21,32 +72,29 @@ "tap": "^0.7.0", "tape": "^4.8.0" }, - "scripts": { - "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", - "cover": "nyc npm test", - "report": "nyc report --reporter=lcov" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream" - }, + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ "readable", "stream", "pipe" ], - "browser": { - "util": false, - "./readable.js": "./readable-browser.js", - "./writable.js": "./writable-browser.js", - "./duplex.js": "./duplex-browser.js", - "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" - }, + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", "nyc": { "include": [ "lib/**.js" ] }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js" + }, + "version": "2.3.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/readdirp/package.json b/admin/vue2/element-admin-v3/node_modules/readdirp/package.json index 39314a29e..3ba030774 100644 --- a/admin/vue2/element-admin-v3/node_modules/readdirp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/readdirp/package.json @@ -1,12 +1,51 @@ { - "author": "Thorsten Lorenz (thlorenz.com)", - "name": "readdirp", + "_args": [ + [ + "readdirp@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "readdirp@2.2.1", + "_id": "readdirp@2.2.1", + "_inBundle": false, + "_integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "_location": "/readdirp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readdirp@2.2.1", + "name": "readdirp", + "escapedName": "readdirp", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "thlorenz.com" + }, + "bugs": { + "url": "https://github.com/paulmillr/readdirp/issues" + }, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, "description": "Recursive version of fs.readdir with streaming api.", - "version": "2.2.1", - "homepage": "https://github.com/paulmillr/readdirp", - "repository": { - "type": "git", - "url": "git://github.com/paulmillr/readdirp.git" + "devDependencies": { + "nave": "^0.5.1", + "proxyquire": "^1.7.9", + "tap": "1.3.2", + "through2": "^2.0.0" }, "engines": { "node": ">=0.10" @@ -15,6 +54,7 @@ "readdirp.js", "stream-api.js" ], + "homepage": "https://github.com/paulmillr/readdirp", "keywords": [ "recursive", "fs", @@ -25,26 +65,21 @@ "find", "filter" ], + "license": "MIT", "main": "readdirp.js", + "name": "readdirp", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/readdirp.git" + }, "scripts": { - "test-main": "(cd test && set -e; for t in ./*.js; do node $t; done)", + "test": "npm run test-main", "test-0.10": "nave use 0.10 npm run test-main", "test-0.12": "nave use 0.12 npm run test-main", "test-4": "nave use 4.4 npm run test-main", "test-6": "nave use 6.2 npm run test-main", "test-all": "npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-4 && npm run test-6", - "test": "npm run test-main" - }, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "devDependencies": { - "nave": "^0.5.1", - "proxyquire": "^1.7.9", - "tap": "1.3.2", - "through2": "^2.0.0" + "test-main": "(cd test && set -e; for t in ./*.js; do node $t; done)" }, - "license": "MIT" + "version": "2.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/rechoir/package.json b/admin/vue2/element-admin-v3/node_modules/rechoir/package.json index 5629390a0..b6421a937 100644 --- a/admin/vue2/element-admin-v3/node_modules/rechoir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rechoir/package.json @@ -1,35 +1,43 @@ { - "name": "rechoir", - "description": "Require any supported file as a node module.", - "version": "0.6.2", - "homepage": "https://github.com/tkellen/node-rechoir", + "_args": [ + [ + "rechoir@0.6.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "rechoir@0.6.2", + "_id": "rechoir@0.6.2", + "_inBundle": false, + "_integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "_location": "/rechoir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rechoir@0.6.2", + "name": "rechoir", + "escapedName": "rechoir", + "rawSpec": "0.6.2", + "saveSpec": null, + "fetchSpec": "0.6.2" + }, + "_requiredBy": [ + "/shelljs" + ], + "_resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", + "_spec": "0.6.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Tyler Kellen", "url": "http://goingslowly.com/" }, - "repository": { - "type": "git", - "url": "git://github.com/tkellen/node-rechoir.git" - }, "bugs": { "url": "https://github.com/tkellen/node-rechoir/issues" }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/tkellen/node-rechoir/blob/master/LICENSE" - } - ], - "main": "index.js", - "engines": { - "node": ">= 0.10" - }, - "scripts": { - "test": "mocha -R spec test/index.js" - }, "dependencies": { "resolve": "^1.1.6" }, + "description": "Require any supported file as a node module.", "devDependencies": { "babel": "^5.4.3", "chai": "^2.3.0", @@ -53,6 +61,10 @@ "toml-require": "^1.0.1", "typescript-register": "^1.1.0" }, + "engines": { + "node": ">= 0.10" + }, + "homepage": "https://github.com/tkellen/node-rechoir", "keywords": [ "require", "cjsx", @@ -84,5 +96,21 @@ "xml", "yaml", "yml" - ] + ], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/tkellen/node-rechoir/blob/master/LICENSE" + } + ], + "main": "index.js", + "name": "rechoir", + "repository": { + "type": "git", + "url": "git://github.com/tkellen/node-rechoir.git" + }, + "scripts": { + "test": "mocha -R spec test/index.js" + }, + "version": "0.6.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent index 6687dd90e..0f0810acf 100644 --- a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent +++ b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../strip-indent/cli.js" "$@" + "$basedir/node" "$basedir/../strip-indent/cli.js" "$@" + ret=$? else - exec node "$basedir/../strip-indent/cli.js" "$@" + node "$basedir/../strip-indent/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.cmd b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.cmd index cb05f2f58..64eb653ae 100644 --- a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.cmd +++ b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\strip-indent\cli.js" %* +"%_prog%" "%dp0%\..\strip-indent\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.ps1 b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.ps1 index 06a88e91d..2185fab32 100644 --- a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/.bin/strip-indent.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../strip-indent/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../strip-indent/cli.js" $args - } + & "$basedir/node$exe" "$basedir/../strip-indent/cli.js" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../strip-indent/cli.js" $args - } else { - & "node$exe" "$basedir/../strip-indent/cli.js" $args - } + & "node$exe" "$basedir/../strip-indent/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/indent-string/package.json b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/indent-string/package.json index 0e7d28cb2..14fa45d73 100644 --- a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/indent-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/indent-string/package.json @@ -1,23 +1,55 @@ { - "name": "indent-string", - "version": "2.1.0", - "description": "Indent each line in a string", - "license": "MIT", - "repository": "sindresorhus/indent-string", + "_args": [ + [ + "indent-string@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "indent-string@2.1.0", + "_id": "indent-string@2.1.0", + "_inBundle": false, + "_integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "_location": "/redent/indent-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "indent-string@2.1.0", + "name": "indent-string", + "escapedName": "indent-string", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/redent" + ], + "_resolved": "https://registry.nlark.com/indent-string/download/indent-string-2.1.0.tgz?cache=0&sync_timestamp=1618847271946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/indent-string/issues" + }, + "dependencies": { + "repeating": "^2.0.0" + }, + "description": "Indent each line in a string", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/indent-string#readme", "keywords": [ "indent", "string", @@ -27,10 +59,14 @@ "line", "text" ], - "dependencies": { - "repeating": "^2.0.0" + "license": "MIT", + "name": "indent-string", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/indent-string.git" }, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/strip-indent/package.json b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/strip-indent/package.json index 941ad7d70..359844ef6 100644 --- a/admin/vue2/element-admin-v3/node_modules/redent/node_modules/strip-indent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/redent/node_modules/strip-indent/package.json @@ -1,9 +1,33 @@ { - "name": "strip-indent", - "version": "1.0.1", - "description": "Strip leading whitespace from every line in a string", - "license": "MIT", - "repository": "sindresorhus/strip-indent", + "_args": [ + [ + "strip-indent@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-indent@1.0.1", + "_id": "strip-indent@1.0.1", + "_inBundle": false, + "_integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "_location": "/redent/strip-indent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-indent@1.0.1", + "name": "strip-indent", + "escapedName": "strip-indent", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/redent" + ], + "_resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -12,16 +36,24 @@ "bin": { "strip-indent": "cli.js" }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-indent/issues" + }, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "description": "Strip leading whitespace from every line in a string", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js", "cli.js" ], + "homepage": "https://github.com/sindresorhus/strip-indent#readme", "keywords": [ "cli", "bin", @@ -37,10 +69,14 @@ "string", "str" ], - "devDependencies": { - "mocha": "*" + "license": "MIT", + "name": "strip-indent", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-indent.git" }, - "dependencies": { - "get-stdin": "^4.0.1" - } + "scripts": { + "test": "mocha" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/redent/package.json b/admin/vue2/element-admin-v3/node_modules/redent/package.json index 3a28a27ef..19969c6b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/redent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/redent/package.json @@ -1,23 +1,60 @@ { - "name": "redent", - "version": "1.0.0", - "description": "Strip redundant indentation and indent the string", - "license": "MIT", - "repository": "sindresorhus/redent", + "_args": [ + [ + "redent@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "redent@1.0.0", + "_id": "redent@1.0.0", + "_inBundle": false, + "_integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "_location": "/redent", + "_phantomChildren": { + "get-stdin": "4.0.1", + "repeating": "2.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "redent@1.0.0", + "name": "redent", + "escapedName": "redent", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/meow" + ], + "_resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz?cache=0&sync_timestamp=1620069702182&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/redent/issues" + }, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "description": "Strip redundant indentation and indent the string", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/redent#readme", "keywords": [ "string", "str", @@ -32,12 +69,14 @@ "whitespace", "space" ], - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "license": "MIT", + "name": "redent", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/redent.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/regenerate/package.json b/admin/vue2/element-admin-v3/node_modules/regenerate/package.json index 42b485a44..08930514b 100644 --- a/admin/vue2/element-admin-v3/node_modules/regenerate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regenerate/package.json @@ -1,9 +1,51 @@ { - "name": "regenerate", - "version": "1.4.2", + "_args": [ + [ + "regenerate@1.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "regenerate@1.4.2", + "_id": "regenerate@1.4.2", + "_inBundle": false, + "_integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", + "_location": "/regenerate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regenerate@1.4.2", + "name": "regenerate", + "escapedName": "regenerate", + "rawSpec": "1.4.2", + "saveSpec": null, + "fetchSpec": "1.4.2" + }, + "_requiredBy": [ + "/regexpu-core" + ], + "_resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218526490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", + "_spec": "1.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/regenerate/issues" + }, "description": "Generate JavaScript-compatible regular expressions based on a given set of Unicode symbols or code points.", + "devDependencies": { + "codecov": "^1.0.1", + "grunt": "^0.4.5", + "grunt-shell": "^1.1.1", + "istanbul": "^0.4.3", + "qunit-extras": "^1.1.0", + "qunitjs": "~1.11.0", + "requirejs": "^2.1.15" + }, "homepage": "https://mths.be/regenerate", - "main": "regenerate.js", "keywords": [ "regex", "regexp", @@ -13,26 +55,15 @@ "tool" ], "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, + "main": "regenerate.js", + "name": "regenerate", "repository": { "type": "git", - "url": "https://github.com/mathiasbynens/regenerate.git" + "url": "git+https://github.com/mathiasbynens/regenerate.git" }, - "bugs": "https://github.com/mathiasbynens/regenerate/issues", "scripts": { "cover": "istanbul cover --report html --verbose --dir coverage tests/tests.js", "test": "node tests/tests.js" }, - "devDependencies": { - "codecov": "^1.0.1", - "grunt": "^0.4.5", - "grunt-shell": "^1.1.1", - "istanbul": "^0.4.3", - "qunit-extras": "^1.1.0", - "qunitjs": "~1.11.0", - "requirejs": "^2.1.15" - } + "version": "1.4.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/regenerator-runtime/package.json b/admin/vue2/element-admin-v3/node_modules/regenerator-runtime/package.json index db0539875..e5a92e03f 100644 --- a/admin/vue2/element-admin-v3/node_modules/regenerator-runtime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regenerator-runtime/package.json @@ -1,18 +1,49 @@ { - "name": "regenerator-runtime", - "author": "Ben Newman ", + "_args": [ + [ + "regenerator-runtime@0.11.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "regenerator-runtime@0.11.1", + "_id": "regenerator-runtime@0.11.1", + "_inBundle": false, + "_integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", + "_location": "/regenerator-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regenerator-runtime@0.11.1", + "name": "regenerator-runtime", + "escapedName": "regenerator-runtime", + "rawSpec": "0.11.1", + "saveSpec": null, + "fetchSpec": "0.11.1" + }, + "_requiredBy": [ + "/babel-runtime" + ], + "_resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", + "_spec": "0.11.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Newman", + "email": "bn@cs.stanford.edu" + }, "description": "Runtime for Regenerator-compiled generator and async functions.", - "version": "0.11.1", - "main": "runtime-module.js", "keywords": [ "regenerator", "runtime", "generator", "async" ], + "license": "MIT", + "main": "runtime-module.js", + "name": "regenerator-runtime", "repository": { "type": "git", "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-runtime" }, - "license": "MIT" + "version": "0.11.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/regenerator-transform/package.json b/admin/vue2/element-admin-v3/node_modules/regenerator-transform/package.json index afc56f020..12fff43ed 100644 --- a/admin/vue2/element-admin-v3/node_modules/regenerator-transform/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regenerator-transform/package.json @@ -1,22 +1,36 @@ { - "name": "regenerator-transform", - "author": "Ben Newman ", - "description": "Explode async and generator functions into a state machine.", - "version": "0.10.1", - "main": "lib/index.js", - "keywords": [ - "regenerator", - "runtime", - "generator", - "async" + "_args": [ + [ + "regenerator-transform@0.10.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-transform" + "_development": true, + "_from": "regenerator-transform@0.10.1", + "_id": "regenerator-transform@0.10.1", + "_inBundle": false, + "_integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", + "_location": "/regenerator-transform", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regenerator-transform@0.10.1", + "name": "regenerator-transform", + "escapedName": "regenerator-transform", + "rawSpec": "0.10.1", + "saveSpec": null, + "fetchSpec": "0.10.1" }, - "license": "BSD", - "scripts": { - "prepublish": "babel src/ --out-dir lib/" + "_requiredBy": [ + "/babel-plugin-transform-regenerator" + ], + "_resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz?cache=0&sync_timestamp=1593557394730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.10.1.tgz", + "_spec": "0.10.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Newman", + "email": "bn@cs.stanford.edu" }, "babel": { "presets": [ @@ -36,9 +50,27 @@ "babel-types": "^6.19.0", "private": "^0.1.6" }, + "description": "Explode async and generator functions into a state machine.", "devDependencies": { "babel-cli": "^6.9.0", "babel-plugin-transform-runtime": "^6.9.0", "babel-preset-env": "^1.2.2" - } + }, + "keywords": [ + "regenerator", + "runtime", + "generator", + "async" + ], + "license": "BSD", + "main": "lib/index.js", + "name": "regenerator-transform", + "repository": { + "type": "git", + "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-transform" + }, + "scripts": { + "prepublish": "babel src/ --out-dir lib/" + }, + "version": "0.10.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/regex-not/package.json b/admin/vue2/element-admin-v3/node_modules/regex-not/package.json index 0320d5324..733de84b5 100644 --- a/admin/vue2/element-admin-v3/node_modules/regex-not/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regex-not/package.json @@ -1,32 +1,60 @@ { - "name": "regex-not", - "description": "Create a javascript regular expression for matching everything except for the given string.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/regex-not", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/regex-not", - "bugs": { - "url": "https://github.com/jonschlinkert/regex-not/issues" + "_args": [ + [ + "regex-not@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "regex-not@1.0.2", + "_id": "regex-not@1.0.2", + "_inBundle": false, + "_integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "_location": "/regex-not", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regex-not@1.0.2", + "name": "regex-not", + "escapedName": "regex-not", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/expand-brackets", + "/extglob", + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch", + "/to-regex" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/regex-not/issues" }, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" }, + "description": "Create a javascript regular expression for matching everything except for the given string.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/regex-not", "keywords": [ "exec", "match", @@ -37,6 +65,16 @@ "regular expression", "test" ], + "license": "MIT", + "main": "index.js", + "name": "regex-not", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/regex-not.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -59,5 +97,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/regexp.prototype.flags/package.json b/admin/vue2/element-admin-v3/node_modules/regexp.prototype.flags/package.json index fa6b2e311..b520e717c 100644 --- a/admin/vue2/element-admin-v3/node_modules/regexp.prototype.flags/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regexp.prototype.flags/package.json @@ -1,89 +1,124 @@ { - "name": "regexp.prototype.flags", - "version": "1.3.1", - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ES6 spec-compliant RegExp.prototype.flags shim.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "nyc tape 'test/**/*.js'", - "lint": "eslint .", - "postlint": "es-shim-api --bound", - "eccheck": "eclint check *.js **/*.js > /dev/null", - "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://github.com/es-shims/RegExp.prototype.flags.git" - }, - "keywords": [ - "RegExp.prototype.flags", - "regex", - "regular expression", - "ES6", - "shim", - "flag", - "flags", - "regexp", - "RegExp#flags", - "polyfill", - "es-shim API" - ], - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "covert": "^1.1.1", - "eclint": "^2.8.1", - "eslint": "^7.17.0", - "functions-have-names": "^1.2.2", - "has": "^1.0.3", - "has-strict-mode": "^1.0.1", - "nyc": "^10.3.2", - "object-inspect": "^1.9.0", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/9.0..latest", - "firefox/4.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/11.6..latest", - "opera/next", - "safari/5.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "regexp.prototype.flags@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "regexp.prototype.flags@1.3.1", + "_id": "regexp.prototype.flags@1.3.1", + "_inBundle": false, + "_integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", + "_location": "/regexp.prototype.flags", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regexp.prototype.flags@1.3.1", + "name": "regexp.prototype.flags", + "escapedName": "regexp.prototype.flags", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" + }, + "_requiredBy": [ + "/deep-equal" + ], + "_resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610726090430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/es-shims/RegExp.prototype.flags/issues" + }, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "description": "ES6 spec-compliant RegExp.prototype.flags shim.", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "covert": "^1.1.1", + "eclint": "^2.8.1", + "eslint": "^7.17.0", + "functions-have-names": "^1.2.2", + "has": "^1.0.3", + "has-strict-mode": "^1.0.1", + "nyc": "^10.3.2", + "object-inspect": "^1.9.0", + "safe-publish-latest": "^1.1.4", + "tape": "^5.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/es-shims/RegExp.prototype.flags#readme", + "keywords": [ + "RegExp.prototype.flags", + "regex", + "regular expression", + "ES6", + "shim", + "flag", + "flags", + "regexp", + "RegExp#flags", + "polyfill", + "es-shim API" + ], + "license": "MIT", + "main": "index.js", + "name": "regexp.prototype.flags", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/RegExp.prototype.flags.git" + }, + "scripts": { + "eccheck": "eclint check *.js **/*.js > /dev/null", + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/9.0..latest", + "firefox/4.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/11.6..latest", + "opera/next", + "safari/5.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/regexpp/package.json b/admin/vue2/element-admin-v3/node_modules/regexpp/package.json index edc6fef0a..ad91e550c 100644 --- a/admin/vue2/element-admin-v3/node_modules/regexpp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regexpp/package.json @@ -1,15 +1,42 @@ { - "name": "regexpp", - "version": "1.1.0", - "description": "Regular expression parser for ECMAScript 2018.", - "engines": { - "node": ">=4.0.0" + "_args": [ + [ + "regexpp@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "regexpp@1.1.0", + "_id": "regexpp@1.1.0", + "_inBundle": false, + "_integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", + "_location": "/regexpp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regexpp@1.1.0", + "name": "regexpp", + "escapedName": "regexpp", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "main": "index", - "files": [ - "index.*" + "_requiredBy": [ + "/eslint" ], + "_resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Toru Nagashima", + "url": "https://github.com/mysticatea" + }, + "bugs": { + "url": "https://github.com/mysticatea/regexpp/issues" + }, "dependencies": {}, + "description": "Regular expression parser for ECMAScript 2018.", "devDependencies": { "@types/eslint": "^4.16.0", "@types/mocha": "^2.2.48", @@ -36,29 +63,13 @@ "typescript": "^2.7.2", "typescript-eslint-parser": "^14.0.0" }, - "scripts": { - "prebuild": "npm run -s clean", - "build": "run-s build:*", - "build:tsc": "tsc --module es2015 --target es2015", - "build:mjs": "rollup -c rollup-mjs.config.js", - "build:js": "rollup -c rollup-js.config.js", - "build:dts": "dts-bundle --name regexpp --main .temp/index.d.ts --out ../index.d.ts", - "clean": "rimraf .temp index.*", - "lint": "eslint src test tools --ext .ts", - "pretest": "run-s build lint", - "test": "_mocha --require ts-node/register --reporter dot --timeout 10000 \"test/*.ts\"", - "update:test": "ts-node tools/update-fixtures.ts", - "update:ids": "ts-node tools/update-unicode-ids.ts", - "preversion": "npm test", - "version": "npm run -s build", - "postversion": "git push && git push --tags", - "prewatch": "npm run -s clean", - "watch": "npm run -s test -- --watch-extensions .ts --watch --growl" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mysticatea/regexpp.git" + "engines": { + "node": ">=4.0.0" }, + "files": [ + "index.*" + ], + "homepage": "https://github.com/mysticatea/regexpp#readme", "keywords": [ "regexp", "regular", @@ -76,10 +87,31 @@ "es2018", "annexB" ], - "author": "Toru Nagashima (https://github.com/mysticatea)", "license": "MIT", - "bugs": { - "url": "https://github.com/mysticatea/regexpp/issues" + "main": "index", + "name": "regexpp", + "repository": { + "type": "git", + "url": "git+https://github.com/mysticatea/regexpp.git" + }, + "scripts": { + "build": "run-s build:*", + "build:dts": "dts-bundle --name regexpp --main .temp/index.d.ts --out ../index.d.ts", + "build:js": "rollup -c rollup-js.config.js", + "build:mjs": "rollup -c rollup-mjs.config.js", + "build:tsc": "tsc --module es2015 --target es2015", + "clean": "rimraf .temp index.*", + "lint": "eslint src test tools --ext .ts", + "postversion": "git push && git push --tags", + "prebuild": "npm run -s clean", + "pretest": "run-s build lint", + "preversion": "npm test", + "prewatch": "npm run -s clean", + "test": "_mocha --require ts-node/register --reporter dot --timeout 10000 \"test/*.ts\"", + "update:ids": "ts-node tools/update-unicode-ids.ts", + "update:test": "ts-node tools/update-fixtures.ts", + "version": "npm run -s build", + "watch": "npm run -s test -- --watch-extensions .ts --watch --growl" }, - "homepage": "https://github.com/mysticatea/regexpp#readme" + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/regexpu-core/package.json b/admin/vue2/element-admin-v3/node_modules/regexpu-core/package.json index ef69fa305..ff18faf37 100644 --- a/admin/vue2/element-admin-v3/node_modules/regexpu-core/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regexpu-core/package.json @@ -1,61 +1,92 @@ { - "name": "regexpu-core", - "version": "2.0.0", - "description": "regexpu’s core functionality (i.e. `rewritePattern(pattern, flag)`), capable of translating ES6 Unicode regular expressions to ES5.", - "homepage": "https://mths.be/regexpu", - "main": "rewrite-pattern.js", - "keywords": [ - "codegen", - "desugaring", - "ecmascript", - "es5", - "es6", - "harmony", - "javascript", - "refactoring", - "regex", - "regexp", - "regular expressions", - "rewriting", - "syntax", - "transformation", - "transpile", - "transpiler", - "unicode" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/regexpu-core.git" - }, - "bugs": "https://github.com/mathiasbynens/regexpu-core/issues", - "files": [ - "LICENSE-MIT.txt", - "rewrite-pattern.js", - "data/character-class-escape-sets.js", - "data/iu-mappings.json" - ], - "scripts": { - "build": "node scripts/iu-mappings.js && node scripts/character-class-escape-sets.js", - "test": "mocha tests", - "coverage": "istanbul cover --report html node_modules/.bin/_mocha tests/tests.js -- -u exports -R spec" - }, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - }, - "devDependencies": { - "coveralls": "^2.11.2", - "istanbul": "^0.4.0", - "jsesc": "^0.5.0", - "lodash": "^3.6.0", - "mocha": "^2.2.1", - "regexpu-fixtures": "^2.0.0", - "unicode-8.0.0": "^0.1.5" - } + "_args": [ + [ + "regexpu-core@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "regexpu-core@2.0.0", + "_id": "regexpu-core@2.0.0", + "_inBundle": false, + "_integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "_location": "/regexpu-core", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regexpu-core@2.0.0", + "name": "regexpu-core", + "escapedName": "regexpu-core", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/babel-plugin-transform-es2015-unicode-regex" + ], + "_resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz?cache=0&sync_timestamp=1600413542312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/regexpu-core/issues" + }, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + }, + "description": "regexpu’s core functionality (i.e. `rewritePattern(pattern, flag)`), capable of translating ES6 Unicode regular expressions to ES5.", + "devDependencies": { + "coveralls": "^2.11.2", + "istanbul": "^0.4.0", + "jsesc": "^0.5.0", + "lodash": "^3.6.0", + "mocha": "^2.2.1", + "regexpu-fixtures": "^2.0.0", + "unicode-8.0.0": "^0.1.5" + }, + "files": [ + "LICENSE-MIT.txt", + "rewrite-pattern.js", + "data/character-class-escape-sets.js", + "data/iu-mappings.json" + ], + "homepage": "https://mths.be/regexpu", + "keywords": [ + "codegen", + "desugaring", + "ecmascript", + "es5", + "es6", + "harmony", + "javascript", + "refactoring", + "regex", + "regexp", + "regular expressions", + "rewriting", + "syntax", + "transformation", + "transpile", + "transpiler", + "unicode" + ], + "license": "MIT", + "main": "rewrite-pattern.js", + "name": "regexpu-core", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/regexpu-core.git" + }, + "scripts": { + "build": "node scripts/iu-mappings.js && node scripts/character-class-escape-sets.js", + "coverage": "istanbul cover --report html node_modules/.bin/_mocha tests/tests.js -- -u exports -R spec", + "test": "mocha tests" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/regjsgen/package.json b/admin/vue2/element-admin-v3/node_modules/regjsgen/package.json index 92c68537d..ff6764c9a 100644 --- a/admin/vue2/element-admin-v3/node_modules/regjsgen/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regjsgen/package.json @@ -1,33 +1,80 @@ -{ - "name": "regjsgen", - "version": "0.2.0", - "description": "Generate `RegExp`s from RegJSParser’s AST", - "homepage": "https://github.com/d10/regjsgen", - "license": "MIT", - "main": "regjsgen.js", - "keywords": [ - "ast", - "generate", - "regex", - "regexp", - "regular expressions" - ], - "author": "Benjamin Tan (https://d10.github.io/)", - "contributors": [ - "Benjamin Tan (https://d10.github.io/)", - "Mathias Bynens (https://mathiasbynens.be/)" - ], - "repository": "d10/regjsgen", - "scripts": { - "test": "node test/test.js" - }, - "files": [ - "LICENSE.txt", - "regjsgen.js", - "README.md" - ], - "devDependencies": { - "got": "~1.2.0", - "jsesc": "~0.5.0" - } -} +{ + "_args": [ + [ + "regjsgen@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "regjsgen@0.2.0", + "_id": "regjsgen@0.2.0", + "_inBundle": false, + "_integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "_location": "/regjsgen", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regjsgen@0.2.0", + "name": "regjsgen", + "escapedName": "regjsgen", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/regexpu-core" + ], + "_resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + "bugs": { + "url": "https://github.com/d10/regjsgen/issues" + }, + "contributors": [ + { + "name": "Benjamin Tan", + "email": "demoneaux@gmail.com", + "url": "https://d10.github.io/" + }, + { + "name": "Mathias Bynens", + "email": "mathias@qiwi.be", + "url": "https://mathiasbynens.be/" + } + ], + "description": "Generate `RegExp`s from RegJSParser’s AST", + "devDependencies": { + "got": "~1.2.0", + "jsesc": "~0.5.0" + }, + "files": [ + "LICENSE.txt", + "regjsgen.js", + "README.md" + ], + "homepage": "https://github.com/d10/regjsgen", + "keywords": [ + "ast", + "generate", + "regex", + "regexp", + "regular expressions" + ], + "license": "MIT", + "main": "regjsgen.js", + "name": "regjsgen", + "repository": { + "type": "git", + "url": "git+https://github.com/d10/regjsgen.git" + }, + "scripts": { + "test": "node test/test.js" + }, + "version": "0.2.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc index e7105da30..f2bbda380 100644 --- a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc +++ b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? else - exec node "$basedir/../jsesc/bin/jsesc" "$@" + node "$basedir/../jsesc/bin/jsesc" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.cmd b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.cmd index 7ff98f0e0..5338fa170 100644 --- a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.cmd +++ b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* +"%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.ps1 b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.ps1 index 6007e022f..1751cf9cd 100644 --- a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/.bin/jsesc.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../jsesc/bin/jsesc" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/jsesc/package.json b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/jsesc/package.json index 1216eefd6..7d85629f9 100644 --- a/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/jsesc/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regjsparser/node_modules/jsesc/package.json @@ -1,55 +1,88 @@ { - "name": "jsesc", - "version": "0.5.0", - "description": "A JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.", - "homepage": "http://mths.be/jsesc", - "main": "jsesc.js", - "bin": "bin/jsesc", - "man": "man/jsesc.1", - "keywords": [ - "string", - "escape", - "javascript", - "tool" - ], - "licenses": [ - { - "type": "MIT", - "url": "http://mths.be/mit" - } - ], - "author": { - "name": "Mathias Bynens", - "url": "http://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/jsesc.git" - }, - "bugs": { - "url": "https://github.com/mathiasbynens/jsesc/issues" - }, - "files": [ - "LICENSE-MIT.txt", - "jsesc.js", - "bin/", - "man/" - ], - "directories": { - "test": "tests" - }, - "scripts": { - "test": "node tests/tests.js" - }, - "devDependencies": { - "coveralls": "^2.10.0", - "grunt": "^0.4.5", - "grunt-shell": "^0.7.0", - "grunt-template": "^0.2.3", - "istanbul": "^0.3.0", - "qunit-extras": "^1.2.0", - "qunitjs": "~1.11.0", - "regenerate": "^0.6.2", - "requirejs": "^2.1.14" - } + "_args": [ + [ + "jsesc@0.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "jsesc@0.5.0", + "_id": "jsesc@0.5.0", + "_inBundle": false, + "_integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "_location": "/regjsparser/jsesc", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "jsesc@0.5.0", + "name": "jsesc", + "escapedName": "jsesc", + "rawSpec": "0.5.0", + "saveSpec": null, + "fetchSpec": "0.5.0" + }, + "_requiredBy": [ + "/regjsparser" + ], + "_resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891224688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", + "_spec": "0.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "http://mathiasbynens.be/" + }, + "bin": { + "jsesc": "bin/jsesc" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/jsesc/issues" + }, + "description": "A JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.", + "devDependencies": { + "coveralls": "^2.10.0", + "grunt": "^0.4.5", + "grunt-shell": "^0.7.0", + "grunt-template": "^0.2.3", + "istanbul": "^0.3.0", + "qunit-extras": "^1.2.0", + "qunitjs": "~1.11.0", + "regenerate": "^0.6.2", + "requirejs": "^2.1.14" + }, + "directories": { + "test": "tests" + }, + "files": [ + "LICENSE-MIT.txt", + "jsesc.js", + "bin/", + "man/" + ], + "homepage": "http://mths.be/jsesc", + "keywords": [ + "string", + "escape", + "javascript", + "tool" + ], + "licenses": [ + { + "type": "MIT", + "url": "http://mths.be/mit" + } + ], + "main": "jsesc.js", + "man": [ + "man/jsesc.1" + ], + "name": "jsesc", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/jsesc.git" + }, + "scripts": { + "test": "node tests/tests.js" + }, + "version": "0.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/regjsparser/package.json b/admin/vue2/element-admin-v3/node_modules/regjsparser/package.json index 5c5e65f8c..4ce6a1584 100644 --- a/admin/vue2/element-admin-v3/node_modules/regjsparser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/regjsparser/package.json @@ -1,17 +1,50 @@ { - "name": "regjsparser", - "version": "0.1.5", - "author": "'Julian Viereck' ", - "license": "BSD", - "main": "./parser", - "bin": "bin/parser", - "homepage": "https://github.com/jviereck/regjsparser", - "repository": { - "type": "git", - "url": "git@github.com:jviereck/regjsparser.git" + "_args": [ + [ + "regjsparser@0.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "regjsparser@0.1.5", + "_id": "regjsparser@0.1.5", + "_inBundle": false, + "_integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "_location": "/regjsparser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regjsparser@0.1.5", + "name": "regjsparser", + "escapedName": "regjsparser", + "rawSpec": "0.1.5", + "saveSpec": null, + "fetchSpec": "0.1.5" }, - "scripts": { - "test": "node test/index.js" + "_requiredBy": [ + "/regexpu-core" + ], + "_resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz?cache=0&sync_timestamp=1616545067196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.1.5.tgz", + "_spec": "0.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "'Julian Viereck'", + "email": "julian.viereck@gmail.com" + }, + "bin": { + "regjsparser": "bin/parser" + }, + "bugs": { + "url": "https://github.com/jviereck/regjsparser/issues" + }, + "dependencies": { + "jsesc": "~0.5.0" + }, + "description": "Parsing the JavaScript's RegExp in JavaScript.", + "devDependencies": { + "regenerate": "~1.0.1", + "unicode-7.0.0": "~0.1.5" }, "files": [ "bin/", @@ -19,11 +52,16 @@ "parser.js", "README.md" ], - "dependencies": { - "jsesc": "~0.5.0" + "homepage": "https://github.com/jviereck/regjsparser", + "license": "BSD", + "main": "./parser", + "name": "regjsparser", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/jviereck/regjsparser.git" }, - "devDependencies": { - "regenerate": "~1.0.1", - "unicode-7.0.0": "~0.1.5" - } + "scripts": { + "test": "node test/index.js" + }, + "version": "0.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/relateurl/package.json b/admin/vue2/element-admin-v3/node_modules/relateurl/package.json index f4b236a7e..e7b5b4057 100644 --- a/admin/vue2/element-admin-v3/node_modules/relateurl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/relateurl/package.json @@ -1,22 +1,42 @@ { - "name": "relateurl", - "description": "Minify URLs by converting them from absolute to relative.", - "version": "0.2.7", - "license": "MIT", - "homepage": "https://github.com/stevenvachon/relateurl", + "_args": [ + [ + "relateurl@0.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "relateurl@0.2.7", + "_id": "relateurl@0.2.7", + "_inBundle": false, + "_integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "_location": "/relateurl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "relateurl@0.2.7", + "name": "relateurl", + "escapedName": "relateurl", + "rawSpec": "0.2.7", + "saveSpec": null, + "fetchSpec": "0.2.7" + }, + "_requiredBy": [ + "/html-minifier" + ], + "_resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", + "_spec": "0.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Steven Vachon", "email": "contact@svachon.com", "url": "http://www.svachon.com/" }, - "main": "lib", - "repository": { - "type": "git", - "url": "git://github.com/stevenvachon/relateurl.git" - }, "bugs": { "url": "https://github.com/stevenvachon/relateurl/issues" }, + "description": "Minify URLs by converting them from absolute to relative.", "devDependencies": { "browserify": "^13.0.1", "chai": "^3.5.0", @@ -26,14 +46,11 @@ "engines": { "node": ">= 0.10" }, - "scripts": { - "browserify": "browserify lib/ --standalone RelateUrl | uglifyjs --compress --mangle -o relateurl-browser.js", - "test": "mocha test/ --bail --reporter spec --check-leaks" - }, "files": [ "lib", "license" ], + "homepage": "https://github.com/stevenvachon/relateurl", "keywords": [ "uri", "url", @@ -42,5 +59,17 @@ "lint", "relative", "absolute" - ] + ], + "license": "MIT", + "main": "lib", + "name": "relateurl", + "repository": { + "type": "git", + "url": "git://github.com/stevenvachon/relateurl.git" + }, + "scripts": { + "browserify": "browserify lib/ --standalone RelateUrl | uglifyjs --compress --mangle -o relateurl-browser.js", + "test": "mocha test/ --bail --reporter spec --check-leaks" + }, + "version": "0.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/remove-trailing-separator/package.json b/admin/vue2/element-admin-v3/node_modules/remove-trailing-separator/package.json index 47ef27a2e..0cda2a9c3 100644 --- a/admin/vue2/element-admin-v3/node_modules/remove-trailing-separator/package.json +++ b/admin/vue2/element-admin-v3/node_modules/remove-trailing-separator/package.json @@ -1,37 +1,67 @@ { - "name": "remove-trailing-separator", - "version": "1.1.0", + "_args": [ + [ + "remove-trailing-separator@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "remove-trailing-separator@1.1.0", + "_id": "remove-trailing-separator@1.1.0", + "_inBundle": false, + "_integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "_location": "/remove-trailing-separator", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "remove-trailing-separator@1.1.0", + "name": "remove-trailing-separator", + "escapedName": "remove-trailing-separator", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/anymatch/normalize-path" + ], + "_resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "darsain" + }, + "bugs": { + "url": "https://github.com/darsain/remove-trailing-separator/issues" + }, "description": "Removes separators from the end of the string.", - "main": "index.js", + "devDependencies": { + "ava": "^0.16.0", + "coveralls": "^2.11.14", + "nyc": "^8.3.0", + "xo": "^0.16.0" + }, "files": [ "index.js" ], - "scripts": { - "lint": "xo", - "pretest": "npm run lint", - "test": "nyc ava", - "report": "nyc report --reporter=html" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/darsain/remove-trailing-separator.git" - }, + "homepage": "https://github.com/darsain/remove-trailing-separator#readme", "keywords": [ "remove", "strip", "trailing", "separator" ], - "author": "darsain", "license": "ISC", - "bugs": { - "url": "https://github.com/darsain/remove-trailing-separator/issues" + "main": "index.js", + "name": "remove-trailing-separator", + "repository": { + "type": "git", + "url": "git+https://github.com/darsain/remove-trailing-separator.git" }, - "homepage": "https://github.com/darsain/remove-trailing-separator#readme", - "devDependencies": { - "ava": "^0.16.0", - "coveralls": "^2.11.14", - "nyc": "^8.3.0", - "xo": "^0.16.0" - } + "scripts": { + "lint": "xo", + "pretest": "npm run lint", + "report": "nyc report --reporter=html", + "test": "nyc ava" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/ansi-regex/package.json index 7af801f35..e42d07763 100644 --- a/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/ansi-regex/package.json @@ -1,55 +1,91 @@ { - "name": "ansi-regex", - "version": "5.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.9.0", - "xo": "^0.25.3" - } + "_args": [ + [ + "ansi-regex@5.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@5.0.0", + "_id": "ansi-regex@5.0.0", + "_inBundle": false, + "_integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "_location": "/renderkid/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@5.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "5.0.0", + "saveSpec": null, + "fetchSpec": "5.0.0" + }, + "_requiredBy": [ + "/renderkid/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz", + "_spec": "5.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.9.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava && tsd", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "5.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/strip-ansi/package.json index 65a6c9516..dc785d1fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/renderkid/node_modules/strip-ansi/package.json @@ -1,54 +1,90 @@ { - "name": "strip-ansi", - "version": "6.0.0", - "description": "Strip ANSI escape codes from a string", - "license": "MIT", - "repository": "chalk/strip-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.10.0", - "xo": "^0.25.3" - } + "_args": [ + [ + "strip-ansi@6.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@6.0.0", + "_id": "strip-ansi@6.0.0", + "_inBundle": false, + "_integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "_location": "/renderkid/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@6.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "6.0.0", + "saveSpec": null, + "fetchSpec": "6.0.0" + }, + "_requiredBy": [ + "/renderkid" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "_spec": "6.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.10.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "6.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/renderkid/package.json b/admin/vue2/element-admin-v3/node_modules/renderkid/package.json index e2216e5ba..a1170dee8 100644 --- a/admin/vue2/element-admin-v3/node_modules/renderkid/package.json +++ b/admin/vue2/element-admin-v3/node_modules/renderkid/package.json @@ -1,8 +1,39 @@ { - "name": "renderkid", - "version": "2.0.6", - "description": "Stylish console.log for node", - "main": "lib/RenderKid.js", + "_args": [ + [ + "renderkid@2.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "renderkid@2.0.6", + "_id": "renderkid@2.0.6", + "_inBundle": false, + "_integrity": "sha1-qvh1pn8tFwWCGiK2RRXbbZ4CX9I=", + "_location": "/renderkid", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "renderkid@2.0.6", + "name": "renderkid", + "escapedName": "renderkid", + "rawSpec": "2.0.6", + "saveSpec": null, + "fetchSpec": "2.0.6" + }, + "_requiredBy": [ + "/pretty-error" + ], + "_resolved": "https://registry.nlark.com/renderkid/download/renderkid-2.0.6.tgz?cache=0&sync_timestamp=1623178646031&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frenderkid%2Fdownload%2Frenderkid-2.0.6.tgz", + "_spec": "2.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aria Minaei" + }, + "bugs": { + "url": "https://github.com/AriaMinaei/RenderKid/issues" + }, "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -10,6 +41,7 @@ "lodash": "^4.17.21", "strip-ansi": "^6.0.0" }, + "description": "Stylish console.log for node", "devDependencies": { "chai": "^4.3.4", "chai-changes": "^1.3.6", @@ -19,22 +51,22 @@ "sinon": "^11.1.1", "sinon-chai": "^3.7.0" }, + "homepage": "https://github.com/AriaMinaei/RenderKid#readme", + "license": "MIT", + "main": "lib/RenderKid.js", + "name": "renderkid", + "repository": { + "type": "git", + "url": "git+https://github.com/AriaMinaei/RenderKid.git" + }, "scripts": { - "test": "mocha \"test/**/*.coffee\"", - "test:watch": "npm run test -- --watch", "compile": "coffee --bare --compile --output ./lib ./src", "compile:watch": "coffee --watch --bare --compile --output ./lib ./src", + "prepublish": "npm run compile", + "test": "mocha \"test/**/*.coffee\"", + "test:watch": "npm run test -- --watch", "watch": "npm run compile:watch & npm run test:watch", - "winwatch": "start/b npm run compile:watch & npm run test:watch", - "prepublish": "npm run compile" - }, - "repository": { - "type": "git", - "url": "https://github.com/AriaMinaei/RenderKid.git" - }, - "bugs": { - "url": "https://github.com/AriaMinaei/RenderKid/issues" + "winwatch": "start/b npm run compile:watch & npm run test:watch" }, - "author": "Aria Minaei", - "license": "MIT" + "version": "2.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/repeat-element/package.json b/admin/vue2/element-admin-v3/node_modules/repeat-element/package.json index 537055f4c..07be81ae3 100644 --- a/admin/vue2/element-admin-v3/node_modules/repeat-element/package.json +++ b/admin/vue2/element-admin-v3/node_modules/repeat-element/package.json @@ -1,24 +1,40 @@ { - "name": "repeat-element", - "description": "Create an array by repeating the given value n times.", - "version": "1.1.4", - "homepage": "https://github.com/jonschlinkert/repeat-element", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/repeat-element", - "bugs": { - "url": "https://github.com/jonschlinkert/repeat-element/issues" + "_args": [ + [ + "repeat-element@1.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "repeat-element@1.1.4", + "_id": "repeat-element@1.1.4", + "_inBundle": false, + "_integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=", + "_location": "/repeat-element", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "repeat-element@1.1.4", + "name": "repeat-element", + "escapedName": "repeat-element", + "rawSpec": "1.1.4", + "saveSpec": null, + "fetchSpec": "1.1.4" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/braces" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.4.tgz", + "_spec": "1.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/repeat-element/issues" }, + "description": "Create an array by repeating the given value n times.", "devDependencies": { "benchmarked": "^2.0.0", "chalk": "^2.4.1", @@ -27,12 +43,29 @@ "minimist": "^1.2.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/repeat-element", "keywords": [ "array", "element", "repeat", "string" ], + "license": "MIT", + "main": "index.js", + "name": "repeat-element", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/repeat-element.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -45,5 +78,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/repeat-string/package.json b/admin/vue2/element-admin-v3/node_modules/repeat-string/package.json index 09f889299..a31e69ae1 100644 --- a/admin/vue2/element-admin-v3/node_modules/repeat-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/repeat-string/package.json @@ -1,31 +1,69 @@ { - "name": "repeat-string", - "description": "Repeat the given string n times. Fastest implementation for repeating a string.", - "version": "1.6.1", - "homepage": "https://github.com/jonschlinkert/repeat-string", - "author": "Jon Schlinkert (http://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://github.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Linus Unnebäck (http://linus.unnebäck.se)", - "Thijs Busser (http://tbusser.net)", - "Titus (wooorm.com)" + "_args": [ + [ + "repeat-string@1.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/repeat-string", - "bugs": { - "url": "https://github.com/jonschlinkert/repeat-string/issues" + "_from": "repeat-string@1.6.1", + "_id": "repeat-string@1.6.1", + "_inBundle": false, + "_integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "_location": "/repeat-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "repeat-string@1.6.1", + "name": "repeat-string", + "escapedName": "repeat-string", + "rawSpec": "1.6.1", + "saveSpec": null, + "fetchSpec": "1.6.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/align-text", + "/fill-range", + "/to-regex-range" ], - "main": "index.js", - "engines": { - "node": ">=0.10" + "_resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "_spec": "1.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "http://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/repeat-string/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "email": "brian.woodward@gmail.com", + "url": "https://github.com/doowb" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Linus Unnebäck", + "email": "linus@folkdatorn.se", + "url": "http://linus.unnebäck.se" + }, + { + "name": "Thijs Busser", + "email": "tbusser@gmail.com", + "url": "http://tbusser.net" + }, + { + "name": "Titus", + "email": "tituswormer@gmail.com", + "url": "wooorm.com" + } + ], + "description": "Repeat the given string n times. Fastest implementation for repeating a string.", "devDependencies": { "ansi-cyan": "^0.1.1", "benchmarked": "^0.2.5", @@ -36,6 +74,13 @@ "text-table": "^0.2.0", "yargs-parser": "^4.0.2" }, + "engines": { + "node": ">=0.10" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/repeat-string", "keywords": [ "fast", "fastest", @@ -53,6 +98,16 @@ "string", "times" ], + "license": "MIT", + "main": "index.js", + "name": "repeat-string", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/repeat-string.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -73,5 +128,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "1.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/repeating/package.json b/admin/vue2/element-admin-v3/node_modules/repeating/package.json index 0247a2374..3154a646e 100644 --- a/admin/vue2/element-admin-v3/node_modules/repeating/package.json +++ b/admin/vue2/element-admin-v3/node_modules/repeating/package.json @@ -1,23 +1,57 @@ { - "name": "repeating", - "version": "2.0.1", - "description": "Repeat a string - fast", - "license": "MIT", - "repository": "sindresorhus/repeating", + "_args": [ + [ + "repeating@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "repeating@2.0.1", + "_id": "repeating@2.0.1", + "_inBundle": false, + "_integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "_location": "/repeating", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "repeating@2.0.1", + "name": "repeating", + "escapedName": "repeating", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/detect-indent", + "/redent/indent-string" + ], + "_resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/repeating/issues" + }, + "dependencies": { + "is-finite": "^1.0.0" + }, + "description": "Repeat a string - fast", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/repeating#readme", "keywords": [ "repeat", "string", @@ -27,11 +61,14 @@ "fill", "pad" ], - "dependencies": { - "is-finite": "^1.0.0" + "license": "MIT", + "name": "repeating", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/repeating.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/request/node_modules/qs/package.json b/admin/vue2/element-admin-v3/node_modules/request/node_modules/qs/package.json index 2c6549003..9af74bc1b 100644 --- a/admin/vue2/element-admin-v3/node_modules/request/node_modules/qs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/request/node_modules/qs/package.json @@ -1,52 +1,84 @@ { + "_args": [ + [ + "qs@6.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "qs@6.5.2", + "_id": "qs@6.5.2", + "_inBundle": false, + "_integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "_location": "/request/qs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "qs@6.5.2", "name": "qs", - "description": "A querystring parser that supports nesting and arrays, with a depth limit", - "homepage": "https://github.com/ljharb/qs", - "version": "6.5.2", - "repository": { - "type": "git", - "url": "https://github.com/ljharb/qs.git" - }, - "main": "lib/index.js", - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "keywords": [ - "querystring", - "qs" - ], - "engines": { - "node": ">=0.6" - }, - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^12.2.1", - "browserify": "^16.2.0", - "covert": "^1.1.0", - "editorconfig-tools": "^0.1.1", - "eslint": "^4.19.1", - "evalmd": "^0.0.17", - "iconv-lite": "^0.4.21", - "mkdirp": "^0.5.1", - "qs-iconv": "^1.0.4", - "safe-publish-latest": "^1.1.1", - "safer-buffer": "^2.1.2", - "tape": "^4.9.0" - }, - "scripts": { - "prepublish": "safe-publish-latest && npm run dist", - "pretest": "npm run --silent readme && npm run --silent lint", - "test": "npm run --silent coverage", - "tests-only": "node test", - "readme": "evalmd README.md", - "prelint": "editorconfig-tools check * lib/* test/*", - "lint": "eslint lib/*.js test/*.js", - "coverage": "covert test", - "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js" - }, - "license": "BSD-3-Clause" + "escapedName": "qs", + "rawSpec": "6.5.2", + "saveSpec": null, + "fetchSpec": "6.5.2" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "_spec": "6.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/ljharb/qs/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "devDependencies": { + "@ljharb/eslint-config": "^12.2.1", + "browserify": "^16.2.0", + "covert": "^1.1.0", + "editorconfig-tools": "^0.1.1", + "eslint": "^4.19.1", + "evalmd": "^0.0.17", + "iconv-lite": "^0.4.21", + "mkdirp": "^0.5.1", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^1.1.1", + "safer-buffer": "^2.1.2", + "tape": "^4.9.0" + }, + "engines": { + "node": ">=0.6" + }, + "homepage": "https://github.com/ljharb/qs", + "keywords": [ + "querystring", + "qs" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "qs", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/qs.git" + }, + "scripts": { + "coverage": "covert test", + "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", + "lint": "eslint lib/*.js test/*.js", + "prelint": "editorconfig-tools check * lib/* test/*", + "prepublish": "safe-publish-latest && npm run dist", + "pretest": "npm run --silent readme && npm run --silent lint", + "readme": "evalmd README.md", + "test": "npm run --silent coverage", + "tests-only": "node test" + }, + "version": "6.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/request/package.json b/admin/vue2/element-admin-v3/node_modules/request/package.json index cbb2f2ede..bafecdd7c 100644 --- a/admin/vue2/element-admin-v3/node_modules/request/package.json +++ b/admin/vue2/element-admin-v3/node_modules/request/package.json @@ -1,31 +1,41 @@ { - "name": "request", - "description": "Simplified HTTP request client.", - "keywords": [ - "http", - "simple", - "util", - "utility" + "_args": [ + [ + "request@2.88.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "2.88.2", - "author": "Mikeal Rogers ", - "repository": { - "type": "git", - "url": "https://github.com/request/request.git" + "_development": true, + "_from": "request@2.88.2", + "_id": "request@2.88.2", + "_inBundle": false, + "_integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "_location": "/request", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "request@2.88.2", + "name": "request", + "escapedName": "request", + "rawSpec": "2.88.2", + "saveSpec": null, + "fetchSpec": "2.88.2" + }, + "_requiredBy": [ + "/node-gyp", + "/node-sass" + ], + "_resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "_spec": "2.88.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com" }, "bugs": { "url": "http://github.com/request/request/issues" }, - "license": "Apache-2.0", - "engines": { - "node": ">= 6" - }, - "main": "index.js", - "files": [ - "lib/", - "index.js", - "request.js" - ], "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -48,13 +58,7 @@ "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, - "scripts": { - "test": "npm run lint && npm run test-ci && npm run test-browser", - "test-ci": "taper tests/test-*.js", - "test-cov": "nyc --reporter=lcov tape tests/test-*.js", - "test-browser": "node tests/browser/start.js", - "lint": "standard" - }, + "description": "Simplified HTTP request client.", "devDependencies": { "bluebird": "^3.2.1", "browserify": "^13.0.1", @@ -77,10 +81,40 @@ "tape": "^4.6.0", "taper": "^0.5.0" }, + "engines": { + "node": ">= 6" + }, + "files": [ + "lib/", + "index.js", + "request.js" + ], "greenkeeper": { "ignore": [ "hawk", "har-validator" ] - } + }, + "homepage": "https://github.com/request/request#readme", + "keywords": [ + "http", + "simple", + "util", + "utility" + ], + "license": "Apache-2.0", + "main": "index.js", + "name": "request", + "repository": { + "type": "git", + "url": "git+https://github.com/request/request.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run test-ci && npm run test-browser", + "test-browser": "node tests/browser/start.js", + "test-ci": "taper tests/test-*.js", + "test-cov": "nyc --reporter=lcov tape tests/test-*.js" + }, + "version": "2.88.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/require-directory/package.json b/admin/vue2/element-admin-v3/node_modules/require-directory/package.json index 25ece4b31..5d675e888 100644 --- a/admin/vue2/element-admin-v3/node_modules/require-directory/package.json +++ b/admin/vue2/element-admin-v3/node_modules/require-directory/package.json @@ -1,40 +1,75 @@ { - "author": "Troy Goode (http://github.com/troygoode/)", - "name": "require-directory", - "version": "2.1.1", - "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.", - "keywords": [ - "require", - "directory", - "library", - "recursive" + "_args": [ + [ + "require-directory@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/troygoode/node-require-directory/", - "main": "index.js", - "repository": { - "type": "git", - "url": "git://github.com/troygoode/node-require-directory.git" + "_from": "require-directory@2.1.1", + "_id": "require-directory@2.1.1", + "_inBundle": false, + "_integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "_location": "/require-directory", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "require-directory@2.1.1", + "name": "require-directory", + "escapedName": "require-directory", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/sass-graph/yargs", + "/webpack-cli/yargs", + "/webpack-dev-server/yargs", + "/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Troy Goode", + "email": "troygoode@gmail.com", + "url": "http://github.com/troygoode/" + }, + "bugs": { + "url": "http://github.com/troygoode/node-require-directory/issues/" }, "contributors": [ { "name": "Troy Goode", "email": "troygoode@gmail.com", - "web": "http://github.com/troygoode/" + "url": "http://github.com/troygoode/" } ], - "license": "MIT", - "bugs": { - "url": "http://github.com/troygoode/node-require-directory/issues/" + "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.", + "devDependencies": { + "jshint": "^2.6.0", + "mocha": "^2.1.0" }, "engines": { "node": ">=0.10.0" }, - "devDependencies": { - "jshint": "^2.6.0", - "mocha": "^2.1.0" + "homepage": "https://github.com/troygoode/node-require-directory/", + "keywords": [ + "require", + "directory", + "library", + "recursive" + ], + "license": "MIT", + "main": "index.js", + "name": "require-directory", + "repository": { + "type": "git", + "url": "git://github.com/troygoode/node-require-directory.git" }, "scripts": { - "test": "mocha", - "lint": "jshint index.js test/test.js" - } + "lint": "jshint index.js test/test.js", + "test": "mocha" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/require-main-filename/package.json b/admin/vue2/element-admin-v3/node_modules/require-main-filename/package.json index a549822d6..78ea10a91 100644 --- a/admin/vue2/element-admin-v3/node_modules/require-main-filename/package.json +++ b/admin/vue2/element-admin-v3/node_modules/require-main-filename/package.json @@ -1,35 +1,68 @@ { - "name": "require-main-filename", - "version": "2.0.0", - "description": "shim for require.main.filename() that works in as many environments as possible", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "tap --coverage test.js", - "release": "standard-version" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/yargs/require-main-filename.git" - }, - "keywords": [ - "require", - "shim", - "iisnode" + "_args": [ + [ + "require-main-filename@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "index.js" + "_from": "require-main-filename@2.0.0", + "_id": "require-main-filename@2.0.0", + "_inBundle": false, + "_integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "_location": "/require-main-filename", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "require-main-filename@2.0.0", + "name": "require-main-filename", + "escapedName": "require-main-filename", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/sass-graph/yargs", + "/webpack-dev-server/yargs", + "/yargs" ], - "author": "Ben Coe ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, "bugs": { "url": "https://github.com/yargs/require-main-filename/issues" }, - "homepage": "https://github.com/yargs/require-main-filename#readme", + "description": "shim for require.main.filename() that works in as many environments as possible", "devDependencies": { "chai": "^4.0.0", "standard": "^10.0.3", "standard-version": "^4.0.0", "tap": "^11.0.0" - } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/yargs/require-main-filename#readme", + "keywords": [ + "require", + "shim", + "iisnode" + ], + "license": "ISC", + "main": "index.js", + "name": "require-main-filename", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yargs/require-main-filename.git" + }, + "scripts": { + "pretest": "standard", + "release": "standard-version", + "test": "tap --coverage test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/require-uncached/node_modules/resolve-from/package.json b/admin/vue2/element-admin-v3/node_modules/require-uncached/node_modules/resolve-from/package.json index 2bdfd14f7..0de1636d9 100644 --- a/admin/vue2/element-admin-v3/node_modules/require-uncached/node_modules/resolve-from/package.json +++ b/admin/vue2/element-admin-v3/node_modules/require-uncached/node_modules/resolve-from/package.json @@ -1,23 +1,53 @@ { - "name": "resolve-from", - "version": "1.0.1", - "description": "Resolve the path of a module like require.resolve() but from a given path", - "license": "MIT", - "repository": "sindresorhus/resolve-from", + "_args": [ + [ + "resolve-from@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "resolve-from@1.0.1", + "_id": "resolve-from@1.0.1", + "_inBundle": false, + "_integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "_location": "/require-uncached/resolve-from", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "resolve-from@1.0.1", + "name": "resolve-from", + "escapedName": "resolve-from", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/require-uncached" + ], + "_resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/resolve-from/issues" + }, + "description": "Resolve the path of a module like require.resolve() but from a given path", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/resolve-from#readme", "keywords": [ "require", "resolve", @@ -27,8 +57,14 @@ "like", "path" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "resolve-from", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/resolve-from.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/require-uncached/package.json b/admin/vue2/element-admin-v3/node_modules/require-uncached/package.json index 1d1933a96..af8f8b08a 100644 --- a/admin/vue2/element-admin-v3/node_modules/require-uncached/package.json +++ b/admin/vue2/element-admin-v3/node_modules/require-uncached/package.json @@ -1,24 +1,58 @@ { - "name": "require-uncached", - "version": "1.0.3", - "description": "Require a module bypassing the cache", - "license": "MIT", - "repository": "sindresorhus/require-uncached", + "_args": [ + [ + "require-uncached@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "require-uncached@1.0.3", + "_id": "require-uncached@1.0.3", + "_inBundle": false, + "_integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "_location": "/require-uncached", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "require-uncached@1.0.3", + "name": "require-uncached", + "escapedName": "require-uncached", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/require-uncached/issues" + }, + "dependencies": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "description": "Require a module bypassing the cache", + "devDependencies": { + "ava": "*", + "heapdump": "^0.3.7", + "xo": "^0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava", - "heapdump": "node heapdump.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/require-uncached#readme", "keywords": [ "require", "cache", @@ -28,15 +62,17 @@ "fresh", "bypass" ], - "dependencies": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "license": "MIT", + "name": "require-uncached", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/require-uncached.git" }, - "devDependencies": { - "ava": "*", - "xo": "^0.16.0", - "heapdump": "^0.3.7" + "scripts": { + "heapdump": "node heapdump.js", + "test": "xo && ava" }, + "version": "1.0.3", "xo": { "rules": { "import/no-dynamic-require": "off" diff --git a/admin/vue2/element-admin-v3/node_modules/requires-port/package.json b/admin/vue2/element-admin-v3/node_modules/requires-port/package.json index c113b4bf7..c4e25ce75 100644 --- a/admin/vue2/element-admin-v3/node_modules/requires-port/package.json +++ b/admin/vue2/element-admin-v3/node_modules/requires-port/package.json @@ -1,19 +1,47 @@ { - "name": "requires-port", - "version": "1.0.0", - "description": "Check if a protocol requires a certain port number to be added to an URL.", - "main": "index.js", - "scripts": { - "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", - "test-travis": "istanbul cover _mocha --report lcovonly -- test.js", - "coverage": "istanbul cover _mocha -- test.js", - "watch": "mocha --watch test.js", - "test": "mocha test.js" + "_args": [ + [ + "requires-port@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "requires-port@1.0.0", + "_id": "requires-port@1.0.0", + "_inBundle": false, + "_integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "_location": "/requires-port", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "requires-port@1.0.0", + "name": "requires-port", + "escapedName": "requires-port", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "repository": { - "type": "git", - "url": "https://github.com/unshiftio/requires-port" + "_requiredBy": [ + "/http-proxy", + "/url-parse" + ], + "_resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Arnout Kazemier" }, + "bugs": { + "url": "https://github.com/unshiftio/requires-port/issues" + }, + "description": "Check if a protocol requires a certain port number to be added to an URL.", + "devDependencies": { + "assume": "1.3.x", + "istanbul": "0.4.x", + "mocha": "2.3.x", + "pre-commit": "1.1.x" + }, + "homepage": "https://github.com/unshiftio/requires-port", "keywords": [ "port", "require", @@ -32,16 +60,19 @@ "validation", "cows" ], - "author": "Arnout Kazemier", "license": "MIT", - "bugs": { - "url": "https://github.com/unshiftio/requires-port/issues" + "main": "index.js", + "name": "requires-port", + "repository": { + "type": "git", + "url": "git+https://github.com/unshiftio/requires-port.git" }, - "homepage": "https://github.com/unshiftio/requires-port", - "devDependencies": { - "assume": "1.3.x", - "istanbul": "0.4.x", - "mocha": "2.3.x", - "pre-commit": "1.1.x" - } + "scripts": { + "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", + "coverage": "istanbul cover _mocha -- test.js", + "test": "mocha test.js", + "test-travis": "istanbul cover _mocha --report lcovonly -- test.js", + "watch": "mocha --watch test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/resize-observer-polyfill/package.json b/admin/vue2/element-admin-v3/node_modules/resize-observer-polyfill/package.json index e053eb327..a89af179d 100644 --- a/admin/vue2/element-admin-v3/node_modules/resize-observer-polyfill/package.json +++ b/admin/vue2/element-admin-v3/node_modules/resize-observer-polyfill/package.json @@ -1,64 +1,96 @@ -{ - "name": "resize-observer-polyfill", - "author": "Denis Rul ", - "version": "1.5.1", - "description": "A polyfill for the Resize Observer API", - "main": "dist/ResizeObserver.js", - "module": "dist/ResizeObserver.es.js", - "scripts": { - "build": "rollup -c && cpy src/index.js.flow dist --rename=ResizeObserver.js.flow", - "test": "npm run test:lint && npm run test:spec", - "test:ci": "npm run test:lint && npm run test:spec:sauce && npm run test:spec:node", - "test:ci:pull": "npm run test:lint && karma start --browsers Firefox && npm run test:spec:node", - "test:lint": "node ./node_modules/eslint/bin/eslint.js \"**/*.js\" --ignore-pattern \"/dist/\"", - "test:spec": "karma start --browsers Chrome && npm run test:spec:node", - "test:spec:sauce": "karma start --sauce=windows && karma start --sauce=linux && karma start --sauce=osx", - "test:spec:node": "npm run build && node tests/node/index.js", - "test:spec:custom": "karma start --no-browsers", - "test:spec:native": "karma start --no-browsers --native" - }, - "repository": { - "type": "git", - "url": "https://github.com/que-etc/resize-observer-polyfill.git" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/que-etc/resize-observer-polyfill/issues" - }, - "types": "src/index.d.ts", - "files": [ - "src/", - "dist/" - ], - "keywords": [ - "ResizeObserver", - "resize", - "observer", - "util", - "client", - "browser", - "polyfill", - "ponyfill" - ], - "homepage": "https://github.com/que-etc/resize-observer-polyfill", - "devDependencies": { - "babel-eslint": "10.0.1", - "cpy-cli": "2.0.0", - "eslint": "5.10.0", - "jasmine": "2.8.0", - "jasmine-core": "2.8.0", - "karma": "3.1.3", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.1.0", - "karma-jasmine": "1.1.2", - "karma-jasmine-html-reporter": "0.2.2", - "karma-rollup-preprocessor": "6.1.1", - "karma-sauce-launcher": "1.2.0", - "karma-sourcemap-loader": "0.3.7", - "karma-spec-reporter": "0.0.32", - "promise-polyfill": "8.1.0", - "rollup": "0.67.4", - "rollup-plugin-typescript": "1.0.0", - "typescript": "3.2.2" - } -} +{ + "_args": [ + [ + "resize-observer-polyfill@1.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "resize-observer-polyfill@1.5.1", + "_id": "resize-observer-polyfill@1.5.1", + "_inBundle": false, + "_integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=", + "_location": "/resize-observer-polyfill", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "resize-observer-polyfill@1.5.1", + "name": "resize-observer-polyfill", + "escapedName": "resize-observer-polyfill", + "rawSpec": "1.5.1", + "saveSpec": null, + "fetchSpec": "1.5.1" + }, + "_requiredBy": [ + "/@antv/g2plot", + "/element-ui" + ], + "_resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresize-observer-polyfill%2Fdownload%2Fresize-observer-polyfill-1.5.1.tgz", + "_spec": "1.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Denis Rul", + "email": "que.etc@gmail.com" + }, + "bugs": { + "url": "https://github.com/que-etc/resize-observer-polyfill/issues" + }, + "description": "A polyfill for the Resize Observer API", + "devDependencies": { + "babel-eslint": "10.0.1", + "cpy-cli": "2.0.0", + "eslint": "5.10.0", + "jasmine": "2.8.0", + "jasmine-core": "2.8.0", + "karma": "3.1.3", + "karma-chrome-launcher": "2.2.0", + "karma-firefox-launcher": "1.1.0", + "karma-jasmine": "1.1.2", + "karma-jasmine-html-reporter": "0.2.2", + "karma-rollup-preprocessor": "6.1.1", + "karma-sauce-launcher": "1.2.0", + "karma-sourcemap-loader": "0.3.7", + "karma-spec-reporter": "0.0.32", + "promise-polyfill": "8.1.0", + "rollup": "0.67.4", + "rollup-plugin-typescript": "1.0.0", + "typescript": "3.2.2" + }, + "files": [ + "src/", + "dist/" + ], + "homepage": "https://github.com/que-etc/resize-observer-polyfill", + "keywords": [ + "ResizeObserver", + "resize", + "observer", + "util", + "client", + "browser", + "polyfill", + "ponyfill" + ], + "license": "MIT", + "main": "dist/ResizeObserver.js", + "module": "dist/ResizeObserver.es.js", + "name": "resize-observer-polyfill", + "repository": { + "type": "git", + "url": "git+https://github.com/que-etc/resize-observer-polyfill.git" + }, + "scripts": { + "build": "rollup -c && cpy src/index.js.flow dist --rename=ResizeObserver.js.flow", + "test": "npm run test:lint && npm run test:spec", + "test:ci": "npm run test:lint && npm run test:spec:sauce && npm run test:spec:node", + "test:ci:pull": "npm run test:lint && karma start --browsers Firefox && npm run test:spec:node", + "test:lint": "node ./node_modules/eslint/bin/eslint.js \"**/*.js\" --ignore-pattern \"/dist/\"", + "test:spec": "karma start --browsers Chrome && npm run test:spec:node", + "test:spec:custom": "karma start --no-browsers", + "test:spec:native": "karma start --no-browsers --native", + "test:spec:node": "npm run build && node tests/node/index.js", + "test:spec:sauce": "karma start --sauce=windows && karma start --sauce=linux && karma start --sauce=osx" + }, + "types": "src/index.d.ts", + "version": "1.5.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/resolve-cwd/package.json b/admin/vue2/element-admin-v3/node_modules/resolve-cwd/package.json index 15dd87fc0..0d2ca9ede 100644 --- a/admin/vue2/element-admin-v3/node_modules/resolve-cwd/package.json +++ b/admin/vue2/element-admin-v3/node_modules/resolve-cwd/package.json @@ -1,23 +1,56 @@ { - "name": "resolve-cwd", - "version": "2.0.0", - "description": "Resolve the path of a module like `require.resolve()` but from the current working directory", - "license": "MIT", - "repository": "sindresorhus/resolve-cwd", + "_args": [ + [ + "resolve-cwd@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "resolve-cwd@2.0.0", + "_id": "resolve-cwd@2.0.0", + "_inBundle": false, + "_integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "_location": "/resolve-cwd", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "resolve-cwd@2.0.0", + "name": "resolve-cwd", + "escapedName": "resolve-cwd", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/import-local", + "/webpack-cli/import-local" + ], + "_resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/resolve-cwd/issues" + }, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "description": "Resolve the path of a module like `require.resolve()` but from the current working directory", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/resolve-cwd#readme", "keywords": [ "require", "resolve", @@ -31,11 +64,14 @@ "directory", "import" ], - "dependencies": { - "resolve-from": "^3.0.0" + "license": "MIT", + "name": "resolve-cwd", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/resolve-cwd.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/resolve-from/package.json b/admin/vue2/element-admin-v3/node_modules/resolve-from/package.json index f7c3d09a3..6f59f0503 100644 --- a/admin/vue2/element-admin-v3/node_modules/resolve-from/package.json +++ b/admin/vue2/element-admin-v3/node_modules/resolve-from/package.json @@ -1,23 +1,54 @@ { - "name": "resolve-from", - "version": "3.0.0", - "description": "Resolve the path of a module like `require.resolve()` but from a given path", - "license": "MIT", - "repository": "sindresorhus/resolve-from", + "_args": [ + [ + "resolve-from@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "resolve-from@3.0.0", + "_id": "resolve-from@3.0.0", + "_inBundle": false, + "_integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "_location": "/resolve-from", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "resolve-from@3.0.0", + "name": "resolve-from", + "escapedName": "resolve-from", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/import-fresh", + "/import-from", + "/resolve-cwd" + ], + "_resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/resolve-from/issues" + }, + "description": "Resolve the path of a module like `require.resolve()` but from a given path", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/resolve-from#readme", "keywords": [ "require", "resolve", @@ -28,8 +59,14 @@ "import", "path" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "resolve-from", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/resolve-from.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/resolve-url/package.json b/admin/vue2/element-admin-v3/node_modules/resolve-url/package.json index 944236633..e3dce3a3e 100644 --- a/admin/vue2/element-admin-v3/node_modules/resolve-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/resolve-url/package.json @@ -1,23 +1,59 @@ { - "name": "resolve-url", - "version": "0.2.1", + "_args": [ + [ + "resolve-url@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "resolve-url@0.2.1", + "_id": "resolve-url@0.2.1", + "_inBundle": false, + "_integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "_location": "/resolve-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "resolve-url@0.2.1", + "name": "resolve-url", + "escapedName": "resolve-url", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" + }, + "_requiredBy": [ + "/source-map-resolve" + ], + "_resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/resolve-url/issues" + }, "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.", - "author": "Simon Lydell", - "license": "MIT", - "main": "resolve-url.js", - "repository": "lydell/resolve-url", + "devDependencies": { + "jshint": "~2.4.3", + "tape": "~2.5.0", + "testling": "~1.6.0" + }, + "homepage": "https://github.com/lydell/resolve-url#readme", "keywords": [ "resolve", "url" ], + "license": "MIT", + "main": "resolve-url.js", + "name": "resolve-url", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/resolve-url.git" + }, "scripts": { "test": "jshint resolve-url.js test/ && testling -u" }, - "devDependencies": { - "testling": "~1.6.0", - "jshint": "~2.4.3", - "tape": "~2.5.0" - }, "testling": { "files": "test/*.js", "browsers": [ @@ -30,5 +66,6 @@ "iphone/6", "android-browser/4" ] - } + }, + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/resolve/package.json b/admin/vue2/element-admin-v3/node_modules/resolve/package.json index 52a78a233..545d8e12c 100644 --- a/admin/vue2/element-admin-v3/node_modules/resolve/package.json +++ b/admin/vue2/element-admin-v3/node_modules/resolve/package.json @@ -1,51 +1,87 @@ { - "name": "resolve", - "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", - "version": "1.20.0", - "repository": { - "type": "git", - "url": "git://github.com/browserify/resolve.git" - }, - "main": "index.js", - "keywords": [ - "resolve", - "require", - "node", - "module" - ], - "scripts": { - "prepublish": "safe-publish-latest && cp node_modules/is-core-module/core.json ./lib/ ||:", - "prelint": "eclint check '**/*'", - "lint": "eslint --ext=js,mjs .", - "pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async", - "tests-only": "tape test/*.js", - "pretest": "npm run lint", - "test": "npm run --silent tests-only", - "posttest": "npm run test:multirepo && aud --production", - "test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.5.1", - "array.prototype.map": "^1.0.3", - "aud": "^1.1.4", - "eclint": "^2.8.1", - "eslint": "^7.19.0", - "object-keys": "^1.1.1", - "safe-publish-latest": "^1.1.4", - "tap": "0.4.13", - "tape": "^5.1.1" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } + "_args": [ + [ + "resolve@1.20.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "resolve@1.20.0", + "_id": "resolve@1.20.0", + "_inBundle": false, + "_integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", + "_location": "/resolve", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "resolve@1.20.0", + "name": "resolve", + "escapedName": "resolve", + "rawSpec": "1.20.0", + "saveSpec": null, + "fetchSpec": "1.20.0" + }, + "_requiredBy": [ + "/normalize-package-data", + "/postcss-import", + "/pug-filters", + "/pug-html-loader/pug-filters", + "/rechoir" + ], + "_resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", + "_spec": "1.20.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/browserify/resolve/issues" + }, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", + "devDependencies": { + "@ljharb/eslint-config": "^17.5.1", + "array.prototype.map": "^1.0.3", + "aud": "^1.1.4", + "eclint": "^2.8.1", + "eslint": "^7.19.0", + "object-keys": "^1.1.1", + "safe-publish-latest": "^1.1.4", + "tap": "0.4.13", + "tape": "^5.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/browserify/resolve#readme", + "keywords": [ + "resolve", + "require", + "node", + "module" + ], + "license": "MIT", + "main": "index.js", + "name": "resolve", + "repository": { + "type": "git", + "url": "git://github.com/browserify/resolve.git" + }, + "scripts": { + "lint": "eslint --ext=js,mjs .", + "posttest": "npm run test:multirepo && aud --production", + "prelint": "eclint check '**/*'", + "prepublish": "safe-publish-latest && cp node_modules/is-core-module/core.json ./lib/ ||:", + "pretest": "npm run lint", + "pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async", + "test": "npm run --silent tests-only", + "test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test", + "tests-only": "tape test/*.js" + }, + "version": "1.20.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/restore-cursor/package.json b/admin/vue2/element-admin-v3/node_modules/restore-cursor/package.json index f121ed1ea..325a0fac7 100644 --- a/admin/vue2/element-admin-v3/node_modules/restore-cursor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/restore-cursor/package.json @@ -1,20 +1,53 @@ { - "name": "restore-cursor", - "version": "2.0.0", - "description": "Gracefully restore the CLI cursor on exit", - "license": "MIT", - "repository": "sindresorhus/restore-cursor", + "_args": [ + [ + "restore-cursor@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "restore-cursor@2.0.0", + "_id": "restore-cursor@2.0.0", + "_inBundle": false, + "_integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "_location": "/restore-cursor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "restore-cursor@2.0.0", + "name": "restore-cursor", + "escapedName": "restore-cursor", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/cli-cursor" + ], + "_resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/restore-cursor/issues" + }, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "description": "Gracefully restore the CLI cursor on exit", "engines": { "node": ">=4" }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/restore-cursor#readme", "keywords": [ "exit", "quit", @@ -37,8 +70,11 @@ "shell", "command-line" ], - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } + "license": "MIT", + "name": "restore-cursor", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/restore-cursor.git" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/ret/package.json b/admin/vue2/element-admin-v3/node_modules/ret/package.json index 2fde9a44e..ab156c5b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/ret/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ret/package.json @@ -1,6 +1,54 @@ { - "name": "ret", + "_args": [ + [ + "ret@0.1.15", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ret@0.1.15", + "_id": "ret@0.1.15", + "_inBundle": false, + "_integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "_location": "/ret", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ret@0.1.15", + "name": "ret", + "escapedName": "ret", + "rawSpec": "0.1.15", + "saveSpec": null, + "fetchSpec": "0.1.15" + }, + "_requiredBy": [ + "/safe-regex" + ], + "_resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz?cache=0&sync_timestamp=1613003016472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz", + "_spec": "0.1.15", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roly Fentanes", + "url": "https://github.com/fent" + }, + "bugs": { + "url": "https://github.com/fent/ret.js/issues" + }, "description": "Tokenizes a string that represents a regular expression.", + "devDependencies": { + "istanbul": "*", + "vows": "*" + }, + "directories": { + "lib": "./lib" + }, + "engines": { + "node": ">=0.12" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/fent/ret.js#readme", "keywords": [ "regex", "regexp", @@ -8,28 +56,15 @@ "parser", "tokenizer" ], - "version": "0.1.15", + "license": "MIT", + "main": "./lib/index.js", + "name": "ret", "repository": { "type": "git", "url": "git://github.com/fent/ret.js.git" }, - "author": "Roly Fentanes (https://github.com/fent)", - "main": "./lib/index.js", - "files": [ - "lib" - ], "scripts": { "test": "istanbul cover vows -- --spec test/*-test.js" }, - "directories": { - "lib": "./lib" - }, - "devDependencies": { - "istanbul": "*", - "vows": "*" - }, - "engines": { - "node": ">=0.12" - }, - "license": "MIT" + "version": "0.1.15" } diff --git a/admin/vue2/element-admin-v3/node_modules/retry/package.json b/admin/vue2/element-admin-v3/node_modules/retry/package.json index 73c725970..38907c362 100644 --- a/admin/vue2/element-admin-v3/node_modules/retry/package.json +++ b/admin/vue2/element-admin-v3/node_modules/retry/package.json @@ -1,32 +1,67 @@ { - "author": "Tim Koschützki (http://debuggable.com/)", - "name": "retry", - "description": "Abstraction for exponential and custom retry strategies for failed operations.", - "license": "MIT", - "version": "0.12.0", - "homepage": "https://github.com/tim-kos/node-retry", - "repository": { - "type": "git", - "url": "git://github.com/tim-kos/node-retry.git" + "_args": [ + [ + "retry@0.12.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "retry@0.12.0", + "_id": "retry@0.12.0", + "_inBundle": false, + "_integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "_location": "/retry", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "retry@0.12.0", + "name": "retry", + "escapedName": "retry", + "rawSpec": "0.12.0", + "saveSpec": null, + "fetchSpec": "0.12.0" }, - "directories": { - "lib": "./lib" + "_requiredBy": [ + "/p-retry" + ], + "_resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", + "_spec": "0.12.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tim Koschützki", + "email": "tim@debuggable.com", + "url": "http://debuggable.com/" }, - "main": "index", - "engines": { - "node": ">= 4" + "bugs": { + "url": "https://github.com/tim-kos/node-retry/issues" }, "dependencies": {}, + "description": "Abstraction for exponential and custom retry strategies for failed operations.", "devDependencies": { "fake": "0.2.0", "istanbul": "^0.4.5", "tape": "^4.8.0" }, + "directories": { + "lib": "./lib" + }, + "engines": { + "node": ">= 4" + }, + "homepage": "https://github.com/tim-kos/node-retry", + "license": "MIT", + "main": "index", + "name": "retry", + "repository": { + "type": "git", + "url": "git://github.com/tim-kos/node-retry.git" + }, "scripts": { - "test": "./node_modules/.bin/istanbul cover ./node_modules/tape/bin/tape ./test/integration/*.js", + "release": "npm version ${SEMANTIC:-patch} -m \"Release %s\" && git push && git push --tags && npm publish", "release:major": "env SEMANTIC=major npm run release", "release:minor": "env SEMANTIC=minor npm run release", "release:patch": "env SEMANTIC=patch npm run release", - "release": "npm version ${SEMANTIC:-patch} -m \"Release %s\" && git push && git push --tags && npm publish" - } + "test": "istanbul cover ./node_modules/tape/bin/tape ./test/integration/*.js" + }, + "version": "0.12.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/rgb-regex/package.json b/admin/vue2/element-admin-v3/node_modules/rgb-regex/package.json index 50d5e1330..f1eaf44d8 100644 --- a/admin/vue2/element-admin-v3/node_modules/rgb-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rgb-regex/package.json @@ -1,19 +1,48 @@ { - "name": "rgb-regex", + "_args": [ + [ + "rgb-regex@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "rgb-regex@1.0.1", + "_id": "rgb-regex@1.0.1", + "_inBundle": false, + "_integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "_location": "/rgb-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rgb-regex@1.0.1", + "name": "rgb-regex", + "escapedName": "rgb-regex", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/is-color-stop" + ], + "_resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John Otander" + }, + "bugs": { + "url": "https://github.com/regexps/rgb-regex/issues" + }, + "dependencies": {}, "description": "Regex for RGB color strings.", - "author": "John Otander", - "version": "1.0.1", - "main": "index.js", + "devDependencies": { + "mocha": "*" + }, "directories": { "test": "test" }, - "scripts": { - "test": "mocha test" - }, - "repository": { - "type": "git", - "url": "https://github.com/regexps/rgb-regex.git" - }, + "homepage": "https://github.com/regexps/rgb-regex", "keywords": [ "css", "regex", @@ -25,12 +54,14 @@ "expression" ], "license": "MIT", - "bugs": { - "url": "https://github.com/regexps/rgb-regex/issues" + "main": "index.js", + "name": "rgb-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/regexps/rgb-regex.git" }, - "homepage": "https://github.com/regexps/rgb-regex", - "dependencies": {}, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha test" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/rgba-regex/package.json b/admin/vue2/element-admin-v3/node_modules/rgba-regex/package.json index bc93b8ea8..0c7ea3c74 100644 --- a/admin/vue2/element-admin-v3/node_modules/rgba-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rgba-regex/package.json @@ -1,19 +1,48 @@ { - "name": "rgba-regex", + "_args": [ + [ + "rgba-regex@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "rgba-regex@1.0.0", + "_id": "rgba-regex@1.0.0", + "_inBundle": false, + "_integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "_location": "/rgba-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rgba-regex@1.0.0", + "name": "rgba-regex", + "escapedName": "rgba-regex", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/is-color-stop" + ], + "_resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John Otander" + }, + "bugs": { + "url": "https://github.com/johnotander/rgba-regex/issues" + }, + "dependencies": {}, "description": "Regex for matching RGBA color strings.", - "author": "John Otander", - "version": "1.0.0", - "main": "index.js", + "devDependencies": { + "mocha": "*" + }, "directories": { "test": "test" }, - "scripts": { - "test": "mocha test" - }, - "repository": { - "type": "git", - "url": "https://github.com/johnotander/rgba-regex.git" - }, + "homepage": "https://github.com/johnotander/rgba-regex", "keywords": [ "css", "regex", @@ -25,12 +54,14 @@ "expression" ], "license": "MIT", - "bugs": { - "url": "https://github.com/johnotander/rgba-regex/issues" + "main": "index.js", + "name": "rgba-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/johnotander/rgba-regex.git" }, - "homepage": "https://github.com/johnotander/rgba-regex", - "dependencies": {}, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha test" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/right-align/package.json b/admin/vue2/element-admin-v3/node_modules/right-align/package.json index fe20d26d2..5fa109e5e 100644 --- a/admin/vue2/element-admin-v3/node_modules/right-align/package.json +++ b/admin/vue2/element-admin-v3/node_modules/right-align/package.json @@ -1,37 +1,55 @@ { - "name": "right-align", - "description": "Right-align the text in a string.", - "version": "0.1.3", - "homepage": "https://github.com/jonschlinkert/right-align", + "_args": [ + [ + "right-align@0.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "right-align@0.1.3", + "_id": "right-align@0.1.3", + "_inBundle": false, + "_integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "_location": "/right-align", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "right-align@0.1.3", + "name": "right-align", + "escapedName": "right-align", + "rawSpec": "0.1.3", + "saveSpec": null, + "fetchSpec": "0.1.3" + }, + "_requiredBy": [ + "/pug-html-loader/cliui" + ], + "_resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", + "_spec": "0.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" }, - "repository": { - "type": "git", - "url": "git://github.com/jonschlinkert/right-align.git" - }, "bugs": { "url": "https://github.com/jonschlinkert/right-align/issues" }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, "dependencies": { "align-text": "^0.1.1" }, + "description": "Right-align the text in a string.", "devDependencies": { "mocha": "*", "should": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/right-align", "keywords": [ "align", "align-center", @@ -41,5 +59,16 @@ "right-align", "text", "typography" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "right-align", + "repository": { + "type": "git", + "url": "git://github.com/jonschlinkert/right-align.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/rimraf/package.json b/admin/vue2/element-admin-v3/node_modules/rimraf/package.json index 28aed6522..06c95259a 100644 --- a/admin/vue2/element-admin-v3/node_modules/rimraf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rimraf/package.json @@ -1,26 +1,72 @@ { - "name": "rimraf", - "version": "2.6.2", - "main": "rimraf.js", - "description": "A deep deletion module for node (like `rm -rf`)", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "repository": "git://github.com/isaacs/rimraf.git", - "scripts": { - "test": "tap test/*.js" + "_args": [ + [ + "rimraf@2.6.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "rimraf@2.6.2", + "_id": "rimraf@2.6.2", + "_inBundle": false, + "_integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "_location": "/rimraf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rimraf@2.6.2", + "name": "rimraf", + "escapedName": "rimraf", + "rawSpec": "2.6.2", + "saveSpec": null, + "fetchSpec": "2.6.2" + }, + "_requiredBy": [ + "#DEV:/", + "/cacache", + "/copy-concurrently", + "/eslint-loader", + "/flat-cache", + "/move-concurrently" + ], + "_resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.2.tgz", + "_spec": "2.6.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bin": { + "rimraf": "bin.js" + }, + "bugs": { + "url": "https://github.com/isaacs/rimraf/issues" }, - "bin": "./bin.js", "dependencies": { "glob": "^7.0.5" }, + "description": "A deep deletion module for node (like `rm -rf`)", + "devDependencies": { + "mkdirp": "^0.5.1", + "tap": "^10.1.2" + }, "files": [ "LICENSE", "README.md", "bin.js", "rimraf.js" ], - "devDependencies": { - "mkdirp": "^0.5.1", - "tap": "^10.1.2" - } + "homepage": "https://github.com/isaacs/rimraf#readme", + "license": "ISC", + "main": "rimraf.js", + "name": "rimraf", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/rimraf.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "2.6.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/ripemd160/package.json b/admin/vue2/element-admin-v3/node_modules/ripemd160/package.json index 70d3c6030..754e502f4 100644 --- a/admin/vue2/element-admin-v3/node_modules/ripemd160/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ripemd160/package.json @@ -1,7 +1,51 @@ { - "name": "ripemd160", - "version": "2.0.2", + "_args": [ + [ + "ripemd160@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ripemd160@2.0.2", + "_id": "ripemd160@2.0.2", + "_inBundle": false, + "_integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "_location": "/ripemd160", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ripemd160@2.0.2", + "name": "ripemd160", + "escapedName": "ripemd160", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/create-hash", + "/create-hmac", + "/pbkdf2" + ], + "_resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/crypto-browserify/ripemd160/issues" + }, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + }, "description": "Compute ripemd160 of bytes or strings.", + "devDependencies": { + "hash-test-vectors": "^1.3.2", + "standard": "^6.0.7", + "tape": "^4.5.1" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/crypto-browserify/ripemd160#readme", "keywords": [ "string", "strings", @@ -12,12 +56,10 @@ "cryptography" ], "license": "MIT", - "files": [ - "index.js" - ], "main": "./index", + "name": "ripemd160", "repository": { - "url": "https://github.com/crypto-browserify/ripemd160", + "url": "git+https://github.com/crypto-browserify/ripemd160.git", "type": "git" }, "scripts": { @@ -25,13 +67,5 @@ "test": "npm run lint && npm run unit", "unit": "node test/*.js" }, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - }, - "devDependencies": { - "hash-test-vectors": "^1.3.2", - "standard": "^6.0.7", - "tape": "^4.5.1" - } + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/run-async/package.json b/admin/vue2/element-admin-v3/node_modules/run-async/package.json index b923265de..4afde05fc 100644 --- a/admin/vue2/element-admin-v3/node_modules/run-async/package.json +++ b/admin/vue2/element-admin-v3/node_modules/run-async/package.json @@ -1,27 +1,67 @@ { - "name": "run-async", - "version": "2.4.1", + "_args": [ + [ + "run-async@2.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "run-async@2.4.1", + "_id": "run-async@2.4.1", + "_inBundle": false, + "_integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "_location": "/run-async", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "run-async@2.4.1", + "name": "run-async", + "escapedName": "run-async", + "rawSpec": "2.4.1", + "saveSpec": null, + "fetchSpec": "2.4.1" + }, + "_requiredBy": [ + "/inquirer", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz", + "_spec": "2.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Boudrias", + "email": "admin@simonboudrias.com" + }, + "bugs": { + "url": "https://github.com/SBoudrias/run-async/issues" + }, + "dependencies": {}, "description": "Utility method to run function either synchronously or asynchronously using the common `this.async()` style.", - "main": "index.js", - "scripts": { - "test": "mocha -R spec" + "devDependencies": { + "mocha": "^7.1.0" }, "engines": { "node": ">=0.12.0" }, - "repository": "SBoudrias/run-async", + "files": [ + "index.js" + ], + "homepage": "https://github.com/SBoudrias/run-async#readme", "keywords": [ "flow", "flow-control", "async" ], - "files": [ - "index.js" - ], - "author": "Simon Boudrias ", "license": "MIT", - "dependencies": {}, - "devDependencies": { - "mocha": "^7.1.0" - } + "main": "index.js", + "name": "run-async", + "repository": { + "type": "git", + "url": "git+https://github.com/SBoudrias/run-async.git" + }, + "scripts": { + "test": "mocha -R spec" + }, + "version": "2.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/run-queue/package.json b/admin/vue2/element-admin-v3/node_modules/run-queue/package.json index f174f9ebc..6d59062ae 100644 --- a/admin/vue2/element-admin-v3/node_modules/run-queue/package.json +++ b/admin/vue2/element-admin-v3/node_modules/run-queue/package.json @@ -1,33 +1,66 @@ { - "name": "run-queue", - "version": "1.0.3", - "description": "A promise based, dynamic priority queue runner, with concurrency limiting.", - "main": "queue.js", - "scripts": { - "test": "standard && tap -J test" + "_args": [ + [ + "run-queue@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "run-queue@1.0.3", + "_id": "run-queue@1.0.3", + "_inBundle": false, + "_integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "_location": "/run-queue", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "run-queue@1.0.3", + "name": "run-queue", + "escapedName": "run-queue", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", + "_requiredBy": [ + "/copy-concurrently", + "/move-concurrently" + ], + "_resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/run-queue/issues" + }, + "dependencies": { + "aproba": "^1.1.1" + }, + "description": "A promise based, dynamic priority queue runner, with concurrency limiting.", "devDependencies": { "standard": "^8.6.0", "tap": "^10.2.0" }, - "files": [ - "queue.js" - ], "directories": { "test": "test" }, - "dependencies": { - "aproba": "^1.1.1" - }, + "files": [ + "queue.js" + ], + "homepage": "https://npmjs.com/package/run-queue", + "keywords": [], + "license": "ISC", + "main": "queue.js", + "name": "run-queue", "repository": { "type": "git", "url": "git+https://github.com/iarna/run-queue.git" }, - "bugs": { - "url": "https://github.com/iarna/run-queue/issues" + "scripts": { + "test": "standard && tap -J test" }, - "homepage": "https://npmjs.com/package/run-queue" + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/rust-result/package.json b/admin/vue2/element-admin-v3/node_modules/rust-result/package.json index 0269f9b13..fd46931b6 100644 --- a/admin/vue2/element-admin-v3/node_modules/rust-result/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rust-result/package.json @@ -1,27 +1,60 @@ { - "name": "rust-result", - "version": "1.0.0", - "author": "Maciej Małecki ", - "description": "Mimic Rust's `std::result`", - "main": "index", - "homepage": "https://github.com/mmalecki/rust-result.js", - "repository": "git://github.com/mmalecki/rust-result.js.git", + "_args": [ + [ + "rust-result@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "rust-result@1.0.0", + "_id": "rust-result@1.0.0", + "_inBundle": false, + "_integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=", + "_location": "/rust-result", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rust-result@1.0.0", + "name": "rust-result", + "escapedName": "rust-result", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/safe-json-parse" + ], + "_resolved": "https://registry.npm.taobao.org/rust-result/download/rust-result-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Maciej Małecki", + "email": "me@mmalecki.com" + }, "bugs": { - "url": "https://github.com/mmalecki/rust-result.js/issues", - "email": "raynos2@gmail" + "url": "https://github.com/mmalecki/rust-result.js/issues" }, - "scripts": { - "test": "node test.js", - "cover": "istanbul cover --print detail --report html test.js", - "view-cover": "istanbul report html && opn ./coverage/index.html" + "dependencies": { + "individual": "^2.0.0" }, - "license": "MIT", + "description": "Mimic Rust's `std::result`", "devDependencies": { "istanbul": "^0.3.5", "opn": "^1.0.0", "tape": "^3.0.1" }, - "dependencies": { - "individual": "^2.0.0" - } + "homepage": "https://github.com/mmalecki/rust-result.js", + "license": "MIT", + "main": "index", + "name": "rust-result", + "repository": { + "type": "git", + "url": "git://github.com/mmalecki/rust-result.js.git" + }, + "scripts": { + "cover": "istanbul cover --print detail --report html test.js", + "test": "node test.js", + "view-cover": "istanbul report html && opn ./coverage/index.html" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/rx-lite-aggregates/package.json b/admin/vue2/element-admin-v3/node_modules/rx-lite-aggregates/package.json index 0b77a4217..3aab1feea 100644 --- a/admin/vue2/element-admin-v3/node_modules/rx-lite-aggregates/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rx-lite-aggregates/package.json @@ -1,34 +1,52 @@ { - "name": "rx-lite-aggregates", - "title": "Reactive Extensions for JavaScript (RxJS) Aggregates", - "description": "Lightweight library with aggregate functions for composing asynchronous and event-based operations in JavaScript", - "version": "4.0.8", - "homepage": "https://github.com/Reactive-Extensions/RxJS", + "_args": [ + [ + "rx-lite-aggregates@4.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "rx-lite-aggregates@4.0.8", + "_id": "rx-lite-aggregates@4.0.8", + "_inBundle": false, + "_integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "_location": "/rx-lite-aggregates", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rx-lite-aggregates@4.0.8", + "name": "rx-lite-aggregates", + "escapedName": "rx-lite-aggregates", + "rawSpec": "4.0.8", + "saveSpec": null, + "fetchSpec": "4.0.8" + }, + "_requiredBy": [ + "/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", + "_spec": "4.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Cloud Programmability Team", "url": "https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt" }, - "repository": { - "type": "git", - "url": "https://github.com/Reactive-Extensions/RxJS.git" - }, - "licenses": [ - { - "type": "Apache License, Version 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - } - ], - "bugs": "https://github.com/Reactive-Extensions/RxJS/issues", - "jam": { - "main": "rx.lite.aggregates.js" - }, "browser": { "index.js": "rx.lite.aggregates.js" }, + "bugs": { + "url": "https://github.com/Reactive-Extensions/RxJS/issues" + }, "dependencies": { "rx-lite": "*" }, + "description": "Lightweight library with aggregate functions for composing asynchronous and event-based operations in JavaScript", "devDependencies": {}, + "homepage": "https://github.com/Reactive-Extensions/RxJS", + "jam": { + "main": "rx.lite.aggregates.js" + }, "keywords": [ "React", "Reactive", @@ -36,5 +54,18 @@ "Rx", "RxJS" ], - "main": "rx.lite.aggregates.js" + "licenses": [ + { + "type": "Apache License, Version 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + ], + "main": "rx.lite.aggregates.js", + "name": "rx-lite-aggregates", + "repository": { + "type": "git", + "url": "git+https://github.com/Reactive-Extensions/RxJS.git" + }, + "title": "Reactive Extensions for JavaScript (RxJS) Aggregates", + "version": "4.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/rx-lite/package.json b/admin/vue2/element-admin-v3/node_modules/rx-lite/package.json index 327aec71d..3c0f59b11 100644 --- a/admin/vue2/element-admin-v3/node_modules/rx-lite/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rx-lite/package.json @@ -1,32 +1,51 @@ { - "name": "rx-lite", - "title": "Reactive Extensions for JavaScript (RxJS) Lite", - "description": "Lightweight library for composing asynchronous and event-based operations in JavaScript", - "version": "4.0.8", - "homepage": "https://github.com/Reactive-Extensions/RxJS", + "_args": [ + [ + "rx-lite@4.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "rx-lite@4.0.8", + "_id": "rx-lite@4.0.8", + "_inBundle": false, + "_integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "_location": "/rx-lite", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rx-lite@4.0.8", + "name": "rx-lite", + "escapedName": "rx-lite", + "rawSpec": "4.0.8", + "saveSpec": null, + "fetchSpec": "4.0.8" + }, + "_requiredBy": [ + "/inquirer", + "/rx-lite-aggregates" + ], + "_resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", + "_spec": "4.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Cloud Programmability Team", "url": "https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt" }, - "repository": { - "type": "git", - "url": "https://github.com/Reactive-Extensions/RxJS.git" - }, - "licenses": [ - { - "type": "Apache License, Version 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - } - ], - "bugs": "https://github.com/Reactive-Extensions/RxJS/issues", - "jam": { - "main": "rx.lite.js" - }, "browser": { "index.js": "rx.lite.js" }, + "bugs": { + "url": "https://github.com/Reactive-Extensions/RxJS/issues" + }, "dependencies": {}, + "description": "Lightweight library for composing asynchronous and event-based operations in JavaScript", "devDependencies": {}, + "homepage": "https://github.com/Reactive-Extensions/RxJS", + "jam": { + "main": "rx.lite.js" + }, "keywords": [ "React", "Reactive", @@ -34,5 +53,18 @@ "Rx", "RxJS" ], - "main": "rx.lite.js" + "licenses": [ + { + "type": "Apache License, Version 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + ], + "main": "rx.lite.js", + "name": "rx-lite", + "repository": { + "type": "git", + "url": "git+https://github.com/Reactive-Extensions/RxJS.git" + }, + "title": "Reactive Extensions for JavaScript (RxJS) Lite", + "version": "4.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/rxjs/package.json b/admin/vue2/element-admin-v3/node_modules/rxjs/package.json index a604e5be1..8fd8f9cc7 100644 --- a/admin/vue2/element-admin-v3/node_modules/rxjs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/rxjs/package.json @@ -1,66 +1,46 @@ { - "name": "rxjs", - "version": "6.6.7", - "description": "Reactive Extensions for modern JavaScript", - "main": "./index.js", - "sideEffects": false, + "_args": [ + [ + "rxjs@6.6.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "rxjs@6.6.7", + "_id": "rxjs@6.6.7", + "_inBundle": false, + "_integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", + "_location": "/rxjs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "rxjs@6.6.7", + "name": "rxjs", + "escapedName": "rxjs", + "rawSpec": "6.6.7", + "saveSpec": null, + "fetchSpec": "6.6.7" + }, + "_requiredBy": [ + "/listr", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.nlark.com/rxjs/download/rxjs-6.6.7.tgz?cache=0&sync_timestamp=1621619391474&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frxjs%2Fdownload%2Frxjs-6.6.7.tgz", + "_spec": "6.6.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Lesh", + "email": "ben@benlesh.com" + }, + "bugs": { + "url": "https://github.com/ReactiveX/RxJS/issues" + }, "config": { "commitizen": { "path": "cz-conventional-changelog" } }, - "nyc": { - "include": [ - "src/*.ts", - "src/**/*.ts" - ], - "exclude": [ - "node_modules", - "dist", - "*.d.ts", - "src/**/MiscJSDoc.ts" - ], - "extension": [ - ".ts" - ], - "reporter": [ - "html" - ], - "all": true - }, - "lint-staged": { - "linters": { - "*.@(js)": [ - "eslint --fix", - "git add" - ], - "*.@(ts)": [ - "tslint --fix", - "git add" - ] - }, - "ignore": [ - "spec-dtslint/**/*.{js,ts}", - "api_guard/**/*.{js,ts}" - ] - }, - "repository": { - "type": "git", - "url": "https://github.com/reactivex/rxjs.git" - }, - "keywords": [ - "Rx", - "RxJS", - "ReactiveX", - "ReactiveExtensions", - "Streams", - "Observables", - "Observable", - "Stream", - "ES6", - "ES2015" - ], - "author": "Ben Lesh ", "contributors": [ { "name": "Ben Lesh", @@ -87,14 +67,10 @@ "email": "andre@staltz.com" } ], - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/ReactiveX/RxJS/issues" - }, - "homepage": "https://github.com/ReactiveX/RxJS", "dependencies": { "tslib": "^1.9.0" }, + "description": "Reactive Extensions for modern JavaScript", "devDependencies": { "@angular-devkit/build-optimizer": "0.4.6", "@angular-devkit/schematics": "^0.5.4", @@ -173,10 +149,67 @@ "engines": { "npm": ">=2.0.0" }, - "typings": "./index.d.ts", + "es2015": "./_esm2015/index.js", + "homepage": "https://github.com/ReactiveX/RxJS", + "keywords": [ + "Rx", + "RxJS", + "ReactiveX", + "ReactiveExtensions", + "Streams", + "Observables", + "Observable", + "Stream", + "ES6", + "ES2015" + ], + "license": "Apache-2.0", + "lint-staged": { + "linters": { + "*.@(js)": [ + "eslint --fix", + "git add" + ], + "*.@(ts)": [ + "tslint --fix", + "git add" + ] + }, + "ignore": [ + "spec-dtslint/**/*.{js,ts}", + "api_guard/**/*.{js,ts}" + ] + }, + "main": "./index.js", + "module": "./_esm5/index.js", + "name": "rxjs", "ng-update": { "migrations": "./migrations/collection.json" }, - "module": "./_esm5/index.js", - "es2015": "./_esm2015/index.js" + "nyc": { + "include": [ + "src/*.ts", + "src/**/*.ts" + ], + "exclude": [ + "node_modules", + "dist", + "*.d.ts", + "src/**/MiscJSDoc.ts" + ], + "extension": [ + ".ts" + ], + "reporter": [ + "html" + ], + "all": true + }, + "repository": { + "type": "git", + "url": "git+https://github.com/reactivex/rxjs.git" + }, + "sideEffects": false, + "typings": "./index.d.ts", + "version": "6.6.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/safe-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/safe-buffer/package.json index 623fbc3f6..bc1ed608c 100644 --- a/admin/vue2/element-admin-v3/node_modules/safe-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/safe-buffer/package.json @@ -1,7 +1,54 @@ { - "name": "safe-buffer", - "description": "Safer Node.js Buffer API", - "version": "5.1.2", + "_args": [ + [ + "safe-buffer@5.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safe-buffer@5.1.2", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.2", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" + }, + "_requiredBy": [ + "/browserify-aes", + "/browserify-des", + "/cipher-base", + "/compression", + "/content-disposition", + "/convert-source-map", + "/create-hmac", + "/dns-packet", + "/evp_bytestokey", + "/express", + "/md5.js", + "/parse-asn1", + "/pbkdf2", + "/public-encrypt", + "/randombytes", + "/randomfill", + "/readable-stream", + "/request", + "/sha.js", + "/ssri", + "/string_decoder", + "/tunnel-agent", + "/websocket-driver" + ], + "_resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "_spec": "5.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -10,6 +57,7 @@ "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, + "description": "Safer Node.js Buffer API", "devDependencies": { "standard": "*", "tape": "^4.0.0" @@ -26,12 +74,14 @@ ], "license": "MIT", "main": "index.js", - "types": "index.d.ts", + "name": "safe-buffer", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" }, "scripts": { "test": "standard && tape test/*.js" - } + }, + "types": "index.d.ts", + "version": "5.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/safe-json-parse/package.json b/admin/vue2/element-admin-v3/node_modules/safe-json-parse/package.json index 80522096d..91217a230 100644 --- a/admin/vue2/element-admin-v3/node_modules/safe-json-parse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/safe-json-parse/package.json @@ -1,33 +1,66 @@ { - "name": "safe-json-parse", - "version": "4.0.0", - "description": "Parse JSON safely without throwing", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/safe-json-parse.git", - "main": "callback", - "homepage": "https://github.com/Raynos/safe-json-parse", - "contributors": [ - { - "name": "Raynos" - } + "_args": [ + [ + "safe-json-parse@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "safe-json-parse@4.0.0", + "_id": "safe-json-parse@4.0.0", + "_inBundle": false, + "_integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=", + "_location": "/safe-json-parse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-json-parse@4.0.0", + "name": "safe-json-parse", + "escapedName": "safe-json-parse", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/video.js" + ], + "_resolved": "https://registry.npm.taobao.org/safe-json-parse/download/safe-json-parse-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, "bugs": { "url": "https://github.com/Raynos/safe-json-parse/issues", "email": "raynos2@gmail.com" }, + "contributors": [ + { + "name": "Raynos" + } + ], "dependencies": { "rust-result": "^1.0.0" }, + "description": "Parse JSON safely without throwing", "devDependencies": { "tape": "~1.0.2" }, + "homepage": "https://github.com/Raynos/safe-json-parse", + "keywords": [], "licenses": [ { "type": "MIT", "url": "http://github.com/Raynos/safe-json-parse/raw/master/LICENSE" } ], + "main": "callback", + "name": "safe-json-parse", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/safe-json-parse.git" + }, "scripts": { "test": "node ./test/index.js" }, @@ -46,5 +79,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/safe-regex/package.json b/admin/vue2/element-admin-v3/node_modules/safe-regex/package.json index 0dd631b54..d30149e57 100644 --- a/admin/vue2/element-admin-v3/node_modules/safe-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/safe-regex/package.json @@ -1,43 +1,77 @@ { - "name": "safe-regex", - "version": "1.1.0", - "description": "detect possibly catastrophic, exponential-time regular expressions", - "main": "index.js", + "_args": [ + [ + "safe-regex@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safe-regex@1.1.0", + "_id": "safe-regex@1.1.0", + "_inBundle": false, + "_integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "_location": "/safe-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-regex@1.1.0", + "name": "safe-regex", + "escapedName": "safe-regex", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/regex-not", + "/to-regex" + ], + "_resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/safe-regex/issues" + }, "dependencies": { "ret": "~0.1.10" }, + "description": "detect possibly catastrophic, exponential-time regular expressions", "devDependencies": { "tape": "^3.5.0" }, + "homepage": "https://github.com/substack/safe-regex", + "keywords": [ + "catastrophic", + "exponential", + "regex", + "safe", + "sandbox" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-regex", + "repository": { + "type": "git", + "url": "git://github.com/substack/safe-regex.git" + }, "scripts": { "test": "tape test/*.js" }, "testling": { "files": "test/*.js", "browsers": [ - "ie/8", "ie/9", "ie/10", + "ie/8", + "ie/9", + "ie/10", "firefox/latest", "chrome/latest", "opera/latest", "safari/latest" ] }, - "repository": { - "type": "git", - "url": "git://github.com/substack/safe-regex.git" - }, - "homepage": "https://github.com/substack/safe-regex", - "keywords": [ - "catastrophic", - "exponential", - "regex", - "safe", - "sandbox" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT" + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/safer-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/safer-buffer/package.json index d452b04ae..45f3ac808 100644 --- a/admin/vue2/element-admin-v3/node_modules/safer-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/safer-buffer/package.json @@ -1,25 +1,45 @@ { - "name": "safer-buffer", - "version": "2.1.2", - "description": "Modern Buffer API polyfill without footguns", - "main": "safer.js", - "scripts": { - "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js", - "test": "standard && tape tests.js" + "_args": [ + [ + "safer-buffer@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safer-buffer@2.1.2", + "_id": "safer-buffer@2.1.2", + "_inBundle": false, + "_integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "_location": "/safer-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safer-buffer@2.1.2", + "name": "safer-buffer", + "escapedName": "safer-buffer", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" }, + "_requiredBy": [ + "/asn1", + "/asn1.js", + "/ecc-jsbn", + "/iconv-lite", + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Nikita Skovoroda", "email": "chalkerx@gmail.com", "url": "https://github.com/ChALkeR" }, - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/ChALkeR/safer-buffer.git" - }, "bugs": { "url": "https://github.com/ChALkeR/safer-buffer/issues" }, + "description": "Modern Buffer API polyfill without footguns", "devDependencies": { "standard": "^11.0.1", "tape": "^4.9.0" @@ -30,5 +50,18 @@ "tests.js", "dangerous.js", "safer.js" - ] + ], + "homepage": "https://github.com/ChALkeR/safer-buffer#readme", + "license": "MIT", + "main": "safer.js", + "name": "safer-buffer", + "repository": { + "type": "git", + "url": "git+https://github.com/ChALkeR/safer-buffer.git" + }, + "scripts": { + "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js", + "test": "standard && tape tests.js" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs-parser/package.json b/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs-parser/package.json index 6300abf5c..590525675 100644 --- a/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs-parser/package.json @@ -1,17 +1,61 @@ { - "name": "yargs-parser", - "version": "13.1.2", + "_args": [ + [ + "yargs-parser@13.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yargs-parser@13.1.2", + "_id": "yargs-parser@13.1.2", + "_inBundle": false, + "_integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "_location": "/sass-graph/yargs-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs-parser@13.1.2", + "name": "yargs-parser", + "escapedName": "yargs-parser", + "rawSpec": "13.1.2", + "saveSpec": null, + "fetchSpec": "13.1.2" + }, + "_requiredBy": [ + "/sass-graph/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz", + "_spec": "13.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/yargs-parser/issues" + }, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "description": "the mighty option parser used by yargs", - "main": "index.js", - "scripts": { - "test": "nyc mocha test/*.js", - "posttest": "standard", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" + "devDependencies": { + "chai": "^4.2.0", + "coveralls": "^3.0.2", + "mocha": "^5.2.0", + "nyc": "^14.1.0", + "standard": "^12.0.1", + "standard-version": "^6.0.0" }, - "repository": { - "url": "git@github.com:yargs/yargs-parser.git" + "engine": { + "node": ">=6" }, + "files": [ + "lib", + "index.js" + ], + "homepage": "https://github.com/yargs/yargs-parser#readme", "keywords": [ "argument", "parser", @@ -23,25 +67,17 @@ "args", "argument" ], - "author": "Ben Coe ", "license": "ISC", - "devDependencies": { - "chai": "^4.2.0", - "coveralls": "^3.0.2", - "mocha": "^5.2.0", - "nyc": "^14.1.0", - "standard": "^12.0.1", - "standard-version": "^6.0.0" + "main": "index.js", + "name": "yargs-parser", + "repository": { + "url": "git+ssh://git@github.com/yargs/yargs-parser.git" }, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "posttest": "standard", + "release": "standard-version", + "test": "nyc mocha test/*.js" }, - "files": [ - "lib", - "index.js" - ], - "engine": { - "node": ">=6" - } + "version": "13.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs/package.json b/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs/package.json index 283d1f9be..06c5db6d7 100644 --- a/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sass-graph/node_modules/yargs/package.json @@ -1,23 +1,42 @@ { - "name": "yargs", - "version": "13.3.2", - "description": "yargs the modern, pirate-themed, successor to optimist.", - "main": "./index.js", + "_args": [ + [ + "yargs@13.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yargs@13.3.2", + "_id": "yargs@13.3.2", + "_inBundle": false, + "_integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "_location": "/sass-graph/yargs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs@13.3.2", + "name": "yargs", + "escapedName": "yargs", + "rawSpec": "13.3.2", + "saveSpec": null, + "fetchSpec": "13.3.2" + }, + "_requiredBy": [ + "/sass-graph" + ], + "_resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "_spec": "13.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/yargs/yargs/issues" + }, "contributors": [ { "name": "Yargs Contributors", "url": "https://github.com/yargs/yargs/graphs/contributors" } ], - "files": [ - "index.js", - "yargs.js", - "lib", - "locales", - "completion.sh.hbs", - "completion.zsh.hbs", - "LICENSE" - ], "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -30,6 +49,7 @@ "y18n": "^4.0.0", "yargs-parser": "^13.1.2" }, + "description": "yargs the modern, pirate-themed, successor to optimist.", "devDependencies": { "chai": "^4.2.0", "chalk": "^2.4.2", @@ -46,22 +66,19 @@ "which": "^1.3.1", "yargs-test-extends": "^1.0.1" }, - "scripts": { - "pretest": "standard", - "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" - }, - "repository": { - "type": "git", - "url": "https://github.com/yargs/yargs.git" + "engine": { + "node": ">=6" }, + "files": [ + "index.js", + "yargs.js", + "lib", + "locales", + "completion.sh.hbs", + "completion.zsh.hbs", + "LICENSE" + ], "homepage": "https://yargs.js.org/", - "standard": { - "ignore": [ - "**/example/**" - ] - }, "keywords": [ "argument", "args", @@ -72,7 +89,22 @@ "command" ], "license": "MIT", - "engine": { - "node": ">=6" - } + "main": "./index.js", + "name": "yargs", + "repository": { + "type": "git", + "url": "git+https://github.com/yargs/yargs.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks" + }, + "standard": { + "ignore": [ + "**/example/**" + ] + }, + "version": "13.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/sass-graph/package.json b/admin/vue2/element-admin-v3/node_modules/sass-graph/package.json index ff542f780..96a2a0bdd 100644 --- a/admin/vue2/element-admin-v3/node_modules/sass-graph/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sass-graph/package.json @@ -1,28 +1,61 @@ { - "name": "sass-graph", - "version": "2.2.5", - "description": "Parse sass files and extract a graph of imports", - "license": "MIT", - "repository": "xzyfer/sass-graph", - "author": "xzyfer", - "main": "sass-graph.js", - "directories": { - "bin": "./bin" + "_args": [ + [ + "sass-graph@2.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "sass-graph@2.2.5", + "_id": "sass-graph@2.2.5", + "_inBundle": false, + "_integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=", + "_location": "/sass-graph", + "_phantomChildren": { + "camelcase": "5.3.1", + "cliui": "5.0.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.3" }, - "scripts": { - "test": "nyc mocha", - "coverage": "nyc report --reporter=text-lcov | coveralls" + "_requested": { + "type": "version", + "registry": true, + "raw": "sass-graph@2.2.5", + "name": "sass-graph", + "escapedName": "sass-graph", + "rawSpec": "2.2.5", + "saveSpec": null, + "fetchSpec": "2.2.5" }, - "keywords": [ - "sass", - "graph" + "_requiredBy": [ + "/node-sass" ], + "_resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-graph%2Fdownload%2Fsass-graph-2.2.5.tgz", + "_spec": "2.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "xzyfer" + }, + "bin": { + "sassgraph": "bin/sassgraph" + }, + "bugs": { + "url": "https://github.com/xzyfer/sass-graph/issues" + }, "dependencies": { "glob": "^7.0.0", "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", "yargs": "^13.3.2" }, + "description": "Parse sass files and extract a graph of imports", "devDependencies": { "assert": "^1.3.0", "chai": "^3.5.0", @@ -30,9 +63,29 @@ "mocha": "^3.2.0", "nyc": "^10.2.0" }, + "directories": { + "bin": "./bin" + }, "files": [ "bin", "parse-imports.js", "sass-graph.js" - ] + ], + "homepage": "https://github.com/xzyfer/sass-graph#readme", + "keywords": [ + "sass", + "graph" + ], + "license": "MIT", + "main": "sass-graph.js", + "name": "sass-graph", + "repository": { + "type": "git", + "url": "git+https://github.com/xzyfer/sass-graph.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "test": "nyc mocha" + }, + "version": "2.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/sass-loader/node_modules/pify/package.json b/admin/vue2/element-admin-v3/node_modules/sass-loader/node_modules/pify/package.json index 468d85760..33b974ffc 100644 --- a/admin/vue2/element-admin-v3/node_modules/sass-loader/node_modules/pify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sass-loader/node_modules/pify/package.json @@ -1,24 +1,55 @@ { - "name": "pify", - "version": "3.0.0", - "description": "Promisify a callback-style function", - "license": "MIT", - "repository": "sindresorhus/pify", + "_args": [ + [ + "pify@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pify@3.0.0", + "_id": "pify@3.0.0", + "_inBundle": false, + "_integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "_location": "/sass-loader/pify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pify@3.0.0", + "name": "pify", + "escapedName": "pify", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/sass-loader" + ], + "_resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pify/issues" + }, + "description": "Promisify a callback-style function", + "devDependencies": { + "ava": "*", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava && npm run optimization-test", - "optimization-test": "node --allow-natives-syntax optimization-test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -42,10 +73,15 @@ "es2015", "bluebird" ], - "devDependencies": { - "ava": "*", - "pinkie-promise": "^2.0.0", - "v8-natives": "^1.0.0", - "xo": "*" - } + "license": "MIT", + "name": "pify", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pify.git" + }, + "scripts": { + "optimization-test": "node --allow-natives-syntax optimization-test.js", + "test": "xo && ava && npm run optimization-test" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/sass-loader/package.json b/admin/vue2/element-admin-v3/node_modules/sass-loader/package.json index 67944a93d..bd727f0a2 100644 --- a/admin/vue2/element-admin-v3/node_modules/sass-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sass-loader/package.json @@ -1,29 +1,38 @@ { - "name": "sass-loader", - "version": "7.0.3", - "description": "Sass loader for webpack", - "author": "J. Tangelder", - "license": "MIT", - "main": "lib/loader.js", - "files": [ - "lib" + "_args": [ + [ + "sass-loader@7.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "appveyor:test": "npm test", - "create-spec": "node test/tools/runCreateSpec.js", - "lint": "eslint lib test", - "test": "nyc --all mocha -R spec -t 10000", - "test-bootstrap-sass": "webpack-dev-server --config test/bootstrapSass/webpack.config.js --content-base ./test/bootstrapSass", - "test-source-map": "webpack-dev-server --config test/sourceMap/webpack.config.js --content-base ./test/sourceMap --inline", - "test-watch": "webpack --config test/watch/webpack.config.js", - "test-extract-text": "webpack --config test/extractText/webpack.config.js", - "test-hmr": "webpack-dev-server --config test/hmr/webpack.config.js --content-base ./test/hmr --hot --inline", - "travis:lint": "npm run lint", - "travis:test": "npm run test", - "travis:coverage": "npm run test", - "pretest": "npm run create-spec", - "posttest": "npm run lint", - "release": "standard-version" + "_development": true, + "_from": "sass-loader@7.0.3", + "_id": "sass-loader@7.0.3", + "_inBundle": false, + "_integrity": "sha1-bKEIcaHMdUn4FD21qZWCQsTkyio=", + "_location": "/sass-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sass-loader@7.0.3", + "name": "sass-loader", + "escapedName": "sass-loader", + "rawSpec": "7.0.3", + "saveSpec": null, + "fetchSpec": "7.0.3" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-7.0.3.tgz?cache=0&sync_timestamp=1622562268554&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass-loader%2Fdownload%2Fsass-loader-7.0.3.tgz", + "_spec": "7.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "J. Tangelder" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/sass-loader/issues" }, "dependencies": { "clone-deep": "^2.0.1", @@ -32,6 +41,7 @@ "neo-async": "^2.5.0", "pify": "^3.0.0" }, + "description": "Sass loader for webpack", "devDependencies": { "bootstrap-sass": "^3.3.5", "css-loader": "^0.28.4", @@ -54,16 +64,42 @@ "engines": { "node": ">= 6.9.0 || >= 8.9.0" }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - }, + "files": [ + "lib" + ], + "homepage": "https://github.com/webpack-contrib/sass-loader", "keywords": [ "sass", "libsass", "webpack", "loader" ], - "repository": "https://github.com/webpack-contrib/sass-loader.git", - "bugs": "https://github.com/webpack-contrib/sass-loader/issues", - "homepage": "https://github.com/webpack-contrib/sass-loader" + "license": "MIT", + "main": "lib/loader.js", + "name": "sass-loader", + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/sass-loader.git" + }, + "scripts": { + "appveyor:test": "npm test", + "create-spec": "node test/tools/runCreateSpec.js", + "lint": "eslint lib test", + "posttest": "npm run lint", + "pretest": "npm run create-spec", + "release": "standard-version", + "test": "nyc --all mocha -R spec -t 10000", + "test-bootstrap-sass": "webpack-dev-server --config test/bootstrapSass/webpack.config.js --content-base ./test/bootstrapSass", + "test-extract-text": "webpack --config test/extractText/webpack.config.js", + "test-hmr": "webpack-dev-server --config test/hmr/webpack.config.js --content-base ./test/hmr --hot --inline", + "test-source-map": "webpack-dev-server --config test/sourceMap/webpack.config.js --content-base ./test/sourceMap --inline", + "test-watch": "webpack --config test/watch/webpack.config.js", + "travis:coverage": "npm run test", + "travis:lint": "npm run lint", + "travis:test": "npm run test" + }, + "version": "7.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/sax/package.json b/admin/vue2/element-admin-v3/node_modules/sax/package.json index d2039bf3a..7bdbda95e 100644 --- a/admin/vue2/element-admin-v3/node_modules/sax/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sax/package.json @@ -1,25 +1,65 @@ { - "name": "sax", + "_args": [ + [ + "sax@1.2.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "sax@1.2.4", + "_id": "sax@1.2.4", + "_inBundle": false, + "_integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "_location": "/sax", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sax@1.2.4", + "name": "sax", + "escapedName": "sax", + "rawSpec": "1.2.4", + "saveSpec": null, + "fetchSpec": "1.2.4" + }, + "_requiredBy": [ + "/svgo" + ], + "_resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "_spec": "1.2.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/sax-js/issues" + }, "description": "An evented streaming XML parser in JavaScript", - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "version": "1.2.4", - "main": "lib/sax.js", - "license": "ISC", - "scripts": { - "test": "tap test/*.js --cov -j4", - "posttest": "standard -F test/*.js lib/*.js", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" + "devDependencies": { + "standard": "^8.6.0", + "tap": "^10.5.1" }, - "repository": "git://github.com/isaacs/sax-js.git", "files": [ "lib/sax.js", "LICENSE", "README.md" ], - "devDependencies": { - "standard": "^8.6.0", - "tap": "^10.5.1" - } + "homepage": "https://github.com/isaacs/sax-js#readme", + "license": "ISC", + "main": "lib/sax.js", + "name": "sax", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/sax-js.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "posttest": "standard -F test/*.js lib/*.js", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --cov -j4" + }, + "version": "1.2.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/schema-utils/package.json index 621da697f..52d719eae 100644 --- a/admin/vue2/element-admin-v3/node_modules/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/schema-utils/package.json @@ -1,26 +1,45 @@ { - "name": "schema-utils", - "version": "1.0.0", - "description": "webpack Validation Utils", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "schema-utils@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_from": "schema-utils@1.0.0", + "_id": "schema-utils@1.0.0", + "_inBundle": false, + "_integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "_location": "/schema-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "schema-utils@1.0.0", + "name": "schema-utils", + "escapedName": "schema-utils", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "scripts": { - "lint": "eslint --cache src test", - "test": "jest --env node --verbose --coverage", - "clean": "del-cli coverage", - "commits": "commitlint --from $(git rev-list --tags --max-count=1)", - "release": "npm run commits && standard-version" + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" }, + "description": "webpack Validation Utils", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.0", @@ -33,9 +52,26 @@ "prettier": "^1.0.0", "standard-version": "^4.0.0" }, - "author": "webpack Contrib (https://github.com/webpack-contrib)", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", + "engines": { + "node": ">= 4" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/schema-utils", - "repository": "https://github.com/webpack-contrib/schema-utils", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "schema-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "clean": "del-cli coverage", + "commits": "commitlint --from $(git rev-list --tags --max-count=1)", + "lint": "eslint --cache src test", + "release": "npm run commits && standard-version", + "test": "jest --env node --verbose --coverage" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/screenfull/package.json b/admin/vue2/element-admin-v3/node_modules/screenfull/package.json index 29676e6e6..2e75eea46 100644 --- a/admin/vue2/element-admin-v3/node_modules/screenfull/package.json +++ b/admin/vue2/element-admin-v3/node_modules/screenfull/package.json @@ -1,39 +1,74 @@ { - "name": "screenfull", - "version": "3.3.3", - "description": "Simple wrapper for cross-browser usage of the JavaScript Fullscreen API, which lets you bring the page or any element into fullscreen.", - "license": "MIT", - "repository": "sindresorhus/screenfull.js", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "main": "dist/screenfull.js", - "files": [ - "dist/screenfull.js" - ], - "keywords": [ - "browser", - "fullscreen" - ], - "devDependencies": { - "grunt": "^1.0.1", - "grunt-contrib-concat": "^1.0.0", - "grunt-contrib-uglify": "^2.0.0", - "load-grunt-tasks": "^3.3.0", - "xo": "^0.16.0" - }, - "scripts": { - "test": "xo" - }, - "xo": { - "envs": [ - "node", - "browser" - ] - } + "_args": [ + [ + "screenfull@3.3.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "screenfull@3.3.3", + "_id": "screenfull@3.3.3", + "_inBundle": false, + "_integrity": "sha1-jPfnBqzqwudRMarcuBtiKs/hHTk=", + "_location": "/screenfull", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "screenfull@3.3.3", + "name": "screenfull", + "escapedName": "screenfull", + "rawSpec": "3.3.3", + "saveSpec": null, + "fetchSpec": "3.3.3" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/screenfull/download/screenfull-3.3.3.tgz?cache=0&sync_timestamp=1608796474825&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscreenfull%2Fdownload%2Fscreenfull-3.3.3.tgz", + "_spec": "3.3.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/screenfull.js/issues" + }, + "description": "Simple wrapper for cross-browser usage of the JavaScript Fullscreen API, which lets you bring the page or any element into fullscreen.", + "devDependencies": { + "grunt": "^1.0.1", + "grunt-contrib-concat": "^1.0.0", + "grunt-contrib-uglify": "^2.0.0", + "load-grunt-tasks": "^3.3.0", + "xo": "^0.16.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "dist/screenfull.js" + ], + "homepage": "https://github.com/sindresorhus/screenfull.js#readme", + "keywords": [ + "browser", + "fullscreen" + ], + "license": "MIT", + "main": "dist/screenfull.js", + "name": "screenfull", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/screenfull.js.git" + }, + "scripts": { + "test": "xo" + }, + "version": "3.3.3", + "xo": { + "envs": [ + "node", + "browser" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/debug/package.json index 191c81547..8e5f33587 100644 --- a/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/debug/package.json @@ -1,32 +1,56 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_development": true, + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/script-ext-html-webpack-plugin/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/script-ext-html-webpack-plugin" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +69,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/ms/package.json index 49971890d..5092b412e 100644 --- a/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/node_modules/ms/package.json @@ -1,16 +1,44 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_development": true, + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/script-ext-html-webpack-plugin/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/script-ext-html-webpack-plugin/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +47,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +59,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/package.json index a4f0306a5..5f6f8c7bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/script-ext-html-webpack-plugin/package.json @@ -1,50 +1,45 @@ { - "name": "script-ext-html-webpack-plugin", - "version": "2.0.1", - "description": "Enhances html-webpack-plugin functionality with async and defer attributes for script elements", - "main": "index.js", - "files": [ - "index.js", - "lib/" + "_args": [ + [ + "script-ext-html-webpack-plugin@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "pretest": "semistandard & install-module-versions dynavers.json", - "test": "VERSION=webpack1 jasmine && VERSION=webpack2 jasmine && VERSION=webpack3 jasmine && VERSION=webpack4 jasmine", - "test:webpack1": "VERSION=webpack1 jasmine", - "test:webpack2": "VERSION=webpack2 jasmine", - "test:webpack3": "VERSION=webpack3 jasmine", - "test:webpack4": "VERSION=webpack4 jasmine", - "debug": "DEBUG=ScriptExt VERSION=webpack4 jasmine", - "node-debug": "DEBUG=ScriptExt VERSION=webpack4 node-debug jasmine" + "_development": true, + "_from": "script-ext-html-webpack-plugin@2.0.1", + "_id": "script-ext-html-webpack-plugin@2.0.1", + "_inBundle": false, + "_integrity": "sha1-kKw9d/GJKtkFTDdS8ORnNgf22aM=", + "_location": "/script-ext-html-webpack-plugin", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "script-ext-html-webpack-plugin@2.0.1", + "name": "script-ext-html-webpack-plugin", + "escapedName": "script-ext-html-webpack-plugin", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "repository": { - "type": "git", - "url": "https://github.com/numical/script-ext-html-webpack-plugin.git" - }, - "keywords": [ - "webpack", - "plugin", - "html-webpack-plugin", - "async", - "defer", - "inline", - "script", - "module", - "resource hints", - "prefetch", - "preload", - "dynamic script", - "async script" + "_requiredBy": [ + "#DEV:/" ], - "author": "Mike Evans (https://github.com/numical)", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/script-ext-html-webpack-plugin/download/script-ext-html-webpack-plugin-2.0.1.tgz?cache=0&sync_timestamp=1603731479549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscript-ext-html-webpack-plugin%2Fdownload%2Fscript-ext-html-webpack-plugin-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mike Evans", + "email": "mike.evans@numical.com", + "url": "https://github.com/numical" + }, "bugs": { "url": "https://github.com/numical/script-ext-html-webpack-plugin/issues" }, - "homepage": "https://github.com/numical/script-ext-html-webpack-plugin", "dependencies": { "debug": "^3.1.0" }, + "description": "Enhances html-webpack-plugin functionality with async and defer attributes for script elements", "devDependencies": { "css-loader": "^0.28.10", "dynavers": "^0.2.0", @@ -59,11 +54,49 @@ "uglifyjs-webpack-plugin": "^1.2.2", "webpack-config": "7.0.0" }, + "engines": { + "node": ">=6.11.5" + }, + "files": [ + "index.js", + "lib/" + ], + "homepage": "https://github.com/numical/script-ext-html-webpack-plugin", + "keywords": [ + "webpack", + "plugin", + "html-webpack-plugin", + "async", + "defer", + "inline", + "script", + "module", + "resource hints", + "prefetch", + "preload", + "dynamic script", + "async script" + ], + "license": "MIT", + "main": "index.js", + "name": "script-ext-html-webpack-plugin", "peerDependencies": { "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "html-webpack-plugin": "^3.0.0" }, - "engines": { - "node": ">=6.11.5" - } + "repository": { + "type": "git", + "url": "git+https://github.com/numical/script-ext-html-webpack-plugin.git" + }, + "scripts": { + "debug": "DEBUG=ScriptExt VERSION=webpack4 jasmine", + "node-debug": "DEBUG=ScriptExt VERSION=webpack4 node-debug jasmine", + "pretest": "semistandard & install-module-versions dynavers.json", + "test": "VERSION=webpack1 jasmine && VERSION=webpack2 jasmine && VERSION=webpack3 jasmine && VERSION=webpack4 jasmine", + "test:webpack1": "VERSION=webpack1 jasmine", + "test:webpack2": "VERSION=webpack2 jasmine", + "test:webpack3": "VERSION=webpack3 jasmine", + "test:webpack4": "VERSION=webpack4 jasmine" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/script-loader/package.json b/admin/vue2/element-admin-v3/node_modules/script-loader/package.json index 63bd1aa1e..27762cafb 100644 --- a/admin/vue2/element-admin-v3/node_modules/script-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/script-loader/package.json @@ -1,24 +1,55 @@ { - "name": "script-loader", - "version": "0.7.2", - "author": "Tobias Koppers @sokra", - "description": "script loader module for webpack", - "license": "MIT", - "scripts": { - "release": "standard-version" + "_args": [ + [ + "script-loader@0.7.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "script-loader@0.7.2", + "_id": "script-loader@0.7.2", + "_inBundle": false, + "_integrity": "sha1-IBbbb4byX1z1baOJFdgzeLsWa6c=", + "_location": "/script-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "script-loader@0.7.2", + "name": "script-loader", + "escapedName": "script-loader", + "rawSpec": "0.7.2", + "saveSpec": null, + "fetchSpec": "0.7.2" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/script-loader/download/script-loader-0.7.2.tgz", + "_spec": "0.7.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/script-loader/issues" }, "dependencies": { "raw-loader": "~0.5.1" }, + "description": "script loader module for webpack", "devDependencies": { "standard-version": "^4.2.0" }, + "homepage": "https://github.com/webpack/script-loader", + "license": "MIT", + "name": "script-loader", "repository": { "type": "git", - "url": "https://github.com/webpack-contrib/script-loader.git" + "url": "git+https://github.com/webpack-contrib/script-loader.git" }, - "bugs": { - "url": "https://github.com/webpack/script-loader/issues" + "scripts": { + "release": "standard-version" }, - "homepage": "https://github.com/webpack/script-loader" + "version": "0.7.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/node_modules/source-map/package.json index 4962ab02b..cb46934ef 100644 --- a/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/node_modules/source-map/package.json @@ -1,68 +1,202 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.4.4", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.4.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.4.4", + "_id": "source-map@0.4.4", + "_inBundle": false, + "_integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "_location": "/scss-tokenizer/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.4.4", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.4.4", + "saveSpec": null, + "fetchSpec": "0.4.4" + }, + "_requiredBy": [ + "/scss-tokenizer" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz", + "_spec": "0.4.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "dependencies": { + "amdefine": ">=0.0.4" + }, + "description": "Generates and consumes source maps", + "devDependencies": { + "dryice": ">=0.4.8" }, "directories": { "lib": "./lib" }, - "main": "./lib/source-map.js", + "engines": { + "node": ">=0.8.0" + }, "files": [ "lib/", "build/" ], - "engines": { - "node": ">=0.8.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", - "dependencies": { - "amdefine": ">=0.0.4" - }, - "devDependencies": { - "dryice": ">=0.4.8" + "main": "./lib/source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" }, "scripts": { - "test": "node test/run-tests.js", - "build": "node Makefile.dryice.js" - } + "build": "node Makefile.dryice.js", + "test": "node test/run-tests.js" + }, + "version": "0.4.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/package.json b/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/package.json index 083aad562..7e6d1aa0e 100644 --- a/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/scss-tokenizer/package.json @@ -1,38 +1,46 @@ { - "name": "scss-tokenizer", - "version": "0.2.3", - "description": "A tokenzier for Sass' SCSS syntax", - "main": "index.js", - "scripts": { - "test": "mocha", - "clean": "rm lib/*", - "build": "npm run clean; babel src/ --out-dir lib" - }, - "files": [ - "index.js", - "lib" + "_args": [ + [ + "scss-tokenizer@0.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "https://github.com/sasstools/scss-tokenizer.git" + "_development": true, + "_from": "scss-tokenizer@0.2.3", + "_id": "scss-tokenizer@0.2.3", + "_inBundle": false, + "_integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "_location": "/scss-tokenizer", + "_phantomChildren": { + "amdefine": "1.0.1" }, - "keywords": [ - "parser", - "tokenizer", - "sass", - "scss", - "libsass" + "_requested": { + "type": "version", + "registry": true, + "raw": "scss-tokenizer@0.2.3", + "name": "scss-tokenizer", + "escapedName": "scss-tokenizer", + "rawSpec": "0.2.3", + "saveSpec": null, + "fetchSpec": "0.2.3" + }, + "_requiredBy": [ + "/sass-graph" ], - "author": "xzyfer", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", + "_spec": "0.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "xzyfer" + }, "bugs": { "url": "https://github.com/sasstools/scss-tokenizer/issues" }, - "homepage": "https://github.com/sasstools/scss-tokenizer", "dependencies": { "js-base64": "^2.1.8", "source-map": "^0.4.2" }, + "description": "A tokenzier for Sass' SCSS syntax", "devDependencies": { "babel-cli": "^6.24.1", "babel-preset-es2015": "^6.24.1", @@ -40,5 +48,30 @@ "glob": "^5.0.10", "mocha": "^3.2.0", "sass-spec": "^3.5.0-1" - } + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/sasstools/scss-tokenizer", + "keywords": [ + "parser", + "tokenizer", + "sass", + "scss", + "libsass" + ], + "license": "MIT", + "main": "index.js", + "name": "scss-tokenizer", + "repository": { + "type": "git", + "url": "git+https://github.com/sasstools/scss-tokenizer.git" + }, + "scripts": { + "build": "npm run clean; babel src/ --out-dir lib", + "clean": "rm lib/*", + "test": "mocha" + }, + "version": "0.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/select-hose/package.json b/admin/vue2/element-admin-v3/node_modules/select-hose/package.json index 8752dc836..13a16f33c 100644 --- a/admin/vue2/element-admin-v3/node_modules/select-hose/package.json +++ b/admin/vue2/element-admin-v3/node_modules/select-hose/package.json @@ -1,31 +1,62 @@ { - "name": "select-hose", - "version": "2.0.0", - "description": "Select protocol using first bytes of incoming data and hose stuff to the handler", - "main": "lib/hose.js", - "scripts": { - "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter=spec test/*-test.js" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/select-hose.git" + "_args": [ + [ + "select-hose@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "select-hose@2.0.0", + "_id": "select-hose@2.0.0", + "_inBundle": false, + "_integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "_location": "/select-hose", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "select-hose@2.0.0", + "name": "select-hose", + "escapedName": "select-hose", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "keywords": [ - "hose", - "select", - "balance" + "_requiredBy": [ + "/spdy" ], - "author": "Fedor Indutny ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, "bugs": { "url": "https://github.com/indutny/select-hose/issues" }, - "homepage": "https://github.com/indutny/select-hose#readme", + "description": "Select protocol using first bytes of incoming data and hose stuff to the handler", "devDependencies": { "handle-thing": "^1.2.0", "jscs": "^1.13.1", "jshint": "^2.8.0", "mocha": "^2.2.5", "stream-pair": "^1.0.3" - } + }, + "homepage": "https://github.com/indutny/select-hose#readme", + "keywords": [ + "hose", + "select", + "balance" + ], + "license": "MIT", + "main": "lib/hose.js", + "name": "select-hose", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/select-hose.git" + }, + "scripts": { + "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter=spec test/*-test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/select/package.json b/admin/vue2/element-admin-v3/node_modules/select/package.json index e4f218dc7..b06bec00a 100644 --- a/admin/vue2/element-admin-v3/node_modules/select/package.json +++ b/admin/vue2/element-admin-v3/node_modules/select/package.json @@ -1,16 +1,38 @@ { - "name": "select", - "description": "Programmatically select the text of a HTML element", - "version": "1.1.2", - "license": "MIT", - "main": "src/select.js", - "repository": "zenorocha/select", - "keywords": [ - "range", - "select", - "selecting", - "selection" + "_args": [ + [ + "select@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "select@1.1.2", + "_id": "select@1.1.2", + "_inBundle": false, + "_integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "_location": "/select", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "select@1.1.2", + "name": "select", + "escapedName": "select", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/clipboard", + "/vue-clipboard2/clipboard", + "/vue-json-viewer/clipboard" + ], + "_resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zenorocha/select/issues" + }, + "description": "Programmatically select the text of a HTML element", "devDependencies": { "browserify": "^14.0.0", "chai": "^3.3.0", @@ -22,8 +44,23 @@ "mocha": "^3.2.0", "phantomjs": "^2.1.7" }, + "homepage": "https://github.com/zenorocha/select#readme", + "keywords": [ + "range", + "select", + "selecting", + "selection" + ], + "license": "MIT", + "main": "src/select.js", + "name": "select", + "repository": { + "type": "git", + "url": "git+https://github.com/zenorocha/select.git" + }, "scripts": { "build": "browserify src/select.js -s select -o dist/select.js", "test": "karma start --single-run" - } + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/selfsigned/package.json b/admin/vue2/element-admin-v3/node_modules/selfsigned/package.json index d2513a499..0180728e9 100644 --- a/admin/vue2/element-admin-v3/node_modules/selfsigned/package.json +++ b/admin/vue2/element-admin-v3/node_modules/selfsigned/package.json @@ -1,22 +1,40 @@ { - "name": "selfsigned", - "version": "1.10.11", - "description": "Generate self signed certificates private and public keys", - "main": "index.js", - "scripts": { - "test": "mocha -t 5000" - }, - "repository": { - "type": "git", - "url": "git://github.com/jfromaniello/selfsigned.git" + "_args": [ + [ + "selfsigned@1.10.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "selfsigned@1.10.11", + "_id": "selfsigned@1.10.11", + "_inBundle": false, + "_integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=", + "_location": "/selfsigned", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "selfsigned@1.10.11", + "name": "selfsigned", + "escapedName": "selfsigned", + "rawSpec": "1.10.11", + "saveSpec": null, + "fetchSpec": "1.10.11" }, - "keywords": [ - "openssl", - "self", - "signed", - "certificates" + "_requiredBy": [ + "/webpack-dev-server" ], - "author": "José F. Romaniello (http://joseoncode.com)", + "_resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz", + "_spec": "1.10.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "José F. Romaniello", + "email": "jfromaniello@gmail.com", + "url": "http://joseoncode.com" + }, + "bugs": { + "url": "https://github.com/jfromaniello/selfsigned/issues" + }, "contributors": [ { "name": "Paolo Fragomeni", @@ -29,12 +47,30 @@ "url": "http://github.com/bushong1" } ], - "license": "MIT", "dependencies": { "node-forge": "^0.10.0" }, + "description": "Generate self signed certificates private and public keys", "devDependencies": { "chai": "^4.3.4", "mocha": "^8.3.2" - } + }, + "homepage": "https://github.com/jfromaniello/selfsigned#readme", + "keywords": [ + "openssl", + "self", + "signed", + "certificates" + ], + "license": "MIT", + "main": "index.js", + "name": "selfsigned", + "repository": { + "type": "git", + "url": "git://github.com/jfromaniello/selfsigned.git" + }, + "scripts": { + "test": "mocha -t 5000" + }, + "version": "1.10.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/semver-compare/package.json b/admin/vue2/element-admin-v3/node_modules/semver-compare/package.json index 0b111ffcd..b49a25c77 100644 --- a/admin/vue2/element-admin-v3/node_modules/semver-compare/package.json +++ b/admin/vue2/element-admin-v3/node_modules/semver-compare/package.json @@ -1,19 +1,46 @@ { - "name": "semver-compare", - "version": "1.0.0", - "description": "compare two semver version strings, returning -1, 0, or 1", - "main": "index.js", + "_args": [ + [ + "semver-compare@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "semver-compare@1.0.0", + "_id": "semver-compare@1.0.0", + "_inBundle": false, + "_integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "_location": "/semver-compare", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "semver-compare@1.0.0", + "name": "semver-compare", + "escapedName": "semver-compare", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/please-upgrade-node" + ], + "_resolved": "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/semver-compare/issues" + }, "dependencies": {}, + "description": "compare two semver version strings, returning -1, 0, or 1", "devDependencies": { "tape": "^3.0.0" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/semver-compare.git" - }, "homepage": "https://github.com/substack/semver-compare", "keywords": [ "semver", @@ -22,10 +49,15 @@ "comparison", "sort" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" + "license": "MIT", + "main": "index.js", + "name": "semver-compare", + "repository": { + "type": "git", + "url": "git://github.com/substack/semver-compare.git" + }, + "scripts": { + "test": "tape test/*.js" }, - "license": "MIT" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/semver/package.json b/admin/vue2/element-admin-v3/node_modules/semver/package.json index dce96959a..e891fc306 100644 --- a/admin/vue2/element-admin-v3/node_modules/semver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/semver/package.json @@ -1,22 +1,61 @@ { - "name": "semver", - "version": "5.5.0", - "description": "The semantic version parser used by npm.", - "main": "semver.js", - "scripts": { - "test": "tap test/*.js --cov -J" + "_args": [ + [ + "semver@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "semver@5.5.0", + "_id": "semver@5.5.0", + "_inBundle": false, + "_integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", + "_location": "/semver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "semver@5.5.0", + "name": "semver", + "escapedName": "semver", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" }, + "_requiredBy": [ + "#DEV:/", + "/babel-preset-env", + "/eslint", + "/normalize-package-data" + ], + "_resolved": "https://registry.npm.taobao.org/semver/download/semver-5.5.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "semver": "bin/semver" + }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" + }, + "description": "The semantic version parser used by npm.", "devDependencies": { "tap": "^10.7.0" }, - "license": "ISC", - "repository": "https://github.com/npm/node-semver", - "bin": { - "semver": "./bin/semver" - }, "files": [ "bin", "range.bnf", "semver.js" - ] + ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "semver.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "test": "tap test/*.js --cov -J" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/send/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/send/node_modules/ms/package.json index fc28cb39d..194c06dcf 100644 --- a/admin/vue2/element-admin-v3/node_modules/send/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/send/node_modules/ms/package.json @@ -1,16 +1,42 @@ { - "name": "ms", - "version": "2.1.1", - "description": "Tiny millisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.1", + "_id": "ms@2.1.1", + "_inBundle": false, + "_integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "_location": "/send/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.1", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +45,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,12 +57,16 @@ "git add" ] }, - "license": "MIT", - "devDependencies": { - "eslint": "4.12.1", - "expect.js": "0.3.1", - "husky": "0.14.3", - "lint-staged": "5.0.0", - "mocha": "4.0.1" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/send/node_modules/statuses/package.json b/admin/vue2/element-admin-v3/node_modules/send/node_modules/statuses/package.json index 7595e2bad..ccc6f8d74 100644 --- a/admin/vue2/element-admin-v3/node_modules/send/node_modules/statuses/package.json +++ b/admin/vue2/element-admin-v3/node_modules/send/node_modules/statuses/package.json @@ -1,24 +1,47 @@ { - "name": "statuses", - "description": "HTTP status utility", - "version": "1.5.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "statuses@1.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/statuses", - "license": "MIT", - "keywords": [ - "http", - "status", - "code" + "_from": "statuses@1.5.0", + "_id": "statuses@1.5.0", + "_inBundle": false, + "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "_location": "/send/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "statuses@1.5.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "1.5.0", + "saveSpec": null, + "fetchSpec": "1.5.0" + }, + "_requiredBy": [ + "/send" ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" + "_resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "_spec": "1.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], + "description": "HTTP status utility", "devDependencies": { "csv-parse": "1.2.4", "eslint": "4.19.1", @@ -36,6 +59,24 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, "scripts": { "build": "node scripts/build.js", "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", @@ -44,5 +85,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "update": "npm run fetch && npm run build" - } + }, + "version": "1.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/send/package.json b/admin/vue2/element-admin-v3/node_modules/send/package.json index 2ba9c06ba..85086db3f 100644 --- a/admin/vue2/element-admin-v3/node_modules/send/package.json +++ b/admin/vue2/element-admin-v3/node_modules/send/package.json @@ -1,19 +1,53 @@ { - "name": "send", - "description": "Better streaming static file server with Range and conditional-GET support", - "version": "0.17.1", - "author": "TJ Holowaychuk ", - "contributors": [ - "Douglas Christopher Wilson ", - "James Wyatt Cready ", - "Jesús Leganés Combarro " + "_args": [ + [ + "send@0.17.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": "pillarjs/send", - "keywords": [ - "static", - "file", - "server" + "_from": "send@0.17.1", + "_id": "send@0.17.1", + "_inBundle": false, + "_integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", + "_location": "/send", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "send@0.17.1", + "name": "send", + "escapedName": "send", + "rawSpec": "0.17.1", + "saveSpec": null, + "fetchSpec": "0.17.1" + }, + "_requiredBy": [ + "/express", + "/express/serve-static" + ], + "_resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "_spec": "0.17.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/pillarjs/send/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "jcready@gmail.com" + }, + { + "name": "Jesús Leganés Combarro", + "email": "piranna@gmail.com" + } ], "dependencies": { "debug": "2.6.9", @@ -30,6 +64,7 @@ "range-parser": "~1.2.1", "statuses": "~1.5.0" }, + "description": "Better streaming static file server with Range and conditional-GET support", "devDependencies": { "after": "0.8.2", "eslint": "5.16.0", @@ -43,19 +78,32 @@ "mocha": "6.1.4", "supertest": "4.0.2" }, + "engines": { + "node": ">= 0.8.0" + }, "files": [ "HISTORY.md", "LICENSE", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8.0" + "homepage": "https://github.com/pillarjs/send#readme", + "keywords": [ + "static", + "file", + "server" + ], + "license": "MIT", + "name": "send", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/send.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --check-leaks --reporter spec --bail", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot" - } + }, + "version": "0.17.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/serialize-javascript/package.json b/admin/vue2/element-admin-v3/node_modules/serialize-javascript/package.json index 38de0ef49..4a1351618 100644 --- a/admin/vue2/element-admin-v3/node_modules/serialize-javascript/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serialize-javascript/package.json @@ -1,16 +1,48 @@ { - "name": "serialize-javascript", - "version": "1.9.1", - "description": "Serialize JavaScript to a superset of JSON that includes regular expressions and functions.", - "main": "index.js", - "scripts": { - "benchmark": "node -v && node test/benchmark/serialize.js", - "test": "istanbul cover -- ./node_modules/mocha/bin/_mocha test/unit/ --reporter spec" + "_args": [ + [ + "serialize-javascript@1.9.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "serialize-javascript@1.9.1", + "_id": "serialize-javascript@1.9.1", + "_inBundle": false, + "_integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "_location": "/serialize-javascript", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "serialize-javascript@1.9.1", + "name": "serialize-javascript", + "escapedName": "serialize-javascript", + "rawSpec": "1.9.1", + "saveSpec": null, + "fetchSpec": "1.9.1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/yahoo/serialize-javascript.git" + "_requiredBy": [ + "/copy-webpack-plugin", + "/uglifyjs-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1599740668657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", + "_spec": "1.9.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Eric Ferraiuolo", + "email": "edf@ericf.me" }, + "bugs": { + "url": "https://github.com/yahoo/serialize-javascript/issues" + }, + "description": "Serialize JavaScript to a superset of JSON that includes regular expressions and functions.", + "devDependencies": { + "benchmark": "^2.1.4", + "chai": "^4.1.0", + "istanbul": "^0.4.5", + "mocha": "^6.2.0" + }, + "homepage": "https://github.com/yahoo/serialize-javascript", "keywords": [ "serialize", "serialization", @@ -18,16 +50,16 @@ "js", "json" ], - "author": "Eric Ferraiuolo ", "license": "BSD-3-Clause", - "bugs": { - "url": "https://github.com/yahoo/serialize-javascript/issues" + "main": "index.js", + "name": "serialize-javascript", + "repository": { + "type": "git", + "url": "git+https://github.com/yahoo/serialize-javascript.git" }, - "homepage": "https://github.com/yahoo/serialize-javascript", - "devDependencies": { - "benchmark": "^2.1.4", - "chai": "^4.1.0", - "istanbul": "^0.4.5", - "mocha": "^6.2.0" - } + "scripts": { + "benchmark": "node -v && node test/benchmark/serialize.js", + "test": "istanbul cover -- ./node_modules/mocha/bin/_mocha test/unit/ --reporter spec" + }, + "version": "1.9.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/http-errors/package.json b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/http-errors/package.json index a8d28e4f1..e4d6acf35 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/http-errors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/http-errors/package.json @@ -1,20 +1,57 @@ { - "name": "http-errors", - "description": "Create HTTP error objects", - "version": "1.6.3", - "author": "Jonathan Ong (http://jongleberry.com)", + "_args": [ + [ + "http-errors@1.6.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "http-errors@1.6.3", + "_id": "http-errors@1.6.3", + "_inBundle": false, + "_integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "_location": "/serve-index/http-errors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-errors@1.6.3", + "name": "http-errors", + "escapedName": "http-errors", + "rawSpec": "1.6.3", + "saveSpec": null, + "fetchSpec": "1.6.3" + }, + "_requiredBy": [ + "/serve-index" + ], + "_resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407676273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "_spec": "1.6.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/jshttp/http-errors/issues" + }, "contributors": [ - "Alan Plum ", - "Douglas Christopher Wilson " + { + "name": "Alan Plum", + "email": "me@pluma.io" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "license": "MIT", - "repository": "jshttp/http-errors", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" }, + "description": "Create HTTP error objects", "devDependencies": { "eslint": "4.18.1", "eslint-config-standard": "11.0.0", @@ -29,20 +66,28 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "index.js", + "HISTORY.md", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/jshttp/http-errors#readme", + "keywords": [ + "http", + "error" + ], + "license": "MIT", + "name": "http-errors", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/http-errors.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" }, - "keywords": [ - "http", - "error" - ], - "files": [ - "index.js", - "HISTORY.md", - "LICENSE", - "README.md" - ] + "version": "1.6.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/inherits/package.json b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/inherits/package.json index 7cf62b95c..64e064694 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/inherits/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/inherits/package.json @@ -1,7 +1,45 @@ { - "name": "inherits", + "_args": [ + [ + "inherits@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "inherits@2.0.3", + "_id": "inherits@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "_location": "/serve-index/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.3", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/serve-index/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", + "devDependencies": { + "tap": "^7.1.0" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", "class", @@ -12,18 +50,15 @@ "browser", "browserify" ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, "scripts": { "test": "node test" }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/setprototypeof/package.json b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/setprototypeof/package.json index 793c504ed..f3fdec07c 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/setprototypeof/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/setprototypeof/package.json @@ -1,25 +1,55 @@ { - "name": "setprototypeof", - "version": "1.1.0", - "description": "A small polyfill for Object.setprototypeof", - "main": "index.js", - "typings": "index.d.ts", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "setprototypeof@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "setprototypeof@1.1.0", + "_id": "setprototypeof@1.1.0", + "_inBundle": false, + "_integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "_location": "/serve-index/setprototypeof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setprototypeof@1.1.0", + "name": "setprototypeof", + "escapedName": "setprototypeof", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "repository": { - "type": "git", - "url": "https://github.com/wesleytodd/setprototypeof.git" + "_requiredBy": [ + "/serve-index/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Wes Todd" + }, + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" }, + "description": "A small polyfill for Object.setprototypeof", + "homepage": "https://github.com/wesleytodd/setprototypeof", "keywords": [ "polyfill", "object", "setprototypeof" ], - "author": "Wes Todd", "license": "ISC", - "bugs": { - "url": "https://github.com/wesleytodd/setprototypeof/issues" + "main": "index.js", + "name": "setprototypeof", + "repository": { + "type": "git", + "url": "git+https://github.com/wesleytodd/setprototypeof.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/wesleytodd/setprototypeof" + "typings": "index.d.ts", + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/statuses/package.json b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/statuses/package.json index 7595e2bad..105b721b3 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/statuses/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-index/node_modules/statuses/package.json @@ -1,24 +1,47 @@ { - "name": "statuses", - "description": "HTTP status utility", - "version": "1.5.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "statuses@1.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/statuses", - "license": "MIT", - "keywords": [ - "http", - "status", - "code" + "_from": "statuses@1.5.0", + "_id": "statuses@1.5.0", + "_inBundle": false, + "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "_location": "/serve-index/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "statuses@1.5.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "1.5.0", + "saveSpec": null, + "fetchSpec": "1.5.0" + }, + "_requiredBy": [ + "/serve-index/http-errors" ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" + "_resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "_spec": "1.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], + "description": "HTTP status utility", "devDependencies": { "csv-parse": "1.2.4", "eslint": "4.19.1", @@ -36,6 +59,24 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, "scripts": { "build": "node scripts/build.js", "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", @@ -44,5 +85,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "update": "npm run fetch && npm run build" - } + }, + "version": "1.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-index/package.json b/admin/vue2/element-admin-v3/node_modules/serve-index/package.json index ba69e7cce..1ecceaf61 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-index/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-index/package.json @@ -1,10 +1,41 @@ { - "name": "serve-index", - "description": "Serve directory listings", - "version": "1.9.1", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "expressjs/serve-index", + "_args": [ + [ + "serve-index@1.9.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "serve-index@1.9.1", + "_id": "serve-index@1.9.1", + "_inBundle": false, + "_integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "_location": "/serve-index", + "_phantomChildren": { + "depd": "1.1.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "serve-index@1.9.1", + "name": "serve-index", + "escapedName": "serve-index", + "rawSpec": "1.9.1", + "saveSpec": null, + "fetchSpec": "1.9.1" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", + "_spec": "1.9.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/expressjs/serve-index/issues" + }, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -14,24 +45,33 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "description": "Serve directory listings", "devDependencies": { "after": "0.8.2", "istanbul": "0.4.5", "mocha": "2.5.3", "supertest": "1.1.0" }, + "engines": { + "node": ">= 0.8.0" + }, "files": [ "public/", "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8.0" + "homepage": "https://github.com/expressjs/serve-index#readme", + "license": "MIT", + "name": "serve-index", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/serve-index.git" }, "scripts": { "test": "mocha --reporter spec --bail --check-leaks test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } + }, + "version": "1.9.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime index 0a62a1b13..91e5e16a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mime/cli.js" "$@" + "$basedir/node" "$basedir/../mime/cli.js" "$@" + ret=$? else - exec node "$basedir/../mime/cli.js" "$@" + node "$basedir/../mime/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.cmd b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.cmd index a9e48f1e3..678bc6bc0 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.cmd +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* +"%_prog%" "%dp0%\..\mime\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.ps1 b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.ps1 index 2222f40bc..a6f6f4700 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/.bin/mime.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../mime/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/http-errors/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/http-errors/package.json index a8d28e4f1..58e92a580 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/http-errors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/http-errors/package.json @@ -1,20 +1,58 @@ { - "name": "http-errors", - "description": "Create HTTP error objects", - "version": "1.6.3", - "author": "Jonathan Ong (http://jongleberry.com)", + "_args": [ + [ + "http-errors@1.6.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "http-errors@1.6.3", + "_id": "http-errors@1.6.3", + "_inBundle": false, + "_integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "_location": "/serve-static/http-errors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "http-errors@1.6.3", + "name": "http-errors", + "escapedName": "http-errors", + "rawSpec": "1.6.3", + "saveSpec": null, + "fetchSpec": "1.6.3" + }, + "_requiredBy": [ + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407676273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "_spec": "1.6.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/jshttp/http-errors/issues" + }, "contributors": [ - "Alan Plum ", - "Douglas Christopher Wilson " + { + "name": "Alan Plum", + "email": "me@pluma.io" + }, + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + } ], - "license": "MIT", - "repository": "jshttp/http-errors", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" }, + "description": "Create HTTP error objects", "devDependencies": { "eslint": "4.18.1", "eslint-config-standard": "11.0.0", @@ -29,20 +67,28 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "index.js", + "HISTORY.md", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/jshttp/http-errors#readme", + "keywords": [ + "http", + "error" + ], + "license": "MIT", + "name": "http-errors", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/http-errors.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" }, - "keywords": [ - "http", - "error" - ], - "files": [ - "index.js", - "HISTORY.md", - "LICENSE", - "README.md" - ] + "version": "1.6.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/inherits/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/inherits/package.json index 7cf62b95c..cf465a245 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/inherits/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/inherits/package.json @@ -1,7 +1,46 @@ { - "name": "inherits", + "_args": [ + [ + "inherits@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "inherits@2.0.3", + "_id": "inherits@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "_location": "/serve-static/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.3", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/serve-static/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", + "devDependencies": { + "tap": "^7.1.0" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", "class", @@ -12,18 +51,15 @@ "browser", "browserify" ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, "scripts": { "test": "node test" }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/mime/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/mime/package.json index 26967d5b5..f8ff22156 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/mime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/mime/package.json @@ -1,38 +1,71 @@ { + "_args": [ + [ + "mime@1.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mime@1.4.1", + "_id": "mime@1.4.1", + "_inBundle": false, + "_integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=", + "_location": "/serve-static/mime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime@1.4.1", + "name": "mime", + "escapedName": "mime", + "rawSpec": "1.4.1", + "saveSpec": null, + "fetchSpec": "1.4.1" + }, + "_requiredBy": [ + "/serve-static/send" + ], + "_resolved": "https://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz", + "_spec": "1.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Robert Kieffer", - "url": "http://github.com/broofa", - "email": "robert@broofa.com" + "email": "robert@broofa.com", + "url": "http://github.com/broofa" }, "bin": { "mime": "cli.js" }, + "bugs": { + "url": "https://github.com/broofa/node-mime/issues" + }, "contributors": [ { "name": "Benjamin Thomas", - "url": "http://github.com/bentomas", - "email": "benjamin@benjaminthomas.org" + "email": "benjamin@benjaminthomas.org", + "url": "http://github.com/bentomas" } ], - "description": "A comprehensive library for mime-type mapping", - "license": "MIT", "dependencies": {}, + "description": "A comprehensive library for mime-type mapping", "devDependencies": { "mime-db": "1.30.0" }, - "scripts": { - "prepublish": "node build/build.js > types.json", - "test": "node build/test.js" - }, + "homepage": "https://github.com/broofa/node-mime#readme", "keywords": [ "util", "mime" ], + "license": "MIT", "main": "mime.js", "name": "mime", "repository": { - "url": "https://github.com/broofa/node-mime", + "url": "git+https://github.com/broofa/node-mime.git", "type": "git" }, + "scripts": { + "prepublish": "node build/build.js > types.json", + "test": "node build/test.js" + }, "version": "1.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/send/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/send/package.json index 6b3209eef..610fd3db6 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/send/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/send/package.json @@ -1,19 +1,53 @@ { - "name": "send", - "description": "Better streaming static file server with Range and conditional-GET support", - "version": "0.16.2", - "author": "TJ Holowaychuk ", - "contributors": [ - "Douglas Christopher Wilson ", - "James Wyatt Cready ", - "Jesús Leganés Combarro " + "_args": [ + [ + "send@0.16.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": "pillarjs/send", - "keywords": [ - "static", - "file", - "server" + "_development": true, + "_from": "send@0.16.2", + "_id": "send@0.16.2", + "_inBundle": false, + "_integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=", + "_location": "/serve-static/send", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "send@0.16.2", + "name": "send", + "escapedName": "send", + "rawSpec": "0.16.2", + "saveSpec": null, + "fetchSpec": "0.16.2" + }, + "_requiredBy": [ + "/serve-static" + ], + "_resolved": "https://registry.npm.taobao.org/send/download/send-0.16.2.tgz", + "_spec": "0.16.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/pillarjs/send/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "jcready@gmail.com" + }, + { + "name": "Jesús Leganés Combarro", + "email": "piranna@gmail.com" + } ], "dependencies": { "debug": "2.6.9", @@ -30,6 +64,7 @@ "range-parser": "~1.2.0", "statuses": "~1.4.0" }, + "description": "Better streaming static file server with Range and conditional-GET support", "devDependencies": { "after": "0.8.2", "eslint": "3.19.0", @@ -43,19 +78,32 @@ "mocha": "2.5.3", "supertest": "1.1.0" }, + "engines": { + "node": ">= 0.8.0" + }, "files": [ "HISTORY.md", "LICENSE", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8.0" + "homepage": "https://github.com/pillarjs/send#readme", + "keywords": [ + "static", + "file", + "server" + ], + "license": "MIT", + "name": "send", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/send.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --check-leaks --reporter spec --bail", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot" - } + }, + "version": "0.16.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/setprototypeof/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/setprototypeof/package.json index 793c504ed..753820f39 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/setprototypeof/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/setprototypeof/package.json @@ -1,25 +1,56 @@ { - "name": "setprototypeof", - "version": "1.1.0", - "description": "A small polyfill for Object.setprototypeof", - "main": "index.js", - "typings": "index.d.ts", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "setprototypeof@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "setprototypeof@1.1.0", + "_id": "setprototypeof@1.1.0", + "_inBundle": false, + "_integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "_location": "/serve-static/setprototypeof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setprototypeof@1.1.0", + "name": "setprototypeof", + "escapedName": "setprototypeof", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "repository": { - "type": "git", - "url": "https://github.com/wesleytodd/setprototypeof.git" + "_requiredBy": [ + "/serve-static/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Wes Todd" + }, + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" }, + "description": "A small polyfill for Object.setprototypeof", + "homepage": "https://github.com/wesleytodd/setprototypeof", "keywords": [ "polyfill", "object", "setprototypeof" ], - "author": "Wes Todd", "license": "ISC", - "bugs": { - "url": "https://github.com/wesleytodd/setprototypeof/issues" + "main": "index.js", + "name": "setprototypeof", + "repository": { + "type": "git", + "url": "git+https://github.com/wesleytodd/setprototypeof.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/wesleytodd/setprototypeof" + "typings": "index.d.ts", + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/statuses/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/statuses/package.json index 60eff1192..1c35b6c88 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/statuses/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/node_modules/statuses/package.json @@ -1,24 +1,49 @@ { - "name": "statuses", - "description": "HTTP status utility", - "version": "1.4.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "statuses@1.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/statuses", - "license": "MIT", - "keywords": [ - "http", - "status", - "code" + "_development": true, + "_from": "statuses@1.4.0", + "_id": "statuses@1.4.0", + "_inBundle": false, + "_integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=", + "_location": "/serve-static/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "statuses@1.4.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "1.4.0", + "saveSpec": null, + "fetchSpec": "1.4.0" + }, + "_requiredBy": [ + "/serve-static/http-errors", + "/serve-static/send" ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" + "_resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.4.0.tgz", + "_spec": "1.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], + "description": "HTTP status utility", "devDependencies": { "csv-parse": "1.2.4", "eslint": "3.19.0", @@ -36,6 +61,24 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, "scripts": { "build": "node scripts/build.js", "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", @@ -44,5 +87,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "update": "npm run fetch && npm run build" - } + }, + "version": "1.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/serve-static/package.json b/admin/vue2/element-admin-v3/node_modules/serve-static/package.json index 23fe14395..1631a3f3b 100644 --- a/admin/vue2/element-admin-v3/node_modules/serve-static/package.json +++ b/admin/vue2/element-admin-v3/node_modules/serve-static/package.json @@ -1,16 +1,58 @@ { - "name": "serve-static", - "description": "Serve static files", - "version": "1.13.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "expressjs/serve-static", + "_args": [ + [ + "serve-static@1.13.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "serve-static@1.13.2", + "_id": "serve-static@1.13.2", + "_inBundle": false, + "_integrity": "sha1-CV6Ecv1bRiN9tQzkhqQ/S4bGzsE=", + "_location": "/serve-static", + "_phantomChildren": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "serve-static@1.13.2", + "name": "serve-static", + "escapedName": "serve-static", + "rawSpec": "1.13.2", + "saveSpec": null, + "fetchSpec": "1.13.2" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz", + "_spec": "1.13.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/expressjs/serve-static/issues" + }, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.2", "send": "0.16.2" }, + "description": "Serve static files", "devDependencies": { "eslint": "3.19.0", "eslint-config-standard": "10.2.1", @@ -23,18 +65,26 @@ "mocha": "2.5.3", "supertest": "1.1.0" }, + "engines": { + "node": ">= 0.8.0" + }, "files": [ "LICENSE", "HISTORY.md", "index.js" ], - "engines": { - "node": ">= 0.8.0" + "homepage": "https://github.com/expressjs/serve-static#readme", + "license": "MIT", + "name": "serve-static", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/serve-static.git" }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } + }, + "version": "1.13.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/set-blocking/package.json b/admin/vue2/element-admin-v3/node_modules/set-blocking/package.json index c082db72c..626e9c35f 100644 --- a/admin/vue2/element-admin-v3/node_modules/set-blocking/package.json +++ b/admin/vue2/element-admin-v3/node_modules/set-blocking/package.json @@ -1,32 +1,44 @@ { - "name": "set-blocking", - "version": "2.0.0", - "description": "set blocking stdio and stderr ensuring that terminal output does not truncate", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "nyc mocha ./test/*.js", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "version": "standard-version" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/yargs/set-blocking.git" + "_args": [ + [ + "set-blocking@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "set-blocking@2.0.0", + "_id": "set-blocking@2.0.0", + "_inBundle": false, + "_integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "_location": "/set-blocking", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "set-blocking@2.0.0", + "name": "set-blocking", + "escapedName": "set-blocking", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "keywords": [ - "flush", - "terminal", - "blocking", - "shim", - "stdio", - "stderr" + "_requiredBy": [ + "/npmlog", + "/sass-graph/yargs", + "/webpack-cli/yargs", + "/webpack-dev-server/yargs", + "/yargs" ], - "author": "Ben Coe ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, "bugs": { "url": "https://github.com/yargs/set-blocking/issues" }, - "homepage": "https://github.com/yargs/set-blocking#readme", + "description": "set blocking stdio and stderr ensuring that terminal output does not truncate", "devDependencies": { "chai": "^3.5.0", "coveralls": "^2.11.9", @@ -38,5 +50,28 @@ "files": [ "index.js", "LICENSE.txt" - ] -} \ No newline at end of file + ], + "homepage": "https://github.com/yargs/set-blocking#readme", + "keywords": [ + "flush", + "terminal", + "blocking", + "shim", + "stdio", + "stderr" + ], + "license": "ISC", + "main": "index.js", + "name": "set-blocking", + "repository": { + "type": "git", + "url": "git+https://github.com/yargs/set-blocking.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "test": "nyc mocha ./test/*.js", + "version": "standard-version" + }, + "version": "2.0.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/set-immediate-shim/package.json b/admin/vue2/element-admin-v3/node_modules/set-immediate-shim/package.json index 2e9a451bc..a5d4d7ba2 100644 --- a/admin/vue2/element-admin-v3/node_modules/set-immediate-shim/package.json +++ b/admin/vue2/element-admin-v3/node_modules/set-immediate-shim/package.json @@ -1,23 +1,52 @@ { - "name": "set-immediate-shim", - "version": "1.0.1", - "description": "Simple setImmediate shim", - "license": "MIT", - "repository": "sindresorhus/set-immediate-shim", + "_args": [ + [ + "set-immediate-shim@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "set-immediate-shim@1.0.1", + "_id": "set-immediate-shim@1.0.1", + "_inBundle": false, + "_integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "_location": "/set-immediate-shim", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "set-immediate-shim@1.0.1", + "name": "set-immediate-shim", + "escapedName": "set-immediate-shim", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/jszip" + ], + "_resolved": "https://registry.nlark.com/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/set-immediate-shim/issues" + }, + "description": "Simple setImmediate shim", + "devDependencies": { + "ava": "0.0.4", + "require-uncached": "^1.0.2" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/set-immediate-shim#readme", "keywords": [ "setImmediate", "immediate", @@ -27,8 +56,14 @@ "polyfill", "ponyfill" ], - "devDependencies": { - "ava": "0.0.4", - "require-uncached": "^1.0.2" - } + "license": "MIT", + "name": "set-immediate-shim", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/set-immediate-shim.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/set-value/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/set-value/node_modules/extend-shallow/package.json index b42e01c7a..d80a78817 100644 --- a/admin/vue2/element-admin-v3/node_modules/set-value/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/set-value/node_modules/extend-shallow/package.json @@ -1,27 +1,43 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/set-value/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/set-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +50,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +75,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/set-value/package.json b/admin/vue2/element-admin-v3/node_modules/set-value/package.json index 736db34c1..ff02a2730 100644 --- a/admin/vue2/element-admin-v3/node_modules/set-value/package.json +++ b/admin/vue2/element-admin-v3/node_modules/set-value/package.json @@ -1,39 +1,73 @@ { - "name": "set-value", - "description": "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/set-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)", - "Vadim Demedes (https://vadimdemedes.com)" + "_args": [ + [ + "set-value@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/set-value", - "bugs": { - "url": "https://github.com/jonschlinkert/set-value/issues" + "_from": "set-value@2.0.1", + "_id": "set-value@2.0.1", + "_inBundle": false, + "_integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "_location": "/set-value", + "_phantomChildren": { + "is-extendable": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "set-value@2.0.1", + "name": "set-value", + "escapedName": "set-value", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/cache-base", + "/union-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/set-value/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + }, + { + "name": "Vadim Demedes", + "url": "https://vadimdemedes.com" + } + ], "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, + "description": "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.4.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/set-value", "keywords": [ "get", "has", @@ -51,6 +85,16 @@ "value", "values" ], + "license": "MIT", + "main": "index.js", + "name": "set-value", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/set-value.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -75,5 +119,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/setimmediate/package.json b/admin/vue2/element-admin-v3/node_modules/setimmediate/package.json index 9b211e43c..446044d25 100644 --- a/admin/vue2/element-admin-v3/node_modules/setimmediate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/setimmediate/package.json @@ -1,30 +1,77 @@ { + "_args": [ + [ + "setimmediate@1.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "setimmediate@1.0.5", + "_id": "setimmediate@1.0.5", + "_inBundle": false, + "_integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "_location": "/setimmediate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setimmediate@1.0.5", "name": "setimmediate", - "description": "A shim for the setImmediate efficient script yielding API", - "version": "1.0.5", - "author": "YuzuJS", - "contributors": [ - "Domenic Denicola (https://domenic.me)", - "Donavon West (http://donavon.com)", - "Yaffle" - ], - "license": "MIT", - "repository": "YuzuJS/setImmediate", - "main": "setImmediate.js", - "files": [ - "setImmediate.js" - ], - "scripts": { - "lint": "jshint setImmediate.js", - "test": "mocha test/tests.js", - "test-browser": "opener http://localhost:9008/__zuul && zuul test/tests.js --ui mocha-bdd --local 9008", - "test-browser-only": "opener http://localhost:9007/test/browserOnly/index.html && http-server . -p 9007" + "escapedName": "setimmediate", + "rawSpec": "1.0.5", + "saveSpec": null, + "fetchSpec": "1.0.5" + }, + "_requiredBy": [ + "/timers-browserify" + ], + "_resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "_spec": "1.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "YuzuJS" + }, + "bugs": { + "url": "https://github.com/YuzuJS/setImmediate/issues" + }, + "contributors": [ + { + "name": "Domenic Denicola", + "email": "d@domenic.me", + "url": "https://domenic.me" }, - "devDependencies": { - "jshint": "^2.5.0", - "mocha": "~1.18.2", - "http-server": "~0.6.1", - "opener": "^1.3", - "zuul": "^1.6.4" + { + "name": "Donavon West", + "email": "github@donavon.com", + "url": "http://donavon.com" + }, + { + "name": "Yaffle" } + ], + "description": "A shim for the setImmediate efficient script yielding API", + "devDependencies": { + "http-server": "~0.6.1", + "jshint": "^2.5.0", + "mocha": "~1.18.2", + "opener": "^1.3", + "zuul": "^1.6.4" + }, + "files": [ + "setImmediate.js" + ], + "homepage": "https://github.com/YuzuJS/setImmediate#readme", + "license": "MIT", + "main": "setImmediate.js", + "name": "setimmediate", + "repository": { + "type": "git", + "url": "git+https://github.com/YuzuJS/setImmediate.git" + }, + "scripts": { + "lint": "jshint setImmediate.js", + "test": "mocha test/tests.js", + "test-browser": "opener http://localhost:9008/__zuul && zuul test/tests.js --ui mocha-bdd --local 9008", + "test-browser-only": "opener http://localhost:9007/test/browserOnly/index.html && http-server . -p 9007" + }, + "version": "1.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/setprototypeof/package.json b/admin/vue2/element-admin-v3/node_modules/setprototypeof/package.json index 41368e1b5..18c913ac0 100644 --- a/admin/vue2/element-admin-v3/node_modules/setprototypeof/package.json +++ b/admin/vue2/element-admin-v3/node_modules/setprototypeof/package.json @@ -1,36 +1,67 @@ { - "name": "setprototypeof", - "version": "1.1.1", - "description": "A small polyfill for Object.setprototypeof", - "main": "index.js", - "typings": "index.d.ts", - "scripts": { - "test": "standard && mocha", - "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", - "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t", - "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", - "node4": "NODE_VER=4 npm run testversion", - "node6": "NODE_VER=6 npm run testversion", - "node9": "NODE_VER=9 npm run testversion", - "node11": "NODE_VER=11 npm run testversion" + "_args": [ + [ + "setprototypeof@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "setprototypeof@1.1.1", + "_id": "setprototypeof@1.1.1", + "_inBundle": false, + "_integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", + "_location": "/setprototypeof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setprototypeof@1.1.1", + "name": "setprototypeof", + "escapedName": "setprototypeof", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "repository": { - "type": "git", - "url": "https://github.com/wesleytodd/setprototypeof.git" + "_requiredBy": [ + "/express", + "/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Wes Todd" }, + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" + }, + "description": "A small polyfill for Object.setprototypeof", + "devDependencies": { + "mocha": "^5.2.0", + "standard": "^12.0.1" + }, + "homepage": "https://github.com/wesleytodd/setprototypeof", "keywords": [ "polyfill", "object", "setprototypeof" ], - "author": "Wes Todd", "license": "ISC", - "bugs": { - "url": "https://github.com/wesleytodd/setprototypeof/issues" + "main": "index.js", + "name": "setprototypeof", + "repository": { + "type": "git", + "url": "git+https://github.com/wesleytodd/setprototypeof.git" }, - "homepage": "https://github.com/wesleytodd/setprototypeof", - "devDependencies": { - "mocha": "^5.2.0", - "standard": "^12.0.1" - } + "scripts": { + "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", + "node11": "NODE_VER=11 npm run testversion", + "node4": "NODE_VER=4 npm run testversion", + "node6": "NODE_VER=6 npm run testversion", + "node9": "NODE_VER=9 npm run testversion", + "test": "standard && mocha", + "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", + "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t" + }, + "typings": "index.d.ts", + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/sha.js/package.json b/admin/vue2/element-admin-v3/node_modules/sha.js/package.json index bfe633b2a..04f55b8d8 100644 --- a/admin/vue2/element-admin-v3/node_modules/sha.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sha.js/package.json @@ -1,16 +1,50 @@ { - "name": "sha.js", - "description": "Streamable SHA hashes in pure javascript", - "version": "2.4.11", - "homepage": "https://github.com/crypto-browserify/sha.js", - "repository": { - "type": "git", - "url": "git://github.com/crypto-browserify/sha.js.git" + "_args": [ + [ + "sha.js@2.4.11", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "sha.js@2.4.11", + "_id": "sha.js@2.4.11", + "_inBundle": false, + "_integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "_location": "/sha.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sha.js@2.4.11", + "name": "sha.js", + "escapedName": "sha.js", + "rawSpec": "2.4.11", + "saveSpec": null, + "fetchSpec": "2.4.11" + }, + "_requiredBy": [ + "/create-hash", + "/create-hmac", + "/pbkdf2" + ], + "_resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", + "_spec": "2.4.11", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dominic Tarr", + "email": "dominic.tarr@gmail.com", + "url": "dominictarr.com" + }, + "bin": { + "sha.js": "bin.js" + }, + "bugs": { + "url": "https://github.com/crypto-browserify/sha.js/issues" }, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" }, + "description": "Streamable SHA hashes in pure javascript", "devDependencies": { "buffer": "~2.3.2", "hash-test-vectors": "^1.3.1", @@ -18,13 +52,18 @@ "tape": "~2.3.2", "typedarray": "0.0.6" }, - "bin": "./bin.js", + "homepage": "https://github.com/crypto-browserify/sha.js", + "license": "(MIT AND BSD-3-Clause)", + "name": "sha.js", + "repository": { + "type": "git", + "url": "git://github.com/crypto-browserify/sha.js.git" + }, "scripts": { - "prepublish": "npm ls && npm run unit", "lint": "standard", + "prepublish": "npm ls && npm run unit", "test": "npm run lint && npm run unit", "unit": "set -e; for t in test/*.js; do node $t; done;" }, - "author": "Dominic Tarr (dominictarr.com)", - "license": "(MIT AND BSD-3-Clause)" + "version": "2.4.11" } diff --git a/admin/vue2/element-admin-v3/node_modules/shallow-clone/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/shallow-clone/node_modules/kind-of/package.json index 334235fb0..5d263b6d6 100644 --- a/admin/vue2/element-admin-v3/node_modules/shallow-clone/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/shallow-clone/node_modules/kind-of/package.json @@ -1,35 +1,75 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "5.1.0", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@5.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_development": true, + "_from": "kind-of@5.1.0", + "_id": "kind-of@5.1.0", + "_inBundle": false, + "_integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "_location": "/shallow-clone/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@5.1.0", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "5.1.0", + "saveSpec": null, + "fetchSpec": "5.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/shallow-clone" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "_spec": "5.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.1.1", @@ -40,6 +80,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -63,6 +110,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -87,5 +145,6 @@ "typeof", "verb" ] - } + }, + "version": "5.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/shallow-clone/package.json b/admin/vue2/element-admin-v3/node_modules/shallow-clone/package.json index fb2f946fc..671f2d0bc 100644 --- a/admin/vue2/element-admin-v3/node_modules/shallow-clone/package.json +++ b/admin/vue2/element-admin-v3/node_modules/shallow-clone/package.json @@ -1,38 +1,68 @@ { - "name": "shallow-clone", - "description": "Make a shallow clone of an object, array or primitive.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/shallow-clone", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "shallow-clone@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/shallow-clone", - "bugs": { - "url": "https://github.com/jonschlinkert/shallow-clone/issues" + "_development": true, + "_from": "shallow-clone@1.0.0", + "_id": "shallow-clone@1.0.0", + "_inBundle": false, + "_integrity": "sha1-RIDNBuiC72iyrYij6lSDLixItXE=", + "_location": "/shallow-clone", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shallow-clone@1.0.0", + "name": "shallow-clone", + "escapedName": "shallow-clone", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/clone-deep" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/shallow-clone/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "is-extendable": "^0.1.1", "kind-of": "^5.0.0", "mixin-object": "^2.0.1" }, + "description": "Make a shallow clone of an object, array or primitive.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.4.2", "should": "^11.2.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/shallow-clone", "keywords": [ "array", "clone", @@ -43,6 +73,16 @@ "primitive", "shallow" ], + "license": "MIT", + "main": "index.js", + "name": "shallow-clone", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/shallow-clone.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -67,5 +107,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/shebang-command/package.json b/admin/vue2/element-admin-v3/node_modules/shebang-command/package.json index 19c9ce535..34f0648e7 100644 --- a/admin/vue2/element-admin-v3/node_modules/shebang-command/package.json +++ b/admin/vue2/element-admin-v3/node_modules/shebang-command/package.json @@ -1,36 +1,73 @@ { - "name": "shebang-command", - "version": "1.2.0", - "description": "Get the command from a shebang", - "license": "MIT", - "repository": "kevva/shebang-command", + "_args": [ + [ + "shebang-command@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "shebang-command@1.2.0", + "_id": "shebang-command@1.2.0", + "_inBundle": false, + "_integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "_location": "/shebang-command", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shebang-command@1.2.0", + "name": "shebang-command", + "escapedName": "shebang-command", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/cross-spawn", + "/eslint/cross-spawn", + "/lint-staged/cross-spawn" + ], + "_resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kevin Martensson", "email": "kevinmartensson@gmail.com", "url": "github.com/kevva" }, + "bugs": { + "url": "https://github.com/kevva/shebang-command/issues" + }, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "description": "Get the command from a shebang", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/kevva/shebang-command#readme", "keywords": [ "cmd", "command", "parse", "shebang" ], - "dependencies": { - "shebang-regex": "^1.0.0" + "license": "MIT", + "name": "shebang-command", + "repository": { + "type": "git", + "url": "git+https://github.com/kevva/shebang-command.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "1.2.0", "xo": { "ignores": [ "test.js" diff --git a/admin/vue2/element-admin-v3/node_modules/shebang-regex/package.json b/admin/vue2/element-admin-v3/node_modules/shebang-regex/package.json index d8ec9b61f..5c3071f64 100644 --- a/admin/vue2/element-admin-v3/node_modules/shebang-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/shebang-regex/package.json @@ -1,23 +1,51 @@ { - "name": "shebang-regex", - "version": "1.0.0", - "description": "Regular expression for matching a shebang", - "license": "MIT", - "repository": "sindresorhus/shebang-regex", + "_args": [ + [ + "shebang-regex@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "shebang-regex@1.0.0", + "_id": "shebang-regex@1.0.0", + "_inBundle": false, + "_integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "_location": "/shebang-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shebang-regex@1.0.0", + "name": "shebang-regex", + "escapedName": "shebang-regex", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/shebang-command" + ], + "_resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/shebang-regex/issues" + }, + "description": "Regular expression for matching a shebang", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/shebang-regex#readme", "keywords": [ "re", "regex", @@ -26,7 +54,14 @@ "match", "test" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "shebang-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/shebang-regex.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/shelljs/package.json b/admin/vue2/element-admin-v3/node_modules/shelljs/package.json index 5c79efeec..8a2d26dfc 100644 --- a/admin/vue2/element-admin-v3/node_modules/shelljs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/shelljs/package.json @@ -1,63 +1,60 @@ { - "name": "shelljs", - "version": "0.8.5", - "description": "Portable Unix shell commands for Node.js", - "keywords": [ - "shelljs", - "bash", - "unix", - "shell", - "makefile", - "make", - "jake", - "synchronous" + "_args": [ + [ + "shelljs@0.8.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "contributors": [ - "Nate Fischer (https://github.com/nfischer)", - "Brandon Freitag (https://github.com/freitagbr)" - ], - "repository": { - "type": "git", - "url": "git://github.com/shelljs/shelljs.git" + "_from": "shelljs@0.8.5", + "_id": "shelljs@0.8.5", + "_inBundle": false, + "_integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "_location": "/shelljs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shelljs@0.8.5", + "name": "shelljs", + "escapedName": "shelljs", + "rawSpec": "0.8.5", + "saveSpec": null, + "fetchSpec": "0.8.5" }, - "license": "BSD-3-Clause", - "homepage": "http://github.com/shelljs/shelljs", - "main": "./shell.js", - "files": [ - "commands.js", - "global.js", - "make.js", - "plugin.js", - "shell.js", - "bin", - "src" + "_requiredBy": [ + "/" ], - "scripts": { - "ci-or-install": "node scripts/ci-or-install", - "posttest": "npm run lint", - "test": "nyc --reporter=text --reporter=lcov ava test/*.js", - "test-no-coverage": "ava test/*.js", - "gendocs": "node scripts/generate-docs", - "lint": "eslint .", - "after-travis": "travis-check-changes", - "changelog": "shelljs-changelog", - "codecov": "codecov", - "release:major": "shelljs-release major", - "release:minor": "shelljs-release minor", - "release:patch": "shelljs-release patch" + "_resolved": "https://registry.npmmirror.com/shelljs/download/shelljs-0.8.5.tgz", + "_spec": "0.8.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "ava": { + "serial": true, + "powerAssert": false }, "bin": { - "shjs": "./bin/shjs" + "shjs": "bin/shjs" }, + "bugs": { + "url": "https://github.com/shelljs/shelljs/issues" + }, + "contributors": [ + { + "name": "Nate Fischer", + "email": "ntfschr@gmail.com", + "url": "https://github.com/nfischer" + }, + { + "name": "Brandon Freitag", + "email": "freitagbr@gmail.com", + "url": "https://github.com/freitagbr" + } + ], "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" }, - "ava": { - "serial": true, - "powerAssert": false - }, + "description": "Portable Unix shell commands for Node.js", "devDependencies": { "ava": "^0.21.0", "chalk": "^1.1.3", @@ -72,8 +69,50 @@ "shx": "^0.2.0", "travis-check-changes": "^0.2.0" }, - "optionalDependencies": {}, "engines": { "node": ">=4" - } + }, + "files": [ + "commands.js", + "global.js", + "make.js", + "plugin.js", + "shell.js", + "bin", + "src" + ], + "homepage": "http://github.com/shelljs/shelljs", + "keywords": [ + "shelljs", + "bash", + "unix", + "shell", + "makefile", + "make", + "jake", + "synchronous" + ], + "license": "BSD-3-Clause", + "main": "./shell.js", + "name": "shelljs", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/shelljs/shelljs.git" + }, + "scripts": { + "after-travis": "travis-check-changes", + "changelog": "shelljs-changelog", + "ci-or-install": "node scripts/ci-or-install", + "codecov": "codecov", + "gendocs": "node scripts/generate-docs", + "lint": "eslint .", + "posttest": "npm run lint", + "release:major": "shelljs-release major", + "release:minor": "shelljs-release minor", + "release:patch": "shelljs-release patch", + "test": "nyc --reporter=text --reporter=lcov ava test/*.js", + "test-no-coverage": "ava test/*.js" + }, + "version": "0.8.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/shellwords/package.json b/admin/vue2/element-admin-v3/node_modules/shellwords/package.json index ae9398ad1..d31fc10d0 100644 --- a/admin/vue2/element-admin-v3/node_modules/shellwords/package.json +++ b/admin/vue2/element-admin-v3/node_modules/shellwords/package.json @@ -1,22 +1,60 @@ { - "author": "Jimmy Cuadra (http://jimmycuadra.com/)", - "name": "shellwords", + "_args": [ + [ + "shellwords@0.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "shellwords@0.1.1", + "_id": "shellwords@0.1.1", + "_inBundle": false, + "_integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", + "_location": "/shellwords", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "shellwords@0.1.1", + "name": "shellwords", + "escapedName": "shellwords", + "rawSpec": "0.1.1", + "saveSpec": null, + "fetchSpec": "0.1.1" + }, + "_requiredBy": [ + "/node-notifier" + ], + "_resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", + "_spec": "0.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jimmy Cuadra", + "email": "jimmy@jimmycuadra.com", + "url": "http://jimmycuadra.com/" + }, + "bugs": { + "url": "https://github.com/jimmycuadra/shellwords/issues" + }, + "dependencies": {}, "description": "Manipulate strings according to the word parsing rules of the UNIX Bourne shell.", - "version": "0.1.1", + "devDependencies": { + "jasmine-node": "~1.0.26", + "nodewatch": "~0.1.0" + }, + "files": [ + "lib" + ], "homepage": "https://github.com/jimmycuadra/shellwords", + "license": "MIT", + "main": "./lib/shellwords", + "name": "shellwords", "repository": { "type": "git", "url": "git://github.com/jimmycuadra/shellwords.git" }, - "main": "./lib/shellwords", - "files": ["lib"], "scripts": { "test": "cake spec" }, - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "jasmine-node": "~1.0.26", - "nodewatch": "~0.1.0" - } + "version": "0.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/showdown/package.json b/admin/vue2/element-admin-v3/node_modules/showdown/package.json index af6fef38b..aee4b3eae 100644 --- a/admin/vue2/element-admin-v3/node_modules/showdown/package.json +++ b/admin/vue2/element-admin-v3/node_modules/showdown/package.json @@ -1,43 +1,92 @@ { - "name": "showdown", - "version": "1.9.1", - "description": "A Markdown to HTML converter written in Javascript", - "author": "Estevão Santos", - "homepage": "http://showdownjs.com/", - "keywords": [ - "markdown", - "converter" - ], - "contributors": [ - "John Gruber", - "John Fraser", - "Corey Innis", - "Remy Sharp", - "Konstantin Käfer", - "Roger Braun", - "Dominic Tarr", - "Cat Chen", - "Titus Stone", - "Rob Sutherland", - "Pavel Lang", - "Ben Combee", - "Adam Backstrom", - "Pascal Deschênes", - "Estevão Santos" + "_args": [ + [ + "showdown@1.9.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "https://github.com/showdownjs/showdown.git", - "web": "https://github.com/showdownjs/showdown" + "_from": "showdown@1.9.1", + "_id": "showdown@1.9.1", + "_inBundle": false, + "_integrity": "sha1-E04UjnXNRiPgnCGwURl315ta0O8=", + "_location": "/showdown", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "showdown@1.9.1", + "name": "showdown", + "escapedName": "showdown", + "rawSpec": "1.9.1", + "saveSpec": null, + "fetchSpec": "1.9.1" }, - "license": "BSD-3-Clause", - "main": "./dist/showdown.js", - "scripts": { - "test": "grunt test" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/showdown/download/showdown-1.9.1.tgz", + "_spec": "1.9.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Estevão Santos" }, "bin": { "showdown": "bin/showdown.js" }, + "bugs": { + "url": "https://github.com/showdownjs/showdown/issues" + }, + "contributors": [ + { + "name": "John Gruber" + }, + { + "name": "John Fraser" + }, + { + "name": "Corey Innis" + }, + { + "name": "Remy Sharp" + }, + { + "name": "Konstantin Käfer" + }, + { + "name": "Roger Braun" + }, + { + "name": "Dominic Tarr" + }, + { + "name": "Cat Chen" + }, + { + "name": "Titus Stone" + }, + { + "name": "Rob Sutherland" + }, + { + "name": "Pavel Lang" + }, + { + "name": "Ben Combee" + }, + { + "name": "Adam Backstrom" + }, + { + "name": "Pascal Deschênes" + }, + { + "name": "Estevão Santos" + } + ], + "dependencies": { + "yargs": "^14.2" + }, + "description": "A Markdown to HTML converter written in Javascript", "devDependencies": { "chai": "^4.0.2", "grunt": "^1.0.3", @@ -59,7 +108,21 @@ "sinon": "^4.0.0", "source-map-support": "^0.5.0" }, - "dependencies": { - "yargs": "^14.2" - } + "homepage": "http://showdownjs.com/", + "keywords": [ + "markdown", + "converter" + ], + "license": "BSD-3-Clause", + "main": "./dist/showdown.js", + "name": "showdown", + "repository": { + "type": "git", + "url": "git+https://github.com/showdownjs/showdown.git", + "web": "https://github.com/showdownjs/showdown" + }, + "scripts": { + "test": "grunt test" + }, + "version": "1.9.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/signal-exit/package.json b/admin/vue2/element-admin-v3/node_modules/signal-exit/package.json index 59b0ac126..62b393303 100644 --- a/admin/vue2/element-admin-v3/node_modules/signal-exit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/signal-exit/package.json @@ -1,32 +1,44 @@ { - "name": "signal-exit", - "version": "3.0.3", - "description": "when you want to fire an event no matter how a process exits.", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "tap --timeout=240 ./test/*.js --cov", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" - }, - "files": [ - "index.js", - "signals.js" + "_args": [ + [ + "signal-exit@3.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "https://github.com/tapjs/signal-exit.git" + "_from": "signal-exit@3.0.3", + "_id": "signal-exit@3.0.3", + "_inBundle": false, + "_integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "_location": "/signal-exit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "signal-exit@3.0.3", + "name": "signal-exit", + "escapedName": "signal-exit", + "rawSpec": "3.0.3", + "saveSpec": null, + "fetchSpec": "3.0.3" }, - "keywords": [ - "signal", - "exit" + "_requiredBy": [ + "/execa", + "/gauge", + "/lint-staged/execa", + "/loud-rejection", + "/restore-cursor" ], - "author": "Ben Coe ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "_spec": "3.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, "bugs": { "url": "https://github.com/tapjs/signal-exit/issues" }, - "homepage": "https://github.com/tapjs/signal-exit", + "description": "when you want to fire an event no matter how a process exits.", "devDependencies": { "chai": "^3.5.0", "coveralls": "^2.11.10", @@ -34,5 +46,28 @@ "standard": "^8.1.0", "standard-version": "^2.3.0", "tap": "^8.0.1" - } + }, + "files": [ + "index.js", + "signals.js" + ], + "homepage": "https://github.com/tapjs/signal-exit", + "keywords": [ + "signal", + "exit" + ], + "license": "ISC", + "main": "index.js", + "name": "signal-exit", + "repository": { + "type": "git", + "url": "git+https://github.com/tapjs/signal-exit.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "tap --timeout=240 ./test/*.js --cov" + }, + "version": "3.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/simple-swizzle/node_modules/is-arrayish/package.json b/admin/vue2/element-admin-v3/node_modules/simple-swizzle/node_modules/is-arrayish/package.json index 8a54e33cc..2de68cb99 100644 --- a/admin/vue2/element-admin-v3/node_modules/simple-swizzle/node_modules/is-arrayish/package.json +++ b/admin/vue2/element-admin-v3/node_modules/simple-swizzle/node_modules/is-arrayish/package.json @@ -1,29 +1,41 @@ { - "name": "is-arrayish", - "description": "Determines if an object can be used as an array", - "version": "0.3.2", - "author": "Qix (http://github.com/qix-)", - "keywords": [ - "is", - "array", - "duck", - "type", - "arrayish", - "similar", - "proto", - "prototype", - "type" + "_args": [ + [ + "is-arrayish@0.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "scripts": { - "test": "mocha --require coffeescript/register ./test/**/*.coffee", - "lint": "zeit-eslint --ext .jsx,.js .", - "lint-staged": "git diff --diff-filter=ACMRT --cached --name-only '*.js' '*.jsx' | xargs zeit-eslint" + "_development": true, + "_from": "is-arrayish@0.3.2", + "_id": "is-arrayish@0.3.2", + "_inBundle": false, + "_integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "_location": "/simple-swizzle/is-arrayish", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-arrayish@0.3.2", + "name": "is-arrayish", + "escapedName": "is-arrayish", + "rawSpec": "0.3.2", + "saveSpec": null, + "fetchSpec": "0.3.2" }, - "repository": { - "type": "git", - "url": "https://github.com/qix-/node-is-arrayish.git" + "_requiredBy": [ + "/simple-swizzle" + ], + "_resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "_spec": "0.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Qix", + "url": "http://github.com/qix-" }, + "bugs": { + "url": "https://github.com/qix-/node-is-arrayish/issues" + }, + "description": "Determines if an object can be used as an array", "devDependencies": { "@zeit/eslint-config-node": "^0.3.0", "@zeit/git-hooks": "^0.1.4", @@ -41,5 +53,29 @@ }, "git": { "pre-commit": "lint-staged" - } + }, + "homepage": "https://github.com/qix-/node-is-arrayish#readme", + "keywords": [ + "is", + "array", + "duck", + "type", + "arrayish", + "similar", + "proto", + "prototype", + "type" + ], + "license": "MIT", + "name": "is-arrayish", + "repository": { + "type": "git", + "url": "git+https://github.com/qix-/node-is-arrayish.git" + }, + "scripts": { + "lint": "zeit-eslint --ext .jsx,.js .", + "lint-staged": "git diff --diff-filter=ACMRT --cached --name-only '*.js' '*.jsx' | xargs zeit-eslint", + "test": "mocha --require coffeescript/register ./test/**/*.coffee" + }, + "version": "0.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/simple-swizzle/package.json b/admin/vue2/element-admin-v3/node_modules/simple-swizzle/package.json index 795ae4cc5..18d934d9c 100644 --- a/admin/vue2/element-admin-v3/node_modules/simple-swizzle/package.json +++ b/admin/vue2/element-admin-v3/node_modules/simple-swizzle/package.json @@ -1,8 +1,56 @@ { - "name": "simple-swizzle", + "_args": [ + [ + "simple-swizzle@0.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "simple-swizzle@0.2.2", + "_id": "simple-swizzle@0.2.2", + "_inBundle": false, + "_integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "_location": "/simple-swizzle", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "simple-swizzle@0.2.2", + "name": "simple-swizzle", + "escapedName": "simple-swizzle", + "rawSpec": "0.2.2", + "saveSpec": null, + "fetchSpec": "0.2.2" + }, + "_requiredBy": [ + "/color-string" + ], + "_resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "_spec": "0.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Qix", + "url": "http://github.com/qix-" + }, + "bugs": { + "url": "https://github.com/qix-/node-simple-swizzle/issues" + }, + "dependencies": { + "is-arrayish": "^0.3.1" + }, "description": "Simply swizzle your arguments", - "version": "0.2.2", - "author": "Qix (http://github.com/qix-)", + "devDependencies": { + "coffee-script": "^1.9.3", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "mocha": "^2.2.5", + "should": "^7.0.1", + "xo": "^0.7.1" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/qix-/node-simple-swizzle#readme", "keywords": [ "argument", "arguments", @@ -14,23 +62,14 @@ "array" ], "license": "MIT", + "name": "simple-swizzle", + "repository": { + "type": "git", + "url": "git+https://github.com/qix-/node-simple-swizzle.git" + }, "scripts": { "pretest": "xo", "test": "mocha --compilers coffee:coffee-script/register" }, - "files": [ - "index.js" - ], - "repository": "qix-/node-simple-swizzle", - "devDependencies": { - "coffee-script": "^1.9.3", - "coveralls": "^2.11.2", - "istanbul": "^0.3.17", - "mocha": "^2.2.5", - "should": "^7.0.1", - "xo": "^0.7.1" - }, - "dependencies": { - "is-arrayish": "^0.3.1" - } + "version": "0.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/slash/package.json b/admin/vue2/element-admin-v3/node_modules/slash/package.json index 7e744a440..8b7bd59c7 100644 --- a/admin/vue2/element-admin-v3/node_modules/slash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/slash/package.json @@ -1,33 +1,70 @@ { - "name": "slash", - "version": "1.0.0", - "description": "Convert Windows backslash paths to slash paths", - "keywords": [ - "path", - "seperator", - "sep", - "slash", - "backslash", - "windows", - "win" + "_args": [ + [ + "slash@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "slash@1.0.0", + "_id": "slash@1.0.0", + "_inBundle": false, + "_integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "_location": "/slash", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "slash@1.0.0", + "name": "slash", + "escapedName": "slash", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/babel-core", + "/copy-webpack-plugin/globby" ], + "_resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz?cache=0&sync_timestamp=1618384508676&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "http://sindresorhus.com" }, - "repository": "sindresorhus/slash", - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/sindresorhus/slash/issues" }, + "description": "Convert Windows backslash paths to slash paths", "devDependencies": { "mocha": "*" }, "engines": { "node": ">=0.10.0" }, - "license": "MIT", "files": [ "index.js" - ] + ], + "homepage": "https://github.com/sindresorhus/slash#readme", + "keywords": [ + "path", + "seperator", + "sep", + "slash", + "backslash", + "windows", + "win" + ], + "license": "MIT", + "name": "slash", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/slash.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/slice-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/slice-ansi/package.json index cc60b3bb3..901cedd71 100644 --- a/admin/vue2/element-admin-v3/node_modules/slice-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/slice-ansi/package.json @@ -1,22 +1,58 @@ { - "name": "slice-ansi", - "version": "1.0.0", - "description": "Slice a string with ANSI escape codes", - "license": "MIT", - "repository": "chalk/slice-ansi", + "_args": [ + [ + "slice-ansi@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "slice-ansi@1.0.0", + "_id": "slice-ansi@1.0.0", + "_inBundle": false, + "_integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "_location": "/slice-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "slice-ansi@1.0.0", + "name": "slice-ansi", + "escapedName": "slice-ansi", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/table" + ], + "_resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz?cache=0&sync_timestamp=1618554984144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "David Caccavella", "email": "threedeecee@gmail.com" }, + "bugs": { + "url": "https://github.com/chalk/slice-ansi/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0" + }, + "description": "Slice a string with ANSI escape codes", + "devDependencies": { + "ava": "*", + "chalk": "^2.0.1", + "random-item": "^1.0.0", + "strip-ansi": "^4.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/slice-ansi#readme", "keywords": [ "slice", "string", @@ -40,14 +76,14 @@ "command-line", "text" ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0" + "license": "MIT", + "name": "slice-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/slice-ansi.git" }, - "devDependencies": { - "ava": "*", - "chalk": "^2.0.1", - "random-item": "^1.0.0", - "strip-ansi": "^4.0.0", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/define-property/package.json index e0ab1ca00..bf062e926 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/define-property/package.json @@ -1,31 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@1.0.0", + "_id": "define-property@1.0.0", + "_inBundle": false, + "_integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "_location": "/snapdragon-node/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@1.0.0", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon-node" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" }, "dependencies": { "is-descriptor": "^1.0.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -38,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -58,5 +91,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-accessor-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-accessor-descriptor/package.json index 47b97ac3c..1449a50d8 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-accessor-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-accessor-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-accessor-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-accessor-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-accessor-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" + "_from": "is-accessor-descriptor@1.0.0", + "_id": "is-accessor-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "_location": "/snapdragon-node/is-accessor-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-accessor-descriptor@1.0.0", + "name": "is-accessor-descriptor", + "escapedName": "is-accessor-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon-node/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-accessor-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-accessor-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -69,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-data-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-data-descriptor/package.json index 0b0938384..162bf0747 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-data-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-data-descriptor/package.json @@ -1,35 +1,64 @@ { - "name": "is-data-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-data-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-data-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-data-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" + "_from": "is-data-descriptor@1.0.0", + "_id": "is-data-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "_location": "/snapdragon-node/is-data-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-data-descriptor@1.0.0", + "name": "is-data-descriptor", + "escapedName": "is-data-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon-node/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-data-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +77,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-data-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-data-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -68,5 +107,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-descriptor/package.json index 87b2975b0..381af9441 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/node_modules/is-descriptor/package.json @@ -1,38 +1,69 @@ { - "name": "is-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-descriptor@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-descriptor/issues" + "_from": "is-descriptor@1.0.2", + "_id": "is-descriptor@1.0.2", + "_inBundle": false, + "_integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "_location": "/snapdragon-node/is-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-descriptor@1.0.2", + "name": "is-descriptor", + "escapedName": "is-descriptor", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon-node/define-property" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-descriptor/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-descriptor", "keywords": [ "accessor", "check", @@ -51,6 +82,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -71,5 +112,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/package.json index 2ca802374..50085c87f 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-node/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-node/package.json @@ -1,29 +1,47 @@ { - "name": "snapdragon-node", - "description": "Snapdragon utility for creating a new AST node in custom code, such as plugins.", - "version": "2.1.1", - "homepage": "https://github.com/jonschlinkert/snapdragon-node", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/snapdragon-node", - "bugs": { - "url": "https://github.com/jonschlinkert/snapdragon-node/issues" + "_args": [ + [ + "snapdragon-node@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "snapdragon-node@2.1.1", + "_id": "snapdragon-node@2.1.1", + "_inBundle": false, + "_integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "_location": "/snapdragon-node", + "_phantomChildren": { + "kind-of": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "snapdragon-node@2.1.1", + "name": "snapdragon-node", + "escapedName": "snapdragon-node", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/braces" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/snapdragon-node/issues" }, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, + "description": "Snapdragon utility for creating a new AST node in custom code, such as plugins.", "devDependencies": { "gulp": "^3.9.1", "gulp-eslint": "^4.0.0", @@ -33,6 +51,13 @@ "mocha": "^3.4.2", "snapdragon": "^0.11.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/snapdragon-node", "keywords": [ "ast", "compile", @@ -48,6 +73,16 @@ "token", "transform" ], + "license": "MIT", + "main": "index.js", + "name": "snapdragon-node", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/snapdragon-node.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "layout": "default", "tasks": [ @@ -72,5 +107,6 @@ "lint": { "reflinks": true } - } + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-util/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-util/node_modules/kind-of/package.json index 5de879e11..9eda5113b 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-util/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-util/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/snapdragon-util/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon-util" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon-util/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon-util/package.json index 434c4f50b..7e16fef02 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon-util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon-util/package.json @@ -1,27 +1,45 @@ { - "name": "snapdragon-util", - "description": "Utilities for the snapdragon parser/compiler.", - "version": "3.0.1", - "homepage": "https://github.com/jonschlinkert/snapdragon-util", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/snapdragon-util", - "bugs": { - "url": "https://github.com/jonschlinkert/snapdragon-util/issues" + "_args": [ + [ + "snapdragon-util@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "snapdragon-util@3.0.1", + "_id": "snapdragon-util@3.0.1", + "_inBundle": false, + "_integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "_location": "/snapdragon-util", + "_phantomChildren": { + "is-buffer": "1.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "snapdragon-util@3.0.1", + "name": "snapdragon-util", + "escapedName": "snapdragon-util", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/snapdragon-node" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/snapdragon-util/issues" }, "dependencies": { "kind-of": "^3.2.0" }, + "description": "Utilities for the snapdragon parser/compiler.", "devDependencies": { "define-property": "^1.0.0", "gulp": "^3.9.1", @@ -34,6 +52,13 @@ "snapdragon": "^0.11.0", "snapdragon-node": "^1.0.6" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/snapdragon-util", "keywords": [ "capture", "compile", @@ -49,6 +74,16 @@ "transform", "util" ], + "license": "MIT", + "main": "index.js", + "name": "snapdragon-util", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/snapdragon-util.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": "collapsible", "layout": "default", @@ -61,5 +96,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/define-property/package.json index 43561bf56..296e3550c 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/define-property/package.json @@ -1,28 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "0.2.5", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@0.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@0.2.5", + "_id": "define-property@0.2.5", + "_inBundle": false, + "_integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "_location": "/snapdragon/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@0.2.5", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "0.2.5", + "saveSpec": null, + "fetchSpec": "0.2.5" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "_spec": "0.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" + }, + "dependencies": { + "is-descriptor": "^0.1.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "mocha": "*", "should": "^7.0.4" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -35,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -45,7 +81,5 @@ ] } }, - "dependencies": { - "is-descriptor": "^0.1.0" - } + "version": "0.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/extend-shallow/package.json index b42e01c7a..25856cd6a 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon/node_modules/extend-shallow/package.json @@ -1,27 +1,43 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/snapdragon/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +50,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +75,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/snapdragon/package.json b/admin/vue2/element-admin-v3/node_modules/snapdragon/package.json index e4c4e7384..3242c9630 100644 --- a/admin/vue2/element-admin-v3/node_modules/snapdragon/package.json +++ b/admin/vue2/element-admin-v3/node_modules/snapdragon/package.json @@ -1,30 +1,61 @@ { - "name": "snapdragon", - "description": "Fast, pluggable and easy-to-use parser-renderer factory.", - "version": "0.8.2", - "homepage": "https://github.com/jonschlinkert/snapdragon", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Edward Betts (http://edwardbetts.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "snapdragon@0.8.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/snapdragon", - "bugs": { - "url": "https://github.com/jonschlinkert/snapdragon/issues" + "_from": "snapdragon@0.8.2", + "_id": "snapdragon@0.8.2", + "_inBundle": false, + "_integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "_location": "/snapdragon", + "_phantomChildren": { + "is-descriptor": "0.1.6", + "is-extendable": "0.1.1" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requested": { + "type": "version", + "registry": true, + "raw": "snapdragon@0.8.2", + "name": "snapdragon", + "escapedName": "snapdragon", + "rawSpec": "0.8.2", + "saveSpec": null, + "fetchSpec": "0.8.2" + }, + "_requiredBy": [ + "/braces", + "/expand-brackets", + "/extglob", + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz?cache=0&sync_timestamp=1617971829943&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz", + "_spec": "0.8.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/snapdragon/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Edward Betts", + "url": "http://edwardbetts.com" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -35,6 +66,7 @@ "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, + "description": "Fast, pluggable and easy-to-use parser-renderer factory.", "devDependencies": { "gulp": "^3.9.1", "gulp-eslint": "^3.0.1", @@ -44,10 +76,28 @@ "gulp-unused": "^0.2.0", "mocha": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/jonschlinkert/snapdragon", "keywords": [ "lexer", "snapdragon" ], + "license": "MIT", + "main": "index.js", + "name": "snapdragon", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/snapdragon.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -75,5 +125,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.8.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/debug/package.json index 191c81547..2b3152b97 100644 --- a/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/sockjs-client/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/sockjs-client" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/ms/package.json index 49971890d..6e2d5f36a 100644 --- a/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sockjs-client/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/sockjs-client/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/sockjs-client/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +58,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/sockjs-client/package.json b/admin/vue2/element-admin-v3/node_modules/sockjs-client/package.json index 1b3cf44bc..4c307a469 100644 --- a/admin/vue2/element-admin-v3/node_modules/sockjs-client/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sockjs-client/package.json @@ -1,9 +1,35 @@ { - "name": "sockjs-client", - "description": "SockJS-client is a browser JavaScript library that provides a WebSocket-like object.", - "version": "1.5.1", - "author": "Bryce Kahle", - "jsdelivr": "dist/sockjs.min.js", + "_args": [ + [ + "sockjs-client@1.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "sockjs-client@1.5.1", + "_id": "sockjs-client@1.5.1", + "_inBundle": false, + "_integrity": "sha1-JWkI9tWt+5Tau9vQLGY2LMoPnqY=", + "_location": "/sockjs-client", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sockjs-client@1.5.1", + "name": "sockjs-client", + "escapedName": "sockjs-client", + "rawSpec": "1.5.1", + "saveSpec": null, + "fetchSpec": "1.5.1" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.5.1.tgz?cache=0&sync_timestamp=1616686612247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.5.1.tgz", + "_spec": "1.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Bryce Kahle" + }, "browser": { "./lib/transport/driver/websocket.js": "./lib/transport/browser/websocket.js", "eventsource": "./lib/transport/browser/eventsource.js", @@ -32,6 +58,7 @@ "json3": "^3.3.3", "url-parse": "^1.5.1" }, + "description": "SockJS-client is a browser JavaScript library that provides a WebSocket-like object.", "devDependencies": { "browserify": "^16.5.1", "envify": "^4.0.0", @@ -57,25 +84,28 @@ "vinyl-source-stream": "^2.0.0" }, "homepage": "http://sockjs.org", + "jsdelivr": "dist/sockjs.min.js", "keywords": [ "websockets", "websocket" ], "license": "MIT", "main": "./lib/entry.js", + "name": "sockjs-client", "repository": { "type": "git", - "url": "https://github.com/sockjs/sockjs-client.git" + "url": "git+https://github.com/sockjs/sockjs-client.git" }, "scripts": { - "test": "mocha tests/node.js", - "test:bundle": "gulp testbundle", - "test:browser_local": "npm run test:bundle && npx karma start --browsers Chrome", - "test:browser_remote": "npm run test:bundle && npx karma start", "gulp": "gulp", "lint": "eslint .", - "version": "gulp release && git add -A dist lib/version.js Changelog.md", + "postpublish": "git push origin --all && git push origin --tags", "postversion": "npm publish", - "postpublish": "git push origin --all && git push origin --tags" - } + "test": "mocha tests/node.js", + "test:browser_local": "npm run test:bundle && npx karma start --browsers Chrome", + "test:browser_remote": "npm run test:bundle && npx karma start", + "test:bundle": "gulp testbundle", + "version": "gulp release && git add -A dist lib/version.js Changelog.md" + }, + "version": "1.5.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/sockjs/package.json b/admin/vue2/element-admin-v3/node_modules/sockjs/package.json index f3315fc2f..510db30dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/sockjs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sockjs/package.json @@ -1,8 +1,35 @@ { - "name": "sockjs", - "description": "SockJS-node is a server counterpart of SockJS-client a JavaScript library that provides a WebSocket-like object in the browser. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.", - "version": "0.3.21", - "author": "Marek Majkowski", + "_args": [ + [ + "sockjs@0.3.21", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "sockjs@0.3.21", + "_id": "sockjs@0.3.21", + "_inBundle": false, + "_integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=", + "_location": "/sockjs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sockjs@0.3.21", + "name": "sockjs", + "escapedName": "sockjs", + "rawSpec": "0.3.21", + "saveSpec": null, + "fetchSpec": "0.3.21" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz", + "_spec": "0.3.21", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Marek Majkowski" + }, "bugs": { "url": "https://github.com/sockjs/sockjs-node/issues" }, @@ -21,6 +48,7 @@ "uuid": "^3.4.0", "websocket-driver": "^0.7.4" }, + "description": "SockJS-node is a server counterpart of SockJS-client a JavaScript library that provides a WebSocket-like object in the browser. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.", "devDependencies": { "coffeescript": "^1.12.7" }, @@ -31,13 +59,15 @@ ], "license": "MIT", "main": "index", + "name": "sockjs", "repository": { "type": "git", - "url": "https://github.com/sockjs/sockjs-node.git" + "url": "git+https://github.com/sockjs/sockjs-node.git" }, "scripts": { - "version": "make build && git add Changelog", + "postpublish": "git push origin --all && git push origin --tags", "postversion": "npm publish", - "postpublish": "git push origin --all && git push origin --tags" - } + "version": "make build && git add Changelog" + }, + "version": "0.3.21" } diff --git a/admin/vue2/element-admin-v3/node_modules/sortablejs/package.json b/admin/vue2/element-admin-v3/node_modules/sortablejs/package.json index b9566b490..fb647f92a 100644 --- a/admin/vue2/element-admin-v3/node_modules/sortablejs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sortablejs/package.json @@ -1,7 +1,40 @@ { - "name": "sortablejs", - "exportName": "Sortable", - "version": "1.7.0", + "_args": [ + [ + "sortablejs@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "sortablejs@1.7.0", + "_id": "sortablejs@1.7.0", + "_inBundle": false, + "_integrity": "sha1-gKKyNwq9Vo4c7IwnETHvMKkE+ig=", + "_location": "/sortablejs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sortablejs@1.7.0", + "name": "sortablejs", + "escapedName": "sortablejs", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.7.0.tgz?cache=0&sync_timestamp=1610070445944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsortablejs%2Fdownload%2Fsortablejs-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Konstantin Lebedev", + "email": "ibnRubaXa@gmail.com" + }, + "bugs": { + "url": "https://github.com/rubaxa/Sortable/issues" + }, + "description": "Minimalist JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery. Supports AngularJS and any CSS library, e.g. Bootstrap.", "devDependencies": { "grunt": "*", "grunt-contrib-jshint": "*", @@ -11,21 +44,12 @@ "http-server": "^0.9.0", "testcafe": "^0.16.0" }, - "description": "Minimalist JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery. Supports AngularJS and any CSS library, e.g. Bootstrap.", - "main": "Sortable.js", - "scripts": { - "test": "./node_modules/grunt/bin/grunt", - "prepublish": "./node_modules/grunt/bin/grunt", - "http-server": "http-server -s ./" - }, - "repository": { - "type": "git", - "url": "git://github.com/rubaxa/Sortable.git" - }, + "exportName": "Sortable", "files": [ "Sortable.js", "Sortable.min.js" ], + "homepage": "https://github.com/rubaxa/Sortable#readme", "keywords": [ "sortable", "reorder", @@ -36,13 +60,24 @@ "react", "mixin" ], - "author": "Konstantin Lebedev ", "license": "MIT", + "main": "Sortable.js", + "name": "sortablejs", + "repository": { + "type": "git", + "url": "git://github.com/rubaxa/Sortable.git" + }, + "scripts": { + "http-server": "http-server -s ./", + "prepublish": "./node_modules/grunt/bin/grunt", + "test": "./node_modules/grunt/bin/grunt" + }, "spm": { "main": "Sortable.js", "ignore": [ "meteor", "st" ] - } + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/source-list-map/package.json b/admin/vue2/element-admin-v3/node_modules/source-list-map/package.json index 6661a81c6..37688e72f 100644 --- a/admin/vue2/element-admin-v3/node_modules/source-list-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/source-list-map/package.json @@ -1,29 +1,60 @@ { - "name": "source-list-map", - "version": "2.0.1", - "description": "Fast line to line SourceMap generator.", - "author": "Tobias Koppers @sokra", - "main": "lib/index.js", - "scripts": { - "test": "mocha -R spec" - }, - "repository": { - "type": "git", - "url": "https://github.com/webpack/source-list-map.git" - }, - "keywords": [ - "source-map" + "_args": [ + [ + "source-list-map@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib" + "_from": "source-list-map@2.0.1", + "_id": "source-list-map@2.0.1", + "_inBundle": false, + "_integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", + "_location": "/source-list-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-list-map@2.0.1", + "name": "source-list-map", + "escapedName": "source-list-map", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/css-loader", + "/webpack-sources" ], - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, "bugs": { "url": "https://github.com/webpack/source-list-map/issues" }, - "homepage": "https://github.com/webpack/source-list-map", + "description": "Fast line to line SourceMap generator.", "devDependencies": { "mocha": "^2.2.1", "should": "^5.2.0" - } + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/webpack/source-list-map", + "keywords": [ + "source-map" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "source-list-map", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/source-list-map.git" + }, + "scripts": { + "test": "mocha -R spec" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/source-map-resolve/package.json b/admin/vue2/element-admin-v3/node_modules/source-map-resolve/package.json index 78b639821..5e8207df4 100644 --- a/admin/vue2/element-admin-v3/node_modules/source-map-resolve/package.json +++ b/admin/vue2/element-admin-v3/node_modules/source-map-resolve/package.json @@ -1,9 +1,59 @@ { - "name": "source-map-resolve", - "version": "0.5.3", - "author": "Simon Lydell", - "license": "MIT", + "_args": [ + [ + "source-map-resolve@0.5.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "source-map-resolve@0.5.3", + "_id": "source-map-resolve@0.5.3", + "_inBundle": false, + "_integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "_location": "/source-map-resolve", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map-resolve@0.5.3", + "name": "source-map-resolve", + "escapedName": "source-map-resolve", + "rawSpec": "0.5.3", + "saveSpec": null, + "fetchSpec": "0.5.3" + }, + "_requiredBy": [ + "/snapdragon" + ], + "_resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", + "_spec": "0.5.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "browser": "source-map-resolve.js", + "bugs": { + "url": "https://github.com/lydell/source-map-resolve/issues" + }, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + }, "description": "Resolve the source map and/or sources for a generated file.", + "devDependencies": { + "Base64": "1.1.0", + "jshint": "2.10.3", + "setimmediate": "1.0.5", + "simple-asyncify": "1.0.0", + "tape": "4.12.1" + }, + "files": [ + "lib", + "source-map-resolve.js" + ], + "homepage": "https://github.com/lydell/source-map-resolve#readme", "keywords": [ "source map", "sourcemap", @@ -17,31 +67,18 @@ "find", "finder" ], - "repository": "lydell/source-map-resolve", + "license": "MIT", "main": "lib/source-map-resolve-node.js", - "browser": "source-map-resolve.js", - "files": [ - "lib", - "source-map-resolve.js" - ], + "name": "source-map-resolve", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/source-map-resolve.git" + }, "scripts": { + "build": "node generate-source-map-resolve.js", "lint": "jshint lib/ test/", - "unit": "node test/source-map-resolve.js && node test/windows.js", "test": "npm run lint && npm run unit", - "build": "node generate-source-map-resolve.js" + "unit": "node test/source-map-resolve.js && node test/windows.js" }, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - }, - "devDependencies": { - "Base64": "1.1.0", - "jshint": "2.10.3", - "setimmediate": "1.0.5", - "simple-asyncify": "1.0.0", - "tape": "4.12.1" - } -} \ No newline at end of file + "version": "0.5.3" +} diff --git a/admin/vue2/element-admin-v3/node_modules/source-map-support/package.json b/admin/vue2/element-admin-v3/node_modules/source-map-support/package.json index de64c2530..07352f896 100644 --- a/admin/vue2/element-admin-v3/node_modules/source-map-support/package.json +++ b/admin/vue2/element-admin-v3/node_modules/source-map-support/package.json @@ -1,17 +1,40 @@ { - "name": "source-map-support", - "description": "Fixes stack traces for files with source maps", - "version": "0.4.18", - "main": "./source-map-support.js", - "scripts": { - "build": "node build.js", - "serve-tests": "http-server -p 1336", - "prepublish": "npm run build", - "test": "mocha" + "_args": [ + [ + "source-map-support@0.4.18", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map-support@0.4.18", + "_id": "source-map-support@0.4.18", + "_inBundle": false, + "_integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "_location": "/source-map-support", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map-support@0.4.18", + "name": "source-map-support", + "escapedName": "source-map-support", + "rawSpec": "0.4.18", + "saveSpec": null, + "fetchSpec": "0.4.18" + }, + "_requiredBy": [ + "/babel-register" + ], + "_resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.4.18.tgz", + "_spec": "0.4.18", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/evanw/node-source-map-support/issues" }, "dependencies": { "source-map": "^0.5.6" }, + "description": "Fixes stack traces for files with source maps", "devDependencies": { "browserify": "3.44.2", "coffee-script": "1.7.1", @@ -19,12 +42,19 @@ "mocha": "1.18.2", "webpack": "^1.13.3" }, + "homepage": "https://github.com/evanw/node-source-map-support#readme", + "license": "MIT", + "main": "./source-map-support.js", + "name": "source-map-support", "repository": { "type": "git", - "url": "https://github.com/evanw/node-source-map-support" + "url": "git+https://github.com/evanw/node-source-map-support.git" }, - "bugs": { - "url": "https://github.com/evanw/node-source-map-support/issues" + "scripts": { + "build": "node build.js", + "prepublish": "npm run build", + "serve-tests": "http-server -p 1336", + "test": "mocha" }, - "license": "MIT" + "version": "0.4.18" } diff --git a/admin/vue2/element-admin-v3/node_modules/source-map-url/package.json b/admin/vue2/element-admin-v3/node_modules/source-map-url/package.json index 6fd96d30c..aae276320 100644 --- a/admin/vue2/element-admin-v3/node_modules/source-map-url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/source-map-url/package.json @@ -1,26 +1,62 @@ { - "name": "source-map-url", - "version": "0.4.1", - "author": "Simon Lydell", - "license": "MIT", + "_args": [ + [ + "source-map-url@0.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "source-map-url@0.4.1", + "_id": "source-map-url@0.4.1", + "_inBundle": false, + "_integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=", + "_location": "/source-map-url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map-url@0.4.1", + "name": "source-map-url", + "escapedName": "source-map-url", + "rawSpec": "0.4.1", + "saveSpec": null, + "fetchSpec": "0.4.1" + }, + "_requiredBy": [ + "/source-map-resolve" + ], + "_resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz?cache=0&sync_timestamp=1612210508484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.1.tgz", + "_spec": "0.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/source-map-url/issues" + }, "description": "Tools for working with sourceMappingURL comments.", + "devDependencies": { + "expect.js": "~0.3.1", + "jshint": "~2.4.3", + "mocha": "~1.17.1" + }, + "homepage": "https://github.com/lydell/source-map-url#readme", "keywords": [ "source map", "sourceMappingURL", "comment", "annotation" ], + "license": "MIT", "main": "source-map-url.js", - "repository": "lydell/source-map-url", + "name": "source-map-url", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/source-map-url.git" + }, "scripts": { "lint": "jshint source-map-url.js test/ ", - "unit": "mocha", - "test": "npm run lint && npm run unit" - }, - "devDependencies": { - "mocha": "~1.17.1", - "expect.js": "~0.3.1", - "jshint": "~2.4.3" + "test": "npm run lint && npm run unit", + "unit": "mocha" }, "testling": { "harness": "mocha", @@ -35,5 +71,6 @@ "iphone/6", "android-browser/4" ] - } + }, + "version": "0.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/source-map/package.json index 048e3ae86..ad0ea85d1 100644 --- a/admin/vue2/element-admin-v3/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/source-map/package.json @@ -1,52 +1,199 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.5.7", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.5.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "source-map@0.5.7", + "_id": "source-map@0.5.7", + "_inBundle": false, + "_integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "_location": "/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.5.7", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.5.7", + "saveSpec": null, + "fetchSpec": "0.5.7" + }, + "_requiredBy": [ + "/@babel/generator", + "/babel-core", + "/babel-generator", + "/pug-html-loader/uglify-js", + "/snapdragon", + "/source-map-support", + "/svg-baker/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "_spec": "0.5.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "lib/", @@ -55,18 +202,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.5.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdx-correct/package.json b/admin/vue2/element-admin-v3/node_modules/spdx-correct/package.json index 35c68bdaa..643f4caeb 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdx-correct/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdx-correct/package.json @@ -1,18 +1,65 @@ { - "name": "spdx-correct", - "description": "correct invalid SPDX expressions", - "version": "3.1.1", - "author": "Kyle E. Mitchell (https://kemitchell.com)", + "_args": [ + [ + "spdx-correct@3.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "spdx-correct@3.1.1", + "_id": "spdx-correct@3.1.1", + "_inBundle": false, + "_integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "_location": "/spdx-correct", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "spdx-correct@3.1.1", + "name": "spdx-correct", + "escapedName": "spdx-correct", + "rawSpec": "3.1.1", + "saveSpec": null, + "fetchSpec": "3.1.1" + }, + "_requiredBy": [ + "/validate-npm-package-license" + ], + "_resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", + "_spec": "3.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + "bugs": { + "url": "https://github.com/jslicense/spdx-correct.js/issues" + }, "contributors": [ - "Kyle E. Mitchell (https://kemitchell.com)", - "Christian Zommerfelds ", - "Tal Einat ", - "Dan Butvinik " + { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + { + "name": "Christian Zommerfelds", + "email": "aero_super@yahoo.com" + }, + { + "name": "Tal Einat", + "email": "taleinat@gmail.com" + }, + { + "name": "Dan Butvinik", + "email": "butvinik@outlook.com" + } ], "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" }, + "description": "correct invalid SPDX expressions", "devDependencies": { "defence-cli": "^2.0.1", "replace-require-self": "^1.0.0", @@ -23,6 +70,7 @@ "files": [ "index.js" ], + "homepage": "https://github.com/jslicense/spdx-correct.js#readme", "keywords": [ "SPDX", "law", @@ -31,9 +79,14 @@ "metadata" ], "license": "Apache-2.0", - "repository": "jslicense/spdx-correct.js", + "name": "spdx-correct", + "repository": { + "type": "git", + "url": "git+https://github.com/jslicense/spdx-correct.js.git" + }, "scripts": { "lint": "standard && standard-markdown README.md", "test": "defence README.md | replace-require-self | node && node test.js" - } + }, + "version": "3.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdx-exceptions/package.json b/admin/vue2/element-admin-v3/node_modules/spdx-exceptions/package.json index 2bafc6a38..f8642c7eb 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdx-exceptions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdx-exceptions/package.json @@ -1,17 +1,59 @@ { - "name": "spdx-exceptions", - "description": "list of SPDX standard license exceptions", - "version": "2.3.0", - "author": "The Linux Foundation", + "_args": [ + [ + "spdx-exceptions@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "spdx-exceptions@2.3.0", + "_id": "spdx-exceptions@2.3.0", + "_inBundle": false, + "_integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "_location": "/spdx-exceptions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "spdx-exceptions@2.3.0", + "name": "spdx-exceptions", + "escapedName": "spdx-exceptions", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/spdx-expression-parse" + ], + "_resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "The Linux Foundation" + }, + "bugs": { + "url": "https://github.com/kemitchell/spdx-exceptions.json/issues" + }, "contributors": [ - "Kyle E. Mitchell (https://kemitchell.com/)" + { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com/" + } ], - "license": "CC-BY-3.0", - "repository": "kemitchell/spdx-exceptions.json", + "description": "list of SPDX standard license exceptions", "files": [ "index.json" ], + "homepage": "https://github.com/kemitchell/spdx-exceptions.json#readme", + "license": "CC-BY-3.0", + "name": "spdx-exceptions", + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/spdx-exceptions.json.git" + }, "scripts": { "build": "node build.js" - } + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdx-expression-parse/package.json b/admin/vue2/element-admin-v3/node_modules/spdx-expression-parse/package.json index c9edc9f93..fd01d8377 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdx-expression-parse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdx-expression-parse/package.json @@ -1,23 +1,79 @@ { - "name": "spdx-expression-parse", - "description": "parse SPDX license expressions", - "version": "3.0.1", - "author": "Kyle E. Mitchell (https://kemitchell.com)", - "files": [ - "AUTHORS", - "index.js", - "parse.js", - "scan.js" + "_args": [ + [ + "spdx-expression-parse@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "spdx-expression-parse@3.0.1", + "_id": "spdx-expression-parse@3.0.1", + "_inBundle": false, + "_integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "_location": "/spdx-expression-parse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "spdx-expression-parse@3.0.1", + "name": "spdx-expression-parse", + "escapedName": "spdx-expression-parse", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/spdx-correct", + "/validate-npm-package-license" + ], + "_resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + "bugs": { + "url": "https://github.com/jslicense/spdx-expression-parse.js/issues" + }, + "contributors": [ + { + "name": "C. Scott Ananian", + "email": "cscott@cscott.net", + "url": "http://cscott.net" + }, + { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + { + "name": "Shinnosuke Watanabe", + "email": "snnskwtnb@gmail.com" + }, + { + "name": "Antoine Motet", + "email": "antoine.motet@gmail.com" + } ], "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" }, + "description": "parse SPDX license expressions", "devDependencies": { "defence-cli": "^3.0.1", "replace-require-self": "^1.0.0", "standard": "^14.1.0" }, + "files": [ + "AUTHORS", + "index.js", + "parse.js", + "scan.js" + ], + "homepage": "https://github.com/jslicense/spdx-expression-parse.js#readme", "keywords": [ "SPDX", "law", @@ -29,11 +85,16 @@ "standards" ], "license": "MIT", - "repository": "jslicense/spdx-expression-parse.js", + "name": "spdx-expression-parse", + "repository": { + "type": "git", + "url": "git+https://github.com/jslicense/spdx-expression-parse.js.git" + }, "scripts": { "lint": "standard", + "test": "npm run test:suite && npm run test:readme", "test:readme": "defence -i javascript README.md | replace-require-self | node", - "test:suite": "node test.js", - "test": "npm run test:suite && npm run test:readme" - } + "test:suite": "node test.js" + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdx-license-ids/package.json b/admin/vue2/element-admin-v3/node_modules/spdx-license-ids/package.json index 5639091b8..5cf357144 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdx-license-ids/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdx-license-ids/package.json @@ -1,40 +1,80 @@ { - "name": "spdx-license-ids", - "version": "3.0.9", - "description": "A list of SPDX license identifiers", - "repository": "jslicense/spdx-license-ids", - "author": "Shinnosuke Watanabe (https://github.com/shinnn)", - "license": "CC0-1.0", - "scripts": { - "build": "node build.js", - "pretest": "eslint .", - "latest": "node latest.js", - "test": "node test.js" - }, - "files": [ - "deprecated.json", - "index.json" - ], - "keywords": [ - "spdx", - "license", - "licenses", - "id", - "identifier", - "identifiers", - "json", - "array", - "oss" - ], - "devDependencies": { - "@shinnn/eslint-config": "^6.8.7", - "chalk": "^2.4.1", - "eslint": "^5.10.0", - "get-spdx-license-ids": "^2.1.0", - "rmfr": "^2.0.0", - "tape": "^4.9.1" - }, - "eslintConfig": { - "extends": "@shinnn" - } + "_args": [ + [ + "spdx-license-ids@3.0.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "spdx-license-ids@3.0.9", + "_id": "spdx-license-ids@3.0.9", + "_inBundle": false, + "_integrity": "sha1-illRNd75WSvaaXCUdPHL7qfCRn8=", + "_location": "/spdx-license-ids", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "spdx-license-ids@3.0.9", + "name": "spdx-license-ids", + "escapedName": "spdx-license-ids", + "rawSpec": "3.0.9", + "saveSpec": null, + "fetchSpec": "3.0.9" + }, + "_requiredBy": [ + "/spdx-correct", + "/spdx-expression-parse" + ], + "_resolved": "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.9.tgz?cache=0&sync_timestamp=1621652583280&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.9.tgz", + "_spec": "3.0.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Shinnosuke Watanabe", + "url": "https://github.com/shinnn" + }, + "bugs": { + "url": "https://github.com/jslicense/spdx-license-ids/issues" + }, + "description": "A list of SPDX license identifiers", + "devDependencies": { + "@shinnn/eslint-config": "^6.8.7", + "chalk": "^2.4.1", + "eslint": "^5.10.0", + "get-spdx-license-ids": "^2.1.0", + "rmfr": "^2.0.0", + "tape": "^4.9.1" + }, + "eslintConfig": { + "extends": "@shinnn" + }, + "files": [ + "deprecated.json", + "index.json" + ], + "homepage": "https://github.com/jslicense/spdx-license-ids#readme", + "keywords": [ + "spdx", + "license", + "licenses", + "id", + "identifier", + "identifiers", + "json", + "array", + "oss" + ], + "license": "CC0-1.0", + "name": "spdx-license-ids", + "repository": { + "type": "git", + "url": "git+https://github.com/jslicense/spdx-license-ids.git" + }, + "scripts": { + "build": "node build.js", + "latest": "node latest.js", + "pretest": "eslint .", + "test": "node test.js" + }, + "version": "3.0.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/debug/package.json index da809d2b8..1445db189 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/debug/package.json @@ -1,38 +1,59 @@ { - "name": "debug", - "version": "4.3.1", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@4.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "LICENSE", - "README.md" + "_from": "debug@4.3.1", + "_id": "debug@4.3.1", + "_inBundle": false, + "_integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "_location": "/spdy-transport/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@4.3.1", + "name": "debug", + "escapedName": "debug", + "rawSpec": "4.3.1", + "saveSpec": null, + "fetchSpec": "4.3.1" + }, + "_requiredBy": [ + "/spdy-transport" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "_spec": "4.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne ", - "Josh Junon " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "Josh Junon", + "email": "josh@junon.me" + } ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "istanbul cover _mocha -- test.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, "dependencies": { "ms": "2.1.2" }, + "description": "small debugging utility", "devDependencies": { "brfs": "^2.0.1", "browserify": "^16.2.3", @@ -46,14 +67,38 @@ "mocha-lcov-reporter": "^1.2.0", "xo": "^0.23.0" }, + "engines": { + "node": ">=6.0" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", "peerDependenciesMeta": { "supports-color": { "optional": true } }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - } + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls", + "test:node": "istanbul cover _mocha -- test.js" + }, + "version": "4.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/ms/package.json index eea666e1f..d88c3ae93 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/ms/package.json @@ -1,16 +1,42 @@ { - "name": "ms", - "version": "2.1.2", - "description": "Tiny millisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.2", + "_id": "ms@2.1.2", + "_inBundle": false, + "_integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "_location": "/spdy-transport/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.2", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/spdy-transport/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +45,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,12 +57,16 @@ "git add" ] }, - "license": "MIT", - "devDependencies": { - "eslint": "4.12.1", - "expect.js": "0.3.1", - "husky": "0.14.3", - "lint-staged": "5.0.0", - "mocha": "4.0.1" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/readable-stream/package.json b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/readable-stream/package.json index 0b0c4bd20..4de308789 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/readable-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/readable-stream/package.json @@ -1,16 +1,49 @@ { - "name": "readable-stream", - "version": "3.6.0", - "description": "Streams3, a user-land copy of the stream library from Node.js", - "main": "readable.js", - "engines": { - "node": ">= 6" + "_args": [ + [ + "readable-stream@3.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "readable-stream@3.6.0", + "_id": "readable-stream@3.6.0", + "_inBundle": false, + "_integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "_location": "/spdy-transport/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readable-stream@3.6.0", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "3.6.0", + "saveSpec": null, + "fetchSpec": "3.6.0" + }, + "_requiredBy": [ + "/spdy-transport" + ], + "_resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "_spec": "3.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": { + "util": false, + "worker_threads": false, + "./errors": "./errors-browser.js", + "./readable.js": "./readable-browser.js", + "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" }, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, + "description": "Streams3, a user-land copy of the stream library from Node.js", "devDependencies": { "@babel/cli": "^7.2.0", "@babel/core": "^7.2.0", @@ -33,36 +66,35 @@ "tar-fs": "^1.16.2", "util-promisify": "^2.1.0" }, - "scripts": { - "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", - "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", - "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", - "test-browser-local": "airtap --open --local -- test/browser.js", - "cover": "nyc npm test", - "report": "nyc report --reporter=lcov", - "update-browser-errors": "babel -o errors-browser.js errors.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/readable-stream" + "engines": { + "node": ">= 6" }, + "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ "readable", "stream", "pipe" ], - "browser": { - "util": false, - "worker_threads": false, - "./errors": "./errors-browser.js", - "./readable.js": "./readable-browser.js", - "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js", - "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" - }, + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", "nyc": { "include": [ "lib/**.js" ] }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js", + "test-browser-local": "airtap --open --local -- test/browser.js", + "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js", + "update-browser-errors": "babel -o errors-browser.js errors.js" + }, + "version": "3.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/safe-buffer/package.json b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/safe-buffer/package.json index f2869e256..e73adc052 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/safe-buffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/safe-buffer/package.json @@ -1,7 +1,32 @@ { - "name": "safe-buffer", - "description": "Safer Node.js Buffer API", - "version": "5.2.1", + "_args": [ + [ + "safe-buffer@5.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "safe-buffer@5.2.1", + "_id": "safe-buffer@5.2.1", + "_inBundle": false, + "_integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "_location": "/spdy-transport/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.2.1", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.2.1", + "saveSpec": null, + "fetchSpec": "5.2.1" + }, + "_requiredBy": [ + "/spdy-transport/string_decoder" + ], + "_resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "_spec": "5.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -10,10 +35,25 @@ "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, + "description": "Safer Node.js Buffer API", "devDependencies": { "standard": "*", "tape": "^5.0.0" }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "homepage": "https://github.com/feross/safe-buffer", "keywords": [ "buffer", @@ -26,7 +66,7 @@ ], "license": "MIT", "main": "index.js", - "types": "index.d.ts", + "name": "safe-buffer", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" @@ -34,18 +74,6 @@ "scripts": { "test": "standard && tape test/*.js" }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "types": "index.d.ts", + "version": "5.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/string_decoder/package.json b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/string_decoder/package.json index b2bb14116..f82426406 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/string_decoder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy-transport/node_modules/string_decoder/package.json @@ -1,28 +1,48 @@ { - "name": "string_decoder", - "version": "1.3.0", - "description": "The string_decoder module from Node core", - "main": "lib/string_decoder.js", - "files": [ - "lib" + "_args": [ + [ + "string_decoder@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "string_decoder@1.3.0", + "_id": "string_decoder@1.3.0", + "_inBundle": false, + "_integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "_location": "/spdy-transport/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string_decoder@1.3.0", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/spdy-transport/readable-stream" ], + "_resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, "dependencies": { "safe-buffer": "~5.2.0" }, + "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "core-util-is": "^1.0.2", "inherits": "^2.0.3", "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/parallel/*.js && node test/verify-dependencies", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/string_decoder.git" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/nodejs/string_decoder", "keywords": [ "string", @@ -30,5 +50,16 @@ "browser", "browserify" ], - "license": "MIT" + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy-transport/package.json b/admin/vue2/element-admin-v3/node_modules/spdy-transport/package.json index e3facee0f..80af0413e 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy-transport/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy-transport/package.json @@ -1,20 +1,42 @@ { - "name": "spdy-transport", - "version": "3.0.0", - "main": "lib/spdy-transport", - "description": "SPDY v2, v3, v3.1 and HTTP2 transport", - "license": "MIT", - "keywords": [ - "spdy", - "http2", - "transport" + "_args": [ + [ + "spdy-transport@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/spdy-http2/spdy-transport.git" + "_from": "spdy-transport@3.0.0", + "_id": "spdy-transport@3.0.0", + "_inBundle": false, + "_integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", + "_location": "/spdy-transport", + "_phantomChildren": { + "inherits": "2.0.4", + "util-deprecate": "1.0.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "spdy-transport@3.0.0", + "name": "spdy-transport", + "escapedName": "spdy-transport", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/spdy" + ], + "_resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/spdy-http2/spdy-transport/issues" }, - "homepage": "https://github.com/spdy-http2/spdy-transport", - "author": "Fedor Indutny ", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -23,6 +45,7 @@ "readable-stream": "^3.0.6", "wbuf": "^1.7.3" }, + "description": "SPDY v2, v3, v3.1 and HTTP2 transport", "devDependencies": { "async": "^2.6.1", "istanbul": "^0.4.5", @@ -31,13 +54,27 @@ "standard": "^12.0.1", "stream-pair": "^1.0.3" }, - "scripts": { - "lint": "standard", - "test": "mocha --reporter=spec test/**/*-test.js test/**/**/*-test.js", - "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js test/**/**/*-test.js" - }, + "homepage": "https://github.com/spdy-http2/spdy-transport", + "keywords": [ + "spdy", + "http2", + "transport" + ], + "license": "MIT", + "main": "lib/spdy-transport", + "name": "spdy-transport", "pre-commit": [ "lint", "test" - ] + ], + "repository": { + "type": "git", + "url": "git://github.com/spdy-http2/spdy-transport.git" + }, + "scripts": { + "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js test/**/**/*-test.js", + "lint": "standard", + "test": "mocha --reporter=spec test/**/*-test.js test/**/**/*-test.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/debug/package.json index da809d2b8..d985c66ff 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/debug/package.json @@ -1,38 +1,59 @@ { - "name": "debug", - "version": "4.3.1", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@4.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "LICENSE", - "README.md" + "_from": "debug@4.3.1", + "_id": "debug@4.3.1", + "_inBundle": false, + "_integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "_location": "/spdy/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@4.3.1", + "name": "debug", + "escapedName": "debug", + "rawSpec": "4.3.1", + "saveSpec": null, + "fetchSpec": "4.3.1" + }, + "_requiredBy": [ + "/spdy" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "_spec": "4.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne ", - "Josh Junon " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "Josh Junon", + "email": "josh@junon.me" + } ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "istanbul cover _mocha -- test.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, "dependencies": { "ms": "2.1.2" }, + "description": "small debugging utility", "devDependencies": { "brfs": "^2.0.1", "browserify": "^16.2.3", @@ -46,14 +67,38 @@ "mocha-lcov-reporter": "^1.2.0", "xo": "^0.23.0" }, + "engines": { + "node": ">=6.0" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", "peerDependenciesMeta": { "supports-color": { "optional": true } }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - } + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls", + "test:node": "istanbul cover _mocha -- test.js" + }, + "version": "4.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/ms/package.json index eea666e1f..6cbb7fa3d 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy/node_modules/ms/package.json @@ -1,16 +1,42 @@ { - "name": "ms", - "version": "2.1.2", - "description": "Tiny millisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.2", + "_id": "ms@2.1.2", + "_inBundle": false, + "_integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "_location": "/spdy/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.2", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/spdy/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +45,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,12 +57,16 @@ "git add" ] }, - "license": "MIT", - "devDependencies": { - "eslint": "4.12.1", - "expect.js": "0.3.1", - "husky": "0.14.3", - "lint-staged": "5.0.0", - "mocha": "4.0.1" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/spdy/package.json b/admin/vue2/element-admin-v3/node_modules/spdy/package.json index 2f7cd9db7..b41ad7fdc 100644 --- a/admin/vue2/element-admin-v3/node_modules/spdy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/spdy/package.json @@ -1,37 +1,63 @@ { - "name": "spdy", - "version": "4.0.2", - "description": "Implementation of the SPDY protocol on node.js.", - "license": "MIT", - "scripts": { - "lint": "standard", - "test": "mocha --reporter=spec test/*-test.js", - "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js" - }, - "pre-commit": [ - "lint", - "test" + "_args": [ + [ + "spdy@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "spdy" + "_from": "spdy@4.0.2", + "_id": "spdy@4.0.2", + "_inBundle": false, + "_integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", + "_location": "/spdy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "spdy@4.0.2", + "name": "spdy", + "escapedName": "spdy", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/webpack-dev-server" ], - "repository": { - "type": "git", - "url": "git://github.com/indutny/node-spdy.git" + "_resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970491493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor.indutny@gmail.com" }, - "homepage": "https://github.com/indutny/node-spdy", "bugs": { - "email": "node-spdy+bugs@indutny.com", - "url": "https://github.com/spdy-http2/node-spdy/issues" + "url": "https://github.com/spdy-http2/node-spdy/issues", + "email": "node-spdy+bugs@indutny.com" }, - "author": "Fedor Indutny ", "contributors": [ - "Chris Storm ", - "François de Metz ", - "Ilya Grigorik ", - "Roberto Peon", - "Tatsuhiro Tsujikawa", - "Jesse Cravens " + { + "name": "Chris Storm", + "email": "github@eeecooks.com" + }, + { + "name": "François de Metz", + "email": "francois@2metz.fr" + }, + { + "name": "Ilya Grigorik", + "email": "ilya@igvita.com" + }, + { + "name": "Roberto Peon" + }, + { + "name": "Tatsuhiro Tsujikawa" + }, + { + "name": "Jesse Cravens", + "email": "jesse.cravens@gmail.com" + } ], "dependencies": { "debug": "^4.1.0", @@ -40,6 +66,7 @@ "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" }, + "description": "Implementation of the SPDY protocol on node.js.", "devDependencies": { "istanbul": "^0.4.5", "mocha": "^6.2.3", @@ -49,6 +76,26 @@ "engines": { "node": ">=6.0.0" }, + "homepage": "https://github.com/indutny/node-spdy", + "keywords": [ + "spdy" + ], + "license": "MIT", "main": "./lib/spdy", - "optionalDependencies": {} + "name": "spdy", + "optionalDependencies": {}, + "pre-commit": [ + "lint", + "test" + ], + "repository": { + "type": "git", + "url": "git://github.com/indutny/node-spdy.git" + }, + "scripts": { + "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js", + "lint": "standard", + "test": "mocha --reporter=spec test/*-test.js" + }, + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/split-string/package.json b/admin/vue2/element-admin-v3/node_modules/split-string/package.json index 8f490a245..772d0ed37 100644 --- a/admin/vue2/element-admin-v3/node_modules/split-string/package.json +++ b/admin/vue2/element-admin-v3/node_modules/split-string/package.json @@ -1,41 +1,81 @@ { - "name": "split-string", - "description": "Split a string on a character except when the character is escaped.", - "version": "3.1.0", - "homepage": "https://github.com/jonschlinkert/split-string", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "split-string@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/split-string", - "bugs": { - "url": "https://github.com/jonschlinkert/split-string/issues" + "_from": "split-string@3.1.0", + "_id": "split-string@3.1.0", + "_inBundle": false, + "_integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "_location": "/split-string", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "split-string@3.1.0", + "name": "split-string", + "escapedName": "split-string", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/braces", + "/set-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/split-string/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "extend-shallow": "^3.0.0" }, + "description": "Split a string on a character except when the character is escaped.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/split-string", "keywords": [ "character", "escape", "split", "string" ], + "license": "MIT", + "main": "index.js", + "name": "split-string", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/split-string.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -61,5 +101,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/sprintf-js/package.json b/admin/vue2/element-admin-v3/node_modules/sprintf-js/package.json index 75f7eca71..560f93775 100644 --- a/admin/vue2/element-admin-v3/node_modules/sprintf-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sprintf-js/package.json @@ -1,22 +1,58 @@ { + "_args": [ + [ + "sprintf-js@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "sprintf-js@1.0.3", + "_id": "sprintf-js@1.0.3", + "_inBundle": false, + "_integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "_location": "/sprintf-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sprintf-js@1.0.3", "name": "sprintf-js", - "version": "1.0.3", - "description": "JavaScript sprintf implementation", - "author": "Alexandru Marasteanu (http://alexei.ro/)", - "main": "src/sprintf.js", - "scripts": { - "test": "mocha test/test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/alexei/sprintf.js.git" - }, - "license": "BSD-3-Clause", - "readmeFilename": "README.md", - "devDependencies": { - "mocha": "*", - "grunt": "*", - "grunt-contrib-watch": "*", - "grunt-contrib-uglify": "*" - } + "escapedName": "sprintf-js", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/argparse" + ], + "_resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Alexandru Marasteanu", + "email": "hello@alexei.ro", + "url": "http://alexei.ro/" + }, + "bugs": { + "url": "https://github.com/alexei/sprintf.js/issues" + }, + "description": "JavaScript sprintf implementation", + "devDependencies": { + "grunt": "*", + "grunt-contrib-uglify": "*", + "grunt-contrib-watch": "*", + "mocha": "*" + }, + "homepage": "https://github.com/alexei/sprintf.js#readme", + "license": "BSD-3-Clause", + "main": "src/sprintf.js", + "name": "sprintf-js", + "repository": { + "type": "git", + "url": "git+https://github.com/alexei/sprintf.js.git" + }, + "scripts": { + "test": "mocha test/test.js" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/ssf/package.json b/admin/vue2/element-admin-v3/node_modules/ssf/package.json index 4fcf03990..7ade9e839 100644 --- a/admin/vue2/element-admin-v3/node_modules/ssf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ssf/package.json @@ -1,57 +1,87 @@ { - "name": "ssf", - "version": "0.11.2", - "author": "sheetjs", - "description": "Format data using ECMA-376 spreadsheet Format Codes", - "keywords": [ - "format", - "sprintf", - "spreadsheet" - ], - "main": "./ssf", - "types": "types", - "dependencies": { - "frac":"~1.1.2" - }, - "devDependencies": { - "@sheetjs/uglify-js":"~2.7.3", - "@types/node":"^8.0.7", - "blanket": "~1.2.3", - "dtslint": "^0.1.2", - "mocha": "~2.5.3", - "typescript": "2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/ssf.git" - }, - "scripts": { - "test": "make test", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "ssf.js" - } - }, - "alex": { - "allow": [ - "special", - "simple", - "just", - "crash", - "wtf", - "holes" - ] - }, - "homepage": "http://sheetjs.com/", - "bugs": { - "url": "https://github.com/SheetJS/ssf/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "ssf@0.11.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ssf@0.11.2", + "_id": "ssf@0.11.2", + "_inBundle": false, + "_integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "_location": "/ssf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ssf@0.11.2", + "name": "ssf", + "escapedName": "ssf", + "rawSpec": "0.11.2", + "saveSpec": null, + "fetchSpec": "0.11.2" + }, + "_requiredBy": [ + "/xlsx" + ], + "_resolved": "https://registry.npmmirror.com/ssf/download/ssf-0.11.2.tgz", + "_spec": "0.11.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "alex": { + "allow": [ + "special", + "simple", + "just", + "crash", + "wtf", + "holes" + ] + }, + "author": { + "name": "sheetjs" + }, + "bugs": { + "url": "https://github.com/SheetJS/ssf/issues" + }, + "config": { + "blanket": { + "pattern": "ssf.js" + } + }, + "dependencies": { + "frac": "~1.1.2" + }, + "description": "Format data using ECMA-376 spreadsheet Format Codes", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.0.7", + "blanket": "~1.2.3", + "dtslint": "^0.1.2", + "mocha": "~2.5.3", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "homepage": "http://sheetjs.com/", + "keywords": [ + "format", + "sprintf", + "spreadsheet" + ], + "license": "Apache-2.0", + "main": "./ssf", + "name": "ssf", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/ssf.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "test": "make test" + }, + "types": "types", + "version": "0.11.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/sshpk/package.json b/admin/vue2/element-admin-v3/node_modules/sshpk/package.json index cc78787f8..cc9b36645 100644 --- a/admin/vue2/element-admin-v3/node_modules/sshpk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/sshpk/package.json @@ -1,16 +1,44 @@ { - "name": "sshpk", - "version": "1.16.1", - "description": "A library for finding and using SSH public keys", - "main": "lib/index.js", - "scripts": { - "test": "tape test/*.js" + "_args": [ + [ + "sshpk@1.16.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "sshpk@1.16.1", + "_id": "sshpk@1.16.1", + "_inBundle": false, + "_integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "_location": "/sshpk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sshpk@1.16.1", + "name": "sshpk", + "escapedName": "sshpk", + "rawSpec": "1.16.1", + "saveSpec": null, + "fetchSpec": "1.16.1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/joyent/node-sshpk.git" + "_requiredBy": [ + "/http-signature" + ], + "_resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "_spec": "1.16.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Joyent, Inc" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "bugs": { + "url": "https://github.com/arekinath/node-sshpk/issues" }, - "author": "Joyent, Inc", "contributors": [ { "name": "Dave Eddy", @@ -25,36 +53,48 @@ "email": "alex@cooperi.net" } ], - "license": "MIT", - "bugs": { - "url": "https://github.com/arekinath/node-sshpk/issues" - }, - "engines": { - "node": ">=0.10.0" - }, - "directories": { - "bin": "./bin", - "lib": "./lib", - "man": "./man/man1" - }, - "homepage": "https://github.com/arekinath/node-sshpk#readme", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", - "safer-buffer": "^2.0.2", "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0", - "ecc-jsbn": "~0.1.1", - "bcrypt-pbkdf": "^1.0.0" - }, - "optionalDependencies": { + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" }, + "description": "A library for finding and using SSH public keys", "devDependencies": { - "tape": "^3.5.0", "benchmark": "^1.0.0", "sinon": "^1.17.2", + "tape": "^3.5.0", "temp": "^0.8.2" - } + }, + "directories": { + "bin": "./bin", + "lib": "./lib", + "man": "./man/man1" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/arekinath/node-sshpk#readme", + "license": "MIT", + "main": "lib/index.js", + "man": [ + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3\\node_modules\\sshpk\\man\\man1\\sshpk-conv.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3\\node_modules\\sshpk\\man\\man1\\sshpk-sign.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3\\node_modules\\sshpk\\man\\man1\\sshpk-verify.1" + ], + "name": "sshpk", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/joyent/node-sshpk.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.16.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ssri/package.json b/admin/vue2/element-admin-v3/node_modules/ssri/package.json index 2973d233f..b92f207a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/ssri/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ssri/package.json @@ -1,21 +1,63 @@ { - "name": "ssri", - "version": "5.3.0", + "_args": [ + [ + "ssri@5.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ssri@5.3.0", + "_id": "ssri@5.3.0", + "_inBundle": false, + "_integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "_location": "/ssri", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ssri@5.3.0", + "name": "ssri", + "escapedName": "ssri", + "rawSpec": "5.3.0", + "saveSpec": null, + "fetchSpec": "5.3.0" + }, + "_requiredBy": [ + "/cacache" + ], + "_resolved": "https://registry.nlark.com/ssri/download/ssri-5.3.0.tgz?cache=0&sync_timestamp=1621364668574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-5.3.0.tgz", + "_spec": "5.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kat Marchán", + "email": "kzm@sykosomatic.org" + }, + "bugs": { + "url": "https://github.com/zkat/ssri/issues" + }, + "config": { + "nyc": { + "exclude": [ + "node_modules/**", + "test/**" + ] + } + }, + "dependencies": { + "safe-buffer": "^5.1.1" + }, "description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.", - "main": "index.js", + "devDependencies": { + "nyc": "^11.4.1", + "standard": "^10.0.3", + "standard-version": "^4.3.0", + "tap": "^11.1.0", + "weallbehave": "^1.2.0", + "weallcontribute": "^1.0.8" + }, "files": [ "*.js" ], - "scripts": { - "prerelease": "npm t", - "postrelease": "npm publish && git push --follow-tags", - "pretest": "standard", - "release": "standard-version -s", - "test": "tap -J --coverage test/*.js", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" - }, - "repository": "https://github.com/zkat/ssri", + "homepage": "https://github.com/zkat/ssri#readme", "keywords": [ "w3c", "web", @@ -30,29 +72,21 @@ "sri generator", "html" ], - "author": { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org", - "twitter": "maybekatz" - }, "license": "ISC", - "dependencies": { - "safe-buffer": "^5.1.1" + "main": "index.js", + "name": "ssri", + "repository": { + "type": "git", + "url": "git+https://github.com/zkat/ssri.git" }, - "devDependencies": { - "nyc": "^11.4.1", - "standard": "^10.0.3", - "standard-version": "^4.3.0", - "tap": "^11.1.0", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" + "scripts": { + "postrelease": "npm publish && git push --follow-tags", + "prerelease": "npm t", + "pretest": "standard", + "release": "standard-version -s", + "test": "tap -J --coverage test/*.js", + "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", + "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "config": { - "nyc": { - "exclude": [ - "node_modules/**", - "test/**" - ] - } - } + "version": "5.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/stable/package.json b/admin/vue2/element-admin-v3/node_modules/stable/package.json index e3f01addb..6bd3ed012 100644 --- a/admin/vue2/element-admin-v3/node_modules/stable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stable/package.json @@ -1,58 +1,105 @@ { + "_args": [ + [ + "stable@0.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "stable@0.1.8", + "_id": "stable@0.1.8", + "_inBundle": false, + "_integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", + "_location": "/stable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stable@0.1.8", "name": "stable", - "version": "0.1.8", - "keywords": [ - "stable", - "array", - "sort" - ], - "description": "A stable array sort for JavaScript", - "repository": { - "type": "git", - "url": "https://github.com/Two-Screen/stable.git" + "escapedName": "stable", + "rawSpec": "0.1.8", + "saveSpec": null, + "fetchSpec": "0.1.8" + }, + "_requiredBy": [ + "/svgo" + ], + "_resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "_spec": "0.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Angry Bytes", + "email": "info@angrybytes.com" + }, + "bugs": { + "url": "https://github.com/Two-Screen/stable/issues" + }, + "contributors": [ + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com" }, - "main": "./stable.js", - "types": "./index.d.ts", - "files": [ - "stable.js", - "stable.min.js", - "index.d.ts" - ], - "devDependencies": { - "rollup": "^0.57.1", - "standard": "^11.0.1", - "tape": "^4.6.3", - "uglify-js": "^3.3.21" + { + "name": "Mattias Buelens", + "email": "mattias@buelens.com" }, - "scripts": { - "test": "standard src/ && node ./src/test.js", - "prepare": "npm run build && npm run minify", - "build": "rollup -c", - "minify": "uglifyjs --comments \"/^!/\" -c -m -o ./stable.min.js ./stable.js" + { + "name": "Stéphan Kochen", + "email": "stephan@angrybytes.com" }, - "testling": { - "files": "./src/test.js", - "browsers": [ - "ie6", - "ie7", - "ie8", - "ie9", - "ie10", - "firefox/25", - "chrome/31", - "safari/6.0", - "opera/12.0", - "opera/17.0", - "iphone/6.0", - "android-browser/4.2" - ] - }, - "author": "Angry Bytes ", - "contributors": [ - "Domenic Denicola ", - "Mattias Buelens ", - "Stéphan Kochen ", - "Yaffle" - ], - "license": "MIT" + { + "name": "Yaffle" + } + ], + "description": "A stable array sort for JavaScript", + "devDependencies": { + "rollup": "^0.57.1", + "standard": "^11.0.1", + "tape": "^4.6.3", + "uglify-js": "^3.3.21" + }, + "files": [ + "stable.js", + "stable.min.js", + "index.d.ts" + ], + "homepage": "https://github.com/Two-Screen/stable#readme", + "keywords": [ + "stable", + "array", + "sort" + ], + "license": "MIT", + "main": "./stable.js", + "name": "stable", + "repository": { + "type": "git", + "url": "git+https://github.com/Two-Screen/stable.git" + }, + "scripts": { + "build": "rollup -c", + "minify": "uglifyjs --comments \"/^!/\" -c -m -o ./stable.min.js ./stable.js", + "prepare": "npm run build && npm run minify", + "test": "standard src/ && node ./src/test.js" + }, + "testling": { + "files": "./src/test.js", + "browsers": [ + "ie6", + "ie7", + "ie8", + "ie9", + "ie10", + "firefox/25", + "chrome/31", + "safari/6.0", + "opera/12.0", + "opera/17.0", + "iphone/6.0", + "android-browser/4.2" + ] + }, + "types": "./index.d.ts", + "version": "0.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/stackframe/package.json b/admin/vue2/element-admin-v3/node_modules/stackframe/package.json index 323924c83..2f39c8253 100644 --- a/admin/vue2/element-admin-v3/node_modules/stackframe/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stackframe/package.json @@ -1,24 +1,37 @@ { - "name": "stackframe", - "description": "JS Object representation of a stack frame", - "maintainers": [ - "Eric Wendelin (https://www.eriwen.com)", - "Victor Homyakov (https://github.com/victor-homyakov)", - "Oliver Salzburg (https://github.com/oliversalzburg)" + "_args": [ + [ + "stackframe@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "1.2.0", - "license": "MIT", - "keywords": [ - "stacktrace", - "error", - "debugger", - "stack frame" + "_development": true, + "_from": "stackframe@1.2.0", + "_id": "stackframe@1.2.0", + "_inBundle": false, + "_integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", + "_location": "/stackframe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stackframe@1.2.0", + "name": "stackframe", + "escapedName": "stackframe", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/error-stack-parser" ], - "homepage": "https://www.stacktracejs.com", - "repository": { - "type": "git", - "url": "git://github.com/stacktracejs/stackframe.git" + "_resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/stacktracejs/stackframe/issues" }, + "description": "JS Object representation of a stack frame", "devDependencies": { "eslint": "^6.8.0", "jasmine": "^3.5.0", @@ -37,15 +50,42 @@ "karma-spec-reporter": "0.0.32", "uglify-es": "^3.3.9" }, - "bugs": { - "url": "https://github.com/stacktracejs/stackframe/issues" - }, + "homepage": "https://www.stacktracejs.com", + "keywords": [ + "stacktrace", + "error", + "debugger", + "stack frame" + ], + "license": "MIT", "main": "./stackframe.js", + "maintainers": [ + { + "name": "Eric Wendelin", + "email": "me@eriwen.com", + "url": "https://www.eriwen.com" + }, + { + "name": "Victor Homyakov", + "email": "vkhomyackov@gmail.com", + "url": "https://github.com/victor-homyakov" + }, + { + "name": "Oliver Salzburg", + "url": "https://github.com/oliversalzburg" + } + ], + "name": "stackframe", + "repository": { + "type": "git", + "url": "git://github.com/stacktracejs/stackframe.git" + }, "scripts": { "lint": "eslint --fix .", + "prepare": "cp stackframe.js dist/ && uglifyjs stackframe.js -o dist/stackframe.min.js --compress --mangle --source-map \"url=stackframe.min.js.map\"", "test": "karma start karma.conf.js --single-run", - "test-pr": "karma start karma.conf.js --single-run --browsers Firefox,Chrome_Travis", "test-ci": "karma start karma.conf.ci.js --single-run", - "prepare": "cp stackframe.js dist/ && uglifyjs stackframe.js -o dist/stackframe.min.js --compress --mangle --source-map \"url=stackframe.min.js.map\"" - } + "test-pr": "karma start karma.conf.js --single-run --browsers Firefox,Chrome_Travis" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/staged-git-files/package.json b/admin/vue2/element-admin-v3/node_modules/staged-git-files/package.json index c32bf95d1..905c3b24c 100644 --- a/admin/vue2/element-admin-v3/node_modules/staged-git-files/package.json +++ b/admin/vue2/element-admin-v3/node_modules/staged-git-files/package.json @@ -1,34 +1,67 @@ { - "name": "staged-git-files", - "version": "1.1.1", - "devDependencies": { - "should": "~2.0.1", - "mocha": "^2.0.1" - }, - "description": "get a list of staged git files and their status", - "main": "index.js", - "directories": { - "test": "test" + "_args": [ + [ + "staged-git-files@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "staged-git-files@1.1.1", + "_id": "staged-git-files@1.1.1", + "_inBundle": false, + "_integrity": "sha1-N8IhjvDW0mF4sTEHGTCaFqWfj3s=", + "_location": "/staged-git-files", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "staged-git-files@1.1.1", + "name": "staged-git-files", + "escapedName": "staged-git-files", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "scripts": { - "test": "mocha" + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Matthew Chase Whittemore", + "email": "mcwhittemore@gmail.com" }, "bin": { "sgf": "bin/cli.js" }, - "repository": { - "type": "git", - "url": "git://github.com/mcwhittemore/staged-git-files.git" + "bugs": { + "url": "https://github.com/mcwhittemore/staged-git-files/issues" }, + "description": "get a list of staged git files and their status", + "devDependencies": { + "mocha": "^2.0.1", + "should": "~2.0.1" + }, + "directories": { + "test": "test" + }, + "homepage": "https://github.com/mcwhittemore/staged-git-files#readme", "keywords": [ "git", "pre-commit", "post-commit", "hooks" ], - "author": "Matthew Chase Whittemore ", "license": "BSD-2-Clause", - "bugs": { - "url": "https://github.com/mcwhittemore/staged-git-files/issues" - } + "main": "index.js", + "name": "staged-git-files", + "repository": { + "type": "git", + "url": "git://github.com/mcwhittemore/staged-git-files.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/static-extend/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/static-extend/node_modules/define-property/package.json index 43561bf56..ae8d04397 100644 --- a/admin/vue2/element-admin-v3/node_modules/static-extend/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/static-extend/node_modules/define-property/package.json @@ -1,28 +1,54 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "0.2.5", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@0.2.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "define-property@0.2.5", + "_id": "define-property@0.2.5", + "_inBundle": false, + "_integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "_location": "/static-extend/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@0.2.5", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "0.2.5", + "saveSpec": null, + "fetchSpec": "0.2.5" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/static-extend" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "_spec": "0.2.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" + }, + "dependencies": { + "is-descriptor": "^0.1.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "mocha": "*", "should": "^7.0.4" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -35,6 +61,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -45,7 +81,5 @@ ] } }, - "dependencies": { - "is-descriptor": "^0.1.0" - } + "version": "0.2.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/static-extend/package.json b/admin/vue2/element-admin-v3/node_modules/static-extend/package.json index a63ab9500..5ce945c77 100644 --- a/admin/vue2/element-admin-v3/node_modules/static-extend/package.json +++ b/admin/vue2/element-admin-v3/node_modules/static-extend/package.json @@ -1,32 +1,57 @@ { - "name": "static-extend", - "description": "Adds a static `extend` method to a class, to simplify inheritance. Extends the static properties, prototype properties, and descriptors from a `Parent` constructor onto `Child` constructors.", - "version": "0.1.2", - "homepage": "https://github.com/jonschlinkert/static-extend", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/static-extend", - "bugs": { - "url": "https://github.com/jonschlinkert/static-extend/issues" + "_args": [ + [ + "static-extend@0.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "static-extend@0.1.2", + "_id": "static-extend@0.1.2", + "_inBundle": false, + "_integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "_location": "/static-extend", + "_phantomChildren": { + "is-descriptor": "0.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "static-extend@0.1.2", + "name": "static-extend", + "escapedName": "static-extend", + "rawSpec": "0.1.2", + "saveSpec": null, + "fetchSpec": "0.1.2" + }, + "_requiredBy": [ + "/class-utils" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "_spec": "0.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/static-extend/issues" }, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, + "description": "Adds a static `extend` method to a class, to simplify inheritance. Extends the static properties, prototype properties, and descriptors from a `Parent` constructor onto `Child` constructors.", "devDependencies": { "gulp-format-md": "^0.1.9", "mocha": "^2.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/static-extend", "keywords": [ "class", "ctor", @@ -42,6 +67,16 @@ "property", "prototype" ], + "license": "MIT", + "main": "index.js", + "name": "static-extend", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/static-extend.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -59,5 +94,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/statuses/package.json b/admin/vue2/element-admin-v3/node_modules/statuses/package.json index f1637397f..25a7c2243 100644 --- a/admin/vue2/element-admin-v3/node_modules/statuses/package.json +++ b/admin/vue2/element-admin-v3/node_modules/statuses/package.json @@ -1,24 +1,47 @@ { - "name": "statuses", - "description": "HTTP status utility", - "version": "1.3.1", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + "_args": [ + [ + "statuses@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/statuses", - "license": "MIT", - "keywords": [ - "http", - "status", - "code" + "_from": "statuses@1.3.1", + "_id": "statuses@1.3.1", + "_inBundle": false, + "_integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "_location": "/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "statuses@1.3.1", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" + }, + "_requiredBy": [ + "/finalhandler" ], - "files": [ - "HISTORY.md", - "index.js", - "codes.json", - "LICENSE" + "_resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], + "description": "HTTP status utility", "devDependencies": { "csv-parse": "1.1.7", "eslint": "3.10.0", @@ -32,6 +55,24 @@ "engines": { "node": ">= 0.6" }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, "scripts": { "build": "node scripts/build.js", "fetch": "node scripts/fetch.js", @@ -40,5 +81,6 @@ "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", "update": "npm run fetch && npm run build" - } + }, + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/stdout-stream/package.json b/admin/vue2/element-admin-v3/node_modules/stdout-stream/package.json index c6f74d789..4915ab90d 100644 --- a/admin/vue2/element-admin-v3/node_modules/stdout-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stdout-stream/package.json @@ -1,16 +1,52 @@ { - "name": "stdout-stream", + "_args": [ + [ + "stdout-stream@1.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "stdout-stream@1.4.1", + "_id": "stdout-stream@1.4.1", + "_inBundle": false, + "_integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", + "_location": "/stdout-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stdout-stream@1.4.1", + "name": "stdout-stream", + "escapedName": "stdout-stream", + "rawSpec": "1.4.1", + "saveSpec": null, + "fetchSpec": "1.4.1" + }, + "_requiredBy": [ + "/node-sass" + ], + "_resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz", + "_spec": "1.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/mafintosh/stdout-stream/issues" + }, + "dependencies": { + "readable-stream": "^2.0.1" + }, "description": "Non-blocking stdout stream", - "version": "1.4.1", - "repository": "mafintosh/stdout-stream", "devDependencies": { "tape": "~2.12.3" }, + "homepage": "https://github.com/mafintosh/stdout-stream#readme", + "license": "MIT", + "name": "stdout-stream", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/stdout-stream.git" + }, "scripts": { "test": "tape test/index.js" }, - "dependencies": { - "readable-stream": "^2.0.1" - }, - "license": "MIT" + "version": "1.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/stream-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/stream-browserify/package.json index 9c492fb33..8cab8c772 100644 --- a/admin/vue2/element-admin-v3/node_modules/stream-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stream-browserify/package.json @@ -1,36 +1,66 @@ { - "name": "stream-browserify", - "version": "2.0.2", - "description": "the stream module from node core for browsers", - "main": "index.js", + "_args": [ + [ + "stream-browserify@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "stream-browserify@2.0.2", + "_id": "stream-browserify@2.0.2", + "_inBundle": false, + "_integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "_location": "/stream-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stream-browserify@2.0.2", + "name": "stream-browserify", + "escapedName": "stream-browserify", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/browserify/stream-browserify/issues" + }, "dependencies": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" }, + "description": "the stream module from node core for browsers", "devDependencies": { "safe-buffer": "^5.1.2", "tape": "^4.2.0", "typedarray": "~0.0.6" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/browserify/stream-browserify.git" - }, "homepage": "https://github.com/browserify/stream-browserify", "keywords": [ "stream", "browser", "browserify" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "license": "MIT", + "main": "index.js", + "name": "stream-browserify", + "repository": { + "type": "git", + "url": "git://github.com/browserify/stream-browserify.git" + }, + "scripts": { + "test": "tape test/*.js" + }, "testling": { "files": "test/*.js", "browsers": [ @@ -48,5 +78,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/stream-each/package.json b/admin/vue2/element-admin-v3/node_modules/stream-each/package.json index d7a88766d..29eb9d092 100644 --- a/admin/vue2/element-admin-v3/node_modules/stream-each/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stream-each/package.json @@ -1,29 +1,60 @@ { - "name": "stream-each", - "version": "1.2.3", - "description": "Iterate all the data in a stream", - "main": "index.js", + "_args": [ + [ + "stream-each@1.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "stream-each@1.2.3", + "_id": "stream-each@1.2.3", + "_inBundle": false, + "_integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "_location": "/stream-each", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stream-each@1.2.3", + "name": "stream-each", + "escapedName": "stream-each", + "rawSpec": "1.2.3", + "saveSpec": null, + "fetchSpec": "1.2.3" + }, + "_requiredBy": [ + "/mississippi" + ], + "_resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "_spec": "1.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/stream-each/issues" + }, "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" }, + "description": "Iterate all the data in a stream", "devDependencies": { "ndjson": "^1.5.0", "standard": "^5.3.1", "tape": "^4.2.1", "through2": "^2.0.0" }, - "scripts": { - "test": "standard && tape test.js" - }, + "homepage": "https://github.com/mafintosh/stream-each", + "license": "MIT", + "main": "index.js", + "name": "stream-each", "repository": { "type": "git", - "url": "https://github.com/mafintosh/stream-each.git" + "url": "git+https://github.com/mafintosh/stream-each.git" }, - "author": "Mathias Buus (@mafintosh)", - "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/stream-each/issues" + "scripts": { + "test": "standard && tape test.js" }, - "homepage": "https://github.com/mafintosh/stream-each" + "version": "1.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/stream-http/package.json b/admin/vue2/element-admin-v3/node_modules/stream-http/package.json index 1e1affa79..2465228e1 100644 --- a/admin/vue2/element-admin-v3/node_modules/stream-http/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stream-http/package.json @@ -1,31 +1,38 @@ { - "name": "stream-http", - "version": "2.8.3", - "description": "Streaming http in the browser", - "main": "index.js", - "repository": { - "type": "git", - "url": "git://github.com/jhiesey/stream-http.git" + "_args": [ + [ + "stream-http@2.8.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "stream-http@2.8.3", + "_id": "stream-http@2.8.3", + "_inBundle": false, + "_integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "_location": "/stream-http", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stream-http@2.8.3", + "name": "stream-http", + "escapedName": "stream-http", + "rawSpec": "2.8.3", + "saveSpec": null, + "fetchSpec": "2.8.3" }, - "scripts": { - "test": "npm run test-node && ([ -n \"${TRAVIS_PULL_REQUEST}\" -a \"${TRAVIS_PULL_REQUEST}\" != 'false' ] || npm run test-browser)", - "test-node": "tape test/node/*.js", - "test-browser": "airtap --loopback airtap.local -- test/browser/*.js", - "test-browser-local": "airtap --no-instrument --local 8080 -- test/browser/*.js" + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz?cache=0&sync_timestamp=1618430770209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-http%2Fdownload%2Fstream-http-2.8.3.tgz", + "_spec": "2.8.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John Hiesey" }, - "author": "John Hiesey", - "license": "MIT", "bugs": { "url": "https://github.com/jhiesey/stream-http/issues" }, - "homepage": "https://github.com/jhiesey/stream-http#readme", - "keywords": [ - "http", - "stream", - "streaming", - "xhr", - "http-browserify" - ], "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -33,6 +40,7 @@ "to-arraybuffer": "^1.0.0", "xtend": "^4.0.0" }, + "description": "Streaming http in the browser", "devDependencies": { "airtap": "^0.0.5", "basic-auth": "^2.0.0", @@ -42,5 +50,27 @@ "tape": "^4.9.0", "ua-parser-js": "^0.7.18", "webworkify": "^1.5.0" - } + }, + "homepage": "https://github.com/jhiesey/stream-http#readme", + "keywords": [ + "http", + "stream", + "streaming", + "xhr", + "http-browserify" + ], + "license": "MIT", + "main": "index.js", + "name": "stream-http", + "repository": { + "type": "git", + "url": "git://github.com/jhiesey/stream-http.git" + }, + "scripts": { + "test": "npm run test-node && ([ -n \"${TRAVIS_PULL_REQUEST}\" -a \"${TRAVIS_PULL_REQUEST}\" != 'false' ] || npm run test-browser)", + "test-browser": "airtap --loopback airtap.local -- test/browser/*.js", + "test-browser-local": "airtap --no-instrument --local 8080 -- test/browser/*.js", + "test-node": "tape test/node/*.js" + }, + "version": "2.8.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/stream-shift/package.json b/admin/vue2/element-admin-v3/node_modules/stream-shift/package.json index fe7347a0a..057dd7175 100644 --- a/admin/vue2/element-admin-v3/node_modules/stream-shift/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stream-shift/package.json @@ -1,25 +1,57 @@ { - "name": "stream-shift", - "version": "1.0.1", - "description": "Returns the next buffer/object in a stream's readable queue", - "main": "index.js", + "_args": [ + [ + "stream-shift@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "stream-shift@1.0.1", + "_id": "stream-shift@1.0.1", + "_inBundle": false, + "_integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", + "_location": "/stream-shift", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stream-shift@1.0.1", + "name": "stream-shift", + "escapedName": "stream-shift", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/duplexify", + "/stream-each" + ], + "_resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/stream-shift/issues" + }, "dependencies": {}, + "description": "Returns the next buffer/object in a stream's readable queue", "devDependencies": { "standard": "^7.1.2", "tape": "^4.6.0", "through2": "^2.0.1" }, - "scripts": { - "test": "standard && tape test.js" - }, + "homepage": "https://github.com/mafintosh/stream-shift", + "license": "MIT", + "main": "index.js", + "name": "stream-shift", "repository": { "type": "git", - "url": "https://github.com/mafintosh/stream-shift.git" + "url": "git+https://github.com/mafintosh/stream-shift.git" }, - "author": "Mathias Buus (@mafintosh)", - "license": "MIT", - "bugs": { - "url": "https://github.com/mafintosh/stream-shift/issues" + "scripts": { + "test": "standard && tape test.js" }, - "homepage": "https://github.com/mafintosh/stream-shift" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/strict-uri-encode/package.json b/admin/vue2/element-admin-v3/node_modules/strict-uri-encode/package.json index 0028e1b30..7bd748a3e 100644 --- a/admin/vue2/element-admin-v3/node_modules/strict-uri-encode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/strict-uri-encode/package.json @@ -1,30 +1,66 @@ { - "name": "strict-uri-encode", - "version": "1.1.0", - "description": "A stricter URI encode adhering to RFC 3986", - "license": "MIT", - "repository": "kevva/strict-uri-encode", + "_args": [ + [ + "strict-uri-encode@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strict-uri-encode@1.1.0", + "_id": "strict-uri-encode@1.1.0", + "_inBundle": false, + "_integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "_location": "/strict-uri-encode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strict-uri-encode@1.1.0", + "name": "strict-uri-encode", + "escapedName": "strict-uri-encode", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/query-string" + ], + "_resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kevin Mårtensson", "email": "kevinmartensson@gmail.com", "url": "github.com/kevva" }, + "bugs": { + "url": "https://github.com/kevva/strict-uri-encode/issues" + }, + "description": "A stricter URI encode adhering to RFC 3986", + "devDependencies": { + "ava": "^0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/kevva/strict-uri-encode#readme", "keywords": [ "component", "encode", "RFC3986", "uri" ], - "devDependencies": { - "ava": "^0.0.4" - } + "license": "MIT", + "name": "strict-uri-encode", + "repository": { + "type": "git", + "url": "git+https://github.com/kevva/strict-uri-encode.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/string-argv/package.json b/admin/vue2/element-admin-v3/node_modules/string-argv/package.json index 087302d2e..e4c307225 100644 --- a/admin/vue2/element-admin-v3/node_modules/string-argv/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string-argv/package.json @@ -1,36 +1,64 @@ -{ - "name": "string-argv", - "description": "string-argv parses a string into an argument array to mimic process.argv. This is useful when testing Command Line Utilities that you want to pass arguments to.", - "version": "0.0.2", - "author": { - "name": "Anthony McCormick", - "email": "anthony.mccormick AT gmail.com" - }, - "license": "MIT", - "keywords": [ - "logger" - ], - "scripts": { - "lint": "eslint .", - "test": "jasmine JASMINE_CONFIG_PATH=test/config.json --verbose --color --captureExceptions && npm run lint" - }, - "main": "index", - "engines": { - "node": ">=0.6.19" - }, - "bugs": { - "url": "https://github.com/mccormicka/string-argv/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/mccormicka/string-argv" - }, - "homepage": "https://github.com/mccormicka/string-argv", - "readmeFilename": "README.md", - "dependencies": {}, - "devDependencies": { - "eslint": "^2.0.0", - "eslint-config-cellule": "^3.0.0", - "jasmine": "^2.4.1" - } -} +{ + "_args": [ + [ + "string-argv@0.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-argv@0.0.2", + "_id": "string-argv@0.0.2", + "_inBundle": false, + "_integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "_location": "/string-argv", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-argv@0.0.2", + "name": "string-argv", + "escapedName": "string-argv", + "rawSpec": "0.0.2", + "saveSpec": null, + "fetchSpec": "0.0.2" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/string-argv/download/string-argv-0.0.2.tgz", + "_spec": "0.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Anthony McCormick", + "email": "anthony.mccormick AT gmail.com" + }, + "bugs": { + "url": "https://github.com/mccormicka/string-argv/issues" + }, + "dependencies": {}, + "description": "string-argv parses a string into an argument array to mimic process.argv. This is useful when testing Command Line Utilities that you want to pass arguments to.", + "devDependencies": { + "eslint": "^2.0.0", + "eslint-config-cellule": "^3.0.0", + "jasmine": "^2.4.1" + }, + "engines": { + "node": ">=0.6.19" + }, + "homepage": "https://github.com/mccormicka/string-argv", + "keywords": [ + "logger" + ], + "license": "MIT", + "main": "index", + "name": "string-argv", + "repository": { + "type": "git", + "url": "git+https://github.com/mccormicka/string-argv.git" + }, + "scripts": { + "lint": "eslint .", + "test": "jasmine JASMINE_CONFIG_PATH=test/config.json --verbose --color --captureExceptions && npm run lint" + }, + "version": "0.0.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/ansi-regex/package.json index a849fdf52..2655aa523 100644 --- a/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/ansi-regex/package.json @@ -1,53 +1,88 @@ { - "name": "ansi-regex", - "version": "4.1.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^0.25.0", - "xo": "^0.23.0" - } + "_args": [ + [ + "ansi-regex@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-regex@4.1.0", + "_id": "ansi-regex@4.1.0", + "_inBundle": false, + "_integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "_location": "/string-width/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@4.1.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/string-width/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^0.25.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/strip-ansi/package.json index 7494fd7e8..c9b9f8899 100644 --- a/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string-width/node_modules/strip-ansi/package.json @@ -1,54 +1,89 @@ { - "name": "strip-ansi", - "version": "5.2.0", - "description": "Strip ANSI escape codes from a string", - "license": "MIT", - "repository": "chalk/strip-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "devDependencies": { - "ava": "^1.3.1", - "tsd-check": "^0.5.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "strip-ansi@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "strip-ansi@5.2.0", + "_id": "strip-ansi@5.2.0", + "_inBundle": false, + "_integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "_location": "/string-width/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@5.2.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/string-width/package.json index e040183e9..95f6c0b1a 100644 --- a/admin/vue2/element-admin-v3/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string-width/package.json @@ -1,56 +1,95 @@ { - "name": "string-width", - "version": "3.1.0", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "devDependencies": { - "ava": "^1.0.1", - "xo": "^0.23.0" - } + "_args": [ + [ + "string-width@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "string-width@3.1.0", + "_id": "string-width@3.1.0", + "_inBundle": false, + "_integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "_location": "/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@3.1.0", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/cliui", + "/sass-graph/yargs", + "/webpack-dev-server/yargs", + "/wrap-ansi", + "/yargs" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "^1.0.1", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/string.prototype.trimend/package.json b/admin/vue2/element-admin-v3/node_modules/string.prototype.trimend/package.json index d2e8a4a38..23ea14dc1 100644 --- a/admin/vue2/element-admin-v3/node_modules/string.prototype.trimend/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string.prototype.trimend/package.json @@ -1,69 +1,111 @@ { - "name": "string.prototype.trimend", - "version": "1.0.4", - "author": "Jordan Harband ", - "contributors": [ - "Jordan Harband ", - "Khaled Al-Ansari " - ], - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ES2019 spec-compliant String.prototype.trimEnd shim.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint .", - "postlint": "es-shim-api --bound", - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "nyc tape 'test/**/*.js'", - "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://github.com/es-shims/String.prototype.trimEnd.git" - }, - "keywords": [ - "es6", - "es7", - "es8", - "javascript", - "prototype", - "polyfill", - "utility", - "trim", - "trimLeft", - "trimRight", - "trimStart", - "trimEnd", - "tc39" - ], - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "auto-changelog": "^2.2.1", - "eslint": "^7.20.0", - "functions-have-names": "^1.2.2", - "has-strict-mode": "^1.0.1", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } + "_args": [ + [ + "string.prototype.trimend@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string.prototype.trimend@1.0.4", + "_id": "string.prototype.trimend@1.0.4", + "_inBundle": false, + "_integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", + "_location": "/string.prototype.trimend", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string.prototype.trimend@1.0.4", + "name": "string.prototype.trimend", + "escapedName": "string.prototype.trimend", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/es-abstract" + ], + "_resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/es-shims/String.prototype.trimEnd/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + { + "name": "Khaled Al-Ansari", + "email": "khaledelansari@gmail.com" + } + ], + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "description": "ES2019 spec-compliant String.prototype.trimEnd shim.", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "auto-changelog": "^2.2.1", + "eslint": "^7.20.0", + "functions-have-names": "^1.2.2", + "has-strict-mode": "^1.0.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/es-shims/String.prototype.trimEnd#readme", + "keywords": [ + "es6", + "es7", + "es8", + "javascript", + "prototype", + "polyfill", + "utility", + "trim", + "trimLeft", + "trimRight", + "trimStart", + "trimEnd", + "tc39" + ], + "license": "MIT", + "main": "index.js", + "name": "string.prototype.trimend", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/String.prototype.trimEnd.git" + }, + "scripts": { + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/string.prototype.trimstart/package.json b/admin/vue2/element-admin-v3/node_modules/string.prototype.trimstart/package.json index b64622775..d57905c16 100644 --- a/admin/vue2/element-admin-v3/node_modules/string.prototype.trimstart/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string.prototype.trimstart/package.json @@ -1,69 +1,111 @@ { - "name": "string.prototype.trimstart", - "version": "1.0.4", - "author": "Jordan Harband ", - "contributors": [ - "Jordan Harband ", - "Khaled Al-Ansari " - ], - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "description": "ES2019 spec-compliant String.prototype.trimStart shim.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint .", - "postlint": "es-shim-api --bound", - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "nyc tape 'test/**/*.js'", - "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://github.com/es-shims/String.prototype.trimStart.git" - }, - "keywords": [ - "es6", - "es7", - "es8", - "javascript", - "prototype", - "polyfill", - "utility", - "trim", - "trimLeft", - "trimRight", - "trimStart", - "trimEnd", - "tc39" - ], - "devDependencies": { - "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "auto-changelog": "^2.2.1", - "eslint": "^7.20.0", - "functions-have-names": "^1.2.2", - "has-strict-mode": "^1.0.1", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.0" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } + "_args": [ + [ + "string.prototype.trimstart@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string.prototype.trimstart@1.0.4", + "_id": "string.prototype.trimstart@1.0.4", + "_inBundle": false, + "_integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", + "_location": "/string.prototype.trimstart", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string.prototype.trimstart@1.0.4", + "name": "string.prototype.trimstart", + "escapedName": "string.prototype.trimstart", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/es-abstract" + ], + "_resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127232940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/es-shims/String.prototype.trimStart/issues" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + { + "name": "Khaled Al-Ansari", + "email": "khaledelansari@gmail.com" + } + ], + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "description": "ES2019 spec-compliant String.prototype.trimStart shim.", + "devDependencies": { + "@es-shims/api": "^2.1.2", + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "auto-changelog": "^2.2.1", + "eslint": "^7.20.0", + "functions-have-names": "^1.2.2", + "has-strict-mode": "^1.0.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/es-shims/String.prototype.trimStart#readme", + "keywords": [ + "es6", + "es7", + "es8", + "javascript", + "prototype", + "polyfill", + "utility", + "trim", + "trimLeft", + "trimRight", + "trimStart", + "trimEnd", + "tc39" + ], + "license": "MIT", + "main": "index.js", + "name": "string.prototype.trimstart", + "repository": { + "type": "git", + "url": "git://github.com/es-shims/String.prototype.trimStart.git" + }, + "scripts": { + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/string_decoder/package.json b/admin/vue2/element-admin-v3/node_modules/string_decoder/package.json index 518c3eb9f..c7683d56f 100644 --- a/admin/vue2/element-admin-v3/node_modules/string_decoder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/string_decoder/package.json @@ -1,25 +1,45 @@ { - "name": "string_decoder", - "version": "1.1.1", - "description": "The string_decoder module from Node core", - "main": "lib/string_decoder.js", + "_args": [ + [ + "string_decoder@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "string_decoder@1.1.1", + "_id": "string_decoder@1.1.1", + "_inBundle": false, + "_integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "_location": "/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string_decoder@1.1.1", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.nlark.com/string_decoder/download/string_decoder-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, "dependencies": { "safe-buffer": "~5.1.0" }, + "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "core-util-is": "^1.0.2", "inherits": "^2.0.3", "tap": "~0.4.8" }, - "scripts": { - "test": "tap test/parallel/*.js && node test/verify-dependencies", - "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/nodejs/string_decoder.git" - }, "homepage": "https://github.com/nodejs/string_decoder", "keywords": [ "string", @@ -27,5 +47,16 @@ "browser", "browserify" ], - "license": "MIT" + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/stringify-object/package.json b/admin/vue2/element-admin-v3/node_modules/stringify-object/package.json index 74d638c00..05ef6ec45 100644 --- a/admin/vue2/element-admin-v3/node_modules/stringify-object/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stringify-object/package.json @@ -1,40 +1,76 @@ { - "name": "stringify-object", - "version": "3.3.0", - "description": "Stringify an object/array like JSON.stringify just without all the double-quotes", - "license": "BSD-2-Clause", - "repository": "yeoman/stringify-object", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "object", - "stringify", - "pretty", - "print", - "dump", - "format", - "type", - "json" - ], - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "stringify-object@3.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "stringify-object@3.3.0", + "_id": "stringify-object@3.3.0", + "_inBundle": false, + "_integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", + "_location": "/stringify-object", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "stringify-object@3.3.0", + "name": "stringify-object", + "escapedName": "stringify-object", + "rawSpec": "3.3.0", + "saveSpec": null, + "fetchSpec": "3.3.0" + }, + "_requiredBy": [ + "/lint-staged" + ], + "_resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", + "_spec": "3.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/yeoman/stringify-object/issues" + }, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "description": "Stringify an object/array like JSON.stringify just without all the double-quotes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/yeoman/stringify-object#readme", + "keywords": [ + "object", + "stringify", + "pretty", + "print", + "dump", + "format", + "type", + "json" + ], + "license": "BSD-2-Clause", + "name": "stringify-object", + "repository": { + "type": "git", + "url": "git+https://github.com/yeoman/stringify-object.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/strip-ansi/package.json index 301685ba3..d86b2eec8 100644 --- a/admin/vue2/element-admin-v3/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/strip-ansi/package.json @@ -1,28 +1,64 @@ { - "name": "strip-ansi", - "version": "3.0.1", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "strip-ansi@3.0.1", + "_id": "strip-ansi@3.0.1", + "_inBundle": false, + "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "_location": "/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@3.0.1", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/babel-code-frame/chalk", + "/cli-truncate/string-width", + "/friendly-errors-webpack-plugin/chalk", + "/gauge", + "/gauge/string-width", + "/listr-update-renderer", + "/listr-update-renderer/chalk", + "/node-sass/chalk", + "/svg-baker/chalk", + "/webpack-dev-server" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Boy Nicolai Appelman (jbna.nl)", - "JD Ballard (github.com/qix-)" - ], + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -47,11 +83,31 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Boy Nicolai Appelman", + "email": "joshua@jbna.nl", + "url": "jbna.nl" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/strip-bom/package.json b/admin/vue2/element-admin-v3/node_modules/strip-bom/package.json index 8fe93ea53..ca7cceb4c 100644 --- a/admin/vue2/element-admin-v3/node_modules/strip-bom/package.json +++ b/admin/vue2/element-admin-v3/node_modules/strip-bom/package.json @@ -1,23 +1,55 @@ { - "name": "strip-bom", - "version": "2.0.0", - "description": "Strip UTF-8 byte order mark (BOM) from a string/buffer", - "license": "MIT", - "repository": "sindresorhus/strip-bom", + "_args": [ + [ + "strip-bom@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-bom@2.0.0", + "_id": "strip-bom@2.0.0", + "_inBundle": false, + "_integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "_location": "/strip-bom", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-bom@2.0.0", + "name": "strip-bom", + "escapedName": "strip-bom", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/load-json-file" + ], + "_resolved": "https://registry.nlark.com/strip-bom/download/strip-bom-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-bom/issues" + }, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "description": "Strip UTF-8 byte order mark (BOM) from a string/buffer", + "devDependencies": { + "mocha": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/strip-bom#readme", "keywords": [ "bom", "strip", @@ -33,10 +65,14 @@ "buffer", "string" ], - "dependencies": { - "is-utf8": "^0.2.0" + "license": "MIT", + "name": "strip-bom", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-bom.git" }, - "devDependencies": { - "mocha": "*" - } + "scripts": { + "test": "mocha" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/strip-eof/package.json b/admin/vue2/element-admin-v3/node_modules/strip-eof/package.json index 36b88cdcf..38670a168 100644 --- a/admin/vue2/element-admin-v3/node_modules/strip-eof/package.json +++ b/admin/vue2/element-admin-v3/node_modules/strip-eof/package.json @@ -1,23 +1,53 @@ { - "name": "strip-eof", - "version": "1.0.0", - "description": "Strip the End-Of-File (EOF) character from a string/buffer", - "license": "MIT", - "repository": "sindresorhus/strip-eof", + "_args": [ + [ + "strip-eof@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "strip-eof@1.0.0", + "_id": "strip-eof@1.0.0", + "_inBundle": false, + "_integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "_location": "/strip-eof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-eof@1.0.0", + "name": "strip-eof", + "escapedName": "strip-eof", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/execa", + "/lint-staged/execa" + ], + "_resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-eof/issues" + }, + "description": "Strip the End-Of-File (EOF) character from a string/buffer", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/strip-eof#readme", "keywords": [ "strip", "trim", @@ -32,8 +62,14 @@ "string", "buffer" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "strip-eof", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-eof.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/strip-indent/package.json b/admin/vue2/element-admin-v3/node_modules/strip-indent/package.json index 334dc8b7f..33000413c 100644 --- a/admin/vue2/element-admin-v3/node_modules/strip-indent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/strip-indent/package.json @@ -1,23 +1,53 @@ { - "name": "strip-indent", - "version": "2.0.0", - "description": "Strip leading whitespace from each line in a string", - "license": "MIT", - "repository": "sindresorhus/strip-indent", + "_args": [ + [ + "strip-indent@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-indent@2.0.0", + "_id": "strip-indent@2.0.0", + "_inBundle": false, + "_integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "_location": "/strip-indent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-indent@2.0.0", + "name": "strip-indent", + "escapedName": "strip-indent", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/husky" + ], + "_resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-indent/issues" + }, + "description": "Strip leading whitespace from each line in a string", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/strip-indent#readme", "keywords": [ "strip", "indent", @@ -31,10 +61,16 @@ "string", "str" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "strip-indent", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-indent.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/strip-json-comments/package.json b/admin/vue2/element-admin-v3/node_modules/strip-json-comments/package.json index 288ecc774..b6de6ccdb 100644 --- a/admin/vue2/element-admin-v3/node_modules/strip-json-comments/package.json +++ b/admin/vue2/element-admin-v3/node_modules/strip-json-comments/package.json @@ -1,23 +1,53 @@ { - "name": "strip-json-comments", - "version": "2.0.1", - "description": "Strip comments from JSON. Lets you use comments in your JSON files!", - "license": "MIT", - "repository": "sindresorhus/strip-json-comments", + "_args": [ + [ + "strip-json-comments@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-json-comments@2.0.1", + "_id": "strip-json-comments@2.0.1", + "_inBundle": false, + "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "_location": "/strip-json-comments", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-json-comments@2.0.1", + "name": "strip-json-comments", + "escapedName": "strip-json-comments", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&sync_timestamp=1594571796132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-json-comments/issues" + }, + "description": "Strip comments from JSON. Lets you use comments in your JSON files!", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/strip-json-comments#readme", "keywords": [ "json", "strip", @@ -35,8 +65,14 @@ "env", "environment" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "strip-json-comments", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-json-comments.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist index 68dd69d49..5c05ea12f 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + "$basedir/node" "$basedir/../browserslist/cli.js" "$@" + ret=$? else - exec node "$basedir/../browserslist/cli.js" "$@" + node "$basedir/../browserslist/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.cmd b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.cmd index e2a0d3f91..2e6f1b396 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.cmd +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* +"%_prog%" "%dp0%\..\browserslist\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.ps1 b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.ps1 index 01e10a08b..9fb149eb0 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/.bin/browserslist.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../browserslist/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/ansi-styles/package.json index 65edb48c3..28c54f012 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/stylehacks/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/stylehacks/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/browserslist/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/browserslist/package.json index 5deec7979..056e722ec 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/browserslist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/browserslist/package.json @@ -1,19 +1,47 @@ { - "name": "browserslist", - "version": "4.16.6", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" + "_args": [ + [ + "browserslist@4.16.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "_development": true, + "_from": "browserslist@4.16.6", + "_id": "browserslist@4.16.6", + "_inBundle": false, + "_integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "_location": "/stylehacks/browserslist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "browserslist@4.16.6", + "name": "browserslist", + "escapedName": "browserslist", + "rawSpec": "4.16.6", + "saveSpec": null, + "fetchSpec": "4.16.6" + }, + "_requiredBy": [ + "/stylehacks" + ], + "_resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "_spec": "4.16.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "bin": { + "browserslist": "cli.js" + }, + "browser": { + "./node.js": "./browser.js", + "path": false + }, + "bugs": { + "url": "https://github.com/browserslist/browserslist/issues" }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", @@ -21,15 +49,26 @@ "escalade": "^3.1.1", "node-releases": "^1.1.71" }, + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + "homepage": "https://github.com/browserslist/browserslist#readme", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "license": "MIT", + "name": "browserslist", + "repository": { + "type": "git", + "url": "git+https://github.com/browserslist/browserslist.git" }, "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } + "version": "4.16.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/node_modules/supports-color/package.json index ad199f5cd..f8c1b6157 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/stylehacks/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/stylehacks/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/package.json index bc324685a..f56307c97 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/chalk/package.json @@ -1,71 +1,109 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/stylehacks/chalk", + "_phantomChildren": { + "has-flag": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/stylehacks/postcss" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss-selector-parser/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss-selector-parser/package.json index d32d917dc..acaeb48b7 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss-selector-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss-selector-parser/package.json @@ -1,6 +1,58 @@ { - "name": "postcss-selector-parser", - "version": "3.1.2", + "_args": [ + [ + "postcss-selector-parser@3.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss-selector-parser@3.1.2", + "_id": "postcss-selector-parser@3.1.2", + "_inBundle": false, + "_integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "_location": "/stylehacks/postcss-selector-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss-selector-parser@3.1.2", + "name": "postcss-selector-parser", + "escapedName": "postcss-selector-parser", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" + }, + "_requiredBy": [ + "/stylehacks" + ], + "_resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "_spec": "3.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "ava": { + "require": "babel-register", + "concurrency": 5 + }, + "bugs": { + "url": "https://github.com/postcss/postcss-selector-parser/issues" + }, + "contributors": [ + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + { + "name": "Chris Eppstein", + "email": "chris@eppsteins.net", + "url": "http://twitter.com/chriseppstein" + } + ], + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "description": "> Selector parser with built in methods for working with selector strings.", "devDependencies": { "ava": "^0.20.0", "babel-cli": "^6.4.0", @@ -22,8 +74,12 @@ "nyc": "^10.0.0", "postcss": "^6.0.6" }, - "main": "dist/index.js", - "types": "postcss-selector-parser.d.ts", + "engines": { + "node": ">=8" + }, + "eslintConfig": { + "extends": "cssnano" + }, "files": [ "API.md", "CHANGELOG.md", @@ -31,46 +87,26 @@ "dist", "postcss-selector-parser.d.ts" ], - "scripts": { - "pretest": "eslint src", - "prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", - "report": "nyc report --reporter=html", - "test": "nyc ava src/__tests__/*.js" - }, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "license": "MIT", - "engines": { - "node": ">=8" - }, "homepage": "https://github.com/postcss/postcss-selector-parser", - "contributors": [ - { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - { - "name": "Chris Eppstein", - "email": "chris@eppsteins.net", - "url": "http://twitter.com/chriseppstein" - } - ], - "repository": "postcss/postcss-selector-parser", - "ava": { - "require": "babel-register", - "concurrency": 5 - }, + "license": "MIT", + "main": "dist/index.js", + "name": "postcss-selector-parser", "nyc": { "exclude": [ "node_modules", "**/__tests__" ] }, - "eslintConfig": { - "extends": "cssnano" - } + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss-selector-parser.git" + }, + "scripts": { + "prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", + "pretest": "eslint src", + "report": "nyc report --reporter=html", + "test": "nyc ava src/__tests__/*.js" + }, + "types": "postcss-selector-parser.d.ts", + "version": "3.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss/package.json index ece04085e..3871718c7 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/postcss/package.json @@ -1,36 +1,109 @@ { - "name": "postcss", - "version": "7.0.35", + "_args": [ + [ + "postcss@7.0.35", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@7.0.35", + "_id": "postcss@7.0.35", + "_inBundle": false, + "_integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "_location": "/stylehacks/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@7.0.35", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "7.0.35", + "saveSpec": null, + "fetchSpec": "7.0.35" + }, + "_requiredBy": [ + "/stylehacks" + ], + "_resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", + "_spec": "7.0.35", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "./lib/terminal-highlight": false, + "supports-color": false, + "chalk": false, + "fs": false + }, + "browserslist": [ + "and_chr 71", + "and_ff 64", + "and_qq 1.2", + "and_uc 11.8", + "android 67", + "android 4.4.3-4.4.4", + "baidu 7.12", + "chrome 73", + "chrome 72", + "edge 18", + "edge 17", + "firefox 66", + "firefox 65", + "ios_saf 12.0-12.1", + "ios_saf 11.3-11.4", + "node 6.17.0", + "op_mini all", + "op_mob 46", + "opera 58", + "opera 57", + "safari 12", + "safari 11.1", + "samsung 8.2", + "samsung 7.2-7.4" + ], + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, "description": "Tool for transforming styles with JS plugins", "engines": { "node": ">=6.0.0" }, - "keywords": ["css", "postcss", "rework", "preprocessor", "parser", "source map", "transform", "manipulation", "transpiler"], "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, - "author": "Andrey Sitnik ", - "license": "MIT", "homepage": "https://postcss.org/", - "repository": "postcss/postcss", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "browser": { - "./lib/terminal-highlight": false, - "supports-color": false, - "chalk": false, - "fs": false + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", + "main": "lib/postcss", + "name": "postcss", + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" }, - "browserslist": ["and_chr 71", "and_ff 64", "and_qq 1.2", "and_uc 11.8", "android 67", "android 4.4.3-4.4.4", "baidu 7.12", "chrome 73", "chrome 72", "edge 18", "edge 17", "firefox 66", "firefox 65", "ios_saf 12.0-12.1", "ios_saf 11.3-11.4", "node 6.17.0", "op_mini all", "op_mob 46", "opera 58", "opera 57", "safari 12", "safari 11.1", "samsung 8.2", "samsung 7.2-7.4"] -} \ No newline at end of file + "types": "lib/postcss.d.ts", + "version": "7.0.35" +} diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/source-map/package.json index 24663417e..2af797cd7 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/stylehacks/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/stylehacks/postcss" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/supports-color/package.json index db4ded22b..256f6b67a 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/node_modules/supports-color/package.json @@ -1,53 +1,89 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/stylehacks/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/stylehacks/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/stylehacks/package.json b/admin/vue2/element-admin-v3/node_modules/stylehacks/package.json index b3c1505d7..d42fee84d 100644 --- a/admin/vue2/element-admin-v3/node_modules/stylehacks/package.json +++ b/admin/vue2/element-admin-v3/node_modules/stylehacks/package.json @@ -1,15 +1,71 @@ { - "name": "stylehacks", - "version": "4.0.3", + "_args": [ + [ + "stylehacks@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "stylehacks@4.0.3", + "_id": "stylehacks@4.0.3", + "_inBundle": false, + "_integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "_location": "/stylehacks", + "_phantomChildren": { + "caniuse-lite": "1.0.30001236", + "color-convert": "1.9.3", + "colorette": "1.2.2", + "dot-prop": "5.3.0", + "electron-to-chromium": "1.3.752", + "escalade": "3.1.1", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0", + "indexes-of": "1.0.1", + "node-releases": "1.1.73", + "uniq": "1.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "stylehacks@4.0.3", + "name": "stylehacks", + "escapedName": "stylehacks", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" + }, + "_requiredBy": [ + "/postcss-merge-longhand" + ], + "_resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449595596&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "bugs": { + "url": "https://github.com/cssnano/cssnano/issues" + }, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, "description": "Detect/remove browser hacks from CSS files.", - "main": "dist/index.js", + "devDependencies": { + "babel-cli": "^6.0.0", + "cross-env": "^5.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, "files": [ "LICENSE-MIT", "dist" ], - "scripts": { - "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" - }, + "homepage": "https://github.com/cssnano/cssnano", "keywords": [ "browsers", "css", @@ -21,26 +77,14 @@ "stylehacks" ], "license": "MIT", - "devDependencies": { - "babel-cli": "^6.0.0", - "cross-env": "^5.0.0" - }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "cssnano/cssnano", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" + "main": "dist/index.js", + "name": "stylehacks", + "repository": { + "type": "git", + "url": "git+https://github.com/cssnano/cssnano.git" }, - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" + "scripts": { + "prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/" }, - "engines": { - "node": ">=6.9.0" - } + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/supports-color/package.json index 3bb77ac1b..0ef887b51 100644 --- a/admin/vue2/element-admin-v3/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/supports-color/package.json @@ -1,27 +1,55 @@ { - "name": "supports-color", - "version": "2.0.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", + "_args": [ + [ + "supports-color@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "supports-color@2.0.0", + "_id": "supports-color@2.0.0", + "_inBundle": false, + "_integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "_location": "/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@2.0.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/babel-code-frame/chalk", + "/friendly-errors-webpack-plugin/chalk", + "/listr-update-renderer/chalk", + "/node-sass/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)" - ], + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "mocha": "*", + "require-uncached": "^1.0.2" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/supports-color#readme", "keywords": [ "color", "colour", @@ -42,8 +70,26 @@ "capability", "detect" ], - "devDependencies": { - "mocha": "*", - "require-uncached": "^1.0.2" - } + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + } + ], + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/node_modules/deepmerge/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/node_modules/deepmerge/package.json index 072974689..1e277ccc7 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/node_modules/deepmerge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/node_modules/deepmerge/package.json @@ -1,7 +1,49 @@ { - "author": "Nick Fisher", - "name": "deepmerge", + "_args": [ + [ + "deepmerge@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "deepmerge@1.3.2", + "_id": "deepmerge@1.3.2", + "_inBundle": false, + "_integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", + "_location": "/svg-baker-runtime/deepmerge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "deepmerge@1.3.2", + "name": "deepmerge", + "escapedName": "deepmerge", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" + }, + "_requiredBy": [ + "/svg-baker-runtime" + ], + "_resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fisher" + }, + "bugs": { + "url": "https://github.com/KyleAMathews/deepmerge/issues" + }, + "dependencies": {}, "description": "A library for deep (recursive) merging of Javascript objects", + "devDependencies": { + "jsmd": "0.3.1", + "tap": "~7.1.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/KyleAMathews/deepmerge", "keywords": [ "merge", "deep", @@ -10,23 +52,15 @@ "clone", "recursive" ], - "version": "1.3.2", - "homepage": "https://github.com/KyleAMathews/deepmerge", + "license": "MIT", + "main": "index", + "name": "deepmerge", "repository": { "type": "git", "url": "git://github.com/KyleAMathews/deepmerge.git" }, - "main": "index", - "engines": { - "node": ">=0.10.0" - }, "scripts": { "test": "tap test/*.js && jsmd README.markdown" }, - "dependencies": {}, - "devDependencies": { - "jsmd": "0.3.1", - "tap": "~7.1.2" - }, - "license": "MIT" + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/package.json index 7372a7e98..94b6118cd 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker-runtime/package.json @@ -1,26 +1,43 @@ { - "name": "svg-baker-runtime", - "version": "1.4.7", - "description": "", - "author": "JetBrains", - "license": "MIT", - "repository": "https://github.com/JetBrains/svg-mixer/tree/v1/packages/svg-baker-runtime", - "main": "browser-sprite.js", - "browser": "browser-sprite.js", - "module": "src/browser-sprite.js", - "files": [ - "src/", - "browser-sprite.js", - "browser-symbol.js", - "sprite.js", - "symbol.js", - "README.md" + "_args": [ + [ + "svg-baker-runtime@1.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_development": true, + "_from": "svg-baker-runtime@1.4.7", + "_id": "svg-baker-runtime@1.4.7", + "_inBundle": false, + "_integrity": "sha1-9HIGN/W2IC7vY3jYHx/q0IFfik4=", + "_location": "/svg-baker-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "svg-baker-runtime@1.4.7", + "name": "svg-baker-runtime", + "escapedName": "svg-baker-runtime", + "rawSpec": "1.4.7", + "saveSpec": null, + "fetchSpec": "1.4.7" + }, + "_requiredBy": [ + "/svg-sprite-loader" + ], + "_resolved": "https://registry.npm.taobao.org/svg-baker-runtime/download/svg-baker-runtime-1.4.7.tgz", + "_spec": "1.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "JetBrains" + }, + "browser": "browser-sprite.js", "dependencies": { "deepmerge": "1.3.2", "mitt": "1.1.2", "svg-baker": "^1.7.0" }, + "description": "", "devDependencies": { "babel-core": "^6.24.1", "babel-loader": "6.4.1", @@ -48,10 +65,27 @@ "wallaby-webpack": "0.0.38", "webpack": "2.4.1" }, + "files": [ + "src/", + "browser-sprite.js", + "browser-symbol.js", + "sprite.js", + "symbol.js", + "README.md" + ], + "license": "MIT", + "main": "browser-sprite.js", + "module": "src/browser-sprite.js", + "name": "svg-baker-runtime", + "repository": { + "type": "git", + "url": "https://github.com/JetBrains/svg-mixer/tree/v1/packages/svg-baker-runtime" + }, "scripts": { "build": "node scripts/build-runtime", - "lint": "eslint src test", "generate-test-data": "node scripts/generate-test-data", + "lint": "eslint src test", "test": "yarn build && karma start" - } + }, + "version": "1.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/node_modules/supports-color/package.json index 3bb77ac1b..fdf49dc83 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/node_modules/supports-color/package.json @@ -1,27 +1,53 @@ { - "name": "supports-color", - "version": "2.0.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", + "_args": [ + [ + "supports-color@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@2.0.0", + "_id": "supports-color@2.0.0", + "_inBundle": false, + "_integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "_location": "/svg-baker/chalk/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@2.0.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/svg-baker/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)" - ], + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "mocha": "*", + "require-uncached": "^1.0.2" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "mocha" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/supports-color#readme", "keywords": [ "color", "colour", @@ -42,8 +68,26 @@ "capability", "detect" ], - "devDependencies": { - "mocha": "*", - "require-uncached": "^1.0.2" - } + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + } + ], + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/package.json index 2b5881e9a..049c74807 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/chalk/package.json @@ -1,26 +1,61 @@ { - "name": "chalk", - "version": "1.1.3", - "description": "Terminal string styling done right. Much color.", - "license": "MIT", - "repository": "chalk/chalk", - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" + "_args": [ + [ + "chalk@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@1.1.3", + "_id": "chalk@1.1.3", + "_inBundle": false, + "_integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "_location": "/svg-baker/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@1.1.3", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/svg-baker/postcss" ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "description": "Terminal string styling done right. Much color.", + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && mocha", - "bench": "matcha benchmark.js", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/chalk#readme", "keywords": [ "color", "colour", @@ -44,23 +79,36 @@ "command-line", "text" ], - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" }, - "devDependencies": { - "coveralls": "^2.11.2", - "matcha": "^0.6.0", - "mocha": "*", - "nyc": "^3.0.0", - "require-uncached": "^1.0.2", - "resolve-from": "^1.0.0", - "semver": "^4.3.3", - "xo": "*" + "scripts": { + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", + "test": "xo && mocha" }, + "version": "1.1.3", "xo": { "envs": [ "node", diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/clone/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/clone/package.json index 39a53e3ff..1ec550c94 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/clone/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/clone/package.json @@ -1,56 +1,162 @@ { - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" + "_args": [ + [ + "clone@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "version": "2.1.2", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" + "_development": true, + "_from": "clone@2.1.2", + "_id": "clone@2.1.2", + "_inBundle": false, + "_integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "_location": "/svg-baker/clone", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clone@2.1.2", + "name": "clone", + "escapedName": "clone", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Paul Vorbach", + "email": "paul@vorba.ch", + "url": "http://paul.vorba.ch/" }, "bugs": { "url": "https://github.com/pvorb/node-clone/issues" }, - "main": "clone.js", - "author": "Paul Vorbach (http://paul.vorba.ch/)", "contributors": [ - "Blake Miner (http://www.blakeminer.com/)", - "Tian You (http://blog.axqd.net/)", - "George Stagas (http://stagas.com/)", - "Tobiasz Cudnik (https://github.com/TobiaszCudnik)", - "Pavel Lang (https://github.com/langpavel)", - "Dan MacTough (http://yabfog.com/)", - "w1nk (https://github.com/w1nk)", - "Hugh Kennedy (http://twitter.com/hughskennedy)", - "Dustin Diaz (http://dustindiaz.com)", - "Ilya Shaisultanov (https://github.com/diversario)", - "Nathan MacInnes (http://macinn.es/)", - "Benjamin E. Coe (https://twitter.com/benjamincoe)", - "Nathan Zadoks (https://github.com/nathan7)", - "Róbert Oroszi (https://github.com/oroce)", - "Aurélio A. Heckert (http://softwarelivre.org/aurium)", - "Guy Ellis (http://www.guyellisrocks.com/)", - "fscherwi (https://fscherwi.github.io)", - "rictic (https://github.com/rictic)", - "Martin Jurča (https://github.com/jurca)", - "Misery Lee (https://github.com/miserylee)", - "Clemens Wolff (https://github.com/c-w)" + { + "name": "Blake Miner", + "email": "miner.blake@gmail.com", + "url": "http://www.blakeminer.com/" + }, + { + "name": "Tian You", + "email": "axqd001@gmail.com", + "url": "http://blog.axqd.net/" + }, + { + "name": "George Stagas", + "email": "gstagas@gmail.com", + "url": "http://stagas.com/" + }, + { + "name": "Tobiasz Cudnik", + "email": "tobiasz.cudnik@gmail.com", + "url": "https://github.com/TobiaszCudnik" + }, + { + "name": "Pavel Lang", + "email": "langpavel@phpskelet.org", + "url": "https://github.com/langpavel" + }, + { + "name": "Dan MacTough", + "url": "http://yabfog.com/" + }, + { + "name": "w1nk", + "url": "https://github.com/w1nk" + }, + { + "name": "Hugh Kennedy", + "url": "http://twitter.com/hughskennedy" + }, + { + "name": "Dustin Diaz", + "url": "http://dustindiaz.com" + }, + { + "name": "Ilya Shaisultanov", + "url": "https://github.com/diversario" + }, + { + "name": "Nathan MacInnes", + "email": "nathan@macinn.es", + "url": "http://macinn.es/" + }, + { + "name": "Benjamin E. Coe", + "email": "ben@npmjs.com", + "url": "https://twitter.com/benjamincoe" + }, + { + "name": "Nathan Zadoks", + "url": "https://github.com/nathan7" + }, + { + "name": "Róbert Oroszi", + "email": "robert+gh@oroszi.net", + "url": "https://github.com/oroce" + }, + { + "name": "Aurélio A. Heckert", + "url": "http://softwarelivre.org/aurium" + }, + { + "name": "Guy Ellis", + "url": "http://www.guyellisrocks.com/" + }, + { + "name": "fscherwi", + "url": "https://fscherwi.github.io" + }, + { + "name": "rictic", + "url": "https://github.com/rictic" + }, + { + "name": "Martin Jurča", + "url": "https://github.com/jurca" + }, + { + "name": "Misery Lee", + "email": "miserylee@foxmail.com", + "url": "https://github.com/miserylee" + }, + { + "name": "Clemens Wolff", + "url": "https://github.com/c-w" + } ], - "license": "MIT", - "engines": { - "node": ">=0.8" - }, "dependencies": {}, + "description": "deep cloning of objects and arrays", "devDependencies": { "nodeunit": "~0.9.0" }, + "engines": { + "node": ">=0.8" + }, + "homepage": "https://github.com/pvorb/node-clone#readme", + "license": "MIT", + "main": "clone.js", + "name": "clone", "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/pvorb/node-clone.git" + }, "scripts": { "test": "nodeunit test.js" - } + }, + "tags": [ + "clone", + "object", + "array", + "function", + "date" + ], + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/define-property/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/define-property/package.json index e0ab1ca00..84af53098 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/define-property/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/define-property/package.json @@ -1,31 +1,55 @@ { - "name": "define-property", - "description": "Define a non-enumerable property on an object.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" + "_args": [ + [ + "define-property@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "define-property@1.0.0", + "_id": "define-property@1.0.0", + "_inBundle": false, + "_integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "_location": "/svg-baker/define-property", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "define-property@1.0.0", + "name": "define-property", + "escapedName": "define-property", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/define-property/issues" }, "dependencies": { "is-descriptor": "^1.0.0" }, + "description": "Define a non-enumerable property on an object.", "devDependencies": { "gulp-format-md": "^0.1.12", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/define-property", "keywords": [ "define", "define-property", @@ -38,6 +62,16 @@ "property", "value" ], + "license": "MIT", + "main": "index.js", + "name": "define-property", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/define-property.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -58,5 +92,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/extend-shallow/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/extend-shallow/package.json index b42e01c7a..aa7b6aee1 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/extend-shallow/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/extend-shallow/package.json @@ -1,27 +1,44 @@ { - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "2.0.1", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" + "_args": [ + [ + "extend-shallow@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "extend-shallow@2.0.1", + "_id": "extend-shallow@2.0.1", + "_inBundle": false, + "_integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "_location": "/svg-baker/extend-shallow", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "extend-shallow@2.0.1", + "name": "extend-shallow", + "escapedName": "extend-shallow", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/extend-shallow/issues" }, "dependencies": { "is-extendable": "^0.1.0" }, + "description": "Extend an object with the properties of additional objects. node.js/javascript util.", "devDependencies": { "array-slice": "^0.2.3", "benchmarked": "^0.1.4", @@ -34,6 +51,13 @@ "mocha": "^2.2.5", "should": "^7.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/extend-shallow", "keywords": [ "assign", "extend", @@ -52,5 +76,16 @@ "utility", "utils", "value" - ] -} \ No newline at end of file + ], + "license": "MIT", + "main": "index.js", + "name": "extend-shallow", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/extend-shallow.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "2.0.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/has-flag/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/has-flag/package.json index 930dc7ff2..ee2f012ea 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/has-flag/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/has-flag/package.json @@ -1,28 +1,52 @@ { - "name": "has-flag", - "version": "1.0.0", - "description": "Check if argv has a specific flag", - "license": "MIT", - "repository": "sindresorhus/has-flag", + "_args": [ + [ + "has-flag@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "has-flag@1.0.0", + "_id": "has-flag@1.0.0", + "_inBundle": false, + "_integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "_location": "/svg-baker/has-flag", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-flag@1.0.0", + "name": "has-flag", + "escapedName": "has-flag", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/svg-baker/supports-color" + ], + "_resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" - ], + "bugs": { + "url": "https://github.com/sindresorhus/has-flag/issues" + }, + "description": "Check if argv has a specific flag", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/has-flag#readme", "keywords": [ "has", "check", @@ -42,7 +66,31 @@ "minimist", "optimist" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "has-flag", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/has-flag.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json index 5820cad23..9b1169feb 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json @@ -1,35 +1,75 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "6.0.3", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@6.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_development": true, + "_from": "kind-of@6.0.3", + "_id": "kind-of@6.0.3", + "_inBundle": false, + "_integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "_location": "/svg-baker/is-accessor-descriptor/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@6.0.3", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "6.0.3", + "saveSpec": null, + "fetchSpec": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/is-accessor-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "_spec": "6.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "benchmarked": "^2.0.0", "browserify": "^14.4.0", @@ -37,6 +77,13 @@ "mocha": "^4.0.1", "write": "^1.0.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -60,6 +107,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -84,5 +142,6 @@ "typeof", "verb" ] - } + }, + "version": "6.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/package.json index 47b97ac3c..51b0f5dce 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-accessor-descriptor/package.json @@ -1,35 +1,65 @@ { - "name": "is-accessor-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-accessor-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-accessor-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" + "_development": true, + "_from": "is-accessor-descriptor@1.0.0", + "_id": "is-accessor-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "_location": "/svg-baker/is-accessor-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-accessor-descriptor@1.0.0", + "name": "is-accessor-descriptor", + "escapedName": "is-accessor-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +78,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-accessor-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-accessor-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -69,5 +109,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/node_modules/kind-of/package.json index 5820cad23..d8af70abd 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/node_modules/kind-of/package.json @@ -1,35 +1,75 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "6.0.3", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@6.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_development": true, + "_from": "kind-of@6.0.3", + "_id": "kind-of@6.0.3", + "_inBundle": false, + "_integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "_location": "/svg-baker/is-data-descriptor/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@6.0.3", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "6.0.3", + "saveSpec": null, + "fetchSpec": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/is-data-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "_spec": "6.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "benchmarked": "^2.0.0", "browserify": "^14.4.0", @@ -37,6 +77,13 @@ "mocha": "^4.0.1", "write": "^1.0.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -60,6 +107,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -84,5 +142,6 @@ "typeof", "verb" ] - } + }, + "version": "6.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/package.json index 0b0938384..4175c793e 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-data-descriptor/package.json @@ -1,35 +1,65 @@ { - "name": "is-data-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/is-data-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-data-descriptor@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-data-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" + "_development": true, + "_from": "is-data-descriptor@1.0.0", + "_id": "is-data-descriptor@1.0.0", + "_inBundle": false, + "_integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "_location": "/svg-baker/is-data-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-data-descriptor@1.0.0", + "name": "is-data-descriptor", + "escapedName": "is-data-descriptor", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-data-descriptor/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "kind-of": "^6.0.0" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-data-descriptor", "keywords": [ "accessor", "check", @@ -48,6 +78,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-data-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-data-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -68,5 +108,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/node_modules/kind-of/package.json index 5820cad23..14a911d53 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/node_modules/kind-of/package.json @@ -1,35 +1,75 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "6.0.3", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@6.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_development": true, + "_from": "kind-of@6.0.3", + "_id": "kind-of@6.0.3", + "_inBundle": false, + "_integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "_location": "/svg-baker/is-descriptor/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@6.0.3", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "6.0.3", + "saveSpec": null, + "fetchSpec": "6.0.3" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/is-descriptor" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "_spec": "6.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "benchmarked": "^2.0.0", "browserify": "^14.4.0", @@ -37,6 +77,13 @@ "mocha": "^4.0.1", "write": "^1.0.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -60,6 +107,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -84,5 +142,6 @@ "typeof", "verb" ] - } + }, + "version": "6.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/package.json index 87b2975b0..749966b4d 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/is-descriptor/package.json @@ -1,38 +1,70 @@ { - "name": "is-descriptor", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-descriptor", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "is-descriptor@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-descriptor", - "bugs": { - "url": "https://github.com/jonschlinkert/is-descriptor/issues" + "_development": true, + "_from": "is-descriptor@1.0.2", + "_id": "is-descriptor@1.0.2", + "_inBundle": false, + "_integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "_location": "/svg-baker/is-descriptor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-descriptor@1.0.2", + "name": "is-descriptor", + "escapedName": "is-descriptor", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/define-property" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-descriptor/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, + "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-descriptor", "keywords": [ "accessor", "check", @@ -51,6 +83,16 @@ "valid", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-descriptor", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-descriptor.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -71,5 +113,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/kind-of/package.json index 334235fb0..2c04ef499 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/kind-of/package.json @@ -1,35 +1,75 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "5.1.0", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "James (https://twitter.com/aretecode)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)", - "tunnckoCore (https://i.am.charlike.online)" + "_args": [ + [ + "kind-of@5.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_development": true, + "_from": "kind-of@5.1.0", + "_id": "kind-of@5.1.0", + "_inBundle": false, + "_integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "_location": "/svg-baker/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@5.1.0", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "5.1.0", + "saveSpec": null, + "fetchSpec": "5.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "_spec": "5.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "James", + "url": "https://twitter.com/aretecode" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + } + ], + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.1.1", @@ -40,6 +80,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -63,6 +110,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -87,5 +145,6 @@ "typeof", "verb" ] - } + }, + "version": "5.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/micromatch/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/micromatch/package.json index aab0c9180..2689f6c17 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/micromatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/micromatch/package.json @@ -1,39 +1,89 @@ { - "name": "micromatch", - "description": "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.", - "version": "3.1.0", - "homepage": "https://github.com/micromatch/micromatch", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Amila Welihinda (amilajack.com)", - "Bogdan Chadkin (https://github.com/TrySound)", - "Brian Woodward (https://twitter.com/doowb)", - "Elan Shanker (https://github.com/es128)", - "Fabrício Matté (https://ultcombo.js.org)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Martin Kolárik (https://kolarik.sk)", - "Paul Miller (paulmillr.com)", - "Tom Byrer (https://github.com/tomByrer)", - "tunnckoCore (https://i.am.charlike.online)", - "Tyler Akins (http://rumkin.com)", - "(https://github.com/DianeLooney)" + "_args": [ + [ + "micromatch@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/micromatch", - "bugs": { - "url": "https://github.com/micromatch/micromatch/issues" + "_development": true, + "_from": "micromatch@3.1.0", + "_id": "micromatch@3.1.0", + "_inBundle": false, + "_integrity": "sha1-UQLU6vILaZfWAI46z+HESj+oFeI=", + "_location": "/svg-baker/micromatch", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "micromatch@3.1.0", + "name": "micromatch", + "escapedName": "micromatch", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requiredBy": [ + "/svg-baker" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.0.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/micromatch/issues" }, + "contributors": [ + { + "name": "Amila Welihinda", + "url": "amilajack.com" + }, + { + "name": "Bogdan Chadkin", + "url": "https://github.com/TrySound" + }, + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + { + "name": "Fabrício Matté", + "url": "https://ultcombo.js.org" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Martin Kolárik", + "url": "https://kolarik.sk" + }, + { + "name": "Paul Miller", + "url": "paulmillr.com" + }, + { + "name": "Tom Byrer", + "url": "https://github.com/tomByrer" + }, + { + "name": "tunnckoCore", + "url": "https://i.am.charlike.online" + }, + { + "name": "Tyler Akins", + "url": "http://rumkin.com" + }, + { + "url": "https://github.com/DianeLooney" + } + ], "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -49,6 +99,7 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "description": "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.", "devDependencies": { "bash-match": "^1.0.2", "for-own": "^1.0.0", @@ -63,6 +114,14 @@ "mocha": "^3.5.0", "multimatch": "^2.1.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/micromatch/micromatch", "keywords": [ "bash", "expand", @@ -92,6 +151,7 @@ "shell", "wildcard" ], + "license": "MIT", "lintDeps": { "dependencies": { "options": { @@ -110,6 +170,15 @@ } } }, + "main": "index.js", + "name": "micromatch", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/micromatch.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": "collapsible", "layout": "default", @@ -142,5 +211,6 @@ "multimatch", "snapdragon" ] - } + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/postcss/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/postcss/package.json index 805bf7dbd..9230f0c94 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/postcss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/postcss/package.json @@ -1,31 +1,50 @@ { - "name": "postcss", - "version": "5.2.18", - "description": "Tool for transforming styles with JS plugins", - "engines": { - "node": ">=0.12" + "_args": [ + [ + "postcss@5.2.18", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "postcss@5.2.18", + "_id": "postcss@5.2.18", + "_inBundle": false, + "_integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", + "_location": "/svg-baker/postcss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "postcss@5.2.18", + "name": "postcss", + "escapedName": "postcss", + "rawSpec": "5.2.18", + "saveSpec": null, + "fetchSpec": "5.2.18" }, - "keywords": [ - "css", - "postcss", - "rework", - "preprocessor", - "parser", - "source map", - "transform", - "manipulation", - "transpiler" + "_requiredBy": [ + "/svg-baker" ], - "author": "Andrey Sitnik ", - "license": "MIT", - "homepage": "http://postcss.org/", - "repository": "postcss/postcss", + "_resolved": "https://registry.nlark.com/postcss/download/postcss-5.2.18.tgz", + "_spec": "5.2.18", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrey Sitnik", + "email": "andrey@sitnik.ru" + }, + "browser": { + "fs": false + }, + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, "dependencies": { "chalk": "^1.1.3", "js-base64": "^2.1.9", "source-map": "^0.5.6", "supports-color": "^3.2.3" }, + "description": "Tool for transforming styles with JS plugins", "devDependencies": { "ava": "^0.17.0", "babel-core": "^6.24.0", @@ -56,21 +75,40 @@ "strip-ansi": "^3.0.1", "yaspeller-ci": "^0.3.0" }, - "scripts": { - "lint-staged": "lint-staged", - "test": "gulp" + "engines": { + "node": ">=0.12" }, - "main": "lib/postcss", - "types": "lib/postcss.d.ts", + "homepage": "http://postcss.org/", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "license": "MIT", "lint-staged": { "test/*.js": "eslint", "lib/*.es6": "eslint", "*.md": "yaspeller-ci" }, + "main": "lib/postcss", + "name": "postcss", "pre-commit": [ "lint-staged" ], - "browser": { - "fs": false - } + "repository": { + "type": "git", + "url": "git+https://github.com/postcss/postcss.git" + }, + "scripts": { + "lint-staged": "lint-staged", + "test": "gulp" + }, + "types": "lib/postcss.d.ts", + "version": "5.2.18" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/supports-color/package.json index 0cc4b383d..bbad91e34 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/node_modules/supports-color/package.json @@ -1,31 +1,59 @@ { - "name": "supports-color", - "version": "3.2.3", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", + "_args": [ + [ + "supports-color@3.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@3.2.3", + "_id": "supports-color@3.2.3", + "_inBundle": false, + "_integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "_location": "/svg-baker/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@3.2.3", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "3.2.3", + "saveSpec": null, + "fetchSpec": "3.2.3" + }, + "_requiredBy": [ + "/svg-baker/postcss" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-3.2.3.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", + "_spec": "3.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Boy Nicolai Appelman (jbna.nl)", - "JD Ballard (github.com/qix-)" - ], "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^1.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "mocha": "*", + "require-uncached": "^1.0.2", + "xo": "*" + }, "engines": { "node": ">=0.8.0" }, - "scripts": { - "test": "xo && mocha", - "travis": "mocha" - }, "files": [ "index.js", "browser.js" ], + "homepage": "https://github.com/chalk/supports-color#readme", "keywords": [ "color", "colour", @@ -49,14 +77,34 @@ "16m", "million" ], - "dependencies": { - "has-flag": "^1.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Boy Nicolai Appelman", + "email": "joshua@jbna.nl", + "url": "jbna.nl" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" }, - "devDependencies": { - "mocha": "*", - "require-uncached": "^1.0.2", - "xo": "*" + "scripts": { + "test": "xo && mocha", + "travis": "mocha" }, + "version": "3.2.3", "xo": { "envs": [ "node", diff --git a/admin/vue2/element-admin-v3/node_modules/svg-baker/package.json b/admin/vue2/element-admin-v3/node_modules/svg-baker/package.json index 8f8f937c3..f8d4efdfb 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-baker/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-baker/package.json @@ -1,17 +1,55 @@ { - "name": "svg-baker", - "version": "1.7.0", - "description": "", - "author": "JetBrains", - "homepage": "https://github.com/JetBrains/svg-mixer/tree/v1", - "license": "MIT", - "repository": "https://github.com/JetBrains/svg-mixer/tree/v1", - "main": "lib/compiler.js", - "files": [ - "lib/", - "namespaces.js", - "README.md" + "_args": [ + [ + "svg-baker@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "svg-baker@1.7.0", + "_id": "svg-baker@1.7.0", + "_inBundle": false, + "_integrity": "sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=", + "_location": "/svg-baker", + "_phantomChildren": { + "ansi-styles": "2.2.1", + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "escape-string-regexp": "1.0.5", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "has-ansi": "2.0.0", + "is-extendable": "0.1.1", + "js-base64": "2.6.4", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "source-map": "0.5.7", + "strip-ansi": "3.0.1", + "to-regex": "3.0.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "svg-baker@1.7.0", + "name": "svg-baker", + "escapedName": "svg-baker", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" + }, + "_requiredBy": [ + "/svg-baker-runtime", + "/svg-sprite-loader" ], + "_resolved": "https://registry.npm.taobao.org/svg-baker/download/svg-baker-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "JetBrains" + }, "dependencies": { "bluebird": "^3.5.0", "clone": "^2.1.1", @@ -27,8 +65,23 @@ "query-string": "^4.3.2", "traverse": "^0.6.6" }, + "description": "", + "files": [ + "lib/", + "namespaces.js", + "README.md" + ], + "homepage": "https://github.com/JetBrains/svg-mixer/tree/v1", + "license": "MIT", + "main": "lib/compiler.js", + "name": "svg-baker", + "repository": { + "type": "git", + "url": "https://github.com/JetBrains/svg-mixer/tree/v1" + }, "scripts": { "lint": "eslint lib test", "test": "nyc --reporter=lcov mocha --recursive -r ../../test/mocha-setup.js" - } + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/node_modules/deepmerge/package.json b/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/node_modules/deepmerge/package.json index 072974689..1c9f2dbb6 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/node_modules/deepmerge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/node_modules/deepmerge/package.json @@ -1,7 +1,49 @@ { - "author": "Nick Fisher", - "name": "deepmerge", + "_args": [ + [ + "deepmerge@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "deepmerge@1.3.2", + "_id": "deepmerge@1.3.2", + "_inBundle": false, + "_integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", + "_location": "/svg-sprite-loader/deepmerge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "deepmerge@1.3.2", + "name": "deepmerge", + "escapedName": "deepmerge", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" + }, + "_requiredBy": [ + "/svg-sprite-loader" + ], + "_resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fisher" + }, + "bugs": { + "url": "https://github.com/KyleAMathews/deepmerge/issues" + }, + "dependencies": {}, "description": "A library for deep (recursive) merging of Javascript objects", + "devDependencies": { + "jsmd": "0.3.1", + "tap": "~7.1.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/KyleAMathews/deepmerge", "keywords": [ "merge", "deep", @@ -10,23 +52,15 @@ "clone", "recursive" ], - "version": "1.3.2", - "homepage": "https://github.com/KyleAMathews/deepmerge", + "license": "MIT", + "main": "index", + "name": "deepmerge", "repository": { "type": "git", "url": "git://github.com/KyleAMathews/deepmerge.git" }, - "main": "index", - "engines": { - "node": ">=0.10.0" - }, "scripts": { "test": "tap test/*.js && jsmd README.markdown" }, - "dependencies": {}, - "devDependencies": { - "jsmd": "0.3.1", - "tap": "~7.1.2" - }, - "license": "MIT" + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/package.json b/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/package.json index 382b71a2a..42ad40b78 100644 --- a/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svg-sprite-loader/package.json @@ -1,34 +1,46 @@ { - "name": "svg-sprite-loader", - "version": "3.8.0", - "description": "Webpack loader for creating SVG sprites", - "keywords": [ - "svg", - "sprite", - "svg sprite", - "svg stack", - "webpack", - "webpack2", - "webpack3", - "webpack loader", - "webpack plugin" + "_args": [ + [ + "svg-sprite-loader@3.8.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/kisenka/svg-sprite-loader#readme", - "bugs": "https://github.com/kisenka/svg-sprite-loader/issues", - "license": "MIT", - "author": "kisenka", - "repository": "kisenka/svg-sprite-loader", - "main": "lib/loader.js", - "files": [ - "examples/**", - "lib/**", - "runtime/*.js", - "plugin.js", - "README.md", - "LICENSE" + "_development": true, + "_from": "svg-sprite-loader@3.8.0", + "_id": "svg-sprite-loader@3.8.0", + "_inBundle": false, + "_integrity": "sha1-IvpSsv8ZsBvdmPP/GX6YAZYPqmQ=", + "_location": "/svg-sprite-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "svg-sprite-loader@3.8.0", + "name": "svg-sprite-loader", + "escapedName": "svg-sprite-loader", + "rawSpec": "3.8.0", + "saveSpec": null, + "fetchSpec": "3.8.0" + }, + "_requiredBy": [ + "#DEV:/" ], - "engines": { - "node": ">=6" + "_resolved": "https://registry.nlark.com/svg-sprite-loader/download/svg-sprite-loader-3.8.0.tgz?cache=0&sync_timestamp=1622202416926&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsvg-sprite-loader%2Fdownload%2Fsvg-sprite-loader-3.8.0.tgz", + "_spec": "3.8.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "kisenka" + }, + "bugs": { + "url": "https://github.com/kisenka/svg-sprite-loader/issues" + }, + "config": { + "commitizen": { + "path": "node_modules/cz-customizable" + }, + "cz-customizable": { + "config": ".cz-config.js" + } }, "dependencies": { "bluebird": "^3.5.0", @@ -40,6 +52,7 @@ "svg-baker-runtime": "^1.3.3", "url-slug": "2.0.0" }, + "description": "Webpack loader for creating SVG sprites", "devDependencies": { "babel-core": "^6.24.1", "babel-loader": "^6.4.1", @@ -78,13 +91,35 @@ "webpack-cli": "^2.0.12", "webpack-toolkit": "^1.0.0" }, - "config": { - "commitizen": { - "path": "node_modules/cz-customizable" - }, - "cz-customizable": { - "config": ".cz-config.js" - } + "engines": { + "node": ">=6" + }, + "files": [ + "examples/**", + "lib/**", + "runtime/*.js", + "plugin.js", + "README.md", + "LICENSE" + ], + "homepage": "https://github.com/kisenka/svg-sprite-loader#readme", + "keywords": [ + "svg", + "sprite", + "svg sprite", + "svg stack", + "webpack", + "webpack2", + "webpack3", + "webpack loader", + "webpack plugin" + ], + "license": "MIT", + "main": "lib/loader.js", + "name": "svg-sprite-loader", + "repository": { + "type": "git", + "url": "git+https://github.com/kisenka/svg-sprite-loader.git" }, "scripts": { "bootstrap": "node scripts/bootstrap", @@ -95,8 +130,8 @@ "env": "node scripts/select-env", "lint": "eslint --quiet lib runtime scripts test", "precommit": "yarn lint", - "pretest": "yarn build:runtime", "prerelease": "yarn build:runtime && yarn lint && yarn test:all", + "pretest": "yarn build:runtime", "release": "yarn build:examples && git add examples && standard-version -a && git push --follow-tags origin master", "release:dry-run": "standard-version --no-verify", "test": "nyc --check-coverage mocha test/*.test.js", @@ -106,5 +141,6 @@ "test:webpack-3": "yarn env webpack-3 && yarn test", "test:webpack-4": "yarn env webpack-4 && yarn test", "upload-coverage": "codeclimate-test-reporter < coverage/lcov.info" - } + }, + "version": "3.8.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-select/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-select/package.json index 9dc02964f..120eb3d6d 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-select/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-select/package.json @@ -1,28 +1,47 @@ { - "name": "css-select", - "version": "2.1.0", - "description": "a CSS selector compiler/engine", - "author": "Felix Boehm ", - "keywords": [ - "css", - "selector", - "sizzle" + "_args": [ + [ + "css-select@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/css-select.git" + "_development": true, + "_from": "css-select@2.1.0", + "_id": "css-select@2.1.0", + "_inBundle": false, + "_integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", + "_location": "/svgo/css-select", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-select@2.1.0", + "name": "css-select", + "escapedName": "css-select", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "files": [ - "index.js", - "index.d.ts", - "lib" + "_requiredBy": [ + "/svgo" ], + "_resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/css-select/issues" + }, "dependencies": { "boolbase": "^1.0.0", "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" }, + "description": "a CSS selector compiler/engine", "devDependencies": { "cheerio-soupselect": "^0.1.1", "coveralls": "^3.0.2", @@ -33,15 +52,32 @@ "mocha": "^6.0.0", "mocha-lcov-reporter": "^1.3.0" }, + "files": [ + "index.js", + "index.d.ts", + "lib" + ], + "homepage": "https://github.com/fb55/css-select#readme", + "keywords": [ + "css", + "selector", + "sizzle" + ], + "license": "BSD-2-Clause", + "name": "css-select", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/css-select.git" + }, "scripts": { - "test": "mocha && npm run lint", - "lint": "eslint index.js lib/*.js test/*.js", + "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)", "lcov": "istanbul cover _mocha --report lcovonly -- -R spec", - "coveralls": "npm run lint && npm run lcov && (cat coverage/lcov.info | coveralls || exit 0)" + "lint": "eslint index.js lib/*.js test/*.js", + "test": "mocha && npm run lint" }, - "license": "BSD-2-Clause", "types": "index.d.ts", - "prettier": { - "tabWidth": 4 - } + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-what/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-what/package.json index 68fc4ca56..5a18813b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-what/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/css-what/package.json @@ -1,55 +1,92 @@ { - "author": "Felix Böhm (http://feedic.com)", + "_args": [ + [ + "css-what@3.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "css-what@3.4.2", + "_id": "css-what@3.4.2", + "_inBundle": false, + "_integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", + "_location": "/svgo/css-what", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "css-what@3.4.2", "name": "css-what", - "description": "a CSS selector parser", - "version": "3.4.2", - "funding": "https://github.com/sponsors/fb55", - "repository": { - "url": "https://github.com/fb55/css-what" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "scripts": { - "test": "jest --coverage -u && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint src", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc", - "prepare": "npm run build" - }, - "dependencies": {}, - "devDependencies": { - "@types/jest": "^26.0.3", - "@types/node": "^14.0.5", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "coveralls": "^3.0.5", - "eslint": "^7.0.0", - "eslint-config-prettier": "^6.0.0", - "eslint-plugin-node": "^11.1.0", - "jest": "^26.0.1", - "prettier": "^2.0.5", - "ts-jest": "^26.0.0", - "typescript": "^4.0.2" - }, - "optionalDependencies": {}, - "engines": { - "node": ">= 6" - }, - "license": "BSD-2-Clause", - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4 - } + "escapedName": "css-what", + "rawSpec": "3.4.2", + "saveSpec": null, + "fetchSpec": "3.4.2" + }, + "_requiredBy": [ + "/svgo/css-select" + ], + "_resolved": "https://registry.nlark.com/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1622227760882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", + "_spec": "3.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Böhm", + "email": "me@feedic.com", + "url": "http://feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/css-what/issues" + }, + "dependencies": {}, + "description": "a CSS selector parser", + "devDependencies": { + "@types/jest": "^26.0.3", + "@types/node": "^14.0.5", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "coveralls": "^3.0.5", + "eslint": "^7.0.0", + "eslint-config-prettier": "^6.0.0", + "eslint-plugin-node": "^11.1.0", + "jest": "^26.0.1", + "prettier": "^2.0.5", + "ts-jest": "^26.0.0", + "typescript": "^4.0.2" + }, + "engines": { + "node": ">= 6" + }, + "files": [ + "lib/**/*" + ], + "funding": "https://github.com/sponsors/fb55", + "homepage": "https://github.com/fb55/css-what#readme", + "jest": { + "preset": "ts-jest", + "testEnvironment": "node" + }, + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "css-what", + "optionalDependencies": {}, + "prettier": { + "tabWidth": 4 + }, + "repository": { + "url": "git+https://github.com/fb55/css-what.git" + }, + "scripts": { + "build": "tsc", + "coverage": "cat coverage/lcov.info | coveralls", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint src", + "lint:prettier": "npm run prettier -- --check", + "prepare": "npm run build", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "test": "jest --coverage -u && npm run lint" + }, + "types": "lib/index.d.ts", + "version": "3.4.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/node_modules/domelementtype/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/node_modules/domelementtype/package.json index eb62c2944..38c52f3db 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/node_modules/domelementtype/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/node_modules/domelementtype/package.json @@ -1,45 +1,81 @@ { + "_args": [ + [ + "domelementtype@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domelementtype@2.2.0", + "_id": "domelementtype@2.2.0", + "_inBundle": false, + "_integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", + "_location": "/svgo/dom-serializer/domelementtype", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domelementtype@2.2.0", "name": "domelementtype", - "version": "2.2.0", - "description": "all the types of nodes in htmlparser2's dom", - "author": "Felix Boehm ", - "license": "BSD-2-Clause", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "sideEffects": false, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/domelementtype.git" - }, - "keywords": [ - "dom", - "htmlparser2" - ], - "scripts": { - "test": "npm run lint && prettier --check **/*.{ts,json,md}", - "lint": "eslint src", - "format": "prettier --write **/*.{ts,json,md}", - "build": "tsc", - "prepare": "npm run build" - }, - "prettier": { - "tabWidth": 4 - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "eslint": "^7.9.0", - "eslint-config-prettier": "^6.0.0", - "prettier": "^2.1.1", - "typescript": "^4.0.2" + "escapedName": "domelementtype", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/svgo/dom-serializer" + ], + "_resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domelementtype/issues" + }, + "description": "all the types of nodes in htmlparser2's dom", + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "eslint": "^7.9.0", + "eslint-config-prettier": "^6.0.0", + "prettier": "^2.1.1", + "typescript": "^4.0.2" + }, + "files": [ + "lib/**/*" + ], + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ], + "homepage": "https://github.com/fb55/domelementtype#readme", + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "domelementtype", + "prettier": { + "tabWidth": 4 + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/domelementtype.git" + }, + "scripts": { + "build": "tsc", + "format": "prettier --write **/*.{ts,json,md}", + "lint": "eslint src", + "prepare": "npm run build", + "test": "npm run lint && prettier --check **/*.{ts,json,md}" + }, + "sideEffects": false, + "types": "lib/index.d.ts", + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/package.json index 0ee1437f4..cc4056aed 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/dom-serializer/package.json @@ -1,27 +1,45 @@ { - "name": "dom-serializer", - "version": "0.2.2", - "description": "render dom nodes to string", - "author": "Felix Boehm ", - "keywords": [ - "html", - "xml", - "render" + "_args": [ + [ + "dom-serializer@0.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": { - "type": "git", - "url": "git://github.com/cheeriojs/dom-renderer.git" + "_development": true, + "_from": "dom-serializer@0.2.2", + "_id": "dom-serializer@0.2.2", + "_inBundle": false, + "_integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "_location": "/svgo/dom-serializer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "dom-serializer@0.2.2", + "name": "dom-serializer", + "escapedName": "dom-serializer", + "rawSpec": "0.2.2", + "saveSpec": null, + "fetchSpec": "0.2.2" }, - "main": "./index.js", - "files": [ - "index.js", - "index.d.ts", - "foreignNames.json" + "_requiredBy": [ + "/svgo/domutils" ], + "_resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "_spec": "0.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/cheeriojs/dom-renderer/issues" + }, "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" }, + "description": "render dom nodes to string", "devDependencies": { "cheerio": "^1.0.0-rc.2", "expect.js": "~0.3.1", @@ -30,11 +48,29 @@ "mocha": "^6.2.0", "xyz": "^3.0.0" }, - "scripts": { - "test": "mocha test.js" - }, + "files": [ + "index.js", + "index.d.ts", + "foreignNames.json" + ], + "homepage": "https://github.com/cheeriojs/dom-renderer#readme", + "keywords": [ + "html", + "xml", + "render" + ], + "license": "MIT", + "main": "./index.js", + "name": "dom-serializer", "prettier": { "singleQuote": true }, - "license": "MIT" + "repository": { + "type": "git", + "url": "git://github.com/cheeriojs/dom-renderer.git" + }, + "scripts": { + "test": "mocha test.js" + }, + "version": "0.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domelementtype/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domelementtype/package.json index 21f3c2336..5d284d853 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domelementtype/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domelementtype/package.json @@ -1,16 +1,52 @@ { - "name": "domelementtype", - "version": "1.3.1", + "_args": [ + [ + "domelementtype@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domelementtype@1.3.1", + "_id": "domelementtype@1.3.1", + "_inBundle": false, + "_integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "_location": "/svgo/domelementtype", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domelementtype@1.3.1", + "name": "domelementtype", + "escapedName": "domelementtype", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" + }, + "_requiredBy": [ + "/svgo/domutils" + ], + "_resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/domelementtype/issues" + }, "description": "all the types of nodes in htmlparser2's dom", + "homepage": "https://github.com/fb55/domelementtype#readme", + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", "main": "index.js", + "name": "domelementtype", "repository": { "type": "git", "url": "git://github.com/fb55/domelementtype.git" }, - "keywords": [ - "dom", - "htmlparser2" - ], - "author": "Felix Boehm ", - "license": "BSD-2-Clause" + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domutils/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domutils/package.json index 0267af910..bb63277ca 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domutils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/domutils/package.json @@ -1,34 +1,55 @@ { - "name": "domutils", - "version": "1.7.0", - "description": "utilities for working with htmlparser2's dom", - "main": "index.js", - "directories": { - "test": "tests" + "_args": [ + [ + "domutils@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "domutils@1.7.0", + "_id": "domutils@1.7.0", + "_inBundle": false, + "_integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "_location": "/svgo/domutils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "domutils@1.7.0", + "name": "domutils", + "escapedName": "domutils", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" }, - "scripts": { - "test": "mocha test/tests/**.js && jshint index.js test/**/*.js lib/*.js" + "_requiredBy": [ + "/svgo/css-select" + ], + "_resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" }, - "repository": { - "type": "git", - "url": "git://github.com/FB55/domutils.git" + "bugs": { + "url": "https://github.com/FB55/domutils/issues" }, - "keywords": [ - "dom", - "htmlparser2" - ], "dependencies": { "dom-serializer": "0", "domelementtype": "1" }, + "description": "utilities for working with htmlparser2's dom", "devDependencies": { - "htmlparser2": "~3.9.2", "domhandler": "2", + "htmlparser2": "~3.9.2", "jshint": "~2.9.4", "mocha": "~3.2.0" }, - "author": "Felix Boehm ", - "license": "BSD-2-Clause", + "directories": { + "test": "tests" + }, + "homepage": "https://github.com/FB55/domutils#readme", "jshintConfig": { "proto": true, "unused": true, @@ -43,5 +64,20 @@ "it": true, "beforeEach": true } - } + }, + "keywords": [ + "dom", + "htmlparser2" + ], + "license": "BSD-2-Clause", + "main": "index.js", + "name": "domutils", + "repository": { + "type": "git", + "url": "git://github.com/FB55/domutils.git" + }, + "scripts": { + "test": "mocha test/tests/**.js && jshint index.js test/**/*.js lib/*.js" + }, + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/nth-check/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/nth-check/package.json index 1a41b02b3..3d5de9796 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/nth-check/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/node_modules/nth-check/package.json @@ -1,32 +1,64 @@ { - "name": "nth-check", - "version": "1.0.2", - "description": "performant nth-check parser & compiler", - "main": "index.js", - "scripts": { - "test": "node test" + "_args": [ + [ + "nth-check@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "nth-check@1.0.2", + "_id": "nth-check@1.0.2", + "_inBundle": false, + "_integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", + "_location": "/svgo/nth-check", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "nth-check@1.0.2", + "name": "nth-check", + "escapedName": "nth-check", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "repository": { - "type": "git", - "url": "https://github.com/fb55/nth-check" + "_requiredBy": [ + "/svgo/css-select" + ], + "_resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Boehm", + "email": "me@feedic.com" + }, + "bugs": { + "url": "https://github.com/fb55/nth-check/issues" + }, + "dependencies": { + "boolbase": "~1.0.0" }, + "description": "performant nth-check parser & compiler", "files": [ "compile.js", "index.js", "parse.js" ], + "homepage": "https://github.com/fb55/nth-check", "keywords": [ "nth-child", "nth", "css" ], - "author": "Felix Boehm ", "license": "BSD-2-Clause", - "bugs": { - "url": "https://github.com/fb55/nth-check/issues" + "main": "index.js", + "name": "nth-check", + "repository": { + "type": "git", + "url": "git+https://github.com/fb55/nth-check.git" }, - "homepage": "https://github.com/fb55/nth-check", - "dependencies": { - "boolbase": "~1.0.0" - } + "scripts": { + "test": "node test" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/svgo/package.json b/admin/vue2/element-admin-v3/node_modules/svgo/package.json index 4f4f18267..832a94f15 100644 --- a/admin/vue2/element-admin-v3/node_modules/svgo/package.json +++ b/admin/vue2/element-admin-v3/node_modules/svgo/package.json @@ -1,22 +1,48 @@ { - "name": "svgo", - "version": "1.3.2", - "description": "Nodejs-based tool for optimizing SVG vector graphics files", - "keywords": [ - "svgo", - "svg", - "optimize", - "minify" + "_args": [ + [ + "svgo@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/svg/svgo", - "bugs": { - "url": "https://github.com/svg/svgo/issues" + "_development": true, + "_from": "svgo@1.3.2", + "_id": "svgo@1.3.2", + "_inBundle": false, + "_integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "_location": "/svgo", + "_phantomChildren": { + "boolbase": "1.0.0", + "entities": "2.2.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "svgo@1.3.2", + "name": "svgo", + "escapedName": "svgo", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" }, + "_requiredBy": [ + "#DEV:/", + "/postcss-svgo" + ], + "_resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1616929367791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Kir Belevich", "email": "kir@belevi.ch", "url": "https://github.com/deepsweet" }, + "bin": { + "svgo": "bin/svgo" + }, + "bugs": { + "url": "https://github.com/svg/svgo/issues" + }, "contributors": [ { "name": "Sergey Belov", @@ -29,24 +55,6 @@ "url": "http://github.com/GreLI" } ], - "repository": { - "type": "git", - "url": "git://github.com/svg/svgo.git" - }, - "main": "./lib/svgo.js", - "bin": { - "svgo": "./bin/svgo" - }, - "directories": { - "bin": "./bin", - "lib": "./lib", - "example": "./examples" - }, - "scripts": { - "test": "set NODE_ENV=test && mocha", - "lint": "jshint --show-non-errors .", - "jshint": "npm run lint" - }, "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", @@ -62,6 +70,7 @@ "unquote": "~1.1.1", "util.promisify": "~1.0.0" }, + "description": "Nodejs-based tool for optimizing SVG vector graphics files", "devDependencies": { "coveralls": "^3.0.7", "fs-extra": "~8.1.0", @@ -72,8 +81,32 @@ "mock-stdin": "~0.3.1", "should": "~13.2.3" }, + "directories": { + "bin": "./bin", + "lib": "./lib", + "example": "./examples" + }, "engines": { "node": ">=4.0.0" }, - "license": "MIT" + "homepage": "https://github.com/svg/svgo", + "keywords": [ + "svgo", + "svg", + "optimize", + "minify" + ], + "license": "MIT", + "main": "./lib/svgo.js", + "name": "svgo", + "repository": { + "type": "git", + "url": "git://github.com/svg/svgo.git" + }, + "scripts": { + "jshint": "npm run lint", + "lint": "jshint --show-non-errors .", + "test": "set NODE_ENV=test && mocha" + }, + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/symbol-observable/package.json b/admin/vue2/element-admin-v3/node_modules/symbol-observable/package.json index 0e14c55c8..dba833ed0 100644 --- a/admin/vue2/element-admin-v3/node_modules/symbol-observable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/symbol-observable/package.json @@ -1,21 +1,53 @@ { - "name": "symbol-observable", - "version": "1.2.0", - "description": "Symbol.observable ponyfill", - "license": "MIT", - "repository": "blesh/symbol-observable", + "_args": [ + [ + "symbol-observable@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "symbol-observable@1.2.0", + "_id": "symbol-observable@1.2.0", + "_inBundle": false, + "_integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=", + "_location": "/symbol-observable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "symbol-observable@1.2.0", + "name": "symbol-observable", + "escapedName": "symbol-observable", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/is-observable" + ], + "_resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz?cache=0&sync_timestamp=1618451954701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsymbol-observable%2Fdownload%2Fsymbol-observable-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Ben Lesh", "email": "ben@benlesh.com" }, + "bugs": { + "url": "https://github.com/blesh/symbol-observable/issues" + }, + "description": "Symbol.observable ponyfill", + "devDependencies": { + "babel-cli": "^6.9.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-es3": "^1.0.0", + "chai": "^3.5.0", + "check-es3-syntax-cli": "^0.1.0", + "mocha": "^2.4.5", + "typescript": "^2.1.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "npm run build && mocha && tsc && node ./ts-test/test.js && check-es3-syntax -p lib/ --kill", - "build": "babel es --out-dir lib", - "prepublish": "npm test" - }, "files": [ "index.js", "ponyfill.js", @@ -25,10 +57,8 @@ "lib/index.js", "lib/ponyfill.js" ], - "main": "lib/index.js", - "module": "es/index.js", + "homepage": "https://github.com/blesh/symbol-observable#readme", "jsnext:main": "es/index.js", - "typings": "index.d.ts", "keywords": [ "symbol", "observable", @@ -37,13 +67,19 @@ "polyfill", "shim" ], - "devDependencies": { - "babel-cli": "^6.9.0", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es3": "^1.0.0", - "chai": "^3.5.0", - "check-es3-syntax-cli": "^0.1.0", - "mocha": "^2.4.5", - "typescript": "^2.1.4" - } + "license": "MIT", + "main": "lib/index.js", + "module": "es/index.js", + "name": "symbol-observable", + "repository": { + "type": "git", + "url": "git+https://github.com/blesh/symbol-observable.git" + }, + "scripts": { + "build": "babel es --out-dir lib", + "prepublish": "npm test", + "test": "npm run build && mocha && tsc && node ./ts-test/test.js && check-es3-syntax -p lib/ --kill" + }, + "typings": "index.d.ts", + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv-keywords/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv-keywords/package.json index d8e5afd7e..8590655b8 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv-keywords/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv-keywords/package.json @@ -1,38 +1,40 @@ { - "name": "ajv-keywords", - "version": "2.1.1", - "description": "Custom JSON-Schema keywords for Ajv validator", - "main": "index.js", - "scripts": { - "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib keywords", - "prepublish": "npm run build", - "test": "npm run build && npm run eslint && npm run test-cov", - "eslint": "eslint index.js keywords/*.js", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "istanbul cover -x 'spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/ajv-keywords.git" - }, - "keywords": [ - "JSON-Schema", - "ajv", - "keywords" + "_args": [ + [ + "ajv-keywords@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "index.js", - "keywords" + "_development": true, + "_from": "ajv-keywords@2.1.1", + "_id": "ajv-keywords@2.1.1", + "_inBundle": false, + "_integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "_location": "/table/ajv-keywords", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ajv-keywords@2.1.1", + "name": "ajv-keywords", + "escapedName": "ajv-keywords", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/table" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/ajv-keywords/issues" }, - "homepage": "https://github.com/epoberezkin/ajv-keywords#readme", - "peerDependencies": { - "ajv": "^5.0.0" - }, + "description": "Custom JSON-Schema keywords for Ajv validator", "devDependencies": { "ajv": "^5.0.0", "ajv-pack": "^0.3.0", @@ -47,5 +49,34 @@ "mocha": "^4.0.0", "pre-commit": "^1.1.3", "uuid": "^3.0.1" - } + }, + "files": [ + "index.js", + "keywords" + ], + "homepage": "https://github.com/epoberezkin/ajv-keywords#readme", + "keywords": [ + "JSON-Schema", + "ajv", + "keywords" + ], + "license": "MIT", + "main": "index.js", + "name": "ajv-keywords", + "peerDependencies": { + "ajv": "^5.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv-keywords.git" + }, + "scripts": { + "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib keywords", + "eslint": "eslint index.js keywords/*.js", + "prepublish": "npm run build", + "test": "npm run build && npm run eslint && npm run test-cov", + "test-cov": "istanbul cover -x 'spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-spec": "mocha spec/*.spec.js -R spec" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv/package.json index 5b2ba14d2..e94cf600b 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/ajv/package.json @@ -1,73 +1,46 @@ { - "name": "ajv", - "version": "5.5.2", - "description": "Another JSON Schema Validator", - "main": "lib/ajv.js", - "typings": "lib/ajv.d.ts", - "files": [ - "lib/", - "dist/", - "scripts/", - "LICENSE", - ".tonic_example.js" - ], - "scripts": { - "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", - "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", - "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", - "test-fast": "AJV_FAST_TEST=true npm run test-spec", - "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", - "bundle": "node ./scripts/bundle.js . Ajv pure_getters", - "bundle-regenerator": "node ./scripts/bundle.js regenerator", - "bundle-nodent": "node ./scripts/bundle.js nodent", - "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", - "bundle-beautify": "node ./scripts/bundle.js js-beautify", - "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", - "test-karma": "karma start --single-run --browsers PhantomJS", - "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", - "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", - "prepublish": "npm run build && npm run bundle-all", - "watch": "watch 'npm run build' ./lib/dot" - }, - "nyc": { - "exclude": [ - "**/spec/**", - "node_modules" - ], - "reporter": [ - "lcov", - "text-summary" + "_args": [ + [ + "ajv@5.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_development": true, + "_from": "ajv@5.5.2", + "_id": "ajv@5.5.2", + "_inBundle": false, + "_integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "_location": "/table/ajv", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ajv@5.5.2", + "name": "ajv", + "escapedName": "ajv", + "rawSpec": "5.5.2", + "saveSpec": null, + "fetchSpec": "5.5.2" }, - "repository": { - "type": "git", - "url": "https://github.com/epoberezkin/ajv.git" - }, - "keywords": [ - "JSON", - "schema", - "validator", - "validation", - "jsonschema", - "json-schema", - "json-schema-validator", - "json-schema-validation" + "_requiredBy": [ + "/table" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.nlark.com/ajv/download/ajv-5.5.2.tgz", + "_spec": "5.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, - "homepage": "https://github.com/epoberezkin/ajv", - "tonicExampleFilename": ".tonic_example.js", "dependencies": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.3.0" }, + "description": "Another JSON Schema Validator", "devDependencies": { "ajv-async": "^0.1.0", "bluebird": "^3.1.5", @@ -99,5 +72,63 @@ "typescript": "^2.6.2", "uglify-js": "^3.1.5", "watch": "^1.0.0" - } + }, + "files": [ + "lib/", + "dist/", + "scripts/", + "LICENSE", + ".tonic_example.js" + ], + "homepage": "https://github.com/epoberezkin/ajv", + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "license": "MIT", + "main": "lib/ajv.js", + "name": "ajv", + "nyc": { + "exclude": [ + "**/spec/**", + "node_modules" + ], + "reporter": [ + "lcov", + "text-summary" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "scripts": { + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "prepublish": "npm run build && npm run bundle-all", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test-cov": "nyc npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "watch": "watch 'npm run build' ./lib/dot" + }, + "tonicExampleFilename": ".tonic_example.js", + "typings": "lib/ajv.d.ts", + "version": "5.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/ansi-regex/package.json index e94852fd7..ff81edfcc 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/table/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/table/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/fast-deep-equal/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/fast-deep-equal/package.json index 1e7b6b499..8948dac26 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/fast-deep-equal/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/fast-deep-equal/package.json @@ -1,30 +1,40 @@ { - "name": "fast-deep-equal", - "version": "1.1.0", - "description": "Fast deep equal", - "main": "index.js", - "scripts": { - "eslint": "eslint *.js benchmark spec", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts", - "test": "npm run eslint && npm run test-ts && npm run test-cov" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + "_args": [ + [ + "fast-deep-equal@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "fast-deep-equal@1.1.0", + "_id": "fast-deep-equal@1.1.0", + "_inBundle": false, + "_integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "_location": "/table/fast-deep-equal", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fast-deep-equal@1.1.0", + "name": "fast-deep-equal", + "escapedName": "fast-deep-equal", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "keywords": [ - "fast", - "equal", - "deep-equal" + "_requiredBy": [ + "/table/ajv" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/fast-deep-equal/issues" }, - "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "description": "Fast deep equal", "devDependencies": { "benchmark": "^2.1.4", "coveralls": "^2.13.1", @@ -40,6 +50,19 @@ "typescript": "^2.6.1", "underscore": "^1.8.3" }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", + "keywords": [ + "fast", + "equal", + "deep-equal" + ], + "license": "MIT", + "main": "index.js", + "name": "fast-deep-equal", "nyc": { "exclude": [ "**/spec/**", @@ -50,9 +73,17 @@ "text-summary" ] }, - "files": [ - "index.js", - "index.d.ts" - ], - "types": "index.d.ts" + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" + }, + "scripts": { + "eslint": "eslint *.js benchmark spec", + "test": "npm run eslint && npm run test-ts && npm run test-cov", + "test-cov": "nyc npm run test-spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts" + }, + "types": "index.d.ts", + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/json-schema-traverse/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/json-schema-traverse/package.json index 843a4ce32..6bead4af6 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/json-schema-traverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/json-schema-traverse/package.json @@ -1,28 +1,40 @@ { - "name": "json-schema-traverse", - "version": "0.3.1", - "description": "Traverse JSON Schema passing each schema object to callback", - "main": "index.js", - "scripts": { - "eslint": "eslint index.js spec", - "test-spec": "mocha spec -R spec", - "test": "npm run eslint && nyc npm run test-spec" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/json-schema-traverse.git" + "_args": [ + [ + "json-schema-traverse@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "json-schema-traverse@0.3.1", + "_id": "json-schema-traverse@0.3.1", + "_inBundle": false, + "_integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "_location": "/table/json-schema-traverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "json-schema-traverse@0.3.1", + "name": "json-schema-traverse", + "escapedName": "json-schema-traverse", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" }, - "keywords": [ - "JSON-Schema", - "traverse", - "iterate" + "_requiredBy": [ + "/table/ajv" ], - "author": "Evgeny Poberezkin", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evgeny Poberezkin" + }, "bugs": { "url": "https://github.com/epoberezkin/json-schema-traverse/issues" }, - "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme", + "description": "Traverse JSON Schema passing each schema object to callback", "devDependencies": { "coveralls": "^2.13.1", "eslint": "^3.19.0", @@ -30,6 +42,15 @@ "nyc": "^11.0.2", "pre-commit": "^1.2.2" }, + "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme", + "keywords": [ + "JSON-Schema", + "traverse", + "iterate" + ], + "license": "MIT", + "main": "index.js", + "name": "json-schema-traverse", "nyc": { "exclude": [ "**/spec/**", @@ -39,5 +60,15 @@ "lcov", "text-summary" ] - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/json-schema-traverse.git" + }, + "scripts": { + "eslint": "eslint index.js spec", + "test": "npm run eslint && nyc npm run test-spec", + "test-spec": "mocha spec -R spec" + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/string-width/package.json index 89f0b6a6c..9f21c67dc 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/string-width/package.json @@ -1,55 +1,91 @@ { - "name": "string-width", - "version": "2.1.1", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "string-width@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@2.1.1", + "_id": "string-width@2.1.1", + "_inBundle": false, + "_integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "_location": "/table/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@2.1.1", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/table" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/table/node_modules/strip-ansi/package.json index 555f19461..223fd492b 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/table/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/table/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/table/package.json b/admin/vue2/element-admin-v3/node_modules/table/package.json index a7de3f2bb..81ad1a605 100644 --- a/admin/vue2/element-admin-v3/node_modules/table/package.json +++ b/admin/vue2/element-admin-v3/node_modules/table/package.json @@ -1,9 +1,45 @@ { + "_args": [ + [ + "table@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "table@4.0.2", + "_id": "table@4.0.2", + "_inBundle": false, + "_integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "_location": "/table", + "_phantomChildren": { + "co": "4.6.0", + "fast-json-stable-stringify": "2.1.0", + "is-fullwidth-code-point": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "table@4.0.2", + "name": "table", + "escapedName": "table", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" + }, + "_requiredBy": [ + "/eslint" + ], + "_resolved": "https://registry.nlark.com/table/download/table-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { - "email": "gajus@gajus.com", "name": "Gajus Kuizinas", + "email": "gajus@gajus.com", "url": "http://gajus.com" }, + "bugs": { + "url": "https://github.com/gajus/table/issues" + }, "dependencies": { "ajv": "^5.2.3", "ajv-keywords": "^2.1.0", @@ -30,6 +66,7 @@ "nyc": "^11.2.1", "sinon": "^4.0.0" }, + "homepage": "https://github.com/gajus/table#readme", "keywords": [ "ascii", "text", @@ -53,7 +90,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/gajus/table" + "url": "git+https://github.com/gajus/table.git" }, "scripts": { "build": "rm -fr ./dist && NODE_ENV=production babel --copy-files ./src --out-dir ./dist && npm run make-validators", diff --git a/admin/vue2/element-admin-v3/node_modules/tapable/package.json b/admin/vue2/element-admin-v3/node_modules/tapable/package.json index 6ab20c89b..5e60b7362 100644 --- a/admin/vue2/element-admin-v3/node_modules/tapable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tapable/package.json @@ -1,13 +1,41 @@ { - "name": "tapable", - "version": "1.1.3", - "author": "Tobias Koppers @sokra", - "description": "Just a little module for plugins.", - "license": "MIT", - "repository": { - "type": "git", - "url": "http://github.com/webpack/tapable.git" + "_args": [ + [ + "tapable@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tapable@1.1.3", + "_id": "tapable@1.1.3", + "_inBundle": false, + "_integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "_location": "/tapable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tapable@1.1.3", + "name": "tapable", + "escapedName": "tapable", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" }, + "_requiredBy": [ + "/enhanced-resolve", + "/html-webpack-plugin", + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088855476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/tapable/issues" + }, + "description": "Just a little module for plugins.", "devDependencies": { "babel-core": "^6.26.0", "babel-jest": "^21.0.2", @@ -25,15 +53,22 @@ "!lib/__tests__" ], "homepage": "https://github.com/webpack/tapable", - "main": "lib/index.js", - "scripts": { - "test": "jest", - "travis": "jest --coverage && codecov", - "pretty": "prettier --write lib/*.js lib/__tests__/*.js" - }, "jest": { "transform": { "__tests__[\\\\/].+\\.js$": "babel-jest" } - } + }, + "license": "MIT", + "main": "lib/index.js", + "name": "tapable", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/webpack/tapable.git" + }, + "scripts": { + "pretty": "prettier --write lib/*.js lib/__tests__/*.js", + "test": "jest", + "travis": "jest --coverage && codecov" + }, + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp index 6ba5765a8..bcd333f46 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp +++ b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" + "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" + ret=$? else - exec node "$basedir/../mkdirp/bin/cmd.js" "$@" + node "$basedir/../mkdirp/bin/cmd.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.cmd b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.cmd index 351da9dfe..5ef91c746 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.cmd +++ b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* +"%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.ps1 b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.ps1 index 911e85466..35ce69072 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/.bin/mkdirp.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/chownr/package.json b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/chownr/package.json index 5b0214ca1..ebda3d355 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/chownr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/chownr/package.json @@ -1,32 +1,69 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "chownr", - "description": "like `chown -R`", - "version": "2.0.0", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/chownr.git" + "_args": [ + [ + "chownr@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chownr@2.0.0", + "_id": "chownr@2.0.0", + "_inBundle": false, + "_integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", + "_location": "/tar/chownr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chownr@2.0.0", + "name": "chownr", + "escapedName": "chownr", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "main": "chownr.js", - "files": [ - "chownr.js" + "_requiredBy": [ + "/tar" ], + "_resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/chownr/issues" + }, + "description": "like `chown -R`", "devDependencies": { "mkdirp": "0.3", "rimraf": "^2.7.1", "tap": "^14.10.6" }, - "tap": { - "check-coverage": true + "engines": { + "node": ">=10" + }, + "files": [ + "chownr.js" + ], + "homepage": "https://github.com/isaacs/chownr#readme", + "license": "ISC", + "main": "chownr.js", + "name": "chownr", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/chownr.git" }, "scripts": { - "test": "tap", - "preversion": "npm test", "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "test": "tap" }, - "license": "ISC", - "engines": { - "node": ">=10" - } + "tap": { + "check-coverage": true + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/mkdirp/package.json b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/mkdirp/package.json index 2913ed09b..c15611860 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/mkdirp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/mkdirp/package.json @@ -1,8 +1,53 @@ { - "name": "mkdirp", + "_args": [ + [ + "mkdirp@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mkdirp@1.0.4", + "_id": "mkdirp@1.0.4", + "_inBundle": false, + "_integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "_location": "/tar/mkdirp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mkdirp@1.0.4", + "name": "mkdirp", + "escapedName": "mkdirp", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" + }, + "_requiredBy": [ + "/tar" + ], + "_resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "bugs": { + "url": "https://github.com/isaacs/node-mkdirp/issues" + }, "description": "Recursively mkdir, like `mkdir -p`", - "version": "1.0.4", - "main": "index.js", + "devDependencies": { + "require-inject": "^1.4.4", + "tap": "^14.10.7" + }, + "engines": { + "node": ">=10" + }, + "files": [ + "bin", + "lib", + "index.js" + ], + "homepage": "https://github.com/isaacs/node-mkdirp#readme", "keywords": [ "mkdir", "directory", @@ -12,33 +57,23 @@ "recursive", "native" ], + "license": "MIT", + "main": "index.js", + "name": "mkdirp", "repository": { "type": "git", - "url": "https://github.com/isaacs/node-mkdirp.git" + "url": "git+https://github.com/isaacs/node-mkdirp.git" }, "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", + "postpublish": "git push origin --follow-tags", "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "preversion": "npm test", + "snap": "tap", + "test": "tap" }, "tap": { "check-coverage": true, "coverage-map": "map.js" }, - "devDependencies": { - "require-inject": "^1.4.4", - "tap": "^14.10.7" - }, - "bin": "bin/cmd.js", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "files": [ - "bin", - "lib", - "index.js" - ] + "version": "1.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/yallist/package.json b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/yallist/package.json index 8a083867d..158b59dad 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/node_modules/yallist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tar/node_modules/yallist/package.json @@ -1,8 +1,46 @@ { - "name": "yallist", - "version": "4.0.0", + "_args": [ + [ + "yallist@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yallist@4.0.0", + "_id": "yallist@4.0.0", + "_inBundle": false, + "_integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "_location": "/tar/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yallist@4.0.0", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/tar" + ], + "_resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "dependencies": {}, "description": "Yet Another Linked List", - "main": "yallist.js", + "devDependencies": { + "tap": "^12.1.0" + }, "directories": { "test": "test" }, @@ -10,20 +48,19 @@ "yallist.js", "iterator.js" ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", "repository": { "type": "git", "url": "git+https://github.com/isaacs/yallist.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tar/package.json b/admin/vue2/element-admin-v3/node_modules/tar/package.json index 9b8b96ec6..5ecb3c0b2 100644 --- a/admin/vue2/element-admin-v3/node_modules/tar/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tar/package.json @@ -1,23 +1,40 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "tar", - "description": "tar for node", - "version": "6.1.0", - "repository": { - "type": "git", - "url": "https://github.com/npm/node-tar.git" + "_args": [ + [ + "tar@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "tar@6.1.0", + "_id": "tar@6.1.0", + "_inBundle": false, + "_integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=", + "_location": "/tar", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tar@6.1.0", + "name": "tar", + "escapedName": "tar", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" }, - "scripts": { - "test": "tap", - "posttest": "npm run lint", - "eslint": "eslint", - "lint": "npm run eslint -- test lib", - "lintfix": "npm run lint -- --fix", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags", - "genparse": "node scripts/generate-parse-fixtures.js", - "bench": "for i in benchmarks/*/*.js; do echo $i; for j in {1..5}; do node $i || break; done; done" + "_requiredBy": [ + "/node-gyp" + ], + "_resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/node-tar/issues" }, "dependencies": { "chownr": "^2.0.0", @@ -27,6 +44,7 @@ "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, + "description": "tar for node", "devDependencies": { "chmodr": "^1.2.0", "end-of-stream": "^1.4.3", @@ -42,7 +60,6 @@ "tar-fs": "^1.16.3", "tar-stream": "^1.6.2" }, - "license": "ISC", "engines": { "node": ">= 10" }, @@ -50,8 +67,28 @@ "index.js", "lib/*.js" ], + "homepage": "https://github.com/npm/node-tar#readme", + "license": "ISC", + "name": "tar", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-tar.git" + }, + "scripts": { + "bench": "for i in benchmarks/*/*.js; do echo $i; for j in {1..5}; do node $i || break; done; done", + "eslint": "eslint", + "genparse": "node scripts/generate-parse-fixtures.js", + "lint": "npm run eslint -- test lib", + "lintfix": "npm run lint -- --fix", + "posttest": "npm run lint", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", + "test": "tap" + }, "tap": { "coverage-map": "map.js", "check-coverage": true - } + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/text-table/package.json b/admin/vue2/element-admin-v3/node_modules/text-table/package.json index b4d17a4ff..e0d2b4589 100644 --- a/admin/vue2/element-admin-v3/node_modules/text-table/package.json +++ b/admin/vue2/element-admin-v3/node_modules/text-table/package.json @@ -1,44 +1,79 @@ { + "_args": [ + [ + "text-table@0.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "text-table@0.2.0", + "_id": "text-table@0.2.0", + "_inBundle": false, + "_integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "_location": "/text-table", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "text-table@0.2.0", "name": "text-table", - "version": "0.2.0", - "description": "borderless text tables with alignment", - "main": "index.js", - "devDependencies": { - "tap": "~0.4.0", - "tape": "~1.0.2", - "cli-color": "~0.2.3" - }, - "scripts": { - "test": "tap test/*.js" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : [ - "ie/6..latest", - "chrome/20..latest", - "firefox/10..latest", - "safari/latest", - "opera/11.0..latest", - "iphone/6", "ipad/6" - ] - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/text-table.git" - }, - "homepage": "https://github.com/substack/text-table", - "keywords": [ - "text", - "table", - "align", - "ascii", - "rows", - "tabular" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT" + "escapedName": "text-table", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils", + "/eslint", + "/eslint-friendly-formatter" + ], + "_resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", + "_spec": "0.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/text-table/issues" + }, + "description": "borderless text tables with alignment", + "devDependencies": { + "cli-color": "~0.2.3", + "tap": "~0.4.0", + "tape": "~1.0.2" + }, + "homepage": "https://github.com/substack/text-table", + "keywords": [ + "text", + "table", + "align", + "ascii", + "rows", + "tabular" + ], + "license": "MIT", + "main": "index.js", + "name": "text-table", + "repository": { + "type": "git", + "url": "git://github.com/substack/text-table.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/6..latest", + "chrome/20..latest", + "firefox/10..latest", + "safari/latest", + "opera/11.0..latest", + "iphone/6", + "ipad/6" + ] + }, + "version": "0.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/throttle-debounce/package.json b/admin/vue2/element-admin-v3/node_modules/throttle-debounce/package.json index 4079784d4..40af109cb 100644 --- a/admin/vue2/element-admin-v3/node_modules/throttle-debounce/package.json +++ b/admin/vue2/element-admin-v3/node_modules/throttle-debounce/package.json @@ -1,24 +1,48 @@ { - "name": "throttle-debounce", - "version": "1.1.0", - "description": "Throttle/debounce your functions.", - "main": "index.js", - "typings": "index.d.ts", - "author": "Ivan Nikolić (http://ivannikolic.com/)", - "contributors": [ - "Ben Alman (http://benalman.com)" + "_args": [ + [ + "throttle-debounce@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "engines": { - "node": ">=4" + "_from": "throttle-debounce@1.1.0", + "_id": "throttle-debounce@1.1.0", + "_inBundle": false, + "_integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=", + "_location": "/throttle-debounce", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "throttle-debounce@1.1.0", + "name": "throttle-debounce", + "escapedName": "throttle-debounce", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" }, - "directories": { - "test": "test" + "_requiredBy": [ + "/element-ui" + ], + "_resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1604315662420&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ivan Nikolić", + "email": "niksy5@gmail.com", + "url": "http://ivannikolic.com/" }, - "scripts": { - "test": "eslint {index,test/*}.js && karma start --single-run --browsers PhantomJS" + "bugs": { + "url": "https://github.com/niksy/throttle-debounce/issues" }, + "contributors": [ + { + "name": "Ben Alman", + "url": "http://benalman.com" + } + ], "dependencies": {}, + "description": "Throttle/debounce your functions.", "devDependencies": { "browserify": "^13.0.0", "eslint": "^1.10.3", @@ -35,17 +59,28 @@ "qunitjs": "^1.23.1", "watchify": "^3.7.0" }, + "directories": { + "test": "test" + }, + "engines": { + "node": ">=4" + }, + "homepage": "https://github.com/niksy/throttle-debounce#readme", "keywords": [ "throttle", "debounce", "browserify" ], + "license": "MIT", + "main": "index.js", + "name": "throttle-debounce", "repository": { "type": "git", "url": "git+https://github.com/niksy/throttle-debounce.git" }, - "bugs": { - "url": "https://github.com/niksy/throttle-debounce/issues" + "scripts": { + "test": "eslint {index,test/*}.js && karma start --single-run --browsers PhantomJS" }, - "homepage": "https://github.com/niksy/throttle-debounce#readme" + "typings": "index.d.ts", + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/through/package.json b/admin/vue2/element-admin-v3/node_modules/through/package.json index 98621899d..1c5a49e0c 100644 --- a/admin/vue2/element-admin-v3/node_modules/through/package.json +++ b/admin/vue2/element-admin-v3/node_modules/through/package.json @@ -1,29 +1,65 @@ { - "name": "through", - "version": "2.3.8", - "description": "simplified stream construction", - "main": "index.js", - "scripts": { - "test": "set -e; for t in test/*.js; do node $t; done" + "_args": [ + [ + "through@2.3.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "through@2.3.8", + "_id": "through@2.3.8", + "_inBundle": false, + "_integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "_location": "/through", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "through@2.3.8", + "name": "through", + "escapedName": "through", + "rawSpec": "2.3.8", + "saveSpec": null, + "fetchSpec": "2.3.8" + }, + "_requiredBy": [ + "/inquirer", + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "_spec": "2.3.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dominic Tarr", + "email": "dominic.tarr@gmail.com", + "url": "dominictarr.com" + }, + "bugs": { + "url": "https://github.com/dominictarr/through/issues" }, + "description": "simplified stream construction", "devDependencies": { + "from": "~0.1.3", "stream-spec": "~0.3.5", - "tape": "~2.3.2", - "from": "~0.1.3" + "tape": "~2.3.2" }, + "homepage": "https://github.com/dominictarr/through", "keywords": [ "stream", "streams", "user-streams", "pipe" ], - "author": "Dominic Tarr (dominictarr.com)", "license": "MIT", + "main": "index.js", + "name": "through", "repository": { "type": "git", - "url": "https://github.com/dominictarr/through.git" + "url": "git+https://github.com/dominictarr/through.git" + }, + "scripts": { + "test": "set -e; for t in test/*.js; do node $t; done" }, - "homepage": "https://github.com/dominictarr/through", "testling": { "browsers": [ "ie/8..latest", @@ -32,5 +68,6 @@ "safari/5.1..latest" ], "files": "test/*.js" - } + }, + "version": "2.3.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/through2/package.json b/admin/vue2/element-admin-v3/node_modules/through2/package.json index 15960b638..43cbcaf69 100644 --- a/admin/vue2/element-admin-v3/node_modules/through2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/through2/package.json @@ -1,27 +1,45 @@ { - "name": "through2", - "version": "2.0.5", - "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise", - "main": "through2.js", - "scripts": { - "test": "node test/test.js | faucet" - }, - "repository": { - "type": "git", - "url": "https://github.com/rvagg/through2.git" + "_args": [ + [ + "through2@2.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "through2@2.0.5", + "_id": "through2@2.0.5", + "_inBundle": false, + "_integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "_location": "/through2", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "through2@2.0.5", + "name": "through2", + "escapedName": "through2", + "rawSpec": "2.0.5", + "saveSpec": null, + "fetchSpec": "2.0.5" }, - "keywords": [ - "stream", - "streams2", - "through", - "transform" + "_requiredBy": [ + "/mississippi" ], - "author": "Rod Vagg (https://github.com/rvagg)", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478643560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz", + "_spec": "2.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rod Vagg", + "email": "r@va.gg", + "url": "https://github.com/rvagg" + }, + "bugs": { + "url": "https://github.com/rvagg/through2/issues" + }, "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" }, + "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise", "devDependencies": { "bl": "~2.0.1", "faucet": "0.0.1", @@ -29,5 +47,23 @@ "safe-buffer": "~5.1.2", "stream-spigot": "~3.0.6", "tape": "~4.9.1" - } + }, + "homepage": "https://github.com/rvagg/through2#readme", + "keywords": [ + "stream", + "streams2", + "through", + "transform" + ], + "license": "MIT", + "main": "through2.js", + "name": "through2", + "repository": { + "type": "git", + "url": "git+https://github.com/rvagg/through2.git" + }, + "scripts": { + "test": "node test/test.js | faucet" + }, + "version": "2.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/thunky/package.json b/admin/vue2/element-admin-v3/node_modules/thunky/package.json index 5dbbfb00d..dc6fbe4df 100644 --- a/admin/vue2/element-admin-v3/node_modules/thunky/package.json +++ b/admin/vue2/element-admin-v3/node_modules/thunky/package.json @@ -1,19 +1,45 @@ { - "name": "thunky", - "version": "1.1.0", + "_args": [ + [ + "thunky@1.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "thunky@1.1.0", + "_id": "thunky@1.1.0", + "_inBundle": false, + "_integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", + "_location": "/thunky", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "thunky@1.1.0", + "name": "thunky", + "escapedName": "thunky", + "rawSpec": "1.1.0", + "saveSpec": null, + "fetchSpec": "1.1.0" + }, + "_requiredBy": [ + "/multicast-dns" + ], + "_resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", + "_spec": "1.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, + "bugs": { + "url": "https://github.com/mafintosh/thunky/issues" + }, "description": "delay the evaluation of a paramless async function and cache the result", - "main": "index.js", "devDependencies": { "standard": "^12.0.1", "tape": "^4.9.1" }, - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/thunky.git" - }, - "scripts": { - "test": "standard && tape test.js" - }, + "homepage": "https://github.com/mafintosh/thunky#readme", "keywords": [ "memo", "thunk", @@ -23,10 +49,15 @@ "flow", "cache" ], - "author": "Mathias Buus Madsen ", - "bugs": { - "url": "https://github.com/mafintosh/thunky/issues" + "license": "MIT", + "main": "index.js", + "name": "thunky", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/thunky.git" }, - "homepage": "https://github.com/mafintosh/thunky#readme", - "license": "MIT" + "scripts": { + "test": "standard && tape test.js" + }, + "version": "1.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/timers-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/timers-browserify/package.json index be8978f29..c78998bbb 100644 --- a/admin/vue2/element-admin-v3/node_modules/timers-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/timers-browserify/package.json @@ -1,53 +1,129 @@ { - "author": "J. Ryan Stinnett (https://convolv.es/)", - "name": "timers-browserify", - "description": "timers module for browserify", - "version": "2.0.12", - "homepage": "https://github.com/jryans/timers-browserify", - "bugs": "https://github.com/jryans/timers-browserify/issues", - "repository": { - "type": "git", - "url": "git://github.com/jryans/timers-browserify.git" + "_args": [ + [ + "timers-browserify@2.0.12", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "timers-browserify@2.0.12", + "_id": "timers-browserify@2.0.12", + "_inBundle": false, + "_integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", + "_location": "/timers-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "timers-browserify@2.0.12", + "name": "timers-browserify", + "escapedName": "timers-browserify", + "rawSpec": "2.0.12", + "saveSpec": null, + "fetchSpec": "2.0.12" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793732246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", + "_spec": "2.0.12", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com", + "url": "https://convolv.es/" + }, + "bugs": { + "url": "https://github.com/jryans/timers-browserify/issues" }, "contributors": [ - "Colton Brown ", - "Dario Segura ", - "Guy Bedford ", - "Ionut-Cristian Florescu ", - "James Halliday ", - "Jan Schär ", - "Johannes Ewald ", - "Jonathan Prins ", - "Matt Esch ", - "Renée Kooi ", - "Simon Meusel ", - "taoqf ", - "Thiago Felix ", - "wtgtybhertgeghgtwtg " + { + "name": "Colton Brown", + "email": "coltonTB@me.com" + }, + { + "name": "Dario Segura", + "email": "dario.seco@gmail.com" + }, + { + "name": "Guy Bedford", + "email": "guybedford@gmail.com" + }, + { + "name": "Ionut-Cristian Florescu", + "email": "ionut.florescu@gmail.com" + }, + { + "name": "James Halliday", + "email": "mail@substack.net" + }, + { + "name": "Jan Schär", + "email": "jscissr@gmail.com" + }, + { + "name": "Johannes Ewald", + "email": "johannes.ewald@peerigon.com" + }, + { + "name": "Jonathan Prins", + "email": "jon@blip.tv" + }, + { + "name": "Matt Esch", + "email": "matt@mattesch.info" + }, + { + "name": "Renée Kooi", + "email": "renee@kooi.me" + }, + { + "name": "Simon Meusel", + "email": "info@simonmeusel.de" + }, + { + "name": "taoqf", + "email": "tao_qiufeng@126.com" + }, + { + "name": "Thiago Felix", + "email": "thiago@thiagofelix.com" + }, + { + "name": "wtgtybhertgeghgtwtg", + "email": "wtgtybhertgeghgtwtg@gmail.com" + } ], - "main": "main.js", "dependencies": { "setimmediate": "^1.0.4" }, + "description": "timers module for browserify", "devDependencies": { "browserify": "~1.10.16", "connect": "~2.30.2" }, - "optionalDependencies": {}, "engines": { "node": ">=0.6.0" }, - "keywords": [ - "timers", - "browserify", - "browser" - ], - "license": "MIT", + "homepage": "https://github.com/jryans/timers-browserify", "jspm": { "map": { "./main.js": { "node": "@node/timers" } } - } + }, + "keywords": [ + "timers", + "browserify", + "browser" + ], + "license": "MIT", + "main": "main.js", + "name": "timers-browserify", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git://github.com/jryans/timers-browserify.git" + }, + "version": "2.0.12" } diff --git a/admin/vue2/element-admin-v3/node_modules/timsort/package.json b/admin/vue2/element-admin-v3/node_modules/timsort/package.json index 4b8942748..40edcaf01 100644 --- a/admin/vue2/element-admin-v3/node_modules/timsort/package.json +++ b/admin/vue2/element-admin-v3/node_modules/timsort/package.json @@ -1,18 +1,42 @@ { - "name": "timsort", - "version": "0.3.0", + "_args": [ + [ + "timsort@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "timsort@0.3.0", + "_id": "timsort@0.3.0", + "_inBundle": false, + "_integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "_location": "/timsort", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "timsort@0.3.0", + "name": "timsort", + "escapedName": "timsort", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/css-declaration-sorter" + ], + "_resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Marco Ziccardi", "url": "http://mziccard.me/" }, - "description": "TimSort: Fast Sorting for Node.js", - "homepage": "https://github.com/mziccard/node-timsort", - "main": "index.js", - "directories": { - "test": "./test", - "benchmark": "./benchmark" + "bugs": { + "url": "https://github.com/mziccard/node-timsort/issues" }, "dependencies": {}, + "description": "TimSort: Fast Sorting for Node.js", "devDependencies": { "assert": "~1.3.0", "babel-eslint": "^4.0.5", @@ -24,15 +48,11 @@ "grunt-contrib-uglify": "^0.9.1", "mocha": "~2.2.5" }, - "scripts": { - "test": "mocha --timeout 5000", - "lint": "eslint Gruntfile.js src/ test/ benchmark/index.js", - "benchmark": "node benchmark/index.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/mziccard/node-timsort.git" + "directories": { + "test": "./test", + "benchmark": "./benchmark" }, + "homepage": "https://github.com/mziccard/node-timsort", "keywords": [ "sort", "compare", @@ -42,7 +62,16 @@ "performance" ], "license": "MIT", - "bugs": { - "url": "https://github.com/mziccard/node-timsort/issues" - } + "main": "index.js", + "name": "timsort", + "repository": { + "type": "git", + "url": "git+https://github.com/mziccard/node-timsort.git" + }, + "scripts": { + "benchmark": "node benchmark/index.js", + "lint": "eslint Gruntfile.js src/ test/ benchmark/index.js", + "test": "mocha --timeout 5000" + }, + "version": "0.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tiny-emitter/package.json b/admin/vue2/element-admin-v3/node_modules/tiny-emitter/package.json index 5da633581..566e38c9b 100644 --- a/admin/vue2/element-admin-v3/node_modules/tiny-emitter/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tiny-emitter/package.json @@ -1,20 +1,49 @@ { - "name": "tiny-emitter", - "version": "2.1.0", - "description": "A tiny (less than 1k) event emitter library", - "main": "index.js", - "scripts": { - "test-node": "tape test/index.js | tap-format-spec", - "test": "testling | tap-format-spec", - "bundle": "node_modules/.bin/browserify index.js > dist/tinyemitter.js -s TinyEmitter && echo 'Bundled'", - "minify": "node_modules/.bin/uglifyjs dist/tinyemitter.js -o dist/tinyemitter.min.js -m && echo 'Minified'", - "build": "npm test && npm run bundle && npm run minify", - "size": "node_modules/.bin/uglifyjs index.js -o minified.js -m && ls -l && rm minified.js" + "_args": [ + [ + "tiny-emitter@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tiny-emitter@2.1.0", + "_id": "tiny-emitter@2.1.0", + "_inBundle": false, + "_integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=", + "_location": "/tiny-emitter", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tiny-emitter@2.1.0", + "name": "tiny-emitter", + "escapedName": "tiny-emitter", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "repository": { - "type": "git", - "url": "https://github.com/scottcorgan/tiny-emitter.git" + "_requiredBy": [ + "/clipboard", + "/vue-clipboard2/clipboard", + "/vue-json-viewer/clipboard" + ], + "_resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Scott Corgan" + }, + "bugs": { + "url": "https://github.com/scottcorgan/tiny-emitter/issues" + }, + "description": "A tiny (less than 1k) event emitter library", + "devDependencies": { + "@tap-format/spec": "0.2.0", + "browserify": "11.2.0", + "tape": "4.2.1", + "testling": "1.7.1", + "uglify-js": "2.5.0" }, + "homepage": "https://github.com/scottcorgan/tiny-emitter#readme", "keywords": [ "event", "emitter", @@ -23,17 +52,20 @@ "events", "bind" ], - "author": "Scott Corgan", "license": "MIT", - "bugs": { - "url": "https://github.com/scottcorgan/tiny-emitter/issues" + "main": "index.js", + "name": "tiny-emitter", + "repository": { + "type": "git", + "url": "git+https://github.com/scottcorgan/tiny-emitter.git" }, - "devDependencies": { - "@tap-format/spec": "0.2.0", - "browserify": "11.2.0", - "tape": "4.2.1", - "testling": "1.7.1", - "uglify-js": "2.5.0" + "scripts": { + "build": "npm test && npm run bundle && npm run minify", + "bundle": "browserify index.js > dist/tinyemitter.js -s TinyEmitter && echo 'Bundled'", + "minify": "uglifyjs dist/tinyemitter.js -o dist/tinyemitter.min.js -m && echo 'Minified'", + "size": "uglifyjs index.js -o minified.js -m && ls -l && rm minified.js", + "test": "testling | tap-format-spec", + "test-node": "tape test/index.js | tap-format-spec" }, "testling": { "files": [ @@ -49,5 +81,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tinymce/package.json b/admin/vue2/element-admin-v3/node_modules/tinymce/package.json index a2bfaaeb3..9c5351174 100644 --- a/admin/vue2/element-admin-v3/node_modules/tinymce/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tinymce/package.json @@ -1,24 +1,55 @@ { - "name": "tinymce", - "version": "5.8.1", - "repository": { - "type": "git", - "url": "https://github.com/tinymce/tinymce-dist.git" - }, - "description": "Web based JavaScript HTML WYSIWYG editor control.", - "author": "Tiny Technologies, Inc", - "main": "tinymce.js", - "types": "tinymce.d.ts", - "license": "LGPL-2.1", - "keywords": [ - "editor", - "wysiwyg", - "tinymce", - "richtext", - "javascript", - "html" - ], - "bugs": { - "url": "https://github.com/tinymce/tinymce/issues" - } -} \ No newline at end of file + "_args": [ + [ + "tinymce@5.8.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tinymce@5.8.1", + "_id": "tinymce@5.8.1", + "_inBundle": false, + "_integrity": "sha1-9qznDkfPa1sKY/Us845K4Eo1ulg=", + "_location": "/tinymce", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tinymce@5.8.1", + "name": "tinymce", + "escapedName": "tinymce", + "rawSpec": "5.8.1", + "saveSpec": null, + "fetchSpec": "5.8.1" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/tinymce/download/tinymce-5.8.1.tgz?cache=0&sync_timestamp=1621476847393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftinymce%2Fdownload%2Ftinymce-5.8.1.tgz", + "_spec": "5.8.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tiny Technologies, Inc" + }, + "bugs": { + "url": "https://github.com/tinymce/tinymce/issues" + }, + "description": "Web based JavaScript HTML WYSIWYG editor control.", + "homepage": "https://github.com/tinymce/tinymce-dist#readme", + "keywords": [ + "editor", + "wysiwyg", + "tinymce", + "richtext", + "javascript", + "html" + ], + "license": "LGPL-2.1", + "main": "tinymce.js", + "name": "tinymce", + "repository": { + "type": "git", + "url": "git+https://github.com/tinymce/tinymce-dist.git" + }, + "types": "tinymce.d.ts", + "version": "5.8.1" +} diff --git a/admin/vue2/element-admin-v3/node_modules/tmp/package.json b/admin/vue2/element-admin-v3/node_modules/tmp/package.json index e8aaf3b3f..0581a0c1a 100644 --- a/admin/vue2/element-admin-v3/node_modules/tmp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tmp/package.json @@ -1,38 +1,75 @@ { - "name": "tmp", - "version": "0.0.33", - "description": "Temporary file and directory creator", - "author": "KARASZI István (http://raszi.hu/)", - "keywords": [ - "temporary", - "tmp", - "temp", - "tempdir", - "tempfile", - "tmpdir", - "tmpfile" + "_args": [ + [ + "tmp@0.0.33", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "license": "MIT", - "repository": "raszi/node-tmp", - "homepage": "http://github.com/raszi/node-tmp", + "_development": true, + "_from": "tmp@0.0.33", + "_id": "tmp@0.0.33", + "_inBundle": false, + "_integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "_location": "/tmp", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tmp@0.0.33", + "name": "tmp", + "escapedName": "tmp", + "rawSpec": "0.0.33", + "saveSpec": null, + "fetchSpec": "0.0.33" + }, + "_requiredBy": [ + "/external-editor", + "/webpack-cli/external-editor" + ], + "_resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz", + "_spec": "0.0.33", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "KARASZI István", + "email": "github@spam.raszi.hu", + "url": "http://raszi.hu/" + }, "bugs": { "url": "http://github.com/raszi/node-tmp/issues" }, - "engines": { - "node": ">=0.6.0" - }, "dependencies": { "os-tmpdir": "~1.0.2" }, + "description": "Temporary file and directory creator", "devDependencies": { "vows": "~0.7.0" }, - "main": "lib/tmp.js", + "engines": { + "node": ">=0.6.0" + }, "files": [ "lib/" ], + "homepage": "http://github.com/raszi/node-tmp", + "keywords": [ + "temporary", + "tmp", + "temp", + "tempdir", + "tempfile", + "tmpdir", + "tmpfile" + ], + "license": "MIT", + "main": "lib/tmp.js", + "name": "tmp", + "repository": { + "type": "git", + "url": "git+https://github.com/raszi/node-tmp.git" + }, "scripts": { - "test": "vows test/*-test.js", - "doc": "jsdoc -c .jsdoc.json" - } + "doc": "jsdoc -c .jsdoc.json", + "test": "vows test/*-test.js" + }, + "version": "0.0.33" } diff --git a/admin/vue2/element-admin-v3/node_modules/to-arraybuffer/package.json b/admin/vue2/element-admin-v3/node_modules/to-arraybuffer/package.json index fbfe6c0aa..cb9f98b6e 100644 --- a/admin/vue2/element-admin-v3/node_modules/to-arraybuffer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/to-arraybuffer/package.json @@ -1,18 +1,44 @@ { - "name": "to-arraybuffer", - "version": "1.0.1", - "description": "Get an ArrayBuffer from a Buffer as fast as possible", - "main": "index.js", - "scripts": { - "test": "npm run test-node && ([ -n \"${TRAVIS_PULL_REQUEST}\" -a \"${TRAVIS_PULL_REQUEST}\" != 'false' ] || npm run test-browser)", - "test-node": "tape test.js", - "test-browser": "zuul --no-coverage -- test.js", - "test-browser-local": "zuul --local 8080 --no-coverage -- test.js" + "_args": [ + [ + "to-arraybuffer@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "to-arraybuffer@1.0.1", + "_id": "to-arraybuffer@1.0.1", + "_inBundle": false, + "_integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "_location": "/to-arraybuffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-arraybuffer@1.0.1", + "name": "to-arraybuffer", + "escapedName": "to-arraybuffer", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "repository": { - "type": "git", - "url": "git://github.com/jhiesey/to-arraybuffer.git" + "_requiredBy": [ + "/stream-http" + ], + "_resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "John Hiesey" + }, + "bugs": { + "url": "https://github.com/jhiesey/to-arraybuffer/issues" }, + "description": "Get an ArrayBuffer from a Buffer as fast as possible", + "devDependencies": { + "tape": "^4.4.0", + "zuul": "^3.9.0" + }, + "homepage": "https://github.com/jhiesey/to-arraybuffer#readme", "keywords": [ "buffer", "to", @@ -21,14 +47,18 @@ "read", "only" ], - "author": "John Hiesey", "license": "MIT", - "bugs": { - "url": "https://github.com/jhiesey/to-arraybuffer/issues" + "main": "index.js", + "name": "to-arraybuffer", + "repository": { + "type": "git", + "url": "git://github.com/jhiesey/to-arraybuffer.git" }, - "homepage": "https://github.com/jhiesey/to-arraybuffer#readme", - "devDependencies": { - "tape": "^4.4.0", - "zuul": "^3.9.0" - } + "scripts": { + "test": "npm run test-node && ([ -n \"${TRAVIS_PULL_REQUEST}\" -a \"${TRAVIS_PULL_REQUEST}\" != 'false' ] || npm run test-browser)", + "test-browser": "zuul --no-coverage -- test.js", + "test-browser-local": "zuul --local 8080 --no-coverage -- test.js", + "test-node": "tape test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/to-fast-properties/package.json b/admin/vue2/element-admin-v3/node_modules/to-fast-properties/package.json index f1028bd4b..13855e1f9 100644 --- a/admin/vue2/element-admin-v3/node_modules/to-fast-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/to-fast-properties/package.json @@ -1,23 +1,51 @@ { - "name": "to-fast-properties", - "version": "1.0.3", - "description": "Force V8 to use fast properties for an object", - "license": "MIT", - "repository": "sindresorhus/to-fast-properties", + "_args": [ + [ + "to-fast-properties@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "to-fast-properties@1.0.3", + "_id": "to-fast-properties@1.0.3", + "_inBundle": false, + "_integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "_location": "/to-fast-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-fast-properties@1.0.3", + "name": "to-fast-properties", + "escapedName": "to-fast-properties", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/babel-types" + ], + "_resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/to-fast-properties/issues" + }, + "description": "Force V8 to use fast properties for an object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node --allow-natives-syntax test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/to-fast-properties#readme", "keywords": [ "object", "obj", @@ -29,7 +57,14 @@ "convert", "mode" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "to-fast-properties", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/to-fast-properties.git" + }, + "scripts": { + "test": "node --allow-natives-syntax test.js" + }, + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/to-object-path/node_modules/kind-of/package.json b/admin/vue2/element-admin-v3/node_modules/to-object-path/node_modules/kind-of/package.json index 5de879e11..2c044d0a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/to-object-path/node_modules/kind-of/package.json +++ b/admin/vue2/element-admin-v3/node_modules/to-object-path/node_modules/kind-of/package.json @@ -1,36 +1,69 @@ { - "name": "kind-of", - "description": "Get the native type of a value.", - "version": "3.2.2", - "homepage": "https://github.com/jonschlinkert/kind-of", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "David Fox-Powell (https://dtothefp.github.io/me)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ken Sheedlo (kensheedlo.com)", - "laggingreflex (https://github.com/laggingreflex)", - "Miguel Mota (https://miguelmota.com)", - "Peter deHaan (http://about.me/peterdehaan)" + "_args": [ + [ + "kind-of@3.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/kind-of", - "bugs": { - "url": "https://github.com/jonschlinkert/kind-of/issues" + "_from": "kind-of@3.2.2", + "_id": "kind-of@3.2.2", + "_inBundle": false, + "_integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "_location": "/to-object-path/kind-of", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "kind-of@3.2.2", + "name": "kind-of", + "escapedName": "kind-of", + "rawSpec": "3.2.2", + "saveSpec": null, + "fetchSpec": "3.2.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/to-object-path" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "_spec": "3.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "prepublish": "browserify -o browser.js -e index.js -s index --bare" + "bugs": { + "url": "https://github.com/jonschlinkert/kind-of/issues" }, + "contributors": [ + { + "name": "David Fox-Powell", + "url": "https://dtothefp.github.io/me" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Ken Sheedlo", + "url": "kensheedlo.com" + }, + { + "name": "laggingreflex", + "url": "https://github.com/laggingreflex" + }, + { + "name": "Miguel Mota", + "url": "https://miguelmota.com" + }, + { + "name": "Peter deHaan", + "url": "http://about.me/peterdehaan" + } + ], "dependencies": { "is-buffer": "^1.1.5" }, + "description": "Get the native type of a value.", "devDependencies": { "ansi-bold": "^0.1.1", "benchmarked": "^1.0.0", @@ -41,6 +74,13 @@ "type-of": "^2.0.1", "typeof": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/kind-of", "keywords": [ "arguments", "array", @@ -64,6 +104,17 @@ "typeof", "types" ], + "license": "MIT", + "main": "index.js", + "name": "kind-of", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/kind-of.git" + }, + "scripts": { + "prepublish": "browserify -o browser.js -e index.js -s index --bare", + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -86,5 +137,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "3.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/to-object-path/package.json b/admin/vue2/element-admin-v3/node_modules/to-object-path/package.json index 2fe341b74..83c053ed3 100644 --- a/admin/vue2/element-admin-v3/node_modules/to-object-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/to-object-path/package.json @@ -1,31 +1,56 @@ { - "name": "to-object-path", - "description": "Create an object path from a list or array of strings.", - "version": "0.3.0", - "homepage": "https://github.com/jonschlinkert/to-object-path", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/to-object-path", - "bugs": { - "url": "https://github.com/jonschlinkert/to-object-path/issues" + "_args": [ + [ + "to-object-path@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "to-object-path@0.3.0", + "_id": "to-object-path@0.3.0", + "_inBundle": false, + "_integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "_location": "/to-object-path", + "_phantomChildren": { + "is-buffer": "1.1.6" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "to-object-path@0.3.0", + "name": "to-object-path", + "escapedName": "to-object-path", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/cache-base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/to-object-path/issues" }, "dependencies": { "kind-of": "^3.0.2" }, + "description": "Create an object path from a list or array of strings.", "devDependencies": { "base": "^0.6.7", "mocha": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/to-object-path", "keywords": [ "dot", "nested", @@ -34,6 +59,16 @@ "path", "stringify" ], + "license": "MIT", + "main": "index.js", + "name": "to-object-path", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/to-object-path.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -44,5 +79,6 @@ "unset-value" ] } - } + }, + "version": "0.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/to-regex-range/package.json b/admin/vue2/element-admin-v3/node_modules/to-regex-range/package.json index 6c8e6b1cc..319001b12 100644 --- a/admin/vue2/element-admin-v3/node_modules/to-regex-range/package.json +++ b/admin/vue2/element-admin-v3/node_modules/to-regex-range/package.json @@ -1,28 +1,44 @@ { - "name": "to-regex-range", - "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", - "version": "2.1.1", - "homepage": "https://github.com/micromatch/to-regex-range", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "micromatch/to-regex-range", - "bugs": { - "url": "https://github.com/micromatch/to-regex-range/issues" + "_args": [ + [ + "to-regex-range@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "to-regex-range@2.1.1", + "_id": "to-regex-range@2.1.1", + "_inBundle": false, + "_integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "_location": "/to-regex-range", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-regex-range@2.1.1", + "name": "to-regex-range", + "escapedName": "to-regex-range", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/fill-range" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" }, "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" }, + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", "devDependencies": { "fill-range": "^3.1.1", "gulp-format-md": "^0.1.12", @@ -30,6 +46,13 @@ "text-table": "^0.2.0", "time-diff": "^0.3.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/micromatch/to-regex-range", "keywords": [ "alpha", "alphabetical", @@ -52,6 +75,16 @@ "to", "year" ], + "license": "MIT", + "main": "index.js", + "name": "to-regex-range", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/to-regex-range.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -82,5 +115,6 @@ "1-5", "1-9" ] - } + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/to-regex/package.json b/admin/vue2/element-admin-v3/node_modules/to-regex/package.json index e4277d316..e118c0540 100644 --- a/admin/vue2/element-admin-v3/node_modules/to-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/to-regex/package.json @@ -1,23 +1,43 @@ { - "name": "to-regex", - "description": "Generate a regex from a string or array of strings.", - "version": "3.0.2", - "homepage": "https://github.com/jonschlinkert/to-regex", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/to-regex", - "bugs": { - "url": "https://github.com/jonschlinkert/to-regex/issues" + "_args": [ + [ + "to-regex@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "to-regex@3.0.2", + "_id": "to-regex@3.0.2", + "_inBundle": false, + "_integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "_location": "/to-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-regex@3.0.2", + "name": "to-regex", + "escapedName": "to-regex", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/braces", + "/expand-brackets", + "/extglob", + "/micromatch", + "/nanomatch", + "/svg-baker/micromatch" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/to-regex/issues" }, "dependencies": { "define-property": "^2.0.2", @@ -25,10 +45,18 @@ "regex-not": "^1.0.2", "safe-regex": "^1.1.0" }, + "description": "Generate a regex from a string or array of strings.", "devDependencies": { "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/to-regex", "keywords": [ "match", "regex", @@ -36,6 +64,16 @@ "test", "to" ], + "license": "MIT", + "main": "index.js", + "name": "to-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/to-regex.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": { "method": "preWrite" @@ -58,5 +96,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/toidentifier/package.json b/admin/vue2/element-admin-v3/node_modules/toidentifier/package.json index 3f78165a9..ff1228371 100644 --- a/admin/vue2/element-admin-v3/node_modules/toidentifier/package.json +++ b/admin/vue2/element-admin-v3/node_modules/toidentifier/package.json @@ -1,13 +1,51 @@ { - "name": "toidentifier", - "description": "Convert a string of words to a JavaScript identifier", - "version": "1.0.0", - "author": "Douglas Christopher Wilson ", + "_args": [ + [ + "toidentifier@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "toidentifier@1.0.0", + "_id": "toidentifier@1.0.0", + "_inBundle": false, + "_integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "_location": "/toidentifier", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "toidentifier@1.0.0", + "name": "toidentifier", + "escapedName": "toidentifier", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/http-errors" + ], + "_resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/component/toidentifier/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Nick Baugh (http://niftylettuce.com/)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Nick Baugh", + "email": "niftylettuce@gmail.com", + "url": "http://niftylettuce.com/" + } ], - "repository": "component/toidentifier", + "description": "Convert a string of words to a JavaScript identifier", "devDependencies": { "eslint": "4.19.1", "eslint-config-standard": "11.0.0", @@ -22,13 +60,20 @@ "engines": { "node": ">=0.6" }, - "license": "MIT", "files": [ "index.js" ], + "homepage": "https://github.com/component/toidentifier#readme", + "license": "MIT", + "name": "toidentifier", + "repository": { + "type": "git", + "url": "git+https://github.com/component/toidentifier.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --bail --check-leaks test/", "test-cov": "nyc --reporter=html --reporter=text npm test" - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/token-stream/package.json b/admin/vue2/element-admin-v3/node_modules/token-stream/package.json index 94b59d164..55fa28d16 100644 --- a/admin/vue2/element-admin-v3/node_modules/token-stream/package.json +++ b/admin/vue2/element-admin-v3/node_modules/token-stream/package.json @@ -1,19 +1,54 @@ { - "name": "token-stream", - "version": "1.0.0", - "description": "Take an array of token and produce a more useful API to give to a parser", + "_args": [ + [ + "token-stream@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "token-stream@1.0.0", + "_id": "token-stream@1.0.0", + "_inBundle": false, + "_integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "_location": "/token-stream", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "token-stream@1.0.0", + "name": "token-stream", + "escapedName": "token-stream", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/pug-parser" + ], + "_resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/pugjs/token-stream/issues" + }, "dependencies": {}, + "description": "Take an array of token and produce a more useful API to give to a parser", "devDependencies": { "istanbul": "*" }, - "scripts": { - "test": "node test && npm run coverage", - "coverage": "istanbul cover test" - }, + "homepage": "https://github.com/pugjs/token-stream#readme", + "license": "MIT", + "name": "token-stream", "repository": { "type": "git", - "url": "https://github.com/pugjs/token-stream.git" + "url": "git+https://github.com/pugjs/token-stream.git" + }, + "scripts": { + "coverage": "istanbul cover test", + "test": "node test && npm run coverage" }, - "author": "ForbesLindesay", - "license": "MIT" + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tough-cookie/package.json b/admin/vue2/element-admin-v3/node_modules/tough-cookie/package.json index 8af9909ed..1476b4ffd 100644 --- a/admin/vue2/element-admin-v3/node_modules/tough-cookie/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tough-cookie/package.json @@ -1,38 +1,79 @@ { + "_args": [ + [ + "tough-cookie@2.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "tough-cookie@2.5.0", + "_id": "tough-cookie@2.5.0", + "_inBundle": false, + "_integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "_location": "/tough-cookie", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tough-cookie@2.5.0", + "name": "tough-cookie", + "escapedName": "tough-cookie", + "rawSpec": "2.5.0", + "saveSpec": null, + "fetchSpec": "2.5.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", + "_spec": "2.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jeremy Stashewsky", - "email": "jstash@gmail.com", - "website": "https://github.com/stash" + "email": "jstash@gmail.com" + }, + "bugs": { + "url": "https://github.com/salesforce/tough-cookie/issues" }, "contributors": [ { - "name": "Alexander Savin", - "website": "https://github.com/apsavin" + "name": "Alexander Savin" }, { - "name": "Ian Livingstone", - "website": "https://github.com/ianlivingstone" + "name": "Ian Livingstone" }, { - "name": "Ivan Nikulin", - "website": "https://github.com/inikulin" + "name": "Ivan Nikulin" }, { - "name": "Lalit Kapoor", - "website": "https://github.com/lalitkapoor" + "name": "Lalit Kapoor" }, { - "name": "Sam Thompson", - "website": "https://github.com/sambthompson" + "name": "Sam Thompson" }, { - "name": "Sebastian Mayr", - "website": "https://github.com/Sebmaster" + "name": "Sebastian Mayr" } ], - "license": "BSD-3-Clause", - "name": "tough-cookie", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, "description": "RFC6265 Cookies and Cookie Jar for node.js", + "devDependencies": { + "async": "^1.4.2", + "genversion": "^2.1.0", + "nyc": "^11.6.0", + "string.prototype.repeat": "^0.2.0", + "vows": "^0.8.2" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/salesforce/tough-cookie", "keywords": [ "HTTP", "cookie", @@ -43,36 +84,17 @@ "RFC6265", "RFC2965" ], - "version": "2.5.0", - "homepage": "https://github.com/salesforce/tough-cookie", + "license": "BSD-3-Clause", + "main": "./lib/cookie", + "name": "tough-cookie", "repository": { "type": "git", "url": "git://github.com/salesforce/tough-cookie.git" }, - "bugs": { - "url": "https://github.com/salesforce/tough-cookie/issues" - }, - "main": "./lib/cookie", - "files": [ - "lib" - ], "scripts": { - "version": "genversion lib/version.js && git add lib/version.js", + "cover": "nyc --reporter=lcov --reporter=html vows test/*_test.js", "test": "vows test/*_test.js", - "cover": "nyc --reporter=lcov --reporter=html vows test/*_test.js" + "version": "genversion lib/version.js && git add lib/version.js" }, - "engines": { - "node": ">=0.8" - }, - "devDependencies": { - "async": "^1.4.2", - "genversion": "^2.1.0", - "nyc": "^11.6.0", - "string.prototype.repeat": "^0.2.0", - "vows": "^0.8.2" - }, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } + "version": "2.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/traverse/package.json b/admin/vue2/element-admin-v3/node_modules/traverse/package.json index ed9a2879d..05370f6f7 100644 --- a/admin/vue2/element-admin-v3/node_modules/traverse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/traverse/package.json @@ -1,46 +1,93 @@ { - "name" : "traverse", - "version" : "0.6.6", - "description" : "traverse and transform objects by visiting every node on a recursive walk", - "main" : "index.js", - "directories" : { - "example" : "example", - "test" : "test" - }, - "devDependencies" : { - "tape" : "~1.0.4" - }, - "scripts" : { - "test" : "tape test/*.js" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "iexplore" : [ "6.0", "7.0", "8.0", "9.0" ], - "chrome" : [ "10.0", "20.0" ], - "firefox" : [ "10.0", "15.0" ], - "safari" : [ "5.1" ], - "opera" : [ "12.0" ] - } - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/js-traverse.git" - }, - "homepage" : "https://github.com/substack/js-traverse", - "keywords" : [ - "traverse", - "walk", - "recursive", - "map", - "forEach", - "deep", - "clone" - ], - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "license" : "MIT" + "_args": [ + [ + "traverse@0.6.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "traverse@0.6.6", + "_id": "traverse@0.6.6", + "_inBundle": false, + "_integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "_location": "/traverse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "traverse@0.6.6", + "name": "traverse", + "escapedName": "traverse", + "rawSpec": "0.6.6", + "saveSpec": null, + "fetchSpec": "0.6.6" + }, + "_requiredBy": [ + "/svg-baker" + ], + "_resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftraverse%2Fdownload%2Ftraverse-0.6.6.tgz", + "_spec": "0.6.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/js-traverse/issues" + }, + "description": "traverse and transform objects by visiting every node on a recursive walk", + "devDependencies": { + "tape": "~1.0.4" + }, + "directories": { + "example": "example", + "test": "test" + }, + "homepage": "https://github.com/substack/js-traverse", + "keywords": [ + "traverse", + "walk", + "recursive", + "map", + "forEach", + "deep", + "clone" + ], + "license": "MIT", + "main": "index.js", + "name": "traverse", + "repository": { + "type": "git", + "url": "git://github.com/substack/js-traverse.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "testling": { + "files": "test/*.js", + "browsers": { + "iexplore": [ + "6.0", + "7.0", + "8.0", + "9.0" + ], + "chrome": [ + "10.0", + "20.0" + ], + "firefox": [ + "10.0", + "15.0" + ], + "safari": [ + "5.1" + ], + "opera": [ + "12.0" + ] + } + }, + "version": "0.6.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/trim-newlines/package.json b/admin/vue2/element-admin-v3/node_modules/trim-newlines/package.json index c0bca903c..082983f6b 100644 --- a/admin/vue2/element-admin-v3/node_modules/trim-newlines/package.json +++ b/admin/vue2/element-admin-v3/node_modules/trim-newlines/package.json @@ -1,23 +1,53 @@ { - "name": "trim-newlines", - "version": "1.0.0", - "description": "Trim newlines from the start and/or end of a string", - "license": "MIT", - "repository": "sindresorhus/trim-newlines", + "_args": [ + [ + "trim-newlines@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "trim-newlines@1.0.0", + "_id": "trim-newlines@1.0.0", + "_inBundle": false, + "_integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "_location": "/trim-newlines", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "trim-newlines@1.0.0", + "name": "trim-newlines", + "escapedName": "trim-newlines", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/meow" + ], + "_resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-1.0.0.tgz?cache=0&sync_timestamp=1622220471681&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/trim-newlines/issues" + }, + "description": "Trim newlines from the start and/or end of a string", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/trim-newlines#readme", "keywords": [ "trim", "newline", @@ -35,8 +65,14 @@ "delete", "strip" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "trim-newlines", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/trim-newlines.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/trim-right/package.json b/admin/vue2/element-admin-v3/node_modules/trim-right/package.json index 979bfa915..3492f4f52 100644 --- a/admin/vue2/element-admin-v3/node_modules/trim-right/package.json +++ b/admin/vue2/element-admin-v3/node_modules/trim-right/package.json @@ -1,23 +1,53 @@ { - "name": "trim-right", - "version": "1.0.1", - "description": "Similar to String#trim() but removes only whitespace on the right", - "license": "MIT", - "repository": "sindresorhus/trim-right", + "_args": [ + [ + "trim-right@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "trim-right@1.0.1", + "_id": "trim-right@1.0.1", + "_inBundle": false, + "_integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "_location": "/trim-right", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "trim-right@1.0.1", + "name": "trim-right", + "escapedName": "trim-right", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/@babel/generator", + "/babel-generator" + ], + "_resolved": "https://registry.nlark.com/trim-right/download/trim-right-1.0.1.tgz?cache=0&sync_timestamp=1619002500872&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-right%2Fdownload%2Ftrim-right-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/trim-right/issues" + }, + "description": "Similar to String#trim() but removes only whitespace on the right", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/trim-right#readme", "keywords": [ "trim", "right", @@ -31,7 +61,14 @@ "remove", "delete" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "trim-right", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/trim-right.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/true-case-path/package.json b/admin/vue2/element-admin-v3/node_modules/true-case-path/package.json index a6258cfcd..a3ae977a5 100644 --- a/admin/vue2/element-admin-v3/node_modules/true-case-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/true-case-path/package.json @@ -1,29 +1,60 @@ -{ - "name": "true-case-path", - "version": "1.0.3", - "description": "Given a possibly case-variant version of an existing filesystem path, returns the case-exact, normalized version as stored in the filesystem.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/barsh/true-case-path.git" - }, - "author": "barsh", - "contributors": [ - { - "name": "Michael Klement", - "email": "mklement0@gmail.com", - "url": "https://github.com/mklement0" - } - ], - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/barsh/true-case-path/issues" - }, - "homepage": "https://github.com/barsh/true-case-path#readme", - "dependencies": { - "glob": "^7.1.2" - } -} +{ + "_args": [ + [ + "true-case-path@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "true-case-path@1.0.3", + "_id": "true-case-path@1.0.3", + "_inBundle": false, + "_integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", + "_location": "/true-case-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "true-case-path@1.0.3", + "name": "true-case-path", + "escapedName": "true-case-path", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/node-sass" + ], + "_resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "barsh" + }, + "bugs": { + "url": "https://github.com/barsh/true-case-path/issues" + }, + "contributors": [ + { + "name": "Michael Klement", + "email": "mklement0@gmail.com", + "url": "https://github.com/mklement0" + } + ], + "dependencies": { + "glob": "^7.1.2" + }, + "description": "Given a possibly case-variant version of an existing filesystem path, returns the case-exact, normalized version as stored in the filesystem.", + "homepage": "https://github.com/barsh/true-case-path#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "true-case-path", + "repository": { + "type": "git", + "url": "git+https://github.com/barsh/true-case-path.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "1.0.3" +} diff --git a/admin/vue2/element-admin-v3/node_modules/tryer/package.json b/admin/vue2/element-admin-v3/node_modules/tryer/package.json index 7de7fa394..6192932e8 100644 --- a/admin/vue2/element-admin-v3/node_modules/tryer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tryer/package.json @@ -1,16 +1,65 @@ { - "name": "tryer", - "version": "1.0.1", + "_args": [ + [ + "tryer@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tryer@1.0.1", + "_id": "tryer@1.0.1", + "_inBundle": false, + "_integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", + "_location": "/tryer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tryer@1.0.1", + "name": "tryer", + "escapedName": "tryer", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/bfj" + ], + "_resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Phil Booth", + "email": "pmbooth@gmail.com", + "url": "https://philbooth.me/" + }, + "bugs": { + "url": "https://gitlab.com/philbooth/tryer/issues" + }, + "contributors": [ + { + "name": "Phil Booth", + "email": "pmbooth@gmail.com", + "url": "https://philbooth.me/" + }, + { + "name": "Andrew Lawson", + "url": "https://github.com/adlawson" + }, + { + "name": "Tim O'Sulg", + "url": "https://github.com/timgluz" + } + ], "description": "Because everyone loves a tryer! Conditional and repeated task invocation for node and browser.", - "homepage": "https://gitlab.com/philbooth/tryer", - "bugs": "https://gitlab.com/philbooth/tryer/issues", - "license": "MIT", - "author": "Phil Booth (https://philbooth.me/)", - "main": "./src/tryer", - "repository": { - "type": "git", - "url": "git+https://gitlab.com/philbooth/tryer.git" + "devDependencies": { + "chai": "4.1.x", + "jshint": "2.9.x", + "mocha": "5.2.x", + "please-release-me": "2.0.x", + "spooks": "2.0.x", + "uglify-js": "3.4.x" }, + "homepage": "https://gitlab.com/philbooth/tryer", "keywords": [ "repeat", "retry", @@ -24,17 +73,17 @@ "exponential", "backoff" ], - "devDependencies": { - "chai": "4.1.x", - "jshint": "2.9.x", - "mocha": "5.2.x", - "please-release-me": "2.0.x", - "spooks": "2.0.x", - "uglify-js": "3.4.x" + "license": "MIT", + "main": "./src/tryer", + "name": "tryer", + "repository": { + "type": "git", + "url": "git+https://gitlab.com/philbooth/tryer.git" }, "scripts": { "lint": "jshint src/tryer.js test/unit.js", - "test": "mocha --ui tdd --reporter spec --colors test/unit.js", - "minify": "uglifyjs ./src/tryer.js --compress --mangle --output ./lib/tryer.min.js" - } + "minify": "uglifyjs ./src/tryer.js --compress --mangle --output ./lib/tryer.min.js", + "test": "mocha --ui tdd --reporter spec --colors test/unit.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/tslib/package.json b/admin/vue2/element-admin-v3/node_modules/tslib/package.json index f8c2a53d0..cf697b087 100644 --- a/admin/vue2/element-admin-v3/node_modules/tslib/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tslib/package.json @@ -1,37 +1,72 @@ { + "_args": [ + [ + "tslib@1.14.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tslib@1.14.1", + "_id": "tslib@1.14.1", + "_inBundle": false, + "_integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "_location": "/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tslib@1.14.1", "name": "tslib", - "author": "Microsoft Corp.", - "homepage": "https://www.typescriptlang.org/", - "version": "1.14.1", - "license": "0BSD", - "description": "Runtime library for TypeScript helper functions", - "keywords": [ - "TypeScript", - "Microsoft", - "compiler", - "language", - "javascript", - "tslib", - "runtime" - ], - "bugs": { - "url": "https://github.com/Microsoft/TypeScript/issues" + "escapedName": "tslib", + "rawSpec": "1.14.1", + "saveSpec": null, + "fetchSpec": "1.14.1" + }, + "_requiredBy": [ + "/@antv/adjust", + "/@antv/attr", + "/@antv/component", + "/@antv/g2plot", + "/@antv/matrix-util", + "/rxjs" + ], + "_resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", + "_spec": "1.14.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "description": "Runtime library for TypeScript helper functions", + "exports": { + ".": { + "module": "./tslib.es6.js", + "import": "./modules/index.js", + "default": "./tslib.js" }, - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/tslib.git" - }, - "main": "tslib.js", - "module": "tslib.es6.js", - "jsnext:main": "tslib.es6.js", - "typings": "tslib.d.ts", - "sideEffects": false, - "exports": { - ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", - "default": "./tslib.js" - }, - "./": "./" - } + "./": "./" + }, + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "1.14.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/tsml/package.json b/admin/vue2/element-admin-v3/node_modules/tsml/package.json index a1adb7f98..8a43d47f8 100644 --- a/admin/vue2/element-admin-v3/node_modules/tsml/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tsml/package.json @@ -1,24 +1,55 @@ { - "name": "tsml", - "version": "1.0.1", - "description": "ES6 template string tag for multi-line cleaning - squash multi-line strings into a single line", - "main": "tsml.js", - "scripts": { - "test": "node ./test.js" + "_args": [ + [ + "tsml@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tsml@1.0.1", + "_id": "tsml@1.0.1", + "_inBundle": false, + "_integrity": "sha1-ifghi52eJX9H1/a1bQHFpNLGj8M=", + "_location": "/tsml", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tsml@1.0.1", + "name": "tsml", + "escapedName": "tsml", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "repository": { - "type": "git", - "url": "https://github.com/rvagg/tsml.git" + "_requiredBy": [ + "/video.js" + ], + "_resolved": "https://registry.npm.taobao.org/tsml/download/tsml-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rod Vagg", + "email": "rod@vagg.org" + }, + "bugs": { + "url": "https://github.com/rvagg/tsml/issues" }, + "description": "ES6 template string tag for multi-line cleaning - squash multi-line strings into a single line", + "homepage": "https://github.com/rvagg/tsml", "keywords": [ "template", "templatestring", "es6" ], - "author": "Rod Vagg ", "license": "MIT", - "bugs": { - "url": "https://github.com/rvagg/tsml/issues" + "main": "tsml.js", + "name": "tsml", + "repository": { + "type": "git", + "url": "git+https://github.com/rvagg/tsml.git" + }, + "scripts": { + "test": "node ./test.js" }, - "homepage": "https://github.com/rvagg/tsml" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/tty-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/tty-browserify/package.json index c5d50e0d8..ce0f0f385 100644 --- a/admin/vue2/element-admin-v3/node_modules/tty-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tty-browserify/package.json @@ -1,29 +1,60 @@ { - "name": "tty-browserify", - "version": "0.0.0", - "description": "the tty module from node core for browsers", - "main": "index.js", + "_args": [ + [ + "tty-browserify@0.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "tty-browserify@0.0.0", + "_id": "tty-browserify@0.0.0", + "_inBundle": false, + "_integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "_location": "/tty-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tty-browserify@0.0.0", + "name": "tty-browserify", + "escapedName": "tty-browserify", + "rawSpec": "0.0.0", + "saveSpec": null, + "fetchSpec": "0.0.0" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "_spec": "0.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/tty-browserify/issues" + }, "dependencies": {}, + "description": "the tty module from node core for browsers", "devDependencies": { "tape": "~1.0.4" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/tty-browserify.git" - }, "homepage": "https://github.com/substack/tty-browserify", "keywords": [ "tty", "browser", "browserify" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" + "license": "MIT", + "main": "index.js", + "name": "tty-browserify", + "repository": { + "type": "git", + "url": "git://github.com/substack/tty-browserify.git" + }, + "scripts": { + "test": "tape test/*.js" }, - "license": "MIT" + "version": "0.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tunnel-agent/package.json b/admin/vue2/element-admin-v3/node_modules/tunnel-agent/package.json index a271fda91..92bee107b 100644 --- a/admin/vue2/element-admin-v3/node_modules/tunnel-agent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tunnel-agent/package.json @@ -1,22 +1,59 @@ { - "author": "Mikeal Rogers (http://www.futurealoof.com)", - "name": "tunnel-agent", - "license": "Apache-2.0", - "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", - "version": "0.6.0", - "repository": { - "url": "https://github.com/mikeal/tunnel-agent" + "_args": [ + [ + "tunnel-agent@0.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "tunnel-agent@0.6.0", + "_id": "tunnel-agent@0.6.0", + "_inBundle": false, + "_integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "_location": "/tunnel-agent", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tunnel-agent@0.6.0", + "name": "tunnel-agent", + "escapedName": "tunnel-agent", + "rawSpec": "0.6.0", + "saveSpec": null, + "fetchSpec": "0.6.0" }, - "main": "index.js", - "files": [ - "index.js" + "_requiredBy": [ + "/request" ], + "_resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "_spec": "0.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "bugs": { + "url": "https://github.com/mikeal/tunnel-agent/issues" + }, "dependencies": { "safe-buffer": "^5.0.1" }, + "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", "devDependencies": {}, - "optionalDependencies": {}, "engines": { "node": "*" - } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/mikeal/tunnel-agent#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "tunnel-agent", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/tunnel-agent.git" + }, + "version": "0.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/tweetnacl/package.json b/admin/vue2/element-admin-v3/node_modules/tweetnacl/package.json index 702e85b80..24347131b 100644 --- a/admin/vue2/element-admin-v3/node_modules/tweetnacl/package.json +++ b/admin/vue2/element-admin-v3/node_modules/tweetnacl/package.json @@ -1,26 +1,59 @@ { - "name": "tweetnacl", - "version": "0.14.5", + "_args": [ + [ + "tweetnacl@0.14.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "tweetnacl@0.14.5", + "_id": "tweetnacl@0.14.5", + "_inBundle": false, + "_integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "_location": "/tweetnacl", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "tweetnacl@0.14.5", + "name": "tweetnacl", + "escapedName": "tweetnacl", + "rawSpec": "0.14.5", + "saveSpec": null, + "fetchSpec": "0.14.5" + }, + "_requiredBy": [ + "/bcrypt-pbkdf", + "/sshpk" + ], + "_resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", + "_spec": "0.14.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TweetNaCl-js contributors" + }, + "browser": { + "buffer": false, + "crypto": false + }, + "bugs": { + "url": "https://github.com/dchest/tweetnacl-js/issues" + }, "description": "Port of TweetNaCl cryptographic library to JavaScript", - "main": "nacl-fast.js", - "types": "nacl.d.ts", + "devDependencies": { + "browserify": "^13.0.0", + "eslint": "^2.2.0", + "faucet": "^0.0.1", + "tap-browser-color": "^0.1.2", + "tape": "^4.4.0", + "tape-run": "^2.1.3", + "tweetnacl-util": "^0.13.3", + "uglify-js": "^2.6.1" + }, "directories": { "test": "test" }, - "scripts": { - "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js", - "test-node": "tape test/*.js | faucet", - "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet", - "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet", - "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null", - "test": "npm run test-node-all && npm run test-browser", - "bench": "node test/benchmark/bench.js", - "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/dchest/tweetnacl-js.git" - }, + "homepage": "https://tweetnacl.js.org", "keywords": [ "crypto", "cryptography", @@ -35,24 +68,23 @@ "salsa20", "signatures" ], - "author": "TweetNaCl-js contributors", "license": "Unlicense", - "bugs": { - "url": "https://github.com/dchest/tweetnacl-js/issues" + "main": "nacl-fast.js", + "name": "tweetnacl", + "repository": { + "type": "git", + "url": "git+https://github.com/dchest/tweetnacl-js.git" }, - "homepage": "https://tweetnacl.js.org", - "devDependencies": { - "browserify": "^13.0.0", - "eslint": "^2.2.0", - "faucet": "^0.0.1", - "tap-browser-color": "^0.1.2", - "tape": "^4.4.0", - "tape-run": "^2.1.3", - "tweetnacl-util": "^0.13.3", - "uglify-js": "^2.6.1" + "scripts": { + "bench": "node test/benchmark/bench.js", + "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js", + "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null", + "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js", + "test": "npm run test-node-all && npm run test-browser", + "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet", + "test-node": "tape test/*.js | faucet", + "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet" }, - "browser": { - "buffer": false, - "crypto": false - } + "types": "nacl.d.ts", + "version": "0.14.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/type-check/package.json b/admin/vue2/element-admin-v3/node_modules/type-check/package.json index 8c0b0213f..147bea890 100644 --- a/admin/vue2/element-admin-v3/node_modules/type-check/package.json +++ b/admin/vue2/element-admin-v3/node_modules/type-check/package.json @@ -1,8 +1,59 @@ { - "name": "type-check", - "version": "0.3.2", - "author": "George Zahariev ", + "_args": [ + [ + "type-check@0.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "type-check@0.3.2", + "_id": "type-check@0.3.2", + "_inBundle": false, + "_integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "_location": "/type-check", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "type-check@0.3.2", + "name": "type-check", + "escapedName": "type-check", + "rawSpec": "0.3.2", + "saveSpec": null, + "fetchSpec": "0.3.2" + }, + "_requiredBy": [ + "/levn", + "/optionator" + ], + "_resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "_spec": "0.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "George Zahariev", + "email": "z@georgezahariev.com" + }, + "bugs": { + "url": "https://github.com/gkz/type-check/issues" + }, + "dependencies": { + "prelude-ls": "~1.1.2" + }, "description": "type-check allows you to check the types of JavaScript values at runtime with a Haskell like type syntax.", + "devDependencies": { + "browserify": "~12.0.1", + "istanbul": "~0.4.1", + "livescript": "~1.4.0", + "mocha": "~2.3.4" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "lib", + "README.md", + "LICENSE" + ], "homepage": "https://github.com/gkz/type-check", "keywords": [ "type", @@ -10,17 +61,9 @@ "checking", "library" ], - "files": [ - "lib", - "README.md", - "LICENSE" - ], - "main": "./lib/", - "bugs": "https://github.com/gkz/type-check/issues", "license": "MIT", - "engines": { - "node": ">= 0.8.0" - }, + "main": "./lib/", + "name": "type-check", "repository": { "type": "git", "url": "git://github.com/gkz/type-check.git" @@ -28,13 +71,5 @@ "scripts": { "test": "make test" }, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "devDependencies": { - "livescript": "~1.4.0", - "mocha": "~2.3.4", - "istanbul": "~0.4.1", - "browserify": "~12.0.1" - } + "version": "0.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/type-is/package.json b/admin/vue2/element-admin-v3/node_modules/type-is/package.json index 97ba5f14b..beac5ed25 100644 --- a/admin/vue2/element-admin-v3/node_modules/type-is/package.json +++ b/admin/vue2/element-admin-v3/node_modules/type-is/package.json @@ -1,17 +1,52 @@ { - "name": "type-is", - "description": "Infer the content-type of a request.", - "version": "1.6.18", + "_args": [ + [ + "type-is@1.6.18", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "type-is@1.6.18", + "_id": "type-is@1.6.18", + "_inBundle": false, + "_integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "_location": "/type-is", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "type-is@1.6.18", + "name": "type-is", + "escapedName": "type-is", + "rawSpec": "1.6.18", + "saveSpec": null, + "fetchSpec": "1.6.18" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "_spec": "1.6.18", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/jshttp/type-is/issues" + }, "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } ], - "license": "MIT", - "repository": "jshttp/type-is", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" }, + "description": "Infer the content-type of a request.", "devDependencies": { "eslint": "5.16.0", "eslint-config-standard": "12.0.0", @@ -31,15 +66,23 @@ "HISTORY.md", "index.js" ], + "homepage": "https://github.com/jshttp/type-is#readme", + "keywords": [ + "content", + "type", + "checking" + ], + "license": "MIT", + "name": "type-is", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/type-is.git" + }, "scripts": { "lint": "eslint --plugin markdown --ext js,md .", "test": "mocha --reporter spec --check-leaks --bail test/", "test-cov": "nyc --reporter=html --reporter=text npm test", "test-travis": "nyc --reporter=text npm test" }, - "keywords": [ - "content", - "type", - "checking" - ] + "version": "1.6.18" } diff --git a/admin/vue2/element-admin-v3/node_modules/type/package.json b/admin/vue2/element-admin-v3/node_modules/type/package.json index 2fba3cea0..58bd8fdb2 100644 --- a/admin/vue2/element-admin-v3/node_modules/type/package.json +++ b/admin/vue2/element-admin-v3/node_modules/type/package.json @@ -1,96 +1,136 @@ { - "name": "type", - "version": "1.2.0", - "description": "Runtime validation and processing of JavaScript types", - "author": "Mariusz Nowak (https://www.medikoo.com/)", - "keywords": [ - "type", - "coercion" - ], - "repository": "medikoo/type", - "devDependencies": { - "chai": "^4.2.0", - "eslint": "^6.4.0", - "eslint-config-medikoo": "^2.5.1", - "git-list-updated": "^1.2.1", - "husky": "^3.0.5", - "lint-staged": "^9.2.5", - "mocha": "^6.2.0", - "nyc": "^14.1.1", - "prettier-elastic": "^1.18.2" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.js": [ - "eslint" - ], - "*.{css,html,js,json,md,yaml,yml}": [ - "prettier -c" - ] - }, - "eslintConfig": { - "extends": "medikoo/es3", - "root": true, - "globals": { - "Map": true, - "Promise": true, - "Set": true, - "Symbol": true - }, - "overrides": [ - { - "files": "test/**/*.js", - "env": { - "mocha": true - }, - "rules": { - "no-eval": "off", - "no-new-wrappers": "off" - } - }, - { - "files": [ - "string/coerce.js", - "number/coerce.js" - ], - "rules": { - "no-implicit-coercion": "off" - } - }, - { - "files": "plain-object/is.js", - "rules": { - "no-proto": "off" - } - } - ] - }, - "prettier": { - "printWidth": 100, - "tabWidth": 4, - "overrides": [ - { - "files": [ - "*.md" - ], - "options": { - "tabWidth": 2 - } - } - ] - }, - "scripts": { - "coverage": "nyc --reporter=lcov --reporter=html --reporter=text-summary npm test", - "check-coverage": "npm run coverage && nyc check-coverage --statements 80 --function 80 --branches 80 --lines 80", - "lint": "eslint --ignore-path=.gitignore .", - "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", - "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", - "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", - "test": "mocha --recursive" - }, - "license": "ISC" + "_args": [ + [ + "type@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "type@1.2.0", + "_id": "type@1.2.0", + "_inBundle": false, + "_integrity": "sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A=", + "_location": "/type", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "type@1.2.0", + "name": "type", + "escapedName": "type", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/d" + ], + "_resolved": "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mariusz Nowak", + "email": "medyk@medikoo.com", + "url": "https://www.medikoo.com/" + }, + "bugs": { + "url": "https://github.com/medikoo/type/issues" + }, + "description": "Runtime validation and processing of JavaScript types", + "devDependencies": { + "chai": "^4.2.0", + "eslint": "^6.4.0", + "eslint-config-medikoo": "^2.5.1", + "git-list-updated": "^1.2.1", + "husky": "^3.0.5", + "lint-staged": "^9.2.5", + "mocha": "^6.2.0", + "nyc": "^14.1.1", + "prettier-elastic": "^1.18.2" + }, + "eslintConfig": { + "extends": "medikoo/es3", + "root": true, + "globals": { + "Map": true, + "Promise": true, + "Set": true, + "Symbol": true + }, + "overrides": [ + { + "files": "test/**/*.js", + "env": { + "mocha": true + }, + "rules": { + "no-eval": "off", + "no-new-wrappers": "off" + } + }, + { + "files": [ + "string/coerce.js", + "number/coerce.js" + ], + "rules": { + "no-implicit-coercion": "off" + } + }, + { + "files": "plain-object/is.js", + "rules": { + "no-proto": "off" + } + } + ] + }, + "homepage": "https://github.com/medikoo/type#readme", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "keywords": [ + "type", + "coercion" + ], + "license": "ISC", + "lint-staged": { + "*.js": [ + "eslint" + ], + "*.{css,html,js,json,md,yaml,yml}": [ + "prettier -c" + ] + }, + "name": "type", + "prettier": { + "printWidth": 100, + "tabWidth": 4, + "overrides": [ + { + "files": [ + "*.md" + ], + "options": { + "tabWidth": 2 + } + } + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/medikoo/type.git" + }, + "scripts": { + "check-coverage": "npm run coverage && nyc check-coverage --statements 80 --function 80 --branches 80 --lines 80", + "coverage": "nyc --reporter=lcov --reporter=html --reporter=text-summary npm test", + "lint": "eslint --ignore-path=.gitignore .", + "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'", + "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c", + "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'", + "test": "mocha --recursive" + }, + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/typedarray/package.json b/admin/vue2/element-admin-v3/node_modules/typedarray/package.json index a7854a0fc..1ee7e142c 100644 --- a/admin/vue2/element-admin-v3/node_modules/typedarray/package.json +++ b/admin/vue2/element-admin-v3/node_modules/typedarray/package.json @@ -1,18 +1,44 @@ { - "name": "typedarray", - "version": "0.0.6", + "_args": [ + [ + "typedarray@0.0.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "typedarray@0.0.6", + "_id": "typedarray@0.0.6", + "_inBundle": false, + "_integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "_location": "/typedarray", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "typedarray@0.0.6", + "name": "typedarray", + "escapedName": "typedarray", + "rawSpec": "0.0.6", + "saveSpec": null, + "fetchSpec": "0.0.6" + }, + "_requiredBy": [ + "/concat-stream" + ], + "_resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "_spec": "0.0.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/typedarray/issues" + }, "description": "TypedArray polyfill for old browsers", - "main": "index.js", "devDependencies": { "tape": "~2.3.2" }, - "scripts": { - "test": "tape test/*.js test/server/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/substack/typedarray.git" - }, "homepage": "https://github.com/substack/typedarray", "keywords": [ "ArrayBuffer", @@ -30,12 +56,16 @@ "array", "polyfill" ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, "license": "MIT", + "main": "index.js", + "name": "typedarray", + "repository": { + "type": "git", + "url": "git://github.com/substack/typedarray.git" + }, + "scripts": { + "test": "tape test/*.js test/server/*.js" + }, "testling": { "files": "test/*.js", "browsers": [ @@ -51,5 +81,6 @@ "iphone/6.0..latest", "android-browser/4.2..latest" ] - } + }, + "version": "0.0.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/commander/package.json b/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/commander/package.json index a68384294..d5e3a7012 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/commander/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/commander/package.json @@ -1,38 +1,74 @@ { - "name": "commander", - "version": "2.19.0", + "_args": [ + [ + "commander@2.19.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "commander@2.19.0", + "_id": "commander@2.19.0", + "_inBundle": false, + "_integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "_location": "/uglify-js/commander", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "commander@2.19.0", + "name": "commander", + "escapedName": "commander", + "rawSpec": "2.19.0", + "saveSpec": null, + "fetchSpec": "2.19.0" + }, + "_requiredBy": [ + "/uglify-js" + ], + "_resolved": "https://registry.nlark.com/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "_spec": "2.19.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/tj/commander.js/issues" + }, + "dependencies": {}, "description": "the complete solution for node.js command-line programs", + "devDependencies": { + "@types/node": "^10.11.3", + "eslint": "^5.6.1", + "should": "^13.2.3", + "sinon": "^6.3.4", + "standard": "^12.0.1", + "ts-node": "^7.0.1", + "typescript": "^2.9.2" + }, + "files": [ + "index.js", + "typings/index.d.ts" + ], + "homepage": "https://github.com/tj/commander.js#readme", "keywords": [ "commander", "command", "option", "parser" ], - "author": "TJ Holowaychuk ", "license": "MIT", + "main": "index", + "name": "commander", "repository": { "type": "git", - "url": "https://github.com/tj/commander.js.git" + "url": "git+https://github.com/tj/commander.js.git" }, "scripts": { "lint": "eslint index.js", "test": "node test/run.js && npm run test-typings", "test-typings": "tsc -p tsconfig.json" }, - "main": "index", - "files": [ - "index.js", - "typings/index.d.ts" - ], - "dependencies": {}, - "devDependencies": { - "@types/node": "^10.11.3", - "eslint": "^5.6.1", - "should": "^13.2.3", - "sinon": "^6.3.4", - "standard": "^12.0.1", - "ts-node": "^7.0.1", - "typescript": "^2.9.2" - }, - "typings": "typings/index.d.ts" + "typings": "typings/index.d.ts", + "version": "2.19.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/source-map/package.json index 24663417e..6df253bb1 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglify-js/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/uglify-js/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/uglify-js" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglify-js/package.json b/admin/vue2/element-admin-v3/node_modules/uglify-js/package.json index d0ecedcc1..ac6cf2a32 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglify-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglify-js/package.json @@ -1,38 +1,63 @@ { - "name": "uglify-js", - "description": "JavaScript parser, mangler/compressor and beautifier toolkit", - "author": "Mihai Bazon (http://lisperator.net/)", - "license": "BSD-2-Clause", - "version": "3.4.10", - "engines": { - "node": ">=0.8.0" + "_args": [ + [ + "uglify-js@3.4.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "uglify-js@3.4.10", + "_id": "uglify-js@3.4.10", + "_inBundle": false, + "_integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", + "_location": "/uglify-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uglify-js@3.4.10", + "name": "uglify-js", + "escapedName": "uglify-js", + "rawSpec": "3.4.10", + "saveSpec": null, + "fetchSpec": "3.4.10" }, - "maintainers": [ - "Alex Lam ", - "Mihai Bazon (http://lisperator.net/)" + "_requiredBy": [ + "/html-minifier" ], - "repository": "mishoo/UglifyJS2", - "main": "tools/node.js", + "_resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1622845500166&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", + "_spec": "3.4.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" + }, "bin": { "uglifyjs": "bin/uglifyjs" }, - "files": [ - "bin", - "lib", - "tools", - "LICENSE" - ], + "bugs": { + "url": "https://github.com/mishoo/UglifyJS2/issues" + }, "dependencies": { "commander": "~2.19.0", "source-map": "~0.6.1" }, + "description": "JavaScript parser, mangler/compressor and beautifier toolkit", "devDependencies": { "acorn": "~6.1.1", "semver": "~5.6.0" }, - "scripts": { - "test": "node test/run-tests.js" + "engines": { + "node": ">=0.8.0" }, + "files": [ + "bin", + "lib", + "tools", + "LICENSE" + ], + "homepage": "https://github.com/mishoo/UglifyJS2#readme", "keywords": [ "cli", "compress", @@ -56,5 +81,27 @@ "parser", "uglifier", "uglify" - ] + ], + "license": "BSD-2-Clause", + "main": "tools/node.js", + "maintainers": [ + { + "name": "Alex Lam", + "email": "alexlamsl@gmail.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" + } + ], + "name": "uglify-js", + "repository": { + "type": "git", + "url": "git+https://github.com/mishoo/UglifyJS2.git" + }, + "scripts": { + "test": "node test/run-tests.js" + }, + "version": "3.4.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglify-to-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/uglify-to-browserify/package.json index 24eed9b48..e1d59bff3 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglify-to-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglify-to-browserify/package.json @@ -1,20 +1,56 @@ -{ - "name": "uglify-to-browserify", - "version": "1.0.2", - "description": "A transform to make UglifyJS work in browserify.", - "keywords": [], - "dependencies": {}, - "devDependencies": { - "uglify-js": "~2.4.0", - "source-map": "~0.1.27" - }, - "scripts": { - "test": "node test/index.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/uglify-to-browserify.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file +{ + "_args": [ + [ + "uglify-to-browserify@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "uglify-to-browserify@1.0.2", + "_id": "uglify-to-browserify@1.0.2", + "_inBundle": false, + "_integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "_location": "/uglify-to-browserify", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uglify-to-browserify@1.0.2", + "name": "uglify-to-browserify", + "escapedName": "uglify-to-browserify", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/pug-html-loader/uglify-js" + ], + "_resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/ForbesLindesay/uglify-to-browserify/issues" + }, + "dependencies": {}, + "description": "A transform to make UglifyJS work in browserify.", + "devDependencies": { + "source-map": "~0.1.27", + "uglify-js": "~2.4.0" + }, + "homepage": "https://github.com/ForbesLindesay/uglify-to-browserify#readme", + "keywords": [], + "license": "MIT", + "name": "uglify-to-browserify", + "repository": { + "type": "git", + "url": "git+https://github.com/ForbesLindesay/uglify-to-browserify.git" + }, + "scripts": { + "test": "node test/index.js" + }, + "version": "1.0.2" +} diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs index 67912f42c..cc0595413 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uglify-es/bin/uglifyjs" "$@" + "$basedir/node" "$basedir/../uglify-es/bin/uglifyjs" "$@" + ret=$? else - exec node "$basedir/../uglify-es/bin/uglifyjs" "$@" + node "$basedir/../uglify-es/bin/uglifyjs" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.cmd b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.cmd index b4b6a9884..3ca537064 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.cmd +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uglify-es\bin\uglifyjs" %* +"%_prog%" "%dp0%\..\uglify-es\bin\uglifyjs" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.ps1 b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.ps1 index a01f11e3f..49544a73e 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/.bin/uglifyjs.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../uglify-es/bin/uglifyjs" $args - } else { - & "$basedir/node$exe" "$basedir/../uglify-es/bin/uglifyjs" $args - } + & "$basedir/node$exe" "$basedir/../uglify-es/bin/uglifyjs" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../uglify-es/bin/uglifyjs" $args - } else { - & "node$exe" "$basedir/../uglify-es/bin/uglifyjs" $args - } + & "node$exe" "$basedir/../uglify-es/bin/uglifyjs" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/commander/package.json b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/commander/package.json index 0106d5644..9f5a6ce88 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/commander/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/commander/package.json @@ -1,34 +1,69 @@ { - "name": "commander", - "version": "2.13.0", + "_args": [ + [ + "commander@2.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "commander@2.13.0", + "_id": "commander@2.13.0", + "_inBundle": false, + "_integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=", + "_location": "/uglifyjs-webpack-plugin/commander", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "commander@2.13.0", + "name": "commander", + "escapedName": "commander", + "rawSpec": "2.13.0", + "saveSpec": null, + "fetchSpec": "2.13.0" + }, + "_requiredBy": [ + "/uglifyjs-webpack-plugin/uglify-es" + ], + "_resolved": "https://registry.nlark.com/commander/download/commander-2.13.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.13.0.tgz", + "_spec": "2.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/tj/commander.js/issues" + }, + "dependencies": {}, "description": "the complete solution for node.js command-line programs", + "devDependencies": { + "@types/node": "^7.0.48", + "should": "^11.2.1", + "sinon": "^2.4.1", + "typescript": "^2.6.2" + }, + "files": [ + "index.js", + "typings/index.d.ts" + ], + "homepage": "https://github.com/tj/commander.js#readme", "keywords": [ "commander", "command", "option", "parser" ], - "author": "TJ Holowaychuk ", "license": "MIT", + "main": "index", + "name": "commander", "repository": { "type": "git", - "url": "https://github.com/tj/commander.js.git" + "url": "git+https://github.com/tj/commander.js.git" }, "scripts": { "test": "make test && npm run test-typings", "test-typings": "node_modules/typescript/bin/tsc -p tsconfig.json" }, - "main": "index", - "files": [ - "index.js", - "typings/index.d.ts" - ], - "dependencies": {}, - "devDependencies": { - "@types/node": "^7.0.48", - "should": "^11.2.1", - "sinon": "^2.4.1", - "typescript": "^2.6.2" - }, - "typings": "typings/index.d.ts" + "typings": "typings/index.d.ts", + "version": "2.13.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils/package.json index ab2bf6078..992d73090 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils/package.json @@ -1,25 +1,44 @@ { - "name": "schema-utils", - "version": "0.4.7", - "description": "webpack Validation Utils", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "schema-utils@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_from": "schema-utils@0.4.7", + "_id": "schema-utils@0.4.7", + "_inBundle": false, + "_integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "_location": "/uglifyjs-webpack-plugin/schema-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "schema-utils@0.4.7", + "name": "schema-utils", + "escapedName": "schema-utils", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" }, - "scripts": { - "lint": "eslint --cache src test", - "test": "jest --env node --verbose --coverage", - "clean": "del-cli coverage", - "commits": "commitlint --from $(git rev-list --tags --max-count=1)", - "release": "npm run commits && standard-version" + "_requiredBy": [ + "/uglifyjs-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" }, + "description": "webpack Validation Utils", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.0", @@ -32,9 +51,26 @@ "prettier": "^1.0.0", "standard-version": "^4.0.0" }, - "author": "webpack Contrib (https://github.com/webpack-contrib)", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", + "engines": { + "node": ">= 4" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/schema-utils", - "repository": "https://github.com/webpack-contrib/schema-utils", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "schema-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "clean": "del-cli coverage", + "commits": "commitlint --from $(git rev-list --tags --max-count=1)", + "lint": "eslint --cache src test", + "release": "npm run commits && standard-version", + "test": "jest --env node --verbose --coverage" + }, + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/source-map/package.json index 24663417e..4848d6bb4 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/source-map/package.json @@ -1,52 +1,194 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/uglifyjs-webpack-plugin/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/uglifyjs-webpack-plugin", + "/uglifyjs-webpack-plugin/uglify-es" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +198,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/package.json b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/package.json index a36cae3be..45482ad54 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es/package.json @@ -1,40 +1,63 @@ { - "name": "uglify-es", - "description": "JavaScript parser, mangler/compressor and beautifier toolkit for ES6+", - "homepage": "https://github.com/mishoo/UglifyJS2/tree/harmony", - "author": "Mihai Bazon (http://lisperator.net/)", - "license": "BSD-2-Clause", - "version": "3.3.9", - "engines": { - "node": ">=0.8.0" + "_args": [ + [ + "uglify-es@3.3.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "uglify-es@3.3.9", + "_id": "uglify-es@3.3.9", + "_inBundle": false, + "_integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=", + "_location": "/uglifyjs-webpack-plugin/uglify-es", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uglify-es@3.3.9", + "name": "uglify-es", + "escapedName": "uglify-es", + "rawSpec": "3.3.9", + "saveSpec": null, + "fetchSpec": "3.3.9" }, - "maintainers": [ - "Alex Lam ", - "Mihai Bazon (http://lisperator.net/)" + "_requiredBy": [ + "/uglifyjs-webpack-plugin" ], - "repository": "https://github.com/mishoo/UglifyJS2.git#harmony", - "main": "tools/node.js", + "_resolved": "https://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz", + "_spec": "3.3.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" + }, "bin": { "uglifyjs": "bin/uglifyjs" }, - "files": [ - "bin", - "lib", - "tools", - "LICENSE" - ], + "bugs": { + "url": "https://github.com/mishoo/UglifyJS2/issues" + }, "dependencies": { "commander": "~2.13.0", "source-map": "~0.6.1" }, + "description": "JavaScript parser, mangler/compressor and beautifier toolkit for ES6+", "devDependencies": { "acorn": "~5.3.0", "mocha": "~3.5.1", "semver": "~5.4.1" }, - "scripts": { - "test": "node test/run-tests.js" + "engines": { + "node": ">=0.8.0" }, + "files": [ + "bin", + "lib", + "tools", + "LICENSE" + ], + "homepage": "https://github.com/mishoo/UglifyJS2/tree/harmony", "keywords": [ "uglify", "uglify-es", @@ -52,5 +75,27 @@ "es2017", "async", "await" - ] + ], + "license": "BSD-2-Clause", + "main": "tools/node.js", + "maintainers": [ + { + "name": "Alex Lam", + "email": "alexlamsl@gmail.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com", + "url": "http://lisperator.net/" + } + ], + "name": "uglify-es", + "repository": { + "type": "git", + "url": "git+https://github.com/mishoo/UglifyJS2.git#harmony" + }, + "scripts": { + "test": "node test/run-tests.js" + }, + "version": "3.3.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/package.json b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/package.json index 7480ea1c1..8c596bbe4 100644 --- a/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uglifyjs-webpack-plugin/package.json @@ -1,45 +1,53 @@ { - "name": "uglifyjs-webpack-plugin", - "version": "1.2.7", - "description": "UglifyJS plugin for webpack", - "author": "webpack Contrib Team", - "license": "MIT", - "engines": { - "node": ">= 4.8 < 5.0.0 || >= 5.10" + "_args": [ + [ + "uglifyjs-webpack-plugin@1.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "uglifyjs-webpack-plugin@1.2.7", + "_id": "uglifyjs-webpack-plugin@1.2.7", + "_inBundle": false, + "_integrity": "sha1-V2ON2ZyFOh6/6dl7QhYKilB/nQA=", + "_location": "/uglifyjs-webpack-plugin", + "_phantomChildren": { + "ajv": "6.12.6", + "ajv-keywords": "3.5.2" }, - "main": "dist/cjs.js", - "files": [ - "dist" + "_requested": { + "type": "version", + "registry": true, + "raw": "uglifyjs-webpack-plugin@1.2.7", + "name": "uglifyjs-webpack-plugin", + "escapedName": "uglifyjs-webpack-plugin", + "rawSpec": "1.2.7", + "saveSpec": null, + "fetchSpec": "1.2.7" + }, + "_requiredBy": [ + "#DEV:/", + "/webpack" ], - "scripts": { - "start": "npm run build -- -w", - "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", - "test": "jest", - "test:watch": "jest --watch", - "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", - "prebuild": "npm run clean", - "clean": "del-cli dist", - "lint": "eslint --cache src test", - "lint-staged": "lint-staged", - "prepare": "npm run build", - "release": "standard-version", - "security": "nsp check", - "ci:lint": "npm run lint && npm run security", - "ci:test": "npm run test -- --runInBand", - "ci:coverage": "npm run test:coverage -- --runInBand", - "appveyor:test": "npm run test", - "webpack-defaults": "webpack-defaults" + "_resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.2.7.tgz", + "_spec": "1.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib Team" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues" }, "dependencies": { "cacache": "^10.0.4", "find-cache-dir": "^1.0.0", - "serialize-javascript": "^1.4.0", "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", "source-map": "^0.6.1", "uglify-es": "^3.3.4", "webpack-sources": "^1.1.0", "worker-farm": "^1.5.2" }, + "description": "UglifyJS plugin for webpack", "devDependencies": { "babel-cli": "^6.26.0", "babel-jest": "^22.4.3", @@ -60,8 +68,15 @@ "webpack": "^3.10.0", "webpack-defaults": "^1.6.0" }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/webpack-contrib/uglifyjs-webpack-plugin", + "jest": { + "testEnvironment": "node" }, "keywords": [ "uglify", @@ -70,17 +85,41 @@ "webpack", "webpack-plugin" ], - "bugs": "https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues", - "homepage": "https://github.com/webpack-contrib/uglifyjs-webpack-plugin", - "repository": "https://github.com/webpack-contrib/uglifyjs-webpack-plugin.git", - "pre-commit": "lint-staged", + "license": "MIT", "lint-staged": { "*.js": [ "eslint --fix", "git add" ] }, - "jest": { - "testEnvironment": "node" - } + "main": "dist/cjs.js", + "name": "uglifyjs-webpack-plugin", + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + }, + "pre-commit": "lint-staged", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/uglifyjs-webpack-plugin.git" + }, + "scripts": { + "appveyor:test": "npm run test", + "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", + "ci:coverage": "npm run test:coverage -- --runInBand", + "ci:lint": "npm run lint && npm run security", + "ci:test": "npm run test -- --runInBand", + "clean": "del-cli dist", + "lint": "eslint --cache src test", + "lint-staged": "lint-staged", + "prebuild": "npm run clean", + "prepare": "npm run build", + "release": "standard-version", + "security": "nsp check", + "start": "npm run build -- -w", + "test": "jest", + "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", + "test:watch": "jest --watch", + "webpack-defaults": "webpack-defaults" + }, + "version": "1.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/unbox-primitive/package.json b/admin/vue2/element-admin-v3/node_modules/unbox-primitive/package.json index a0555eedb..b829c2a80 100644 --- a/admin/vue2/element-admin-v3/node_modules/unbox-primitive/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unbox-primitive/package.json @@ -1,64 +1,96 @@ { - "name": "unbox-primitive", - "version": "1.0.1", - "description": "Unbox a boxed JS primitive value.", - "main": "index.js", - "scripts": { - "prepublish": "not-in-publish || safe-publish-latest", - "lint": "eslint .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "npx aud --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/unbox-primitive.git" - }, - "keywords": [ - "unbox", - "boxed", - "primitive", - "object", - "javascript", - "ecmascript" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/unbox-primitive/issues" - }, - "homepage": "https://github.com/ljharb/unbox-primitive#readme", - "devDependencies": { - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "auto-changelog": "^2.2.1", - "eslint": "^7.22.0", - "for-each": "^0.3.3", - "in-publish": "^2.0.1", - "nyc": "^10.3.2", - "object-inspect": "^1.9.0", - "object-is": "^1.1.5", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" - }, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "unbox-primitive@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "unbox-primitive@1.0.1", + "_id": "unbox-primitive@1.0.1", + "_inBundle": false, + "_integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", + "_location": "/unbox-primitive", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unbox-primitive@1.0.1", + "name": "unbox-primitive", + "escapedName": "unbox-primitive", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/es-abstract" + ], + "_resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706302651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/ljharb/unbox-primitive/issues" + }, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "description": "Unbox a boxed JS primitive value.", + "devDependencies": { + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "auto-changelog": "^2.2.1", + "eslint": "^7.22.0", + "for-each": "^0.3.3", + "in-publish": "^2.0.1", + "nyc": "^10.3.2", + "object-inspect": "^1.9.0", + "object-is": "^1.1.5", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/ljharb/unbox-primitive#readme", + "keywords": [ + "unbox", + "boxed", + "primitive", + "object", + "javascript", + "ecmascript" + ], + "license": "MIT", + "main": "index.js", + "name": "unbox-primitive", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/unbox-primitive.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "npx aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/underscore/package.json b/admin/vue2/element-admin-v3/node_modules/underscore/package.json index 86423edec..26b5a0f94 100644 --- a/admin/vue2/element-admin-v3/node_modules/underscore/package.json +++ b/admin/vue2/element-admin-v3/node_modules/underscore/package.json @@ -1,27 +1,74 @@ { - "name" : "underscore", - "description" : "JavaScript's functional programming helper library.", - "homepage" : "http://underscorejs.org", - "keywords" : ["util", "functional", "server", "client", "browser"], - "author" : "Jeremy Ashkenas ", - "repository" : {"type": "git", "url": "git://github.com/jashkenas/underscore.git"}, - "main" : "underscore.js", - "version" : "1.6.0", + "_args": [ + [ + "underscore@1.6.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "underscore@1.6.0", + "_id": "underscore@1.6.0", + "_inBundle": false, + "_integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "_location": "/underscore", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "underscore@1.6.0", + "name": "underscore", + "escapedName": "underscore", + "rawSpec": "1.6.0", + "saveSpec": null, + "fetchSpec": "1.6.0" + }, + "_requiredBy": [ + "/nomnom" + ], + "_resolved": "https://registry.npm.taobao.org/underscore/download/underscore-1.6.0.tgz?cache=0&sync_timestamp=1618502952302&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.6.0.tgz", + "_spec": "1.6.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jeremy Ashkenas", + "email": "jeremy@documentcloud.org" + }, + "bugs": { + "url": "https://github.com/jashkenas/underscore/issues" + }, + "description": "JavaScript's functional programming helper library.", "devDependencies": { "docco": "0.6.x", "phantomjs": "1.9.0-1", "uglify-js": "2.4.x" }, - "scripts": { - "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true", - "build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js", - "doc": "docco underscore.js" - }, + "files": [ + "underscore.js", + "underscore-min.js", + "LICENSE" + ], + "homepage": "http://underscorejs.org", + "keywords": [ + "util", + "functional", + "server", + "client", + "browser" + ], "licenses": [ { "type": "MIT", "url": "https://raw.github.com/jashkenas/underscore/master/LICENSE" } ], - "files" : ["underscore.js", "underscore-min.js", "LICENSE"] + "main": "underscore.js", + "name": "underscore", + "repository": { + "type": "git", + "url": "git://github.com/jashkenas/underscore.git" + }, + "scripts": { + "build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js", + "doc": "docco underscore.js", + "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true" + }, + "version": "1.6.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/unidecode/package.json b/admin/vue2/element-admin-v3/node_modules/unidecode/package.json index 71de187e3..8bd8962c4 100644 --- a/admin/vue2/element-admin-v3/node_modules/unidecode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unidecode/package.json @@ -1,32 +1,71 @@ { - "name": "unidecode", + "_args": [ + [ + "unidecode@0.1.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "unidecode@0.1.8", + "_id": "unidecode@0.1.8", + "_inBundle": false, + "_integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=", + "_location": "/unidecode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unidecode@0.1.8", + "name": "unidecode", + "escapedName": "unidecode", + "rawSpec": "0.1.8", + "saveSpec": null, + "fetchSpec": "0.1.8" + }, + "_requiredBy": [ + "/url-slug" + ], + "_resolved": "https://registry.npm.taobao.org/unidecode/download/unidecode-0.1.8.tgz", + "_spec": "0.1.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Francois-Guillaume Ribreau", + "email": "npm@fgribreau.com", + "url": "http://fgribreau.com" + }, + "bugs": { + "url": "https://github.com/FGRibreau/node-unidecode/issues" + }, + "dependencies": {}, "description": "ASCII transliterations of Unicode text", + "devDependencies": { + "jshint": "^2.5.11", + "mocha": "^2.0.1" + }, + "engines": { + "node": ">= 0.4.12" + }, + "homepage": "http://blog.fgribreau.com/2012/05/unidecode-for-javascript-nodejs.html", "keywords": [ "unidecode", "unicode", "utf8" ], - "version": "0.1.8", - "homepage": "http://blog.fgribreau.com/2012/05/unidecode-for-javascript-nodejs.html", - "dependencies": {}, - "repository": "git@github.com:FGRibreau/node-unidecode.git", - "author": "Francois-Guillaume Ribreau (http://fgribreau.com)", - "main": "./unidecode", "licenses": [ { "type": "BSD", "url": "http://github.com/FGRibreau/node-unidecode/blob/master/LICENSE" } ], - "scripts": { - "test": "mocha", - "lint": "jshint *.js */*.js" + "main": "./unidecode", + "name": "unidecode", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/FGRibreau/node-unidecode.git" }, - "engines": { - "node": ">= 0.4.12" + "scripts": { + "lint": "jshint *.js */*.js", + "test": "mocha" }, - "devDependencies": { - "jshint": "^2.5.11", - "mocha": "^2.0.1" - } + "version": "0.1.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/union-value/package.json b/admin/vue2/element-admin-v3/node_modules/union-value/package.json index 65441f6e4..e229a50ff 100644 --- a/admin/vue2/element-admin-v3/node_modules/union-value/package.json +++ b/admin/vue2/element-admin-v3/node_modules/union-value/package.json @@ -1,23 +1,38 @@ { - "name": "union-value", - "description": "Set an array of unique values as the property of an object. Supports setting deeply nested properties using using object-paths/dot notation.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/union-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/union-value", - "bugs": { - "url": "https://github.com/jonschlinkert/union-value/issues" + "_args": [ + [ + "union-value@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "union-value@1.0.1", + "_id": "union-value@1.0.1", + "_inBundle": false, + "_integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "_location": "/union-value", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "union-value@1.0.1", + "name": "union-value", + "escapedName": "union-value", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/cache-base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/union-value/issues" }, "dependencies": { "arr-union": "^3.1.0", @@ -25,11 +40,19 @@ "is-extendable": "^0.1.1", "set-value": "^2.0.1" }, + "description": "Set an array of unique values as the property of an object. Supports setting deeply nested properties using using object-paths/dot notation.", "devDependencies": { "gulp-format-md": "^0.1.11", "mocha": "^3.2.0", "should": "^11.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/union-value", "keywords": [ "array", "dot", @@ -45,6 +68,16 @@ "union", "value" ], + "license": "MIT", + "main": "index.js", + "name": "union-value", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/union-value.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -66,5 +99,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/uniq/package.json b/admin/vue2/element-admin-v3/node_modules/uniq/package.json index 9c91dda05..b8cd0897d 100644 --- a/admin/vue2/element-admin-v3/node_modules/uniq/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uniq/package.json @@ -1,22 +1,52 @@ { - "name": "uniq", - "version": "1.0.1", - "description": "Removes duplicates from a sorted array in place", - "main": "uniq.js", - "directories": { - "test": "test" + "_args": [ + [ + "uniq@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "uniq@1.0.1", + "_id": "uniq@1.0.1", + "_inBundle": false, + "_integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "_location": "/uniq", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uniq@1.0.1", + "name": "uniq", + "escapedName": "uniq", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils/postcss-selector-parser", + "/postcss-merge-rules/postcss-selector-parser", + "/postcss-minify-selectors/postcss-selector-parser", + "/stylehacks/postcss-selector-parser" + ], + "_resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mikola Lysenko" + }, + "bugs": { + "url": "https://github.com/mikolalysenko/uniq/issues" }, "dependencies": {}, + "description": "Removes duplicates from a sorted array in place", "devDependencies": { "tape": "^2.12.3" }, - "scripts": { - "test": "tape test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/mikolalysenko/uniq.git" + "directories": { + "test": "test" }, + "gitHead": "e9828cfcb97e25a351f95b39fdf3c31876ff3985", + "homepage": "https://github.com/mikolalysenko/uniq#readme", "keywords": [ "array", "duplicate", @@ -29,8 +59,15 @@ "no", "copy" ], - "author": "Mikola Lysenko", "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "e9828cfcb97e25a351f95b39fdf3c31876ff3985" + "main": "uniq.js", + "name": "uniq", + "repository": { + "type": "git", + "url": "git://github.com/mikolalysenko/uniq.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/uniqs/package.json b/admin/vue2/element-admin-v3/node_modules/uniqs/package.json index 1f8b3867b..67b82b496 100644 --- a/admin/vue2/element-admin-v3/node_modules/uniqs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uniqs/package.json @@ -1,21 +1,58 @@ { - "name": "uniqs", - "version": "2.0.0", + "_args": [ + [ + "uniqs@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "uniqs@2.0.0", + "_id": "uniqs@2.0.0", + "_inBundle": false, + "_integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "_location": "/uniqs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uniqs@2.0.0", + "name": "uniqs", + "escapedName": "uniqs", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/postcss-minify-params", + "/postcss-unique-selectors" + ], + "_resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + "bugs": { + "url": "https://github.com/fgnass/uniqs/issues" + }, "description": "Tiny utility to create unions and de-duplicated lists", + "homepage": "https://github.com/fgnass/uniqs#readme", "keywords": [ "unique", "uniq", "dedupe", "union" ], + "license": "MIT", + "main": "index.js", + "name": "uniqs", "repository": { "type": "git", "url": "git://github.com/fgnass/uniqs.git" }, - "main": "index.js", "scripts": { "test": "node test" }, - "author": "Felix Gnass ", - "license": "MIT" + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/unique-filename/package.json b/admin/vue2/element-admin-v3/node_modules/unique-filename/package.json index bc429aa44..cad0ed14f 100644 --- a/admin/vue2/element-admin-v3/node_modules/unique-filename/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unique-filename/package.json @@ -1,27 +1,59 @@ { - "name": "unique-filename", - "version": "1.1.1", - "description": "Generate a unique filename for use in temporary directories or caches.", - "main": "index.js", - "scripts": { - "test": "standard && tap test" + "_args": [ + [ + "unique-filename@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "unique-filename@1.1.1", + "_id": "unique-filename@1.1.1", + "_inBundle": false, + "_integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "_location": "/unique-filename", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unique-filename@1.1.1", + "name": "unique-filename", + "escapedName": "unique-filename", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/unique-filename.git" + "_requiredBy": [ + "/cacache" + ], + "_resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", "bugs": { "url": "https://github.com/iarna/unique-filename/issues" }, - "homepage": "https://github.com/iarna/unique-filename", + "dependencies": { + "unique-slug": "^2.0.0" + }, + "description": "Generate a unique filename for use in temporary directories or caches.", "devDependencies": { "standard": "^5.4.1", "tap": "^2.3.1" }, - "dependencies": { - "unique-slug": "^2.0.0" - } + "homepage": "https://github.com/iarna/unique-filename", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "unique-filename", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/unique-filename.git" + }, + "scripts": { + "test": "standard && tap test" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/unique-slug/package.json b/admin/vue2/element-admin-v3/node_modules/unique-slug/package.json index 2142e6856..c1f5f9ce9 100644 --- a/admin/vue2/element-admin-v3/node_modules/unique-slug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unique-slug/package.json @@ -1,23 +1,59 @@ { - "name": "unique-slug", - "version": "2.0.2", - "description": "Generate a unique character string suitible for use in files and URLs.", - "main": "index.js", - "scripts": { - "test": "standard && tap --coverage test" + "_args": [ + [ + "unique-slug@2.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "unique-slug@2.0.2", + "_id": "unique-slug@2.0.2", + "_inBundle": false, + "_integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "_location": "/unique-slug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unique-slug@2.0.2", + "name": "unique-slug", + "escapedName": "unique-slug", + "rawSpec": "2.0.2", + "saveSpec": null, + "fetchSpec": "2.0.2" }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org)", - "license": "ISC", + "_requiredBy": [ + "/unique-filename" + ], + "_resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "_spec": "2.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org" + }, + "bugs": { + "url": "https://github.com/iarna/unique-slug/issues" + }, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "description": "Generate a unique character string suitible for use in files and URLs.", "devDependencies": { "standard": "^12.0.1", "tap": "^12.7.0" }, + "homepage": "https://github.com/iarna/unique-slug#readme", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "unique-slug", "repository": { "type": "git", "url": "git://github.com/iarna/unique-slug.git" }, - "dependencies": { - "imurmurhash": "^0.1.4" - } + "scripts": { + "test": "standard && tap --coverage test" + }, + "version": "2.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/unpipe/package.json b/admin/vue2/element-admin-v3/node_modules/unpipe/package.json index a2b73583b..2b5ba564a 100644 --- a/admin/vue2/element-admin-v3/node_modules/unpipe/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unpipe/package.json @@ -1,27 +1,67 @@ { - "name": "unpipe", + "_args": [ + [ + "unpipe@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "unpipe@1.0.0", + "_id": "unpipe@1.0.0", + "_inBundle": false, + "_integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "_location": "/unpipe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unpipe@1.0.0", + "name": "unpipe", + "escapedName": "unpipe", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/express/finalhandler", + "/finalhandler", + "/raw-body" + ], + "_resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/unpipe/issues" + }, "description": "Unpipe a stream from all destinations", - "version": "1.0.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "stream-utils/unpipe", "devDependencies": { "istanbul": "0.3.15", "mocha": "2.2.5", "readable-stream": "1.1.13" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "HISTORY.md", "LICENSE", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/stream-utils/unpipe#readme", + "license": "MIT", + "name": "unpipe", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/unpipe.git" }, "scripts": { "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/unquote/package.json b/admin/vue2/element-admin-v3/node_modules/unquote/package.json index 861c5bb09..4398591bd 100644 --- a/admin/vue2/element-admin-v3/node_modules/unquote/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unquote/package.json @@ -1,30 +1,62 @@ { - "name": "unquote", - "version": "1.1.1", - "description": "Remove wrapping quotes from a string.", - "main": "index.js", - "scripts": { - "test": "node test/*" + "_args": [ + [ + "unquote@1.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "unquote@1.1.1", + "_id": "unquote@1.1.1", + "_inBundle": false, + "_integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "_location": "/unquote", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unquote@1.1.1", + "name": "unquote", + "escapedName": "unquote", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" }, - "author": "Cameron Lakenen ", - "license": "MIT", + "_requiredBy": [ + "/svgo" + ], + "_resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", + "_spec": "1.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Cameron Lakenen", + "email": "cameron@lakenen.com" + }, + "bugs": { + "url": "https://github.com/lakenen/node-unquote/issues" + }, + "description": "Remove wrapping quotes from a string.", "devDependencies": { "tape": "^2.13.4" }, "directories": { "test": "test" }, - "repository": { - "type": "git", - "url": "https://github.com/lakenen/node-unquote.git" - }, - "bugs": { - "url": "https://github.com/lakenen/node-unquote/issues" - }, "homepage": "https://github.com/lakenen/node-unquote", "keywords": [ "string", "unquote", "quotes" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "unquote", + "repository": { + "type": "git", + "url": "git+https://github.com/lakenen/node-unquote.git" + }, + "scripts": { + "test": "node test/*" + }, + "version": "1.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/node_modules/isobject/package.json b/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/node_modules/isobject/package.json index 954f4113f..7cf3ea1dd 100644 --- a/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/node_modules/isobject/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/node_modules/isobject/package.json @@ -1,31 +1,54 @@ { - "name": "isobject", - "description": "Returns true if the value is an object and not an array or null.", - "version": "2.1.0", - "homepage": "https://github.com/jonschlinkert/isobject", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/isobject", - "bugs": { - "url": "https://github.com/jonschlinkert/isobject/issues" + "_args": [ + [ + "isobject@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "isobject@2.1.0", + "_id": "isobject@2.1.0", + "_inBundle": false, + "_integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "_location": "/unset-value/has-value/isobject", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isobject@2.1.0", + "name": "isobject", + "escapedName": "isobject", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/unset-value/has-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/isobject/issues" }, "dependencies": { "isarray": "1.0.0" }, + "description": "Returns true if the value is an object and not an array or null.", "devDependencies": { "gulp-format-md": "^0.1.9", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/isobject", "keywords": [ "check", "is", @@ -40,6 +63,16 @@ "typeof", "value" ], + "license": "MIT", + "main": "index.js", + "name": "isobject", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/isobject.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -63,5 +96,6 @@ "reflinks": [ "verb" ] - } + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/package.json b/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/package.json index 88ff6edc8..a17487e30 100644 --- a/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-value/package.json @@ -1,33 +1,58 @@ { - "name": "has-value", - "version": "0.3.1", - "description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.", - "homepage": "https://github.com/jonschlinkert/has-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/has-value", - "bugs": { - "url": "https://github.com/jonschlinkert/has-value/issues" + "_args": [ + [ + "has-value@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-value@0.3.1", + "_id": "has-value@0.3.1", + "_inBundle": false, + "_integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "_location": "/unset-value/has-value", + "_phantomChildren": { + "isarray": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "has-value@0.3.1", + "name": "has-value", + "escapedName": "has-value", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" + }, + "_requiredBy": [ + "/unset-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/has-value/issues" }, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, + "description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.", "devDependencies": { "gulp-format-md": "^0.1.7", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/has-value", "keywords": [ "array", "boolean", @@ -53,6 +78,16 @@ "utility", "value" ], + "license": "MIT", + "main": "index.js", + "name": "has-value", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/has-value.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -77,5 +112,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-values/package.json b/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-values/package.json index 519a2c895..58db4d044 100644 --- a/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-values/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unset-value/node_modules/has-values/package.json @@ -1,28 +1,51 @@ { - "name": "has-values", - "version": "0.1.4", - "description": "Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. ", - "homepage": "https://github.com/jonschlinkert/has-values", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/has-values", - "bugs": { - "url": "https://github.com/jonschlinkert/has-values/issues" + "_args": [ + [ + "has-values@0.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "has-values@0.1.4", + "_id": "has-values@0.1.4", + "_inBundle": false, + "_integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "_location": "/unset-value/has-values", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "has-values@0.1.4", + "name": "has-values", + "escapedName": "has-values", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/unset-value/has-value" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "_spec": "0.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/has-values/issues" }, + "description": "Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. ", "devDependencies": { "gulp-format-md": "^0.1.7", "mocha": "^2.4.5" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/has-values", "keywords": [ "array", "boolean", @@ -48,6 +71,16 @@ "utility", "value" ], + "license": "MIT", + "main": "index.js", + "name": "has-values", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/has-values.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "run": true, "toc": false, @@ -71,5 +104,6 @@ "lint": { "reflinks": true } - } + }, + "version": "0.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/unset-value/package.json b/admin/vue2/element-admin-v3/node_modules/unset-value/package.json index 0753ba6df..2921a6a9a 100644 --- a/admin/vue2/element-admin-v3/node_modules/unset-value/package.json +++ b/admin/vue2/element-admin-v3/node_modules/unset-value/package.json @@ -1,37 +1,70 @@ { - "name": "unset-value", - "description": "Delete nested properties from an object using dot notation.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/unset-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - " (https://github.com/wtgtybhertgeghgtwtg)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" + "_args": [ + [ + "unset-value@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/unset-value", - "bugs": { - "url": "https://github.com/jonschlinkert/unset-value/issues" + "_from": "unset-value@1.0.0", + "_id": "unset-value@1.0.0", + "_inBundle": false, + "_integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "_location": "/unset-value", + "_phantomChildren": { + "get-value": "2.0.6", + "isarray": "1.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "unset-value@1.0.0", + "name": "unset-value", + "escapedName": "unset-value", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/cache-base" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz?cache=0&sync_timestamp=1616088950015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/unset-value/issues" }, + "contributors": [ + { + "email": "wtgtybhertgeghgtwtg@gmail.com", + "url": "https://github.com/wtgtybhertgeghgtwtg" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, + "description": "Delete nested properties from an object using dot notation.", "devDependencies": { "gulp-format-md": "^0.1.11", "mocha": "*", "should": "*" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/unset-value", "keywords": [ "del", "delete", @@ -44,6 +77,16 @@ "unset", "value" ], + "license": "MIT", + "main": "index.js", + "name": "unset-value", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/unset-value.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "related": { "list": [ @@ -67,5 +110,6 @@ "lint": { "reflinks": true } - } + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/upath/package.json b/admin/vue2/element-admin-v3/node_modules/upath/package.json index 38f605b51..686d6ea9c 100644 --- a/admin/vue2/element-admin-v3/node_modules/upath/package.json +++ b/admin/vue2/element-admin-v3/node_modules/upath/package.json @@ -1,48 +1,41 @@ { - "name": "upath", - "description": "A proxy to `path`, replacing `\\` with `/` for all results & new methods to normalize & join keeping leading `./` and add, change, default, trim file extensions.", - "version": "1.2.0", - "homepage": "http://github.com/anodynos/upath/", + "_args": [ + [ + "upath@1.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "upath@1.2.0", + "_id": "upath@1.2.0", + "_inBundle": false, + "_integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", + "_location": "/upath", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "upath@1.2.0", + "name": "upath", + "escapedName": "upath", + "rawSpec": "1.2.0", + "saveSpec": null, + "fetchSpec": "1.2.0" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz", + "_spec": "1.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Angelos Pikoulas", "email": "agelos.pikoulas@gmail.com" }, - "license": "MIT", - "keywords": [ - "path", - "unix", - "windows", - "extension", - "file extension", - "replace extension", - "change extension", - "trim extension", - "add extension", - "default extension" - ], - "repository": { - "type": "git", - "url": "git://github.com/anodynos/upath" - }, "bugs": { "url": "http://github.com/anodynos/upath/issues", "email": "agelos.pikoulas@gmail.com" }, - "main": "./build/code/upath.js", - "types": "./upath.d.ts", - "preferGlobal": false, - "scripts": { - "test": "grunt", - "build": "grunt lib" - }, - "directories": { - "doc": "./doc", - "dist": "./build" - }, - "engines": { - "node": ">=4", - "yarn": "*" - }, + "description": "A proxy to `path`, replacing `\\` with `/` for all results & new methods to normalize & join keeping leading `./` and add, change, default, trim file extensions.", "devDependencies": { "chai": "~4.0.2", "coffee-script": "1.12.6", @@ -56,5 +49,40 @@ "urequire": "0.7.0-beta.33", "urequire-ab-specrunner": "^0.2.5", "urequire-rc-inject-version": "^0.1.6" - } + }, + "directories": { + "doc": "./doc", + "dist": "./build" + }, + "engines": { + "node": ">=4", + "yarn": "*" + }, + "homepage": "http://github.com/anodynos/upath/", + "keywords": [ + "path", + "unix", + "windows", + "extension", + "file extension", + "replace extension", + "change extension", + "trim extension", + "add extension", + "default extension" + ], + "license": "MIT", + "main": "./build/code/upath.js", + "name": "upath", + "preferGlobal": false, + "repository": { + "type": "git", + "url": "git://github.com/anodynos/upath.git" + }, + "scripts": { + "build": "grunt lib", + "test": "grunt" + }, + "types": "./upath.d.ts", + "version": "1.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/upper-case/package.json b/admin/vue2/element-admin-v3/node_modules/upper-case/package.json index d21476ff0..a08b93e0c 100644 --- a/admin/vue2/element-admin-v3/node_modules/upper-case/package.json +++ b/admin/vue2/element-admin-v3/node_modules/upper-case/package.json @@ -1,19 +1,72 @@ { - "name": "upper-case", - "version": "1.1.3", + "_args": [ + [ + "upper-case@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "upper-case@1.1.3", + "_id": "upper-case@1.1.3", + "_inBundle": false, + "_integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "_location": "/upper-case", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "upper-case@1.1.3", + "name": "upper-case", + "escapedName": "upper-case", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/camel-case" + ], + "_resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&sync_timestamp=1606859943902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "bugs": { + "url": "https://github.com/blakeembrey/upper-case/issues" + }, "description": "Upper case a string", - "main": "upper-case.js", - "typings": "upper-case.d.ts", + "devDependencies": { + "istanbul": "^0.3.5", + "mocha": "^2.1.0", + "pre-commit": "^1.0.2", + "standard": "^2.4.5" + }, "files": [ "upper-case.js", "upper-case.d.ts", "LICENSE" ], + "homepage": "https://github.com/blakeembrey/upper-case", + "keywords": [ + "cases", + "upper", + "uppercase", + "case" + ], + "license": "MIT", + "main": "upper-case.js", + "name": "upper-case", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/upper-case.git" + }, "scripts": { "lint": "standard", - "test-std": "mocha -- -R spec --bail", + "test": "npm run lint && npm run test-cov", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov" + "test-std": "mocha -- -R spec --bail" }, "standard": { "ignore": [ @@ -22,30 +75,6 @@ "bower_components/**" ] }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/upper-case.git" - }, - "keywords": [ - "cases", - "upper", - "uppercase", - "case" - ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/upper-case/issues" - }, - "homepage": "https://github.com/blakeembrey/upper-case", - "devDependencies": { - "istanbul": "^0.3.5", - "mocha": "^2.1.0", - "pre-commit": "^1.0.2", - "standard": "^2.4.5" - } + "typings": "upper-case.d.ts", + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/uri-js/package.json b/admin/vue2/element-admin-v3/node_modules/uri-js/package.json index de95d91aa..0c6470e13 100644 --- a/admin/vue2/element-admin-v3/node_modules/uri-js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uri-js/package.json @@ -1,9 +1,56 @@ { - "name": "uri-js", - "version": "4.4.1", + "_args": [ + [ + "uri-js@4.4.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "uri-js@4.4.1", + "_id": "uri-js@4.4.1", + "_inBundle": false, + "_integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "_location": "/uri-js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uri-js@4.4.1", + "name": "uri-js", + "escapedName": "uri-js", + "rawSpec": "4.4.1", + "saveSpec": null, + "fetchSpec": "4.4.1" + }, + "_requiredBy": [ + "/ajv" + ], + "_resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz", + "_spec": "4.4.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Gary Court", + "email": "gary.court@gmail.com" + }, + "bugs": { + "url": "https://github.com/garycourt/uri-js/issues" + }, + "dependencies": { + "punycode": "^2.1.0" + }, "description": "An RFC 3986/3987 compliant, scheme extendable URI/IRI parsing/validating/resolving library for JavaScript.", - "main": "dist/es5/uri.all.js", - "types": "dist/es5/uri.all.d.ts", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-plugin-external-helpers": "^6.22.0", + "babel-preset-latest": "^6.24.1", + "mocha": "^8.2.1", + "mocha-qunit-ui": "^0.1.3", + "rollup": "^0.41.6", + "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-node-resolve": "^2.0.0", + "sorcery": "^0.10.0", + "typescript": "^2.8.1", + "uglify-js": "^2.8.14" + }, "directories": { "test": "tests" }, @@ -15,19 +62,7 @@ "CHANGELOG", "LICENSE" ], - "scripts": { - "build:esnext": "tsc", - "build:es5": "rollup -c && cp dist/esnext/uri.d.ts dist/es5/uri.all.d.ts && npm run build:es5:fix-sourcemap", - "build:es5:fix-sourcemap": "sorcery -i dist/es5/uri.all.js", - "build:es5:min": "uglifyjs dist/es5/uri.all.js --support-ie8 --output dist/es5/uri.all.min.js --in-source-map dist/es5/uri.all.js.map --source-map uri.all.min.js.map --comments --compress --mangle --pure-funcs merge subexp && mv uri.all.min.js.map dist/es5/ && cp dist/es5/uri.all.d.ts dist/es5/uri.all.min.d.ts", - "build": "npm run build:esnext && npm run build:es5 && npm run build:es5:min", - "clean": "rm -rf dist", - "test": "mocha -u mocha-qunit-ui dist/es5/uri.all.js tests/tests.js" - }, - "repository": { - "type": "git", - "url": "http://github.com/garycourt/uri-js" - }, + "homepage": "https://github.com/garycourt/uri-js", "keywords": [ "URI", "IRI", @@ -52,26 +87,22 @@ "RFC6455", "RFC6874" ], - "author": "Gary Court ", "license": "BSD-2-Clause", - "bugs": { - "url": "https://github.com/garycourt/uri-js/issues" + "main": "dist/es5/uri.all.js", + "name": "uri-js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/garycourt/uri-js.git" }, - "homepage": "https://github.com/garycourt/uri-js", - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-plugin-external-helpers": "^6.22.0", - "babel-preset-latest": "^6.24.1", - "mocha": "^8.2.1", - "mocha-qunit-ui": "^0.1.3", - "rollup": "^0.41.6", - "rollup-plugin-babel": "^2.7.1", - "rollup-plugin-node-resolve": "^2.0.0", - "sorcery": "^0.10.0", - "typescript": "^2.8.1", - "uglify-js": "^2.8.14" + "scripts": { + "build": "npm run build:esnext && npm run build:es5 && npm run build:es5:min", + "build:es5": "rollup -c && cp dist/esnext/uri.d.ts dist/es5/uri.all.d.ts && npm run build:es5:fix-sourcemap", + "build:es5:fix-sourcemap": "sorcery -i dist/es5/uri.all.js", + "build:es5:min": "uglifyjs dist/es5/uri.all.js --support-ie8 --output dist/es5/uri.all.min.js --in-source-map dist/es5/uri.all.js.map --source-map uri.all.min.js.map --comments --compress --mangle --pure-funcs merge subexp && mv uri.all.min.js.map dist/es5/ && cp dist/es5/uri.all.d.ts dist/es5/uri.all.min.d.ts", + "build:esnext": "tsc", + "clean": "rm -rf dist", + "test": "mocha -u mocha-qunit-ui dist/es5/uri.all.js tests/tests.js" }, - "dependencies": { - "punycode": "^2.1.0" - } + "types": "dist/es5/uri.all.d.ts", + "version": "4.4.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/urix/package.json b/admin/vue2/element-admin-v3/node_modules/urix/package.json index 992e32959..df8918cd0 100644 --- a/admin/vue2/element-admin-v3/node_modules/urix/package.json +++ b/admin/vue2/element-admin-v3/node_modules/urix/package.json @@ -1,25 +1,62 @@ -{ - "name": "urix", - "version": "0.1.0", - "author": "Simon Lydell", - "license": "MIT", - "description": "Makes Windows-style paths more unix and URI friendly.", - "main": "index.js", - "repository": "lydell/urix", - "keywords": [ - "path", - "url", - "uri", - "unix", - "windows", - "backslash", - "slash" - ], - "scripts": { - "test": "jshint index.js test/ && mocha" - }, - "devDependencies": { - "mocha": "^1.17.1", - "jshint": "^2.4.4" - } -} +{ + "_args": [ + [ + "urix@0.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "urix@0.1.0", + "_id": "urix@0.1.0", + "_inBundle": false, + "_integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "_location": "/urix", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "urix@0.1.0", + "name": "urix", + "escapedName": "urix", + "rawSpec": "0.1.0", + "saveSpec": null, + "fetchSpec": "0.1.0" + }, + "_requiredBy": [ + "/source-map-resolve" + ], + "_resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "_spec": "0.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/urix/issues" + }, + "description": "Makes Windows-style paths more unix and URI friendly.", + "devDependencies": { + "jshint": "^2.4.4", + "mocha": "^1.17.1" + }, + "homepage": "https://github.com/lydell/urix#readme", + "keywords": [ + "path", + "url", + "uri", + "unix", + "windows", + "backslash", + "slash" + ], + "license": "MIT", + "main": "index.js", + "name": "urix", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/urix.git" + }, + "scripts": { + "test": "jshint index.js test/ && mocha" + }, + "version": "0.1.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime index 0a62a1b13..91e5e16a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime +++ b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mime/cli.js" "$@" + "$basedir/node" "$basedir/../mime/cli.js" "$@" + ret=$? else - exec node "$basedir/../mime/cli.js" "$@" + node "$basedir/../mime/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.cmd b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.cmd index a9e48f1e3..678bc6bc0 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.cmd +++ b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* +"%_prog%" "%dp0%\..\mime\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.ps1 b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.ps1 index 2222f40bc..a6f6f4700 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/.bin/mime.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../mime/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/mime/package.json b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/mime/package.json index 8bbee31db..bc78cb538 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/mime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/mime/package.json @@ -1,19 +1,47 @@ { + "_args": [ + [ + "mime@2.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "mime@2.5.2", + "_id": "mime@2.5.2", + "_inBundle": false, + "_integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", + "_location": "/url-loader/mime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime@2.5.2", + "name": "mime", + "escapedName": "mime", + "rawSpec": "2.5.2", + "saveSpec": null, + "fetchSpec": "2.5.2" + }, + "_requiredBy": [ + "/url-loader" + ], + "_resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz", + "_spec": "2.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Robert Kieffer", - "url": "http://github.com/broofa", - "email": "robert@broofa.com" - }, - "engines": { - "node": ">=4.0.0" + "email": "robert@broofa.com", + "url": "http://github.com/broofa" }, "bin": { "mime": "cli.js" }, + "bugs": { + "url": "https://github.com/broofa/mime/issues" + }, "contributors": [], - "description": "A comprehensive library for mime-type mapping", - "license": "MIT", "dependencies": {}, + "description": "A comprehensive library for mime-type mapping", "devDependencies": { "benchmark": "*", "chalk": "4.1.0", @@ -25,6 +53,9 @@ "runmd": "*", "standard-version": "9.1.0" }, + "engines": { + "node": ">=4.0.0" + }, "files": [ "index.js", "lite.js", @@ -32,21 +63,23 @@ "cli.js", "/types" ], - "scripts": { - "prepare": "node src/build.js && runmd --output README.md src/README_js.md", - "release": "standard-version", - "benchmark": "node src/benchmark.js", - "md": "runmd --watch --output README.md src/README_js.md", - "test": "mocha src/test.js" - }, + "homepage": "https://github.com/broofa/mime#readme", "keywords": [ "util", "mime" ], + "license": "MIT", "name": "mime", "repository": { - "url": "https://github.com/broofa/mime", + "url": "git+https://github.com/broofa/mime.git", "type": "git" }, + "scripts": { + "benchmark": "node src/benchmark.js", + "md": "runmd --watch --output README.md src/README_js.md", + "prepare": "node src/build.js && runmd --output README.md src/README_js.md", + "release": "standard-version", + "test": "mocha src/test.js" + }, "version": "2.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/schema-utils/package.json index ab2bf6078..76ff871d0 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url-loader/node_modules/schema-utils/package.json @@ -1,25 +1,45 @@ { - "name": "schema-utils", - "version": "0.4.7", - "description": "webpack Validation Utils", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "schema-utils@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_development": true, + "_from": "schema-utils@0.4.7", + "_id": "schema-utils@0.4.7", + "_inBundle": false, + "_integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "_location": "/url-loader/schema-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "schema-utils@0.4.7", + "name": "schema-utils", + "escapedName": "schema-utils", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" }, - "scripts": { - "lint": "eslint --cache src test", - "test": "jest --env node --verbose --coverage", - "clean": "del-cli coverage", - "commits": "commitlint --from $(git rev-list --tags --max-count=1)", - "release": "npm run commits && standard-version" + "_requiredBy": [ + "/url-loader" + ], + "_resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" }, + "description": "webpack Validation Utils", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.0", @@ -32,9 +52,26 @@ "prettier": "^1.0.0", "standard-version": "^4.0.0" }, - "author": "webpack Contrib (https://github.com/webpack-contrib)", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", + "engines": { + "node": ">= 4" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/schema-utils", - "repository": "https://github.com/webpack-contrib/schema-utils", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "schema-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "clean": "del-cli coverage", + "commits": "commitlint --from $(git rev-list --tags --max-count=1)", + "lint": "eslint --cache src test", + "release": "npm run commits && standard-version", + "test": "jest --env node --verbose --coverage" + }, + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/url-loader/package.json b/admin/vue2/element-admin-v3/node_modules/url-loader/package.json index f4c119cb8..973acfeac 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url-loader/package.json @@ -1,41 +1,48 @@ { - "name": "url-loader", - "version": "1.0.1", - "author": "Tobias Koppers @sokra", - "description": "URL Loader for webpack", - "license": "MIT", - "main": "dist/cjs.js", - "files": [ - "dist" + "_args": [ + [ + "url-loader@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "start": "npm run build -- -w", - "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", - "clean": "del-cli dist", - "commitlint": "commitlint", - "commitmsg": "commitlint -e $GIT_PARAMS", - "lint": "eslint --cache src test", - "ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", - "lint-staged": "lint-staged", - "prebuild": "npm run clean", - "prepare": "npm run build", - "release": "standard-version", - "release:ci": "conventional-github-releaser -p angular", - "release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", - "security": "nsp check", - "test": "jest", - "test:watch": "jest --watch", - "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", - "ci:lint": "npm run lint && npm run security", - "ci:test": "npm run test -- --runInBand", - "ci:coverage": "npm run test:coverage -- --runInBand", - "defaults": "webpack-defaults" + "_development": true, + "_from": "url-loader@1.0.1", + "_id": "url-loader@1.0.1", + "_inBundle": false, + "_integrity": "sha1-YbxT8fGE1zQ9onKKEonvhyLqRe4=", + "_location": "/url-loader", + "_phantomChildren": { + "ajv": "6.12.6", + "ajv-keywords": "3.5.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "url-loader@1.0.1", + "name": "url-loader", + "escapedName": "url-loader", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.0.1.tgz?cache=0&sync_timestamp=1602252594253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/url-loader/issues" }, "dependencies": { "loader-utils": "^1.1.0", "mime": "^2.0.3", "schema-utils": "^0.4.3" }, + "description": "URL Loader for webpack", "devDependencies": { "@commitlint/cli": "^5.2.5", "@commitlint/config-angular": "^5.1.1", @@ -68,17 +75,49 @@ "engines": { "node": ">= 6.9.0 || >= 8.9.0" }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - }, + "files": [ + "dist" + ], "homepage": "https://github.com/webpack-contrib/url-loader", - "repository": "https://github.com/webpack-contrib/url-loader", - "bugs": "https://github.com/webpack-contrib/url-loader/issues", - "pre-commit": "lint-staged", + "license": "MIT", "lint-staged": { "*.js": [ "eslint --fix", "git add" ] - } + }, + "main": "dist/cjs.js", + "name": "url-loader", + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + }, + "pre-commit": "lint-staged", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/url-loader.git" + }, + "scripts": { + "build": "cross-env NODE_ENV=production babel src -d dist --ignore 'src/**/*.test.js' --copy-files", + "ci:coverage": "npm run test:coverage -- --runInBand", + "ci:lint": "npm run lint && npm run security", + "ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}", + "ci:test": "npm run test -- --runInBand", + "clean": "del-cli dist", + "commitlint": "commitlint", + "commitmsg": "commitlint -e $GIT_PARAMS", + "defaults": "webpack-defaults", + "lint": "eslint --cache src test", + "lint-staged": "lint-staged", + "prebuild": "npm run clean", + "prepare": "npm run build", + "release": "standard-version", + "release:ci": "conventional-github-releaser -p angular", + "release:validate": "commitlint --from=$(git describe --tags --abbrev=0) --to=$(git rev-parse HEAD)", + "security": "nsp check", + "start": "npm run build -- -w", + "test": "jest", + "test:coverage": "jest --collectCoverageFrom='src/**/*.js' --coverage", + "test:watch": "jest --watch" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/url-parse/package.json b/admin/vue2/element-admin-v3/node_modules/url-parse/package.json index f84b62ee0..95df5fc11 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-parse/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url-parse/package.json @@ -1,24 +1,60 @@ { - "name": "url-parse", - "version": "1.5.1", + "_args": [ + [ + "url-parse@1.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "url-parse@1.5.1", + "_id": "url-parse@1.5.1", + "_inBundle": false, + "_integrity": "sha1-1fqYkK+KXh8nSiyYN2UQ9kJfbjs=", + "_location": "/url-parse", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "url-parse@1.5.1", + "name": "url-parse", + "escapedName": "url-parse", + "rawSpec": "1.5.1", + "saveSpec": null, + "fetchSpec": "1.5.1" + }, + "_requiredBy": [ + "/original", + "/sockjs-client" + ], + "_resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.5.1.tgz?cache=0&sync_timestamp=1613660079745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.5.1.tgz", + "_spec": "1.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Arnout Kazemier" + }, + "bugs": { + "url": "https://github.com/unshiftio/url-parse/issues" + }, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + }, "description": "Small footprint URL parser that works seamlessly across Node.js and browser environments", - "main": "index.js", - "scripts": { - "browserify": "rm -rf dist && mkdir -p dist && browserify index.js -s URLParse -o dist/url-parse.js", - "minify": "uglifyjs dist/url-parse.js --source-map -cm -o dist/url-parse.min.js", - "test": "c8 --reporter=html --reporter=text mocha test/test.js", - "test-browser": "node test/browser.js", - "prepublishOnly": "npm run browserify && npm run minify", - "watch": "mocha --watch test/test.js" + "devDependencies": { + "assume": "^2.2.0", + "browserify": "^16.2.3", + "c8": "^7.3.1", + "coveralls": "^3.1.0", + "mocha": "^8.0.1", + "pre-commit": "^1.2.2", + "sauce-browsers": "^2.0.0", + "sauce-test": "^1.3.3", + "uglify-js": "^3.5.7" }, "files": [ "index.js", "dist" ], - "repository": { - "type": "git", - "url": "https://github.com/unshiftio/url-parse.git" - }, + "homepage": "https://github.com/unshiftio/url-parse#readme", "keywords": [ "URL", "parser", @@ -30,21 +66,20 @@ "querystring", "stringify" ], - "author": "Arnout Kazemier", "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "main": "index.js", + "name": "url-parse", + "repository": { + "type": "git", + "url": "git+https://github.com/unshiftio/url-parse.git" }, - "devDependencies": { - "assume": "^2.2.0", - "browserify": "^16.2.3", - "c8": "^7.3.1", - "coveralls": "^3.1.0", - "mocha": "^8.0.1", - "pre-commit": "^1.2.2", - "sauce-browsers": "^2.0.0", - "sauce-test": "^1.3.3", - "uglify-js": "^3.5.7" - } + "scripts": { + "browserify": "rm -rf dist && mkdir -p dist && browserify index.js -s URLParse -o dist/url-parse.js", + "minify": "uglifyjs dist/url-parse.js --source-map -cm -o dist/url-parse.min.js", + "prepublishOnly": "npm run browserify && npm run minify", + "test": "c8 --reporter=html --reporter=text mocha test/test.js", + "test-browser": "node test/browser.js", + "watch": "mocha --watch test/test.js" + }, + "version": "1.5.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/url-slug/package.json b/admin/vue2/element-admin-v3/node_modules/url-slug/package.json index 96a2ca629..54c930763 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-slug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url-slug/package.json @@ -1,19 +1,49 @@ { - "name": "url-slug", - "version": "2.0.0", - "description": "RFC 3986 compliant slug generator with support for multiple languages", - "main": "index.js", + "_args": [ + [ + "url-slug@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "url-slug@2.0.0", + "_id": "url-slug@2.0.0", + "_inBundle": false, + "_integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", + "_location": "/url-slug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "url-slug@2.0.0", + "name": "url-slug", + "escapedName": "url-slug", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/svg-sprite-loader" + ], + "_resolved": "https://registry.nlark.com/url-slug/download/url-slug-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Saulo Toledo", + "url": "sbtoledo.github.io" + }, + "bugs": { + "url": "https://github.com/sbtoledo/url-slug/issues" + }, "dependencies": { "unidecode": "0.1.8" }, + "description": "RFC 3986 compliant slug generator with support for multiple languages", "devDependencies": { "chai": "3.5.0", "mocha": "2.5.3" }, - "scripts": { - "test": "mocha test" - }, - "repository": "sbtoledo/url-slug", + "homepage": "https://github.com/sbtoledo/url-slug#readme", "keywords": [ "slug", "slugs", @@ -22,6 +52,15 @@ "string", "seo" ], - "author": "Saulo Toledo (sbtoledo.github.io)", - "license": "MIT" + "license": "MIT", + "main": "index.js", + "name": "url-slug", + "repository": { + "type": "git", + "url": "git+https://github.com/sbtoledo/url-slug.git" + }, + "scripts": { + "test": "mocha test" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/url-toolkit/package.json b/admin/vue2/element-admin-v3/node_modules/url-toolkit/package.json index 115989760..a61dd60a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/url-toolkit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url-toolkit/package.json @@ -1,36 +1,67 @@ { - "name": "url-toolkit", - "version": "2.2.2", + "_args": [ + [ + "url-toolkit@2.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "url-toolkit@2.2.2", + "_id": "url-toolkit@2.2.2", + "_inBundle": false, + "_integrity": "sha1-Ue8ntW0xhxhfns9Kisfo9VIDyJ0=", + "_location": "/url-toolkit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "url-toolkit@2.2.2", + "name": "url-toolkit", + "escapedName": "url-toolkit", + "rawSpec": "2.2.2", + "saveSpec": null, + "fetchSpec": "2.2.2" + }, + "_requiredBy": [ + "/videojs-contrib-hls" + ], + "_resolved": "https://registry.nlark.com/url-toolkit/download/url-toolkit-2.2.2.tgz?cache=0&sync_timestamp=1619294858074&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-toolkit%2Fdownload%2Furl-toolkit-2.2.2.tgz", + "_spec": "2.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tom Jenkinson", + "email": "tjcode@outlook.com" + }, + "bugs": { + "url": "https://github.com/tjenkinson/url-toolkit/issues" + }, "description": "Build an absolute URL from a base URL and a relative URL (RFC 1808). No dependencies!", - "main": "src/url-toolkit.js", - "types": "src/url-toolkit.d.ts", - "scripts": { - "test": "jest", - "prettier": "prettier --write .", - "lint": "prettier --check ." + "devDependencies": { + "husky": "^4.2.5", + "jest": "^26.0.1", + "prettier": "^2.0.5" }, + "homepage": "https://github.com/tjenkinson/url-toolkit#readme", "hooks": { "pre-commit": "npm run prettier" }, - "repository": { - "type": "git", - "url": "git+https://github.com/tjenkinson/url-toolkit.git" - }, "keywords": [ "url", "relative", "absolute", "parser" ], - "author": "Tom Jenkinson ", "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/tjenkinson/url-toolkit/issues" + "main": "src/url-toolkit.js", + "name": "url-toolkit", + "repository": { + "type": "git", + "url": "git+https://github.com/tjenkinson/url-toolkit.git" }, - "homepage": "https://github.com/tjenkinson/url-toolkit#readme", - "devDependencies": { - "husky": "^4.2.5", - "jest": "^26.0.1", - "prettier": "^2.0.5" - } + "scripts": { + "lint": "prettier --check .", + "prettier": "prettier --write .", + "test": "jest" + }, + "types": "src/url-toolkit.d.ts", + "version": "2.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/url/node_modules/punycode/package.json b/admin/vue2/element-admin-v3/node_modules/url/node_modules/punycode/package.json index 35f046aec..935a03a34 100644 --- a/admin/vue2/element-admin-v3/node_modules/url/node_modules/punycode/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url/node_modules/punycode/package.json @@ -1,53 +1,83 @@ { - "name": "punycode", - "version": "1.3.2", - "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", - "homepage": "https://mths.be/punycode", - "main": "punycode.js", - "keywords": [ - "punycode", - "unicode", - "idn", - "idna", - "dns", - "url", - "domain" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "contributors": [ - { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - { - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/bestiejs/punycode.js.git" - }, - "bugs": "https://github.com/bestiejs/punycode.js/issues", - "files": [ - "LICENSE-MIT.txt", - "punycode.js" - ], - "scripts": { - "test": "node tests/tests.js" - }, - "devDependencies": { - "coveralls": "^2.10.1", - "grunt": "^0.4.5", - "grunt-contrib-uglify": "^0.5.0", - "grunt-shell": "^0.7.0", - "istanbul": "^0.2.13", - "qunit-extras": "^1.2.0", - "qunitjs": "~1.11.0", - "requirejs": "^2.1.14" - } + "_args": [ + [ + "punycode@1.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "punycode@1.3.2", + "_id": "punycode@1.3.2", + "_inBundle": false, + "_integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "_location": "/url/punycode", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "punycode@1.3.2", + "name": "punycode", + "escapedName": "punycode", + "rawSpec": "1.3.2", + "saveSpec": null, + "fetchSpec": "1.3.2" + }, + "_requiredBy": [ + "/url" + ], + "_resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "_spec": "1.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "contributors": [ + { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + { + "name": "John-David Dalton", + "url": "http://allyoucanleet.com/" + } + ], + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "devDependencies": { + "coveralls": "^2.10.1", + "grunt": "^0.4.5", + "grunt-contrib-uglify": "^0.5.0", + "grunt-shell": "^0.7.0", + "istanbul": "^0.2.13", + "qunit-extras": "^1.2.0", + "qunitjs": "~1.11.0", + "requirejs": "^2.1.14" + }, + "files": [ + "LICENSE-MIT.txt", + "punycode.js" + ], + "homepage": "https://mths.be/punycode", + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "license": "MIT", + "main": "punycode.js", + "name": "punycode", + "repository": { + "type": "git", + "url": "git+https://github.com/bestiejs/punycode.js.git" + }, + "scripts": { + "test": "node tests/tests.js" + }, + "version": "1.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/url/package.json b/admin/vue2/element-admin-v3/node_modules/url/package.json index e3024abe7..48c377673 100644 --- a/admin/vue2/element-admin-v3/node_modules/url/package.json +++ b/admin/vue2/element-admin-v3/node_modules/url/package.json @@ -1,24 +1,57 @@ { - "name": "url", - "description": "The core `url` packaged standalone for use with Browserify.", - "version": "0.11.0", + "_args": [ + [ + "url@0.11.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "url@0.11.0", + "_id": "url@0.11.0", + "_inBundle": false, + "_integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "_location": "/url", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "url@0.11.0", + "name": "url", + "escapedName": "url", + "rawSpec": "0.11.0", + "saveSpec": null, + "fetchSpec": "0.11.0" + }, + "_requiredBy": [ + "/node-libs-browser", + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "_spec": "0.11.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/defunctzombie/node-url/issues" + }, "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" }, - "main": "./url.js", + "description": "The core `url` packaged standalone for use with Browserify.", "devDependencies": { "assert": "1.1.1", "mocha": "1.18.2", "zuul": "3.3.0" }, + "homepage": "https://github.com/defunctzombie/node-url#readme", + "license": "MIT", + "main": "./url.js", + "name": "url", + "repository": { + "type": "git", + "url": "git+https://github.com/defunctzombie/node-url.git" + }, "scripts": { "test": "mocha --ui qunit test.js && zuul -- test.js", "test-local": "zuul --local -- test.js" }, - "repository": { - "type": "git", - "url": "https://github.com/defunctzombie/node-url.git" - }, - "license": "MIT" + "version": "0.11.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/use/package.json b/admin/vue2/element-admin-v3/node_modules/use/package.json index b7a3f9a1e..43097be54 100644 --- a/admin/vue2/element-admin-v3/node_modules/use/package.json +++ b/admin/vue2/element-admin-v3/node_modules/use/package.json @@ -1,30 +1,57 @@ { - "name": "use", - "description": "Easily add plugin support to your node.js application.", - "version": "3.1.1", - "homepage": "https://github.com/jonschlinkert/use", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Olsten Larck (https://i.am.charlike.online)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "use@3.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/use", - "bugs": { - "url": "https://github.com/jonschlinkert/use/issues" + "_from": "use@3.1.1", + "_id": "use@3.1.1", + "_inBundle": false, + "_integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", + "_location": "/use", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "use@3.1.1", + "name": "use", + "escapedName": "use", + "rawSpec": "3.1.1", + "saveSpec": null, + "fetchSpec": "3.1.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/snapdragon" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "_spec": "3.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/use/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Olsten Larck", + "url": "https://i.am.charlike.online" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], + "description": "Easily add plugin support to your node.js application.", "devDependencies": { "base-plugins": "^1.0.0", "define-property": "^2.0.0", @@ -36,9 +63,26 @@ "gulp-mocha": "^3.0.1", "mocha": "^4.0.1" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/use", "keywords": [ "use" ], + "license": "MIT", + "main": "index.js", + "name": "use", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/use.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -62,5 +106,6 @@ "lint": { "reflinks": true } - } + }, + "version": "3.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/util-deprecate/package.json b/admin/vue2/element-admin-v3/node_modules/util-deprecate/package.json index 2e79f89a9..0aabcc01c 100644 --- a/admin/vue2/element-admin-v3/node_modules/util-deprecate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/util-deprecate/package.json @@ -1,16 +1,48 @@ { - "name": "util-deprecate", - "version": "1.0.2", - "description": "The Node.js `util.deprecate()` function with browser support", - "main": "node.js", - "browser": "browser.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "_args": [ + [ + "util-deprecate@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "util-deprecate@1.0.2", + "_id": "util-deprecate@1.0.2", + "_inBundle": false, + "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "_location": "/util-deprecate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "util-deprecate@1.0.2", + "name": "util-deprecate", + "escapedName": "util-deprecate", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/util-deprecate.git" + "_requiredBy": [ + "/browserify-sign/readable-stream", + "/hash-base/readable-stream", + "/postcss-selector-parser", + "/posthtml-parser/readable-stream", + "/readable-stream", + "/spdy-transport/readable-stream" + ], + "_resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io/" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/TooTallNate/util-deprecate/issues" }, + "description": "The Node.js `util.deprecate()` function with browser support", + "homepage": "https://github.com/TooTallNate/util-deprecate", "keywords": [ "util", "deprecate", @@ -18,10 +50,15 @@ "browser", "node" ], - "author": "Nathan Rajlich (http://n8.io/)", "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/util-deprecate/issues" + "main": "node.js", + "name": "util-deprecate", + "repository": { + "type": "git", + "url": "git://github.com/TooTallNate/util-deprecate.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" }, - "homepage": "https://github.com/TooTallNate/util-deprecate" + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/util.promisify/package.json b/admin/vue2/element-admin-v3/node_modules/util.promisify/package.json index b1d792c13..1f67647c0 100644 --- a/admin/vue2/element-admin-v3/node_modules/util.promisify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/util.promisify/package.json @@ -1,41 +1,74 @@ { - "name": "util.promisify", - "version": "1.0.0", - "description": "Polyfill/shim for util.promisify in node versions < v8", - "main": "index.js", - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - }, - "devDependencies": { - "@es-shims/api": "^1.2.0", - "@ljharb/eslint-config": "^11.0.0", - "eslint": "^3.19.0", - "safe-publish-latest": "^1.1.1" - }, - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint .", - "pretest": "npm run lint", - "tests-only": "es-shim-api --bound", - "test": "npm run tests-only" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/util.promisify.git" - }, - "keywords": [ - "promisify", - "promise", - "util", - "polyfill", - "shim", - "util.promisify" - ], - "author": "Jordan Harband ", - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/util.promisify/issues" - }, - "homepage": "https://github.com/ljharb/util.promisify#readme" + "_args": [ + [ + "util.promisify@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "util.promisify@1.0.0", + "_id": "util.promisify@1.0.0", + "_inBundle": false, + "_integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "_location": "/util.promisify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "util.promisify@1.0.0", + "name": "util.promisify", + "escapedName": "util.promisify", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/html-webpack-plugin", + "/svgo" + ], + "_resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159975962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "bugs": { + "url": "https://github.com/ljharb/util.promisify/issues" + }, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + }, + "description": "Polyfill/shim for util.promisify in node versions < v8", + "devDependencies": { + "@es-shims/api": "^1.2.0", + "@ljharb/eslint-config": "^11.0.0", + "eslint": "^3.19.0", + "safe-publish-latest": "^1.1.1" + }, + "homepage": "https://github.com/ljharb/util.promisify#readme", + "keywords": [ + "promisify", + "promise", + "util", + "polyfill", + "shim", + "util.promisify" + ], + "license": "MIT", + "main": "index.js", + "name": "util.promisify", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/util.promisify.git" + }, + "scripts": { + "lint": "eslint .", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "es-shim-api --bound" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/util/node_modules/inherits/package.json b/admin/vue2/element-admin-v3/node_modules/util/node_modules/inherits/package.json index 7cf62b95c..4b843739f 100644 --- a/admin/vue2/element-admin-v3/node_modules/util/node_modules/inherits/package.json +++ b/admin/vue2/element-admin-v3/node_modules/util/node_modules/inherits/package.json @@ -1,7 +1,45 @@ { - "name": "inherits", + "_args": [ + [ + "inherits@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "inherits@2.0.3", + "_id": "inherits@2.0.3", + "_inBundle": false, + "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "_location": "/util/inherits", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "inherits@2.0.3", + "name": "inherits", + "escapedName": "inherits", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" + }, + "_requiredBy": [ + "/util" + ], + "_resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browser": "./inherits_browser.js", + "bugs": { + "url": "https://github.com/isaacs/inherits/issues" + }, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.3", + "devDependencies": { + "tap": "^7.1.0" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ], + "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", "class", @@ -12,18 +50,15 @@ "browser", "browserify" ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", "license": "ISC", + "main": "./inherits.js", + "name": "inherits", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/inherits.git" + }, "scripts": { "test": "node test" }, - "devDependencies": { - "tap": "^7.1.0" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/util/package.json b/admin/vue2/element-admin-v3/node_modules/util/package.json index 640dd528d..be6f21382 100644 --- a/admin/vue2/element-admin-v3/node_modules/util/package.json +++ b/admin/vue2/element-admin-v3/node_modules/util/package.json @@ -1,39 +1,70 @@ { + "_args": [ + [ + "util@0.11.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "util@0.11.1", + "_id": "util@0.11.1", + "_inBundle": false, + "_integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "_location": "/util", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "util@0.11.1", + "name": "util", + "escapedName": "util", + "rawSpec": "0.11.1", + "saveSpec": null, + "fetchSpec": "0.11.1" + }, + "_requiredBy": [ + "/node-libs-browser" + ], + "_resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz", + "_spec": "0.11.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Joyent", "url": "http://www.joyent.com" }, - "name": "util", - "description": "Node.JS util module", - "keywords": [ - "util" - ], - "version": "0.11.1", - "homepage": "https://github.com/defunctzombie/node-util", - "repository": { - "type": "git", - "url": "git://github.com/defunctzombie/node-util" + "browser": { + "./support/isBuffer.js": "./support/isBufferBrowser.js" }, - "main": "./util.js", - "files": [ - "util.js", - "support" - ], - "scripts": { - "test": "node test/node/index.js", - "test:browsers": "airtap test/browser/index.js" + "bugs": { + "url": "https://github.com/defunctzombie/node-util/issues" }, "dependencies": { "inherits": "2.0.3" }, - "license": "MIT", + "description": "Node.JS util module", "devDependencies": { "airtap": "~0.1.0", "is-async-supported": "~1.2.0", "run-series": "~1.1.4", "tape": "~4.9.0" }, - "browser": { - "./support/isBuffer.js": "./support/isBufferBrowser.js" - } + "files": [ + "util.js", + "support" + ], + "homepage": "https://github.com/defunctzombie/node-util", + "keywords": [ + "util" + ], + "license": "MIT", + "main": "./util.js", + "name": "util", + "repository": { + "type": "git", + "url": "git://github.com/defunctzombie/node-util.git" + }, + "scripts": { + "test": "node test/node/index.js", + "test:browsers": "airtap test/browser/index.js" + }, + "version": "0.11.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/utila/package.json b/admin/vue2/element-admin-v3/node_modules/utila/package.json index 3d2aab16d..42f894905 100644 --- a/admin/vue2/element-admin-v3/node_modules/utila/package.json +++ b/admin/vue2/element-admin-v3/node_modules/utila/package.json @@ -1,25 +1,57 @@ { - "name": "utila", - "version": "0.4.0", + "_args": [ + [ + "utila@0.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "utila@0.4.0", + "_id": "utila@0.4.0", + "_inBundle": false, + "_integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "_location": "/utila", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "utila@0.4.0", + "name": "utila", + "escapedName": "utila", + "rawSpec": "0.4.0", + "saveSpec": null, + "fetchSpec": "0.4.0" + }, + "_requiredBy": [ + "/dom-converter" + ], + "_resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "_spec": "0.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Aria Minaei" + }, + "bugs": { + "url": "https://github.com/AriaMinaei/utila/issues" + }, "description": "notareplacementforunderscore", - "main": "lib/utila.js", "devDependencies": { "coffee-script": "~1.6.3", "little-popo": "~0.1" }, - "scripts": { - "prepublish": "coffee --bare --compile --output ./lib ./src" - }, - "repository": { - "type": "git", - "url": "https://github.com/AriaMinaei/utila.git" - }, + "homepage": "https://github.com/AriaMinaei/utila#readme", "keywords": [ "utilities" ], - "author": "Aria Minaei", "license": "MIT", - "bugs": { - "url": "https://github.com/AriaMinaei/utila/issues" - } + "main": "lib/utila.js", + "name": "utila", + "repository": { + "type": "git", + "url": "git+https://github.com/AriaMinaei/utila.git" + }, + "scripts": { + "prepublish": "coffee --bare --compile --output ./lib ./src" + }, + "version": "0.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/utils-merge/package.json b/admin/vue2/element-admin-v3/node_modules/utils-merge/package.json index e36b0781c..b74d3c6e9 100644 --- a/admin/vue2/element-admin-v3/node_modules/utils-merge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/utils-merge/package.json @@ -1,22 +1,55 @@ { - "name": "utils-merge", - "version": "1.0.1", - "description": "merge() utility function", - "keywords": [ - "util" + "_args": [ + [ + "utils-merge@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], + "_from": "utils-merge@1.0.1", + "_id": "utils-merge@1.0.1", + "_inBundle": false, + "_integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "_location": "/utils-merge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "utils-merge@1.0.1", + "name": "utils-merge", + "escapedName": "utils-merge", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/connect", + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jared Hanson", "email": "jaredhanson@gmail.com", "url": "http://www.jaredhanson.net/" }, - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/utils-merge.git" - }, "bugs": { "url": "http://github.com/jaredhanson/utils-merge/issues" }, + "dependencies": {}, + "description": "merge() utility function", + "devDependencies": { + "chai": "1.x.x", + "make-node": "0.3.x", + "mocha": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + }, + "homepage": "https://github.com/jaredhanson/utils-merge#readme", + "keywords": [ + "util" + ], "license": "MIT", "licenses": [ { @@ -25,16 +58,13 @@ } ], "main": "./index", - "dependencies": {}, - "devDependencies": { - "make-node": "0.3.x", - "mocha": "1.x.x", - "chai": "1.x.x" - }, - "engines": { - "node": ">= 0.4.0" + "name": "utils-merge", + "repository": { + "type": "git", + "url": "git://github.com/jaredhanson/utils-merge.git" }, "scripts": { - "test": "node_modules/.bin/mocha --reporter spec --require test/bootstrap/node test/*.test.js" - } + "test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/uuid/package.json b/admin/vue2/element-admin-v3/node_modules/uuid/package.json index efc07b8f6..138c34712 100644 --- a/admin/vue2/element-admin-v3/node_modules/uuid/package.json +++ b/admin/vue2/element-admin-v3/node_modules/uuid/package.json @@ -1,21 +1,74 @@ { - "name": "uuid", - "version": "3.4.0", - "description": "RFC4122 (v1, v4, and v5) UUIDs", + "_args": [ + [ + "uuid@3.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "uuid@3.4.0", + "_id": "uuid@3.4.0", + "_inBundle": false, + "_integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "_location": "/uuid", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "uuid@3.4.0", + "name": "uuid", + "escapedName": "uuid", + "rawSpec": "3.4.0", + "saveSpec": null, + "fetchSpec": "3.4.0" + }, + "_requiredBy": [ + "/@webpack-contrib/schema-utils/webpack-log", + "/request", + "/sockjs", + "/webpack-log" + ], + "_resolved": "https://registry.nlark.com/uuid/download/uuid-3.4.0.tgz", + "_spec": "3.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "uuid": "bin/uuid" + }, + "browser": { + "./lib/rng.js": "./lib/rng-browser.js", + "./lib/sha1.js": "./lib/sha1-browser.js", + "./lib/md5.js": "./lib/md5-browser.js" + }, + "bugs": { + "url": "https://github.com/uuidjs/uuid/issues" + }, "commitlint": { "extends": [ "@commitlint/config-conventional" ] }, - "keywords": [ - "uuid", - "guid", - "rfc4122" + "contributors": [ + { + "name": "Robert Kieffer", + "email": "robert@broofa.com" + }, + { + "name": "Christoph Tavan", + "email": "dev@tavan.de" + }, + { + "name": "AJ ONeal", + "email": "coolaj86@gmail.com" + }, + { + "name": "Vincent Voyer", + "email": "vincent@zeroload.net" + }, + { + "name": "Roman Shtylman", + "email": "shtylman@gmail.com" + } ], - "license": "MIT", - "bin": { - "uuid": "./bin/uuid" - }, + "description": "RFC4122 (v1, v4, and v5) UUIDs", "devDependencies": { "@commitlint/cli": "~8.2.0", "@commitlint/config-conventional": "~8.2.0", @@ -25,25 +78,29 @@ "runmd": "1.2.1", "standard-version": "7.0.0" }, + "homepage": "https://github.com/uuidjs/uuid#readme", + "husky": { + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } + }, + "keywords": [ + "uuid", + "guid", + "rfc4122" + ], + "license": "MIT", + "name": "uuid", + "repository": { + "type": "git", + "url": "git+https://github.com/uuidjs/uuid.git" + }, "scripts": { "lint": "eslint .", - "test": "npm run lint && mocha test/test.js", "md": "runmd --watch --output=README.md README_js.md", + "prepare": "runmd --output=README.md README_js.md", "release": "standard-version", - "prepare": "runmd --output=README.md README_js.md" + "test": "npm run lint && mocha test/test.js" }, - "browser": { - "./lib/rng.js": "./lib/rng-browser.js", - "./lib/sha1.js": "./lib/sha1-browser.js", - "./lib/md5.js": "./lib/md5-browser.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/uuidjs/uuid.git" - }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" - } - } + "version": "3.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/v8-compile-cache/package.json b/admin/vue2/element-admin-v3/node_modules/v8-compile-cache/package.json index f878914e8..ac60eae1e 100644 --- a/admin/vue2/element-admin-v3/node_modules/v8-compile-cache/package.json +++ b/admin/vue2/element-admin-v3/node_modules/v8-compile-cache/package.json @@ -1,25 +1,42 @@ { - "name": "v8-compile-cache", - "version": "2.3.0", - "description": "Require hook for automatic V8 compile cache persistence", - "main": "v8-compile-cache.js", - "scripts": { - "bench": "bench/run.sh", - "eslint": "eslint --max-warnings=0 .", - "tap": "tap test/*-test.js", - "test": "npm run tap", - "posttest": "npm run eslint" - }, - "author": "Andres Suarez ", - "repository": { - "type": "git", - "url": "https://github.com/zertosh/v8-compile-cache.git" + "_args": [ + [ + "v8-compile-cache@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "v8-compile-cache@2.3.0", + "_id": "v8-compile-cache@2.3.0", + "_inBundle": false, + "_integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", + "_location": "/v8-compile-cache", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "v8-compile-cache@2.3.0", + "name": "v8-compile-cache", + "escapedName": "v8-compile-cache", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" }, - "files": [ - "v8-compile-cache.js" + "_requiredBy": [ + "/webpack-cli" ], - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andres Suarez", + "email": "zertosh@gmail.com" + }, + "bugs": { + "url": "https://github.com/zertosh/v8-compile-cache/issues" + }, "dependencies": {}, + "description": "Require hook for automatic V8 compile cache persistence", "devDependencies": { "babel-core": "6.26.3", "eslint": "^7.12.1", @@ -30,5 +47,24 @@ "tap": "^9.0.0", "temp": "^0.8.3", "yarn": "1.22.10" - } + }, + "files": [ + "v8-compile-cache.js" + ], + "homepage": "https://github.com/zertosh/v8-compile-cache#readme", + "license": "MIT", + "main": "v8-compile-cache.js", + "name": "v8-compile-cache", + "repository": { + "type": "git", + "url": "git+https://github.com/zertosh/v8-compile-cache.git" + }, + "scripts": { + "bench": "bench/run.sh", + "eslint": "eslint --max-warnings=0 .", + "posttest": "npm run eslint", + "tap": "tap test/*-test.js", + "test": "npm run tap" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/validate-npm-package-license/package.json b/admin/vue2/element-admin-v3/node_modules/validate-npm-package-license/package.json index 9e92af4f4..da2746b0e 100644 --- a/admin/vue2/element-admin-v3/node_modules/validate-npm-package-license/package.json +++ b/admin/vue2/element-admin-v3/node_modules/validate-npm-package-license/package.json @@ -1,19 +1,57 @@ { - "name": "validate-npm-package-license", - "description": "Give me a string and I'll tell you if it's a valid npm package license string", - "version": "3.0.4", - "author": "Kyle E. Mitchell (https://kemitchell.com)", + "_args": [ + [ + "validate-npm-package-license@3.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "validate-npm-package-license@3.0.4", + "_id": "validate-npm-package-license@3.0.4", + "_inBundle": false, + "_integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "_location": "/validate-npm-package-license", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "validate-npm-package-license@3.0.4", + "name": "validate-npm-package-license", + "escapedName": "validate-npm-package-license", + "rawSpec": "3.0.4", + "saveSpec": null, + "fetchSpec": "3.0.4" + }, + "_requiredBy": [ + "/normalize-package-data" + ], + "_resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "_spec": "3.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + "bugs": { + "url": "https://github.com/kemitchell/validate-npm-package-license.js/issues" + }, "contributors": [ - "Mark Stacey " + { + "name": "Mark Stacey", + "email": "markjstacey@gmail.com" + } ], "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" }, + "description": "Give me a string and I'll tell you if it's a valid npm package license string", "devDependencies": { "defence-cli": "^2.0.1", "replace-require-self": "^1.0.0" }, + "homepage": "https://github.com/kemitchell/validate-npm-package-license.js#readme", "keywords": [ "license", "npm", @@ -21,8 +59,13 @@ "validation" ], "license": "Apache-2.0", - "repository": "kemitchell/validate-npm-package-license.js", + "name": "validate-npm-package-license", + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/validate-npm-package-license.js.git" + }, "scripts": { "test": "defence README.md | replace-require-self | node" - } + }, + "version": "3.0.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/vary/package.json b/admin/vue2/element-admin-v3/node_modules/vary/package.json index 028f72a93..b61384c80 100644 --- a/admin/vue2/element-admin-v3/node_modules/vary/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vary/package.json @@ -1,15 +1,41 @@ { - "name": "vary", - "description": "Manipulate the HTTP Vary header", - "version": "1.1.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "http", - "res", - "vary" + "_args": [ + [ + "vary@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jshttp/vary", + "_from": "vary@1.1.2", + "_id": "vary@1.1.2", + "_inBundle": false, + "_integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "_location": "/vary", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vary@1.1.2", + "name": "vary", + "escapedName": "vary", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" + }, + "_requiredBy": [ + "/compression", + "/express" + ], + "_resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/jshttp/vary/issues" + }, + "description": "Manipulate the HTTP Vary header", "devDependencies": { "beautify-benchmark": "0.2.4", "benchmark": "2.1.4", @@ -24,14 +50,26 @@ "mocha": "2.5.3", "supertest": "1.1.0" }, + "engines": { + "node": ">= 0.8" + }, "files": [ "HISTORY.md", "LICENSE", "README.md", "index.js" ], - "engines": { - "node": ">= 0.8" + "homepage": "https://github.com/jshttp/vary#readme", + "keywords": [ + "http", + "res", + "vary" + ], + "license": "MIT", + "name": "vary", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/vary.git" }, "scripts": { "bench": "node benchmark/index.js", @@ -39,5 +77,6 @@ "test": "mocha --reporter spec --bail --check-leaks test/", "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/" - } + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vendors/package.json b/admin/vue2/element-admin-v3/node_modules/vendors/package.json index 4c646d8cc..2046bcc2b 100644 --- a/admin/vue2/element-admin-v3/node_modules/vendors/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vendors/package.json @@ -1,33 +1,50 @@ { - "name": "vendors", - "version": "1.0.4", - "description": "List of vendor prefixes known to the web platform", - "license": "MIT", - "keywords": [ - "css", - "html", - "dom", - "web", - "platform", - "vendor", - "prefix", - "prefixes" + "_args": [ + [ + "vendors@1.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "wooorm/vendors", - "bugs": "https://github.com/wooorm/vendors/issues", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "_development": true, + "_from": "vendors@1.0.4", + "_id": "vendors@1.0.4", + "_inBundle": false, + "_integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", + "_location": "/vendors", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vendors@1.0.4", + "name": "vendors", + "escapedName": "vendors", + "rawSpec": "1.0.4", + "saveSpec": null, + "fetchSpec": "1.0.4" }, - "author": "Titus Wormer (https://wooorm.com)", - "contributors": [ - "Titus Wormer (https://wooorm.com)" + "_requiredBy": [ + "/postcss-merge-rules" ], - "main": "index.json", - "files": [ - "index.json" + "_resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz", + "_spec": "1.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "https://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/vendors/issues" + }, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "https://wooorm.com" + } ], "dependencies": {}, + "description": "List of vendor prefixes known to the web platform", "devDependencies": { "browserify": "^16.0.0", "prettier": "^1.0.0", @@ -37,14 +54,27 @@ "tinyify": "^2.0.0", "xo": "^0.25.0" }, - "scripts": { - "format": "remark . -qfo && prettier --write \"**/*.js\" && xo --fix", - "build-bundle": "browserify index.json -s vendors -o vendors.js", - "build-mangle": "browserify index.json -s vendors -p tinyify -o vendors.min.js", - "build": "npm run build-bundle && npm run build-mangle", - "test-api": "node test", - "test": "npm run format && npm run build && npm run test-api" + "files": [ + "index.json" + ], + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" }, + "homepage": "https://github.com/wooorm/vendors#readme", + "keywords": [ + "css", + "html", + "dom", + "web", + "platform", + "vendor", + "prefix", + "prefixes" + ], + "license": "MIT", + "main": "index.json", + "name": "vendors", "prettier": { "tabWidth": 2, "useTabs": false, @@ -53,16 +83,29 @@ "semi": false, "trailingComma": "none" }, + "remarkConfig": { + "plugins": [ + "preset-wooorm" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/vendors.git" + }, + "scripts": { + "build": "npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.json -s vendors -o vendors.js", + "build-mangle": "browserify index.json -s vendors -p tinyify -o vendors.min.js", + "format": "remark . -qfo && prettier --write \"**/*.js\" && xo --fix", + "test": "npm run format && npm run build && npm run test-api", + "test-api": "node test" + }, + "version": "1.0.4", "xo": { "prettier": true, "esnext": false, "ignores": [ "vendors.js" ] - }, - "remarkConfig": { - "plugins": [ - "preset-wooorm" - ] } } diff --git a/admin/vue2/element-admin-v3/node_modules/verror/package.json b/admin/vue2/element-admin-v3/node_modules/verror/package.json index 79295c57a..72582eb43 100644 --- a/admin/vue2/element-admin-v3/node_modules/verror/package.json +++ b/admin/vue2/element-admin-v3/node_modules/verror/package.json @@ -1,22 +1,55 @@ { - "name": "verror", - "version": "1.10.0", - "description": "richer JavaScript errors", - "main": "./lib/verror.js", - "repository": { - "type": "git", - "url": "git://github.com/davepacheco/node-verror.git" - }, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "engines": [ - "node >=0.6.0" - ], - "scripts": { - "test": "make test" - }, - "license": "MIT" + "_args": [ + [ + "verror@1.10.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "verror@1.10.0", + "_id": "verror@1.10.0", + "_inBundle": false, + "_integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "_location": "/verror", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "verror@1.10.0", + "name": "verror", + "escapedName": "verror", + "rawSpec": "1.10.0", + "saveSpec": null, + "fetchSpec": "1.10.0" + }, + "_requiredBy": [ + "/jsprim" + ], + "_resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", + "_spec": "1.10.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/davepacheco/node-verror/issues" + }, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "description": "richer JavaScript errors", + "engines": [ + "node >=0.6.0" + ], + "homepage": "https://github.com/davepacheco/node-verror#readme", + "license": "MIT", + "main": "./lib/verror.js", + "name": "verror", + "repository": { + "type": "git", + "url": "git://github.com/davepacheco/node-verror.git" + }, + "scripts": { + "test": "make test" + }, + "version": "1.10.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/video.js/package.json b/admin/vue2/element-admin-v3/node_modules/video.js/package.json index 0914b9878..91ab692f5 100644 --- a/admin/vue2/element-admin-v3/node_modules/video.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/video.js/package.json @@ -1,52 +1,42 @@ { - "name": "video.js", - "description": "An HTML5 and Flash video player with a common API and skin for both.", - "version": "6.13.0", - "main": "./dist/video.cjs.js", - "style": "./dist/video-js.css", - "copyright": "Copyright Brightcove, Inc. ", - "license": "Apache-2.0", - "keywords": [ - "flash", - "html5", - "player", - "video", - "videojs" + "_args": [ + [ + "video.js@6.13.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://videojs.com", - "author": "Steve Heffernan", - "scripts": { - "changelog": "conventional-changelog -p videojs -i CHANGELOG.md -s", - "build": "grunt dist", - "rollup-all": "npm run rollup && npm run rollup-minify", - "rollup": "babel-node build/rollup.js", - "rollup-minify": "babel-node build/rollup.js --minify", - "rollup-dev": "babel-node build/rollup.js --watch", - "watch": "npm run rollup-dev", - "assets": "node build/assets.js", - "clean": "grunt clean", - "grunt": "grunt", - "lint": "vjsstandard", - "start": "grunt dev", - "test": "grunt test", - "docs": "npm run docs:lint && npm run docs:api", - "jsdoc": "jsdoc", - "predocs:api": "node -e \"var s=require('shelljs'),d=['docs/api'];s.rm('-rf',d);\"", - "docs:api": "jsdoc -c .jsdoc.json", - "postdocs:api": "node ./build/fix-api-docs.js", - "netlify": "babel-node ./build/netlify-docs.js", - "docs:lint": "remark -- './{,!(node_modules)/**/}!(CHANGELOG)*.md'", - "docs:fix": "remark --output -- './{,!(node_modules)/**/}!(CHANGELOG)*.md'", - "babel": "babel src/js -d es5", - "prepublish": "not-in-install && run-p build || in-install", - "publish": "node build/gh-release.js", - "prepush": "npm run lint -- --errors", - "version": "node build/version.js && git add CHANGELOG.md" + "_from": "video.js@6.13.0", + "_id": "video.js@6.13.0", + "_inBundle": false, + "_integrity": "sha1-+Uh9RjJzQPpI7NUTcqKYHbts3kw=", + "_location": "/video.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "video.js@6.13.0", + "name": "video.js", + "escapedName": "video.js", + "rawSpec": "6.13.0", + "saveSpec": null, + "fetchSpec": "6.13.0" }, - "repository": { - "type": "git", - "url": "https://github.com/videojs/video.js.git" + "_requiredBy": [ + "/videojs-contrib-hls", + "/videojs-contrib-media-sources", + "/videojs-flash", + "/vue-video-player" + ], + "_resolved": "https://registry.nlark.com/video.js/download/video.js-6.13.0.tgz", + "_spec": "6.13.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Steve Heffernan" }, + "bugs": { + "url": "https://github.com/videojs/video.js/issues" + }, + "copyright": "Copyright Brightcove, Inc. ", "dependencies": { "babel-runtime": "^6.9.2", "global": "4.3.2", @@ -57,6 +47,7 @@ "videojs-vtt.js": "0.12.6", "xhr": "2.4.0" }, + "description": "An HTML5 and Flash video player with a common API and skin for both.", "devDependencies": { "aliasify": "^2.1.0", "babel-cli": "^6.11.4", @@ -152,6 +143,59 @@ "videojs-standard": "^6.0.1", "webpack": "^1.15.0" }, + "greenkeeper": { + "ignore": [ + "qunitjs", + "sinon", + "webpack", + "uglify-js" + ] + }, + "homepage": "https://videojs.com", + "keywords": [ + "flash", + "html5", + "player", + "video", + "videojs" + ], + "license": "Apache-2.0", + "main": "./dist/video.cjs.js", + "name": "video.js", + "repository": { + "type": "git", + "url": "git+https://github.com/videojs/video.js.git" + }, + "scripts": { + "assets": "node build/assets.js", + "babel": "babel src/js -d es5", + "build": "grunt dist", + "changelog": "conventional-changelog -p videojs -i CHANGELOG.md -s", + "clean": "grunt clean", + "docs": "npm run docs:lint && npm run docs:api", + "docs:api": "jsdoc -c .jsdoc.json", + "docs:fix": "remark --output -- './{,!(node_modules)/**/}!(CHANGELOG)*.md'", + "docs:lint": "remark -- './{,!(node_modules)/**/}!(CHANGELOG)*.md'", + "grunt": "grunt", + "jsdoc": "jsdoc", + "lint": "vjsstandard", + "netlify": "babel-node ./build/netlify-docs.js", + "postdocs:api": "node ./build/fix-api-docs.js", + "predocs:api": "node -e \"var s=require('shelljs'),d=['docs/api'];s.rm('-rf',d);\"", + "prepublish": "not-in-install && run-p build || in-install", + "prepush": "npm run lint -- --errors", + "publish": "node build/gh-release.js", + "rollup": "babel-node build/rollup.js", + "rollup-all": "npm run rollup && npm run rollup-minify", + "rollup-dev": "babel-node build/rollup.js --watch", + "rollup-minify": "babel-node build/rollup.js --minify", + "start": "grunt dev", + "test": "grunt test", + "version": "node build/version.js && git add CHANGELOG.md", + "watch": "npm run rollup-dev" + }, + "style": "./dist/video-js.css", + "version": "6.13.0", "vjsstandard": { "ignore": [ "**/Gruntfile.js", @@ -166,13 +210,5 @@ "**/test/coverage/**", "**/test/karma.conf.js" ] - }, - "greenkeeper": { - "ignore": [ - "qunitjs", - "sinon", - "webpack", - "uglify-js" - ] } } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-contrib-hls/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-contrib-hls/package.json index 42f27155f..756689019 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-contrib-hls/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-contrib-hls/package.json @@ -1,92 +1,43 @@ { - "name": "videojs-contrib-hls", - "version": "5.15.0", - "description": "Play back HLS with video.js, even where it's not natively supported", - "main": "es5/videojs-contrib-hls.js", - "engines": { - "node": ">= 0.10.12" - }, - "repository": { - "type": "git", - "url": "git@github.com:videojs/videojs-contrib-hls.git" - }, - "scripts": { - "prebuild": "npm run clean", - "build": "npm-run-all -p build:*", - "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:collapse build:js:uglify", - "build:js:babel": "babel src -d es5", - "build:js:bannerize": "bannerize dist/videojs-contrib-hls.js --banner=scripts/banner.ejs", - "build:js:browserify": "browserify . -s videojs-contrib-hls -g browserify-shim -o dist/videojs-contrib-hls.js", - "build:js:collapse": "bundle-collapser dist/videojs-contrib-hls.js -o dist/videojs-contrib-hls.min.js", - "build:js:uglify": "uglifyjs dist/videojs-contrib-hls.min.js --support-ie8 --comments -m -c -o dist/videojs-contrib-hls.min.js", - "build:test:browserify": "browserify test/browserify-test.js -o dist-test/browserify-test.js", - "build:test:webpack": "webpack test/webpack-test.js dist-test/webpack-test.js", - "build:test": "npm-run-all build:test:manifest build:test:js build:test:browserify build:test:webpack", - "build:test:js": "node scripts/build-test.js", - "build:test:manifest": "node -e \"var b=require('./scripts/manifest-data.js'); b.build();\"", - "clean": "npm-run-all -p clean:*", - "clean:build": "node -e \"var s=require('shelljs'),d=['dist','dist-test','es5'];s.rm('-rf',d);s.mkdir('-p',d);\"", - "clean:test": "node -e \"var b=require('./scripts/manifest-data.js'); b.clean();\"", - "docs": "npm-run-all docs:*", - "docs:api": "jsdoc src -r -d docs/api", - "docs:toc": "doctoc README.md", - "lint": "vjsstandard", - "start": "npm-run-all -p watch start:*", - "start:serve": "babel-node scripts/server.js", - "pretest": "npm-run-all lint build", - "test": "karma start test/karma.conf.js", - "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", - "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", - "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", - "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", - "preversion": "npm test", - "version": "npm run build", - "watch": "npm-run-all -p watch:*", - "watch:docs": "nodemon --watch src/ --exec npm run docs", - "watch:js": "npm-run-all -p watch:js:babel watch:js:browserify watch:js:switcher", - "watch:js:babel": "npm run build:js:babel -- --watch", - "watch:js:browserify": "watchify . -v -g browserify-shim -o dist/videojs-contrib-hls.js", - "watch:js:switcher": "watchify utils/switcher/switcher.js -v -t babelify -g browserify-shim -o dist/switcher.js", - "watch:test:browserify": "watchify test/browserify-test.js -o dist-test/browserify-test.js", - "watch:test:webpack": "watchify test/webpack-test.js -o dist-test/webpack-test.js", - "watch:test": "npm-run-all -p watch:test:manifest watch:test:js watch:test:webpack watch:test:browserify", - "watch:test:js": "node scripts/watch-test.js", - "watch:test:manifest": "node -e \"var b=require('./scripts/manifest-data.js'); b.watch();\"", - "prepublish": "not-in-install && npm run build || in-install" + "_args": [ + [ + "videojs-contrib-hls@5.15.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "videojs-contrib-hls@5.15.0", + "_id": "videojs-contrib-hls@5.15.0", + "_inBundle": false, + "_integrity": "sha1-/klXNn5daLfSP3jtMuN6ndiSoKg=", + "_location": "/videojs-contrib-hls", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-contrib-hls@5.15.0", + "name": "videojs-contrib-hls", + "escapedName": "videojs-contrib-hls", + "rawSpec": "5.15.0", + "saveSpec": null, + "fetchSpec": "5.15.0" }, - "keywords": [ - "videojs", - "videojs-plugin" + "_requiredBy": [ + "/vue-video-player" ], - "author": "Brightcove, Inc", - "license": "Apache-2.0", + "_resolved": "https://registry.npm.taobao.org/videojs-contrib-hls/download/videojs-contrib-hls-5.15.0.tgz", + "_spec": "5.15.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove, Inc" + }, "browserify-shim": { "qunit": "global:QUnit", "sinon": "global:sinon", "video.js": "global:videojs" }, - "vjsstandard": { - "ignore": [ - "dist", - "dist-test", - "docs", - "es5", - "test/karma.conf.js", - "scripts", - "utils", - "test/test-manifests.js" - ] + "bugs": { + "url": "https://github.com/videojs/videojs-contrib-hls/issues" }, - "files": [ - "CONTRIBUTING.md", - "dist/", - "docs/", - "es5/", - "index.html", - "scripts/", - "src/", - "test/" - ], "dependencies": { "aes-decrypter": "1.0.3", "global": "^4.3.0", @@ -97,6 +48,7 @@ "videojs-contrib-media-sources": "4.7.2", "webwackify": "0.1.6" }, + "description": "Play back HLS with video.js, even where it's not natively supported", "devDependencies": { "babel": "^5.8.0", "babelify": "^6.0.0", @@ -142,6 +94,19 @@ "watchify": "^3.6.0", "webpack": "^1.13.2" }, + "engines": { + "node": ">= 0.10.12" + }, + "files": [ + "CONTRIBUTING.md", + "dist/", + "docs/", + "es5/", + "index.html", + "scripts/", + "src/", + "test/" + ], "greenkeeper": { "ignore": [ "browserify", @@ -149,5 +114,74 @@ "webpack", "uglify-js" ] + }, + "homepage": "https://github.com/videojs/videojs-contrib-hls#readme", + "keywords": [ + "videojs", + "videojs-plugin" + ], + "license": "Apache-2.0", + "main": "es5/videojs-contrib-hls.js", + "name": "videojs-contrib-hls", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/videojs/videojs-contrib-hls.git" + }, + "scripts": { + "build": "npm-run-all -p build:*", + "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:collapse build:js:uglify", + "build:js:babel": "babel src -d es5", + "build:js:bannerize": "bannerize dist/videojs-contrib-hls.js --banner=scripts/banner.ejs", + "build:js:browserify": "browserify . -s videojs-contrib-hls -g browserify-shim -o dist/videojs-contrib-hls.js", + "build:js:collapse": "bundle-collapser dist/videojs-contrib-hls.js -o dist/videojs-contrib-hls.min.js", + "build:js:uglify": "uglifyjs dist/videojs-contrib-hls.min.js --support-ie8 --comments -m -c -o dist/videojs-contrib-hls.min.js", + "build:test": "npm-run-all build:test:manifest build:test:js build:test:browserify build:test:webpack", + "build:test:browserify": "browserify test/browserify-test.js -o dist-test/browserify-test.js", + "build:test:js": "node scripts/build-test.js", + "build:test:manifest": "node -e \"var b=require('./scripts/manifest-data.js'); b.build();\"", + "build:test:webpack": "webpack test/webpack-test.js dist-test/webpack-test.js", + "clean": "npm-run-all -p clean:*", + "clean:build": "node -e \"var s=require('shelljs'),d=['dist','dist-test','es5'];s.rm('-rf',d);s.mkdir('-p',d);\"", + "clean:test": "node -e \"var b=require('./scripts/manifest-data.js'); b.clean();\"", + "docs": "npm-run-all docs:*", + "docs:api": "jsdoc src -r -d docs/api", + "docs:toc": "doctoc README.md", + "lint": "vjsstandard", + "prebuild": "npm run clean", + "prepublish": "not-in-install && npm run build || in-install", + "pretest": "npm-run-all lint build", + "preversion": "npm test", + "start": "npm-run-all -p watch start:*", + "start:serve": "babel-node scripts/server.js", + "test": "karma start test/karma.conf.js", + "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", + "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", + "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", + "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", + "version": "npm run build", + "watch": "npm-run-all -p watch:*", + "watch:docs": "nodemon --watch src/ --exec npm run docs", + "watch:js": "npm-run-all -p watch:js:babel watch:js:browserify watch:js:switcher", + "watch:js:babel": "npm run build:js:babel -- --watch", + "watch:js:browserify": "watchify . -v -g browserify-shim -o dist/videojs-contrib-hls.js", + "watch:js:switcher": "watchify utils/switcher/switcher.js -v -t babelify -g browserify-shim -o dist/switcher.js", + "watch:test": "npm-run-all -p watch:test:manifest watch:test:js watch:test:webpack watch:test:browserify", + "watch:test:browserify": "watchify test/browserify-test.js -o dist-test/browserify-test.js", + "watch:test:js": "node scripts/watch-test.js", + "watch:test:manifest": "node -e \"var b=require('./scripts/manifest-data.js'); b.watch();\"", + "watch:test:webpack": "watchify test/webpack-test.js -o dist-test/webpack-test.js" + }, + "version": "5.15.0", + "vjsstandard": { + "ignore": [ + "dist", + "dist-test", + "docs", + "es5", + "test/karma.conf.js", + "scripts", + "utils", + "test/test-manifests.js" + ] } } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-contrib-media-sources/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-contrib-media-sources/package.json index 6af095a65..a218e5d7a 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-contrib-media-sources/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-contrib-media-sources/package.json @@ -1,86 +1,47 @@ { - "name": "videojs-contrib-media-sources", - "version": "4.7.2", - "description": "A Media Source Extensions plugin for video.js", - "main": "es5/videojs-contrib-media-sources.js", - "scripts": { - "prebuild": "npm run clean", - "build": "npm-run-all -p build:*", - "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:collapse build:js:uglify", - "build:js:babel": "babel src -d es5", - "build:js:bannerize": "bannerize dist/videojs-contrib-media-sources.js --banner=scripts/banner.ejs", - "build:js:browserify": "browserify . -t browserify-shim -s videojs-contrib-media-sources -o dist/videojs-contrib-media-sources.js", - "build:test:browserify": "browserify test/browserify-test.js -o dist-test/browserify-test.js", - "build:test:webpack": "webpack test/webpack-test.js dist-test/webpack-test.js", - "build:test": "npm-run-all build:test:js build:test:browserify build:test:webpack", - "build:test:js": "node scripts/build-test.js", - "build:js:collapse": "bundle-collapser dist/videojs-contrib-media-sources.js -o dist/videojs-contrib-media-sources.min.js", - "build:js:uglify": "uglifyjs dist/videojs-contrib-media-sources.min.js --comments -m -c -o dist/videojs-contrib-media-sources.min.js", - "clean": "node -e \"var s=require('shelljs'),d=['dist','dist-test','es5'];s.rm('-rf',d);s.mkdir('-p',d);\"", - "docs": "npm-run-all docs:*", - "docs:api": "jsdoc src -r -d docs/api", - "docs:toc": "doctoc README.md", - "lint": "vjsstandard", - "prestart": "npm-run-all docs build", - "start": "npm-run-all -p start:* watch:*", - "start:serve": "babel-node scripts/server.js", - "pretest": "npm-run-all lint build", - "test": "karma start test/karma.conf.js", - "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", - "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", - "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", - "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", - "preversion": "npm test", - "version": "npm run build", - "watch": "npm-run-all -p watch:*", - "watch:doc": "nodemon --watch src/ --exec npm run docs", - "watch:js": "npm-run-all -p watch:js:babel watch:js:browserify", - "watch:js:babel": "babel src --watch -d es5", - "watch:js:browserify": "watchify . -t browserify-shim -v -o dist/videojs-contrib-media-sources.js", - "watch:test:browserify": "watchify test/browserify-test.js -o dist-test/browserify-test.js", - "watch:test:webpack": "watchify test/webpack-test.js -o dist-test/webpack-test.js", - "watch:test": "npm-run-all watch:test:js watch:test:browserify watch:test:webpack", - "watch:test:js": "node scripts/watch-test.js", - "prepublish": "npm run build" + "_args": [ + [ + "videojs-contrib-media-sources@4.7.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "videojs-contrib-media-sources@4.7.2", + "_id": "videojs-contrib-media-sources@4.7.2", + "_inBundle": false, + "_integrity": "sha1-Ct+SkQfVt0zyyKuygkyCF35DhY4=", + "_location": "/videojs-contrib-media-sources", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-contrib-media-sources@4.7.2", + "name": "videojs-contrib-media-sources", + "escapedName": "videojs-contrib-media-sources", + "rawSpec": "4.7.2", + "saveSpec": null, + "fetchSpec": "4.7.2" }, - "keywords": [ - "videojs", - "videojs-plugin" + "_requiredBy": [ + "/videojs-contrib-hls" ], - "author": "Brightcove, Inc.", - "license": "Apache-2.0", + "_resolved": "https://registry.npm.taobao.org/videojs-contrib-media-sources/download/videojs-contrib-media-sources-4.7.2.tgz", + "_spec": "4.7.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove, Inc." + }, "browserify-shim": { "qunit": "global:QUnit", "sinon": "global:sinon", "video.js": "global:videojs" }, - "vjsstandard": { - "ignore": [ - "dist", - "dist-test", - "docs", - "es5", - "scripts", - "test/karma.conf.js" - ] - }, - "files": [ - "CONTRIBUTING.md", - "dist-test/", - "dist/", - "docs/", - "es5/", - "index.html", - "scripts/", - "src/", - "test/" - ], "dependencies": { "global": "^4.3.0", "mux.js": "4.3.2", "video.js": "^5.17.0 || ^6.2.0", "webwackify": "0.1.6" }, + "description": "A Media Source Extensions plugin for video.js", "devDependencies": { "babel": "^5.8.0", "babelify": "^6.0.0", @@ -115,5 +76,74 @@ "videojs-standard": "^4.0.3", "watchify": "^3.6.0", "webpack": "^1.13.2" + }, + "files": [ + "CONTRIBUTING.md", + "dist-test/", + "dist/", + "docs/", + "es5/", + "index.html", + "scripts/", + "src/", + "test/" + ], + "keywords": [ + "videojs", + "videojs-plugin" + ], + "license": "Apache-2.0", + "main": "es5/videojs-contrib-media-sources.js", + "name": "videojs-contrib-media-sources", + "scripts": { + "build": "npm-run-all -p build:*", + "build:js": "npm-run-all build:js:babel build:js:browserify build:js:bannerize build:js:collapse build:js:uglify", + "build:js:babel": "babel src -d es5", + "build:js:bannerize": "bannerize dist/videojs-contrib-media-sources.js --banner=scripts/banner.ejs", + "build:js:browserify": "browserify . -t browserify-shim -s videojs-contrib-media-sources -o dist/videojs-contrib-media-sources.js", + "build:js:collapse": "bundle-collapser dist/videojs-contrib-media-sources.js -o dist/videojs-contrib-media-sources.min.js", + "build:js:uglify": "uglifyjs dist/videojs-contrib-media-sources.min.js --comments -m -c -o dist/videojs-contrib-media-sources.min.js", + "build:test": "npm-run-all build:test:js build:test:browserify build:test:webpack", + "build:test:browserify": "browserify test/browserify-test.js -o dist-test/browserify-test.js", + "build:test:js": "node scripts/build-test.js", + "build:test:webpack": "webpack test/webpack-test.js dist-test/webpack-test.js", + "clean": "node -e \"var s=require('shelljs'),d=['dist','dist-test','es5'];s.rm('-rf',d);s.mkdir('-p',d);\"", + "docs": "npm-run-all docs:*", + "docs:api": "jsdoc src -r -d docs/api", + "docs:toc": "doctoc README.md", + "lint": "vjsstandard", + "prebuild": "npm run clean", + "prepublish": "npm run build", + "prestart": "npm-run-all docs build", + "pretest": "npm-run-all lint build", + "preversion": "npm test", + "start": "npm-run-all -p start:* watch:*", + "start:serve": "babel-node scripts/server.js", + "test": "karma start test/karma.conf.js", + "test:chrome": "npm run pretest && karma start test/karma.conf.js --browsers Chrome", + "test:firefox": "npm run pretest && karma start test/karma.conf.js --browsers Firefox", + "test:ie": "npm run pretest && karma start test/karma.conf.js --browsers IE", + "test:safari": "npm run pretest && karma start test/karma.conf.js --browsers Safari", + "version": "npm run build", + "watch": "npm-run-all -p watch:*", + "watch:doc": "nodemon --watch src/ --exec npm run docs", + "watch:js": "npm-run-all -p watch:js:babel watch:js:browserify", + "watch:js:babel": "babel src --watch -d es5", + "watch:js:browserify": "watchify . -t browserify-shim -v -o dist/videojs-contrib-media-sources.js", + "watch:test": "npm-run-all watch:test:js watch:test:browserify watch:test:webpack", + "watch:test:browserify": "watchify test/browserify-test.js -o dist-test/browserify-test.js", + "watch:test:js": "node scripts/watch-test.js", + "watch:test:webpack": "watchify test/webpack-test.js -o dist-test/webpack-test.js" + }, + "version": "4.7.2", + "vjsstandard": { + "ignore": [ + "dist", + "dist-test", + "docs", + "es5", + "scripts", + "test/karma.conf.js" + ] } } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/global/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/global/package.json index 052726a20..2b6aa320d 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/global/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/global/package.json @@ -1,36 +1,69 @@ { - "name": "global", - "version": "4.4.0", - "description": "Require global variables", - "keywords": [], - "author": "Raynos ", - "repository": "git://github.com/Raynos/global.git", - "main": "window.js", - "homepage": "https://github.com/Raynos/global", - "contributors": [ - { - "name": "Raynos" - } + "_args": [ + [ + "global@4.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "bugs": { - "url": "https://github.com/Raynos/global/issues", + "_from": "global@4.4.0", + "_id": "global@4.4.0", + "_inBundle": false, + "_integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=", + "_location": "/videojs-flash/global", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "global@4.4.0", + "name": "global", + "escapedName": "global", + "rawSpec": "4.4.0", + "saveSpec": null, + "fetchSpec": "4.4.0" + }, + "_requiredBy": [ + "/videojs-flash" + ], + "_resolved": "https://registry.npm.taobao.org/global/download/global-4.4.0.tgz", + "_spec": "4.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", "email": "raynos2@gmail.com" }, "browser": { "min-document": false, "individual": false }, + "bugs": { + "url": "https://github.com/Raynos/global/issues", + "email": "raynos2@gmail.com" + }, + "contributors": [ + { + "name": "Raynos" + } + ], "dependencies": { "min-document": "^2.19.0", "process": "^0.11.10" }, + "description": "Require global variables", "devDependencies": { "tape": "^2.12.0" }, + "homepage": "https://github.com/Raynos/global", + "keywords": [], "license": "MIT", + "main": "window.js", + "name": "global", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/global.git" + }, "scripts": { - "test": "node ./test", "build": "browserify test/index.js -o test/static/bundle.js", + "test": "node ./test", "testem": "testem" }, "testling": { @@ -59,5 +92,6 @@ "5.1" ] } - } + }, + "version": "4.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/process/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/process/package.json index d2cfaade4..cd9ca358a 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/process/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-flash/node_modules/process/package.json @@ -1,27 +1,62 @@ { - "author": "Roman Shtylman ", - "name": "process", + "_args": [ + [ + "process@0.11.10", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "process@0.11.10", + "_id": "process@0.11.10", + "_inBundle": false, + "_integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "_location": "/videojs-flash/process", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "process@0.11.10", + "name": "process", + "escapedName": "process", + "rawSpec": "0.11.10", + "saveSpec": null, + "fetchSpec": "0.11.10" + }, + "_requiredBy": [ + "/videojs-flash/global" + ], + "_resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "_spec": "0.11.10", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Roman Shtylman", + "email": "shtylman@gmail.com" + }, + "browser": "./browser.js", + "bugs": { + "url": "https://github.com/shtylman/node-process/issues" + }, "description": "process information for node.js and browsers", + "devDependencies": { + "mocha": "2.2.1", + "zuul": "^3.10.3" + }, + "engines": { + "node": ">= 0.6.0" + }, + "homepage": "https://github.com/shtylman/node-process#readme", "keywords": [ "process" ], - "scripts": { - "test": "mocha test.js", - "browser": "zuul --no-coverage --ui mocha-bdd --local 8080 -- test.js" - }, - "version": "0.11.10", + "license": "MIT", + "main": "./index.js", + "name": "process", "repository": { "type": "git", "url": "git://github.com/shtylman/node-process.git" }, - "license": "MIT", - "browser": "./browser.js", - "main": "./index.js", - "engines": { - "node": ">= 0.6.0" + "scripts": { + "browser": "zuul --no-coverage --ui mocha-bdd --local 8080 -- test.js", + "test": "mocha test.js" }, - "devDependencies": { - "mocha": "2.2.1", - "zuul": "^3.10.3" - } + "version": "0.11.10" } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-flash/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-flash/package.json index 7887b3d1a..da76732cf 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-flash/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-flash/package.json @@ -1,55 +1,46 @@ { - "name": "videojs-flash", - "version": "2.2.1", - "description": "The official Flash tech package for Video.js.", - "main": "dist/videojs-flash.cjs.js", - "module": "dist/videojs-flash.es.js", - "scripts": { - "prebuild": "npm run clean", - "build": "npm-run-all -p build:*", - "build:js": "npm-run-all build:js:rollup-modules build:js:rollup-umd build:js:bannerize build:js:uglify", - "build:js:bannerize": "bannerize dist/videojs-flash.js --banner=scripts/banner.ejs", - "build:js:rollup-modules": "rollup -c scripts/modules.rollup.config.js", - "build:js:rollup-umd": "rollup -c scripts/umd.rollup.config.js", - "build:js:uglify": "uglifyjs dist/videojs-flash.js --comments --mangle --compress --ie8 -o dist/videojs-flash.min.js", - "build:test": "rollup -c scripts/test.rollup.config.js", - "clean": "rimraf dist test/dist", - "postclean": "mkdirp dist test/dist", - "lint": "vjsstandard", - "prestart": "npm run build", - "start": "npm-run-all -p start:server watch", - "start:server": "static -a 0.0.0.0 -p 9999 -H '{\"Cache-Control\": \"no-cache, must-revalidate\"}' .", - "pretest": "npm-run-all lint build", - "test": "karma start test/karma.conf.js", - "preversion": "npm test", - "version": "node scripts/version.js", - "watch": "npm-run-all -p watch:*", - "watch:js-modules": "rollup -c scripts/modules.rollup.config.js -w", - "watch:js-umd": "rollup -c scripts/umd.rollup.config.js -w", - "watch:test": "rollup -c scripts/test.rollup.config.js -w", - "prepublish": "not-in-install && npm run build || in-install" - }, - "keywords": [ - "videojs", - "videojs-plugin", - "videojs-tech" + "_args": [ + [ + "videojs-flash@2.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Brightcove, Inc.", - "license": "Apache-2.0", - "files": [ - "CONTRIBUTING.md", - "dist/", - "docs/", - "index.html", - "scripts/", - "src/", - "test/" + "_from": "videojs-flash@2.2.1", + "_id": "videojs-flash@2.2.1", + "_inBundle": false, + "_integrity": "sha1-GiJduxztIArpu/FeAf5KYQhtkPE=", + "_location": "/videojs-flash", + "_phantomChildren": { + "min-document": "2.19.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-flash@2.2.1", + "name": "videojs-flash", + "escapedName": "videojs-flash", + "rawSpec": "2.2.1", + "saveSpec": null, + "fetchSpec": "2.2.1" + }, + "_requiredBy": [ + "/vue-video-player" ], + "_resolved": "https://registry.npm.taobao.org/videojs-flash/download/videojs-flash-2.2.1.tgz", + "_spec": "2.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove, Inc." + }, + "bugs": { + "url": "https://github.com/videojs/videojs-flash/issues" + }, "dependencies": { "global": "^4.4.0", "video.js": "^6 || ^7", "videojs-swf": "5.4.2" }, + "description": "The official Flash tech package for Video.js.", "devDependencies": { "acorn": "^7.1.0", "babel-plugin-external-helpers": "^6.22.0", @@ -87,20 +78,66 @@ "uglify-js": "^3.6.0", "videojs-standard": "^8.0.4" }, - "repository": { - "type": "git", - "url": "git+https://github.com/videojs/videojs-flash.git" - }, - "bugs": { - "url": "https://github.com/videojs/videojs-flash/issues" - }, - "homepage": "https://github.com/videojs/videojs-flash#readme", "engines": { "node": ">=4.4.0" }, + "files": [ + "CONTRIBUTING.md", + "dist/", + "docs/", + "index.html", + "scripts/", + "src/", + "test/" + ], "generator-videojs-plugin": { "version": "5.0.0" }, + "homepage": "https://github.com/videojs/videojs-flash#readme", + "husky": { + "hooks": { + "pre-push": "npm run lint" + } + }, + "keywords": [ + "videojs", + "videojs-plugin", + "videojs-tech" + ], + "license": "Apache-2.0", + "main": "dist/videojs-flash.cjs.js", + "module": "dist/videojs-flash.es.js", + "name": "videojs-flash", + "repository": { + "type": "git", + "url": "git+https://github.com/videojs/videojs-flash.git" + }, + "scripts": { + "build": "npm-run-all -p build:*", + "build:js": "npm-run-all build:js:rollup-modules build:js:rollup-umd build:js:bannerize build:js:uglify", + "build:js:bannerize": "bannerize dist/videojs-flash.js --banner=scripts/banner.ejs", + "build:js:rollup-modules": "rollup -c scripts/modules.rollup.config.js", + "build:js:rollup-umd": "rollup -c scripts/umd.rollup.config.js", + "build:js:uglify": "uglifyjs dist/videojs-flash.js --comments --mangle --compress --ie8 -o dist/videojs-flash.min.js", + "build:test": "rollup -c scripts/test.rollup.config.js", + "clean": "rimraf dist test/dist", + "lint": "vjsstandard", + "postclean": "mkdirp dist test/dist", + "prebuild": "npm run clean", + "prepublish": "not-in-install && npm run build || in-install", + "prestart": "npm run build", + "pretest": "npm-run-all lint build", + "preversion": "npm test", + "start": "npm-run-all -p start:server watch", + "start:server": "static -a 0.0.0.0 -p 9999 -H '{\"Cache-Control\": \"no-cache, must-revalidate\"}' .", + "test": "karma start test/karma.conf.js", + "version": "node scripts/version.js", + "watch": "npm-run-all -p watch:*", + "watch:js-modules": "rollup -c scripts/modules.rollup.config.js -w", + "watch:js-umd": "rollup -c scripts/umd.rollup.config.js -w", + "watch:test": "rollup -c scripts/test.rollup.config.js -w" + }, + "version": "2.2.1", "vjsstandard": { "ignore": [ "dist", @@ -108,10 +145,5 @@ "test/dist", "test/karma.conf.js" ] - }, - "husky": { - "hooks": { - "pre-push": "npm run lint" - } } } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-font/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-font/package.json index 629f7bcef..dafc8261a 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-font/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-font/package.json @@ -1,23 +1,40 @@ { - "name": "videojs-font", - "version": "2.1.0", - "description": "Video.js icon font", - "repository": { - "type": "git", - "url": "https://github.com/videojs/font.git" - }, - "scripts": { - "version": "grunt && git add ." + "_args": [ + [ + "videojs-font@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "videojs-font@2.1.0", + "_id": "videojs-font@2.1.0", + "_inBundle": false, + "_integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k=", + "_location": "/videojs-font", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-font@2.1.0", + "name": "videojs-font", + "escapedName": "videojs-font", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" }, - "keywords": [ - "videojs" + "_requiredBy": [ + "/video.js" ], - "author": "Matthew McClure ", - "license": "Apache-2.0", + "_resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Matthew McClure", + "email": "m@mmcc.io" + }, "bugs": { "url": "https://github.com/videojs/font/issues" }, - "homepage": "https://github.com/videojs/font", + "description": "Video.js icon font", "devDependencies": { "babel-preset-env": "^1.6.1", "babel-register": "^6.26.0", @@ -30,5 +47,19 @@ "material-design-icons": "^3.0.1", "time-grunt": "^1.2.1", "webfonts-generator": "^0.3.5" - } + }, + "homepage": "https://github.com/videojs/font", + "keywords": [ + "videojs" + ], + "license": "Apache-2.0", + "name": "videojs-font", + "repository": { + "type": "git", + "url": "git+https://github.com/videojs/font.git" + }, + "scripts": { + "version": "grunt && git add ." + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-hotkeys/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-hotkeys/package.json index 9d462dc4c..0fe248f2b 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-hotkeys/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-hotkeys/package.json @@ -1,23 +1,39 @@ { - "name": "videojs-hotkeys", - "version": "0.2.27", - "description": "Adds more hotkey support to video.js", - "main": "videojs.hotkeys.min.js", - "author": "Chris Dougherty", - "license": "Apache-2.0", - "repository": { - "type": "git", - "url": "https://github.com/ctd1500/videojs-hotkeys.git" + "_args": [ + [ + "videojs-hotkeys@0.2.27", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "videojs-hotkeys@0.2.27", + "_id": "videojs-hotkeys@0.2.27", + "_inBundle": false, + "_integrity": "sha1-Dfl5Urnf8ObMHPikOf7X6snHPwE=", + "_location": "/videojs-hotkeys", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-hotkeys@0.2.27", + "name": "videojs-hotkeys", + "escapedName": "videojs-hotkeys", + "rawSpec": "0.2.27", + "saveSpec": null, + "fetchSpec": "0.2.27" + }, + "_requiredBy": [ + "/vue-video-player" + ], + "_resolved": "https://registry.npm.taobao.org/videojs-hotkeys/download/videojs-hotkeys-0.2.27.tgz?cache=0&sync_timestamp=1596424673437&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvideojs-hotkeys%2Fdownload%2Fvideojs-hotkeys-0.2.27.tgz", + "_spec": "0.2.27", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Chris Dougherty" }, "bugs": { "url": "https://github.com/ctd1500/videojs-hotkeys/issues" }, - "homepage": "https://github.com/ctd1500/videojs-hotkeys", - "keywords": [ - "videojs", - "videojs-plugin", - "hotkeys" - ], + "description": "Adds more hotkey support to video.js", "devDependencies": { "grunt": "^1.0.1", "grunt-contrib-clean": "^1.1.0", @@ -27,8 +43,22 @@ "grunt-github-releaser2": "^0.1.1", "time-grunt": "^1.4.0" }, + "homepage": "https://github.com/ctd1500/videojs-hotkeys", + "keywords": [ + "videojs", + "videojs-plugin", + "hotkeys" + ], + "license": "Apache-2.0", + "main": "videojs.hotkeys.min.js", + "name": "videojs-hotkeys", + "repository": { + "type": "git", + "url": "git+https://github.com/ctd1500/videojs-hotkeys.git" + }, "scripts": { "build": "grunt", "release": "grunt release" - } + }, + "version": "0.2.27" } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-ie8/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-ie8/package.json index d09e9a516..e1052393c 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-ie8/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-ie8/package.json @@ -1,24 +1,42 @@ { - "name": "videojs-ie8", - "version": "1.1.2", - "description": "Files necessary for IE8 support in Video.js", - "repository": { - "type": "git", - "url": "git+https://github.com/videojs/ie8.git" + "_args": [ + [ + "videojs-ie8@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "videojs-ie8@1.1.2", + "_id": "videojs-ie8@1.1.2", + "_inBundle": false, + "_integrity": "sha1-oj09hgitcZK2nGB3/E64SJmNNdk=", + "_location": "/videojs-ie8", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-ie8@1.1.2", + "name": "videojs-ie8", + "escapedName": "videojs-ie8", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" }, - "keywords": [ - "videojs", - "ie8" + "_requiredBy": [ + "/video.js" ], - "author": "heff", - "license": "Apache 2.0", + "_resolved": "https://registry.npm.taobao.org/videojs-ie8/download/videojs-ie8-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "heff" + }, "bugs": { "url": "https://github.com/videojs/ie8/issues" }, - "homepage": "https://github.com/videojs/ie8#readme", "dependencies": { "es5-shim": "^4.5.1" }, + "description": "Files necessary for IE8 support in Video.js", "devDependencies": { "babel": "^5.4.7", "grunt": "^0.4.5", @@ -28,5 +46,17 @@ "grunt-contrib-uglify": "^0.9.1", "load-grunt-tasks": "^3.2.0", "time-grunt": "^1.2.1" - } + }, + "homepage": "https://github.com/videojs/ie8#readme", + "keywords": [ + "videojs", + "ie8" + ], + "license": "Apache 2.0", + "name": "videojs-ie8", + "repository": { + "type": "git", + "url": "git+https://github.com/videojs/ie8.git" + }, + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-swf/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-swf/package.json index 59e7ba53c..4b7cce907 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-swf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-swf/package.json @@ -1,19 +1,40 @@ { - "name": "videojs-swf", - "description": "The Flash-fallback video player for video.js (http://videojs.com)", - "version": "5.4.2", - "copyright": "Copyright 2014 Brightcove, Inc. https://github.com/videojs/video-js-swf/blob/master/LICENSE", - "keywords": [ - "flash", - "video", - "player" + "_args": [ + [ + "videojs-swf@5.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "http://videojs.com", - "author": "Brightcove", - "repository": { - "type": "git", - "url": "https://github.com/videojs/video-js-swf.git" + "_from": "videojs-swf@5.4.2", + "_id": "videojs-swf@5.4.2", + "_inBundle": false, + "_integrity": "sha1-aWSpv/kDtzLz5GUxSuR4oCoX6Ks=", + "_location": "/videojs-swf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-swf@5.4.2", + "name": "videojs-swf", + "escapedName": "videojs-swf", + "rawSpec": "5.4.2", + "saveSpec": null, + "fetchSpec": "5.4.2" + }, + "_requiredBy": [ + "/videojs-flash" + ], + "_resolved": "https://registry.npm.taobao.org/videojs-swf/download/videojs-swf-5.4.2.tgz", + "_spec": "5.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Brightcove" + }, + "bugs": { + "url": "https://github.com/videojs/video-js-swf/issues" }, + "copyright": "Copyright 2014 Brightcove, Inc. https://github.com/videojs/video-js-swf/blob/master/LICENSE", + "description": "The Flash-fallback video player for video.js (http://videojs.com)", "devDependencies": { "async": "~0.2.9", "chg": "^0.3.2", @@ -32,7 +53,19 @@ "qunitjs": "~1.12.0", "video.js": "^5.9.2" }, + "homepage": "http://videojs.com", + "keywords": [ + "flash", + "video", + "player" + ], + "name": "videojs-swf", + "repository": { + "type": "git", + "url": "git+https://github.com/videojs/video-js-swf.git" + }, "scripts": { "version": "chg release -y && grunt dist && git add -f dist/ && git add CHANGELOG.md" - } + }, + "version": "5.4.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/videojs-vtt.js/package.json b/admin/vue2/element-admin-v3/node_modules/videojs-vtt.js/package.json index 46edc626d..71e937839 100644 --- a/admin/vue2/element-admin-v3/node_modules/videojs-vtt.js/package.json +++ b/admin/vue2/element-admin-v3/node_modules/videojs-vtt.js/package.json @@ -1,14 +1,43 @@ { - "author": "Andreas Gal ", - "name": "videojs-vtt.js", - "description": "A JavaScript implementation of the WebVTT specification.", - "version": "0.12.6", - "main": "lib/browser-index.js", - "repository": { - "type": "git", - "url": "https://github.com/gkatsev/vtt.js.git" + "_args": [ + [ + "videojs-vtt.js@0.12.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "videojs-vtt.js@0.12.6", + "_id": "videojs-vtt.js@0.12.6", + "_inBundle": false, + "_integrity": "sha1-4HhgC9qJnqpvnDMHE0zQyBGUe44=", + "_location": "/videojs-vtt.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "videojs-vtt.js@0.12.6", + "name": "videojs-vtt.js", + "escapedName": "videojs-vtt.js", + "rawSpec": "0.12.6", + "saveSpec": null, + "fetchSpec": "0.12.6" }, - "homepage": "https://github.com/gkatsev/vtt.js", + "_requiredBy": [ + "/video.js" + ], + "_resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.12.6.tgz", + "_spec": "0.12.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andreas Gal", + "email": "gal@mozilla.com" + }, + "bugs": { + "url": "https://github.com/gkatsev/vtt.js/issues" + }, + "dependencies": { + "global": "^4.3.1" + }, + "description": "A JavaScript implementation of the WebVTT specification.", "devDependencies": { "async": "0.9.0", "browserify": "^14.3.0", @@ -40,6 +69,7 @@ "lib/vttregion.js", "lib/vttregion-extended.js" ], + "homepage": "https://github.com/gkatsev/vtt.js", "keywords": [ "vtt", "webvtt", @@ -48,19 +78,23 @@ "subtitles", "text track" ], + "license": { + "type": "Apache-2.0", + "url": "https://github.com/gkatsev/vtt.js/blob/master/LICENSE" + }, + "main": "lib/browser-index.js", + "name": "videojs-vtt.js", + "repository": { + "type": "git", + "url": "git+https://github.com/gkatsev/vtt.js.git" + }, "scripts": { "build": "npm run build-umd && npm run build-global", - "build-umd": "browserify -s vttjs . -o dist/vtt.js", "build-global": "browserify -s vttjs -p deumdify . -o dist/vtt.global.js", - "postbuild": "npm run minify", + "build-umd": "browserify -s vttjs . -o dist/vtt.js", "minify": "grunt uglify:dist uglify:global", + "postbuild": "npm run minify", "test": "grunt" }, - "license": { - "type": "Apache-2.0", - "url": "https://github.com/gkatsev/vtt.js/blob/master/LICENSE" - }, - "dependencies": { - "global": "^4.3.1" - } + "version": "0.12.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/vm-browserify/package.json b/admin/vue2/element-admin-v3/node_modules/vm-browserify/package.json index 6158f2fd2..dde7d56e1 100644 --- a/admin/vue2/element-admin-v3/node_modules/vm-browserify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vm-browserify/package.json @@ -1,30 +1,62 @@ { - "name": "vm-browserify", - "version": "1.1.2", - "description": "vm module for the browser", - "main": "index.js", - "repository": { - "type": "git", - "url": "http://github.com/substack/vm-browserify.git" + "_args": [ + [ + "vm-browserify@1.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vm-browserify@1.1.2", + "_id": "vm-browserify@1.1.2", + "_inBundle": false, + "_integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "_location": "/vm-browserify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vm-browserify@1.1.2", + "name": "vm-browserify", + "escapedName": "vm-browserify", + "rawSpec": "1.1.2", + "saveSpec": null, + "fetchSpec": "1.1.2" }, - "keywords": [ - "vm", - "browser", - "eval" + "_requiredBy": [ + "/node-libs-browser" ], + "_resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "_spec": "1.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/vm-browserify/issues" + }, "dependencies": {}, + "description": "vm module for the browser", "devDependencies": { "browserify": "^16.1.1", "tape": "^4.11.0", "tape-run": "^6.0.1" }, - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" + "homepage": "https://github.com/substack/vm-browserify#readme", + "keywords": [ + "vm", + "browser", + "eval" + ], + "license": "MIT", + "main": "index.js", + "name": "vm-browserify", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/substack/vm-browserify.git" }, "scripts": { "test": "browserify test/vm.js | tape-run" }, - "license": "MIT" + "version": "1.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/void-elements/package.json b/admin/vue2/element-admin-v3/node_modules/void-elements/package.json index 0fe0f2d03..09314bf43 100644 --- a/admin/vue2/element-admin-v3/node_modules/void-elements/package.json +++ b/admin/vue2/element-admin-v3/node_modules/void-elements/package.json @@ -1,34 +1,68 @@ { - "name": "void-elements", - "version": "3.1.0", - "description": "Array of \"void elements\" defined by the HTML specification.", - "main": "index.js", - "scripts": { - "pretest": "node build.js > test/latest.js", - "test": "node test", - "update": "node build.js > index.js" - }, - "keywords": [ - "html", - "void", - "elements" + "_args": [ + [ + "void-elements@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "index.js" + "_development": true, + "_from": "void-elements@3.1.0", + "_id": "void-elements@3.1.0", + "_inBundle": false, + "_integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "_location": "/void-elements", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "void-elements@3.1.0", + "name": "void-elements", + "escapedName": "void-elements", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" + }, + "_requiredBy": [ + "/pug-code-gen" ], - "repository": "pugjs/void-elements", - "author": "hemanth.hm", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "hemanth.hm" }, - "license": "MIT", "bugs": { "url": "https://github.com/jadejs/void-elements/issues" }, - "homepage": "https://github.com/jadejs/void-elements", + "description": "Array of \"void elements\" defined by the HTML specification.", "devDependencies": { "jsdom": "^9.9.1", "request": "^2.79.0", "request-promise": "^4.1.1" - } -} \ No newline at end of file + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jadejs/void-elements", + "keywords": [ + "html", + "void", + "elements" + ], + "license": "MIT", + "main": "index.js", + "name": "void-elements", + "repository": { + "type": "git", + "url": "git+https://github.com/pugjs/void-elements.git" + }, + "scripts": { + "pretest": "node build.js > test/latest.js", + "test": "node test", + "update": "node build.js > index.js" + }, + "version": "3.1.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/vue-bus/package.json b/admin/vue2/element-admin-v3/node_modules/vue-bus/package.json index 9519fe12e..f77530c2a 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-bus/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-bus/package.json @@ -1,37 +1,40 @@ { - "name": "vue-bus", - "version": "1.2.1", - "description": "A event bus for Vue.js", - "main": "dist/vue-bus.common.js", - "module": "dist/vue-bus.esm.js", - "unpkg": "dist/vue-bus.js", - "jsdelivr": "dist/vue-bus.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" + "_args": [ + [ + "vue-bus@1.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "lint": "eslint src __tests__", - "build": "rimraf dist && rollup -c && uglifyjs dist/vue-bus.js -c -m --comments -o dist/vue-bus.min.js", - "test": "jest && codecov" + "_from": "vue-bus@1.2.1", + "_id": "vue-bus@1.2.1", + "_inBundle": false, + "_integrity": "sha1-UFd7C3P8GvnNqKR1/vL38P2tcEU=", + "_location": "/vue-bus", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-bus@1.2.1", + "name": "vue-bus", + "escapedName": "vue-bus", + "rawSpec": "1.2.1", + "saveSpec": null, + "fetchSpec": "1.2.1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/yangmingshan/vue-bus.git" - }, - "keywords": [ - "vue", - "events", - "bus" + "_requiredBy": [ + "/" ], - "author": "Yang Mingshan ", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/vue-bus/download/vue-bus-1.2.1.tgz", + "_spec": "1.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Yang Mingshan", + "email": "y.mingshan3@gmail.com" + }, "bugs": { "url": "https://github.com/yangmingshan/vue-bus/issues" }, - "homepage": "https://github.com/yangmingshan/vue-bus#readme", + "description": "A event bus for Vue.js", "devDependencies": { "buble": "^0.19.7", "codecov": "^3.2.0", @@ -48,8 +51,36 @@ "uglify-js": "^3.5.1", "vue": "^2.6.10" }, + "files": [ + "src", + "dist/*.js", + "types/*.d.ts" + ], + "homepage": "https://github.com/yangmingshan/vue-bus#readme", "jest": { "coverageDirectory": "./coverage/", "collectCoverage": true - } + }, + "jsdelivr": "dist/vue-bus.js", + "keywords": [ + "vue", + "events", + "bus" + ], + "license": "MIT", + "main": "dist/vue-bus.common.js", + "module": "dist/vue-bus.esm.js", + "name": "vue-bus", + "repository": { + "type": "git", + "url": "git+https://github.com/yangmingshan/vue-bus.git" + }, + "scripts": { + "build": "rimraf dist && rollup -c && uglifyjs dist/vue-bus.js -c -m --comments -o dist/vue-bus.min.js", + "lint": "eslint src __tests__", + "test": "jest && codecov" + }, + "typings": "types/index.d.ts", + "unpkg": "dist/vue-bus.js", + "version": "1.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-class-component/package.json b/admin/vue2/element-admin-v3/node_modules/vue-class-component/package.json index b3d9e5840..4a02e1f6b 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-class-component/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-class-component/package.json @@ -1,51 +1,39 @@ { - "name": "vue-class-component", - "version": "7.2.6", - "description": "ES201X/TypeScript class decorator for Vue components", - "main": "dist/vue-class-component.common.js", - "module": "dist/vue-class-component.esm.js", - "unpkg": "dist/vue-class-component.js", - "typings": "lib/index.d.ts", - "sideEffects": false, - "files": [ - "dist", - "lib", - "hooks.js", - "hooks.d.ts" + "_args": [ + [ + "vue-class-component@7.2.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "npm run build:ts && npm run build:main", - "build:ts": "tsc -p .", - "build:main": "node build/build.js", - "clean": "rimraf ./lib", - "example": "npm run build && webpack --config example/webpack.config.js", - "dev": "webpack --config example/webpack.config.js --watch", - "dev:test": "node build/dev-test.js", - "lint": "eslint --ext js,jsx,ts,tsx,vue .", - "test": "npm run build && webpack --config test/webpack.config.js && mocha test/test.build.js", - "docs:dev": "vuepress dev docs", - "docs:build": "vuepress build docs", - "release": "bash build/release.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue-class-component.git" + "_from": "vue-class-component@7.2.6", + "_id": "vue-class-component@7.2.6", + "_inBundle": false, + "_integrity": "sha1-hHHgN7jkdi9aRkaG4Z5a/HCFAuQ=", + "_location": "/vue-class-component", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-class-component@7.2.6", + "name": "vue-class-component", + "escapedName": "vue-class-component", + "rawSpec": "7.2.6", + "saveSpec": null, + "fetchSpec": "7.2.6" }, - "keywords": [ - "vue", - "class", - "babel", - "typescript" + "_requiredBy": [ + "/" ], - "author": "Evan You", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/vue-class-component/download/vue-class-component-7.2.6.tgz", + "_spec": "7.2.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "bugs": { "url": "https://github.com/vuejs/vue-class-component/issues" }, - "homepage": "https://github.com/vuejs/vue-class-component#readme", - "peerDependencies": { - "vue": "^2.0.0" - }, + "description": "ES201X/TypeScript class decorator for Vue components", "devDependencies": { "@babel/core": "^7.7.7", "@babel/plugin-proposal-class-properties": "^7.7.4", @@ -80,5 +68,47 @@ "vuex": "^3.1.2", "webpack": "^4.41.5", "webpack-cli": "^3.3.10" - } + }, + "files": [ + "dist", + "lib", + "hooks.js", + "hooks.d.ts" + ], + "homepage": "https://github.com/vuejs/vue-class-component#readme", + "keywords": [ + "vue", + "class", + "babel", + "typescript" + ], + "license": "MIT", + "main": "dist/vue-class-component.common.js", + "module": "dist/vue-class-component.esm.js", + "name": "vue-class-component", + "peerDependencies": { + "vue": "^2.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue-class-component.git" + }, + "scripts": { + "build": "npm run build:ts && npm run build:main", + "build:main": "node build/build.js", + "build:ts": "tsc -p .", + "clean": "rimraf ./lib", + "dev": "webpack --config example/webpack.config.js --watch", + "dev:test": "node build/dev-test.js", + "docs:build": "vuepress build docs", + "docs:dev": "vuepress dev docs", + "example": "npm run build && webpack --config example/webpack.config.js", + "lint": "eslint --ext js,jsx,ts,tsx,vue .", + "release": "bash build/release.sh", + "test": "npm run build && webpack --config test/webpack.config.js && mocha test/test.build.js" + }, + "sideEffects": false, + "typings": "lib/index.d.ts", + "unpkg": "dist/vue-class-component.js", + "version": "7.2.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/node_modules/clipboard/package.json b/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/node_modules/clipboard/package.json index 9cbfb05ce..9685c1749 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/node_modules/clipboard/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/node_modules/clipboard/package.json @@ -1,22 +1,41 @@ { - "name": "clipboard", - "version": "2.0.8", - "description": "Modern copy to clipboard. No Flash. Just 2kb", - "homepage": "https://clipboardjs.com", - "repository": "zenorocha/clipboard.js", - "license": "MIT", - "main": "dist/clipboard.js", - "types": "src/clipboard.d.ts", - "keywords": [ - "clipboard", - "copy", - "cut" + "_args": [ + [ + "clipboard@2.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "clipboard@2.0.8", + "_id": "clipboard@2.0.8", + "_inBundle": false, + "_integrity": "sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=", + "_location": "/vue-clipboard2/clipboard", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clipboard@2.0.8", + "name": "clipboard", + "escapedName": "clipboard", + "rawSpec": "2.0.8", + "saveSpec": null, + "fetchSpec": "2.0.8" + }, + "_requiredBy": [ + "/vue-clipboard2" ], + "_resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.8.tgz?cache=0&sync_timestamp=1615410040723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.8.tgz", + "_spec": "2.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zenorocha/clipboard.js/issues" + }, "dependencies": { "good-listener": "^1.2.2", "select": "^1.1.2", "tiny-emitter": "^2.0.0" }, + "description": "Modern copy to clipboard. No Flash. Just 2kb", "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", @@ -44,20 +63,35 @@ "webpack": "^5.15.0", "webpack-cli": "^4.4.0" }, + "homepage": "https://clipboardjs.com", + "keywords": [ + "clipboard", + "copy", + "cut" + ], + "license": "MIT", + "lint-staged": { + "*.{js,css,md}": [ + "prettier --write", + "eslint --fix" + ] + }, + "main": "dist/clipboard.js", + "name": "clipboard", + "repository": { + "type": "git", + "url": "git+https://github.com/zenorocha/clipboard.js.git" + }, "scripts": { - "test:types": "tsd", "build": "npm run build-debug && npm run build-min", "build-debug": "webpack", "build-min": "cross-env NODE_ENV=production webpack", "build-watch": "webpack --watch", - "test": "karma start --single-run", + "lint": "eslint --ext .js src/", "prepublish": "npm run build", - "lint": "eslint --ext .js src/" + "test": "karma start --single-run", + "test:types": "tsd" }, - "lint-staged": { - "*.{js,css,md}": [ - "prettier --write", - "eslint --fix" - ] - } + "types": "src/clipboard.d.ts", + "version": "2.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/package.json b/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/package.json index f6dc1b85b..a809a3cbf 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-clipboard2/package.json @@ -1,33 +1,46 @@ { - "name": "vue-clipboard2", - "version": "0.3.1", - "description": "A Vuejs2 binding for clipboard.js", - "main": "vue-clipboard.js", - "scripts": { - "build": "$(npm bin)/eslint vue-clipboard.js && $(npm bin)/browserify browserify-me.js -o dist/vue-clipboard.js && $(npm bin)/uglifyjs dist/vue-clipboard.js -o dist/vue-clipboard.min.js && echo Success" + "_args": [ + [ + "vue-clipboard2@0.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue-clipboard2@0.3.1", + "_id": "vue-clipboard2@0.3.1", + "_inBundle": false, + "_integrity": "sha1-blUft704SImyiw2jsSKJ7WvKSJQ=", + "_location": "/vue-clipboard2", + "_phantomChildren": { + "good-listener": "1.2.2", + "select": "1.1.2", + "tiny-emitter": "2.1.0" }, - "repository": { - "type": "git", - "url": "git+https://github.com/Inndy/vue-clipboard2.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-clipboard2@0.3.1", + "name": "vue-clipboard2", + "escapedName": "vue-clipboard2", + "rawSpec": "0.3.1", + "saveSpec": null, + "fetchSpec": "0.3.1" }, - "keywords": [ - "vue", - "vue2", - "clipboard", - "clipboard.js" + "_requiredBy": [ + "/" ], - "author": "Inndy", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.3.1.tgz", + "_spec": "0.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Inndy" + }, "bugs": { "url": "https://github.com/Inndy/vue-clipboard2/issues" }, - "homepage": "https://github.com/Inndy/vue-clipboard2#readme", - "peerDependecies": { - "vue": "^2.0.0" - }, "dependencies": { "clipboard": "^2.0.0" }, + "description": "A Vuejs2 binding for clipboard.js", "devDependencies": { "browserify": "^16.1.0", "eslint": ">=5.0.0", @@ -37,5 +50,26 @@ "eslint-plugin-promise": ">=4.0.0", "eslint-plugin-standard": ">=4.0.0", "uglify-js": "^3.3.12" - } + }, + "homepage": "https://github.com/Inndy/vue-clipboard2#readme", + "keywords": [ + "vue", + "vue2", + "clipboard", + "clipboard.js" + ], + "license": "MIT", + "main": "vue-clipboard.js", + "name": "vue-clipboard2", + "peerDependecies": { + "vue": "^2.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Inndy/vue-clipboard2.git" + }, + "scripts": { + "build": "$(npm bin)/eslint vue-clipboard.js && $(npm bin)/browserify browserify-me.js -o dist/vue-clipboard.js && $(npm bin)/uglifyjs dist/vue-clipboard.js -o dist/vue-clipboard.min.js && echo Success" + }, + "version": "0.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-count-to/package.json b/admin/vue2/element-admin-v3/node_modules/vue-count-to/package.json index 090c27463..f9e413d8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-count-to/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-count-to/package.json @@ -1,17 +1,40 @@ { - "name": "vue-count-to", - "description": "It's a vue component that will count to a target number at a specified duration", - "version": "1.0.13", - "author": "Pan ", - "main": "dist/vue-count-to.min.js", - "scripts": { - "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot --content-base='./demo/'", - "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" + "_args": [ + [ + "vue-count-to@1.0.13", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue-count-to@1.0.13", + "_id": "vue-count-to@1.0.13", + "_inBundle": false, + "_integrity": "sha1-PnVz6m5kwrKXL2TgoqsuI8dZD/M=", + "_location": "/vue-count-to", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-count-to@1.0.13", + "name": "vue-count-to", + "escapedName": "vue-count-to", + "rawSpec": "1.0.13", + "saveSpec": null, + "fetchSpec": "1.0.13" }, - "license": "MIT", - "homepage": "http://panjiachen.github.io/countTo/demo/", + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/vue-count-to/download/vue-count-to-1.0.13.tgz", + "_spec": "1.0.13", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Pan", + "email": "panfree23@gmail.com" + }, + "description": "It's a vue component that will count to a target number at a specified duration", "devDependencies": { "babel-core": "^6.0.0", + "babel-eslint": "7.1.1", "babel-loader": "^6.0.0", "babel-plugin-transform-runtime": "^6.15.0", "babel-preset-es2015": "^6.14.0", @@ -19,18 +42,26 @@ "babel-runtime": "^6.11.6", "cross-env": "^3.0.0", "css-loader": "^0.25.0", - "file-loader": "^0.9.0", - "vue-loader": "^11.1.4", - "vue-template-compiler": "^2.2.1", - "webpack": "^2.2.0", - "webpack-dev-server": "^2.2.0", - "babel-eslint": "7.1.1", "eslint": "3.14.1", + "eslint-config-airbnb-base": "11.0.1", "eslint-friendly-formatter": "2.0.7", + "eslint-import-resolver-webpack": "0.8.1", "eslint-loader": "1.6.1", "eslint-plugin-html": "2.0.0", - "eslint-config-airbnb-base": "11.0.1", - "eslint-import-resolver-webpack": "0.8.1", - "eslint-plugin-import": "2.2.0" - } + "eslint-plugin-import": "2.2.0", + "file-loader": "^0.9.0", + "vue-loader": "^11.1.4", + "vue-template-compiler": "^2.2.1", + "webpack": "^2.2.0", + "webpack-dev-server": "^2.2.0" + }, + "homepage": "http://panjiachen.github.io/countTo/demo/", + "license": "MIT", + "main": "dist/vue-count-to.min.js", + "name": "vue-count-to", + "scripts": { + "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", + "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot --content-base='./demo/'" + }, + "version": "1.0.13" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/debug/package.json index 191c81547..42f53fca6 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/debug/package.json @@ -1,32 +1,56 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_development": true, + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/vue-eslint-parser/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/vue-eslint-parser" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +69,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/ms/package.json index 49971890d..fcec23c91 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/node_modules/ms/package.json @@ -1,16 +1,44 @@ { - "name": "ms", - "version": "2.1.3", - "description": "Tiny millisecond conversion utility", - "repository": "vercel/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_development": true, + "_from": "ms@2.1.3", + "_id": "ms@2.1.3", + "_inBundle": false, + "_integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "_location": "/vue-eslint-parser/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.3", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.3", + "saveSpec": null, + "fetchSpec": "2.1.3" + }, + "_requiredBy": [ + "/vue-eslint-parser/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", + "_spec": "2.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/vercel/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "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" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +47,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/vercel/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,13 +59,16 @@ "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" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/vercel/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/package.json b/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/package.json index 9b4805fe6..969218006 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-eslint-parser/package.json @@ -1,18 +1,38 @@ { - "name": "vue-eslint-parser", - "version": "2.0.3", - "description": "The ESLint custom parser for `.vue` files.", - "engines": { - "node": ">=4" + "_args": [ + [ + "vue-eslint-parser@2.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "vue-eslint-parser@2.0.3", + "_id": "vue-eslint-parser@2.0.3", + "_inBundle": false, + "_integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=", + "_location": "/vue-eslint-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-eslint-parser@2.0.3", + "name": "vue-eslint-parser", + "escapedName": "vue-eslint-parser", + "rawSpec": "2.0.3", + "saveSpec": null, + "fetchSpec": "2.0.3" }, - "main": "index.js", - "files": [ - "index.d.ts", - "index.js", - "index.js.map" + "_requiredBy": [ + "/eslint-plugin-vue" ], - "peerDependencies": { - "eslint": ">=3.9.0" + "_resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz", + "_spec": "2.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Toru Nagashima" + }, + "bugs": { + "url": "https://github.com/mysticatea/vue-eslint-parser/issues" }, "dependencies": { "debug": "^3.1.0", @@ -22,6 +42,7 @@ "esquery": "^1.0.0", "lodash": "^4.17.4" }, + "description": "The ESLint custom parser for `.vue` files.", "devDependencies": { "@types/debug": "0.0.30", "@types/estree": "0.0.38", @@ -50,39 +71,49 @@ "wait-on": "^2.0.2", "warun": "^1.0.0" }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.d.ts", + "index.js", + "index.js.map" + ], + "homepage": "https://github.com/mysticatea/vue-eslint-parser#readme", + "keywords": [], + "license": "MIT", + "main": "index.js", + "name": "vue-eslint-parser", + "peerDependencies": { + "eslint": ">=3.9.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/mysticatea/vue-eslint-parser.git" + }, "scripts": { "_mocha": "_mocha \"test/*.js\" --reporter dot --timeout 10000", - "prebuild": "npm run -s clean", "build": "tsc && rollup -c -o index.js && dts-bundle --name vue-eslint-parser --main .temp/index.d.ts --out ../index.d.ts", "clean": "rimraf .nyc_output .temp coverage index.*", "codecov": "nyc report --reporter lcovonly && codecov", "coverage": "nyc report --reporter lcov && opener ./coverage/lcov-report/index.html", "lint": "eslint src test --ext .ts", - "setup": "git submodule update --init && cd test/fixtures/eslint && npm install", + "postversion": "git push && git push --tags", + "prebuild": "npm run -s clean", "pretest": "run-s build lint", - "test": "nyc npm run _mocha", "preupdate-fixtures": "npm run -s build", - "update-fixtures": "node test/tools/update-fixtures-ast.js", "preversion": "npm test", - "version": "npm run -s build", - "postversion": "git push && git push --tags", "prewatch": "npm run -s clean", + "setup": "git submodule update --init && cd test/fixtures/eslint && npm install", + "test": "nyc npm run _mocha", + "update-fixtures": "node test/tools/update-fixtures-ast.js", + "version": "npm run -s build", "watch": "run-p watch:*", - "watch:tsc": "tsc --watch", + "watch:coverage-report": "wait-on coverage/lcov-report/index.html && opener coverage/lcov-report/index.html", "watch:rollup": "wait-on .temp/index.js && rollup -c -o index.js --watch", "watch:test": "wait-on index.js && warun index.js \"test/*.js\" \"test/fixtures/ast/*/*.json\" \"test/fixtures/*\" --debounce 1000 --no-initial -- nyc -r lcov npm run -s _mocha", - "watch:update-ast": "wait-on index.js && warun index.js \"test/fixtures/ast/*/*.vue\" -- node test/tools/update-fixtures-ast.js", - "watch:coverage-report": "wait-on coverage/lcov-report/index.html && opener coverage/lcov-report/index.html" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mysticatea/vue-eslint-parser.git" - }, - "keywords": [], - "author": "Toru Nagashima", - "license": "MIT", - "bugs": { - "url": "https://github.com/mysticatea/vue-eslint-parser/issues" + "watch:tsc": "tsc --watch", + "watch:update-ast": "wait-on index.js && warun index.js \"test/fixtures/ast/*/*.vue\" -- node test/tools/update-fixtures-ast.js" }, - "homepage": "https://github.com/mysticatea/vue-eslint-parser#readme" + "version": "2.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-grid-layout/package.json b/admin/vue2/element-admin-v3/node_modules/vue-grid-layout/package.json index 356f4620a..f7f95b224 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-grid-layout/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-grid-layout/package.json @@ -1,50 +1,85 @@ -{ - "name": "vue-grid-layout", - "version": "2.3.12", - "description": "A draggable and resizable grid layout, as a Vue component.", - "keywords": [ - "grid", - "vuejs", - "drag", - "draggable", - "resize", - "resizable", - "fluid", - "responsive" - ], - "repository": { - "type": "git", - "url": "https://github.com/jbaysolutions/vue-grid-layout.git" - }, - "author": "Gustavo Santos (JBay Solutions) (http://www.jbaysolutions.com)", - "homepage": "https://github.com/jbaysolutions/vue-grid-layout", - "main": "dist/vue-grid-layout.common.js", - "unpkg": "dist/vue-grid-layout.umd.min.js", - "scripts": { - "serve": "vue-cli-service serve", - "build": "rimraf dist && vue-cli-service build", - "build-lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", - "lint": "vue-cli-service lint" - }, - "dependencies": { - "element-resize-detector": "^1.2.1", - "@interactjs/interactjs": "^1.10.2", - "@interactjs/auto-start": "^1.10.2", - "@interactjs/actions": "^1.10.2", - "@interactjs/modifiers": "^1.10.2", - "@interactjs/dev-tools": "^1.10.2" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "^3.4.1", - "@vue/cli-plugin-eslint": "^3.4.1", - "@vue/cli-service": "^3.4.1", - "@vue/eslint-config-standard": "^3.0.5", - "babel-plugin-transform-flow-comments": "^6.7.0", - "node-sass": "^4.13.0", - "rimraf": "^2.6.2", - "sass-loader": "^7.0.1", - "vue": "^2.6.12", - "vue-template-compiler": "^2.6.12", - "webpack-bundle-analyzer": "^3.9.0" - } -} +{ + "_args": [ + [ + "vue-grid-layout@2.3.12", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue-grid-layout@2.3.12", + "_id": "vue-grid-layout@2.3.12", + "_inBundle": false, + "_integrity": "sha1-tjljV7hqZoBcEXQx18GT0uBm7do=", + "_location": "/vue-grid-layout", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-grid-layout@2.3.12", + "name": "vue-grid-layout", + "escapedName": "vue-grid-layout", + "rawSpec": "2.3.12", + "saveSpec": null, + "fetchSpec": "2.3.12" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/vue-grid-layout/download/vue-grid-layout-2.3.12.tgz", + "_spec": "2.3.12", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Gustavo Santos", + "email": "gustavo.santos@jbaysolutions.com", + "url": "JBay Solutions" + }, + "bugs": { + "url": "https://github.com/jbaysolutions/vue-grid-layout/issues" + }, + "dependencies": { + "@interactjs/actions": "^1.10.2", + "@interactjs/auto-start": "^1.10.2", + "@interactjs/dev-tools": "^1.10.2", + "@interactjs/interactjs": "^1.10.2", + "@interactjs/modifiers": "^1.10.2", + "element-resize-detector": "^1.2.1" + }, + "description": "A draggable and resizable grid layout, as a Vue component.", + "devDependencies": { + "@vue/cli-plugin-babel": "^3.4.1", + "@vue/cli-plugin-eslint": "^3.4.1", + "@vue/cli-service": "^3.4.1", + "@vue/eslint-config-standard": "^3.0.5", + "babel-plugin-transform-flow-comments": "^6.7.0", + "node-sass": "^4.13.0", + "rimraf": "^2.6.2", + "sass-loader": "^7.0.1", + "vue": "^2.6.12", + "vue-template-compiler": "^2.6.12", + "webpack-bundle-analyzer": "^3.9.0" + }, + "homepage": "https://github.com/jbaysolutions/vue-grid-layout", + "keywords": [ + "grid", + "vuejs", + "drag", + "draggable", + "resize", + "resizable", + "fluid", + "responsive" + ], + "main": "dist/vue-grid-layout.common.js", + "name": "vue-grid-layout", + "repository": { + "type": "git", + "url": "git+https://github.com/jbaysolutions/vue-grid-layout.git" + }, + "scripts": { + "build": "rimraf dist && vue-cli-service build", + "build-lib": "rimraf dist && vue-cli-service build --target lib ./src/components/index.js", + "lint": "vue-cli-service lint", + "serve": "vue-cli-service serve" + }, + "unpkg": "dist/vue-grid-layout.umd.min.js", + "version": "2.3.12" +} diff --git a/admin/vue2/element-admin-v3/node_modules/vue-hot-reload-api/package.json b/admin/vue2/element-admin-v3/node_modules/vue-hot-reload-api/package.json index 85f52d3b5..a3e302981 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-hot-reload-api/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-hot-reload-api/package.json @@ -1,34 +1,65 @@ { - "name": "vue-hot-reload-api", - "version": "2.3.4", + "_args": [ + [ + "vue-hot-reload-api@2.3.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "vue-hot-reload-api@2.3.4", + "_id": "vue-hot-reload-api@2.3.4", + "_inBundle": false, + "_integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", + "_location": "/vue-hot-reload-api", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-hot-reload-api@2.3.4", + "name": "vue-hot-reload-api", + "escapedName": "vue-hot-reload-api", + "rawSpec": "2.3.4", + "saveSpec": null, + "fetchSpec": "2.3.4" + }, + "_requiredBy": [ + "/vue-loader" + ], + "_resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz", + "_spec": "2.3.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, + "bugs": { + "url": "https://github.com/vuejs/vue-hot-reload-api/issues" + }, "description": "hot reload api for *.vue components", - "main": "dist/index.js", + "devDependencies": { + "buble": "^0.19.6", + "jest": "^24.9.0", + "vue": "^2.5.21" + }, "files": [ "dist" ], - "scripts": { - "build": "buble src -o dist", - "test": "jest", - "prepublishOnly": "npm run test && npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue-hot-reload-api.git" - }, + "homepage": "https://github.com/vuejs/vue-hot-reload-api#readme", "keywords": [ "vue", "hot", "reload" ], - "author": "Evan You", "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue-hot-reload-api/issues" + "main": "dist/index.js", + "name": "vue-hot-reload-api", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue-hot-reload-api.git" }, - "homepage": "https://github.com/vuejs/vue-hot-reload-api#readme", - "devDependencies": { - "buble": "^0.19.6", - "jest": "^24.9.0", - "vue": "^2.5.21" - } + "scripts": { + "build": "buble src -o dist", + "prepublishOnly": "npm run test && npm run build", + "test": "jest" + }, + "version": "2.3.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-i18n/package.json b/admin/vue2/element-admin-v3/node_modules/vue-i18n/package.json index 217f1ae9e..b6e2638c9 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-i18n/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-i18n/package.json @@ -1,7 +1,32 @@ { - "name": "vue-i18n", - "description": "Internationalization plugin for Vue.js", - "version": "7.3.2", + "_args": [ + [ + "vue-i18n@7.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue-i18n@7.3.2", + "_id": "vue-i18n@7.3.2", + "_inBundle": false, + "_integrity": "sha1-EgW7iBEyP9XETlfk/WGb6vL3qaE=", + "_location": "/vue-i18n", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-i18n@7.3.2", + "name": "vue-i18n", + "escapedName": "vue-i18n", + "rawSpec": "7.3.2", + "saveSpec": null, + "fetchSpec": "7.3.2" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/vue-i18n/download/vue-i18n-7.3.2.tgz", + "_spec": "7.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "kazuya kawaguchi", "email": "kawakazu80@gmail.com" @@ -10,6 +35,7 @@ "url": "https://github.com/kazupon/vue-i18n/issues" }, "dependencies": {}, + "description": "Internationalization plugin for Vue.js", "devDependencies": { "babel-core": "^6.22.1", "babel-eslint": "^7.1.0", @@ -83,7 +109,7 @@ "license": "MIT", "main": "dist/vue-i18n.common.js", "module": "dist/vue-i18n.esm.js", - "types": "types/index.d.ts", + "name": "vue-i18n", "repository": { "type": "git", "url": "git+https://github.com/kazupon/vue-i18n.git" @@ -97,8 +123,8 @@ "docs": "gitbook serve ./gitbook ./docs", "docs:build": "node config/version.js && gitbook build ./gitbook ./docs", "docs:install": "gitbook install ./gitbook", - "flow": "flow check", "dtslint": "dtslint types", + "flow": "flow check", "lint": "eslint src test config", "release": "conventional-github-releaser -n ./node_modules/git-commit-message-convention/convention.js", "sauce": "npm run sauce:coolkids && npm run sauce:ie && npm run sauce:mobile", @@ -110,5 +136,7 @@ "test:e2e": "npm run build && node test/e2e/runner.js", "test:unit": "BABEL_ENV=test karma start config/karma.unit.conf.js" }, - "unpkg": "dist/vue-i18n.js" + "types": "types/index.d.ts", + "unpkg": "dist/vue-i18n.js", + "version": "7.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/clipboard/package.json b/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/clipboard/package.json index 9cbfb05ce..3f98fe485 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/clipboard/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/clipboard/package.json @@ -1,22 +1,41 @@ { - "name": "clipboard", - "version": "2.0.8", - "description": "Modern copy to clipboard. No Flash. Just 2kb", - "homepage": "https://clipboardjs.com", - "repository": "zenorocha/clipboard.js", - "license": "MIT", - "main": "dist/clipboard.js", - "types": "src/clipboard.d.ts", - "keywords": [ - "clipboard", - "copy", - "cut" + "_args": [ + [ + "clipboard@2.0.8", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "clipboard@2.0.8", + "_id": "clipboard@2.0.8", + "_inBundle": false, + "_integrity": "sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=", + "_location": "/vue-json-viewer/clipboard", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "clipboard@2.0.8", + "name": "clipboard", + "escapedName": "clipboard", + "rawSpec": "2.0.8", + "saveSpec": null, + "fetchSpec": "2.0.8" + }, + "_requiredBy": [ + "/vue-json-viewer" ], + "_resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.8.tgz?cache=0&sync_timestamp=1615410040723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.8.tgz", + "_spec": "2.0.8", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zenorocha/clipboard.js/issues" + }, "dependencies": { "good-listener": "^1.2.2", "select": "^1.1.2", "tiny-emitter": "^2.0.0" }, + "description": "Modern copy to clipboard. No Flash. Just 2kb", "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", @@ -44,20 +63,35 @@ "webpack": "^5.15.0", "webpack-cli": "^4.4.0" }, + "homepage": "https://clipboardjs.com", + "keywords": [ + "clipboard", + "copy", + "cut" + ], + "license": "MIT", + "lint-staged": { + "*.{js,css,md}": [ + "prettier --write", + "eslint --fix" + ] + }, + "main": "dist/clipboard.js", + "name": "clipboard", + "repository": { + "type": "git", + "url": "git+https://github.com/zenorocha/clipboard.js.git" + }, "scripts": { - "test:types": "tsd", "build": "npm run build-debug && npm run build-min", "build-debug": "webpack", "build-min": "cross-env NODE_ENV=production webpack", "build-watch": "webpack --watch", - "test": "karma start --single-run", + "lint": "eslint --ext .js src/", "prepublish": "npm run build", - "lint": "eslint --ext .js src/" + "test": "karma start --single-run", + "test:types": "tsd" }, - "lint-staged": { - "*.{js,css,md}": [ - "prettier --write", - "eslint --fix" - ] - } + "types": "src/clipboard.d.ts", + "version": "2.0.8" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/vue/package.json b/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/vue/package.json index 6e793fa5a..4db15d04b 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/vue/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/node_modules/vue/package.json @@ -1,71 +1,44 @@ { - "name": "vue", - "version": "2.6.14", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "sideEffects": false, - "scripts": { - "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs-dev", - "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", - "build": "node scripts/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.js", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.js", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint src scripts test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash scripts/release.sh", - "release:weex": "bash scripts/release-weex.sh", - "release:note": "node scripts/gen-release-note.js", - "commit": "git-cz" - }, - "gitHooks": { - "pre-commit": "lint-staged", - "commit-msg": "node scripts/verify-commit-msg.js" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" + "_args": [ + [ + "vue@2.6.14", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_from": "vue@2.6.14", + "_id": "vue@2.6.14", + "_inBundle": false, + "_integrity": "sha1-5RqlJQJQ1Wmj+606ilpofWA24jU=", + "_location": "/vue-json-viewer/vue", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue@2.6.14", + "name": "vue", + "escapedName": "vue", + "rawSpec": "2.6.14", + "saveSpec": null, + "fetchSpec": "2.6.14" }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" + "_requiredBy": [ + "/vue-json-viewer" ], - "author": "Evan You", - "license": "MIT", + "_resolved": "https://registry.nlark.com/vue/download/vue-2.6.14.tgz", + "_spec": "2.6.14", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "bugs": { "url": "https://github.com/vuejs/vue/issues" }, - "homepage": "https://github.com/vuejs/vue#readme", + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + }, + "description": "Reactive, component-oriented view layer for modern web interfaces.", "devDependencies": { "@babel/core": "^7.0.0", "@babel/plugin-proposal-class-properties": "^7.1.0", @@ -142,9 +115,66 @@ "weex-styler": "^0.3.0", "yorkie": "^2.0.0" }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - } + "files": [ + "src", + "dist/*.js", + "types/*.d.ts" + ], + "gitHooks": { + "pre-commit": "lint-staged", + "commit-msg": "node scripts/verify-commit-msg.js" + }, + "homepage": "https://github.com/vuejs/vue#readme", + "jsdelivr": "dist/vue.js", + "keywords": [ + "vue" + ], + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "dist/vue.runtime.common.js", + "module": "dist/vue.runtime.esm.js", + "name": "vue", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue.git" + }, + "scripts": { + "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", + "build": "node scripts/build.js", + "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", + "build:weex": "npm run build -- weex", + "commit": "git-cz", + "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", + "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs-dev", + "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", + "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", + "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", + "dev:test": "karma start test/unit/karma.dev.config.js", + "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", + "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", + "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", + "flow": "flow check", + "lint": "eslint src scripts test", + "release": "bash scripts/release.sh", + "release:note": "node scripts/gen-release-note.js", + "release:weex": "bash scripts/release-weex.sh", + "sauce": "karma start test/unit/karma.sauce.config.js", + "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", + "test:cover": "karma start test/unit/karma.cover.config.js", + "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", + "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", + "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.js", + "test:types": "tsc -p ./types/test/tsconfig.json", + "test:unit": "karma start test/unit/karma.unit.config.js", + "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.js" + }, + "sideEffects": false, + "typings": "types/index.d.ts", + "unpkg": "dist/vue.js", + "version": "2.6.14" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/package.json b/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/package.json index 0c8232b9a..7a53c78f2 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-json-viewer/package.json @@ -1,37 +1,40 @@ { - "name": "vue-json-viewer", - "version": "2.2.19", - "description": "vuejs展示json的组件", - "main": "vue-json-viewer.js", - "files": [ - "vue-json-viewer.js", - "ssr.js", - "style.css" + "_args": [ + [ + "vue-json-viewer@2.2.19", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "directories": { - "lib": "./lib", - "example": "./example" + "_from": "vue-json-viewer@2.2.19", + "_id": "vue-json-viewer@2.2.19", + "_inBundle": false, + "_integrity": "sha1-voSOl6MtNZgylELTtxiSykkFoR0=", + "_location": "/vue-json-viewer", + "_phantomChildren": { + "good-listener": "1.2.2", + "select": "1.1.2", + "tiny-emitter": "2.1.0" }, - "scripts": { - "build": "npm run build:browser && npm run build:ssr", - "build:browser": "webpack --config ./build/webpack.config.js", - "build:ssr": "webpack --config ./build/webpack.ssr.config.js", - "example": "webpack-dev-server --config ./example/build/webpack.dev.conf.js" + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-json-viewer@2.2.19", + "name": "vue-json-viewer", + "escapedName": "vue-json-viewer", + "rawSpec": "2.2.19", + "saveSpec": null, + "fetchSpec": "2.2.19" }, - "repository": { - "type": "git", - "url": "git+https://github.com/chenfengjw163/vue-json-viewer.git" - }, - "keywords": [ - "vue", - "json" + "_requiredBy": [ + "/" ], - "homepage": "https://github.com/chenfengjw163/vue-json-viewer#readme", + "_resolved": "https://registry.nlark.com/vue-json-viewer/download/vue-json-viewer-2.2.19.tgz", + "_spec": "2.2.19", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "陈峰", "email": "chenfengjw@hotmail.com" }, - "license": "MIT", "bugs": { "url": "https://github.com/chenfengjw163/vue-json-viewer/issues" }, @@ -49,6 +52,7 @@ "clipboard": "^2.0.4", "vue": "^2.6.9" }, + "description": "vuejs展示json的组件", "devDependencies": { "autoprefixer": "^7.1.5", "babel-core": "^6.26.0", @@ -81,5 +85,33 @@ "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3", "webpack-merge": "^4.1.0" - } + }, + "directories": { + "lib": "./lib", + "example": "./example" + }, + "files": [ + "vue-json-viewer.js", + "ssr.js", + "style.css" + ], + "homepage": "https://github.com/chenfengjw163/vue-json-viewer#readme", + "keywords": [ + "vue", + "json" + ], + "license": "MIT", + "main": "vue-json-viewer.js", + "name": "vue-json-viewer", + "repository": { + "type": "git", + "url": "git+https://github.com/chenfengjw163/vue-json-viewer.git" + }, + "scripts": { + "build": "npm run build:browser && npm run build:ssr", + "build:browser": "webpack --config ./build/webpack.config.js", + "build:ssr": "webpack --config ./build/webpack.ssr.config.js", + "example": "webpack-dev-server --config ./example/build/webpack.dev.conf.js" + }, + "version": "2.2.19" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-loader/package.json b/admin/vue2/element-admin-v3/node_modules/vue-loader/package.json index d2f7e8d17..5ab88b478 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-loader/package.json @@ -1,40 +1,39 @@ { - "name": "vue-loader", - "version": "15.3.0", - "description": "Vue single-file component loader for Webpack", - "main": "lib/index.js", - "typings": "lib/index.d.ts", - "scripts": { - "test": "yarn lint && jest --env node", - "lint": "eslint lib test --fix", - "build": "webpack --config example/webpack.config.js --hide-modules", - "dev": "webpack-dev-server --config example/webpack.config.js --inline --hot", - "docs": "vuepress dev docs", - "docs:build": "vuepress build docs", - "prepublishOnly": "conventional-changelog -p angular -r 2 -i CHANGELOG.md -s" + "_args": [ + [ + "vue-loader@15.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "vue-loader@15.3.0", + "_id": "vue-loader@15.3.0", + "_inBundle": false, + "_integrity": "sha1-tHTRCk6T2TSnjBR/w+MUs3Dp/FQ=", + "_location": "/vue-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-loader@15.3.0", + "name": "vue-loader", + "escapedName": "vue-loader", + "rawSpec": "15.3.0", + "saveSpec": null, + "fetchSpec": "15.3.0" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-15.3.0.tgz", + "_spec": "15.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" }, - "author": "Evan You", - "license": "MIT", "bugs": { "url": "https://github.com/vuejs/vue-loader/issues" }, - "homepage": "https://github.com/vuejs/vue-loader", - "gitHooks": { - "pre-commit": "lint-staged" - }, - "lint-staged": { - "lib/**/*.js": [ - "eslint --fix", - "git add" - ], - "test/**/*.js": [ - "eslint --fix", - "git add" - ] - }, - "peerDependencies": { - "css-loader": "*" - }, "dependencies": { "@vue/component-compiler-utils": "^2.0.0", "hash-sum": "^1.0.2", @@ -42,6 +41,7 @@ "vue-hot-reload-api": "^2.3.0", "vue-style-loader": "^4.1.0" }, + "description": "Vue single-file component loader for Webpack", "devDependencies": { "babel-core": "^6.26.0", "babel-loader": "^7.1.4", @@ -82,5 +82,36 @@ "webpack-dev-server": "^3.1.1", "webpack-merge": "^4.1.2", "yorkie": "^1.0.3" - } + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "homepage": "https://github.com/vuejs/vue-loader", + "license": "MIT", + "lint-staged": { + "lib/**/*.js": [ + "eslint --fix", + "git add" + ], + "test/**/*.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "lib/index.js", + "name": "vue-loader", + "peerDependencies": { + "css-loader": "*" + }, + "scripts": { + "build": "webpack --config example/webpack.config.js --hide-modules", + "dev": "webpack-dev-server --config example/webpack.config.js --inline --hot", + "docs": "vuepress dev docs", + "docs:build": "vuepress build docs", + "lint": "eslint lib test --fix", + "prepublishOnly": "conventional-changelog -p angular -r 2 -i CHANGELOG.md -s", + "test": "yarn lint && jest --env node" + }, + "typings": "lib/index.d.ts", + "version": "15.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-router/package.json b/admin/vue2/element-admin-v3/node_modules/vue-router/package.json index a172c37d4..4fccc04aa 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-router/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-router/package.json @@ -1,43 +1,39 @@ { - "name": "vue-router", - "version": "3.0.2", - "description": "Official router for Vue.js 2", - "author": "Evan You", - "license": "MIT", - "main": "dist/vue-router.common.js", - "module": "dist/vue-router.esm.js", - "unpkg": "dist/vue-router.js", - "jsdelivr": "dist/vue-router.js", - "sideEffects": false, - "repository": { - "type": "git", - "url": "https://github.com/vuejs/vue-router.git" - }, - "typings": "types/index.d.ts", - "files": [ - "src/*.js", - "dist/*.js", - "types/*.d.ts" + "_args": [ + [ + "vue-router@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "vue", - "router", - "routing" + "_from": "vue-router@3.0.2", + "_id": "vue-router@3.0.2", + "_inBundle": false, + "_integrity": "sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4=", + "_location": "/vue-router", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-router@3.0.2", + "name": "vue-router", + "escapedName": "vue-router", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" + }, + "_requiredBy": [ + "/" ], - "scripts": { - "dev": "node examples/server.js", - "dev:dist": "rollup -wm -c build/rollup.dev.config.js", - "build": "node build/build.js", - "lint": "eslint src examples", - "test": "npm run lint && npm run flow && npm run test:unit && npm run test:e2e && npm run test:types", - "flow": "flow check", - "test:unit": "jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", - "test:e2e": "node test/e2e/runner.js", - "test:types": "tsc -p types/test", - "docs": "vuepress dev docs", - "docs:build": "vuepress build docs", - "release": "bash build/release.sh" + "_resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.0.2.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, + "bugs": { + "url": "https://github.com/vuejs/vue-router/issues" }, + "description": "Official router for Vue.js 2", "devDependencies": { "babel-core": "^6.24.1", "babel-eslint": "^8.2.2", @@ -79,8 +75,42 @@ "webpack": "^4.9.0", "webpack-dev-middleware": "^3.1.3" }, - "bugs": { - "url": "https://github.com/vuejs/vue-router/issues" + "files": [ + "src/*.js", + "dist/*.js", + "types/*.d.ts" + ], + "homepage": "https://github.com/vuejs/vue-router#readme", + "jsdelivr": "dist/vue-router.js", + "keywords": [ + "vue", + "router", + "routing" + ], + "license": "MIT", + "main": "dist/vue-router.common.js", + "module": "dist/vue-router.esm.js", + "name": "vue-router", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue-router.git" }, - "homepage": "https://github.com/vuejs/vue-router#readme" + "scripts": { + "build": "node build/build.js", + "dev": "node examples/server.js", + "dev:dist": "rollup -wm -c build/rollup.dev.config.js", + "docs": "vuepress dev docs", + "docs:build": "vuepress build docs", + "flow": "flow check", + "lint": "eslint src examples", + "release": "bash build/release.sh", + "test": "npm run lint && npm run flow && npm run test:unit && npm run test:e2e && npm run test:types", + "test:e2e": "node test/e2e/runner.js", + "test:types": "tsc -p types/test", + "test:unit": "jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json" + }, + "sideEffects": false, + "typings": "types/index.d.ts", + "unpkg": "dist/vue-router.js", + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-splitpane/package.json b/admin/vue2/element-admin-v3/node_modules/vue-splitpane/package.json index 8c73ebd05..37f16db65 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-splitpane/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-splitpane/package.json @@ -1,18 +1,40 @@ { - "name": "vue-splitpane", - "description": "vue split-pane component", - "version": "1.0.2", - "author": "Pan ", - "main": "dist/vue-split-pane.min.js", - "scripts": { - "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot --content-base='./demo/'", - "watch": "cross-env NODE_ENV=production webpack --progress --watch", - "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" + "_args": [ + [ + "vue-splitpane@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue-splitpane@1.0.2", + "_id": "vue-splitpane@1.0.2", + "_inBundle": false, + "_integrity": "sha1-okWaLxAtDw27YEnxJE7VCgOltko=", + "_location": "/vue-splitpane", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-splitpane@1.0.2", + "name": "vue-splitpane", + "escapedName": "vue-splitpane", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" }, - "license": "MIT", - "homepage": "file:///Users/jiachenpan/www/Github/PanJiaChen.github.io/split-pane/demo/index.html", + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/vue-splitpane/download/vue-splitpane-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Pan", + "email": "panfree23@gmail.com" + }, + "description": "vue split-pane component", "devDependencies": { "babel-core": "^6.0.0", + "babel-eslint": "7.1.1", "babel-loader": "^6.0.0", "babel-plugin-transform-runtime": "^6.15.0", "babel-preset-es2015": "^6.14.0", @@ -20,18 +42,27 @@ "babel-runtime": "^6.11.6", "cross-env": "^3.0.0", "css-loader": "^0.25.0", - "file-loader": "^0.9.0", - "vue-loader": "^11.1.4", - "vue-template-compiler": "^2.2.1", - "webpack": "^2.2.0", - "webpack-dev-server": "^2.2.0", - "babel-eslint": "7.1.1", "eslint": "3.14.1", + "eslint-config-airbnb-base": "11.0.1", "eslint-friendly-formatter": "2.0.7", + "eslint-import-resolver-webpack": "0.8.1", "eslint-loader": "1.6.1", "eslint-plugin-html": "2.0.0", - "eslint-config-airbnb-base": "11.0.1", - "eslint-import-resolver-webpack": "0.8.1", - "eslint-plugin-import": "2.2.0" - } + "eslint-plugin-import": "2.2.0", + "file-loader": "^0.9.0", + "vue-loader": "^11.1.4", + "vue-template-compiler": "^2.2.1", + "webpack": "^2.2.0", + "webpack-dev-server": "^2.2.0" + }, + "homepage": "file:///Users/jiachenpan/www/Github/PanJiaChen.github.io/split-pane/demo/index.html", + "license": "MIT", + "main": "dist/vue-split-pane.min.js", + "name": "vue-splitpane", + "scripts": { + "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", + "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot --content-base='./demo/'", + "watch": "cross-env NODE_ENV=production webpack --progress --watch" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-style-loader/package.json b/admin/vue2/element-admin-v3/node_modules/vue-style-loader/package.json index 30b7be5af..6e71de3f9 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-style-loader/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-style-loader/package.json @@ -1,26 +1,62 @@ { - "name": "vue-style-loader", - "version": "4.1.2", - "author": "Evan You", - "description": "Vue.js style loader module for webpack", - "repository": { - "type": "git", - "url": "git@github.com:vuejs/vue-style-loader.git" + "_args": [ + [ + "vue-style-loader@4.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "vue-style-loader@4.1.2", + "_id": "vue-style-loader@4.1.2", + "_inBundle": false, + "_integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", + "_location": "/vue-style-loader", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-style-loader@4.1.2", + "name": "vue-style-loader", + "escapedName": "vue-style-loader", + "rawSpec": "4.1.2", + "saveSpec": null, + "fetchSpec": "4.1.2" }, - "scripts": { - "test": "jest", - "prepublishOnly": "conventional-changelog -p angular -r 2 -i CHANGELOG.md -s" + "_requiredBy": [ + "#DEV:/", + "/vue-loader" + ], + "_resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz?cache=0&sync_timestamp=1614758693102&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-style-loader%2Fdownload%2Fvue-style-loader-4.1.2.tgz", + "_spec": "4.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, + "bugs": { + "url": "https://github.com/vuejs/vue-style-loader/issues" }, - "license": "MIT", "dependencies": { "hash-sum": "^1.0.2", "loader-utils": "^1.0.2" }, + "description": "Vue.js style loader module for webpack", "devDependencies": { "babel-core": "^6.26.0", "babel-jest": "^22.1.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", "conventional-changelog-cli": "^2.0.1", "jest": "^22.1.4" - } + }, + "homepage": "https://github.com/vuejs/vue-style-loader#readme", + "license": "MIT", + "name": "vue-style-loader", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/vuejs/vue-style-loader.git" + }, + "scripts": { + "prepublishOnly": "conventional-changelog -p angular -r 2 -i CHANGELOG.md -s", + "test": "jest" + }, + "version": "4.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-template-compiler/package.json b/admin/vue2/element-admin-v3/node_modules/vue-template-compiler/package.json index 6a55785e3..4e7bb411e 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-template-compiler/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-template-compiler/package.json @@ -1,27 +1,58 @@ { - "name": "vue-template-compiler", - "version": "2.5.17", - "description": "template compiler for Vue 2.0", - "main": "index.js", - "unpkg": "browser.js", - "jsdelivr": "browser.js", + "_args": [ + [ + "vue-template-compiler@2.5.17", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "vue-template-compiler@2.5.17", + "_id": "vue-template-compiler@2.5.17", + "_inBundle": false, + "_integrity": "sha1-UqSgeMMn3rk3SCpQmuhcBvNGw8s=", + "_location": "/vue-template-compiler", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-template-compiler@2.5.17", + "name": "vue-template-compiler", + "escapedName": "vue-template-compiler", + "rawSpec": "2.5.17", + "saveSpec": null, + "fetchSpec": "2.5.17" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.5.17.tgz?cache=0&sync_timestamp=1623059734748&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.5.17.tgz", + "_spec": "2.5.17", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "browser": "browser.js", - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" + "bugs": { + "url": "https://github.com/vuejs/vue/issues" }, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + }, + "description": "template compiler for Vue 2.0", + "homepage": "https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#readme", + "jsdelivr": "browser.js", "keywords": [ "vue", "compiler" ], - "author": "Evan You", "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vue/issues" + "main": "index.js", + "name": "vue-template-compiler", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue.git" }, - "homepage": "https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#readme", - "dependencies": { - "he": "^1.1.0", - "de-indent": "^1.0.2" - } + "unpkg": "browser.js", + "version": "2.5.17" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-template-es2015-compiler/package.json b/admin/vue2/element-admin-v3/node_modules/vue-template-es2015-compiler/package.json index 42861ea20..8c845ded6 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-template-es2015-compiler/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-template-es2015-compiler/package.json @@ -1,32 +1,67 @@ { - "name": "vue-template-es2015-compiler", - "version": "1.9.1", - "description": "Post compiler for Vue template render functions to support ES2015+ features", - "main": "index.js", - "author": "Evan You", - "license": "MIT", - "files": [ - "index.js", - "buble.js" + "_args": [ + [ + "vue-template-es2015-compiler@1.9.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "build": "cd buble && npm run build && cp dist/buble-browser-deps.umd.js ../buble.js", - "test": "jest", - "prepublishOnly": "jest && npm run build" + "_development": true, + "_from": "vue-template-es2015-compiler@1.9.1", + "_id": "vue-template-es2015-compiler@1.9.1", + "_inBundle": false, + "_integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", + "_location": "/vue-template-es2015-compiler", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-template-es2015-compiler@1.9.1", + "name": "vue-template-es2015-compiler", + "escapedName": "vue-template-es2015-compiler", + "rawSpec": "1.9.1", + "saveSpec": null, + "fetchSpec": "1.9.1" + }, + "_requiredBy": [ + "/@vue/component-compiler-utils" + ], + "_resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", + "_spec": "1.9.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" }, + "bugs": { + "url": "https://github.com/vuejs/vue-template-es2015-compiler/issues" + }, + "description": "Post compiler for Vue template render functions to support ES2015+ features", "devDependencies": { "jest": "^24.1.0", "vue": "^2.6.0", "vue-template-compiler": "^2.6.0" }, - "repository": { - "type": "git", - "url": "https://github.com/vuejs/vue-template-es2015-compiler" - }, + "files": [ + "index.js", + "buble.js" + ], + "homepage": "https://github.com/vuejs/vue-template-es2015-compiler#readme", "jest": { "testPathIgnorePatterns": [ "/node_modules/", "/buble/" ] - } + }, + "license": "MIT", + "main": "index.js", + "name": "vue-template-es2015-compiler", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue-template-es2015-compiler.git" + }, + "scripts": { + "build": "cd buble && npm run build && cp dist/buble-browser-deps.umd.js ../buble.js", + "prepublishOnly": "jest && npm run build", + "test": "jest" + }, + "version": "1.9.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue-video-player/package.json b/admin/vue2/element-admin-v3/node_modules/vue-video-player/package.json index 08db6f402..6cc0e8c51 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue-video-player/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue-video-player/package.json @@ -1,9 +1,32 @@ { - "name": "vue-video-player", - "description": "video.js component for Vue", - "version": "5.0.2", - "license": "MIT", - "private": false, + "_args": [ + [ + "vue-video-player@5.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue-video-player@5.0.2", + "_id": "vue-video-player@5.0.2", + "_inBundle": false, + "_integrity": "sha1-NKQiOf8wTvx2mNogpBZQUddmweY=", + "_location": "/vue-video-player", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-video-player@5.0.2", + "name": "vue-video-player", + "escapedName": "vue-video-player", + "rawSpec": "5.0.2", + "saveSpec": null, + "fetchSpec": "5.0.2" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/vue-video-player/download/vue-video-player-5.0.2.tgz", + "_spec": "5.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Surmon", "email": "surmon@foxmail.com", @@ -12,40 +35,6 @@ "bugs": { "url": "https://github.com/surmon-china/vue-video-player/issues" }, - "homepage": "https://github.com/surmon-china/vue-video-player#readme", - "main": "dist/vue-video-player.js", - "unpkg": "dist/vue-video-player.js", - "jsnext:main": "dist/vue-video-player.js", - "files": [ - "dist", - "src" - ], - "jspm": { - "main": "dist/vue-video-player.js", - "registry": "npm", - "format": "esm" - }, - "repository": { - "type": "git", - "url": "https://github.com/surmon-china/vue-video-player.git" - }, - "keywords": [ - "vue-video-player", - "vue video player", - "video player", - "vue player", - "vue video" - ], - "scripts": { - "build:spa": "cross-env NODE_ENV=production webpack --config config/build.conf.js", - "build:ssr": "babel src/ssr.js --out-file dist/ssr.js", - "build": "npm run build:spa && npm run build:ssr", - "unit": "cross-env BABEL_ENV=test NODE_ENV=testing karma start test/unit/karma.conf.js --watch", - "test": "cross-env BABEL_ENV=test NODE_ENV=testing karma start test/unit/karma.conf.js --single-run", - "lint": "eslint --ext .js,.vue src test/unit/specs", - "finish": "npm run lint && npm test && npm run build", - "publish": "git push && git push --tags && npm publish" - }, "dependencies": { "object-assign": "^4.1.1", "video.js": "^6.6.0", @@ -53,11 +42,7 @@ "videojs-flash": "^2.1.0", "videojs-hotkeys": "^0.2.20" }, - "expDependencies": { - "node-sass": "^4.7.2", - "sass-loader": "^6.0.6", - "vue-video-player": "^5.0.0" - }, + "description": "video.js component for Vue", "devDependencies": { "autoprefixer": "^6.7.2", "babel-cli": "^6.23.0", @@ -136,5 +121,48 @@ "engines": { "node": ">= 4.0.0", "npm": ">= 3.0.0" - } + }, + "expDependencies": { + "node-sass": "^4.7.2", + "sass-loader": "^6.0.6", + "vue-video-player": "^5.0.0" + }, + "files": [ + "dist", + "src" + ], + "homepage": "https://github.com/surmon-china/vue-video-player#readme", + "jsnext:main": "dist/vue-video-player.js", + "jspm": { + "main": "dist/vue-video-player.js", + "registry": "npm", + "format": "esm" + }, + "keywords": [ + "vue-video-player", + "vue video player", + "video player", + "vue player", + "vue video" + ], + "license": "MIT", + "main": "dist/vue-video-player.js", + "name": "vue-video-player", + "private": false, + "repository": { + "type": "git", + "url": "git+https://github.com/surmon-china/vue-video-player.git" + }, + "scripts": { + "build": "npm run build:spa && npm run build:ssr", + "build:spa": "cross-env NODE_ENV=production webpack --config config/build.conf.js", + "build:ssr": "babel src/ssr.js --out-file dist/ssr.js", + "finish": "npm run lint && npm test && npm run build", + "lint": "eslint --ext .js,.vue src test/unit/specs", + "publish": "git push && git push --tags && npm publish", + "test": "cross-env BABEL_ENV=test NODE_ENV=testing karma start test/unit/karma.conf.js --single-run", + "unit": "cross-env BABEL_ENV=test NODE_ENV=testing karma start test/unit/karma.conf.js --watch" + }, + "unpkg": "dist/vue-video-player.js", + "version": "5.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue/package.json b/admin/vue2/element-admin-v3/node_modules/vue/package.json index fc3bbb981..bd8ccb4a8 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue/package.json @@ -1,70 +1,45 @@ { - "name": "vue", - "version": "2.5.17", - "description": "Reactive, component-oriented view layer for modern web interfaces.", - "main": "dist/vue.runtime.common.js", - "module": "dist/vue.runtime.esm.js", - "unpkg": "dist/vue.js", - "jsdelivr": "dist/vue.js", - "typings": "types/index.d.ts", - "files": [ - "src", - "dist/*.js", - "types/*.d.ts" - ], - "scripts": { - "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", - "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs", - "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", - "dev:test": "karma start test/unit/karma.dev.config.js", - "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", - "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", - "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", - "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", - "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", - "build": "node scripts/build.js", - "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", - "build:weex": "npm run build -- weex", - "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", - "test:unit": "karma start test/unit/karma.unit.config.js", - "test:cover": "karma start test/unit/karma.cover.config.js", - "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", - "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json", - "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", - "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", - "test:types": "tsc -p ./types/test/tsconfig.json", - "lint": "eslint --fix src scripts test", - "flow": "flow check", - "sauce": "karma start test/unit/karma.sauce.config.js", - "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", - "release": "bash scripts/release.sh", - "release:weex": "bash scripts/release-weex.sh", - "release:note": "node scripts/gen-release-note.js", - "commit": "git-cz" - }, - "gitHooks": { - "pre-commit": "lint-staged", - "commit-msg": "node scripts/verify-commit-msg.js" - }, - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" + "_args": [ + [ + "vue@2.5.17", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" ] + ], + "_from": "vue@2.5.17", + "_id": "vue@2.5.17", + "_inBundle": false, + "_integrity": "sha1-D4eJrXGL5oyhhyYpgy7VM1icato=", + "_location": "/vue", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue@2.5.17", + "name": "vue", + "escapedName": "vue", + "rawSpec": "2.5.17", + "saveSpec": null, + "fetchSpec": "2.5.17" }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vue.git" - }, - "keywords": [ - "vue" + "_requiredBy": [ + "/", + "/vue2-verify" ], - "author": "Evan You", - "license": "MIT", + "_resolved": "https://registry.nlark.com/vue/download/vue-2.5.17.tgz", + "_spec": "2.5.17", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" + }, "bugs": { "url": "https://github.com/vuejs/vue/issues" }, - "homepage": "https://github.com/vuejs/vue#readme", + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + }, + "description": "Reactive, component-oriented view layer for modern web interfaces.", "devDependencies": { "@types/node": "^8.0.33", "@types/webpack": "^3.0.13", @@ -141,9 +116,65 @@ "weex-styler": "^0.3.0", "yorkie": "^1.0.1" }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - } + "files": [ + "src", + "dist/*.js", + "types/*.d.ts" + ], + "gitHooks": { + "pre-commit": "lint-staged", + "commit-msg": "node scripts/verify-commit-msg.js" + }, + "homepage": "https://github.com/vuejs/vue#readme", + "jsdelivr": "dist/vue.js", + "keywords": [ + "vue" + ], + "license": "MIT", + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "dist/vue.runtime.common.js", + "module": "dist/vue.runtime.esm.js", + "name": "vue", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vue.git" + }, + "scripts": { + "bench:ssr": "npm run build:ssr && node benchmarks/ssr/renderToString.js && node benchmarks/ssr/renderToStream.js", + "build": "node scripts/build.js", + "build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer", + "build:weex": "npm run build -- weex", + "commit": "git-cz", + "dev": "rollup -w -c scripts/config.js --environment TARGET:web-full-dev", + "dev:cjs": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-cjs", + "dev:compiler": "rollup -w -c scripts/config.js --environment TARGET:web-compiler ", + "dev:esm": "rollup -w -c scripts/config.js --environment TARGET:web-runtime-esm", + "dev:ssr": "rollup -w -c scripts/config.js --environment TARGET:web-server-renderer", + "dev:test": "karma start test/unit/karma.dev.config.js", + "dev:weex": "rollup -w -c scripts/config.js --environment TARGET:weex-framework", + "dev:weex:compiler": "rollup -w -c scripts/config.js --environment TARGET:weex-compiler ", + "dev:weex:factory": "rollup -w -c scripts/config.js --environment TARGET:weex-factory", + "flow": "flow check", + "lint": "eslint --fix src scripts test", + "release": "bash scripts/release.sh", + "release:note": "node scripts/gen-release-note.js", + "release:weex": "bash scripts/release-weex.sh", + "sauce": "karma start test/unit/karma.sauce.config.js", + "test": "npm run lint && flow check && npm run test:types && npm run test:cover && npm run test:e2e -- --env phantomjs && npm run test:ssr && npm run test:weex", + "test:cover": "karma start test/unit/karma.cover.config.js", + "test:e2e": "npm run build -- web-full-prod,web-server-basic-renderer && node test/e2e/runner.js", + "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2", + "test:ssr": "npm run build:ssr && jasmine JASMINE_CONFIG_PATH=test/ssr/jasmine.json", + "test:types": "tsc -p ./types/test/tsconfig.json", + "test:unit": "karma start test/unit/karma.unit.config.js", + "test:weex": "npm run build:weex && jasmine JASMINE_CONFIG_PATH=test/weex/jasmine.json" + }, + "typings": "types/index.d.ts", + "unpkg": "dist/vue.js", + "version": "2.5.17" } diff --git a/admin/vue2/element-admin-v3/node_modules/vue2-verify/package.json b/admin/vue2/element-admin-v3/node_modules/vue2-verify/package.json index aa38f9f7a..f6d6438ee 100644 --- a/admin/vue2/element-admin-v3/node_modules/vue2-verify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vue2-verify/package.json @@ -1,26 +1,48 @@ { - "name": "vue2-verify", - "version": "1.1.5", - "keywords": ["vue", "verify", "verify code"], - "repository": { - "type": "git", - "url": "https://github.com/trionfo1993/vue2-verify.git" + "_args": [ + [ + "vue2-verify@1.1.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vue2-verify@1.1.5", + "_id": "vue2-verify@1.1.5", + "_inBundle": false, + "_integrity": "sha1-0m4BwmawnlXeeSdOlf9WiJIiC0w=", + "_location": "/vue2-verify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue2-verify@1.1.5", + "name": "vue2-verify", + "escapedName": "vue2-verify", + "rawSpec": "1.1.5", + "saveSpec": null, + "fetchSpec": "1.1.5" }, - "description": "Vue Verification code Project", - "author": "mizuka ", - "license": "MIT", - "bugs": { + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/vue2-verify/download/vue2-verify-1.1.5.tgz", + "_spec": "1.1.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "mizuka", "email": "trionfo1993@hotmail.com" }, - "main": "src/components/Verify.vue", - "scripts": { - "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", - "start": "npm run dev", - "build": "node build/build.js" + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ], + "bugs": { + "email": "trionfo1993@hotmail.com" }, "dependencies": { "vue": "^2.5.2" }, + "description": "Vue Verification code Project", "devDependencies": { "autoprefixer": "^7.1.2", "babel-core": "^6.22.1", @@ -62,9 +84,23 @@ "node": ">= 4.0.0", "npm": ">= 3.0.0" }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] + "homepage": "https://github.com/trionfo1993/vue2-verify#readme", + "keywords": [ + "vue", + "verify", + "verify code" + ], + "license": "MIT", + "main": "src/components/Verify.vue", + "name": "vue2-verify", + "repository": { + "type": "git", + "url": "git+https://github.com/trionfo1993/vue2-verify.git" + }, + "scripts": { + "build": "node build/build.js", + "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", + "start": "npm run dev" + }, + "version": "1.1.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/vuedraggable/node_modules/sortablejs/package.json b/admin/vue2/element-admin-v3/node_modules/vuedraggable/node_modules/sortablejs/package.json index 434473690..7b1428b4b 100644 --- a/admin/vue2/element-admin-v3/node_modules/vuedraggable/node_modules/sortablejs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vuedraggable/node_modules/sortablejs/package.json @@ -1,56 +1,94 @@ { - "name": "sortablejs", - "exportName": "Sortable", - "version": "1.10.2", - "devDependencies": { - "@babel/core": "^7.4.4", - "@babel/plugin-transform-object-assign": "^7.2.0", - "@babel/preset-env": "^7.4.4", - "rollup": "^1.11.3", - "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-node-resolve": "^5.0.0", - "testcafe": "^1.3.1", - "testcafe-browser-provider-saucelabs": "^1.7.0", - "testcafe-reporter-xunit": "^2.1.0", - "uglify-js": "^3.5.12" - }, - "description": "JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.", - "main": "./Sortable.js", - "module": "modular/sortable.esm.js", - "scripts": { - "build:umd": "NODE_ENV=umd rollup -c ./scripts/umd-build.js", - "build:umd:watch": "set NODE_ENV=umd&& rollup -w -c ./scripts/umd-build.js", - "build:es": "set NODE_ENV=es&& rollup -c ./scripts/esm-build.js", - "build:es:watch": "set NODE_ENV=es&& rollup -w -c ./scripts/esm-build.js", - "minify": "node ./scripts/minify.js", - "build": "npm run build:es && npm run build:umd && npm run minify", - "test:compat": "node ./scripts/test-compat.js", - "test": "node ./scripts/test.js" - }, - "maintainers": [ - "Konstantin Lebedev ", - "Owen Mills " - ], - "repository": { - "type": "git", - "url": "git://github.com/SortableJS/Sortable.git" - }, - "files": [ - "Sortable.js", - "Sortable.min.js", - "modular/" - ], - "keywords": [ - "sortable", - "reorder", - "drag", - "meteor", - "angular", - "ng-sortable", - "react", - "vue", - "mixin" - ], - "license": "MIT" + "_args": [ + [ + "sortablejs@1.10.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "sortablejs@1.10.2", + "_id": "sortablejs@1.10.2", + "_inBundle": false, + "_integrity": "sha1-bkA2TZE/mLhaFPZnj5K1wSIfUpA=", + "_location": "/vuedraggable/sortablejs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sortablejs@1.10.2", + "name": "sortablejs", + "escapedName": "sortablejs", + "rawSpec": "1.10.2", + "saveSpec": null, + "fetchSpec": "1.10.2" + }, + "_requiredBy": [ + "/vuedraggable" + ], + "_resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.10.2.tgz?cache=0&sync_timestamp=1610070445944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsortablejs%2Fdownload%2Fsortablejs-1.10.2.tgz", + "_spec": "1.10.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/SortableJS/Sortable/issues" + }, + "description": "JavaScript library for reorderable drag-and-drop lists on modern browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.", + "devDependencies": { + "@babel/core": "^7.4.4", + "@babel/plugin-transform-object-assign": "^7.2.0", + "@babel/preset-env": "^7.4.4", + "rollup": "^1.11.3", + "rollup-plugin-babel": "^4.3.2", + "rollup-plugin-json": "^4.0.0", + "rollup-plugin-node-resolve": "^5.0.0", + "testcafe": "^1.3.1", + "testcafe-browser-provider-saucelabs": "^1.7.0", + "testcafe-reporter-xunit": "^2.1.0", + "uglify-js": "^3.5.12" + }, + "exportName": "Sortable", + "files": [ + "Sortable.js", + "Sortable.min.js", + "modular/" + ], + "homepage": "https://github.com/SortableJS/Sortable#readme", + "keywords": [ + "sortable", + "reorder", + "drag", + "meteor", + "angular", + "ng-sortable", + "react", + "vue", + "mixin" + ], + "license": "MIT", + "main": "./Sortable.js", + "maintainers": [ + { + "name": "Konstantin Lebedev", + "email": "ibnRubaXa@gmail.com" + }, + { + "name": "Owen Mills", + "email": "owen23355@gmail.com" + } + ], + "module": "modular/sortable.esm.js", + "name": "sortablejs", + "repository": { + "type": "git", + "url": "git://github.com/SortableJS/Sortable.git" + }, + "scripts": { + "build": "npm run build:es && npm run build:umd && npm run minify", + "build:es": "set NODE_ENV=es&& rollup -c ./scripts/esm-build.js", + "build:es:watch": "set NODE_ENV=es&& rollup -w -c ./scripts/esm-build.js", + "build:umd": "NODE_ENV=umd rollup -c ./scripts/umd-build.js", + "build:umd:watch": "set NODE_ENV=umd&& rollup -w -c ./scripts/umd-build.js", + "minify": "node ./scripts/minify.js", + "test": "node ./scripts/test.js", + "test:compat": "node ./scripts/test-compat.js" + }, + "version": "1.10.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/vuedraggable/package.json b/admin/vue2/element-admin-v3/node_modules/vuedraggable/package.json index 3588e30e8..98890a4a3 100644 --- a/admin/vue2/element-admin-v3/node_modules/vuedraggable/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vuedraggable/package.json @@ -1,93 +1,125 @@ -{ - "name": "vuedraggable", - "version": "2.24.3", - "description": "draggable component for vue", - "license": "MIT", - "main": "dist/vuedraggable.umd.min.js", - "types": "src/vuedraggable.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/SortableJS/Vue.Draggable.git" - }, - "private": false, - "scripts": { - "serve": "vue-cli-service serve ./example/main.js --open --mode local", - "build:doc": "vue-cli-service build ./example/main.js --dest docs --mode development", - "build": "vue-cli-service build --name vuedraggable --entry ./src/vuedraggable.js --target lib", - "lint": "vue-cli-service lint src example", - "prepublishOnly": "npm run lint && npm run test:unit && npm run build:doc && npm run build", - "test:unit": "vue-cli-service test:unit --coverage", - "test:coverage": "vue-cli-service test:unit --coverage --verbose && codecov" - }, - "keywords": [ - "vue", - "vuejs", - "drag", - "and", - "drop", - "list", - "Sortable.js", - "component", - "nested" - ], - "dependencies": { - "sortablejs": "1.10.2" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "^3.11.0", - "@vue/cli-plugin-eslint": "^3.11.0", - "@vue/cli-plugin-unit-jest": "^3.11.0", - "@vue/cli-service": "^3.11.0", - "@vue/eslint-config-prettier": "^4.0.1", - "@vue/test-utils": "^1.1.0", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "^10.0.1", - "babel-jest": "^23.6.0", - "bootstrap": "^4.3.1", - "codecov": "^3.2.0", - "component-fixture": "^0.4.1", - "element-ui": "^2.5.4", - "eslint": "^5.8.0", - "eslint-plugin-vue": "^5.0.0", - "font-awesome": "^4.7.0", - "jquery": "^3.5.1", - "vue": "^2.6.12", - "vue-cli-plugin-component": "^1.10.5", - "vue-router": "^3.0.2", - "vue-server-renderer": "^2.6.12", - "vue-template-compiler": "^2.6.12", - "vuetify": "^1.5.16", - "vuex": "^3.1.1" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true - }, - "extends": [ - "plugin:vue/essential", - "@vue/prettier" - ], - "rules": {}, - "parserOptions": { - "parser": "babel-eslint" - } - }, - "postcss": { - "plugins": { - "autoprefixer": {} - } - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "files": [ - "dist/*.css", - "dist/*.map", - "dist/*.js", - "src/*" - ], - "module": "dist/vuedraggable.umd.js" -} +{ + "_args": [ + [ + "vuedraggable@2.24.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "vuedraggable@2.24.3", + "_id": "vuedraggable@2.24.3", + "_inBundle": false, + "_integrity": "sha1-Q8k4SbdGokzlA+Ej1bJZxwG6DRk=", + "_location": "/vuedraggable", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vuedraggable@2.24.3", + "name": "vuedraggable", + "escapedName": "vuedraggable", + "rawSpec": "2.24.3", + "saveSpec": null, + "fetchSpec": "2.24.3" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.24.3.tgz", + "_spec": "2.24.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ], + "bugs": { + "url": "https://github.com/SortableJS/Vue.Draggable/issues" + }, + "dependencies": { + "sortablejs": "1.10.2" + }, + "description": "draggable component for vue", + "devDependencies": { + "@vue/cli-plugin-babel": "^3.11.0", + "@vue/cli-plugin-eslint": "^3.11.0", + "@vue/cli-plugin-unit-jest": "^3.11.0", + "@vue/cli-service": "^3.11.0", + "@vue/eslint-config-prettier": "^4.0.1", + "@vue/test-utils": "^1.1.0", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.6.0", + "bootstrap": "^4.3.1", + "codecov": "^3.2.0", + "component-fixture": "^0.4.1", + "element-ui": "^2.5.4", + "eslint": "^5.8.0", + "eslint-plugin-vue": "^5.0.0", + "font-awesome": "^4.7.0", + "jquery": "^3.5.1", + "vue": "^2.6.12", + "vue-cli-plugin-component": "^1.10.5", + "vue-router": "^3.0.2", + "vue-server-renderer": "^2.6.12", + "vue-template-compiler": "^2.6.12", + "vuetify": "^1.5.16", + "vuex": "^3.1.1" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "@vue/prettier" + ], + "rules": {}, + "parserOptions": { + "parser": "babel-eslint" + } + }, + "files": [ + "dist/*.css", + "dist/*.map", + "dist/*.js", + "src/*" + ], + "homepage": "https://github.com/SortableJS/Vue.Draggable#readme", + "keywords": [ + "vue", + "vuejs", + "drag", + "and", + "drop", + "list", + "Sortable.js", + "component", + "nested" + ], + "license": "MIT", + "main": "dist/vuedraggable.umd.min.js", + "module": "dist/vuedraggable.umd.js", + "name": "vuedraggable", + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "private": false, + "repository": { + "type": "git", + "url": "git+https://github.com/SortableJS/Vue.Draggable.git" + }, + "scripts": { + "build": "vue-cli-service build --name vuedraggable --entry ./src/vuedraggable.js --target lib", + "build:doc": "vue-cli-service build ./example/main.js --dest docs --mode development", + "lint": "vue-cli-service lint src example", + "prepublishOnly": "npm run lint && npm run test:unit && npm run build:doc && npm run build", + "serve": "vue-cli-service serve ./example/main.js --open --mode local", + "test:coverage": "vue-cli-service test:unit --coverage --verbose && codecov", + "test:unit": "vue-cli-service test:unit --coverage" + }, + "types": "src/vuedraggable.d.ts", + "version": "2.24.3" +} diff --git a/admin/vue2/element-admin-v3/node_modules/vuex/package.json b/admin/vue2/element-admin-v3/node_modules/vuex/package.json index 700927af3..35a511754 100644 --- a/admin/vue2/element-admin-v3/node_modules/vuex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/vuex/package.json @@ -1,43 +1,39 @@ { - "name": "vuex", - "version": "3.0.1", - "description": "state management for Vue.js", - "main": "dist/vuex.common.js", - "module": "dist/vuex.esm.js", - "unpkg": "dist/vuex.js", - "typings": "types/index.d.ts", - "files": [ - "dist", - "types/index.d.ts", - "types/helpers.d.ts", - "types/vue.d.ts" + "_args": [ + [ + "vuex@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "dev": "node examples/server.js", - "dev:dist": "rollup -wm -c build/rollup.dev.config.js", - "build": "npm run build:main && npm run build:logger", - "build:main": "node build/build.main.js", - "build:logger": "rollup -c build/rollup.logger.config.js", - "lint": "eslint src test", - "test": "npm run lint && npm run test:types && npm run test:unit && npm run test:ssr && npm run test:e2e", - "test:unit": "rollup -c build/rollup.dev.config.js && jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", - "test:e2e": "node test/e2e/runner.js", - "test:ssr": "rollup -c build/rollup.dev.config.js && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", - "test:types": "tsc -p types/test", - "release": "bash build/release.sh", - "docs": "cd docs && gitbook install && gitbook serve", - "docs:deploy": "cd docs && ./deploy.sh" + "_from": "vuex@3.0.1", + "_id": "vuex@3.0.1", + "_inBundle": false, + "_integrity": "sha1-52E1Lr4K9TfUu3Vam53Evj3379I=", + "_location": "/vuex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vuex@3.0.1", + "name": "vuex", + "escapedName": "vuex", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vuex.git" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/vuex/download/vuex-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Evan You" }, - "author": "Evan You", - "license": "MIT", "bugs": { "url": "https://github.com/vuejs/vuex/issues" }, - "homepage": "https://github.com/vuejs/vuex#readme", + "description": "state management for Vue.js", "devDependencies": { "babel-core": "^6.22.1", "babel-loader": "^7.1.2", @@ -73,5 +69,39 @@ "webpack": "^3.7.1", "webpack-dev-middleware": "^1.10.0", "webpack-hot-middleware": "^2.19.1" - } + }, + "files": [ + "dist", + "types/index.d.ts", + "types/helpers.d.ts", + "types/vue.d.ts" + ], + "homepage": "https://github.com/vuejs/vuex#readme", + "license": "MIT", + "main": "dist/vuex.common.js", + "module": "dist/vuex.esm.js", + "name": "vuex", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vuex.git" + }, + "scripts": { + "build": "npm run build:main && npm run build:logger", + "build:logger": "rollup -c build/rollup.logger.config.js", + "build:main": "node build/build.main.js", + "dev": "node examples/server.js", + "dev:dist": "rollup -wm -c build/rollup.dev.config.js", + "docs": "cd docs && gitbook install && gitbook serve", + "docs:deploy": "cd docs && ./deploy.sh", + "lint": "eslint src test", + "release": "bash build/release.sh", + "test": "npm run lint && npm run test:types && npm run test:unit && npm run test:ssr && npm run test:e2e", + "test:e2e": "node test/e2e/runner.js", + "test:ssr": "rollup -c build/rollup.dev.config.js && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", + "test:types": "tsc -p types/test", + "test:unit": "rollup -c build/rollup.dev.config.js && jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json" + }, + "typings": "types/index.d.ts", + "unpkg": "dist/vuex.js", + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/warning/package.json b/admin/vue2/element-admin-v3/node_modules/warning/package.json index af03cc50c..874bdfcc6 100644 --- a/admin/vue2/element-admin-v3/node_modules/warning/package.json +++ b/admin/vue2/element-admin-v3/node_modules/warning/package.json @@ -1,18 +1,54 @@ { - "name": "warning", - "version": "4.0.3", - "description": "A mirror of Facebook's Warning", - "main": "warning.js", - "scripts": { - "test": "npm run test:dev && npm run test:prod", - "test:dev": "NODE_ENV=development jest", - "test:prod": "NODE_ENV=production jest", - "commit": "git cz", - "commitmsg": "commitlint -e $GIT_PARAMS" + "_args": [ + [ + "warning@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "warning@4.0.3", + "_id": "warning@4.0.3", + "_inBundle": false, + "_integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "_location": "/warning", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "warning@4.0.3", + "name": "warning", + "escapedName": "warning", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" + }, + "_requiredBy": [ + "/@antv/g2plot" + ], + "_resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Berkeley Martinez", + "email": "berkeley@berkeleytrue.com", + "url": "http://www.berkeleytrue.com" + }, + "browserify": { + "transform": [ + "loose-envify" + ] + }, + "bugs": { + "url": "https://github.com/BerkeleyTrue/warning/issues" + }, + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } }, "dependencies": { "loose-envify": "^1.0.0" }, + "description": "A mirror of Facebook's Warning", "devDependencies": { "@commitlint/cli": "^6.2.0", "@commitlint/config-conventional": "^6.1.3", @@ -23,33 +59,29 @@ "jest": "^23.1.0", "uglify-js": "^3.3.25" }, - "repository": { - "type": "git", - "url": "https://github.com/BerkeleyTrue/warning.git" - }, - "config": { - "commitizen": { - "path": "cz-conventional-changelog" - } - }, - "browserify": { - "transform": [ - "loose-envify" - ] - }, "files": [ "warning.js" ], + "homepage": "https://github.com/BerkeleyTrue/warning", "keywords": [ "warning", "facebook", "react", "invariant" ], - "author": "Berkeley Martinez (http://www.berkeleytrue.com)", "license": "MIT", - "bugs": { - "url": "https://github.com/BerkeleyTrue/warning/issues" + "main": "warning.js", + "name": "warning", + "repository": { + "type": "git", + "url": "git+https://github.com/BerkeleyTrue/warning.git" + }, + "scripts": { + "commit": "git cz", + "commitmsg": "commitlint -e $GIT_PARAMS", + "test": "npm run test:dev && npm run test:prod", + "test:dev": "NODE_ENV=development jest", + "test:prod": "NODE_ENV=production jest" }, - "homepage": "https://github.com/BerkeleyTrue/warning" + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack-chokidar2/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack-chokidar2/package.json index af2fd3470..35264d434 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack-chokidar2/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack-chokidar2/package.json @@ -1,17 +1,48 @@ { - "name": "watchpack-chokidar2", - "version": "2.0.1", - "repository": { - "type": "git", - "url": "https://github.com/webpack/watchpack.git" + "_args": [ + [ + "watchpack-chokidar2@2.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "watchpack-chokidar2@2.0.1", + "_id": "watchpack-chokidar2@2.0.1", + "_inBundle": false, + "_integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", + "_location": "/watchpack-chokidar2", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "watchpack-chokidar2@2.0.1", + "name": "watchpack-chokidar2", + "escapedName": "watchpack-chokidar2", + "rawSpec": "2.0.1", + "saveSpec": null, + "fetchSpec": "2.0.1" + }, + "_requiredBy": [ + "/watchpack" + ], + "_resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz", + "_spec": "2.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" }, - "author": "Tobias Koppers @sokra", - "license": "MIT", "bugs": { "url": "https://github.com/webpack/watchpack/issues" }, - "homepage": "https://github.com/webpack/watchpack", "dependencies": { "chokidar": "^2.1.8" - } + }, + "homepage": "https://github.com/webpack/watchpack", + "license": "MIT", + "name": "watchpack-chokidar2", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/watchpack.git" + }, + "version": "2.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/anymatch/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/anymatch/package.json index f9b528479..775533385 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/anymatch/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/anymatch/package.json @@ -1,25 +1,57 @@ { - "name": "anymatch", - "version": "3.1.2", - "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", - "files": [ - "index.js", - "index.d.ts" + "_args": [ + [ + "anymatch@3.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "_from": "anymatch@3.1.2", + "_id": "anymatch@3.1.2", + "_inBundle": false, + "_integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", + "_location": "/watchpack/anymatch", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "anymatch@3.1.2", + "name": "anymatch", + "escapedName": "anymatch", + "rawSpec": "3.1.2", + "saveSpec": null, + "fetchSpec": "3.1.2" }, + "_requiredBy": [ + "/watchpack/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747494189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz", + "_spec": "3.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Elan Shanker", "url": "https://github.com/es128" }, - "license": "ISC", - "homepage": "https://github.com/micromatch/anymatch", - "repository": { - "type": "git", - "url": "https://github.com/micromatch/anymatch" + "bugs": { + "url": "https://github.com/micromatch/anymatch/issues" + }, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, + "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", + "devDependencies": { + "mocha": "^6.1.3", + "nyc": "^14.0.0" + }, + "engines": { + "node": ">= 8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/micromatch/anymatch", "keywords": [ "match", "any", @@ -34,15 +66,15 @@ "expression", "function" ], - "scripts": { - "test": "nyc mocha", - "mocha": "mocha" + "license": "ISC", + "name": "anymatch", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/anymatch.git" }, - "devDependencies": { - "mocha": "^6.1.3", - "nyc": "^14.0.0" + "scripts": { + "mocha": "mocha", + "test": "nyc mocha" }, - "engines": { - "node": ">= 8" - } + "version": "3.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/binary-extensions/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/binary-extensions/package.json index c4d364173..1eb137baa 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/binary-extensions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/binary-extensions/package.json @@ -1,38 +1,74 @@ { - "name": "binary-extensions", - "version": "2.2.0", - "description": "List of binary file extensions", - "license": "MIT", - "repository": "sindresorhus/binary-extensions", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "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" - } + "_args": [ + [ + "binary-extensions@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "binary-extensions@2.2.0", + "_id": "binary-extensions@2.2.0", + "_inBundle": false, + "_integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "_location": "/watchpack/binary-extensions", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "binary-extensions@2.2.0", + "name": "binary-extensions", + "escapedName": "binary-extensions", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/watchpack/is-binary-path" + ], + "_resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/binary-extensions/issues" + }, + "description": "List of binary file extensions", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts", + "binary-extensions.json", + "binary-extensions.json.d.ts" + ], + "homepage": "https://github.com/sindresorhus/binary-extensions#readme", + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "json", + "list", + "array" + ], + "license": "MIT", + "name": "binary-extensions", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/binary-extensions.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/braces/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/braces/package.json index 3f52e346f..c23aff820 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/braces/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/braces/package.json @@ -1,42 +1,80 @@ { - "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.2", - "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)" + "_args": [ + [ + "braces@3.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/braces", - "bugs": { - "url": "https://github.com/micromatch/braces/issues" + "_from": "braces@3.0.2", + "_id": "braces@3.0.2", + "_inBundle": false, + "_integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "_location": "/watchpack/braces", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "braces@3.0.2", + "name": "braces", + "escapedName": "braces", + "rawSpec": "3.0.2", + "saveSpec": null, + "fetchSpec": "3.0.2" }, - "license": "MIT", - "files": [ - "index.js", - "lib" + "_requiredBy": [ + "/watchpack/chokidar" ], - "main": "index.js", - "engines": { - "node": ">=8" + "_resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "_spec": "3.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha", - "benchmark": "node benchmark" + "bugs": { + "url": "https://github.com/micromatch/braces/issues" }, + "contributors": [ + { + "name": "Brian Woodward", + "url": "https://twitter.com/doowb" + }, + { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + { + "name": "Eugene Sharygin", + "url": "https://github.com/eush77" + }, + { + "name": "hemanth.hm", + "url": "http://h3manth.com" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + } + ], "dependencies": { "fill-range": "^7.0.1" }, + "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.", "devDependencies": { "ansi-colors": "^3.2.4", "bash-path": "^2.0.1", "gulp-format-md": "^2.0.0", "mocha": "^6.1.1" }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "lib" + ], + "homepage": "https://github.com/micromatch/braces", "keywords": [ "alpha", "alphabetical", @@ -61,6 +99,17 @@ "ranges", "sh" ], + "license": "MIT", + "main": "index.js", + "name": "braces", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/braces.git" + }, + "scripts": { + "benchmark": "node benchmark", + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -73,5 +122,6 @@ "plugins": [ "gulp-format-md" ] - } + }, + "version": "3.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/chokidar/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/chokidar/package.json index 9ebbb403f..5b7e3ffd0 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/chokidar/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/chokidar/package.json @@ -1,29 +1,60 @@ { - "name": "chokidar", - "description": "Minimal and efficient cross-platform file watching library", - "version": "3.5.1", - "homepage": "https://github.com/paulmillr/chokidar", - "author": "Paul Miller (https://paulmillr.com)", - "contributors": [ - "Paul Miller (https://paulmillr.com)", - "Elan Shanker" + "_args": [ + [ + "chokidar@3.5.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 8.10.0" + "_from": "chokidar@3.5.1", + "_id": "chokidar@3.5.1", + "_inBundle": false, + "_integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", + "_location": "/watchpack/chokidar", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chokidar@3.5.1", + "name": "chokidar", + "escapedName": "chokidar", + "rawSpec": "3.5.1", + "saveSpec": null, + "fetchSpec": "3.5.1" }, - "main": "index.js", + "_requiredBy": [ + "/watchpack" + ], + "_resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", + "_spec": "3.5.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Paul Miller", + "url": "https://paulmillr.com" + }, + "bugs": { + "url": "https://github.com/paulmillr/chokidar/issues" + }, + "contributors": [ + { + "name": "Paul Miller", + "url": "https://paulmillr.com" + }, + { + "name": "Elan Shanker" + } + ], "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", + "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" }, - "optionalDependencies": { - "fsevents": "~2.3.1" - }, + "description": "Minimal and efficient cross-platform file watching library", "devDependencies": { "@types/node": "^14", "chai": "^4.2", @@ -36,25 +67,15 @@ "sinon-chai": "^3.3.0", "upath": "^1.2.0" }, + "engines": { + "node": ">= 8.10.0" + }, "files": [ "index.js", "lib/*.js", "types/index.d.ts" ], - "repository": { - "type": "git", - "url": "git+https://github.com/paulmillr/chokidar.git" - }, - "bugs": { - "url": "https://github.com/paulmillr/chokidar/issues" - }, - "license": "MIT", - "scripts": { - "dtslint": "dtslint types", - "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", - "mocha": "mocha --exit --timeout 60000", - "test": "npm run lint && npm run mocha" - }, + "homepage": "https://github.com/paulmillr/chokidar", "keywords": [ "fs", "watch", @@ -64,7 +85,9 @@ "file", "fsevents" ], - "types": "./types/index.d.ts", + "license": "MIT", + "main": "index.js", + "name": "chokidar", "nyc": { "include": [ "index.js", @@ -74,5 +97,20 @@ "html", "text" ] - } + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/paulmillr/chokidar.git" + }, + "scripts": { + "dtslint": "dtslint types", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --exit --timeout 60000", + "test": "npm run lint && npm run mocha" + }, + "types": "./types/index.d.ts", + "version": "3.5.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/fill-range/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/fill-range/package.json index 07d30767f..c6bfc2975 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/fill-range/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/fill-range/package.json @@ -1,38 +1,76 @@ { - "name": "fill-range", - "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", - "version": "7.0.1", - "homepage": "https://github.com/jonschlinkert/fill-range", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Edo Rivai (edo.rivai.nl)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Miller (paulmillr.com)", - "Rouven Weßling (www.rouvenwessling.de)", - "(https://github.com/wtgtybhertgeghgtwtg)" + "_args": [ + [ + "fill-range@7.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/fill-range", - "bugs": { - "url": "https://github.com/jonschlinkert/fill-range/issues" + "_from": "fill-range@7.0.1", + "_id": "fill-range@7.0.1", + "_inBundle": false, + "_integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "_location": "/watchpack/fill-range", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "fill-range@7.0.1", + "name": "fill-range", + "escapedName": "fill-range", + "rawSpec": "7.0.1", + "saveSpec": null, + "fetchSpec": "7.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/watchpack/braces" ], - "main": "index.js", - "engines": { - "node": ">=8" + "_resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "_spec": "7.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/fill-range/issues" }, + "contributors": [ + { + "name": "Edo Rivai", + "url": "edo.rivai.nl" + }, + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Paul Miller", + "url": "paulmillr.com" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + } + ], "dependencies": { "to-regex-range": "^5.0.1" }, + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", "devDependencies": { "gulp-format-md": "^2.0.0", "mocha": "^6.1.1" }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/fill-range", "keywords": [ "alpha", "alphabetical", @@ -53,6 +91,16 @@ "regex", "sh" ], + "license": "MIT", + "main": "index.js", + "name": "fill-range", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/fill-range.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -65,5 +113,6 @@ "lint": { "reflinks": true } - } + }, + "version": "7.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/glob-parent/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/glob-parent/package.json index 125c971c2..55303288e 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/glob-parent/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/glob-parent/package.json @@ -1,32 +1,55 @@ { - "name": "glob-parent", - "version": "5.1.2", - "description": "Extract the non-magic parent path from a glob string.", - "author": "Gulp Team (https://gulpjs.com/)", - "contributors": [ - "Elan Shanker (https://github.com/es128)", - "Blaine Bublitz " + "_args": [ + [ + "glob-parent@5.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "gulpjs/glob-parent", - "license": "ISC", - "engines": { - "node": ">= 6" + "_from": "glob-parent@5.1.2", + "_id": "glob-parent@5.1.2", + "_inBundle": false, + "_integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "_location": "/watchpack/glob-parent", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "glob-parent@5.1.2", + "name": "glob-parent", + "escapedName": "glob-parent", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" }, - "main": "index.js", - "files": [ - "LICENSE", - "index.js" + "_requiredBy": [ + "/watchpack/chokidar" ], - "scripts": { - "lint": "eslint .", - "pretest": "npm run lint", - "test": "nyc mocha --async-only", - "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", - "coveralls": "nyc report --reporter=text-lcov | coveralls" + "_resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz", + "_spec": "5.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Gulp Team", + "email": "team@gulpjs.com", + "url": "https://gulpjs.com/" }, + "bugs": { + "url": "https://github.com/gulpjs/glob-parent/issues" + }, + "contributors": [ + { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + { + "name": "Blaine Bublitz", + "email": "blaine.bublitz@gmail.com" + } + ], "dependencies": { "is-glob": "^4.0.1" }, + "description": "Extract the non-magic parent path from a glob string.", "devDependencies": { "coveralls": "^3.0.11", "eslint": "^2.13.1", @@ -35,6 +58,14 @@ "mocha": "^6.0.2", "nyc": "^13.3.0" }, + "engines": { + "node": ">= 6" + }, + "files": [ + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/gulpjs/glob-parent#readme", "keywords": [ "glob", "parent", @@ -44,5 +75,20 @@ "directory", "base", "wildcard" - ] + ], + "license": "ISC", + "main": "index.js", + "name": "glob-parent", + "repository": { + "type": "git", + "url": "git+https://github.com/gulpjs/glob-parent.git" + }, + "scripts": { + "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "lint": "eslint .", + "pretest": "npm run lint", + "test": "nyc mocha --async-only" + }, + "version": "5.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-binary-path/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-binary-path/package.json index a8d005aed..9a08f8ed1 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-binary-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-binary-path/package.json @@ -1,40 +1,76 @@ { - "name": "is-binary-path", - "version": "2.1.0", - "description": "Check if a file path is a binary file", - "license": "MIT", - "repository": "sindresorhus/is-binary-path", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "binary", - "extensions", - "extension", - "file", - "path", - "check", - "detect", - "is" - ], - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } + "_args": [ + [ + "is-binary-path@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "is-binary-path@2.1.0", + "_id": "is-binary-path@2.1.0", + "_inBundle": false, + "_integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "_location": "/watchpack/is-binary-path", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-binary-path@2.1.0", + "name": "is-binary-path", + "escapedName": "is-binary-path", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/watchpack/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-binary-path/issues" + }, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "description": "Check if a file path is a binary file", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/is-binary-path#readme", + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "path", + "check", + "detect", + "is" + ], + "license": "MIT", + "name": "is-binary-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-binary-path.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-number/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-number/package.json index 371507260..0e6fc6027 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-number/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/is-number/package.json @@ -1,35 +1,68 @@ { - "name": "is-number", - "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", - "version": "7.0.0", - "homepage": "https://github.com/jonschlinkert/is-number", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Olsten Larck (https://i.am.charlike.online)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "is-number@7.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/is-number", - "bugs": { - "url": "https://github.com/jonschlinkert/is-number/issues" + "_from": "is-number@7.0.0", + "_id": "is-number@7.0.0", + "_inBundle": false, + "_integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "_location": "/watchpack/is-number", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-number@7.0.0", + "name": "is-number", + "escapedName": "is-number", + "rawSpec": "7.0.0", + "saveSpec": null, + "fetchSpec": "7.0.0" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/watchpack/to-regex-range" ], - "main": "index.js", - "engines": { - "node": ">=0.12.0" + "_resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "_spec": "7.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Olsten Larck", + "url": "https://i.am.charlike.online" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", "devDependencies": { "ansi": "^0.3.1", "benchmark": "^2.1.4", "gulp-format-md": "^1.0.0", "mocha": "^3.5.3" }, + "engines": { + "node": ">=0.12.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/is-number", "keywords": [ "cast", "check", @@ -58,6 +91,16 @@ "typeof", "value" ], + "license": "MIT", + "main": "index.js", + "name": "is-number", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-number.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "toc": false, "layout": "default", @@ -78,5 +121,6 @@ "lint": { "reflinks": true } - } + }, + "version": "7.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/readdirp/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/readdirp/package.json index 5a3547558..bdb372b64 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/readdirp/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/readdirp/package.json @@ -1,49 +1,56 @@ { - "name": "readdirp", - "description": "Recursive version of fs.readdir with streaming API.", - "version": "3.5.0", - "homepage": "https://github.com/paulmillr/readdirp", - "repository": { - "type": "git", - "url": "git://github.com/paulmillr/readdirp.git" + "_args": [ + [ + "readdirp@3.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "readdirp@3.5.0", + "_id": "readdirp@3.5.0", + "_inBundle": false, + "_integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", + "_location": "/watchpack/readdirp", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "readdirp@3.5.0", + "name": "readdirp", + "escapedName": "readdirp", + "rawSpec": "3.5.0", + "saveSpec": null, + "fetchSpec": "3.5.0" + }, + "_requiredBy": [ + "/watchpack/chokidar" + ], + "_resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz", + "_spec": "3.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "thlorenz.com" }, - "license": "MIT", "bugs": { "url": "https://github.com/paulmillr/readdirp/issues" }, - "author": "Thorsten Lorenz (thlorenz.com)", "contributors": [ - "Thorsten Lorenz (thlorenz.com)", - "Paul Miller (https://paulmillr.com)" - ], - "main": "index.js", - "engines": { - "node": ">=8.10.0" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "recursive", - "fs", - "stream", - "streams", - "readdir", - "filesystem", - "find", - "filter" + { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "thlorenz.com" + }, + { + "name": "Paul Miller", + "url": "https://paulmillr.com" + } ], - "scripts": { - "dtslint": "dtslint", - "nyc": "nyc", - "mocha": "mocha --exit", - "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", - "test": "npm run lint && nyc npm run mocha" - }, "dependencies": { "picomatch": "^2.2.1" }, + "description": "Recursive version of fs.readdir with streaming API.", "devDependencies": { "@types/node": "^14", "chai": "^4.2", @@ -55,11 +62,8 @@ "rimraf": "^3.0.0", "typescript": "^4.0.3" }, - "nyc": { - "reporter": [ - "html", - "text" - ] + "engines": { + "node": ">=8.10.0" }, "eslintConfig": { "root": true, @@ -118,5 +122,41 @@ "single" ] } - } + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/paulmillr/readdirp", + "keywords": [ + "recursive", + "fs", + "stream", + "streams", + "readdir", + "filesystem", + "find", + "filter" + ], + "license": "MIT", + "main": "index.js", + "name": "readdirp", + "nyc": { + "reporter": [ + "html", + "text" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/readdirp.git" + }, + "scripts": { + "dtslint": "dtslint", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --exit", + "nyc": "nyc", + "test": "npm run lint && nyc npm run mocha" + }, + "version": "3.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/to-regex-range/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/to-regex-range/package.json index 4ef194f35..4bb586366 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/to-regex-range/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/node_modules/to-regex-range/package.json @@ -1,31 +1,54 @@ { - "name": "to-regex-range", - "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", - "version": "5.0.1", - "homepage": "https://github.com/micromatch/to-regex-range", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" + "_args": [ + [ + "to-regex-range@5.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "micromatch/to-regex-range", - "bugs": { - "url": "https://github.com/micromatch/to-regex-range/issues" + "_from": "to-regex-range@5.0.1", + "_id": "to-regex-range@5.0.1", + "_inBundle": false, + "_integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "_location": "/watchpack/to-regex-range", + "_optional": true, + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-regex-range@5.0.1", + "name": "to-regex-range", + "escapedName": "to-regex-range", + "rawSpec": "5.0.1", + "saveSpec": null, + "fetchSpec": "5.0.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/watchpack/fill-range" ], - "main": "index.js", - "engines": { - "node": ">=8.0" + "_resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "_spec": "5.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" }, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], "dependencies": { "is-number": "^7.0.0" }, + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", "devDependencies": { "fill-range": "^6.0.0", "gulp-format-md": "^2.0.0", @@ -33,6 +56,13 @@ "text-table": "^0.2.0", "time-diff": "^0.3.1" }, + "engines": { + "node": ">=8.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/micromatch/to-regex-range", "keywords": [ "bash", "date", @@ -58,6 +88,16 @@ "regular expression", "sequence" ], + "license": "MIT", + "main": "index.js", + "name": "to-regex-range", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/to-regex-range.git" + }, + "scripts": { + "test": "mocha" + }, "verb": { "layout": "default", "toc": false, @@ -84,5 +124,6 @@ "repeat-string" ] } - } + }, + "version": "5.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/watchpack/package.json b/admin/vue2/element-admin-v3/node_modules/watchpack/package.json index bd213bb52..1060475a0 100644 --- a/admin/vue2/element-admin-v3/node_modules/watchpack/package.json +++ b/admin/vue2/element-admin-v3/node_modules/watchpack/package.json @@ -1,32 +1,49 @@ { - "name": "watchpack", - "version": "1.7.5", - "description": "", - "main": "./lib/watchpack.js", - "directories": { - "test": "test" - }, - "files": [ - "lib/" + "_args": [ + [ + "watchpack@1.7.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "pretest": "npm run lint", - "test": "mocha", - "travis": "npm run cover -- --report lcovonly", - "lint": "eslint lib", - "precover": "npm run lint", - "cover": "istanbul cover node_modules/mocha/bin/_mocha" + "_from": "watchpack@1.7.5", + "_id": "watchpack@1.7.5", + "_inBundle": false, + "_integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", + "_location": "/watchpack", + "_phantomChildren": { + "is-glob": "4.0.1", + "normalize-path": "3.0.0", + "picomatch": "2.3.0" }, - "repository": { - "type": "git", - "url": "https://github.com/webpack/watchpack.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "watchpack@1.7.5", + "name": "watchpack", + "escapedName": "watchpack", + "rawSpec": "1.7.5", + "saveSpec": null, + "fetchSpec": "1.7.5" + }, + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz", + "_spec": "1.7.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" }, - "author": "Tobias Koppers @sokra", - "license": "MIT", "bugs": { "url": "https://github.com/webpack/watchpack/issues" }, - "homepage": "https://github.com/webpack/watchpack", + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "description": "Wrapper library for directory and file watching.", "devDependencies": { "codecov.io": "^0.1.6", "coveralls": "^3.0.0", @@ -36,14 +53,31 @@ "rimraf": "^2.6.2", "should": "^8.3.1" }, + "directories": { + "test": "test" + }, + "files": [ + "lib/" + ], + "homepage": "https://github.com/webpack/watchpack", + "license": "MIT", + "main": "./lib/watchpack.js", + "name": "watchpack", "optionalDependencies": { "chokidar": "^3.4.1", "watchpack-chokidar2": "^2.0.1" }, - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/watchpack.git" + }, + "scripts": { + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint lib", + "precover": "npm run lint", + "pretest": "npm run lint", + "test": "mocha", + "travis": "npm run cover -- --report lcovonly" + }, + "version": "1.7.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/wbuf/package.json b/admin/vue2/element-admin-v3/node_modules/wbuf/package.json index 1d45102a0..2b3eac089 100644 --- a/admin/vue2/element-admin-v3/node_modules/wbuf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wbuf/package.json @@ -1,29 +1,61 @@ { - "name": "wbuf", - "version": "1.7.3", - "description": "Write buffer", - "main": "index.js", - "scripts": { - "test": "mocha test/**/*-test.js" + "_args": [ + [ + "wbuf@1.7.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "wbuf@1.7.3", + "_id": "wbuf@1.7.3", + "_inBundle": false, + "_integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "_location": "/wbuf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "wbuf@1.7.3", + "name": "wbuf", + "escapedName": "wbuf", + "rawSpec": "1.7.3", + "saveSpec": null, + "fetchSpec": "1.7.3" }, - "repository": { - "type": "git", - "url": "git@github.com:indutny/wbuf" + "_requiredBy": [ + "/hpack.js", + "/spdy-transport" + ], + "_resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "_spec": "1.7.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" }, + "bugs": { + "url": "https://github.com/indutny/wbuf/issues" + }, + "dependencies": { + "minimalistic-assert": "^1.0.0" + }, + "description": "Write buffer", + "devDependencies": { + "mocha": "^5.0.4" + }, + "homepage": "https://github.com/indutny/wbuf", "keywords": [ "Write", "Buffer" ], - "author": "Fedor Indutny ", "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/wbuf/issues" + "main": "index.js", + "name": "wbuf", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/wbuf.git" }, - "homepage": "https://github.com/indutny/wbuf", - "devDependencies": { - "mocha": "^5.0.4" + "scripts": { + "test": "mocha test/**/*-test.js" }, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } + "version": "1.7.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/wcwidth/package.json b/admin/vue2/element-admin-v3/node_modules/wcwidth/package.json index eb2df9d00..57fc57b79 100644 --- a/admin/vue2/element-admin-v3/node_modules/wcwidth/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wcwidth/package.json @@ -1,19 +1,58 @@ { - "name": "wcwidth", - "version": "1.0.1", - "description": "Port of C's wcwidth() and wcswidth()", - "author": "Tim Oxley", + "_args": [ + [ + "wcwidth@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "wcwidth@1.0.1", + "_id": "wcwidth@1.0.1", + "_inBundle": false, + "_integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "_location": "/wcwidth", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "wcwidth@1.0.1", + "name": "wcwidth", + "escapedName": "wcwidth", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/ora" + ], + "_resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tim Oxley" + }, + "bugs": { + "url": "https://github.com/timoxley/wcwidth/issues" + }, "contributors": [ - "Woong Jun (http://code.woong.org/)" + { + "name": "Woong Jun", + "email": "woong.jun@gmail.com", + "url": "http://code.woong.org/" + } ], - "main": "index.js", "dependencies": { "defaults": "^1.0.3" }, + "description": "Port of C's wcwidth() and wcswidth()", "devDependencies": { "tape": "^4.5.1" }, - "license": "MIT", + "directories": { + "doc": "docs", + "test": "test" + }, + "homepage": "https://github.com/timoxley/wcwidth#readme", "keywords": [ "wide character", "wc", @@ -24,19 +63,15 @@ "wcwidth", "wcswidth" ], - "directories": { - "doc": "docs", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, + "license": "MIT", + "main": "index.js", + "name": "wcwidth", "repository": { "type": "git", "url": "git+https://github.com/timoxley/wcwidth.git" }, - "bugs": { - "url": "https://github.com/timoxley/wcwidth/issues" + "scripts": { + "test": "tape test/*.js" }, - "homepage": "https://github.com/timoxley/wcwidth#readme" + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/ansi-styles/package.json index 65edb48c3..9774df04e 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/ansi-styles/package.json @@ -1,56 +1,91 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/webpack-bundle-analyzer/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/chalk/package.json index bc324685a..533de3ed2 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/chalk/package.json @@ -1,71 +1,106 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/webpack-bundle-analyzer/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/supports-color/package.json index ad199f5cd..589b14f4a 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/node_modules/supports-color/package.json @@ -1,53 +1,88 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/webpack-bundle-analyzer/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/package.json index 98dc13512..4215ca51a 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-bundle-analyzer/package.json @@ -1,37 +1,47 @@ { - "name": "webpack-bundle-analyzer", - "version": "3.9.0", - "description": "Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap", - "author": "Yury Grunin ", - "license": "MIT", - "homepage": "https://github.com/webpack-contrib/webpack-bundle-analyzer", - "changelog": "https://github.com/webpack-contrib/webpack-bundle-analyzer/blob/master/CHANGELOG.md", - "bugs": { - "url": "https://github.com/webpack-contrib/webpack-bundle-analyzer/issues" + "_args": [ + [ + "webpack-bundle-analyzer@3.9.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "webpack-bundle-analyzer@3.9.0", + "_id": "webpack-bundle-analyzer@3.9.0", + "_inBundle": false, + "_integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", + "_location": "/webpack-bundle-analyzer", + "_phantomChildren": { + "color-convert": "1.9.3", + "escape-string-regexp": "1.0.5", + "has-flag": "3.0.0" }, - "repository": { - "type": "git", - "url": "git+https://github.com/webpack-contrib/webpack-bundle-analyzer.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-bundle-analyzer@3.9.0", + "name": "webpack-bundle-analyzer", + "escapedName": "webpack-bundle-analyzer", + "rawSpec": "3.9.0", + "saveSpec": null, + "fetchSpec": "3.9.0" }, - "main": "lib/index.js", - "bin": "lib/bin/analyzer.js", - "engines": { - "node": ">= 6.14.4" + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1621259099265&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", + "_spec": "3.9.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Yury Grunin", + "email": "grunin.ya@ya.ru" }, - "scripts": { - "start": "gulp watch", - "build": "gulp build", - "npm-publish": "npm run lint && npm run build && npm test && npm publish", - "lint": "eslint --ext js,jsx .", - "test": "mocha --exit --require @babel/register", - "test-dev": "mocha --watch --require @babel/register" + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" }, - "files": [ - "public", - "lib", - "src", - "views" - ], + "bugs": { + "url": "https://github.com/webpack-contrib/webpack-bundle-analyzer/issues" + }, + "changelog": "https://github.com/webpack-contrib/webpack-bundle-analyzer/blob/master/CHANGELOG.md", "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1", @@ -47,6 +57,7 @@ "opener": "^1.5.1", "ws": "^6.0.0" }, + "description": "Webpack plugin and CLI utility that represents bundle content as convenient interactive zoomable treemap", "devDependencies": { "@babel/core": "7.4.3", "@babel/plugin-proposal-class-properties": "7.4.0", @@ -90,6 +101,16 @@ "webpack-cli": "3.3.11", "webpack-dev-server": "3.10.3" }, + "engines": { + "node": ">= 6.14.4" + }, + "files": [ + "public", + "lib", + "src", + "views" + ], + "homepage": "https://github.com/webpack-contrib/webpack-bundle-analyzer", "keywords": [ "webpack", "bundle", @@ -101,5 +122,21 @@ "treemap", "zoomable", "zoom" - ] + ], + "license": "MIT", + "main": "lib/index.js", + "name": "webpack-bundle-analyzer", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/webpack-bundle-analyzer.git" + }, + "scripts": { + "build": "gulp build", + "lint": "eslint --ext js,jsx .", + "npm-publish": "npm run lint && npm run build && npm test && npm publish", + "start": "gulp watch", + "test": "mocha --exit --require @babel/register", + "test-dev": "mocha --watch --require @babel/register" + }, + "version": "3.9.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture index 79e318001..8cc916df0 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" + "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" + ret=$? else - exec node "$basedir/../import-local/fixtures/cli.js" "$@" + node "$basedir/../import-local/fixtures/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.cmd b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.cmd index 53ee97f56..f909453bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.cmd +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\import-local\fixtures\cli.js" %* +"%_prog%" "%dp0%\..\import-local\fixtures\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.ps1 b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.ps1 index 01ef78421..afd6c1a76 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/.bin/import-local-fixture.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../import-local/fixtures/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-regex/package.json index e94852fd7..59054f09a 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-regex/package.json @@ -1,24 +1,54 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/webpack-cli/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/webpack-cli/cliui/strip-ansi", + "/webpack-cli/string-width/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +76,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-styles/package.json index 65edb48c3..28acd4fc0 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/ansi-styles/package.json @@ -1,56 +1,92 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/webpack-cli/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/webpack-cli/inquirer/chalk" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/chardet/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/chardet/package.json index af046ba86..db12cac8f 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/chardet/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/chardet/package.json @@ -1,8 +1,69 @@ { - "name": "chardet", - "version": "0.7.0", - "homepage": "https://github.com/runk/node-chardet", + "_args": [ + [ + "chardet@0.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chardet@0.7.0", + "_id": "chardet@0.7.0", + "_inBundle": false, + "_integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "_location": "/webpack-cli/chardet", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chardet@0.7.0", + "name": "chardet", + "escapedName": "chardet", + "rawSpec": "0.7.0", + "saveSpec": null, + "fetchSpec": "0.7.0" + }, + "_requiredBy": [ + "/webpack-cli/external-editor" + ], + "_resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1601032529880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz", + "_spec": "0.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Dmitry Shirokov", + "email": "deadrunk@gmail.com" + }, + "bugs": { + "url": "http://github.com/runk/node-chardet/issues" + }, + "contributors": [ + { + "name": "@spikying" + }, + { + "name": "@wtgtybhertgeghgtwtg" + }, + { + "name": "@suisho" + }, + { + "name": "@seangarner" + }, + { + "name": "@zevanty" + } + ], "description": "Character detector", + "devDependencies": { + "github-publish-release": "^5.0.0", + "mocha": "^5.2.0" + }, + "directories": { + "test": "test" + }, + "engine": { + "node": ">=4" + }, + "homepage": "https://github.com/runk/node-chardet", "keywords": [ "encoding", "character", @@ -11,37 +72,16 @@ "chardet", "icu" ], - "author": "Dmitry Shirokov ", - "contributors": [ - "@spikying", - "@wtgtybhertgeghgtwtg", - "@suisho", - "@seangarner", - "@zevanty" - ], - "devDependencies": { - "github-publish-release": "^5.0.0", - "mocha": "^5.2.0" - }, + "license": "MIT", + "main": "index.js", + "name": "chardet", "repository": { "type": "git", - "url": "git@github.com:runk/node-chardet.git" - }, - "bugs": { - "mail": "deadrunk@gmail.com", - "url": "http://github.com/runk/node-chardet/issues" + "url": "git+ssh://git@github.com/runk/node-chardet.git" }, "scripts": { - "test": "mocha -R spec --recursive --bail", - "release": "scripts/release" - }, - "main": "index.js", - "engine": { - "node": ">=4" - }, - "readmeFilename": "README.md", - "directories": { - "test": "test" + "release": "scripts/release", + "test": "mocha -R spec --recursive --bail" }, - "license": "MIT" + "version": "0.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/node_modules/strip-ansi/package.json index 555f19461..527764cc8 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/webpack-cli/cliui/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/webpack-cli/cliui" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/package.json index 34c0a7b47..2b083a2ae 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/cliui/package.json @@ -1,17 +1,41 @@ { - "name": "cliui", - "version": "4.1.0", - "description": "easily create complex multi-column command-line-interfaces", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "nyc mocha", - "coverage": "nyc --reporter=text-lcov mocha | coveralls", - "release": "standard-version" + "_args": [ + [ + "cliui@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "cliui@4.1.0", + "_id": "cliui@4.1.0", + "_inBundle": false, + "_integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "_location": "/webpack-cli/cliui", + "_phantomChildren": { + "ansi-regex": "3.0.0" }, - "repository": { - "type": "git", - "url": "http://github.com/yargs/cliui.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "cliui@4.1.0", + "name": "cliui", + "escapedName": "cliui", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz?cache=0&sync_timestamp=1604880249159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/cliui/issues" }, "config": { "blanket": { @@ -25,30 +49,12 @@ "output-reporter": "spec" } }, - "standard": { - "ignore": [ - "**/example/**" - ], - "globals": [ - "it" - ] - }, - "keywords": [ - "cli", - "command-line", - "layout", - "design", - "console", - "wrap", - "table" - ], - "author": "Ben Coe ", - "license": "ISC", "dependencies": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", "wrap-ansi": "^2.0.0" }, + "description": "easily create complex multi-column command-line-interfaces", "devDependencies": { "chai": "^3.5.0", "chalk": "^1.1.2", @@ -58,10 +64,42 @@ "standard": "^8.0.0", "standard-version": "^3.0.0" }, + "engine": { + "node": ">=4" + }, "files": [ "index.js" ], - "engine": { - "node": ">=4" - } + "homepage": "https://github.com/yargs/cliui#readme", + "keywords": [ + "cli", + "command-line", + "layout", + "design", + "console", + "wrap", + "table" + ], + "license": "ISC", + "main": "index.js", + "name": "cliui", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yargs/cliui.git" + }, + "scripts": { + "coverage": "nyc --reporter=text-lcov mocha | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc mocha" + }, + "standard": { + "ignore": [ + "**/example/**" + ], + "globals": [ + "it" + ] + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/external-editor/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/external-editor/package.json index b0e2474ed..2ac7d22d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/external-editor/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/external-editor/package.json @@ -1,38 +1,54 @@ { - "name": "external-editor", - "version": "3.1.0", - "description": "Edit a string with the users preferred text editor using $VISUAL or $ENVIRONMENT", - "main": "main/index.js", - "types": "main/index.d.ts", - "scripts": { - "test": "mocha --recursive --require ts-node/register --timeout 10000 ./test/spec 'test/spec/**/*.ts'", - "compile": "tsc -p tsconfig.json", - "lint": "tslint './src/**/*.ts' './test/**/*.ts'" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mrkmg/node-external-editor.git" + "_args": [ + [ + "external-editor@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "external-editor@3.1.0", + "_id": "external-editor@3.1.0", + "_inBundle": false, + "_integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "_location": "/webpack-cli/external-editor", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "external-editor@3.1.0", + "name": "external-editor", + "escapedName": "external-editor", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" }, - "keywords": [ - "editor", - "external", - "user", - "visual" + "_requiredBy": [ + "/webpack-cli/inquirer" ], - "author": "Kevin Gravier (https://mrkmg.com)", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Kevin Gravier", + "email": "kevin@mrkmg.com", + "url": "https://mrkmg.com" + }, "bugs": { "url": "https://github.com/mrkmg/node-external-editor/issues" }, - "homepage": "https://github.com/mrkmg/node-external-editor#readme", + "config": { + "ndt": { + "versions": [ + "major" + ] + } + }, "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" }, - "engines": { - "node": ">=4" - }, + "description": "Edit a string with the users preferred text editor using $VISUAL or $ENVIRONMENT", "devDependencies": { "@types/chai": "^4.1.4", "@types/chardet": "^0.5.0", @@ -46,16 +62,33 @@ "tslint": "^5.18.0", "typescript": "^3.5.2" }, + "engines": { + "node": ">=4" + }, "files": [ "main", "example_sync.js", "example_async.js" ], - "config": { - "ndt": { - "versions": [ - "major" - ] - } - } + "homepage": "https://github.com/mrkmg/node-external-editor#readme", + "keywords": [ + "editor", + "external", + "user", + "visual" + ], + "license": "MIT", + "main": "main/index.js", + "name": "external-editor", + "repository": { + "type": "git", + "url": "git+https://github.com/mrkmg/node-external-editor.git" + }, + "scripts": { + "compile": "tsc -p tsconfig.json", + "lint": "tslint './src/**/*.ts' './test/**/*.ts'", + "test": "mocha --recursive --require ts-node/register --timeout 10000 ./test/spec 'test/spec/**/*.ts'" + }, + "types": "main/index.d.ts", + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/find-up/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/find-up/package.json index 7ec85bb79..e7234bd4a 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/find-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/find-up/package.json @@ -1,23 +1,57 @@ { - "name": "find-up", - "version": "2.1.0", - "description": "Find a file by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", + "_args": [ + [ + "find-up@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "find-up@2.1.0", + "_id": "find-up@2.1.0", + "_inBundle": false, + "_integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "_location": "/webpack-cli/find-up", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-up@2.1.0", + "name": "find-up", + "escapedName": "find-up", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/webpack-cli/pkg-dir" + ], + "_resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/find-up/issues" + }, + "dependencies": { + "locate-path": "^2.0.0" + }, + "description": "Find a file by walking up parent directories", + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.1", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/find-up#readme", "keywords": [ "find", "up", @@ -39,14 +73,16 @@ "walking", "path" ], - "dependencies": { - "locate-path": "^2.0.0" + "license": "MIT", + "name": "find-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/find-up.git" }, - "devDependencies": { - "ava": "*", - "tempfile": "^1.1.1", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.1.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/get-caller-file/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/get-caller-file/package.json index eb121a6ff..242d239cd 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/get-caller-file/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/get-caller-file/package.json @@ -1,31 +1,62 @@ { - "name": "get-caller-file", - "version": "1.0.3", - "description": "", - "main": "index.js", + "_args": [ + [ + "get-caller-file@1.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "get-caller-file@1.0.3", + "_id": "get-caller-file@1.0.3", + "_inBundle": false, + "_integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "_location": "/webpack-cli/get-caller-file", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "get-caller-file@1.0.3", + "name": "get-caller-file", + "escapedName": "get-caller-file", + "rawSpec": "1.0.3", + "saveSpec": null, + "fetchSpec": "1.0.3" + }, + "_requiredBy": [ + "/webpack-cli/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "_spec": "1.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Stefan Penner" + }, + "bugs": { + "url": "https://github.com/stefanpenner/get-caller-file/issues" + }, + "description": "[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) [![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master)", + "devDependencies": { + "chai": "^4.1.2", + "ensure-posix-path": "^1.0.1", + "mocha": "^5.2.0" + }, "directories": { "test": "tests" }, "files": [ "index.js" ], - "scripts": { - "test": "mocha test", - "test:debug": "mocha test" - }, + "homepage": "https://github.com/stefanpenner/get-caller-file#readme", + "license": "ISC", + "main": "index.js", + "name": "get-caller-file", "repository": { "type": "git", "url": "git+https://github.com/stefanpenner/get-caller-file.git" }, - "author": "Stefan Penner", - "license": "ISC", - "bugs": { - "url": "https://github.com/stefanpenner/get-caller-file/issues" + "scripts": { + "test": "mocha test", + "test:debug": "mocha test" }, - "homepage": "https://github.com/stefanpenner/get-caller-file#readme", - "devDependencies": { - "chai": "^4.1.2", - "ensure-posix-path": "^1.0.1", - "mocha": "^5.2.0" - } + "version": "1.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/import-local/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/import-local/package.json index e0f0e4634..a2514ebd6 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/import-local/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/import-local/package.json @@ -1,46 +1,82 @@ { - "name": "import-local", - "version": "1.0.0", - "description": "Let a globally installed package use a locally installed version of itself if available", - "license": "MIT", - "repository": "sindresorhus/import-local", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "fixtures/cli.js" - ], - "keywords": [ - "import", - "local", - "require", - "resolve", - "global", - "version", - "prefer", - "cli" - ], - "dependencies": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - }, - "devDependencies": { - "ava": "*", - "cpy": "^6.0.0", - "del": "^3.0.0", - "execa": "^0.8.0", - "xo": "*" - } + "_args": [ + [ + "import-local@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "import-local@1.0.0", + "_id": "import-local@1.0.0", + "_inBundle": false, + "_integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", + "_location": "/webpack-cli/import-local", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "import-local@1.0.0", + "name": "import-local", + "escapedName": "import-local", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/webpack-cli" + ], + "_resolved": "https://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "bugs": { + "url": "https://github.com/sindresorhus/import-local/issues" + }, + "dependencies": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + }, + "description": "Let a globally installed package use a locally installed version of itself if available", + "devDependencies": { + "ava": "*", + "cpy": "^6.0.0", + "del": "^3.0.0", + "execa": "^0.8.0", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "fixtures/cli.js" + ], + "homepage": "https://github.com/sindresorhus/import-local#readme", + "keywords": [ + "import", + "local", + "require", + "resolve", + "global", + "version", + "prefer", + "cli" + ], + "license": "MIT", + "name": "import-local", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/import-local.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/node_modules/chalk/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/node_modules/chalk/package.json index bc324685a..c744fdd13 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/node_modules/chalk/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/node_modules/chalk/package.json @@ -1,71 +1,107 @@ { - "name": "chalk", - "version": "2.4.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", - "bench": "matcha benchmark.js", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js", - "templates.js", - "types/index.d.ts", - "index.js.flow" - ], - "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "devDependencies": { - "ava": "*", - "coveralls": "^3.0.0", - "execa": "^0.9.0", - "flow-bin": "^0.68.0", - "import-fresh": "^2.0.0", - "matcha": "^0.7.0", - "nyc": "^11.0.2", - "resolve-from": "^4.0.0", - "typescript": "^2.5.3", - "xo": "*" - }, - "types": "types/index.d.ts", - "xo": { - "envs": [ - "node", - "mocha" - ], - "ignores": [ - "test/_flow.js" - ] - } + "_args": [ + [ + "chalk@2.4.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "chalk@2.4.2", + "_id": "chalk@2.4.2", + "_inBundle": false, + "_integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "_location": "/webpack-cli/inquirer/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "chalk@2.4.2", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "2.4.2", + "saveSpec": null, + "fetchSpec": "2.4.2" + }, + "_requiredBy": [ + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "_spec": "2.4.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava" + }, + "types": "types/index.d.ts", + "version": "2.4.2", + "xo": { + "envs": [ + "node", + "mocha" + ], + "ignores": [ + "test/_flow.js" + ] + } } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/package.json index f88406c25..0ccddcd0b 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/inquirer/package.json @@ -1,41 +1,44 @@ { - "name": "inquirer", - "version": "6.5.2", - "description": "A collection of common interactive command line user interfaces.", - "author": "Simon Boudrias ", - "files": [ - "lib", - "README.md" - ], - "main": "lib/inquirer.js", - "keywords": [ - "command", - "prompt", - "stdin", - "cli", - "tty", - "menu" + "_args": [ + [ + "inquirer@6.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">=6.0.0" + "_development": true, + "_from": "inquirer@6.5.2", + "_id": "inquirer@6.5.2", + "_inBundle": false, + "_integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", + "_location": "/webpack-cli/inquirer", + "_phantomChildren": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, - "devDependencies": { - "chai": "^4.2.0", - "chalk-pipe": "^2.0.0", - "cmdify": "^0.0.4", - "mocha": "^5.0.0", - "mockery": "^2.1.0", - "nyc": "^13.1.0", - "sinon": "^7.1.1" + "_requested": { + "type": "version", + "registry": true, + "raw": "inquirer@6.5.2", + "name": "inquirer", + "escapedName": "inquirer", + "rawSpec": "6.5.2", + "saveSpec": null, + "fetchSpec": "6.5.2" }, - "scripts": { - "test": "nyc mocha test/**/* -r ./test/before", - "posttest": "nyc report --reporter=text-lcov > ../../coverage/nyc-report.lcov", - "prepublishOnly": "cp ../../README.md .", - "postpublish": "rm -f README.md" + "_requiredBy": [ + "/webpack-cli" + ], + "_resolved": "https://registry.nlark.com/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1621628995749&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz", + "_spec": "6.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Simon Boudrias", + "email": "admin@simonboudrias.com" + }, + "bugs": { + "url": "https://github.com/SBoudrias/Inquirer.js/issues" }, - "repository": "SBoudrias/Inquirer.js", - "license": "MIT", "dependencies": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -51,5 +54,45 @@ "strip-ansi": "^5.1.0", "through": "^2.3.6" }, - "gitHead": "7d87f666042c67638d2e89bd4586d22f61e90130" + "description": "A collection of common interactive command line user interfaces.", + "devDependencies": { + "chai": "^4.2.0", + "chalk-pipe": "^2.0.0", + "cmdify": "^0.0.4", + "mocha": "^5.0.0", + "mockery": "^2.1.0", + "nyc": "^13.1.0", + "sinon": "^7.1.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "files": [ + "lib", + "README.md" + ], + "gitHead": "7d87f666042c67638d2e89bd4586d22f61e90130", + "homepage": "https://github.com/SBoudrias/Inquirer.js#readme", + "keywords": [ + "command", + "prompt", + "stdin", + "cli", + "tty", + "menu" + ], + "license": "MIT", + "main": "lib/inquirer.js", + "name": "inquirer", + "repository": { + "type": "git", + "url": "git+https://github.com/SBoudrias/Inquirer.js.git" + }, + "scripts": { + "postpublish": "rm -f README.md", + "posttest": "nyc report --reporter=text-lcov > ../../coverage/nyc-report.lcov", + "prepublishOnly": "cp ../../README.md .", + "test": "nyc mocha test/**/* -r ./test/before" + }, + "version": "6.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/locate-path/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/locate-path/package.json index 17bcd7ff6..c8e5f5b73 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/locate-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/locate-path/package.json @@ -1,23 +1,57 @@ { - "name": "locate-path", - "version": "2.0.0", - "description": "Get the first path that exists on disk of multiple paths", - "license": "MIT", - "repository": "sindresorhus/locate-path", + "_args": [ + [ + "locate-path@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "locate-path@2.0.0", + "_id": "locate-path@2.0.0", + "_inBundle": false, + "_integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "_location": "/webpack-cli/locate-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "locate-path@2.0.0", + "name": "locate-path", + "escapedName": "locate-path", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/webpack-cli/find-up" + ], + "_resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/locate-path/issues" + }, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "description": "Get the first path that exists on disk of multiple paths", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/locate-path#readme", "keywords": [ "locate", "path", @@ -33,14 +67,16 @@ "iterable", "iterator" ], - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "license": "MIT", + "name": "locate-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/locate-path.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-limit/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-limit/package.json index 4079517f1..55291116a 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-limit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-limit/package.json @@ -1,49 +1,85 @@ { - "name": "p-limit", - "version": "1.3.0", - "description": "Run multiple promise-returning & async functions with limited concurrency", - "license": "MIT", - "repository": "sindresorhus/p-limit", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "limit", - "limited", - "concurrency", - "throttle", - "throat", - "rate", - "batch", - "ratelimit", - "task", - "queue", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-try": "^1.0.0" - }, - "devDependencies": { - "ava": "*", - "delay": "^2.0.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^2.0.0", - "xo": "*" - } + "_args": [ + [ + "p-limit@1.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-limit@1.3.0", + "_id": "p-limit@1.3.0", + "_inBundle": false, + "_integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "_location": "/webpack-cli/p-limit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-limit@1.3.0", + "name": "p-limit", + "escapedName": "p-limit", + "rawSpec": "1.3.0", + "saveSpec": null, + "fetchSpec": "1.3.0" + }, + "_requiredBy": [ + "/webpack-cli/p-locate" + ], + "_resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "_spec": "1.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-limit/issues" + }, + "dependencies": { + "p-try": "^1.0.0" + }, + "description": "Run multiple promise-returning & async functions with limited concurrency", + "devDependencies": { + "ava": "*", + "delay": "^2.0.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-limit#readme", + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-limit", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-limit.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-locate/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-locate/package.json index 767002b38..8606f6b02 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-locate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-locate/package.json @@ -1,23 +1,59 @@ { - "name": "p-locate", - "version": "2.0.0", - "description": "Get the first fulfilled promise that satisfies the provided testing function", - "license": "MIT", - "repository": "sindresorhus/p-locate", + "_args": [ + [ + "p-locate@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-locate@2.0.0", + "_id": "p-locate@2.0.0", + "_inBundle": false, + "_integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "_location": "/webpack-cli/p-locate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-locate@2.0.0", + "name": "p-locate", + "escapedName": "p-locate", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/webpack-cli/locate-path" + ], + "_resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-locate/issues" + }, + "dependencies": { + "p-limit": "^1.1.0" + }, + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "devDependencies": { + "ava": "*", + "delay": "^1.3.1", + "in-range": "^1.0.0", + "time-span": "^1.0.0", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-locate#readme", "keywords": [ "promise", "locate", @@ -38,16 +74,16 @@ "promises", "bluebird" ], - "dependencies": { - "p-limit": "^1.1.0" + "license": "MIT", + "name": "p-locate", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-locate.git" }, - "devDependencies": { - "ava": "*", - "delay": "^1.3.1", - "in-range": "^1.0.0", - "time-span": "^1.0.0", - "xo": "*" + "scripts": { + "test": "xo && ava" }, + "version": "2.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-try/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-try/package.json index ba2513ade..f93d26cdd 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-try/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/p-try/package.json @@ -1,23 +1,53 @@ { - "name": "p-try", - "version": "1.0.0", - "description": "`Promise#try()` ponyfill - Starts a promise chain", - "license": "MIT", - "repository": "sindresorhus/p-try", + "_args": [ + [ + "p-try@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-try@1.0.0", + "_id": "p-try@1.0.0", + "_inBundle": false, + "_integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "_location": "/webpack-cli/p-try", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-try@1.0.0", + "name": "p-try", + "escapedName": "p-try", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/webpack-cli/p-limit" + ], + "_resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/p-try/issues" + }, + "description": "`Promise#try()` ponyfill - Starts a promise chain", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/p-try#readme", "keywords": [ "promise", "try", @@ -33,10 +63,16 @@ "shim", "bluebird" ], - "devDependencies": { - "ava": "*", - "xo": "*" + "license": "MIT", + "name": "p-try", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-try.git" + }, + "scripts": { + "test": "xo && ava" }, + "version": "1.0.0", "xo": { "esnext": true } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/pkg-dir/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/pkg-dir/package.json index 2bb7277c6..d0941d464 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/pkg-dir/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/pkg-dir/package.json @@ -1,23 +1,56 @@ { - "name": "pkg-dir", - "version": "2.0.0", - "description": "Find the root directory of a Node.js project or npm package", - "license": "MIT", - "repository": "sindresorhus/pkg-dir", + "_args": [ + [ + "pkg-dir@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "pkg-dir@2.0.0", + "_id": "pkg-dir@2.0.0", + "_inBundle": false, + "_integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "_location": "/webpack-cli/pkg-dir", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "pkg-dir@2.0.0", + "name": "pkg-dir", + "escapedName": "pkg-dir", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/webpack-cli/import-local" + ], + "_resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/pkg-dir/issues" + }, + "dependencies": { + "find-up": "^2.1.0" + }, + "description": "Find the root directory of a Node.js project or npm package", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/pkg-dir#readme", "keywords": [ "package", "json", @@ -43,11 +76,14 @@ "walking", "path" ], - "dependencies": { - "find-up": "^2.1.0" + "license": "MIT", + "name": "pkg-dir", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pkg-dir.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/require-main-filename/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/require-main-filename/package.json index 558db27b5..b80d268a2 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/require-main-filename/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/require-main-filename/package.json @@ -1,30 +1,62 @@ { - "name": "require-main-filename", - "version": "1.0.1", - "description": "shim for require.main.filename() that works in as many environments as possible", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "tap --coverage test.js" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/yargs/require-main-filename.git" + "_args": [ + [ + "require-main-filename@1.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "require-main-filename@1.0.1", + "_id": "require-main-filename@1.0.1", + "_inBundle": false, + "_integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "_location": "/webpack-cli/require-main-filename", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "require-main-filename@1.0.1", + "name": "require-main-filename", + "escapedName": "require-main-filename", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" }, - "keywords": [ - "require", - "shim", - "iisnode" + "_requiredBy": [ + "/webpack-cli/yargs" ], - "author": "Ben Coe ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "_spec": "1.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, "bugs": { "url": "https://github.com/yargs/require-main-filename/issues" }, - "homepage": "https://github.com/yargs/require-main-filename#readme", + "description": "shim for require.main.filename() that works in as many environments as possible", "devDependencies": { "chai": "^3.5.0", "standard": "^6.0.5", "tap": "^5.2.0" - } + }, + "homepage": "https://github.com/yargs/require-main-filename#readme", + "keywords": [ + "require", + "shim", + "iisnode" + ], + "license": "ISC", + "main": "index.js", + "name": "require-main-filename", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yargs/require-main-filename.git" + }, + "scripts": { + "pretest": "standard", + "test": "tap --coverage test.js" + }, + "version": "1.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/node_modules/strip-ansi/package.json index 555f19461..f38807136 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/webpack-cli/string-width/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/webpack-cli/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/package.json index 89f0b6a6c..0063fd9ee 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/string-width/package.json @@ -1,55 +1,95 @@ { - "name": "string-width", - "version": "2.1.1", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "string-width@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@2.1.1", + "_id": "string-width@2.1.1", + "_inBundle": false, + "_integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "_location": "/webpack-cli/string-width", + "_phantomChildren": { + "ansi-regex": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@2.1.1", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/webpack-cli/cliui", + "/webpack-cli/inquirer", + "/webpack-cli/yargs" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/node_modules/ansi-regex/package.json index a849fdf52..902181891 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/node_modules/ansi-regex/package.json @@ -1,53 +1,89 @@ { - "name": "ansi-regex", - "version": "4.1.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^0.25.0", - "xo": "^0.23.0" - } + "_args": [ + [ + "ansi-regex@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@4.1.0", + "_id": "ansi-regex@4.1.0", + "_inBundle": false, + "_integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "_location": "/webpack-cli/strip-ansi/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@4.1.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/webpack-cli/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^0.25.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/package.json index 7494fd7e8..3c109316b 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/strip-ansi/package.json @@ -1,54 +1,90 @@ { - "name": "strip-ansi", - "version": "5.2.0", - "description": "Strip ANSI escape codes from a string", - "license": "MIT", - "repository": "chalk/strip-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "devDependencies": { - "ava": "^1.3.1", - "tsd-check": "^0.5.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "strip-ansi@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@5.2.0", + "_id": "strip-ansi@5.2.0", + "_inBundle": false, + "_integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "_location": "/webpack-cli/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@5.2.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/webpack-cli/inquirer" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/supports-color/package.json index ad199f5cd..f8015370e 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/supports-color/package.json @@ -1,53 +1,90 @@ { - "name": "supports-color", - "version": "5.5.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.20.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@5.5.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "supports-color@5.5.0", + "_id": "supports-color@5.5.0", + "_inBundle": false, + "_integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "_location": "/webpack-cli/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@5.5.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "5.5.0", + "saveSpec": null, + "fetchSpec": "5.5.0" + }, + "_requiredBy": [ + "/webpack-cli", + "/webpack-cli/inquirer/chalk" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "_spec": "5.5.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.20.0" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "5.5.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/ansi-regex/package.json index eb44fb5c1..9c9a954a1 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/ansi-regex/package.json @@ -1,29 +1,53 @@ { - "name": "ansi-regex", - "version": "2.1.1", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@2.1.1", + "_id": "ansi-regex@2.1.1", + "_inBundle": false, + "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "_location": "/webpack-cli/wrap-ansi/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@2.1.1", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/webpack-cli/wrap-ansi/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)" - ], + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "0.17.0", + "xo": "0.16.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava --verbose", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -51,10 +75,34 @@ "find", "pattern" ], - "devDependencies": { - "ava": "0.17.0", - "xo": "0.16.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava --verbose", + "view-supported": "node fixtures/view-codes.js" }, + "version": "2.1.1", "xo": { "rules": { "guard-for-in": 0, diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json index b678d40de..02fbf3b72 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json @@ -1,23 +1,56 @@ { - "name": "is-fullwidth-code-point", - "version": "1.0.0", - "description": "Check if the character represented by a given Unicode code point is fullwidth", - "license": "MIT", - "repository": "sindresorhus/is-fullwidth-code-point", + "_args": [ + [ + "is-fullwidth-code-point@1.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "is-fullwidth-code-point@1.0.0", + "_id": "is-fullwidth-code-point@1.0.0", + "_inBundle": false, + "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "_location": "/webpack-cli/wrap-ansi/is-fullwidth-code-point", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "is-fullwidth-code-point@1.0.0", + "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/webpack-cli/wrap-ansi/string-width" + ], + "_resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "_spec": "1.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" + }, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "devDependencies": { + "ava": "0.0.4", + "code-point-at": "^1.0.0" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "node test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", "keywords": [ "fullwidth", "full-width", @@ -35,11 +68,14 @@ "detect", "check" ], - "dependencies": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "name": "is-fullwidth-code-point", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" }, - "devDependencies": { - "ava": "0.0.4", - "code-point-at": "^1.0.0" - } + "scripts": { + "test": "node test.js" + }, + "version": "1.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/string-width/package.json index 5ba436166..d371ac13d 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/string-width/package.json @@ -1,23 +1,58 @@ { - "name": "string-width", - "version": "1.0.2", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", + "_args": [ + [ + "string-width@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@1.0.2", + "_id": "string-width@1.0.2", + "_inBundle": false, + "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "_location": "/webpack-cli/wrap-ansi/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@1.0.2", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/webpack-cli/wrap-ansi" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/string-width#readme", "keywords": [ "string", "str", @@ -44,13 +79,14 @@ "korean", "fixed-width" ], - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/strip-ansi/package.json index 301685ba3..900aa2ba0 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/strip-ansi/package.json @@ -1,28 +1,57 @@ { - "name": "strip-ansi", - "version": "3.0.1", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@3.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@3.0.1", + "_id": "strip-ansi@3.0.1", + "_inBundle": false, + "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "_location": "/webpack-cli/wrap-ansi/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@3.0.1", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "3.0.1", + "saveSpec": null, + "fetchSpec": "3.0.1" + }, + "_requiredBy": [ + "/webpack-cli/wrap-ansi", + "/webpack-cli/wrap-ansi/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "_spec": "3.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Boy Nicolai Appelman (jbna.nl)", - "JD Ballard (github.com/qix-)" - ], + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -47,11 +76,31 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Boy Nicolai Appelman", + "email": "joshua@jbna.nl", + "url": "jbna.nl" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + } + ], + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/package.json index 35754d433..c8d892695 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/wrap-ansi/package.json @@ -1,30 +1,65 @@ { - "name": "wrap-ansi", - "version": "2.1.0", - "description": "Wordwrap a string with ANSI escape codes", - "license": "MIT", - "repository": "chalk/wrap-ansi", + "_args": [ + [ + "wrap-ansi@2.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "wrap-ansi@2.1.0", + "_id": "wrap-ansi@2.1.0", + "_inBundle": false, + "_integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "_location": "/webpack-cli/wrap-ansi", + "_phantomChildren": { + "code-point-at": "1.1.0", + "number-is-nan": "1.0.1" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "wrap-ansi@2.1.0", + "name": "wrap-ansi", + "escapedName": "wrap-ansi", + "rawSpec": "2.1.0", + "saveSpec": null, + "fetchSpec": "2.1.0" + }, + "_requiredBy": [ + "/webpack-cli/cliui" + ], + "_resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "_spec": "2.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)", - "JD Ballard (github.com/qix-)", - "Benjamin Coe (github.com/bcoe)" - ], + "bugs": { + "url": "https://github.com/chalk/wrap-ansi/issues" + }, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "description": "Wordwrap a string with ANSI escape codes", + "devDependencies": { + "ava": "^0.16.0", + "chalk": "^1.1.0", + "coveralls": "^2.11.4", + "has-ansi": "^2.0.0", + "nyc": "^6.2.1", + "strip-ansi": "^3.0.0", + "xo": "*" + }, "engines": { "node": ">=0.10.0" }, - "scripts": { - "test": "xo && nyc ava", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/wrap-ansi#readme", "keywords": [ "wrap", "break", @@ -52,17 +87,37 @@ "command-line", "text" ], - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "license": "MIT", + "maintainers": [ + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" + }, + { + "name": "Benjamin Coe", + "email": "ben@npmjs.com", + "url": "github.com/bcoe" + } + ], + "name": "wrap-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/wrap-ansi.git" }, - "devDependencies": { - "ava": "^0.16.0", - "chalk": "^1.1.0", - "coveralls": "^2.11.4", - "has-ansi": "^2.0.0", - "nyc": "^6.2.1", - "strip-ansi": "^3.0.0", - "xo": "*" - } + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc ava" + }, + "version": "2.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs-parser/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs-parser/package.json index 8fcb5479e..92305f0a4 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs-parser/package.json @@ -1,17 +1,61 @@ { - "name": "yargs-parser", - "version": "11.1.1", + "_args": [ + [ + "yargs-parser@11.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yargs-parser@11.1.1", + "_id": "yargs-parser@11.1.1", + "_inBundle": false, + "_integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "_location": "/webpack-cli/yargs-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs-parser@11.1.1", + "name": "yargs-parser", + "escapedName": "yargs-parser", + "rawSpec": "11.1.1", + "saveSpec": null, + "fetchSpec": "11.1.1" + }, + "_requiredBy": [ + "/webpack-cli/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz", + "_spec": "11.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/yargs-parser/issues" + }, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "description": "the mighty option parser used by yargs", - "main": "index.js", - "scripts": { - "test": "nyc mocha test/*.js", - "posttest": "standard", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" + "devDependencies": { + "chai": "^4.2.0", + "coveralls": "^3.0.2", + "mocha": "^5.2.0", + "nyc": "^13.0.1", + "standard": "^12.0.1", + "standard-version": "^4.4.0" }, - "repository": { - "url": "git@github.com:yargs/yargs-parser.git" + "engine": { + "node": ">=6" }, + "files": [ + "lib", + "index.js" + ], + "homepage": "https://github.com/yargs/yargs-parser#readme", "keywords": [ "argument", "parser", @@ -23,25 +67,17 @@ "args", "argument" ], - "author": "Ben Coe ", "license": "ISC", - "devDependencies": { - "chai": "^4.2.0", - "coveralls": "^3.0.2", - "mocha": "^5.2.0", - "nyc": "^13.0.1", - "standard": "^12.0.1", - "standard-version": "^4.4.0" + "main": "index.js", + "name": "yargs-parser", + "repository": { + "url": "git+ssh://git@github.com/yargs/yargs-parser.git" }, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "posttest": "standard", + "release": "standard-version", + "test": "nyc mocha test/*.js" }, - "files": [ - "lib", - "index.js" - ], - "engine": { - "node": ">=6" - } + "version": "11.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/find-up/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/find-up/package.json index a708f5727..458e2bc6b 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/find-up/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/find-up/package.json @@ -1,50 +1,86 @@ { - "name": "find-up", - "version": "3.0.0", - "description": "Find a file or directory by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "find", - "up", - "find-up", - "findup", - "look-up", - "look", - "file", - "search", - "match", - "package", - "resolve", - "parent", - "parents", - "folder", - "directory", - "dir", - "walk", - "walking", - "path" - ], - "dependencies": { - "locate-path": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "tempy": "^0.2.1", - "xo": "*" - } + "_args": [ + [ + "find-up@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "find-up@3.0.0", + "_id": "find-up@3.0.0", + "_inBundle": false, + "_integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "_location": "/webpack-cli/yargs/find-up", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "find-up@3.0.0", + "name": "find-up", + "escapedName": "find-up", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/find-up/issues" + }, + "dependencies": { + "locate-path": "^3.0.0" + }, + "description": "Find a file or directory by walking up parent directories", + "devDependencies": { + "ava": "*", + "tempy": "^0.2.1", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/find-up#readme", + "keywords": [ + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "package", + "resolve", + "parent", + "parents", + "folder", + "directory", + "dir", + "walk", + "walking", + "path" + ], + "license": "MIT", + "name": "find-up", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/find-up.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/locate-path/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/locate-path/package.json index d41aab44e..53c5af2bc 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/locate-path/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/locate-path/package.json @@ -1,44 +1,80 @@ { - "name": "locate-path", - "version": "3.0.0", - "description": "Get the first path that exists on disk of multiple paths", - "license": "MIT", - "repository": "sindresorhus/locate-path", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "locate", - "path", - "paths", - "file", - "files", - "exists", - "find", - "finder", - "search", - "searcher", - "array", - "iterable", - "iterator" - ], - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "locate-path@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "locate-path@3.0.0", + "_id": "locate-path@3.0.0", + "_inBundle": false, + "_integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "_location": "/webpack-cli/yargs/locate-path", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "locate-path@3.0.0", + "name": "locate-path", + "escapedName": "locate-path", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs/find-up" + ], + "_resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/locate-path/issues" + }, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "description": "Get the first path that exists on disk of multiple paths", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/locate-path#readme", + "keywords": [ + "locate", + "path", + "paths", + "file", + "files", + "exists", + "find", + "finder", + "search", + "searcher", + "array", + "iterable", + "iterator" + ], + "license": "MIT", + "name": "locate-path", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/locate-path.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-limit/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-limit/package.json index 99a814f6e..7d4e8f0b1 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-limit/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-limit/package.json @@ -1,52 +1,88 @@ { - "name": "p-limit", - "version": "2.3.0", - "description": "Run multiple promise-returning & async functions with limited concurrency", - "license": "MIT", - "repository": "sindresorhus/p-limit", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "promise", - "limit", - "limited", - "concurrency", - "throttle", - "throat", - "rate", - "batch", - "ratelimit", - "task", - "queue", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-try": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.2.1", - "delay": "^4.1.0", - "in-range": "^1.0.0", - "random-int": "^1.0.0", - "time-span": "^2.0.0", - "tsd-check": "^0.3.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-limit@2.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-limit@2.3.0", + "_id": "p-limit@2.3.0", + "_inBundle": false, + "_integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "_location": "/webpack-cli/yargs/p-limit", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-limit@2.3.0", + "name": "p-limit", + "escapedName": "p-limit", + "rawSpec": "2.3.0", + "saveSpec": null, + "fetchSpec": "2.3.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs/p-locate" + ], + "_resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "_spec": "2.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-limit/issues" + }, + "dependencies": { + "p-try": "^2.0.0" + }, + "description": "Run multiple promise-returning & async functions with limited concurrency", + "devDependencies": { + "ava": "^1.2.1", + "delay": "^4.1.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "tsd-check": "^0.3.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "funding": "https://github.com/sponsors/sindresorhus", + "homepage": "https://github.com/sindresorhus/p-limit#readme", + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-limit", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-limit.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "2.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-locate/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-locate/package.json index 1d28b54c0..e4799900d 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-locate/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-locate/package.json @@ -1,51 +1,87 @@ { - "name": "p-locate", - "version": "3.0.0", - "description": "Get the first fulfilled promise that satisfies the provided testing function", - "license": "MIT", - "repository": "sindresorhus/p-locate", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "promise", - "locate", - "find", - "finder", - "search", - "searcher", - "test", - "array", - "collection", - "iterable", - "iterator", - "race", - "fulfilled", - "fastest", - "async", - "await", - "promises", - "bluebird" - ], - "dependencies": { - "p-limit": "^2.0.0" - }, - "devDependencies": { - "ava": "*", - "delay": "^3.0.0", - "in-range": "^1.0.0", - "time-span": "^2.0.0", - "xo": "*" - } + "_args": [ + [ + "p-locate@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-locate@3.0.0", + "_id": "p-locate@3.0.0", + "_inBundle": false, + "_integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "_location": "/webpack-cli/yargs/p-locate", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-locate@3.0.0", + "name": "p-locate", + "escapedName": "p-locate", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs/locate-path" + ], + "_resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-locate/issues" + }, + "dependencies": { + "p-limit": "^2.0.0" + }, + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "devDependencies": { + "ava": "*", + "delay": "^3.0.0", + "in-range": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/p-locate#readme", + "keywords": [ + "promise", + "locate", + "find", + "finder", + "search", + "searcher", + "test", + "array", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "fastest", + "async", + "await", + "promises", + "bluebird" + ], + "license": "MIT", + "name": "p-locate", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-locate.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-try/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-try/package.json index 81c4d32e4..b84e8709c 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-try/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/node_modules/p-try/package.json @@ -1,42 +1,78 @@ { - "name": "p-try", - "version": "2.2.0", - "description": "`Start a promise chain", - "license": "MIT", - "repository": "sindresorhus/p-try", - "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": [ - "promise", - "try", - "resolve", - "function", - "catch", - "async", - "await", - "promises", - "settled", - "ponyfill", - "polyfill", - "shim", - "bluebird" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } + "_args": [ + [ + "p-try@2.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "p-try@2.2.0", + "_id": "p-try@2.2.0", + "_inBundle": false, + "_integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "_location": "/webpack-cli/yargs/p-try", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "p-try@2.2.0", + "name": "p-try", + "escapedName": "p-try", + "rawSpec": "2.2.0", + "saveSpec": null, + "fetchSpec": "2.2.0" + }, + "_requiredBy": [ + "/webpack-cli/yargs/p-limit" + ], + "_resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "_spec": "2.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/p-try/issues" + }, + "description": "`Start a promise chain", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/p-try#readme", + "keywords": [ + "promise", + "try", + "resolve", + "function", + "catch", + "async", + "await", + "promises", + "settled", + "ponyfill", + "polyfill", + "shim", + "bluebird" + ], + "license": "MIT", + "name": "p-try", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/p-try.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/package.json index 826df9e81..418d3ebb8 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/node_modules/yargs/package.json @@ -1,22 +1,44 @@ { - "name": "yargs", - "version": "12.0.5", - "description": "yargs the modern, pirate-themed, successor to optimist.", - "main": "./index.js", + "_args": [ + [ + "yargs@12.0.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "yargs@12.0.5", + "_id": "yargs@12.0.5", + "_inBundle": false, + "_integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "_location": "/webpack-cli/yargs", + "_phantomChildren": { + "path-exists": "3.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs@12.0.5", + "name": "yargs", + "escapedName": "yargs", + "rawSpec": "12.0.5", + "saveSpec": null, + "fetchSpec": "12.0.5" + }, + "_requiredBy": [ + "/webpack-cli" + ], + "_resolved": "https://registry.nlark.com/yargs/download/yargs-12.0.5.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz", + "_spec": "12.0.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/yargs/yargs/issues" + }, "contributors": [ { "name": "Yargs Contributors", "url": "https://github.com/yargs/yargs/graphs/contributors" } ], - "files": [ - "index.js", - "yargs.js", - "lib", - "locales", - "completion.sh.hbs", - "LICENSE" - ], "dependencies": { "cliui": "^4.0.0", "decamelize": "^1.2.0", @@ -31,6 +53,7 @@ "y18n": "^3.2.1 || ^4.0.0", "yargs-parser": "^11.1.1" }, + "description": "yargs the modern, pirate-themed, successor to optimist.", "devDependencies": { "chai": "^4.1.2", "chalk": "^1.1.3", @@ -47,22 +70,18 @@ "which": "^1.2.9", "yargs-test-extends": "^1.0.1" }, - "scripts": { - "pretest": "standard", - "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" - }, - "repository": { - "type": "git", - "url": "https://github.com/yargs/yargs.git" + "engine": { + "node": ">=6" }, + "files": [ + "index.js", + "yargs.js", + "lib", + "locales", + "completion.sh.hbs", + "LICENSE" + ], "homepage": "https://yargs.js.org/", - "standard": { - "ignore": [ - "**/example/**" - ] - }, "keywords": [ "argument", "args", @@ -73,7 +92,22 @@ "command" ], "license": "MIT", - "engine": { - "node": ">=6" - } + "main": "./index.js", + "name": "yargs", + "repository": { + "type": "git", + "url": "git+https://github.com/yargs/yargs.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks" + }, + "standard": { + "ignore": [ + "**/example/**" + ] + }, + "version": "12.0.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-cli/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-cli/package.json index 94ff67f3f..82a322700 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-cli/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-cli/package.json @@ -1,73 +1,65 @@ { - "name": "webpack-cli", - "version": "3.1.0", - "description": "CLI for webpack & friends", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/webpack/webpack-cli.git" - }, - "bin": { - "webpack-cli": "./bin/cli.js" - }, - "main": "./bin/cli.js", - "engines": { - "node": ">=6.11.5" - }, - "keywords": [ - "webpack", - "cli", - "scaffolding", - "module", - "bundler" - ], - "files": [ - "bin" + "_args": [ + [ + "webpack-cli@3.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "appveyor:build": "lerna bootstrap && npm run build", - "appveyor:lint": "npm run lint && npm run tslint", - "appveyor:test": "npm run test", - "bootstrap": "npm run clean:all && npm install && lerna bootstrap", - "build": "tsc", - "bundlesize": "bundlesize", - "changelog": "conventional-changelog --config ./build/changelog-generator/index.js --infile CHANGELOG.md --same-file", - "clean:all": "rimraf node_modules package-lock.json packages/*/node_modules packages/*/package-lock.json", - "format": "prettier-eslint ./bin/*.js ./test/**/*.js ./packages/**/*.js --write", - "lint:codeOnly": "eslint \"{bin}/**/!(__testfixtures__)/*.js\" \"{bin}/**.js\"", - "lint": "eslint \"./bin/*.js\" \"./test/**/*.js\" \"packages/**/!(node_modules)/*.test.js\"", - "precommit": "lint-staged", - "pretest": "npm run build && npm run lint && npm run tslint", - "reportCoverage": "nyc report --reporter=json && codecov -f coverage/coverage-final.json --disable=gcov", - "test": "nyc jest", - "travis:integration": "npm run build && npm run test && npm run reportCoverage", - "travis:lint": "lerna bootstrap && npm run build && npm run lint && npm run tslint && npm run bundlesize", - "tslint": "tslint -c tslint.json \"packages/**/*.ts\"", - "watch": "tsc -w" + "_development": true, + "_from": "webpack-cli@3.1.0", + "_id": "webpack-cli@3.1.0", + "_inBundle": false, + "_integrity": "sha1-1xqDaH3P63WP3O6w/gQvlrz2KZQ=", + "_location": "/webpack-cli", + "_phantomChildren": { + "ansi-escapes": "3.2.0", + "camelcase": "5.3.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.1", + "code-point-at": "1.1.0", + "color-convert": "1.9.3", + "decamelize": "1.2.0", + "escape-string-regexp": "1.0.5", + "figures": "2.0.0", + "has-flag": "3.0.0", + "iconv-lite": "0.4.24", + "is-fullwidth-code-point": "2.0.0", + "lodash": "4.17.21", + "mute-stream": "0.0.7", + "number-is-nan": "1.0.1", + "os-locale": "3.1.0", + "path-exists": "3.0.0", + "require-directory": "2.1.1", + "resolve-cwd": "2.0.0", + "run-async": "2.4.1", + "rxjs": "6.6.7", + "set-blocking": "2.0.0", + "through": "2.3.8", + "tmp": "0.0.33", + "which-module": "2.0.0", + "y18n": "4.0.3" }, - "lint-staged": { - "{packages,bin}/**/!(__testfixtures__)/**.js": [ - "eslint --fix", - "git add" - ] + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-cli@3.1.0", + "name": "webpack-cli", + "escapedName": "webpack-cli", + "rawSpec": "3.1.0", + "saveSpec": null, + "fetchSpec": "3.1.0" }, - "jest": { - "testEnvironment": "node", - "collectCoverage": true, - "coverageReporters": [ - "json", - "html" - ] + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/webpack-cli/download/webpack-cli-3.1.0.tgz", + "_spec": "3.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "webpack-cli": "bin/cli.js" }, - "nyc": { - "include": [ - "bin/**.js", - "packages/**/*.js" - ], - "reporter": [ - "lcov" - ], - "all": true + "bugs": { + "url": "https://github.com/webpack/webpack-cli/issues" }, "bundlesize": [ { @@ -104,9 +96,7 @@ "v8-compile-cache": "^2.0.0", "yargs": "^12.0.1" }, - "peerDependencies": { - "webpack": "^4.x.x" - }, + "description": "CLI for webpack & friends", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-angular": "^7.0.0", @@ -136,5 +126,75 @@ "typescript": "^2.9.2", "webpack": "^4.8.3", "webpack-dev-server": "^3.1.4" - } + }, + "engines": { + "node": ">=6.11.5" + }, + "files": [ + "bin" + ], + "homepage": "https://github.com/webpack/webpack-cli#readme", + "jest": { + "testEnvironment": "node", + "collectCoverage": true, + "coverageReporters": [ + "json", + "html" + ] + }, + "keywords": [ + "webpack", + "cli", + "scaffolding", + "module", + "bundler" + ], + "license": "MIT", + "lint-staged": { + "{packages,bin}/**/!(__testfixtures__)/**.js": [ + "eslint --fix", + "git add" + ] + }, + "main": "./bin/cli.js", + "name": "webpack-cli", + "nyc": { + "include": [ + "bin/**.js", + "packages/**/*.js" + ], + "reporter": [ + "lcov" + ], + "all": true + }, + "peerDependencies": { + "webpack": "^4.x.x" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/webpack-cli.git" + }, + "scripts": { + "appveyor:build": "lerna bootstrap && npm run build", + "appveyor:lint": "npm run lint && npm run tslint", + "appveyor:test": "npm run test", + "bootstrap": "npm run clean:all && npm install && lerna bootstrap", + "build": "tsc", + "bundlesize": "bundlesize", + "changelog": "conventional-changelog --config ./build/changelog-generator/index.js --infile CHANGELOG.md --same-file", + "clean:all": "rimraf node_modules package-lock.json packages/*/node_modules packages/*/package-lock.json", + "format": "prettier-eslint ./bin/*.js ./test/**/*.js ./packages/**/*.js --write", + "lint": "eslint \"./bin/*.js\" \"./test/**/*.js\" \"packages/**/!(node_modules)/*.test.js\"", + "lint:codeOnly": "eslint \"{bin}/**/!(__testfixtures__)/*.js\" \"{bin}/**.js\"", + "precommit": "lint-staged", + "pretest": "npm run build && npm run lint && npm run tslint", + "reportCoverage": "nyc report --reporter=json && codecov -f coverage/coverage-final.json --disable=gcov", + "test": "nyc jest", + "travis:integration": "npm run build && npm run test && npm run reportCoverage", + "travis:lint": "lerna bootstrap && npm run build && npm run lint && npm run tslint && npm run bundlesize", + "tslint": "tslint -c tslint.json \"packages/**/*.ts\"", + "watch": "tsc -w" + }, + "version": "3.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime index 0a62a1b13..91e5e16a6 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mime/cli.js" "$@" + "$basedir/node" "$basedir/../mime/cli.js" "$@" + ret=$? else - exec node "$basedir/../mime/cli.js" "$@" + node "$basedir/../mime/cli.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.cmd b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.cmd index a9e48f1e3..678bc6bc0 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.cmd +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* +"%_prog%" "%dp0%\..\mime\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.ps1 b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.ps1 index 2222f40bc..a6f6f4700 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/.bin/mime.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../mime/cli.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/mime/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/mime/package.json index 8bbee31db..2483ce5f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/mime/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/node_modules/mime/package.json @@ -1,19 +1,46 @@ { + "_args": [ + [ + "mime@2.5.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "mime@2.5.2", + "_id": "mime@2.5.2", + "_inBundle": false, + "_integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", + "_location": "/webpack-dev-middleware/mime", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "mime@2.5.2", + "name": "mime", + "escapedName": "mime", + "rawSpec": "2.5.2", + "saveSpec": null, + "fetchSpec": "2.5.2" + }, + "_requiredBy": [ + "/webpack-dev-middleware" + ], + "_resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz", + "_spec": "2.5.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Robert Kieffer", - "url": "http://github.com/broofa", - "email": "robert@broofa.com" - }, - "engines": { - "node": ">=4.0.0" + "email": "robert@broofa.com", + "url": "http://github.com/broofa" }, "bin": { "mime": "cli.js" }, + "bugs": { + "url": "https://github.com/broofa/mime/issues" + }, "contributors": [], - "description": "A comprehensive library for mime-type mapping", - "license": "MIT", "dependencies": {}, + "description": "A comprehensive library for mime-type mapping", "devDependencies": { "benchmark": "*", "chalk": "4.1.0", @@ -25,6 +52,9 @@ "runmd": "*", "standard-version": "9.1.0" }, + "engines": { + "node": ">=4.0.0" + }, "files": [ "index.js", "lite.js", @@ -32,21 +62,23 @@ "cli.js", "/types" ], - "scripts": { - "prepare": "node src/build.js && runmd --output README.md src/README_js.md", - "release": "standard-version", - "benchmark": "node src/benchmark.js", - "md": "runmd --watch --output README.md src/README_js.md", - "test": "mocha src/test.js" - }, + "homepage": "https://github.com/broofa/mime#readme", "keywords": [ "util", "mime" ], + "license": "MIT", "name": "mime", "repository": { - "url": "https://github.com/broofa/mime", + "url": "git+https://github.com/broofa/mime.git", "type": "git" }, + "scripts": { + "benchmark": "node src/benchmark.js", + "md": "runmd --watch --output README.md src/README_js.md", + "prepare": "node src/build.js && runmd --output README.md src/README_js.md", + "release": "standard-version", + "test": "mocha src/test.js" + }, "version": "2.5.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/package.json index aa3d459f8..2ff21f8fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-middleware/package.json @@ -1,34 +1,37 @@ { - "name": "webpack-dev-middleware", - "version": "3.7.3", - "description": "A development middleware for webpack", - "license": "MIT", - "repository": "webpack/webpack-dev-middleware", - "author": "Tobias Koppers @sokra", - "homepage": "https://github.com/webpack/webpack-dev-middleware", - "bugs": "https://github.com/webpack/webpack-dev-middleware/issues", - "main": "index.js", - "engines": { - "node": ">= 6" - }, - "scripts": { - "commitlint": "commitlint --from=master", - "lint": "eslint --cache lib test", - "release": "standard-version", - "security": "npm audit", - "test:only": "jest", - "test:coverage": "npm run test:only -- --coverage", - "test:watch": "npm run test:only --watch", - "pretest": "npm run lint", - "test": "npm run test:coverage", - "defaults": "webpack-defaults" + "_args": [ + [ + "webpack-dev-middleware@3.7.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "webpack-dev-middleware@3.7.3", + "_id": "webpack-dev-middleware@3.7.3", + "_inBundle": false, + "_integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", + "_location": "/webpack-dev-middleware", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-dev-middleware@3.7.3", + "name": "webpack-dev-middleware", + "escapedName": "webpack-dev-middleware", + "rawSpec": "3.7.3", + "saveSpec": null, + "fetchSpec": "3.7.3" }, - "files": [ - "lib", - "index.js" + "_requiredBy": [ + "/webpack-dev-server" ], - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "_resolved": "https://registry.nlark.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz", + "_spec": "3.7.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/webpack-dev-middleware/issues" }, "dependencies": { "memory-fs": "^0.4.1", @@ -37,6 +40,7 @@ "range-parser": "^1.2.1", "webpack-log": "^2.0.0" }, + "description": "A development middleware for webpack", "devDependencies": { "@babel/cli": "^7.6.2", "@babel/core": "^7.6.2", @@ -64,9 +68,40 @@ "supertest": "^4.0.2", "webpack": "^4.41.0" }, + "engines": { + "node": ">= 6" + }, + "files": [ + "lib", + "index.js" + ], + "homepage": "https://github.com/webpack/webpack-dev-middleware", "keywords": [ "webpack", "middleware", "develompent" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "webpack-dev-middleware", + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/webpack-dev-middleware.git" + }, + "scripts": { + "commitlint": "commitlint --from=master", + "defaults": "webpack-defaults", + "lint": "eslint --cache lib test", + "pretest": "npm run lint", + "release": "standard-version", + "security": "npm audit", + "test": "npm run test:coverage", + "test:coverage": "npm run test:only -- --coverage", + "test:only": "jest", + "test:watch": "npm run test:only --watch" + }, + "version": "3.7.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver index 77443e787..7e365277d 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + ret=$? else - exec node "$basedir/../semver/bin/semver.js" "$@" + node "$basedir/../semver/bin/semver.js" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.cmd b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.cmd index 7d4c104af..3493d8d96 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.cmd +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* +"%_prog%" "%dp0%\..\semver\bin\semver.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.ps1 b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.ps1 index 314717ad4..6a85e3405 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/.bin/semver.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $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 - } + & "$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 - } + & "node$exe" "$basedir/../semver/bin/semver.js" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/debug/package.json index da809d2b8..711c12cc8 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/debug/package.json @@ -1,38 +1,59 @@ { - "name": "debug", - "version": "4.3.1", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@4.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "LICENSE", - "README.md" + "_from": "debug@4.3.1", + "_id": "debug@4.3.1", + "_inBundle": false, + "_integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "_location": "/webpack-dev-server/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@4.3.1", + "name": "debug", + "escapedName": "debug", + "rawSpec": "4.3.1", + "saveSpec": null, + "fetchSpec": "4.3.1" + }, + "_requiredBy": [ + "/webpack-dev-server" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", + "_spec": "4.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne ", - "Josh Junon " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "Josh Junon", + "email": "josh@junon.me" + } ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "istanbul cover _mocha -- test.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, "dependencies": { "ms": "2.1.2" }, + "description": "small debugging utility", "devDependencies": { "brfs": "^2.0.1", "browserify": "^16.2.3", @@ -46,14 +67,38 @@ "mocha-lcov-reporter": "^1.2.0", "xo": "^0.23.0" }, + "engines": { + "node": ">=6.0" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", "peerDependenciesMeta": { "supports-color": { "optional": true } }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - } + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls", + "test:node": "istanbul cover _mocha -- test.js" + }, + "version": "4.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/ms/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/ms/package.json index eea666e1f..fc41a308d 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/ms/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/ms/package.json @@ -1,16 +1,43 @@ { - "name": "ms", - "version": "2.1.2", - "description": "Tiny millisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" + "_args": [ + [ + "ms@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" + "_from": "ms@2.1.2", + "_id": "ms@2.1.2", + "_inBundle": false, + "_integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "_location": "/webpack-dev-server/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.2", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/webpack-dev-server/debug", + "/webpack-dev-server/portfinder/debug" + ], + "_resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" }, "eslintConfig": { "extends": "eslint:recommended", @@ -19,6 +46,11 @@ "es6": true } }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", "lint-staged": { "*.js": [ "npm run lint", @@ -26,12 +58,16 @@ "git add" ] }, - "license": "MIT", - "devDependencies": { - "eslint": "4.12.1", - "expect.js": "0.3.1", - "husky": "0.14.3", - "lint-staged": "5.0.0", - "mocha": "4.0.1" - } + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/node_modules/debug/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/node_modules/debug/package.json index 191c81547..3f00c3846 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/node_modules/debug/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/node_modules/debug/package.json @@ -1,32 +1,55 @@ { - "name": "debug", - "version": "3.2.7", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" + "_args": [ + [ + "debug@3.2.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "src", - "node.js", - "dist/debug.js", - "LICENSE", - "README.md" + "_from": "debug@3.2.7", + "_id": "debug@3.2.7", + "_inBundle": false, + "_integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "_location": "/webpack-dev-server/portfinder/debug", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "debug@3.2.7", + "name": "debug", + "escapedName": "debug", + "rawSpec": "3.2.7", + "saveSpec": null, + "fetchSpec": "3.2.7" + }, + "_requiredBy": [ + "/webpack-dev-server/portfinder" ], - "author": "TJ Holowaychuk ", + "_resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", + "_spec": "3.2.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + } ], - "license": "MIT", "dependencies": { "ms": "^2.1.1" }, + "description": "small debugging utility", "devDependencies": { "@babel/cli": "^7.0.0", "@babel/core": "^7.0.0", @@ -45,7 +68,26 @@ "rimraf": "^2.5.4", "xo": "^0.23.0" }, + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", "main": "./src/index.js", - "browser": "./src/browser.js", - "unpkg": "./dist/debug.js" + "name": "debug", + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "unpkg": "./dist/debug.js", + "version": "3.2.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/package.json index 1fdd4bff8..7571ac208 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/portfinder/package.json @@ -1,36 +1,73 @@ { - "name": "portfinder", - "description": "A simple tool to find an open port on the current machine", - "version": "1.0.28", - "author": "Charlie Robbins ", - "repository": { - "type": "git", - "url": "git@github.com:http-party/node-portfinder.git" - }, - "keywords": [ - "http", - "ports", - "utilities" + "_args": [ + [ + "portfinder@1.0.28", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "files": [ - "lib" + "_from": "portfinder@1.0.28", + "_id": "portfinder@1.0.28", + "_inBundle": false, + "_integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", + "_location": "/webpack-dev-server/portfinder", + "_phantomChildren": { + "ms": "2.1.2" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "portfinder@1.0.28", + "name": "portfinder", + "escapedName": "portfinder", + "rawSpec": "1.0.28", + "saveSpec": null, + "fetchSpec": "1.0.28" + }, + "_requiredBy": [ + "/webpack-dev-server" ], + "_resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596019866852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz", + "_spec": "1.0.28", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Charlie Robbins", + "email": "charlie.robbins@gmail.com" + }, + "bugs": { + "url": "https://github.com/http-party/node-portfinder/issues" + }, "dependencies": { "async": "^2.6.2", "debug": "^3.1.1", "mkdirp": "^0.5.5" }, + "description": "A simple tool to find an open port on the current machine", "devDependencies": { "glob": "^7.1.4", "vows": "^0.8.2" }, + "engines": { + "node": ">= 0.12.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/http-party/node-portfinder#readme", + "keywords": [ + "http", + "ports", + "utilities" + ], + "license": "MIT", "main": "./lib/portfinder", - "types": "./lib/portfinder.d.ts", + "name": "portfinder", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/http-party/node-portfinder.git" + }, "scripts": { "test": "vows test/*-test.js --spec" }, - "engines": { - "node": ">= 0.12.0" - }, - "license": "MIT" + "types": "./lib/portfinder.d.ts", + "version": "1.0.28" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/semver/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/semver/package.json index bdd442f50..140962ecd 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/semver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/semver/package.json @@ -1,28 +1,63 @@ { - "name": "semver", - "version": "6.3.0", - "description": "The semantic version parser used by npm.", - "main": "semver.js", - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "_args": [ + [ + "semver@6.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "semver@6.3.0", + "_id": "semver@6.3.0", + "_inBundle": false, + "_integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "_location": "/webpack-dev-server/semver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "semver@6.3.0", + "name": "semver", + "escapedName": "semver", + "rawSpec": "6.3.0", + "saveSpec": null, + "fetchSpec": "6.3.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "_spec": "6.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "semver": "bin/semver.js" + }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" }, + "description": "The semantic version parser used by npm.", "devDependencies": { "tap": "^14.3.1" }, - "license": "ISC", - "repository": "https://github.com/npm/node-semver", - "bin": { - "semver": "./bin/semver.js" - }, "files": [ "bin", "range.bnf", "semver.js" ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "semver.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap" + }, "tap": { "check-coverage": true - } + }, + "version": "6.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/supports-color/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/supports-color/package.json index db4ded22b..6475a42fa 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/supports-color/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/supports-color/package.json @@ -1,53 +1,88 @@ { - "name": "supports-color", - "version": "6.1.0", - "description": "Detect whether a terminal supports color", - "license": "MIT", - "repository": "chalk/supports-color", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "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": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "browser": "browser.js" + "_args": [ + [ + "supports-color@6.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "supports-color@6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "_location": "/webpack-dev-server/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "supports-color@6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "6.1.0", + "saveSpec": null, + "fetchSpec": "6.1.0" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "_spec": "6.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "dependencies": { + "has-flag": "^3.0.0" + }, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs-parser/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs-parser/package.json index 6300abf5c..bcf71fb44 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs-parser/package.json @@ -1,17 +1,60 @@ { - "name": "yargs-parser", - "version": "13.1.2", + "_args": [ + [ + "yargs-parser@13.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "yargs-parser@13.1.2", + "_id": "yargs-parser@13.1.2", + "_inBundle": false, + "_integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "_location": "/webpack-dev-server/yargs-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs-parser@13.1.2", + "name": "yargs-parser", + "escapedName": "yargs-parser", + "rawSpec": "13.1.2", + "saveSpec": null, + "fetchSpec": "13.1.2" + }, + "_requiredBy": [ + "/webpack-dev-server/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz", + "_spec": "13.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/yargs-parser/issues" + }, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "description": "the mighty option parser used by yargs", - "main": "index.js", - "scripts": { - "test": "nyc mocha test/*.js", - "posttest": "standard", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" + "devDependencies": { + "chai": "^4.2.0", + "coveralls": "^3.0.2", + "mocha": "^5.2.0", + "nyc": "^14.1.0", + "standard": "^12.0.1", + "standard-version": "^6.0.0" }, - "repository": { - "url": "git@github.com:yargs/yargs-parser.git" + "engine": { + "node": ">=6" }, + "files": [ + "lib", + "index.js" + ], + "homepage": "https://github.com/yargs/yargs-parser#readme", "keywords": [ "argument", "parser", @@ -23,25 +66,17 @@ "args", "argument" ], - "author": "Ben Coe ", "license": "ISC", - "devDependencies": { - "chai": "^4.2.0", - "coveralls": "^3.0.2", - "mocha": "^5.2.0", - "nyc": "^14.1.0", - "standard": "^12.0.1", - "standard-version": "^6.0.0" + "main": "index.js", + "name": "yargs-parser", + "repository": { + "url": "git+ssh://git@github.com/yargs/yargs-parser.git" }, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "posttest": "standard", + "release": "standard-version", + "test": "nyc mocha test/*.js" }, - "files": [ - "lib", - "index.js" - ], - "engine": { - "node": ">=6" - } + "version": "13.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs/package.json index 283d1f9be..7067420f6 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/node_modules/yargs/package.json @@ -1,23 +1,41 @@ { - "name": "yargs", - "version": "13.3.2", - "description": "yargs the modern, pirate-themed, successor to optimist.", - "main": "./index.js", + "_args": [ + [ + "yargs@13.3.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "yargs@13.3.2", + "_id": "yargs@13.3.2", + "_inBundle": false, + "_integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "_location": "/webpack-dev-server/yargs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs@13.3.2", + "name": "yargs", + "escapedName": "yargs", + "rawSpec": "13.3.2", + "saveSpec": null, + "fetchSpec": "13.3.2" + }, + "_requiredBy": [ + "/webpack-dev-server" + ], + "_resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "_spec": "13.3.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/yargs/yargs/issues" + }, "contributors": [ { "name": "Yargs Contributors", "url": "https://github.com/yargs/yargs/graphs/contributors" } ], - "files": [ - "index.js", - "yargs.js", - "lib", - "locales", - "completion.sh.hbs", - "completion.zsh.hbs", - "LICENSE" - ], "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", @@ -30,6 +48,7 @@ "y18n": "^4.0.0", "yargs-parser": "^13.1.2" }, + "description": "yargs the modern, pirate-themed, successor to optimist.", "devDependencies": { "chai": "^4.2.0", "chalk": "^2.4.2", @@ -46,22 +65,19 @@ "which": "^1.3.1", "yargs-test-extends": "^1.0.1" }, - "scripts": { - "pretest": "standard", - "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" - }, - "repository": { - "type": "git", - "url": "https://github.com/yargs/yargs.git" + "engine": { + "node": ">=6" }, + "files": [ + "index.js", + "yargs.js", + "lib", + "locales", + "completion.sh.hbs", + "completion.zsh.hbs", + "LICENSE" + ], "homepage": "https://yargs.js.org/", - "standard": { - "ignore": [ - "**/example/**" - ] - }, "keywords": [ "argument", "args", @@ -72,7 +88,22 @@ "command" ], "license": "MIT", - "engine": { - "node": ">=6" - } + "main": "./index.js", + "name": "yargs", + "repository": { + "type": "git", + "url": "git+https://github.com/yargs/yargs.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks" + }, + "standard": { + "ignore": [ + "**/example/**" + ] + }, + "version": "13.3.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/package.json index ef337acd6..5ede8fdc5 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-dev-server/package.json @@ -1,39 +1,55 @@ { - "name": "webpack-dev-server", - "version": "3.11.2", - "description": "Serves a webpack app. Updates the browser on changes.", - "bin": "bin/webpack-dev-server.js", - "main": "lib/Server.js", - "files": [ - "bin", - "lib", - "ssl", - "client" + "_args": [ + [ + "webpack-dev-server@3.11.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 6.11.5" + "_from": "webpack-dev-server@3.11.2", + "_id": "webpack-dev-server@3.11.2", + "_inBundle": false, + "_integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=", + "_location": "/webpack-dev-server", + "_phantomChildren": { + "async": "2.6.3", + "camelcase": "5.3.1", + "cliui": "5.0.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "has-flag": "3.0.0", + "mkdirp": "0.5.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.3" }, - "scripts": { - "lint:prettier": "prettier \"{**/*,*}.{js,json,md,yml,css}\" --list-different", - "lint:js": "eslint . --cache", - "lint": "npm-run-all -l -p \"lint:**\"", - "lint:type": "tsc --noEmit", - "commitlint": "commitlint --from=master", - "security": "npm audit", - "test:only": "jest --forceExit", - "test:coverage": "npm run test:only -- --coverage", - "test:watch": "npm run test:coverage --watch", - "test": "npm run test:coverage", - "pretest": "npm run lint", - "prepare": "rimraf ./ssl/*.pem && npm run build:client", - "build:client:default": "babel client-src/default --out-dir client --ignore \"./client-src/default/*.config.js\"", - "build:client:clients": "babel client-src/clients --out-dir client/clients", - "build:client:index": "webpack ./client-src/default/index.js -o client/index.bundle.js --color --config client-src/default/webpack.config.js", - "build:client:live": "webpack ./client-src/live/index.js -o client/live.bundle.js --color --config client-src/live/webpack.config.js", - "build:client:sockjs": "webpack ./client-src/sockjs/index.js -o client/sockjs.bundle.js --color --config client-src/sockjs/webpack.config.js", - "build:client": "rimraf ./client/* && npm-run-all -s -l -p \"build:client:**\"", - "webpack-dev-server": "node examples/run-example.js", - "release": "standard-version" + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-dev-server@3.11.2", + "name": "webpack-dev-server", + "escapedName": "webpack-dev-server", + "rawSpec": "3.11.2", + "saveSpec": null, + "fetchSpec": "3.11.2" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.nlark.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz", + "_spec": "3.11.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "bugs": { + "url": "https://github.com/webpack/webpack-dev-server/issues" }, "dependencies": { "ansi-html": "0.0.7", @@ -70,6 +86,7 @@ "ws": "^6.2.1", "yargs": "^13.3.2" }, + "description": "Serves a webpack app. Updates the browser on changes.", "devDependencies": { "@babel/cli": "^7.8.4", "@babel/core": "^7.9.6", @@ -113,6 +130,19 @@ "webpack": "^4.43.0", "webpack-cli": "^3.3.11" }, + "engines": { + "node": ">= 6.11.5" + }, + "files": [ + "bin", + "lib", + "ssl", + "client" + ], + "homepage": "https://github.com/webpack/webpack-dev-server#readme", + "license": "MIT", + "main": "lib/Server.js", + "name": "webpack-dev-server", "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" }, @@ -121,9 +151,31 @@ "optional": true } }, - "author": "Tobias Koppers @sokra", - "bugs": "https://github.com/webpack/webpack-dev-server/issues", - "homepage": "https://github.com/webpack/webpack-dev-server#readme", - "repository": "https://github.com/webpack/webpack-dev-server.git", - "license": "MIT" + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/webpack-dev-server.git" + }, + "scripts": { + "build:client": "rimraf ./client/* && npm-run-all -s -l -p \"build:client:**\"", + "build:client:clients": "babel client-src/clients --out-dir client/clients", + "build:client:default": "babel client-src/default --out-dir client --ignore \"./client-src/default/*.config.js\"", + "build:client:index": "webpack ./client-src/default/index.js -o client/index.bundle.js --color --config client-src/default/webpack.config.js", + "build:client:live": "webpack ./client-src/live/index.js -o client/live.bundle.js --color --config client-src/live/webpack.config.js", + "build:client:sockjs": "webpack ./client-src/sockjs/index.js -o client/sockjs.bundle.js --color --config client-src/sockjs/webpack.config.js", + "commitlint": "commitlint --from=master", + "lint": "npm-run-all -l -p \"lint:**\"", + "lint:js": "eslint . --cache", + "lint:prettier": "prettier \"{**/*,*}.{js,json,md,yml,css}\" --list-different", + "lint:type": "tsc --noEmit", + "prepare": "rimraf ./ssl/*.pem && npm run build:client", + "pretest": "npm run lint", + "release": "standard-version", + "security": "npm audit", + "test": "npm run test:coverage", + "test:coverage": "npm run test:only -- --coverage", + "test:only": "jest --forceExit", + "test:watch": "npm run test:coverage --watch", + "webpack-dev-server": "node examples/run-example.js" + }, + "version": "3.11.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-log/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-log/package.json index 539b337ad..8d0bf525c 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-log/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-log/package.json @@ -1,23 +1,45 @@ { - "name": "webpack-log", - "version": "2.0.0", - "description": "A common logger for the webpack ecosystem", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "webpack-log@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 6" + "_from": "webpack-log@2.0.0", + "_id": "webpack-log@2.0.0", + "_inBundle": false, + "_integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", + "_location": "/webpack-log", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-log@2.0.0", + "name": "webpack-log", + "escapedName": "webpack-log", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" }, - "scripts": { - "lint": "eslint src test", - "test": "nyc --reporter lcovonly mocha --full-trace --check-leaks", - "release": "standard-version" + "_requiredBy": [ + "/webpack-dev-middleware", + "/webpack-dev-server" + ], + "_resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477461878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Andrew Powell", + "email": "andrew@shellscape.org" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/webpack-log/issues" }, "dependencies": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" }, + "description": "A common logger for the webpack ecosystem", "devDependencies": { "assert": "^1.4.1", "eslint": "^5.4.0", @@ -29,9 +51,25 @@ "standard-version": "^4.4.0", "strip-ansi": "^4.0.0" }, - "author": "Andrew Powell ", - "issues": "https://github.com/webpack-contrib/webpack-log/issues", + "engines": { + "node": ">= 6" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/webpack-log#readme", - "repository": "https://github.com/webpack-contrib/webpack-log.git", - "license": "MIT" + "issues": "https://github.com/webpack-contrib/webpack-log/issues", + "license": "MIT", + "main": "src/index.js", + "name": "webpack-log", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/webpack-log.git" + }, + "scripts": { + "lint": "eslint src test", + "release": "standard-version", + "test": "nyc --reporter lcovonly mocha --full-trace --check-leaks" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-merge/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-merge/package.json index f57a1400e..15c799fe0 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-merge/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-merge/package.json @@ -1,23 +1,44 @@ { - "name": "webpack-merge", - "description": "Variant of merge that's useful for webpack configuration", - "author": "Juho Vepsalainen ", - "version": "4.1.4", - "scripts": { - "build": "babel src -d lib", - "watch": "npm-watch", - "test": "mocha tests/test-*", - "test:coverage": "istanbul cover node_modules/.bin/_mocha tests/test-*", - "test:lint": "eslint src/ tests/ --cache", - "preversion": "npm run test:lint && npm run build && npm test && git commit --allow-empty -am \"Update lib\"" + "_args": [ + [ + "webpack-merge@4.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "webpack-merge@4.1.4", + "_id": "webpack-merge@4.1.4", + "_inBundle": false, + "_integrity": "sha1-D9446r8tX9hSUcJKWoxI+KP063s=", + "_location": "/webpack-merge", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-merge@4.1.4", + "name": "webpack-merge", + "escapedName": "webpack-merge", + "rawSpec": "4.1.4", + "saveSpec": null, + "fetchSpec": "4.1.4" }, - "main": "lib/index.js", - "files": [ - "lib" + "_requiredBy": [ + "#DEV:/" ], + "_resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-4.1.4.tgz", + "_spec": "4.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Juho Vepsalainen", + "email": "bebraw@gmail.com" + }, + "bugs": { + "url": "https://github.com/survivejs/webpack-merge/issues" + }, "dependencies": { "lodash": "^4.17.5" }, + "description": "Variant of merge that's useful for webpack configuration", "devDependencies": { "babel-cli": "^6.26.0", "babel-plugin-lodash": "^3.3.2", @@ -34,24 +55,35 @@ "npm-watch": "^0.1.9", "webpack": "^1.15.0" }, - "repository": { - "type": "git", - "url": "https://github.com/survivejs/webpack-merge.git" - }, + "files": [ + "lib" + ], "homepage": "https://github.com/survivejs/webpack-merge", - "bugs": { - "url": "https://github.com/survivejs/webpack-merge/issues" - }, "keywords": [ "webpack", "merge" ], "license": "MIT", + "main": "lib/index.js", + "name": "webpack-merge", "pre-push": [ "test:lint", "build", "test" ], + "repository": { + "type": "git", + "url": "git+https://github.com/survivejs/webpack-merge.git" + }, + "scripts": { + "build": "babel src -d lib", + "preversion": "npm run test:lint && npm run build && npm test && git commit --allow-empty -am \"Update lib\"", + "test": "mocha tests/test-*", + "test:coverage": "istanbul cover node_modules/.bin/_mocha tests/test-*", + "test:lint": "eslint src/ tests/ --cache", + "watch": "npm-watch" + }, + "version": "4.1.4", "watch": { "build": { "patterns": [ diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-sources/node_modules/source-map/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-sources/node_modules/source-map/package.json index 24663417e..8ea93813e 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-sources/node_modules/source-map/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-sources/node_modules/source-map/package.json @@ -1,52 +1,193 @@ { - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.6.1", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", + "_args": [ + [ + "source-map@0.6.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "source-map@0.6.1", + "_id": "source-map@0.6.1", + "_inBundle": false, + "_integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "_location": "/webpack-sources/source-map", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "source-map@0.6.1", + "name": "source-map", + "escapedName": "source-map", + "rawSpec": "0.6.1", + "saveSpec": null, + "fetchSpec": "0.6.1" + }, + "_requiredBy": [ + "/webpack-sources" + ], + "_resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "_spec": "0.6.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Nick Fitzgerald", + "email": "nfitzgerald@mozilla.com" + }, + "bugs": { + "url": "https://github.com/mozilla/source-map/issues" + }, "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " + { + "name": "Tobias Koppers", + "email": "tobias.koppers@googlemail.com" + }, + { + "name": "Duncan Beevers", + "email": "duncan@dweebd.com" + }, + { + "name": "Stephen Crane", + "email": "scrane@mozilla.com" + }, + { + "name": "Ryan Seddon", + "email": "seddon.ryan@gmail.com" + }, + { + "name": "Miles Elam", + "email": "miles.elam@deem.com" + }, + { + "name": "Mihai Bazon", + "email": "mihai.bazon@gmail.com" + }, + { + "name": "Michael Ficarra", + "email": "github.public.email@michael.ficarra.me" + }, + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com" + }, + { + "name": "Alexander Solovyov", + "email": "alexander@solovyov.net" + }, + { + "name": "Felix Gnass", + "email": "fgnass@gmail.com" + }, + { + "name": "Conrad Irwin", + "email": "conrad.irwin@gmail.com" + }, + { + "name": "usrbincc", + "email": "usrbincc@yahoo.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Chase Douglas", + "email": "chase@newrelic.com" + }, + { + "name": "Evan Wallace", + "email": "evan.exe@gmail.com" + }, + { + "name": "Heather Arthur", + "email": "fayearthur@gmail.com" + }, + { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com" + }, + { + "name": "David Glasser", + "email": "glasser@davidglasser.net" + }, + { + "name": "Simon Lydell", + "email": "simon.lydell@gmail.com" + }, + { + "name": "Jmeas Smith", + "email": "jellyes2@gmail.com" + }, + { + "name": "Michael Z Goddard", + "email": "mzgoddard@gmail.com" + }, + { + "name": "azu", + "email": "azu@users.noreply.github.com" + }, + { + "name": "John Gozde", + "email": "john@gozde.ca" + }, + { + "name": "Adam Kirkton", + "email": "akirkton@truefitinnovation.com" + }, + { + "name": "Chris Montgomery", + "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" + }, + { + "name": "Jamie Wong", + "email": "jamie.lf.wong@gmail.com" + }, + { + "name": "Eddy Bruël", + "email": "ejpbruel@mozilla.com" + }, + { + "name": "Hawken Rives", + "email": "hawkrives@gmail.com" + }, + { + "name": "Gilad Peleg", + "email": "giladp007@gmail.com" + }, + { + "name": "djchie", + "email": "djchie.dev@gmail.com" + }, + { + "name": "Gary Ye", + "email": "garysye@gmail.com" + }, + { + "name": "Nicolas Lalevée", + "email": "nicolas.lalevee@hibnet.org" + } ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" + "description": "Generates and consumes source maps", + "devDependencies": { + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "engines": { + "node": ">=0.10.0" }, - "main": "./source-map.js", "files": [ "source-map.js", "source-map.d.ts", @@ -56,18 +197,19 @@ "dist/source-map.min.js", "dist/source-map.min.js.map" ], - "engines": { - "node": ">=0.10.0" - }, + "homepage": "https://github.com/mozilla/source-map", "license": "BSD-3-Clause", + "main": "./source-map.js", + "name": "source-map", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/mozilla/source-map.git" + }, "scripts": { - "test": "npm run build && node test/run-tests.js", "build": "webpack --color", + "test": "npm run build && node test/run-tests.js", "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" + "typings": "source-map", + "version": "0.6.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack-sources/package.json b/admin/vue2/element-admin-v3/node_modules/webpack-sources/package.json index e15a5a1c2..18264e7c6 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack-sources/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack-sources/package.json @@ -1,23 +1,46 @@ { - "name": "webpack-sources", - "version": "1.4.3", - "description": "Source code handling classes for webpack", - "main": "./lib/index.js", - "scripts": { - "pretest": "npm run lint && npm run beautify-lint", - "test": "mocha --full-trace --check-leaks", - "travis": "npm run cover -- --report lcovonly", - "lint": "eslint lib test", - "beautify-lint": "beautify-lint lib/**.js test/**.js", - "beautify": "beautify-rewrite lib/**.js test/**.js", - "precover": "npm run lint && npm run beautify-lint", - "cover": "istanbul cover node_modules/mocha/bin/_mocha", - "publish-patch": "npm test && npm version patch && git push && git push --tags && npm publish" + "_args": [ + [ + "webpack-sources@1.4.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "webpack-sources@1.4.3", + "_id": "webpack-sources@1.4.3", + "_inBundle": false, + "_integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "_location": "/webpack-sources", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack-sources@1.4.3", + "name": "webpack-sources", + "escapedName": "webpack-sources", + "rawSpec": "1.4.3", + "saveSpec": null, + "fetchSpec": "1.4.3" + }, + "_requiredBy": [ + "/last-call-webpack-plugin", + "/mini-css-extract-plugin", + "/uglifyjs-webpack-plugin", + "/webpack" + ], + "_resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz", + "_spec": "1.4.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bugs": { + "url": "https://github.com/webpack/webpack-sources/issues" }, "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" }, + "description": "Source code handling classes for webpack", "devDependencies": { "beautify-lint": "^1.0.3", "codecov.io": "^0.1.6", @@ -33,18 +56,28 @@ "files": [ "lib/" ], - "repository": { - "type": "git", - "url": "git+https://github.com/webpack/webpack-sources.git" - }, + "homepage": "https://github.com/webpack/webpack-sources#readme", "keywords": [ "webpack", "source-map" ], - "author": "Tobias Koppers @sokra", "license": "MIT", - "bugs": { - "url": "https://github.com/webpack/webpack-sources/issues" + "main": "./lib/index.js", + "name": "webpack-sources", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/webpack-sources.git" + }, + "scripts": { + "beautify": "beautify-rewrite lib/**.js test/**.js", + "beautify-lint": "beautify-lint lib/**.js test/**.js", + "cover": "istanbul cover node_modules/mocha/bin/_mocha", + "lint": "eslint lib test", + "precover": "npm run lint && npm run beautify-lint", + "pretest": "npm run lint && npm run beautify-lint", + "publish-patch": "npm test && npm version patch && git push && git push --tags && npm publish", + "test": "mocha --full-trace --check-leaks", + "travis": "npm run cover -- --report lcovonly" }, - "homepage": "https://github.com/webpack/webpack-sources#readme" + "version": "1.4.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn index 46a3e61a1..c31c43046 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn +++ b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn @@ -6,7 +6,10 @@ case `uname` in esac if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" + ret=$? else - exec node "$basedir/../acorn/bin/acorn" "$@" + node "$basedir/../acorn/bin/acorn" "$@" + ret=$? fi +exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.cmd b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.cmd index f38017c45..12c4fc4b0 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.cmd +++ b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.cmd @@ -1,9 +1,4 @@ @ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start SETLOCAL CALL :find_dp0 @@ -14,4 +9,9 @@ IF EXIST "%dp0%\node.exe" ( SET PATHEXT=%PATHEXT:;.JS;=;% ) -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* +"%_prog%" "%dp0%\..\acorn\bin\acorn" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.ps1 b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.ps1 index 6f6dcddf3..759f820d2 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.ps1 +++ b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/.bin/acorn.ps1 @@ -9,20 +9,10 @@ if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { } $ret=0 if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } + & "node$exe" "$basedir/../acorn/bin/acorn" $args $ret=$LASTEXITCODE } exit $ret diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/acorn/package.json b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/acorn/package.json index 41f858e94..40af7528d 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/acorn/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/acorn/package.json @@ -1,60 +1,327 @@ { - "name": "acorn", + "_args": [ + [ + "acorn@5.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "acorn@5.7.4", + "_id": "acorn@5.7.4", + "_inBundle": false, + "_integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "_location": "/webpack/acorn", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "acorn@5.7.4", + "name": "acorn", + "escapedName": "acorn", + "rawSpec": "5.7.4", + "saveSpec": null, + "fetchSpec": "5.7.4" + }, + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", + "_spec": "5.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bin": { + "acorn": "bin/acorn" + }, + "bugs": { + "url": "https://github.com/acornjs/acorn/issues" + }, + "contributors": [ + { + "name": "List of Acorn contributors. Updated before every release." + }, + { + "name": "Adrian Heine" + }, + { + "name": "Adrian Rakovsky" + }, + { + "name": "Alistair Braidwood" + }, + { + "name": "Amila Welihinda" + }, + { + "name": "Andres Suarez" + }, + { + "name": "Angelo" + }, + { + "name": "Aparajita Fishman" + }, + { + "name": "Arian Stolwijk" + }, + { + "name": "Artem Govorov" + }, + { + "name": "Boopesh Mahendran" + }, + { + "name": "Bradley Heinz" + }, + { + "name": "Brandon Mills" + }, + { + "name": "Charles Hughes" + }, + { + "name": "Charmander" + }, + { + "name": "Chris McKnight" + }, + { + "name": "Conrad Irwin" + }, + { + "name": "Daniel Tschinder" + }, + { + "name": "David Bonnet" + }, + { + "name": "Domenico Matteo" + }, + { + "name": "ehmicky" + }, + { + "name": "Eugene Obrezkov" + }, + { + "name": "Felix Maier" + }, + { + "name": "Forbes Lindesay" + }, + { + "name": "Gilad Peleg" + }, + { + "name": "impinball" + }, + { + "name": "Ingvar Stepanyan" + }, + { + "name": "Jackson Ray Hamilton" + }, + { + "name": "Jesse McCarthy" + }, + { + "name": "Jiaxing Wang" + }, + { + "name": "Joel Kemp" + }, + { + "name": "Johannes Herr" + }, + { + "name": "John-David Dalton" + }, + { + "name": "Jordan Klassen" + }, + { + "name": "Jürg Lehni" + }, + { + "name": "Kai Cataldo" + }, + { + "name": "keeyipchan" + }, + { + "name": "Keheliya Gallaba" + }, + { + "name": "Kevin Irish" + }, + { + "name": "Kevin Kwok" + }, + { + "name": "krator" + }, + { + "name": "laosb" + }, + { + "name": "luckyzeng" + }, + { + "name": "Marek" + }, + { + "name": "Marijn Haverbeke" + }, + { + "name": "Martin Carlberg" + }, + { + "name": "Mat Garcia" + }, + { + "name": "Mathias Bynens" + }, + { + "name": "Mathieu 'p01' Henri" + }, + { + "name": "Matthew Bastien" + }, + { + "name": "Max Schaefer" + }, + { + "name": "Max Zerzouri" + }, + { + "name": "Mihai Bazon" + }, + { + "name": "Mike Rennie" + }, + { + "name": "naoh" + }, + { + "name": "Nicholas C. Zakas" + }, + { + "name": "Nick Fitzgerald" + }, + { + "name": "Olivier Thomann" + }, + { + "name": "Oskar Schöldström" + }, + { + "name": "Paul Harper" + }, + { + "name": "Peter Rust" + }, + { + "name": "PlNG" + }, + { + "name": "Prayag Verma" + }, + { + "name": "ReadmeCritic" + }, + { + "name": "r-e-d" + }, + { + "name": "Renée Kooi" + }, + { + "name": "Richard Gibson" + }, + { + "name": "Rich Harris" + }, + { + "name": "Sebastian McKenzie" + }, + { + "name": "Shahar Soel" + }, + { + "name": "Sheel Bedi" + }, + { + "name": "Simen Bekkhus" + }, + { + "name": "Teddy Katz" + }, + { + "name": "Timothy Gu" + }, + { + "name": "Toru Nagashima" + }, + { + "name": "Victor Homyakov" + }, + { + "name": "Wexpo Lyu" + }, + { + "name": "zsjforcn" + } + ], "description": "ECMAScript parser", - "homepage": "https://github.com/acornjs/acorn", - "main": "dist/acorn.js", - "module": "dist/acorn.es.js", - "version": "5.7.4", + "devDependencies": { + "eslint": "^4.10.0", + "eslint-config-standard": "^10.2.1", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-standard": "^3.0.1", + "rollup": "^0.45.0", + "rollup-plugin-buble": "^0.16.0", + "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72", + "test262-parser-runner": "^0.4.0", + "unicode-11.0.0": "^0.7.7" + }, "engines": { "node": ">=0.4.0" }, + "homepage": "https://github.com/acornjs/acorn", + "license": "MIT", + "main": "dist/acorn.js", "maintainers": [ { "name": "Marijn Haverbeke", "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl" + "url": "http://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "web": "http://rreverser.com/" + "url": "http://rreverser.com/" }, { "name": "Adrian Heine", "email": "http://adrianheine.de" } ], + "module": "dist/acorn.es.js", + "name": "acorn", "repository": { "type": "git", - "url": "https://github.com/acornjs/acorn.git" + "url": "git+https://github.com/acornjs/acorn.git" }, - "license": "MIT", "scripts": { - "prepare": "npm run build && node test/run.js && node test/lint.js", - "test": "node test/run.js && node test/lint.js", - "pretest": "npm run build:main && npm run build:loose", - "test:test262": "node bin/run_test262.js", "build": "npm run build:main && npm run build:walk && npm run build:loose && npm run build:bin", + "build:bin": "rollup -c rollup/config.bin.js", + "build:loose": "rollup -c rollup/config.loose.js && rollup -c rollup/config.loose_es.js", "build:main": "rollup -c rollup/config.main.js", "build:walk": "rollup -c rollup/config.walk.js", - "build:loose": "rollup -c rollup/config.loose.js && rollup -c rollup/config.loose_es.js", - "build:bin": "rollup -c rollup/config.bin.js", - "lint": "eslint src/" - }, - "bin": { - "acorn": "./bin/acorn" + "lint": "eslint src/", + "prepare": "npm run build && node test/run.js && node test/lint.js", + "pretest": "npm run build:main && npm run build:loose", + "test": "node test/run.js && node test/lint.js", + "test:test262": "node bin/run_test262.js" }, - "devDependencies": { - "eslint": "^4.10.0", - "eslint-config-standard": "^10.2.1", - "eslint-plugin-import": "^2.2.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.5.0", - "eslint-plugin-standard": "^3.0.1", - "rollup": "^0.45.0", - "rollup-plugin-buble": "^0.16.0", - "test262": "git+https://github.com/tc39/test262.git#3bfad28cc302fd4455badcfcbca7c5bb7ce41a72", - "test262-parser-runner": "^0.4.0", - "unicode-11.0.0": "^0.7.7" - } + "version": "5.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/eslint-scope/package.json b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/eslint-scope/package.json index 52e9412a7..bc62532b6 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/eslint-scope/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/eslint-scope/package.json @@ -1,35 +1,40 @@ { - "name": "eslint-scope", - "description": "ECMAScript scope analyzer for ESLint", - "homepage": "http://github.com/eslint/eslint-scope", - "main": "lib/index.js", - "version": "4.0.3", - "engines": { - "node": ">=4.0.0" + "_args": [ + [ + "eslint-scope@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "eslint-scope@4.0.3", + "_id": "eslint-scope@4.0.3", + "_inBundle": false, + "_integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "_location": "/webpack/eslint-scope", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "eslint-scope@4.0.3", + "name": "eslint-scope", + "escapedName": "eslint-scope", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" }, - "repository": "eslint/eslint-scope", + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933675196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "bugs": { "url": "https://github.com/eslint/eslint-scope/issues" }, - "license": "BSD-2-Clause", - "scripts": { - "test": "node Makefile.js test", - "lint": "node Makefile.js lint", - "generate-release": "eslint-generate-release", - "generate-alpharelease": "eslint-generate-prerelease alpha", - "generate-betarelease": "eslint-generate-prerelease beta", - "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" - }, - "files": [ - "LICENSE", - "README.md", - "lib" - ], "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" }, + "description": "ECMAScript scope analyzer for ESLint", "devDependencies": { "chai": "^3.4.1", "eslint": "^3.15.0", @@ -42,5 +47,31 @@ "shelljs": "^0.7.6", "typescript": "~2.0.10", "typescript-eslint-parser": "^1.0.0" - } + }, + "engines": { + "node": ">=4.0.0" + }, + "files": [ + "LICENSE", + "README.md", + "lib" + ], + "homepage": "http://github.com/eslint/eslint-scope", + "license": "BSD-2-Clause", + "main": "lib/index.js", + "name": "eslint-scope", + "repository": { + "type": "git", + "url": "git+https://github.com/eslint/eslint-scope.git" + }, + "scripts": { + "generate-alpharelease": "eslint-generate-prerelease alpha", + "generate-betarelease": "eslint-generate-prerelease beta", + "generate-rcrelease": "eslint-generate-prerelease rc", + "generate-release": "eslint-generate-release", + "lint": "node Makefile.js lint", + "publish-release": "eslint-publish-release", + "test": "node Makefile.js test" + }, + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/schema-utils/package.json b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/schema-utils/package.json index ab2bf6078..404c74f45 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/schema-utils/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack/node_modules/schema-utils/package.json @@ -1,25 +1,44 @@ { - "name": "schema-utils", - "version": "0.4.7", - "description": "webpack Validation Utils", - "main": "src/index.js", - "files": [ - "src" + "_args": [ + [ + "schema-utils@0.4.7", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "engines": { - "node": ">= 4" + "_from": "schema-utils@0.4.7", + "_id": "schema-utils@0.4.7", + "_inBundle": false, + "_integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "_location": "/webpack/schema-utils", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "schema-utils@0.4.7", + "name": "schema-utils", + "escapedName": "schema-utils", + "rawSpec": "0.4.7", + "saveSpec": null, + "fetchSpec": "0.4.7" }, - "scripts": { - "lint": "eslint --cache src test", - "test": "jest --env node --verbose --coverage", - "clean": "del-cli coverage", - "commits": "commitlint --from $(git rev-list --tags --max-count=1)", - "release": "npm run commits && standard-version" + "_requiredBy": [ + "/webpack" + ], + "_resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", + "_spec": "0.4.7", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "webpack Contrib", + "url": "https://github.com/webpack-contrib" + }, + "bugs": { + "url": "https://github.com/webpack-contrib/schema-utils/issues" }, "dependencies": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" }, + "description": "webpack Validation Utils", "devDependencies": { "@commitlint/cli": "^7.0.0", "@commitlint/config-conventional": "^7.0.0", @@ -32,9 +51,26 @@ "prettier": "^1.0.0", "standard-version": "^4.0.0" }, - "author": "webpack Contrib (https://github.com/webpack-contrib)", - "bugs": "https://github.com/webpack-contrib/schema-utils/issues", + "engines": { + "node": ">= 4" + }, + "files": [ + "src" + ], "homepage": "https://github.com/webpack-contrib/schema-utils", - "repository": "https://github.com/webpack-contrib/schema-utils", - "license": "MIT" + "license": "MIT", + "main": "src/index.js", + "name": "schema-utils", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack-contrib/schema-utils.git" + }, + "scripts": { + "clean": "del-cli coverage", + "commits": "commitlint --from $(git rev-list --tags --max-count=1)", + "lint": "eslint --cache src test", + "release": "npm run commits && standard-version", + "test": "jest --env node --verbose --coverage" + }, + "version": "0.4.7" } diff --git a/admin/vue2/element-admin-v3/node_modules/webpack/package.json b/admin/vue2/element-admin-v3/node_modules/webpack/package.json index a319676af..bfaa0ed7f 100644 --- a/admin/vue2/element-admin-v3/node_modules/webpack/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webpack/package.json @@ -1,9 +1,46 @@ { - "name": "webpack", - "version": "4.16.5", - "author": "Tobias Koppers @sokra", - "description": "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.", - "license": "MIT", + "_args": [ + [ + "webpack@4.16.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "webpack@4.16.5", + "_id": "webpack@4.16.5", + "_inBundle": false, + "_integrity": "sha1-Kfs5Rigj1+uK78q4tF9/JB2w0JI=", + "_location": "/webpack", + "_phantomChildren": { + "ajv": "6.12.6", + "ajv-keywords": "3.5.2", + "esrecurse": "4.3.0", + "estraverse": "4.3.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "webpack@4.16.5", + "name": "webpack", + "escapedName": "webpack", + "rawSpec": "4.16.5", + "saveSpec": null, + "fetchSpec": "4.16.5" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.nlark.com/webpack/download/webpack-4.16.5.tgz?cache=0&sync_timestamp=1622150231355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.16.5.tgz", + "_spec": "4.16.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Tobias Koppers @sokra" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "bugs": { + "url": "https://github.com/webpack/webpack/issues" + }, "dependencies": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-module-context": "1.5.13", @@ -31,6 +68,7 @@ "watchpack": "^1.5.0", "webpack-sources": "^1.0.1" }, + "description": "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.", "devDependencies": { "@types/node": "^9.6.4", "@types/tapable": "^1.0.1", @@ -85,14 +123,6 @@ "engines": { "node": ">=6.11.5" }, - "repository": { - "type": "git", - "url": "https://github.com/webpack/webpack.git" - }, - "homepage": "https://github.com/webpack/webpack", - "main": "lib/webpack.js", - "web": "lib/webpack.web.js", - "bin": "./bin/webpack.js", "files": [ "lib/", "bin/", @@ -102,47 +132,12 @@ "schemas/", "SECURITY.md" ], - "scripts": { - "setup": "node ./setup/setup.js", - "test": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest", - "test:update-snapshots": "yarn jest -u", - "test:integration": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/*.test.js\"", - "test:basic": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/{TestCasesNormal,StatsTestCases,ConfigTestCases}.test.js\"", - "test:unit": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/*.unittest.js\"", - "travis:integration": "yarn cover:init && yarn cover:integration \"test/(?!TestCases)\" --ci $JEST && mv coverage/coverage-final.json coverage/coverage-final-1.json && yarn cover:integration \"test/TestCasesD\" --ci $JEST && mv coverage/coverage-final.json coverage/coverage-final-2.json && yarn cover:integration \"test/TestCases(?!D)\" --ci $JEST && mv coverage/coverage-final.json coverage/coverage-final-3.json", - "travis:basic": "yarn test:basic --ci $JEST", - "travis:lint-unit": "yarn lint && yarn cover:init && yarn cover:unit --ci $JEST", - "travis:benchmark": "yarn benchmark --ci", - "appveyor:integration": "yarn cover:init && yarn cover:integration \"test/(?!TestCases)\" --ci %JEST% && move coverage\\coverage-final.json coverage\\coverage-final-1.json&& yarn cover:integration \"test/TestCasesD\" --ci %JEST% && move coverage\\coverage-final.json coverage\\coverage-final-2.json && yarn cover:integration \"test/TestCases(?!D)\" --ci %JEST% && move coverage\\coverage-final.json coverage\\coverage-final-3.json", - "appveyor:unit": "yarn cover:init && yarn cover:unit --ci %JEST%", - "appveyor:benchmark": "yarn benchmark --ci", - "build:examples": "cd examples && node buildAll.js", - "pretest": "yarn lint", - "prelint": "yarn setup", - "lint": "yarn code-lint && yarn schema-lint && yarn type-lint", - "code-lint": "eslint --cache setup lib bin hot buildin benchmark tooling \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\"", - "type-lint": "tsc --pretty", - "fix": "yarn code-lint --fix", - "pretty": "prettier --write \"setup/**/*.js\" \"lib/**/*.js\" \"bin/*.js\" \"hot/*.js\" \"buildin/*.js\" \"benchmark/**/*.js\" \"tooling/*.js\" \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\" \"declarations.d.ts\" \"tsconfig.json\"", - "schema-lint": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --testMatch \"/test/*.lint.js\" --no-verbose", - "benchmark": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/*.benchmark.js\" --runInBand", - "cover": "yarn cover:init && yarn cover:all && yarn cover:report", - "cover:init": "rimraf coverage", - "cover:all": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --coverage", - "cover:integration": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --testMatch \"/test/*.test.js\" --coverage", - "cover:unit": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --testMatch \"/test/*.unittest.js\" --coverage", - "cover:report": "istanbul report" - }, + "homepage": "https://github.com/webpack/webpack", "husky": { "hooks": { "pre-commit": "lint-staged" } }, - "lint-staged": { - "lib/**/*.js": [ - "eslint --cache" - ] - }, "jest": { "forceExit": true, "setupTestFrameworkScriptFile": "/test/setupTestFramework.js", @@ -186,5 +181,50 @@ "coverageReporters": [ "json" ] - } + }, + "license": "MIT", + "lint-staged": { + "lib/**/*.js": [ + "eslint --cache" + ] + }, + "main": "lib/webpack.js", + "name": "webpack", + "repository": { + "type": "git", + "url": "git+https://github.com/webpack/webpack.git" + }, + "scripts": { + "appveyor:benchmark": "yarn benchmark --ci", + "appveyor:integration": "yarn cover:init && yarn cover:integration \"test/(?!TestCases)\" --ci %JEST% && move coverage\\coverage-final.json coverage\\coverage-final-1.json&& yarn cover:integration \"test/TestCasesD\" --ci %JEST% && move coverage\\coverage-final.json coverage\\coverage-final-2.json && yarn cover:integration \"test/TestCases(?!D)\" --ci %JEST% && move coverage\\coverage-final.json coverage\\coverage-final-3.json", + "appveyor:unit": "yarn cover:init && yarn cover:unit --ci %JEST%", + "benchmark": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/*.benchmark.js\" --runInBand", + "build:examples": "cd examples && node buildAll.js", + "code-lint": "eslint --cache setup lib bin hot buildin benchmark tooling \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\"", + "cover": "yarn cover:init && yarn cover:all && yarn cover:report", + "cover:all": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --coverage", + "cover:init": "rimraf coverage", + "cover:integration": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --testMatch \"/test/*.test.js\" --coverage", + "cover:report": "istanbul report", + "cover:unit": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --testMatch \"/test/*.unittest.js\" --coverage", + "fix": "yarn code-lint --fix", + "lint": "yarn code-lint && yarn schema-lint && yarn type-lint", + "prelint": "yarn setup", + "pretest": "yarn lint", + "pretty": "prettier --write \"setup/**/*.js\" \"lib/**/*.js\" \"bin/*.js\" \"hot/*.js\" \"buildin/*.js\" \"benchmark/**/*.js\" \"tooling/*.js\" \"test/*.js\" \"test/**/webpack.config.js\" \"examples/**/webpack.config.js\" \"schemas/**/*.js\" \"declarations.d.ts\" \"tsconfig.json\"", + "schema-lint": "node --max-old-space-size=4096 node_modules/jest-cli/bin/jest --testMatch \"/test/*.lint.js\" --no-verbose", + "setup": "node ./setup/setup.js", + "test": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest", + "test:basic": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/{TestCasesNormal,StatsTestCases,ConfigTestCases}.test.js\"", + "test:integration": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/*.test.js\"", + "test:unit": "node --max-old-space-size=4096 --trace-deprecation node_modules/jest-cli/bin/jest --testMatch \"/test/*.unittest.js\"", + "test:update-snapshots": "yarn jest -u", + "travis:basic": "yarn test:basic --ci $JEST", + "travis:benchmark": "yarn benchmark --ci", + "travis:integration": "yarn cover:init && yarn cover:integration \"test/(?!TestCases)\" --ci $JEST && mv coverage/coverage-final.json coverage/coverage-final-1.json && yarn cover:integration \"test/TestCasesD\" --ci $JEST && mv coverage/coverage-final.json coverage/coverage-final-2.json && yarn cover:integration \"test/TestCases(?!D)\" --ci $JEST && mv coverage/coverage-final.json coverage/coverage-final-3.json", + "travis:lint-unit": "yarn lint && yarn cover:init && yarn cover:unit --ci $JEST", + "type-lint": "tsc --pretty" + }, + "version": "4.16.5", + "web": "lib/webpack.web.js" } diff --git a/admin/vue2/element-admin-v3/node_modules/websocket-driver/package.json b/admin/vue2/element-admin-v3/node_modules/websocket-driver/package.json index fab2506b2..bf8d80110 100644 --- a/admin/vue2/element-admin-v3/node_modules/websocket-driver/package.json +++ b/admin/vue2/element-admin-v3/node_modules/websocket-driver/package.json @@ -1,35 +1,70 @@ { - "name": "websocket-driver", - "description": "WebSocket protocol handler with pluggable I/O", - "homepage": "https://github.com/faye/websocket-driver-node", - "author": "James Coglan (http://jcoglan.com/)", - "keywords": [ - "websocket" - ], - "license": "Apache-2.0", - "version": "0.7.4", - "engines": { - "node": ">=0.8.0" - }, - "files": [ - "lib" - ], - "main": "./lib/websocket/driver", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "devDependencies": { - "jstest": "*", - "permessage-deflate": "*" - }, - "scripts": { - "test": "jstest spec/runner.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/faye/websocket-driver-node.git" - }, - "bugs": "https://github.com/faye/websocket-driver-node/issues" + "_args": [ + [ + "websocket-driver@0.7.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "websocket-driver@0.7.4", + "_id": "websocket-driver@0.7.4", + "_inBundle": false, + "_integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=", + "_location": "/websocket-driver", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "websocket-driver@0.7.4", + "name": "websocket-driver", + "escapedName": "websocket-driver", + "rawSpec": "0.7.4", + "saveSpec": null, + "fetchSpec": "0.7.4" + }, + "_requiredBy": [ + "/faye-websocket", + "/sockjs" + ], + "_resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz", + "_spec": "0.7.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Coglan", + "email": "jcoglan@gmail.com", + "url": "http://jcoglan.com/" + }, + "bugs": { + "url": "https://github.com/faye/websocket-driver-node/issues" + }, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "description": "WebSocket protocol handler with pluggable I/O", + "devDependencies": { + "jstest": "*", + "permessage-deflate": "*" + }, + "engines": { + "node": ">=0.8.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/faye/websocket-driver-node", + "keywords": [ + "websocket" + ], + "license": "Apache-2.0", + "main": "./lib/websocket/driver", + "name": "websocket-driver", + "repository": { + "type": "git", + "url": "git://github.com/faye/websocket-driver-node.git" + }, + "scripts": { + "test": "jstest spec/runner.js" + }, + "version": "0.7.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/websocket-extensions/package.json b/admin/vue2/element-admin-v3/node_modules/websocket-extensions/package.json index e4f2f916b..d2271d335 100644 --- a/admin/vue2/element-admin-v3/node_modules/websocket-extensions/package.json +++ b/admin/vue2/element-admin-v3/node_modules/websocket-extensions/package.json @@ -1,29 +1,63 @@ { - "name": "websocket-extensions", - "description": "Generic extension manager for WebSocket connections", - "homepage": "http://github.com/faye/websocket-extensions-node", - "author": "James Coglan (http://jcoglan.com/)", - "keywords": [ - "websocket" - ], - "license": "Apache-2.0", - "version": "0.1.4", - "engines": { - "node": ">=0.8.0" - }, - "files": [ - "lib" - ], - "main": "./lib/websocket_extensions", - "devDependencies": { - "jstest": "*" - }, - "scripts": { - "test": "jstest spec/runner.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/faye/websocket-extensions-node.git" - }, - "bugs": "http://github.com/faye/websocket-extensions-node/issues" + "_args": [ + [ + "websocket-extensions@0.1.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "websocket-extensions@0.1.4", + "_id": "websocket-extensions@0.1.4", + "_inBundle": false, + "_integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", + "_location": "/websocket-extensions", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "websocket-extensions@0.1.4", + "name": "websocket-extensions", + "escapedName": "websocket-extensions", + "rawSpec": "0.1.4", + "saveSpec": null, + "fetchSpec": "0.1.4" + }, + "_requiredBy": [ + "/websocket-driver" + ], + "_resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", + "_spec": "0.1.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Coglan", + "email": "jcoglan@gmail.com", + "url": "http://jcoglan.com/" + }, + "bugs": { + "url": "http://github.com/faye/websocket-extensions-node/issues" + }, + "description": "Generic extension manager for WebSocket connections", + "devDependencies": { + "jstest": "*" + }, + "engines": { + "node": ">=0.8.0" + }, + "files": [ + "lib" + ], + "homepage": "http://github.com/faye/websocket-extensions-node", + "keywords": [ + "websocket" + ], + "license": "Apache-2.0", + "main": "./lib/websocket_extensions", + "name": "websocket-extensions", + "repository": { + "type": "git", + "url": "git://github.com/faye/websocket-extensions-node.git" + }, + "scripts": { + "test": "jstest spec/runner.js" + }, + "version": "0.1.4" } diff --git a/admin/vue2/element-admin-v3/node_modules/webwackify/package.json b/admin/vue2/element-admin-v3/node_modules/webwackify/package.json index 2d0bdcaa6..cb534eeb5 100644 --- a/admin/vue2/element-admin-v3/node_modules/webwackify/package.json +++ b/admin/vue2/element-admin-v3/node_modules/webwackify/package.json @@ -1,15 +1,48 @@ { - "name": "webwackify", - "version": "0.1.6", + "_args": [ + [ + "webwackify@0.1.6", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "webwackify@0.1.6", + "_id": "webwackify@0.1.6", + "_inBundle": false, + "_integrity": "sha1-HUKhKsYYI9fjRaveCE6qpipKles=", + "_location": "/webwackify", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "webwackify@0.1.6", + "name": "webwackify", + "escapedName": "webwackify", + "rawSpec": "0.1.6", + "saveSpec": null, + "fetchSpec": "0.1.6" + }, + "_requiredBy": [ + "/videojs-contrib-hls", + "/videojs-contrib-media-sources" + ], + "_resolved": "https://registry.npm.taobao.org/webwackify/download/webwackify-0.1.6.tgz", + "_spec": "0.1.6", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Matt Neil" + }, + "bugs": { + "url": "https://github.com/videojs/webwackify/issues" + }, + "dependencies": {}, "description": "launch a web worker that can require() in the browser with browserify and webpack", + "homepage": "https://github.com/videojs/webwackify#readme", + "license": "MIT", "main": "index.js", - "dependencies": {}, + "name": "webwackify", "repository": { "type": "git", - "url": "git@github.com:videojs/webwackify.git" - }, - "author": { - "name": "Matt Neil" + "url": "git+ssh://git@github.com/videojs/webwackify.git" }, - "license": "MIT" + "version": "0.1.6" } diff --git a/admin/vue2/element-admin-v3/node_modules/which-boxed-primitive/package.json b/admin/vue2/element-admin-v3/node_modules/which-boxed-primitive/package.json index 0ef53eb59..03f19a93e 100644 --- a/admin/vue2/element-admin-v3/node_modules/which-boxed-primitive/package.json +++ b/admin/vue2/element-admin-v3/node_modules/which-boxed-primitive/package.json @@ -1,65 +1,97 @@ { - "name": "which-boxed-primitive", - "version": "1.0.2", - "description": "Which kind of boxed JS primitive is this?", - "main": "index.js", - "scripts": { - "preversion": "auto-changelog", - "prepublish": "not-in-publish || safe-publish-latest", - "lint": "eslint --ext=js,mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --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/inspect-js/which-boxed-primitive.git" - }, - "keywords": [ - "boxed", - "primitive", - "object", - "ecmascript", - "javascript", - "which" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/which-boxed-primitive/issues" - }, - "homepage": "https://github.com/inspect-js/which-boxed-primitive#readme", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.15.0", - "has-symbols": "^1.0.1", - "in-publish": "^2.0.1", - "nyc": "^10.3.2", - "object-inspect": "^1.9.0", - "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } + "_args": [ + [ + "which-boxed-primitive@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "which-boxed-primitive@1.0.2", + "_id": "which-boxed-primitive@1.0.2", + "_inBundle": false, + "_integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", + "_location": "/which-boxed-primitive", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "which-boxed-primitive@1.0.2", + "name": "which-boxed-primitive", + "escapedName": "which-boxed-primitive", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/unbox-primitive" + ], + "_resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "bugs": { + "url": "https://github.com/inspect-js/which-boxed-primitive/issues" + }, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "description": "Which kind of boxed JS primitive is this?", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.15.0", + "has-symbols": "^1.0.1", + "in-publish": "^2.0.1", + "nyc": "^10.3.2", + "object-inspect": "^1.9.0", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/inspect-js/which-boxed-primitive#readme", + "keywords": [ + "boxed", + "primitive", + "object", + "ecmascript", + "javascript", + "which" + ], + "license": "MIT", + "main": "index.js", + "name": "which-boxed-primitive", + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/which-boxed-primitive.git" + }, + "scripts": { + "lint": "eslint --ext=js,mjs .", + "posttest": "aud --production", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || safe-publish-latest", + "pretest": "npm run lint", + "preversion": "auto-changelog", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "version": "auto-changelog && git add CHANGELOG.md" + }, + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/which-module/package.json b/admin/vue2/element-admin-v3/node_modules/which-module/package.json index 3566aff0e..c8cbabdd3 100644 --- a/admin/vue2/element-admin-v3/node_modules/which-module/package.json +++ b/admin/vue2/element-admin-v3/node_modules/which-module/package.json @@ -1,21 +1,53 @@ { - "name": "which-module", - "version": "2.0.0", + "_args": [ + [ + "which-module@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "which-module@2.0.0", + "_id": "which-module@2.0.0", + "_inBundle": false, + "_integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "_location": "/which-module", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "which-module@2.0.0", + "name": "which-module", + "escapedName": "which-module", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/sass-graph/yargs", + "/webpack-cli/yargs", + "/webpack-dev-server/yargs", + "/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "nexdrew" + }, + "bugs": { + "url": "https://github.com/nexdrew/which-module/issues" + }, "description": "Find the module object for something that was require()d", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "nyc ava", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" + "devDependencies": { + "ava": "^0.19.1", + "coveralls": "^2.13.1", + "nyc": "^10.3.0", + "standard": "^10.0.2", + "standard-version": "^4.0.0" }, "files": [ "index.js" ], - "repository": { - "type": "git", - "url": "git+https://github.com/nexdrew/which-module.git" - }, + "homepage": "https://github.com/nexdrew/which-module#readme", "keywords": [ "which", "module", @@ -25,17 +57,18 @@ "reverse", "lookup" ], - "author": "nexdrew", "license": "ISC", - "bugs": { - "url": "https://github.com/nexdrew/which-module/issues" + "main": "index.js", + "name": "which-module", + "repository": { + "type": "git", + "url": "git+https://github.com/nexdrew/which-module.git" }, - "homepage": "https://github.com/nexdrew/which-module#readme", - "devDependencies": { - "ava": "^0.19.1", - "coveralls": "^2.13.1", - "nyc": "^10.3.0", - "standard": "^10.0.2", - "standard-version": "^4.0.0" - } + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc ava" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/which/package.json b/admin/vue2/element-admin-v3/node_modules/which/package.json index 51be376f6..b50ee743e 100644 --- a/admin/vue2/element-admin-v3/node_modules/which/package.json +++ b/admin/vue2/element-admin-v3/node_modules/which/package.json @@ -1,30 +1,72 @@ { - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "1.3.1", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" + "_args": [ + [ + "which@1.3.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "which@1.3.1", + "_id": "which@1.3.1", + "_inBundle": false, + "_integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "_location": "/which", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "which@1.3.1", + "name": "which", + "escapedName": "which", + "rawSpec": "1.3.1", + "saveSpec": null, + "fetchSpec": "1.3.1" + }, + "_requiredBy": [ + "/cross-spawn", + "/eslint/cross-spawn", + "/lint-staged/cross-spawn", + "/npm-path", + "/npm-which" + ], + "_resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "_spec": "1.3.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me" + }, + "bin": { + "which": "bin/which" + }, + "bugs": { + "url": "https://github.com/isaacs/node-which/issues" }, - "main": "which.js", - "bin": "./bin/which", - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, + "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", "devDependencies": { "mkdirp": "^0.5.0", "rimraf": "^2.6.2", "tap": "^12.0.1" }, - "scripts": { - "test": "tap test/*.js --cov", - "changelog": "bash gen-changelog.sh", - "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}" - }, "files": [ "which.js", "bin/which" - ] + ], + "homepage": "https://github.com/isaacs/node-which#readme", + "license": "ISC", + "main": "which.js", + "name": "which", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-which.git" + }, + "scripts": { + "changelog": "bash gen-changelog.sh", + "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}", + "test": "tap test/*.js --cov" + }, + "version": "1.3.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/ansi-regex/package.json index e94852fd7..ab996963a 100644 --- a/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/ansi-regex/package.json @@ -1,24 +1,53 @@ { - "name": "ansi-regex", - "version": "3.0.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", + "_args": [ + [ + "ansi-regex@3.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "ansi-regex@3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/wide-align/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "3.0.0", + "saveSpec": null, + "fetchSpec": "3.0.0" + }, + "_requiredBy": [ + "/wide-align/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", + "_spec": "3.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/ansi-regex#readme", "keywords": [ "ansi", "styles", @@ -46,8 +75,15 @@ "find", "pattern" ], - "devDependencies": { - "ava": "*", - "xo": "*" - } + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/string-width/package.json b/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/string-width/package.json index 89f0b6a6c..1db6da5c3 100644 --- a/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/string-width/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/string-width/package.json @@ -1,55 +1,91 @@ { - "name": "string-width", - "version": "2.1.1", - "description": "Get the visual width of a string - the number of columns required to display it", - "license": "MIT", - "repository": "sindresorhus/string-width", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "_args": [ + [ + "string-width@2.1.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "string-width@2.1.1", + "_id": "string-width@2.1.1", + "_inBundle": false, + "_integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "_location": "/wide-align/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "string-width@2.1.1", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/wide-align" + ], + "_resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", + "_spec": "2.1.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.1.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/strip-ansi/package.json index 555f19461..7e2f312fd 100644 --- a/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wide-align/node_modules/strip-ansi/package.json @@ -1,23 +1,56 @@ { - "name": "strip-ansi", - "version": "4.0.0", - "description": "Strip ANSI escape codes", - "license": "MIT", - "repository": "chalk/strip-ansi", + "_args": [ + [ + "strip-ansi@4.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "strip-ansi@4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/wide-align/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "4.0.0", + "saveSpec": null, + "fetchSpec": "4.0.0" + }, + "_requiredBy": [ + "/wide-align/string-width" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "_spec": "4.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "xo && ava" - }, "files": [ "index.js" ], + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -42,11 +75,14 @@ "command-line", "text" ], - "dependencies": { - "ansi-regex": "^3.0.0" + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" }, - "devDependencies": { - "ava": "*", - "xo": "*" - } + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wide-align/package.json b/admin/vue2/element-admin-v3/node_modules/wide-align/package.json index 1c31f9984..9934e1aeb 100644 --- a/admin/vue2/element-admin-v3/node_modules/wide-align/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wide-align/package.json @@ -1,12 +1,54 @@ { - "name": "wide-align", - "version": "1.1.3", + "_args": [ + [ + "wide-align@1.1.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "wide-align@1.1.3", + "_id": "wide-align@1.1.3", + "_inBundle": false, + "_integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "_location": "/wide-align", + "_phantomChildren": { + "is-fullwidth-code-point": "2.0.0" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "wide-align@1.1.3", + "name": "wide-align", + "escapedName": "wide-align", + "rawSpec": "1.1.3", + "saveSpec": null, + "fetchSpec": "1.1.3" + }, + "_requiredBy": [ + "/gauge" + ], + "_resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", + "_spec": "1.1.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/wide-align/issues" + }, + "dependencies": { + "string-width": "^1.0.2 || 2" + }, "description": "A wide-character aware text alignment function for use on the console or with fixed width fonts.", - "main": "align.js", - "scripts": { - "test": "tap --coverage test/*.js", - "version": "perl -pi -e 's/^( \"version\": $ENV{npm_config_node_version}\").*?\",/$1abc\",/' package-lock.json ; git add package-lock.json" + "devDependencies": { + "tap": "10 || 11 || 12" }, + "files": [ + "align.js" + ], + "homepage": "https://github.com/iarna/wide-align#readme", "keywords": [ "wide", "double", @@ -15,19 +57,16 @@ "pad", "align" ], - "author": "Rebecca Turner (http://re-becca.org/)", "license": "ISC", + "main": "align.js", + "name": "wide-align", "repository": { "type": "git", - "url": "https://github.com/iarna/wide-align" - }, - "dependencies": { - "string-width": "^1.0.2 || 2" + "url": "git+https://github.com/iarna/wide-align.git" }, - "devDependencies": { - "tap": "10 || 11 || 12" + "scripts": { + "test": "tap --coverage test/*.js", + "version": "perl -pi -e 's/^( \"version\": $ENV{npm_config_node_version}\").*?\",/$1abc\",/' package-lock.json ; git add package-lock.json" }, - "files": [ - "align.js" - ] + "version": "1.1.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/window-size/package.json b/admin/vue2/element-admin-v3/node_modules/window-size/package.json index 78ad50f06..655ab475e 100644 --- a/admin/vue2/element-admin-v3/node_modules/window-size/package.json +++ b/admin/vue2/element-admin-v3/node_modules/window-size/package.json @@ -1,33 +1,62 @@ { - "name": "window-size", - "description": "Reliable way to to get the height and width of the terminal/console in a node.js environment.", - "version": "0.1.0", - "homepage": "https://github.com/jonschlinkert/window-size", + "_args": [ + [ + "window-size@0.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "window-size@0.1.0", + "_id": "window-size@0.1.0", + "_inBundle": false, + "_integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "_location": "/window-size", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "window-size@0.1.0", + "name": "window-size", + "escapedName": "window-size", + "rawSpec": "0.1.0", + "saveSpec": null, + "fetchSpec": "0.1.0" + }, + "_requiredBy": [ + "/pug-html-loader/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwindow-size%2Fdownload%2Fwindow-size-0.1.0.tgz", + "_spec": "0.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" }, - "repository": { - "type": "git", - "url": "https://github.com/jonschlinkert/window-size.git" - }, "bugs": { "url": "https://github.com/jonschlinkert/window-size/issues" }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/jonschlinkert/window-size/blob/master/LICENSE-MIT" - } - ], - "main": "index.js", + "description": "Reliable way to to get the height and width of the terminal/console in a node.js environment.", "engines": { "node": ">= 0.8.0" }, + "homepage": "https://github.com/jonschlinkert/window-size", "keywords": [ "window", "console", "terminal", "tty" - ] -} \ No newline at end of file + ], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/jonschlinkert/window-size/blob/master/LICENSE-MIT" + } + ], + "main": "index.js", + "name": "window-size", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/window-size.git" + }, + "version": "0.1.0" +} diff --git a/admin/vue2/element-admin-v3/node_modules/with/node_modules/@babel/types/package.json b/admin/vue2/element-admin-v3/node_modules/with/node_modules/@babel/types/package.json index 7c45ea375..a44f628bb 100644 --- a/admin/vue2/element-admin-v3/node_modules/with/node_modules/@babel/types/package.json +++ b/admin/vue2/element-admin-v3/node_modules/with/node_modules/@babel/types/package.json @@ -1,20 +1,66 @@ { - "name": "@babel/types", - "version": "7.14.5", + "_args": [ + [ + "@babel/types@7.14.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "@babel/types@7.14.5", + "_id": "@babel/types@7.14.5", + "_inBundle": false, + "_integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", + "_location": "/with/@babel/types", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@babel/types@7.14.5", + "name": "@babel/types", + "escapedName": "@babel%2ftypes", + "scope": "@babel", + "rawSpec": "7.14.5", + "saveSpec": null, + "fetchSpec": "7.14.5" + }, + "_requiredBy": [ + "/with" + ], + "_resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", + "_spec": "7.14.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "The Babel Team", + "url": "https://babel.dev/team" + }, + "bugs": { + "url": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen" + }, + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + }, "description": "Babel Types is a Lodash-esque utility library for AST nodes", - "author": "The Babel Team (https://babel.dev/team)", + "devDependencies": { + "@babel/generator": "7.14.5", + "@babel/parser": "7.14.5", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, "homepage": "https://babel.dev/docs/en/next/babel-types", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen", "license": "MIT", + "main": "./lib/index.js", + "name": "@babel/types", "publishConfig": { "access": "public" }, "repository": { "type": "git", - "url": "https://github.com/babel/babel.git", + "url": "git+https://github.com/babel/babel.git", "directory": "packages/babel-types" }, - "main": "./lib/index.js", "types": "./lib/index-legacy.d.ts", "typesVersions": { ">=3.7": { @@ -23,16 +69,5 @@ ] } }, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "devDependencies": { - "@babel/generator": "7.14.5", - "@babel/parser": "7.14.5", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file + "version": "7.14.5" +} diff --git a/admin/vue2/element-admin-v3/node_modules/with/node_modules/to-fast-properties/package.json b/admin/vue2/element-admin-v3/node_modules/with/node_modules/to-fast-properties/package.json index 7a64b2ccb..54607d448 100644 --- a/admin/vue2/element-admin-v3/node_modules/with/node_modules/to-fast-properties/package.json +++ b/admin/vue2/element-admin-v3/node_modules/with/node_modules/to-fast-properties/package.json @@ -1,23 +1,52 @@ { - "name": "to-fast-properties", - "version": "2.0.0", - "description": "Force V8 to use fast properties for an object", - "license": "MIT", - "repository": "sindresorhus/to-fast-properties", + "_args": [ + [ + "to-fast-properties@2.0.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "to-fast-properties@2.0.0", + "_id": "to-fast-properties@2.0.0", + "_inBundle": false, + "_integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "_location": "/with/to-fast-properties", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "to-fast-properties@2.0.0", + "name": "to-fast-properties", + "escapedName": "to-fast-properties", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [ + "/with/@babel/types" + ], + "_resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", "url": "sindresorhus.com" }, + "bugs": { + "url": "https://github.com/sindresorhus/to-fast-properties/issues" + }, + "description": "Force V8 to use fast properties for an object", + "devDependencies": { + "ava": "0.0.4" + }, "engines": { "node": ">=4" }, - "scripts": { - "test": "node --allow-natives-syntax test.js" - }, "files": [ "index.js" ], + "homepage": "https://github.com/sindresorhus/to-fast-properties#readme", "keywords": [ "object", "obj", @@ -29,7 +58,14 @@ "convert", "mode" ], - "devDependencies": { - "ava": "0.0.4" - } + "license": "MIT", + "name": "to-fast-properties", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/to-fast-properties.git" + }, + "scripts": { + "test": "node --allow-natives-syntax test.js" + }, + "version": "2.0.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/with/package.json b/admin/vue2/element-admin-v3/node_modules/with/package.json index ba505bbfa..fb52e20d3 100644 --- a/admin/vue2/element-admin-v3/node_modules/with/package.json +++ b/admin/vue2/element-admin-v3/node_modules/with/package.json @@ -1,29 +1,48 @@ { - "name": "with", - "version": "7.0.2", - "description": "Compile time `with` for strict mode JavaScript", - "main": "lib/index.js", - "scripts": { - "build": "tsc", - "postbuild": "rimraf lib/**/__tests__", - "lint": "tslint './src/**/*.{ts,tsx}' -t verbose -p .", - "prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'", - "prettier:check": "prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'", - "pretest": "yarn build", - "test": "mocha test/index.js -R spec" + "_args": [ + [ + "with@7.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "with@7.0.2", + "_id": "with@7.0.2", + "_inBundle": false, + "_integrity": "sha1-zO461ULSVTinp6gKrSErmChJW6w=", + "_location": "/with", + "_phantomChildren": { + "@babel/helper-validator-identifier": "7.14.5" }, - "repository": { - "type": "git", - "url": "https://github.com/pugjs/with.git" + "_requested": { + "type": "version", + "registry": true, + "raw": "with@7.0.2", + "name": "with", + "escapedName": "with", + "rawSpec": "7.0.2", + "saveSpec": null, + "fetchSpec": "7.0.2" + }, + "_requiredBy": [ + "/pug-code-gen" + ], + "_resolved": "https://registry.npm.taobao.org/with/download/with-7.0.2.tgz", + "_spec": "7.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "ForbesLindesay" + }, + "bugs": { + "url": "https://github.com/pugjs/with/issues" }, - "author": "ForbesLindesay", - "license": "MIT", "dependencies": { "@babel/parser": "^7.9.6", "@babel/types": "^7.9.6", "assert-never": "^1.2.1", "babel-walk": "3.0.0-canary-5" }, + "description": "Compile time `with` for strict mode JavaScript", "devDependencies": { "@forbeslindesay/tsconfig": "^2.0.0", "@types/node": "^14.0.5", @@ -36,5 +55,23 @@ }, "engines": { "node": ">= 10.0.0" - } + }, + "homepage": "https://github.com/pugjs/with#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "with", + "repository": { + "type": "git", + "url": "git+https://github.com/pugjs/with.git" + }, + "scripts": { + "build": "tsc", + "lint": "tslint './src/**/*.{ts,tsx}' -t verbose -p .", + "postbuild": "rimraf lib/**/__tests__", + "pretest": "yarn build", + "prettier:check": "prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'", + "prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'", + "test": "mocha test/index.js -R spec" + }, + "version": "7.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/wmf/package.json b/admin/vue2/element-admin-v3/node_modules/wmf/package.json index 86ea031b1..0ce83ba45 100644 --- a/admin/vue2/element-admin-v3/node_modules/wmf/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wmf/package.json @@ -1,68 +1,94 @@ { - "name": "wmf", - "version": "1.0.2", - "author": "sheetjs", - "description": "Windows MetaFile (WMF) parser", - "keywords": [ - "wmf", - "image", - "office", - "word" - ], - "bin": { - }, - "main": "./dist/wmf.node.js", - "unpkg": "./dist/wmf.js", - "jsdelivr": "./dist/wmf.js", - "types": "types", - "browser": { - "buffer": false, - "crypto": false, - "stream": false, - "process": false, - "fs": false - }, - "dependencies": { - }, - "devDependencies": { - "source-map-loader": "^0.2.4", - "uglifyjs-webpack-plugin": "^2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/js-wmf.git" - }, - "scripts": { - }, - "config": { - "blanket": { - "pattern": "wmf.js" - } - }, - "alex": { - "allow": [ - "special", - "simple", - "just", - "crash", - "wtf", - "holes" - ] - }, - "homepage": "https://sheetjs.com/", - "files": [ - "LICENSE", - "README.md", - "dist/wmf.js", - "dist/wmf.node.js", - "dist/wmf.js.map", - "dist/wmf.node.js.map" - ], - "bugs": { - "url": "https://github.com/SheetJS/js-wmf/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "wmf@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "wmf@1.0.2", + "_id": "wmf@1.0.2", + "_inBundle": false, + "_integrity": "sha1-fRnWIQcaCMK9xrfmiKnENSmMwto=", + "_location": "/wmf", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "wmf@1.0.2", + "name": "wmf", + "escapedName": "wmf", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/xlsx" + ], + "_resolved": "https://registry.nlark.com/wmf/download/wmf-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "alex": { + "allow": [ + "special", + "simple", + "just", + "crash", + "wtf", + "holes" + ] + }, + "author": { + "name": "sheetjs" + }, + "browser": { + "buffer": false, + "crypto": false, + "stream": false, + "process": false, + "fs": false + }, + "bugs": { + "url": "https://github.com/SheetJS/js-wmf/issues" + }, + "config": { + "blanket": { + "pattern": "wmf.js" + } + }, + "dependencies": {}, + "description": "Windows MetaFile (WMF) parser", + "devDependencies": { + "source-map-loader": "^0.2.4", + "uglifyjs-webpack-plugin": "^2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "files": [ + "LICENSE", + "README.md", + "dist/wmf.js", + "dist/wmf.node.js", + "dist/wmf.js.map", + "dist/wmf.node.js.map" + ], + "homepage": "https://sheetjs.com/", + "jsdelivr": "./dist/wmf.js", + "keywords": [ + "wmf", + "image", + "office", + "word" + ], + "license": "Apache-2.0", + "main": "./dist/wmf.node.js", + "name": "wmf", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-wmf.git" + }, + "scripts": {}, + "types": "types", + "unpkg": "./dist/wmf.js", + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/word-wrap/package.json b/admin/vue2/element-admin-v3/node_modules/word-wrap/package.json index 6f8f633c4..a748a7d47 100644 --- a/admin/vue2/element-admin-v3/node_modules/word-wrap/package.json +++ b/admin/vue2/element-admin-v3/node_modules/word-wrap/package.json @@ -1,39 +1,92 @@ { - "name": "word-wrap", - "description": "Wrap words to a specified length.", - "version": "1.2.3", - "homepage": "https://github.com/jonschlinkert/word-wrap", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Danilo Sampaio (localhost:8080)", - "Fede Ramirez (https://2fd.github.io)", - "Joe Hildebrand (https://twitter.com/hildjj)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Todd Kennedy (https://tck.io)", - "Waldemar Reusch (https://github.com/lordvlad)", - "Wolfgang Faust (http://www.linestarve.com)", - "Zach Hale (http://zachhale.com)" + "_args": [ + [ + "word-wrap@1.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "repository": "jonschlinkert/word-wrap", - "bugs": { - "url": "https://github.com/jonschlinkert/word-wrap/issues" + "_development": true, + "_from": "word-wrap@1.2.3", + "_id": "word-wrap@1.2.3", + "_inBundle": false, + "_integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "_location": "/word-wrap", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "word-wrap@1.2.3", + "name": "word-wrap", + "escapedName": "word-wrap", + "rawSpec": "1.2.3", + "saveSpec": null, + "fetchSpec": "1.2.3" }, - "license": "MIT", - "files": [ - "index.js", - "index.d.ts" + "_requiredBy": [ + "/optionator" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "_spec": "1.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/word-wrap/issues" }, + "contributors": [ + { + "name": "Danilo Sampaio", + "email": "danilo.sampaio@gmail.com", + "url": "localhost:8080" + }, + { + "name": "Fede Ramirez", + "email": "i@2fd.me", + "url": "https://2fd.github.io" + }, + { + "name": "Joe Hildebrand", + "email": "joe-github@cursive.net", + "url": "https://twitter.com/hildjj" + }, + { + "name": "Jon Schlinkert", + "email": "jon.schlinkert@sellside.com", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Todd Kennedy", + "url": "https://tck.io" + }, + { + "name": "Waldemar Reusch", + "url": "https://github.com/lordvlad" + }, + { + "name": "Wolfgang Faust", + "url": "http://www.linestarve.com" + }, + { + "name": "Zach Hale", + "email": "zachhale@gmail.com", + "url": "http://zachhale.com" + } + ], + "description": "Wrap words to a specified length.", "devDependencies": { "gulp-format-md": "^0.1.11", "mocha": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/jonschlinkert/word-wrap", "keywords": [ "break", "carriage", @@ -48,6 +101,16 @@ "words", "wrap" ], + "license": "MIT", + "main": "index.js", + "name": "word-wrap", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/word-wrap.git" + }, + "scripts": { + "test": "mocha" + }, "typings": "index.d.ts", "verb": { "toc": false, @@ -73,5 +136,6 @@ "verb", "verb-generate-readme" ] - } + }, + "version": "1.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/word/package.json b/admin/vue2/element-admin-v3/node_modules/word/package.json index 1bb5df66a..3921e218a 100644 --- a/admin/vue2/element-admin-v3/node_modules/word/package.json +++ b/admin/vue2/element-admin-v3/node_modules/word/package.json @@ -1,29 +1,57 @@ { - "name": "word", - "version": "0.3.0", - "author": "sheetjs", - "description": "Word Processing Document library", - "keywords": [ - "word" - ], - "main": "./word", - "dependencies": { - }, - "devDependencies": { - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/js-word.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "homepage": "https://wordjs.com/", - "bugs": { - "url": "https://github.com/SheetJS/js-word/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "word@0.3.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "word@0.3.0", + "_id": "word@0.3.0", + "_inBundle": false, + "_integrity": "sha1-hUIVfk+OhJ9KNjooiZLUdhLbmWE=", + "_location": "/word", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "word@0.3.0", + "name": "word", + "escapedName": "word", + "rawSpec": "0.3.0", + "saveSpec": null, + "fetchSpec": "0.3.0" + }, + "_requiredBy": [ + "/xlsx" + ], + "_resolved": "https://registry.npmmirror.com/word/download/word-0.3.0.tgz", + "_spec": "0.3.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "sheetjs" + }, + "bugs": { + "url": "https://github.com/SheetJS/js-word/issues" + }, + "dependencies": {}, + "description": "Word Processing Document library", + "devDependencies": {}, + "engines": { + "node": ">=0.8" + }, + "homepage": "https://wordjs.com/", + "keywords": [ + "word" + ], + "license": "Apache-2.0", + "main": "./word", + "name": "word", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/js-word.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "0.3.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wordwrap/package.json b/admin/vue2/element-admin-v3/node_modules/wordwrap/package.json index fdff683e1..96cfaed23 100644 --- a/admin/vue2/element-admin-v3/node_modules/wordwrap/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wordwrap/package.json @@ -1,37 +1,70 @@ { - "name" : "wordwrap", - "description" : "Wrap those words. Show them at what columns to start and stop.", - "version" : "0.0.2", - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/node-wordwrap.git" - }, - "main" : "./index.js", - "keywords" : [ - "word", - "wrap", - "rule", - "format", - "column" - ], - "directories" : { - "lib" : ".", - "example" : "example", - "test" : "test" - }, - "scripts" : { - "test" : "expresso" - }, - "devDependencies" : { - "expresso" : "=0.7.x" - }, - "engines" : { - "node" : ">=0.4.0" - }, - "license" : "MIT/X11", - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - } + "_args": [ + [ + "wordwrap@0.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "wordwrap@0.0.2", + "_id": "wordwrap@0.0.2", + "_inBundle": false, + "_integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "_location": "/wordwrap", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "wordwrap@0.0.2", + "name": "wordwrap", + "escapedName": "wordwrap", + "rawSpec": "0.0.2", + "saveSpec": null, + "fetchSpec": "0.0.2" + }, + "_requiredBy": [ + "/pug-html-loader/cliui" + ], + "_resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", + "_spec": "0.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/substack/node-wordwrap/issues" + }, + "description": "Wrap those words. Show them at what columns to start and stop.", + "devDependencies": { + "expresso": "=0.7.x" + }, + "directories": { + "lib": ".", + "example": "example", + "test": "test" + }, + "engines": { + "node": ">=0.4.0" + }, + "homepage": "https://github.com/substack/node-wordwrap#readme", + "keywords": [ + "word", + "wrap", + "rule", + "format", + "column" + ], + "license": "MIT/X11", + "main": "./index.js", + "name": "wordwrap", + "repository": { + "type": "git", + "url": "git://github.com/substack/node-wordwrap.git" + }, + "scripts": { + "test": "expresso" + }, + "version": "0.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/worker-farm/package.json b/admin/vue2/element-admin-v3/node_modules/worker-farm/package.json index 1c4a1b80e..dedf4366f 100644 --- a/admin/vue2/element-admin-v3/node_modules/worker-farm/package.json +++ b/admin/vue2/element-admin-v3/node_modules/worker-farm/package.json @@ -1,31 +1,62 @@ { - "name": "worker-farm", - "description": "Distribute processing tasks to child processes with an über-simple API and baked-in durability & custom concurrency options.", - "version": "1.7.0", - "homepage": "https://github.com/rvagg/node-worker-farm", + "_args": [ + [ + "worker-farm@1.7.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "worker-farm@1.7.0", + "_id": "worker-farm@1.7.0", + "_inBundle": false, + "_integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "_location": "/worker-farm", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "worker-farm@1.7.0", + "name": "worker-farm", + "escapedName": "worker-farm", + "rawSpec": "1.7.0", + "saveSpec": null, + "fetchSpec": "1.7.0" + }, + "_requiredBy": [ + "/uglifyjs-webpack-plugin" + ], + "_resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "_spec": "1.7.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", "authors": [ "Rod Vagg @rvagg (https://github.com/rvagg)" ], + "bugs": { + "url": "https://github.com/rvagg/node-worker-farm/issues" + }, + "dependencies": { + "errno": "~0.1.7" + }, + "description": "Distribute processing tasks to child processes with an über-simple API and baked-in durability & custom concurrency options.", + "devDependencies": { + "tape": "~4.10.1" + }, + "homepage": "https://github.com/rvagg/node-worker-farm", "keywords": [ "worker", "child", "processing", "farm" ], + "license": "MIT", "main": "./lib/index.js", + "name": "worker-farm", "repository": { "type": "git", - "url": "https://github.com/rvagg/node-worker-farm.git" - }, - "dependencies": { - "errno": "~0.1.7" - }, - "devDependencies": { - "tape": "~4.10.1" + "url": "git+https://github.com/rvagg/node-worker-farm.git" }, "scripts": { "test": "node ./tests/" }, "types": "./index.d.ts", - "license": "MIT" + "version": "1.7.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-regex/package.json b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-regex/package.json index a849fdf52..413cf3bd9 100644 --- a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-regex/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-regex/package.json @@ -1,53 +1,88 @@ { - "name": "ansi-regex", - "version": "4.1.0", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^0.25.0", - "xo": "^0.23.0" - } + "_args": [ + [ + "ansi-regex@4.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-regex@4.1.0", + "_id": "ansi-regex@4.1.0", + "_inBundle": false, + "_integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "_location": "/wrap-ansi/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-regex@4.1.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" + }, + "_requiredBy": [ + "/wrap-ansi/strip-ansi" + ], + "_resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", + "_spec": "4.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^0.25.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "4.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-styles/package.json b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-styles/package.json index 65edb48c3..9a6d12ba5 100644 --- a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-styles/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/ansi-styles/package.json @@ -1,56 +1,91 @@ { - "name": "ansi-styles", - "version": "3.2.1", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^1.9.0" - }, - "devDependencies": { - "ava": "*", - "babel-polyfill": "^6.23.0", - "svg-term-cli": "^2.1.1", - "xo": "*" - }, - "ava": { - "require": "babel-polyfill" - } + "_args": [ + [ + "ansi-styles@3.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "ansi-styles@3.2.1", + "_id": "ansi-styles@3.2.1", + "_inBundle": false, + "_integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "_location": "/wrap-ansi/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ansi-styles@3.2.1", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "3.2.1", + "saveSpec": null, + "fetchSpec": "3.2.1" + }, + "_requiredBy": [ + "/wrap-ansi" + ], + "_resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "_spec": "3.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "require": "babel-polyfill" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "dependencies": { + "color-convert": "^1.9.0" + }, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava" + }, + "version": "3.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/strip-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/strip-ansi/package.json index 7494fd7e8..9ebe6f746 100644 --- a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/strip-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/node_modules/strip-ansi/package.json @@ -1,54 +1,89 @@ { - "name": "strip-ansi", - "version": "5.2.0", - "description": "Strip ANSI escape codes from a string", - "license": "MIT", - "repository": "chalk/strip-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "devDependencies": { - "ava": "^1.3.1", - "tsd-check": "^0.5.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "strip-ansi@5.2.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "strip-ansi@5.2.0", + "_id": "strip-ansi@5.2.0", + "_inBundle": false, + "_integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "_location": "/wrap-ansi/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "strip-ansi@5.2.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/wrap-ansi" + ], + "_resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "_spec": "5.2.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "5.2.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/package.json b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/package.json index dcbb7f6ea..0ba38f1b9 100644 --- a/admin/vue2/element-admin-v3/node_modules/wrap-ansi/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wrap-ansi/package.json @@ -1,61 +1,98 @@ { - "name": "wrap-ansi", - "version": "5.1.0", - "description": "Wordwrap a string with ANSI escape codes", - "license": "MIT", - "repository": "chalk/wrap-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && nyc ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "wrap", - "break", - "wordwrap", - "wordbreak", - "linewrap", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "devDependencies": { - "ava": "^1.2.1", - "chalk": "^2.4.2", - "coveralls": "^3.0.3", - "has-ansi": "^3.0.0", - "nyc": "^13.3.0", - "xo": "^0.24.0" - } + "_args": [ + [ + "wrap-ansi@5.1.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "wrap-ansi@5.1.0", + "_id": "wrap-ansi@5.1.0", + "_inBundle": false, + "_integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "_location": "/wrap-ansi", + "_phantomChildren": { + "color-convert": "1.9.3" + }, + "_requested": { + "type": "version", + "registry": true, + "raw": "wrap-ansi@5.1.0", + "name": "wrap-ansi", + "escapedName": "wrap-ansi", + "rawSpec": "5.1.0", + "saveSpec": null, + "fetchSpec": "5.1.0" + }, + "_requiredBy": [ + "/cliui" + ], + "_resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "_spec": "5.1.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/wrap-ansi/issues" + }, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "description": "Wordwrap a string with ANSI escape codes", + "devDependencies": { + "ava": "^1.2.1", + "chalk": "^2.4.2", + "coveralls": "^3.0.3", + "has-ansi": "^3.0.0", + "nyc": "^13.3.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/wrap-ansi#readme", + "keywords": [ + "wrap", + "break", + "wordwrap", + "wordbreak", + "linewrap", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "wrap-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/wrap-ansi.git" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "version": "5.1.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/wrappy/package.json b/admin/vue2/element-admin-v3/node_modules/wrappy/package.json index 130752046..34c12fcf3 100644 --- a/admin/vue2/element-admin-v3/node_modules/wrappy/package.json +++ b/admin/vue2/element-admin-v3/node_modules/wrappy/package.json @@ -1,29 +1,62 @@ { - "name": "wrappy", - "version": "1.0.2", - "description": "Callback wrapping utility", - "main": "wrappy.js", - "files": [ - "wrappy.js" + "_args": [ + [ + "wrappy@1.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "directories": { - "test": "test" + "_from": "wrappy@1.0.2", + "_id": "wrappy@1.0.2", + "_inBundle": false, + "_integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "_location": "/wrappy", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "wrappy@1.0.2", + "name": "wrappy", + "escapedName": "wrappy", + "rawSpec": "1.0.2", + "saveSpec": null, + "fetchSpec": "1.0.2" + }, + "_requiredBy": [ + "/inflight", + "/once" + ], + "_resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", + "_spec": "1.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/npm/wrappy/issues" }, "dependencies": {}, + "description": "Callback wrapping utility", "devDependencies": { "tap": "^2.3.1" }, - "scripts": { - "test": "tap --coverage test/*.js" + "directories": { + "test": "test" }, + "files": [ + "wrappy.js" + ], + "homepage": "https://github.com/npm/wrappy", + "license": "ISC", + "main": "wrappy.js", + "name": "wrappy", "repository": { "type": "git", - "url": "https://github.com/npm/wrappy" + "url": "git+https://github.com/npm/wrappy.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/wrappy/issues" + "scripts": { + "test": "tap --coverage test/*.js" }, - "homepage": "https://github.com/npm/wrappy" + "version": "1.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/write/package.json b/admin/vue2/element-admin-v3/node_modules/write/package.json index f6ad3c37a..67c906a29 100644 --- a/admin/vue2/element-admin-v3/node_modules/write/package.json +++ b/admin/vue2/element-admin-v3/node_modules/write/package.json @@ -1,33 +1,57 @@ { - "name": "write", - "description": "Write files to disk, creating intermediate directories if they don't exist.", - "version": "0.2.1", - "homepage": "https://github.com/jonschlinkert/write", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/write", - "bugs": { - "url": "https://github.com/jonschlinkert/write/issues" + "_args": [ + [ + "write@0.2.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "write@0.2.1", + "_id": "write@0.2.1", + "_inBundle": false, + "_integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "_location": "/write", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "write@0.2.1", + "name": "write", + "escapedName": "write", + "rawSpec": "0.2.1", + "saveSpec": null, + "fetchSpec": "0.2.1" }, - "license": "MIT", - "files": [ - "index.js" + "_requiredBy": [ + "/flat-cache" ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" + "_resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz", + "_spec": "0.2.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" }, - "scripts": { - "test": "mocha" + "bugs": { + "url": "https://github.com/jonschlinkert/write/issues" }, "dependencies": { "mkdirp": "^0.5.1" }, + "description": "Write files to disk, creating intermediate directories if they don't exist.", "devDependencies": { "async": "^1.4.0", "delete": "^0.2.1", "mocha": "^2.2.5", "should": "^7.0.2" }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jonschlinkert/write", "keywords": [ "file", "filepath", @@ -39,5 +63,16 @@ "fs.writeFileSync", "path", "write" - ] + ], + "license": "MIT", + "main": "index.js", + "name": "write", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/write.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "0.2.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/ws/package.json b/admin/vue2/element-admin-v3/node_modules/ws/package.json index 7961664f0..98d54bace 100644 --- a/admin/vue2/element-admin-v3/node_modules/ws/package.json +++ b/admin/vue2/element-admin-v3/node_modules/ws/package.json @@ -1,35 +1,46 @@ { - "name": "ws", - "version": "6.2.2", - "description": "Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js", - "keywords": [ - "HyBi", - "Push", - "RFC-6455", - "WebSocket", - "WebSockets", - "real-time" + "_args": [ + [ + "ws@6.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "homepage": "https://github.com/websockets/ws", - "bugs": "https://github.com/websockets/ws/issues", - "repository": "websockets/ws", - "author": "Einar Otto Stangvik (http://2x.io)", - "license": "MIT", - "main": "index.js", - "browser": "browser.js", - "files": [ - "browser.js", - "index.js", - "lib/*.js" + "_from": "ws@6.2.2", + "_id": "ws@6.2.2", + "_inBundle": false, + "_integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=", + "_location": "/ws", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ws@6.2.2", + "name": "ws", + "escapedName": "ws", + "rawSpec": "6.2.2", + "saveSpec": null, + "fetchSpec": "6.2.2" + }, + "_requiredBy": [ + "/webpack-bundle-analyzer", + "/webpack-dev-server" ], - "scripts": { - "test": "npm run lint && nyc --reporter=html --reporter=text mocha test/*.test.js", - "integration": "npm run lint && mocha test/*.integration.js", - "lint": "eslint --ignore-path .gitignore . && prettier --check --ignore-path .gitignore \"**/*.{json,md,yml}\"" + "_resolved": "https://registry.nlark.com/ws/download/ws-6.2.2.tgz?cache=0&sync_timestamp=1623180787489&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fws%2Fdownload%2Fws-6.2.2.tgz", + "_spec": "6.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Einar Otto Stangvik", + "email": "einaros@gmail.com", + "url": "http://2x.io" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/websockets/ws/issues" }, "dependencies": { "async-limiter": "~1.0.0" }, + "description": "Simple to use, blazing fast and thoroughly tested websocket client and server for Node.js", "devDependencies": { "benchmark": "~2.1.4", "bufferutil": "~4.0.0", @@ -41,5 +52,32 @@ "nyc": "~13.3.0", "prettier": "~1.16.1", "utf-8-validate": "~5.0.0" - } + }, + "files": [ + "browser.js", + "index.js", + "lib/*.js" + ], + "homepage": "https://github.com/websockets/ws", + "keywords": [ + "HyBi", + "Push", + "RFC-6455", + "WebSocket", + "WebSockets", + "real-time" + ], + "license": "MIT", + "main": "index.js", + "name": "ws", + "repository": { + "type": "git", + "url": "git+https://github.com/websockets/ws.git" + }, + "scripts": { + "integration": "npm run lint && mocha test/*.integration.js", + "lint": "eslint --ignore-path .gitignore . && prettier --check --ignore-path .gitignore \"**/*.{json,md,yml}\"", + "test": "npm run lint && nyc --reporter=html --reporter=text mocha test/*.test.js" + }, + "version": "6.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/xhr/package.json b/admin/vue2/element-admin-v3/node_modules/xhr/package.json index 9a6e4e6f4..79a47fe61 100644 --- a/admin/vue2/element-admin-v3/node_modules/xhr/package.json +++ b/admin/vue2/element-admin-v3/node_modules/xhr/package.json @@ -1,18 +1,40 @@ { - "name": "xhr", - "version": "2.4.0", - "description": "small xhr abstraction", - "keywords": [ - "xhr", - "http", - "xmlhttprequest", - "xhr2", - "browserify" + "_args": [ + [ + "xhr@2.4.0", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Raynos ", - "repository": "git://github.com/naugtur/xhr.git", - "main": "index", - "homepage": "https://github.com/naugtur/xhr", + "_from": "xhr@2.4.0", + "_id": "xhr@2.4.0", + "_inBundle": false, + "_integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", + "_location": "/xhr", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "xhr@2.4.0", + "name": "xhr", + "escapedName": "xhr", + "rawSpec": "2.4.0", + "saveSpec": null, + "fetchSpec": "2.4.0" + }, + "_requiredBy": [ + "/video.js" + ], + "_resolved": "https://registry.npm.taobao.org/xhr/download/xhr-2.4.0.tgz", + "_spec": "2.4.0", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "bugs": { + "url": "https://github.com/naugtur/xhr/issues", + "email": "naugtur@gmail.com" + }, "contributors": [ { "name": "Jake Verbaten" @@ -22,26 +44,38 @@ "email": "naugtur@gmail.com" } ], - "bugs": { - "url": "https://github.com/naugtur/xhr/issues", - "email": "naugtur@gmail.com" - }, "dependencies": { "global": "~4.3.0", "is-function": "^1.0.1", "parse-headers": "^2.0.0", "xtend": "^4.0.0" }, + "description": "small xhr abstraction", "devDependencies": { "for-each": "^0.3.2", "pre-commit": "1.0.10", - "run-browser": "naugtur/run-browser", + "run-browser": "github:naugtur/run-browser", "tap-spec": "^4.0.2", "tape": "^4.0.0" }, + "homepage": "https://github.com/naugtur/xhr", + "keywords": [ + "xhr", + "http", + "xmlhttprequest", + "xhr2", + "browserify" + ], "license": "MIT", + "main": "index", + "name": "xhr", + "repository": { + "type": "git", + "url": "git://github.com/naugtur/xhr.git" + }, "scripts": { - "test": "run-browser test/index.js -b -m test/mock-server.js | tap-spec", - "browser": "run-browser -m test/mock-server.js test/index.js" - } + "browser": "run-browser -m test/mock-server.js test/index.js", + "test": "run-browser test/index.js -b -m test/mock-server.js | tap-spec" + }, + "version": "2.4.0" } diff --git a/admin/vue2/element-admin-v3/node_modules/xlsx/package.json b/admin/vue2/element-admin-v3/node_modules/xlsx/package.json index 1d1f6fa93..1a4c0d65d 100644 --- a/admin/vue2/element-admin-v3/node_modules/xlsx/package.json +++ b/admin/vue2/element-admin-v3/node_modules/xlsx/package.json @@ -1,99 +1,129 @@ { - "name": "xlsx", - "version": "0.17.5", - "author": "sheetjs", - "description": "SheetJS Spreadsheet data parser and writer", - "keywords": [ - "excel", - "xls", - "xlsx", - "xlsb", - "xlsm", - "ods", - "csv", - "dbf", - "dif", - "sylk", - "office", - "spreadsheet" - ], - "bin": { - "xlsx": "./bin/xlsx.njs" - }, - "main": "xlsx.js", - "unpkg": "dist/xlsx.full.min.js", - "jsdelivr": "dist/xlsx.full.min.js", - "types": "types/index.d.ts", - "browser": { - "buffer": false, - "crypto": false, - "stream": false, - "process": false, - "fs": false - }, - "dependencies": { - "adler-32": "~1.2.0", - "cfb": "^1.1.4", - "codepage": "~1.15.0", - "crc-32": "~1.2.0", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, - "devDependencies": { - "@sheetjs/uglify-js": "~2.7.3", - "@types/node": "^8.5.9", - "acorn": "7.4.1", - "alex": "^9.1.0", - "blanket": "~1.2.3", - "commander": "~2.17.1", - "dtslint": "^0.1.2", - "eslint": "7.23.0", - "eslint-plugin-html": "^6.1.2", - "eslint-plugin-json": "^2.1.2", - "exit-on-epipe": "~1.0.1", - "fflate": "^0.7.1", - "jsdom": "~11.1.0", - "markdown-spellcheck": "^1.3.1", - "mocha": "~2.5.3", - "sinon": "^1.17.7", - "typescript": "2.2.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/SheetJS/sheetjs.git" - }, - "scripts": { - "pretest": "npm run lint", - "test": "npm run tests-only", - "pretest-only": "git submodule init && git submodule update", - "tests-only": "make travis", - "build": "make", - "lint": "make fullint", - "dtslint": "dtslint types" - }, - "config": { - "blanket": { - "pattern": "xlsx.js" - } - }, - "alex": { - "allow": [ - "chinese", - "special", - "simple", - "just", - "crash", - "wtf", - "holes" - ] - }, - "homepage": "https://sheetjs.com/", - "bugs": { - "url": "https://github.com/SheetJS/sheetjs/issues" - }, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } + "_args": [ + [ + "xlsx@0.17.5", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "xlsx@0.17.5", + "_id": "xlsx@0.17.5", + "_inBundle": false, + "_integrity": "sha512-lXNU0TuYsvElzvtI6O7WIVb9Zar1XYw7Xb3VAx2wn8N/n0whBYrCnHMxtFyIiUU1Wjf09WzmLALDfBO5PqTb1g==", + "_location": "/xlsx", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "xlsx@0.17.5", + "name": "xlsx", + "escapedName": "xlsx", + "rawSpec": "0.17.5", + "saveSpec": null, + "fetchSpec": "0.17.5" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmmirror.com/xlsx/download/xlsx-0.17.5.tgz", + "_spec": "0.17.5", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "alex": { + "allow": [ + "chinese", + "special", + "simple", + "just", + "crash", + "wtf", + "holes" + ] + }, + "author": { + "name": "sheetjs" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "browser": { + "buffer": false, + "crypto": false, + "stream": false, + "process": false, + "fs": false + }, + "bugs": { + "url": "https://github.com/SheetJS/sheetjs/issues" + }, + "config": { + "blanket": { + "pattern": "xlsx.js" + } + }, + "dependencies": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.15.0", + "crc-32": "~1.2.0", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "description": "SheetJS Spreadsheet data parser and writer", + "devDependencies": { + "@sheetjs/uglify-js": "~2.7.3", + "@types/node": "^8.5.9", + "acorn": "7.4.1", + "alex": "^9.1.0", + "blanket": "~1.2.3", + "commander": "~2.17.1", + "dtslint": "^0.1.2", + "eslint": "7.23.0", + "eslint-plugin-html": "^6.1.2", + "eslint-plugin-json": "^2.1.2", + "exit-on-epipe": "~1.0.1", + "fflate": "^0.7.1", + "jsdom": "~11.1.0", + "markdown-spellcheck": "^1.3.1", + "mocha": "~2.5.3", + "sinon": "^1.17.7", + "typescript": "2.2.0" + }, + "engines": { + "node": ">=0.8" + }, + "homepage": "https://sheetjs.com/", + "jsdelivr": "dist/xlsx.full.min.js", + "keywords": [ + "excel", + "xls", + "xlsx", + "xlsb", + "xlsm", + "ods", + "csv", + "dbf", + "dif", + "sylk", + "office", + "spreadsheet" + ], + "license": "Apache-2.0", + "main": "xlsx.js", + "name": "xlsx", + "repository": { + "type": "git", + "url": "git://github.com/SheetJS/sheetjs.git" + }, + "scripts": { + "build": "make", + "dtslint": "dtslint types", + "lint": "make fullint", + "pretest": "npm run lint", + "pretest-only": "git submodule init && git submodule update", + "test": "npm run tests-only", + "tests-only": "make travis" + }, + "types": "types/index.d.ts", + "unpkg": "dist/xlsx.full.min.js", + "version": "0.17.5" } diff --git a/admin/vue2/element-admin-v3/node_modules/xss/package.json b/admin/vue2/element-admin-v3/node_modules/xss/package.json index 7b5047462..ed6029a1a 100644 --- a/admin/vue2/element-admin-v3/node_modules/xss/package.json +++ b/admin/vue2/element-admin-v3/node_modules/xss/package.json @@ -1,21 +1,48 @@ { - "name": "xss", - "main": "./lib/index.js", - "typings": "./typings/xss.d.ts", - "version": "1.0.9", - "description": "Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist", - "author": "Zongmin Lei (http://ucdok.com)", - "repository": { - "type": "git", - "url": "git://github.com/leizongmin/js-xss.git" + "_args": [ + [ + "xss@1.0.9", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "xss@1.0.9", + "_id": "xss@1.0.9", + "_inBundle": false, + "_integrity": "sha1-P/1WVXH/YNLkDbfzuAtGd77HcNI=", + "_location": "/xss", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "xss@1.0.9", + "name": "xss", + "escapedName": "xss", + "rawSpec": "1.0.9", + "saveSpec": null, + "fetchSpec": "1.0.9" }, - "engines": { - "node": ">= 0.10.0" + "_requiredBy": [ + "/mavon-editor" + ], + "_resolved": "https://registry.nlark.com/xss/download/xss-1.0.9.tgz", + "_spec": "1.0.9", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Zongmin Lei", + "email": "leizongmin@gmail.com", + "url": "http://ucdok.com" + }, + "bin": { + "xss": "bin/xss" + }, + "bugs": { + "url": "https://github.com/leizongmin/js-xss/issues" }, "dependencies": { "commander": "^2.20.3", "cssfilter": "0.0.10" }, + "description": "Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist", "devDependencies": { "browserify": "^17.0.0", "coveralls": "^3.1.0", @@ -24,26 +51,15 @@ "nyc": "^15.1.0", "uglify-js": "^3.9.4" }, + "engines": { + "node": ">= 0.10.0" + }, "files": [ "lib", "bin/xss", "dist", "typings/*.d.ts" ], - "bin": { - "xss": "./bin/xss" - }, - "scripts": { - "test": "export DEBUG=xss:* && mocha -t 5000", - "test-cov": "nyc --reporter=lcov mocha --exit \"test/*.js\" && nyc report", - "coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", - "build": "./bin/build", - "prepublish": "npm run test && npm run build" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/leizongmin/js-xss/issues" - }, "homepage": "https://github.com/leizongmin/js-xss", "keywords": [ "sanitization", @@ -59,5 +75,21 @@ "html", "injection", "whitelist" - ] + ], + "license": "MIT", + "main": "./lib/index.js", + "name": "xss", + "repository": { + "type": "git", + "url": "git://github.com/leizongmin/js-xss.git" + }, + "scripts": { + "build": "./bin/build", + "coveralls": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "prepublish": "npm run test && npm run build", + "test": "export DEBUG=xss:* && mocha -t 5000", + "test-cov": "nyc --reporter=lcov mocha --exit \"test/*.js\" && nyc report" + }, + "typings": "./typings/xss.d.ts", + "version": "1.0.9" } diff --git a/admin/vue2/element-admin-v3/node_modules/xtend/package.json b/admin/vue2/element-admin-v3/node_modules/xtend/package.json index f7a39d10a..c5673b723 100644 --- a/admin/vue2/element-admin-v3/node_modules/xtend/package.json +++ b/admin/vue2/element-admin-v3/node_modules/xtend/package.json @@ -1,26 +1,42 @@ { - "name": "xtend", - "version": "4.0.2", - "description": "extend like a boss", - "keywords": [ - "extend", - "merge", - "options", - "opts", - "object", - "array" + "_args": [ + [ + "xtend@4.0.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "author": "Raynos ", - "repository": "git://github.com/Raynos/xtend.git", - "main": "immutable", - "scripts": { - "test": "node test" + "_from": "xtend@4.0.2", + "_id": "xtend@4.0.2", + "_inBundle": false, + "_integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "_location": "/xtend", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "xtend@4.0.2", + "name": "xtend", + "escapedName": "xtend", + "rawSpec": "4.0.2", + "saveSpec": null, + "fetchSpec": "4.0.2" }, - "dependencies": {}, - "devDependencies": { - "tape": "~1.1.0" + "_requiredBy": [ + "/stream-http", + "/through2", + "/xhr" + ], + "_resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "_spec": "4.0.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Raynos", + "email": "raynos2@gmail.com" + }, + "bugs": { + "url": "https://github.com/Raynos/xtend/issues", + "email": "raynos2@gmail.com" }, - "homepage": "https://github.com/Raynos/xtend", "contributors": [ { "name": "Jake Verbaten" @@ -29,11 +45,33 @@ "name": "Matt Esch" } ], - "bugs": { - "url": "https://github.com/Raynos/xtend/issues", - "email": "raynos2@gmail.com" + "dependencies": {}, + "description": "extend like a boss", + "devDependencies": { + "tape": "~1.1.0" }, + "engines": { + "node": ">=0.4" + }, + "homepage": "https://github.com/Raynos/xtend", + "keywords": [ + "extend", + "merge", + "options", + "opts", + "object", + "array" + ], "license": "MIT", + "main": "immutable", + "name": "xtend", + "repository": { + "type": "git", + "url": "git://github.com/Raynos/xtend.git" + }, + "scripts": { + "test": "node test" + }, "testling": { "files": "test.js", "browsers": [ @@ -49,7 +87,5 @@ "iphone/6.0..latest" ] }, - "engines": { - "node": ">=0.4" - } + "version": "4.0.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/xxhashjs/package.json b/admin/vue2/element-admin-v3/node_modules/xxhashjs/package.json index baa7fb4c1..69d58fb71 100644 --- a/admin/vue2/element-admin-v3/node_modules/xxhashjs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/xxhashjs/package.json @@ -1,32 +1,63 @@ { - "name": "xxhashjs", - "version": "0.2.2", - "description": "xxHash in Javascript", - "main": "./lib/index.js", - "scripts": { - "test": "mocha", - "prepublish": "webpack && uglifyjs -m -c -o build/xxhash.min.js build/xxhash.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/pierrec/js-xxhash" + "_args": [ + [ + "xxhashjs@0.2.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_development": true, + "_from": "xxhashjs@0.2.2", + "_id": "xxhashjs@0.2.2", + "_inBundle": false, + "_integrity": "sha1-imJRVnYhocRqWuIE2gJJx/jKqdg=", + "_location": "/xxhashjs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "xxhashjs@0.2.2", + "name": "xxhashjs", + "escapedName": "xxhashjs", + "rawSpec": "0.2.2", + "saveSpec": null, + "fetchSpec": "0.2.2" }, - "keywords": [ - "xxhash", - "xxh" + "_requiredBy": [ + "/postcss-url" ], - "author": "Pierre Curto", - "license": "MIT", + "_resolved": "https://registry.npm.taobao.org/xxhashjs/download/xxhashjs-0.2.2.tgz", + "_spec": "0.2.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Pierre Curto" + }, "bugs": { "url": "https://github.com/pierrec/js-xxhash/issues" }, - "homepage": "https://github.com/pierrec/js-xxhash", "dependencies": { "cuint": "^0.2.2" }, + "description": "xxHash in Javascript", "devDependencies": { "benchmark": "*", "uglifyjs": "^2.4.11", "webpack": "^3.10.0" - } + }, + "homepage": "https://github.com/pierrec/js-xxhash", + "keywords": [ + "xxhash", + "xxh" + ], + "license": "MIT", + "main": "./lib/index.js", + "name": "xxhashjs", + "repository": { + "type": "git", + "url": "git+https://github.com/pierrec/js-xxhash.git" + }, + "scripts": { + "prepublish": "webpack && uglifyjs -m -c -o build/xxhash.min.js build/xxhash.js", + "test": "mocha" + }, + "version": "0.2.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/y18n/package.json b/admin/vue2/element-admin-v3/node_modules/y18n/package.json index 6f08863e9..878c72945 100644 --- a/admin/vue2/element-admin-v3/node_modules/y18n/package.json +++ b/admin/vue2/element-admin-v3/node_modules/y18n/package.json @@ -1,32 +1,44 @@ { - "name": "y18n", - "version": "4.0.3", - "description": "the bare-bones internationalization library used by yargs", - "main": "index.js", - "scripts": { - "pretest": "standard", - "test": "nyc mocha", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" - }, - "repository": { - "type": "git", - "url": "git@github.com:yargs/y18n.git" - }, - "files": [ - "index.js" + "_args": [ + [ + "y18n@4.0.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] ], - "keywords": [ - "i18n", - "internationalization", - "yargs" + "_from": "y18n@4.0.3", + "_id": "y18n@4.0.3", + "_inBundle": false, + "_integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", + "_location": "/y18n", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "y18n@4.0.3", + "name": "y18n", + "escapedName": "y18n", + "rawSpec": "4.0.3", + "saveSpec": null, + "fetchSpec": "4.0.3" + }, + "_requiredBy": [ + "/cacache", + "/sass-graph/yargs", + "/webpack-cli/yargs", + "/webpack-dev-server/yargs", + "/yargs" ], - "author": "Ben Coe ", - "license": "ISC", + "_resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz", + "_spec": "4.0.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, "bugs": { "url": "https://github.com/yargs/y18n/issues" }, - "homepage": "https://github.com/yargs/y18n", + "description": "the bare-bones internationalization library used by yargs", "devDependencies": { "chai": "^4.0.1", "coveralls": "^3.0.0", @@ -35,5 +47,28 @@ "rimraf": "^2.5.0", "standard": "^10.0.0-beta.0", "standard-version": "^4.2.0" - } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/yargs/y18n", + "keywords": [ + "i18n", + "internationalization", + "yargs" + ], + "license": "ISC", + "main": "index.js", + "name": "y18n", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yargs/y18n.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc mocha" + }, + "version": "4.0.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/yallist/package.json b/admin/vue2/element-admin-v3/node_modules/yallist/package.json index 17a13d1cc..1d746dd6a 100644 --- a/admin/vue2/element-admin-v3/node_modules/yallist/package.json +++ b/admin/vue2/element-admin-v3/node_modules/yallist/package.json @@ -1,8 +1,45 @@ { - "name": "yallist", - "version": "2.1.2", + "_args": [ + [ + "yallist@2.1.2", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "yallist@2.1.2", + "_id": "yallist@2.1.2", + "_inBundle": false, + "_integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "_location": "/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yallist@2.1.2", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/lru-cache" + ], + "_resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "_spec": "2.1.2", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "dependencies": {}, "description": "Yet Another Linked List", - "main": "yallist.js", + "devDependencies": { + "tap": "^10.3.0" + }, "directories": { "test": "test" }, @@ -10,20 +47,19 @@ "yallist.js", "iterator.js" ], - "dependencies": {}, - "devDependencies": { - "tap": "^10.3.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", "repository": { "type": "git", "url": "git+https://github.com/isaacs/yallist.git" }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "2.1.2" } diff --git a/admin/vue2/element-admin-v3/node_modules/yargs-parser/package.json b/admin/vue2/element-admin-v3/node_modules/yargs-parser/package.json index ca9e91be0..c7ccc65fb 100644 --- a/admin/vue2/element-admin-v3/node_modules/yargs-parser/package.json +++ b/admin/vue2/element-admin-v3/node_modules/yargs-parser/package.json @@ -1,17 +1,60 @@ { - "name": "yargs-parser", - "version": "15.0.1", + "_args": [ + [ + "yargs-parser@15.0.1", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "yargs-parser@15.0.1", + "_id": "yargs-parser@15.0.1", + "_inBundle": false, + "_integrity": "sha1-VHhq9AuCDcsvuAJbEbTWWddjI7M=", + "_location": "/yargs-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs-parser@15.0.1", + "name": "yargs-parser", + "escapedName": "yargs-parser", + "rawSpec": "15.0.1", + "saveSpec": null, + "fetchSpec": "15.0.1" + }, + "_requiredBy": [ + "/yargs" + ], + "_resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-15.0.1.tgz", + "_spec": "15.0.1", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/yargs-parser/issues" + }, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "description": "the mighty option parser used by yargs", - "main": "index.js", - "scripts": { - "test": "nyc mocha test/*.js", - "posttest": "standard", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" + "devDependencies": { + "chai": "^4.2.0", + "coveralls": "^3.0.2", + "mocha": "^5.2.0", + "nyc": "^14.1.0", + "standard": "^12.0.1", + "standard-version": "^6.0.0" }, - "repository": { - "url": "git@github.com:yargs/yargs-parser.git" + "engine": { + "node": ">=6" }, + "files": [ + "lib", + "index.js" + ], + "homepage": "https://github.com/yargs/yargs-parser#readme", "keywords": [ "argument", "parser", @@ -23,25 +66,17 @@ "args", "argument" ], - "author": "Ben Coe ", "license": "ISC", - "devDependencies": { - "chai": "^4.2.0", - "coveralls": "^3.0.2", - "mocha": "^5.2.0", - "nyc": "^14.1.0", - "standard": "^12.0.1", - "standard-version": "^6.0.0" + "main": "index.js", + "name": "yargs-parser", + "repository": { + "url": "git+ssh://git@github.com/yargs/yargs-parser.git" }, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "posttest": "standard", + "release": "standard-version", + "test": "nyc mocha test/*.js" }, - "files": [ - "lib", - "index.js" - ], - "engine": { - "node": ">=6" - } + "version": "15.0.1" } diff --git a/admin/vue2/element-admin-v3/node_modules/yargs/package.json b/admin/vue2/element-admin-v3/node_modules/yargs/package.json index 92424d22a..8be5bc6b3 100644 --- a/admin/vue2/element-admin-v3/node_modules/yargs/package.json +++ b/admin/vue2/element-admin-v3/node_modules/yargs/package.json @@ -1,23 +1,41 @@ { - "name": "yargs", - "version": "14.2.3", - "description": "yargs the modern, pirate-themed, successor to optimist.", - "main": "./index.js", + "_args": [ + [ + "yargs@14.2.3", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "yargs@14.2.3", + "_id": "yargs@14.2.3", + "_inBundle": false, + "_integrity": "sha1-Ghw+3O0a+yov6jNgS8bR2NaIpBQ=", + "_location": "/yargs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "yargs@14.2.3", + "name": "yargs", + "escapedName": "yargs", + "rawSpec": "14.2.3", + "saveSpec": null, + "fetchSpec": "14.2.3" + }, + "_requiredBy": [ + "/showdown" + ], + "_resolved": "https://registry.nlark.com/yargs/download/yargs-14.2.3.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-14.2.3.tgz", + "_spec": "14.2.3", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/yargs/yargs/issues" + }, "contributors": [ { "name": "Yargs Contributors", "url": "https://github.com/yargs/yargs/graphs/contributors" } ], - "files": [ - "index.js", - "yargs.js", - "lib", - "locales", - "completion.sh.hbs", - "completion.zsh.hbs", - "LICENSE" - ], "dependencies": { "cliui": "^5.0.0", "decamelize": "^1.2.0", @@ -31,6 +49,7 @@ "y18n": "^4.0.0", "yargs-parser": "^15.0.1" }, + "description": "yargs the modern, pirate-themed, successor to optimist.", "devDependencies": { "chai": "^4.2.0", "chalk": "^2.4.2", @@ -47,22 +66,19 @@ "which": "^1.3.1", "yargs-test-extends": "^1.0.1" }, - "scripts": { - "pretest": "standard", - "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "release": "standard-version" - }, - "repository": { - "type": "git", - "url": "https://github.com/yargs/yargs.git" + "engine": { + "node": ">=6" }, + "files": [ + "index.js", + "yargs.js", + "lib", + "locales", + "completion.sh.hbs", + "completion.zsh.hbs", + "LICENSE" + ], "homepage": "https://yargs.js.org/", - "standard": { - "ignore": [ - "**/example/**" - ] - }, "keywords": [ "argument", "args", @@ -73,7 +89,22 @@ "command" ], "license": "MIT", - "engine": { - "node": ">=6" - } + "main": "./index.js", + "name": "yargs", + "repository": { + "type": "git", + "url": "git+https://github.com/yargs/yargs.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks" + }, + "standard": { + "ignore": [ + "**/example/**" + ] + }, + "version": "14.2.3" } diff --git a/admin/vue2/element-admin-v3/node_modules/zrender/package.json b/admin/vue2/element-admin-v3/node_modules/zrender/package.json index dd8ffb383..c8e92b4c1 100644 --- a/admin/vue2/element-admin-v3/node_modules/zrender/package.json +++ b/admin/vue2/element-admin-v3/node_modules/zrender/package.json @@ -1,27 +1,42 @@ { - "name": "zrender", - "version": "4.0.4", - "description": "A lightweight canvas library.", - "keywords": [ - "canvas", - "2d" + "_args": [ + [ + "zrender@4.0.4", + "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3" + ] + ], + "_from": "zrender@4.0.4", + "_id": "zrender@4.0.4", + "_inBundle": false, + "_integrity": "sha1-kQ5g2IjwDJWZBz8jdY3SM0X+SP0=", + "_location": "/zrender", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "zrender@4.0.4", + "name": "zrender", + "escapedName": "zrender", + "rawSpec": "4.0.4", + "saveSpec": null, + "fetchSpec": "4.0.4" + }, + "_requiredBy": [ + "/echarts" ], + "_resolved": "https://registry.nlark.com/zrender/download/zrender-4.0.4.tgz", + "_spec": "4.0.4", + "_where": "G:\\www\\tfshop\\admin\\vue2\\element-admin-v3", + "bugs": { + "url": "https://github.com/ecomfe/zrender/issues" + }, "contributors": [ { "name": "erik", "email": "errorrik@gmail.com" } ], - "repository": { - "type": "git", - "url": "https://github.com/ecomfe/zrender.git" - }, - "scripts": { - "prepublish": "node build/build.js --prepublish", - "build": "node build/build.js --release", - "dev": "node build/build.js --watch" - }, - "license": "BSD", + "description": "A lightweight canvas library.", "devDependencies": { "@babel/core": "7.0.0-beta.31", "@babel/helper-module-transforms": "7.0.0-beta.31", @@ -34,5 +49,22 @@ "jsdiff": "1.1.1", "rollup": "0.50.0", "rollup-plugin-uglify": "2.0.1" - } + }, + "homepage": "https://github.com/ecomfe/zrender#readme", + "keywords": [ + "canvas", + "2d" + ], + "license": "BSD", + "name": "zrender", + "repository": { + "type": "git", + "url": "git+https://github.com/ecomfe/zrender.git" + }, + "scripts": { + "build": "node build/build.js --release", + "dev": "node build/build.js --watch", + "prepublish": "node build/build.js --prepublish" + }, + "version": "4.0.4" } diff --git a/admin/vue2/element-admin-v3/package-lock.json b/admin/vue2/element-admin-v3/package-lock.json index 01c92adc1..9242bb931 100644 --- a/admin/vue2/element-admin-v3/package-lock.json +++ b/admin/vue2/element-admin-v3/package-lock.json @@ -1,18982 +1,8 @@ { "name": "vue-element-admin", "version": "3.10.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "vue-element-admin", - "version": "3.10.0", - "license": "MIT", - "dependencies": { - "@antv/g2plot": "^1.1.27", - "@tinymce/tinymce-vue": "^3.2.3", - "awe-dnd": "^0.3.4", - "axios": "^0.21.1", - "babel-plugin-transform-decorators-legacy": "^1.3.5", - "clipboard": "^1.7.1", - "codemirror": "5.58.2", - "connect": "3.6.6", - "driver.js": "0.8.1", - "dropzone": "5.2.0", - "echarts": "4.1.0", - "el-tree-transfer": "^1.9.8", - "element-ui": "^2.15.13", - "file-saver": "1.3.8", - "js-cookie": "2.2.0", - "jsonlint": "1.6.3", - "jszip": "^3.7.1", - "mavon-editor": "^2.9.1", - "moment": "^2.28.0", - "normalize.css": "7.0.0", - "nprogress": "0.2.0", - "print-js": "^1.5.0", - "screenfull": "3.3.3", - "shelljs": "^0.8.5", - "showdown": "1.9.1", - "sortablejs": "1.7.0", - "tinymce": "^5.4.2", - "vue": "2.5.17", - "vue-bus": "^1.2.1", - "vue-class-component": "^7.2.6", - "vue-clipboard2": "^0.3.1", - "vue-count-to": "1.0.13", - "vue-grid-layout": "^2.3.8", - "vue-i18n": "7.3.2", - "vue-json-viewer": "^2.2.14", - "vue-router": "3.0.2", - "vue-splitpane": "1.0.2", - "vue-video-player": "^5.0.2", - "vue2-verify": "^1.1.5", - "vuedraggable": "^2.24.1", - "vuex": "3.0.1", - "webpack-bundle-analyzer": "^3.9.0", - "webpack-dev-server": "^3.11.0", - "xlsx": "^0.17.1" - }, - "devDependencies": { - "autoprefixer": "8.5.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-helper-vue-jsx-merge-props": "2.0.3", - "babel-loader": "7.1.5", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-plugin-transform-vue-jsx": "3.7.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-2": "6.24.1", - "chalk": "2.4.1", - "copy-webpack-plugin": "4.5.2", - "core-js": "^3.21.0", - "cross-env": "5.2.0", - "css-loader": "1.0.0", - "eslint": "4.19.1", - "eslint-friendly-formatter": "4.0.1", - "eslint-loader": "2.0.0", - "eslint-plugin-vue": "4.7.1", - "file-loader": "1.1.11", - "friendly-errors-webpack-plugin": "1.7.0", - "hash-sum": "1.0.2", - "html-webpack-plugin": "4.0.0-alpha", - "husky": "0.14.3", - "lint-staged": "7.2.2", - "mini-css-extract-plugin": "0.4.1", - "node-notifier": "9.0.0", - "node-sass": "^5.0.0", - "optimize-css-assets-webpack-plugin": "5.0.0", - "ora": "3.0.0", - "path-to-regexp": "2.4.0", - "portfinder": "1.0.13", - "postcss-import": "11.1.0", - "postcss-loader": "2.1.6", - "postcss-url": "7.3.2", - "pug": "^3.0.2", - "pug-html-loader": "^1.1.5", - "pug-plain-loader": "^1.1.0", - "rimraf": "2.6.2", - "sass-loader": "7.0.3", - "script-ext-html-webpack-plugin": "2.0.1", - "script-loader": "0.7.2", - "semver": "5.5.0", - "serve-static": "1.13.2", - "svg-sprite-loader": "3.8.0", - "svgo": "^1.3.2", - "uglifyjs-webpack-plugin": "1.2.7", - "url-loader": "1.0.1", - "vue-loader": "15.3.0", - "vue-style-loader": "4.1.2", - "vue-template-compiler": "2.5.17", - "webpack": "4.16.5", - "webpack-cli": "3.1.0", - "webpack-merge": "4.1.4" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/@antv/adjust": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.2.3.tgz?cache=0&sync_timestamp=1602724321845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fadjust%2Fdownload%2F%40antv%2Fadjust-0.2.3.tgz", - "integrity": "sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=", - "dependencies": { - "@antv/util": "~2.0.0", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/attr": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.3.2.tgz", - "integrity": "sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=", - "dependencies": { - "@antv/color-util": "^2.0.1", - "@antv/util": "~2.0.0", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/color-util": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/@antv/color-util/download/@antv/color-util-2.0.6.tgz?cache=0&sync_timestamp=1608537003512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fcolor-util%2Fdownload%2F%40antv%2Fcolor-util-2.0.6.tgz", - "integrity": "sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=", - "dependencies": { - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/color-util/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@antv/component": { - "version": "0.6.3", - "resolved": "https://registry.nlark.com/@antv/component/download/@antv/component-0.6.3.tgz", - "integrity": "sha1-O7TO2+mF6DG/s3ip5nKkbAQipac=", - "dependencies": { - "@antv/dom-util": "~2.0.1", - "@antv/g-base": "~0.4.0", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.7", - "@antv/scale": "~0.3.1", - "@antv/util": "~2.0.0", - "fecha": "~4.2.0", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/coord": { - "version": "0.3.1", - "resolved": "https://registry.nlark.com/@antv/coord/download/@antv/coord-0.3.1.tgz", - "integrity": "sha1-mC4mHYoeBqGY61GOp6zCDth1oBk=", - "dependencies": { - "@antv/matrix-util": "^3.1.0-beta.2", - "@antv/util": "~2.0.12", - "tslib": "^2.1.0" - } - }, - "node_modules/@antv/coord/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@antv/dom-util": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz?cache=0&sync_timestamp=1608536799303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fdom-util%2Fdownload%2F%40antv%2Fdom-util-2.0.3.tgz", - "integrity": "sha1-y9FYsciODopNhlhxpZabEZBVT/U=", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/dom-util/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@antv/event-emitter": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz", - "integrity": "sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw=" - }, - "node_modules/@antv/g-base": { - "version": "0.4.7", - "resolved": "https://registry.nlark.com/@antv/g-base/download/@antv/g-base-0.4.7.tgz?cache=0&sync_timestamp=1619321536772&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-base%2Fdownload%2F%40antv%2Fg-base-0.4.7.tgz", - "integrity": "sha1-dpj8TIyzgfK3iaMPvrJrHojEgZY=", - "dependencies": { - "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.3", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "@types/d3-timer": "^1.0.9", - "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", - "d3-timer": "^1.0.9", - "detect-browser": "^5.1.0" - } - }, - "node_modules/@antv/g-canvas": { - "version": "0.4.15", - "resolved": "https://registry.nlark.com/@antv/g-canvas/download/@antv/g-canvas-0.4.15.tgz?cache=0&sync_timestamp=1623198345954&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-canvas%2Fdownload%2F%40antv%2Fg-canvas-0.4.15.tgz", - "integrity": "sha1-gawb4mnZYoAgL/76AqOfBgsajAc=", - "dependencies": { - "@antv/g-base": "^0.4.7", - "@antv/g-math": "^0.1.3", - "@antv/path-util": "~2.0.5", - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" - } - }, - "node_modules/@antv/g-gesture": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/@antv/g-gesture/download/@antv/g-gesture-1.0.0.tgz", - "integrity": "sha1-RYaZG3RoUuCJC5Y9cou6N2HWzQU=", - "dependencies": { - "@antv/event-emitter": "~0.1.2", - "d3-ease": "^1.0.5" - }, - "peerDependencies": { - "@antv/g-base": "~0.4.4" - } - }, - "node_modules/@antv/g-math": { - "version": "0.1.7", - "resolved": "https://registry.nlark.com/@antv/g-math/download/@antv/g-math-0.1.7.tgz?cache=0&sync_timestamp=1623198354826&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-math%2Fdownload%2F%40antv%2Fg-math-0.1.7.tgz", - "integrity": "sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=", - "dependencies": { - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" - } - }, - "node_modules/@antv/g-svg": { - "version": "0.4.7", - "resolved": "https://registry.nlark.com/@antv/g-svg/download/@antv/g-svg-0.4.7.tgz?cache=0&sync_timestamp=1623198346639&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg-svg%2Fdownload%2F%40antv%2Fg-svg-0.4.7.tgz", - "integrity": "sha1-DWXh2zTm3+YJqts+3fR0jbAvCwE=", - "dependencies": { - "@antv/g-base": "^0.4.7", - "@antv/g-math": "^0.1.3", - "@antv/util": "~2.0.0", - "detect-browser": "^4.6.0" - } - }, - "node_modules/@antv/g-svg/node_modules/detect-browser": { - "version": "4.8.0", - "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-4.8.0.tgz?cache=0&sync_timestamp=1602160787180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-4.8.0.tgz", - "integrity": "sha1-HXO9iMF76GaQGVDOCqrh7QYJAsY=" - }, - "node_modules/@antv/g2": { - "version": "4.0.15", - "resolved": "https://registry.nlark.com/@antv/g2/download/@antv/g2-4.0.15.tgz", - "integrity": "sha1-aO7uW+/Z8uZU92VfjT0pNc3VJrg=", - "dependencies": { - "@antv/adjust": "^0.2.1", - "@antv/attr": "^0.3.1", - "@antv/color-util": "^2.0.2", - "@antv/component": "^0.6.0", - "@antv/coord": "^0.3.0", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "^0.4.3", - "@antv/g-canvas": "^0.4.0", - "@antv/g-svg": "^0.4.0", - "@antv/matrix-util": "^3.1.0-beta.1", - "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", - "@antv/util": "~2.0.5", - "tslib": "^2.0.0" - } - }, - "node_modules/@antv/g2/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@antv/g2plot": { - "version": "1.1.28", - "resolved": "https://registry.nlark.com/@antv/g2plot/download/@antv/g2plot-1.1.28.tgz?cache=0&sync_timestamp=1623254069086&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fg2plot%2Fdownload%2F%40antv%2Fg2plot-1.1.28.tgz", - "integrity": "sha1-bV3xRapJoX4PDtxVBSvgVL6mMhY=", - "dependencies": { - "@antv/component": "~0.6.1", - "@antv/coord": "~0.3.0", - "@antv/dom-util": "~2.0.2", - "@antv/event-emitter": "~0.1.2", - "@antv/g-base": "~0.4.0", - "@antv/g-canvas": "~0.4.0", - "@antv/g-gesture": "~1.0.0", - "@antv/g-svg": "~0.4.0", - "@antv/g2": "~4.0.9", - "@antv/matrix-util": "~3.1.0-beta.1", - "@antv/scale": "~0.3.1", - "@antv/util": "~2.0.7", - "d3-regression": "~1.3.4", - "resize-observer-polyfill": "^1.5.1", - "tslib": "^1.11.1", - "warning": "^4.0.3" - } - }, - "node_modules/@antv/matrix-util": { - "version": "3.1.0-beta.2", - "resolved": "https://registry.npm.taobao.org/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.2.tgz?cache=0&sync_timestamp=1608537003006&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fmatrix-util%2Fdownload%2F%40antv%2Fmatrix-util-3.1.0-beta.2.tgz", - "integrity": "sha1-tK+vtw299Sr/yjCNNUbIoJD9I8o=", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.3.0", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/path-util": { - "version": "2.0.9", - "resolved": "https://registry.npm.taobao.org/@antv/path-util/download/@antv/path-util-2.0.9.tgz?cache=0&sync_timestamp=1608537003183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Fpath-util%2Fdownload%2F%40antv%2Fpath-util-2.0.9.tgz", - "integrity": "sha1-l25KPPtiGXZ6YC0peyBciNZteyw=", - "dependencies": { - "@antv/util": "^2.0.9", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/path-util/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@antv/scale": { - "version": "0.3.10", - "resolved": "https://registry.nlark.com/@antv/scale/download/@antv/scale-0.3.10.tgz?cache=0&sync_timestamp=1620812326068&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40antv%2Fscale%2Fdownload%2F%40antv%2Fscale-0.3.10.tgz", - "integrity": "sha1-nxNmneHpqaBy0nDVZ3vLafW6XF8=", - "dependencies": { - "@antv/util": "~2.0.3", - "fecha": "~4.2.0", - "tslib": "^2.0.0" - } - }, - "node_modules/@antv/scale/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@antv/util": { - "version": "2.0.13", - "resolved": "https://registry.npm.taobao.org/@antv/util/download/@antv/util-2.0.13.tgz?cache=0&sync_timestamp=1614258260915&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40antv%2Futil%2Fdownload%2F%40antv%2Futil-2.0.13.tgz", - "integrity": "sha1-fC5wHYlScRbsF89aQAQTxcavy00=", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/util/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", - "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" - }, - "node_modules/@babel/code-frame": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.0.0-beta.44.tgz", - "integrity": "sha1-KgJkM2jegJFhYr5whlyXd08629k=", - "dev": true, - "dependencies": { - "@babel/highlight": "7.0.0-beta.44" - } - }, - "node_modules/@babel/generator": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.0.0-beta.44.tgz", - "integrity": "sha1-x+Z7m1KEr89pswm1DX038+UDPUI=", - "dev": true, - "dependencies": { - "@babel/types": "7.0.0-beta.44", - "jsesc": "^2.5.1", - "lodash": "^4.2.0", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891224688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.0.0-beta.44.tgz?cache=0&sync_timestamp=1623280385237&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.0.0-beta.44.tgz", - "integrity": "sha1-4YVSqq4iMRAKbkheA4VLw1MtRN0=", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "7.0.0-beta.44", - "@babel/template": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0-beta.44.tgz", - "integrity": "sha1-0Dym3SufewseazLFbHKDYUDbOhU=", - "dev": true, - "dependencies": { - "@babel/types": "7.0.0-beta.44" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.0.0-beta.44.tgz", - "integrity": "sha1-wLNRc14PvLOCLIrY205YOwXr2dw=", - "dev": true, - "dependencies": { - "@babel/types": "7.0.0-beta.44" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.5.tgz?cache=0&sync_timestamp=1623280305128&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.5.tgz", - "integrity": "sha1-0PDid8US4Mk4J3+qhaOWjJpEwOg=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.0.0-beta.44.tgz", - "integrity": "sha1-GMlM5UORaoBVPtzc9oGJCyAHR9U=", - "dev": true, - "dependencies": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "node_modules/@babel/parser": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.5.tgz?cache=0&sync_timestamp=1623280296042&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.5.tgz", - "integrity": "sha1-TNLzRiYQYbJRiHP/7N8WEssDKCk=", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.0.0-beta.44.tgz?cache=0&sync_timestamp=1623280386138&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.0.0-beta.44.tgz", - "integrity": "sha1-+IMvT9zuXVm/UV5ZX8UQbFKbOU8=", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "lodash": "^4.2.0" - } - }, - "node_modules/@babel/template/node_modules/babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz", - "integrity": "sha1-iRWeFebjDFCW4i1zjYwK+KDoyh0=", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.0.0-beta.44.tgz?cache=0&sync_timestamp=1623280395969&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.0.0-beta.44.tgz", - "integrity": "sha1-qXCixFR3rRgBfi5GWgYG/u4NKWY=", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/generator": "7.0.0-beta.44", - "@babel/helper-function-name": "7.0.0-beta.44", - "@babel/helper-split-export-declaration": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" - } - }, - "node_modules/@babel/traverse/node_modules/babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz", - "integrity": "sha1-iRWeFebjDFCW4i1zjYwK+KDoyh0=", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.0.0-beta.44.tgz", - "integrity": "sha1-axsWRZH3fewKA0KsqZXy0Eazp1c=", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@interactjs/actions": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/actions/download/@interactjs/actions-1.10.11.tgz", - "integrity": "sha1-7Gj9YL7nUfgMZQlktbopnrav54w=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/auto-scroll": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/auto-scroll/download/@interactjs/auto-scroll-1.10.11.tgz", - "integrity": "sha1-DArH27Vap9ffbAoEx367MUjL31Q=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/auto-start": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/auto-start/download/@interactjs/auto-start-1.10.11.tgz", - "integrity": "sha1-XOBFdA81vjZkDrrQU9t7VlLhjnA=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/core": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/core/download/@interactjs/core-1.10.11.tgz", - "integrity": "sha1-iwIDSSwbpvhDLyC3GK5TcH/PxyQ=", - "peerDependencies": { - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/dev-tools": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/dev-tools/download/@interactjs/dev-tools-1.10.11.tgz", - "integrity": "sha1-jUtbZQz3ToAJCfUpYgCHABQ6QwQ=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/modifiers": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/inertia": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/inertia/download/@interactjs/inertia-1.10.11.tgz", - "integrity": "sha1-WIZBczEJhbgkfYTjRxSOps17iKg=", - "dependencies": { - "@interactjs/offset": "1.10.11" - }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/modifiers": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/interact": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/interact/download/@interactjs/interact-1.10.11.tgz", - "integrity": "sha1-2W4/lJ7kABpqNNw2OiMmRvndKxs=", - "dependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/types": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/interactjs": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/interactjs/download/@interactjs/interactjs-1.10.11.tgz", - "integrity": "sha1-0P3WsDwchVBDsfYIoQsvXMrEtLc=", - "dependencies": { - "@interactjs/actions": "1.10.11", - "@interactjs/auto-scroll": "1.10.11", - "@interactjs/auto-start": "1.10.11", - "@interactjs/core": "1.10.11", - "@interactjs/dev-tools": "1.10.11", - "@interactjs/inertia": "1.10.11", - "@interactjs/interact": "1.10.11", - "@interactjs/modifiers": "1.10.11", - "@interactjs/offset": "1.10.11", - "@interactjs/pointer-events": "1.10.11", - "@interactjs/reflow": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/modifiers": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/modifiers/download/@interactjs/modifiers-1.10.11.tgz", - "integrity": "sha1-9AliqX/T4RDma3lmR5bCTzxObNY=", - "dependencies": { - "@interactjs/snappers": "1.10.11" - }, - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/offset": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/offset/download/@interactjs/offset-1.10.11.tgz", - "integrity": "sha1-USJC8zDcgM29pP7aj7NMBJH1BJY=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/pointer-events": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/pointer-events/download/@interactjs/pointer-events-1.10.11.tgz", - "integrity": "sha1-/0x0p113EfwQBuvzLqNE41v/6Tg=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/reflow": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/reflow/download/@interactjs/reflow-1.10.11.tgz", - "integrity": "sha1-Q9KtjKACv5gJEnPRef1wscq/ueI=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/core": "1.10.11", - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/snappers": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/snappers/download/@interactjs/snappers-1.10.11.tgz", - "integrity": "sha1-PrbkWrgxnA3UtgsoTFXIdWGqrbE=", - "optionalDependencies": { - "@interactjs/interact": "1.10.11" - }, - "peerDependencies": { - "@interactjs/utils": "1.10.11" - } - }, - "node_modules/@interactjs/types": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/types/download/@interactjs/types-1.10.11.tgz", - "integrity": "sha1-Kb4l1QP5x4Qt8GL6PNpbBEpHzyo=" - }, - "node_modules/@interactjs/utils": { - "version": "1.10.11", - "resolved": "https://registry.npm.taobao.org/@interactjs/utils/download/@interactjs/utils-1.10.11.tgz", - "integrity": "sha1-k50PEo36lsZzJ2zKPrfzE9ktqr8=" - }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/@samverschueren/stream-to-observable/download/@samverschueren/stream-to-observable-0.3.1.tgz?cache=0&sync_timestamp=1596972198395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40samverschueren%2Fstream-to-observable%2Fdownload%2F%40samverschueren%2Fstream-to-observable-0.3.1.tgz", - "integrity": "sha1-ohEXsZ7pvnDDeewYd1N+8uHGMwE=", - "dev": true, - "dependencies": { - "any-observable": "^0.3.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } - }, - "node_modules/@tinymce/tinymce-vue": { - "version": "3.2.8", - "resolved": "https://registry.nlark.com/@tinymce/tinymce-vue/download/@tinymce/tinymce-vue-3.2.8.tgz", - "integrity": "sha1-AUVxtS7I+oNmWn+oh79lFAIH3nE=", - "peerDependencies": { - "vue": "^2.4.3" - } - }, - "node_modules/@types/babel-types": { - "version": "7.0.9", - "resolved": "https://registry.nlark.com/@types/babel-types/download/@types/babel-types-7.0.9.tgz?cache=0&sync_timestamp=1621240632653&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabel-types%2Fdownload%2F%40types%2Fbabel-types-7.0.9.tgz", - "integrity": "sha1-Ade4aUn0VUAqlMeIiD/kuldMrUE=", - "dev": true - }, - "node_modules/@types/babylon": { - "version": "6.16.5", - "resolved": "https://registry.nlark.com/@types/babylon/download/@types/babylon-6.16.5.tgz?cache=0&sync_timestamp=1621240706494&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fbabylon%2Fdownload%2F%40types%2Fbabylon-6.16.5.tgz", - "integrity": "sha1-HFZB22nrjN83jt0ltL53VL7rSLQ=", - "dev": true, - "dependencies": { - "@types/babel-types": "*" - } - }, - "node_modules/@types/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.nlark.com/@types/d3-timer/download/@types/d3-timer-1.0.10.tgz", - "integrity": "sha1-MpxRwskx9E7QrP94uMhFcazw7SE=" - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.nlark.com/@types/glob/download/@types/glob-7.1.3.tgz", - "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.4.tgz", - "integrity": "sha1-8Owl2/Lw5LGGRzE6wDETTKWySyE=" - }, - "node_modules/@types/node": { - "version": "15.12.2", - "resolved": "https://registry.nlark.com/@types/node/download/@types/node-15.12.2.tgz", - "integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=" - }, - "node_modules/@types/q": { - "version": "1.5.4", - "resolved": "https://registry.nlark.com/@types/q/download/@types/q-1.5.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz", - "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", - "dev": true - }, - "node_modules/@types/tapable": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/@types/tapable/download/@types/tapable-1.0.2.tgz?cache=0&sync_timestamp=1621243788434&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.2.tgz", - "integrity": "sha1-4TGC4baYcaQi14Y+EaSm9bgUpL0=", - "dev": true - }, - "node_modules/@vue/component-compiler-utils": { - "version": "2.6.0", - "resolved": "https://registry.nlark.com/@vue/component-compiler-utils/download/@vue/component-compiler-utils-2.6.0.tgz", - "integrity": "sha1-qkbSpvdkdECwuJMkNNIvEjceVDs=", - "dev": true, - "dependencies": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^5.0.0", - "prettier": "1.16.3", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz", - "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", - "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", - "dev": true, - "dependencies": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.5.13.tgz?cache=0&sync_timestamp=1610045499973&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.5.13.tgz", - "integrity": "sha1-gRVaVwvVgDow7DFDa8LJwO3jjyU=", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/wast-parser": "1.5.13", - "debug": "^3.1.0", - "mamacro": "^0.0.3" - } - }, - "node_modules/@webassemblyjs/ast/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@webassemblyjs/ast/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045504831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.5.13.tgz", - "integrity": "sha1-Kc4LqpdBH3DozOaM6cD52Bmk4pg=" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.5.13.tgz?cache=0&sync_timestamp=1610045498041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.5.13.tgz", - "integrity": "sha1-5JsFHWfuGaVuKbmqi9lJtbREKlk=" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.5.13.tgz?cache=0&sync_timestamp=1610045496323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.5.13.tgz", - "integrity": "sha1-hzuwobRkSSMRN8EmLd/QVpUZWh4=", - "dependencies": { - "debug": "^3.1.0" - } - }, - "node_modules/@webassemblyjs/helper-buffer/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@webassemblyjs/helper-buffer/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.5.13.tgz?cache=0&sync_timestamp=1610045502739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.5.13.tgz", - "integrity": "sha1-G9IYG2oL4U4ATw/p9aZg0mU2K1g=", - "dependencies": { - "@webassemblyjs/wast-printer": "1.5.13" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.5.13.tgz?cache=0&sync_timestamp=1610045497114&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.5.13.tgz", - "integrity": "sha1-zfPZ0zAF1UOlxeWtqr9nn/qNuSQ=" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.5.13.tgz?cache=0&sync_timestamp=1601756894083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.5.13.tgz", - "integrity": "sha1-3Cnd+1HtZXZVKG+UpdctikiRR8U=", - "dependencies": { - "debug": "^3.1.0", - "mamacro": "^0.0.3" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.5.13.tgz?cache=0&sync_timestamp=1610045496699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.5.13.tgz", - "integrity": "sha1-AyRYF/CnYjguYXMxRvV3Pe8Vp0c=" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.5.13.tgz?cache=0&sync_timestamp=1610045503299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.5.13.tgz", - "integrity": "sha1-78dvRKENMHO1hLQ8OKF53xc9XH0=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-buffer": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/wasm-gen": "1.5.13", - "debug": "^3.1.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-section/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@webassemblyjs/helper-wasm-section/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.5.13.tgz?cache=0&sync_timestamp=1610045498486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.5.13.tgz", - "integrity": "sha1-Vz6XyMEuTuuzFspf3gID3dkLA2Q=", - "dependencies": { - "ieee754": "^1.1.11" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.5.13.tgz?cache=0&sync_timestamp=1610045497611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.5.13.tgz", - "integrity": "sha1-q1Lrq5zsKDwcGJesHagzoEo/TO4=", - "dependencies": { - "long": "4.0.0" - } - }, - "node_modules/@webassemblyjs/leb128/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/long/download/long-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flong%2Fdownload%2Flong-4.0.0.tgz", - "integrity": "sha1-mntxz7fTYaGU6lVSQckvdGjVvyg=" - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.5.13.tgz?cache=0&sync_timestamp=1610045498791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.5.13.tgz", - "integrity": "sha1-a1PSzYYc+U+pnB8Sd53eaS+8JGk=" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.5.13.tgz?cache=0&sync_timestamp=1610045504190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.5.13.tgz", - "integrity": "sha1-yc71ZkwkXPEbOzpzEQyRVYMXJKg=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-buffer": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/helper-wasm-section": "1.5.13", - "@webassemblyjs/wasm-gen": "1.5.13", - "@webassemblyjs/wasm-opt": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "@webassemblyjs/wast-printer": "1.5.13", - "debug": "^3.1.0" - } - }, - "node_modules/@webassemblyjs/wasm-edit/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@webassemblyjs/wasm-edit/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.5.13.tgz?cache=0&sync_timestamp=1610045502219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.5.13.tgz", - "integrity": "sha1-jm6hE8S0MvpmVAGJ55sW16FAcA4=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/ieee754": "1.5.13", - "@webassemblyjs/leb128": "1.5.13", - "@webassemblyjs/utf8": "1.5.13" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.5.13.tgz?cache=0&sync_timestamp=1610045503072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.5.13.tgz", - "integrity": "sha1-FHqtdxen7kIRw2shpfTDDd3zMTg=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-buffer": "1.5.13", - "@webassemblyjs/wasm-gen": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "debug": "^3.1.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045501288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.5.13.tgz", - "integrity": "sha1-b0ZRbFuyOQT731gAkjPC3YpUxy8=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-api-error": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/ieee754": "1.5.13", - "@webassemblyjs/leb128": "1.5.13", - "@webassemblyjs/utf8": "1.5.13" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045503781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.5.13.tgz", - "integrity": "sha1-VyenBdOXrmo66Z1/VGCs8uxkbuo=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/floating-point-hex-parser": "1.5.13", - "@webassemblyjs/helper-api-error": "1.5.13", - "@webassemblyjs/helper-code-frame": "1.5.13", - "@webassemblyjs/helper-fsm": "1.5.13", - "long": "^3.2.0", - "mamacro": "^0.0.3" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.5.13", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.5.13.tgz?cache=0&sync_timestamp=1610045500821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.5.13.tgz", - "integrity": "sha1-uzTVKMFLT1eefsEeeT7FCtfNfJU=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/wast-parser": "1.5.13", - "long": "^3.2.0" - } - }, - "node_modules/@webpack-contrib/schema-utils": { - "version": "1.0.0-beta.0", - "resolved": "https://registry.npm.taobao.org/@webpack-contrib/schema-utils/download/@webpack-contrib/schema-utils-1.0.0-beta.0.tgz", - "integrity": "sha1-v5Y4yUZNF3tIIJ6EIJ4jvuLrT2U=", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chalk": "^2.3.2", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "webpack-log": "^1.1.2" - }, - "engines": { - "node": ">= 6.9.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/@webpack-contrib/schema-utils/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@webpack-contrib/schema-utils/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@webpack-contrib/schema-utils/node_modules/webpack-log": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-1.2.0.tgz?cache=0&sync_timestamp=1615477461878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-1.2.0.tgz", - "integrity": "sha1-pLNM2msitRjbsKsy5WeWLVxypD0=", - "dev": true, - "dependencies": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "loglevelnext": "^1.0.1", - "uuid": "^3.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", - "dependencies": { - "acorn": "^5.0.0" - } - }, - "node_modules/acorn-dynamic-import/node_modules/acorn": { - "version": "5.7.4", - "resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "dev": true, - "dependencies": { - "acorn": "^4.0.4" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "4.0.13", - "resolved": "https://registry.nlark.com/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz?cache=0&sync_timestamp=1599499210411&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "dependencies": { - "acorn": "^3.0.4" - } - }, - "node_modules/acorn-jsx/node_modules/acorn": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz", - "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adler-32": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.2.0.tgz", - "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "adler32": "bin/adler32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/aes-decrypter": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/aes-decrypter/download/aes-decrypter-1.0.3.tgz", - "integrity": "sha1-nAa4pUNaWtCduTP4oBSvzxhMw04=", - "dependencies": { - "pkcs7": "^0.2.3" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/align-text/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", - "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/ansi-escapes/download/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.3.0.tgz", - "integrity": "sha1-r5M0deWAamfQ198JDdXovvZdEZs=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1617747494189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz", - "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649397806&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz?cache=0&sync_timestamp=1614624262896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1620042045402&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", - "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", - "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-never": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/assert-never/download/assert-never-1.2.1.tgz", - "integrity": "sha1-EfDjY78UYgX7CBk7XHuQ9NHPRP4=", - "dev": true - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", - "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", - "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=" - }, - "node_modules/async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", - "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=" - }, - "node_modules/async-validator": { - "version": "1.8.5", - "resolved": "https://registry.nlark.com/async-validator/download/async-validator-1.8.5.tgz", - "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", - "dependencies": { - "babel-runtime": "6.x" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "8.5.0", - "resolved": "https://registry.nlark.com/autoprefixer/download/autoprefixer-8.5.0.tgz", - "integrity": "sha1-iaObExb757wrSZegx9rQFJ2ZURw=", - "dev": true, - "dependencies": { - "browserslist": "^3.2.7", - "caniuse-lite": "^1.0.30000839", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.22", - "postcss-value-parser": "^3.2.3" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - } - }, - "node_modules/awe-dnd": { - "version": "0.3.4", - "resolved": "https://registry.npm.taobao.org/awe-dnd/download/awe-dnd-0.3.4.tgz", - "integrity": "sha1-WRPRLgvTLz5+T2NhqHDo6mI0lus=" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101230105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", - "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", - "dev": true - }, - "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1608609324963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.21.1.tgz", - "integrity": "sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=", - "dependencies": { - "follow-redirects": "^1.10.0" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-eslint": { - "version": "8.2.6", - "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-8.2.6.tgz", - "integrity": "sha1-YnDQxzIFYoBnwPeuFpOp55es79k=", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.0.0-beta.44", - "@babel/traverse": "7.0.0-beta.44", - "@babel/types": "7.0.0-beta.44", - "babylon": "7.0.0-beta.44", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-eslint/node_modules/babylon": { - "version": "7.0.0-beta.44", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz", - "integrity": "sha1-iRWeFebjDFCW4i1zjYwK+KDoyh0=", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", - "dev": true, - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-helper-bindify-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true, - "dependencies": { - "babel-helper-bindify-decorators": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-vue-jsx-merge-props": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" - }, - "node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.5.tgz", - "integrity": "sha1-4+4M1zlKpVfgE7AtPkkr/QeqbWg=", - "dev": true, - "dependencies": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "babel-core": "6", - "webpack": "2 || 3 || 4" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.0.0.tgz", - "integrity": "sha1-1vw/bF473DTknBX6ynzgaXVcClc=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "node_modules/babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true - }, - "node_modules/babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true - }, - "node_modules/babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" - }, - "node_modules/babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true - }, - "node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "node_modules/babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "node_modules/babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true, - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-generators": "^6.5.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dev": true, - "dependencies": { - "babel-helper-explode-class": "^6.24.1", - "babel-plugin-syntax-decorators": "^6.13.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-decorators-legacy": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators-legacy/download/babel-plugin-transform-decorators-legacy-1.3.5.tgz", - "integrity": "sha1-Dkkt/6Dt1wUpByiH+KqG1N2LQKE=", - "dependencies": { - "babel-plugin-syntax-decorators": "^6.1.18", - "babel-runtime": "^6.2.0", - "babel-template": "^6.3.0" - } - }, - "node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", - "dev": true, - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-vue-jsx": { - "version": "3.7.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-vue-jsx/download/babel-plugin-transform-vue-jsx-3.7.0.tgz", - "integrity": "sha1-1ASS5mkqNrWU9+mhko9D6Wl0CWA=", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "peerDependencies": { - "babel-helper-vue-jsx-merge-props": "^2.0.0" - } - }, - "node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.7.0.tgz", - "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", - "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators": "^6.24.1", - "babel-preset-stage-3": "^6.24.1" - } - }, - "node_modules/babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true, - "dependencies": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-generator-functions": "^6.24.1", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-exponentiation-operator": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.22.0" - } - }, - "node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/babel-register/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-walk": { - "version": "3.0.0-canary-5", - "resolved": "https://registry.npm.taobao.org/babel-walk/download/babel-walk-3.0.0-canary-5.tgz", - "integrity": "sha1-9m7Ncpg1eu5ElV8jWm71QhkQSxE=", - "dev": true, - "dependencies": { - "@babel/types": "^7.9.6" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/babel-walk/node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", - "integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/babel-walk/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&sync_timestamp=1617714233441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&sync_timestamp=1605123700994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz", - "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "node_modules/batch-processor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bfj": { - "version": "6.1.2", - "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", - "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", - "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/bonjour/node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", - "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz?cache=0&sync_timestamp=1605194257215&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-rsa%2Fdownload%2Fbrowserify-rsa-4.1.0.tgz", - "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557838450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz", - "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/browserify-sign/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-3.2.8.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-3.2.8.tgz", - "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098073225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", - "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "10.0.4", - "resolved": "https://registry.nlark.com/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1621949584977&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", - "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", - "dependencies": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610403020286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "0.1.0", - "resolved": "https://registry.nlark.com/caller-path/download/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "dependencies": { - "callsites": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/callsites": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606867359182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603924797555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz?cache=0&sync_timestamp=1603924797555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", - "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-api/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001236", - "resolved": "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001236.tgz?cache=0&sync_timestamp=1623218904650&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001236.tgz", - "integrity": "sha1-CoDeTN9i4XcLtGow2IT8jWM+OVg=", - "dev": true - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cfb": { - "version": "1.2.1", - "resolved": "https://registry.nlark.com/cfb/download/cfb-1.2.1.tgz", - "integrity": "sha1-IJQp5MaO/TBkH2/HSy1gKL0gJAI=", - "dependencies": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0", - "printj": "~1.3.0" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cfb/node_modules/adler-32": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/adler-32/download/adler-32-1.3.0.tgz", - "integrity": "sha1-PK0bcc36afbIqR8+NhXTGk/e3HI=", - "dependencies": { - "printj": "~1.2.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cfb/node_modules/adler-32/node_modules/printj": { - "version": "1.2.3", - "resolved": "https://registry.nlark.com/printj/download/printj-1.2.3.tgz?cache=0&sync_timestamp=1630361456411&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprintj%2Fdownload%2Fprintj-1.2.3.tgz", - "integrity": "sha1-LPsrGSoeU4XbvltGZYrDSqgoUIo=", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cfb/node_modules/printj": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/printj/download/printj-1.3.0.tgz?cache=0&sync_timestamp=1630361456411&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprintj%2Fdownload%2Fprintj-1.3.0.tgz", - "integrity": "sha1-kBipGKeQ5DcH8QYl1uEBh6Nnz/Y=", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.1.tgz", - "integrity": "sha1-GMSasWoDe26wFSzIPjRxM4IVtm4=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/character-parser/download/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "dev": true, - "dependencies": { - "is-regex": "^1.0.3" - } - }, - "node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&sync_timestamp=1601032529880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "node_modules/check-types": { - "version": "8.0.3", - "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", - "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=" - }, - "node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905925551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "1.6.0", - "resolved": "https://registry.nlark.com/ci-info/download/ci-info-1.6.0.tgz", - "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", - "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", - "dev": true - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz?cache=0&sync_timestamp=1616153569589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz", - "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.3.1.tgz?cache=0&sync_timestamp=1616091641633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-1.3.1.tgz", - "integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz", - "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", - "dev": true, - "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz?cache=0&sync_timestamp=1618554984144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz", - "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=", - "dev": true - }, - "node_modules/clipboard": { - "version": "1.7.1", - "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-1.7.1.tgz?cache=0&sync_timestamp=1615410040723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-1.7.1.tgz", - "integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1604880249159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-2.0.2.tgz", - "integrity": "sha1-ANs6Hhc2VnMNEYjD1qztbX6pdxM=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", - "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", - "dev": true, - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coalescy": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/coalescy/download/coalescy-1.0.0.tgz", - "integrity": "sha1-SwZYRrg2NhrabEtKSr9LwcrDG/E=", - "dev": true - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codemirror": { - "version": "5.58.2", - "resolved": "https://registry.nlark.com/codemirror/download/codemirror-5.58.2.tgz", - "integrity": "sha1-7VSheW3hSYaIvqHN1OnusYdWXRs=" - }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.nlark.com/codepage/download/codepage-1.15.0.tgz", - "integrity": "sha1-LgBRkCSzlCTsZu6z7AcifmkmGKs=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228725017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz", - "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-string": { - "version": "1.5.5", - "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.5.tgz", - "integrity": "sha1-ZUdKjw50OWJfPSemoZ2J/EUiMBQ=", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259838969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz", - "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", - "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", - "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/connect": { - "version": "3.6.6", - "resolved": "https://registry.npm.taobao.org/connect/download/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "~1.3.2", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "node_modules/consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599597070540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz", - "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", - "dev": true, - "dependencies": { - "bluebird": "^3.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-4.0.1.tgz?cache=0&sync_timestamp=1568720534976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconstantinople%2Fdownload%2Fconstantinople-4.0.1.tgz", - "integrity": "sha1-De8RP6Dk3I3oMzGlz3nIsyUhMVE=", - "dev": true, - "dependencies": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } - }, - "node_modules/constantinople/node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", - "integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/constantinople/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", - "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz", - "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", - "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "4.5.2", - "resolved": "https://registry.nlark.com/copy-webpack-plugin/download/copy-webpack-plugin-4.5.2.tgz?cache=0&sync_timestamp=1621607204015&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-4.5.2.tgz", - "integrity": "sha1-1TREqP6ikS2AbniTc5Dd1+Yy7lw=", - "dev": true, - "dependencies": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", - "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/core-js": { - "version": "3.21.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.21.0.tgz", - "integrity": "sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310657948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz", - "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=", - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", - "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/cross-env/download/cross-env-5.2.0.tgz", - "integrity": "sha1-bs1MAV1Xc+YUA57lKQdmabnRJvI=", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.5", - "is-windows": "^1.0.0" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1620754698059&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", - "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", - "dev": true, - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-declaration-sorter/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/css-declaration-sorter/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-declaration-sorter/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/css-loader": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/css-loader/download/css-loader-1.0.0.tgz", - "integrity": "sha1-n0aqpcpB2+MYYOO2K44jxCkWv1Y=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash.camelcase": "^4.3.0", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "engines": { - "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz", - "integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", - "dev": true - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.nlark.com/css-selector-tokenizer/download/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha1-c18mGG5nx0mq8nV4NAXPBmH66PE=", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", - "dev": true, - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/css-what/download/css-what-5.0.1.tgz?cache=0&sync_timestamp=1622227760882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-5.0.1.tgz", - "integrity": "sha1-PvqCATH0ZpqKwkCPnDLnx96fTK0=", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npm.taobao.org/cssfilter/download/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" - }, - "node_modules/cssnano": { - "version": "4.1.11", - "resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz", - "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1622234651206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz", - "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cssnano/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408886733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz", - "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.3.tgz", - "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz", - "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", - "dev": true - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz", - "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", - "dev": true - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz", - "integrity": "sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o=", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.nlark.com/d3-color/download/d3-color-1.4.1.tgz", - "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=" - }, - "node_modules/d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/d3-ease/download/d3-ease-1.0.7.tgz", - "integrity": "sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI=" - }, - "node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.nlark.com/d3-interpolate/download/d3-interpolate-1.4.0.tgz", - "integrity": "sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=", - "dependencies": { - "d3-color": "1" - } - }, - "node_modules/d3-regression": { - "version": "1.3.9", - "resolved": "https://registry.nlark.com/d3-regression/download/d3-regression-1.3.9.tgz", - "integrity": "sha1-YcNKy5trvZFy7eifBdC3+9V8zcA=" - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.nlark.com/d3-timer/download/d3-timer-1.0.10.tgz", - "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073647826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-fns": { - "version": "1.30.1", - "resolved": "https://registry.nlark.com/date-fns/download/date-fns-1.30.1.tgz?cache=0&sync_timestamp=1622203607219&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdate-fns%2Fdownload%2Fdate-fns-1.30.1.tgz", - "integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=", - "dev": true - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1610348716845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606860754950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", - "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", - "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076849468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", - "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", - "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", - "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-browser": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-5.2.0.tgz?cache=0&sync_timestamp=1602160787180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.2.0.tgz", - "integrity": "sha1-yc1a+pamoZ/aC76em+SKa24enJc=" - }, - "node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/detect-indent/download/detect-indent-4.0.0.tgz?cache=0&sync_timestamp=1622185125989&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-indent%2Fdownload%2Fdetect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz?cache=0&sync_timestamp=1621146902208&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-node%2Fdownload%2Fdetect-node-2.1.0.tgz", - "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=" - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", - "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", - "dev": true, - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz", - "integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/doctypes/download/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", - "dev": true - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", - "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz", - "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.2.tgz?cache=0&sync_timestamp=1585903968629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz", - "integrity": "sha1-DFSL7wSPTR8qlySQAiNgYNqj/YQ=" - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1604239998047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - }, - "node_modules/domhandler": { - "version": "4.2.0", - "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.0.tgz", - "integrity": "sha1-+XaKXwNL5gqJonwuTQ9066DYsFk=", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/domready": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/domready/download/domready-1.0.8.tgz", - "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", - "dev": true - }, - "node_modules/domutils": { - "version": "2.7.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-2.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.7.0.tgz", - "integrity": "sha1-jrrwxB66/PVbC3LsMcVjI3EsVEI=", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778245785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz", - "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/driver.js": { - "version": "0.8.1", - "resolved": "https://registry.npm.taobao.org/driver.js/download/driver.js-0.8.1.tgz", - "integrity": "sha1-41bjFNz7VsXDafNBIQdayfBjzCs=" - }, - "node_modules/dropzone": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/dropzone/download/dropzone-5.2.0.tgz", - "integrity": "sha1-L99qxkcvTGLQPT6fwiqqAinSmd4=" - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fduplexer%2Fdownload%2Fduplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/echarts": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/echarts/download/echarts-4.1.0.tgz?cache=0&sync_timestamp=1623167264935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fecharts%2Fdownload%2Fecharts-4.1.0.tgz", - "integrity": "sha1-1YjJX3PBqZKLnHPVt2l1HDGFvNw=", - "dependencies": { - "zrender": "4.0.4" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "2.7.4", - "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz", - "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/el-tree-transfer": { - "version": "1.9.8", - "resolved": "https://registry.npm.taobao.org/el-tree-transfer/download/el-tree-transfer-1.9.8.tgz", - "integrity": "sha1-BDXzVxSyYze3L6SYfLa79NAMTXA=" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.752.tgz?cache=0&sync_timestamp=1623290597781&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.752.tgz", - "integrity": "sha1-ByhYfxublw7J/62TJJZCmu91DQk=", - "dev": true - }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/element-resize-detector": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/element-resize-detector/download/element-resize-detector-1.2.2.tgz?cache=0&sync_timestamp=1614323193690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-resize-detector%2Fdownload%2Felement-resize-detector-1.2.2.tgz", - "integrity": "sha1-v3w/+RWVfk5i6GJB7S+chrB4iSs=", - "dependencies": { - "batch-processor": "1.0.0" - } - }, - "node_modules/element-ui": { - "version": "2.15.13", - "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.13.tgz", - "integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==", - "dependencies": { - "async-validator": "~1.8.1", - "babel-helper-vue-jsx-merge-props": "^2.0.0", - "deepmerge": "^1.2.0", - "normalize-wheel": "^1.0.1", - "resize-observer-polyfill": "^1.5.0", - "throttle-debounce": "^1.0.1" - }, - "peerDependencies": { - "vue": "^2.5.17" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz?cache=0&sync_timestamp=1612290724809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.4.tgz", - "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682798745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz?cache=0&sync_timestamp=1569416367473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz?cache=0&sync_timestamp=1620663214002&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.5.0.tgz", - "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", - "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", - "dev": true - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/env-paths/download/env-paths-2.2.1.tgz", - "integrity": "sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz", - "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", - "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", - "dev": true, - "dependencies": { - "stackframe": "^1.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.nlark.com/es-abstract/download/es-abstract-1.18.3.tgz?cache=0&sync_timestamp=1622157901871&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.3.tgz", - "integrity": "sha1-JcTDOAonqiA8RLK2hbupTaMbY+A=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes5-ext%2Fdownload%2Fes5-ext-0.10.53.tgz", - "integrity": "sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE=", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es5-shim": { - "version": "4.5.15", - "resolved": "https://registry.npm.taobao.org/es5-shim/download/es5-shim-4.5.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes5-shim%2Fdownload%2Fes5-shim-4.5.15.tgz", - "integrity": "sha1-aiaGmyYYVKOwRSc/VYPFLTkCF/4=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz", - "integrity": "sha1-utXTwbzawoJp9MszHkMceKxwXRg=", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567343144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "4.19.1", - "resolved": "https://registry.nlark.com/eslint/download/eslint-4.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-4.19.1.tgz", - "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", - "dev": true, - "dependencies": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-friendly-formatter": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/eslint-friendly-formatter/download/eslint-friendly-formatter-4.0.1.tgz", - "integrity": "sha1-J9UE3IN/fK3b8gGy6EpO5zC6Pvo=", - "dev": true, - "dependencies": { - "chalk": "^2.0.1", - "coalescy": "1.0.0", - "extend": "^3.0.0", - "minimist": "^1.2.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-friendly-formatter/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-friendly-formatter/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-loader": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.0.0.tgz", - "integrity": "sha1-0TZhm1xoTjZTH/woxgpW5ARgj10=", - "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", - "dev": true, - "dependencies": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - }, - "peerDependencies": { - "eslint": ">=1.6.0 <5.0.0", - "webpack": ">=2.0.0 <5.0.0" - } - }, - "node_modules/eslint-plugin-vue": { - "version": "4.7.1", - "resolved": "https://registry.nlark.com/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz", - "integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=", - "dev": true, - "dependencies": { - "vue-eslint-parser": "^2.0.3" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3.18.0 || ^4.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz?cache=0&sync_timestamp=1599933675196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1620088667316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.nlark.com/ajv/download/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/eslint/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "node_modules/eslint/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/espree": { - "version": "3.5.4", - "resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz?cache=0&sync_timestamp=1607144055171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-3.5.4.tgz", - "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", - "dev": true, - "dependencies": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "5.7.4", - "resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&sync_timestamp=1598517819668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz", - "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz?cache=0&sync_timestamp=1614444838320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.1.0.tgz?cache=0&sync_timestamp=1616041748498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.1.0.tgz", - "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=", - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz", - "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", - "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz?cache=0&sync_timestamp=1601400328354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/express/node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", - "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fext%2Fdownload%2Fext-1.4.0.tgz", - "integrity": "sha1-ia56BxWPedNVF4gpBDJAd+Q3kkQ=", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/type/download/type-2.5.0.tgz", - "integrity": "sha1-Ci54wud5B7JSq+XymMGwHGPw2z0=", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz", - "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", - "dev": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", - "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", - "dev": true - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz", - "integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-4.2.1.tgz", - "integrity": "sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4=" - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "dependencies": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/file-loader": { - "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-1.1.11.tgz", - "integrity": "sha1-b+iGRJsPKpNuQ8q6rAzb+zaVBvg=", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.4.5" - }, - "engines": { - "node": ">= 4.3 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/file-saver": { - "version": "1.3.8", - "resolved": "https://registry.npm.taobao.org/file-saver/download/file-saver-1.3.8.tgz?cache=0&sync_timestamp=1605790980036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-saver%2Fdownload%2Ffile-saver-1.3.8.tgz", - "integrity": "sha1-5oowx8sETi+zYrQoRp/rKRwuCdg=" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz?cache=0&sync_timestamp=1570825475173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", - "optional": true - }, - "node_modules/filesize": { - "version": "3.6.1", - "resolved": "https://registry.nlark.com/filesize/download/filesize-3.6.1.tgz", - "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-parent-dir": { - "version": "0.3.1", - "resolved": "https://registry.nlark.com/find-parent-dir/download/find-parent-dir-0.3.1.tgz", - "integrity": "sha1-xcOFuWhYwzUfldRGyrhmy/nxESU=", - "dev": true - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz", - "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", - "dev": true, - "dependencies": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz", - "integrity": "sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M=", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz?cache=0&sync_timestamp=1613410971123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz?cache=0&sync_timestamp=1622503508967&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fforwarded%2Fdownload%2Fforwarded-0.2.0.tgz", - "integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/frac": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/frac/download/frac-1.1.2.tgz", - "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/friendly-errors-webpack-plugin": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/friendly-errors-webpack-plugin/download/friendly-errors-webpack-plugin-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffriendly-errors-webpack-plugin%2Fdownload%2Ffriendly-errors-webpack-plugin-1.7.0.tgz", - "integrity": "sha1-78hsu4FiJFZYYaG+ep2E0Kr+oTY=", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/friendly-errors-webpack-plugin/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/friendly-errors-webpack-plugin/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/friendly-errors-webpack-plugin/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/friendly-errors-webpack-plugin/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628584498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1612536512306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz?cache=0&sync_timestamp=1580507640343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gaze": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz", - "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=", - "dev": true, - "dependencies": { - "globule": "^1.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", - "dev": true - }, - "node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz?cache=0&sync_timestamp=1618557719783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/gl-matrix": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/gl-matrix/download/gl-matrix-3.3.0.tgz", - "integrity": "sha1-Iy7vYLHIswooy751ssr2xI/WNYs=" - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&sync_timestamp=1620337382269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global": { - "version": "4.3.2", - "resolved": "https://registry.npm.taobao.org/global/download/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dependencies": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "node_modules/global-modules-path": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/global-modules-path/download/global-modules-path-2.3.1.tgz", - "integrity": "sha1-5UH0yAChqFFKmQR3smesZ1JbmTE=", - "dev": true - }, - "node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.nlark.com/globals/download/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globule": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz", - "integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=", - "dev": true, - "dependencies": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.6.tgz", - "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=" - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "node_modules/gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", - "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", - "dependencies": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", - "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082578993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", - "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&sync_timestamp=1615461262702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", - "dev": true - }, - "node_modules/has-color": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443557459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", - "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/hash-base/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", - "dev": true - }, - "node_modules/highlight.js": { - "version": "9.18.5", - "resolved": "https://registry.nlark.com/highlight.js/download/highlight.js-9.18.5.tgz", - "integrity": "sha1-0Yo1mGfzeME41oGe38KorNXymCU=", - "deprecated": "Support has ended for 9.x series. Upgrade to @latest", - "engines": { - "node": "*" - } - }, - "node_modules/highlight.js-async-webpack": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/highlight.js-async-webpack/download/highlight.js-async-webpack-1.0.4.tgz", - "integrity": "sha1-wGtnv5nwSQRdYrdW5YVbCRLsYWw=" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/home-or-tmp/download/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", - "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "dev": true - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "node_modules/html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031553039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz", - "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=" - }, - "node_modules/html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", - "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", - "dev": true, - "dependencies": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "bin": { - "html-minifier": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/html-minifier/node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.nlark.com/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", - "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", - "dev": true - }, - "node_modules/html-webpack-plugin": { - "version": "4.0.0-alpha", - "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-4.0.0-alpha.tgz", - "integrity": "sha1-sse21IhaIJyZnfzj/7mGbiyMDqo=", - "deprecated": "please switch to a stable version", - "dev": true, - "dependencies": { - "@types/tapable": "1.0.2", - "html-minifier": "^3.2.3", - "loader-utils": "^1.1.0", - "lodash": "^4.17.10", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "util.promisify": "1.0.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1617914940336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz", - "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407676273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.5.3.tgz", - "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", - "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868555829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "node_modules/husky": { - "version": "0.14.3", - "resolved": "https://registry.npm.taobao.org/husky/download/husky-0.14.3.tgz?cache=0&sync_timestamp=1617004245593&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhusky%2Fdownload%2Fhusky-0.14.3.tgz", - "integrity": "sha1-xp7XTi0neXaaF7qDmbVM4LY8EsM=", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "is-ci": "^1.0.10", - "normalize-path": "^1.0.0", - "strip-indent": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/husky/node_modules/normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1621826342262&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "node_modules/icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz?cache=0&sync_timestamp=1605801458520&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "dependencies": { - "postcss": "^6.0.1" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838418666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "dev": true - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1618424661730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh/node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/caller-path/download/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/indent-string/download/indent-string-3.2.0.tgz?cache=0&sync_timestamp=1618847271946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/individual": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/individual/download/individual-2.0.0.tgz", - "integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" - }, - "node_modules/inquirer": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/inquirer/download/inquirer-3.3.0.tgz?cache=0&sync_timestamp=1621628995749&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finquirer%2Fdownload%2Finquirer-3.3.0.tgz", - "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1605885656632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz", - "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", - "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117383813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz", - "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.2.tgz", - "integrity": "sha1-/7OBRCUDI1rSReqJ5Fs9v/BA7lo=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.1.tgz", - "integrity": "sha1-PAh48DXLghIo01DS4eNnGXFqPeg=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429876103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz?cache=0&sync_timestamp=1612133072647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.3.tgz", - "integrity": "sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", - "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", - "dev": true, - "dependencies": { - "ci-info": "^1.5.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz", - "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=", - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.4.tgz", - "integrity": "sha1-VQz8wDr62gXuo90wmBx7CVUfc+U=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-4.0.0.tgz", - "integrity": "sha1-wzFVliq/IdCv0lUlFNZ9LsFv0qs=", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-finite/download/is-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-function/download/is-function-1.0.2.tgz", - "integrity": "sha1-Twl/MKv2762smDOxfKXcA/gUTgg=" - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607125693555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz", - "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.5.tgz", - "integrity": "sha1-bt+u7XlQz/Ga/tzp+/yp7m3Sies=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/is-obj/download/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz?cache=0&sync_timestamp=1596373335763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-observable%2Fdownload%2Fis-observable-1.1.0.tgz", - "integrity": "sha1-s+mGyPRN6VCGfKtUA/WjRlAFl14=", - "dev": true, - "dependencies": { - "symbol-observable": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1562347283002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-plain-obj/download/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1599667246252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz", - "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.3.tgz?cache=0&sync_timestamp=1620452285370&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.3.tgz", - "integrity": "sha1-0Cn5r/ZEi5Prvj8z2scVEf3L758=", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz?cache=0&sync_timestamp=1617816768041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", - "dev": true - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.6.tgz?cache=0&sync_timestamp=1620448217105&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-string%2Fdownload%2Fis-string-1.0.6.tgz", - "integrity": "sha1-P+XVmS+w2TQE8yWE1LAXmnG1Sl8=", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501182675&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/jest-get-type": { - "version": "22.4.3", - "resolved": "https://registry.nlark.com/jest-get-type/download/jest-get-type-22.4.3.tgz?cache=0&sync_timestamp=1621937309906&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjest-get-type%2Fdownload%2Fjest-get-type-22.4.3.tgz", - "integrity": "sha1-46hQTYR5NC3UQgI2syKGnxiQDOQ=", - "dev": true - }, - "node_modules/jest-validate": { - "version": "23.6.0", - "resolved": "https://registry.nlark.com/jest-validate/download/jest-validate-23.6.0.tgz", - "integrity": "sha1-NnYfmdHtM/zUJbTkxVldYrZZdHQ=", - "dev": true, - "dependencies": { - "chalk": "^2.0.1", - "jest-get-type": "^22.1.0", - "leven": "^2.1.0", - "pretty-format": "^23.6.0" - } - }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.nlark.com/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1621703447855&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz", - "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=", - "dev": true - }, - "node_modules/js-cookie": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.0.tgz", - "integrity": "sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s=" - }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/js-stringify/download/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618435151523&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz?cache=0&sync_timestamp=1603891224688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1609553708276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", - "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=" - }, - "node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonlint": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/jsonlint/download/jsonlint-1.6.3.tgz", - "integrity": "sha1-y14x78C3gpHQ2GL77wWQCt8hKYg=", - "dependencies": { - "JSV": "^4.0.x", - "nomnom": "^1.5.x" - }, - "bin": { - "jsonlint": "lib/cli.js" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/jstransformer/download/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "dev": true, - "dependencies": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "node_modules/JSV": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/JSV/download/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", - "engines": { - "node": "*" - } - }, - "node_modules/jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmmirror.com/jszip/download/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", - "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha1-l0LfDhDjz0blwDgcLekNOnotdVU=", - "dev": true, - "dependencies": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "dev": true, - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz", - "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lint-staged": { - "version": "7.2.2", - "resolved": "https://registry.nlark.com/lint-staged/download/lint-staged-7.2.2.tgz?cache=0&sync_timestamp=1620406121591&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flint-staged%2Fdownload%2Flint-staged-7.2.2.tgz", - "integrity": "sha1-CYPVXUl/GfNtEf8sgkKy9WzC3QU=", - "dev": true, - "dependencies": { - "chalk": "^2.3.1", - "commander": "^2.14.1", - "cosmiconfig": "^5.0.2", - "debug": "^3.1.0", - "dedent": "^0.7.0", - "execa": "^0.9.0", - "find-parent-dir": "^0.3.0", - "is-glob": "^4.0.0", - "is-windows": "^1.0.2", - "jest-validate": "^23.5.0", - "listr": "^0.14.1", - "lodash": "^4.17.5", - "log-symbols": "^2.2.0", - "micromatch": "^3.1.8", - "npm-which": "^3.0.1", - "p-map": "^1.1.1", - "path-is-inside": "^1.0.2", - "pify": "^3.0.0", - "please-upgrade-node": "^3.0.2", - "staged-git-files": "1.1.1", - "string-argv": "^0.0.2", - "stringify-object": "^3.2.2" - }, - "bin": { - "lint-staged": "index.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lint-staged/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/lint-staged/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "0.9.0", - "resolved": "https://registry.nlark.com/execa/download/execa-0.9.0.tgz", - "integrity": "sha1-rbfOYs+YUHH2BYDetKiLnjRxLQE=", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/lint-staged/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true - }, - "node_modules/lint-staged/node_modules/p-map": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/p-map/download/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/lint-staged/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr": { - "version": "0.14.3", - "resolved": "https://registry.npm.taobao.org/listr/download/listr-0.14.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flistr%2Fdownload%2Flistr-0.14.3.tgz", - "integrity": "sha1-L+qQlgTkNL5GTFC926DUlpKPpYY=", - "dev": true, - "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flistr-update-renderer%2Fdownload%2Flistr-update-renderer-0.5.0.tgz", - "integrity": "sha1-Tqg2hUinuK7LfgbYyVy0WuLt5qI=", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "listr": "^0.14.2" - } - }, - "node_modules/listr-update-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/log-symbols/download/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha1-8RMhZ1NepMEmEQK58o2sfLoeA9s=", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz", - "integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=", - "dev": true, - "dependencies": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - } - }, - "node_modules/loader-fs-cache/node_modules/find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-fs-cache/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-fs-cache/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-fs-cache/node_modules/pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610028023329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.tail": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/lodash.tail/download/lodash.tail-4.1.1.tgz", - "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/log-symbols/download/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/log-update/download/log-update-2.3.0.tgz?cache=0&sync_timestamp=1582186637481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-update%2Fdownload%2Flog-update-2.3.0.tgz", - "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606312221245&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz", - "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/loglevelnext": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/loglevelnext/download/loglevelnext-1.0.5.tgz", - "integrity": "sha1-NvxPWZbWZA9Tn/IDuoGWQWgNdaI=", - "dev": true, - "dependencies": { - "es6-symbol": "^3.1.1", - "object.assign": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/long": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/long/download/long-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flong%2Fdownload%2Flong-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floud-rejection%2Fdownload%2Floud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867304538&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/m3u8-parser": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/m3u8-parser/download/m3u8-parser-2.1.0.tgz?cache=0&sync_timestamp=1621435940345&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fm3u8-parser%2Fdownload%2Fm3u8-parser-2.1.0.tgz", - "integrity": "sha1-yBcDKewc1RXQ1Yu4t2LamJbLA2g=" - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz", - "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", - "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=" - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", - "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617771341569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mavon-editor": { - "version": "2.9.1", - "resolved": "https://registry.npm.taobao.org/mavon-editor/download/mavon-editor-2.9.1.tgz", - "integrity": "sha1-Wa3Hy9Ghpx9pHPWyon5g7D5pl8w=", - "dependencies": { - "highlight.js": "^9.11.0", - "highlight.js-async-webpack": "^1.0.4", - "xss": "^1.0.6" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz", - "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/mem/download/mem-4.3.0.tgz?cache=0&sync_timestamp=1618933830567&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mem/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.nlark.com/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1623137159863&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-options": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz?cache=0&sync_timestamp=1606147071422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-options%2Fdownload%2Fmerge-options-1.0.1.tgz", - "integrity": "sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", - "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.nlark.com/mime-db/download/mime-db-1.48.0.tgz?cache=0&sync_timestamp=1622433556078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-db%2Fdownload%2Fmime-db-1.48.0.tgz", - "integrity": "sha1-41sxBF3X6to6qtU37YijOvvvLR0=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.nlark.com/mime-types/download/mime-types-2.1.31.tgz?cache=0&sync_timestamp=1622569304088&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.31.tgz", - "integrity": "sha1-oA12t0MXxh+cLbIhi46fjpxcnms=", - "dependencies": { - "mime-db": "1.48.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.4.1", - "resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.4.1.tgz", - "integrity": "sha1-0rz3e7JZa45L2SV+Q9P5Fkwuhss=", - "dev": true, - "dependencies": { - "@webpack-contrib/schema-utils": "^1.0.0-beta.0", - "loader-utils": "^1.1.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^4.4.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", - "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "node_modules/mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", - "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mississippi/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/mitt": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/mitt/download/mitt-1.1.2.tgz", - "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", - "dev": true - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz?cache=0&sync_timestamp=1561436244196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/mixin-object/download/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "dependencies": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", - "engines": { - "node": "*" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.nlark.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1621890647706&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "node_modules/mux.js": { - "version": "4.3.2", - "resolved": "https://registry.npm.taobao.org/mux.js/download/mux.js-4.3.2.tgz", - "integrity": "sha1-V21TffA33F7DXsExa5SNgV01whA=" - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591607196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", - "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", - "devOptional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317361810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1606867512442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010726129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz", - "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.nlark.com/node-gyp/download/node-gyp-7.1.2.tgz?cache=0&sync_timestamp=1622168102506&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.1.2.tgz", - "integrity": "sha1-IagQrrsYcSAlHDvOyXmvFYexiK4=", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-libs-browser%2Fdownload%2Fnode-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/node-libs-browser/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/node-libs-browser/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/node-notifier": { - "version": "9.0.0", - "resolved": "https://registry.nlark.com/node-notifier/download/node-notifier-9.0.0.tgz?cache=0&sync_timestamp=1621962335259&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-notifier%2Fdownload%2Fnode-notifier-9.0.0.tgz", - "integrity": "sha1-RsW77Lt5bUqAP2Rs6lvJFAPy/zg=", - "dev": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-notifier/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.nlark.com/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/node-notifier/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-notifier/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "node_modules/node-releases": { - "version": "1.1.73", - "resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.73.tgz", - "integrity": "sha1-3U6B3dUnf/hGuAtSu0DEnt96eyA=", - "dev": true - }, - "node_modules/node-sass": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/node-sass/download/node-sass-5.0.0.tgz", - "integrity": "sha1-To85++87rI0txy6+O1OXEYg6eNI=", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^7.1.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "bin": { - "node-sass": "bin/node-sass" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-sass/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-sass/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-sass/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971613935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-sass/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-sass/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-sass/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/nomnom": { - "version": "1.8.1", - "resolved": "https://registry.npm.taobao.org/nomnom/download/nomnom-1.8.1.tgz", - "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", - "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", - "dependencies": { - "chalk": "~0.4.0", - "underscore": "~1.6.0" - } - }, - "node_modules/nomnom/node_modules/ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-1.0.0.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nomnom/node_modules/chalk": { - "version": "0.4.0", - "resolved": "https://registry.nlark.com/chalk/download/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dependencies": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nomnom/node_modules/strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-0.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "bin": { - "strip-ansi": "cli.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-5.0.0.tgz?cache=0&sync_timestamp=1597649892953&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-5.0.0.tgz", - "integrity": "sha1-UwlCu1ilEvzK/lP+IQ8TolNV3Ig=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1616087070459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz", - "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-wheel": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", - "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" - }, - "node_modules/normalize.css": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/normalize.css/download/normalize.css-7.0.0.tgz", - "integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8=" - }, - "node_modules/npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz", - "integrity": "sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ=", - "dev": true, - "dependencies": { - "which": "^1.2.10" - }, - "bin": { - "npm-path": "bin/npm-path" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz", - "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", - "dev": true, - "dependencies": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - }, - "bin": { - "npm-which": "bin/npm-which.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "node_modules/nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-2.0.0.tgz", - "integrity": "sha1-G7T22scAcvwxPoyc0UF7UHTAoSU=", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "1.3.1", - "resolved": "https://registry.nlark.com/object-hash/download/object-hash-1.3.1.tgz", - "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.10.3.tgz", - "integrity": "sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k=", - "dev": true - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz", - "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115212739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613862016164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.4", - "resolved": "https://registry.nlark.com/object.values/download/object.values-1.1.4.tgz", - "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", - "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", - "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/onetime/download/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz", - "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz", - "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.0.tgz?cache=0&sync_timestamp=1621216382664&other_urls=https%3A%2F%2Fregistry.nlark.com%2Foptimize-css-assets-webpack-plugin%2Fdownload%2Foptimize-css-assets-webpack-plugin-5.0.0.tgz", - "integrity": "sha1-jJrfAOhBhx9if4KoCXpPn8wxTeQ=", - "dev": true, - "dependencies": { - "cssnano": "^4.0.2", - "last-call-webpack-plugin": "^3.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966238288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/ora/download/ora-3.0.0.tgz", - "integrity": "sha1-gXnjUluar9mSQtY8wgb9ZHMnQdA=", - "dev": true, - "dependencies": { - "chalk": "^2.3.1", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.1.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^4.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/original": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", - "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1584865515583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&sync_timestamp=1617945878897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz?cache=0&sync_timestamp=1618557038207&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-is-promise%2Fdownload%2Fp-is-promise-2.1.0.tgz", - "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/p-map/download/p-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1617001968077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", - "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1610209123970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", - "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597165710136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz", - "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/parse-headers/download/parse-headers-2.0.3.tgz", - "integrity": "sha1-Xo51Ejg9FAugLwx6qfSbQ5nJJRU=" - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1617971613935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=" - }, - "node_modules/path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-2.4.0.tgz?cache=0&sync_timestamp=1601400328354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-2.4.0.tgz", - "integrity": "sha1-Nc5/Mz1WFvHB4b/iZsOrouWy5wQ=", - "dev": true - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.2.tgz?cache=0&sync_timestamp=1617976027191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.2.tgz", - "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", - "optional": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkcs7": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/pkcs7/download/pkcs7-0.2.3.tgz", - "integrity": "sha1-ItYGZtAQZcXyRDkJjkpIMEUic74=", - "bin": { - "pkcs7": "lib/cli.js" - }, - "engines": { - "node": "^0.10", - "npm": "^1.4.6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/please-upgrade-node/download/please-upgrade-node-3.2.0.tgz", - "integrity": "sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz", - "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.13.tgz?cache=0&sync_timestamp=1596019866852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "dependencies": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/async/download/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.nlark.com/postcss/download/postcss-6.0.23.tgz", - "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689176591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", - "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", - "dev": true, - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-calc/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-calc/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-calc/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-calc/node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", - "dev": true - }, - "node_modules/postcss-calc/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-calc/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz", - "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-colormin/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/postcss-colormin/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-colormin/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-colormin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-colormin/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", - "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-convert-values/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-convert-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-convert-values/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1621449592883&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz", - "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-comments/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1621449593093&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-empty/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-empty/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-overridden/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-discard-overridden/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-import": { - "version": "11.1.0", - "resolved": "https://registry.nlark.com/postcss-import/download/postcss-import-11.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-import%2Fdownload%2Fpostcss-import-11.1.0.tgz", - "integrity": "sha1-Vck2LJGSmU7GiGXSJEGd8dspgfA=", - "dev": true, - "dependencies": { - "postcss": "^6.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1612743037145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", - "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.nlark.com/postcss-loader/download/postcss-loader-2.1.6.tgz", - "integrity": "sha1-HX3XsXxrojS5vtWvE+C+pApC10A=", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^6.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^0.4.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.nlark.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", - "dev": true, - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-merge-longhand/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1622234641993&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", - "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-merge-rules/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/postcss-merge-rules/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-merge-rules/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-font-values/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1621449598992&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", - "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-gradients/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", - "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-params/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/postcss-minify-params/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-minify-params/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-params/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1621449593365&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", - "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-selectors/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-selectors/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz?cache=0&sync_timestamp=1602588202058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=", - "dev": true, - "dependencies": { - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&sync_timestamp=1602587625149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz?cache=0&sync_timestamp=1602593133331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz?cache=0&sync_timestamp=1602586179271&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "dependencies": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1621449593655&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz", - "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-charset/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-charset/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1621449599414&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1621449596114&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1621449595099&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz", - "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", - "dev": true, - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-url/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-url/node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1621449593892&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-ordered-values/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-prefix-selector": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/postcss-prefix-selector/download/postcss-prefix-selector-1.9.0.tgz", - "integrity": "sha1-21SYArefn5H3QZyMH4bTHZdK/14=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - } - }, - "node_modules/postcss-prefix-selector/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-prefix-selector/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-prefix-selector/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-prefix-selector/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-prefix-selector/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-prefix-selector/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1621449599206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", - "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-initial/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/postcss-reduce-initial/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-initial/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz", - "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz?cache=0&sync_timestamp=1622234649078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.3.tgz", - "integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-unique-selectors/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-unique-selectors/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-unique-selectors/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-unique-selectors/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-unique-selectors/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-url": { - "version": "7.3.2", - "resolved": "https://registry.npm.taobao.org/postcss-url/download/postcss-url-7.3.2.tgz?cache=0&sync_timestamp=1616158702494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-url%2Fdownload%2Fpostcss-url-7.3.2.tgz", - "integrity": "sha1-X+onOAf7hLOMRhw8mp6KvSNfcSA=", - "dev": true, - "dependencies": { - "mime": "^1.4.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.0", - "postcss": "^6.0.1", - "xxhashjs": "^0.2.1" - } - }, - "node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/posthtml": { - "version": "0.9.2", - "resolved": "https://registry.nlark.com/posthtml/download/posthtml-0.9.2.tgz?cache=0&sync_timestamp=1623143664789&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fposthtml%2Fdownload%2Fposthtml-0.9.2.tgz", - "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", - "dev": true, - "dependencies": { - "posthtml-parser": "^0.2.0", - "posthtml-render": "^1.0.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posthtml-parser": { - "version": "0.2.1", - "resolved": "https://registry.nlark.com/posthtml-parser/download/posthtml-parser-0.2.1.tgz", - "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", - "dev": true, - "dependencies": { - "htmlparser2": "^3.8.3", - "isobject": "^2.1.0" - } - }, - "node_modules/posthtml-parser/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - }, - "node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", - "dev": true - }, - "node_modules/posthtml-parser/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "node_modules/posthtml-parser/node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/domhandler/download/domhandler-2.4.2.tgz", - "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/posthtml-parser/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/posthtml-parser/node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", - "dev": true - }, - "node_modules/posthtml-parser/node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1617914940336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/posthtml-parser/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posthtml-parser/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/posthtml-parser/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true - }, - "node_modules/posthtml-parser/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/posthtml-rename-id": { - "version": "1.0.12", - "resolved": "https://registry.npm.taobao.org/posthtml-rename-id/download/posthtml-rename-id-1.0.12.tgz", - "integrity": "sha1-z39us3FGvxr6wx5o8YxswZrmFDM=", - "dev": true, - "dependencies": { - "escape-string-regexp": "1.0.5" - } - }, - "node_modules/posthtml-render": { - "version": "1.4.0", - "resolved": "https://registry.nlark.com/posthtml-render/download/posthtml-render-1.4.0.tgz", - "integrity": "sha1-QBFAcMRYgcrLkzR9rj7/U6+8/xM=", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/posthtml-svg-mode": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/posthtml-svg-mode/download/posthtml-svg-mode-1.0.3.tgz", - "integrity": "sha1-q9VU+s6BIjyrDLNn4Y5O/SpOdLA=", - "dev": true, - "dependencies": { - "merge-options": "1.0.1", - "posthtml": "^0.9.2", - "posthtml-parser": "^0.2.1", - "posthtml-render": "^1.0.6" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz?cache=0&sync_timestamp=1585868608597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "1.16.3", - "resolved": "https://registry.nlark.com/prettier/download/prettier-1.16.3.tgz?cache=0&sync_timestamp=1622888668729&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.16.3.tgz", - "integrity": "sha1-jGIWhFO63vcC80tFtu6JlXSmpl0=", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.nlark.com/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1623178829041&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", - "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "node_modules/pretty-format": { - "version": "23.6.0", - "resolved": "https://registry.nlark.com/pretty-format/download/pretty-format-23.6.0.tgz?cache=0&sync_timestamp=1622290311384&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpretty-format%2Fdownload%2Fpretty-format-23.6.0.tgz", - "integrity": "sha1-XqrI7razO5h7f+YJfqaooUarV2A=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/print-js": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/print-js/download/print-js-1.6.0.tgz", - "integrity": "sha1-aSsEbPMZkrRq+mxtip2xxp1DHR8=" - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz", - "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI=", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process": { - "version": "0.5.2", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz", - "integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" - }, - "node_modules/pug": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/pug/download/pug-3.0.2.tgz", - "integrity": "sha1-81xxBzQ0VOQ7wnrg/3bHMbeOpTU=", - "dev": true, - "dependencies": { - "pug-code-gen": "^3.0.2", - "pug-filters": "^4.0.0", - "pug-lexer": "^5.0.1", - "pug-linker": "^4.0.0", - "pug-load": "^3.0.0", - "pug-parser": "^6.0.0", - "pug-runtime": "^3.0.1", - "pug-strip-comments": "^2.0.0" - } - }, - "node_modules/pug-attrs": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-3.0.0.tgz?cache=0&sync_timestamp=1590409922141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-attrs%2Fdownload%2Fpug-attrs-3.0.0.tgz", - "integrity": "sha1-sQRR4DSBZeMfrRzCPr3dncc0fEE=", - "dev": true, - "dependencies": { - "constantinople": "^4.0.1", - "js-stringify": "^1.0.2", - "pug-runtime": "^3.0.0" - } - }, - "node_modules/pug-code-gen": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-3.0.2.tgz?cache=0&sync_timestamp=1614537308606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-code-gen%2Fdownload%2Fpug-code-gen-3.0.2.tgz", - "integrity": "sha1-rRkPSUMTO/GGtguA3kgxAOEy4s4=", - "dev": true, - "dependencies": { - "constantinople": "^4.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.2", - "pug-attrs": "^3.0.0", - "pug-error": "^2.0.0", - "pug-runtime": "^3.0.0", - "void-elements": "^3.1.0", - "with": "^7.0.0" - } - }, - "node_modules/pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pug-error/download/pug-error-2.0.0.tgz", - "integrity": "sha1-XGIXPLCcNN4qLOBPF7it/sdNjKU=", - "dev": true - }, - "node_modules/pug-filters": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-4.0.0.tgz", - "integrity": "sha1-0+Sa9bqEcum3pm2YDnB86dLMm14=", - "dev": true, - "dependencies": { - "constantinople": "^4.0.1", - "jstransformer": "1.0.0", - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0", - "resolve": "^1.15.1" - } - }, - "node_modules/pug-html-loader": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/pug-html-loader/download/pug-html-loader-1.1.5.tgz", - "integrity": "sha1-tGhVp3kKMG5D7F2yl9vbt5lfS1o=", - "dev": true, - "dependencies": { - "loader-utils": "^0.2.17", - "pug": "^2.0.0-rc.2" - } - }, - "node_modules/pug-html-loader/node_modules/acorn": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/pug-html-loader/node_modules/big.js": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/big.js/download/big.js-3.2.0.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pug-html-loader/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1603924797555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pug-html-loader/node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz?cache=0&sync_timestamp=1604880249159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/pug-html-loader/node_modules/constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-3.1.2.tgz?cache=0&sync_timestamp=1568720534976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconstantinople%2Fdownload%2Fconstantinople-3.1.2.tgz", - "integrity": "sha1-1F7XJPV9PRBQABen06iJwTga5kc=", - "dev": true, - "dependencies": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, - "node_modules/pug-html-loader/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pug-html-loader/node_modules/is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", - "dev": true, - "dependencies": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - } - }, - "node_modules/pug-html-loader/node_modules/is-expression/node_modules/acorn": { - "version": "4.0.13", - "resolved": "https://registry.nlark.com/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/pug-html-loader/node_modules/loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "dependencies": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "node_modules/pug-html-loader/node_modules/pug": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pug/download/pug-2.0.4.tgz", - "integrity": "sha1-7naC7ApgSUs41IqI8F87CskxN30=", - "dev": true, - "dependencies": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" - } - }, - "node_modules/pug-html-loader/node_modules/pug-attrs": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-2.0.4.tgz?cache=0&sync_timestamp=1590409922141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-attrs%2Fdownload%2Fpug-attrs-2.0.4.tgz", - "integrity": "sha1-svRMQ55OtK1dTvJcrCDRitKMwzY=", - "dev": true, - "dependencies": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" - } - }, - "node_modules/pug-html-loader/node_modules/pug-code-gen": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-2.0.3.tgz?cache=0&sync_timestamp=1614537308606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-code-gen%2Fdownload%2Fpug-code-gen-2.0.3.tgz", - "integrity": "sha1-Ei65ram1v2AXBf4VqqCn0mvBNKs=", - "dev": true, - "dependencies": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "node_modules/pug-html-loader/node_modules/pug-error": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/pug-error/download/pug-error-1.3.3.tgz", - "integrity": "sha1-80L7AIdS1YA0wYXeA2At2f/hX6Y=", - "dev": true - }, - "node_modules/pug-html-loader/node_modules/pug-filters": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-3.1.1.tgz", - "integrity": "sha1-qyzILbnuzPV4vaiRMOJSoNsCaqc=", - "dev": true, - "dependencies": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - } - }, - "node_modules/pug-html-loader/node_modules/pug-lexer": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-4.1.0.tgz", - "integrity": "sha1-UxzeSMfAsfy7wrhUhchmXjFInP0=", - "dev": true, - "dependencies": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" - } - }, - "node_modules/pug-html-loader/node_modules/pug-linker": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-3.0.6.tgz", - "integrity": "sha1-9b8hiw79Zc5mcPevxRZY0Pgpifs=", - "dev": true, - "dependencies": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" - } - }, - "node_modules/pug-html-loader/node_modules/pug-load": { - "version": "2.0.12", - "resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-2.0.12.tgz", - "integrity": "sha1-04yF64X24vcE3qFNzKlBRNNdPns=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" - } - }, - "node_modules/pug-html-loader/node_modules/pug-parser": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-5.0.1.tgz", - "integrity": "sha1-A+etpItoQL04Ivhn19kPhC0P/ck=", - "dev": true, - "dependencies": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" - } - }, - "node_modules/pug-html-loader/node_modules/pug-runtime": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-2.0.5.tgz", - "integrity": "sha1-baeXbDa/IvaOczw1kkDYrnoylTo=", - "dev": true - }, - "node_modules/pug-html-loader/node_modules/pug-strip-comments": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-1.0.4.tgz", - "integrity": "sha1-zBtt4fbo9ZMc8C7GbN/9P1Dq+Kg=", - "dev": true, - "dependencies": { - "pug-error": "^1.3.3" - } - }, - "node_modules/pug-html-loader/node_modules/pug-walk": { - "version": "1.1.8", - "resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-1.1.8.tgz", - "integrity": "sha1-tAj2fyeRL4wh2i9FtyMMS9Kl6no=", - "dev": true - }, - "node_modules/pug-html-loader/node_modules/token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", - "dev": true - }, - "node_modules/pug-html-loader/node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-2.8.29.tgz?cache=0&sync_timestamp=1622845500166&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/pug-html-loader/node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pug-html-loader/node_modules/with": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/with/download/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "dev": true, - "dependencies": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "node_modules/pug-html-loader/node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.nlark.com/yargs/download/yargs-3.10.0.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/pug-lexer": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-5.0.1.tgz", - "integrity": "sha1-rkRijFvvmxkLZlaDsojKkCS4sNU=", - "dev": true, - "dependencies": { - "character-parser": "^2.2.0", - "is-expression": "^4.0.0", - "pug-error": "^2.0.0" - } - }, - "node_modules/pug-linker": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-4.0.0.tgz", - "integrity": "sha1-EsvAWU/Fo+Brn8Web5PBRpYqdwg=", - "dev": true, - "dependencies": { - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0" - } - }, - "node_modules/pug-load": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-3.0.0.tgz", - "integrity": "sha1-n9nNpSICsIrbEdJWgfufNL1BtmI=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "pug-walk": "^2.0.0" - } - }, - "node_modules/pug-parser": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-6.0.0.tgz", - "integrity": "sha1-qP3ANYY6lbLB3F6/Ts+AtOdqEmA=", - "dev": true, - "dependencies": { - "pug-error": "^2.0.0", - "token-stream": "1.0.0" - } - }, - "node_modules/pug-plain-loader": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/pug-plain-loader/download/pug-plain-loader-1.1.0.tgz", - "integrity": "sha1-WfO0dShIca/NahjSrTMYsVD9xTM=", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0" - }, - "peerDependencies": { - "pug": "^2.0.0 || ^3.0.0" - } - }, - "node_modules/pug-runtime": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-3.0.1.tgz", - "integrity": "sha1-9jaXYgRyPzWoxfb61qzaKhkbg9c=", - "dev": true - }, - "node_modules/pug-strip-comments": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-2.0.0.tgz", - "integrity": "sha1-+UsH/WtJVSMzD0kKf1VLT/h2MD4=", - "dev": true, - "dependencies": { - "pug-error": "^2.0.0" - } - }, - "node_modules/pug-walk": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-2.0.0.tgz", - "integrity": "sha1-QXqrwpIyu0SZtbUGmistKiTV9f4=", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1616068686629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz?cache=0&sync_timestamp=1613399913000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597687052330&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1618846971516&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.nlark.com/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "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/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz?cache=0&sync_timestamp=1620069702182&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/indent-string/download/indent-string-2.1.0.tgz?cache=0&sync_timestamp=1618847271946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218526490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", - "dev": true - }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - }, - "node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz?cache=0&sync_timestamp=1593557394730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.10.1.tgz", - "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610726090430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz", - "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz", - "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz?cache=0&sync_timestamp=1600413542312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz?cache=0&sync_timestamp=1616545067196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891224688&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "node_modules/renderkid": { - "version": "2.0.6", - "resolved": "https://registry.nlark.com/renderkid/download/renderkid-2.0.6.tgz?cache=0&sync_timestamp=1623178646031&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frenderkid%2Fdownload%2Frenderkid-2.0.6.tgz", - "integrity": "sha1-qvh1pn8tFwWCGiK2RRXbbZ4CX9I=", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", - "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" - }, - "node_modules/require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "dependencies": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-uncached/node_modules/resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresize-observer-polyfill%2Fdownload%2Fresize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz?cache=0&sync_timestamp=1613003016472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "dependencies": { - "align-text": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz", - "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rust-result": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rust-result/download/rust-result-1.0.0.tgz", - "integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=", - "dependencies": { - "individual": "^2.0.0" - } - }, - "node_modules/rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "node_modules/rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "dependencies": { - "rx-lite": "*" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.nlark.com/rxjs/download/rxjs-6.6.7.tgz?cache=0&sync_timestamp=1621619391474&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frxjs%2Fdownload%2Frxjs-6.6.7.tgz", - "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" - }, - "node_modules/safe-json-parse": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/safe-json-parse/download/safe-json-parse-4.0.0.tgz", - "integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=", - "dependencies": { - "rust-result": "^1.0.0" - } - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" - }, - "node_modules/sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-graph%2Fdownload%2Fsass-graph-2.2.5.tgz", - "integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - }, - "bin": { - "sassgraph": "bin/sassgraph" - } - }, - "node_modules/sass-graph/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/sass-graph/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/sass-loader": { - "version": "7.0.3", - "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-7.0.3.tgz?cache=0&sync_timestamp=1622562268554&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass-loader%2Fdownload%2Fsass-loader-7.0.3.tgz", - "integrity": "sha1-bKEIcaHMdUn4FD21qZWCQsTkyio=", - "dev": true, - "dependencies": { - "clone-deep": "^2.0.1", - "loader-utils": "^1.0.1", - "lodash.tail": "^4.1.1", - "neo-async": "^2.5.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">= 6.9.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/sass-loader/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", - "dev": true - }, - "node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/screenfull": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/screenfull/download/screenfull-3.3.3.tgz?cache=0&sync_timestamp=1608796474825&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscreenfull%2Fdownload%2Fscreenfull-3.3.3.tgz", - "integrity": "sha1-jPfnBqzqwudRMarcuBtiKs/hHTk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/script-ext-html-webpack-plugin": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/script-ext-html-webpack-plugin/download/script-ext-html-webpack-plugin-2.0.1.tgz?cache=0&sync_timestamp=1603731479549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscript-ext-html-webpack-plugin%2Fdownload%2Fscript-ext-html-webpack-plugin-2.0.1.tgz", - "integrity": "sha1-kKw9d/GJKtkFTDdS8ORnNgf22aM=", - "dev": true, - "dependencies": { - "debug": "^3.1.0" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "html-webpack-plugin": "^3.0.0", - "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/script-ext-html-webpack-plugin/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/script-ext-html-webpack-plugin/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true - }, - "node_modules/script-loader": { - "version": "0.7.2", - "resolved": "https://registry.npm.taobao.org/script-loader/download/script-loader-0.7.2.tgz", - "integrity": "sha1-IBbbb4byX1z1baOJFdgzeLsWa6c=", - "dev": true, - "dependencies": { - "raw-loader": "~0.5.1" - } - }, - "node_modules/scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "dependencies": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - } - }, - "node_modules/scss-tokenizer/node_modules/source-map": { - "version": "0.4.4", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "node_modules/selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz", - "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=", - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.5.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", - "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "node_modules/send/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1599740668657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", - "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407676273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz", - "integrity": "sha1-CV6Ecv1bRiN9tQzkhqQ/S4bGzsE=", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407676273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/serve-static/node_modules/mime": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz", - "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=", - "dev": true, - "bin": { - "mime": "cli.js" - } - }, - "node_modules/serve-static/node_modules/send": { - "version": "0.16.2", - "resolved": "https://registry.npm.taobao.org/send/download/send-0.16.2.tgz", - "integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", - "dev": true - }, - "node_modules/serve-static/node_modules/statuses": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-1.0.0.tgz", - "integrity": "sha1-RIDNBuiC72iyrYij6lSDLixItXE=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/shelljs/download/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", - "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", - "dev": true - }, - "node_modules/showdown": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/showdown/download/showdown-1.9.1.tgz", - "integrity": "sha1-E04UjnXNRiPgnCGwURl315ta0O8=", - "dependencies": { - "yargs": "^14.2" - }, - "bin": { - "showdown": "bin/showdown.js" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", - "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", - "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", - "dev": true - }, - "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz?cache=0&sync_timestamp=1618384508676&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz?cache=0&sync_timestamp=1618554984144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz?cache=0&sync_timestamp=1617971829943&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz", - "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs-client": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.5.1.tgz?cache=0&sync_timestamp=1616686612247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.5.1.tgz", - "integrity": "sha1-JWkI9tWt+5Tau9vQLGY2LMoPnqY=", - "dependencies": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs-client/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/sortablejs": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.7.0.tgz?cache=0&sync_timestamp=1610070445944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsortablejs%2Fdownload%2Fsortablejs-1.7.0.tgz", - "integrity": "sha1-gKKyNwq9Vo4c7IwnETHvMKkE+ig=" - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz?cache=0&sync_timestamp=1612210508484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.9.tgz?cache=0&sync_timestamp=1621652583280&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.9.tgz", - "integrity": "sha1-illRNd75WSvaaXCUdPHL7qfCRn8=", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970491493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", - "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", - "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy-transport/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/spdy-transport/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" - }, - "node_modules/spdy-transport/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/spdy/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssf": { - "version": "0.11.2", - "resolved": "https://registry.npmmirror.com/ssf/download/ssf-0.11.2.tgz", - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", - "dependencies": { - "frac": "~1.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", - "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "5.3.0", - "resolved": "https://registry.nlark.com/ssri/download/ssri-5.3.0.tgz?cache=0&sync_timestamp=1621364668574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-5.3.0.tgz", - "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", - "dependencies": { - "safe-buffer": "^5.1.1" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", - "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", - "dev": true - }, - "node_modules/stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", - "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", - "dev": true - }, - "node_modules/staged-git-files": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.1.1.tgz", - "integrity": "sha1-N8IhjvDW0mF4sTEHGTCaFqWfj3s=", - "dev": true, - "bin": { - "sgf": "bin/cli.js" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz?cache=0&sync_timestamp=1609654090567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz", - "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", - "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz?cache=0&sync_timestamp=1618430770209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-http%2Fdownload%2Fstream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", - "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-argv": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/string-argv/download/string-argv-0.0.2.tgz", - "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/string-width/download/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127232940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", - "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/strip-bom/download/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&sync_timestamp=1594571796132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449595596&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz", - "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/stylehacks/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylehacks/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylehacks/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylehacks/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svg-baker": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/svg-baker/download/svg-baker-1.7.0.tgz", - "integrity": "sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "clone": "^2.1.1", - "he": "^1.1.1", - "image-size": "^0.5.1", - "loader-utils": "^1.1.0", - "merge-options": "1.0.1", - "micromatch": "3.1.0", - "postcss": "^5.2.17", - "postcss-prefix-selector": "^1.6.0", - "posthtml-rename-id": "^1.0", - "posthtml-svg-mode": "^1.0.3", - "query-string": "^4.3.2", - "traverse": "^0.6.6" - } - }, - "node_modules/svg-baker-runtime": { - "version": "1.4.7", - "resolved": "https://registry.npm.taobao.org/svg-baker-runtime/download/svg-baker-runtime-1.4.7.tgz", - "integrity": "sha1-9HIGN/W2IC7vY3jYHx/q0IFfik4=", - "dev": true, - "dependencies": { - "deepmerge": "1.3.2", - "mitt": "1.1.2", - "svg-baker": "^1.7.0" - } - }, - "node_modules/svg-baker-runtime/node_modules/deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svg-baker/node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/svg-baker/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/micromatch": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.0.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.0.tgz", - "integrity": "sha1-UQLU6vILaZfWAI46z+HESj+oFeI=", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.2.2", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "extglob": "^2.0.2", - "fragment-cache": "^0.2.1", - "kind-of": "^5.0.2", - "nanomatch": "^1.2.1", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg-baker/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.nlark.com/postcss/download/postcss-5.2.18.tgz", - "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/svg-baker/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-3.2.3.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svg-sprite-loader": { - "version": "3.8.0", - "resolved": "https://registry.nlark.com/svg-sprite-loader/download/svg-sprite-loader-3.8.0.tgz?cache=0&sync_timestamp=1622202416926&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsvg-sprite-loader%2Fdownload%2Fsvg-sprite-loader-3.8.0.tgz", - "integrity": "sha1-IvpSsv8ZsBvdmPP/GX6YAZYPqmQ=", - "dev": true, - "dependencies": { - "bluebird": "^3.5.0", - "deepmerge": "1.3.2", - "domready": "1.0.8", - "escape-string-regexp": "1.0.5", - "loader-utils": "^1.1.0", - "svg-baker": "^1.2.17", - "svg-baker-runtime": "^1.3.3", - "url-slug": "2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/svg-sprite-loader/node_modules/deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1616929367791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", - "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz", - "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.nlark.com/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1622227760882&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", - "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256918158&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - }, - "node_modules/svgo/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", - "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz?cache=0&sync_timestamp=1618451954701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsymbol-observable%2Fdownload%2Fsymbol-observable-1.2.0.tgz", - "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/table": { - "version": "4.0.2", - "resolved": "https://registry.nlark.com/table/download/table-4.0.2.tgz", - "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", - "dev": true, - "dependencies": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "5.5.2", - "resolved": "https://registry.nlark.com/ajv/download/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "dependencies": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "node_modules/table/node_modules/ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "peerDependencies": { - "ajv": "^5.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz?cache=0&sync_timestamp=1608000211395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "node_modules/table/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088855476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz?cache=0&sync_timestamp=1610045450553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.1.0.tgz", - "integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/throttle-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1604315662420&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz", - "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478643560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", - "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=" - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793732246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", - "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", - "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" - }, - "node_modules/tinymce": { - "version": "5.8.1", - "resolved": "https://registry.nlark.com/tinymce/download/tinymce-5.8.1.tgz?cache=0&sync_timestamp=1621476847393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftinymce%2Fdownload%2Ftinymce-5.8.1.tgz", - "integrity": "sha1-9qznDkfPa1sKY/Us845K4Eo1ulg=" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-1.0.0.tgz", - "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", - "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/traverse": { - "version": "0.6.6", - "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftraverse%2Fdownload%2Ftraverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-1.0.0.tgz?cache=0&sync_timestamp=1622220471681&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/trim-right/download/trim-right-1.0.1.tgz?cache=0&sync_timestamp=1619002500872&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-right%2Fdownload%2Ftrim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz", - "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=", - "dev": true, - "dependencies": { - "glob": "^7.1.2" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", - "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=" - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1618847097275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" - }, - "node_modules/tsml": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tsml/download/tsml-1.0.1.tgz", - "integrity": "sha1-ifghi52eJX9H1/a1bQHFpNLGj8M=", - "deprecated": "no longer maintained" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz", - "integrity": "sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A=", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", - "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", - "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.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1622845500166&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", - "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", - "dev": true, - "dependencies": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglify-js/node_modules/commander": { - "version": "2.19.0", - "resolved": "https://registry.nlark.com/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", - "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", - "dev": true - }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "node_modules/uglifyjs-webpack-plugin": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.2.7.tgz", - "integrity": "sha1-V2ON2ZyFOh6/6dl7QhYKilB/nQA=", - "dependencies": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "engines": { - "node": ">= 4.8 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/commander": { - "version": "2.13.0", - "resolved": "https://registry.nlark.com/commander/download/commander-2.13.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.13.0.tgz", - "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=" - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz", - "integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=", - "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", - "dependencies": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706302651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "node_modules/underscore": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/underscore/download/underscore-1.6.0.tgz?cache=0&sync_timestamp=1618502952302&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" - }, - "node_modules/unidecode": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/unidecode/download/unidecode-0.1.8.tgz", - "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=", - "dev": true, - "engines": { - "node": ">= 0.4.12" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz?cache=0&sync_timestamp=1616088950015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz", - "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&sync_timestamp=1606859943902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.0.1.tgz?cache=0&sync_timestamp=1602252594253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-1.0.1.tgz", - "integrity": "sha1-YbxT8fGE1zQ9onKKEonvhyLqRe4=", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^0.4.3" - }, - "engines": { - "node": ">= 6.9.0 || >= 8.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/url-loader/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz", - "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.5.1.tgz?cache=0&sync_timestamp=1613660079745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.5.1.tgz", - "integrity": "sha1-1fqYkK+KXh8nSiyYN2UQ9kJfbjs=", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url-slug": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/url-slug/download/url-slug-2.0.0.tgz", - "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", - "dev": true, - "dependencies": { - "unidecode": "0.1.8" - } - }, - "node_modules/url-toolkit": { - "version": "2.2.2", - "resolved": "https://registry.nlark.com/url-toolkit/download/url-toolkit-2.2.2.tgz?cache=0&sync_timestamp=1619294858074&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-toolkit%2Fdownload%2Furl-toolkit-2.2.2.tgz", - "integrity": "sha1-Ue8ntW0xhxhfns9Kisfo9VIDyJ0=" - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz", - "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159975962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.nlark.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz", - "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", - "dev": true - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/video.js": { - "version": "6.13.0", - "resolved": "https://registry.nlark.com/video.js/download/video.js-6.13.0.tgz", - "integrity": "sha1-+Uh9RjJzQPpI7NUTcqKYHbts3kw=", - "dependencies": { - "babel-runtime": "^6.9.2", - "global": "4.3.2", - "safe-json-parse": "4.0.0", - "tsml": "1.0.1", - "videojs-font": "2.1.0", - "videojs-ie8": "1.1.2", - "videojs-vtt.js": "0.12.6", - "xhr": "2.4.0" - } - }, - "node_modules/videojs-contrib-hls": { - "version": "5.15.0", - "resolved": "https://registry.npm.taobao.org/videojs-contrib-hls/download/videojs-contrib-hls-5.15.0.tgz", - "integrity": "sha1-/klXNn5daLfSP3jtMuN6ndiSoKg=", - "dependencies": { - "aes-decrypter": "1.0.3", - "global": "^4.3.0", - "m3u8-parser": "2.1.0", - "mux.js": "4.3.2", - "url-toolkit": "^2.1.3", - "video.js": "^5.19.1 || ^6.2.0", - "videojs-contrib-media-sources": "4.7.2", - "webwackify": "0.1.6" - }, - "engines": { - "node": ">= 0.10.12" - } - }, - "node_modules/videojs-contrib-media-sources": { - "version": "4.7.2", - "resolved": "https://registry.npm.taobao.org/videojs-contrib-media-sources/download/videojs-contrib-media-sources-4.7.2.tgz", - "integrity": "sha1-Ct+SkQfVt0zyyKuygkyCF35DhY4=", - "dependencies": { - "global": "^4.3.0", - "mux.js": "4.3.2", - "video.js": "^5.17.0 || ^6.2.0", - "webwackify": "0.1.6" - } - }, - "node_modules/videojs-flash": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/videojs-flash/download/videojs-flash-2.2.1.tgz", - "integrity": "sha1-GiJduxztIArpu/FeAf5KYQhtkPE=", - "dependencies": { - "global": "^4.4.0", - "video.js": "^6 || ^7", - "videojs-swf": "5.4.2" - }, - "engines": { - "node": ">=4.4.0" - } - }, - "node_modules/videojs-flash/node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npm.taobao.org/global/download/global-4.4.0.tgz", - "integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/videojs-flash/node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/videojs-font": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-2.1.0.tgz", - "integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k=" - }, - "node_modules/videojs-hotkeys": { - "version": "0.2.27", - "resolved": "https://registry.npm.taobao.org/videojs-hotkeys/download/videojs-hotkeys-0.2.27.tgz?cache=0&sync_timestamp=1596424673437&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvideojs-hotkeys%2Fdownload%2Fvideojs-hotkeys-0.2.27.tgz", - "integrity": "sha1-Dfl5Urnf8ObMHPikOf7X6snHPwE=" - }, - "node_modules/videojs-ie8": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/videojs-ie8/download/videojs-ie8-1.1.2.tgz", - "integrity": "sha1-oj09hgitcZK2nGB3/E64SJmNNdk=", - "dependencies": { - "es5-shim": "^4.5.1" - } - }, - "node_modules/videojs-swf": { - "version": "5.4.2", - "resolved": "https://registry.npm.taobao.org/videojs-swf/download/videojs-swf-5.4.2.tgz", - "integrity": "sha1-aWSpv/kDtzLz5GUxSuR4oCoX6Ks=" - }, - "node_modules/videojs-vtt.js": { - "version": "0.12.6", - "resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.12.6.tgz", - "integrity": "sha1-4HhgC9qJnqpvnDMHE0zQyBGUe44=", - "dependencies": { - "global": "^4.3.1" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=" - }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue": { - "version": "2.5.17", - "resolved": "https://registry.nlark.com/vue/download/vue-2.5.17.tgz", - "integrity": "sha1-D4eJrXGL5oyhhyYpgy7VM1icato=" - }, - "node_modules/vue-bus": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/vue-bus/download/vue-bus-1.2.1.tgz", - "integrity": "sha1-UFd7C3P8GvnNqKR1/vL38P2tcEU=" - }, - "node_modules/vue-class-component": { - "version": "7.2.6", - "resolved": "https://registry.npm.taobao.org/vue-class-component/download/vue-class-component-7.2.6.tgz", - "integrity": "sha1-hHHgN7jkdi9aRkaG4Z5a/HCFAuQ=", - "peerDependencies": { - "vue": "^2.0.0" - } - }, - "node_modules/vue-clipboard2": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.3.1.tgz", - "integrity": "sha1-blUft704SImyiw2jsSKJ7WvKSJQ=", - "dependencies": { - "clipboard": "^2.0.0" - } - }, - "node_modules/vue-clipboard2/node_modules/clipboard": { - "version": "2.0.8", - "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.8.tgz?cache=0&sync_timestamp=1615410040723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.8.tgz", - "integrity": "sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/vue-count-to": { - "version": "1.0.13", - "resolved": "https://registry.npm.taobao.org/vue-count-to/download/vue-count-to-1.0.13.tgz", - "integrity": "sha1-PnVz6m5kwrKXL2TgoqsuI8dZD/M=" - }, - "node_modules/vue-eslint-parser": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz", - "integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.2", - "esquery": "^1.0.0", - "lodash": "^4.17.4" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": ">=3.9.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/vue-eslint-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true - }, - "node_modules/vue-grid-layout": { - "version": "2.3.12", - "resolved": "https://registry.npm.taobao.org/vue-grid-layout/download/vue-grid-layout-2.3.12.tgz", - "integrity": "sha1-tjljV7hqZoBcEXQx18GT0uBm7do=", - "dependencies": { - "@interactjs/actions": "^1.10.2", - "@interactjs/auto-start": "^1.10.2", - "@interactjs/dev-tools": "^1.10.2", - "@interactjs/interactjs": "^1.10.2", - "@interactjs/modifiers": "^1.10.2", - "element-resize-detector": "^1.2.1" - } - }, - "node_modules/vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz", - "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", - "dev": true - }, - "node_modules/vue-i18n": { - "version": "7.3.2", - "resolved": "https://registry.nlark.com/vue-i18n/download/vue-i18n-7.3.2.tgz", - "integrity": "sha1-EgW7iBEyP9XETlfk/WGb6vL3qaE=" - }, - "node_modules/vue-json-viewer": { - "version": "2.2.19", - "resolved": "https://registry.nlark.com/vue-json-viewer/download/vue-json-viewer-2.2.19.tgz", - "integrity": "sha1-voSOl6MtNZgylELTtxiSykkFoR0=", - "dependencies": { - "clipboard": "^2.0.4", - "vue": "^2.6.9" - } - }, - "node_modules/vue-json-viewer/node_modules/clipboard": { - "version": "2.0.8", - "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.8.tgz?cache=0&sync_timestamp=1615410040723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.8.tgz", - "integrity": "sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/vue-json-viewer/node_modules/vue": { - "version": "2.6.14", - "resolved": "https://registry.nlark.com/vue/download/vue-2.6.14.tgz", - "integrity": "sha1-5RqlJQJQ1Wmj+606ilpofWA24jU=" - }, - "node_modules/vue-loader": { - "version": "15.3.0", - "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-15.3.0.tgz", - "integrity": "sha1-tHTRCk6T2TSnjBR/w+MUs3Dp/FQ=", - "dev": true, - "dependencies": { - "@vue/component-compiler-utils": "^2.0.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - }, - "peerDependencies": { - "css-loader": "*" - } - }, - "node_modules/vue-router": { - "version": "3.0.2", - "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.0.2.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.0.2.tgz", - "integrity": "sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4=" - }, - "node_modules/vue-splitpane": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/vue-splitpane/download/vue-splitpane-1.0.2.tgz", - "integrity": "sha1-okWaLxAtDw27YEnxJE7VCgOltko=" - }, - "node_modules/vue-style-loader": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz?cache=0&sync_timestamp=1614758693102&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-style-loader%2Fdownload%2Fvue-style-loader-4.1.2.tgz", - "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", - "dev": true, - "dependencies": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "node_modules/vue-template-compiler": { - "version": "2.5.17", - "resolved": "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.5.17.tgz?cache=0&sync_timestamp=1623059734748&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.5.17.tgz", - "integrity": "sha1-UqSgeMMn3rk3SCpQmuhcBvNGw8s=", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "node_modules/vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", - "dev": true - }, - "node_modules/vue-video-player": { - "version": "5.0.2", - "resolved": "https://registry.npm.taobao.org/vue-video-player/download/vue-video-player-5.0.2.tgz", - "integrity": "sha1-NKQiOf8wTvx2mNogpBZQUddmweY=", - "dependencies": { - "object-assign": "^4.1.1", - "video.js": "^6.6.0", - "videojs-contrib-hls": "^5.12.2", - "videojs-flash": "^2.1.0", - "videojs-hotkeys": "^0.2.20" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/vue2-verify": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/vue2-verify/download/vue2-verify-1.1.5.tgz", - "integrity": "sha1-0m4BwmawnlXeeSdOlf9WiJIiC0w=", - "dependencies": { - "vue": "^2.5.2" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/vuedraggable": { - "version": "2.24.3", - "resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.24.3.tgz", - "integrity": "sha1-Q8k4SbdGokzlA+Ej1bJZxwG6DRk=", - "dependencies": { - "sortablejs": "1.10.2" - } - }, - "node_modules/vuedraggable/node_modules/sortablejs": { - "version": "1.10.2", - "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.10.2.tgz?cache=0&sync_timestamp=1610070445944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsortablejs%2Fdownload%2Fsortablejs-1.10.2.tgz", - "integrity": "sha1-bkA2TZE/mLhaFPZnj5K1wSIfUpA=" - }, - "node_modules/vuex": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/vuex/download/vuex-3.0.1.tgz", - "integrity": "sha1-52E1Lr4K9TfUu3Vam53Evj3379I=" - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz", - "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz", - "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747494189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/watchpack/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "optional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", - "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", - "optional": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/watchpack/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612536512306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/watchpack/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchpack/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/watchpack/node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz", - "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/watchpack/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webpack": { - "version": "4.16.5", - "resolved": "https://registry.nlark.com/webpack/download/webpack-4.16.5.tgz?cache=0&sync_timestamp=1622150231355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.16.5.tgz", - "integrity": "sha1-Kfs5Rigj1+uK78q4tF9/JB2w0JI=", - "dependencies": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-module-context": "1.5.13", - "@webassemblyjs/wasm-edit": "1.5.13", - "@webassemblyjs/wasm-opt": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.0.0", - "uglifyjs-webpack-plugin": "^1.2.4", - "watchpack": "^1.5.0", - "webpack-sources": "^1.0.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "3.9.0", - "resolved": "https://registry.nlark.com/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1621259099265&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", - "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1", - "bfj": "^6.1.1", - "chalk": "^2.4.1", - "commander": "^2.18.0", - "ejs": "^2.6.1", - "express": "^4.16.3", - "filesize": "^3.6.1", - "gzip-size": "^5.0.0", - "lodash": "^4.17.19", - "mkdirp": "^0.5.1", - "opener": "^1.5.1", - "ws": "^6.0.0" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 6.14.4" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/webpack-cli/download/webpack-cli-3.1.0.tgz", - "integrity": "sha1-1xqDaH3P63WP3O6w/gQvlrz2KZQ=", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.0.0", - "global-modules-path": "^2.1.0", - "import-local": "^1.0.0", - "inquirer": "^6.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.4.0", - "v8-compile-cache": "^2.0.0", - "yargs": "^12.0.1" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "^4.x.x" - } - }, - "node_modules/webpack-cli/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1601032529880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "dev": true - }, - "node_modules/webpack-cli/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz?cache=0&sync_timestamp=1604880249159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/webpack-cli/node_modules/cliui/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", - "dev": true - }, - "node_modules/webpack-cli/node_modules/import-local": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz", - "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", - "dev": true, - "dependencies": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.nlark.com/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1621628995749&other_urls=https%3A%2F%2Fregistry.nlark.com%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz", - "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/webpack-cli/node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/webpack-cli/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.nlark.com/yargs/download/yargs-12.0.5.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz", - "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "node_modules/webpack-cli/node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz", - "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/webpack-cli/node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/yargs/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/yargs/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/yargs/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.nlark.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz", - "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.nlark.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz", - "integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=", - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "node_modules/webpack-dev-server/node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596019866852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz", - "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/webpack-dev-server/node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1615477461878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", - "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-merge": { - "version": "4.1.4", - "resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-4.1.4.tgz", - "integrity": "sha1-D9446r8tX9hSUcJKWoxI+KP063s=", - "dev": true, - "dependencies": { - "lodash": "^4.17.5" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "5.7.4", - "resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933675196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", - "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", - "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", - "dependencies": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz", - "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", - "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/webwackify": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/webwackify/download/webwackify-0.1.6.tgz", - "integrity": "sha1-HUKhKsYYI9fjRaveCE6qpipKles=" - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwindow-size%2Fdownload%2Fwindow-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/with": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/with/download/with-7.0.2.tgz", - "integrity": "sha1-zO461ULSVTinp6gKrSErmChJW6w=", - "dev": true, - "dependencies": { - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "assert-never": "^1.2.1", - "babel-walk": "3.0.0-canary-5" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/with/node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", - "integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/with/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wmf": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/wmf/download/wmf-1.0.2.tgz", - "integrity": "sha1-fRnWIQcaCMK9xrfmiKnENSmMwto=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/word/download/word-0.3.0.tgz", - "integrity": "sha1-hUIVfk+OhJ9KNjooiZLUdhLbmWE=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", - "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1618553044693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.nlark.com/ws/download/ws-6.2.2.tgz?cache=0&sync_timestamp=1623180787489&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fws%2Fdownload%2Fws-6.2.2.tgz", - "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/xhr": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/xhr/download/xhr-2.4.0.tgz", - "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", - "dependencies": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xlsx": { - "version": "0.17.5", - "resolved": "https://registry.npmmirror.com/xlsx/download/xlsx-0.17.5.tgz", - "integrity": "sha512-lXNU0TuYsvElzvtI6O7WIVb9Zar1XYw7Xb3VAx2wn8N/n0whBYrCnHMxtFyIiUU1Wjf09WzmLALDfBO5PqTb1g==", - "dependencies": { - "adler-32": "~1.2.0", - "cfb": "^1.1.4", - "codepage": "~1.15.0", - "crc-32": "~1.2.0", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, - "bin": { - "xlsx": "bin/xlsx.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/xss": { - "version": "1.0.9", - "resolved": "https://registry.nlark.com/xss/download/xss-1.0.9.tgz", - "integrity": "sha1-P/1WVXH/YNLkDbfzuAtGd77HcNI=", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/xxhashjs/download/xxhashjs-0.2.2.tgz", - "integrity": "sha1-imJRVnYhocRqWuIE2gJJx/jKqdg=", - "dev": true, - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=" - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "node_modules/yargs": { - "version": "14.2.3", - "resolved": "https://registry.nlark.com/yargs/download/yargs-14.2.3.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-14.2.3.tgz", - "integrity": "sha1-Ghw+3O0a+yov6jNgS8bR2NaIpBQ=", - "dependencies": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "node_modules/yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-15.0.1.tgz", - "integrity": "sha1-VHhq9AuCDcsvuAJbEbTWWddjI7M=", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/zrender": { - "version": "4.0.4", - "resolved": "https://registry.nlark.com/zrender/download/zrender-4.0.4.tgz", - "integrity": "sha1-kQ5g2IjwDJWZBz8jdY3SM0X+SP0=" - } - }, "dependencies": { "@antv/adjust": { "version": "0.2.3", @@ -19442,8 +468,7 @@ "@interactjs/core": { "version": "1.10.11", "resolved": "https://registry.npm.taobao.org/@interactjs/core/download/@interactjs/core-1.10.11.tgz", - "integrity": "sha1-iwIDSSwbpvhDLyC3GK5TcH/PxyQ=", - "requires": {} + "integrity": "sha1-iwIDSSwbpvhDLyC3GK5TcH/PxyQ=" }, "@interactjs/dev-tools": { "version": "1.10.11", @@ -19554,8 +579,7 @@ "@tinymce/tinymce-vue": { "version": "3.2.8", "resolved": "https://registry.nlark.com/@tinymce/tinymce-vue/download/@tinymce/tinymce-vue-3.2.8.tgz", - "integrity": "sha1-AUVxtS7I+oNmWn+oh79lFAIH3nE=", - "requires": {} + "integrity": "sha1-AUVxtS7I+oNmWn+oh79lFAIH3nE=" }, "@types/babel-types": { "version": "7.0.9", @@ -19705,6 +729,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.5.13.tgz?cache=0&sync_timestamp=1610045499973&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.5.13.tgz", "integrity": "sha1-gRVaVwvVgDow7DFDa8LJwO3jjyU=", + "dev": true, "requires": { "@webassemblyjs/helper-module-context": "1.5.13", "@webassemblyjs/helper-wasm-bytecode": "1.5.13", @@ -19717,6 +742,7 @@ "version": "3.2.7", "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -19724,24 +750,28 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045504831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.5.13.tgz", - "integrity": "sha1-Kc4LqpdBH3DozOaM6cD52Bmk4pg=" + "integrity": "sha1-Kc4LqpdBH3DozOaM6cD52Bmk4pg=", + "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.5.13.tgz?cache=0&sync_timestamp=1610045498041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.5.13.tgz", - "integrity": "sha1-5JsFHWfuGaVuKbmqi9lJtbREKlk=" + "integrity": "sha1-5JsFHWfuGaVuKbmqi9lJtbREKlk=", + "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.5.13.tgz?cache=0&sync_timestamp=1610045496323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.5.13.tgz", "integrity": "sha1-hzuwobRkSSMRN8EmLd/QVpUZWh4=", + "dev": true, "requires": { "debug": "^3.1.0" }, @@ -19750,6 +780,7 @@ "version": "3.2.7", "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -19757,7 +788,8 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, @@ -19765,6 +797,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.5.13.tgz?cache=0&sync_timestamp=1610045502739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.5.13.tgz", "integrity": "sha1-G9IYG2oL4U4ATw/p9aZg0mU2K1g=", + "dev": true, "requires": { "@webassemblyjs/wast-printer": "1.5.13" } @@ -19772,12 +805,14 @@ "@webassemblyjs/helper-fsm": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.5.13.tgz?cache=0&sync_timestamp=1610045497114&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.5.13.tgz", - "integrity": "sha1-zfPZ0zAF1UOlxeWtqr9nn/qNuSQ=" + "integrity": "sha1-zfPZ0zAF1UOlxeWtqr9nn/qNuSQ=", + "dev": true }, "@webassemblyjs/helper-module-context": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.5.13.tgz?cache=0&sync_timestamp=1601756894083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.5.13.tgz", "integrity": "sha1-3Cnd+1HtZXZVKG+UpdctikiRR8U=", + "dev": true, "requires": { "debug": "^3.1.0", "mamacro": "^0.0.3" @@ -19787,6 +822,7 @@ "version": "3.2.7", "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -19794,19 +830,22 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.5.13.tgz?cache=0&sync_timestamp=1610045496699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.5.13.tgz", - "integrity": "sha1-AyRYF/CnYjguYXMxRvV3Pe8Vp0c=" + "integrity": "sha1-AyRYF/CnYjguYXMxRvV3Pe8Vp0c=", + "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.5.13.tgz?cache=0&sync_timestamp=1610045503299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.5.13.tgz", "integrity": "sha1-78dvRKENMHO1hLQ8OKF53xc9XH0=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-buffer": "1.5.13", @@ -19819,6 +858,7 @@ "version": "3.2.7", "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -19826,7 +866,8 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, @@ -19834,6 +875,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.5.13.tgz?cache=0&sync_timestamp=1610045498486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.5.13.tgz", "integrity": "sha1-Vz6XyMEuTuuzFspf3gID3dkLA2Q=", + "dev": true, "requires": { "ieee754": "^1.1.11" } @@ -19842,6 +884,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.5.13.tgz?cache=0&sync_timestamp=1610045497611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.5.13.tgz", "integrity": "sha1-q1Lrq5zsKDwcGJesHagzoEo/TO4=", + "dev": true, "requires": { "long": "4.0.0" }, @@ -19849,19 +892,22 @@ "long": { "version": "4.0.0", "resolved": "https://registry.npm.taobao.org/long/download/long-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flong%2Fdownload%2Flong-4.0.0.tgz", - "integrity": "sha1-mntxz7fTYaGU6lVSQckvdGjVvyg=" + "integrity": "sha1-mntxz7fTYaGU6lVSQckvdGjVvyg=", + "dev": true } } }, "@webassemblyjs/utf8": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.5.13.tgz?cache=0&sync_timestamp=1610045498791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.5.13.tgz", - "integrity": "sha1-a1PSzYYc+U+pnB8Sd53eaS+8JGk=" + "integrity": "sha1-a1PSzYYc+U+pnB8Sd53eaS+8JGk=", + "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.5.13.tgz?cache=0&sync_timestamp=1610045504190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.5.13.tgz", "integrity": "sha1-yc71ZkwkXPEbOzpzEQyRVYMXJKg=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-buffer": "1.5.13", @@ -19878,6 +924,7 @@ "version": "3.2.7", "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -19885,7 +932,8 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, @@ -19893,6 +941,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.5.13.tgz?cache=0&sync_timestamp=1610045502219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.5.13.tgz", "integrity": "sha1-jm6hE8S0MvpmVAGJ55sW16FAcA4=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-wasm-bytecode": "1.5.13", @@ -19905,6 +954,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.5.13.tgz?cache=0&sync_timestamp=1610045503072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.5.13.tgz", "integrity": "sha1-FHqtdxen7kIRw2shpfTDDd3zMTg=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-buffer": "1.5.13", @@ -19917,6 +967,7 @@ "version": "3.2.7", "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566580543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, "requires": { "ms": "^2.1.1" } @@ -19924,7 +975,8 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.3.tgz?cache=0&sync_timestamp=1607433905701&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true } } }, @@ -19932,6 +984,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045501288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.5.13.tgz", "integrity": "sha1-b0ZRbFuyOQT731gAkjPC3YpUxy8=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-api-error": "1.5.13", @@ -19945,6 +998,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.5.13.tgz?cache=0&sync_timestamp=1610045503781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.5.13.tgz", "integrity": "sha1-VyenBdOXrmo66Z1/VGCs8uxkbuo=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/floating-point-hex-parser": "1.5.13", @@ -19959,6 +1013,7 @@ "version": "1.5.13", "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.5.13.tgz?cache=0&sync_timestamp=1610045500821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.5.13.tgz", "integrity": "sha1-uzTVKMFLT1eefsEeeT7FCtfNfJU=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/wast-parser": "1.5.13", @@ -20008,6 +1063,11 @@ } } }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/JSV/download/JSV-4.0.2.tgz", + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", @@ -20032,6 +1092,7 @@ "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha1-kBzu5Mf6rvfgetKkfokGddpQong=", + "dev": true, "requires": { "acorn": "^5.0.0" }, @@ -20039,7 +1100,8 @@ "acorn": { "version": "5.7.4", "resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=" + "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "dev": true } } }, @@ -20113,14 +1175,12 @@ "ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "requires": {} + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=" }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", - "requires": {} + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=" }, "align-text": { "version": "0.1.4", @@ -20210,7 +1270,8 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true }, "are-we-there-yet": { "version": "1.1.5", @@ -20294,6 +1355,7 @@ "version": "5.4.1", "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", + "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -20304,7 +1366,8 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true } } }, @@ -20312,6 +1375,7 @@ "version": "1.5.0", "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "dev": true, "requires": { "object-assign": "^4.1.1", "util": "0.10.3" @@ -20320,12 +1384,14 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true }, "util": { "version": "0.10.3", "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, "requires": { "inherits": "2.0.1" } @@ -21361,7 +2427,8 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&sync_timestamp=1605123700994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz", - "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=" + "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", + "dev": true }, "batch": { "version": "0.6.1", @@ -21396,7 +2463,8 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=" + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "dev": true }, "binary-extensions": { "version": "1.13.1", @@ -21420,7 +2488,8 @@ "bn.js": { "version": "5.2.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", - "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=" + "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=", + "dev": true }, "body-parser": { "version": "1.19.0", @@ -21504,12 +2573,14 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -21523,6 +2594,7 @@ "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "dev": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -21533,6 +2605,7 @@ "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "dev": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -21544,6 +2617,7 @@ "version": "4.1.0", "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz?cache=0&sync_timestamp=1605194257215&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-rsa%2Fdownload%2Fbrowserify-rsa-4.1.0.tgz", "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", + "dev": true, "requires": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" @@ -21553,6 +2627,7 @@ "version": "4.2.1", "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557838450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz", "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", + "dev": true, "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", @@ -21569,6 +2644,7 @@ "version": "3.6.0", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -21578,12 +2654,14 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -21594,6 +2672,7 @@ "version": "0.2.0", "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "dev": true, "requires": { "pako": "~1.0.5" } @@ -21612,6 +2691,7 @@ "version": "4.9.2", "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098073225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -21621,7 +2701,8 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true }, "buffer-indexof": { "version": "1.1.1", @@ -21631,12 +2712,14 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true }, "bytes": { "version": "3.1.0", @@ -21647,6 +2730,7 @@ "version": "10.0.4", "resolved": "https://registry.nlark.com/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1621949584977&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "dev": true, "requires": { "bluebird": "^3.5.1", "chownr": "^1.0.1", @@ -21907,12 +2991,14 @@ "chownr": { "version": "1.1.4", "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", + "dev": true }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905925551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=" + "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", + "dev": true }, "ci-info": { "version": "1.6.0", @@ -21924,6 +3010,7 @@ "version": "1.0.4", "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -22189,7 +3276,8 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true }, "component-emitter": { "version": "1.3.0", @@ -22234,6 +3322,7 @@ "version": "1.6.2", "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -22260,7 +3349,8 @@ "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=" + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "dev": true }, "console-control-strings": { "version": "1.1.0", @@ -22308,7 +3398,8 @@ "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true }, "content-disposition": { "version": "0.5.3", @@ -22346,6 +3437,7 @@ "version": "1.0.5", "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dev": true, "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -22449,6 +3541,7 @@ "version": "4.0.4", "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", + "dev": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -22457,7 +3550,8 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true } } }, @@ -22465,6 +3559,7 @@ "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -22477,6 +3572,7 @@ "version": "1.1.7", "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -22519,6 +3615,7 @@ "version": "3.12.0", "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "dev": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -22997,7 +4094,8 @@ "cyclist": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true }, "d": { "version": "1.0.1", @@ -23219,6 +4317,7 @@ "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "dev": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -23252,6 +4351,7 @@ "version": "5.0.3", "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "dev": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -23261,7 +4361,8 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true } } }, @@ -23339,7 +4440,8 @@ "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1604239998047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=" + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "dev": true }, "domelementtype": { "version": "2.2.0", @@ -23409,6 +4511,7 @@ "version": "3.7.1", "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -23486,6 +4589,7 @@ "version": "6.5.4", "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz?cache=0&sync_timestamp=1612290724809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.4.tgz", "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", + "dev": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -23499,7 +4603,8 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true } } }, @@ -23511,7 +4616,8 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=" + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -23530,6 +4636,7 @@ "version": "4.5.0", "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz?cache=0&sync_timestamp=1620663214002&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.5.0.tgz", "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -23540,6 +4647,7 @@ "version": "0.5.0", "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -23906,6 +5014,7 @@ "version": "4.3.0", "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz", "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "dev": true, "requires": { "estraverse": "^5.2.0" }, @@ -23913,14 +5022,16 @@ "estraverse": { "version": "5.2.0", "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=" + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true } } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641261331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true }, "esutils": { "version": "2.0.3", @@ -23940,7 +5051,8 @@ "events": { "version": "3.3.0", "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz?cache=0&sync_timestamp=1614444838320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=" + "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", + "dev": true }, "eventsource": { "version": "1.1.0", @@ -23954,6 +5066,7 @@ "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -24333,6 +5446,7 @@ "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-1.0.0.tgz", "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^1.0.0", @@ -24343,6 +5457,7 @@ "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -24351,6 +5466,7 @@ "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -24360,6 +5476,7 @@ "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606288362378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "dev": true, "requires": { "p-try": "^1.0.0" } @@ -24368,6 +5485,7 @@ "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -24375,12 +5493,14 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1602859056682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, "requires": { "find-up": "^2.1.0" } @@ -24417,6 +5537,7 @@ "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -24538,6 +5659,7 @@ "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -24556,6 +5678,7 @@ "version": "1.0.10", "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -24897,6 +6020,7 @@ "version": "3.1.0", "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "dev": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -24907,6 +6031,7 @@ "version": "3.6.0", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -24916,12 +6041,14 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -24938,6 +6065,7 @@ "version": "1.1.7", "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -24969,6 +6097,7 @@ "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -25143,7 +6272,8 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true }, "husky": { "version": "0.14.3", @@ -25190,12 +6320,14 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838418666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", + "dev": true }, "iferr": { "version": "0.1.5", "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true }, "ignore": { "version": "3.3.10", @@ -25265,7 +6397,8 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, "indent-string": { "version": "3.2.0", @@ -25823,7 +6956,8 @@ "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true }, "json-schema": { "version": "0.2.3", @@ -25890,11 +7024,6 @@ "promise": "^7.0.1" } }, - "JSV": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/JSV/download/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" - }, "jszip": { "version": "3.7.1", "resolved": "https://registry.npmmirror.com/jszip/download/jszip-3.7.1.tgz", @@ -26225,12 +7354,14 @@ "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610028023329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=" + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", + "dev": true }, "loader-utils": { "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -26241,6 +7372,7 @@ "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, "requires": { "minimist": "^1.2.0" } @@ -26360,7 +7492,8 @@ "long": { "version": "3.2.0", "resolved": "https://registry.npm.taobao.org/long/download/long-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flong%2Fdownload%2Flong-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "dev": true }, "longest": { "version": "1.0.1", @@ -26396,6 +7529,7 @@ "version": "4.1.5", "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz", "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -26410,6 +7544,7 @@ "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz", "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, "requires": { "pify": "^3.0.0" }, @@ -26417,14 +7552,16 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true } } }, "mamacro": { "version": "0.0.3", "resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", - "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=" + "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=", + "dev": true }, "map-age-cleaner": { "version": "0.1.3", @@ -26468,6 +7605,7 @@ "version": "1.3.5", "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -26591,6 +7729,7 @@ "version": "4.0.1", "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -26599,7 +7738,8 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true } } }, @@ -26654,7 +7794,8 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true }, "minimatch": { "version": "3.0.4", @@ -26708,6 +7849,7 @@ "version": "2.0.0", "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "dev": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -26725,6 +7867,7 @@ "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -26792,6 +7935,7 @@ "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -26834,8 +7978,7 @@ "nan": { "version": "2.14.2", "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591607196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", - "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", - "devOptional": true + "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=" }, "nanomatch": { "version": "1.2.13", @@ -26869,7 +8012,8 @@ "neo-async": { "version": "2.6.2", "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317361810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "dev": true }, "next-tick": { "version": "1.0.0", @@ -26962,6 +8106,7 @@ "version": "2.2.1", "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-libs-browser%2Fdownload%2Fnode-libs-browser-2.2.1.tgz", "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dev": true, "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -26991,17 +8136,20 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "dev": true, "requires": { "safe-buffer": "~5.2.0" }, @@ -27009,7 +8157,8 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true } } } @@ -27539,7 +8688,8 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true }, "os-homedir": { "version": "1.0.2", @@ -27624,6 +8774,7 @@ "version": "1.2.0", "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "dev": true, "requires": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -27643,6 +8794,7 @@ "version": "5.1.6", "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597165710136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz", "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", + "dev": true, "requires": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", @@ -27679,7 +8831,8 @@ "path-browserify": { "version": "0.0.1", "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=" + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", + "dev": true }, "path-dirname": { "version": "1.0.2", @@ -27738,6 +8891,7 @@ "version": "3.1.2", "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.2.tgz?cache=0&sync_timestamp=1617976027191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.2.tgz", "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=", + "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -27756,6 +8910,7 @@ "version": "2.3.0", "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", + "dev": true, "optional": true }, "pify": { @@ -30276,7 +11431,8 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true }, "proxy-addr": { "version": "2.0.7", @@ -30295,7 +11451,8 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "psl": { "version": "1.8.0", @@ -30307,6 +11464,7 @@ "version": "4.0.3", "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -30319,7 +11477,8 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=" + "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", + "dev": true } } }, @@ -30729,6 +11888,7 @@ "version": "1.5.1", "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -30739,6 +11899,7 @@ "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -30780,7 +11941,8 @@ "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true }, "querystringify": { "version": "2.2.0", @@ -30791,6 +11953,7 @@ "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -30799,6 +11962,7 @@ "version": "1.0.4", "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -31252,6 +12416,7 @@ "version": "2.6.2", "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.2.tgz", "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "dev": true, "requires": { "glob": "^7.0.5" } @@ -31260,6 +12425,7 @@ "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -31275,6 +12441,7 @@ "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, "requires": { "aproba": "^1.1.1" } @@ -31542,7 +12709,8 @@ "serialize-javascript": { "version": "1.9.1", "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1599740668657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", - "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=" + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true }, "serve-index": { "version": "1.9.1", @@ -31691,7 +12859,8 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "setprototypeof": { "version": "1.1.1", @@ -31702,6 +12871,7 @@ "version": "2.4.11", "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -31943,7 +13113,8 @@ "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", + "dev": true }, "source-map": { "version": "0.5.7", @@ -32129,6 +13300,7 @@ "version": "5.3.0", "resolved": "https://registry.nlark.com/ssri/download/ssri-5.3.0.tgz?cache=0&sync_timestamp=1621364668574&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-5.3.0.tgz", "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "dev": true, "requires": { "safe-buffer": "^5.1.1" } @@ -32188,6 +13360,7 @@ "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -32197,6 +13370,7 @@ "version": "1.2.3", "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -32206,6 +13380,7 @@ "version": "2.8.3", "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz?cache=0&sync_timestamp=1618430770209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-http%2Fdownload%2Fstream-http-2.8.3.tgz", "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -32217,7 +13392,8 @@ "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", - "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", + "dev": true }, "strict-uri-encode": { "version": "1.1.0", @@ -32225,14 +13401,6 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "string-argv": { "version": "0.0.2", "resolved": "https://registry.npm.taobao.org/string-argv/download/string-argv-0.0.2.tgz", @@ -32284,6 +13452,14 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.nlark.com/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "requires": { + "safe-buffer": "~5.1.0" + } + }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", @@ -32766,8 +13942,7 @@ "version": "2.1.1", "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true, - "requires": {} + "dev": true }, "ansi-regex": { "version": "3.0.0", @@ -32811,7 +13986,8 @@ "tapable": { "version": "1.1.3", "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088855476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=" + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "dev": true }, "tar": { "version": "6.1.0", @@ -32868,6 +14044,7 @@ "version": "2.0.5", "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478643560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -32882,6 +14059,7 @@ "version": "2.0.12", "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793732246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", + "dev": true, "requires": { "setimmediate": "^1.0.4" } @@ -32914,7 +14092,8 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true }, "to-fast-properties": { "version": "1.0.3", @@ -33025,7 +14204,8 @@ "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true }, "tunnel-agent": { "version": "0.6.0", @@ -33069,7 +14249,8 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "uglify-js": { "version": "3.4.10", @@ -33106,6 +14287,7 @@ "version": "1.2.7", "resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.2.7.tgz", "integrity": "sha1-V2ON2ZyFOh6/6dl7QhYKilB/nQA=", + "dev": true, "requires": { "cacache": "^10.0.4", "find-cache-dir": "^1.0.0", @@ -33120,12 +14302,14 @@ "commander": { "version": "2.13.0", "resolved": "https://registry.nlark.com/commander/download/commander-2.13.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.13.0.tgz", - "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=" + "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=", + "dev": true }, "schema-utils": { "version": "0.4.7", "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "dev": true, "requires": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" @@ -33134,12 +14318,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true }, "uglify-es": { "version": "3.3.9", "resolved": "https://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz", "integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=", + "dev": true, "requires": { "commander": "~2.13.0", "source-map": "~0.6.1" @@ -33197,6 +14383,7 @@ "version": "1.1.1", "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "dev": true, "requires": { "unique-slug": "^2.0.0" } @@ -33205,6 +14392,7 @@ "version": "2.0.2", "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "dev": true, "requires": { "imurmurhash": "^0.1.4" } @@ -33357,6 +14545,7 @@ "version": "0.11.1", "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz", "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "dev": true, "requires": { "inherits": "2.0.3" }, @@ -33364,7 +14553,8 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true } } }, @@ -33538,7 +14728,8 @@ "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=" + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "dev": true }, "void-elements": { "version": "3.1.0", @@ -33559,8 +14750,7 @@ "vue-class-component": { "version": "7.2.6", "resolved": "https://registry.npm.taobao.org/vue-class-component/download/vue-class-component-7.2.6.tgz", - "integrity": "sha1-hHHgN7jkdi9aRkaG4Z5a/HCFAuQ=", - "requires": {} + "integrity": "sha1-hHHgN7jkdi9aRkaG4Z5a/HCFAuQ=" }, "vue-clipboard2": { "version": "0.3.1", @@ -33769,6 +14959,7 @@ "version": "1.7.5", "resolved": "https://registry.nlark.com/watchpack/download/watchpack-1.7.5.tgz", "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", + "dev": true, "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", @@ -33780,6 +14971,7 @@ "version": "3.1.2", "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747494189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz", "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", + "dev": true, "optional": true, "requires": { "normalize-path": "^3.0.0", @@ -33790,12 +14982,14 @@ "version": "2.2.0", "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299514499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "dev": true, "optional": true }, "braces": { "version": "3.0.2", "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, "optional": true, "requires": { "fill-range": "^7.0.1" @@ -33805,6 +14999,7 @@ "version": "3.5.1", "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719384066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz", "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=", + "dev": true, "optional": true, "requires": { "anymatch": "~3.1.1", @@ -33821,6 +15016,7 @@ "version": "7.0.1", "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, "optional": true, "requires": { "to-regex-range": "^5.0.1" @@ -33830,12 +15026,14 @@ "version": "2.3.2", "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612536512306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz", "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "dev": true, "optional": true }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz", "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "dev": true, "optional": true, "requires": { "is-glob": "^4.0.1" @@ -33845,6 +15043,7 @@ "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, "optional": true, "requires": { "binary-extensions": "^2.0.0" @@ -33854,12 +15053,14 @@ "version": "7.0.0", "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true, "optional": true }, "readdirp": { "version": "3.5.0", "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz", "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", + "dev": true, "optional": true, "requires": { "picomatch": "^2.2.1" @@ -33869,6 +15070,7 @@ "version": "5.0.1", "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, "optional": true, "requires": { "is-number": "^7.0.0" @@ -33880,6 +15082,7 @@ "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", + "dev": true, "optional": true, "requires": { "chokidar": "^2.1.8" @@ -33906,6 +15109,7 @@ "version": "4.16.5", "resolved": "https://registry.nlark.com/webpack/download/webpack-4.16.5.tgz?cache=0&sync_timestamp=1622150231355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.16.5.tgz", "integrity": "sha1-Kfs5Rigj1+uK78q4tF9/JB2w0JI=", + "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/helper-module-context": "1.5.13", @@ -33937,12 +15141,14 @@ "acorn": { "version": "5.7.4", "resolved": "https://registry.nlark.com/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1622440249922&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", - "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=" + "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "dev": true }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933675196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -33952,6 +15158,7 @@ "version": "0.4.7", "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-0.4.7.tgz", "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "dev": true, "requires": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" @@ -34514,6 +15721,7 @@ "version": "1.4.3", "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz", "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -34522,7 +15730,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true } } }, @@ -34670,6 +15879,7 @@ "version": "1.7.0", "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "dev": true, "requires": { "errno": "~0.1.7" } @@ -34785,7 +15995,8 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true }, "yargs": { "version": "14.2.3", diff --git a/admin/vue2/element-admin-v3/src/views/Layout/components/AppMain.vue b/admin/vue2/element-admin-v3/src/views/Layout/components/AppMain.vue index 107ef62a9..a6cf12b38 100644 --- a/admin/vue2/element-admin-v3/src/views/Layout/components/AppMain.vue +++ b/admin/vue2/element-admin-v3/src/views/Layout/components/AppMain.vue @@ -4,6 +4,7 @@ +
Copyright © 2020 - 至今 TFSHOP 1.0.1
'); - } elseif ($format === 'js') { + } elseif ($format === self::FORMAT_JS) { static::writeOutput(static::generateScript()); } static::resetStatic(); @@ -125,25 +137,37 @@ protected static function writeOutput(string $str): void * If Content-Type is anything else -> unknown * * @return string One of 'js', 'html' or 'unknown' + * @phpstan-return self::FORMAT_* */ protected static function getResponseFormat(): string { // Check content type foreach (headers_list() as $header) { if (stripos($header, 'content-type:') === 0) { - // This handler only works with HTML and javascript outputs - // text/javascript is obsolete in favour of application/javascript, but still used - if (stripos($header, 'application/javascript') !== false || stripos($header, 'text/javascript') !== false) { - return 'js'; - } - if (stripos($header, 'text/html') === false) { - return 'unknown'; - } - break; + return static::getResponseFormatFromContentType($header); } } - return 'html'; + return self::FORMAT_HTML; + } + + /** + * @return string One of 'js', 'html' or 'unknown' + * @phpstan-return self::FORMAT_* + */ + protected static function getResponseFormatFromContentType(string $contentType): string + { + // This handler only works with HTML and javascript outputs + // text/javascript is obsolete in favour of application/javascript, but still used + if (stripos($contentType, 'application/javascript') !== false || stripos($contentType, 'text/javascript') !== false) { + return self::FORMAT_JS; + } + + if (stripos($contentType, 'text/html') !== false) { + return self::FORMAT_HTML; + } + + return self::FORMAT_UNKNOWN; } private static function generateScript(): string @@ -154,7 +178,7 @@ private static function generateScript(): string $extra = static::dump('Extra', $record['extra']); if (empty($context) && empty($extra)) { - $script[] = static::call_array('log', static::handleStyles($record['formatted'])); + $script[] = static::call_array(static::getConsoleMethodForLevel($record['level']), static::handleStyles($record['formatted'])); } else { $script = array_merge( $script, @@ -169,6 +193,20 @@ private static function generateScript(): string return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);"; } + private static function getConsoleMethodForLevel(int $level): string + { + return [ + Logger::DEBUG => 'debug', + Logger::INFO => 'info', + Logger::NOTICE => 'info', + Logger::WARNING => 'warn', + Logger::ERROR => 'error', + Logger::CRITICAL => 'error', + Logger::ALERT => 'error', + Logger::EMERGENCY => 'error', + ][$level] ?? 'log'; + } + /** * @return string[] */ diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php index d1a98b8fe..234ecf614 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php @@ -149,7 +149,7 @@ protected function send(): void } $json = Utils::jsonEncode(self::$json, Utils::DEFAULT_JSON_FLAGS & ~JSON_UNESCAPED_UNICODE, true); - $data = base64_encode(utf8_encode($json)); + $data = base64_encode($json); if (strlen($data) > 3 * 1024) { self::$overflowed = true; @@ -163,8 +163,8 @@ protected function send(): void 'extra' => [], ]; self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record); - $json = Utils::jsonEncode(self::$json, null, true); - $data = base64_encode(utf8_encode($json)); + $json = Utils::jsonEncode(self::$json, Utils::DEFAULT_JSON_FLAGS & ~JSON_UNESCAPED_UNICODE, true); + $data = base64_encode($json); } if (trim($data) !== '') { diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php index fc8f58f1a..3535a4fcd 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php @@ -17,8 +17,9 @@ /** * Logs to Cube. * - * @link http://square.github.com/cube/ + * @link https://github.com/square/cube/wiki * @author Wan Chen + * @deprecated Since 2.8.0 and 3.2.0, Cube appears abandoned and thus we will drop this handler in Monolog 4 */ class CubeHandler extends AbstractProcessingHandler { diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php index b9d323d83..e88375c0e 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php @@ -11,6 +11,7 @@ namespace Monolog\Handler; +use Elastic\Elasticsearch\Response\Elasticsearch; use Throwable; use RuntimeException; use Monolog\Logger; @@ -19,6 +20,8 @@ use InvalidArgumentException; use Elasticsearch\Common\Exceptions\RuntimeException as ElasticsearchRuntimeException; use Elasticsearch\Client; +use Elastic\Elasticsearch\Exception\InvalidArgumentException as ElasticInvalidArgumentException; +use Elastic\Elasticsearch\Client as Client8; /** * Elasticsearch handler @@ -44,7 +47,7 @@ class ElasticsearchHandler extends AbstractProcessingHandler { /** - * @var Client + * @var Client|Client8 */ protected $client; @@ -54,11 +57,20 @@ class ElasticsearchHandler extends AbstractProcessingHandler protected $options = []; /** - * @param Client $client Elasticsearch Client object - * @param mixed[] $options Handler configuration + * @var bool */ - public function __construct(Client $client, array $options = [], $level = Logger::DEBUG, bool $bubble = true) + private $needsType; + + /** + * @param Client|Client8 $client Elasticsearch Client object + * @param mixed[] $options Handler configuration + */ + public function __construct($client, array $options = [], $level = Logger::DEBUG, bool $bubble = true) { + if (!$client instanceof Client && !$client instanceof Client8) { + throw new \TypeError('Elasticsearch\Client or Elastic\Elasticsearch\Client instance required'); + } + parent::__construct($level, $bubble); $this->client = $client; $this->options = array_merge( @@ -69,6 +81,14 @@ public function __construct(Client $client, array $options = [], $level = Logger ], $options ); + + if ($client instanceof Client8 || $client::VERSION[0] === '7') { + $this->needsType = false; + // force the type to _doc for ES8/ES7 + $this->options['type'] = '_doc'; + } else { + $this->needsType = true; + } } /** @@ -133,9 +153,11 @@ protected function bulkSend(array $records): void foreach ($records as $record) { $params['body'][] = [ - 'index' => [ + 'index' => $this->needsType ? [ '_index' => $record['_index'], '_type' => $record['_type'], + ] : [ + '_index' => $record['_index'], ], ]; unset($record['_index'], $record['_type']); @@ -143,6 +165,7 @@ protected function bulkSend(array $records): void $params['body'][] = $record; } + /** @var Elasticsearch */ $responses = $this->client->bulk($params); if ($responses['errors'] === true) { @@ -160,9 +183,9 @@ protected function bulkSend(array $records): void * * Only the first error is converted into an exception. * - * @param mixed[] $responses returned by $this->client->bulk() + * @param mixed[]|Elasticsearch $responses returned by $this->client->bulk() */ - protected function createExceptionFromResponses(array $responses): ElasticsearchRuntimeException + protected function createExceptionFromResponses($responses): Throwable { foreach ($responses['items'] ?? [] as $item) { if (isset($item['index']['error'])) { @@ -170,6 +193,10 @@ protected function createExceptionFromResponses(array $responses): Elasticsearch } } + if (class_exists(ElasticInvalidArgumentException::class)) { + return new ElasticInvalidArgumentException('Elasticsearch failed to index one or more records.'); + } + return new ElasticsearchRuntimeException('Elasticsearch failed to index one or more records.'); } @@ -178,10 +205,14 @@ protected function createExceptionFromResponses(array $responses): Elasticsearch * * @param mixed[] $error */ - protected function createExceptionFromError(array $error): ElasticsearchRuntimeException + protected function createExceptionFromError(array $error): Throwable { $previous = isset($error['caused_by']) ? $this->createExceptionFromError($error['caused_by']) : null; + if (class_exists(ElasticInvalidArgumentException::class)) { + return new ElasticInvalidArgumentException($error['type'] . ': ' . $error['reason'], 0, $previous); + } + return new ElasticsearchRuntimeException($error['type'] . ': ' . $error['reason'], 0, $previous); } } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php index 718f17ef1..5e43e1dc2 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php @@ -161,7 +161,7 @@ public function handleBatch(array $records): void * * @phpstan-param Record $record */ - public function getHandler(array $record = null) + public function getHandler(?array $record = null) { if (!$this->handler instanceof HandlerInterface) { $this->handler = ($this->handler)($record, $this); diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php index 0627b4451..dfcb3af28 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php @@ -210,7 +210,7 @@ private function flushBuffer(): void * * @phpstan-param Record $record */ - public function getHandler(array $record = null) + public function getHandler(?array $record = null) { if (!$this->handler instanceof HandlerInterface) { $this->handler = ($this->handler)($record, $this); diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php index 6194283a8..85c95b9d7 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php @@ -45,8 +45,16 @@ class FleepHookHandler extends SocketHandler * @param string $token Webhook token * @throws MissingExtensionException */ - public function __construct(string $token, $level = Logger::DEBUG, bool $bubble = true) - { + public function __construct( + string $token, + $level = Logger::DEBUG, + bool $bubble = true, + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null + ) { if (!extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler'); } @@ -54,7 +62,16 @@ public function __construct(string $token, $level = Logger::DEBUG, bool $bubble $this->token = $token; $connectionString = 'ssl://' . static::FLEEP_HOST . ':443'; - parent::__construct($connectionString, $level, $bubble); + parent::__construct( + $connectionString, + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); } /** diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php index a632c8623..5715d5800 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php @@ -28,6 +28,7 @@ * @see https://www.flowdock.com/api/push * * @phpstan-import-type FormattedRecord from AbstractProcessingHandler + * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4 */ class FlowdockHandler extends SocketHandler { @@ -39,13 +40,30 @@ class FlowdockHandler extends SocketHandler /** * @throws MissingExtensionException if OpenSSL is missing */ - public function __construct(string $apiToken, $level = Logger::DEBUG, bool $bubble = true) - { + public function __construct( + string $apiToken, + $level = Logger::DEBUG, + bool $bubble = true, + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null + ) { if (!extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); } - parent::__construct('ssl://api.flowdock.com:443', $level, $bubble); + parent::__construct( + 'ssl://api.flowdock.com:443', + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); $this->apiToken = $apiToken; } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/Handler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/Handler.php index afef2fd74..34b4935dd 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/Handler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/Handler.php @@ -48,6 +48,15 @@ public function __sleep() { $this->close(); - return array_keys(get_object_vars($this)); + $reflClass = new \ReflectionClass($this); + + $keys = []; + foreach ($reflClass->getProperties() as $reflProp) { + if (!$reflProp->isStatic()) { + $keys[] = $reflProp->getName(); + } + } + + return $keys; } } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php index c62dc24d9..71f64a267 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php @@ -33,8 +33,18 @@ class InsightOpsHandler extends SocketHandler * * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing */ - public function __construct(string $token, string $region = 'us', bool $useSSL = true, $level = Logger::DEBUG, bool $bubble = true) - { + public function __construct( + string $token, + string $region = 'us', + bool $useSSL = true, + $level = Logger::DEBUG, + bool $bubble = true, + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null + ) { if ($useSSL && !extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for InsightOpsHandler'); } @@ -43,7 +53,16 @@ public function __construct(string $token, string $region = 'us', bool $useSSL = ? 'ssl://' . $region . '.data.logs.insight.rapid7.com:443' : $region . '.data.logs.insight.rapid7.com:80'; - parent::__construct($endpoint, $level, $bubble); + parent::__construct( + $endpoint, + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); $this->logToken = $token; } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php index a0739cf04..25fcd1594 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php @@ -30,14 +30,33 @@ class LogEntriesHandler extends SocketHandler * * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing */ - public function __construct(string $token, bool $useSSL = true, $level = Logger::DEBUG, bool $bubble = true, string $host = 'data.logentries.com') - { + public function __construct( + string $token, + bool $useSSL = true, + $level = Logger::DEBUG, + bool $bubble = true, + string $host = 'data.logentries.com', + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null + ) { if ($useSSL && !extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler'); } $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80'; - parent::__construct($endpoint, $level, $bubble); + parent::__construct( + $endpoint, + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); $this->logToken = $token; } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php index e7666eca4..859a46906 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/LogmaticHandler.php @@ -43,8 +43,19 @@ class LogmaticHandler extends SocketHandler * * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing */ - public function __construct(string $token, string $hostname = '', string $appname = '', bool $useSSL = true, $level = Logger::DEBUG, bool $bubble = true) - { + public function __construct( + string $token, + string $hostname = '', + string $appname = '', + bool $useSSL = true, + $level = Logger::DEBUG, + bool $bubble = true, + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null + ) { if ($useSSL && !extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP extension is required to use SSL encrypted connection for LogmaticHandler'); } @@ -52,7 +63,16 @@ public function __construct(string $token, string $hostname = '', string $appnam $endpoint = $useSSL ? 'ssl://api.logmatic.io:10515' : 'api.logmatic.io:10514'; $endpoint .= '/v1/'; - parent::__construct($endpoint, $level, $bubble); + parent::__construct( + $endpoint, + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); $this->logToken = $token; $this->hostname = $hostname; diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php index 6e209b190..23a1d1178 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php @@ -25,7 +25,7 @@ * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely * * Usage: - * 1. Install Google Chrome extension https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef + * 1. Install Google Chrome extension [now dead and removed from the chrome store] * 2. See overview https://github.com/barbushin/php-console#overview * 3. Install PHP Console library https://github.com/barbushin/php-console#installation * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png) @@ -39,6 +39,7 @@ * @author Sergey Barbushin https://www.linkedin.com/in/barbushin * * @phpstan-import-type Record from \Monolog\Logger + * @deprecated Since 2.8.0 and 3.2.0, PHPConsole is abandoned and thus we will drop this handler in Monolog 4 */ class PHPConsoleHandler extends AbstractProcessingHandler { diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php index 255af5c06..fed2303d7 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php @@ -108,10 +108,24 @@ public function __construct( $highPriorityLevel = Logger::CRITICAL, $emergencyLevel = Logger::EMERGENCY, int $retry = 30, - int $expire = 25200 + int $expire = 25200, + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null ) { $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80'; - parent::__construct($connectionString, $level, $bubble); + parent::__construct( + $connectionString, + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); $this->token = $token; $this->users = (array) $users; diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php index 938eee6b2..91d16eaf6 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php @@ -30,7 +30,7 @@ */ class RedisHandler extends AbstractProcessingHandler { - /** @var \Predis\Client|\Redis */ + /** @var \Predis\Client<\Predis\Client>|\Redis */ private $redisClient; /** @var string */ private $redisKey; @@ -38,7 +38,7 @@ class RedisHandler extends AbstractProcessingHandler protected $capSize; /** - * @param \Predis\Client|\Redis $redis The redis instance + * @param \Predis\Client<\Predis\Client>|\Redis $redis The redis instance * @param string $key The key name to push records to * @param int $capSize Number of entries to limit list size to, 0 = unlimited */ diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php index f9fede8ee..7789309c1 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/RedisPubSubHandler.php @@ -28,13 +28,13 @@ */ class RedisPubSubHandler extends AbstractProcessingHandler { - /** @var \Predis\Client|\Redis */ + /** @var \Predis\Client<\Predis\Client>|\Redis */ private $redisClient; /** @var string */ private $channelKey; /** - * @param \Predis\Client|\Redis $redis The redis instance + * @param \Predis\Client<\Predis\Client>|\Redis $redis The redis instance * @param string $key The channel key to publish records to */ public function __construct($redis, string $key, $level = Logger::DEBUG, bool $bubble = true) diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php index 2b7c48030..17745d221 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php @@ -191,7 +191,11 @@ protected function getGlobPattern(): string $fileInfo = pathinfo($this->filename); $glob = str_replace( ['{filename}', '{date}'], - [$fileInfo['filename'], '[0-9][0-9][0-9][0-9]*'], + [$fileInfo['filename'], str_replace( + ['Y', 'y', 'm', 'd'], + ['[0-9][0-9][0-9][0-9]', '[0-9][0-9]', '[0-9][0-9]', '[0-9][0-9]'], + $this->dateFormat) + ], $fileInfo['dirname'] . '/' . $this->filenameFormat ); if (isset($fileInfo['extension'])) { diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php index c128a32d1..25cce07f9 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php @@ -90,7 +90,7 @@ public function handle(array $record): bool * * @return HandlerInterface */ - public function getHandler(array $record = null) + public function getHandler(?array $record = null) { if (!$this->handler instanceof HandlerInterface) { $this->handler = ($this->handler)($record, $this); diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php index 13c3a1021..9ae100371 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php @@ -100,7 +100,7 @@ public function __construct( bool $useShortAttachment = false, bool $includeContextAndExtra = false, array $excludeFields = array(), - FormatterInterface $formatter = null + ?FormatterInterface $formatter = null ) { $this ->setChannel($channel) @@ -146,12 +146,14 @@ public function getSlackData(array $record): array if ($this->useAttachment) { $attachment = array( - 'fallback' => $message, - 'text' => $message, - 'color' => $this->getAttachmentColor($record['level']), - 'fields' => array(), - 'mrkdwn_in' => array('fields'), - 'ts' => $record['datetime']->getTimestamp(), + 'fallback' => $message, + 'text' => $message, + 'color' => $this->getAttachmentColor($record['level']), + 'fields' => array(), + 'mrkdwn_in' => array('fields'), + 'ts' => $record['datetime']->getTimestamp(), + 'footer' => $this->username, + 'footer_icon' => $this->userIcon, ); if ($this->useShortAttachment) { diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php index 46d69a6d2..a648513e0 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php @@ -59,13 +59,27 @@ public function __construct( bool $bubble = true, bool $useShortAttachment = false, bool $includeContextAndExtra = false, - array $excludeFields = array() + array $excludeFields = array(), + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null ) { if (!extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler'); } - parent::__construct('ssl://slack.com:443', $level, $bubble); + parent::__construct( + 'ssl://slack.com:443', + $level, + $bubble, + $persistent, + $timeout, + $writingTimeout, + $connectionTimeout, + $chunkSize + ); $this->slackRecord = new SlackRecord( $channel, diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php index 4e1410ab8..21701afa2 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php @@ -31,15 +31,15 @@ class SocketHandler extends AbstractProcessingHandler /** @var resource|null */ private $resource; /** @var float */ - private $timeout = 0.0; + private $timeout; /** @var float */ - private $writingTimeout = 10.0; + private $writingTimeout; /** @var ?int */ private $lastSentBytes = null; /** @var ?int */ - private $chunkSize = null; + private $chunkSize; /** @var bool */ - private $persistent = false; + private $persistent; /** @var ?int */ private $errno = null; /** @var ?string */ @@ -48,13 +48,40 @@ class SocketHandler extends AbstractProcessingHandler private $lastWritingAt = null; /** - * @param string $connectionString Socket connection string + * @param string $connectionString Socket connection string + * @param bool $persistent Flag to enable/disable persistent connections + * @param float $timeout Socket timeout to wait until the request is being aborted + * @param float $writingTimeout Socket timeout to wait until the request should've been sent/written + * @param float|null $connectionTimeout Socket connect timeout to wait until the connection should've been + * established + * @param int|null $chunkSize Sets the chunk size. Only has effect during connection in the writing cycle + * + * @throws \InvalidArgumentException If an invalid timeout value (less than 0) is passed. */ - public function __construct(string $connectionString, $level = Logger::DEBUG, bool $bubble = true) - { + public function __construct( + string $connectionString, + $level = Logger::DEBUG, + bool $bubble = true, + bool $persistent = false, + float $timeout = 0.0, + float $writingTimeout = 10.0, + ?float $connectionTimeout = null, + ?int $chunkSize = null + ) { parent::__construct($level, $bubble); $this->connectionString = $connectionString; - $this->connectionTimeout = (float) ini_get('default_socket_timeout'); + + if ($connectionTimeout !== null) { + $this->validateTimeout($connectionTimeout); + } + + $this->connectionTimeout = $connectionTimeout ?? (float) ini_get('default_socket_timeout'); + $this->persistent = $persistent; + $this->validateTimeout($timeout); + $this->timeout = $timeout; + $this->validateTimeout($writingTimeout); + $this->writingTimeout = $writingTimeout; + $this->chunkSize = $chunkSize; } /** diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php index dc1dcb427..dcf282b45 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SqsHandler.php @@ -46,7 +46,7 @@ public function __construct(SqsClient $sqsClient, string $queueUrl, $level = Log protected function write(array $record): void { if (!isset($record['formatted']) || 'string' !== gettype($record['formatted'])) { - throw new \InvalidArgumentException('SqsHandler accepts only formatted records as a string'); + throw new \InvalidArgumentException('SqsHandler accepts only formatted records as a string' . Utils::getRecordMessageForException($record)); } $messageBody = $record['formatted']; diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php index 2531d41b9..82c048e1c 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php @@ -130,20 +130,23 @@ protected function write(array $record): void if (!is_resource($this->stream)) { $url = $this->url; if (null === $url || '' === $url) { - throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().'); + throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().' . Utils::getRecordMessageForException($record)); } $this->createDir($url); $this->errorMessage = null; set_error_handler([$this, 'customErrorHandler']); - $stream = fopen($url, 'a'); - if ($this->filePermission !== null) { - @chmod($url, $this->filePermission); + try { + $stream = fopen($url, 'a'); + if ($this->filePermission !== null) { + @chmod($url, $this->filePermission); + } + } finally { + restore_error_handler(); } - restore_error_handler(); if (!is_resource($stream)) { $this->stream = null; - throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $url)); + throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $url) . Utils::getRecordMessageForException($record)); } stream_set_chunk_size($stream, $this->streamChunkSize); $this->stream = $stream; @@ -151,7 +154,7 @@ protected function write(array $record): void $stream = $this->stream; if (!is_resource($stream)) { - throw new \LogicException('No stream was opened yet'); + throw new \LogicException('No stream was opened yet' . Utils::getRecordMessageForException($record)); } if ($this->useLocking) { @@ -212,7 +215,7 @@ private function createDir(string $url): void set_error_handler([$this, 'customErrorHandler']); $status = mkdir($dir, 0777, true); restore_error_handler(); - if (false === $status && !is_dir($dir)) { + if (false === $status && !is_dir($dir) && strpos((string) $this->errorMessage, 'File exists') === false) { throw new \UnexpectedValueException(sprintf('There is no existing directory at "%s" and it could not be created: '.$this->errorMessage, $dir)); } } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php index b3fedea5d..fae925141 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Utils; use Monolog\Formatter\FormatterInterface; use Monolog\Formatter\LineFormatter; use Swift_Message; @@ -23,6 +24,7 @@ * @author Gyula Sallai * * @phpstan-import-type Record from \Monolog\Logger + * @deprecated Since Monolog 2.6. Use SymfonyMailerHandler instead. */ class SwiftMailerHandler extends MailHandler { @@ -41,6 +43,8 @@ public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ER { parent::__construct($level, $bubble); + @trigger_error('The SwiftMailerHandler is deprecated since Monolog 2.6. Use SymfonyMailerHandler instead.', E_USER_DEPRECATED); + $this->mailer = $mailer; $this->messageTemplate = $message; } @@ -83,7 +87,8 @@ protected function buildMessage(string $content, array $records): Swift_Message } if (!$message instanceof Swift_Message) { - throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it'); + $record = reset($records); + throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it' . ($record ? Utils::getRecordMessageForException($record) : '')); } if ($records) { diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php new file mode 100644 index 000000000..130e6f1f3 --- /dev/null +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SymfonyMailerHandler.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Logger; +use Monolog\Utils; +use Monolog\Formatter\FormatterInterface; +use Monolog\Formatter\LineFormatter; +use Symfony\Component\Mailer\MailerInterface; +use Symfony\Component\Mailer\Transport\TransportInterface; +use Symfony\Component\Mime\Email; + +/** + * SymfonyMailerHandler uses Symfony's Mailer component to send the emails + * + * @author Jordi Boggiano + * + * @phpstan-import-type Record from \Monolog\Logger + */ +class SymfonyMailerHandler extends MailHandler +{ + /** @var MailerInterface|TransportInterface */ + protected $mailer; + /** @var Email|callable(string, Record[]): Email */ + private $emailTemplate; + + /** + * @psalm-param Email|callable(string, Record[]): Email $email + * + * @param MailerInterface|TransportInterface $mailer The mailer to use + * @param callable|Email $email An email template, the subject/body will be replaced + */ + public function __construct($mailer, $email, $level = Logger::ERROR, bool $bubble = true) + { + parent::__construct($level, $bubble); + + $this->mailer = $mailer; + $this->emailTemplate = $email; + } + + /** + * {@inheritDoc} + */ + protected function send(string $content, array $records): void + { + $this->mailer->send($this->buildMessage($content, $records)); + } + + /** + * Gets the formatter for the Swift_Message subject. + * + * @param string|null $format The format of the subject + */ + protected function getSubjectFormatter(?string $format): FormatterInterface + { + return new LineFormatter($format); + } + + /** + * Creates instance of Email to be sent + * + * @param string $content formatted email body to be sent + * @param array $records Log records that formed the content + * + * @phpstan-param Record[] $records + */ + protected function buildMessage(string $content, array $records): Email + { + $message = null; + if ($this->emailTemplate instanceof Email) { + $message = clone $this->emailTemplate; + } elseif (is_callable($this->emailTemplate)) { + $message = ($this->emailTemplate)($content, $records); + } + + if (!$message instanceof Email) { + $record = reset($records); + throw new \InvalidArgumentException('Could not resolve message as instance of Email or a callable returning it' . ($record ? Utils::getRecordMessageForException($record) : '')); + } + + if ($records) { + $subjectFormatter = $this->getSubjectFormatter($message->getSubject()); + $message->subject($subjectFormatter->format($this->getHighestRecord($records))); + } + + if ($this->isHtmlBody($content)) { + if (null !== ($charset = $message->getHtmlCharset())) { + $message->html($content, $charset); + } else { + $message->html($content); + } + } else { + if (null !== ($charset = $message->getTextCharset())) { + $message->text($content, $charset); + } else { + $message->text($content); + } + } + + return $message->date(new \DateTimeImmutable()); + } +} diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php index 4951f66a9..1d543b7ec 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php @@ -12,6 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; +use Monolog\Utils; /** * Logs to syslog service. @@ -60,7 +61,7 @@ public function close(): void protected function write(array $record): void { if (!openlog($this->ident, $this->logopts, $this->facility)) { - throw new \LogicException('Can\'t open syslog for ident "'.$this->ident.'" and facility "'.$this->facility.'"'); + throw new \LogicException('Can\'t open syslog for ident "'.$this->ident.'" and facility "'.$this->facility.'"' . Utils::getRecordMessageForException($record)); } syslog($this->logLevels[$record['level']], (string) $record['formatted']); } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php index 30b5186bd..dbd8ef69d 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php @@ -23,20 +23,12 @@ class UdpSocket /** @var int */ protected $port; /** @var resource|Socket|null */ - protected $socket; + protected $socket = null; public function __construct(string $ip, int $port = 514) { $this->ip = $ip; $this->port = $port; - $domain = AF_INET; - $protocol = SOL_UDP; - // Check if we are using unix sockets. - if ($port === 0) { - $domain = AF_UNIX; - $protocol = IPPROTO_IP; - } - $this->socket = socket_create($domain, SOCK_DGRAM, $protocol) ?: null; } /** @@ -57,12 +49,34 @@ public function close(): void } } - protected function send(string $chunk): void + /** + * @return resource|Socket + */ + protected function getSocket() { - if (!is_resource($this->socket) && !$this->socket instanceof Socket) { - throw new \RuntimeException('The UdpSocket to '.$this->ip.':'.$this->port.' has been closed and can not be written to anymore'); + if (null !== $this->socket) { + return $this->socket; } - socket_sendto($this->socket, $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port); + + $domain = AF_INET; + $protocol = SOL_UDP; + // Check if we are using unix sockets. + if ($this->port === 0) { + $domain = AF_UNIX; + $protocol = IPPROTO_IP; + } + + $this->socket = socket_create($domain, SOCK_DGRAM, $protocol) ?: null; + if (null === $this->socket) { + throw new \RuntimeException('The UdpSocket to '.$this->ip.':'.$this->port.' could not be opened via socket_create'); + } + + return $this->socket; + } + + protected function send(string $chunk): void + { + socket_sendto($this->getSocket(), $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port); } protected function assembleMessage(string $line, string $header): string diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php index 9ea057371..a6223b795 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php @@ -13,6 +13,7 @@ use RuntimeException; use Monolog\Logger; +use Monolog\Utils; /** * Handler send logs to Telegram using Telegram Bot API. @@ -43,6 +44,11 @@ class TelegramBotHandler extends AbstractProcessingHandler 'Markdown', // legacy mode without underline and strikethrough, use MarkdownV2 instead ]; + /** + * The maximum number of characters allowed in a message according to the Telegram api documentation + */ + private const MAX_MESSAGE_LENGTH = 4096; + /** * Telegram bot access token provided by BotFather. * Create telegram bot with https://telegram.me/BotFather and use access token from it. @@ -78,18 +84,37 @@ class TelegramBotHandler extends AbstractProcessingHandler private $disableNotification; /** - * @param string $apiKey Telegram bot access token provided by BotFather + * True - split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages. + * False - truncates a message that is too long. + * @var bool + */ + private $splitLongMessages; + + /** + * Adds 1-second delay between sending a split message (according to Telegram API to avoid 429 Too Many Requests). + * @var bool + */ + private $delayBetweenMessages; + + /** + * @param string $apiKey Telegram bot access token provided by BotFather * @param string $channel Telegram channel name + * @param bool $splitLongMessages Split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages + * @param bool $delayBetweenMessages Adds delay between sending a split message according to Telegram API + * @throws MissingExtensionException */ public function __construct( string $apiKey, string $channel, - $level = Logger::DEBUG, - bool $bubble = true, - string $parseMode = null, - bool $disableWebPagePreview = null, - bool $disableNotification = null - ) { + $level = Logger::DEBUG, + bool $bubble = true, + ?string $parseMode = null, + ?bool $disableWebPagePreview = null, + ?bool $disableNotification = null, + bool $splitLongMessages = false, + bool $delayBetweenMessages = false + ) + { if (!extension_loaded('curl')) { throw new MissingExtensionException('The curl extension is needed to use the TelegramBotHandler'); } @@ -101,9 +126,11 @@ public function __construct( $this->setParseMode($parseMode); $this->disableWebPagePreview($disableWebPagePreview); $this->disableNotification($disableNotification); + $this->splitLongMessages($splitLongMessages); + $this->delayBetweenMessages($delayBetweenMessages); } - public function setParseMode(string $parseMode = null): self + public function setParseMode(?string $parseMode = null): self { if ($parseMode !== null && !in_array($parseMode, self::AVAILABLE_PARSE_MODES)) { throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.'); @@ -114,20 +141,45 @@ public function setParseMode(string $parseMode = null): self return $this; } - public function disableWebPagePreview(bool $disableWebPagePreview = null): self + public function disableWebPagePreview(?bool $disableWebPagePreview = null): self { $this->disableWebPagePreview = $disableWebPagePreview; return $this; } - public function disableNotification(bool $disableNotification = null): self + public function disableNotification(?bool $disableNotification = null): self { $this->disableNotification = $disableNotification; return $this; } + /** + * True - split a message longer than MAX_MESSAGE_LENGTH into parts and send in multiple messages. + * False - truncates a message that is too long. + * @param bool $splitLongMessages + * @return $this + */ + public function splitLongMessages(bool $splitLongMessages = false): self + { + $this->splitLongMessages = $splitLongMessages; + + return $this; + } + + /** + * Adds 1-second delay between sending a split message (according to Telegram API to avoid 429 Too Many Requests). + * @param bool $delayBetweenMessages + * @return $this + */ + public function delayBetweenMessages(bool $delayBetweenMessages = false): self + { + $this->delayBetweenMessages = $delayBetweenMessages; + + return $this; + } + /** * {@inheritDoc} */ @@ -150,7 +202,7 @@ public function handleBatch(array $records): void } if (!empty($messages)) { - $this->send((string) $this->getFormatter()->formatBatch($messages)); + $this->send((string)$this->getFormatter()->formatBatch($messages)); } } @@ -167,6 +219,19 @@ protected function write(array $record): void * @param string $message */ protected function send(string $message): void + { + $messages = $this->handleMessageLength($message); + + foreach ($messages as $key => $msg) { + if ($this->delayBetweenMessages && $key > 0) { + sleep(1); + } + + $this->sendCurl($msg); + } + } + + protected function sendCurl(string $message): void { $ch = curl_init(); $url = self::BOT_API . $this->apiKey . '/SendMessage'; @@ -191,4 +256,19 @@ protected function send(string $message): void throw new RuntimeException('Telegram API error. Description: ' . $result['description']); } } + + /** + * Handle a message that is too long: truncates or splits into several + * @param string $message + * @return string[] + */ + private function handleMessageLength(string $message): array + { + $truncatedMarker = ' (...truncated)'; + if (!$this->splitLongMessages && strlen($message) > self::MAX_MESSAGE_LENGTH) { + return [Utils::substr($message, 0, self::MAX_MESSAGE_LENGTH - strlen($truncatedMarker)) . $truncatedMarker]; + } + + return str_split($message, self::MAX_MESSAGE_LENGTH); + } } diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php index 2dd136720..b6d3d3b19 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php +++ b/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php @@ -64,4 +64,18 @@ public function handleBatch(array $records): void } } } + + /** + * {@inheritDoc} + */ + public function close(): void + { + foreach ($this->handlers as $handler) { + try { + $handler->close(); + } catch (\Throwable $e) { + // What failure? + } + } + } } diff --git a/api/vendor/monolog/monolog/src/Monolog/LogRecord.php b/api/vendor/monolog/monolog/src/Monolog/LogRecord.php new file mode 100644 index 000000000..702807d71 --- /dev/null +++ b/api/vendor/monolog/monolog/src/Monolog/LogRecord.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog; + +use ArrayAccess; + +/** + * Monolog log record interface for forward compatibility with Monolog 3.0 + * + * This is just present in Monolog 2.4+ to allow interoperable code to be written against + * both versions by type-hinting arguments as `array|\Monolog\LogRecord $record` + * + * Do not rely on this interface for other purposes, and do not implement it. + * + * @author Jordi Boggiano + * @template-extends \ArrayAccess<'message'|'level'|'context'|'level_name'|'channel'|'datetime'|'extra'|'formatted', mixed> + * @phpstan-import-type Record from Logger + */ +interface LogRecord extends \ArrayAccess +{ + /** + * @phpstan-return Record + */ + public function toArray(): array; +} diff --git a/api/vendor/monolog/monolog/src/Monolog/Logger.php b/api/vendor/monolog/monolog/src/Monolog/Logger.php index 9fbf20527..3c588a707 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Logger.php +++ b/api/vendor/monolog/monolog/src/Monolog/Logger.php @@ -111,6 +111,22 @@ class Logger implements LoggerInterface, ResettableInterface self::EMERGENCY => 'EMERGENCY', ]; + /** + * Mapping between levels numbers defined in RFC 5424 and Monolog ones + * + * @phpstan-var array $rfc_5424_levels + */ + private const RFC_5424_LEVELS = [ + 7 => self::DEBUG, + 6 => self::INFO, + 5 => self::NOTICE, + 4 => self::WARNING, + 3 => self::ERROR, + 2 => self::CRITICAL, + 1 => self::ALERT, + 0 => self::EMERGENCY, + ]; + /** * @var string */ @@ -147,6 +163,23 @@ class Logger implements LoggerInterface, ResettableInterface */ protected $exceptionHandler; + /** + * @var int Keeps track of depth to prevent infinite logging loops + */ + private $logDepth = 0; + + /** + * @var \WeakMap<\Fiber, int>|null Keeps track of depth inside fibers to prevent infinite logging loops + */ + private $fiberLogDepth; + + /** + * @var bool Whether to detect infinite logging loops + * + * This can be disabled via {@see useLoggingLoopDetection} if you have async handlers that do not play well with this + */ + private $detectCycles = true; + /** * @psalm-param array $processors * @@ -161,6 +194,13 @@ public function __construct(string $name, array $handlers = [], array $processor $this->setHandlers($handlers); $this->processors = $processors; $this->timezone = $timezone ?: new DateTimeZone(date_default_timezone_get() ?: 'UTC'); + + if (\PHP_VERSION_ID >= 80100) { + // Local variable for phpstan, see https://github.com/phpstan/phpstan/issues/6732#issuecomment-1111118412 + /** @var \WeakMap<\Fiber, int> $fiberLogDepth */ + $fiberLogDepth = new \WeakMap(); + $this->fiberLogDepth = $fiberLogDepth; + } } public function getName(): string @@ -272,48 +312,92 @@ public function getProcessors(): array * * @param bool $micro True to use microtime() to create timestamps */ - public function useMicrosecondTimestamps(bool $micro): void + public function useMicrosecondTimestamps(bool $micro): self { $this->microsecondTimestamps = $micro; + + return $this; + } + + public function useLoggingLoopDetection(bool $detectCycles): self + { + $this->detectCycles = $detectCycles; + + return $this; } /** * Adds a log record. * - * @param int $level The logging level - * @param string $message The log message - * @param mixed[] $context The log context - * @return bool Whether the record has been processed + * @param int $level The logging level (a Monolog or RFC 5424 level) + * @param string $message The log message + * @param mixed[] $context The log context + * @param DateTimeImmutable $datetime Optional log date to log into the past or future + * @return bool Whether the record has been processed * * @phpstan-param Level $level */ - public function addRecord(int $level, string $message, array $context = []): bool + public function addRecord(int $level, string $message, array $context = [], ?DateTimeImmutable $datetime = null): bool { - $offset = 0; - $record = null; + if (isset(self::RFC_5424_LEVELS[$level])) { + $level = self::RFC_5424_LEVELS[$level]; + } - foreach ($this->handlers as $handler) { - if (null === $record) { - // skip creating the record as long as no handler is going to handle it - if (!$handler->isHandling(['level' => $level])) { - continue; - } + if ($this->detectCycles) { + if (\PHP_VERSION_ID >= 80100 && $fiber = \Fiber::getCurrent()) { + $this->fiberLogDepth[$fiber] = $this->fiberLogDepth[$fiber] ?? 0; + $logDepth = ++$this->fiberLogDepth[$fiber]; + } else { + $logDepth = ++$this->logDepth; + } + } else { + $logDepth = 0; + } - $levelName = static::getLevelName($level); + if ($logDepth === 3) { + $this->warning('A possible infinite logging loop was detected and aborted. It appears some of your handler code is triggering logging, see the previous log record for a hint as to what may be the cause.'); + return false; + } elseif ($logDepth >= 5) { // log depth 4 is let through, so we can log the warning above + return false; + } + + try { + $record = null; - $record = [ - 'message' => $message, - 'context' => $context, - 'level' => $level, - 'level_name' => $levelName, - 'channel' => $this->name, - 'datetime' => new DateTimeImmutable($this->microsecondTimestamps, $this->timezone), - 'extra' => [], - ]; + foreach ($this->handlers as $handler) { + if (null === $record) { + // skip creating the record as long as no handler is going to handle it + if (!$handler->isHandling(['level' => $level])) { + continue; + } + $levelName = static::getLevelName($level); + + $record = [ + 'message' => $message, + 'context' => $context, + 'level' => $level, + 'level_name' => $levelName, + 'channel' => $this->name, + 'datetime' => $datetime ?? new DateTimeImmutable($this->microsecondTimestamps, $this->timezone), + 'extra' => [], + ]; + + try { + foreach ($this->processors as $processor) { + $record = $processor($record); + } + } catch (Throwable $e) { + $this->handleException($e, $record); + + return true; + } + } + + // once the record exists, send it to all handlers as long as the bubbling chain is not interrupted try { - foreach ($this->processors as $processor) { - $record = $processor($record); + if (true === $handler->handle($record)) { + break; } } catch (Throwable $e) { $this->handleException($e, $record); @@ -321,16 +405,13 @@ public function addRecord(int $level, string $message, array $context = []): boo return true; } } - - // once the record exists, send it to all handlers as long as the bubbling chain is not interrupted - try { - if (true === $handler->handle($record)) { - break; + } finally { + if ($this->detectCycles) { + if (isset($fiber)) { + $this->fiberLogDepth[$fiber]--; + } else { + $this->logDepth--; } - } catch (Throwable $e) { - $this->handleException($e, $record); - - return true; } } @@ -483,7 +564,7 @@ public function getExceptionHandler(): ?callable * * This method allows for compatibility with common interfaces. * - * @param mixed $level The log level + * @param mixed $level The log level (a Monolog, PSR-3 or RFC 5424 level) * @param string|Stringable $message The log message * @param mixed[] $context The log context * @@ -495,6 +576,10 @@ public function log($level, $message, array $context = []): void throw new \InvalidArgumentException('$level is expected to be a string or int'); } + if (isset(self::RFC_5424_LEVELS[$level])) { + $level = self::RFC_5424_LEVELS[$level]; + } + $level = static::toMonologLevel($level); $this->addRecord($level, (string) $message, $context); @@ -637,4 +722,40 @@ protected function handleException(Throwable $e, array $record): void ($this->exceptionHandler)($e, $record); } + + /** + * @return array + */ + public function __serialize(): array + { + return [ + 'name' => $this->name, + 'handlers' => $this->handlers, + 'processors' => $this->processors, + 'microsecondTimestamps' => $this->microsecondTimestamps, + 'timezone' => $this->timezone, + 'exceptionHandler' => $this->exceptionHandler, + 'logDepth' => $this->logDepth, + 'detectCycles' => $this->detectCycles, + ]; + } + + /** + * @param array $data + */ + public function __unserialize(array $data): void + { + foreach (['name', 'handlers', 'processors', 'microsecondTimestamps', 'timezone', 'exceptionHandler', 'logDepth', 'detectCycles'] as $property) { + if (isset($data[$property])) { + $this->$property = $data[$property]; + } + } + + if (\PHP_VERSION_ID >= 80100) { + // Local variable for phpstan, see https://github.com/phpstan/phpstan/issues/6732#issuecomment-1111118412 + /** @var \WeakMap<\Fiber, int> $fiberLogDepth */ + $fiberLogDepth = new \WeakMap(); + $this->fiberLogDepth = $fiberLogDepth; + } + } } diff --git a/api/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php b/api/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php index 0823501b9..a32e76b21 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php +++ b/api/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php @@ -101,6 +101,7 @@ public function __invoke(array $record): array 'file' => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null, 'line' => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null, 'class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : null, + 'callType' => isset($trace[$i]['type']) ? $trace[$i]['type'] : null, 'function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : null, ] ); diff --git a/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php index 2c2a00e75..e7c12176a 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php +++ b/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php @@ -66,6 +66,8 @@ public function __invoke(array $record): array } else { $replacements[$placeholder] = $val->format($this->dateFormat ?: static::SIMPLE_DATE); } + } elseif ($val instanceof \UnitEnum) { + $replacements[$placeholder] = $val instanceof \BackedEnum ? $val->value : $val->name; } elseif (is_object($val)) { $replacements[$placeholder] = '[object '.Utils::getClass($val).']'; } elseif (is_array($val)) { diff --git a/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php index 64d251d70..887f4d396 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php +++ b/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php @@ -36,13 +36,14 @@ class WebProcessor implements ProcessorInterface 'http_method' => 'REQUEST_METHOD', 'server' => 'SERVER_NAME', 'referrer' => 'HTTP_REFERER', + 'user_agent' => 'HTTP_USER_AGENT', ]; /** * @param array|\ArrayAccess|null $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data - * @param array|null $extraFields Field names and the related key inside $serverData to be added. If not provided it defaults to: url, ip, http_method, server, referrer + * @param array|array|null $extraFields Field names and the related key inside $serverData to be added (or just a list of field names to use the default configured $serverData mapping). If not provided it defaults to: [url, ip, http_method, server, referrer] + unique_id if present in server data */ - public function __construct($serverData = null, array $extraFields = null) + public function __construct($serverData = null, ?array $extraFields = null) { if (null === $serverData) { $this->serverData = &$_SERVER; @@ -52,20 +53,23 @@ public function __construct($serverData = null, array $extraFields = null) throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); } + $defaultEnabled = ['url', 'ip', 'http_method', 'server', 'referrer']; if (isset($this->serverData['UNIQUE_ID'])) { $this->extraFields['unique_id'] = 'UNIQUE_ID'; + $defaultEnabled[] = 'unique_id'; } - if (null !== $extraFields) { - if (isset($extraFields[0])) { - foreach (array_keys($this->extraFields) as $fieldName) { - if (!in_array($fieldName, $extraFields)) { - unset($this->extraFields[$fieldName]); - } + if (null === $extraFields) { + $extraFields = $defaultEnabled; + } + if (isset($extraFields[0])) { + foreach (array_keys($this->extraFields) as $fieldName) { + if (!in_array($fieldName, $extraFields)) { + unset($this->extraFields[$fieldName]); } - } else { - $this->extraFields = $extraFields; } + } else { + $this->extraFields = $extraFields; } } diff --git a/api/vendor/monolog/monolog/src/Monolog/Test/TestCase.php b/api/vendor/monolog/monolog/src/Monolog/Test/TestCase.php index 1824fde45..bc0b425ea 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Test/TestCase.php +++ b/api/vendor/monolog/monolog/src/Monolog/Test/TestCase.php @@ -22,9 +22,20 @@ * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger + * + * @internal feel free to reuse this to test your own handlers, this is marked internal to avoid issues with PHPStorm https://github.com/Seldaek/monolog/issues/1677 */ class TestCase extends \PHPUnit\Framework\TestCase { + public function tearDown(): void + { + parent::tearDown(); + + if (isset($this->handler)) { + unset($this->handler); + } + } + /** * @param mixed[] $context * diff --git a/api/vendor/monolog/monolog/src/Monolog/Utils.php b/api/vendor/monolog/monolog/src/Monolog/Utils.php index d3e7ad096..360c42199 100644 --- a/api/vendor/monolog/monolog/src/Monolog/Utils.php +++ b/api/vendor/monolog/monolog/src/Monolog/Utils.php @@ -211,7 +211,7 @@ private static function detectAndCleanUtf8(&$data): void $data = preg_replace_callback( '/[\x80-\xFF]+/', function ($m) { - return utf8_encode($m[0]); + return function_exists('mb_convert_encoding') ? mb_convert_encoding($m[0], 'UTF-8', 'ISO-8859-1') : utf8_encode($m[0]); }, $data ); @@ -260,4 +260,25 @@ public static function expandIniShorthandBytes($val) return $val; } + + /** + * @param array $record + */ + public static function getRecordMessageForException(array $record): string + { + $context = ''; + $extra = ''; + try { + if ($record['context']) { + $context = "\nContext: " . json_encode($record['context']); + } + if ($record['extra']) { + $extra = "\nExtra: " . json_encode($record['extra']); + } + } catch (\Throwable $e) { + // noop + } + + return "\nThe exception occurred while attempting to log: " . $record['message'] . $context . $extra; + } } diff --git a/api/vendor/mtdowling/jmespath.php/CHANGELOG.md b/api/vendor/mtdowling/jmespath.php/CHANGELOG.md index d97dffb01..f1dd6d5d4 100644 --- a/api/vendor/mtdowling/jmespath.php/CHANGELOG.md +++ b/api/vendor/mtdowling/jmespath.php/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## 2.7.0 - UPCOMING + +* Fixed flattening in arrays starting with null +* Drop support for HHVM and PHP earlier than 7.2.5. +* Add support for PHP 8.1, 8.2, and 8.3. + ## 2.6.0 - 2020-07-31 * Support for PHP 8.0. diff --git a/api/vendor/mtdowling/jmespath.php/README.rst b/api/vendor/mtdowling/jmespath.php/README.rst index b65ee4665..bef8db483 100644 --- a/api/vendor/mtdowling/jmespath.php/README.rst +++ b/api/vendor/mtdowling/jmespath.php/README.rst @@ -4,7 +4,7 @@ jmespath.php JMESPath (pronounced "jaymz path") allows you to declaratively specify how to extract elements from a JSON document. *jmespath.php* allows you to use -JMESPath in PHP applications with PHP data structures. It requires PHP 5.4 or +JMESPath in PHP applications with PHP data structures. It requires PHP 7.2.5 or greater and can be installed through `Composer `_ using the ``mtdowling/jmespath.php`` package. diff --git a/api/vendor/mtdowling/jmespath.php/composer.json b/api/vendor/mtdowling/jmespath.php/composer.json index 6b7006836..b4c37c1ca 100644 --- a/api/vendor/mtdowling/jmespath.php/composer.json +++ b/api/vendor/mtdowling/jmespath.php/composer.json @@ -1,39 +1,38 @@ { - "name": "mtdowling/jmespath.php", - "description": "Declaratively specify how to extract elements from a JSON document", - "keywords": ["json", "jsonpath"], - "license": "MIT", - - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - - "require": { - "php": "^5.4 || ^7.0 || ^8.0", - "symfony/polyfill-mbstring": "^1.17" - }, - - "require-dev": { - "composer/xdebug-handler": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^7.5.15" - }, - - "autoload": { - "psr-4": { - "JmesPath\\": "src/" + "name": "mtdowling/jmespath.php", + "description": "Declaratively specify how to extract elements from a JSON document", + "keywords": ["json", "jsonpath"], + "license": "MIT", + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" + }, + "require-dev": { + "composer/xdebug-handler": "^3.0.3", + "phpunit/phpunit": "^8.5.33" + }, + "autoload": { + "psr-4": { + "JmesPath\\": "src/" + }, + "files": ["src/JmesPath.php"] }, - "files": ["src/JmesPath.php"] - }, - - "bin": ["bin/jp.php"], - - "extra": { - "branch-alias": { - "dev-master": "2.6-dev" + "bin": ["bin/jp.php"], + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } } - } } diff --git a/api/vendor/mtdowling/jmespath.php/src/SyntaxErrorException.php b/api/vendor/mtdowling/jmespath.php/src/SyntaxErrorException.php index 68683d066..b9e376e12 100644 --- a/api/vendor/mtdowling/jmespath.php/src/SyntaxErrorException.php +++ b/api/vendor/mtdowling/jmespath.php/src/SyntaxErrorException.php @@ -16,7 +16,7 @@ public function __construct( array $token, $expression ) { - $message = "Syntax error at character {$token['pos']}\n" + $message = sprintf("Syntax error at character %d\n", max($token['pos'], 0)) . $expression . "\n" . str_repeat(' ', max($token['pos'], 0)) . "^\n"; $message .= !is_array($expectedTypesOrMessage) ? $expectedTypesOrMessage diff --git a/api/vendor/mtdowling/jmespath.php/src/TreeCompiler.php b/api/vendor/mtdowling/jmespath.php/src/TreeCompiler.php index fe27f41a4..b5f065894 100644 --- a/api/vendor/mtdowling/jmespath.php/src/TreeCompiler.php +++ b/api/vendor/mtdowling/jmespath.php/src/TreeCompiler.php @@ -305,7 +305,7 @@ private function visit_flatten(array $node) ->write('%s = [];', $merged) ->write('foreach ($value as %s) {', $val) ->indent() - ->write('if (is_array(%s) && isset(%s[0])) {', $val, $val) + ->write('if (is_array(%s) && array_key_exists(0, %s)) {', $val, $val) ->indent() ->write('%s = array_merge(%s, %s);', $merged, $merged, $val) ->outdent() diff --git a/api/vendor/mtdowling/jmespath.php/src/TreeInterpreter.php b/api/vendor/mtdowling/jmespath.php/src/TreeInterpreter.php index 934c50601..f7eea86dd 100644 --- a/api/vendor/mtdowling/jmespath.php/src/TreeInterpreter.php +++ b/api/vendor/mtdowling/jmespath.php/src/TreeInterpreter.php @@ -107,7 +107,7 @@ private function dispatch(array $node, $value) $merged = []; foreach ($value as $values) { // Only merge up arrays lists and not hashes - if (is_array($values) && isset($values[0])) { + if (is_array($values) && array_key_exists(0, $values)) { $merged = array_merge($merged, $values); } elseif ($values !== $skipElement) { $merged[] = $values; diff --git a/api/vendor/myclabs/php-enum/README.md b/api/vendor/myclabs/php-enum/README.md index 1e4d1ff42..681d55ee7 100644 --- a/api/vendor/myclabs/php-enum/README.md +++ b/api/vendor/myclabs/php-enum/README.md @@ -1,9 +1,9 @@ # PHP Enum implementation inspired from SplEnum -[![Build Status](https://travis-ci.org/myclabs/php-enum.png?branch=master)](https://travis-ci.org/myclabs/php-enum) +[![GitHub Actions][GA Image]][GA Link] [![Latest Stable Version](https://poser.pugx.org/myclabs/php-enum/version.png)](https://packagist.org/packages/myclabs/php-enum) [![Total Downloads](https://poser.pugx.org/myclabs/php-enum/downloads.png)](https://packagist.org/packages/myclabs/php-enum) -[![psalm](https://shepherd.dev/github/myclabs/php-enum/coverage.svg)](https://shepherd.dev/github/myclabs/php-enum) +[![Psalm Shepherd][Shepherd Image]][Shepherd Link] Maintenance for this project is [supported via Tidelift](https://tidelift.com/subscription/pkg/packagist-myclabs-php-enum?utm_source=packagist-myclabs-php-enum&utm_medium=referral&utm_campaign=readme). @@ -130,9 +130,65 @@ final class Action extends Enum } ``` +## Native enums and migration +Native enum arrived to PHP in version 8.1: https://www.php.net/enumerations +If your project is running PHP 8.1+ or your library has it as a minimum requirement you should use it instead of this library. + +When migrating from `myclabs/php-enum`, the effort should be small if the usage was in the recommended way: +- private constants +- final classes +- no method overridden + +Changes for migration: +- Class definition should be changed from +```php +/** + * @method static Action VIEW() + * @method static Action EDIT() + */ +final class Action extends Enum +{ + private const VIEW = 'view'; + private const EDIT = 'edit'; +} +``` + to +```php +enum Action: string +{ + case VIEW = 'view'; + case EDIT = 'edit'; +} +``` +All places where the class was used as a type will continue to work. + +Usages and the change needed: + +| Operation | myclabs/php-enum | native enum | +|----------------------------------------------------------------|----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Obtain an instance will change from | `$enumCase = Action::VIEW()` | `$enumCase = Action::VIEW` | +| Create an enum from a backed value | `$enumCase = new Action('view')` | `$enumCase = Action::from('view')` | +| Get the backed value of the enum instance | `$enumCase->getValue()` | `$enumCase->value` | +| Compare two enum instances | `$enumCase1 == $enumCase2`
or
`$enumCase1->equals($enumCase2)` | `$enumCase1 === $enumCase2` | +| Get the key/name of the enum instance | `$enumCase->getKey()` | `$enumCase->name` | +| Get a list of all the possible instances of the enum | `Action::values()` | `Action::cases()` | +| Get a map of possible instances of the enum mapped by name | `Action::values()` | `array_combine(array_map(fn($case) => $case->name, Action::cases()), Action::cases())`
or
`(new ReflectionEnum(Action::class))->getConstants()` | +| Get a list of all possible names of the enum | `Action::keys()` | `array_map(fn($case) => $case->name, Action::cases())` | +| Get a list of all possible backed values of the enum | `Action::toArray()` | `array_map(fn($case) => $case->value, Action::cases())` | +| Get a map of possible backed values of the enum mapped by name | `Action::toArray()` | `array_combine(array_map(fn($case) => $case->name, Action::cases()), array_map(fn($case) => $case->value, Action::cases()))`
or
`array_map(fn($case) => $case->value, (new ReflectionEnum(Action::class))->getConstants()))` | + ## Related projects +- [PHP 8.1+ native enum](https://www.php.net/enumerations) - [Doctrine enum mapping](https://github.com/acelaya/doctrine-enum-type) - [Symfony ParamConverter integration](https://github.com/Ex3v/MyCLabsEnumParamConverter) - [PHPStan integration](https://github.com/timeweb/phpstan-enum) -- [Yii2 enum mapping](https://github.com/KartaviK/yii2-enum) + + +[GA Image]: https://github.com/myclabs/php-enum/workflows/CI/badge.svg + +[GA Link]: https://github.com/myclabs/php-enum/actions?query=workflow%3A%22CI%22+branch%3Amaster + +[Shepherd Image]: https://shepherd.dev/github/myclabs/php-enum/coverage.svg + +[Shepherd Link]: https://shepherd.dev/github/myclabs/php-enum diff --git a/api/vendor/myclabs/php-enum/composer.json b/api/vendor/myclabs/php-enum/composer.json index 924f924bb..978cb1959 100644 --- a/api/vendor/myclabs/php-enum/composer.json +++ b/api/vendor/myclabs/php-enum/composer.json @@ -14,7 +14,10 @@ "autoload": { "psr-4": { "MyCLabs\\Enum\\": "src/" - } + }, + "classmap": [ + "stubs/Stringable.php" + ] }, "autoload-dev": { "psr-4": { diff --git a/api/vendor/myclabs/php-enum/psalm.xml b/api/vendor/myclabs/php-enum/psalm.xml deleted file mode 100644 index ff06b66ed..000000000 --- a/api/vendor/myclabs/php-enum/psalm.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/api/vendor/myclabs/php-enum/src/Enum.php b/api/vendor/myclabs/php-enum/src/Enum.php index 89064eba7..4c94cf6d3 100644 --- a/api/vendor/myclabs/php-enum/src/Enum.php +++ b/api/vendor/myclabs/php-enum/src/Enum.php @@ -19,7 +19,7 @@ * @psalm-immutable * @psalm-consistent-constructor */ -abstract class Enum implements \JsonSerializable +abstract class Enum implements \JsonSerializable, \Stringable { /** * Enum value diff --git a/api/vendor/myclabs/php-enum/stubs/Stringable.php b/api/vendor/myclabs/php-enum/stubs/Stringable.php new file mode 100644 index 000000000..4811af700 --- /dev/null +++ b/api/vendor/myclabs/php-enum/stubs/Stringable.php @@ -0,0 +1,11 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\MessageFormatter; + +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +if (!class_exists(LazyMessageFormatter::class, false)) { + abstract class LazyMessageFormatter implements MessageFormatterInterface + { + public function format(string $message, string $locale, array $parameters = []): string + { + return $this->formatter->format( + $message, + $this->transformLocale($locale), + $parameters + ); + } + } +} diff --git a/api/vendor/nesbot/carbon/lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php b/api/vendor/nesbot/carbon/lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php new file mode 100644 index 000000000..cbd890d5b --- /dev/null +++ b/api/vendor/nesbot/carbon/lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\MessageFormatter; + +use Symfony\Component\Translation\Formatter\ChoiceMessageFormatterInterface; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +if (!class_exists(LazyMessageFormatter::class, false)) { + abstract class LazyMessageFormatter implements MessageFormatterInterface, ChoiceMessageFormatterInterface + { + abstract protected function transformLocale(?string $locale): ?string; + + public function format($message, $locale, array $parameters = []) + { + return $this->formatter->format( + $message, + $this->transformLocale($locale), + $parameters + ); + } + + public function choiceFormat($message, $number, $locale, array $parameters = []) + { + return $this->formatter->choiceFormat($message, $number, $locale, $parameters); + } + } +} diff --git a/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php new file mode 100644 index 000000000..ba7cf6320 --- /dev/null +++ b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection; +use ReflectionMethod; + +if (!class_exists(AbstractReflectionMacro::class, false)) { + abstract class AbstractReflectionMacro extends AbstractMacro + { + /** + * {@inheritdoc} + */ + public function getReflection(): ?ReflectionMethod + { + if ($this->reflectionFunction instanceof Reflection\ReflectionMethod) { + return new Reflection\Adapter\ReflectionMethod($this->reflectionFunction); + } + + return $this->reflectionFunction instanceof ReflectionMethod + ? $this->reflectionFunction + : null; + } + } +} diff --git a/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php new file mode 100644 index 000000000..bd4c8e804 --- /dev/null +++ b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection; +use ReflectionMethod; + +if (!class_exists(AbstractReflectionMacro::class, false)) { + abstract class AbstractReflectionMacro extends AbstractMacro + { + /** + * {@inheritdoc} + */ + public function getReflection(): ?Reflection\Adapter\ReflectionMethod + { + if ($this->reflectionFunction instanceof Reflection\Adapter\ReflectionMethod) { + return $this->reflectionFunction; + } + + if ($this->reflectionFunction instanceof Reflection\ReflectionMethod) { + return new Reflection\Adapter\ReflectionMethod($this->reflectionFunction); + } + + return $this->reflectionFunction instanceof ReflectionMethod + ? new Reflection\Adapter\ReflectionMethod( + Reflection\ReflectionMethod::createFromName( + $this->reflectionFunction->getDeclaringClass()->getName(), + $this->reflectionFunction->getName() + ) + ) + : null; + } + } +} diff --git a/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php new file mode 100644 index 000000000..f615b3a64 --- /dev/null +++ b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +if (!class_exists(LazyMacro::class, false)) { + abstract class LazyMacro extends AbstractReflectionMacro + { + /** + * {@inheritdoc} + */ + public function getFileName(): ?string + { + $file = $this->reflectionFunction->getFileName(); + + return (($file ? realpath($file) : null) ?: $file) ?: null; + } + + /** + * {@inheritdoc} + */ + public function getStartLine(): ?int + { + return $this->reflectionFunction->getStartLine(); + } + + /** + * {@inheritdoc} + */ + public function getEndLine(): ?int + { + return $this->reflectionFunction->getEndLine(); + } + } +} diff --git a/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php new file mode 100644 index 000000000..bf64c1dd9 --- /dev/null +++ b/api/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +if (!class_exists(LazyMacro::class, false)) { + abstract class LazyMacro extends AbstractReflectionMacro + { + /** + * {@inheritdoc} + * + * @return string|false + */ + public function getFileName() + { + $file = $this->reflectionFunction->getFileName(); + + return (($file ? realpath($file) : null) ?: $file) ?: null; + } + + /** + * {@inheritdoc} + * + * @return int|false + */ + public function getStartLine() + { + return $this->reflectionFunction->getStartLine(); + } + + /** + * {@inheritdoc} + * + * @return int|false + */ + public function getEndLine() + { + return $this->reflectionFunction->getEndLine(); + } + } +} diff --git a/api/vendor/nesbot/carbon/readme.md b/api/vendor/nesbot/carbon/readme.md index 5d827219e..97ec8ce08 100644 --- a/api/vendor/nesbot/carbon/readme.md +++ b/api/vendor/nesbot/carbon/readme.md @@ -2,7 +2,7 @@ [![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon) [![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon) -[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://actions-badge.atrox.dev/briannesbitt/Carbon/goto) +[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://github.com/briannesbitt/Carbon/actions) [![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master) [![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme) @@ -119,21 +119,53 @@ This project exists thanks to all the people who contribute. Support this project by becoming a sponsor. Your logo will show up here with a link to your website. - - - - - - - - -[[Become a sponsor](https://opencollective.com/Carbon#sponsor)] + +Онлайн казино +CasinoHex Canada +Probukmacher +Casino-portugal.pt +Игровые автоматы +Slots City +inkedin +Онлайн казино України +OnlineCasinosSpelen +Best non Gamstop sites in the UK +Real Money Pokies +Non GamStop Bookies UK +Онлайн Казино Украины +SSSTwitter +Non-GamStop Bets UK +Chudovo +UK Casino Gap +NZ Casino Deps +NonStopCasino.org +Migliori Siti Non AAMS +UK NonGamStopCasinos +SnapTik +Proxidize +IG Downloader +Blastup +Organic Social Boost +AzuraCast +Triplebyte +GitHub Sponsors +Salesforce + + +[[Become a sponsor via OpenCollective](https://opencollective.com/Carbon#sponsor)] + + + + + + +[[Become a sponsor via GitHub](https://github.com/sponsors/kylekatarnls)] ### Backers Thank you to all our backers! 🙏 - + [[Become a backer](https://opencollective.com/Carbon#backer)] diff --git a/api/vendor/nesbot/carbon/sponsors.php b/api/vendor/nesbot/carbon/sponsors.php new file mode 100644 index 000000000..67b217161 --- /dev/null +++ b/api/vendor/nesbot/carbon/sponsors.php @@ -0,0 +1,129 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Carbon\CarbonImmutable; + +require_once __DIR__.'/vendor/autoload.php'; + +function getMaxHistoryMonthsByAmount($amount): int +{ + if ($amount >= 50) { + return 6; + } + + if ($amount >= 20) { + return 4; + } + + return 2; +} + +function getHtmlAttribute($rawValue): string +{ + return str_replace( + ['​', "\r"], + '', + trim(htmlspecialchars((string) $rawValue), "  \n\r\t\v\0"), + ); +} + +function getOpenCollectiveSponsors(): string +{ + $customSponsorImages = [ + // For consistency and equity among sponsors, as of now, we kindly ask our sponsors + // to provide an image having a width/height ratio between 1/1 and 2/1. + // By default, we'll show the member picture from OpenCollective, and will resize it if bigger + // int(OpenCollective.MemberId) => ImageURL + ]; + + $members = json_decode(file_get_contents('https://opencollective.com/carbon/members/all.json'), true); + + $list = array_filter($members, static function ($member): bool { + return ($member['lastTransactionAmount'] > 3 || $member['isActive']) && + $member['role'] === 'BACKER' && + $member['type'] !== 'USER' && + ( + $member['totalAmountDonated'] > 100 || + $member['lastTransactionAt'] > CarbonImmutable::now() + ->subMonthsNoOverflow(getMaxHistoryMonthsByAmount($member['lastTransactionAmount'])) + ->format('Y-m-d h:i') || + $member['isActive'] && $member['lastTransactionAmount'] >= 30 + ); + }); + + $list = array_map(static function (array $member): array { + $createdAt = CarbonImmutable::parse($member['createdAt']); + $lastTransactionAt = CarbonImmutable::parse($member['lastTransactionAt']); + + if ($createdAt->format('d H:i:s.u') > $lastTransactionAt->format('d H:i:s.u')) { + $createdAt = $createdAt + ->setDay($lastTransactionAt->day) + ->modify($lastTransactionAt->format('H:i:s.u')); + } + + $monthlyContribution = (float) ($member['totalAmountDonated'] / ceil($createdAt->floatDiffInMonths())); + + if ( + $lastTransactionAt->isAfter('last month') && + $member['lastTransactionAmount'] > $monthlyContribution + ) { + $monthlyContribution = (float) $member['lastTransactionAmount']; + } + + $yearlyContribution = (float) ($member['totalAmountDonated'] / max(1, $createdAt->floatDiffInYears())); + $status = null; + + if ($monthlyContribution > 29) { + $status = 'sponsor'; + } elseif ($monthlyContribution > 4.5 || $yearlyContribution > 29) { + $status = 'backer'; + } elseif ($member['totalAmountDonated'] > 0) { + $status = 'helper'; + } + + return array_merge($member, [ + 'star' => ($monthlyContribution > 98 || $yearlyContribution > 500), + 'status' => $status, + 'monthlyContribution' => $monthlyContribution, + 'yearlyContribution' => $yearlyContribution, + ]); + }, $list); + + usort($list, static function (array $a, array $b): int { + return ($b['monthlyContribution'] <=> $a['monthlyContribution']) + ?: ($b['totalAmountDonated'] <=> $a['totalAmountDonated']); + }); + + return implode('', array_map(static function (array $member) use ($customSponsorImages): string { + $href = htmlspecialchars($member['website'] ?? $member['profile']); + $src = $customSponsorImages[$member['MemberId'] ?? ''] ?? $member['image'] ?? (strtr($member['profile'], ['https://opencollective.com/' => 'https://images.opencollective.com/']).'/avatar/256.png'); + [$x, $y] = @getimagesize($src) ?: [0, 0]; + $validImage = ($x && $y); + $src = $validImage ? htmlspecialchars($src) : 'https://opencollective.com/static/images/default-guest-logo.svg'; + $height = $member['status'] === 'sponsor' ? 64 : 42; + $width = min($height * 2, $validImage ? round($x * $height / $y) : $height); + $href .= (strpos($href, '?') === false ? '?' : '&').'utm_source=opencollective&utm_medium=github&utm_campaign=Carbon'; + $title = getHtmlAttribute(($member['description'] ?? null) ?: $member['name']); + $alt = getHtmlAttribute($member['name']); + + return "\n".''. + ''.$alt.''. + ''; + }, $list))."\n"; +} + +file_put_contents('readme.md', preg_replace_callback( + '/()[\s\S]+()/', + static function (array $match): string { + return $match[1].getOpenCollectiveSponsors().$match[2]; + }, + file_get_contents('readme.md') +)); diff --git a/api/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php b/api/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php index 555e07a04..8b8fe089e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php +++ b/api/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php @@ -11,6 +11,7 @@ namespace Carbon; +use Carbon\MessageFormatter\MessageFormatterMapper; use Closure; use ReflectionException; use ReflectionFunction; @@ -51,7 +52,7 @@ abstract class AbstractTranslator extends Translation\Translator /** * List of locales aliases. * - * @var string[] + * @var array */ protected $aliases = [ 'me' => 'sr_Latn_ME', @@ -68,12 +69,13 @@ abstract class AbstractTranslator extends Translation\Translator public static function get($locale = null) { $locale = $locale ?: 'en'; + $key = static::class === Translator::class ? $locale : static::class.'|'.$locale; - if (!isset(static::$singletons[$locale])) { - static::$singletons[$locale] = new static($locale); + if (!isset(static::$singletons[$key])) { + static::$singletons[$key] = new static($locale); } - return static::$singletons[$locale]; + return static::$singletons[$key]; } public function __construct($locale, MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false) @@ -82,7 +84,7 @@ public function __construct($locale, MessageFormatterInterface $formatter = null $this->initializing = true; $this->directories = [__DIR__.'/Lang']; $this->addLoader('array', new ArrayLoader()); - parent::__construct($locale, $formatter, $cacheDir, $debug); + parent::__construct($locale, new MessageFormatterMapper($formatter), $cacheDir, $debug); $this->initializing = false; } @@ -219,8 +221,8 @@ protected function translate(?string $id, array $parameters = [], ?string $domai $catalogue = $this->getCatalogue($locale); $format = $this instanceof TranslatorStrongTypeInterface - ? $this->getFromCatalogue($catalogue, (string) $id, $domain) // @codeCoverageIgnore - : $this->getCatalogue($locale)->get((string) $id, $domain); + ? $this->getFromCatalogue($catalogue, (string) $id, $domain) + : $this->getCatalogue($locale)->get((string) $id, $domain); // @codeCoverageIgnore if ($format instanceof Closure) { // @codeCoverageIgnoreStart @@ -249,11 +251,7 @@ protected function translate(?string $id, array $parameters = [], ?string $domai */ protected function loadMessagesFromFile($locale) { - if (isset($this->messages[$locale])) { - return true; - } - - return $this->resetMessages($locale); + return isset($this->messages[$locale]) || $this->resetMessages($locale); } /** @@ -310,7 +308,7 @@ public function getMessages($locale = null) */ public function setLocale($locale) { - $locale = preg_replace_callback('/[-_]([a-z]{2,}|[0-9]{2,})/', function ($matches) { + $locale = preg_replace_callback('/[-_]([a-z]{2,}|\d{2,})/', function ($matches) { // _2-letters or YUE is a region, _3+-letters is a variant $upper = strtoupper($matches[1]); @@ -337,7 +335,7 @@ public function setLocale($locale) $completeLocaleChunks = preg_split('/[_.-]+/', $completeLocale); $getScore = function ($language) use ($completeLocaleChunks) { - return static::compareChunkLists($completeLocaleChunks, preg_split('/[_.-]+/', $language)); + return self::compareChunkLists($completeLocaleChunks, preg_split('/[_.-]+/', $language)); }; usort($locales, function ($first, $second) use ($getScore) { @@ -358,13 +356,13 @@ public function setLocale($locale) parent::setLocale($macroLocale); } - if ($this->loadMessagesFromFile($locale) || $this->initializing) { - parent::setLocale($locale); - - return true; + if (!$this->loadMessagesFromFile($locale) && !$this->initializing) { + return false; } - return false; + parent::setLocale($locale); + + return true; } /** diff --git a/api/vendor/nesbot/carbon/src/Carbon/Carbon.php b/api/vendor/nesbot/carbon/src/Carbon/Carbon.php index e327590e2..e32569ae3 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Carbon.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Carbon.php @@ -33,477 +33,477 @@ * @property int $second * @property int $micro * @property int $microsecond - * @property int|float|string $timestamp seconds since the Unix Epoch - * @property string $englishDayOfWeek the day of week in English - * @property string $shortEnglishDayOfWeek the abbreviated day of week in English - * @property string $englishMonth the month in English - * @property string $shortEnglishMonth the abbreviated month in English + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English * @property int $milliseconds * @property int $millisecond * @property int $milli - * @property int $week 1 through 53 - * @property int $isoWeek 1 through 53 - * @property int $weekYear year according to week format - * @property int $isoWeekYear year according to ISO week format - * @property int $dayOfYear 1 through 366 - * @property int $age does a diffInYears() with default parameters - * @property int $offset the timezone offset in seconds from UTC - * @property int $offsetMinutes the timezone offset in minutes from UTC - * @property int $offsetHours the timezone offset in hours from UTC - * @property CarbonTimeZone $timezone the current timezone - * @property CarbonTimeZone $tz alias of $timezone - * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) - * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) - * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday - * @property-read int $daysInMonth number of days in the given month - * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) - * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) - * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName - * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language - * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language - * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language - * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language - * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language - * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language - * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language - * @property-read int $noZeroHour current hour from 1 to 24 - * @property-read int $weeksInYear 51 through 53 - * @property-read int $isoWeeksInYear 51 through 53 - * @property-read int $weekOfMonth 1 through 5 - * @property-read int $weekNumberInMonth 1 through 5 - * @property-read int $firstWeekDay 0 through 6 - * @property-read int $lastWeekDay 0 through 6 - * @property-read int $daysInYear 365 or 366 - * @property-read int $quarter the quarter of this instance, 1 - 4 - * @property-read int $decade the decade of this instance - * @property-read int $century the century of this instance - * @property-read int $millennium the millennium of this instance - * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise - * @property-read bool $local checks if the timezone is local, true if local, false otherwise - * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise - * @property-read string $timezoneName the current timezone name - * @property-read string $tzName alias of $timezoneName - * @property-read string $locale locale of the current instance + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance * - * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) - * @method bool isLocal() Check if the current instance has non-UTC timezone. - * @method bool isValid() Check if the current instance is a valid date. - * @method bool isDST() Check if the current instance is in a daylight saving time. - * @method bool isSunday() Checks if the instance day is sunday. - * @method bool isMonday() Checks if the instance day is monday. - * @method bool isTuesday() Checks if the instance day is tuesday. - * @method bool isWednesday() Checks if the instance day is wednesday. - * @method bool isThursday() Checks if the instance day is thursday. - * @method bool isFriday() Checks if the instance day is friday. - * @method bool isSaturday() Checks if the instance day is saturday. - * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. - * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. - * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. - * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. - * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. - * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. - * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. - * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. - * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. - * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. - * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. - * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. - * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. - * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. - * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. - * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. - * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. - * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. - * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. - * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. - * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. - * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. - * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. - * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. - * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. - * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. - * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. - * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. - * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. - * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. - * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. - * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. - * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. - * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. - * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. - * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. - * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. - * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. - * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. - * @method $this years(int $value) Set current instance year to the given value. - * @method $this year(int $value) Set current instance year to the given value. - * @method $this setYears(int $value) Set current instance year to the given value. - * @method $this setYear(int $value) Set current instance year to the given value. - * @method $this months(int $value) Set current instance month to the given value. - * @method $this month(int $value) Set current instance month to the given value. - * @method $this setMonths(int $value) Set current instance month to the given value. - * @method $this setMonth(int $value) Set current instance month to the given value. - * @method $this days(int $value) Set current instance day to the given value. - * @method $this day(int $value) Set current instance day to the given value. - * @method $this setDays(int $value) Set current instance day to the given value. - * @method $this setDay(int $value) Set current instance day to the given value. - * @method $this hours(int $value) Set current instance hour to the given value. - * @method $this hour(int $value) Set current instance hour to the given value. - * @method $this setHours(int $value) Set current instance hour to the given value. - * @method $this setHour(int $value) Set current instance hour to the given value. - * @method $this minutes(int $value) Set current instance minute to the given value. - * @method $this minute(int $value) Set current instance minute to the given value. - * @method $this setMinutes(int $value) Set current instance minute to the given value. - * @method $this setMinute(int $value) Set current instance minute to the given value. - * @method $this seconds(int $value) Set current instance second to the given value. - * @method $this second(int $value) Set current instance second to the given value. - * @method $this setSeconds(int $value) Set current instance second to the given value. - * @method $this setSecond(int $value) Set current instance second to the given value. - * @method $this millis(int $value) Set current instance millisecond to the given value. - * @method $this milli(int $value) Set current instance millisecond to the given value. - * @method $this setMillis(int $value) Set current instance millisecond to the given value. - * @method $this setMilli(int $value) Set current instance millisecond to the given value. - * @method $this milliseconds(int $value) Set current instance millisecond to the given value. - * @method $this millisecond(int $value) Set current instance millisecond to the given value. - * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value. - * @method $this setMillisecond(int $value) Set current instance millisecond to the given value. - * @method $this micros(int $value) Set current instance microsecond to the given value. - * @method $this micro(int $value) Set current instance microsecond to the given value. - * @method $this setMicros(int $value) Set current instance microsecond to the given value. - * @method $this setMicro(int $value) Set current instance microsecond to the given value. - * @method $this microseconds(int $value) Set current instance microsecond to the given value. - * @method $this microsecond(int $value) Set current instance microsecond to the given value. - * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value. - * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value. - * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). - * @method $this addYear() Add one year to the instance (using date interval). - * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). - * @method $this subYear() Sub one year to the instance (using date interval). - * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. - * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. - * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). - * @method $this addMonth() Add one month to the instance (using date interval). - * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). - * @method $this subMonth() Sub one month to the instance (using date interval). - * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. - * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. - * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). - * @method $this addDay() Add one day to the instance (using date interval). - * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). - * @method $this subDay() Sub one day to the instance (using date interval). - * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). - * @method $this addHour() Add one hour to the instance (using date interval). - * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). - * @method $this subHour() Sub one hour to the instance (using date interval). - * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). - * @method $this addMinute() Add one minute to the instance (using date interval). - * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). - * @method $this subMinute() Sub one minute to the instance (using date interval). - * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). - * @method $this addSecond() Add one second to the instance (using date interval). - * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). - * @method $this subSecond() Sub one second to the instance (using date interval). - * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). - * @method $this addMilli() Add one millisecond to the instance (using date interval). - * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). - * @method $this subMilli() Sub one millisecond to the instance (using date interval). - * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). - * @method $this addMillisecond() Add one millisecond to the instance (using date interval). - * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). - * @method $this subMillisecond() Sub one millisecond to the instance (using date interval). - * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). - * @method $this addMicro() Add one microsecond to the instance (using date interval). - * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). - * @method $this subMicro() Sub one microsecond to the instance (using date interval). - * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). - * @method $this addMicrosecond() Add one microsecond to the instance (using date interval). - * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). - * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval). - * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). - * @method $this addMillennium() Add one millennium to the instance (using date interval). - * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). - * @method $this subMillennium() Sub one millennium to the instance (using date interval). - * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. - * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. - * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). - * @method $this addCentury() Add one century to the instance (using date interval). - * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). - * @method $this subCentury() Sub one century to the instance (using date interval). - * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. - * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. - * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). - * @method $this addDecade() Add one decade to the instance (using date interval). - * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). - * @method $this subDecade() Sub one decade to the instance (using date interval). - * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. - * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. - * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). - * @method $this addQuarter() Add one quarter to the instance (using date interval). - * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). - * @method $this subQuarter() Sub one quarter to the instance (using date interval). - * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. - * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. - * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). - * @method $this addWeek() Add one week to the instance (using date interval). - * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). - * @method $this subWeek() Sub one week to the instance (using date interval). - * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). - * @method $this addWeekday() Add one weekday to the instance (using date interval). - * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). - * @method $this subWeekday() Sub one weekday to the instance (using date interval). - * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMicro() Add one microsecond to the instance (using timestamp). - * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp). - * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. - * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp). - * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp). - * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. - * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMilli() Add one millisecond to the instance (using timestamp). - * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp). - * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. - * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp). - * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp). - * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. - * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). - * @method $this addRealSecond() Add one second to the instance (using timestamp). - * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). - * @method $this subRealSecond() Sub one second to the instance (using timestamp). - * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. - * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMinute() Add one minute to the instance (using timestamp). - * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMinute() Sub one minute to the instance (using timestamp). - * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. - * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). - * @method $this addRealHour() Add one hour to the instance (using timestamp). - * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). - * @method $this subRealHour() Sub one hour to the instance (using timestamp). - * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. - * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). - * @method $this addRealDay() Add one day to the instance (using timestamp). - * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). - * @method $this subRealDay() Sub one day to the instance (using timestamp). - * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. - * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). - * @method $this addRealWeek() Add one week to the instance (using timestamp). - * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). - * @method $this subRealWeek() Sub one week to the instance (using timestamp). - * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. - * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMonth() Add one month to the instance (using timestamp). - * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMonth() Sub one month to the instance (using timestamp). - * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. - * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). - * @method $this addRealQuarter() Add one quarter to the instance (using timestamp). - * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). - * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp). - * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. - * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). - * @method $this addRealYear() Add one year to the instance (using timestamp). - * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). - * @method $this subRealYear() Sub one year to the instance (using timestamp). - * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. - * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). - * @method $this addRealDecade() Add one decade to the instance (using timestamp). - * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). - * @method $this subRealDecade() Sub one decade to the instance (using timestamp). - * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. - * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). - * @method $this addRealCentury() Add one century to the instance (using timestamp). - * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). - * @method $this subRealCentury() Sub one century to the instance (using timestamp). - * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. - * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). - * @method $this addRealMillennium() Add one millennium to the instance (using timestamp). - * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). - * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp). - * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. - * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. - * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. - * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. - * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. - * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. - * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. - * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. - * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. - * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. - * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. - * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. - * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. - * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. - * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. - * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. - * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. - * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. - * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. - * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. - * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. - * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. - * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. - * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. - * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. - * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. - * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. - * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. - * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. - * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. - * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. - * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. - * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. - * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. - * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. - * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. - * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. - * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. - * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. - * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. - * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. - * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. - * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. - * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. - * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. - * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. - * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. - * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. - * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. - * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. - * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. - * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. - * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. - * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. - * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. - * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. - * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. - * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. - * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. - * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. - * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. - * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. - * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. - * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. - * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. - * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. - * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. - * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. - * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. - * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. - * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. - * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. - * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. - * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method static Carbon|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new Carbon object according to the specified format. - * @method static Carbon __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method $this years(int $value) Set current instance year to the given value. + * @method $this year(int $value) Set current instance year to the given value. + * @method $this setYears(int $value) Set current instance year to the given value. + * @method $this setYear(int $value) Set current instance year to the given value. + * @method $this months(int $value) Set current instance month to the given value. + * @method $this month(int $value) Set current instance month to the given value. + * @method $this setMonths(int $value) Set current instance month to the given value. + * @method $this setMonth(int $value) Set current instance month to the given value. + * @method $this days(int $value) Set current instance day to the given value. + * @method $this day(int $value) Set current instance day to the given value. + * @method $this setDays(int $value) Set current instance day to the given value. + * @method $this setDay(int $value) Set current instance day to the given value. + * @method $this hours(int $value) Set current instance hour to the given value. + * @method $this hour(int $value) Set current instance hour to the given value. + * @method $this setHours(int $value) Set current instance hour to the given value. + * @method $this setHour(int $value) Set current instance hour to the given value. + * @method $this minutes(int $value) Set current instance minute to the given value. + * @method $this minute(int $value) Set current instance minute to the given value. + * @method $this setMinutes(int $value) Set current instance minute to the given value. + * @method $this setMinute(int $value) Set current instance minute to the given value. + * @method $this seconds(int $value) Set current instance second to the given value. + * @method $this second(int $value) Set current instance second to the given value. + * @method $this setSeconds(int $value) Set current instance second to the given value. + * @method $this setSecond(int $value) Set current instance second to the given value. + * @method $this millis(int $value) Set current instance millisecond to the given value. + * @method $this milli(int $value) Set current instance millisecond to the given value. + * @method $this setMillis(int $value) Set current instance millisecond to the given value. + * @method $this setMilli(int $value) Set current instance millisecond to the given value. + * @method $this milliseconds(int $value) Set current instance millisecond to the given value. + * @method $this millisecond(int $value) Set current instance millisecond to the given value. + * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method $this setMillisecond(int $value) Set current instance millisecond to the given value. + * @method $this micros(int $value) Set current instance microsecond to the given value. + * @method $this micro(int $value) Set current instance microsecond to the given value. + * @method $this setMicros(int $value) Set current instance microsecond to the given value. + * @method $this setMicro(int $value) Set current instance microsecond to the given value. + * @method $this microseconds(int $value) Set current instance microsecond to the given value. + * @method $this microsecond(int $value) Set current instance microsecond to the given value. + * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method $this addYear() Add one year to the instance (using date interval). + * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method $this subYear() Sub one year to the instance (using date interval). + * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method $this addMonth() Add one month to the instance (using date interval). + * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method $this subMonth() Sub one month to the instance (using date interval). + * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method $this addDay() Add one day to the instance (using date interval). + * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method $this subDay() Sub one day to the instance (using date interval). + * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method $this addHour() Add one hour to the instance (using date interval). + * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method $this subHour() Sub one hour to the instance (using date interval). + * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method $this addMinute() Add one minute to the instance (using date interval). + * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method $this subMinute() Sub one minute to the instance (using date interval). + * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method $this addSecond() Add one second to the instance (using date interval). + * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method $this subSecond() Sub one second to the instance (using date interval). + * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMilli() Add one millisecond to the instance (using date interval). + * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMilli() Sub one millisecond to the instance (using date interval). + * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMillisecond() Add one millisecond to the instance (using date interval). + * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMillisecond() Sub one millisecond to the instance (using date interval). + * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicro() Add one microsecond to the instance (using date interval). + * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicro() Sub one microsecond to the instance (using date interval). + * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicrosecond() Add one microsecond to the instance (using date interval). + * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method $this addMillennium() Add one millennium to the instance (using date interval). + * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method $this subMillennium() Sub one millennium to the instance (using date interval). + * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method $this addCentury() Add one century to the instance (using date interval). + * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method $this subCentury() Sub one century to the instance (using date interval). + * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method $this addDecade() Add one decade to the instance (using date interval). + * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method $this subDecade() Sub one decade to the instance (using date interval). + * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method $this addQuarter() Add one quarter to the instance (using date interval). + * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method $this subQuarter() Sub one quarter to the instance (using date interval). + * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method $this addWeek() Add one week to the instance (using date interval). + * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method $this subWeek() Sub one week to the instance (using date interval). + * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method $this addWeekday() Add one weekday to the instance (using date interval). + * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method $this subWeekday() Sub one weekday to the instance (using date interval). + * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicro() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMilli() Add one millisecond to the instance (using timestamp). + * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealSecond() Add one second to the instance (using timestamp). + * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMinute() Add one minute to the instance (using timestamp). + * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method $this addRealHour() Add one hour to the instance (using timestamp). + * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method $this subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDay() Add one day to the instance (using timestamp). + * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method $this addRealWeek() Add one week to the instance (using timestamp). + * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method $this subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMonth() Add one month to the instance (using timestamp). + * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method $this addRealQuarter() Add one quarter to the instance (using timestamp). + * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method $this addRealYear() Add one year to the instance (using timestamp). + * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method $this subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDecade() Add one decade to the instance (using timestamp). + * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method $this addRealCentury() Add one century to the instance (using timestamp). + * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method $this subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillennium() Add one millennium to the instance (using timestamp). + * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static static|false createFromFormat(string $format, string $time, DateTimeZone|string|false|null $timezone = null) Parse a string into a new Carbon object according to the specified format. + * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php * * */ diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php index 6d1194ee7..4c9c1cfef 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php +++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php @@ -24,486 +24,486 @@ * * * - * @property int $year - * @property int $yearIso - * @property int $month - * @property int $day - * @property int $hour - * @property int $minute - * @property int $second - * @property int $micro - * @property int $microsecond - * @property int|float|string $timestamp seconds since the Unix Epoch - * @property string $englishDayOfWeek the day of week in English - * @property string $shortEnglishDayOfWeek the abbreviated day of week in English - * @property string $englishMonth the month in English - * @property string $shortEnglishMonth the abbreviated month in English - * @property int $milliseconds - * @property int $millisecond - * @property int $milli - * @property int $week 1 through 53 - * @property int $isoWeek 1 through 53 - * @property int $weekYear year according to week format - * @property int $isoWeekYear year according to ISO week format - * @property int $dayOfYear 1 through 366 - * @property int $age does a diffInYears() with default parameters - * @property int $offset the timezone offset in seconds from UTC - * @property int $offsetMinutes the timezone offset in minutes from UTC - * @property int $offsetHours the timezone offset in hours from UTC - * @property CarbonTimeZone $timezone the current timezone - * @property CarbonTimeZone $tz alias of $timezone - * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) - * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) - * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday - * @property-read int $daysInMonth number of days in the given month - * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) - * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) - * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name - * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName - * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language - * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language - * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language - * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language - * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language - * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language - * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language - * @property-read int $noZeroHour current hour from 1 to 24 - * @property-read int $weeksInYear 51 through 53 - * @property-read int $isoWeeksInYear 51 through 53 - * @property-read int $weekOfMonth 1 through 5 - * @property-read int $weekNumberInMonth 1 through 5 - * @property-read int $firstWeekDay 0 through 6 - * @property-read int $lastWeekDay 0 through 6 - * @property-read int $daysInYear 365 or 366 - * @property-read int $quarter the quarter of this instance, 1 - 4 - * @property-read int $decade the decade of this instance - * @property-read int $century the century of this instance - * @property-read int $millennium the millennium of this instance - * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise - * @property-read bool $local checks if the timezone is local, true if local, false otherwise - * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise - * @property-read string $timezoneName the current timezone name - * @property-read string $tzName alias of $timezoneName - * @property-read string $locale locale of the current instance + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance * - * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) - * @method bool isLocal() Check if the current instance has non-UTC timezone. - * @method bool isValid() Check if the current instance is a valid date. - * @method bool isDST() Check if the current instance is in a daylight saving time. - * @method bool isSunday() Checks if the instance day is sunday. - * @method bool isMonday() Checks if the instance day is monday. - * @method bool isTuesday() Checks if the instance day is tuesday. - * @method bool isWednesday() Checks if the instance day is wednesday. - * @method bool isThursday() Checks if the instance day is thursday. - * @method bool isFriday() Checks if the instance day is friday. - * @method bool isSaturday() Checks if the instance day is saturday. - * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. - * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. - * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. - * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. - * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. - * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. - * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. - * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. - * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. - * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. - * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. - * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. - * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. - * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. - * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. - * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. - * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. - * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. - * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. - * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. - * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. - * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. - * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. - * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. - * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. - * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. - * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. - * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. - * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. - * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. - * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. - * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. - * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. - * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. - * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. - * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. - * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). - * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. - * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. - * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. - * @method CarbonImmutable years(int $value) Set current instance year to the given value. - * @method CarbonImmutable year(int $value) Set current instance year to the given value. - * @method CarbonImmutable setYears(int $value) Set current instance year to the given value. - * @method CarbonImmutable setYear(int $value) Set current instance year to the given value. - * @method CarbonImmutable months(int $value) Set current instance month to the given value. - * @method CarbonImmutable month(int $value) Set current instance month to the given value. - * @method CarbonImmutable setMonths(int $value) Set current instance month to the given value. - * @method CarbonImmutable setMonth(int $value) Set current instance month to the given value. - * @method CarbonImmutable days(int $value) Set current instance day to the given value. - * @method CarbonImmutable day(int $value) Set current instance day to the given value. - * @method CarbonImmutable setDays(int $value) Set current instance day to the given value. - * @method CarbonImmutable setDay(int $value) Set current instance day to the given value. - * @method CarbonImmutable hours(int $value) Set current instance hour to the given value. - * @method CarbonImmutable hour(int $value) Set current instance hour to the given value. - * @method CarbonImmutable setHours(int $value) Set current instance hour to the given value. - * @method CarbonImmutable setHour(int $value) Set current instance hour to the given value. - * @method CarbonImmutable minutes(int $value) Set current instance minute to the given value. - * @method CarbonImmutable minute(int $value) Set current instance minute to the given value. - * @method CarbonImmutable setMinutes(int $value) Set current instance minute to the given value. - * @method CarbonImmutable setMinute(int $value) Set current instance minute to the given value. - * @method CarbonImmutable seconds(int $value) Set current instance second to the given value. - * @method CarbonImmutable second(int $value) Set current instance second to the given value. - * @method CarbonImmutable setSeconds(int $value) Set current instance second to the given value. - * @method CarbonImmutable setSecond(int $value) Set current instance second to the given value. - * @method CarbonImmutable millis(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable milli(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable setMillis(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable setMilli(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable milliseconds(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable millisecond(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable setMilliseconds(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable setMillisecond(int $value) Set current instance millisecond to the given value. - * @method CarbonImmutable micros(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable micro(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable setMicros(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable setMicro(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable microseconds(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable microsecond(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable setMicroseconds(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable setMicrosecond(int $value) Set current instance microsecond to the given value. - * @method CarbonImmutable addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addYear() Add one year to the instance (using date interval). - * @method CarbonImmutable subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subYear() Sub one year to the instance (using date interval). - * @method CarbonImmutable addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMonth() Add one month to the instance (using date interval). - * @method CarbonImmutable subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMonth() Sub one month to the instance (using date interval). - * @method CarbonImmutable addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addDay() Add one day to the instance (using date interval). - * @method CarbonImmutable subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subDay() Sub one day to the instance (using date interval). - * @method CarbonImmutable addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addHour() Add one hour to the instance (using date interval). - * @method CarbonImmutable subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subHour() Sub one hour to the instance (using date interval). - * @method CarbonImmutable addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMinute() Add one minute to the instance (using date interval). - * @method CarbonImmutable subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMinute() Sub one minute to the instance (using date interval). - * @method CarbonImmutable addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addSecond() Add one second to the instance (using date interval). - * @method CarbonImmutable subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subSecond() Sub one second to the instance (using date interval). - * @method CarbonImmutable addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMilli() Add one millisecond to the instance (using date interval). - * @method CarbonImmutable subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMilli() Sub one millisecond to the instance (using date interval). - * @method CarbonImmutable addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMillisecond() Add one millisecond to the instance (using date interval). - * @method CarbonImmutable subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMillisecond() Sub one millisecond to the instance (using date interval). - * @method CarbonImmutable addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMicro() Add one microsecond to the instance (using date interval). - * @method CarbonImmutable subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMicro() Sub one microsecond to the instance (using date interval). - * @method CarbonImmutable addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMicrosecond() Add one microsecond to the instance (using date interval). - * @method CarbonImmutable subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMicrosecond() Sub one microsecond to the instance (using date interval). - * @method CarbonImmutable addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addMillennium() Add one millennium to the instance (using date interval). - * @method CarbonImmutable subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subMillennium() Sub one millennium to the instance (using date interval). - * @method CarbonImmutable addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addCentury() Add one century to the instance (using date interval). - * @method CarbonImmutable subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subCentury() Sub one century to the instance (using date interval). - * @method CarbonImmutable addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addDecade() Add one decade to the instance (using date interval). - * @method CarbonImmutable subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subDecade() Sub one decade to the instance (using date interval). - * @method CarbonImmutable addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addQuarter() Add one quarter to the instance (using date interval). - * @method CarbonImmutable subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subQuarter() Sub one quarter to the instance (using date interval). - * @method CarbonImmutable addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. - * @method CarbonImmutable addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. - * @method CarbonImmutable addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addWeek() Add one week to the instance (using date interval). - * @method CarbonImmutable subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subWeek() Sub one week to the instance (using date interval). - * @method CarbonImmutable addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable addWeekday() Add one weekday to the instance (using date interval). - * @method CarbonImmutable subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). - * @method CarbonImmutable subWeekday() Sub one weekday to the instance (using date interval). - * @method CarbonImmutable addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMicro() Add one microsecond to the instance (using timestamp). - * @method CarbonImmutable subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMicro() Sub one microsecond to the instance (using timestamp). - * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. - * @method CarbonImmutable addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMicrosecond() Add one microsecond to the instance (using timestamp). - * @method CarbonImmutable subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMicrosecond() Sub one microsecond to the instance (using timestamp). - * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. - * @method CarbonImmutable addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMilli() Add one millisecond to the instance (using timestamp). - * @method CarbonImmutable subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMilli() Sub one millisecond to the instance (using timestamp). - * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. - * @method CarbonImmutable addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMillisecond() Add one millisecond to the instance (using timestamp). - * @method CarbonImmutable subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMillisecond() Sub one millisecond to the instance (using timestamp). - * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. - * @method CarbonImmutable addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealSecond() Add one second to the instance (using timestamp). - * @method CarbonImmutable subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealSecond() Sub one second to the instance (using timestamp). - * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. - * @method CarbonImmutable addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMinute() Add one minute to the instance (using timestamp). - * @method CarbonImmutable subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMinute() Sub one minute to the instance (using timestamp). - * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. - * @method CarbonImmutable addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealHour() Add one hour to the instance (using timestamp). - * @method CarbonImmutable subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealHour() Sub one hour to the instance (using timestamp). - * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. - * @method CarbonImmutable addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealDay() Add one day to the instance (using timestamp). - * @method CarbonImmutable subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealDay() Sub one day to the instance (using timestamp). - * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. - * @method CarbonImmutable addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealWeek() Add one week to the instance (using timestamp). - * @method CarbonImmutable subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealWeek() Sub one week to the instance (using timestamp). - * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. - * @method CarbonImmutable addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMonth() Add one month to the instance (using timestamp). - * @method CarbonImmutable subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMonth() Sub one month to the instance (using timestamp). - * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. - * @method CarbonImmutable addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealQuarter() Add one quarter to the instance (using timestamp). - * @method CarbonImmutable subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealQuarter() Sub one quarter to the instance (using timestamp). - * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. - * @method CarbonImmutable addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealYear() Add one year to the instance (using timestamp). - * @method CarbonImmutable subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealYear() Sub one year to the instance (using timestamp). - * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. - * @method CarbonImmutable addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealDecade() Add one decade to the instance (using timestamp). - * @method CarbonImmutable subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealDecade() Sub one decade to the instance (using timestamp). - * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. - * @method CarbonImmutable addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealCentury() Add one century to the instance (using timestamp). - * @method CarbonImmutable subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealCentury() Sub one century to the instance (using timestamp). - * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. - * @method CarbonImmutable addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable addRealMillennium() Add one millennium to the instance (using timestamp). - * @method CarbonImmutable subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). - * @method CarbonImmutable subRealMillennium() Sub one millennium to the instance (using timestamp). - * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. - * @method CarbonImmutable roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. - * @method CarbonImmutable roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. - * @method CarbonImmutable floorYear(float $precision = 1) Truncate the current instance year with given precision. - * @method CarbonImmutable floorYears(float $precision = 1) Truncate the current instance year with given precision. - * @method CarbonImmutable ceilYear(float $precision = 1) Ceil the current instance year with given precision. - * @method CarbonImmutable ceilYears(float $precision = 1) Ceil the current instance year with given precision. - * @method CarbonImmutable roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. - * @method CarbonImmutable roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. - * @method CarbonImmutable floorMonth(float $precision = 1) Truncate the current instance month with given precision. - * @method CarbonImmutable floorMonths(float $precision = 1) Truncate the current instance month with given precision. - * @method CarbonImmutable ceilMonth(float $precision = 1) Ceil the current instance month with given precision. - * @method CarbonImmutable ceilMonths(float $precision = 1) Ceil the current instance month with given precision. - * @method CarbonImmutable roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. - * @method CarbonImmutable roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. - * @method CarbonImmutable floorDay(float $precision = 1) Truncate the current instance day with given precision. - * @method CarbonImmutable floorDays(float $precision = 1) Truncate the current instance day with given precision. - * @method CarbonImmutable ceilDay(float $precision = 1) Ceil the current instance day with given precision. - * @method CarbonImmutable ceilDays(float $precision = 1) Ceil the current instance day with given precision. - * @method CarbonImmutable roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. - * @method CarbonImmutable roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. - * @method CarbonImmutable floorHour(float $precision = 1) Truncate the current instance hour with given precision. - * @method CarbonImmutable floorHours(float $precision = 1) Truncate the current instance hour with given precision. - * @method CarbonImmutable ceilHour(float $precision = 1) Ceil the current instance hour with given precision. - * @method CarbonImmutable ceilHours(float $precision = 1) Ceil the current instance hour with given precision. - * @method CarbonImmutable roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. - * @method CarbonImmutable roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. - * @method CarbonImmutable floorMinute(float $precision = 1) Truncate the current instance minute with given precision. - * @method CarbonImmutable floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. - * @method CarbonImmutable ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. - * @method CarbonImmutable ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. - * @method CarbonImmutable roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. - * @method CarbonImmutable roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. - * @method CarbonImmutable floorSecond(float $precision = 1) Truncate the current instance second with given precision. - * @method CarbonImmutable floorSeconds(float $precision = 1) Truncate the current instance second with given precision. - * @method CarbonImmutable ceilSecond(float $precision = 1) Ceil the current instance second with given precision. - * @method CarbonImmutable ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. - * @method CarbonImmutable roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. - * @method CarbonImmutable roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. - * @method CarbonImmutable floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. - * @method CarbonImmutable floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. - * @method CarbonImmutable ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. - * @method CarbonImmutable ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. - * @method CarbonImmutable roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. - * @method CarbonImmutable roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. - * @method CarbonImmutable floorCentury(float $precision = 1) Truncate the current instance century with given precision. - * @method CarbonImmutable floorCenturies(float $precision = 1) Truncate the current instance century with given precision. - * @method CarbonImmutable ceilCentury(float $precision = 1) Ceil the current instance century with given precision. - * @method CarbonImmutable ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. - * @method CarbonImmutable roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. - * @method CarbonImmutable roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. - * @method CarbonImmutable floorDecade(float $precision = 1) Truncate the current instance decade with given precision. - * @method CarbonImmutable floorDecades(float $precision = 1) Truncate the current instance decade with given precision. - * @method CarbonImmutable ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. - * @method CarbonImmutable ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. - * @method CarbonImmutable roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. - * @method CarbonImmutable roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. - * @method CarbonImmutable floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. - * @method CarbonImmutable floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. - * @method CarbonImmutable ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. - * @method CarbonImmutable ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. - * @method CarbonImmutable roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. - * @method CarbonImmutable roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. - * @method CarbonImmutable floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. - * @method CarbonImmutable floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. - * @method CarbonImmutable ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. - * @method CarbonImmutable ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. - * @method CarbonImmutable roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. - * @method CarbonImmutable roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. - * @method CarbonImmutable floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. - * @method CarbonImmutable floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. - * @method CarbonImmutable ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. - * @method CarbonImmutable ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. - * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) - * @method static CarbonImmutable|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format. - * @method static CarbonImmutable __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonImmutable years(int $value) Set current instance year to the given value. + * @method CarbonImmutable year(int $value) Set current instance year to the given value. + * @method CarbonImmutable setYears(int $value) Set current instance year to the given value. + * @method CarbonImmutable setYear(int $value) Set current instance year to the given value. + * @method CarbonImmutable months(int $value) Set current instance month to the given value. + * @method CarbonImmutable month(int $value) Set current instance month to the given value. + * @method CarbonImmutable setMonths(int $value) Set current instance month to the given value. + * @method CarbonImmutable setMonth(int $value) Set current instance month to the given value. + * @method CarbonImmutable days(int $value) Set current instance day to the given value. + * @method CarbonImmutable day(int $value) Set current instance day to the given value. + * @method CarbonImmutable setDays(int $value) Set current instance day to the given value. + * @method CarbonImmutable setDay(int $value) Set current instance day to the given value. + * @method CarbonImmutable hours(int $value) Set current instance hour to the given value. + * @method CarbonImmutable hour(int $value) Set current instance hour to the given value. + * @method CarbonImmutable setHours(int $value) Set current instance hour to the given value. + * @method CarbonImmutable setHour(int $value) Set current instance hour to the given value. + * @method CarbonImmutable minutes(int $value) Set current instance minute to the given value. + * @method CarbonImmutable minute(int $value) Set current instance minute to the given value. + * @method CarbonImmutable setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonImmutable setMinute(int $value) Set current instance minute to the given value. + * @method CarbonImmutable seconds(int $value) Set current instance second to the given value. + * @method CarbonImmutable second(int $value) Set current instance second to the given value. + * @method CarbonImmutable setSeconds(int $value) Set current instance second to the given value. + * @method CarbonImmutable setSecond(int $value) Set current instance second to the given value. + * @method CarbonImmutable millis(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable milli(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable micros(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable micro(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addYear() Add one year to the instance (using date interval). + * @method CarbonImmutable subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subYear() Sub one year to the instance (using date interval). + * @method CarbonImmutable addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMonth() Add one month to the instance (using date interval). + * @method CarbonImmutable subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMonth() Sub one month to the instance (using date interval). + * @method CarbonImmutable addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addDay() Add one day to the instance (using date interval). + * @method CarbonImmutable subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subDay() Sub one day to the instance (using date interval). + * @method CarbonImmutable addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addHour() Add one hour to the instance (using date interval). + * @method CarbonImmutable subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subHour() Sub one hour to the instance (using date interval). + * @method CarbonImmutable addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMinute() Add one minute to the instance (using date interval). + * @method CarbonImmutable subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMinute() Sub one minute to the instance (using date interval). + * @method CarbonImmutable addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addSecond() Add one second to the instance (using date interval). + * @method CarbonImmutable subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subSecond() Sub one second to the instance (using date interval). + * @method CarbonImmutable addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonImmutable subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonImmutable addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonImmutable subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonImmutable addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonImmutable subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonImmutable addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonImmutable subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonImmutable addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonImmutable subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonImmutable addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addCentury() Add one century to the instance (using date interval). + * @method CarbonImmutable subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subCentury() Sub one century to the instance (using date interval). + * @method CarbonImmutable addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addDecade() Add one decade to the instance (using date interval). + * @method CarbonImmutable subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subDecade() Sub one decade to the instance (using date interval). + * @method CarbonImmutable addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonImmutable subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonImmutable addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addWeek() Add one week to the instance (using date interval). + * @method CarbonImmutable subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subWeek() Sub one week to the instance (using date interval). + * @method CarbonImmutable addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonImmutable subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonImmutable addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonImmutable subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonImmutable addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonImmutable subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonImmutable addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonImmutable subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonImmutable addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonImmutable subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonImmutable addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonImmutable subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonImmutable addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonImmutable subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonImmutable addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonImmutable subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonImmutable addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealDay() Add one day to the instance (using timestamp). + * @method CarbonImmutable subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonImmutable addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonImmutable subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonImmutable addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonImmutable subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonImmutable addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonImmutable subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonImmutable addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealYear() Add one year to the instance (using timestamp). + * @method CarbonImmutable subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonImmutable addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonImmutable subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonImmutable addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonImmutable subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonImmutable addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonImmutable subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonImmutable roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonImmutable roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonImmutable floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonImmutable floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonImmutable ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonImmutable ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonImmutable roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonImmutable roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonImmutable floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonImmutable floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonImmutable ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonImmutable ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonImmutable roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonImmutable roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonImmutable floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonImmutable floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonImmutable ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonImmutable ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonImmutable roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonImmutable roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonImmutable floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonImmutable floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonImmutable ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonImmutable ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonImmutable roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonImmutable roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonImmutable floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonImmutable floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonImmutable ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonImmutable ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonImmutable roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonImmutable roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonImmutable floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonImmutable floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonImmutable ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonImmutable ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonImmutable roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonImmutable roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonImmutable floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonImmutable floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonImmutable ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonImmutable ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonImmutable roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonImmutable roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonImmutable floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonImmutable floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonImmutable ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonImmutable ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonImmutable roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonImmutable roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonImmutable floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonImmutable floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonImmutable ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonImmutable ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonImmutable roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonImmutable roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonImmutable floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonImmutable floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonImmutable ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonImmutable ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonImmutable roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonImmutable roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonImmutable floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonImmutable floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonImmutable ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonImmutable ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonImmutable roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonImmutable roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonImmutable floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonImmutable floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonImmutable ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonImmutable ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static static|false createFromFormat(string $format, string $time, DateTimeZone|string|false|null $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format. + * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php * * */ diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php index 15e2061c7..b90e29817 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php +++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php @@ -586,6 +586,7 @@ interface CarbonInterface extends DateTimeInterface, JsonSerializable public const YEARS_PER_DECADE = 10; public const MONTHS_PER_YEAR = 12; public const MONTHS_PER_QUARTER = 3; + public const QUARTERS_PER_YEAR = 4; public const WEEKS_PER_YEAR = 52; public const WEEKS_PER_MONTH = 4; public const DAYS_PER_YEAR = 365; @@ -726,6 +727,8 @@ public static function __set_state($dump); /** * Returns the list of properties to dump on serialize() called on. * + * Only used by PHP < 7.4. + * * @return array */ public function __sleep(); @@ -735,7 +738,7 @@ public function __sleep(); * * @example * ``` - * echo Carbon::now(); // Carbon instances can be casted to string + * echo Carbon::now(); // Carbon instances can be cast to string * ``` * * @return string @@ -987,7 +990,7 @@ public function ceilWeek($weekStartsAt = null); * * @param string $modifier * - * @return static + * @return static|false */ public function change($modifier); @@ -1038,13 +1041,13 @@ public function copy(); * If $hour is not null then the default values for $minute and $second * will be 0. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param DateTimeZone|string|null $tz + * @param DateTimeInterface|int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws InvalidFormatException * @@ -1276,7 +1279,7 @@ public function dayOfYear($value = null); * * @return CarbonInterval */ - public function diffAsCarbonInterval($date = null, $absolute = true); + public function diffAsCarbonInterval($date = null, $absolute = true, array $skip = []); /** * Get the difference by the given interval using a filter closure. @@ -2116,6 +2119,18 @@ public function getCalendarFormats($locale = null); */ public static function getDays(); + /** + * Return the number of days since the start of the week (using the current locale or the first parameter + * if explicitly given). + * + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return int + */ + public function getDaysFromStartOfWeek(?int $weekStartsAt = null): int; + /** * Get the fallback locale. * @@ -2738,12 +2753,35 @@ public function isLastOfMonth(); public function isLeapYear(); /** - * Determines if the instance is a long year + * Determines if the instance is a long year (using ISO 8601 year). * * @example * ``` - * Carbon::parse('2015-01-01')->isLongYear(); // true - * Carbon::parse('2016-01-01')->isLongYear(); // false + * Carbon::parse('2015-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-03')->isLongIsoYear(); // false + * Carbon::parse('2019-12-29')->isLongIsoYear(); // false + * Carbon::parse('2019-12-30')->isLongIsoYear(); // true + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongIsoYear(); + + /** + * Determines if the instance is a long year (using calendar year). + * + * ⚠️ This method completely ignores month and day to use the numeric year number, + * it's not correct if the exact date matters. For instance as `2019-12-30` is already + * in the first week of the 2020 year, if you want to know from this date if ISO week + * year 2020 is a long year, use `isLongIsoYear` instead. + * + * @example + * ``` + * Carbon::create(2015)->isLongYear(); // true + * Carbon::create(2016)->isLongYear(); // false * ``` * * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates @@ -3382,7 +3420,7 @@ public function ne($date): bool; * * @param string|int|null $modifier * - * @return static + * @return static|false */ public function next($modifier = null); @@ -3528,7 +3566,7 @@ public static function pluralUnit(string $unit): string; * * @param string|int|null $modifier * - * @return static + * @return static|false */ public function previous($modifier = null); @@ -3773,6 +3811,19 @@ public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $m */ public function setDateTimeFrom($date = null); + /** + * Set the day (keeping the current time) to the start of the week + the number of days passed as the first + * parameter. First day of week is driven by the locale unless explicitly set with the second parameter. + * + * @param int $numberOfDays number of days to add after the start of the current week + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return static + */ + public function setDaysFromStartOfWeek(int $numberOfDays, ?int $weekStartsAt = null); + /** * Set the fallback locale. * @@ -3860,7 +3911,7 @@ public static function setMidDayAt($hour); * * /!\ Use this method for unit tests only. * - * @param Closure|static|string|false|null $testNow real or mock Carbon instance + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance */ public static function setTestNow($testNow = null); @@ -3881,7 +3932,7 @@ public static function setTestNow($testNow = null); * * /!\ Use this method for unit tests only. * - * @param Closure|static|string|false|null $testNow real or mock Carbon instance + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance */ public static function setTestNowAndTimezone($testNow = null, $tz = null); @@ -3942,11 +3993,11 @@ public function setTimezone($value); /** * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. - * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and - * use other method or custom format passed to format() method if you need to dump an other string + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string * format. * - * Set the default format used when type juggling a Carbon instance to a string + * Set the default format used when type juggling a Carbon instance to a string. * * @param string|Closure|null $format * @@ -4537,6 +4588,18 @@ public function toDayDateTimeString(); */ public function toFormattedDateString(); + /** + * Format the instance with the day, and a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDayDateString(); + * ``` + * + * @return string + */ + public function toFormattedDayDateString(): string; + /** * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept: * 1977-04-22T01:00:00-05:00). @@ -5057,12 +5120,14 @@ public function weeksInYear($dayOfWeek = null, $dayOfYear = null); * * /!\ Use this method for unit tests only. * - * @param Closure|static|string|false|null $testNow real or mock Carbon instance - * @param Closure|null $callback + * @template T * - * @return mixed + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + * @param Closure(): T $callback + * + * @return T */ - public static function withTestNow($testNow = null, $callback = null); + public static function withTestNow($testNow, $callback); /** * Create a Carbon instance for yesterday. diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php index a2b99a776..8437c545e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php +++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php @@ -15,6 +15,7 @@ use Carbon\Exceptions\BadFluentSetterException; use Carbon\Exceptions\InvalidCastException; use Carbon\Exceptions\InvalidIntervalException; +use Carbon\Exceptions\OutOfRangeException; use Carbon\Exceptions\ParseErrorException; use Carbon\Exceptions\UnitNotConfiguredException; use Carbon\Exceptions\UnknownGetterException; @@ -22,15 +23,20 @@ use Carbon\Exceptions\UnknownUnitException; use Carbon\Traits\IntervalRounding; use Carbon\Traits\IntervalStep; +use Carbon\Traits\MagicParameter; use Carbon\Traits\Mixin; use Carbon\Traits\Options; +use Carbon\Traits\ToStringFormat; use Closure; use DateInterval; +use DateMalformedIntervalStringException; use DateTimeInterface; use DateTimeZone; use Exception; +use InvalidArgumentException; use ReflectionException; use ReturnTypeWillChange; +use RuntimeException; use Throwable; /** @@ -46,7 +52,7 @@ * @property int $minutes Total minutes of the current interval. * @property int $seconds Total seconds of the current interval. * @property int $microseconds Total microseconds of the current interval. - * @property int $milliseconds Total microseconds of the current interval. + * @property int $milliseconds Total milliseconds of the current interval. * @property int $microExcludeMilli Remaining microseconds without the milliseconds. * @property int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7). * @property int $daysExcludeWeeks alias of dayzExcludeWeeks @@ -184,10 +190,12 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface { use IntervalRounding; use IntervalStep; + use MagicParameter; use Mixin { Mixin::mixin as baseMixin; } use Options; + use ToStringFormat; /** * Interval spec period designators @@ -241,6 +249,11 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface */ private static $flipCascadeFactors; + /** + * @var bool + */ + private static $floatSettersEnabled = false; + /** * The registered macros. * @@ -294,7 +307,12 @@ public function shiftTimezone($tzName) */ public static function getCascadeFactors() { - return static::$cascadeFactors ?: [ + return static::$cascadeFactors ?: static::getDefaultCascadeFactors(); + } + + protected static function getDefaultCascadeFactors(): array + { + return [ 'milliseconds' => [Carbon::MICROSECONDS_PER_MILLISECOND, 'microseconds'], 'seconds' => [Carbon::MILLISECONDS_PER_SECOND, 'milliseconds'], 'minutes' => [Carbon::SECONDS_PER_MINUTE, 'seconds'], @@ -337,6 +355,19 @@ public static function setCascadeFactors(array $cascadeFactors) static::$cascadeFactors = $cascadeFactors; } + /** + * This option allow you to opt-in for the Carbon 3 behavior where float + * values will no longer be cast to integer (so truncated). + * + * ⚠️ This settings will be applied globally, which mean your whole application + * code including the third-party dependencies that also may use Carbon will + * adopt the new behavior. + */ + public static function enableFloatSetters(bool $floatSettersEnabled = true): void + { + self::$floatSettersEnabled = $floatSettersEnabled; + } + /////////////////////////////////////////////////////////////////// //////////////////////////// CONSTRUCTORS ///////////////////////// /////////////////////////////////////////////////////////////////// @@ -344,14 +375,14 @@ public static function setCascadeFactors(array $cascadeFactors) /** * Create a new CarbonInterval instance. * - * @param int|null $years - * @param int|null $months - * @param int|null $weeks - * @param int|null $days - * @param int|null $hours - * @param int|null $minutes - * @param int|null $seconds - * @param int|null $microseconds + * @param Closure|DateInterval|string|int|null $years + * @param int|float|null $months + * @param int|float|null $weeks + * @param int|float|null $days + * @param int|float|null $hours + * @param int|float|null $minutes + * @param int|float|null $seconds + * @param int|float|null $microseconds * * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval. */ @@ -365,14 +396,15 @@ public function __construct($years = 1, $months = null, $weeks = null, $days = n if ($years instanceof DateInterval) { parent::__construct(static::getDateIntervalSpec($years)); $this->f = $years->f; - static::copyNegativeUnits($years, $this); + self::copyNegativeUnits($years, $this); return; } $spec = $years; + $isStringSpec = (\is_string($spec) && !preg_match('/^[\d.]/', $spec)); - if (!\is_string($spec) || (float) $years || preg_match('/^[0-9.]/', $years)) { + if (!$isStringSpec || (float) $years) { $spec = static::PERIOD_PREFIX; $spec .= $years > 0 ? $years.static::PERIOD_YEARS : ''; @@ -397,7 +429,74 @@ public function __construct($years = 1, $months = null, $weeks = null, $days = n } } - parent::__construct($spec); + try { + parent::__construct($spec); + } catch (Throwable $exception) { + try { + parent::__construct('PT0S'); + + if ($isStringSpec) { + if (!preg_match('/^P + (?:(?[+-]?\d*(?:\.\d+)?)Y)? + (?:(?[+-]?\d*(?:\.\d+)?)M)? + (?:(?[+-]?\d*(?:\.\d+)?)W)? + (?:(?[+-]?\d*(?:\.\d+)?)D)? + (?:T + (?:(?[+-]?\d*(?:\.\d+)?)H)? + (?:(?[+-]?\d*(?:\.\d+)?)M)? + (?:(?[+-]?\d*(?:\.\d+)?)S)? + )? + $/x', $spec, $match)) { + throw new InvalidArgumentException("Invalid duration: $spec"); + } + + $years = (float) ($match['year'] ?? 0); + $this->assertSafeForInteger('year', $years); + $months = (float) ($match['month'] ?? 0); + $this->assertSafeForInteger('month', $months); + $weeks = (float) ($match['week'] ?? 0); + $this->assertSafeForInteger('week', $weeks); + $days = (float) ($match['day'] ?? 0); + $this->assertSafeForInteger('day', $days); + $hours = (float) ($match['hour'] ?? 0); + $this->assertSafeForInteger('hour', $hours); + $minutes = (float) ($match['minute'] ?? 0); + $this->assertSafeForInteger('minute', $minutes); + $seconds = (float) ($match['second'] ?? 0); + $this->assertSafeForInteger('second', $seconds); + } + + $totalDays = (($weeks * static::getDaysPerWeek()) + $days); + $this->assertSafeForInteger('days total (including weeks)', $totalDays); + + $this->y = (int) $years; + $this->m = (int) $months; + $this->d = (int) $totalDays; + $this->h = (int) $hours; + $this->i = (int) $minutes; + $this->s = (int) $seconds; + + if ( + ((float) $this->y) !== $years || + ((float) $this->m) !== $months || + ((float) $this->d) !== $totalDays || + ((float) $this->h) !== $hours || + ((float) $this->i) !== $minutes || + ((float) $this->s) !== $seconds + ) { + $this->add(static::fromString( + ($years - $this->y).' years '. + ($months - $this->m).' months '. + ($totalDays - $this->d).' days '. + ($hours - $this->h).' hours '. + ($minutes - $this->i).' minutes '. + ($seconds - $this->s).' seconds ' + )); + } + } catch (Throwable $secondException) { + throw $secondException instanceof OutOfRangeException ? $secondException : $exception; + } + } if ($microseconds !== null) { $this->f = $microseconds / Carbon::MICROSECONDS_PER_SECOND; @@ -410,13 +509,13 @@ public function __construct($years = 1, $months = null, $weeks = null, $days = n * @param string $source * @param string $target * - * @return int|null + * @return int|float|null */ public static function getFactor($source, $target) { $source = self::standardizeUnit($source); $target = self::standardizeUnit($target); - $factors = static::getFlipCascadeFactors(); + $factors = self::getFlipCascadeFactors(); if (isset($factors[$source])) { [$to, $factor] = $factors[$source]; @@ -438,9 +537,9 @@ public static function getFactor($source, $target) * @param string $source * @param string $target * - * @return int|null + * @return int|float|null */ - public function getFactorWithDefault($source, $target) + public static function getFactorWithDefault($source, $target) { $factor = self::getFactor($source, $target); @@ -465,7 +564,7 @@ public function getFactorWithDefault($source, $target) /** * Returns current config for days per week. * - * @return int + * @return int|float */ public static function getDaysPerWeek() { @@ -475,7 +574,7 @@ public static function getDaysPerWeek() /** * Returns current config for hours per day. * - * @return int + * @return int|float */ public static function getHoursPerDay() { @@ -485,7 +584,7 @@ public static function getHoursPerDay() /** * Returns current config for minutes per hour. * - * @return int + * @return int|float */ public static function getMinutesPerHour() { @@ -495,7 +594,7 @@ public static function getMinutesPerHour() /** * Returns current config for seconds per minute. * - * @return int + * @return int|float */ public static function getSecondsPerMinute() { @@ -505,7 +604,7 @@ public static function getSecondsPerMinute() /** * Returns current config for microseconds per second. * - * @return int + * @return int|float */ public static function getMillisecondsPerSecond() { @@ -515,7 +614,7 @@ public static function getMillisecondsPerSecond() /** * Returns current config for microseconds per second. * - * @return int + * @return int|float */ public static function getMicrosecondsPerMillisecond() { @@ -673,6 +772,23 @@ public static function __callStatic($method, $parameters) } } + /** + * Evaluate the PHP generated by var_export() and recreate the exported CarbonInterval instance. + * + * @param array $dump data as exported by var_export() + * + * @return static + */ + #[ReturnTypeWillChange] + public static function __set_state($dump) + { + /** @noinspection PhpVoidFunctionResultUsedInspection */ + /** @var DateInterval $dateInterval */ + $dateInterval = parent::__set_state($dump); + + return static::instance($dateInterval); + } + /** * Return the current context from inside a macro callee or a new one if static. * @@ -767,6 +883,8 @@ public static function fromString($intervalDefinition) case 'year': case 'years': case 'y': + case 'yr': + case 'yrs': $years += $intValue; break; @@ -780,6 +898,7 @@ public static function fromString($intervalDefinition) case 'month': case 'months': case 'mo': + case 'mos': $months += $intValue; break; @@ -882,7 +1001,7 @@ public static function parseFromLocale($interval, $locale = null) return static::fromString(Carbon::translateTimeString($interval, $locale ?: static::getLocale(), 'en')); } - private static function castIntervalToClass(DateInterval $interval, string $className) + private static function castIntervalToClass(DateInterval $interval, string $className, array $skip = []) { $mainClass = DateInterval::class; @@ -891,17 +1010,17 @@ private static function castIntervalToClass(DateInterval $interval, string $clas } $microseconds = $interval->f; - $instance = new $className(static::getDateIntervalSpec($interval)); + $instance = new $className(static::getDateIntervalSpec($interval, false, $skip)); if ($microseconds) { $instance->f = $microseconds; } if ($interval instanceof self && is_a($className, self::class, true)) { - static::copyStep($interval, $instance); + self::copyStep($interval, $instance); } - static::copyNegativeUnits($interval, $instance); + self::copyNegativeUnits($interval, $instance); return $instance; } @@ -940,12 +1059,19 @@ public function cast(string $className) * set the $days field. * * @param DateInterval $interval + * @param bool $skipCopy set to true to return the passed object + * (without copying it) if it's already of the + * current class * * @return static */ - public static function instance(DateInterval $interval) + public static function instance(DateInterval $interval, array $skip = [], bool $skipCopy = false) { - return self::castIntervalToClass($interval, static::class); + if ($skipCopy && $interval instanceof static) { + return $interval; + } + + return self::castIntervalToClass($interval, static::class, $skip); } /** @@ -956,17 +1082,20 @@ public static function instance(DateInterval $interval) * * @param mixed|int|DateInterval|string|Closure|null $interval interval or number of the given $unit * @param string|null $unit if specified, $interval must be an integer + * @param bool $skipCopy set to true to return the passed object + * (without copying it) if it's already of the + * current class * * @return static|null */ - public static function make($interval, $unit = null) + public static function make($interval, $unit = null, bool $skipCopy = false) { if ($unit) { $interval = "$interval ".Carbon::pluralUnit($unit); } if ($interval instanceof DateInterval) { - return static::instance($interval); + return static::instance($interval, [], $skipCopy); } if ($interval instanceof Closure) { @@ -984,7 +1113,7 @@ protected static function makeFromString(string $interval) { $interval = preg_replace('/\s+/', ' ', trim($interval)); - if (preg_match('/^P[T0-9]/', $interval)) { + if (preg_match('/^P[T\d]/', $interval)) { return new static($interval); } @@ -992,8 +1121,14 @@ protected static function makeFromString(string $interval) return static::fromString($interval); } - /** @var static $interval */ - $interval = static::createFromDateString($interval); + // @codeCoverageIgnoreStart + try { + /** @var static $interval */ + $interval = static::createFromDateString($interval); + } catch (DateMalformedIntervalStringException $e) { + return null; + } + // @codeCoverageIgnoreEnd return !$interval || $interval->isEmpty() ? null : $interval; } @@ -1081,11 +1216,11 @@ public function get($name) return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND) % Carbon::MICROSECONDS_PER_MILLISECOND; case 'weeks': - return (int) ($this->d / static::getDaysPerWeek()); + return (int) ($this->d / (int) static::getDaysPerWeek()); case 'daysExcludeWeeks': case 'dayzExcludeWeeks': - return $this->d % static::getDaysPerWeek(); + return $this->d % (int) static::getDaysPerWeek(); case 'locale': return $this->getTranslatorLocale(); @@ -1126,43 +1261,63 @@ public function set($name, $value = null) foreach ($properties as $key => $value) { switch (Carbon::singularUnit(rtrim($key, 'z'))) { case 'year': + $this->checkIntegerValue($key, $value); $this->y = $value; + $this->handleDecimalPart('year', $value, $this->y); break; case 'month': + $this->checkIntegerValue($key, $value); $this->m = $value; + $this->handleDecimalPart('month', $value, $this->m); break; case 'week': - $this->d = $value * static::getDaysPerWeek(); + $this->checkIntegerValue($key, $value); + $days = $value * (int) static::getDaysPerWeek(); + $this->assertSafeForInteger('days total (including weeks)', $days); + $this->d = $days; + $this->handleDecimalPart('day', $days, $this->d); break; case 'day': + $this->checkIntegerValue($key, $value); $this->d = $value; + $this->handleDecimalPart('day', $value, $this->d); break; case 'daysexcludeweek': case 'dayzexcludeweek': - $this->d = $this->weeks * static::getDaysPerWeek() + $value; + $this->checkIntegerValue($key, $value); + $days = $this->weeks * (int) static::getDaysPerWeek() + $value; + $this->assertSafeForInteger('days total (including weeks)', $days); + $this->d = $days; + $this->handleDecimalPart('day', $days, $this->d); break; case 'hour': + $this->checkIntegerValue($key, $value); $this->h = $value; + $this->handleDecimalPart('hour', $value, $this->h); break; case 'minute': + $this->checkIntegerValue($key, $value); $this->i = $value; + $this->handleDecimalPart('minute', $value, $this->i); break; case 'second': + $this->checkIntegerValue($key, $value); $this->s = $value; + $this->handleDecimalPart('second', $value, $this->s); break; @@ -1355,11 +1510,15 @@ public function __call($method, $parameters) } if (preg_match('/^(?add|sub)(?[A-Z].*)$/', $method, $match)) { - return $this->{$match['method']}($parameters[0], $match['unit']); + $value = $this->getMagicParameter($parameters, 0, Carbon::pluralUnit($match['unit']), 0); + + return $this->{$match['method']}($value, $match['unit']); } + $value = $this->getMagicParameter($parameters, 0, Carbon::pluralUnit($method), 1); + try { - $this->set($method, \count($parameters) === 0 ? 1 : $parameters[0]); + $this->set($method, $value); } catch (UnknownSetterException $exception) { if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { throw new BadFluentSetterException($method, 0, $exception); @@ -1410,9 +1569,9 @@ protected function getForHumansParameters($syntax = null, $short = false, $parts $minimumUnit = 's'; $skip = []; extract($this->getForHumansInitialVariables($syntax, $short)); - $skip = array_filter((array) $skip, static function ($value) { + $skip = array_map('strtolower', array_filter((array) $skip, static function ($value) { return \is_string($value) && $value !== ''; - }); + })); if ($syntax === null) { $syntax = CarbonInterface::DIFF_ABSOLUTE; @@ -1435,11 +1594,9 @@ protected function getForHumansParameters($syntax = null, $short = false, $parts ]; } - if ($altNumbers) { - if ($altNumbers !== true) { - $language = new Language($this->locale); - $altNumbers = \in_array($language->getCode(), (array) $altNumbers); - } + if ($altNumbers && $altNumbers !== true) { + $language = new Language($this->locale); + $altNumbers = \in_array($language->getCode(), (array) $altNumbers, true); } if (\is_array($join)) { @@ -1620,18 +1777,23 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options $unit = $short ? 's' : 'second'; $isFuture = $this->invert === 1; $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); + $declensionMode = null; /** @var \Symfony\Component\Translation\Translator $translator */ $translator = $this->getLocalTranslator(); - $handleDeclensions = function ($unit, $count) use ($interpolations, $transId, $translator, $altNumbers, $absolute) { + $handleDeclensions = function ($unit, $count, $index = 0, $parts = 1) use ($interpolations, $transId, $translator, $altNumbers, $absolute, &$declensionMode) { if (!$absolute) { - // Some languages have special pluralization for past and future tense. - $key = $unit.'_'.$transId; - $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers); + $declensionMode = $declensionMode ?? $this->translate($transId.'_mode'); - if ($result !== $key) { - return $result; + if ($this->needsDeclension($declensionMode, $index, $parts)) { + // Some languages have special pluralization for past and future tense. + $key = $unit.'_'.$transId; + $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers); + + if ($result !== $key) { + return $result; + } } } @@ -1654,8 +1816,14 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options \count($intervalValues->getNonZeroValues()) > $parts && ($count = \count($keys = array_keys($intervalValues->getValuesSequence()))) > 1 ) { + $index = min($count, $previousCount - 1) - 2; + + if ($index < 0) { + break; + } + $intervalValues = $this->copy()->roundUnit( - $keys[min($count, $previousCount - 1) - 2], + $keys[$index], 1, $method ); @@ -1690,17 +1858,17 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options } } - $transChoice = function ($short, $unitData) use ($absolute, $handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) { + $transChoice = function ($short, $unitData, $index, $parts) use ($absolute, $handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) { $count = $unitData['value']; if ($short) { - $result = $handleDeclensions($unitData['unitShort'], $count); + $result = $handleDeclensions($unitData['unitShort'], $count, $index, $parts); if ($result !== null) { return $result; } } elseif ($aUnit) { - $result = $handleDeclensions('a_'.$unitData['unit'], $count); + $result = $handleDeclensions('a_'.$unitData['unit'], $count, $index, $parts); if ($result !== null) { return $result; @@ -1708,7 +1876,7 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options } if (!$absolute) { - return $handleDeclensions($unitData['unit'], $count); + return $handleDeclensions($unitData['unit'], $count, $index, $parts); } return $this->translate($unitData['unit'], $interpolations, $count, $translator, $altNumbers); @@ -1720,7 +1888,7 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options if ($diffIntervalData['value'] > 0) { $unit = $short ? $diffIntervalData['unitShort'] : $diffIntervalData['unit']; $count = $diffIntervalData['value']; - $interval[] = $transChoice($short, $diffIntervalData); + $interval[] = [$short, $diffIntervalData]; } elseif ($options & CarbonInterface::SEQUENTIAL_PARTS_ONLY && \count($interval) > 0) { break; } @@ -1731,13 +1899,19 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options } // break the loop after we have reached the minimum unit - if (\in_array($minimumUnit, [$diffIntervalData['unit'], $diffIntervalData['unitShort']])) { + if (\in_array($minimumUnit, [$diffIntervalData['unit'], $diffIntervalData['unitShort']], true)) { $fallbackUnit = [$diffIntervalData['unit'], $diffIntervalData['unitShort']]; break; } } + $actualParts = \count($interval); + + foreach ($interval as $index => &$item) { + $item = $transChoice($item[0], $item[1], $index, $actualParts); + } + if (\count($interval) === 0) { if ($relativeToNow && $options & CarbonInterface::JUST_NOW) { $key = 'diff_now'; @@ -1806,17 +1980,17 @@ public function forHumans($syntax = null, $short = false, $parts = -1, $options */ public function __toString() { - $format = $this->localToStringFormat; + $format = $this->localToStringFormat ?? static::$toStringFormat; - if ($format) { - if ($format instanceof Closure) { - return $format($this); - } + if (!$format) { + return $this->forHumans(); + } - return $this->format($format); + if ($format instanceof Closure) { + return $format($this); } - return $this->forHumans(); + return $this->format($format); } /** @@ -1857,7 +2031,7 @@ public function toPeriod(...$params) /** * Invert the interval. * - * @param bool|int $inverted if a parameter is passed, the passed value casted as 1 or 0 is used + * @param bool|int $inverted if a parameter is passed, the passed value cast as 1 or 0 is used * as the new value of the ->invert property. * * @return $this @@ -2135,7 +2309,7 @@ public function divide($divider) * * @return string */ - public static function getDateIntervalSpec(DateInterval $interval) + public static function getDateIntervalSpec(DateInterval $interval, bool $microseconds = false, array $skip = []) { $date = array_filter([ static::PERIOD_YEARS => abs($interval->y), @@ -2143,10 +2317,25 @@ public static function getDateIntervalSpec(DateInterval $interval) static::PERIOD_DAYS => abs($interval->d), ]); + if ( + $interval->days >= CarbonInterface::DAYS_PER_WEEK * CarbonInterface::WEEKS_PER_MONTH && + (!isset($date[static::PERIOD_YEARS]) || \count(array_intersect(['y', 'year', 'years'], $skip))) && + (!isset($date[static::PERIOD_MONTHS]) || \count(array_intersect(['m', 'month', 'months'], $skip))) + ) { + $date = [ + static::PERIOD_DAYS => abs($interval->days), + ]; + } + + $seconds = abs($interval->s); + if ($microseconds && $interval->f > 0) { + $seconds = sprintf('%d.%06d', $seconds, abs($interval->f) * 1000000); + } + $time = array_filter([ static::PERIOD_HOURS => abs($interval->h), static::PERIOD_MINUTES => abs($interval->i), - static::PERIOD_SECONDS => abs($interval->s), + static::PERIOD_SECONDS => $seconds, ]); $specString = static::PERIOD_PREFIX; @@ -2170,9 +2359,9 @@ public static function getDateIntervalSpec(DateInterval $interval) * * @return string */ - public function spec() + public function spec(bool $microseconds = false) { - return static::getDateIntervalSpec($this); + return static::getDateIntervalSpec($this, $microseconds); } /** @@ -2223,11 +2412,13 @@ private function doCascade(bool $deep) $originalData = $this->toArray(); $originalData['milliseconds'] = (int) ($originalData['microseconds'] / static::getMicrosecondsPerMillisecond()); $originalData['microseconds'] = $originalData['microseconds'] % static::getMicrosecondsPerMillisecond(); - $originalData['daysExcludeWeeks'] = $originalData['days']; + $originalData['weeks'] = (int) ($this->d / static::getDaysPerWeek()); + $originalData['daysExcludeWeeks'] = fmod($this->d, static::getDaysPerWeek()); unset($originalData['days']); $newData = $originalData; + $previous = []; - foreach (static::getFlipCascadeFactors() as $source => [$target, $factor]) { + foreach (self::getFlipCascadeFactors() as $source => [$target, $factor]) { foreach (['source', 'target'] as $key) { if ($$key === 'dayz') { $$key = 'daysExcludeWeeks'; @@ -2235,9 +2426,29 @@ private function doCascade(bool $deep) } $value = $newData[$source]; - $modulo = ($factor + ($value % $factor)) % $factor; + $modulo = fmod($factor + fmod($value, $factor), $factor); $newData[$source] = $modulo; $newData[$target] += ($value - $modulo) / $factor; + + $decimalPart = fmod($newData[$source], 1); + + if ($decimalPart !== 0.0) { + $unit = $source; + + foreach ($previous as [$subUnit, $subFactor]) { + $newData[$unit] -= $decimalPart; + $newData[$subUnit] += $decimalPart * $subFactor; + $decimalPart = fmod($newData[$subUnit], 1); + + if ($decimalPart === 0.0) { + break; + } + + $unit = $subUnit; + } + } + + array_unshift($previous, [$source, $factor]); } $positive = null; @@ -2317,14 +2528,14 @@ public function total($unit) $result = 0; $cumulativeFactor = 0; $unitFound = false; - $factors = static::getFlipCascadeFactors(); - $daysPerWeek = static::getDaysPerWeek(); + $factors = self::getFlipCascadeFactors(); + $daysPerWeek = (int) static::getDaysPerWeek(); $values = [ 'years' => $this->years, 'months' => $this->months, 'weeks' => (int) ($this->d / $daysPerWeek), - 'dayz' => $this->d % $daysPerWeek, + 'dayz' => fmod($this->d, $daysPerWeek), 'hours' => $this->hours, 'minutes' => $this->minutes, 'seconds' => $this->seconds, @@ -2385,10 +2596,11 @@ public function total($unit) } if ($unit === 'weeks') { - return $result / $daysPerWeek; + $result /= $daysPerWeek; } - return $result; + // Cast as int numbers with no decimal part + return fmod($result, 1) === 0.0 ? (int) $result : $result; } /** @@ -2656,6 +2868,15 @@ public function isBetween($interval1, $interval2, $equal = true): bool */ public function roundUnit($unit, $precision = 1, $function = 'round') { + if (static::getCascadeFactors() !== static::getDefaultCascadeFactors()) { + $value = $function($this->total($unit) / $precision) * $precision; + $inverted = $value < 0; + + return $this->copyProperties(self::fromString( + number_format(abs($value), 12, '.', '').' '.$unit + )->invert($inverted)->cascade()); + } + $base = CarbonImmutable::parse('2000-01-01 00:00:00', 'UTC') ->roundUnit($unit, $precision, $function); $next = $base->add($this); @@ -2746,4 +2967,88 @@ public function ceil($precision = 1) { return $this->round($precision, 'ceil'); } + + private function needsDeclension(string $mode, int $index, int $parts): bool + { + switch ($mode) { + case 'last': + return $index === $parts - 1; + default: + return true; + } + } + + private function checkIntegerValue(string $name, $value) + { + if (\is_int($value)) { + return; + } + + $this->assertSafeForInteger($name, $value); + + if (\is_float($value) && (((float) (int) $value) === $value)) { + return; + } + + if (!self::$floatSettersEnabled) { + $type = \gettype($value); + @trigger_error( + "Since 2.70.0, it's deprecated to pass $type value for $name.\n". + "It's truncated when stored as an integer interval unit.\n". + "From 3.0.0, decimal part will no longer be truncated and will be cascaded to smaller units.\n". + "- To maintain the current behavior, use explicit cast: $name((int) \$value)\n". + "- To adopt the new behavior globally, call CarbonInterval::enableFloatSetters()\n", + \E_USER_DEPRECATED + ); + } + } + + /** + * Throw an exception if precision loss when storing the given value as an integer would be >= 1.0. + */ + private function assertSafeForInteger(string $name, $value) + { + if ($value && !\is_int($value) && ($value >= 0x7fffffffffffffff || $value <= -0x7fffffffffffffff)) { + throw new OutOfRangeException($name, -0x7fffffffffffffff, 0x7fffffffffffffff, $value); + } + } + + private function handleDecimalPart(string $unit, $value, $integerValue) + { + if (self::$floatSettersEnabled) { + $floatValue = (float) $value; + $base = (float) $integerValue; + + if ($floatValue === $base) { + return; + } + + $units = [ + 'y' => 'year', + 'm' => 'month', + 'd' => 'day', + 'h' => 'hour', + 'i' => 'minute', + 's' => 'second', + ]; + $upper = true; + + foreach ($units as $property => $name) { + if ($name === $unit) { + $upper = false; + + continue; + } + + if (!$upper && $this->$property !== 0) { + throw new RuntimeException( + "You cannot set $unit to a float value as $name would be overridden, ". + 'set it first to 0 explicitly if you really want to erase its value' + ); + } + } + + $this->add($unit, $floatValue - $base); + } + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php index 197f3709b..d12a98697 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php +++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php @@ -11,6 +11,7 @@ namespace Carbon; +use Carbon\Exceptions\EndLessPeriodException; use Carbon\Exceptions\InvalidCastException; use Carbon\Exceptions\InvalidIntervalException; use Carbon\Exceptions\InvalidPeriodDateException; @@ -23,11 +24,13 @@ use Carbon\Traits\IntervalRounding; use Carbon\Traits\Mixin; use Carbon\Traits\Options; +use Carbon\Traits\ToStringFormat; use Closure; use Countable; use DateInterval; use DatePeriod; use DateTime; +use DateTimeImmutable; use DateTimeInterface; use DateTimeZone; use InvalidArgumentException; @@ -48,43 +51,47 @@ * @property-read CarbonInterface $end Period end date. * @property-read CarbonInterval $interval Underlying date interval instance. Always present, one day by default. * - * @method static CarbonPeriod start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance. - * @method static CarbonPeriod since($date, $inclusive = null) Alias for start(). - * @method static CarbonPeriod sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance. - * @method static CarbonPeriod end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance. - * @method static CarbonPeriod until($date = null, $inclusive = null) Alias for end(). - * @method static CarbonPeriod untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance. - * @method static CarbonPeriod dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. - * @method static CarbonPeriod between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. - * @method static CarbonPeriod recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance. - * @method static CarbonPeriod times($recurrences = null) Alias for recurrences(). - * @method static CarbonPeriod options($options = null) Create instance with options or modify the options if called on an instance. - * @method static CarbonPeriod toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance. - * @method static CarbonPeriod filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance. - * @method static CarbonPeriod push($callback, $name = null) Alias for filter(). - * @method static CarbonPeriod prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance. - * @method static CarbonPeriod filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance. - * @method static CarbonPeriod interval($interval) Create instance with given date interval or modify the interval if called on an instance. - * @method static CarbonPeriod each($interval) Create instance with given date interval or modify the interval if called on an instance. - * @method static CarbonPeriod every($interval) Create instance with given date interval or modify the interval if called on an instance. - * @method static CarbonPeriod step($interval) Create instance with given date interval or modify the interval if called on an instance. - * @method static CarbonPeriod stepBy($interval) Create instance with given date interval or modify the interval if called on an instance. - * @method static CarbonPeriod invert() Create instance with inverted date interval or invert the interval if called on an instance. - * @method static CarbonPeriod years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance. - * @method static CarbonPeriod year($years = 1) Alias for years(). - * @method static CarbonPeriod months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance. - * @method static CarbonPeriod month($months = 1) Alias for months(). - * @method static CarbonPeriod weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance. - * @method static CarbonPeriod week($weeks = 1) Alias for weeks(). - * @method static CarbonPeriod days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance. - * @method static CarbonPeriod dayz($days = 1) Alias for days(). - * @method static CarbonPeriod day($days = 1) Alias for days(). - * @method static CarbonPeriod hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance. - * @method static CarbonPeriod hour($hours = 1) Alias for hours(). - * @method static CarbonPeriod minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance. - * @method static CarbonPeriod minute($minutes = 1) Alias for minutes(). - * @method static CarbonPeriod seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance. - * @method static CarbonPeriod second($seconds = 1) Alias for seconds(). + * @method static static start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance. + * @method static static since($date, $inclusive = null) Alias for start(). + * @method static static sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance. + * @method static static end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance. + * @method static static until($date = null, $inclusive = null) Alias for end(). + * @method static static untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance. + * @method static static dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. + * @method static static between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. + * @method static static recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance. + * @method static static times($recurrences = null) Alias for recurrences(). + * @method static static options($options = null) Create instance with options or modify the options if called on an instance. + * @method static static toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance. + * @method static static filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance. + * @method static static push($callback, $name = null) Alias for filter(). + * @method static static prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance. + * @method static static filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance. + * @method static static interval($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static each($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static every($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static step($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static stepBy($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static invert() Create instance with inverted date interval or invert the interval if called on an instance. + * @method static static years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance. + * @method static static year($years = 1) Alias for years(). + * @method static static months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance. + * @method static static month($months = 1) Alias for months(). + * @method static static weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance. + * @method static static week($weeks = 1) Alias for weeks(). + * @method static static days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance. + * @method static static dayz($days = 1) Alias for days(). + * @method static static day($days = 1) Alias for days(). + * @method static static hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance. + * @method static static hour($hours = 1) Alias for hours(). + * @method static static minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance. + * @method static static minute($minutes = 1) Alias for minutes(). + * @method static static seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance. + * @method static static second($seconds = 1) Alias for seconds(). + * @method static static milliseconds($milliseconds = 1) Create instance specifying a number of milliseconds for date interval or replace the interval by the given a number of milliseconds if called on an instance. + * @method static static millisecond($milliseconds = 1) Alias for milliseconds(). + * @method static static microseconds($microseconds = 1) Create instance specifying a number of microseconds for date interval or replace the interval by the given a number of microseconds if called on an instance. + * @method static static microsecond($microseconds = 1) Alias for microseconds(). * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. @@ -163,6 +170,8 @@ * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class CarbonPeriod implements Iterator, Countable, JsonSerializable { @@ -171,19 +180,26 @@ class CarbonPeriod implements Iterator, Countable, JsonSerializable Mixin::mixin as baseMixin; } use Options; + use ToStringFormat; /** - * Built-in filters. + * Built-in filter for limit by recurrences. * - * @var string + * @var callable */ public const RECURRENCES_FILTER = [self::class, 'filterRecurrences']; + + /** + * Built-in filter for limit to an end. + * + * @var callable + */ public const END_DATE_FILTER = [self::class, 'filterEndDate']; /** * Special value which can be returned by filters to end iteration. Also a filter. * - * @var string + * @var callable */ public const END_ITERATION = [self::class, 'endIteration']; @@ -222,6 +238,13 @@ class CarbonPeriod implements Iterator, Countable, JsonSerializable */ public const END_MAX_ATTEMPTS = 10000; + /** + * Default date class of iteration items. + * + * @var string + */ + protected const DEFAULT_DATE_CLASS = Carbon::class; + /** * The registered macros. * @@ -243,6 +266,13 @@ class CarbonPeriod implements Iterator, Countable, JsonSerializable */ protected $dateInterval; + /** + * True once __construct is finished. + * + * @var bool + */ + protected $constructed = false; + /** * Whether current date interval was set by default. * @@ -369,7 +399,7 @@ public static function instance($period) ); } - $class = \get_called_class(); + $class = static::class; $type = \gettype($period); throw new NotAPeriodException( @@ -474,15 +504,16 @@ protected static function parseIso8601($iso) $interval = null; $start = null; $end = null; + $dateClass = static::DEFAULT_DATE_CLASS; foreach (explode('/', $iso) as $key => $part) { - if ($key === 0 && preg_match('/^R([0-9]*)$/', $part, $match)) { - $parsed = \strlen($match[1]) ? (int) $match[1] : null; + if ($key === 0 && preg_match('/^R(\d*|INF)$/', $part, $match)) { + $parsed = \strlen($match[1]) ? (($match[1] !== 'INF') ? (int) $match[1] : INF) : null; } elseif ($interval === null && $parsed = CarbonInterval::make($part)) { $interval = $part; - } elseif ($start === null && $parsed = Carbon::make($part)) { + } elseif ($start === null && $parsed = $dateClass::make($part)) { $start = $part; - } elseif ($end === null && $parsed = Carbon::make(static::addMissingParts($start ?? '', $part))) { + } elseif ($end === null && $parsed = $dateClass::make(static::addMissingParts($start ?? '', $part))) { $end = $part; } else { throw new InvalidPeriodParameterException("Invalid ISO 8601 specification: $iso."); @@ -495,7 +526,7 @@ protected static function parseIso8601($iso) } /** - * Add missing parts of the target date from the soure date. + * Add missing parts of the target date from the source date. * * @param string $source * @param string $target @@ -504,7 +535,7 @@ protected static function parseIso8601($iso) */ protected static function addMissingParts($source, $target) { - $pattern = '/'.preg_replace('/[0-9]+/', '[0-9]+', preg_quote($target, '/')).'$/'; + $pattern = '/'.preg_replace('/\d+/', '[0-9]+', preg_quote($target, '/')).'$/'; $result = preg_replace($pattern, $target, $source, 1, $count); @@ -613,6 +644,10 @@ public static function __callStatic($method, $parameters) */ public function __construct(...$arguments) { + if (is_a($this->dateClass, DateTimeImmutable::class, true)) { + $this->options = static::IMMUTABLE; + } + // Parse and assign arguments one by one. First argument may be an ISO 8601 spec, // which will be first parsed into parts and then processed the same way. @@ -640,6 +675,8 @@ public function __construct(...$arguments) } } + $optionsSet = false; + foreach ($arguments as $argument) { $parsedDate = null; @@ -647,10 +684,10 @@ public function __construct(...$arguments) $this->setTimezone($argument); } elseif ($this->dateInterval === null && ( - \is_string($argument) && preg_match( - '/^(-?\d(\d(?![\/-])|[^\d\/-]([\/-])?)*|P[T0-9].*|(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+)$/i', + (\is_string($argument) && preg_match( + '/^(-?\d(\d(?![\/-])|[^\d\/-]([\/-])?)*|P[T\d].*|(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+)$/i', $argument - ) || + )) || $argument instanceof DateInterval || $argument instanceof Closure ) && @@ -663,15 +700,17 @@ public function __construct(...$arguments) $this->setEndDate($parsedDate); } elseif ($this->recurrences === null && $this->endDate === null && is_numeric($argument)) { $this->setRecurrences($argument); - } elseif ($this->options === null && (\is_int($argument) || $argument === null)) { - $this->setOptions($argument); + } elseif (!$optionsSet && (\is_int($argument) || $argument === null)) { + $optionsSet = true; + $this->setOptions(((int) $this->options) | ((int) $argument)); } else { throw new InvalidPeriodParameterException('Invalid constructor parameters.'); } } if ($this->startDate === null) { - $this->setStartDate(Carbon::now()); + $dateClass = $this->dateClass; + $this->setStartDate($dateClass::now()); } if ($this->dateInterval === null) { @@ -683,6 +722,8 @@ public function __construct(...$arguments) if ($this->options === null) { $this->setOptions(0); } + + $this->constructed = true; } /** @@ -695,6 +736,17 @@ public function copy() return clone $this; } + /** + * Prepare the instance to be set (self if mutable to be mutated, + * copy if immutable to generate a new instance). + * + * @return static + */ + protected function copyIfImmutable() + { + return $this; + } + /** * Get the getter for a property allowing both `DatePeriod` snakeCase and camelCase names. * @@ -786,7 +838,7 @@ public function clone() * * @param string $dateClass * - * @return $this + * @return static */ public function setDateClass(string $dateClass) { @@ -794,15 +846,16 @@ public function setDateClass(string $dateClass) throw new NotACarbonClassException($dateClass); } - $this->dateClass = $dateClass; + $self = $this->copyIfImmutable(); + $self->dateClass = $dateClass; if (is_a($dateClass, Carbon::class, true)) { - $this->toggleOptions(static::IMMUTABLE, false); + $self->options = $self->options & ~static::IMMUTABLE; } elseif (is_a($dateClass, CarbonImmutable::class, true)) { - $this->toggleOptions(static::IMMUTABLE, true); + $self->options = $self->options | static::IMMUTABLE; } - return $this; + return $self; } /** @@ -822,7 +875,7 @@ public function getDateClass(): string * * @throws InvalidIntervalException * - * @return $this + * @return static */ public function setDateInterval($interval) { @@ -834,25 +887,24 @@ public function setDateInterval($interval) throw new InvalidIntervalException('Empty interval is not accepted.'); } - $this->dateInterval = $interval; + $self = $this->copyIfImmutable(); + $self->dateInterval = $interval; - $this->isDefaultInterval = false; + $self->isDefaultInterval = false; - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** * Invert the period date interval. * - * @return $this + * @return static */ public function invertDateInterval() { - $interval = $this->dateInterval->invert(); - - return $this->setDateInterval($interval); + return $this->setDateInterval($this->dateInterval->invert()); } /** @@ -861,14 +913,11 @@ public function invertDateInterval() * @param DateTime|DateTimeInterface|string $start * @param DateTime|DateTimeInterface|string|null $end * - * @return $this + * @return static */ public function setDates($start, $end) { - $this->setStartDate($start); - $this->setEndDate($end); - - return $this; + return $this->setStartDate($start)->setEndDate($end); } /** @@ -878,7 +927,7 @@ public function setDates($start, $end) * * @throws InvalidArgumentException * - * @return $this + * @return static */ public function setOptions($options) { @@ -886,11 +935,12 @@ public function setOptions($options) throw new InvalidPeriodParameterException('Invalid options.'); } - $this->options = $options ?: 0; + $self = $this->copyIfImmutable(); + $self->options = $options ?: 0; - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -911,7 +961,7 @@ public function getOptions() * * @throws \InvalidArgumentException * - * @return $this + * @return static */ public function toggleOptions($options, $state = null) { @@ -931,7 +981,7 @@ public function toggleOptions($options, $state = null) * * @param bool $state * - * @return $this + * @return static */ public function excludeStartDate($state = true) { @@ -943,7 +993,7 @@ public function excludeStartDate($state = true) * * @param bool $state * - * @return $this + * @return static */ public function excludeEndDate($state = true) { @@ -1087,17 +1137,18 @@ public function getIncludedEndDate() * @param callable $callback * @param string $name * - * @return $this + * @return static */ public function addFilter($callback, $name = null) { - $tuple = $this->createFilterTuple(\func_get_args()); + $self = $this->copyIfImmutable(); + $tuple = $self->createFilterTuple(\func_get_args()); - $this->filters[] = $tuple; + $self->filters[] = $tuple; - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -1108,17 +1159,18 @@ public function addFilter($callback, $name = null) * @param callable $callback * @param string $name * - * @return $this + * @return static */ public function prependFilter($callback, $name = null) { - $tuple = $this->createFilterTuple(\func_get_args()); + $self = $this->copyIfImmutable(); + $tuple = $self->createFilterTuple(\func_get_args()); - array_unshift($this->filters, $tuple); + array_unshift($self->filters, $tuple); - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -1126,24 +1178,25 @@ public function prependFilter($callback, $name = null) * * @param callable|string $filter * - * @return $this + * @return static */ public function removeFilter($filter) { + $self = $this->copyIfImmutable(); $key = \is_callable($filter) ? 0 : 1; - $this->filters = array_values(array_filter( + $self->filters = array_values(array_filter( $this->filters, function ($tuple) use ($key, $filter) { return $tuple[$key] !== $filter; } )); - $this->updateInternalState(); + $self->updateInternalState(); - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -1181,39 +1234,41 @@ public function getFilters() * * @param array $filters * - * @return $this + * @return static */ public function setFilters(array $filters) { - $this->filters = $filters; + $self = $this->copyIfImmutable(); + $self->filters = $filters; - $this->updateInternalState(); + $self->updateInternalState(); - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** * Reset filters stack. * - * @return $this + * @return static */ public function resetFilters() { - $this->filters = []; + $self = $this->copyIfImmutable(); + $self->filters = []; - if ($this->endDate !== null) { - $this->filters[] = [static::END_DATE_FILTER, null]; + if ($self->endDate !== null) { + $self->filters[] = [static::END_DATE_FILTER, null]; } - if ($this->recurrences !== null) { - $this->filters[] = [static::RECURRENCES_FILTER, null]; + if ($self->recurrences !== null) { + $self->filters[] = [static::RECURRENCES_FILTER, null]; } - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -1223,11 +1278,11 @@ public function resetFilters() * * @throws InvalidArgumentException * - * @return $this + * @return static */ public function setRecurrences($recurrences) { - if (!is_numeric($recurrences) && $recurrences !== null || $recurrences < 0) { + if ((!is_numeric($recurrences) && $recurrences !== null) || $recurrences < 0) { throw new InvalidPeriodParameterException('Invalid number of recurrences.'); } @@ -1235,15 +1290,17 @@ public function setRecurrences($recurrences) return $this->removeFilter(static::RECURRENCES_FILTER); } - $this->recurrences = $recurrences === INF ? INF : (int) $recurrences; + /** @var self $self */ + $self = $this->copyIfImmutable(); + $self->recurrences = $recurrences === INF ? INF : (int) $recurrences; - if (!$this->hasFilter(static::RECURRENCES_FILTER)) { - return $this->addFilter(static::RECURRENCES_FILTER); + if (!$self->hasFilter(static::RECURRENCES_FILTER)) { + return $self->addFilter(static::RECURRENCES_FILTER); } - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -1254,21 +1311,22 @@ public function setRecurrences($recurrences) * * @throws InvalidPeriodDateException * - * @return $this + * @return static */ public function setStartDate($date, $inclusive = null) { - if (!$date = ([$this->dateClass, 'make'])($date)) { + if (!$this->isInfiniteDate($date) && !($date = ([$this->dateClass, 'make'])($date))) { throw new InvalidPeriodDateException('Invalid start date.'); } - $this->startDate = $date; + $self = $this->copyIfImmutable(); + $self->startDate = $date; if ($inclusive !== null) { - $this->toggleOptions(static::EXCLUDE_START_DATE, !$inclusive); + $self = $self->toggleOptions(static::EXCLUDE_START_DATE, !$inclusive); } - return $this; + return $self; } /** @@ -1279,11 +1337,11 @@ public function setStartDate($date, $inclusive = null) * * @throws \InvalidArgumentException * - * @return $this + * @return static */ public function setEndDate($date, $inclusive = null) { - if ($date !== null && !$date = ([$this->dateClass, 'make'])($date)) { + if ($date !== null && !$this->isInfiniteDate($date) && !$date = ([$this->dateClass, 'make'])($date)) { throw new InvalidPeriodDateException('Invalid end date.'); } @@ -1291,19 +1349,20 @@ public function setEndDate($date, $inclusive = null) return $this->removeFilter(static::END_DATE_FILTER); } - $this->endDate = $date; + $self = $this->copyIfImmutable(); + $self->endDate = $date; if ($inclusive !== null) { - $this->toggleOptions(static::EXCLUDE_END_DATE, !$inclusive); + $self = $self->toggleOptions(static::EXCLUDE_END_DATE, !$inclusive); } - if (!$this->hasFilter(static::END_DATE_FILTER)) { - return $this->addFilter(static::END_DATE_FILTER); + if (!$self->hasFilter(static::END_DATE_FILTER)) { + return $self->addFilter(static::END_DATE_FILTER); } - $this->handleChangedParameters(); + $self->handleChangedParameters(); - return $this; + return $self; } /** @@ -1449,13 +1508,21 @@ public function toIso8601String() */ public function toString() { + $format = $this->localToStringFormat ?? static::$toStringFormat; + + if ($format instanceof Closure) { + return $format($this); + } + $translator = ([$this->dateClass, 'getTranslator'])(); $parts = []; - $format = !$this->startDate->isStartOfDay() || $this->endDate && !$this->endDate->isStartOfDay() - ? 'Y-m-d H:i:s' - : 'Y-m-d'; + $format = $format ?? ( + !$this->startDate->isStartOfDay() || ($this->endDate && !$this->endDate->isStartOfDay()) + ? 'Y-m-d H:i:s' + : 'Y-m-d' + ); if ($this->recurrences !== null) { $parts[] = $this->translate('period_recurrences', [], $this->recurrences, $translator); @@ -1498,9 +1565,9 @@ public function cast(string $className) if (!method_exists($className, 'instance')) { if (is_a($className, DatePeriod::class, true)) { return new $className( - $this->getStartDate(), + $this->rawDate($this->getStartDate()), $this->getDateInterval(), - $this->getEndDate() ? $this->getIncludedEndDate() : $this->getRecurrences(), + $this->getEndDate() ? $this->rawDate($this->getIncludedEndDate()) : $this->getRecurrences(), $this->isStartExcluded() ? DatePeriod::EXCLUDE_START_DATE : 0 ); } @@ -1526,6 +1593,39 @@ public function toDatePeriod() return $this->cast(DatePeriod::class); } + /** + * Return `true` if the period has no custom filter and is guaranteed to be endless. + * + * Note that we can't check if a period is endless as soon as it has custom filters + * because filters can emit `CarbonPeriod::END_ITERATION` to stop the iteration in + * a way we can't predict without actually iterating the period. + */ + public function isUnfilteredAndEndLess(): bool + { + foreach ($this->filters as $filter) { + switch ($filter) { + case [static::RECURRENCES_FILTER, null]: + if ($this->recurrences !== null && is_finite($this->recurrences)) { + return false; + } + + break; + + case [static::END_DATE_FILTER, null]: + if ($this->endDate !== null && !$this->endDate->isEndOfTime()) { + return false; + } + + break; + + default: + return false; + } + } + + return true; + } + /** * Convert the date period into an array without changing current iteration state. * @@ -1533,6 +1633,10 @@ public function toDatePeriod() */ public function toArray() { + if ($this->isUnfilteredAndEndLess()) { + throw new EndLessPeriodException("Endless period can't be converted to array nor counted."); + } + $state = [ $this->key, $this->current ? $this->current->avoidMutation() : null, @@ -1564,6 +1668,16 @@ public function count() */ public function first() { + if ($this->isUnfilteredAndEndLess()) { + foreach ($this as $date) { + $this->rewind(); + + return $date; + } + + return null; + } + return ($this->toArray() ?: [])[0] ?? null; } @@ -1618,54 +1732,80 @@ public function __call($method, $parameters) return $roundedValue; } - $first = \count($parameters) >= 1 ? $parameters[0] : null; - $second = \count($parameters) >= 2 ? $parameters[1] : null; - switch ($method) { case 'start': case 'since': - return $this->setStartDate($first, $second); + self::setDefaultParameters($parameters, [ + [0, 'date', null], + ]); + + return $this->setStartDate(...$parameters); case 'sinceNow': - return $this->setStartDate(new Carbon(), $first); + return $this->setStartDate(new Carbon(), ...$parameters); case 'end': case 'until': - return $this->setEndDate($first, $second); + self::setDefaultParameters($parameters, [ + [0, 'date', null], + ]); + + return $this->setEndDate(...$parameters); case 'untilNow': - return $this->setEndDate(new Carbon(), $first); + return $this->setEndDate(new Carbon(), ...$parameters); case 'dates': case 'between': - return $this->setDates($first, $second); + self::setDefaultParameters($parameters, [ + [0, 'start', null], + [1, 'end', null], + ]); + + return $this->setDates(...$parameters); case 'recurrences': case 'times': - return $this->setRecurrences($first); + self::setDefaultParameters($parameters, [ + [0, 'recurrences', null], + ]); + + return $this->setRecurrences(...$parameters); case 'options': - return $this->setOptions($first); + self::setDefaultParameters($parameters, [ + [0, 'options', null], + ]); + + return $this->setOptions(...$parameters); case 'toggle': - return $this->toggleOptions($first, $second); + self::setDefaultParameters($parameters, [ + [0, 'options', null], + ]); + + return $this->toggleOptions(...$parameters); case 'filter': case 'push': - return $this->addFilter($first, $second); + return $this->addFilter(...$parameters); case 'prepend': - return $this->prependFilter($first, $second); + return $this->prependFilter(...$parameters); case 'filters': - return $this->setFilters($first ?: []); + self::setDefaultParameters($parameters, [ + [0, 'filters', []], + ]); + + return $this->setFilters(...$parameters); case 'interval': case 'each': case 'every': case 'step': case 'stepBy': - return $this->setDateInterval($first); + return $this->setDateInterval(...$parameters); case 'invert': return $this->invertDateInterval(); @@ -1685,15 +1825,19 @@ public function __call($method, $parameters) case 'minute': case 'seconds': case 'second': + case 'milliseconds': + case 'millisecond': + case 'microseconds': + case 'microsecond': return $this->setDateInterval(( // Override default P1D when instantiating via fluent setters. [$this->isDefaultInterval ? new CarbonInterval('PT0S') : $this->dateInterval, $method] - )( - \count($parameters) === 0 ? 1 : $first - )); + )(...$parameters)); } - if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + $dateClass = $this->dateClass; + + if ($this->localStrictModeEnabled ?? $dateClass::isStrictModeEnabled()) { throw new UnknownMethodException($method); } @@ -1709,18 +1853,19 @@ public function __call($method, $parameters) */ public function setTimezone($timezone) { - $this->tzName = $timezone; - $this->timezone = $timezone; + $self = $this->copyIfImmutable(); + $self->tzName = $timezone; + $self->timezone = $timezone; - if ($this->startDate) { - $this->setStartDate($this->startDate->setTimezone($timezone)); + if ($self->startDate) { + $self = $self->setStartDate($self->startDate->setTimezone($timezone)); } - if ($this->endDate) { - $this->setEndDate($this->endDate->setTimezone($timezone)); + if ($self->endDate) { + $self = $self->setEndDate($self->endDate->setTimezone($timezone)); } - return $this; + return $self; } /** @@ -1732,18 +1877,19 @@ public function setTimezone($timezone) */ public function shiftTimezone($timezone) { - $this->tzName = $timezone; - $this->timezone = $timezone; + $self = $this->copyIfImmutable(); + $self->tzName = $timezone; + $self->timezone = $timezone; - if ($this->startDate) { - $this->setStartDate($this->startDate->shiftTimezone($timezone)); + if ($self->startDate) { + $self = $self->setStartDate($self->startDate->shiftTimezone($timezone)); } - if ($this->endDate) { - $this->setEndDate($this->endDate->shiftTimezone($timezone)); + if ($self->endDate) { + $self = $self->setEndDate($self->endDate->shiftTimezone($timezone)); } - return $this; + return $self; } /** @@ -1888,7 +2034,7 @@ public function map(callable $callback) /** * Determines if the instance is equal to another. - * Warning: if options differ, instances wil never be equal. + * Warning: if options differ, instances will never be equal. * * @param mixed $period * @@ -1903,7 +2049,7 @@ public function eq($period): bool /** * Determines if the instance is equal to another. - * Warning: if options differ, instances wil never be equal. + * Warning: if options differ, instances will never be equal. * * @param mixed $period * @@ -1926,7 +2072,7 @@ public function equalTo($period): bool /** * Determines if the instance is not equal to another. - * Warning: if options differ, instances wil never be equal. + * Warning: if options differ, instances will never be equal. * * @param mixed $period * @@ -1941,7 +2087,7 @@ public function ne($period): bool /** * Determines if the instance is not equal to another. - * Warning: if options differ, instances wil never be equal. + * Warning: if options differ, instances will never be equal. * * @param mixed $period * @@ -2122,19 +2268,18 @@ public function isInProgress(): bool * @param float|int|string|\DateInterval|null $precision * @param string $function * - * @return $this + * @return static */ public function roundUnit($unit, $precision = 1, $function = 'round') { - $this->setStartDate($this->getStartDate()->roundUnit($unit, $precision, $function)); + $self = $this->copyIfImmutable(); + $self = $self->setStartDate($self->getStartDate()->roundUnit($unit, $precision, $function)); - if ($this->endDate) { - $this->setEndDate($this->getEndDate()->roundUnit($unit, $precision, $function)); + if ($self->endDate) { + $self = $self->setEndDate($self->getEndDate()->roundUnit($unit, $precision, $function)); } - $this->setDateInterval($this->getDateInterval()->roundUnit($unit, $precision, $function)); - - return $this; + return $self->setDateInterval($self->getDateInterval()->roundUnit($unit, $precision, $function)); } /** @@ -2143,7 +2288,7 @@ public function roundUnit($unit, $precision = 1, $function = 'round') * @param string $unit * @param float|int|string|\DateInterval|null $precision * - * @return $this + * @return static */ public function floorUnit($unit, $precision = 1) { @@ -2156,7 +2301,7 @@ public function floorUnit($unit, $precision = 1) * @param string $unit * @param float|int|string|\DateInterval|null $precision * - * @return $this + * @return static */ public function ceilUnit($unit, $precision = 1) { @@ -2169,11 +2314,14 @@ public function ceilUnit($unit, $precision = 1) * @param float|int|string|\DateInterval|null $precision * @param string $function * - * @return $this + * @return static */ public function round($precision = null, $function = 'round') { - return $this->roundWith($precision ?? (string) $this->getDateInterval(), $function); + return $this->roundWith( + $precision ?? $this->getDateInterval()->setLocalTranslator(TranslatorImmutable::get('en'))->forHumans(), + $function + ); } /** @@ -2181,7 +2329,7 @@ public function round($precision = null, $function = 'round') * * @param float|int|string|\DateInterval|null $precision * - * @return $this + * @return static */ public function floor($precision = null) { @@ -2193,7 +2341,7 @@ public function floor($precision = null) * * @param float|int|string|\DateInterval|null $precision * - * @return $this + * @return static */ public function ceil($precision = null) { @@ -2382,9 +2530,9 @@ protected function endIteration() protected function handleChangedParameters() { if (($this->getOptions() & static::IMMUTABLE) && $this->dateClass === Carbon::class) { - $this->setDateClass(CarbonImmutable::class); + $this->dateClass = CarbonImmutable::class; } elseif (!($this->getOptions() & static::IMMUTABLE) && $this->dateClass === CarbonImmutable::class) { - $this->setDateClass(Carbon::class); + $this->dateClass = Carbon::class; } $this->validationResult = null; @@ -2544,14 +2692,51 @@ private function makeDateTime($value): ?DateTimeInterface if (\is_string($value)) { $value = trim($value); - if (!preg_match('/^P[0-9T]/', $value) && - !preg_match('/^R[0-9]/', $value) && - preg_match('/[a-z0-9]/i', $value) + if (!preg_match('/^P[\dT]/', $value) && + !preg_match('/^R\d/', $value) && + preg_match('/[a-z\d]/i', $value) ) { - return Carbon::parse($value, $this->tzName); + $dateClass = $this->dateClass; + + return $dateClass::parse($value, $this->tzName); } } return null; } + + private function isInfiniteDate($date): bool + { + return $date instanceof CarbonInterface && ($date->isEndOfTime() || $date->isStartOfTime()); + } + + private function rawDate($date): ?DateTimeInterface + { + if ($date === false || $date === null) { + return null; + } + + if ($date instanceof CarbonInterface) { + return $date->isMutable() + ? $date->toDateTime() + : $date->toDateTimeImmutable(); + } + + if (\in_array(\get_class($date), [DateTime::class, DateTimeImmutable::class], true)) { + return $date; + } + + $class = $date instanceof DateTime ? DateTime::class : DateTimeImmutable::class; + + return new $class($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); + } + + private static function setDefaultParameters(array &$parameters, array $defaults): void + { + foreach ($defaults as [$index, $name, $value]) { + if (!\array_key_exists($index, $parameters) && !\array_key_exists($name, $parameters)) { + $parameters[$index] = $value; + } + } + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php new file mode 100644 index 000000000..f0d0ee281 --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +class CarbonPeriodImmutable extends CarbonPeriod +{ + /** + * Default date class of iteration items. + * + * @var string + */ + protected const DEFAULT_DATE_CLASS = CarbonImmutable::class; + + /** + * Date class of iteration items. + * + * @var string + */ + protected $dateClass = CarbonImmutable::class; + + /** + * Prepare the instance to be set (self if mutable to be mutated, + * copy if immutable to generate a new instance). + * + * @return static + */ + protected function copyIfImmutable() + { + return $this->constructed ? clone $this : $this; + } +} diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php index b4d16ba97..c81899f1e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php +++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php @@ -30,7 +30,7 @@ protected static function parseNumericTimezone($timezone) throw new InvalidTimeZoneException('Absolute timezone offset cannot be greater than 100.'); } - return ($timezone >= 0 ? '+' : '').$timezone.':00'; + return ($timezone >= 0 ? '+' : '').ltrim($timezone, '+').':00'; } protected static function getDateTimeZoneNameFromMixed($timezone) @@ -101,15 +101,15 @@ public static function instance($object = null, $objectDump = null) $tz = static::getDateTimeZoneFromName($object); } - if ($tz === false) { - if (Carbon::isStrictModeEnabled()) { - throw new InvalidTimeZoneException('Unknown or bad timezone ('.($objectDump ?: $object).')'); - } + if ($tz !== false) { + return new static($tz->getName()); + } - return false; + if (Carbon::isStrictModeEnabled()) { + throw new InvalidTimeZoneException('Unknown or bad timezone ('.($objectDump ?: $object).')'); } - return new static($tz->getName()); + return false; } /** @@ -231,15 +231,15 @@ public function toRegionTimeZone(DateTimeInterface $date = null) { $tz = $this->toRegionName($date); - if ($tz === false) { - if (Carbon::isStrictModeEnabled()) { - throw new InvalidTimeZoneException('Unknown timezone for offset '.$this->getOffset($date ?: Carbon::now($this)).' seconds.'); - } + if ($tz !== false) { + return new static($tz); + } - return false; + if (Carbon::isStrictModeEnabled()) { + throw new InvalidTimeZoneException('Unknown timezone for offset '.$this->getOffset($date ?: Carbon::now($this)).' seconds.'); } - return new static($tz); + return false; } /** @@ -252,6 +252,18 @@ public function __toString() return $this->getName(); } + /** + * Return the type number: + * + * Type 1; A UTC offset, such as -0300 + * Type 2; A timezone abbreviation, such as GMT + * Type 3: A timezone identifier, such as Europe/London + */ + public function getType(): int + { + return preg_match('/"timezone_type";i:(\d)/', serialize($this), $match) ? (int) $match[1] : 3; + } + /** * Create a CarbonTimeZone from mixed input. * diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php deleted file mode 100644 index ccc457fcd..000000000 --- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon\Doctrine; - -use Doctrine\DBAL\Platforms\AbstractPlatform; - -interface CarbonDoctrineType -{ - public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform); - - public function convertToPHPValue($value, AbstractPlatform $platform); - - public function convertToDatabaseValue($value, AbstractPlatform $platform); -} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php deleted file mode 100644 index bf476a77e..000000000 --- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon\Doctrine; - -use Doctrine\DBAL\Platforms\AbstractPlatform; - -class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType -{ - /** - * {@inheritdoc} - * - * @return string - */ - public function getName() - { - return 'carbon_immutable'; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function requiresSQLCommentHint(AbstractPlatform $platform) - { - return true; - } -} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php deleted file mode 100644 index 9289d84d3..000000000 --- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon\Doctrine; - -use Doctrine\DBAL\Platforms\AbstractPlatform; - -class CarbonType extends DateTimeType implements CarbonDoctrineType -{ - /** - * {@inheritdoc} - * - * @return string - */ - public function getName() - { - return 'carbon'; - } - - /** - * {@inheritdoc} - * - * @return bool - */ - public function requiresSQLCommentHint(AbstractPlatform $platform) - { - return true; - } -} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php deleted file mode 100644 index 8f2fdee81..000000000 --- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php +++ /dev/null @@ -1,116 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon\Doctrine; - -use Carbon\Carbon; -use Carbon\CarbonInterface; -use DateTimeInterface; -use Doctrine\DBAL\Platforms\AbstractPlatform; -use Doctrine\DBAL\Types\ConversionException; -use Exception; - -/** - * @template T of CarbonInterface - */ -trait CarbonTypeConverter -{ - /** - * @return class-string - */ - protected function getCarbonClassName(): string - { - return Carbon::class; - } - - /** - * @return string - */ - public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform) - { - $precision = ($fieldDeclaration['precision'] ?: 10) === 10 - ? DateTimeDefaultPrecision::get() - : $fieldDeclaration['precision']; - $type = parent::getSQLDeclaration($fieldDeclaration, $platform); - - if (!$precision) { - return $type; - } - - if (str_contains($type, '(')) { - return preg_replace('/\(\d+\)/', "($precision)", $type); - } - - [$before, $after] = explode(' ', "$type "); - - return trim("$before($precision) $after"); - } - - /** - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - * - * @return T|null - */ - public function convertToPHPValue($value, AbstractPlatform $platform) - { - $class = $this->getCarbonClassName(); - - if ($value === null || is_a($value, $class)) { - return $value; - } - - if ($value instanceof DateTimeInterface) { - return $class::instance($value); - } - - $date = null; - $error = null; - - try { - $date = $class::parse($value); - } catch (Exception $exception) { - $error = $exception; - } - - if (!$date) { - throw ConversionException::conversionFailedFormat( - $value, - $this->getName(), - 'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()', - $error - ); - } - - return $date; - } - - /** - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - * - * @return string|null - */ - public function convertToDatabaseValue($value, AbstractPlatform $platform) - { - if ($value === null) { - return $value; - } - - if ($value instanceof DateTimeInterface) { - return $value->format('Y-m-d H:i:s.u'); - } - - throw ConversionException::conversionFailedInvalidType( - $value, - $this->getName(), - ['null', 'DateTime', 'Carbon'] - ); - } -} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php deleted file mode 100644 index 642fd4135..000000000 --- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Carbon\Doctrine; - -class DateTimeDefaultPrecision -{ - private static $precision = 6; - - /** - * Change the default Doctrine datetime and datetime_immutable precision. - * - * @param int $precision - */ - public static function set(int $precision): void - { - self::$precision = $precision; - } - - /** - * Get the default Doctrine datetime and datetime_immutable precision. - * - * @return int - */ - public static function get(): int - { - return self::$precision; - } -} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php deleted file mode 100644 index 29b0bb955..000000000 --- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php +++ /dev/null @@ -1,16 +0,0 @@ - */ - use CarbonTypeConverter; -} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php index b3a087190..3ca8837d1 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php @@ -11,19 +11,38 @@ namespace Carbon\Exceptions; -use Exception; +use Throwable; class BadComparisonUnitException extends UnitException { + /** + * The unit. + * + * @var string + */ + protected $unit; + /** * Constructor. * * @param string $unit * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($unit, $code = 0, Exception $previous = null) + public function __construct($unit, $code = 0, Throwable $previous = null) { + $this->unit = $unit; + parent::__construct("Bad comparison unit: '$unit'", $code, $previous); } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php index d5cd5564c..2e222e54e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php @@ -12,19 +12,38 @@ namespace Carbon\Exceptions; use BadMethodCallException as BaseBadMethodCallException; -use Exception; +use Throwable; class BadFluentConstructorException extends BaseBadMethodCallException implements BadMethodCallException { + /** + * The method. + * + * @var string + */ + protected $method; + /** * Constructor. * * @param string $method * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($method, $code = 0, Exception $previous = null) + public function __construct($method, $code = 0, Throwable $previous = null) { + $this->method = $method; + parent::__construct(sprintf("Unknown fluent constructor '%s'.", $method), $code, $previous); } + + /** + * Get the method. + * + * @return string + */ + public function getMethod(): string + { + return $this->method; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php index 1d7ec542a..4ceaa2ef0 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php @@ -12,19 +12,38 @@ namespace Carbon\Exceptions; use BadMethodCallException as BaseBadMethodCallException; -use Exception; +use Throwable; class BadFluentSetterException extends BaseBadMethodCallException implements BadMethodCallException { + /** + * The setter. + * + * @var string + */ + protected $setter; + /** * Constructor. * - * @param string $method + * @param string $setter * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous + */ + public function __construct($setter, $code = 0, Throwable $previous = null) + { + $this->setter = $setter; + + parent::__construct(sprintf("Unknown fluent setter '%s'", $setter), $code, $previous); + } + + /** + * Get the setter. + * + * @return string */ - public function __construct($method, $code = 0, Exception $previous = null) + public function getSetter(): string { - parent::__construct(sprintf("Unknown fluent setter '%s'", $method), $code, $previous); + return $this->setter; } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php index 73c2dd86f..108206d3e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php @@ -13,4 +13,5 @@ interface BadMethodCallException extends Exception { + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php new file mode 100644 index 000000000..e10492693 --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; + +final class EndLessPeriodException extends BaseRuntimeException implements RuntimeException +{ + // +} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php index 3bbbd77d5..8ad747e75 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php @@ -13,4 +13,5 @@ interface Exception { + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php index a48d4f936..db334c6c9 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php @@ -11,20 +11,38 @@ namespace Carbon\Exceptions; -use Exception; use RuntimeException as BaseRuntimeException; +use Throwable; class ImmutableException extends BaseRuntimeException implements RuntimeException { + /** + * The value. + * + * @var string + */ + protected $value; + /** * Constructor. * * @param string $value the immutable type/value * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($value, $code = 0, Exception $previous = null) + public function __construct($value, $code = 0, Throwable $previous = null) { + $this->value = $value; parent::__construct("$value is immutable.", $code, $previous); } + + /** + * Get the value. + * + * @return string + */ + public function getValue(): string + { + return $this->value; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php index 9739f4d18..5b013cd50 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php @@ -13,4 +13,5 @@ interface InvalidArgumentException extends Exception { + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php index d2f370199..a421401f6 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidCastException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php index 99bb91c05..c9ecb6b06 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php @@ -11,8 +11,8 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; class InvalidDateException extends BaseInvalidArgumentException implements InvalidArgumentException { @@ -36,9 +36,9 @@ class InvalidDateException extends BaseInvalidArgumentException implements Inval * @param string $field * @param mixed $value * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($field, $value, $code = 0, Exception $previous = null) + public function __construct($field, $value, $code = 0, Throwable $previous = null) { $this->field = $field; $this->value = $value; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php index 3341b49d0..92d55fe35 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidFormatException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php index 5f9f142ee..69cf4128a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidIntervalException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php index a37e3f5ec..9bd84a96d 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidPeriodDateException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php index ede47712b..cf2c90240 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidPeriodParameterException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php index 892e16e81..f72595583 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidTimeZoneException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php index 3fbe3fc47..2c8ec9ba0 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class InvalidTypeException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php index 2b4c48e32..7a87632c4 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php @@ -12,24 +12,39 @@ namespace Carbon\Exceptions; use Carbon\CarbonInterface; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; class NotACarbonClassException extends BaseInvalidArgumentException implements InvalidArgumentException { + /** + * The className. + * + * @var string + */ + protected $className; + /** * Constructor. * * @param string $className * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous + */ + public function __construct($className, $code = 0, Throwable $previous = null) + { + $this->className = $className; + + parent::__construct(sprintf('Given class does not implement %s: %s', CarbonInterface::class, $className), $code, $previous); + } + + /** + * Get the className. + * + * @return string */ - public function __construct($className, $code = 0, Exception $previous = null) + public function getClassName(): string { - parent::__construct(sprintf( - 'Given class does not implement %s: %s', - CarbonInterface::class, - $className - ), $code, $previous); + return $this->className; } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php index 41bb62902..4edd7a484 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class NotAPeriodException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php index adbc36cd5..f2c546843 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php @@ -11,8 +11,8 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; class NotLocaleAwareException extends BaseInvalidArgumentException implements InvalidArgumentException { @@ -21,9 +21,9 @@ class NotLocaleAwareException extends BaseInvalidArgumentException implements In * * @param mixed $object * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($object, $code = 0, Exception $previous = null) + public function __construct($object, $code = 0, Throwable $previous = null) { $dump = \is_object($object) ? \get_class($object) : \gettype($object); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php index 54822d954..2c586d0b7 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php @@ -11,8 +11,8 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; // This will extends OutOfRangeException instead of InvalidArgumentException since 3.0.0 // use OutOfRangeException as BaseOutOfRangeException; @@ -55,9 +55,9 @@ class OutOfRangeException extends BaseInvalidArgumentException implements Invali * @param mixed $max * @param mixed $value * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($unit, $min, $max, $value, $code = 0, Exception $previous = null) + public function __construct($unit, $min, $max, $value, $code = 0, Throwable $previous = null) { $this->unit = $unit; $this->min = $min; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php index 0314c5d88..5416fd149 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php @@ -11,23 +11,78 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; class ParseErrorException extends BaseInvalidArgumentException implements InvalidArgumentException { + /** + * The expected. + * + * @var string + */ + protected $expected; + + /** + * The actual. + * + * @var string + */ + protected $actual; + + /** + * The help message. + * + * @var string + */ + protected $help; + /** * Constructor. * * @param string $expected * @param string $actual * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($expected, $actual, $help = '', $code = 0, Exception $previous = null) + public function __construct($expected, $actual, $help = '', $code = 0, Throwable $previous = null) { + $this->expected = $expected; + $this->actual = $actual; + $this->help = $help; + $actual = $actual === '' ? 'data is missing' : "get '$actual'"; parent::__construct(trim("Format expected $expected but $actual\n$help"), $code, $previous); } + + /** + * Get the expected. + * + * @return string + */ + public function getExpected(): string + { + return $this->expected; + } + + /** + * Get the actual. + * + * @return string + */ + public function getActual(): string + { + return $this->actual; + } + + /** + * Get the help message. + * + * @return string + */ + public function getHelp(): string + { + return $this->help; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php index 24bf5a68b..ad196f79d 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php @@ -13,4 +13,5 @@ interface RuntimeException extends Exception { + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php index 8bd8653e1..ee99953b4 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; class UnitException extends BaseInvalidArgumentException implements InvalidArgumentException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php index 39ee12c5b..0e7230563 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php @@ -11,19 +11,38 @@ namespace Carbon\Exceptions; -use Exception; +use Throwable; class UnitNotConfiguredException extends UnitException { + /** + * The unit. + * + * @var string + */ + protected $unit; + /** * Constructor. * * @param string $unit * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($unit, $code = 0, Exception $previous = null) + public function __construct($unit, $code = 0, Throwable $previous = null) { + $this->unit = $unit; + parent::__construct("Unit $unit have no configuration to get total from other units.", $code, $previous); } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php index 6c8c01b6c..5c504975a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php @@ -11,20 +11,39 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; class UnknownGetterException extends BaseInvalidArgumentException implements InvalidArgumentException { + /** + * The getter. + * + * @var string + */ + protected $getter; + /** * Constructor. * - * @param string $name getter name + * @param string $getter getter name * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous + */ + public function __construct($getter, $code = 0, Throwable $previous = null) + { + $this->getter = $getter; + + parent::__construct("Unknown getter '$getter'", $code, $previous); + } + + /** + * Get the getter. + * + * @return string */ - public function __construct($name, $code = 0, Exception $previous = null) + public function getGetter(): string { - parent::__construct("Unknown getter '$name'", $code, $previous); + return $this->getter; } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php index 901db986a..75273a706 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php @@ -12,19 +12,38 @@ namespace Carbon\Exceptions; use BadMethodCallException as BaseBadMethodCallException; -use Exception; +use Throwable; class UnknownMethodException extends BaseBadMethodCallException implements BadMethodCallException { + /** + * The method. + * + * @var string + */ + protected $method; + /** * Constructor. * * @param string $method * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($method, $code = 0, Exception $previous = null) + public function __construct($method, $code = 0, Throwable $previous = null) { + $this->method = $method; + parent::__construct("Method $method does not exist.", $code, $previous); } + + /** + * Get the method. + * + * @return string + */ + public function getMethod(): string + { + return $this->method; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php index c9e9c9ff2..a795f5d72 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php @@ -11,20 +11,39 @@ namespace Carbon\Exceptions; -use Exception; use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; class UnknownSetterException extends BaseInvalidArgumentException implements BadMethodCallException { + /** + * The setter. + * + * @var string + */ + protected $setter; + /** * Constructor. * - * @param string $name setter name + * @param string $setter setter name * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous + */ + public function __construct($setter, $code = 0, Throwable $previous = null) + { + $this->setter = $setter; + + parent::__construct("Unknown setter '$setter'", $code, $previous); + } + + /** + * Get the setter. + * + * @return string */ - public function __construct($name, $code = 0, Exception $previous = null) + public function getSetter(): string { - parent::__construct("Unknown setter '$name'", $code, $previous); + return $this->setter; } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php index d965c82ae..ecd7f7a59 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php @@ -11,19 +11,38 @@ namespace Carbon\Exceptions; -use Exception; +use Throwable; class UnknownUnitException extends UnitException { + /** + * The unit. + * + * @var string + */ + protected $unit; + /** * Constructor. * * @param string $unit * @param int $code - * @param Exception|null $previous + * @param Throwable|null $previous */ - public function __construct($unit, $code = 0, Exception $previous = null) + public function __construct($unit, $code = 0, Throwable $previous = null) { + $this->unit = $unit; + parent::__construct("Unknown unit '$unit'.", $code, $previous); } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php index 6f8b39f5f..1654ab11b 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php @@ -11,20 +11,9 @@ namespace Carbon\Exceptions; -use Exception; use RuntimeException as BaseRuntimeException; class UnreachableException extends BaseRuntimeException implements RuntimeException { - /** - * Constructor. - * - * @param string $message - * @param int $code - * @param Exception|null $previous - */ - public function __construct($message, $code = 0, Exception $previous = null) - { - parent::__construct($message, $code, $previous); - } + // } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Factory.php b/api/vendor/nesbot/carbon/src/Carbon/Factory.php index f8c72890c..d497535f7 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Factory.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Factory.php @@ -177,10 +177,10 @@ * parameter of null. * /!\ Use this method for unit tests only. * @method void setToStringFormat($format) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. - * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and - * use other method or custom format passed to format() method if you need to dump an other string + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string * format. - * Set the default format used when type juggling a Carbon instance to a string + * Set the default format used when type juggling a Carbon instance to a string. * @method void setTranslator(TranslatorInterface $translator) Set the default translator instance to use. * @method Carbon setUtf8($utf8) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. * You should rather use UTF-8 language packages on every machine. @@ -231,7 +231,7 @@ * You should rather use the ->settings() method. * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants * are available for quarters, years, decade, centuries, millennia (singular and plural forms). - * @method mixed withTestNow($testNow = null, $callback = null) Temporarily sets a static date to be used within the callback. + * @method mixed withTestNow($testNow, $callback) Temporarily sets a static date to be used within the callback. * Using setTestNow to set the date, executing the callback, then * clearing the test instance. * /!\ Use this method for unit tests only. diff --git a/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php index 596ee8064..d88a1cf67 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php +++ b/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php @@ -12,6 +12,9 @@ namespace Carbon; use Closure; +use DateTimeImmutable; +use DateTimeZone; +use Psr\Clock\ClockInterface; /** * A factory to generate CarbonImmutable instances with common settings. @@ -111,7 +114,6 @@ * @method CarbonImmutable maxValue() Create a Carbon instance for the greatest supported date. * @method CarbonImmutable minValue() Create a Carbon instance for the lowest supported date. * @method void mixin($mixin) Mix another object into the class. - * @method CarbonImmutable now($tz = null) Get a Carbon instance for the current date and time. * @method CarbonImmutable parse($time = null, $tz = null) Create a carbon instance from a string. * This is an alias for the constructor that allows better fluent syntax * as it allows you to do Carbon::parse('Monday next week')->fn() rather @@ -175,10 +177,10 @@ * parameter of null. * /!\ Use this method for unit tests only. * @method void setToStringFormat($format) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. - * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and - * use other method or custom format passed to format() method if you need to dump an other string + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string * format. - * Set the default format used when type juggling a Carbon instance to a string + * Set the default format used when type juggling a Carbon instance to a string. * @method void setTranslator(TranslatorInterface $translator) Set the default translator instance to use. * @method CarbonImmutable setUtf8($utf8) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. * You should rather use UTF-8 language packages on every machine. @@ -229,7 +231,7 @@ * You should rather use the ->settings() method. * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants * are available for quarters, years, decade, centuries, millennia (singular and plural forms). - * @method mixed withTestNow($testNow = null, $callback = null) Temporarily sets a static date to be used within the callback. + * @method mixed withTestNow($testNow, $callback) Temporarily sets a static date to be used within the callback. * Using setTestNow to set the date, executing the callback, then * clearing the test instance. * /!\ Use this method for unit tests only. @@ -237,7 +239,21 @@ * * */ -class FactoryImmutable extends Factory +class FactoryImmutable extends Factory implements ClockInterface { protected $className = CarbonImmutable::class; + + /** + * Get a Carbon instance for the current date and time. + * + * @param DateTimeZone|string|int|null $tz + * + * @return CarbonImmutable + */ + public function now($tz = null): DateTimeImmutable + { + $className = $this->className; + + return new $className(null, $tz); + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php index 75fe47f6d..35a22b1d2 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php index 362009e29..35180965a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php index 362009e29..35180965a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php index 0ac09958e..2d4200845 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php index 0ac09958e..2d4200845 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php index e6f0531d4..b3fb1cfec 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php @@ -16,6 +16,7 @@ * - JD Isaacks * - Atef Ben Ali (atefBB) * - Mohamed Sabil (mohamedsabil83) + * - Abdullah-Alhariri */ $months = [ 'يناير', @@ -90,4 +91,5 @@ ], 'meridiem' => ['ص', 'م'], 'weekend' => [5, 6], + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php index 55bb10c33..2792745c6 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php index 362009e29..35180965a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php index e790b99e6..503c60d2e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php @@ -9,5 +9,10 @@ * file that was distributed with this source code. */ +/* + * Authors: + * - Abdullah-Alhariri + */ return array_replace_recursive(require __DIR__.'/ar.php', [ + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php index 362009e29..35180965a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php index 10aaa2ede..550b0c73a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php @@ -15,6 +15,7 @@ * - JD Isaacks * - Atef Ben Ali (atefBB) * - Mohamed Sabil (mohamedsabil83) + * - Abdullah-Alhariri */ $months = [ 'يناير', @@ -89,4 +90,5 @@ ], 'meridiem' => ['ص', 'م'], 'weekend' => [5, 6], + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php index 362009e29..35180965a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php index 0ac09958e..2d4200845 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -24,4 +25,5 @@ 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php index 5dc29388e..169fe88a9 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php @@ -12,6 +12,7 @@ /* * Authors: * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri */ return array_replace_recursive(require __DIR__.'/ar.php', [ 'formats' => [ @@ -23,4 +24,5 @@ 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/be.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/be.php index 51b4d0cc1..ee736365a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/be.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/be.php @@ -9,13 +9,12 @@ * file that was distributed with this source code. */ -// @codeCoverageIgnoreStart - use Carbon\CarbonInterface; use Symfony\Component\Translation\PluralizationRules; -if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) { - PluralizationRules::set(function ($number) { +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); }, 'be'); } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php index 861acd2a0..1c16421ad 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php @@ -9,5 +9,15 @@ * file that was distributed with this source code. */ +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'ca'); + }, 'ca_ES_Valencia'); +} +// @codeCoverageIgnoreEnd + return array_replace_recursive(require __DIR__.'/ca.php', [ ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ckb.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ckb.php new file mode 100644 index 000000000..acf4dc280 --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ckb.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Swara Mohammed + */ +$months = [ + 'ڕێبەندان', + 'ڕەشەمە', + 'نەورۆز', + 'گوڵان', + 'جۆزەردان', + 'پوشپەڕ', + 'گەلاوێژ', + 'خەرمانان', + 'ڕەزبەر', + 'گەڵاڕێزان', + 'سەرماوەرز', + 'بەفرانبار', +]; + +return [ + 'year' => implode('|', ['{0}:count ساڵێک', '{1}ساڵێک', '{2}دوو ساڵ', ']2,11[:count ساڵ', ']10,Inf[:count ساڵ']), + 'a_year' => implode('|', ['{0}:count ساڵێک', '{1}ساڵێک', '{2}دوو ساڵ', ']2,11[:count ساڵ', ']10,Inf[:count ساڵ']), + 'month' => implode('|', ['{0}:count مانگێک', '{1}مانگێک', '{2}دوو مانگ', ']2,11[:count مانگ', ']10,Inf[:count مانگ']), + 'a_month' => implode('|', ['{0}:count مانگێک', '{1}مانگێک', '{2}دوو مانگ', ']2,11[:count مانگ', ']10,Inf[:count مانگ']), + 'week' => implode('|', ['{0}:count هەفتەیەک', '{1}هەفتەیەک', '{2}دوو هەفتە', ']2,11[:count هەفتە', ']10,Inf[:count هەفتە']), + 'a_week' => implode('|', ['{0}:count هەفتەیەک', '{1}هەفتەیەک', '{2}دوو هەفتە', ']2,11[:count هەفتە', ']10,Inf[:count هەفتە']), + 'day' => implode('|', ['{0}:count ڕۆژێک', '{1}ڕۆژێک', '{2}دوو ڕۆژ', ']2,11[:count ڕۆژ', ']10,Inf[:count ڕۆژ']), + 'a_day' => implode('|', ['{0}:count ڕۆژێک', '{1}ڕۆژێک', '{2}دوو ڕۆژ', ']2,11[:count ڕۆژ', ']10,Inf[:count ڕۆژ']), + 'hour' => implode('|', ['{0}:count کاتژمێرێک', '{1}کاتژمێرێک', '{2}دوو کاتژمێر', ']2,11[:count کاتژمێر', ']10,Inf[:count کاتژمێر']), + 'a_hour' => implode('|', ['{0}:count کاتژمێرێک', '{1}کاتژمێرێک', '{2}دوو کاتژمێر', ']2,11[:count کاتژمێر', ']10,Inf[:count کاتژمێر']), + 'minute' => implode('|', ['{0}:count خولەکێک', '{1}خولەکێک', '{2}دوو خولەک', ']2,11[:count خولەک', ']10,Inf[:count خولەک']), + 'a_minute' => implode('|', ['{0}:count خولەکێک', '{1}خولەکێک', '{2}دوو خولەک', ']2,11[:count خولەک', ']10,Inf[:count خولەک']), + 'second' => implode('|', ['{0}:count چرکەیەک', '{1}چرکەیەک', '{2}دوو چرکە', ']2,11[:count چرکە', ']10,Inf[:count چرکە']), + 'a_second' => implode('|', ['{0}:count چرکەیەک', '{1}چرکەیەک', '{2}دوو چرکە', ']2,11[:count چرکە', ']10,Inf[:count چرکە']), + 'ago' => 'پێش :time', + 'from_now' => ':time لە ئێستاوە', + 'after' => 'دوای :time', + 'before' => 'پێش :time', + 'diff_now' => 'ئێستا', + 'diff_today' => 'ئەمڕۆ', + 'diff_today_regexp' => 'ڕۆژ(?:\\s+لە)?(?:\\s+کاتژمێر)?', + 'diff_yesterday' => 'دوێنێ', + 'diff_yesterday_regexp' => 'دوێنێ(?:\\s+لە)?(?:\\s+کاتژمێر)?', + 'diff_tomorrow' => 'سبەینێ', + 'diff_tomorrow_regexp' => 'سبەینێ(?:\\s+لە)?(?:\\s+کاتژمێر)?', + 'diff_before_yesterday' => 'پێش دوێنێ', + 'diff_after_tomorrow' => 'دوای سبەینێ', + 'period_recurrences' => implode('|', ['{0}جار', '{1}جار', '{2}:count دووجار', ']2,11[:count جار', ']10,Inf[:count جار']), + 'period_interval' => 'هەموو :interval', + 'period_start_date' => 'لە :date', + 'period_end_date' => 'بۆ :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['یەکشەممە', 'دووشەممە', 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'هەینی', 'شەممە'], + 'weekdays_short' => ['یەکشەممە', 'دووشەممە', 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'هەینی', 'شەممە'], + 'weekdays_min' => ['یەکشەممە', 'دووشەممە', 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'هەینی', 'شەممە'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[ئەمڕۆ لە کاتژمێر] LT', + 'nextDay' => '[سبەینێ لە کاتژمێر] LT', + 'nextWeek' => 'dddd [لە کاتژمێر] LT', + 'lastDay' => '[دوێنێ لە کاتژمێر] LT', + 'lastWeek' => 'dddd [لە کاتژمێر] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['پ.ن', 'د.ن'], + 'weekend' => [5, 6], +]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/cs.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/cs.php index 8cff9a019..c01e3ccc8 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/cs.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/cs.php @@ -101,7 +101,8 @@ 'after' => $za, 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, - 'months' => ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], + 'months' => ['ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'], + 'months_standalone' => ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], 'months_short' => ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'], 'weekdays' => ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], 'weekdays_short' => ['ned', 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob'], diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/cy.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/cy.php index ab7c45a4f..119274f01 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/cy.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/cy.php @@ -60,7 +60,7 @@ 'ordinal' => function ($number) { return $number.( $number > 20 - ? (\in_array($number, [40, 50, 60, 80, 100]) ? 'fed' : 'ain') + ? (\in_array((int) $number, [40, 50, 60, 80, 100], true) ? 'fed' : 'ain') : ([ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed', // 11eg to 20fed diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/da.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/da.php index 4e6640a67..322f91d5b 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/da.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/da.php @@ -18,6 +18,7 @@ * - Jens Herlevsen * - Ulrik McArdle (mcardle) * - Frederik Sauer (FrittenKeeZ) + * - Janus Bahs Jacquet (kokoshneta) */ return [ 'year' => ':count år|:count år', @@ -41,7 +42,7 @@ 'second' => ':count sekund|:count sekunder', 'a_second' => 'få sekunder|:count sekunder', 's' => ':count s.', - 'ago' => ':time siden', + 'ago' => 'for :time siden', 'from_now' => 'om :time', 'after' => ':time efter', 'before' => ':time før', @@ -70,9 +71,9 @@ ], 'ordinal' => ':number.', 'months' => ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'], - 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj.', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'], 'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'], - 'weekdays_short' => ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'], + 'weekdays_short' => ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], 'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'], 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/de.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/de.php index ff00c9745..3b70750e4 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/de.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/de.php @@ -105,4 +105,13 @@ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' und '], + 'ordinal_words' => [ + 'of' => 'im', + 'first' => 'erster', + 'second' => 'zweiter', + 'third' => 'dritter', + 'fourth' => 'vierten', + 'fifth' => 'fünfter', + 'last' => 'letzten', + ], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/en.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/en.php index a8633fef0..f81f617e3 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/en.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/en.php @@ -72,7 +72,7 @@ $lastDigit = $number % 10; return $number.( - (~~($number % 100 / 10) === 1) ? 'th' : ( + ((int) ($number % 100 / 10) === 1) ? 'th' : ( ($lastDigit === 1) ? 'st' : ( ($lastDigit === 2) ? 'nd' : ( ($lastDigit === 3) ? 'rd' : 'th' diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php index e2dd81db5..10d9cd8f1 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php @@ -11,4 +11,12 @@ return array_replace_recursive(require __DIR__.'/en.php', [ 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/es.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/es.php index f77ec39c6..1c4fcfd0b 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/es.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/es.php @@ -26,6 +26,7 @@ * - quinterocesar * - Daniel Commesse Liévanos (danielcommesse) * - Pete Scopes (pdscopes) + * - gam04 */ use Carbon\CarbonInterface; @@ -108,4 +109,13 @@ 'day_of_first_week_of_year' => 4, 'list' => [', ', ' y '], 'meridiem' => ['a. m.', 'p. m.'], + 'ordinal_words' => [ + 'of' => 'de', + 'first' => 'primer', + 'second' => 'segundo', + 'third' => 'tercer', + 'fourth' => 'cuarto', + 'fifth' => 'quinto', + 'last' => 'último', + ], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/fi.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/fi.php index 2003e1eab..edf2d6d35 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/fi.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/fi.php @@ -74,8 +74,10 @@ 'LTS' => 'HH.mm:ss', 'L' => 'D.M.YYYY', 'LL' => 'dddd D. MMMM[ta] YYYY', + 'll' => 'ddd D. MMM YYYY', 'LLL' => 'D.MM. HH.mm', 'LLLL' => 'D. MMMM[ta] YYYY HH.mm', + 'llll' => 'D. MMM YY HH.mm', ], 'weekdays' => ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'], 'weekdays_short' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/fr.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/fr.php index 73fe5e41b..f4c7247b4 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/fr.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/fr.php @@ -90,7 +90,7 @@ 'weekdays_min' => ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'], 'ordinal' => function ($number, $period) { switch ($period) { - // In french, only the first has be ordinal, other number remains cardinal + // In French, only the first has to be ordinal, other number remains cardinal // @link https://fr.wikihow.com/%C3%A9crire-la-date-en-fran%C3%A7ais case 'D': return $number.($number === 1 ? 'er' : ''); @@ -111,4 +111,13 @@ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' et '], + 'ordinal_words' => [ + 'of' => 'de', + 'first' => 'premier', + 'second' => 'deuxième', + 'third' => 'troisième', + 'fourth' => 'quatrième', + 'fifth' => 'cinquième', + 'last' => 'dernier', + ], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php index b2d2ac113..b7583eecd 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php @@ -82,7 +82,7 @@ 'second_before' => ':count másodperccel', 's_before' => ':count másodperccel', 'months' => ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'], - 'months_short' => ['jan.', 'feb.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], + 'months_short' => ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], 'weekdays' => ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat'], 'weekdays_short' => ['vas', 'hét', 'kedd', 'sze', 'csüt', 'pén', 'szo'], 'weekdays_min' => ['v', 'h', 'k', 'sze', 'cs', 'p', 'sz'], diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/it.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/it.php index 605bcbb5a..49875d7ef 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/it.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/it.php @@ -55,7 +55,7 @@ 'µs' => ':countµs', 'ago' => ':time fa', 'from_now' => function ($time) { - return (preg_match('/^[0-9].+$/', $time) ? 'tra' : 'in')." $time"; + return (preg_match('/^\d.+$/', $time) ? 'tra' : 'in')." $time"; }, 'after' => ':time dopo', 'before' => ':time prima', @@ -103,4 +103,13 @@ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' e '], + 'ordinal_words' => [ + 'of' => 'di', + 'first' => 'primo', + 'second' => 'secondo', + 'third' => 'terzo', + 'fourth' => 'quarto', + 'fifth' => 'quinto', + 'last' => 'ultimo', + ], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ku.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ku.php index b001e3015..189960c8a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ku.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ku.php @@ -11,31 +11,29 @@ /* * Authors: - * - Halwest Manguri - * - Kardo Qadir + * - Unicode, Inc. */ -$months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', '‌حوزەیران', 'تەمموز', 'ئاب', 'ئەیلول', 'تشرینی یەکەم', 'تشرینی دووەم', 'کانونی یەکەم']; - -$weekdays = ['دوو شەممە', 'سێ شەممە', 'چوار شەممە', 'پێنج شەممە', 'هەینی', 'شەممە', 'یەک شەممە']; return [ - 'ago' => 'پێش :time', - 'from_now' => ':time لە ئێستاوە', - 'after' => 'دوای :time', - 'before' => 'پێش :time', - 'year' => '{0}ساڵ|{1}ساڵێک|{2}٢ ساڵ|[3,10]:count ساڵ|[11,Inf]:count ساڵ', - 'month' => '{0}مانگ|{1}مانگێک|{2}٢ مانگ|[3,10]:count مانگ|[11,Inf]:count مانگ', - 'week' => '{0}هەفتە|{1}هەفتەیەک|{2}٢ هەفتە|[3,10]:count هەفتە|[11,Inf]:count هەفتە', - 'day' => '{0}ڕۆژ|{1}ڕۆژێک|{2}٢ ڕۆژ|[3,10]:count ڕۆژ|[11,Inf]:count ڕۆژ', - 'hour' => '{0}کاتژمێر|{1}کاتژمێرێک|{2}٢ کاتژمێر|[3,10]:count کاتژمێر|[11,Inf]:count کاتژمێر', - 'minute' => '{0}خولەک|{1}خولەکێک|{2}٢ خولەک|[3,10]:count خولەک|[11,Inf]:count خولەک', - 'second' => '{0}چرکە|{1}چرکەیەک|{2}٢ چرکە|[3,10]:count چرکە|[11,Inf]:count چرکە', - 'months' => $months, - 'months_standalone' => $months, - 'months_short' => $months, - 'weekdays' => $weekdays, - 'weekdays_short' => $weekdays, - 'weekdays_min' => $weekdays, + 'ago' => 'berî :time', + 'from_now' => 'di :time de', + 'after' => ':time piştî', + 'before' => ':time berê', + 'year' => ':count sal', + 'year_ago' => ':count salê|:count salan', + 'year_from_now' => 'salekê|:count salan', + 'month' => ':count meh', + 'week' => ':count hefte', + 'day' => ':count roj', + 'hour' => ':count saet', + 'minute' => ':count deqîqe', + 'second' => ':count saniye', + 'months' => ['rêbendanê', 'reşemiyê', 'adarê', 'avrêlê', 'gulanê', 'pûşperê', 'tîrmehê', 'gelawêjê', 'rezberê', 'kewçêrê', 'sermawezê', 'berfanbarê'], + 'months_standalone' => ['rêbendan', 'reşemî', 'adar', 'avrêl', 'gulan', 'pûşper', 'tîrmeh', 'gelawêj', 'rezber', 'kewçêr', 'sermawez', 'berfanbar'], + 'months_short' => ['rêb', 'reş', 'ada', 'avr', 'gul', 'pûş', 'tîr', 'gel', 'rez', 'kew', 'ser', 'ber'], + 'weekdays' => ['yekşem', 'duşem', 'sêşem', 'çarşem', 'pêncşem', 'în', 'şemî'], + 'weekdays_short' => ['yş', 'dş', 'sş', 'çş', 'pş', 'în', 'ş'], + 'weekdays_min' => ['Y', 'D', 'S', 'Ç', 'P', 'Î', 'Ş'], 'list' => [', ', ' û '], 'first_day_of_week' => 6, 'day_of_first_week_of_year' => 1, diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/lv.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/lv.php index 693eceb5a..d5cba7ca0 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/lv.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/lv.php @@ -176,7 +176,8 @@ 'weekdays' => $daysOfWeek, 'weekdays_short' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'], 'weekdays_min' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'], - 'months' => ['janvārī', 'februārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'], + 'months' => ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', 'jūnijs', 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris'], + 'months_standalone' => ['janvārī', 'februārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'], 'months_short' => ['janv.', 'febr.', 'martā', 'apr.', 'maijā', 'jūn.', 'jūl.', 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], 'meridiem' => ['priekšpusdiena', 'pēcpusdiena'], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/mn.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/mn.php index 717d199bc..38c6434d3 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/mn.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/mn.php @@ -26,6 +26,7 @@ * - Nicolás Hock Isaza * - Ochirkhuyag * - Batmandakh + * - lucifer-crybaby */ return [ 'year' => ':count жил', @@ -43,38 +44,55 @@ 'second' => ':count секунд', 's' => ':countс', - 'ago' => ':timeн өмнө', - 'year_ago' => ':count жилий', - 'month_ago' => ':count сары', - 'day_ago' => ':count хоногий', - 'hour_ago' => ':count цагий', - 'minute_ago' => ':count минуты', - 'second_ago' => ':count секунды', + 'ago_mode' => 'last', + 'ago' => ':time өмнө', + 'year_ago' => ':count жилийн', + 'y_ago' => ':count жилийн', + 'month_ago' => ':count сарын', + 'm_ago' => ':count сарын', + 'day_ago' => ':count хоногийн', + 'd_ago' => ':count хоногийн', + 'week_ago' => ':count долоо хоногийн', + 'w_ago' => ':count долоо хоногийн', + 'hour_ago' => ':count цагийн', + 'minute_ago' => ':count минутын', + 'second_ago' => ':count секундын', + 'from_now_mode' => 'last', 'from_now' => 'одоогоос :time', 'year_from_now' => ':count жилийн дараа', + 'y_from_now' => ':count жилийн дараа', 'month_from_now' => ':count сарын дараа', + 'm_from_now' => ':count сарын дараа', 'day_from_now' => ':count хоногийн дараа', + 'd_from_now' => ':count хоногийн дараа', 'hour_from_now' => ':count цагийн дараа', 'minute_from_now' => ':count минутын дараа', 'second_from_now' => ':count секундын дараа', - // Does it required to make translation for before, after as follows? hmm, I think we've made it with ago and from now keywords already. Anyway, I've included it just in case of undesired action... - 'after' => ':timeн дараа', - 'year_after' => ':count жилий', - 'month_after' => ':count сары', - 'day_after' => ':count хоногий', - 'hour_after' => ':count цагий', - 'minute_after' => ':count минуты', - 'second_after' => ':count секунды', + 'after_mode' => 'last', + 'after' => ':time дараа', + 'year_after' => ':count жилийн', + 'y_after' => ':count жилийн', + 'month_after' => ':count сарын', + 'm_after' => ':count сарын', + 'day_after' => ':count хоногийн', + 'd_after' => ':count хоногийн', + 'hour_after' => ':count цагийн', + 'minute_after' => ':count минутын', + 'second_after' => ':count секундын', - 'before' => ':timeн өмнө', - 'year_before' => ':count жилий', - 'month_before' => ':count сары', - 'day_before' => ':count хоногий', - 'hour_before' => ':count цагий', - 'minute_before' => ':count минуты', - 'second_before' => ':count секунды', + 'before_mode' => 'last', + 'before' => ':time өмнө', + 'year_before' => ':count жилийн', + 'y_before' => ':count жилийн', + 'month_before' => ':count сарын', + 'm_before' => ':count сарын', + 'day_before' => ':count хоногийн', + 'd_before' => ':count хоногийн', + 'hour_before' => ':count цагийн', + 'minute_before' => ':count минутын', + 'second_before' => ':count секундын', 'list' => ', ', 'diff_now' => 'одоо', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php index 36934eeb1..c9e80854f 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php @@ -48,7 +48,7 @@ 'ago' => ':time yang lepas', 'from_now' => ':time dari sekarang', 'after' => ':time kemudian', - 'before' => ':time lepas', + 'before' => ':time sebelum', 'diff_now' => 'sekarang', 'diff_today' => 'Hari', 'diff_today_regexp' => 'Hari(?:\\s+ini)?(?:\\s+pukul)?', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/oc.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/oc.php index 89693e674..c9411d69d 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/oc.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/oc.php @@ -17,7 +17,7 @@ use Symfony\Component\Translation\PluralizationRules; if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) { - PluralizationRules::set(function ($number) { + PluralizationRules::set(static function ($number) { return $number == 1 ? 0 : 1; }, 'oc'); } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/pl.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/pl.php index f80b25e7e..b72053549 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/pl.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/pl.php @@ -54,32 +54,15 @@ 's' => ':count sek.', 'ago' => ':time temu', 'from_now' => static function ($time) { - switch ($time) { - case '1 godzina': - return 'za 1 godzinę'; - - case '1 minuta': - return 'za 1 minutę'; - - case '1 sekunda': - return 'za 1 sekundę'; - - case 'godzina': - return 'za godzinę'; - - case 'minuta': - return 'za minutę'; - - case 'sekunda': - return 'za sekundę'; - - default: - return "za $time"; - } + return 'za '.strtr($time, [ + 'godzina' => 'godzinę', + 'minuta' => 'minutę', + 'sekunda' => 'sekundę', + ]); }, 'after' => ':time po', 'before' => ':time przed', - 'diff_now' => 'przed chwilą', + 'diff_now' => 'teraz', 'diff_today' => 'Dziś', 'diff_today_regexp' => 'Dziś(?:\\s+o)?', 'diff_yesterday' => 'wczoraj', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/pt.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/pt.php index 0af894994..bb6359b14 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/pt.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/pt.php @@ -104,4 +104,13 @@ 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' e '], + 'ordinal_words' => [ + 'of' => 'de', + 'first' => 'primeira', + 'second' => 'segunda', + 'third' => 'terceira', + 'fourth' => 'quarta', + 'fifth' => 'quinta', + 'last' => 'última', + ], ]; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sh.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sh.php index e4aa5a1c7..e03b50675 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sh.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sh.php @@ -13,7 +13,7 @@ use Symfony\Component\Translation\PluralizationRules; if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) { - PluralizationRules::set(function ($number) { + PluralizationRules::set(static function ($number) { return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); }, 'sh'); } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php index fd0f6b3e9..f9702e960 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php @@ -31,33 +31,89 @@ * - jofi * - Jakub ADAMEC * - Marek Adamický + * - AlterwebStudio */ + +use Carbon\CarbonInterface; + +$fromNow = function ($time) { + return 'o '.strtr($time, [ + 'hodina' => 'hodinu', + 'minúta' => 'minútu', + 'sekunda' => 'sekundu', + ]); +}; + +$ago = function ($time) { + $replacements = [ + '/\bhodina\b/' => 'hodinou', + '/\bminúta\b/' => 'minútou', + '/\bsekunda\b/' => 'sekundou', + '/\bdeň\b/u' => 'dňom', + '/\btýždeň\b/u' => 'týždňom', + '/\bmesiac\b/' => 'mesiacom', + '/\brok\b/' => 'rokom', + ]; + + $replacementsPlural = [ + '/\bhodiny\b/' => 'hodinami', + '/\bminúty\b/' => 'minútami', + '/\bsekundy\b/' => 'sekundami', + '/\bdni\b/' => 'dňami', + '/\btýždne\b/' => 'týždňami', + '/\bmesiace\b/' => 'mesiacmi', + '/\broky\b/' => 'rokmi', + ]; + + foreach ($replacements + $replacementsPlural as $pattern => $replacement) { + $time = preg_replace($pattern, $replacement, $time); + } + + return "pred $time"; +}; + return [ - 'year' => 'rok|:count roky|:count rokov', + 'year' => ':count rok|:count roky|:count rokov', + 'a_year' => 'rok|:count roky|:count rokov', 'y' => ':count r', - 'month' => 'mesiac|:count mesiace|:count mesiacov', + 'month' => ':count mesiac|:count mesiace|:count mesiacov', + 'a_month' => 'mesiac|:count mesiace|:count mesiacov', 'm' => ':count m', - 'week' => 'týždeň|:count týždne|:count týždňov', + 'week' => ':count týždeň|:count týždne|:count týždňov', + 'a_week' => 'týždeň|:count týždne|:count týždňov', 'w' => ':count t', - 'day' => 'deň|:count dni|:count dní', + 'day' => ':count deň|:count dni|:count dní', + 'a_day' => 'deň|:count dni|:count dní', 'd' => ':count d', - 'hour' => 'hodinu|:count hodiny|:count hodín', + 'hour' => ':count hodina|:count hodiny|:count hodín', + 'a_hour' => 'hodina|:count hodiny|:count hodín', 'h' => ':count h', - 'minute' => 'minútu|:count minúty|:count minút', + 'minute' => ':count minúta|:count minúty|:count minút', + 'a_minute' => 'minúta|:count minúty|:count minút', 'min' => ':count min', - 'second' => 'sekundu|:count sekundy|:count sekúnd', + 'second' => ':count sekunda|:count sekundy|:count sekúnd', + 'a_second' => 'sekunda|:count sekundy|:count sekúnd', 's' => ':count s', - 'ago' => 'pred :time', - 'from_now' => 'za :time', - 'after' => 'o :time neskôr', - 'before' => ':time predtým', - 'year_ago' => 'rokom|:count rokmi|:count rokmi', - 'month_ago' => 'mesiacom|:count mesiacmi|:count mesiacmi', - 'week_ago' => 'týždňom|:count týždňami|:count týždňami', - 'day_ago' => 'dňom|:count dňami|:count dňami', - 'hour_ago' => 'hodinou|:count hodinami|:count hodinami', - 'minute_ago' => 'minútou|:count minútami|:count minútami', - 'second_ago' => 'sekundou|:count sekundami|:count sekundami', + 'millisecond' => ':count milisekunda|:count milisekundy|:count milisekúnd', + 'a_millisecond' => 'milisekunda|:count milisekundy|:count milisekúnd', + 'ms' => ':count ms', + 'microsecond' => ':count mikrosekunda|:count mikrosekundy|:count mikrosekúnd', + 'a_microsecond' => 'mikrosekunda|:count mikrosekundy|:count mikrosekúnd', + 'µs' => ':count µs', + + 'ago' => $ago, + 'from_now' => $fromNow, + 'before' => ':time pred', + 'after' => ':time po', + + 'hour_after' => ':count hodinu|:count hodiny|:count hodín', + 'minute_after' => ':count minútu|:count minúty|:count minút', + 'second_after' => ':count sekundu|:count sekundy|:count sekúnd', + + 'hour_before' => ':count hodinu|:count hodiny|:count hodín', + 'minute_before' => ':count minútu|:count minúty|:count minút', + 'second_before' => ':count sekundu|:count sekundy|:count sekúnd', + 'first_day_of_week' => 1, 'day_of_first_week_of_year' => 4, 'list' => [', ', ' a '], @@ -72,8 +128,26 @@ 'LLL' => 'D. M. HH:mm', 'LLLL' => 'dddd D. MMMM YYYY HH:mm', ], + 'calendar' => [ + 'sameDay' => '[dnes o] LT', + 'nextDay' => '[zajtra o] LT', + 'lastDay' => '[včera o] LT', + 'nextWeek' => 'dddd [o] LT', + 'lastWeek' => static function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 1: + case 2: + case 4: + case 5: + return '[minulý] dddd [o] LT'; //pondelok/utorok/štvrtok/piatok + default: + return '[minulá] dddd [o] LT'; + } + }, + 'sameElse' => 'L', + ], 'weekdays' => ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota'], - 'weekdays_short' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], + 'weekdays_short' => ['ned', 'pon', 'uto', 'str', 'štv', 'pia', 'sob'], 'weekdays_min' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], 'months' => ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december'], 'months_short' => ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'], diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php index 2e197212b..1f1d1b338 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php @@ -49,9 +49,9 @@ 'a_second' => '{1}nekaj sekund|:count sekunda|:count sekundi|:count sekunde|:count sekund', 's' => ':count s', - 'year_ago' => ':count letom|:count leti|:count leti|:count leti', - 'y_ago' => ':count letom|:count leti|:count leti|:count leti', - 'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci', + 'year_ago' => ':count letom|:count letoma|:count leti|:count leti', + 'y_ago' => ':count letom|:count letoma|:count leti|:count leti', + 'month_ago' => ':count mesecem|:count mesecema|:count meseci|:count meseci', 'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni', 'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi', 'd_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php index c09df19cf..8becbc576 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php @@ -24,28 +24,28 @@ use Carbon\CarbonInterface; return [ - 'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година', + 'year' => ':count година|:count године|:count година', 'y' => ':count г.', - 'month' => '{1}:count месец|{2,3,4}:count месеца|[0,Inf[:count месеци', + 'month' => ':count месец|:count месеца|:count месеци', 'm' => ':count м.', - 'week' => '{1}:count недеља|{2,3,4}:count недеље|[0,Inf[:count недеља', + 'week' => ':count недеља|:count недеље|:count недеља', 'w' => ':count нед.', - 'day' => '{1,21,31}:count дан|[0,Inf[:count дана', + 'day' => ':count дан|:count дана|:count дана', 'd' => ':count д.', - 'hour' => '{1,21}:count сат|{2,3,4,22,23,24}:count сата|[0,Inf[:count сати', + 'hour' => ':count сат|:count сата|:count сати', 'h' => ':count ч.', - 'minute' => '{1,21,31,41,51}:count минут|[0,Inf[:count минута', + 'minute' => ':count минут|:count минута|:count минута', 'min' => ':count мин.', - 'second' => '{1,21,31,41,51}:count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[0,Inf[:count секунди', + 'second' => ':count секунд|:count секунде|:count секунди', 's' => ':count сек.', 'ago' => 'пре :time', 'from_now' => 'за :time', 'after' => ':time након', 'before' => ':time пре', - 'year_from_now' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година', - 'year_ago' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година', - 'week_from_now' => '{1}:count недељу|{2,3,4}:count недеље|[0,Inf[:count недеља', - 'week_ago' => '{1}:count недељу|{2,3,4}:count недеље|[0,Inf[:count недеља', + 'year_from_now' => ':count годину|:count године|:count година', + 'year_ago' => ':count годину|:count године|:count година', + 'week_from_now' => ':count недељу|:count недеље|:count недеља', + 'week_ago' => ':count недељу|:count недеље|:count недеља', 'diff_now' => 'управо сада', 'diff_today' => 'данас', 'diff_today_regexp' => 'данас(?:\\s+у)?', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php index 0fb63d769..4b29a45c7 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php @@ -9,6 +9,16 @@ * file that was distributed with this source code. */ +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Cyrl_BA'); +} +// @codeCoverageIgnoreEnd + return array_replace_recursive(require __DIR__.'/sr_Cyrl.php', [ 'formats' => [ 'LT' => 'HH:mm', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php index d13229abc..28d22fd2c 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php @@ -16,32 +16,41 @@ */ use Carbon\CarbonInterface; +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Cyrl_ME'); +} +// @codeCoverageIgnoreEnd return [ - 'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година', + 'year' => ':count година|:count године|:count година', 'y' => ':count г.', - 'month' => '{1}:count мјесец|{2,3,4}:count мјесеца|[0,Inf[:count мјесеци', + 'month' => ':count мјесец|:count мјесеца|:count мјесеци', 'm' => ':count мј.', - 'week' => '{1}:count недјеља|{2,3,4}:count недјеље|[0,Inf[:count недјеља', + 'week' => ':count недјеља|:count недјеље|:count недјеља', 'w' => ':count нед.', - 'day' => '{1,21,31}:count дан|[0,Inf[:count дана', + 'day' => ':count дан|:count дана|:count дана', 'd' => ':count д.', - 'hour' => '{1,21}:count сат|{2,3,4,22,23,24}:count сата|[0,Inf[:count сати', + 'hour' => ':count сат|:count сата|:count сати', 'h' => ':count ч.', - 'minute' => '{1,21,31,41,51}:count минут|[0,Inf[:count минута', + 'minute' => ':count минут|:count минута|:count минута', 'min' => ':count мин.', - 'second' => '{1,21,31,41,51}:count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[0,Inf[:count секунди', + 'second' => ':count секунд|:count секунде|:count секунди', 's' => ':count сек.', 'ago' => 'прије :time', 'from_now' => 'за :time', 'after' => ':time након', 'before' => ':time прије', - 'year_from_now' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година', - 'year_ago' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година', + 'year_from_now' => ':count годину|:count године|:count година', + 'year_ago' => ':count годину|:count године|:count година', - 'week_from_now' => '{1}:count недјељу|{2,3,4}:count недјеље|[0,Inf[:count недјеља', - 'week_ago' => '{1}:count недјељу|{2,3,4}:count недјеље|[0,Inf[:count недјеља', + 'week_from_now' => ':count недјељу|:count недјеље|:count недјеља', + 'week_ago' => ':count недјељу|:count недјеље|:count недјеља', 'diff_now' => 'управо сада', 'diff_today' => 'данас', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php index 492baf0cb..d6e29b86b 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php @@ -9,6 +9,16 @@ * file that was distributed with this source code. */ +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Cyrl_XK'); +} +// @codeCoverageIgnoreEnd + return array_replace_recursive(require __DIR__.'/sr_Cyrl_BA.php', [ 'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php index 897c674a5..95b2770db 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php @@ -9,6 +9,16 @@ * file that was distributed with this source code. */ +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Latn_BA'); +} +// @codeCoverageIgnoreEnd + return array_replace_recursive(require __DIR__.'/sr_Latn.php', [ 'formats' => [ 'LT' => 'HH:mm', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php index e2133ef1a..5b8f2d062 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php @@ -16,6 +16,15 @@ */ use Carbon\CarbonInterface; +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Latn_ME'); +} +// @codeCoverageIgnoreEnd return array_replace_recursive(require __DIR__.'/sr.php', [ 'month' => ':count mjesec|:count mjeseca|:count mjeseci', @@ -27,6 +36,7 @@ 'before' => ':time prije', 'week_from_now' => ':count nedjelju|:count nedjelje|:count nedjelja', 'week_ago' => ':count nedjelju|:count nedjelje|:count nedjelja', + 'second_ago' => ':count sekund|:count sekunde|:count sekundi', 'diff_tomorrow' => 'sjutra', 'calendar' => [ 'nextDay' => '[sjutra u] LT', diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php index d0b9d10bb..5278e2e5a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php @@ -9,6 +9,16 @@ * file that was distributed with this source code. */ +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Latn_XK'); +} +// @codeCoverageIgnoreEnd + return array_replace_recursive(require __DIR__.'/sr_Latn_BA.php', [ 'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'], ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ss.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ss.php index cd4b91901..1c52c9bf6 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ss.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ss.php @@ -50,7 +50,7 @@ $lastDigit = $number % 10; return $number.( - (~~($number % 100 / 10) === 1) ? 'e' : ( + ((int) ($number % 100 / 10) === 1) ? 'e' : ( ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e' ) ); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sv.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sv.php index ca33e1c45..1706c7191 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sv.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sv.php @@ -70,7 +70,7 @@ $lastDigit = $number % 10; return $number.( - (~~($number % 100 / 10) === 1) ? 'e' : ( + ((int) ($number % 100 / 10) === 1) ? 'e' : ( ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e' ) ); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php index 4b0b5410b..9adddcf87 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php @@ -33,9 +33,9 @@ 'm' => ':count mjeśůnc', 'a_month' => ':count mjeśůnc', - 'week' => ':count Tydźyń', - 'w' => ':count Tydźyń', - 'a_week' => ':count Tydźyń', + 'week' => ':count tydźyń', + 'w' => ':count tydźyń', + 'a_week' => ':count tydźyń', 'day' => ':count dźyń', 'd' => ':count dźyń', @@ -45,11 +45,11 @@ 'h' => ':count godzina', 'a_hour' => ':count godzina', - 'minute' => ':count Minuta', - 'min' => ':count Minuta', - 'a_minute' => ':count Minuta', + 'minute' => ':count minuta', + 'min' => ':count minuta', + 'a_minute' => ':count minuta', - 'second' => ':count Sekůnda', - 's' => ':count Sekůnda', - 'a_second' => ':count Sekůnda', + 'second' => ':count sekůnda', + 's' => ':count sekůnda', + 'a_second' => ':count sekůnda', ]); diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php index b267b0002..4217d16ed 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php @@ -55,7 +55,7 @@ */ return [ 'year' => ':count рік|:count роки|:count років', - 'y' => ':countр', + 'y' => ':countр|:countрр|:countрр', 'a_year' => '{1}рік|:count рік|:count роки|:count років', 'month' => ':count місяць|:count місяці|:count місяців', 'm' => ':countм', @@ -193,6 +193,7 @@ 'genitive' => ['неділі', 'понеділка', 'вівторка', 'середи', 'четверга', 'п’ятниці', 'суботи'], ]; + $format = $format ?? ''; $nounCase = preg_match('/(\[(В|в|У|у)\])\s+dddd/u', $format) ? 'accusative' : ( diff --git a/api/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php b/api/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php index 8be0569e8..84e241e3e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php @@ -24,6 +24,22 @@ class ServiceProvider extends \Illuminate\Support\ServiceProvider { + /** @var callable|null */ + protected $appGetter = null; + + /** @var callable|null */ + protected $localeGetter = null; + + public function setAppGetter(?callable $appGetter): void + { + $this->appGetter = $appGetter; + } + + public function setLocaleGetter(?callable $localeGetter): void + { + $this->localeGetter = $localeGetter; + } + public function boot() { $this->updateLocale(); @@ -44,8 +60,12 @@ public function boot() public function updateLocale() { - $app = $this->app && method_exists($this->app, 'getLocale') ? $this->app : app('translator'); - $locale = $app->getLocale(); + $locale = $this->getLocale(); + + if ($locale === null) { + return; + } + Carbon::setLocale($locale); CarbonImmutable::setLocale($locale); CarbonPeriod::setLocale($locale); @@ -70,6 +90,34 @@ public function register() // Needed for Laravel < 5.3 compatibility } + protected function getLocale() + { + if ($this->localeGetter) { + return ($this->localeGetter)(); + } + + $app = $this->getApp(); + $app = $app && method_exists($app, 'getLocale') + ? $app + : $this->getGlobalApp('translator'); + + return $app ? $app->getLocale() : null; + } + + protected function getApp() + { + if ($this->appGetter) { + return ($this->appGetter)(); + } + + return $this->app ?? $this->getGlobalApp(); + } + + protected function getGlobalApp(...$args) + { + return \function_exists('app') ? \app(...$args) : null; + } + protected function isEventDispatcher($instance) { return $instance instanceof EventDispatcher diff --git a/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php b/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php new file mode 100644 index 000000000..c05480876 --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\MessageFormatter; + +use ReflectionMethod; +use Symfony\Component\Translation\Formatter\MessageFormatter; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +// @codeCoverageIgnoreStart +$transMethod = new ReflectionMethod(MessageFormatterInterface::class, 'format'); + +require $transMethod->getParameters()[0]->hasType() + ? __DIR__.'/../../../lazy/Carbon/MessageFormatter/MessageFormatterMapperStrongType.php' + : __DIR__.'/../../../lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php'; +// @codeCoverageIgnoreEnd + +final class MessageFormatterMapper extends LazyMessageFormatter +{ + /** + * Wrapped formatter. + * + * @var MessageFormatterInterface + */ + protected $formatter; + + public function __construct(?MessageFormatterInterface $formatter = null) + { + $this->formatter = $formatter ?? new MessageFormatter(); + } + + protected function transformLocale(?string $locale): ?string + { + return $locale ? preg_replace('/[_@][A-Za-z][a-z]{2,}/', '', $locale) : $locale; + } +} diff --git a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php new file mode 100644 index 000000000..fde67b36a --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php @@ -0,0 +1,286 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use Closure; +use InvalidArgumentException; +use PHPStan\BetterReflection\Reflection\Adapter\ReflectionParameter as AdapterReflectionParameter; +use PHPStan\BetterReflection\Reflection\Adapter\ReflectionType as AdapterReflectionType; +use PHPStan\BetterReflection\Reflection\ReflectionClass as BetterReflectionClass; +use PHPStan\BetterReflection\Reflection\ReflectionFunction as BetterReflectionFunction; +use PHPStan\BetterReflection\Reflection\ReflectionParameter as BetterReflectionParameter; +use PHPStan\Reflection\Php\BuiltinMethodReflection; +use PHPStan\TrinaryLogic; +use ReflectionClass; +use ReflectionFunction; +use ReflectionMethod; +use ReflectionParameter; +use ReflectionType; +use stdClass; +use Throwable; + +abstract class AbstractMacro implements BuiltinMethodReflection +{ + /** + * The reflection function/method. + * + * @var ReflectionFunction|ReflectionMethod + */ + protected $reflectionFunction; + + /** + * The class name. + * + * @var class-string + */ + private $className; + + /** + * The method name. + * + * @var string + */ + private $methodName; + + /** + * The parameters. + * + * @var ReflectionParameter[] + */ + private $parameters; + + /** + * The is static. + * + * @var bool + */ + private $static = false; + + /** + * Macro constructor. + * + * @param class-string $className + * @param string $methodName + * @param callable $macro + */ + public function __construct(string $className, string $methodName, $macro) + { + $this->className = $className; + $this->methodName = $methodName; + $rawReflectionFunction = \is_array($macro) + ? new ReflectionMethod($macro[0], $macro[1]) + : new ReflectionFunction($macro); + $this->reflectionFunction = self::hasModernParser() + ? $this->getReflectionFunction($macro) + : $rawReflectionFunction; // @codeCoverageIgnore + $this->parameters = array_map( + function ($parameter) { + if ($parameter instanceof BetterReflectionParameter) { + return new AdapterReflectionParameter($parameter); + } + + return $parameter; // @codeCoverageIgnore + }, + $this->reflectionFunction->getParameters() + ); + + if ($rawReflectionFunction->isClosure()) { + try { + $closure = $rawReflectionFunction->getClosure(); + $boundClosure = Closure::bind($closure, new stdClass()); + $this->static = (!$boundClosure || (new ReflectionFunction($boundClosure))->getClosureThis() === null); + } catch (Throwable $e) { + $this->static = true; + } + } + } + + private function getReflectionFunction($spec) + { + if (\is_array($spec) && \count($spec) === 2 && \is_string($spec[1])) { + \assert($spec[1] !== ''); + + if (\is_object($spec[0])) { + return BetterReflectionClass::createFromInstance($spec[0]) + ->getMethod($spec[1]); + } + + return BetterReflectionClass::createFromName($spec[0]) + ->getMethod($spec[1]); + } + + if (\is_string($spec)) { + return BetterReflectionFunction::createFromName($spec); + } + + if ($spec instanceof Closure) { + return BetterReflectionFunction::createFromClosure($spec); + } + + throw new InvalidArgumentException('Could not create reflection from the spec given'); // @codeCoverageIgnore + } + + /** + * {@inheritdoc} + */ + public function getDeclaringClass(): ReflectionClass + { + return new ReflectionClass($this->className); + } + + /** + * {@inheritdoc} + */ + public function isPrivate(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isPublic(): bool + { + return true; + } + + /** + * {@inheritdoc} + */ + public function isFinal(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isInternal(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isAbstract(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isStatic(): bool + { + return $this->static; + } + + /** + * {@inheritdoc} + */ + public function getDocComment(): ?string + { + return $this->reflectionFunction->getDocComment() ?: null; + } + + /** + * {@inheritdoc} + */ + public function getName(): string + { + return $this->methodName; + } + + /** + * {@inheritdoc} + */ + public function getParameters(): array + { + return $this->parameters; + } + + /** + * {@inheritdoc} + */ + public function getReturnType(): ?ReflectionType + { + $type = $this->reflectionFunction->getReturnType(); + + if ($type instanceof ReflectionType) { + return $type; // @codeCoverageIgnore + } + + return self::adaptType($type); + } + + /** + * {@inheritdoc} + */ + public function isDeprecated(): TrinaryLogic + { + return TrinaryLogic::createFromBoolean( + $this->reflectionFunction->isDeprecated() || + preg_match('/@deprecated/i', $this->getDocComment() ?: '') + ); + } + + /** + * {@inheritdoc} + */ + public function isVariadic(): bool + { + return $this->reflectionFunction->isVariadic(); + } + + /** + * {@inheritdoc} + */ + public function getPrototype(): BuiltinMethodReflection + { + return $this; + } + + public function getTentativeReturnType(): ?ReflectionType + { + return null; + } + + public function returnsByReference(): TrinaryLogic + { + return TrinaryLogic::createNo(); + } + + private static function adaptType($type) + { + $method = method_exists(AdapterReflectionType::class, 'fromTypeOrNull') + ? 'fromTypeOrNull' + : 'fromReturnTypeOrNull'; // @codeCoverageIgnore + + return AdapterReflectionType::$method($type); + } + + private static function hasModernParser(): bool + { + static $modernParser = null; + + if ($modernParser !== null) { + return $modernParser; + } + + $modernParser = method_exists(AdapterReflectionType::class, 'fromTypeOrNull'); + + return $modernParser; + } +} diff --git a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php index baee2041b..de3e51f6a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php +++ b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php @@ -13,235 +13,22 @@ namespace Carbon\PHPStan; -use Closure; +use PHPStan\BetterReflection\Reflection\Adapter; use PHPStan\Reflection\Php\BuiltinMethodReflection; -use PHPStan\TrinaryLogic; -use ReflectionClass; -use ReflectionFunction; use ReflectionMethod; -use ReflectionParameter; -use ReflectionType; -use stdClass; -use Throwable; -final class Macro implements BuiltinMethodReflection -{ - /** - * The class name. - * - * @var class-string - */ - private $className; - - /** - * The method name. - * - * @var string - */ - private $methodName; - - /** - * The reflection function/method. - * - * @var ReflectionFunction|ReflectionMethod - */ - private $reflectionFunction; - - /** - * The parameters. - * - * @var ReflectionParameter[] - */ - private $parameters; - - /** - * The is static. - * - * @var bool - */ - private $static = false; - - /** - * Macro constructor. - * - * @param string $className - * @phpstan-param class-string $className - * - * @param string $methodName - * @param callable $macro - */ - public function __construct(string $className, string $methodName, $macro) - { - $this->className = $className; - $this->methodName = $methodName; - $this->reflectionFunction = \is_array($macro) - ? new ReflectionMethod($macro[0], $macro[1]) - : new ReflectionFunction($macro); - $this->parameters = $this->reflectionFunction->getParameters(); - - if ($this->reflectionFunction->isClosure()) { - try { - $closure = $this->reflectionFunction->getClosure(); - $boundClosure = Closure::bind($closure, new stdClass()); - $this->static = (!$boundClosure || (new ReflectionFunction($boundClosure))->getClosureThis() === null); - } catch (Throwable $e) { - $this->static = true; - } - } - } - - /** - * {@inheritdoc} - */ - public function getDeclaringClass(): ReflectionClass - { - return new ReflectionClass($this->className); - } - - /** - * {@inheritdoc} - */ - public function isPrivate(): bool - { - return false; - } - - /** - * {@inheritdoc} - */ - public function isPublic(): bool - { - return true; - } - - /** - * {@inheritdoc} - */ - public function isFinal(): bool - { - return false; - } +$method = new ReflectionMethod(BuiltinMethodReflection::class, 'getReflection'); - /** - * {@inheritdoc} - */ - public function isInternal(): bool - { - return false; - } +require $method->hasReturnType() && $method->getReturnType()->getName() === Adapter\ReflectionMethod::class + ? __DIR__.'/../../../lazy/Carbon/PHPStan/AbstractMacroStatic.php' + : __DIR__.'/../../../lazy/Carbon/PHPStan/AbstractMacroBuiltin.php'; - /** - * {@inheritdoc} - */ - public function isAbstract(): bool - { - return false; - } +$method = new ReflectionMethod(BuiltinMethodReflection::class, 'getFileName'); - /** - * {@inheritdoc} - */ - public function isStatic(): bool - { - return $this->static; - } +require $method->hasReturnType() + ? __DIR__.'/../../../lazy/Carbon/PHPStan/MacroStrongType.php' + : __DIR__.'/../../../lazy/Carbon/PHPStan/MacroWeakType.php'; - /** - * {@inheritdoc} - */ - public function getDocComment(): ?string - { - return $this->reflectionFunction->getDocComment() ?: null; - } - - /** - * {@inheritdoc} - * - * @return string|false - */ - public function getFileName() - { - return $this->reflectionFunction->getFileName(); - } - - /** - * {@inheritdoc} - */ - public function getName(): string - { - return $this->methodName; - } - - /** - * {@inheritdoc} - */ - public function getParameters(): array - { - return $this->parameters; - } - - /** - * {@inheritdoc} - */ - public function getReturnType(): ?ReflectionType - { - return $this->reflectionFunction->getReturnType(); - } - - /** - * {@inheritdoc} - * - * @return int|false - */ - public function getStartLine() - { - return $this->reflectionFunction->getStartLine(); - } - - /** - * {@inheritdoc} - * - * @return int|false - */ - public function getEndLine() - { - return $this->reflectionFunction->getEndLine(); - } - - /** - * {@inheritdoc} - */ - public function isDeprecated(): TrinaryLogic - { - return TrinaryLogic::createFromBoolean( - $this->reflectionFunction->isDeprecated() || - preg_match('/@deprecated/i', $this->getDocComment() ?: '') - ); - } - - /** - * {@inheritdoc} - */ - public function isVariadic(): bool - { - return $this->reflectionFunction->isVariadic(); - } - - /** - * {@inheritdoc} - */ - public function getPrototype(): BuiltinMethodReflection - { - return $this; - } - - /** - * {@inheritdoc} - */ - public function getReflection(): ?ReflectionMethod - { - return $this->reflectionFunction instanceof ReflectionMethod - ? $this->reflectionFunction - : null; - } +final class Macro extends LazyMacro +{ } diff --git a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php index 8e2524c09..2cd6fce54 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php +++ b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php @@ -11,10 +11,12 @@ namespace Carbon\PHPStan; +use PHPStan\Reflection\Assertions; use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\MethodReflection; use PHPStan\Reflection\MethodsClassReflectionExtension; use PHPStan\Reflection\Php\PhpMethodReflectionFactory; +use PHPStan\Reflection\ReflectionProvider; use PHPStan\Type\TypehintHelper; /** @@ -38,10 +40,13 @@ final class MacroExtension implements MethodsClassReflectionExtension * Extension constructor. * * @param PhpMethodReflectionFactory $methodReflectionFactory + * @param ReflectionProvider $reflectionProvider */ - public function __construct(PhpMethodReflectionFactory $methodReflectionFactory) - { - $this->scanner = new MacroScanner(); + public function __construct( + PhpMethodReflectionFactory $methodReflectionFactory, + ReflectionProvider $reflectionProvider + ) { + $this->scanner = new MacroScanner($reflectionProvider); $this->methodReflectionFactory = $methodReflectionFactory; } @@ -59,6 +64,7 @@ public function hasMethod(ClassReflection $classReflection, string $methodName): public function getMethod(ClassReflection $classReflection, string $methodName): MethodReflection { $builtinMacro = $this->scanner->getMethod($classReflection->getName(), $methodName); + $supportAssertions = class_exists(Assertions::class); return $this->methodReflectionFactory->create( $classReflection, @@ -72,7 +78,11 @@ public function getMethod(ClassReflection $classReflection, string $methodName): $builtinMacro->isDeprecated()->yes(), $builtinMacro->isInternal(), $builtinMacro->isFinal(), - $builtinMacro->getDocComment() + $supportAssertions ? null : $builtinMacro->getDocComment(), + $supportAssertions ? Assertions::createEmpty() : null, + null, + $builtinMacro->getDocComment(), + [] ); } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php index d169939d8..eb8957d4d 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php +++ b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php @@ -12,35 +12,55 @@ namespace Carbon\PHPStan; use Carbon\CarbonInterface; +use PHPStan\Reflection\ReflectionProvider; use ReflectionClass; use ReflectionException; final class MacroScanner { /** - * Return true if the given pair class-method is a Carbon macro. + * @var \PHPStan\Reflection\ReflectionProvider + */ + private $reflectionProvider; + + /** + * MacroScanner constructor. * - * @param string $className - * @phpstan-param class-string $className + * @param \PHPStan\Reflection\ReflectionProvider $reflectionProvider + */ + public function __construct(ReflectionProvider $reflectionProvider) + { + $this->reflectionProvider = $reflectionProvider; + } + + /** + * Return true if the given pair class-method is a Carbon macro. * - * @param string $methodName + * @param class-string $className + * @param string $methodName * * @return bool */ public function hasMethod(string $className, string $methodName): bool { - return is_a($className, CarbonInterface::class, true) && - \is_callable([$className, 'hasMacro']) && + $classReflection = $this->reflectionProvider->getClass($className); + + if ( + $classReflection->getName() !== CarbonInterface::class && + !$classReflection->isSubclassOf(CarbonInterface::class) + ) { + return false; + } + + return \is_callable([$className, 'hasMacro']) && $className::hasMacro($methodName); } /** * Return the Macro for a given pair class-method. * - * @param string $className - * @phpstan-param class-string $className - * - * @param string $methodName + * @param class-string $className + * @param string $methodName * * @throws ReflectionException * diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php index 68240b7c2..daee19cc9 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php @@ -75,7 +75,10 @@ public function eq($date): bool */ public function equalTo($date): bool { - return $this == $date; + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this == $this->resolveCarbon($date); } /** @@ -155,7 +158,10 @@ public function gt($date): bool */ public function greaterThan($date): bool { - return $this > $date; + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this > $this->resolveCarbon($date); } /** @@ -216,7 +222,10 @@ public function gte($date): bool */ public function greaterThanOrEqualTo($date): bool { - return $this >= $date; + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this >= $this->resolveCarbon($date); } /** @@ -256,7 +265,10 @@ public function lt($date): bool */ public function lessThan($date): bool { - return $this < $date; + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this < $this->resolveCarbon($date); } /** @@ -317,7 +329,10 @@ public function lte($date): bool */ public function lessThanOrEqualTo($date): bool { - return $this <= $date; + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this <= $this->resolveCarbon($date); } /** @@ -351,10 +366,10 @@ public function between($date1, $date2, $equal = true): bool } if ($equal) { - return $this->greaterThanOrEqualTo($date1) && $this->lessThanOrEqualTo($date2); + return $this >= $date1 && $this <= $date2; } - return $this->greaterThan($date1) && $this->lessThan($date2); + return $this > $date1 && $this < $date2; } /** @@ -448,7 +463,7 @@ public function isWeekday() */ public function isWeekend() { - return \in_array($this->dayOfWeek, static::$weekendDays); + return \in_array($this->dayOfWeek, static::$weekendDays, true); } /** @@ -548,12 +563,17 @@ public function isLeapYear() } /** - * Determines if the instance is a long year + * Determines if the instance is a long year (using calendar year). + * + * ⚠️ This method completely ignores month and day to use the numeric year number, + * it's not correct if the exact date matters. For instance as `2019-12-30` is already + * in the first week of the 2020 year, if you want to know from this date if ISO week + * year 2020 is a long year, use `isLongIsoYear` instead. * * @example * ``` - * Carbon::parse('2015-01-01')->isLongYear(); // true - * Carbon::parse('2016-01-01')->isLongYear(); // false + * Carbon::create(2015)->isLongYear(); // true + * Carbon::create(2016)->isLongYear(); // false * ``` * * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates @@ -565,6 +585,27 @@ public function isLongYear() return static::create($this->year, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53; } + /** + * Determines if the instance is a long year (using ISO 8601 year). + * + * @example + * ``` + * Carbon::parse('2015-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-03')->isLongIsoYear(); // false + * Carbon::parse('2019-12-29')->isLongIsoYear(); // false + * Carbon::parse('2019-12-30')->isLongIsoYear(); // true + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongIsoYear() + { + return static::create($this->isoWeekYear, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53; + } + /** * Compares the formatted values of the two dates. * @@ -621,19 +662,19 @@ public function isSameUnit($unit, $date = null) 'microsecond' => 'Y-m-d H:i:s.u', ]; - if (!isset($units[$unit])) { - if (isset($this->$unit)) { - return $this->resolveCarbon($date)->$unit === $this->$unit; - } + if (isset($units[$unit])) { + return $this->isSameAs($units[$unit], $date); + } - if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { - throw new BadComparisonUnitException($unit); - } + if (isset($this->$unit)) { + return $this->resolveCarbon($date)->$unit === $this->$unit; + } - return false; + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new BadComparisonUnitException($unit); } - return $this->isSameAs($units[$unit], $date); + return false; } /** @@ -953,6 +994,10 @@ public function is(string $tester) return $this->year === (int) $tester; } + if (preg_match('/^(?:Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)$/i', $tester)) { + return $this->isSameMonth(static::parse($tester), false); + } + if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) { return $this->isSameMonth(static::parse($tester)); } @@ -981,12 +1026,12 @@ public function is(string $tester) return $current->startOfMinute()->eq($other); } - if (preg_match('/\d(h|am|pm)$/', $tester)) { + if (preg_match('/\d(?:h|am|pm)$/', $tester)) { return $current->startOfHour()->eq($other); } if (preg_match( - '/^(january|february|march|april|may|june|july|august|september|october|november|december)\s+\d+$/i', + '/^(?:january|february|march|april|may|june|july|august|september|october|november|december)(?:\s+\d+)?$/i', $tester )) { return $current->startOfMonth()->eq($other->startOfMonth()); @@ -1067,4 +1112,18 @@ public function isEndOfTime(): bool { return $this->endOfTime ?? false; } + + private function discourageNull($value): void + { + if ($value === null) { + @trigger_error("Since 2.61.0, it's deprecated to compare a date to null, meaning of such comparison is ambiguous and will no longer be possible in 3.0.0, you should explicitly pass 'now' or make an other check to eliminate null values.", \E_USER_DEPRECATED); + } + } + + private function discourageBoolean($value): void + { + if (\is_bool($value)) { + @trigger_error("Since 2.61.0, it's deprecated to compare a date to true or false, meaning of such comparison is ambiguous and will no longer be possible in 3.0.0, you should explicitly pass 'now' or make an other check to eliminate boolean values.", \E_USER_DEPRECATED); + } + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php index 8fe008a5c..fff8a600a 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php @@ -16,6 +16,7 @@ use Carbon\CarbonInterface; use Carbon\CarbonInterval; use Carbon\CarbonPeriod; +use Carbon\CarbonPeriodImmutable; use Carbon\Exceptions\UnitException; use Closure; use DateTime; @@ -34,39 +35,7 @@ */ trait Converter { - /** - * Format to use for __toString method when type juggling occurs. - * - * @var string|Closure|null - */ - protected static $toStringFormat; - - /** - * Reset the format used to the default when type juggling a Carbon instance to a string - * - * @return void - */ - public static function resetToStringFormat() - { - static::setToStringFormat(null); - } - - /** - * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. - * You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and - * use other method or custom format passed to format() method if you need to dump an other string - * format. - * - * Set the default format used when type juggling a Carbon instance to a string - * - * @param string|Closure|null $format - * - * @return void - */ - public static function setToStringFormat($format) - { - static::$toStringFormat = $format; - } + use ToStringFormat; /** * Returns the formatted date string on success or FALSE on failure. @@ -110,7 +79,7 @@ public function rawFormat($format) * * @example * ``` - * echo Carbon::now(); // Carbon instances can be casted to string + * echo Carbon::now(); // Carbon instances can be cast to string * ``` * * @return string @@ -158,6 +127,21 @@ public function toFormattedDateString() return $this->rawFormat('M j, Y'); } + /** + * Format the instance with the day, and a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDayDateString(); + * ``` + * + * @return string + */ + public function toFormattedDayDateString(): string + { + return $this->rawFormat('D, M j, Y'); + } + /** * Format the instance as time * @@ -622,16 +606,18 @@ public function toPeriod($end = null, $interval = null, $unit = null) $interval = CarbonInterval::make("$interval ".static::pluralUnit($unit)); } - $period = (new CarbonPeriod())->setDateClass(static::class)->setStartDate($this); + $period = ($this->isMutable() ? new CarbonPeriod() : new CarbonPeriodImmutable()) + ->setDateClass(static::class) + ->setStartDate($this); if ($interval) { - $period->setDateInterval($interval); + $period = $period->setDateInterval($interval); } - if (\is_int($end) || \is_string($end) && ctype_digit($end)) { - $period->setRecurrences($end); + if (\is_int($end) || (\is_string($end) && ctype_digit($end))) { + $period = $period->setRecurrences($end); } elseif ($end) { - $period->setEndDate($end); + $period = $period->setEndDate($end); } return $period; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php index f90195a01..0d611ea22 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php @@ -19,6 +19,8 @@ use Carbon\Exceptions\OutOfRangeException; use Carbon\Translator; use Closure; +use DateMalformedStringException; +use DateTimeImmutable; use DateTimeInterface; use DateTimeZone; use Exception; @@ -79,8 +81,8 @@ public function __construct($time = null, $tz = null) // Work-around for PHP bug https://bugs.php.net/bug.php?id=67127 if (!str_contains((string) .1, '.')) { - $locale = setlocale(LC_NUMERIC, '0'); - setlocale(LC_NUMERIC, 'C'); + $locale = setlocale(LC_NUMERIC, '0'); // @codeCoverageIgnore + setlocale(LC_NUMERIC, 'C'); // @codeCoverageIgnore } try { @@ -92,10 +94,10 @@ public function __construct($time = null, $tz = null) $this->constructedObjectId = spl_object_hash($this); if (isset($locale)) { - setlocale(LC_NUMERIC, $locale); + setlocale(LC_NUMERIC, $locale); // @codeCoverageIgnore } - static::setLastErrors(parent::getLastErrors()); + self::setLastErrors(parent::getLastErrors()); } /** @@ -112,7 +114,7 @@ private function constructTimezoneFromDateTime(DateTimeInterface $date, &$tz) $safeTz = static::safeCreateDateTimeZone($tz); if ($safeTz) { - return $date->setTimezone($safeTz); + return ($date instanceof DateTimeImmutable ? $date : clone $date)->setTimezone($safeTz); } return $date; @@ -148,7 +150,7 @@ public static function instance($date) $instance = new static($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); - if ($date instanceof CarbonInterface || $date instanceof Options) { + if ($date instanceof CarbonInterface) { $settings = $date->getSettings(); if (!$date->hasLocalTranslator()) { @@ -184,7 +186,13 @@ public static function rawParse($time = null, $tz = null) try { return new static($time, $tz); } catch (Exception $exception) { - $date = @static::now($tz)->change($time); + // @codeCoverageIgnoreStart + try { + $date = @static::now($tz)->change($time); + } catch (DateMalformedStringException $ignoredException) { + $date = null; + } + // @codeCoverageIgnoreEnd if (!$date) { throw new InvalidFormatException("Could not parse '$time': ".$exception->getMessage(), 0, $exception); @@ -354,13 +362,13 @@ private static function createNowInstance($tz) * If $hour is not null then the default values for $minute and $second * will be 0. * - * @param int|null $year - * @param int|null $month - * @param int|null $day - * @param int|null $hour - * @param int|null $minute - * @param int|null $second - * @param DateTimeZone|string|null $tz + * @param DateTimeInterface|int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz * * @throws InvalidFormatException * @@ -368,7 +376,7 @@ private static function createNowInstance($tz) */ public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) { - if (\is_string($year) && !is_numeric($year) || $year instanceof DateTimeInterface) { + if ((\is_string($year) && !is_numeric($year)) || $year instanceof DateTimeInterface) { return static::parse($year, $tz ?: (\is_string($month) || $month instanceof DateTimeZone ? $month : null)); } @@ -634,6 +642,10 @@ public static function rawCreateFromFormat($format, $time, $tz = null) $time = preg_replace('/^(.*)(am|pm|AM|PM)(.*)$/U', '$1$3 $2', $time); } + if ($tz === false) { + $tz = null; + } + // First attempt to create an instance, so that error messages are based on the unmodified format. $date = self::createFromFormatAndTimezone($format, $time, $tz); $lastErrors = parent::getLastErrors(); @@ -651,12 +663,14 @@ public static function rawCreateFromFormat($format, $time, $tz = null) $tz = clone $mock->getTimezone(); } - // Set microseconds to zero to match behavior of DateTime::createFromFormat() - // See https://bugs.php.net/bug.php?id=74332 - $mock = $mock->copy()->microsecond(0); + $mock = $mock->copy(); // Prepend mock datetime only if the format does not contain non escaped unix epoch reset flag. if (!preg_match("/{$nonEscaped}[!|]/", $format)) { + if (preg_match('/[HhGgisvuB]/', $format)) { + $mock = $mock->setTime(0, 0); + } + $format = static::MOCK_DATETIME_FORMAT.' '.$format; $time = ($mock instanceof self ? $mock->rawFormat(static::MOCK_DATETIME_FORMAT) : $mock->format(static::MOCK_DATETIME_FORMAT)).' '.$time; } @@ -862,6 +876,19 @@ function ($code) { */ public static function createFromLocaleFormat($format, $locale, $time, $tz = null) { + $format = preg_replace_callback( + '/(?:\\\\[a-zA-Z]|[bfkqCEJKQRV]){2,}/', + static function (array $match) use ($locale): string { + $word = str_replace('\\', '', $match[0]); + $translatedWord = static::translateTimeString($word, $locale, 'en'); + + return $word === $translatedWord + ? $match[0] + : preg_replace('/[a-zA-Z]/', '\\\\$0', $translatedWord); + }, + $format + ); + return static::rawCreateFromFormat($format, static::translateTimeString($time, $locale, 'en'), $tz); } @@ -907,9 +934,9 @@ public static function make($var) if (\is_string($var)) { $var = trim($var); - if (!preg_match('/^P[0-9T]/', $var) && - !preg_match('/^R[0-9]/', $var) && - preg_match('/[a-z0-9]/i', $var) + if (!preg_match('/^P[\dT]/', $var) && + !preg_match('/^R\d/', $var) && + preg_match('/[a-z\d]/i', $var) ) { $date = static::parse($var); } @@ -921,13 +948,20 @@ public static function make($var) /** * Set last errors. * - * @param array $lastErrors + * @param array|bool $lastErrors * * @return void */ - private static function setLastErrors(array $lastErrors) + private static function setLastErrors($lastErrors) { - static::$lastErrors = $lastErrors; + if (\is_array($lastErrors) || $lastErrors === false) { + static::$lastErrors = \is_array($lastErrors) ? $lastErrors : [ + 'warning_count' => 0, + 'warnings' => [], + 'error_count' => 0, + 'errors' => [], + ]; + } } /** diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php index 023da4d1e..8ae5c1781 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php @@ -532,6 +532,7 @@ trait Date use Creator; use Difference; use Macro; + use MagicParameter; use Modifiers; use Mutability; use ObjectInitialisation; @@ -641,9 +642,11 @@ public function getTimezone() /** * List of minimum and maximums for each unit. * + * @param int $daysInMonth + * * @return array */ - protected static function getRangesByUnit() + protected static function getRangesByUnit(int $daysInMonth = 31): array { return [ // @call roundUnit @@ -651,7 +654,7 @@ protected static function getRangesByUnit() // @call roundUnit 'month' => [1, static::MONTHS_PER_YEAR], // @call roundUnit - 'day' => [1, 31], + 'day' => [1, $daysInMonth], // @call roundUnit 'hour' => [0, static::HOURS_PER_DAY - 1], // @call roundUnit @@ -940,7 +943,7 @@ public function get($name) case $name === 'millisecond': // @property int case $name === 'milli': - return (int) floor($this->rawFormat('u') / 1000); + return (int) floor(((int) $this->rawFormat('u')) / 1000); // @property int 1 through 53 case $name === 'week': @@ -1250,7 +1253,7 @@ public function set($name, $value = null) protected function getTranslatedFormByRegExp($baseKey, $keySuffix, $context, $subKey, $defaultValue) { $key = $baseKey.$keySuffix; - $standaloneKey = "${key}_standalone"; + $standaloneKey = "{$key}_standalone"; $baseTranslation = $this->getTranslationMessage($key); if ($baseTranslation instanceof Closure) { @@ -1259,7 +1262,7 @@ protected function getTranslatedFormByRegExp($baseKey, $keySuffix, $context, $su if ( $this->getTranslationMessage("$standaloneKey.$subKey") && - (!$context || ($regExp = $this->getTranslationMessage("${baseKey}_regexp")) && !preg_match($regExp, $context)) + (!$context || (($regExp = $this->getTranslationMessage("{$baseKey}_regexp")) && !preg_match($regExp, $context))) ) { $key = $standaloneKey; } @@ -1354,9 +1357,14 @@ public function dayOfYear($value = null) */ public function weekday($value = null) { - $dayOfWeek = ($this->dayOfWeek + 7 - (int) ($this->getTranslationMessage('first_day_of_week') ?? 0)) % 7; + if ($value === null) { + return $this->dayOfWeek; + } + + $firstDay = (int) ($this->getTranslationMessage('first_day_of_week') ?? 0); + $dayOfWeek = ($this->dayOfWeek + 7 - $firstDay) % 7; - return $value === null ? $dayOfWeek : $this->addDays($value - $dayOfWeek); + return $this->addDays((($value + 7 - $firstDay) % 7) - $dayOfWeek); } /** @@ -1373,6 +1381,39 @@ public function isoWeekday($value = null) return $value === null ? $dayOfWeekIso : $this->addDays($value - $dayOfWeekIso); } + /** + * Return the number of days since the start of the week (using the current locale or the first parameter + * if explicitly given). + * + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return int + */ + public function getDaysFromStartOfWeek(int $weekStartsAt = null): int + { + $firstDay = (int) ($weekStartsAt ?? $this->getTranslationMessage('first_day_of_week') ?? 0); + + return ($this->dayOfWeek + 7 - $firstDay) % 7; + } + + /** + * Set the day (keeping the current time) to the start of the week + the number of days passed as the first + * parameter. First day of week is driven by the locale unless explicitly set with the second parameter. + * + * @param int $numberOfDays number of days to add after the start of the current week + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return static + */ + public function setDaysFromStartOfWeek(int $numberOfDays, int $weekStartsAt = null) + { + return $this->addDays($numberOfDays - $this->getDaysFromStartOfWeek($weekStartsAt)); + } + /** * Set any unit to a new value without overflowing current other unit given. * @@ -1694,7 +1735,7 @@ private static function getFirstDayOfWeek(): int public static function getWeekStartsAt() { if (static::$weekStartsAt === static::WEEK_DAY_AUTO) { - return static::getFirstDayOfWeek(); + return self::getFirstDayOfWeek(); } return static::$weekStartsAt; @@ -1725,7 +1766,7 @@ public static function setWeekStartsAt($day) public static function getWeekEndsAt() { if (static::$weekStartsAt === static::WEEK_DAY_AUTO) { - return (int) (static::DAYS_PER_WEEK - 1 + static::getFirstDayOfWeek()) % static::DAYS_PER_WEEK; + return (int) (static::DAYS_PER_WEEK - 1 + self::getFirstDayOfWeek()) % static::DAYS_PER_WEEK; } return static::$weekEndsAt; @@ -1848,9 +1889,18 @@ public function formatLocalized($format) $format = preg_replace('#(?toDateTimeString())); + $time = strtotime($this->toDateTimeString()); + $formatted = ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) + ? strftime($format, $time) + : @strftime($format, $time); - return static::$utf8 ? utf8_encode($formatted) : $formatted; + return static::$utf8 + ? ( + \function_exists('mb_convert_encoding') + ? mb_convert_encoding($formatted, 'UTF-8', mb_list_encodings()) + : utf8_encode($formatted) + ) + : $formatted; } /** @@ -1869,6 +1919,10 @@ public function getIsoFormats($locale = null) 'LL' => $this->getTranslationMessage('formats.LL', $locale, 'MMMM D, YYYY'), 'LLL' => $this->getTranslationMessage('formats.LLL', $locale, 'MMMM D, YYYY h:mm A'), 'LLLL' => $this->getTranslationMessage('formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'), + 'l' => $this->getTranslationMessage('formats.l', $locale), + 'll' => $this->getTranslationMessage('formats.ll', $locale), + 'lll' => $this->getTranslationMessage('formats.lll', $locale), + 'llll' => $this->getTranslationMessage('formats.llll', $locale), ]; } @@ -2152,7 +2206,7 @@ public function isoFormat(string $format, ?string $originalFormat = null): strin $input = mb_substr($format, $i); - if (preg_match('/^(LTS|LT|[Ll]{1,4})/', $input, $match)) { + if (preg_match('/^(LTS|LT|l{1,4}|L{1,4})/', $input, $match)) { if ($formats === null) { $formats = $this->getIsoFormats(); } @@ -2256,6 +2310,7 @@ public static function getFormatsToIsoReplacements() 'c' => true, 'r' => true, 'U' => true, + 'T' => true, ]; } @@ -2359,7 +2414,7 @@ public function getOffsetString($separator = ':') $symbol = $second < 0 ? '-' : '+'; $minute = abs($second) / static::SECONDS_PER_MINUTE; $hour = str_pad((string) floor($minute / static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); - $minute = str_pad((string) ($minute % static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); + $minute = str_pad((string) (((int) $minute) % static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); return "$symbol$hour$separator$minute"; } @@ -2479,7 +2534,7 @@ public static function pluralUnit(string $unit): string return 'millennia'; } - return "${unit}s"; + return "{$unit}s"; } protected function executeCallable($macro, ...$parameters) @@ -2566,7 +2621,7 @@ public function __call($method, $parameters) if (str_starts_with($unit, 'is')) { $word = substr($unit, 2); - if (\in_array($word, static::$days)) { + if (\in_array($word, static::$days, true)) { return $this->isDayOfWeek($word); } @@ -2594,7 +2649,7 @@ public function __call($method, $parameters) $unit = strtolower(substr($unit, 3)); } - if (\in_array($unit, static::$units)) { + if (\in_array($unit, static::$units, true)) { return $this->setUnit($unit, ...$parameters); } @@ -2604,7 +2659,7 @@ public function __call($method, $parameters) if (str_starts_with($unit, 'Real')) { $unit = static::singularUnit(substr($unit, 4)); - return $this->{"${action}RealUnit"}($unit, ...$parameters); + return $this->{"{$action}RealUnit"}($unit, ...$parameters); } if (preg_match('/^(Month|Quarter|Year|Decade|Century|Centurie|Millennium|Millennia)s?(No|With|Without|WithNo)Overflow$/', $unit, $match)) { @@ -2616,7 +2671,7 @@ public function __call($method, $parameters) } if (static::isModifiableUnit($unit)) { - return $this->{"${action}Unit"}($unit, $parameters[0] ?? 1, $overflow); + return $this->{"{$action}Unit"}($unit, $this->getMagicParameter($parameters, 0, 'value', 1), $overflow); } $sixFirstLetters = substr($unit, 0, 6); @@ -2655,7 +2710,11 @@ public function __call($method, $parameters) try { $unit = static::singularUnit(substr($method, 0, -5)); - return $this->range($parameters[0] ?? $this, $parameters[1] ?? 1, $unit); + return $this->range( + $this->getMagicParameter($parameters, 0, 'endDate', $this), + $this->getMagicParameter($parameters, 1, 'factor', 1), + $unit + ); } catch (InvalidArgumentException $exception) { // Try macros } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php index fa7a49fca..ab5b65d23 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php @@ -83,9 +83,9 @@ protected static function fixNegativeMicroseconds(CarbonInterval $diff) * * @return CarbonInterval */ - protected static function fixDiffInterval(DateInterval $diff, $absolute) + protected static function fixDiffInterval(DateInterval $diff, $absolute, array $skip = []) { - $diff = CarbonInterval::instance($diff); + $diff = CarbonInterval::instance($diff, $skip); // Work-around for https://bugs.php.net/bug.php?id=77145 // @codeCoverageIgnoreStart @@ -148,9 +148,9 @@ public function diff($date = null, $absolute = false) * * @return CarbonInterval */ - public function diffAsCarbonInterval($date = null, $absolute = true) + public function diffAsCarbonInterval($date = null, $absolute = true, array $skip = []) { - return static::fixDiffInterval($this->diff($this->resolveCarbon($date), $absolute), $absolute); + return static::fixDiffInterval($this->diff($this->resolveCarbon($date), $absolute), $absolute, $skip); } /** @@ -189,9 +189,21 @@ public function diffInQuarters($date = null, $absolute = true) */ public function diffInMonths($date = null, $absolute = true) { - $date = $this->resolveCarbon($date); + $date = $this->resolveCarbon($date)->avoidMutation()->tz($this->tz); + + [$yearStart, $monthStart, $dayStart] = explode('-', $this->format('Y-m-dHisu')); + [$yearEnd, $monthEnd, $dayEnd] = explode('-', $date->format('Y-m-dHisu')); + + $diff = (((int) $yearEnd) - ((int) $yearStart)) * static::MONTHS_PER_YEAR + + ((int) $monthEnd) - ((int) $monthStart); + + if ($diff > 0) { + $diff -= ($dayStart > $dayEnd ? 1 : 0); + } elseif ($diff < 0) { + $diff += ($dayStart < $dayEnd ? 1 : 0); + } - return $this->diffInYears($date, $absolute) * static::MONTHS_PER_YEAR + (int) $this->diff($date, $absolute)->format('%r%m'); + return $absolute ? abs($diff) : $diff; } /** @@ -217,7 +229,7 @@ public function diffInWeeks($date = null, $absolute = true) */ public function diffInDays($date = null, $absolute = true) { - return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%a'); + return $this->getIntervalDayDiff($this->diff($this->resolveCarbon($date), $absolute)); } /** @@ -286,9 +298,9 @@ public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null */ public function diffInWeekdays($date = null, $absolute = true) { - return $this->diffInDaysFiltered(function (CarbonInterface $date) { + return $this->diffInDaysFiltered(static function (CarbonInterface $date) { return $date->isWeekday(); - }, $date, $absolute); + }, $this->resolveCarbon($date)->avoidMutation()->modify($this->format('H:i:s.u')), $absolute); } /** @@ -301,9 +313,9 @@ public function diffInWeekdays($date = null, $absolute = true) */ public function diffInWeekendDays($date = null, $absolute = true) { - return $this->diffInDaysFiltered(function (CarbonInterface $date) { + return $this->diffInDaysFiltered(static function (CarbonInterface $date) { return $date->isWeekend(); - }, $date, $absolute); + }, $this->resolveCarbon($date)->avoidMutation()->modify($this->format('H:i:s.u')), $absolute); } /** @@ -472,7 +484,7 @@ public function diffInRealMilliseconds($date = null, $absolute = true) */ public function floatDiffInSeconds($date = null, $absolute = true) { - return $this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND; + return (float) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND); } /** @@ -518,7 +530,7 @@ public function floatDiffInDays($date = null, $absolute = true) return $hoursDiff / static::HOURS_PER_DAY; } - $daysDiff = (int) $interval->format('%r%a'); + $daysDiff = $this->getIntervalDayDiff($interval); return $daysDiff + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY; } @@ -830,8 +842,9 @@ public function diffForHumans($other = null, $syntax = null, $short = false, $pa $intSyntax = $intSyntax === static::DIFF_RELATIVE_AUTO && $other === null ? static::DIFF_RELATIVE_TO_NOW : $intSyntax; $parts = min(7, max(1, (int) $parts)); + $skip = \is_array($syntax) ? ($syntax['skip'] ?? []) : []; - return $this->diffAsCarbonInterval($other, false) + return $this->diffAsCarbonInterval($other, false, (array) $skip) ->setLocalTranslator($this->getLocalTranslator()) ->forHumans($syntax, (bool) $short, $parts, $options ?? $this->localHumanDiffOptions ?? static::getHumanDiffOptions()); } @@ -1149,4 +1162,21 @@ public function calendar($referenceTime = null, array $formats = []) return $this->isoFormat((string) $format); } + + private function getIntervalDayDiff(DateInterval $interval): int + { + $daysDiff = (int) $interval->format('%a'); + $sign = $interval->format('%r') === '-' ? -1 : 1; + + if (\is_int($interval->days) && + $interval->y === 0 && + $interval->m === 0 && + version_compare(PHP_VERSION, '8.1.0-dev', '<') && + abs($interval->d - $daysDiff) === 1 + ) { + $daysDiff = abs($interval->d); // @codeCoverageIgnore + } + + return $daysDiff * $sign; + } } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php index 4cd66b676..f069c280d 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php @@ -40,7 +40,7 @@ protected function roundWith($precision, $function) $unit = 'second'; if ($precision instanceof DateInterval) { - $precision = (string) CarbonInterval::instance($precision); + $precision = (string) CarbonInterval::instance($precision, [], true); } if (\is_string($precision) && preg_match('/^\s*(?\d+)?\s*(?\w+)(?\W.*)?$/', $precision, $match)) { diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php index b3d01c791..46aff113e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php @@ -23,12 +23,16 @@ use Symfony\Contracts\Translation\LocaleAwareInterface; use Symfony\Contracts\Translation\TranslatorInterface as ContractsTranslatorInterface; -if (!interface_exists('Symfony\\Component\\Translation\\TranslatorInterface')) { +// @codeCoverageIgnoreStart +if (interface_exists('Symfony\\Contracts\\Translation\\TranslatorInterface') && + !interface_exists('Symfony\\Component\\Translation\\TranslatorInterface') +) { class_alias( 'Symfony\\Contracts\\Translation\\TranslatorInterface', 'Symfony\\Component\\Translation\\TranslatorInterface' ); } +// @codeCoverageIgnoreEnd /** * Trait Localization. @@ -355,6 +359,13 @@ public static function translateTimeString($timeString, $from = null, $to = null $weekdays = $messages['weekdays'] ?? []; $meridiem = $messages['meridiem'] ?? ['AM', 'PM']; + if (isset($messages['ordinal_words'])) { + $timeString = self::replaceOrdinalWords( + $timeString, + $key === 'from' ? array_flip($messages['ordinal_words']) : $messages['ordinal_words'] + ); + } + if ($key === 'from') { foreach (['months', 'weekdays'] as $variable) { $list = $messages[$variable.'_standalone'] ?? null; @@ -454,7 +465,7 @@ public function locale(string $locale = null, ...$fallbackLocales) } } - $this->setLocalTranslator($translator); + $this->localTranslator = $translator; } return $this; @@ -555,17 +566,13 @@ public static function executeWithLocale($locale, $func) public static function localeHasShortUnits($locale) { return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { - return $newLocale && - ( - ($y = static::translateWith($translator, 'y')) !== 'y' && - $y !== static::translateWith($translator, 'year') - ) || ( - ($y = static::translateWith($translator, 'd')) !== 'd' && + return ($newLocale && (($y = static::translateWith($translator, 'y')) !== 'y' && $y !== static::translateWith($translator, 'year'))) || ( + ($y = static::translateWith($translator, 'd')) !== 'd' && $y !== static::translateWith($translator, 'day') - ) || ( - ($y = static::translateWith($translator, 'h')) !== 'h' && + ) || ( + ($y = static::translateWith($translator, 'h')) !== 'h' && $y !== static::translateWith($translator, 'hour') - ); + ); }); } @@ -734,7 +741,7 @@ protected static function getLocaleAwareTranslator($translator = null) } if ($translator && !($translator instanceof LocaleAwareInterface || method_exists($translator, 'getLocale'))) { - throw new NotLocaleAwareException($translator); + throw new NotLocaleAwareException($translator); // @codeCoverageIgnore } return $translator; @@ -792,7 +799,7 @@ private static function translateWordsByKeys($keys, $messages, $key): array $parts = explode('|', $message); return $key === 'to' - ? static::cleanWordFromTranslationString(end($parts)) + ? self::cleanWordFromTranslationString(end($parts)) : '(?:'.implode('|', array_map([static::class, 'cleanWordFromTranslationString'], $parts)).')'; }, $keys); } @@ -823,4 +830,11 @@ private static function getTranslationArray($translation, $length, $timeString): return $list; } + + private static function replaceOrdinalWords(string $timeString, array $ordinalWords): string + { + return preg_replace_callback('/(? + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait MagicParameter. + * + * Allows to retrieve parameter in magic calls by index or name. + */ +trait MagicParameter +{ + private function getMagicParameter(array $parameters, int $index, string $key, $default) + { + if (\array_key_exists($index, $parameters)) { + return $parameters[$index]; + } + + if (\array_key_exists($key, $parameters)) { + return $parameters[$key]; + } + + return $default; + } +} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php index ac06084a7..582245456 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php @@ -11,6 +11,9 @@ namespace Carbon\Traits; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; use Closure; use Generator; use ReflectionClass; @@ -66,8 +69,8 @@ trait Mixin public static function mixin($mixin) { \is_string($mixin) && trait_exists($mixin) - ? static::loadMixinTrait($mixin) - : static::loadMixinClass($mixin); + ? self::loadMixinTrait($mixin) + : self::loadMixinClass($mixin); } /** @@ -99,12 +102,13 @@ private static function loadMixinTrait($trait) { $context = eval(self::getAnonymousClassCodeForTrait($trait)); $className = \get_class($context); + $baseClass = static::class; foreach (self::getMixableMethods($context) as $name) { $closureBase = Closure::fromCallable([$context, $name]); - static::macro($name, function () use ($closureBase, $className) { - /** @phpstan-ignore-next-line */ + static::macro($name, function (...$parameters) use ($closureBase, $className, $baseClass) { + $downContext = isset($this) ? ($this) : new $baseClass(); $context = isset($this) ? $this->cast($className) : new $className(); try { @@ -115,9 +119,50 @@ private static function loadMixinTrait($trait) } // in case of errors not converted into exceptions - $closure = $closure ?? $closureBase; + $closure = $closure ?: $closureBase; - return $closure(...\func_get_args()); + $result = $closure(...$parameters); + + if (!($result instanceof $className)) { + return $result; + } + + if ($downContext instanceof CarbonInterface && $result instanceof CarbonInterface) { + if ($context !== $result) { + $downContext = $downContext->copy(); + } + + return $downContext + ->setTimezone($result->getTimezone()) + ->modify($result->format('Y-m-d H:i:s.u')) + ->settings($result->getSettings()); + } + + if ($downContext instanceof CarbonInterval && $result instanceof CarbonInterval) { + if ($context !== $result) { + $downContext = $downContext->copy(); + } + + $downContext->copyProperties($result); + self::copyStep($downContext, $result); + self::copyNegativeUnits($downContext, $result); + + return $downContext->settings($result->getSettings()); + } + + if ($downContext instanceof CarbonPeriod && $result instanceof CarbonPeriod) { + if ($context !== $result) { + $downContext = $downContext->copy(); + } + + return $downContext + ->setDates($result->getStartDate(), $result->getEndDate()) + ->setRecurrences($result->getRecurrences()) + ->setOptions($result->getOptions()) + ->settings($result->getSettings()); + } + + return $result; }); } } @@ -151,22 +196,12 @@ private static function getMixableMethods(self $context): Generator protected static function bindMacroContext($context, callable $callable) { static::$macroContextStack[] = $context; - $exception = null; - $result = null; try { - $result = $callable(); - } catch (Throwable $throwable) { - $exception = $throwable; + return $callable(); + } finally { + array_pop(static::$macroContextStack); } - - array_pop(static::$macroContextStack); - - if ($exception) { - throw $exception; - } - - return $result; } /** diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php index 164dbbd10..39343d8fa 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php @@ -75,7 +75,7 @@ public function midDay() * * @param string|int|null $modifier * - * @return static + * @return static|false */ public function next($modifier = null) { @@ -157,7 +157,7 @@ public function previousWeekendDay() * * @param string|int|null $modifier * - * @return static + * @return static|false */ public function previous($modifier = null) { @@ -451,7 +451,7 @@ public function modify($modify) * * @param string $modifier * - * @return static + * @return static|false */ public function change($modifier) { diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php index 0ddee8dd6..ffad4f14b 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php @@ -22,7 +22,7 @@ * * Depends on the following methods: * - * @method \Carbon\Carbon|\Carbon\CarbonImmutable shiftTimezone($timezone) Set the timezone + * @method static shiftTimezone($timezone) Set the timezone */ trait Options { @@ -96,9 +96,9 @@ trait Options 'v' => '([0-9]{1,3})', 'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)', 'I' => '(0|1)', - 'O' => '([+-](1[012]|0[0-9])[0134][05])', - 'P' => '([+-](1[012]|0[0-9]):[0134][05])', - 'p' => '(Z|[+-](1[012]|0[0-9]):[0134][05])', + 'O' => '([+-](1[0123]|0[0-9])[0134][05])', + 'P' => '([+-](1[0123]|0[0-9]):[0134][05])', + 'p' => '(Z|[+-](1[0123]|0[0-9]):[0134][05])', 'T' => '([a-zA-Z]{1,5})', 'Z' => '(-?[1-5]?[0-9]{1,4})', 'U' => '([0-9]*)', @@ -422,7 +422,7 @@ public function getSettings() foreach ($map as $property => $key) { $value = $this->$property ?? null; - if ($value !== null) { + if ($value !== null && ($key !== 'locale' || $value !== 'en' || $this->localTranslator)) { $settings[$key] = $value; } } @@ -437,11 +437,11 @@ public function getSettings() */ public function __debugInfo() { - $infos = array_filter(get_object_vars($this), function ($var) { + $infos = array_filter(get_object_vars($this), static function ($var) { return $var; }); - foreach (['dumpProperties', 'constructedObjectId'] as $property) { + foreach (['dumpProperties', 'constructedObjectId', 'constructed'] as $property) { if (isset($infos[$property])) { unset($infos[$property]); } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php index 33062397f..85ff5a711 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php @@ -52,12 +52,11 @@ public function roundUnit($unit, $precision = 1, $function = 'round') 'millisecond' => [1000, 'microsecond'], ]; $normalizedUnit = static::singularUnit($unit); - $ranges = array_merge(static::getRangesByUnit(), [ + $ranges = array_merge(static::getRangesByUnit($this->daysInMonth), [ // @call roundUnit 'microsecond' => [0, 999999], ]); $factor = 1; - $initialMonth = $this->month; if ($normalizedUnit === 'week') { $normalizedUnit = 'day'; @@ -77,12 +76,15 @@ public function roundUnit($unit, $precision = 1, $function = 'round') $found = false; $fraction = 0; $arguments = null; + $initialValue = null; $factor = $this->year < 0 ? -1 : 1; $changes = []; + $minimumInc = null; foreach ($ranges as $unit => [$minimum, $maximum]) { if ($normalizedUnit === $unit) { $arguments = [$this->$unit, $minimum]; + $initialValue = $this->$unit; $fraction = $precision - floor($precision); $found = true; @@ -93,7 +95,23 @@ public function roundUnit($unit, $precision = 1, $function = 'round') $delta = $maximum + 1 - $minimum; $factor /= $delta; $fraction *= $delta; - $arguments[0] += $this->$unit * $factor; + $inc = ($this->$unit - $minimum) * $factor; + + if ($inc !== 0.0) { + $minimumInc = $minimumInc ?? ($arguments[0] / pow(2, 52)); + + // If value is still the same when adding a non-zero increment/decrement, + // it means precision got lost in the addition + if (abs($inc) < $minimumInc) { + $inc = $minimumInc * ($inc < 0 ? -1 : 1); + } + + // If greater than $precision, assume precision loss caused an overflow + if ($function !== 'floor' || abs($arguments[0] + $inc - $initialValue) >= $precision) { + $arguments[0] += $inc; + } + } + $changes[$unit] = round( $minimum + ($fraction ? $fraction * $function(($this->$unit - $minimum) / $fraction) : 0) ); @@ -111,16 +129,13 @@ public function roundUnit($unit, $precision = 1, $function = 'round') $normalizedValue = floor($function(($value - $minimum) / $precision) * $precision + $minimum); /** @var CarbonInterface $result */ - $result = $this->$normalizedUnit($normalizedValue); + $result = $this; foreach ($changes as $unit => $value) { $result = $result->$unit($value); } - return $normalizedUnit === 'month' && $precision <= 1 && abs($result->month - $initialMonth) === 2 - // Re-run the change in case an overflow occurred - ? $result->$normalizedUnit($normalizedValue) - : $result; + return $result->$normalizedUnit($normalizedValue); } /** diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php index eebc69bd0..c1d5c5e13 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php @@ -120,6 +120,8 @@ public static function __set_state($dump) /** * Returns the list of properties to dump on serialize() called on. * + * Only used by PHP < 7.4. + * * @return array */ public function __sleep() @@ -134,22 +136,70 @@ public function __sleep() return $properties; } + /** + * Returns the values to dump on serialize() called on. + * + * Only used by PHP >= 7.4. + * + * @return array + */ + public function __serialize(): array + { + // @codeCoverageIgnoreStart + if (isset($this->timezone_type, $this->timezone, $this->date)) { + return [ + 'date' => $this->date ?? null, + 'timezone_type' => $this->timezone_type, + 'timezone' => $this->timezone ?? null, + ]; + } + // @codeCoverageIgnoreEnd + + $timezone = $this->getTimezone(); + $export = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone_type' => $timezone->getType(), + 'timezone' => $timezone->getName(), + ]; + + // @codeCoverageIgnoreStart + if (\extension_loaded('msgpack') && isset($this->constructedObjectId)) { + $export['dumpDateProperties'] = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone' => serialize($this->timezone ?? null), + ]; + } + // @codeCoverageIgnoreEnd + + if ($this->localTranslator ?? null) { + $export['dumpLocale'] = $this->locale ?? null; + } + + return $export; + } + /** * Set locale if specified on unserialize() called. * + * Only used by PHP < 7.4. + * * @return void */ #[ReturnTypeWillChange] public function __wakeup() { - if (get_parent_class() && method_exists(parent::class, '__wakeup')) { + if (parent::class && method_exists(parent::class, '__wakeup')) { // @codeCoverageIgnoreStart try { parent::__wakeup(); } catch (Throwable $exception) { - // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. - ['date' => $date, 'timezone' => $timezone] = $this->dumpDateProperties; - parent::__construct($date, unserialize($timezone)); + try { + // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. + ['date' => $date, 'timezone' => $timezone] = $this->dumpDateProperties; + parent::__construct($date, unserialize($timezone)); + } catch (Throwable $ignoredException) { + throw $exception; + } } // @codeCoverageIgnoreEnd } @@ -164,6 +214,38 @@ public function __wakeup() $this->cleanupDumpProperties(); } + /** + * Set locale if specified on unserialize() called. + * + * Only used by PHP >= 7.4. + * + * @return void + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + try { + $this->__construct($data['date'] ?? null, $data['timezone'] ?? null); + } catch (Throwable $exception) { + if (!isset($data['dumpDateProperties']['date'], $data['dumpDateProperties']['timezone'])) { + throw $exception; + } + + try { + // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. + ['date' => $date, 'timezone' => $timezone] = $data['dumpDateProperties']; + $this->__construct($date, unserialize($timezone)); + } catch (Throwable $ignoredException) { + throw $exception; + } + } + // @codeCoverageIgnoreEnd + + if (isset($data['dumpLocale'])) { + $this->locale($data['dumpLocale']); + } + } + /** * Prepare the object for JSON serialization. * @@ -207,11 +289,15 @@ public static function serializeUsing($callback) */ public function cleanupDumpProperties() { - foreach ($this->dumpProperties as $property) { - if (isset($this->$property)) { - unset($this->$property); + // @codeCoverageIgnoreStart + if (PHP_VERSION < 8.2) { + foreach ($this->dumpProperties as $property) { + if (isset($this->$property)) { + unset($this->$property); + } } } + // @codeCoverageIgnoreEnd return $this; } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php index d22988c32..f23c72e8f 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php @@ -28,10 +28,17 @@ trait Test /** * A test Carbon instance to be returned when now instances are created. * - * @var static + * @var Closure|static|null */ protected static $testNow; + /** + * The timezone to resto to when clearing the time mock. + * + * @var string|null + */ + protected static $testDefaultTimezone; + /** * Set a Carbon instance (real or mock) to be returned when a "now" * instance is created. The provided instance will be returned @@ -52,15 +59,13 @@ trait Test * * /!\ Use this method for unit tests only. * - * @param Closure|static|string|false|null $testNow real or mock Carbon instance + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance */ public static function setTestNow($testNow = null) { - if ($testNow === false) { - $testNow = null; - } - - static::$testNow = \is_string($testNow) ? static::parse($testNow) : $testNow; + static::$testNow = $testNow instanceof self || $testNow instanceof Closure + ? $testNow + : static::make($testNow); } /** @@ -80,10 +85,14 @@ public static function setTestNow($testNow = null) * * /!\ Use this method for unit tests only. * - * @param Closure|static|string|false|null $testNow real or mock Carbon instance + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance */ public static function setTestNowAndTimezone($testNow = null, $tz = null) { + if ($testNow) { + self::$testDefaultTimezone = self::$testDefaultTimezone ?? date_default_timezone_get(); + } + $useDateInstanceTimezone = $testNow instanceof DateTimeInterface; if ($useDateInstanceTimezone) { @@ -94,7 +103,12 @@ public static function setTestNowAndTimezone($testNow = null, $tz = null) if (!$useDateInstanceTimezone) { $now = static::getMockedTestNow(\func_num_args() === 1 ? null : $tz); - self::setDefaultTimezone($now->tzName, $now); + $tzName = $now ? $now->tzName : null; + self::setDefaultTimezone($tzName ?? self::$testDefaultTimezone ?? 'UTC', $now); + } + + if (!$testNow) { + self::$testDefaultTimezone = null; } } @@ -105,16 +119,22 @@ public static function setTestNowAndTimezone($testNow = null, $tz = null) * * /!\ Use this method for unit tests only. * - * @param Closure|static|string|false|null $testNow real or mock Carbon instance - * @param Closure|null $callback + * @template T + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + * @param Closure(): T $callback * - * @return mixed + * @return T */ - public static function withTestNow($testNow = null, $callback = null) + public static function withTestNow($testNow, $callback) { static::setTestNow($testNow); - $result = $callback(); - static::setTestNow(); + + try { + $result = $callback(); + } finally { + static::setTestNow(); + } return $result; } diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php index 2cb5c48d7..88a465c93 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php @@ -63,7 +63,7 @@ public static function createFromTimestampUTC($timestamp) public static function createFromTimestampMsUTC($timestamp) { [$milliseconds, $microseconds] = self::getIntegerAndDecimalParts($timestamp, 3); - $sign = $milliseconds < 0 || $milliseconds === 0.0 && $microseconds < 0 ? -1 : 1; + $sign = $milliseconds < 0 || ($milliseconds === 0.0 && $microseconds < 0) ? -1 : 1; $milliseconds = abs($milliseconds); $microseconds = $sign * abs($microseconds) + static::MICROSECONDS_PER_MILLISECOND * ($milliseconds % static::MILLISECONDS_PER_SECOND); $seconds = $sign * floor($milliseconds / static::MILLISECONDS_PER_SECOND); @@ -125,7 +125,7 @@ public function timestamp($unixTimestamp) */ public function getPreciseTimestamp($precision = 6) { - return round($this->rawFormat('Uu') / pow(10, 6 - $precision)); + return round(((float) $this->rawFormat('Uu')) / pow(10, 6 - $precision)); } /** @@ -182,7 +182,7 @@ private static function getIntegerAndDecimalParts($numbers, $decimals = 6) $integer = 0; $decimal = 0; - foreach (preg_split('`[^0-9.]+`', $numbers) as $chunk) { + foreach (preg_split('`[^\d.]+`', $numbers) as $chunk) { [$integerPart, $decimalPart] = explode('.', "$chunk."); $integer += (int) $integerPart; diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/ToStringFormat.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/ToStringFormat.php new file mode 100644 index 000000000..a81164f99 --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/ToStringFormat.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Closure; + +/** + * Trait ToStringFormat. + * + * Handle global format customization for string cast of the object. + */ +trait ToStringFormat +{ + /** + * Format to use for __toString method when type juggling occurs. + * + * @var string|Closure|null + */ + protected static $toStringFormat; + + /** + * Reset the format used to the default when type juggling a Carbon instance to a string + * + * @return void + */ + public static function resetToStringFormat() + { + static::setToStringFormat(null); + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string + * format. + * + * Set the default format used when type juggling a Carbon instance to a string. + * + * @param string|Closure|null $format + * + * @return void + */ + public static function setToStringFormat($format) + { + static::$toStringFormat = $format; + } +} diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php index 2902a8b10..5be14ec7e 100644 --- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php +++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php @@ -17,6 +17,7 @@ use Carbon\Exceptions\UnitException; use Closure; use DateInterval; +use DateMalformedStringException; use ReturnTypeWillChange; /** @@ -60,8 +61,6 @@ public function addRealUnit($unit, $value = 1) case 'millisecond': return $this->addRealUnit('microsecond', $value * static::MICROSECONDS_PER_MILLISECOND); - break; - // @call addRealUnit case 'second': break; @@ -167,7 +166,7 @@ public static function isModifiableUnit($unit) 'weekday', ]; - return \in_array($unit, $modifiableUnits) || \in_array($unit, static::$units); + return \in_array($unit, $modifiableUnits, true) || \in_array($unit, static::$units, true); } /** @@ -199,7 +198,7 @@ public function rawAdd(DateInterval $interval) public function add($unit, $value = 1, $overflow = null) { if (\is_string($unit) && \func_num_args() === 1) { - $unit = CarbonInterval::make($unit); + $unit = CarbonInterval::make($unit, [], true); } if ($unit instanceof CarbonConverterInterface) { @@ -232,6 +231,8 @@ public function add($unit, $value = 1, $overflow = null) */ public function addUnit($unit, $value = 1, $overflow = null) { + $originalArgs = \func_get_args(); + $date = $this; if (!is_numeric($value) || !(float) $value) { @@ -264,7 +265,7 @@ public function addUnit($unit, $value = 1, $overflow = null) /** @var static $date */ $date = $date->addDays($sign); - while (\in_array($date->dayOfWeek, $weekendDays)) { + while (\in_array($date->dayOfWeek, $weekendDays, true)) { $date = $date->addDays($sign); } } @@ -274,14 +275,14 @@ public function addUnit($unit, $value = 1, $overflow = null) } $timeString = $date->toTimeString(); - } elseif ($canOverflow = \in_array($unit, [ + } elseif ($canOverflow = (\in_array($unit, [ 'month', 'year', ]) && ($overflow === false || ( $overflow === null && ($ucUnit = ucfirst($unit).'s') && !($this->{'local'.$ucUnit.'Overflow'} ?? static::{'shouldOverflow'.$ucUnit}()) - ))) { + )))) { $day = $date->day; } @@ -304,16 +305,21 @@ public function addUnit($unit, $value = 1, $overflow = null) $unit = 'second'; $value = $second; } - $date = $date->modify("$value $unit"); - if (isset($timeString)) { - $date = $date->setTimeFromTimeString($timeString); - } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) { - $date = $date->modify('last day of previous month'); + try { + $date = $date->modify("$value $unit"); + + if (isset($timeString)) { + $date = $date->setTimeFromTimeString($timeString); + } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) { + $date = $date->modify('last day of previous month'); + } + } catch (DateMalformedStringException $ignoredException) { // @codeCoverageIgnore + $date = null; // @codeCoverageIgnore } if (!$date) { - throw new UnitException('Unable to add unit '.var_export(\func_get_args(), true)); + throw new UnitException('Unable to add unit '.var_export($originalArgs, true)); } return $date; @@ -362,7 +368,7 @@ public function rawSub(DateInterval $interval) public function sub($unit, $value = 1, $overflow = null) { if (\is_string($unit) && \func_num_args() === 1) { - $unit = CarbonInterval::make($unit); + $unit = CarbonInterval::make($unit, [], true); } if ($unit instanceof CarbonConverterInterface) { @@ -398,7 +404,7 @@ public function sub($unit, $value = 1, $overflow = null) public function subtract($unit, $value = 1, $overflow = null) { if (\is_string($unit) && \func_num_args() === 1) { - $unit = CarbonInterval::make($unit); + $unit = CarbonInterval::make($unit, [], true); } return $this->sub($unit, $value, $overflow); diff --git a/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php new file mode 100644 index 000000000..ce6b2f90a --- /dev/null +++ b/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php @@ -0,0 +1,99 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\ImmutableException; +use Symfony\Component\Config\ConfigCacheFactoryInterface; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +class TranslatorImmutable extends Translator +{ + /** @var bool */ + private $constructed = false; + + public function __construct($locale, MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false) + { + parent::__construct($locale, $formatter, $cacheDir, $debug); + $this->constructed = true; + } + + /** + * @codeCoverageIgnore + */ + public function setDirectories(array $directories) + { + $this->disallowMutation(__METHOD__); + + return parent::setDirectories($directories); + } + + public function setLocale($locale) + { + $this->disallowMutation(__METHOD__); + + return parent::setLocale($locale); + } + + /** + * @codeCoverageIgnore + */ + public function setMessages($locale, $messages) + { + $this->disallowMutation(__METHOD__); + + return parent::setMessages($locale, $messages); + } + + /** + * @codeCoverageIgnore + */ + public function setTranslations($messages) + { + $this->disallowMutation(__METHOD__); + + return parent::setTranslations($messages); + } + + /** + * @codeCoverageIgnore + */ + public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory): void + { + $this->disallowMutation(__METHOD__); + + parent::setConfigCacheFactory($configCacheFactory); + } + + public function resetMessages($locale = null) + { + $this->disallowMutation(__METHOD__); + + return parent::resetMessages($locale); + } + + /** + * @codeCoverageIgnore + */ + public function setFallbackLocales(array $locales) + { + $this->disallowMutation(__METHOD__); + + parent::setFallbackLocales($locales); + } + + private function disallowMutation($method) + { + if ($this->constructed) { + throw new ImmutableException($method.' not allowed on '.static::class); + } + } +} diff --git a/api/vendor/nikic/php-parser/.editorconfig b/api/vendor/nikic/php-parser/.editorconfig deleted file mode 100644 index 9c76d0708..000000000 --- a/api/vendor/nikic/php-parser/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*.y] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true -indent_style = space -indent_size = 4 diff --git a/api/vendor/nikic/php-parser/README.md b/api/vendor/nikic/php-parser/README.md index e5b26bf5c..3bca288b9 100644 --- a/api/vendor/nikic/php-parser/README.md +++ b/api/vendor/nikic/php-parser/README.md @@ -3,10 +3,10 @@ PHP Parser [![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master) -This is a PHP 5.2 to PHP 8.0 parser written in PHP. Its purpose is to simplify static code analysis and +This is a PHP 5.2 to PHP 8.2 parser written in PHP. Its purpose is to simplify static code analysis and manipulation. -[**Documentation for version 4.x**][doc_master] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 8.0). +[**Documentation for version 4.x**][doc_4_x] (stable; for running on PHP >= 7.1; for parsing PHP 5.2 to PHP 8.2). [Documentation for version 3.x][doc_3_x] (unsupported; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.2). @@ -222,4 +222,4 @@ Component documentation: * Parent and sibling references [doc_3_x]: https://github.com/nikic/PHP-Parser/tree/3.x/doc - [doc_master]: https://github.com/nikic/PHP-Parser/tree/master/doc + [doc_4_x]: https://github.com/nikic/PHP-Parser/tree/4.x/doc diff --git a/api/vendor/nikic/php-parser/composer.json b/api/vendor/nikic/php-parser/composer.json index 2fd064a21..9a3e1a976 100644 --- a/api/vendor/nikic/php-parser/composer.json +++ b/api/vendor/nikic/php-parser/composer.json @@ -13,7 +13,7 @@ } ], "require": { - "php": ">=7.0", + "php": ">=7.1", "ext-tokenizer": "*" }, "require-dev": { diff --git a/api/vendor/nikic/php-parser/grammar/README.md b/api/vendor/nikic/php-parser/grammar/README.md deleted file mode 100644 index 4bae11d82..000000000 --- a/api/vendor/nikic/php-parser/grammar/README.md +++ /dev/null @@ -1,30 +0,0 @@ -What do all those files mean? -============================= - - * `php5.y`: PHP 5 grammar written in a pseudo language - * `php7.y`: PHP 7 grammar written in a pseudo language - * `tokens.y`: Tokens definition shared between PHP 5 and PHP 7 grammars - * `parser.template`: A `kmyacc` parser prototype file for PHP - * `tokens.template`: A `kmyacc` prototype file for the `Tokens` class - * `rebuildParsers.php`: Preprocesses the grammar and builds the parser using `kmyacc` - -.phpy pseudo language -===================== - -The `.y` file is a normal grammar in `kmyacc` (`yacc`) style, with some transformations -applied to it: - - * Nodes are created using the syntax `Name[..., ...]`. This is transformed into - `new Name(..., ..., attributes())` - * Some function-like constructs are resolved (see `rebuildParsers.php` for a list) - -Building the parser -=================== - -Run `php grammar/rebuildParsers.php` to rebuild the parsers. Additional options: - - * The `KMYACC` environment variable can be used to specify an alternative `kmyacc` binary. - By default the `phpyacc` dev dependency will be used. To use the original `kmyacc`, you - need to compile [moriyoshi's fork](https://github.com/moriyoshi/kmyacc-forked). - * The `--debug` option enables emission of debug symbols and creates the `y.output` file. - * The `--keep-tmp-grammar` option preserves the preprocessed grammar file. diff --git a/api/vendor/nikic/php-parser/grammar/parser.template b/api/vendor/nikic/php-parser/grammar/parser.template deleted file mode 100644 index 6166607c9..000000000 --- a/api/vendor/nikic/php-parser/grammar/parser.template +++ /dev/null @@ -1,106 +0,0 @@ -semValue -#semval($,%t) $this->semValue -#semval(%n) $stackPos-(%l-%n) -#semval(%n,%t) $stackPos-(%l-%n) - -namespace PhpParser\Parser; - -use PhpParser\Error; -use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Name; -use PhpParser\Node\Scalar; -use PhpParser\Node\Stmt; -#include; - -/* This is an automatically GENERATED file, which should not be manually edited. - * Instead edit one of the following: - * * the grammar files grammar/php5.y or grammar/php7.y - * * the skeleton file grammar/parser.template - * * the preprocessing script grammar/rebuildParsers.php - */ -class #(-p) extends \PhpParser\ParserAbstract -{ - protected $tokenToSymbolMapSize = #(YYMAXLEX); - protected $actionTableSize = #(YYLAST); - protected $gotoTableSize = #(YYGLAST); - - protected $invalidSymbol = #(YYBADCH); - protected $errorSymbol = #(YYINTERRTOK); - protected $defaultAction = #(YYDEFAULT); - protected $unexpectedTokenRule = #(YYUNEXPECTED); - - protected $YY2TBLSTATE = #(YY2TBLSTATE); - protected $numNonLeafStates = #(YYNLSTATES); - - protected $symbolToName = array( - #listvar terminals - ); - - protected $tokenToSymbol = array( - #listvar yytranslate - ); - - protected $action = array( - #listvar yyaction - ); - - protected $actionCheck = array( - #listvar yycheck - ); - - protected $actionBase = array( - #listvar yybase - ); - - protected $actionDefault = array( - #listvar yydefault - ); - - protected $goto = array( - #listvar yygoto - ); - - protected $gotoCheck = array( - #listvar yygcheck - ); - - protected $gotoBase = array( - #listvar yygbase - ); - - protected $gotoDefault = array( - #listvar yygdefault - ); - - protected $ruleToNonTerminal = array( - #listvar yylhs - ); - - protected $ruleToLength = array( - #listvar yylen - ); -#if -t - - protected $productions = array( - #production-strings; - ); -#endif - - protected function initReduceCallbacks() { - $this->reduceCallbacks = [ -#reduce - %n => function ($stackPos) { - %b - }, -#noact - %n => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, -#endreduce - ]; - } -} -#tailcode; diff --git a/api/vendor/nikic/php-parser/grammar/php5.y b/api/vendor/nikic/php-parser/grammar/php5.y deleted file mode 100644 index c7d245dc7..000000000 --- a/api/vendor/nikic/php-parser/grammar/php5.y +++ /dev/null @@ -1,1026 +0,0 @@ -%pure_parser -%expect 6 - -%tokens - -%% - -start: - top_statement_list { $$ = $this->handleNamespaces($1); } -; - -top_statement_list_ex: - top_statement_list_ex top_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -top_statement_list: - top_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -reserved_non_modifiers: - T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND - | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE - | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH - | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO - | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT - | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN - | T_MATCH -; - -semi_reserved: - reserved_non_modifiers - | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC -; - -identifier_ex: - T_STRING { $$ = Node\Identifier[$1]; } - | semi_reserved { $$ = Node\Identifier[$1]; } -; - -identifier: - T_STRING { $$ = Node\Identifier[$1]; } -; - -reserved_non_modifiers_identifier: - reserved_non_modifiers { $$ = Node\Identifier[$1]; } -; - -namespace_name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } -; - -legacy_namespace_name: - namespace_name { $$ = $1; } - | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1, 1)]; } -; - -plain_variable: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -top_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } - | T_NAMESPACE namespace_name ';' - { $$ = Stmt\Namespace_[$2, null]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($$); } - | T_NAMESPACE namespace_name '{' top_statement_list '}' - { $$ = Stmt\Namespace_[$2, $4]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_NAMESPACE '{' top_statement_list '}' - { $$ = Stmt\Namespace_[null, $3]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_USE use_declarations ';' { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } - | T_USE use_type use_declarations ';' { $$ = Stmt\Use_[$3, $2]; } - | group_use_declaration ';' { $$ = $1; } - | T_CONST constant_declaration_list ';' { $$ = Stmt\Const_[$2]; } -; - -use_type: - T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } - | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } -; - -group_use_declaration: - T_USE use_type legacy_namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[$3, $6, $2]; } - | T_USE legacy_namespace_name T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[$2, $5, Stmt\Use_::TYPE_UNKNOWN]; } -; - -unprefixed_use_declarations: - unprefixed_use_declarations ',' unprefixed_use_declaration - { push($1, $3); } - | unprefixed_use_declaration { init($1); } -; - -use_declarations: - use_declarations ',' use_declaration { push($1, $3); } - | use_declaration { init($1); } -; - -inline_use_declarations: - inline_use_declarations ',' inline_use_declaration { push($1, $3); } - | inline_use_declaration { init($1); } -; - -unprefixed_use_declaration: - namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | namespace_name T_AS identifier - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -use_declaration: - legacy_namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | legacy_namespace_name T_AS identifier - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -inline_use_declaration: - unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } - | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } -; - -constant_declaration_list: - constant_declaration_list ',' constant_declaration { push($1, $3); } - | constant_declaration { init($1); } -; - -constant_declaration: - identifier '=' static_scalar { $$ = Node\Const_[$1, $3]; } -; - -class_const_list: - class_const_list ',' class_const { push($1, $3); } - | class_const { init($1); } -; - -class_const: - identifier_ex '=' static_scalar { $$ = Node\Const_[$1, $3]; } -; - -inner_statement_list_ex: - inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -inner_statement_list: - inner_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -inner_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } -; - -non_empty_statement: - '{' inner_statement_list '}' - { - if ($2) { - $$ = $2; prependLeadingComments($$); - } else { - makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if (null === $$) { $$ = array(); } - } - } - | T_IF parentheses_expr statement elseif_list else_single - { $$ = Stmt\If_[$2, ['stmts' => toArray($3), 'elseifs' => $4, 'else' => $5]]; } - | T_IF parentheses_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' - { $$ = Stmt\If_[$2, ['stmts' => $4, 'elseifs' => $5, 'else' => $6]]; } - | T_WHILE parentheses_expr while_statement { $$ = Stmt\While_[$2, $3]; } - | T_DO statement T_WHILE parentheses_expr ';' { $$ = Stmt\Do_ [$4, toArray($2)]; } - | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement - { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } - | T_SWITCH parentheses_expr switch_case_list { $$ = Stmt\Switch_[$2, $3]; } - | T_BREAK ';' { $$ = Stmt\Break_[null]; } - | T_BREAK expr ';' { $$ = Stmt\Break_[$2]; } - | T_CONTINUE ';' { $$ = Stmt\Continue_[null]; } - | T_CONTINUE expr ';' { $$ = Stmt\Continue_[$2]; } - | T_RETURN ';' { $$ = Stmt\Return_[null]; } - | T_RETURN expr ';' { $$ = Stmt\Return_[$2]; } - | T_GLOBAL global_var_list ';' { $$ = Stmt\Global_[$2]; } - | T_STATIC static_var_list ';' { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list ';' { $$ = Stmt\Echo_[$2]; } - | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } - | yield_expr ';' { $$ = Stmt\Expression[$1]; } - | expr ';' { $$ = Stmt\Expression[$1]; } - | T_UNSET '(' variables_list ')' ';' { $$ = Stmt\Unset_[$3]; } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } - | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } - | T_TRY '{' inner_statement_list '}' catches optional_finally - { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } - | T_THROW expr ';' { $$ = Stmt\Throw_[$2]; } - | T_GOTO identifier ';' { $$ = Stmt\Goto_[$2]; } - | identifier ':' { $$ = Stmt\Label[$1]; } - | expr error { $$ = Stmt\Expression[$1]; } - | error { $$ = array(); /* means: no statement */ } -; - -statement: - non_empty_statement { $$ = $1; } - | ';' - { makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if ($$ === null) $$ = array(); /* means: no statement */ } -; - -catches: - /* empty */ { init(); } - | catches catch { push($1, $2); } -; - -catch: - T_CATCH '(' name plain_variable ')' '{' inner_statement_list '}' - { $$ = Stmt\Catch_[array($3), $4, $7]; } -; - -optional_finally: - /* empty */ { $$ = null; } - | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } -; - -variables_list: - variable { init($1); } - | variables_list ',' variable { push($1, $3); } -; - -optional_ref: - /* empty */ { $$ = false; } - | '&' { $$ = true; } -; - -optional_ellipsis: - /* empty */ { $$ = false; } - | T_ELLIPSIS { $$ = true; } -; - -function_declaration_statement: - T_FUNCTION optional_ref identifier '(' parameter_list ')' optional_return_type '{' inner_statement_list '}' - { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $9]]; } -; - -class_declaration_statement: - class_entry_type identifier extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6]]; - $this->checkClass($$, #2); } - | T_INTERFACE identifier interface_extends_list '{' class_statement_list '}' - { $$ = Stmt\Interface_[$2, ['extends' => $3, 'stmts' => $5]]; - $this->checkInterface($$, #2); } - | T_TRAIT identifier '{' class_statement_list '}' - { $$ = Stmt\Trait_[$2, ['stmts' => $4]]; } -; - -class_entry_type: - T_CLASS { $$ = 0; } - | T_ABSTRACT T_CLASS { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL T_CLASS { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -extends_from: - /* empty */ { $$ = null; } - | T_EXTENDS class_name { $$ = $2; } -; - -interface_extends_list: - /* empty */ { $$ = array(); } - | T_EXTENDS class_name_list { $$ = $2; } -; - -implements_list: - /* empty */ { $$ = array(); } - | T_IMPLEMENTS class_name_list { $$ = $2; } -; - -class_name_list: - class_name { init($1); } - | class_name_list ',' class_name { push($1, $3); } -; - -for_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } -; - -foreach_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } -; - -declare_statement: - non_empty_statement { $$ = toArray($1); } - | ';' { $$ = null; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } -; - -declare_list: - declare_list_element { init($1); } - | declare_list ',' declare_list_element { push($1, $3); } -; - -declare_list_element: - identifier '=' static_scalar { $$ = Stmt\DeclareDeclare[$1, $3]; } -; - -switch_case_list: - '{' case_list '}' { $$ = $2; } - | '{' ';' case_list '}' { $$ = $3; } - | ':' case_list T_ENDSWITCH ';' { $$ = $2; } - | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } -; - -case_list: - /* empty */ { init(); } - | case_list case { push($1, $2); } -; - -case: - T_CASE expr case_separator inner_statement_list_ex { $$ = Stmt\Case_[$2, $4]; } - | T_DEFAULT case_separator inner_statement_list_ex { $$ = Stmt\Case_[null, $3]; } -; - -case_separator: - ':' - | ';' -; - -while_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } -; - -elseif_list: - /* empty */ { init(); } - | elseif_list elseif { push($1, $2); } -; - -elseif: - T_ELSEIF parentheses_expr statement { $$ = Stmt\ElseIf_[$2, toArray($3)]; } -; - -new_elseif_list: - /* empty */ { init(); } - | new_elseif_list new_elseif { push($1, $2); } -; - -new_elseif: - T_ELSEIF parentheses_expr ':' inner_statement_list { $$ = Stmt\ElseIf_[$2, $4]; } -; - -else_single: - /* empty */ { $$ = null; } - | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } -; - -new_else_single: - /* empty */ { $$ = null; } - | T_ELSE ':' inner_statement_list { $$ = Stmt\Else_[$3]; } -; - -foreach_variable: - variable { $$ = array($1, false); } - | '&' variable { $$ = array($2, true); } - | list_expr { $$ = array($1, false); } -; - -parameter_list: - non_empty_parameter_list { $$ = $1; } - | /* empty */ { $$ = array(); } -; - -non_empty_parameter_list: - parameter { init($1); } - | non_empty_parameter_list ',' parameter { push($1, $3); } -; - -parameter: - optional_param_type optional_ref optional_ellipsis plain_variable - { $$ = Node\Param[$4, null, $1, $2, $3]; $this->checkParam($$); } - | optional_param_type optional_ref optional_ellipsis plain_variable '=' static_scalar - { $$ = Node\Param[$4, $6, $1, $2, $3]; $this->checkParam($$); } -; - -type: - name { $$ = $1; } - | T_ARRAY { $$ = Node\Identifier['array']; } - | T_CALLABLE { $$ = Node\Identifier['callable']; } -; - -optional_param_type: - /* empty */ { $$ = null; } - | type { $$ = $1; } -; - -optional_return_type: - /* empty */ { $$ = null; } - | ':' type { $$ = $2; } -; - -argument_list: - '(' ')' { $$ = array(); } - | '(' non_empty_argument_list ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = array(Node\Arg[$2, false, false]); } -; - -non_empty_argument_list: - argument { init($1); } - | non_empty_argument_list ',' argument { push($1, $3); } -; - -argument: - expr { $$ = Node\Arg[$1, false, false]; } - | '&' variable { $$ = Node\Arg[$2, true, false]; } - | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } -; - -global_var_list: - global_var_list ',' global_var { push($1, $3); } - | global_var { init($1); } -; - -global_var: - plain_variable { $$ = $1; } - | '$' variable { $$ = Expr\Variable[$2]; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } -; - -static_var_list: - static_var_list ',' static_var { push($1, $3); } - | static_var { init($1); } -; - -static_var: - plain_variable { $$ = Stmt\StaticVar[$1, null]; } - | plain_variable '=' static_scalar { $$ = Stmt\StaticVar[$1, $3]; } -; - -class_statement_list_ex: - class_statement_list_ex class_statement { if ($2 !== null) { push($1, $2); } } - | /* empty */ { init(); } -; - -class_statement_list: - class_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -class_statement: - variable_modifiers property_declaration_list ';' - { $$ = Stmt\Property[$1, $2]; $this->checkProperty($$, #1); } - | T_CONST class_const_list ';' { $$ = Stmt\ClassConst[$2, 0]; } - | method_modifiers T_FUNCTION optional_ref identifier_ex '(' parameter_list ')' optional_return_type method_body - { $$ = Stmt\ClassMethod[$4, ['type' => $1, 'byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9]]; - $this->checkClassMethod($$, #1); } - | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } -; - -trait_adaptations: - ';' { $$ = array(); } - | '{' trait_adaptation_list '}' { $$ = $2; } -; - -trait_adaptation_list: - /* empty */ { init(); } - | trait_adaptation_list trait_adaptation { push($1, $2); } -; - -trait_adaptation: - trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' - { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } - | trait_method_reference T_AS member_modifier identifier_ex ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } - | trait_method_reference T_AS member_modifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } - | trait_method_reference T_AS identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } - | trait_method_reference T_AS reserved_non_modifiers_identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } -; - -trait_method_reference_fully_qualified: - name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = array($1, $3); } -; -trait_method_reference: - trait_method_reference_fully_qualified { $$ = $1; } - | identifier_ex { $$ = array(null, $1); } -; - -method_body: - ';' /* abstract method */ { $$ = null; } - | '{' inner_statement_list '}' { $$ = $2; } -; - -variable_modifiers: - non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = 0; } -; - -method_modifiers: - /* empty */ { $$ = 0; } - | non_empty_member_modifiers { $$ = $1; } -; - -non_empty_member_modifiers: - member_modifier { $$ = $1; } - | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -member_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } - | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -property_declaration_list: - property_declaration { init($1); } - | property_declaration_list ',' property_declaration { push($1, $3); } -; - -property_decl_name: - T_VARIABLE { $$ = Node\VarLikeIdentifier[parseVar($1)]; } -; - -property_declaration: - property_decl_name { $$ = Stmt\PropertyProperty[$1, null]; } - | property_decl_name '=' static_scalar { $$ = Stmt\PropertyProperty[$1, $3]; } -; - -expr_list: - expr_list ',' expr { push($1, $3); } - | expr { init($1); } -; - -for_expr: - /* empty */ { $$ = array(); } - | expr_list { $$ = $1; } -; - -expr: - variable { $$ = $1; } - | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' '&' variable { $$ = Expr\AssignRef[$1, $4]; } - | variable '=' '&' new_expr { $$ = Expr\AssignRef[$1, $4]; } - | new_expr { $$ = $1; } - | T_CLONE expr { $$ = Expr\Clone_[$2]; } - | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } - | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } - | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } - | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } - | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } - | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } - | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } - | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } - | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } - | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } - | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } - | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } - | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } - | variable T_INC { $$ = Expr\PostInc[$1]; } - | T_INC variable { $$ = Expr\PreInc [$2]; } - | variable T_DEC { $$ = Expr\PostDec[$1]; } - | T_DEC variable { $$ = Expr\PreDec [$2]; } - | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | expr '&' expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } - | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' expr { $$ = Expr\BooleanNot[$2]; } - | '~' expr { $$ = Expr\BitwiseNot[$2]; } - | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } - | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } - | parentheses_expr { $$ = $1; } - /* we need a separate '(' new_expr ')' rule to avoid problems caused by a s/r conflict */ - | '(' new_expr ')' { $$ = $2; } - | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } - | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } - | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } - | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } - | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } - | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } - | T_EVAL parentheses_expr { $$ = Expr\Eval_[$2]; } - | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } - | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } - | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr - { $attrs = attributes(); - $attrs['kind'] = $this->getFloatCastKind($1); - $$ = new Expr\Cast\Double($2, $attrs); } - | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } - | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } - | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } - | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } - | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } - | T_EXIT exit_expr - { $attrs = attributes(); - $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $$ = new Expr\Exit_($2, $attrs); } - | '@' expr { $$ = Expr\ErrorSuppress[$2]; } - | scalar { $$ = $1; } - | array_expr { $$ = $1; } - | scalar_dereference { $$ = $1; } - | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } - | T_PRINT expr { $$ = Expr\Print_[$2]; } - | T_YIELD { $$ = Expr\Yield_[null, null]; } - | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } - | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $9]]; } - | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $10]]; } -; - -parentheses_expr: - '(' expr ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = $2; } -; - -yield_expr: - T_YIELD expr { $$ = Expr\Yield_[$2, null]; } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } -; - -array_expr: - T_ARRAY '(' array_pair_list ')' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; - $$ = new Expr\Array_($3, $attrs); } - | '[' array_pair_list ']' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $$ = new Expr\Array_($2, $attrs); } -; - -scalar_dereference: - array_expr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' - { $attrs = attributes(); $attrs['kind'] = strKind($1); - $$ = Expr\ArrayDimFetch[new Scalar\String_(Scalar\String_::parse($1), $attrs), $3]; } - | constant '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | scalar_dereference '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -anonymous_class: - T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $3, 'implements' => $4, 'stmts' => $6]], $2); - $this->checkClass($$[0], -1); } -; - -new_expr: - T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } - | T_NEW anonymous_class - { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } -; - -lexical_vars: - /* empty */ { $$ = array(); } - | T_USE '(' lexical_var_list ')' { $$ = $3; } -; - -lexical_var_list: - lexical_var { init($1); } - | lexical_var_list ',' lexical_var { push($1, $3); } -; - -lexical_var: - optional_ref plain_variable { $$ = Expr\ClosureUse[$2, $1]; } -; - -function_call: - name argument_list { $$ = Expr\FuncCall[$1, $2]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex argument_list - { $$ = Expr\StaticCall[$1, $3, $4]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' argument_list - { $$ = Expr\StaticCall[$1, $4, $6]; } - | static_property argument_list - { $$ = $this->fixupPhp5StaticPropCall($1, $2, attributes()); } - | variable_without_objects argument_list - { $$ = Expr\FuncCall[$1, $2]; } - | function_call '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -class_name: - T_STATIC { $$ = Name[$1]; } - | name { $$ = $1; } -; - -name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } - | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1, 1)]; } - | T_NAME_RELATIVE { $$ = Name\Relative[substr($1, 10)]; } -; - -class_name_reference: - class_name { $$ = $1; } - | dynamic_class_name_reference { $$ = $1; } -; - -dynamic_class_name_reference: - object_access_for_dcnr { $$ = $1; } - | base_variable { $$ = $1; } -; - -class_name_or_var: - class_name { $$ = $1; } - | reference_variable { $$ = $1; } -; - -object_access_for_dcnr: - base_variable T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | object_access_for_dcnr T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | object_access_for_dcnr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | object_access_for_dcnr '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -exit_expr: - /* empty */ { $$ = null; } - | '(' ')' { $$ = null; } - | parentheses_expr { $$ = $1; } -; - -backticks_expr: - /* empty */ { $$ = array(); } - | T_ENCAPSED_AND_WHITESPACE - { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`', false)]); } - | encaps_list { parseEncapsed($1, '`', false); $$ = $1; } -; - -ctor_arguments: - /* empty */ { $$ = array(); } - | argument_list { $$ = $1; } -; - -common_scalar: - T_LNUMBER { $$ = $this->parseLNumber($1, attributes(), true); } - | T_DNUMBER { $$ = Scalar\DNumber[Scalar\DNumber::parse($1)]; } - | T_CONSTANT_ENCAPSED_STRING - { $attrs = attributes(); $attrs['kind'] = strKind($1); - $$ = new Scalar\String_(Scalar\String_::parse($1, false), $attrs); } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), false); } - | T_START_HEREDOC T_END_HEREDOC - { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), false); } -; - -static_scalar: - common_scalar { $$ = $1; } - | class_name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = Expr\ClassConstFetch[$1, $3]; } - | name { $$ = Expr\ConstFetch[$1]; } - | T_ARRAY '(' static_array_pair_list ')' { $$ = Expr\Array_[$3]; } - | '[' static_array_pair_list ']' { $$ = Expr\Array_[$2]; } - | static_operation { $$ = $1; } -; - -static_operation: - static_scalar T_BOOLEAN_OR static_scalar { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | static_scalar T_BOOLEAN_AND static_scalar { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | static_scalar T_LOGICAL_OR static_scalar { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | static_scalar T_LOGICAL_AND static_scalar { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | static_scalar T_LOGICAL_XOR static_scalar { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | static_scalar '|' static_scalar { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | static_scalar '&' static_scalar { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | static_scalar '^' static_scalar { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | static_scalar '.' static_scalar { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | static_scalar '+' static_scalar { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | static_scalar '-' static_scalar { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | static_scalar '*' static_scalar { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | static_scalar '/' static_scalar { $$ = Expr\BinaryOp\Div [$1, $3]; } - | static_scalar '%' static_scalar { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | static_scalar T_SL static_scalar { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | static_scalar T_SR static_scalar { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | static_scalar T_POW static_scalar { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' static_scalar %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' static_scalar %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' static_scalar { $$ = Expr\BooleanNot[$2]; } - | '~' static_scalar { $$ = Expr\BitwiseNot[$2]; } - | static_scalar T_IS_IDENTICAL static_scalar { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | static_scalar T_IS_NOT_IDENTICAL static_scalar { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | static_scalar T_IS_EQUAL static_scalar { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | static_scalar T_IS_NOT_EQUAL static_scalar { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | static_scalar '<' static_scalar { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | static_scalar T_IS_SMALLER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | static_scalar '>' static_scalar { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | static_scalar T_IS_GREATER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | static_scalar '?' static_scalar ':' static_scalar { $$ = Expr\Ternary[$1, $3, $5]; } - | static_scalar '?' ':' static_scalar { $$ = Expr\Ternary[$1, null, $4]; } - | static_scalar '[' static_scalar ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | '(' static_scalar ')' { $$ = $2; } -; - -constant: - name { $$ = Expr\ConstFetch[$1]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex - { $$ = Expr\ClassConstFetch[$1, $3]; } -; - -scalar: - common_scalar { $$ = $1; } - | constant { $$ = $1; } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } -; - -static_array_pair_list: - /* empty */ { $$ = array(); } - | non_empty_static_array_pair_list optional_comma { $$ = $1; } -; - -optional_comma: - /* empty */ - | ',' -; - -non_empty_static_array_pair_list: - non_empty_static_array_pair_list ',' static_array_pair { push($1, $3); } - | static_array_pair { init($1); } -; - -static_array_pair: - static_scalar T_DOUBLE_ARROW static_scalar { $$ = Expr\ArrayItem[$3, $1, false]; } - | static_scalar { $$ = Expr\ArrayItem[$1, null, false]; } -; - -variable: - object_access { $$ = $1; } - | base_variable { $$ = $1; } - | function_call { $$ = $1; } - | new_expr_array_deref { $$ = $1; } -; - -new_expr_array_deref: - '(' new_expr ')' '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$2, $5]; } - | new_expr_array_deref '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -object_access: - variable_or_new_expr T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | variable_or_new_expr T_OBJECT_OPERATOR object_property argument_list - { $$ = Expr\MethodCall[$1, $3, $4]; } - | object_access argument_list { $$ = Expr\FuncCall[$1, $2]; } - | object_access '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | object_access '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -variable_or_new_expr: - variable { $$ = $1; } - | '(' new_expr ')' { $$ = $2; } -; - -variable_without_objects: - reference_variable { $$ = $1; } - | '$' variable_without_objects { $$ = Expr\Variable[$2]; } -; - -base_variable: - variable_without_objects { $$ = $1; } - | static_property { $$ = $1; } -; - -static_property: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable - { $$ = Expr\StaticPropertyFetch[$1, $4]; } - | static_property_with_arrays { $$ = $1; } -; - -static_property_simple_name: - T_VARIABLE - { $var = parseVar($1); $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } -; - -static_property_with_arrays: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM static_property_simple_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' '{' expr '}' - { $$ = Expr\StaticPropertyFetch[$1, $5]; } - | static_property_with_arrays '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | static_property_with_arrays '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -reference_variable: - reference_variable '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | reference_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | plain_variable { $$ = $1; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } -; - -dim_offset: - /* empty */ { $$ = null; } - | expr { $$ = $1; } -; - -object_property: - identifier { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | variable_without_objects { $$ = $1; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -list_expr: - T_LIST '(' list_expr_elements ')' { $$ = Expr\List_[$3]; } -; - -list_expr_elements: - list_expr_elements ',' list_expr_element { push($1, $3); } - | list_expr_element { init($1); } -; - -list_expr_element: - variable { $$ = Expr\ArrayItem[$1, null, false]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | /* empty */ { $$ = null; } -; - -array_pair_list: - /* empty */ { $$ = array(); } - | non_empty_array_pair_list optional_comma { $$ = $1; } -; - -non_empty_array_pair_list: - non_empty_array_pair_list ',' array_pair { push($1, $3); } - | array_pair { init($1); } -; - -array_pair: - expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } - | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } -; - -encaps_list: - encaps_list encaps_var { push($1, $2); } - | encaps_list encaps_string_part { push($1, $2); } - | encaps_var { init($1); } - | encaps_string_part encaps_var { init($1, $2); } -; - -encaps_string_part: - T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } -; - -encaps_str_varname: - T_STRING_VARNAME { $$ = Expr\Variable[$1]; } -; - -encaps_var: - plain_variable { $$ = $1; } - | plain_variable '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | plain_variable T_OBJECT_OPERATOR identifier { $$ = Expr\PropertyFetch[$1, $3]; } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES encaps_str_varname '[' expr ']' '}' - { $$ = Expr\ArrayDimFetch[$2, $4]; } - | T_CURLY_OPEN variable '}' { $$ = $2; } -; - -encaps_var_offset: - T_STRING { $$ = Scalar\String_[$1]; } - | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } - | plain_variable { $$ = $1; } -; - -%% diff --git a/api/vendor/nikic/php-parser/grammar/php7.y b/api/vendor/nikic/php-parser/grammar/php7.y deleted file mode 100644 index 3c34398d6..000000000 --- a/api/vendor/nikic/php-parser/grammar/php7.y +++ /dev/null @@ -1,1152 +0,0 @@ -%pure_parser -%expect 2 - -%tokens - -%% - -start: - top_statement_list { $$ = $this->handleNamespaces($1); } -; - -top_statement_list_ex: - top_statement_list_ex top_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -top_statement_list: - top_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -reserved_non_modifiers: - T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND - | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE - | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH - | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO - | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT - | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN - | T_MATCH | T_ENUM -; - -semi_reserved: - reserved_non_modifiers - | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC -; - -identifier_ex: - T_STRING { $$ = Node\Identifier[$1]; } - | semi_reserved { $$ = Node\Identifier[$1]; } -; - -identifier: - T_STRING { $$ = Node\Identifier[$1]; } -; - -reserved_non_modifiers_identifier: - reserved_non_modifiers { $$ = Node\Identifier[$1]; } -; - -namespace_declaration_name: - T_STRING { $$ = Name[$1]; } - | semi_reserved { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } -; - -namespace_name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } -; - -legacy_namespace_name: - namespace_name { $$ = $1; } - | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1, 1)]; } -; - -plain_variable: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -semi: - ';' { /* nothing */ } - | error { /* nothing */ } -; - -no_comma: - /* empty */ { /* nothing */ } - | ',' { $this->emitError(new Error('A trailing comma is not allowed here', attributes())); } -; - -optional_comma: - /* empty */ - | ',' -; - -attribute_decl: - class_name { $$ = Node\Attribute[$1, []]; } - | class_name argument_list { $$ = Node\Attribute[$1, $2]; } -; - -attribute_group: - attribute_decl { init($1); } - | attribute_group ',' attribute_decl { push($1, $3); } -; - -attribute: - T_ATTRIBUTE attribute_group optional_comma ']' { $$ = Node\AttributeGroup[$2]; } -; - -attributes: - attribute { init($1); } - | attributes attribute { push($1, $2); } -; - -optional_attributes: - /* empty */ { $$ = []; } - | attributes { $$ = $1; } -; - -top_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } - | T_NAMESPACE namespace_declaration_name semi - { $$ = Stmt\Namespace_[$2, null]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($$); } - | T_NAMESPACE namespace_declaration_name '{' top_statement_list '}' - { $$ = Stmt\Namespace_[$2, $4]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_NAMESPACE '{' top_statement_list '}' - { $$ = Stmt\Namespace_[null, $3]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_USE use_declarations semi { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } - | T_USE use_type use_declarations semi { $$ = Stmt\Use_[$3, $2]; } - | group_use_declaration semi { $$ = $1; } - | T_CONST constant_declaration_list semi { $$ = Stmt\Const_[$2]; } -; - -use_type: - T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } - | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } -; - -group_use_declaration: - T_USE use_type legacy_namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[$3, $6, $2]; } - | T_USE legacy_namespace_name T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[$2, $5, Stmt\Use_::TYPE_UNKNOWN]; } -; - -unprefixed_use_declarations: - non_empty_unprefixed_use_declarations optional_comma { $$ = $1; } -; - -non_empty_unprefixed_use_declarations: - non_empty_unprefixed_use_declarations ',' unprefixed_use_declaration - { push($1, $3); } - | unprefixed_use_declaration { init($1); } -; - -use_declarations: - non_empty_use_declarations no_comma { $$ = $1; } -; - -non_empty_use_declarations: - non_empty_use_declarations ',' use_declaration { push($1, $3); } - | use_declaration { init($1); } -; - -inline_use_declarations: - non_empty_inline_use_declarations optional_comma { $$ = $1; } -; - -non_empty_inline_use_declarations: - non_empty_inline_use_declarations ',' inline_use_declaration - { push($1, $3); } - | inline_use_declaration { init($1); } -; - -unprefixed_use_declaration: - namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | namespace_name T_AS identifier - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -use_declaration: - legacy_namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | legacy_namespace_name T_AS identifier - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -inline_use_declaration: - unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } - | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } -; - -constant_declaration_list: - non_empty_constant_declaration_list no_comma { $$ = $1; } -; - -non_empty_constant_declaration_list: - non_empty_constant_declaration_list ',' constant_declaration - { push($1, $3); } - | constant_declaration { init($1); } -; - -constant_declaration: - identifier '=' expr { $$ = Node\Const_[$1, $3]; } -; - -class_const_list: - non_empty_class_const_list no_comma { $$ = $1; } -; - -non_empty_class_const_list: - non_empty_class_const_list ',' class_const { push($1, $3); } - | class_const { init($1); } -; - -class_const: - identifier_ex '=' expr { $$ = Node\Const_[$1, $3]; } -; - -inner_statement_list_ex: - inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -inner_statement_list: - inner_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -inner_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } -; - -non_empty_statement: - '{' inner_statement_list '}' - { - if ($2) { - $$ = $2; prependLeadingComments($$); - } else { - makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if (null === $$) { $$ = array(); } - } - } - | T_IF '(' expr ')' statement elseif_list else_single - { $$ = Stmt\If_[$3, ['stmts' => toArray($5), 'elseifs' => $6, 'else' => $7]]; } - | T_IF '(' expr ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' - { $$ = Stmt\If_[$3, ['stmts' => $6, 'elseifs' => $7, 'else' => $8]]; } - | T_WHILE '(' expr ')' while_statement { $$ = Stmt\While_[$3, $5]; } - | T_DO statement T_WHILE '(' expr ')' ';' { $$ = Stmt\Do_ [$5, toArray($2)]; } - | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement - { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } - | T_SWITCH '(' expr ')' switch_case_list { $$ = Stmt\Switch_[$3, $5]; } - | T_BREAK optional_expr semi { $$ = Stmt\Break_[$2]; } - | T_CONTINUE optional_expr semi { $$ = Stmt\Continue_[$2]; } - | T_RETURN optional_expr semi { $$ = Stmt\Return_[$2]; } - | T_GLOBAL global_var_list semi { $$ = Stmt\Global_[$2]; } - | T_STATIC static_var_list semi { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list_forbid_comma semi { $$ = Stmt\Echo_[$2]; } - | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } - | expr semi { - $e = $1; - if ($e instanceof Expr\Throw_) { - // For backwards-compatibility reasons, convert throw in statement position into - // Stmt\Throw_ rather than Stmt\Expression(Expr\Throw_). - $$ = Stmt\Throw_[$e->expr]; - } else { - $$ = Stmt\Expression[$e]; - } - } - | T_UNSET '(' variables_list ')' semi { $$ = Stmt\Unset_[$3]; } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } - | T_FOREACH '(' expr error ')' foreach_statement - { $$ = Stmt\Foreach_[$3, new Expr\Error(stackAttributes(#4)), ['stmts' => $6]]; } - | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } - | T_TRY '{' inner_statement_list '}' catches optional_finally - { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } - | T_GOTO identifier semi { $$ = Stmt\Goto_[$2]; } - | identifier ':' { $$ = Stmt\Label[$1]; } - | error { $$ = array(); /* means: no statement */ } -; - -statement: - non_empty_statement { $$ = $1; } - | ';' - { makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if ($$ === null) $$ = array(); /* means: no statement */ } -; - -catches: - /* empty */ { init(); } - | catches catch { push($1, $2); } -; - -name_union: - name { init($1); } - | name_union '|' name { push($1, $3); } -; - -catch: - T_CATCH '(' name_union optional_plain_variable ')' '{' inner_statement_list '}' - { $$ = Stmt\Catch_[$3, $4, $7]; } -; - -optional_finally: - /* empty */ { $$ = null; } - | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } -; - -variables_list: - non_empty_variables_list optional_comma { $$ = $1; } -; - -non_empty_variables_list: - variable { init($1); } - | non_empty_variables_list ',' variable { push($1, $3); } -; - -optional_ref: - /* empty */ { $$ = false; } - | '&' { $$ = true; } -; - -optional_ellipsis: - /* empty */ { $$ = false; } - | T_ELLIPSIS { $$ = true; } -; - -block_or_error: - '{' inner_statement_list '}' { $$ = $2; } - | error { $$ = []; } -; - -function_declaration_statement: - T_FUNCTION optional_ref identifier '(' parameter_list ')' optional_return_type block_or_error - { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $8, 'attrGroups' => []]]; } - | attributes T_FUNCTION optional_ref identifier '(' parameter_list ')' optional_return_type block_or_error - { $$ = Stmt\Function_[$4, ['byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => $1]]; } -; - -class_declaration_statement: - optional_attributes class_entry_type identifier extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$3, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]]; - $this->checkClass($$, #3); } - | optional_attributes T_INTERFACE identifier interface_extends_list '{' class_statement_list '}' - { $$ = Stmt\Interface_[$3, ['extends' => $4, 'stmts' => $6, 'attrGroups' => $1]]; - $this->checkInterface($$, #3); } - | optional_attributes T_TRAIT identifier '{' class_statement_list '}' - { $$ = Stmt\Trait_[$3, ['stmts' => $5, 'attrGroups' => $1]]; } - | optional_attributes T_ENUM identifier enum_scalar_type implements_list '{' class_statement_list '}' - { $$ = Stmt\Enum_[$3, ['scalarType' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]]; - $this->checkEnum($$, #3); } -; - -enum_scalar_type: - /* empty */ { $$ = null; } - | ':' type { $$ = $2; } - -enum_case_expr: - /* empty */ { $$ = null; } - | '=' expr { $$ = $2; } -; - -class_entry_type: - T_CLASS { $$ = 0; } - | T_ABSTRACT T_CLASS { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL T_CLASS { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -extends_from: - /* empty */ { $$ = null; } - | T_EXTENDS class_name { $$ = $2; } -; - -interface_extends_list: - /* empty */ { $$ = array(); } - | T_EXTENDS class_name_list { $$ = $2; } -; - -implements_list: - /* empty */ { $$ = array(); } - | T_IMPLEMENTS class_name_list { $$ = $2; } -; - -class_name_list: - non_empty_class_name_list no_comma { $$ = $1; } -; - -non_empty_class_name_list: - class_name { init($1); } - | non_empty_class_name_list ',' class_name { push($1, $3); } -; - -for_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } -; - -foreach_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } -; - -declare_statement: - non_empty_statement { $$ = toArray($1); } - | ';' { $$ = null; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } -; - -declare_list: - non_empty_declare_list no_comma { $$ = $1; } -; - -non_empty_declare_list: - declare_list_element { init($1); } - | non_empty_declare_list ',' declare_list_element { push($1, $3); } -; - -declare_list_element: - identifier '=' expr { $$ = Stmt\DeclareDeclare[$1, $3]; } -; - -switch_case_list: - '{' case_list '}' { $$ = $2; } - | '{' ';' case_list '}' { $$ = $3; } - | ':' case_list T_ENDSWITCH ';' { $$ = $2; } - | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } -; - -case_list: - /* empty */ { init(); } - | case_list case { push($1, $2); } -; - -case: - T_CASE expr case_separator inner_statement_list_ex { $$ = Stmt\Case_[$2, $4]; } - | T_DEFAULT case_separator inner_statement_list_ex { $$ = Stmt\Case_[null, $3]; } -; - -case_separator: - ':' - | ';' -; - -match: - T_MATCH '(' expr ')' '{' match_arm_list '}' { $$ = Expr\Match_[$3, $6]; } -; - -match_arm_list: - /* empty */ { $$ = []; } - | non_empty_match_arm_list optional_comma { $$ = $1; } -; - -non_empty_match_arm_list: - match_arm { init($1); } - | non_empty_match_arm_list ',' match_arm { push($1, $3); } -; - -match_arm: - expr_list_allow_comma T_DOUBLE_ARROW expr { $$ = Node\MatchArm[$1, $3]; } - | T_DEFAULT optional_comma T_DOUBLE_ARROW expr { $$ = Node\MatchArm[null, $4]; } -; - -while_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } -; - -elseif_list: - /* empty */ { init(); } - | elseif_list elseif { push($1, $2); } -; - -elseif: - T_ELSEIF '(' expr ')' statement { $$ = Stmt\ElseIf_[$3, toArray($5)]; } -; - -new_elseif_list: - /* empty */ { init(); } - | new_elseif_list new_elseif { push($1, $2); } -; - -new_elseif: - T_ELSEIF '(' expr ')' ':' inner_statement_list { $$ = Stmt\ElseIf_[$3, $6]; } -; - -else_single: - /* empty */ { $$ = null; } - | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } -; - -new_else_single: - /* empty */ { $$ = null; } - | T_ELSE ':' inner_statement_list { $$ = Stmt\Else_[$3]; } -; - -foreach_variable: - variable { $$ = array($1, false); } - | '&' variable { $$ = array($2, true); } - | list_expr { $$ = array($1, false); } - | array_short_syntax { $$ = array($1, false); } -; - -parameter_list: - non_empty_parameter_list optional_comma { $$ = $1; } - | /* empty */ { $$ = array(); } -; - -non_empty_parameter_list: - parameter { init($1); } - | non_empty_parameter_list ',' parameter { push($1, $3); } -; - -optional_visibility_modifier: - /* empty */ { $$ = 0; } - | T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } -; - -parameter: - optional_attributes optional_visibility_modifier optional_type_without_static optional_ref optional_ellipsis plain_variable - { $$ = new Node\Param($6, null, $3, $4, $5, attributes(), $2, $1); - $this->checkParam($$); } - | optional_attributes optional_visibility_modifier optional_type_without_static optional_ref optional_ellipsis plain_variable '=' expr - { $$ = new Node\Param($6, $8, $3, $4, $5, attributes(), $2, $1); - $this->checkParam($$); } - | optional_attributes optional_visibility_modifier optional_type_without_static optional_ref optional_ellipsis error - { $$ = new Node\Param(Expr\Error[], null, $3, $4, $5, attributes(), $2, $1); } -; - -type_expr: - type { $$ = $1; } - | '?' type { $$ = Node\NullableType[$2]; } - | union_type { $$ = Node\UnionType[$1]; } -; - -type: - type_without_static { $$ = $1; } - | T_STATIC { $$ = Node\Name['static']; } -; - -type_without_static: - name { $$ = $this->handleBuiltinTypes($1); } - | T_ARRAY { $$ = Node\Identifier['array']; } - | T_CALLABLE { $$ = Node\Identifier['callable']; } -; - -union_type: - type '|' type { init($1, $3); } - | union_type '|' type { push($1, $3); } -; - -union_type_without_static: - type_without_static '|' type_without_static { init($1, $3); } - | union_type_without_static '|' type_without_static { push($1, $3); } -; - -type_expr_without_static: - type_without_static { $$ = $1; } - | '?' type_without_static { $$ = Node\NullableType[$2]; } - | union_type_without_static { $$ = Node\UnionType[$1]; } -; - -optional_type_without_static: - /* empty */ { $$ = null; } - | type_expr_without_static { $$ = $1; } -; - -optional_return_type: - /* empty */ { $$ = null; } - | ':' type_expr { $$ = $2; } - | ':' error { $$ = null; } -; - -argument_list: - '(' ')' { $$ = array(); } - | '(' non_empty_argument_list optional_comma ')' { $$ = $2; } -; - -non_empty_argument_list: - argument { init($1); } - | non_empty_argument_list ',' argument { push($1, $3); } -; - -argument: - expr { $$ = Node\Arg[$1, false, false]; } - | '&' variable { $$ = Node\Arg[$2, true, false]; } - | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } - | identifier_ex ':' expr - { $$ = new Node\Arg($3, false, false, attributes(), $1); } -; - -global_var_list: - non_empty_global_var_list no_comma { $$ = $1; } -; - -non_empty_global_var_list: - non_empty_global_var_list ',' global_var { push($1, $3); } - | global_var { init($1); } -; - -global_var: - simple_variable { $$ = $1; } -; - -static_var_list: - non_empty_static_var_list no_comma { $$ = $1; } -; - -non_empty_static_var_list: - non_empty_static_var_list ',' static_var { push($1, $3); } - | static_var { init($1); } -; - -static_var: - plain_variable { $$ = Stmt\StaticVar[$1, null]; } - | plain_variable '=' expr { $$ = Stmt\StaticVar[$1, $3]; } -; - -class_statement_list_ex: - class_statement_list_ex class_statement { if ($2 !== null) { push($1, $2); } } - | /* empty */ { init(); } -; - -class_statement_list: - class_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -class_statement: - optional_attributes variable_modifiers optional_type_without_static property_declaration_list semi - { $$ = new Stmt\Property($2, $4, attributes(), $3, $1); - $this->checkProperty($$, #2); } - | optional_attributes method_modifiers T_CONST class_const_list semi - { $$ = new Stmt\ClassConst($4, $2, attributes(), $1); - $this->checkClassConst($$, #2); } - | optional_attributes method_modifiers T_FUNCTION optional_ref identifier_ex '(' parameter_list ')' optional_return_type method_body - { $$ = Stmt\ClassMethod[$5, ['type' => $2, 'byRef' => $4, 'params' => $7, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; - $this->checkClassMethod($$, #2); } - | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } - | optional_attributes T_CASE identifier enum_case_expr semi - { $$ = Stmt\EnumCase[$3, $4, $1]; } - | error { $$ = null; /* will be skipped */ } -; - -trait_adaptations: - ';' { $$ = array(); } - | '{' trait_adaptation_list '}' { $$ = $2; } -; - -trait_adaptation_list: - /* empty */ { init(); } - | trait_adaptation_list trait_adaptation { push($1, $2); } -; - -trait_adaptation: - trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' - { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } - | trait_method_reference T_AS member_modifier identifier_ex ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } - | trait_method_reference T_AS member_modifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } - | trait_method_reference T_AS identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } - | trait_method_reference T_AS reserved_non_modifiers_identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } -; - -trait_method_reference_fully_qualified: - name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = array($1, $3); } -; -trait_method_reference: - trait_method_reference_fully_qualified { $$ = $1; } - | identifier_ex { $$ = array(null, $1); } -; - -method_body: - ';' /* abstract method */ { $$ = null; } - | block_or_error { $$ = $1; } -; - -variable_modifiers: - non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = 0; } -; - -method_modifiers: - /* empty */ { $$ = 0; } - | non_empty_member_modifiers { $$ = $1; } -; - -non_empty_member_modifiers: - member_modifier { $$ = $1; } - | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -member_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } - | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -property_declaration_list: - non_empty_property_declaration_list no_comma { $$ = $1; } -; - -non_empty_property_declaration_list: - property_declaration { init($1); } - | non_empty_property_declaration_list ',' property_declaration - { push($1, $3); } -; - -property_decl_name: - T_VARIABLE { $$ = Node\VarLikeIdentifier[parseVar($1)]; } -; - -property_declaration: - property_decl_name { $$ = Stmt\PropertyProperty[$1, null]; } - | property_decl_name '=' expr { $$ = Stmt\PropertyProperty[$1, $3]; } -; - -expr_list_forbid_comma: - non_empty_expr_list no_comma { $$ = $1; } -; - -expr_list_allow_comma: - non_empty_expr_list optional_comma { $$ = $1; } -; - -non_empty_expr_list: - non_empty_expr_list ',' expr { push($1, $3); } - | expr { init($1); } -; - -for_expr: - /* empty */ { $$ = array(); } - | expr_list_forbid_comma { $$ = $1; } -; - -expr: - variable { $$ = $1; } - | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } - | array_short_syntax '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' '&' variable { $$ = Expr\AssignRef[$1, $4]; } - | new_expr { $$ = $1; } - | match { $$ = $1; } - | T_CLONE expr { $$ = Expr\Clone_[$2]; } - | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } - | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } - | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } - | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } - | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } - | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } - | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } - | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } - | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } - | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } - | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } - | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } - | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } - | variable T_INC { $$ = Expr\PostInc[$1]; } - | T_INC variable { $$ = Expr\PreInc [$2]; } - | variable T_DEC { $$ = Expr\PostDec[$1]; } - | T_DEC variable { $$ = Expr\PreDec [$2]; } - | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | expr '&' expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } - | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' expr { $$ = Expr\BooleanNot[$2]; } - | '~' expr { $$ = Expr\BitwiseNot[$2]; } - | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } - | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } - | '(' expr ')' { $$ = $2; } - | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } - | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } - | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' expr_list_allow_comma ')' { $$ = Expr\Isset_[$3]; } - | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } - | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } - | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } - | T_EVAL '(' expr ')' { $$ = Expr\Eval_[$3]; } - | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } - | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } - | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr - { $attrs = attributes(); - $attrs['kind'] = $this->getFloatCastKind($1); - $$ = new Expr\Cast\Double($2, $attrs); } - | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } - | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } - | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } - | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } - | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } - | T_EXIT exit_expr - { $attrs = attributes(); - $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $$ = new Expr\Exit_($2, $attrs); } - | '@' expr { $$ = Expr\ErrorSuppress[$2]; } - | scalar { $$ = $1; } - | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } - | T_PRINT expr { $$ = Expr\Print_[$2]; } - | T_YIELD { $$ = Expr\Yield_[null, null]; } - | T_YIELD expr { $$ = Expr\Yield_[$2, null]; } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } - | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } - | T_THROW expr { $$ = Expr\Throw_[$2]; } - - | T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $2, 'params' => $4, 'returnType' => $6, 'expr' => $8, 'attrGroups' => []]]; } - | T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9, 'attrGroups' => []]]; } - | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $8, 'attrGroups' => []]]; } - | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => []]]; } - - | attributes T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9, 'attrGroups' => $1]]; } - | attributes T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $4, 'params' => $6, 'returnType' => $8, 'expr' => $10, 'attrGroups' => $1]]; } - | attributes T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => false, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => $1]]; } - | attributes T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => true, 'byRef' => $4, 'params' => $6, 'uses' => $8, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; } -; - -anonymous_class: - optional_attributes T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); - $this->checkClass($$[0], -1); } -; - -new_expr: - T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } - | T_NEW anonymous_class - { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } -; - -lexical_vars: - /* empty */ { $$ = array(); } - | T_USE '(' lexical_var_list ')' { $$ = $3; } -; - -lexical_var_list: - non_empty_lexical_var_list optional_comma { $$ = $1; } -; - -non_empty_lexical_var_list: - lexical_var { init($1); } - | non_empty_lexical_var_list ',' lexical_var { push($1, $3); } -; - -lexical_var: - optional_ref plain_variable { $$ = Expr\ClosureUse[$2, $1]; } -; - -function_call: - name argument_list { $$ = Expr\FuncCall[$1, $2]; } - | callable_expr argument_list { $$ = Expr\FuncCall[$1, $2]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { $$ = Expr\StaticCall[$1, $3, $4]; } -; - -class_name: - T_STATIC { $$ = Name[$1]; } - | name { $$ = $1; } -; - -name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } - | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1, 1)]; } - | T_NAME_RELATIVE { $$ = Name\Relative[substr($1, 10)]; } -; - -class_name_reference: - class_name { $$ = $1; } - | new_variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -class_name_or_var: - class_name { $$ = $1; } - | fully_dereferencable { $$ = $1; } -; - -exit_expr: - /* empty */ { $$ = null; } - | '(' optional_expr ')' { $$ = $2; } -; - -backticks_expr: - /* empty */ { $$ = array(); } - | T_ENCAPSED_AND_WHITESPACE - { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`')]); } - | encaps_list { parseEncapsed($1, '`', true); $$ = $1; } -; - -ctor_arguments: - /* empty */ { $$ = array(); } - | argument_list { $$ = $1; } -; - -constant: - name { $$ = Expr\ConstFetch[$1]; } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } -; - -class_constant: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex - { $$ = Expr\ClassConstFetch[$1, $3]; } - /* We interpret an isolated FOO:: as an unfinished class constant fetch. It could also be - an unfinished static property fetch or unfinished scoped call. */ - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error - { $$ = Expr\ClassConstFetch[$1, new Expr\Error(stackAttributes(#3))]; $this->errorState = 2; } -; - -array_short_syntax: - '[' array_pair_list ']' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $$ = new Expr\Array_($2, $attrs); } -; - -dereferencable_scalar: - T_ARRAY '(' array_pair_list ')' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; - $$ = new Expr\Array_($3, $attrs); } - | array_short_syntax { $$ = $1; } - | T_CONSTANT_ENCAPSED_STRING - { $attrs = attributes(); $attrs['kind'] = strKind($1); - $$ = new Scalar\String_(Scalar\String_::parse($1), $attrs); } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } -; - -scalar: - T_LNUMBER { $$ = $this->parseLNumber($1, attributes()); } - | T_DNUMBER { $$ = Scalar\DNumber[Scalar\DNumber::parse($1)]; } - | dereferencable_scalar { $$ = $1; } - | constant { $$ = $1; } - | class_constant { $$ = $1; } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } - | T_START_HEREDOC T_END_HEREDOC - { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), true); } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } -; - -optional_expr: - /* empty */ { $$ = null; } - | expr { $$ = $1; } -; - -fully_dereferencable: - variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | dereferencable_scalar { $$ = $1; } - | class_constant { $$ = $1; } -; - -array_object_dereferencable: - fully_dereferencable { $$ = $1; } - | constant { $$ = $1; } -; - -callable_expr: - callable_variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | dereferencable_scalar { $$ = $1; } -; - -callable_variable: - simple_variable { $$ = $1; } - | array_object_dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | array_object_dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | function_call { $$ = $1; } - | array_object_dereferencable T_OBJECT_OPERATOR property_name argument_list - { $$ = Expr\MethodCall[$1, $3, $4]; } - | array_object_dereferencable T_NULLSAFE_OBJECT_OPERATOR property_name argument_list - { $$ = Expr\NullsafeMethodCall[$1, $3, $4]; } -; - -optional_plain_variable: - /* empty */ { $$ = null; } - | plain_variable { $$ = $1; } -; - -variable: - callable_variable { $$ = $1; } - | static_member { $$ = $1; } - | array_object_dereferencable T_OBJECT_OPERATOR property_name - { $$ = Expr\PropertyFetch[$1, $3]; } - | array_object_dereferencable T_NULLSAFE_OBJECT_OPERATOR property_name - { $$ = Expr\NullsafePropertyFetch[$1, $3]; } -; - -simple_variable: - plain_variable { $$ = $1; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } - | '$' simple_variable { $$ = Expr\Variable[$2]; } - | '$' error { $$ = Expr\Variable[Expr\Error[]]; $this->errorState = 2; } -; - -static_member_prop_name: - simple_variable - { $var = $1->name; $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } -; - -static_member: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } -; - -new_variable: - simple_variable { $$ = $1; } - | new_variable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | new_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | new_variable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } - | new_variable T_NULLSAFE_OBJECT_OPERATOR property_name { $$ = Expr\NullsafePropertyFetch[$1, $3]; } - | class_name T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } - | new_variable T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } -; - -member_name: - identifier_ex { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = $1; } -; - -property_name: - identifier { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = $1; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -list_expr: - T_LIST '(' inner_array_pair_list ')' { $$ = Expr\List_[$3]; } -; - -array_pair_list: - inner_array_pair_list - { $$ = $1; $end = count($$)-1; if ($$[$end] === null) array_pop($$); } -; - -comma_or_error: - ',' - | error - { /* do nothing -- prevent default action of $$=$1. See #551. */ } -; - -inner_array_pair_list: - inner_array_pair_list comma_or_error array_pair { push($1, $3); } - | array_pair { init($1); } -; - -array_pair: - expr { $$ = Expr\ArrayItem[$1, null, false]; } - | '&' variable { $$ = Expr\ArrayItem[$2, null, true]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr T_DOUBLE_ARROW '&' variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } - | /* empty */ { $$ = null; } -; - -encaps_list: - encaps_list encaps_var { push($1, $2); } - | encaps_list encaps_string_part { push($1, $2); } - | encaps_var { init($1); } - | encaps_string_part encaps_var { init($1, $2); } -; - -encaps_string_part: - T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } -; - -encaps_str_varname: - T_STRING_VARNAME { $$ = Expr\Variable[$1]; } -; - -encaps_var: - plain_variable { $$ = $1; } - | plain_variable '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | plain_variable T_OBJECT_OPERATOR identifier { $$ = Expr\PropertyFetch[$1, $3]; } - | plain_variable T_NULLSAFE_OBJECT_OPERATOR identifier { $$ = Expr\NullsafePropertyFetch[$1, $3]; } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES encaps_str_varname '[' expr ']' '}' - { $$ = Expr\ArrayDimFetch[$2, $4]; } - | T_CURLY_OPEN variable '}' { $$ = $2; } -; - -encaps_var_offset: - T_STRING { $$ = Scalar\String_[$1]; } - | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } - | '-' T_NUM_STRING { $$ = $this->parseNumString('-' . $2, attributes()); } - | plain_variable { $$ = $1; } -; - -%% diff --git a/api/vendor/nikic/php-parser/grammar/phpyLang.php b/api/vendor/nikic/php-parser/grammar/phpyLang.php deleted file mode 100644 index 1a9808dcf..000000000 --- a/api/vendor/nikic/php-parser/grammar/phpyLang.php +++ /dev/null @@ -1,192 +0,0 @@ -\'[^\\\\\']*+(?:\\\\.[^\\\\\']*+)*+\') - (?"[^\\\\"]*+(?:\\\\.[^\\\\"]*+)*+") - (?(?&singleQuotedString)|(?&doubleQuotedString)) - (?/\*[^*]*+(?:\*(?!/)[^*]*+)*+\*/) - (?\{[^\'"/{}]*+(?:(?:(?&string)|(?&comment)|(?&code)|/)[^\'"/{}]*+)*+}) -)'; - -const PARAMS = '\[(?[^[\]]*+(?:\[(?¶ms)\][^[\]]*+)*+)\]'; -const ARGS = '\((?[^()]*+(?:\((?&args)\)[^()]*+)*+)\)'; - -/////////////////////////////// -/// Preprocessing functions /// -/////////////////////////////// - -function preprocessGrammar($code) { - $code = resolveNodes($code); - $code = resolveMacros($code); - $code = resolveStackAccess($code); - - return $code; -} - -function resolveNodes($code) { - return preg_replace_callback( - '~\b(?[A-Z][a-zA-Z_\\\\]++)\s*' . PARAMS . '~', - function($matches) { - // recurse - $matches['params'] = resolveNodes($matches['params']); - - $params = magicSplit( - '(?:' . PARAMS . '|' . ARGS . ')(*SKIP)(*FAIL)|,', - $matches['params'] - ); - - $paramCode = ''; - foreach ($params as $param) { - $paramCode .= $param . ', '; - } - - return 'new ' . $matches['name'] . '(' . $paramCode . 'attributes())'; - }, - $code - ); -} - -function resolveMacros($code) { - return preg_replace_callback( - '~\b(?)(?!array\()(?[a-z][A-Za-z]++)' . ARGS . '~', - function($matches) { - // recurse - $matches['args'] = resolveMacros($matches['args']); - - $name = $matches['name']; - $args = magicSplit( - '(?:' . PARAMS . '|' . ARGS . ')(*SKIP)(*FAIL)|,', - $matches['args'] - ); - - if ('attributes' === $name) { - assertArgs(0, $args, $name); - return '$this->startAttributeStack[#1] + $this->endAttributes'; - } - - if ('stackAttributes' === $name) { - assertArgs(1, $args, $name); - return '$this->startAttributeStack[' . $args[0] . ']' - . ' + $this->endAttributeStack[' . $args[0] . ']'; - } - - if ('init' === $name) { - return '$$ = array(' . implode(', ', $args) . ')'; - } - - if ('push' === $name) { - assertArgs(2, $args, $name); - - return $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0]; - } - - if ('pushNormalizing' === $name) { - assertArgs(2, $args, $name); - - return 'if (is_array(' . $args[1] . ')) { $$ = array_merge(' . $args[0] . ', ' . $args[1] . '); }' - . ' else { ' . $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0] . '; }'; - } - - if ('toArray' == $name) { - assertArgs(1, $args, $name); - - return 'is_array(' . $args[0] . ') ? ' . $args[0] . ' : array(' . $args[0] . ')'; - } - - if ('parseVar' === $name) { - assertArgs(1, $args, $name); - - return 'substr(' . $args[0] . ', 1)'; - } - - if ('parseEncapsed' === $name) { - assertArgs(3, $args, $name); - - return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) {' - . ' $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }'; - } - - if ('makeNop' === $name) { - assertArgs(3, $args, $name); - - return '$startAttributes = ' . $args[1] . ';' - . ' if (isset($startAttributes[\'comments\']))' - . ' { ' . $args[0] . ' = new Stmt\Nop($startAttributes + ' . $args[2] . '); }' - . ' else { ' . $args[0] . ' = null; }'; - } - - if ('makeZeroLengthNop' == $name) { - assertArgs(2, $args, $name); - - return '$startAttributes = ' . $args[1] . ';' - . ' if (isset($startAttributes[\'comments\']))' - . ' { ' . $args[0] . ' = new Stmt\Nop($this->createCommentNopAttributes($startAttributes[\'comments\'])); }' - . ' else { ' . $args[0] . ' = null; }'; - } - - if ('strKind' === $name) { - assertArgs(1, $args, $name); - - return '(' . $args[0] . '[0] === "\'" || (' . $args[0] . '[1] === "\'" && ' - . '(' . $args[0] . '[0] === \'b\' || ' . $args[0] . '[0] === \'B\')) ' - . '? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED)'; - } - - if ('prependLeadingComments' === $name) { - assertArgs(1, $args, $name); - - return '$attrs = $this->startAttributeStack[#1]; $stmts = ' . $args[0] . '; ' - . 'if (!empty($attrs[\'comments\'])) {' - . '$stmts[0]->setAttribute(\'comments\', ' - . 'array_merge($attrs[\'comments\'], $stmts[0]->getAttribute(\'comments\', []))); }'; - } - - return $matches[0]; - }, - $code - ); -} - -function assertArgs($num, $args, $name) { - if ($num != count($args)) { - die('Wrong argument count for ' . $name . '().'); - } -} - -function resolveStackAccess($code) { - $code = preg_replace('/\$\d+/', '$this->semStack[$0]', $code); - $code = preg_replace('/#(\d+)/', '$$1', $code); - return $code; -} - -function removeTrailingWhitespace($code) { - $lines = explode("\n", $code); - $lines = array_map('rtrim', $lines); - return implode("\n", $lines); -} - -////////////////////////////// -/// Regex helper functions /// -////////////////////////////// - -function regex($regex) { - return '~' . LIB . '(?:' . str_replace('~', '\~', $regex) . ')~'; -} - -function magicSplit($regex, $string) { - $pieces = preg_split(regex('(?:(?&string)|(?&comment)|(?&code))(*SKIP)(*FAIL)|' . $regex), $string); - - foreach ($pieces as &$piece) { - $piece = trim($piece); - } - - if ($pieces === ['']) { - return []; - } - - return $pieces; -} diff --git a/api/vendor/nikic/php-parser/grammar/rebuildParsers.php b/api/vendor/nikic/php-parser/grammar/rebuildParsers.php deleted file mode 100644 index 2d0c6b14d..000000000 --- a/api/vendor/nikic/php-parser/grammar/rebuildParsers.php +++ /dev/null @@ -1,81 +0,0 @@ - 'Php5', - __DIR__ . '/php7.y' => 'Php7', -]; - -$tokensFile = __DIR__ . '/tokens.y'; -$tokensTemplate = __DIR__ . '/tokens.template'; -$skeletonFile = __DIR__ . '/parser.template'; -$tmpGrammarFile = __DIR__ . '/tmp_parser.phpy'; -$tmpResultFile = __DIR__ . '/tmp_parser.php'; -$resultDir = __DIR__ . '/../lib/PhpParser/Parser'; -$tokensResultsFile = $resultDir . '/Tokens.php'; - -$kmyacc = getenv('KMYACC'); -if (!$kmyacc) { - // Use phpyacc from dev dependencies by default. - $kmyacc = __DIR__ . '/../vendor/bin/phpyacc'; -} - -$options = array_flip($argv); -$optionDebug = isset($options['--debug']); -$optionKeepTmpGrammar = isset($options['--keep-tmp-grammar']); - -/////////////////// -/// Main script /// -/////////////////// - -$tokens = file_get_contents($tokensFile); - -foreach ($grammarFileToName as $grammarFile => $name) { - echo "Building temporary $name grammar file.\n"; - - $grammarCode = file_get_contents($grammarFile); - $grammarCode = str_replace('%tokens', $tokens, $grammarCode); - $grammarCode = preprocessGrammar($grammarCode); - - file_put_contents($tmpGrammarFile, $grammarCode); - - $additionalArgs = $optionDebug ? '-t -v' : ''; - - echo "Building $name parser.\n"; - $output = execCmd("$kmyacc $additionalArgs -m $skeletonFile -p $name $tmpGrammarFile"); - - $resultCode = file_get_contents($tmpResultFile); - $resultCode = removeTrailingWhitespace($resultCode); - - ensureDirExists($resultDir); - file_put_contents("$resultDir/$name.php", $resultCode); - unlink($tmpResultFile); - - echo "Building token definition.\n"; - $output = execCmd("$kmyacc -m $tokensTemplate $tmpGrammarFile"); - rename($tmpResultFile, $tokensResultsFile); - - if (!$optionKeepTmpGrammar) { - unlink($tmpGrammarFile); - } -} - -//////////////////////////////// -/// Utility helper functions /// -//////////////////////////////// - -function ensureDirExists($dir) { - if (!is_dir($dir)) { - mkdir($dir, 0777, true); - } -} - -function execCmd($cmd) { - $output = trim(shell_exec("$cmd 2>&1")); - if ($output !== "") { - echo "> " . $cmd . "\n"; - echo $output; - } - return $output; -} diff --git a/api/vendor/nikic/php-parser/grammar/tokens.template b/api/vendor/nikic/php-parser/grammar/tokens.template deleted file mode 100644 index ba4e4901c..000000000 --- a/api/vendor/nikic/php-parser/grammar/tokens.template +++ /dev/null @@ -1,17 +0,0 @@ -semValue -#semval($,%t) $this->semValue -#semval(%n) $this->stackPos-(%l-%n) -#semval(%n,%t) $this->stackPos-(%l-%n) - -namespace PhpParser\Parser; -#include; - -/* GENERATED file based on grammar/tokens.y */ -final class Tokens -{ -#tokenval - const %s = %n; -#endtokenval -} diff --git a/api/vendor/nikic/php-parser/grammar/tokens.y b/api/vendor/nikic/php-parser/grammar/tokens.y deleted file mode 100644 index 88d4498bf..000000000 --- a/api/vendor/nikic/php-parser/grammar/tokens.y +++ /dev/null @@ -1,115 +0,0 @@ -/* We currently rely on the token ID mapping to be the same between PHP 5 and PHP 7 - so the same lexer can be used for - * both. This is enforced by sharing this token file. */ - -%right T_THROW -%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE -%left ',' -%left T_LOGICAL_OR -%left T_LOGICAL_XOR -%left T_LOGICAL_AND -%right T_PRINT -%right T_YIELD -%right T_DOUBLE_ARROW -%right T_YIELD_FROM -%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL -%left '?' ':' -%right T_COALESCE -%left T_BOOLEAN_OR -%left T_BOOLEAN_AND -%left '|' -%left '^' -%left '&' -%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP -%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL -%left T_SL T_SR -%left '+' '-' '.' -%left '*' '/' '%' -%right '!' -%nonassoc T_INSTANCEOF -%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' -%right T_POW -%right '[' -%nonassoc T_NEW T_CLONE -%token T_EXIT -%token T_IF -%left T_ELSEIF -%left T_ELSE -%left T_ENDIF -%token T_LNUMBER -%token T_DNUMBER -%token T_STRING -%token T_STRING_VARNAME -%token T_VARIABLE -%token T_NUM_STRING -%token T_INLINE_HTML -%token T_ENCAPSED_AND_WHITESPACE -%token T_CONSTANT_ENCAPSED_STRING -%token T_ECHO -%token T_DO -%token T_WHILE -%token T_ENDWHILE -%token T_FOR -%token T_ENDFOR -%token T_FOREACH -%token T_ENDFOREACH -%token T_DECLARE -%token T_ENDDECLARE -%token T_AS -%token T_SWITCH -%token T_MATCH -%token T_ENDSWITCH -%token T_CASE -%token T_DEFAULT -%token T_BREAK -%token T_CONTINUE -%token T_GOTO -%token T_FUNCTION -%token T_FN -%token T_CONST -%token T_RETURN -%token T_TRY -%token T_CATCH -%token T_FINALLY -%token T_THROW -%token T_USE -%token T_INSTEADOF -%token T_GLOBAL -%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC -%token T_VAR -%token T_UNSET -%token T_ISSET -%token T_EMPTY -%token T_HALT_COMPILER -%token T_CLASS -%token T_TRAIT -%token T_INTERFACE -%token T_ENUM -%token T_EXTENDS -%token T_IMPLEMENTS -%token T_OBJECT_OPERATOR -%token T_NULLSAFE_OBJECT_OPERATOR -%token T_DOUBLE_ARROW -%token T_LIST -%token T_ARRAY -%token T_CALLABLE -%token T_CLASS_C -%token T_TRAIT_C -%token T_METHOD_C -%token T_FUNC_C -%token T_LINE -%token T_FILE -%token T_START_HEREDOC -%token T_END_HEREDOC -%token T_DOLLAR_OPEN_CURLY_BRACES -%token T_CURLY_OPEN -%token T_PAAMAYIM_NEKUDOTAYIM -%token T_NAMESPACE -%token T_NS_C -%token T_DIR -%token T_NS_SEPARATOR -%token T_ELLIPSIS -%token T_NAME_FULLY_QUALIFIED -%token T_NAME_QUALIFIED -%token T_NAME_RELATIVE -%token T_ATTRIBUTE -%token T_ENUM diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php index be7160f13..a7fe129b0 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php @@ -19,6 +19,8 @@ class ClassConst implements PhpParser\Builder /** @var Node\AttributeGroup[] */ protected $attributeGroups = []; + /** @var Identifier|Node\Name|Node\ComplexType */ + protected $type; /** * Creates a class constant builder @@ -77,6 +79,17 @@ public function makePrivate() { return $this; } + /** + * Makes the constant final. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeFinal() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_FINAL); + + return $this; + } + /** * Sets doc comment for the constant. * @@ -105,6 +118,19 @@ public function addAttribute($attribute) { return $this; } + /** + * Sets the constant type. + * + * @param string|Node\Name|Identifier|Node\ComplexType $type + * + * @return $this + */ + public function setType($type) { + $this->type = BuilderHelpers::normalizeType($type); + + return $this; + } + /** * Returns the built class node. * @@ -115,7 +141,8 @@ public function getNode(): PhpParser\Node { $this->constants, $this->flags, $this->attributes, - $this->attributeGroups + $this->attributeGroups, + $this->type ); } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php index 87e2901a9..35b54d041 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Class_.php @@ -67,7 +67,7 @@ public function implement(...$interfaces) { * @return $this The builder instance (for fluid interface) */ public function makeAbstract() { - $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_ABSTRACT); + $this->flags = BuilderHelpers::addClassModifier($this->flags, Stmt\Class_::MODIFIER_ABSTRACT); return $this; } @@ -78,7 +78,13 @@ public function makeAbstract() { * @return $this The builder instance (for fluid interface) */ public function makeFinal() { - $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_FINAL); + $this->flags = BuilderHelpers::addClassModifier($this->flags, Stmt\Class_::MODIFIER_FINAL); + + return $this; + } + + public function makeReadonly() { + $this->flags = BuilderHelpers::addClassModifier($this->flags, Stmt\Class_::MODIFIER_READONLY); return $this; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php new file mode 100644 index 000000000..accc5166b --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php @@ -0,0 +1,85 @@ +name = $name; + } + + /** + * Sets the value. + * + * @param Node\Expr|string|int $value + * + * @return $this + */ + public function setValue($value) { + $this->value = BuilderHelpers::normalizeValue($value); + + return $this; + } + + /** + * Sets doc comment for the constant. + * + * @param PhpParser\Comment\Doc|string $docComment Doc comment to set + * + * @return $this The builder instance (for fluid interface) + */ + public function setDocComment($docComment) { + $this->attributes = [ + 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] + ]; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built enum case node. + * + * @return Stmt\EnumCase The built constant node + */ + public function getNode(): PhpParser\Node { + return new Stmt\EnumCase( + $this->name, + $this->value, + $this->attributeGroups, + $this->attributes + ); + } +} diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php new file mode 100644 index 000000000..be7eef95f --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Enum_.php @@ -0,0 +1,117 @@ +name = $name; + } + + /** + * Sets the scalar type. + * + * @param string|Identifier $type + * + * @return $this + */ + public function setScalarType($scalarType) { + $this->scalarType = BuilderHelpers::normalizeType($scalarType); + + return $this; + } + + /** + * Implements one or more interfaces. + * + * @param Name|string ...$interfaces Names of interfaces to implement + * + * @return $this The builder instance (for fluid interface) + */ + public function implement(...$interfaces) { + foreach ($interfaces as $interface) { + $this->implements[] = BuilderHelpers::normalizeName($interface); + } + + return $this; + } + + /** + * Adds a statement. + * + * @param Stmt|PhpParser\Builder $stmt The statement to add + * + * @return $this The builder instance (for fluid interface) + */ + public function addStmt($stmt) { + $stmt = BuilderHelpers::normalizeNode($stmt); + + $targets = [ + Stmt\TraitUse::class => &$this->uses, + Stmt\EnumCase::class => &$this->enumCases, + Stmt\ClassConst::class => &$this->constants, + Stmt\ClassMethod::class => &$this->methods, + ]; + + $class = \get_class($stmt); + if (!isset($targets[$class])) { + throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); + } + + $targets[$class][] = $stmt; + + return $this; + } + + /** + * Adds an attribute group. + * + * @param Node\Attribute|Node\AttributeGroup $attribute + * + * @return $this The builder instance (for fluid interface) + */ + public function addAttribute($attribute) { + $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); + + return $this; + } + + /** + * Returns the built class node. + * + * @return Stmt\Enum_ The built enum node + */ + public function getNode() : PhpParser\Node { + return new Stmt\Enum_($this->name, [ + 'scalarType' => $this->scalarType, + 'implements' => $this->implements, + 'stmts' => array_merge($this->uses, $this->enumCases, $this->constants, $this->methods), + 'attrGroups' => $this->attributeGroups, + ], $this->attributes); + } +} diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php index 8e7db399d..98ea9d336 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php @@ -61,8 +61,7 @@ public function addParams(array $params) { /** * Sets the return type for PHP 7. * - * @param string|Node\Name|Node\NullableType $type One of array, callable, string, int, float, - * bool, iterable, or a class/interface name. + * @param string|Node\Name|Node\Identifier|Node\ComplexType $type * * @return $this The builder instance (for fluid interface) */ diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php index 0ea91683c..69f353326 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Param.php @@ -19,6 +19,8 @@ class Param implements PhpParser\Builder protected $variadic = false; + protected $flags = 0; + /** @var Node\AttributeGroup[] */ protected $attributeGroups = []; @@ -47,7 +49,7 @@ public function setDefault($value) { /** * Sets type for the parameter. * - * @param string|Node\Name|Node\NullableType|Node\UnionType $type Parameter type + * @param string|Node\Name|Node\Identifier|Node\ComplexType $type Parameter type * * @return $this The builder instance (for fluid interface) */ @@ -63,7 +65,7 @@ public function setType($type) { /** * Sets type for the parameter. * - * @param string|Node\Name|Node\NullableType|Node\UnionType $type Parameter type + * @param string|Node\Name|Node\Identifier|Node\ComplexType $type Parameter type * * @return $this The builder instance (for fluid interface) * @@ -95,6 +97,50 @@ public function makeVariadic() { return $this; } + /** + * Makes the (promoted) parameter public. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePublic() { + $this->flags = BuilderHelpers::addModifier($this->flags, Node\Stmt\Class_::MODIFIER_PUBLIC); + + return $this; + } + + /** + * Makes the (promoted) parameter protected. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeProtected() { + $this->flags = BuilderHelpers::addModifier($this->flags, Node\Stmt\Class_::MODIFIER_PROTECTED); + + return $this; + } + + /** + * Makes the (promoted) parameter private. + * + * @return $this The builder instance (for fluid interface) + */ + public function makePrivate() { + $this->flags = BuilderHelpers::addModifier($this->flags, Node\Stmt\Class_::MODIFIER_PRIVATE); + + return $this; + } + + /** + * Makes the (promoted) parameter readonly. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeReadonly() { + $this->flags = BuilderHelpers::addModifier($this->flags, Node\Stmt\Class_::MODIFIER_READONLY); + + return $this; + } + /** * Adds an attribute group. * @@ -116,7 +162,7 @@ public function addAttribute($attribute) { public function getNode() : Node { return new Node\Param( new Node\Expr\Variable($this->name), - $this->default, $this->type, $this->byRef, $this->variadic, [], 0, $this->attributeGroups + $this->default, $this->type, $this->byRef, $this->variadic, [], $this->flags, $this->attributeGroups ); } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php index 94ed96106..68e318565 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php @@ -7,8 +7,8 @@ use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; -use PhpParser\Node\NullableType; use PhpParser\Node\Stmt; +use PhpParser\Node\ComplexType; class Property implements PhpParser\Builder { @@ -77,6 +77,17 @@ public function makeStatic() { return $this; } + /** + * Makes the property readonly. + * + * @return $this The builder instance (for fluid interface) + */ + public function makeReadonly() { + $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_READONLY); + + return $this; + } + /** * Sets default value for the property. * @@ -108,7 +119,7 @@ public function setDocComment($docComment) { /** * Sets the property type for PHP 7.4+. * - * @param string|Name|NullableType|Identifier $type + * @param string|Name|Identifier|ComplexType $type * * @return $this */ diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/api/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php index 6a6b7b07b..af010e028 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php @@ -71,6 +71,17 @@ public function trait(string $name) : Builder\Trait_ { return new Builder\Trait_($name); } + /** + * Creates an enum builder. + * + * @param string $name Name of the enum + * + * @return Builder\Enum_ The created enum builder + */ + public function enum(string $name) : Builder\Enum_ { + return new Builder\Enum_($name); + } + /** * Creates a trait use builder. * @@ -188,6 +199,17 @@ public function classConst($name, $value) : Builder\ClassConst { return new Builder\ClassConst($name, $value); } + /** + * Creates an enum case builder. + * + * @param string|Identifier $name Name + * + * @return Builder\EnumCase The created use const builder + */ + public function enumCase($name) : Builder\EnumCase { + return new Builder\EnumCase($name); + } + /** * Creates node a for a literal value. * @@ -311,7 +333,7 @@ public function new($class, array $args = []) : Expr\New_ { public function constFetch($name) : Expr\ConstFetch { return new Expr\ConstFetch(BuilderHelpers::normalizeName($name)); } - + /** * Creates a property fetch node. * @@ -327,15 +349,15 @@ public function propertyFetch(Expr $var, $name) : Expr\PropertyFetch { /** * Creates a class constant fetch node. * - * @param string|Name|Expr $class Class name - * @param string|Identifier $name Constant name + * @param string|Name|Expr $class Class name + * @param string|Identifier|Expr $name Constant name * * @return Expr\ClassConstFetch */ public function classConstFetch($class, $name): Expr\ClassConstFetch { return new Expr\ClassConstFetch( BuilderHelpers::normalizeNameOrExpr($class), - BuilderHelpers::normalizeIdentifier($name) + BuilderHelpers::normalizeIdentifierOrExpr($name) ); } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/api/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php index c6d8f1613..af6ceb996 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php @@ -2,13 +2,13 @@ namespace PhpParser; +use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\NullableType; use PhpParser\Node\Scalar; use PhpParser\Node\Stmt; -use PhpParser\Node\UnionType; /** * This class defines helpers used in the implementation of builders. Don't use it directly. @@ -104,29 +104,6 @@ public static function normalizeIdentifierOrExpr($name) { * @return Name The normalized name */ public static function normalizeName($name) : Name { - return self::normalizeNameCommon($name, false); - } - - /** - * Normalizes a name: Converts string names to Name nodes, while also allowing expressions. - * - * @param Expr|Name|string $name The name to normalize - * - * @return Name|Expr The normalized name or expression - */ - public static function normalizeNameOrExpr($name) { - return self::normalizeNameCommon($name, true); - } - - /** - * Normalizes a name: Converts string names to Name nodes, optionally allowing expressions. - * - * @param Expr|Name|string $name The name to normalize - * @param bool $allowExpr Whether to also allow expressions - * - * @return Name|Expr The normalized name, or expression (if allowed) - */ - private static function normalizeNameCommon($name, bool $allowExpr) { if ($name instanceof Name) { return $name; } @@ -147,16 +124,28 @@ private static function normalizeNameCommon($name, bool $allowExpr) { return new Name($name); } - if ($allowExpr) { - if ($name instanceof Expr) { - return $name; - } + throw new \LogicException('Name must be a string or an instance of Node\Name'); + } + + /** + * Normalizes a name: Converts string names to Name nodes, while also allowing expressions. + * + * @param Expr|Name|string $name The name to normalize + * + * @return Name|Expr The normalized name or expression + */ + public static function normalizeNameOrExpr($name) { + if ($name instanceof Expr) { + return $name; + } + + if (!is_string($name) && !($name instanceof Name)) { throw new \LogicException( 'Name must be a string or an instance of Node\Name or Node\Expr' ); } - throw new \LogicException('Name must be a string or an instance of Node\Name'); + return self::normalizeName($name); } /** @@ -165,18 +154,18 @@ private static function normalizeNameCommon($name, bool $allowExpr) { * In particular, builtin types become Identifiers, custom types become Names and nullables * are wrapped in NullableType nodes. * - * @param string|Name|Identifier|NullableType|UnionType $type The type to normalize + * @param string|Name|Identifier|ComplexType $type The type to normalize * - * @return Name|Identifier|NullableType|UnionType The normalized type + * @return Name|Identifier|ComplexType The normalized type */ public static function normalizeType($type) { if (!is_string($type)) { if ( !$type instanceof Name && !$type instanceof Identifier && - !$type instanceof NullableType && !$type instanceof UnionType + !$type instanceof ComplexType ) { throw new \LogicException( - 'Type must be a string, or an instance of Name, Identifier, NullableType or UnionType' + 'Type must be a string, or an instance of Name, Identifier or ComplexType' ); } return $type; @@ -189,7 +178,20 @@ public static function normalizeType($type) { } $builtinTypes = [ - 'array', 'callable', 'string', 'int', 'float', 'bool', 'iterable', 'void', 'object', 'mixed', 'never', + 'array', + 'callable', + 'bool', + 'int', + 'float', + 'string', + 'iterable', + 'void', + 'object', + 'null', + 'false', + 'mixed', + 'never', + 'true', ]; $lowerType = strtolower($type); @@ -321,4 +323,13 @@ public static function addModifier(int $modifiers, int $modifier) : int { Stmt\Class_::verifyModifier($modifiers, $modifier); return $modifiers | $modifier; } + + /** + * Adds a modifier and returns new modifier bitmask. + * @return int New modifiers + */ + public static function addClassModifier(int $existingModifiers, int $modifierToSet) : int { + Stmt\Class_::verifyClassModifier($existingModifiers, $modifierToSet); + return $existingModifiers | $modifierToSet; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php b/api/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php index 7f02e6f24..ceb3f11f3 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php @@ -2,6 +2,7 @@ namespace PhpParser; +use function array_merge; use PhpParser\Node\Expr; use PhpParser\Node\Scalar; @@ -36,7 +37,7 @@ class ConstExprEvaluator * * @param callable|null $fallbackEvaluator To call if subexpression cannot be evaluated */ - public function __construct(callable $fallbackEvaluator = null) { + public function __construct(?callable $fallbackEvaluator = null) { $this->fallbackEvaluator = $fallbackEvaluator ?? function(Expr $expr) { throw new ConstExprEvaluationException( "Expression of type {$expr->getType()} cannot be evaluated" @@ -150,6 +151,8 @@ private function evaluateArray(Expr\Array_ $expr) { foreach ($expr->items as $item) { if (null !== $item->key) { $array[$this->evaluate($item->key)] = $this->evaluate($item->value); + } elseif ($item->unpack) { + $array = array_merge($array, $this->evaluate($item->value)); } else { $array[] = $this->evaluate($item->value); } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/api/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php index 3eeac04a4..fc276ecb9 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -19,6 +19,8 @@ class PrintableNewAnonClassNode extends Expr { /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var int Modifiers */ + public $flags; /** @var Node\Arg[] Arguments */ public $args; /** @var null|Node\Name Name of extended class */ @@ -29,11 +31,12 @@ class PrintableNewAnonClassNode extends Expr public $stmts; public function __construct( - array $attrGroups, array $args, Node\Name $extends = null, array $implements, + array $attrGroups, int $flags, array $args, ?Node\Name $extends, array $implements, array $stmts, array $attributes ) { parent::__construct($attributes); $this->attrGroups = $attrGroups; + $this->flags = $flags; $this->args = $args; $this->extends = $extends; $this->implements = $implements; @@ -46,7 +49,7 @@ public static function fromNewNode(Expr\New_ $newNode) { // We don't assert that $class->name is null here, to allow consumers to assign unique names // to anonymous classes for their own purposes. We simplify ignore the name here. return new self( - $class->attrGroups, $newNode->args, $class->extends, $class->implements, + $class->attrGroups, $class->flags, $newNode->args, $class->extends, $class->implements, $class->stmts, $newNode->getAttributes() ); } @@ -56,6 +59,6 @@ public function getType() : string { } public function getSubNodeNames() : array { - return ['attrGroups', 'args', 'extends', 'implements', 'stmts']; + return ['attrGroups', 'flags', 'args', 'extends', 'implements', 'stmts']; } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php b/api/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php index 84c0175ec..7e0a5de0f 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php @@ -206,6 +206,11 @@ public function haveBracesInRange(int $startPos, int $endPos) { || $this->haveTokenInRange($startPos, $endPos, '}'); } + public function haveTagInRange(int $startPos, int $endPos): bool { + return $this->haveTokenInRange($startPos, $endPos, \T_OPEN_TAG) + || $this->haveTokenInRange($startPos, $endPos, \T_CLOSE_TAG); + } + /** * Get indentation before token position. * diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer.php index e29e4b91f..60b809b8b 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -69,7 +69,7 @@ public function __construct(array $options = []) { * @param ErrorHandler|null $errorHandler Error handler to use for lexing errors. Defaults to * ErrorHandler\Throwing */ - public function startLexing(string $code, ErrorHandler $errorHandler = null) { + public function startLexing(string $code, ?ErrorHandler $errorHandler = null) { if (null === $errorHandler) { $errorHandler = new ErrorHandler\Throwing(); } @@ -134,10 +134,11 @@ protected function postprocessTokens(ErrorHandler $errorHandler) { // detected by finding "gaps" in the token array. Unterminated comments are detected // by checking if a trailing comment has a "*/" at the end. // - // Additionally, we canonicalize to the PHP 8 comment format here, which does not include - // the trailing whitespace anymore. - // - // We also canonicalize to the PHP 8 T_NAME_* tokens. + // Additionally, we perform a number of canonicalizations here: + // * Use the PHP 8.0 comment format, which does not include trailing whitespace anymore. + // * Use PHP 8.0 T_NAME_* tokens. + // * Use PHP 8.1 T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG and + // T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG tokens used to disambiguate intersection types. $filePos = 0; $line = 1; @@ -208,6 +209,22 @@ protected function postprocessTokens(ErrorHandler $errorHandler) { } } + if ($token === '&') { + $next = $i + 1; + while (isset($this->tokens[$next]) && $this->tokens[$next][0] === \T_WHITESPACE) { + $next++; + } + $followedByVarOrVarArg = isset($this->tokens[$next]) && + ($this->tokens[$next][0] === \T_VARIABLE || $this->tokens[$next][0] === \T_ELLIPSIS); + $this->tokens[$i] = $token = [ + $followedByVarOrVarArg + ? \T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG + : \T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG, + '&', + $line, + ]; + } + $tokenValue = \is_string($token) ? $token : $token[1]; $tokenLen = \strlen($tokenValue); @@ -424,6 +441,9 @@ private function defineCompatibilityTokens() { 'T_ATTRIBUTE', // PHP 8.1 'T_ENUM', + 'T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG', + 'T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG', + 'T_READONLY', ]; // PHP-Parser might be used together with another library that also emulates some or all @@ -514,7 +534,10 @@ protected function createTokenMap() : array { $tokenMap[\T_MATCH] = Tokens::T_MATCH; $tokenMap[\T_NULLSAFE_OBJECT_OPERATOR] = Tokens::T_NULLSAFE_OBJECT_OPERATOR; $tokenMap[\T_ATTRIBUTE] = Tokens::T_ATTRIBUTE; + $tokenMap[\T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG] = Tokens::T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG; + $tokenMap[\T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG] = Tokens::T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG; $tokenMap[\T_ENUM] = Tokens::T_ENUM; + $tokenMap[\T_READONLY] = Tokens::T_READONLY; return $tokenMap; } @@ -523,7 +546,7 @@ private function createIdentifierTokenMap(): array { // Based on semi_reserved production. return array_fill_keys([ \T_STRING, - \T_STATIC, \T_ABSTRACT, \T_FINAL, \T_PRIVATE, \T_PROTECTED, \T_PUBLIC, + \T_STATIC, \T_ABSTRACT, \T_FINAL, \T_PRIVATE, \T_PROTECTED, \T_PUBLIC, \T_READONLY, \T_INCLUDE, \T_INCLUDE_ONCE, \T_EVAL, \T_REQUIRE, \T_REQUIRE_ONCE, \T_LOGICAL_OR, \T_LOGICAL_XOR, \T_LOGICAL_AND, \T_INSTANCEOF, \T_NEW, \T_CLONE, \T_EXIT, \T_IF, \T_ELSEIF, \T_ELSE, \T_ENDIF, \T_ECHO, \T_DO, \T_WHILE, \T_ENDWHILE, \T_FOR, \T_ENDFOR, \T_FOREACH, \T_ENDFOREACH, \T_DECLARE, \T_ENDDECLARE, \T_AS, \T_TRY, \T_CATCH, diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php index 6d517f40a..a0e781d04 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php @@ -8,11 +8,14 @@ use PhpParser\Lexer\TokenEmulator\AttributeEmulator; use PhpParser\Lexer\TokenEmulator\EnumTokenEmulator; use PhpParser\Lexer\TokenEmulator\CoaleseEqualTokenEmulator; +use PhpParser\Lexer\TokenEmulator\ExplicitOctalEmulator; use PhpParser\Lexer\TokenEmulator\FlexibleDocStringEmulator; use PhpParser\Lexer\TokenEmulator\FnTokenEmulator; use PhpParser\Lexer\TokenEmulator\MatchTokenEmulator; use PhpParser\Lexer\TokenEmulator\NullsafeTokenEmulator; use PhpParser\Lexer\TokenEmulator\NumericLiteralSeparatorEmulator; +use PhpParser\Lexer\TokenEmulator\ReadonlyFunctionTokenEmulator; +use PhpParser\Lexer\TokenEmulator\ReadonlyTokenEmulator; use PhpParser\Lexer\TokenEmulator\ReverseEmulator; use PhpParser\Lexer\TokenEmulator\TokenEmulator; @@ -22,6 +25,7 @@ class Emulative extends Lexer const PHP_7_4 = '7.4dev'; const PHP_8_0 = '8.0dev'; const PHP_8_1 = '8.1dev'; + const PHP_8_2 = '8.2dev'; /** @var mixed[] Patches used to reverse changes introduced in the code */ private $patches = []; @@ -35,11 +39,11 @@ class Emulative extends Lexer /** * @param mixed[] $options Lexer options. In addition to the usual options, * accepts a 'phpVersion' string that specifies the - * version to emulated. Defaults to newest supported. + * version to emulate. Defaults to newest supported. */ public function __construct(array $options = []) { - $this->targetPhpVersion = $options['phpVersion'] ?? Emulative::PHP_8_1; + $this->targetPhpVersion = $options['phpVersion'] ?? Emulative::PHP_8_2; unset($options['phpVersion']); parent::__construct($options); @@ -53,6 +57,9 @@ public function __construct(array $options = []) new NullsafeTokenEmulator(), new AttributeEmulator(), new EnumTokenEmulator(), + new ReadonlyTokenEmulator(), + new ExplicitOctalEmulator(), + new ReadonlyFunctionTokenEmulator(), ]; // Collect emulators that are relevant for the PHP version we're running @@ -67,7 +74,7 @@ public function __construct(array $options = []) } } - public function startLexing(string $code, ErrorHandler $errorHandler = null) { + public function startLexing(string $code, ?ErrorHandler $errorHandler = null) { $emulators = array_filter($this->emulators, function($emulator) use($code) { return $emulator->isEmulationNeeded($code); }); diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php new file mode 100644 index 000000000..f5f6805b8 --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php @@ -0,0 +1,44 @@ +resolveIntegerOrFloatToken($tokens[$i + 1][1]); + array_splice($tokens, $i, 2, [ + [$tokenKind, '0' . $tokens[$i + 1][1], $tokens[$i][2]], + ]); + $c--; + } + } + return $tokens; + } + + private function resolveIntegerOrFloatToken(string $str): int + { + $str = substr($str, 1); + $str = str_replace('_', '', $str); + $num = octdec($str); + return is_float($num) ? \T_DNUMBER : \T_LNUMBER; + } + + public function reverseEmulate(string $code, array $tokens): array { + // Explicit octals were not legal code previously, don't bother. + return $tokens; + } +} \ No newline at end of file diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php index ea261cc17..f8e836290 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php @@ -33,7 +33,7 @@ public function emulate(string $code, array $tokens): array /** * @param mixed[] $tokens - * @return mixed[]|null + * @return array|string|null */ private function getPreviousNonSpaceToken(array $tokens, int $start) { diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php new file mode 100644 index 000000000..e671458c9 --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php @@ -0,0 +1,31 @@ +namespace = $namespace; $this->origAliases = $this->aliases = [ Stmt\Use_::TYPE_NORMAL => [], diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php index b25b0904a..17e680260 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Arg.php @@ -2,6 +2,7 @@ namespace PhpParser\Node; +use PhpParser\Node\VariadicPlaceholder; use PhpParser\NodeAbstract; class Arg extends NodeAbstract @@ -26,7 +27,7 @@ class Arg extends NodeAbstract */ public function __construct( Expr $value, bool $byRef = false, bool $unpack = false, array $attributes = [], - Identifier $name = null + ?Identifier $name = null ) { $this->attributes = $attributes; $this->name = $name; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php new file mode 100644 index 000000000..9505532ae --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/ComplexType.php @@ -0,0 +1,14 @@ +attributes = $attributes; $this->var = $var; $this->dim = $dim; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php index 1b078f821..5aaa9867e 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php @@ -23,7 +23,7 @@ class ArrayItem extends Expr * @param bool $byRef Whether to assign by reference * @param array $attributes Additional attributes */ - public function __construct(Expr $value, Expr $key = null, bool $byRef = false, array $attributes = [], bool $unpack = false) { + public function __construct(Expr $value, ?Expr $key = null, bool $byRef = false, array $attributes = [], bool $unpack = false) { $this->attributes = $attributes; $this->key = $key; $this->value = $value; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php index d293f0ae4..c273fb7ee 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php @@ -17,7 +17,7 @@ class ArrowFunction extends Expr implements FunctionLike /** @var Node\Param[] */ public $params = []; - /** @var null|Node\Identifier|Node\Name|Node\NullableType|Node\UnionType */ + /** @var null|Node\Identifier|Node\Name|Node\ComplexType */ public $returnType; /** @var Expr */ @@ -42,7 +42,7 @@ public function __construct(array $subNodes = [], array $attributes = []) { $this->params = $subNodes['params'] ?? []; $returnType = $subNodes['returnType'] ?? null; $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; - $this->expr = $subNodes['expr'] ?? null; + $this->expr = $subNodes['expr']; $this->attrGroups = $subNodes['attrGroups'] ?? []; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php new file mode 100644 index 000000000..78e1cf349 --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php @@ -0,0 +1,39 @@ + + */ + abstract public function getRawArgs(): array; + + /** + * Returns whether this call expression is actually a first class callable. + */ + public function isFirstClassCallable(): bool { + foreach ($this->getRawArgs() as $arg) { + if ($arg instanceof VariadicPlaceholder) { + return true; + } + } + return false; + } + + /** + * Assert that this is not a first-class callable and return only ordinary Args. + * + * @return Arg[] + */ + public function getArgs(): array { + assert(!$this->isFirstClassCallable()); + return $this->getRawArgs(); + } +} \ No newline at end of file diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php index faf832f93..0c45ffb4b 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php @@ -10,15 +10,15 @@ class ClassConstFetch extends Expr { /** @var Name|Expr Class name */ public $class; - /** @var Identifier|Error Constant name */ + /** @var Identifier|Expr|Error Constant name */ public $name; /** * Constructs a class const fetch node. * - * @param Name|Expr $class Class name - * @param string|Identifier|Error $name Constant name - * @param array $attributes Additional attributes + * @param Name|Expr $class Class name + * @param string|Identifier|Expr|Error $name Constant name + * @param array $attributes Additional attributes */ public function __construct($class, $name, array $attributes = []) { $this->attributes = $attributes; @@ -29,7 +29,7 @@ public function __construct($class, $name, array $attributes = []) { public function getSubNodeNames() : array { return ['class', 'name']; } - + public function getType() : string { return 'Expr_ClassConstFetch'; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php index 56e621f25..56ddea6aa 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php @@ -16,7 +16,7 @@ class Closure extends Expr implements FunctionLike public $params; /** @var ClosureUse[] use()s */ public $uses; - /** @var null|Node\Identifier|Node\Name|Node\NullableType|Node\UnionType Return type */ + /** @var null|Node\Identifier|Node\Name|Node\ComplexType Return type */ public $returnType; /** @var Node\Stmt[] Statements */ public $stmts; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php index b88a8f7e6..5469b8e4c 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php @@ -19,7 +19,7 @@ class Exit_ extends Expr * @param null|Expr $expr Expression * @param array $attributes Additional attributes */ - public function __construct(Expr $expr = null, array $attributes = []) { + public function __construct(?Expr $expr = null, array $attributes = []) { $this->attributes = $attributes; $this->expr = $expr; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php index 1e8afa559..2de4d0dd5 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php @@ -5,19 +5,19 @@ use PhpParser\Node; use PhpParser\Node\Expr; -class FuncCall extends Expr +class FuncCall extends CallLike { /** @var Node\Name|Expr Function name */ public $name; - /** @var Node\Arg[] Arguments */ + /** @var array Arguments */ public $args; /** * Constructs a function call node. * - * @param Node\Name|Expr $name Function name - * @param Node\Arg[] $args Arguments - * @param array $attributes Additional attributes + * @param Node\Name|Expr $name Function name + * @param array $args Arguments + * @param array $attributes Additional attributes */ public function __construct($name, array $args = [], array $attributes = []) { $this->attributes = $attributes; @@ -32,4 +32,8 @@ public function getSubNodeNames() : array { public function getType() : string { return 'Expr_FuncCall'; } + + public function getRawArgs(): array { + return $this->args; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php index bd81bb43f..49ca48356 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php @@ -5,23 +5,24 @@ use PhpParser\Node\Arg; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; +use PhpParser\Node\VariadicPlaceholder; -class MethodCall extends Expr +class MethodCall extends CallLike { /** @var Expr Variable holding object */ public $var; /** @var Identifier|Expr Method name */ public $name; - /** @var Arg[] Arguments */ + /** @var array Arguments */ public $args; /** * Constructs a function call node. * - * @param Expr $var Variable holding object - * @param string|Identifier|Expr $name Method name - * @param Arg[] $args Arguments - * @param array $attributes Additional attributes + * @param Expr $var Variable holding object + * @param string|Identifier|Expr $name Method name + * @param array $args Arguments + * @param array $attributes Additional attributes */ public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { $this->attributes = $attributes; @@ -37,4 +38,8 @@ public function getSubNodeNames() : array { public function getType() : string { return 'Expr_MethodCall'; } + + public function getRawArgs(): array { + return $this->args; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php index c86f0c601..e2bb64928 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php @@ -3,20 +3,22 @@ namespace PhpParser\Node\Expr; use PhpParser\Node; +use PhpParser\Node\Arg; use PhpParser\Node\Expr; +use PhpParser\Node\VariadicPlaceholder; -class New_ extends Expr +class New_ extends CallLike { /** @var Node\Name|Expr|Node\Stmt\Class_ Class name */ public $class; - /** @var Node\Arg[] Arguments */ + /** @var array Arguments */ public $args; /** * Constructs a function call node. * * @param Node\Name|Expr|Node\Stmt\Class_ $class Class name (or class node for anonymous classes) - * @param Node\Arg[] $args Arguments + * @param array $args Arguments * @param array $attributes Additional attributes */ public function __construct($class, array $args = [], array $attributes = []) { @@ -32,4 +34,8 @@ public function getSubNodeNames() : array { public function getType() : string { return 'Expr_New'; } + + public function getRawArgs(): array { + return $this->args; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php index 361e44622..07a571fd8 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php @@ -5,23 +5,24 @@ use PhpParser\Node\Arg; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; +use PhpParser\Node\VariadicPlaceholder; -class NullsafeMethodCall extends Expr +class NullsafeMethodCall extends CallLike { /** @var Expr Variable holding object */ public $var; /** @var Identifier|Expr Method name */ public $name; - /** @var Arg[] Arguments */ + /** @var array Arguments */ public $args; /** * Constructs a nullsafe method call node. * - * @param Expr $var Variable holding object - * @param string|Identifier|Expr $name Method name - * @param Arg[] $args Arguments - * @param array $attributes Additional attributes + * @param Expr $var Variable holding object + * @param string|Identifier|Expr $name Method name + * @param array $args Arguments + * @param array $attributes Additional attributes */ public function __construct(Expr $var, $name, array $args = [], array $attributes = []) { $this->attributes = $attributes; @@ -37,4 +38,8 @@ public function getSubNodeNames() : array { public function getType() : string { return 'Expr_NullsafeMethodCall'; } + + public function getRawArgs(): array { + return $this->args; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php index 9883f5af5..d0d099c47 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php @@ -3,25 +3,27 @@ namespace PhpParser\Node\Expr; use PhpParser\Node; +use PhpParser\Node\Arg; use PhpParser\Node\Expr; use PhpParser\Node\Identifier; +use PhpParser\Node\VariadicPlaceholder; -class StaticCall extends Expr +class StaticCall extends CallLike { /** @var Node\Name|Expr Class name */ public $class; /** @var Identifier|Expr Method name */ public $name; - /** @var Node\Arg[] Arguments */ + /** @var array Arguments */ public $args; /** * Constructs a static method call node. * - * @param Node\Name|Expr $class Class name - * @param string|Identifier|Expr $name Method name - * @param Node\Arg[] $args Arguments - * @param array $attributes Additional attributes + * @param Node\Name|Expr $class Class name + * @param string|Identifier|Expr $name Method name + * @param array $args Arguments + * @param array $attributes Additional attributes */ public function __construct($class, $name, array $args = [], array $attributes = []) { $this->attributes = $attributes; @@ -37,4 +39,8 @@ public function getSubNodeNames() : array { public function getType() : string { return 'Expr_StaticCall'; } + + public function getRawArgs(): array { + return $this->args; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php index aef8fc333..f15336ede 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php @@ -18,7 +18,7 @@ class Yield_ extends Expr * @param null|Expr $key Key expression * @param array $attributes Additional attributes */ - public function __construct(Expr $value = null, Expr $key = null, array $attributes = []) { + public function __construct(?Expr $value = null, ?Expr $key = null, array $attributes = []) { $this->attributes = $attributes; $this->key = $key; $this->value = $value; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php index bbcf53e55..5a825e731 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php @@ -23,7 +23,7 @@ public function getParams() : array; /** * Get the declared return type or null * - * @return null|Identifier|Name|NullableType|UnionType + * @return null|Identifier|Name|ComplexType */ public function getReturnType(); diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php new file mode 100644 index 000000000..9208e1392 --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php @@ -0,0 +1,30 @@ +attributes = $attributes; + $this->types = $types; + } + + public function getSubNodeNames() : array { + return ['types']; + } + + public function getType() : string { + return 'IntersectionType'; + } +} diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php index 6b1cc9f8e..0d6e4b1ff 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php @@ -6,7 +6,10 @@ class Name extends NodeAbstract { - /** @var string[] Parts of the name */ + /** + * @var string[] Parts of the name + * @deprecated Use getParts() instead + */ public $parts; private static $specialClassNames = [ @@ -30,6 +33,15 @@ public function getSubNodeNames() : array { return ['parts']; } + /** + * Get parts of name (split by the namespace separator). + * + * @return string[] Parts of name + */ + public function getParts(): array { + return $this->parts; + } + /** * Gets the first part of the name, i.e. everything before the first namespace separator. * @@ -150,7 +162,7 @@ public function __toString() : string { * * @return static|null Sliced name */ - public function slice(int $offset, int $length = null) { + public function slice(int $offset, ?int $length = null) { $numParts = count($this->parts); $realOffset = $offset < 0 ? $offset + $numParts : $offset; @@ -162,7 +174,7 @@ public function slice(int $offset, int $length = null) { $realLength = $numParts - $realOffset; } else { $realLength = $length < 0 ? $length + $numParts - $realOffset : $length; - if ($realLength < 0 || $realLength > $numParts) { + if ($realLength < 0 || $realLength > $numParts - $realOffset) { throw new \OutOfBoundsException(sprintf('Length %d is out of bounds', $length)); } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php index 36463657e..d68e26a38 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/NullableType.php @@ -2,9 +2,7 @@ namespace PhpParser\Node; -use PhpParser\NodeAbstract; - -class NullableType extends NodeAbstract +class NullableType extends ComplexType { /** @var Identifier|Name Type */ public $type; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php index 315b5f24f..dfb77f629 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Param.php @@ -6,7 +6,7 @@ class Param extends NodeAbstract { - /** @var null|Identifier|Name|NullableType|UnionType Type declaration */ + /** @var null|Identifier|Name|ComplexType Type declaration */ public $type; /** @var bool Whether parameter is passed by reference */ public $byRef; @@ -24,17 +24,17 @@ class Param extends NodeAbstract /** * Constructs a parameter node. * - * @param Expr\Variable|Expr\Error $var Parameter variable - * @param null|Expr $default Default value - * @param null|string|Identifier|Name|NullableType|UnionType $type Type declaration - * @param bool $byRef Whether is passed by reference - * @param bool $variadic Whether this is a variadic argument - * @param array $attributes Additional attributes - * @param int $flags Optional visibility flags - * @param AttributeGroup[] $attrGroups PHP attribute groups + * @param Expr\Variable|Expr\Error $var Parameter variable + * @param null|Expr $default Default value + * @param null|string|Identifier|Name|ComplexType $type Type declaration + * @param bool $byRef Whether is passed by reference + * @param bool $variadic Whether this is a variadic argument + * @param array $attributes Additional attributes + * @param int $flags Optional visibility flags + * @param AttributeGroup[] $attrGroups PHP attribute groups */ public function __construct( - $var, Expr $default = null, $type = null, + $var, ?Expr $default = null, $type = null, bool $byRef = false, bool $variadic = false, array $attributes = [], int $flags = 0, diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php index 29ce0dd40..8a15c6f1f 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php @@ -24,6 +24,17 @@ public function getSubNodeNames() : array { return ['value']; } + /** + * @param mixed[] $attributes + */ + public static function fromString(string $str, array $attributes = []): DNumber + { + $attributes['rawValue'] = $str; + $float = self::parse($str); + + return new DNumber($float, $attributes); + } + /** * @internal * @@ -36,13 +47,7 @@ public function getSubNodeNames() : array { public static function parse(string $str) : float { $str = str_replace('_', '', $str); - // if string contains any of .eE just cast it to float - if (false !== strpbrk($str, '.eE')) { - return (float) $str; - } - - // otherwise it's an integer notation that overflowed into a float - // if it starts with 0 it's one of the special integer notations + // Check whether this is one of the special integer notations. if ('0' === $str[0]) { // hex if ('x' === $str[1] || 'X' === $str[1]) { @@ -54,16 +59,18 @@ public static function parse(string $str) : float { return bindec($str); } - // oct - // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit (8 or 9) - // so that only the digits before that are used - return octdec(substr($str, 0, strcspn($str, '89'))); + // oct, but only if the string does not contain any of '.eE'. + if (false === strpbrk($str, '.eE')) { + // substr($str, 0, strcspn($str, '89')) cuts the string at the first invalid digit + // (8 or 9) so that only the digits before that are used. + return octdec(substr($str, 0, strcspn($str, '89'))); + } } // dec return (float) $str; } - + public function getType() : string { return 'Scalar_DNumber'; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php index b33943547..2cc2b22c8 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php @@ -41,6 +41,8 @@ public function getSubNodeNames() : array { * @return LNumber The constructed LNumber, including kind attribute */ public static function fromString(string $str, array $attributes = [], bool $allowInvalidOctal = false) : LNumber { + $attributes['rawValue'] = $str; + $str = str_replace('_', '', $str); if ('0' !== $str[0] || '0' === $str) { @@ -62,11 +64,16 @@ public static function fromString(string $str, array $attributes = [], bool $all throw new Error('Invalid numeric literal', $attributes); } + // Strip optional explicit octal prefix. + if ('o' === $str[1] || 'O' === $str[1]) { + $str = substr($str, 2); + } + // use intval instead of octdec to get proper cutting behavior with malformed numbers $attributes['kind'] = LNumber::KIND_OCT; return new LNumber(intval($str, 8), $attributes); } - + public function getType() : string { return 'Scalar_LNumber'; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php index 8a6d93a47..6690a16bf 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php @@ -42,6 +42,22 @@ public function getSubNodeNames() : array { return ['value']; } + /** + * @param bool $parseUnicodeEscape Whether to parse PHP 7 \u escapes + */ + public static function fromString(string $str, array $attributes = [], bool $parseUnicodeEscape = true): self + { + $attributes['kind'] = ($str[0] === "'" || ($str[1] === "'" && ($str[0] === 'b' || $str[0] === 'B'))) + ? Scalar\String_::KIND_SINGLE_QUOTED + : Scalar\String_::KIND_DOUBLE_QUOTED; + + $attributes['rawValue'] = $str; + + $string = self::parse($str, $parseUnicodeEscape); + + return new self($string, $attributes); + } + /** * @internal * diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php index 6adc5a6c6..d9464a1ae 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php @@ -15,7 +15,7 @@ class Break_ extends Node\Stmt * @param null|Node\Expr $num Number of loops to break * @param array $attributes Additional attributes */ - public function __construct(Node\Expr $num = null, array $attributes = []) { + public function __construct(?Node\Expr $num = null, array $attributes = []) { $this->attributes = $attributes; $this->num = $num; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php index 9b9c09478..5d7b5c016 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php @@ -23,7 +23,7 @@ class Catch_ extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct( - array $types, Expr\Variable $var = null, array $stmts = [], array $attributes = [] + array $types, ?Expr\Variable $var = null, array $stmts = [], array $attributes = [] ) { $this->attributes = $attributes; $this->types = $types; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php index c459acb15..8abaad6de 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php @@ -10,31 +10,36 @@ class ClassConst extends Node\Stmt public $flags; /** @var Node\Const_[] Constant declarations */ public $consts; - /** @var Node\AttributeGroup[] */ + /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var Node\Identifier|Node\Name|Node\ComplexType|null Type declaration */ + public $type; /** * Constructs a class const list node. * - * @param Node\Const_[] $consts Constant declarations - * @param int $flags Modifiers - * @param array $attributes Additional attributes - * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param Node\Const_[] $consts Constant declarations + * @param int $flags Modifiers + * @param array $attributes Additional attributes + * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param null|string|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration */ public function __construct( array $consts, int $flags = 0, array $attributes = [], - array $attrGroups = [] + array $attrGroups = [], + $type = null ) { $this->attributes = $attributes; $this->flags = $flags; $this->consts = $consts; $this->attrGroups = $attrGroups; + $this->type = \is_string($type) ? new Node\Identifier($type) : $type; } public function getSubNodeNames() : array { - return ['attrGroups', 'flags', 'consts']; + return ['attrGroups', 'flags', 'type', 'consts']; } /** @@ -65,6 +70,15 @@ public function isPrivate() : bool { return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); } + /** + * Whether constant is final. + * + * @return bool + */ + public function isFinal() : bool { + return (bool) ($this->flags & Class_::MODIFIER_FINAL); + } + public function getType() : string { return 'Stmt_ClassConst'; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php index 840c4f67e..2fa4e861b 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php @@ -4,9 +4,6 @@ use PhpParser\Node; -/** - * @property Node\Name $namespacedName Namespaced name (if using NameResolver) - */ abstract class ClassLike extends Node\Stmt { /** @var Node\Identifier|null Name */ @@ -16,6 +13,9 @@ abstract class ClassLike extends Node\Stmt /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var Node\Name|null Namespaced name (if using NameResolver) */ + public $namespacedName; + /** * @return TraitUse[] */ diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php index 92157fab2..6e85161e3 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php @@ -15,7 +15,7 @@ class ClassMethod extends Node\Stmt implements FunctionLike public $name; /** @var Node\Param[] Parameters */ public $params; - /** @var null|Node\Identifier|Node\Name|Node\NullableType|Node\UnionType Return type */ + /** @var null|Node\Identifier|Node\Name|Node\ComplexType Return type */ public $returnType; /** @var Node\Stmt[]|null Statements */ public $stmts; @@ -23,21 +23,23 @@ class ClassMethod extends Node\Stmt implements FunctionLike public $attrGroups; private static $magicNames = [ - '__construct' => true, - '__destruct' => true, - '__call' => true, - '__callstatic' => true, - '__get' => true, - '__set' => true, - '__isset' => true, - '__unset' => true, - '__sleep' => true, - '__wakeup' => true, - '__tostring' => true, - '__set_state' => true, - '__clone' => true, - '__invoke' => true, - '__debuginfo' => true, + '__construct' => true, + '__destruct' => true, + '__call' => true, + '__callstatic' => true, + '__get' => true, + '__set' => true, + '__isset' => true, + '__unset' => true, + '__sleep' => true, + '__wakeup' => true, + '__tostring' => true, + '__set_state' => true, + '__clone' => true, + '__invoke' => true, + '__debuginfo' => true, + '__serialize' => true, + '__unserialize' => true, ]; /** diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php index 0f35fe086..52ed6c6cd 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php @@ -13,6 +13,7 @@ class Class_ extends ClassLike const MODIFIER_STATIC = 8; const MODIFIER_ABSTRACT = 16; const MODIFIER_FINAL = 32; + const MODIFIER_READONLY = 64; const VISIBILITY_MODIFIER_MASK = 7; // 1 | 2 | 4 @@ -67,6 +68,10 @@ public function isFinal() : bool { return (bool) ($this->flags & self::MODIFIER_FINAL); } + public function isReadonly() : bool { + return (bool) ($this->flags & self::MODIFIER_READONLY); + } + /** * Whether the class is anonymous. * @@ -76,6 +81,27 @@ public function isAnonymous() : bool { return null === $this->name; } + /** + * @internal + */ + public static function verifyClassModifier($a, $b) { + if ($a & self::MODIFIER_ABSTRACT && $b & self::MODIFIER_ABSTRACT) { + throw new Error('Multiple abstract modifiers are not allowed'); + } + + if ($a & self::MODIFIER_FINAL && $b & self::MODIFIER_FINAL) { + throw new Error('Multiple final modifiers are not allowed'); + } + + if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) { + throw new Error('Multiple readonly modifiers are not allowed'); + } + + if ($a & 48 && $b & 48) { + throw new Error('Cannot use the final modifier on an abstract class'); + } + } + /** * @internal */ @@ -96,6 +122,10 @@ public static function verifyModifier($a, $b) { throw new Error('Multiple final modifiers are not allowed'); } + if ($a & self::MODIFIER_READONLY && $b & self::MODIFIER_READONLY) { + throw new Error('Multiple readonly modifiers are not allowed'); + } + if ($a & 48 && $b & 48) { throw new Error('Cannot use the final modifier on an abstract class member'); } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php index 24882683b..f2b30d79f 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php @@ -15,7 +15,7 @@ class Continue_ extends Node\Stmt * @param null|Node\Expr $num Number of loops to continue * @param array $attributes Additional attributes */ - public function __construct(Node\Expr $num = null, array $attributes = []) { + public function __construct(?Node\Expr $num = null, array $attributes = []) { $this->attributes = $attributes; $this->num = $num; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php index f46ff0baf..a3a5bfaa5 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php @@ -18,7 +18,7 @@ class Declare_ extends Node\Stmt * @param Node\Stmt[]|null $stmts Statements * @param array $attributes Additional attributes */ - public function __construct(array $declares, array $stmts = null, array $attributes = []) { + public function __construct(array $declares, ?array $stmts = null, array $attributes = []) { $this->attributes = $attributes; $this->declares = $declares; $this->stmts = $stmts; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php index 5beff8b39..4b1079bcd 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php @@ -20,7 +20,7 @@ class EnumCase extends Node\Stmt * @param AttributeGroup[] $attrGroups PHP attribute groups * @param array $attributes Additional attributes */ - public function __construct($name, Node\Expr $expr = null, array $attrGroups = [], array $attributes = []) { + public function __construct($name, ?Node\Expr $expr = null, array $attrGroups = [], array $attributes = []) { parent::__construct($attributes); $this->name = \is_string($name) ? new Node\Identifier($name) : $name; $this->expr = $expr; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php index f08481fae..c2ccae24e 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php @@ -5,9 +5,6 @@ use PhpParser\Node; use PhpParser\Node\FunctionLike; -/** - * @property Node\Name $namespacedName Namespaced name (if using NameResolver) - */ class Function_ extends Node\Stmt implements FunctionLike { /** @var bool Whether function returns by reference */ @@ -16,13 +13,16 @@ class Function_ extends Node\Stmt implements FunctionLike public $name; /** @var Node\Param[] Parameters */ public $params; - /** @var null|Node\Identifier|Node\Name|Node\NullableType|Node\UnionType Return type */ + /** @var null|Node\Identifier|Node\Name|Node\ComplexType Return type */ public $returnType; /** @var Node\Stmt[] Statements */ public $stmts; /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var Node\Name|null Namespaced name (if using NameResolver) */ + public $namespacedName; + /** * Constructs a function node. * diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php index c63204577..fc249161a 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php @@ -22,7 +22,7 @@ class Namespace_ extends Node\Stmt * @param null|Node\Stmt[] $stmts Statements * @param array $attributes Additional attributes */ - public function __construct(Node\Name $name = null, $stmts = [], array $attributes = []) { + public function __construct(?Node\Name $name = null, $stmts = [], array $attributes = []) { $this->attributes = $attributes; $this->name = $name; $this->stmts = $stmts; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php index 324345b85..bc781bbff 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php @@ -3,10 +3,9 @@ namespace PhpParser\Node\Stmt; use PhpParser\Node; +use PhpParser\Node\ComplexType; use PhpParser\Node\Identifier; use PhpParser\Node\Name; -use PhpParser\Node\NullableType; -use PhpParser\Node\UnionType; class Property extends Node\Stmt { @@ -14,7 +13,7 @@ class Property extends Node\Stmt public $flags; /** @var PropertyProperty[] Properties */ public $props; - /** @var null|Identifier|Name|NullableType|UnionType Type declaration */ + /** @var null|Identifier|Name|ComplexType Type declaration */ public $type; /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; @@ -22,11 +21,11 @@ class Property extends Node\Stmt /** * Constructs a class property list node. * - * @param int $flags Modifiers - * @param PropertyProperty[] $props Properties - * @param array $attributes Additional attributes - * @param null|string|Identifier|Name|NullableType|UnionType $type Type declaration - * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param int $flags Modifiers + * @param PropertyProperty[] $props Properties + * @param array $attributes Additional attributes + * @param null|string|Identifier|Name|ComplexType $type Type declaration + * @param Node\AttributeGroup[] $attrGroups PHP attribute groups */ public function __construct(int $flags, array $props, array $attributes = [], $type = null, array $attrGroups = []) { $this->attributes = $attributes; @@ -77,6 +76,15 @@ public function isStatic() : bool { return (bool) ($this->flags & Class_::MODIFIER_STATIC); } + /** + * Whether the property is readonly. + * + * @return bool + */ + public function isReadonly() : bool { + return (bool) ($this->flags & Class_::MODIFIER_READONLY); + } + public function getType() : string { return 'Stmt_Property'; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php index 205731e20..286b42961 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php @@ -18,7 +18,7 @@ class PropertyProperty extends Node\Stmt * @param null|Node\Expr $default Default value * @param array $attributes Additional attributes */ - public function __construct($name, Node\Expr $default = null, array $attributes = []) { + public function __construct($name, ?Node\Expr $default = null, array $attributes = []) { $this->attributes = $attributes; $this->name = \is_string($name) ? new Node\VarLikeIdentifier($name) : $name; $this->default = $default; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php index efc578c58..53731254c 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php @@ -15,7 +15,7 @@ class Return_ extends Node\Stmt * @param null|Node\Expr $expr Expression * @param array $attributes Additional attributes */ - public function __construct(Node\Expr $expr = null, array $attributes = []) { + public function __construct(?Node\Expr $expr = null, array $attributes = []) { $this->attributes = $attributes; $this->expr = $expr; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php index 29584560d..0cc47b412 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php @@ -20,7 +20,7 @@ class StaticVar extends Node\Stmt * @param array $attributes Additional attributes */ public function __construct( - Expr\Variable $var, Node\Expr $default = null, array $attributes = [] + Expr\Variable $var, ?Node\Expr $default = null, array $attributes = [] ) { $this->attributes = $attributes; $this->var = $var; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php index 7fc158c57..74e004380 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php @@ -21,7 +21,7 @@ class TryCatch extends Node\Stmt * @param null|Finally_ $finally Optional finally node * @param array $attributes Additional attributes */ - public function __construct(array $stmts, array $catches, Finally_ $finally = null, array $attributes = []) { + public function __construct(array $stmts, array $catches, ?Finally_ $finally = null, array $attributes = []) { $this->attributes = $attributes; $this->stmts = $stmts; $this->catches = $catches; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php index c8f45235d..93cecd238 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/UnionType.php @@ -2,17 +2,15 @@ namespace PhpParser\Node; -use PhpParser\NodeAbstract; - -class UnionType extends NodeAbstract +class UnionType extends ComplexType { - /** @var (Identifier|Name)[] Types */ + /** @var (Identifier|Name|IntersectionType)[] Types */ public $types; /** * Constructs a union type. * - * @param (Identifier|Name)[] $types Types + * @param (Identifier|Name|IntersectionType)[] $types Types * @param array $attributes Additional attributes */ public function __construct(array $types, array $attributes = []) { diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php b/api/vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php new file mode 100644 index 000000000..403a24df2 --- /dev/null +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php @@ -0,0 +1,27 @@ +attributes = $attributes; + } + + public function getType(): string { + return 'VariadicPlaceholder'; + } + + public function getSubNodeNames(): array { + return []; + } +} \ No newline at end of file diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php b/api/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php index 197ebc144..e0c7f783a 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/NodeDumper.php @@ -39,7 +39,7 @@ public function __construct(array $options = []) { * * @return string Dumped value */ - public function dump($node, string $code = null) : string { + public function dump($node, ?string $code = null) : string { $this->code = $code; return $this->dumpRecursive($node); } @@ -128,6 +128,9 @@ protected function dumpFlags($flags) { if ($flags & Class_::MODIFIER_FINAL) { $strs[] = 'MODIFIER_FINAL'; } + if ($flags & Class_::MODIFIER_READONLY) { + $strs[] = 'MODIFIER_READONLY'; + } if ($strs) { return implode(' | ', $strs) . ' (' . $flags . ')'; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/api/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php index 79bbc4577..dd2e9ca76 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php @@ -35,7 +35,7 @@ class NameResolver extends NodeVisitorAbstract * @param ErrorHandler|null $errorHandler Error handler * @param array $options Options */ - public function __construct(ErrorHandler $errorHandler = null, array $options = []) { + public function __construct(?ErrorHandler $errorHandler = null, array $options = []) { $this->nameContext = new NameContext($errorHandler ?? new ErrorHandler\Throwing); $this->preserveOriginalNames = $options['preserveOriginalNames'] ?? false; $this->replaceNodes = $options['replaceNodes'] ?? true; @@ -118,6 +118,9 @@ public function enterNode(Node $node) { $this->addNamespacedName($const); } } else if ($node instanceof Stmt\ClassConst) { + if (null !== $node->type) { + $node->type = $this->resolveType($node->type); + } $this->resolveAttrGroups($node); } else if ($node instanceof Stmt\EnumCase) { $this->resolveAttrGroups($node); @@ -161,7 +164,7 @@ public function enterNode(Node $node) { return null; } - private function addAlias(Stmt\UseUse $use, $type, Name $prefix = null) { + private function addAlias(Stmt\UseUse $use, int $type, ?Name $prefix = null) { // Add prefix for group uses $name = $prefix ? Name::concat($prefix, $use->name) : $use->name; // Type is determined either by individual element or whole use declaration @@ -189,7 +192,7 @@ private function resolveType($node) { $node->type = $this->resolveType($node->type); return $node; } - if ($node instanceof Node\UnionType) { + if ($node instanceof Node\UnionType || $node instanceof Node\IntersectionType) { foreach ($node->types as &$type) { $type = $this->resolveType($type); } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Parser.php b/api/vendor/nikic/php-parser/lib/PhpParser/Parser.php index 8956c7671..7236c68e2 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Parser.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Parser.php @@ -14,5 +14,5 @@ interface Parser * @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and * the parser was unable to recover from an error). */ - public function parse(string $code, ErrorHandler $errorHandler = null); + public function parse(string $code, ?ErrorHandler $errorHandler = null); } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php index 77fd1f3fb..083ff465d 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Multiple.php @@ -24,7 +24,7 @@ public function __construct(array $parsers) { $this->parsers = $parsers; } - public function parse(string $code, ErrorHandler $errorHandler = null) { + public function parse(string $code, ?ErrorHandler $errorHandler = null) { if (null === $errorHandler) { $errorHandler = new ErrorHandler\Throwing; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php index 39cdbcc30..59bd1e8cf 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php @@ -17,17 +17,17 @@ */ class Php5 extends \PhpParser\ParserAbstract { - protected $tokenToSymbolMapSize = 393; - protected $actionTableSize = 1069; - protected $gotoTableSize = 580; + protected $tokenToSymbolMapSize = 396; + protected $actionTableSize = 1099; + protected $gotoTableSize = 640; - protected $invalidSymbol = 166; + protected $invalidSymbol = 168; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 405; - protected $numNonLeafStates = 658; + protected $YY2TBLSTATE = 415; + protected $numNonLeafStates = 663; protected $symbolToName = array( "EOF", @@ -67,7 +67,8 @@ class Php5 extends \PhpParser\ParserAbstract "T_BOOLEAN_AND", "'|'", "'^'", - "'&'", + "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", + "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", "T_IS_EQUAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", @@ -151,6 +152,7 @@ class Php5 extends \PhpParser\ParserAbstract "T_PRIVATE", "T_PROTECTED", "T_PUBLIC", + "T_READONLY", "T_VAR", "T_UNSET", "T_ISSET", @@ -199,662 +201,683 @@ class Php5 extends \PhpParser\ParserAbstract ); protected $tokenToSymbol = array( - 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 55, 162, 166, 159, 54, 37, 166, - 157, 158, 52, 49, 8, 50, 51, 53, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 31, 154, - 43, 16, 45, 30, 67, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 69, 166, 161, 36, 166, 160, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 155, 35, 156, 57, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 1, 2, 3, 4, + 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 56, 164, 168, 161, 55, 168, 168, + 159, 160, 53, 50, 8, 51, 52, 54, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 31, 156, + 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 70, 168, 163, 36, 168, 162, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 157, 35, 158, 58, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 32, 33, 34, 38, 39, 40, 41, - 42, 44, 46, 47, 48, 56, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 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, - 124, 125, 126, 127, 128, 163, 129, 130, 131, 164, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 165 + 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, + 41, 42, 43, 45, 47, 48, 49, 57, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 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, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 165, 131, + 132, 133, 166, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 167 ); protected $action = array( - 693, 663, 664, 665, 666, 667, 282, 668, 669, 670, - 706, 707, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 0, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241,-32766,-32766,-32766,-32766,-32766,-32766, - -32766,-32766,-32767,-32767,-32767,-32767, 27, 242, 243,-32766, - -32766,-32766,-32766,-32766, 671,-32766, 333,-32766,-32766,-32766, - -32766,-32766,-32766,-32767,-32767,-32767,-32767,-32767, 672, 673, - 674, 675, 676, 677, 678, 1034, 816, 740, 941, 942, - 943, 940, 939, 938, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 709, 732, 710, 711, 712, - 713, 701, 702, 703, 731, 704, 705, 690, 691, 692, - 694, 695, 696, 734, 735, 736, 737, 738, 739, 697, - 698, 699, 700, 730, 721, 719, 720, 716, 717, 437, - 708, 714, 715, 722, 723, 725, 724, 726, 727, 55, - 56, 417, 57, 58, 718, 729, 728, 28, 59, 60, - -220, 61,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - -32766, 36,-32767,-32767,-32767,-32767, 1034, 35, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118,-32766,-32766,-32766,-32766, 62, 63, 1034, 125, 285, - 292, 64, 748, 65, 290, 291, 66, 67, 68, 69, - 70, 71, 72, 73, 763, 25, 298, 74, 409, 973, - 975, 294, 294, 1086, 1087, 1064, 796, 748, 218, 219, - 220, 465,-32766,-32766,-32766, 742, 864, 817, 54, 807, - 9,-32766,-32766,-32766, 760, 320, 761, 410, 10, 202, - 246, 428, 209,-32766, 933,-32766,-32766,-32766,-32766,-32766, - -32766, 488,-32766, 438,-32766,-32766,-32766,-32766,-32766, 473, - 474, 941, 942, 943, 940, 939, 938,-32766, 475, 476, - 337, 1092, 1093, 1094, 1095, 1089, 1090, 315, 1214, -255, - 747, 1215, -505, 1096, 1091, 888, 889, 1066, 1065, 1067, - 218, 219, 220, 41, 414, 337, 330, 895, 332, 418, - -126, -126, -126, 75, 52, 464, -4, 817, 54, 805, - -224, 202, 40, 21, 419, -126, 466, -126, 467, -126, - 468, -126, 359, 420, 128, 128, 748, 1171, 31, 32, - 421, 422, 1034, 894, 33, 469,-32766,-32766,-32766, 1186, - 351, 352, 470, 471,-32766,-32766,-32766, 309, 472, 865, - 323, 788, 835, 423, 424,-32767,-32767,-32767,-32767, 97, - 98, 99, 100, 101, 615,-32766, 313,-32766,-32766,-32766, - -32766, 354, 1185, 1171, 218, 219, 220, 475, 748, 418, - 819, 629, -126, 297, 915, 464, 817, 54,-32766, 805, - 124, 748, 40, 21, 419, 202, 466, 48, 467, 534, - 468, 129, 429, 420, 337, 341, 888, 889, 31, 32, - 421, 422, 416, 405, 33, 469,-32766,-32766, 311, 298, - 351, 352, 470, 471,-32766,-32766,-32766, 748, 472, 412, - 748, 752, 835, 423, 424, 338, 1066, 1065, 1067, 219, - 220, 919, 1136, 296, 20,-32766, 576,-32766,-32766,-32766, - 742, 341, 342, 413, 429, 1064, 337, 512, 418, 202, - 819, 629, -4, 1034, 464, 817, 54, 49, 805, 337, - 762, 40, 21, 419, 51, 466, 1034, 467, 475, 468, - 340, 748, 420, 120, -205, -205, -205, 31, 32, 421, - 422, 1062,-32766, 33, 469,-32766,-32766,-32766, 744, 351, - 352, 470, 471, 429, 1098, 337, 429, 472, 337, 1034, - 788, 835, 423, 424, 415, 1098,-32766, 802,-32766,-32766, - 102, 103, 104, 1137, 303, 202, 130, 1066, 1065, 1067, - 337, 123, 239, 240, 241, 748, 105, 418, 1205, 819, - 629, -205, 440, 464,-32766,-32766,-32766, 805, 242, 243, - 40, 21, 419, 121, 466, 126, 467, 429, 468, 337, - 122, 420, 1052, -204, -204, -204, 31, 32, 421, 422, - 1034, 745, 33, 469, 220, 759, 817, 54, 351, 352, - 470, 471, 218, 219, 220, 119, 472, 244, 127, 788, - 835, 423, 424, 202,-32766,-32766,-32766, 30, 293, 803, - 79, 80, 81, 202, 798, 210, 632, 99, 100, 101, - 236, 237, 238, 817, 54,-32766, 211, 800, 819, 629, - -204, 34, 1034, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 286, 303, 418, 1034, - 817, 54,-32766,-32766, 464, 218, 219, 220, 805, 105, - 914, 40, 21, 419, 78, 466, 212, 467, 337, 468, - 133, 247, 420, 295, 567, 248, 202, 31, 32, 421, - 633, 242, 243, 33, 469, 418, 249, 817, 54, 351, - 352, 464, 760, -84, 761, 805, 310, 472, 40, 21, - 419,-32766, 466, 640, 467, 643, 468, 447, 22, 420, - 815, 452, 584, 132, 31, 32, 421, 637, 134, 364, - 33, 469, 418, 303, 817, 54, 351, 352, 464, 819, - 629, 828, 805, 43, 472, 40, 21, 419, 44, 466, - 45, 467, 46, 468, 591, 592, 420, 753, 635, 930, - 649, 31, 32, 421, 641, 918, 657, 33, 469, 418, - 105, 817, 54, 351, 352, 464, 819, 629, 47, 805, - 50, 472, 40, 21, 419, 53, 466, 131, 467, 298, - 468, 599, 742, 420,-32766, -274, 516, 570, 31, 32, - 421, 646, 748, 946, 33, 469, 418, 589, 436,-32766, - 351, 352, 464, 819, 629, 623, 805, 836, 472, 40, - 21, 419, 611, 466, -82, 467, 603, 468, 11, 573, - 420, 439, 456, 281, 318, 31, 32, 421, 588, 432, - 321, 33, 469, 418, -414, 458, 322, 351, 352, 464, - 851, 629, 837, 805, -505, 472, 40, 21, 419, 654, - 466, 38, 467, 24, 468, 0, 0, 420, 319, 0, - -405, 0, 31, 32, 421, 245, 312, 314, 33, 469, - -506, 0, 0, 1097, 351, 352, 1143, 819, 629, 0, - 0, 527, 472, 213, 214, 6, 7, 12, 14, 215, - 363, 216, -415, 558, 789, -221, 830, 0, 0, 747, - 0, 0, 0, 207, 39, 652, 653, 758, 806, 814, - 793, 1086, 1087, 808, 819, 629, 213, 214, 867, 1088, - 858, 859, 215, 791, 216, 852, 849, 847, 925, 926, - 923, 813, 797, 799, 801, 804, 207, 922, 756, 757, - 924, 287, 78, 331, 1086, 1087, 353, 630, 634, 636, - 638, 639, 1088, 642, 644, 645, 647, 648, 631, 1142, - 1211, 1213, 755, 834, 754, 833, 1212, 554, 832, 1092, - 1093, 1094, 1095, 1089, 1090, 388, 1048, 824, 1036, 831, - 1037, 1096, 1091, 822, 931, 856, 857, 451, 1210, 1179, - 0, 217, 1177, 1162, 1175, 1077, 906, 1183, 1173, 0, - 554, 26, 1092, 1093, 1094, 1095, 1089, 1090, 388, 29, - 37, 42, 76, 77, 1096, 1091, 208, 284, 288, 289, - 304, 305, 306, 307, 217, 335, 406, 408, 0, -220, - 16, 17, 18, 383, 448, 455, 457, 462, 548, 620, - 1039, 1042, 896, 1102, 1038, 1014, 559, 1013, 1079, 0, - 0, -424, 1032, 0, 1043, 1045, 1044, 1047, 1046, 1061, - 1176, 1161, 1157, 1174, 1076, 1208, 1103, 1156, 595 + 700, 670, 671, 672, 673, 674, 286, 675, 676, 677, + 713, 714, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 0, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244,-32766,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, 245, 246, + 242, 243, 244,-32766,-32766, 678,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766, 1229, 245, 246, 1230, 679, + 680, 681, 682, 683, 684, 685, 899, 900, 747,-32766, + -32766,-32766,-32766,-32766,-32766, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 716, 739, 717, 718, + 719, 720, 708, 709, 710, 738, 711, 712, 697, 698, + 699, 701, 702, 703, 741, 742, 743, 744, 745, 746, + 875, 704, 705, 706, 707, 737, 728, 726, 727, 723, + 724, 1046, 715, 721, 722, 729, 730, 732, 731, 733, + 734, 55, 56, 425, 57, 58, 725, 736, 735, 755, + 59, 60, -226, 61,-32766,-32766,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766, 337,-32767,-32767,-32767,-32767, 29, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 620,-32766,-32766,-32766,-32766, 62, 63, + 1046,-32766,-32766,-32766, 64, 419, 65, 294, 295, 66, + 67, 68, 69, 70, 71, 72, 73, 823, 25, 302, + 74, 418, 984, 986, 669, 668, 1100, 1101, 1078, 755, + 755, 767, 1220, 768, 470,-32766,-32766,-32766, 341, 749, + 824, 54,-32767,-32767,-32767,-32767, 98, 99, 100, 101, + 102, 220, 221, 222, 362, 876,-32766, 27,-32766,-32766, + -32766,-32766,-32766, 1046, 493, 126, 1080, 1079, 1081, 370, + 1068, 930, 207, 478, 479, 952, 953, 954, 951, 950, + 949, 128, 480, 481, 803, 1106, 1107, 1108, 1109, 1103, + 1104, 319, 32, 297, 10, 211, -515, 1110, 1105, 669, + 668, 1080, 1079, 1081, 220, 221, 222, 41, 364, 341, + 334, 421, 336, 426, -128, -128, -128, 313, 1046, 469, + -4, 824, 54, 812, 770, 207, 40, 21, 427, -128, + 471, -128, 472, -128, 473, -128, 1046, 428, 220, 221, + 222,-32766, 33, 34, 429, 361, 327, 52, 35, 474, + -32766,-32766,-32766, 342, 357, 358, 475, 476, 48, 207, + 249, 669, 668, 477, 443, 300, 795, 846, 430, 431, + 28,-32766, 814,-32766,-32766,-32766,-32766,-32766,-32766,-32766, + -32767,-32767,-32767,-32767,-32767, 952, 953, 954, 951, 950, + 949, 422, 755, 424, 426, 826, 634, -128,-32766,-32766, + 469, 824, 54, 288, 812, 1151, 755, 40, 21, 427, + 317, 471, 345, 472, 129, 473, 9, 1186, 428, 769, + 360, 324, 905, 33, 34, 429, 361, 1046, 415, 35, + 474, 944, 1068, 315, 125, 357, 358, 475, 476,-32766, + -32766,-32766, 926, 302, 477, 121, 1068, 759, 846, 430, + 431, 669, 668, 423, 755, 1152, 809, 1046, 480, 766, + -32766, 805,-32766,-32766,-32766,-32766, -261, 127, 347, 436, + 841, 341, 1078, 1200, 426, 446, 826, 634, -4, 807, + 469, 824, 54, 436, 812, 341, 755, 40, 21, 427, + 444, 471, 130, 472, 1068, 473, 346, 767, 428, 768, + -211, -211, -211, 33, 34, 429, 361, 308, 1076, 35, + 474,-32766,-32766,-32766, 1046, 357, 358, 475, 476,-32766, + -32766,-32766, 906, 120, 477, 539, 1068, 795, 846, 430, + 431, 436,-32766, 341,-32766,-32766,-32766, 1046, 480, 810, + -32766, 925,-32766,-32766, 754, 1080, 1079, 1081, 49,-32766, + -32766,-32766, 749, 751, 426, 1201, 826, 634, -211, 30, + 469, 669, 668, 436, 812, 341, 75, 40, 21, 427, + -32766, 471, 1064, 472, 124, 473, 669, 668, 428, 212, + -210, -210, -210, 33, 34, 429, 361, 51, 1186, 35, + 474, 755,-32766,-32766,-32766, 357, 358, 475, 476, 213, + 824, 54, 221, 222, 477, 20, 581, 795, 846, 430, + 431, 220, 221, 222, 755, 222, 247, 78, 79, 80, + 81, 341, 207, 517, 103, 104, 105, 752, 307, 131, + 637, 1068, 207, 341, 207, 122, 826, 634, -210, 36, + 106, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 1112, 307, 346, 436, 214, + 341, 824, 54, 426, 123, 250, 129, 134, 106, 469, + -32766, 572, 1112, 812, 245, 246, 40, 21, 427, 251, + 471, 252, 472, 341, 473, 453, 22, 428, 207, 899, + 900, 638, 33, 34, 429, 824, 54, -86, 35, 474, + 220, 221, 222, 314, 357, 358, 100, 101, 102, 239, + 240, 241, 645, 477, -230, 458, 589, 135, 374, 596, + 597, 207, 760, 640, 648, 642, 941, 654, 929, 662, + 822, 133, 307, 837, 426,-32766, 106, 749, 43, 44, + 469, 45, 442, 46, 812, 826, 634, 40, 21, 427, + 47, 471, 50, 472, 53, 473, 132, 608, 428, 302, + 604, -280,-32766, 33, 34, 429, 824, 54, 426, 35, + 474, 755, 957, -84, 469, 357, 358, 521, 812, 628, + 363, 40, 21, 427, 477, 471, 575, 472, -515, 473, + 847, 616, 428, -423,-32766, 11, 646, 33, 34, 429, + 824, 54, 445, 35, 474, 462, 285, 578, 1111, 357, + 358, 593, 369, 848, 594, 290, 826, 634, 477, 0, + 0, 532, 0, 0, 325, 0, 0, 0, 0, 0, + 651, 0, 0, 0, 322, 326, 0, 0, 0, 426, + 0, 0, 0, 0, 323, 469, 316, 318, -516, 812, + 862, 634, 40, 21, 427, 0, 471, 0, 472, 0, + 473, 1158, 0, 428, 0, -414, 6, 7, 33, 34, + 429, 824, 54, 426, 35, 474, 12, 14, 373, 469, + 357, 358, -424, 812, 563, 754, 40, 21, 427, 477, + 471, 248, 472, 839, 473, 38, 39, 428, 657, 658, + 765, 813, 33, 34, 429, 821, 800, 815, 35, 474, + 215, 216, 878, 869, 357, 358, 217, 870, 218, 798, + 863, 826, 634, 477, 860, 858, 936, 937, 934, 820, + 209, 804, 806, 808, 811, 933, 763, 764, 1100, 1101, + 935, 659, 78, 335, 426, 359, 1102, 635, 639, 641, + 469, 643, 644, 647, 812, 826, 634, 40, 21, 427, + 649, 471, 650, 472, 652, 473, 653, 636, 428, 796, + 1226, 1228, 762, 33, 34, 429, 215, 216, 845, 35, + 474, 761, 217, 844, 218, 357, 358, 1227, 843, 1060, + 831, 1048, 842, 1049, 477, 559, 209, 1106, 1107, 1108, + 1109, 1103, 1104, 398, 1100, 1101, 829, 942, 867, 1110, + 1105, 868, 1102, 457, 1225, 1194, 1192, 1177, 1157, 219, + 1190, 1091, 917, 1198, 1188, 0, 826, 634, 24, -433, + 26, 31, 37, 42, 76, 77, 210, 287, 292, 293, + 308, 309, 310, 311, 339, 356, 416, 0, -227, -226, + 16, 17, 18, 393, 454, 461, 463, 467, 553, 625, + 1051, 559, 1054, 1106, 1107, 1108, 1109, 1103, 1104, 398, + 907, 1116, 1050, 1026, 564, 1110, 1105, 1025, 1093, 1055, + 0, 1044, 0, 1057, 1056, 219, 1059, 1058, 1075, 0, + 1191, 1176, 1172, 1189, 1090, 1223, 1117, 1171, 600 ); protected $actionCheck = array( 2, 3, 4, 5, 6, 7, 14, 9, 10, 11, 12, 13, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 0, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 9, 10, 11, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 8, 68, 69, 33, - 34, 35, 36, 37, 56, 30, 8, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 70, 71, - 72, 73, 74, 75, 76, 13, 1, 79, 115, 116, - 117, 118, 119, 120, 86, 87, 88, 89, 90, 91, + 41, 42, 0, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 9, 10, 11, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 69, 70, + 53, 54, 55, 9, 10, 57, 30, 116, 32, 33, + 34, 35, 36, 37, 38, 80, 69, 70, 83, 71, + 72, 73, 74, 75, 76, 77, 135, 136, 80, 33, + 34, 35, 36, 37, 38, 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, 31, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 3, - 4, 5, 6, 7, 146, 147, 148, 8, 12, 13, - 158, 15, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 14, 43, 44, 45, 46, 13, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 33, 34, 35, 36, 49, 50, 13, 8, 8, - 37, 55, 81, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 156, 69, 70, 71, 72, 58, - 59, 37, 37, 77, 78, 79, 154, 81, 9, 10, - 11, 85, 9, 10, 11, 79, 31, 1, 2, 154, - 107, 9, 10, 11, 105, 112, 107, 126, 8, 30, - 31, 105, 8, 30, 121, 32, 33, 34, 35, 36, - 37, 115, 30, 155, 32, 33, 34, 35, 36, 123, - 124, 115, 116, 117, 118, 119, 120, 115, 132, 133, - 159, 135, 136, 137, 138, 139, 140, 141, 79, 156, - 151, 82, 131, 147, 148, 133, 134, 151, 152, 153, - 9, 10, 11, 157, 8, 159, 160, 158, 162, 73, - 74, 75, 76, 150, 69, 79, 0, 1, 2, 83, - 158, 30, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 8, 97, 150, 150, 81, 81, 102, 103, - 104, 105, 13, 158, 108, 109, 9, 10, 11, 158, - 114, 115, 116, 117, 9, 10, 11, 8, 122, 154, - 8, 125, 126, 127, 128, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 79, 30, 131, 32, 33, 34, - 35, 8, 1, 81, 9, 10, 11, 132, 81, 73, - 154, 155, 156, 37, 154, 79, 1, 2, 115, 83, - 155, 81, 86, 87, 88, 30, 90, 69, 92, 80, - 94, 155, 157, 97, 159, 159, 133, 134, 102, 103, - 104, 105, 8, 107, 108, 109, 9, 10, 112, 70, - 114, 115, 116, 117, 9, 10, 11, 81, 122, 8, - 81, 125, 126, 127, 128, 8, 151, 152, 153, 10, - 11, 156, 161, 8, 158, 30, 84, 32, 33, 34, - 79, 159, 146, 8, 157, 79, 159, 84, 73, 30, - 154, 155, 156, 13, 79, 1, 2, 69, 83, 159, - 156, 86, 87, 88, 69, 90, 13, 92, 132, 94, - 69, 81, 97, 155, 99, 100, 101, 102, 103, 104, - 105, 115, 9, 108, 109, 9, 10, 11, 79, 114, - 115, 116, 117, 157, 142, 159, 157, 122, 159, 13, - 125, 126, 127, 128, 8, 142, 30, 154, 32, 33, - 52, 53, 54, 158, 56, 30, 155, 151, 152, 153, - 159, 14, 52, 53, 54, 81, 68, 73, 84, 154, - 155, 156, 131, 79, 33, 34, 35, 83, 68, 69, - 86, 87, 88, 155, 90, 155, 92, 157, 94, 159, - 155, 97, 158, 99, 100, 101, 102, 103, 104, 105, - 13, 152, 108, 109, 11, 154, 1, 2, 114, 115, - 116, 117, 9, 10, 11, 16, 122, 14, 31, 125, - 126, 127, 128, 30, 9, 10, 11, 143, 144, 154, - 9, 10, 11, 30, 154, 16, 31, 49, 50, 51, - 49, 50, 51, 1, 2, 30, 16, 154, 154, 155, - 156, 30, 13, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 37, 56, 73, 13, - 1, 2, 33, 34, 79, 9, 10, 11, 83, 68, - 154, 86, 87, 88, 155, 90, 16, 92, 159, 94, - 155, 16, 97, 37, 159, 16, 30, 102, 103, 104, - 31, 68, 69, 108, 109, 73, 16, 1, 2, 114, - 115, 79, 105, 31, 107, 83, 31, 122, 86, 87, - 88, 33, 90, 31, 92, 31, 94, 74, 75, 97, - 31, 74, 75, 31, 102, 103, 104, 31, 100, 101, - 108, 109, 73, 56, 1, 2, 114, 115, 79, 154, - 155, 37, 83, 69, 122, 86, 87, 88, 69, 90, - 69, 92, 69, 94, 110, 111, 97, 154, 155, 154, - 155, 102, 103, 104, 31, 154, 155, 108, 109, 73, - 68, 1, 2, 114, 115, 79, 154, 155, 69, 83, - 69, 122, 86, 87, 88, 69, 90, 69, 92, 70, - 94, 76, 79, 97, 84, 81, 84, 89, 102, 103, - 104, 31, 81, 81, 108, 109, 73, 112, 88, 115, - 114, 115, 79, 154, 155, 91, 83, 126, 122, 86, - 87, 88, 93, 90, 96, 92, 95, 94, 96, 99, - 97, 96, 96, 96, 129, 102, 103, 104, 99, 105, - 113, 108, 109, 73, 145, 105, 129, 114, 115, 79, - 154, 155, 126, 83, 131, 122, 86, 87, 88, 156, - 90, 154, 92, 157, 94, -1, -1, 97, 130, -1, - 145, -1, 102, 103, 104, 31, 131, 131, 108, 109, - 131, -1, -1, 142, 114, 115, 142, 154, 155, -1, - -1, 149, 122, 49, 50, 145, 145, 145, 145, 55, - 145, 57, 145, 149, 156, 158, 150, -1, -1, 151, - -1, -1, -1, 69, 154, 154, 154, 154, 154, 154, - 154, 77, 78, 154, 154, 155, 49, 50, 154, 85, - 154, 154, 55, 154, 57, 154, 154, 154, 154, 154, - 154, 154, 154, 154, 154, 154, 69, 154, 154, 154, - 154, 159, 155, 155, 77, 78, 155, 155, 155, 155, - 155, 155, 85, 155, 155, 155, 155, 155, 155, 162, - 156, 156, 156, 156, 156, 156, 156, 133, 156, 135, - 136, 137, 138, 139, 140, 141, 156, 156, 156, 156, - 156, 147, 148, 156, 156, 156, 156, 156, 156, 156, - -1, 157, 156, 156, 156, 156, 156, 156, 156, -1, - 133, 157, 135, 136, 137, 138, 139, 140, 141, 157, - 157, 157, 157, 157, 147, 148, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, -1, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, -1, - -1, 160, 160, -1, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161 + 31, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 13, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 3, 4, 5, 6, 7, 148, 149, 150, 82, + 12, 13, 160, 15, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 8, 44, 45, 46, 47, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 80, 33, 34, 35, 36, 50, 51, + 13, 9, 10, 11, 56, 128, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, + 72, 73, 59, 60, 37, 38, 78, 79, 80, 82, + 82, 106, 85, 108, 86, 9, 10, 11, 161, 80, + 1, 2, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 9, 10, 11, 106, 156, 30, 8, 32, 33, + 34, 35, 36, 13, 116, 8, 153, 154, 155, 8, + 122, 158, 30, 125, 126, 116, 117, 118, 119, 120, + 121, 31, 134, 135, 156, 137, 138, 139, 140, 141, + 142, 143, 145, 146, 8, 8, 133, 149, 150, 37, + 38, 153, 154, 155, 9, 10, 11, 159, 8, 161, + 162, 8, 164, 74, 75, 76, 77, 8, 13, 80, + 0, 1, 2, 84, 158, 30, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 13, 98, 9, 10, + 11, 9, 103, 104, 105, 106, 8, 70, 109, 110, + 9, 10, 11, 8, 115, 116, 117, 118, 70, 30, + 31, 37, 38, 124, 31, 8, 127, 128, 129, 130, + 8, 30, 156, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 116, 117, 118, 119, 120, + 121, 8, 82, 8, 74, 156, 157, 158, 33, 34, + 80, 1, 2, 8, 84, 163, 82, 87, 88, 89, + 133, 91, 70, 93, 152, 95, 108, 82, 98, 158, + 8, 113, 160, 103, 104, 105, 106, 13, 108, 109, + 110, 123, 122, 113, 157, 115, 116, 117, 118, 9, + 10, 11, 156, 71, 124, 157, 122, 127, 128, 129, + 130, 37, 38, 8, 82, 160, 156, 13, 134, 156, + 30, 156, 32, 33, 34, 35, 158, 157, 148, 159, + 122, 161, 80, 1, 74, 133, 156, 157, 158, 156, + 80, 1, 2, 159, 84, 161, 82, 87, 88, 89, + 157, 91, 157, 93, 122, 95, 161, 106, 98, 108, + 100, 101, 102, 103, 104, 105, 106, 159, 116, 109, + 110, 9, 10, 11, 13, 115, 116, 117, 118, 9, + 10, 11, 160, 16, 124, 81, 122, 127, 128, 129, + 130, 159, 30, 161, 32, 33, 34, 13, 134, 156, + 30, 156, 32, 33, 153, 153, 154, 155, 70, 9, + 10, 11, 80, 80, 74, 160, 156, 157, 158, 14, + 80, 37, 38, 159, 84, 161, 152, 87, 88, 89, + 30, 91, 160, 93, 14, 95, 37, 38, 98, 16, + 100, 101, 102, 103, 104, 105, 106, 70, 82, 109, + 110, 82, 33, 34, 35, 115, 116, 117, 118, 16, + 1, 2, 10, 11, 124, 160, 85, 127, 128, 129, + 130, 9, 10, 11, 82, 11, 14, 157, 9, 10, + 11, 161, 30, 85, 53, 54, 55, 154, 57, 157, + 31, 122, 30, 161, 30, 157, 156, 157, 158, 30, + 69, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 144, 57, 161, 159, 16, + 161, 1, 2, 74, 157, 16, 152, 157, 69, 80, + 116, 161, 144, 84, 69, 70, 87, 88, 89, 16, + 91, 16, 93, 161, 95, 75, 76, 98, 30, 135, + 136, 31, 103, 104, 105, 1, 2, 31, 109, 110, + 9, 10, 11, 31, 115, 116, 50, 51, 52, 50, + 51, 52, 31, 124, 160, 75, 76, 101, 102, 111, + 112, 30, 156, 157, 31, 31, 156, 157, 156, 157, + 31, 31, 57, 38, 74, 33, 69, 80, 70, 70, + 80, 70, 89, 70, 84, 156, 157, 87, 88, 89, + 70, 91, 70, 93, 70, 95, 70, 96, 98, 71, + 77, 82, 85, 103, 104, 105, 1, 2, 74, 109, + 110, 82, 82, 97, 80, 115, 116, 85, 84, 92, + 106, 87, 88, 89, 124, 91, 90, 93, 133, 95, + 128, 94, 98, 147, 116, 97, 31, 103, 104, 105, + 1, 2, 97, 109, 110, 97, 97, 100, 144, 115, + 116, 100, 106, 128, 113, 161, 156, 157, 124, -1, + -1, 151, -1, -1, 114, -1, -1, -1, -1, -1, + 31, -1, -1, -1, 131, 131, -1, -1, -1, 74, + -1, -1, -1, -1, 132, 80, 133, 133, 133, 84, + 156, 157, 87, 88, 89, -1, 91, -1, 93, -1, + 95, 144, -1, 98, -1, 147, 147, 147, 103, 104, + 105, 1, 2, 74, 109, 110, 147, 147, 147, 80, + 115, 116, 147, 84, 151, 153, 87, 88, 89, 124, + 91, 31, 93, 152, 95, 156, 156, 98, 156, 156, + 156, 156, 103, 104, 105, 156, 156, 156, 109, 110, + 50, 51, 156, 156, 115, 116, 56, 156, 58, 156, + 156, 156, 157, 124, 156, 156, 156, 156, 156, 156, + 70, 156, 156, 156, 156, 156, 156, 156, 78, 79, + 156, 158, 157, 157, 74, 157, 86, 157, 157, 157, + 80, 157, 157, 157, 84, 156, 157, 87, 88, 89, + 157, 91, 157, 93, 157, 95, 157, 157, 98, 158, + 158, 158, 158, 103, 104, 105, 50, 51, 158, 109, + 110, 158, 56, 158, 58, 115, 116, 158, 158, 158, + 158, 158, 158, 158, 124, 135, 70, 137, 138, 139, + 140, 141, 142, 143, 78, 79, 158, 158, 158, 149, + 150, 158, 86, 158, 158, 158, 158, 158, 164, 159, + 158, 158, 158, 158, 158, -1, 156, 157, 159, 162, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, -1, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 135, 160, 137, 138, 139, 140, 141, 142, 143, + 160, 160, 160, 160, 160, 149, 150, 160, 160, 163, + -1, 162, -1, 163, 163, 159, 163, 163, 163, -1, + 163, 163, 163, 163, 163, 163, 163, 163, 163 ); protected $actionBase = array( - 0, 226, 306, 385, 464, 285, 246, 246, 786, -2, - -2, 146, -2, -2, -2, 649, 723, 760, 723, 575, - 686, 612, 612, 612, 175, 153, 153, 153, 174, 890, - 319, 62, 450, 463, 557, 609, 636, 496, 496, 496, - 496, 136, 136, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 195, 75, 777, 517, 147, - 778, 779, 780, 886, 727, 887, 832, 833, 682, 836, - 837, 838, 839, 840, 831, 841, 907, 842, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, - 483, 573, 365, 209, 281, 407, 646, 646, 646, 646, - 646, 646, 646, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 429, 834, 585, 585, 585, 563, 867, 867, 867, - 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, - 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, - 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, - 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, - 495, 486, -21, -21, 415, 668, 335, 619, 222, 511, - 213, 25, 25, 25, 25, 25, 148, 16, 4, 4, - 4, 4, 151, 312, 312, 312, 312, 119, 119, 119, - 119, 346, 346, 123, 245, 245, 349, 400, 297, 297, - 297, 297, 297, 297, 297, 297, 297, 297, 111, 558, - 558, 561, 561, 310, 152, 152, 152, 152, 704, 273, - 273, 129, 371, 371, 371, 373, 734, 797, 376, 376, - 376, 376, 376, 376, 468, 468, 468, 480, 480, 480, - 702, 587, 454, 587, 454, 684, 748, 509, 748, 700, - 199, 515, 803, 398, 720, 829, 729, 830, 601, 747, - 235, 782, 724, 419, 782, 633, 637, 634, 419, 419, - 715, 98, 863, 292, 195, 595, 405, 667, 781, 421, - 732, 784, 363, 445, 411, 593, 328, 286, 744, 785, - 888, 889, 181, 739, 667, 667, 667, 139, 362, 328, - -8, 613, 613, 613, 613, 48, 613, 613, 613, 613, - 314, 230, 506, 404, 783, 703, 703, 712, 694, 852, - 696, 696, 703, 711, 703, 712, 694, 854, 854, 854, - 854, 703, 694, 703, 703, 703, 696, 696, 694, 709, - 696, 38, 694, 695, 707, 707, 854, 751, 752, 703, - 703, 728, 696, 696, 696, 728, 694, 854, 685, 746, - 234, 696, 854, 665, 711, 665, 703, 685, 694, 665, - 711, 711, 665, 21, 662, 664, 853, 855, 869, 792, - 681, 716, 861, 862, 856, 860, 844, 679, 753, 754, - 569, 669, 671, 673, 699, 740, 701, 735, 724, 692, - 692, 692, 713, 741, 713, 692, 692, 692, 692, 692, - 692, 692, 692, 893, 689, 745, 736, 710, 755, 589, - 600, 793, 731, 738, 882, 875, 891, 892, 863, 880, - 713, 894, 697, 180, 650, 864, 693, 788, 713, 865, - 713, 794, 713, 883, 804, 708, 805, 806, 692, 884, - 895, 896, 897, 898, 899, 900, 901, 902, 706, 903, - 756, 698, 876, 339, 859, 715, 742, 725, 791, 759, - 807, 342, 904, 808, 713, 713, 795, 787, 713, 796, - 764, 750, 872, 766, 877, 905, 731, 726, 878, 713, - 730, 809, 906, 342, 672, 705, 737, 721, 767, 870, - 885, 868, 798, 655, 659, 810, 812, 820, 674, 769, - 873, 874, 871, 771, 799, 670, 800, 719, 821, 801, - 866, 772, 822, 823, 881, 718, 743, 717, 722, 714, - 802, 824, 879, 773, 774, 775, 827, 776, 828, 0, + 0, 229, 310, 390, 470, 103, 325, 325, 784, -2, + -2, 149, -2, -2, -2, 660, 765, 799, 765, 589, + 694, 870, 870, 870, 252, 404, 404, 404, 514, 177, + 177, 918, 434, 118, 295, 313, 240, 491, 491, 491, + 491, 138, 138, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 89, 206, 773, 550, + 535, 775, 776, 777, 912, 709, 913, 856, 857, 700, + 858, 859, 862, 863, 864, 855, 865, 935, 866, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 322, 592, 285, 319, 232, 44, 691, 691, 691, + 691, 691, 691, 691, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 582, 530, 530, 530, 594, 860, 658, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 500, -21, -21, 492, 702, 420, 355, + 216, 549, 151, 26, 26, 331, 331, 331, 331, 331, + 46, 46, 5, 5, 5, 5, 153, 188, 188, 188, + 188, 121, 121, 121, 121, 314, 314, 394, 394, 362, + 300, 298, 499, 499, 499, 499, 499, 499, 499, 499, + 499, 499, 67, 656, 656, 659, 659, 522, 554, 554, + 554, 554, 679, -59, -59, 381, 462, 462, 462, 528, + 717, 854, 382, 382, 382, 382, 382, 382, 561, 561, + 561, -3, -3, -3, 692, 115, 137, 115, 137, 678, + 732, 450, 732, 338, 677, -15, 510, 810, 468, 707, + 850, 711, 853, 572, 735, 267, 529, 654, 674, 463, + 529, 529, 529, 529, 654, 610, 640, 608, 463, 529, + 463, 718, 323, 496, 89, 570, 507, 675, 778, 293, + 670, 780, 290, 373, 332, 566, 278, 435, 733, 781, + 914, 917, 385, 715, 675, 675, 675, 352, 511, 278, + -8, 605, 605, 605, 605, 156, 605, 605, 605, 605, + 251, 276, 375, 402, 779, 657, 657, 690, 872, 869, + 869, 657, 689, 657, 690, 874, 874, 874, 874, 657, + 657, 657, 657, 869, 869, 869, 688, 869, 239, 703, + 704, 704, 874, 742, 743, 657, 657, 712, 869, 869, + 869, 712, 695, 874, 701, 741, 277, 869, 874, 672, + 689, 672, 657, 701, 672, 689, 689, 672, 22, 666, + 668, 873, 875, 887, 790, 662, 685, 879, 880, 876, + 878, 871, 699, 744, 745, 497, 669, 671, 673, 680, + 719, 682, 713, 674, 667, 667, 667, 655, 720, 655, + 667, 667, 667, 667, 667, 667, 667, 667, 916, 646, + 731, 714, 653, 749, 553, 573, 791, 664, 811, 900, + 893, 867, 919, 881, 898, 655, 920, 739, 247, 643, + 882, 783, 786, 655, 883, 655, 792, 655, 902, 812, + 686, 813, 814, 667, 910, 921, 923, 924, 925, 927, + 928, 929, 930, 684, 931, 750, 696, 894, 299, 877, + 718, 729, 705, 788, 751, 820, 328, 932, 823, 655, + 655, 794, 785, 655, 795, 756, 740, 890, 757, 895, + 933, 664, 708, 896, 655, 706, 825, 934, 328, 681, + 683, 888, 661, 761, 886, 911, 885, 796, 649, 663, + 829, 830, 831, 693, 763, 891, 892, 889, 764, 803, + 665, 805, 697, 832, 807, 884, 768, 833, 834, 899, + 676, 730, 710, 698, 687, 809, 835, 897, 769, 770, + 771, 848, 772, 849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, - 136, 136, 136, -2, -2, -2, -2, 0, 0, -2, - 0, 0, 0, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 0, - 0, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 591, 591, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 591, -21, - -21, -21, -21, 591, -21, -21, -21, -21, -21, -21, - -21, 591, 591, 591, 591, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 591, 591, -21, - 376, 591, 591, 591, -21, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 376, 376, 376, -21, 591, - 0, 0, 591, -21, 591, -21, 591, -21, 591, 591, - 591, 591, 591, 591, -21, -21, -21, -21, -21, -21, - 0, 468, 468, 468, 468, -21, -21, -21, -21, 376, - 376, -37, 376, 376, 376, 376, 376, 376, 376, 376, - 376, 376, 376, 376, 376, 376, 376, 468, 468, 480, - 480, 376, 376, 376, 376, 376, -37, 376, 376, 419, - 711, 711, 711, 454, 454, 454, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 454, 419, - 0, 419, 0, 376, 419, 711, 419, 454, 711, 711, - 419, 696, 618, 618, 618, 618, 342, 328, 0, 711, - 711, 0, 711, 0, 0, 0, 0, 0, 696, 0, - 703, 0, 0, 0, 0, 692, 180, 0, 725, 427, - 0, 0, 0, 0, 0, 0, 725, 427, 435, 435, - 0, 706, 692, 692, 692, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 138, 138, 138, 138, -2, -2, + -2, -2, 0, 0, -2, 0, 0, 0, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 0, 0, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 599, -21, -21, -21, -21, 599, + -21, -21, -21, -21, -21, -21, -21, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 599, -21, 599, 599, 599, -21, + 382, -21, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 599, 0, 0, 599, + -21, 599, -21, 599, -21, -21, 599, 599, 599, 599, + 599, 599, 599, -21, -21, -21, -21, -21, -21, 0, + 561, 561, 561, 561, -21, -21, -21, -21, 382, 382, + 382, 382, 382, 382, 259, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 561, 561, -3, -3, + 382, 382, 382, 382, 382, 259, 382, 382, 463, 689, + 689, 689, 137, 137, 137, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 137, 463, 0, + 463, 0, 382, 463, 689, 463, 657, 137, 689, 689, + 463, 869, 616, 616, 616, 616, 328, 278, 0, 0, + 689, 689, 0, 0, 0, 0, 0, 689, 0, 0, + 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, + 667, 247, 0, 705, 335, 0, 0, 0, 0, 0, + 0, 705, 335, 347, 347, 0, 684, 667, 667, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 342 + 0, 0, 0, 0, 0, 0, 0, 328 ); protected $actionDefault = array( 3,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 534, 534, 489,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 293, 293, 293, - 32767,32767,32767, 522, 522, 522, 522, 522, 522, 522, - 522, 522, 522, 522,32767,32767,32767,32767,32767,32767, - 376,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767, 544, 544, 499,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 299, 299, 299, + 32767,32767,32767, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532,32767,32767,32767,32767,32767,32767, + 383,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 382, 539, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 357, 358, - 360, 361, 292, 542, 523, 241, 383, 538, 291, 243, - 321, 493,32767,32767,32767, 323, 120, 252, 197, 492, - 123, 290, 228, 375, 377, 322, 297, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 296, 449,32767, 354, 353, 352, 451, 486, 486, 489, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 389, + 549,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 364, + 365, 367, 368, 298, 552, 533, 247, 390, 548, 297, + 249, 327, 503,32767,32767,32767, 329, 122, 258, 203, + 502, 125, 296, 234, 382, 384, 328, 303, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 302, 458, 361, 360, 359, 460,32767, 459, 496, + 496, 499,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 450, 319, 477, 476, 320, 447, 324, 448, 326, 452, - 325, 342, 343, 340, 341, 344, 454, 453, 470, 471, - 468, 469, 295, 345, 346, 347, 348, 472, 473, 474, - 475,32767,32767, 276, 533, 533,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 333, - 334, 461, 462,32767, 232, 232, 232, 232, 277, 232, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 328, 329, 327, 456, 457, 455, - 423,32767,32767,32767, 425,32767,32767,32767,32767,32767, - 32767,32767,32767, 494,32767,32767,32767,32767,32767, 507, - 412,32767, 404,32767,32767, 216, 218, 165,32767,32767, - 480,32767,32767,32767,32767,32767, 512, 338,32767,32767, - 114,32767,32767,32767, 549,32767, 507,32767, 114,32767, - 32767,32767,32767, 351, 330, 331, 332,32767,32767, 511, - 505, 464, 465, 466, 467,32767, 458, 459, 460, 463, - 32767,32767,32767,32767,32767,32767,32767,32767, 169, 420, - 426, 426,32767,32767,32767,32767, 169,32767,32767,32767, - 32767,32767, 169,32767,32767,32767, 510, 509, 169,32767, - 405, 488, 169, 182, 180, 180,32767, 202, 202,32767, - 32767, 184, 481, 500,32767, 184, 169,32767, 393, 171, - 488,32767,32767, 234,32767, 234,32767, 393, 169, 234, - 32767,32767, 234,32767, 406, 430,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 372, 373, 483, 496,32767, 497,32767, 404, 336, - 337, 339, 316,32767, 318, 362, 363, 364, 365, 366, - 367, 368, 370,32767, 410,32767, 413,32767,32767,32767, - 251,32767, 547,32767,32767, 300, 547,32767,32767,32767, - 541,32767,32767, 294,32767,32767,32767,32767, 247,32767, - 167,32767, 531,32767, 548,32767, 505,32767, 335,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 506,32767, - 32767,32767,32767, 223,32767, 443,32767, 114,32767,32767, - 32767, 183,32767,32767, 298, 242,32767,32767, 540,32767, - 32767,32767,32767,32767,32767,32767,32767, 112,32767, 168, - 32767,32767,32767, 185,32767,32767, 505,32767,32767,32767, - 32767,32767,32767,32767, 289,32767,32767,32767,32767,32767, - 32767,32767, 505,32767,32767, 227,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 406,32767, 270,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 125, - 125, 3, 125, 125, 254, 3, 254, 125, 254, 254, - 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 210, 213, 202, 202, 162, 125, 125, 262 + 32767,32767,32767, 325, 487, 486, 326, 456, 330, 457, + 333, 461, 464, 331, 332, 349, 350, 347, 348, 351, + 462, 463, 480, 481, 478, 479, 301, 352, 353, 354, + 355, 482, 483, 484, 485,32767,32767, 543, 543,32767, + 32767, 282,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 340, 341, 471, 472,32767, 238, 238, + 238, 238, 283, 238,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 335, 336, + 334, 466, 467, 465, 432,32767,32767,32767, 434,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 504,32767, + 32767,32767,32767,32767, 517, 421, 171,32767, 413,32767, + 171, 171, 171, 171,32767, 222, 224, 167,32767, 171, + 32767, 490,32767,32767,32767,32767, 522, 345,32767,32767, + 116,32767,32767,32767, 559,32767, 517,32767, 116,32767, + 32767,32767,32767, 358, 337, 338, 339,32767,32767, 521, + 515, 474, 475, 476, 477,32767, 468, 469, 470, 473, + 32767,32767,32767,32767,32767,32767,32767,32767, 429, 435, + 435,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 520, 519,32767, 414, 498, 188, + 186, 186,32767, 208, 208,32767,32767, 190, 491, 510, + 32767, 190, 173,32767, 400, 175, 498,32767,32767, 240, + 32767, 240,32767, 400, 240,32767,32767, 240,32767, 415, + 439,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 379, 380, 493, 506, + 32767, 507,32767, 413, 343, 344, 346, 322,32767, 324, + 369, 370, 371, 372, 373, 374, 375, 377,32767, 419, + 32767, 422,32767,32767,32767, 257,32767, 557,32767,32767, + 306, 557,32767,32767,32767, 551,32767,32767, 300,32767, + 32767,32767,32767, 253,32767, 169,32767, 541,32767, 558, + 32767, 515,32767, 342,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 516,32767,32767,32767,32767, 229,32767, + 452,32767, 116,32767,32767,32767, 189,32767,32767, 304, + 248,32767,32767, 550,32767,32767,32767,32767,32767,32767, + 32767,32767, 114,32767, 170,32767,32767,32767, 191,32767, + 32767, 515,32767,32767,32767,32767,32767,32767,32767, 295, + 32767,32767,32767,32767,32767,32767,32767, 515,32767,32767, + 233,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 415,32767, 276,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 127, 127, 3, 127, 127, 260, + 3, 260, 127, 260, 260, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 216, 219, 208, 208, 164, + 127, 127, 268 ); protected $goto = array( - 165, 139, 139, 139, 165, 143, 146, 140, 141, 142, - 148, 186, 167, 162, 162, 162, 162, 143, 143, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 137, 158, 159, 160, 161, 183, 138, 184, 489, 490, - 367, 491, 495, 496, 497, 498, 499, 500, 501, 502, - 959, 163, 144, 145, 147, 170, 175, 185, 203, 251, - 254, 256, 258, 260, 261, 262, 263, 264, 265, 273, - 274, 275, 276, 299, 300, 324, 325, 326, 384, 385, - 386, 538, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 149, 150, 151, 166, - 152, 168, 153, 204, 169, 154, 155, 156, 205, 157, - 135, 616, 556, 574, 578, 622, 624, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 1099, 515, 345, 571, 600, 1099, 1099, 1099, 1099, 1099, - 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, - 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, - 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, - 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 504, 1202, - 1202, 1075, 1074, 504, 540, 541, 542, 543, 544, 545, - 546, 547, 549, 582, 3, 4, 173, 1202, 844, 844, - 844, 844, 839, 845, 176, 177, 178, 391, 392, 393, - 394, 172, 201, 206, 250, 255, 257, 259, 266, 267, - 268, 269, 270, 271, 277, 278, 279, 280, 301, 302, - 327, 328, 329, 396, 397, 398, 399, 174, 179, 252, - 253, 180, 181, 182, 493, 493, 750, 493, 493, 493, - 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, - 493, 505, 929, 442, 444, 627, 505, 751, 779, 1100, - 610, 927, 880, 880, 765, 1190, 1190, 1168, 555, 775, - 764, 743, 1168, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 390, 602, 746, 532, - 532, 564, 528, 530, 530, 492, 494, 520, 536, 565, - 568, 579, 586, 810, 606, 506, 346, 347, 609, 850, - 506, 365, 537, 746, 533, 746, 563, 430, 430, 375, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 1063, 581, 957, 596, 597, 1063, - 887, 887, 887, 887, 1160, 887, 887, 1182, 1182, 1182, - 376, 376, 376, 749, 1063, 1063, 1063, 1063, 1063, 1063, - 334, 1056, 317, 374, 374, 374, 866, 848, 846, 848, - 650, 461, 507, 875, 870, 376, 1194, 368, 374, 389, - 374, 898, 374, 1080, 583, 348, 404, 374, 1216, 590, - 601, 1017, 19, 15, 361, 1148, 1187, 525, 936, 904, - 510, 526, 904, 651, 551, 381, 1201, 1201, 587, 1007, - 550, 877, 607, 608, 873, 612, 613, 619, 621, 626, - 628, 23, 884, 937, 1201, 336, 598, 1059, 1060, 1204, - 378, 1056, 557, 539, 893, 768, 766, 379, 514, 902, - 509, 524, 655, 1057, 1159, 1057, 776, 509, 1167, 524, - 514, 514, 1058, 1167, 1049, 907, 508, 1054, 511, 433, - 434, 510, 1184, 1184, 1184, 854, 445, 945, 569, 1145, - 459, 362, 0, 0, 773, 1209, 0, 518, 0, 519, - 0, 529, 0, 0, 0, 0, 0, 1166, 0, 0, - 0, 771, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 605, 0, 0, 0, 0, 13, 1055, 614 + 166, 140, 140, 140, 166, 187, 168, 144, 147, 141, + 142, 143, 149, 163, 163, 163, 163, 144, 144, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 138, 159, 160, 161, 162, 184, 139, 185, 494, 495, + 377, 496, 500, 501, 502, 503, 504, 505, 506, 507, + 970, 164, 145, 146, 148, 171, 176, 186, 203, 253, + 256, 258, 260, 263, 264, 265, 266, 267, 268, 269, + 277, 278, 279, 280, 303, 304, 328, 329, 330, 394, + 395, 396, 543, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 150, 151, 152, + 167, 153, 169, 154, 204, 170, 155, 156, 157, 205, + 158, 136, 621, 561, 757, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 1113, + 629, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 758, 520, 531, 509, 656, + 556, 1183, 750, 509, 592, 786, 1183, 888, 612, 613, + 884, 617, 618, 624, 626, 631, 633, 817, 855, 855, + 855, 855, 850, 856, 174, 891, 891, 1205, 1205, 177, + 178, 179, 401, 402, 403, 404, 173, 202, 206, 208, + 257, 259, 261, 262, 270, 271, 272, 273, 274, 275, + 281, 282, 283, 284, 305, 306, 331, 332, 333, 406, + 407, 408, 409, 175, 180, 254, 255, 181, 182, 183, + 498, 498, 498, 498, 498, 498, 861, 498, 498, 498, + 498, 498, 498, 498, 498, 498, 498, 510, 586, 538, + 601, 602, 510, 545, 546, 547, 548, 549, 550, 551, + 552, 554, 587, 1209, 560, 350, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, + 400, 607, 537, 537, 569, 533, 909, 535, 535, 497, + 499, 525, 541, 570, 573, 584, 591, 298, 296, 296, + 296, 298, 289, 299, 611, 378, 511, 614, 595, 947, + 375, 511, 437, 437, 437, 437, 437, 437, 1163, 437, + 437, 437, 437, 437, 437, 437, 437, 437, 437, 1077, + 948, 338, 1175, 321, 1077, 898, 898, 898, 898, 606, + 898, 898, 1217, 1217, 1202, 753, 576, 605, 756, 1077, + 1077, 1077, 1077, 1077, 1077, 1069, 384, 384, 384, 391, + 1217, 877, 859, 857, 859, 655, 466, 512, 886, 881, + 753, 384, 753, 384, 968, 384, 895, 385, 588, 353, + 414, 384, 1231, 1019, 542, 1197, 1197, 1197, 568, 1094, + 386, 386, 386, 904, 915, 515, 1029, 19, 15, 372, + 389, 915, 940, 448, 450, 632, 340, 1216, 1216, 1114, + 615, 938, 840, 555, 775, 386, 913, 1070, 1073, 1074, + 399, 1069, 1182, 660, 23, 1216, 773, 1182, 544, 603, + 1066, 1219, 1071, 1174, 1071, 519, 1199, 1199, 1199, 1089, + 1088, 1072, 343, 523, 534, 519, 519, 772, 351, 352, + 13, 579, 583, 627, 1061, 388, 782, 562, 771, 515, + 783, 1181, 3, 4, 918, 956, 865, 451, 574, 1160, + 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 514, 529, 0, 0, 0, 0, + 514, 0, 529, 0, 0, 0, 0, 610, 513, 516, + 439, 440, 1067, 619, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 780, 1224, 0, 0, 0, 0, + 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 301, 301 ); protected $gotoCheck = array( - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 56, 66, 59, 59, 59, 8, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 124, 99, 69, 39, 39, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 66, 140, - 140, 122, 122, 66, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 29, 29, 26, 140, 66, 66, - 66, 66, 66, 66, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 115, 115, 14, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 7, 7, 7, 7, 115, 15, 28, 7, - 7, 7, 74, 74, 22, 74, 74, 116, 56, 22, - 22, 5, 116, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 50, 50, 10, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 49, 60, 120, 69, 69, 60, 32, - 120, 60, 2, 10, 107, 10, 2, 56, 56, 10, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 64, 99, 64, 64, 56, - 56, 56, 56, 56, 79, 56, 56, 8, 8, 8, - 121, 121, 121, 13, 56, 56, 56, 56, 56, 56, - 123, 79, 123, 12, 12, 12, 13, 13, 13, 13, - 13, 56, 13, 13, 13, 121, 138, 45, 12, 121, - 12, 81, 12, 33, 67, 67, 67, 12, 12, 125, - 48, 33, 33, 33, 33, 129, 136, 8, 95, 12, - 12, 31, 12, 31, 31, 47, 139, 139, 31, 100, - 33, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 33, 76, 95, 139, 17, 33, 79, 79, 139, - 11, 79, 11, 46, 78, 24, 23, 16, 46, 82, - 8, 8, 71, 79, 79, 79, 25, 8, 117, 8, - 46, 46, 79, 117, 111, 83, 8, 113, 8, 8, - 8, 12, 117, 117, 117, 68, 62, 97, 63, 128, - 106, 57, -1, -1, 8, 8, -1, 57, -1, 99, - -1, 57, -1, -1, -1, -1, -1, 117, -1, -1, - -1, 8, -1, -1, -1, 57, -1, -1, -1, -1, - -1, -1, 12, -1, -1, -1, -1, 57, 12, 12 + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 57, 69, 15, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 69, 69, 128, + 9, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 16, 102, 32, 69, 32, + 32, 120, 6, 69, 32, 29, 120, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 50, 69, 69, + 69, 69, 69, 69, 27, 77, 77, 77, 77, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 119, 119, 119, 119, 119, 119, 33, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 67, 110, + 67, 67, 119, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 142, 57, 72, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 51, 51, 51, 51, 51, 51, 84, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 5, 5, 5, + 5, 5, 5, 5, 63, 46, 124, 63, 129, 98, + 63, 124, 57, 57, 57, 57, 57, 57, 133, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 98, 127, 82, 127, 57, 57, 57, 57, 57, 49, + 57, 57, 144, 144, 140, 11, 40, 40, 14, 57, + 57, 57, 57, 57, 57, 82, 13, 13, 13, 48, + 144, 14, 14, 14, 14, 14, 57, 14, 14, 14, + 11, 13, 11, 13, 102, 13, 79, 11, 70, 70, + 70, 13, 13, 103, 2, 9, 9, 9, 2, 34, + 125, 125, 125, 81, 13, 13, 34, 34, 34, 34, + 17, 13, 8, 8, 8, 8, 18, 143, 143, 8, + 8, 8, 9, 34, 25, 125, 85, 82, 82, 82, + 125, 82, 121, 74, 34, 143, 24, 121, 47, 34, + 116, 143, 82, 82, 82, 47, 121, 121, 121, 126, + 126, 82, 58, 58, 58, 47, 47, 23, 72, 72, + 58, 62, 62, 62, 114, 12, 23, 12, 23, 13, + 26, 121, 30, 30, 86, 100, 71, 65, 66, 132, + 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9, 9, -1, -1, -1, -1, + 9, -1, 9, -1, -1, -1, -1, 13, 9, 9, + 9, 9, 13, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9, 9, -1, -1, -1, -1, + -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 5 ); protected $gotoBase = array( - 0, 0, -249, 0, 0, 300, 0, 287, 105, 0, - 47, 164, 118, 421, 274, 295, 171, 184, 0, 0, - 0, 0, -49, 168, 172, 104, 24, 0, 288, -431, - 0, -159, 359, 44, 0, 0, 0, 0, 0, 125, - 0, 0, -24, 0, 0, 407, 479, 186, 178, 355, - 75, 0, 0, 0, 0, 0, 106, 119, 0, -192, - -81, 0, 101, 93, -231, 0, -90, 135, 121, -276, - 0, 148, 0, 0, 21, 0, 183, 0, 194, 71, - 0, 423, 155, 112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 122, 0, 120, - 176, 0, 0, 0, 0, 0, 83, 358, 170, 0, - 0, 113, 0, 111, 0, -7, 9, 220, 0, 0, - 77, 108, -102, 100, -42, 251, 0, 0, 89, 256, - 0, 0, 0, 0, 0, 0, 181, 0, 419, 160, - -107, 0, 0 + 0, 0, -172, 0, 0, 353, 201, 0, 477, 149, + 0, 110, 195, 117, 426, 112, 203, 140, 171, 0, + 0, 0, 0, 168, 164, 157, 119, 27, 0, 205, + -118, 0, -428, 266, 51, 0, 0, 0, 0, 0, + 388, 0, 0, -24, 0, 0, 345, 484, 146, 133, + 209, 75, 0, 0, 0, 0, 0, 107, 161, 0, + 0, 0, 222, -77, 0, 106, 97, -343, 0, -94, + 135, 123, -129, 0, 129, 0, 0, -50, 0, 143, + 0, 159, 64, 0, 338, 132, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, + 121, 0, 165, 156, 0, 0, 0, 0, 0, 87, + 273, 259, 0, 0, 114, 0, 150, 0, 0, -5, + -91, 200, 0, 0, 84, 154, 202, 77, -48, 178, + 0, 0, 93, 187, 0, 0, 0, 0, 0, 0, + 136, 0, 286, 167, 102, 0, 0 ); protected $gotoDefault = array( - -32768, 463, 659, 2, 660, 733, 741, 593, 477, 625, - 577, 370, 1178, 785, 786, 787, 371, 358, 478, 369, - 400, 395, 774, 767, 769, 777, 171, 401, 780, 1, - 782, 513, 818, 1008, 355, 790, 356, 585, 792, 522, - 794, 795, 136, 372, 373, 523, 479, 380, 572, 809, - 272, 377, 811, 357, 812, 821, 360, 460, 454, 552, - 604, 425, 441, 566, 560, 531, 1072, 561, 853, 344, - 861, 656, 869, 872, 480, 553, 883, 446, 891, 1085, - 387, 897, 903, 908, 283, 911, 407, 402, 580, 916, - 917, 5, 921, 617, 618, 8, 308, 944, 594, 958, - 411, 1027, 1029, 481, 482, 517, 453, 503, 521, 483, - 1050, 435, 403, 1053, 484, 485, 426, 427, 1069, 350, - 1153, 349, 443, 316, 1140, 575, 1104, 450, 1193, 1149, - 343, 486, 487, 366, 1172, 382, 1188, 431, 1195, 1203, - 339, 535, 562 + -32768, 468, 664, 2, 665, 835, 740, 748, 598, 482, + 630, 582, 380, 1193, 792, 793, 794, 381, 368, 483, + 379, 410, 405, 781, 774, 776, 784, 172, 411, 787, + 1, 789, 518, 825, 1020, 365, 797, 366, 590, 799, + 527, 801, 802, 137, 382, 383, 528, 484, 390, 577, + 816, 276, 387, 818, 367, 819, 828, 371, 465, 455, + 460, 530, 557, 609, 432, 447, 571, 565, 536, 1086, + 566, 864, 349, 872, 661, 880, 883, 485, 558, 894, + 452, 902, 1099, 397, 908, 914, 919, 291, 922, 417, + 412, 585, 927, 928, 5, 932, 622, 623, 8, 312, + 955, 599, 969, 420, 1039, 1041, 486, 487, 522, 459, + 508, 526, 488, 1062, 441, 413, 1065, 433, 489, 490, + 434, 435, 1083, 355, 1168, 354, 449, 320, 1155, 580, + 1118, 456, 1208, 1164, 348, 491, 492, 376, 1187, 392, + 1203, 438, 1210, 1218, 344, 540, 567 ); protected $ruleToNonTerminal = array( - 0, 1, 3, 3, 2, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, - 6, 6, 7, 7, 8, 9, 10, 10, 11, 11, - 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 17, 17, 18, 18, 20, 20, 16, 16, - 21, 21, 22, 22, 23, 23, 24, 24, 19, 19, - 25, 27, 27, 28, 29, 29, 31, 30, 30, 30, - 30, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 13, 13, 53, 53, 55, 54, 54, 47, 47, 57, - 57, 58, 58, 14, 15, 15, 15, 61, 61, 61, - 62, 62, 65, 65, 63, 63, 67, 67, 40, 40, - 49, 49, 52, 52, 52, 51, 51, 68, 41, 41, - 41, 41, 69, 69, 70, 70, 71, 71, 38, 38, - 34, 34, 72, 36, 36, 73, 35, 35, 37, 37, - 48, 48, 48, 59, 59, 75, 75, 76, 76, 78, - 78, 78, 77, 77, 60, 60, 79, 79, 79, 80, - 80, 81, 81, 81, 43, 43, 82, 82, 82, 44, - 44, 83, 83, 84, 84, 64, 85, 85, 85, 85, - 90, 90, 91, 91, 92, 92, 92, 92, 92, 93, - 94, 94, 89, 89, 86, 86, 88, 88, 96, 96, - 95, 95, 95, 95, 95, 95, 87, 87, 98, 97, - 97, 45, 45, 39, 39, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 33, 33, 46, 46, 103, 103, 104, 104, 104, 104, - 110, 99, 99, 106, 106, 112, 112, 113, 114, 114, - 114, 114, 114, 114, 66, 66, 56, 56, 56, 56, - 100, 100, 118, 118, 115, 115, 119, 119, 119, 119, - 101, 101, 101, 105, 105, 105, 111, 111, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 26, 26, 26, 26, 26, 26, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 109, 109, 102, 102, 102, 102, 125, 125, 128, 128, - 127, 127, 129, 129, 50, 50, 50, 50, 131, 131, - 130, 130, 130, 130, 130, 132, 132, 117, 117, 120, - 120, 116, 116, 134, 133, 133, 133, 133, 121, 121, - 121, 121, 108, 108, 122, 122, 122, 122, 74, 135, - 135, 136, 136, 136, 107, 107, 137, 137, 138, 138, - 138, 138, 138, 123, 123, 123, 123, 140, 141, 139, - 139, 139, 139, 139, 139, 139, 142, 142, 142 + 0, 1, 3, 3, 2, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, + 12, 12, 13, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 18, 18, 19, 19, 21, 21, + 17, 17, 22, 22, 23, 23, 24, 24, 25, 25, + 20, 20, 26, 28, 28, 29, 30, 30, 32, 31, + 31, 31, 31, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 14, 14, 54, 54, 56, 55, 55, 48, + 48, 58, 58, 59, 59, 60, 60, 61, 61, 15, + 16, 16, 16, 64, 64, 64, 65, 65, 68, 68, + 66, 66, 70, 70, 41, 41, 50, 50, 53, 53, + 53, 52, 52, 71, 42, 42, 42, 42, 72, 72, + 73, 73, 74, 74, 39, 39, 35, 35, 75, 37, + 37, 76, 36, 36, 38, 38, 49, 49, 49, 62, + 62, 78, 78, 79, 79, 81, 81, 81, 80, 80, + 63, 63, 82, 82, 82, 83, 83, 84, 84, 84, + 44, 44, 85, 85, 85, 45, 45, 86, 86, 87, + 87, 67, 88, 88, 88, 88, 93, 93, 94, 94, + 95, 95, 95, 95, 95, 96, 97, 97, 92, 92, + 89, 89, 91, 91, 99, 99, 98, 98, 98, 98, + 98, 98, 90, 90, 101, 100, 100, 46, 46, 40, + 40, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 34, 34, 47, + 47, 106, 106, 107, 107, 107, 107, 113, 102, 102, + 109, 109, 115, 115, 116, 117, 118, 118, 118, 118, + 118, 118, 118, 69, 69, 57, 57, 57, 57, 103, + 103, 122, 122, 119, 119, 123, 123, 123, 123, 104, + 104, 104, 108, 108, 108, 114, 114, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 27, 27, 27, 27, 27, 27, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 112, 112, 105, 105, 105, 105, 129, 129, 132, 132, + 131, 131, 133, 133, 51, 51, 51, 51, 135, 135, + 134, 134, 134, 134, 134, 136, 136, 121, 121, 124, + 124, 120, 120, 138, 137, 137, 137, 137, 125, 125, + 125, 125, 111, 111, 126, 126, 126, 126, 77, 139, + 139, 140, 140, 140, 110, 110, 141, 141, 142, 142, + 142, 142, 142, 127, 127, 127, 127, 144, 145, 143, + 143, 143, 143, 143, 143, 143, 146, 146, 146 ); protected $ruleToLength = array( @@ -867,42 +890,43 @@ class Php5 extends \PhpParser\ParserAbstract 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 5, 4, 3, 4, - 2, 3, 1, 1, 7, 6, 3, 1, 3, 1, - 3, 1, 1, 3, 1, 3, 1, 2, 3, 1, - 3, 3, 1, 3, 2, 0, 1, 1, 1, 1, - 1, 3, 5, 8, 3, 5, 9, 3, 2, 3, - 2, 3, 2, 3, 3, 3, 3, 1, 2, 2, - 5, 7, 9, 5, 6, 3, 3, 2, 2, 1, - 1, 1, 0, 2, 8, 0, 4, 1, 3, 0, - 1, 0, 1, 10, 7, 6, 5, 1, 2, 2, - 0, 2, 0, 2, 0, 2, 1, 3, 1, 4, - 1, 4, 1, 1, 4, 1, 3, 3, 3, 4, - 4, 5, 0, 2, 4, 3, 1, 1, 1, 4, - 0, 2, 3, 0, 2, 4, 0, 2, 0, 3, - 1, 2, 1, 1, 0, 1, 3, 4, 6, 1, - 1, 1, 0, 1, 0, 2, 2, 3, 3, 1, - 3, 1, 2, 2, 3, 1, 1, 2, 4, 3, - 1, 1, 3, 2, 0, 1, 3, 3, 9, 3, - 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, - 1, 1, 1, 3, 1, 1, 0, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, - 3, 3, 1, 0, 1, 1, 3, 3, 4, 4, - 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 3, 5, 4, + 3, 4, 2, 3, 1, 1, 7, 6, 3, 1, + 3, 1, 3, 1, 1, 3, 1, 3, 1, 2, + 3, 1, 3, 3, 1, 3, 2, 0, 1, 1, + 1, 1, 1, 3, 5, 8, 3, 5, 9, 3, + 2, 3, 2, 3, 2, 3, 3, 3, 3, 1, + 2, 2, 5, 7, 9, 5, 6, 3, 3, 2, + 2, 1, 1, 1, 0, 2, 8, 0, 4, 1, + 3, 0, 1, 0, 1, 0, 1, 1, 1, 10, + 7, 6, 5, 1, 2, 2, 0, 2, 0, 2, + 0, 2, 1, 3, 1, 4, 1, 4, 1, 1, + 4, 1, 3, 3, 3, 4, 4, 5, 0, 2, + 4, 3, 1, 1, 1, 4, 0, 2, 3, 0, + 2, 4, 0, 2, 0, 3, 1, 2, 1, 1, + 0, 1, 3, 4, 6, 1, 1, 1, 0, 1, + 0, 2, 2, 3, 3, 1, 3, 1, 2, 2, + 3, 1, 1, 2, 4, 3, 1, 1, 3, 2, + 0, 1, 3, 3, 9, 3, 1, 3, 0, 2, + 4, 5, 4, 4, 4, 3, 1, 1, 1, 3, + 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 3, 1, 1, 3, 3, 1, 0, + 1, 1, 3, 3, 4, 4, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 3, 5, 4, 3, 4, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 3, 2, 1, 2, 10, 11, - 3, 3, 2, 4, 4, 3, 4, 4, 4, 4, - 7, 3, 2, 0, 4, 1, 3, 2, 2, 4, - 6, 2, 2, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, - 0, 2, 1, 0, 1, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 1, 3, 1, 4, 3, 1, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 1, 3, 5, + 4, 3, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, + 1, 3, 2, 1, 2, 10, 11, 3, 3, 2, + 4, 4, 3, 4, 4, 4, 4, 7, 3, 2, + 0, 4, 1, 3, 2, 1, 2, 2, 4, 6, + 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 3, 4, 4, 0, + 2, 1, 0, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 3, 1, 4, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, @@ -1166,10 +1190,10 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos]; }, 82 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 83 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 84 => function ($stackPos) { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); @@ -1178,76 +1202,76 @@ protected function initReduceCallbacks() { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 86 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 87 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 88 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 89 => function ($stackPos) { - $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 90 => function ($stackPos) { - $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 91 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 92 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 93 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 94 => function ($stackPos) { - $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 95 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 96 => function ($stackPos) { + $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 97 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); $this->checkNamespace($this->semValue); }, - 96 => function ($stackPos) { + 98 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 97 => function ($stackPos) { + 99 => function ($stackPos) { $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 98 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 99 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, 100 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 101 => function ($stackPos) { - $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 102 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 103 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; + $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 104 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = Stmt\Use_::TYPE_FUNCTION; }, 105 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = Stmt\Use_::TYPE_CONSTANT; }, 106 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 107 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 108 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; @@ -1262,10 +1286,10 @@ protected function initReduceCallbacks() { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 112 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 113 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 114 => function ($stackPos) { $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); @@ -1274,52 +1298,58 @@ protected function initReduceCallbacks() { $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); }, 116 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); }, 117 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); }, 118 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; }, 119 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; }, 120 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 121 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 122 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 123 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 124 => function ($stackPos) { - if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 125 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 126 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; }, 127 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 128 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 129 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 130 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 131 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 132 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 133 => function ($stackPos) { if ($this->semStack[$stackPos-(3-2)]) { $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; @@ -1329,123 +1359,117 @@ protected function initReduceCallbacks() { } }, - 132 => function ($stackPos) { + 134 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(5-2)], ['stmts' => is_array($this->semStack[$stackPos-(5-3)]) ? $this->semStack[$stackPos-(5-3)] : array($this->semStack[$stackPos-(5-3)]), 'elseifs' => $this->semStack[$stackPos-(5-4)], 'else' => $this->semStack[$stackPos-(5-5)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 133 => function ($stackPos) { + 135 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(8-2)], ['stmts' => $this->semStack[$stackPos-(8-4)], 'elseifs' => $this->semStack[$stackPos-(8-5)], 'else' => $this->semStack[$stackPos-(8-6)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 134 => function ($stackPos) { + 136 => function ($stackPos) { $this->semValue = new Stmt\While_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 135 => function ($stackPos) { + 137 => function ($stackPos) { $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(5-4)], is_array($this->semStack[$stackPos-(5-2)]) ? $this->semStack[$stackPos-(5-2)] : array($this->semStack[$stackPos-(5-2)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 136 => function ($stackPos) { + 138 => function ($stackPos) { $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 137 => function ($stackPos) { + 139 => function ($stackPos) { $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 138 => function ($stackPos) { + 140 => function ($stackPos) { $this->semValue = new Stmt\Break_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 139 => function ($stackPos) { + 141 => function ($stackPos) { $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 140 => function ($stackPos) { + 142 => function ($stackPos) { $this->semValue = new Stmt\Continue_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 141 => function ($stackPos) { + 143 => function ($stackPos) { $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 142 => function ($stackPos) { + 144 => function ($stackPos) { $this->semValue = new Stmt\Return_(null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 143 => function ($stackPos) { + 145 => function ($stackPos) { $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 144 => function ($stackPos) { + 146 => function ($stackPos) { $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 145 => function ($stackPos) { + 147 => function ($stackPos) { $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 146 => function ($stackPos) { + 148 => function ($stackPos) { $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 147 => function ($stackPos) { + 149 => function ($stackPos) { $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 148 => function ($stackPos) { + 150 => function ($stackPos) { $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 149 => function ($stackPos) { + 151 => function ($stackPos) { $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 150 => function ($stackPos) { + 152 => function ($stackPos) { $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 151 => function ($stackPos) { + 153 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 152 => function ($stackPos) { + 154 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 153 => function ($stackPos) { + 155 => function ($stackPos) { $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 154 => function ($stackPos) { + 156 => function ($stackPos) { $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); }, - 155 => function ($stackPos) { + 157 => function ($stackPos) { $this->semValue = new Stmt\Throw_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 156 => function ($stackPos) { + 158 => function ($stackPos) { $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 157 => function ($stackPos) { + 159 => function ($stackPos) { $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 158 => function ($stackPos) { + 160 => function ($stackPos) { $this->semValue = new Stmt\Expression($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 159 => function ($stackPos) { + 161 => function ($stackPos) { $this->semValue = array(); /* means: no statement */ }, - 160 => function ($stackPos) { + 162 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 161 => function ($stackPos) { + 163 => function ($stackPos) { $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ }, - 162 => function ($stackPos) { - $this->semValue = array(); - }, - 163 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, 164 => function ($stackPos) { - $this->semValue = new Stmt\Catch_(array($this->semStack[$stackPos-(8-3)]), $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->semValue = array(); }, 165 => function ($stackPos) { - $this->semValue = null; + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 166 => function ($stackPos) { - $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\Catch_(array($this->semStack[$stackPos-(8-3)]), $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 167 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = null; }, 168 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 169 => function ($stackPos) { - $this->semValue = false; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 170 => function ($stackPos) { - $this->semValue = true; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 171 => function ($stackPos) { $this->semValue = false; @@ -1454,1175 +1478,1203 @@ protected function initReduceCallbacks() { $this->semValue = true; }, 173 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(10-3)], ['byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-5)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + $this->semValue = false; }, 174 => function ($stackPos) { - $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); - $this->checkClass($this->semValue, $stackPos-(7-2)); + $this->semValue = true; }, 175 => function ($stackPos) { - $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(6-2)], ['extends' => $this->semStack[$stackPos-(6-3)], 'stmts' => $this->semStack[$stackPos-(6-5)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); - $this->checkInterface($this->semValue, $stackPos-(6-2)); + $this->semValue = false; }, 176 => function ($stackPos) { - $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(5-2)], ['stmts' => $this->semStack[$stackPos-(5-4)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = true; }, 177 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 178 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 179 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(10-3)], ['byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-5)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, 180 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->checkClass($this->semValue, $stackPos-(7-2)); }, 181 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(6-2)], ['extends' => $this->semStack[$stackPos-(6-3)], 'stmts' => $this->semStack[$stackPos-(6-5)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->checkInterface($this->semValue, $stackPos-(6-2)); }, 182 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(5-2)], ['stmts' => $this->semStack[$stackPos-(5-4)]], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 183 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = 0; }, 184 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 185 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 186 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = null; }, 187 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 188 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 189 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 190 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 191 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 192 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 193 => function ($stackPos) { - $this->semValue = null; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 194 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 195 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 196 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 197 => function ($stackPos) { - $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 198 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 199 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = null; }, 200 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 201 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(5-3)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 202 => function ($stackPos) { - $this->semValue = array(); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 203 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 204 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 205 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 206 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 207 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = $this->semStack[$stackPos-(5-3)]; }, 208 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 209 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 210 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 211 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 212 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(3-2)], is_array($this->semStack[$stackPos-(3-3)]) ? $this->semStack[$stackPos-(3-3)] : array($this->semStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 213 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos]; }, 214 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 215 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 216 => function ($stackPos) { - $this->semValue = null; + $this->semValue = array(); }, 217 => function ($stackPos) { - $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 218 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(3-2)], is_array($this->semStack[$stackPos-(3-3)]) ? $this->semStack[$stackPos-(3-3)] : array($this->semStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 219 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = array(); }, 220 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 221 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-2)], true); + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 222 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = null; }, 223 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 224 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = null; }, 225 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 226 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 227 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); + $this->semValue = array($this->semStack[$stackPos-(2-2)], true); }, 228 => function ($stackPos) { - $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 229 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 230 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 231 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 232 => function ($stackPos) { - $this->semValue = null; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 233 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\Param($this->semStack[$stackPos-(4-4)], null, $this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->checkParam($this->semValue); }, 234 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Node\Param($this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-3)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkParam($this->semValue); }, 235 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 236 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 237 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 238 => function ($stackPos) { - $this->semValue = array(new Node\Arg($this->semStack[$stackPos-(3-2)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes)); + $this->semValue = null; }, 239 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 240 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = null; }, 241 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 242 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array(); }, 243 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 244 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array(new Node\Arg($this->semStack[$stackPos-(3-2)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes)); }, 245 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 246 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 247 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 248 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 249 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 250 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 251 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 252 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 253 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 254 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 255 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 256 => function ($stackPos) { - $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1)); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 257 => function ($stackPos) { - $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 258 => function ($stackPos) { - $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); - $this->checkClassMethod($this->semValue, $stackPos-(9-1)); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 259 => function ($stackPos) { - $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } else { $this->semValue = $this->semStack[$stackPos-(2-1)]; } }, 260 => function ($stackPos) { $this->semValue = array(); }, 261 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 262 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\Property($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkProperty($this->semValue, $stackPos-(3-1)); }, 263 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(3-2)], 0, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 264 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(9-4)], ['type' => $this->semStack[$stackPos-(9-1)], 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->checkClassMethod($this->semValue, $stackPos-(9-1)); }, 265 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 266 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array(); }, 267 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 268 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array(); }, 269 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 270 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 271 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 272 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 273 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 274 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 275 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 276 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 277 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); }, 278 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 279 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 280 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 281 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->semValue = 0; }, 282 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = 0; }, 283 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 284 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 285 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, 286 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 287 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 288 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 289 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_STATIC; }, 290 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 291 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 292 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 293 => function ($stackPos) { - $this->semValue = array(); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 294 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 295 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 296 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 297 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 298 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 299 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array(); }, 300 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 301 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 302 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 303 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 304 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 305 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 306 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 307 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 308 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 309 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 310 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 311 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 312 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 313 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 314 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 315 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 316 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 317 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 318 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 319 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 320 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 321 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 322 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 323 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 324 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 325 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 326 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 327 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 328 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 329 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 330 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 331 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 332 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 333 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 334 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 335 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 336 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 337 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 338 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 339 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 340 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 341 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 342 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 343 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 344 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 345 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 346 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 347 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 348 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 349 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 350 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 351 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 352 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 353 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 354 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 355 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 356 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 357 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 358 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 359 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 360 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 361 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 362 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 363 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; - $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); - $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 364 => function ($stackPos) { - $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 365 => function ($stackPos) { - $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 366 => function ($stackPos) { - $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 367 => function ($stackPos) { - $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 368 => function ($stackPos) { - $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 369 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; - $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 370 => function ($stackPos) { - $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); + $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, 371 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 372 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 373 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 374 => function ($stackPos) { - $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 375 => function ($stackPos) { - $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 376 => function ($stackPos) { - $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; + $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; + $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, 377 => function ($stackPos) { - $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 378 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-4)], 'uses' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 379 => function ($stackPos) { - $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(11-3)], 'params' => $this->semStack[$stackPos-(11-5)], 'uses' => $this->semStack[$stackPos-(11-7)], 'returnType' => $this->semStack[$stackPos-(11-8)], 'stmts' => $this->semStack[$stackPos-(11-10)]], $this->startAttributeStack[$stackPos-(11-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 380 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 381 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 382 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 383 => function ($stackPos) { - $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 384 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); + $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 385 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(10-2)], 'params' => $this->semStack[$stackPos-(10-4)], 'uses' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-7)], 'stmts' => $this->semStack[$stackPos-(10-9)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, 386 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(11-3)], 'params' => $this->semStack[$stackPos-(11-5)], 'uses' => $this->semStack[$stackPos-(11-7)], 'returnType' => $this->semStack[$stackPos-(11-8)], 'stmts' => $this->semStack[$stackPos-(11-10)]], $this->startAttributeStack[$stackPos-(11-1)] + $this->endAttributes); }, 387 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(4-1)][0] === "'" || ($this->semStack[$stackPos-(4-1)][1] === "'" && ($this->semStack[$stackPos-(4-1)][0] === 'b' || $this->semStack[$stackPos-(4-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Expr\ArrayDimFetch(new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(4-1)]), $attrs), $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 388 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 389 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 390 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); - $this->checkClass($this->semValue[0], -1); + $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 391 => function ($stackPos) { - $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, 392 => function ($stackPos) { - list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, 393 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 394 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; + $this->semValue = new Expr\ArrayDimFetch(Scalar\String_::fromString($this->semStack[$stackPos-(4-1)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes), $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 395 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 396 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 397 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes), $this->semStack[$stackPos-(7-2)]); + $this->checkClass($this->semValue[0], -1); }, 398 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 399 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 400 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = array(); }, 401 => function ($stackPos) { - $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(4-3)]; }, 402 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 403 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 404 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 405 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 406 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 407 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 408 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 409 => function ($stackPos) { - $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 410 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->fixupPhp5StaticPropCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 411 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 412 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 413 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 414 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 415 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 416 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 419 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 420 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 421 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 422 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 423 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 424 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 425 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 426 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 427 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 428 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 429 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = null; }, 430 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)], false), $attrs); + $this->semValue = null; }, 431 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 432 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 433 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`', false), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 434 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', false); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 435 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 436 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 437 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, true); }, 438 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 439 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], false); + $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes, false); }, 440 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], false); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 441 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 445 => function ($stackPos) { - $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 446 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 447 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 448 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], false); }, 449 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], false); }, 450 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 451 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 452 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 453 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 454 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 455 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 456 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 457 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 458 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 459 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 460 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 461 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 462 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 463 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 464 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 465 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 466 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 467 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 468 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 469 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 470 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 471 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 472 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 473 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 474 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 475 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 476 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 477 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 478 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 479 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 480 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 481 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 482 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 483 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 484 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 485 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 486 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 487 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 488 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 489 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 490 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 491 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 492 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 493 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 494 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; + foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, 495 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 496 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 497 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 498 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 499 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 500 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 501 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 502 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 503 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 504 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 505 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 506 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 507 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 508 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 509 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 510 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 511 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 512 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 513 => function ($stackPos) { - $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 514 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 515 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 516 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 517 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 518 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 519 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 520 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 521 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 522 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 523 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $var = substr($this->semStack[$stackPos-(1-1)], 1); $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, 524 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 525 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 526 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 527 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 528 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 529 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 530 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 531 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 532 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = null; }, 533 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 534 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 535 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 536 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 537 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, 538 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 539 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 540 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 541 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 542 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 543 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = null; }, 544 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 545 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 546 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 547 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 548 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 549 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 550 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 551 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 552 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true); }, 553 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 554 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 555 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 556 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); }, 557 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 558 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 559 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 560 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 561 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 562 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 563 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 564 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + }, + 565 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 566 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 567 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 568 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index c56685c21..6d2b4b0f9 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -17,17 +17,17 @@ */ class Php7 extends \PhpParser\ParserAbstract { - protected $tokenToSymbolMapSize = 393; - protected $actionTableSize = 1178; - protected $gotoTableSize = 582; + protected $tokenToSymbolMapSize = 396; + protected $actionTableSize = 1241; + protected $gotoTableSize = 629; - protected $invalidSymbol = 166; + protected $invalidSymbol = 168; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 401; - protected $numNonLeafStates = 700; + protected $YY2TBLSTATE = 434; + protected $numNonLeafStates = 736; protected $symbolToName = array( "EOF", @@ -67,7 +67,8 @@ class Php7 extends \PhpParser\ParserAbstract "T_BOOLEAN_AND", "'|'", "'^'", - "'&'", + "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", + "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", "T_IS_EQUAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", @@ -151,6 +152,7 @@ class Php7 extends \PhpParser\ParserAbstract "T_PRIVATE", "T_PROTECTED", "T_PUBLIC", + "T_READONLY", "T_VAR", "T_UNSET", "T_ISSET", @@ -199,700 +201,740 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $tokenToSymbol = array( - 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 55, 164, 166, 165, 54, 37, 166, - 161, 162, 52, 49, 8, 50, 51, 53, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 31, 157, - 43, 16, 45, 30, 67, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 69, 166, 158, 36, 166, 163, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 159, 35, 160, 57, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 1, 2, 3, 4, + 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 56, 166, 168, 167, 55, 168, 168, + 163, 164, 53, 50, 8, 51, 52, 54, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 31, 159, + 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 70, 168, 160, 36, 168, 165, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 161, 35, 162, 58, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 32, 33, 34, 38, 39, 40, 41, - 42, 44, 46, 47, 48, 56, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 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, - 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, 153, - 154, 155, 156 + 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, + 41, 42, 43, 45, 47, 48, 49, 57, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 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, 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, + 153, 154, 155, 156, 157, 158 ); protected $action = array( - 130, 131, 132, 561, 133, 134, 0, 710, 711, 712, - 135, 36, 896, 537, 538,-32766, 1231,-32766,-32766,-32766, - -558, 1164, 785, 907, 434, 435, 436, -558,-32766,-32766, - -32766, -299,-32766, 973,-32766, 247,-32766, -190,-32766,-32766, - -32766,-32766,-32766, 465,-32766,-32766,-32766,-32766,-32766,-32766, - -32766,-32766, 124, 796, 713,-32766,-32766, 392, 1043, 1044, - 1045, 1042, 1041, 1040,-32766,-32766,-32766,-32766, 263, 136, - 375, 717, 718, 719, 720, 980, 981, 401, 1043, 1044, - 1045, 1042, 1041, 1040, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 751, 562, 752, 753, 754, - 755, 743, 744, 376, 377, 746, 747, 732, 733, 734, - 736, 737, 738, 336, 778, 779, 780, 781, 782, 739, - 740, 563, 564, 772, 763, 761, 762, 775, 758, 759, - -189, 978, 565, 566, 757, 567, 568, 569, 570, 571, - 572, 533, -555, -509,-32766,-32766, 760, 573, 574, -555, - 137, 980, 981, 313, 130, 131, 132, 561, 133, 134, - 994, 710, 711, 712, 135, 36,-32766,-32766,-32766,-32766, - 687,-32766,-32766,-32766, 80, 1164, 553, -558, 629, 24, - 312, -558,-32766,-32766,-32766, -299,-32766,-32766,-32766, 247, - -32766, -190,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766, - -32766, 1203, 432, 433,-32766,-32766, -509, -509, 713, 795, - -32766, 392, 395,-32766,-32766,-32766, 443, 444,-32766, 438, - 433, -509, 263, 136, 375, 717, 718, 719, 720, 395, - -83, 401, 237, -509,-32766, -515,-32766,-32766, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 751, - 562, 752, 753, 754, 755, 743, 744, 376, 377, 746, - 747, 732, 733, 734, 736, 737, 738, 336, 778, 779, - 780, 781, 782, 739, 740, 563, 564, 772, 763, 761, - 762, 775, 758, 759, -189, 2, 565, 566, 757, 567, - 568, 569, 570, 571, 572, -83, 81, 82, 83, -555, - 760, 573, 574, -555, 137, 735, 705, 706, 707, 708, - 709, 1251, 710, 711, 712, 748, 749, 33, 1250, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 12, 265,-32766,-32766,-32766, 104, 105, 106, - 31, 265, 970, 969, 968, 107, 101, 102, 103, 713, - -32766,-32766,-32766, 107, 459,-32766, 583,-32766,-32766,-32766, - -32766,-32766,-32766, 714, 715, 716, 717, 718, 719, 720, - -259,-32766, 783,-32766,-32766,-32766,-32766,-32766, 126, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 751, 774, 752, 753, 754, 755, 743, 744, 745, 773, - 746, 747, 732, 733, 734, 736, 737, 738, 777, 778, - 779, 780, 781, 782, 739, 740, 741, 742, 772, 763, - 761, 762, 775, 758, 759, 142, 938, 750, 756, 757, - 764, 765, 767, 766, 768, 769, -549,-32766,-32766,-32766, - -549, 760, 771, 770, 48, 49, 50, 492, 51, 52, - 790, 236, 589, -510, 53, 54, 249, 55,-32766, 993, + 133, 134, 135, 579, 136, 137, 0, 748, 749, 750, + 138, 38, 327,-32766,-32766,-32766,-32766,-32766,-32766,-32767, + -32767,-32767,-32767, 102, 103, 104, 105, 106, 1109, 1110, + 1111, 1108, 1107, 1106, 1112, 742, 741,-32766, 1232,-32766, -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 296,-32767,-32767,-32767,-32767, 99, 100, 101, 102, - 103, 1276, 460, 787, 1277, 821, 298, 822, 274, 482, - 1191, 56, 57, -337, 310, -337, -508, 58, 1171, 59, - 242, 243, 60, 61, 62, 63, 64, 65, 66, 67, - 1035, 26, 264, 68, 416, 493, -510, -510, 325, 1197, - 1198, 494, 349, 794, 1171, 791, 353, 1195, 40, 23, - 495, -510, 496, 793, 497, 487, 498, 11, 358, 499, - 500, 645, 646, -510, 42, 43, 417, 421, 419, 878, - 44, 501, 939, 401, -14, 360, 348, 324, 789, -508, - -508, 412, -507, 675, 502, 503, 504, 427, 428, 47, - 794, 146, 380, 978, -508, 413, 505, 506, 794, 1185, - 1186, 1187, 1188, 1182, 1183, 284, -508, 414, -514, 1247, - 415, 1189, 1184, 980, 981, 1166, 1165, 1167, 285, 821, - 878, 822, 800, 69, 794, 308, 309, 312, 34, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -150, -150, -150, -507, -507, 1166, 1165, 1167, - 678, 868, 288, 289, 1021,-32766, 1020, -150, 698, -150, - -507, -150, 147, -150, 244, 445, 446, 352, 138, -108, - 1079, 1081, -507, 418, 312, 621, 622, 148, 73, 125, - 150, -507, 312, 151, -108, -108, 152, 785, -85, 154, - 35, -49, -77, 854, -108, -108, -108, -108, 121, 285, - -32766, 122, 868, 127, 73, 128, 1164, 141, 312, 155, - 878, 156, 157,-32766,-32766,-32766, 158,-32766, 277,-32766, - 878,-32766, 107, -73,-32766, 880, 878, 673, -150,-32766, - -32766,-32766, -71,-32766, -70,-32766,-32766, -69, 129, 1164, - 679,-32766, 392, -512, -507, -507,-32766,-32766,-32766,-32766, - -32766, -68,-32766, 878,-32766, -67, 680,-32766, -66, -507, - -65, -64,-32766,-32766,-32766, 1171, -45, 139,-32766,-32766, - 878, -507, -16, 312,-32766, 392, 880, 246, 673, 72, - -32766, 145,-32766, 682, 1164, 266, 1164, 273, 688, -4, - 878, 691, 868,-32766,-32766,-32766, 877,-32766, 144,-32766, - 689,-32766, 868,-32766,-32766, 275, -512, -512, 868,-32766, - -32766,-32766, 892,-32766, 248,-32766,-32766, 276, 278, 1164, - 1162,-32766, 392, 980, 981, 279,-32766,-32766,-32766,-32766, - -32766, 318,-32766, -512,-32766, 868, 265,-32766, 653, 794, - 46, 143,-32766,-32766,-32766, 794, 666, 785,-32766,-32766, - -32766, 541, 868,-32766,-32766, 392, 1164, 1049, 1166, 1165, - 1167, 1278,-32766,-32766,-32766,-32766, 880,-32766, 673,-32766, - -32766,-32766, 868, 630,-32766, 250, 880, 535, 673,-32766, - -32766,-32766, 924, 635, 673,-32766,-32766, 648, 13, 290, - -108,-32766, 392, 440, 418, 794, 406, 470, 1266,-32766, - 293, 283, 636, 286, 287, -108, -108, 26, 878, 880, - 649, 673, 619, -473, 813, -108, -108, -108, -108, 794, - 285,-32766, 878, 1195, 411, 73, 880, 1164, 673, 312, - 123, 908, 909, 291,-32766,-32766,-32766, 9,-32766, 297, - -32766, 285,-32766, 1202, 793,-32766, 880, 894, 673, -4, - -32766,-32766,-32766, 0, 1019, -463,-32766,-32766, 547, 32, - 245, 1204,-32766, 392, 587, 7, 15, 351, 1192, 38, - -32766, 0, 505, 506, 805, 1185, 1186, 1187, 1188, 1182, - 1183, 39, 695, 696, 859, 948, 925, 1189, 1184, 932, - 868, 922, 933, 857, 920, -262, 1024, 1027, 1028, 71, - 1025, 1026, 309, 312, 868, 1217, -237, -237, -237, 1032, - 30, 1235, 418, 1269, 624, -543, 307, 350, 674, 677, - -236, -236, -236, -108, -108, 681, 418, 26, 683, 684, - 685, 686, 854, -108, -108, -108, -108, -108, -108, 794, - 690, 676, -260, 1195, 692, 855, 854, -108, -108, -108, - -108, 1273, 1275, -108, 816, 815, 824, 901, -108, 940, - -108, 823, 1274, 900, 880, 292, 673, -237, -108, -108, - -108, -108, -108, -108, -108, 902, 899, 1150, 880, 887, - 673, -236, 895, 885, 930, 931, 1272, 1229, 1218, 1236, - 1242, 1245, 0, 506, -541, 1185, 1186, 1187, 1188, 1182, - 1183, -515, -514, -513, 1, 27, 28, 1189, 1184, 37, - 41, 45, 70, -313, -259, 74, 75, 76, 77, 71, - 78, 79, 309, 312, 140, 149, 153, 241, 314, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 407, 408, 0, 17, 18, 19, 20, 22, 379, 461, - 462, 469, 472, 473, 474, 475, 479, 480, 481, 490, - 660, 1175, 1118, 1193, 995, 1154, -264, -100, 16, 21, - 25, 282, 378, 580, 584, 611, 665, 1122, 1170, 1119, - 1248, 0, -477, 1135, 0, 1196, 0, 312 + -32767, 2, 107, 108, 109, 751, 274, 381, 380,-32766, + -32766,-32766,-32766, 104, 105, 106, 1024, 422, 110, 265, + 139, 403, 755, 756, 757, 758, 466, 467, 428, 938, + 291,-32766, 287,-32766,-32766, 759, 760, 761, 762, 763, + 764, 765, 766, 767, 768, 769, 789, 580, 790, 791, + 792, 793, 781, 782, 344, 345, 784, 785, 770, 771, + 772, 774, 775, 776, 355, 816, 817, 818, 819, 820, + 581, 777, 778, 582, 583, 810, 801, 799, 800, 813, + 796, 797, 687, -545, 584, 585, 795, 586, 587, 588, + 589, 590, 591, -328, -593, -367, 1234, -367, 798, 592, + 593, -593, 140,-32766,-32766,-32766, 133, 134, 135, 579, + 136, 137, 1057, 748, 749, 750, 138, 38, 688, 1020, + 1019, 1018, 1021, 390,-32766, 7,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766, 379, 380, 1033, 689, + 690, 742, 741,-32766,-32766,-32766, 422, -545, -545, -590, + -32766,-32766,-32766, 1032,-32766, 127, -590, 1236, 1235, 1237, + 1318, 751, -545, 290,-32766, 283,-32766,-32766,-32766,-32766, + -32766, 1236, 1235, 1237, -545, 265, 139, 403, 755, 756, + 757, 758, 16, 481, 428, 458, 459, 460, 298, 722, + 35, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 789, 580, 790, 791, 792, 793, 781, 782, + 344, 345, 784, 785, 770, 771, 772, 774, 775, 776, + 355, 816, 817, 818, 819, 820, 581, 777, 778, 582, + 583, 810, 801, 799, 800, 813, 796, 797, 129, 824, + 584, 585, 795, 586, 587, 588, 589, 590, 591, -328, + 83, 84, 85, -593, 798, 592, 593, -593, 149, 773, + 743, 744, 745, 746, 747, 824, 748, 749, 750, 786, + 787, 37, 145, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 291, 274, 835, + 254, 1109, 1110, 1111, 1108, 1107, 1106, 1112, -590, 860, + 110, 861, -590, 482, 751,-32766,-32766,-32766,-32766,-32766, + 142, 603, 1085, 742, 741, 1262, 326, 987, 752, 753, + 754, 755, 756, 757, 758, 309,-32766, 822,-32766,-32766, + -32766,-32766, 242, 553, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 789, 812, 790, 791, 792, + 793, 781, 782, 783, 811, 784, 785, 770, 771, 772, + 774, 775, 776, 815, 816, 817, 818, 819, 820, 821, + 777, 778, 779, 780, 810, 801, 799, 800, 813, 796, + 797, 311, 940, 788, 794, 795, 802, 803, 805, 804, + 806, 807, 323, 609, 1274, 1033, 833, 798, 809, 808, + 50, 51, 52, 512, 53, 54, 860, 241, 861, 918, + 55, 56, -111, 57,-32766,-32766,-32766, -111, 826, -111, + 290, 1302, 1347, 356, 305, 1348, 339, -111, -111, -111, + -111, -111, -111, -111, -111,-32766, -194,-32766,-32766,-32766, + -193, 956, 957, 829, -86, 988, 958, 834, 58, 59, + 340, 428, 952, -544, 60, 832, 61, 247, 248, 62, + 63, 64, 65, 66, 67, 68, 69, 1241, 28, 267, + 70, 444, 513, -342,-32766, 141, 1268, 1269, 514, 918, + 833, 326, -272, 918, 1266, 42, 25, 515, 940, 516, + 14, 517, 908, 518, 828, 369, 519, 520, 373, 709, + 1033, 44, 45, 445, 376, 375, 388, 46, 521, 712, + -86, 440, 1101, 367, 338, -543, 441, -544, -544, 830, + 1227, 442, 523, 524, 525, 290, 1236, 1235, 1237, 361, + 1030, 443, -544, 1087, 526, 527, 839, 1255, 1256, 1257, + 1258, 1252, 1253, 297, -544, 151, -550, -584, 833, 1259, + 1254, -584, 1033, 1236, 1235, 1237, 298, -154, -154, -154, + 152, 71, 908, 321, 322, 326, 908, 920, 1030, 707, + 833, 154, -154, 1337, -154, 155, -154, 283, -154, -543, + -543, 82, 1232, 1086, 1322, 734, 156, 326, 374, 158, + 1033, 1321, -194, -79, -543, -88, -193, 742, 741, 956, + 957, 653, 26,-32766, 522, -51, -543, 33, -549, 894, + 952, -111, -111, -111, 32, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, -59, 75, + 28, 672, 673, 326, -58, 36, 250, 920, 124, 707, + 125, 920, 833, 707, -154, 130, 1266, 131,-32766, -547, + 144, -542, 150, 406, 1234, 377, 378, 1146, 1148, 382, + 383,-32766,-32766,-32766, -85,-32766, 1056,-32766, -542,-32766, + 644, 645,-32766, 159, 160, 161, 1232,-32766,-32766,-32766, + 162, -79, 1227,-32766,-32766, 742, 741, 163, -302,-32766, + 419, -75, -4, 918, -73, 287, 526, 527,-32766, 1255, + 1256, 1257, 1258, 1252, 1253, -72, -71, -70, -69, -68, + -67, 1259, 1254, -547, -547, -542, -542, 742, 741, -66, + -47, -18,-32766, 73, 148, 918, 322, 326, 1234, 273, + -542, 284, -542, -542, 723,-32766,-32766,-32766, 726,-32766, + -547,-32766, -542,-32766, 917, 147,-32766, -542, 288, 289, + -298,-32766,-32766,-32766,-32766, 713, 279,-32766,-32766, -542, + 1234, 280, 285,-32766, 419, 48, 286,-32766,-32766,-32766, + 332,-32766,-32766,-32766, 292,-32766, 908, 293,-32766, 934, + 274, 1030, 918,-32766,-32766,-32766, 110, 682, 132,-32766, + -32766, 833, 146,-32766, 559,-32766, 419, 659, 374, 824, + 435, 1349, 74, 1033,-32766, 296, 654, 1116, 908, 956, + 957, 306, 714, 698, 522, 555, 303, 13, 310, 852, + 952, -111, -111, -111, 700, 463, 492, 953, 283, 299, + 300,-32766, 49, 675, 918, 304, 660, 1234, 676, 936, + 1273,-32766, 10, 1263,-32766,-32766,-32766, 642,-32766, 918, + -32766, 920,-32766, 707, -4,-32766, 126, 34, 918, 565, + -32766,-32766,-32766,-32766, 0, 908,-32766,-32766, 0, 1234, + 918, 0,-32766, 419, 0, 0,-32766,-32766,-32766, 717, + -32766,-32766,-32766, 920,-32766, 707, 1033,-32766, 724, 1275, + 0, 487,-32766,-32766,-32766,-32766, 301, 302,-32766,-32766, + -507, 1234, 571, -497,-32766, 419, 607, 8,-32766,-32766, + -32766, 372,-32766,-32766,-32766, 17,-32766, 908, 371,-32766, + 832, 298, 320, 128,-32766,-32766,-32766, 40, 370, 41, + -32766,-32766, 908, -250, -250, -250,-32766, 419, 731, 374, + 973, 908, 707, 732, 899,-32766, 997, 974, 728, 981, + 956, 957, 971, 908, 982, 522, 897, 969, 1090, 1093, + 894, 952, -111, -111, -111, 28, 1094, 1091, 1092, -249, + -249, -249, 1241, 1098, 708, 374, 844, 833, 1288, 1306, + 1340, 1266, 647, 1267, 711, 715, 956, 957, 716, 1241, + 718, 522, 920, 719, 707, -250, 894, 952, -111, -111, + -111, 720, -16, 721, 725, 710, -511, 920, 895, 707, + -578, 1232, 1344, 1346, 855, 854, 920, 1227, 707, -577, + 863, 946, 989, 862, 1345, 945, 943, 944, 920, 947, + 707, -249, 527, 1218, 1255, 1256, 1257, 1258, 1252, 1253, + 927, 937, 925, 979, 980, 631, 1259, 1254, 1343, 1300, + -32766, 1289, 1307, 833, 1316, -275, 1234, -576, 73, -550, + -549, 322, 326,-32766,-32766,-32766, -548,-32766, -491,-32766, + 833,-32766, 1, 29,-32766, 30, 39, 43, 47,-32766, + -32766,-32766, 72, 76, 77,-32766,-32766, 1232, -111, -111, + 78,-32766, 419, -111, 79, 80, 81, 143, 153, -111, + -32766, 157, 246, 328, 1232, -111, -111, 356,-32766, 357, + -111, 358, 359, 360, 361, 362, -111, 363, 364, 365, + 366, 368, 436, 0, -273,-32766, -272, 19, 20, 298, + 21, 22, 24, 405, 75, 1203, 483, 484, 326, 491, + 0, 494, 495, 496, 497, 501, 298, 502, 503, 510, + 693, 75, 0, 1245, 1186, 326, 1264, 1059, 1058, 1039, + 1222, 1035, -277, -103, 18, 23, 27, 295, 404, 600, + 604, 633, 699, 1190, 1240, 1187, 1319, 0, 0, 0, + 326 ); protected $actionCheck = array( 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, - 12, 13, 1, 116, 117, 73, 1, 9, 10, 11, - 1, 79, 79, 126, 127, 128, 129, 8, 86, 87, - 88, 8, 90, 1, 92, 37, 94, 8, 30, 97, - 32, 33, 34, 101, 102, 103, 104, 9, 10, 11, - 108, 109, 14, 1, 56, 115, 114, 115, 115, 116, - 117, 118, 119, 120, 122, 9, 10, 11, 70, 71, - 72, 73, 74, 75, 76, 135, 136, 79, 115, 116, - 117, 118, 119, 120, 86, 87, 88, 89, 90, 91, + 12, 13, 70, 9, 10, 11, 9, 10, 11, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, + 118, 119, 120, 121, 122, 37, 38, 30, 116, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 8, 53, 54, 55, 57, 57, 106, 107, 137, + 9, 10, 11, 50, 51, 52, 1, 116, 69, 71, + 72, 73, 74, 75, 76, 77, 134, 135, 80, 1, + 30, 30, 30, 32, 33, 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, - 8, 115, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 84, 1, 69, 9, 10, 148, 149, 150, 8, - 152, 135, 136, 69, 2, 3, 4, 5, 6, 7, - 162, 9, 10, 11, 12, 13, 9, 10, 11, 73, - 159, 9, 10, 11, 159, 79, 80, 158, 74, 75, - 165, 162, 86, 87, 88, 162, 90, 30, 92, 37, - 94, 162, 30, 97, 32, 33, 34, 35, 102, 103, - 104, 144, 105, 106, 108, 109, 132, 133, 56, 157, - 114, 115, 115, 9, 10, 11, 132, 133, 122, 105, - 106, 147, 70, 71, 72, 73, 74, 75, 76, 115, - 31, 79, 14, 159, 30, 161, 32, 33, 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, 162, 8, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 96, 9, 10, 11, 158, - 148, 149, 150, 162, 152, 2, 3, 4, 5, 6, - 7, 1, 9, 10, 11, 12, 13, 30, 8, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 8, 56, 9, 10, 11, 52, 53, 54, - 8, 56, 118, 119, 120, 68, 49, 50, 51, 56, - 9, 10, 11, 68, 31, 30, 1, 32, 33, 34, - 35, 36, 37, 70, 71, 72, 73, 74, 75, 76, - 162, 30, 79, 32, 33, 34, 35, 36, 8, 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, 8, 31, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 158, 9, 10, 11, - 162, 148, 149, 150, 2, 3, 4, 5, 6, 7, - 79, 96, 50, 69, 12, 13, 8, 15, 30, 1, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 8, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 79, 159, 79, 82, 105, 8, 107, 30, 100, - 1, 49, 50, 105, 8, 107, 69, 55, 1, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 121, 69, 70, 71, 72, 73, 132, 133, 8, 77, - 78, 79, 8, 81, 1, 154, 8, 85, 86, 87, - 88, 147, 90, 153, 92, 105, 94, 107, 8, 97, - 98, 74, 75, 159, 102, 103, 104, 105, 106, 1, - 108, 109, 157, 79, 31, 8, 114, 115, 154, 132, - 133, 8, 69, 159, 122, 123, 124, 105, 106, 69, - 81, 100, 101, 115, 147, 8, 134, 135, 81, 137, - 138, 139, 140, 141, 142, 143, 159, 8, 161, 1, - 8, 149, 150, 135, 136, 153, 154, 155, 156, 105, - 1, 107, 8, 161, 81, 163, 164, 165, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 74, 75, 76, 132, 133, 153, 154, 155, - 31, 83, 132, 133, 160, 9, 157, 89, 159, 91, - 147, 93, 14, 95, 37, 105, 106, 147, 159, 126, - 58, 59, 159, 105, 165, 110, 111, 14, 161, 159, - 14, 69, 165, 14, 116, 117, 14, 79, 31, 14, - 14, 31, 31, 125, 126, 127, 128, 129, 16, 156, - 73, 16, 83, 16, 161, 16, 79, 16, 165, 16, - 1, 16, 16, 86, 87, 88, 16, 90, 30, 92, - 1, 94, 68, 31, 97, 157, 1, 159, 160, 102, - 103, 104, 31, 73, 31, 108, 109, 31, 31, 79, - 31, 114, 115, 69, 132, 133, 86, 87, 88, 122, - 90, 31, 92, 1, 94, 31, 31, 97, 31, 147, - 31, 31, 102, 103, 104, 1, 31, 159, 108, 109, - 1, 159, 31, 165, 114, 115, 157, 37, 159, 152, - 73, 31, 122, 31, 79, 31, 79, 31, 31, 0, - 1, 31, 83, 86, 87, 88, 31, 90, 31, 92, - 31, 94, 83, 115, 97, 35, 132, 133, 83, 102, - 103, 104, 37, 73, 37, 108, 109, 35, 35, 79, - 115, 114, 115, 135, 136, 35, 86, 87, 88, 122, - 90, 35, 92, 159, 94, 83, 56, 97, 76, 81, - 69, 69, 102, 103, 104, 81, 91, 79, 108, 109, - 73, 88, 83, 115, 114, 115, 79, 81, 153, 154, - 155, 82, 122, 86, 87, 88, 157, 90, 159, 92, - 84, 94, 83, 89, 97, 37, 157, 84, 159, 102, - 103, 104, 157, 95, 159, 108, 109, 93, 96, 130, - 126, 114, 115, 96, 105, 81, 107, 96, 84, 122, - 113, 112, 99, 132, 133, 116, 117, 69, 1, 157, - 99, 159, 112, 147, 125, 126, 127, 128, 129, 81, - 156, 73, 1, 85, 126, 161, 157, 79, 159, 165, - 159, 126, 126, 131, 86, 87, 88, 148, 90, 130, - 92, 156, 94, 144, 153, 97, 157, 152, 159, 160, - 102, 103, 104, -1, 1, 147, 108, 109, 151, 145, - 146, 144, 114, 115, 151, 147, 147, 147, 158, 157, - 122, -1, 134, 135, 158, 137, 138, 139, 140, 141, - 142, 157, 157, 157, 157, 157, 157, 149, 150, 157, - 83, 157, 157, 157, 157, 162, 157, 157, 157, 161, - 157, 157, 164, 165, 83, 158, 99, 100, 101, 157, - 159, 158, 105, 158, 158, 161, 159, 159, 159, 159, - 99, 100, 101, 116, 117, 159, 105, 69, 159, 159, - 159, 159, 125, 126, 127, 128, 129, 116, 117, 81, - 159, 159, 162, 85, 160, 160, 125, 126, 127, 128, - 129, 160, 160, 100, 160, 160, 160, 160, 105, 160, - 107, 160, 160, 160, 157, 112, 159, 160, 115, 116, - 117, 118, 119, 120, 121, 160, 160, 160, 157, 160, - 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, -1, 135, 161, 137, 138, 139, 140, 141, - 142, 161, 161, 161, 161, 161, 161, 149, 150, 161, - 161, 161, 161, 160, 162, 161, 161, 161, 161, 161, - 161, 161, 164, 165, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, -1, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, -1, 163, 163, -1, 164, -1, 165 + 132, 133, 80, 70, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 8, 1, 106, 80, 108, 150, 151, + 152, 8, 154, 9, 10, 11, 2, 3, 4, 5, + 6, 7, 164, 9, 10, 11, 12, 13, 116, 119, + 120, 121, 122, 106, 30, 108, 32, 33, 34, 35, + 36, 37, 38, 9, 10, 11, 106, 107, 138, 137, + 138, 37, 38, 9, 10, 11, 116, 134, 135, 1, + 9, 10, 11, 137, 30, 14, 8, 155, 156, 157, + 1, 57, 149, 163, 30, 163, 32, 33, 34, 35, + 36, 155, 156, 157, 161, 71, 72, 73, 74, 75, + 76, 77, 8, 31, 80, 129, 130, 131, 158, 161, + 8, 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, 8, 80, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 164, + 9, 10, 11, 160, 150, 151, 152, 164, 154, 2, + 3, 4, 5, 6, 7, 80, 9, 10, 11, 12, + 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 30, 57, 1, + 8, 116, 117, 118, 119, 120, 121, 122, 160, 106, + 69, 108, 164, 161, 57, 9, 10, 11, 9, 10, + 161, 1, 1, 37, 38, 1, 167, 31, 71, 72, + 73, 74, 75, 76, 77, 8, 30, 80, 32, 33, + 34, 35, 14, 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, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 8, 122, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 8, 51, 146, 138, 82, 150, 151, 152, + 2, 3, 4, 5, 6, 7, 106, 97, 108, 1, + 12, 13, 101, 15, 9, 10, 11, 106, 80, 108, + 163, 1, 80, 163, 113, 83, 8, 116, 117, 118, + 119, 120, 121, 122, 123, 30, 8, 32, 33, 34, + 8, 117, 118, 80, 31, 159, 122, 159, 50, 51, + 8, 80, 128, 70, 56, 155, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, + 72, 73, 74, 162, 9, 161, 78, 79, 80, 1, + 82, 167, 164, 1, 86, 87, 88, 89, 122, 91, + 101, 93, 84, 95, 156, 8, 98, 99, 8, 161, + 138, 103, 104, 105, 106, 107, 8, 109, 110, 31, + 97, 8, 123, 115, 116, 70, 8, 134, 135, 156, + 122, 8, 124, 125, 126, 163, 155, 156, 157, 163, + 116, 8, 149, 162, 136, 137, 8, 139, 140, 141, + 142, 143, 144, 145, 161, 14, 163, 160, 82, 151, + 152, 164, 138, 155, 156, 157, 158, 75, 76, 77, + 14, 163, 84, 165, 166, 167, 84, 159, 116, 161, + 82, 14, 90, 85, 92, 14, 94, 163, 96, 134, + 135, 161, 116, 159, 1, 161, 14, 167, 106, 14, + 138, 8, 164, 16, 149, 31, 164, 37, 38, 117, + 118, 75, 76, 137, 122, 31, 161, 14, 163, 127, + 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 16, 163, + 70, 75, 76, 167, 16, 147, 148, 159, 16, 161, + 16, 159, 82, 161, 162, 16, 86, 16, 74, 70, + 16, 70, 101, 102, 80, 106, 107, 59, 60, 106, + 107, 87, 88, 89, 31, 91, 1, 93, 70, 95, + 111, 112, 98, 16, 16, 16, 116, 103, 104, 105, + 16, 31, 122, 109, 110, 37, 38, 16, 35, 115, + 116, 31, 0, 1, 31, 30, 136, 137, 124, 139, + 140, 141, 142, 143, 144, 31, 31, 31, 31, 31, + 31, 151, 152, 134, 135, 134, 135, 37, 38, 31, + 31, 31, 74, 163, 31, 1, 166, 167, 80, 31, + 149, 31, 134, 135, 31, 87, 88, 89, 31, 91, + 161, 93, 161, 95, 31, 31, 98, 149, 37, 37, + 35, 103, 104, 105, 74, 31, 35, 109, 110, 161, + 80, 35, 35, 115, 116, 70, 35, 87, 88, 89, + 35, 91, 124, 93, 37, 95, 84, 37, 98, 38, + 57, 116, 1, 103, 104, 105, 69, 77, 31, 109, + 110, 82, 70, 85, 89, 115, 116, 96, 106, 80, + 108, 83, 154, 138, 124, 113, 90, 82, 84, 117, + 118, 114, 31, 80, 122, 85, 132, 97, 132, 127, + 128, 129, 130, 131, 92, 97, 97, 128, 163, 134, + 135, 74, 70, 94, 1, 133, 100, 80, 100, 154, + 146, 137, 150, 160, 87, 88, 89, 113, 91, 1, + 93, 159, 95, 161, 162, 98, 161, 161, 1, 153, + 103, 104, 105, 74, -1, 84, 109, 110, -1, 80, + 1, -1, 115, 116, -1, -1, 87, 88, 89, 31, + 91, 124, 93, 159, 95, 161, 138, 98, 31, 146, + -1, 102, 103, 104, 105, 74, 134, 135, 109, 110, + 149, 80, 81, 149, 115, 116, 153, 149, 87, 88, + 89, 149, 91, 124, 93, 149, 95, 84, 149, 98, + 155, 158, 161, 161, 103, 104, 105, 159, 161, 159, + 109, 110, 84, 100, 101, 102, 115, 116, 159, 106, + 159, 84, 161, 159, 159, 124, 159, 159, 162, 159, + 117, 118, 159, 84, 159, 122, 159, 159, 159, 159, + 127, 128, 129, 130, 131, 70, 159, 159, 159, 100, + 101, 102, 1, 159, 161, 106, 160, 82, 160, 160, + 160, 86, 160, 166, 161, 161, 117, 118, 161, 1, + 161, 122, 159, 161, 161, 162, 127, 128, 129, 130, + 131, 161, 31, 161, 161, 161, 165, 159, 162, 161, + 163, 116, 162, 162, 162, 162, 159, 122, 161, 163, + 162, 162, 162, 162, 162, 162, 162, 162, 159, 162, + 161, 162, 137, 162, 139, 140, 141, 142, 143, 144, + 162, 162, 162, 162, 162, 162, 151, 152, 162, 162, + 74, 162, 162, 82, 162, 164, 80, 163, 163, 163, + 163, 166, 167, 87, 88, 89, 163, 91, 163, 93, + 82, 95, 163, 163, 98, 163, 163, 163, 163, 103, + 104, 105, 163, 163, 163, 109, 110, 116, 117, 118, + 163, 115, 116, 122, 163, 163, 163, 163, 163, 128, + 124, 163, 163, 163, 116, 117, 118, 163, 137, 163, + 122, 163, 163, 163, 163, 163, 128, 163, 163, 163, + 163, 163, 163, -1, 164, 137, 164, 164, 164, 158, + 164, 164, 164, 164, 163, 165, 164, 164, 167, 164, + -1, 164, 164, 164, 164, 164, 158, 164, 164, 164, + 164, 163, -1, 164, 164, 167, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, -1, -1, -1, + 167 ); protected $actionBase = array( - 0, -2, 152, 558, 779, 897, 911, 499, 484, 414, - 834, 303, 303, -57, 303, 303, 699, 742, 742, 759, - 742, 609, 715, 709, 709, 709, 617, 617, 617, 617, - -58, -58, 96, 697, 730, 767, 650, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, - 838, 838, 838, 838, 838, 838, 838, 838, 838, 52, - 405, 365, 666, 999, 1005, 1001, 1006, 997, 996, 1000, - 1002, 1007, 916, 917, 757, 918, 919, 920, 921, 1003, - 846, 998, 1004, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 636, - 38, 135, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 157, 157, 157, 204, 828, 828, 8, 602, - 162, 948, 948, 948, 948, 948, 948, 948, 948, 948, - 948, 351, 335, 438, 438, 438, 438, 438, 943, 439, - 439, 439, 439, 533, 754, 507, 468, 399, 398, 307, - 307, 678, 678, 16, 16, 16, 16, -60, -60, -60, - -103, 74, 437, 390, 57, 695, 598, 598, 598, 598, - 695, 695, 695, 695, 807, 1011, 695, 695, 695, 394, - 503, 503, 510, 295, 295, 295, 503, 504, 783, 804, - 504, 804, 15, 412, 728, 97, 114, 288, 728, 664, - 761, 141, 19, 781, 472, 781, 776, 842, 872, 1008, - 234, 793, 914, 801, 915, 84, 651, 994, 994, 994, - 994, 994, 994, 994, 994, 994, 994, 994, 1012, 995, - 381, 1012, 1012, 1012, 555, 381, 104, 477, 381, 786, - 995, 52, 798, 52, 52, 52, 52, 958, 52, 52, - 52, 52, 52, 52, 963, 731, 725, 682, 333, 52, - 405, 11, 11, 489, 32, 11, 11, 11, 11, 52, - 52, 52, 472, 770, 797, 550, 803, 122, 770, 770, - 770, 199, 23, 218, 29, 440, 758, 758, 765, 766, - 933, 933, 758, 748, 758, 766, 940, 758, 765, 765, - 933, 765, 775, 380, 563, 520, 528, 765, 765, 577, - 933, 473, 765, 765, 758, 758, 758, 758, 765, 589, - 758, 458, 427, 758, 758, 765, 765, 749, 746, 799, - 277, 933, 933, 933, 799, 524, 792, 792, 792, 815, - 816, 790, 744, 496, 488, 604, 342, 765, 744, 744, - 758, 540, 790, 744, 790, 744, 785, 744, 744, 744, - 790, 744, 758, 748, 557, 744, 683, 765, 592, 334, - 744, 6, 941, 944, 647, 945, 938, 946, 969, 947, - 949, 849, 956, 939, 950, 935, 934, 755, 672, 675, - 808, 756, 932, 644, 644, 644, 930, 644, 644, 644, - 644, 644, 644, 644, 644, 672, 800, 810, 788, 753, - 959, 677, 679, 789, 875, 1009, 1010, 795, 796, 958, - 989, 953, 802, 681, 975, 960, 874, 847, 961, 962, - 976, 990, 991, 881, 762, 882, 884, 806, 964, 850, - 644, 941, 949, 939, 950, 935, 934, 720, 719, 714, - 717, 710, 696, 691, 693, 740, 923, 844, 837, 963, - 931, 672, 843, 971, 841, 977, 978, 848, 787, 769, - 845, 885, 965, 966, 967, 856, 992, 814, 972, 823, - 979, 791, 886, 980, 981, 982, 983, 887, 859, 860, - 861, 817, 774, 870, 778, 889, 638, 773, 780, 970, - 653, 957, 862, 891, 892, 984, 985, 986, 893, 954, - 818, 973, 784, 974, 942, 819, 822, 656, 760, 772, - 659, 662, 905, 906, 907, 955, 747, 752, 824, 825, - 993, 909, 665, 826, 685, 912, 988, 686, 690, 745, - 871, 809, 777, 782, 968, 750, 827, 913, 829, 830, - 831, 987, 833, 0, 0, 0, 0, 0, 0, 0, + 0, -2, 154, 542, 752, 893, 929, 52, 374, 431, + 398, 869, 793, 235, 307, 307, 793, 307, 784, 908, + 908, 917, 908, 538, 841, 468, 468, 468, 708, 708, + 708, 708, 740, 740, 849, 849, 881, 817, 634, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 348, 346, 370, 653, 1063, 1069, + 1065, 1070, 1061, 1060, 1064, 1066, 1071, 946, 947, 774, + 949, 950, 943, 952, 1067, 882, 1062, 1068, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 525, 191, 359, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 174, 174, + 174, 620, 620, 51, 465, 356, 955, 955, 955, 955, + 955, 955, 955, 955, 955, 955, 658, 184, 144, 144, + 7, 7, 7, 7, 7, 1031, 371, 1048, -25, -25, + -25, -25, 50, 725, 526, 449, 39, 317, 80, 474, + 474, 13, 13, 512, 512, 422, 422, 512, 512, 512, + 808, 808, 808, 808, 443, 505, 360, 308, -78, 209, + 209, 209, 209, -78, -78, -78, -78, 803, 877, -78, + -78, -78, 63, 641, 641, 822, -1, -1, -1, 641, + 253, 790, 548, 253, 384, 548, 480, 402, 764, 759, + -49, 447, 764, 639, 755, 198, 143, 825, 609, 825, + 1059, 320, 768, 426, 749, 720, 874, 904, 1072, 796, + 941, 798, 942, 106, -58, 710, 1058, 1058, 1058, 1058, + 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1073, 336, 1059, + 423, 1073, 1073, 1073, 336, 336, 336, 336, 336, 336, + 336, 336, 336, 336, 619, 423, 586, 616, 423, 795, + 336, 348, 814, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 750, 202, 348, 346, 78, 78, 484, + 65, 78, 78, 78, 78, 348, 348, 348, 348, 609, + 783, 766, 613, 813, 492, 783, 783, 783, 473, 135, + 378, 488, 713, 775, 67, 779, 779, 785, 969, 969, + 779, 769, 779, 785, 975, 779, 779, 969, 969, 823, + 280, 563, 478, 550, 568, 969, 377, 779, 779, 779, + 779, 746, 573, 779, 342, 314, 779, 779, 746, 744, + 760, 43, 762, 969, 969, 969, 746, 547, 762, 762, + 762, 839, 844, 794, 758, 444, 433, 588, 232, 801, + 758, 758, 779, 558, 794, 758, 794, 758, 745, 758, + 758, 758, 794, 758, 769, 502, 758, 717, 583, 224, + 758, 6, 979, 980, 624, 981, 973, 987, 1019, 991, + 992, 873, 965, 999, 974, 993, 972, 970, 773, 682, + 684, 818, 811, 963, 777, 777, 777, 956, 777, 777, + 777, 777, 777, 777, 777, 777, 682, 743, 829, 765, + 1006, 689, 691, 754, 906, 901, 1030, 1004, 1049, 994, + 828, 694, 1028, 1008, 846, 821, 1009, 1010, 1029, 1050, + 1052, 910, 782, 911, 912, 876, 1012, 883, 777, 979, + 992, 693, 974, 993, 972, 970, 748, 739, 737, 738, + 736, 735, 723, 734, 753, 1053, 954, 907, 878, 1011, + 957, 682, 879, 1023, 756, 1032, 1033, 827, 788, 778, + 880, 913, 1014, 1015, 1016, 884, 1054, 887, 830, 1024, + 951, 1035, 789, 918, 1037, 1038, 1039, 1040, 889, 919, + 892, 916, 900, 845, 776, 1020, 761, 920, 591, 787, + 791, 800, 1018, 606, 1000, 902, 921, 922, 1041, 1043, + 1044, 923, 924, 995, 847, 1026, 799, 1027, 1022, 848, + 850, 617, 797, 1055, 781, 786, 772, 621, 632, 925, + 927, 931, 998, 763, 770, 853, 855, 1056, 771, 1057, + 938, 635, 857, 718, 939, 1046, 719, 724, 637, 678, + 672, 731, 792, 903, 826, 757, 780, 1017, 724, 767, + 858, 940, 859, 860, 867, 1045, 868, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 458, 458, 458, + 458, 458, 458, 307, 307, 307, 307, 307, 307, 307, + 0, 0, 307, 0, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 452, 452, 452, 452, 452, 452, 303, 303, 303, - 303, 0, 0, 303, 0, 0, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 695, 695, 287, 0, - 287, 695, 695, 695, 695, 695, 695, 695, 695, 695, - 695, 287, 287, 287, 287, 287, 287, 287, 775, 295, - 295, 295, 295, 695, 695, 695, 695, -37, -37, 295, - 295, 695, 695, 695, 695, 695, 695, 695, 695, 695, - 0, 0, 0, 381, 804, 0, 748, 748, 748, 748, - 0, 0, 0, 0, 804, 804, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 381, 804, 0, - 381, 0, 748, 748, 695, 775, 775, 310, 695, 0, - 0, 0, 0, 381, 748, 381, 804, 11, 52, 310, - 0, 481, 481, 481, 481, 0, 472, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 748, 775, - 0, 748, 748, 748, 0, 0, 0, 0, 0, 748, - 765, 0, 933, 0, 0, 0, 0, 758, 0, 0, - 0, 0, 0, 0, 758, 940, 765, 765, 0, 0, - 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, - 0, 0, 0, 644, 787, 0, 787, 0, 644, 644, - 644 + 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 66, 66, 291, + 291, 291, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 0, 291, 291, 291, 291, 291, 291, 291, + 291, 66, 823, 66, -1, -1, -1, -1, 66, 66, + 66, -88, -88, 66, 384, 66, 66, -1, -1, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 0, 0, 423, 548, 66, 769, 769, 769, 769, 66, + 66, 66, 66, 548, 548, 66, 66, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 423, 548, 0, 423, + 0, 0, 769, 769, 66, 384, 823, 643, 66, 0, + 0, 0, 0, 423, 769, 423, 336, 779, 548, 779, + 336, 336, 78, 348, 643, 611, 611, 611, 611, 0, + 0, 609, 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 769, 0, 823, 0, 769, 769, 769, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 769, 0, 0, 969, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 975, + 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 777, 788, 0, 788, + 0, 777, 777, 777, 0, 0, 0, 0, 797, 771 ); protected $actionDefault = array( - 3,32767, 100,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 98,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 561, 561, 561, 561, - 241, 100,32767,32767,32767,32767, 437, 356, 356, 356, - 32767,32767, 505, 505, 505, 505, 505, 505,32767,32767, - 32767,32767,32767,32767, 437,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, + 3,32767, 103,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 101,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 596, 596, + 596, 596,32767,32767, 254, 103,32767,32767, 469, 387, + 387, 387,32767,32767, 540, 540, 540, 540, 540, 540, + 32767,32767,32767,32767,32767,32767, 469,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 98,32767,32767,32767, - 35, 5, 6, 8, 9, 48, 15,32767,32767,32767, - 32767,32767, 100,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 554,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 101, + 32767,32767,32767, 37, 7, 8, 10, 11, 50, 17, + 324,32767,32767,32767,32767, 103,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 441, 420, 421, 423, 424, 355, 506, - 560, 298, 557, 354, 143, 310, 300, 229, 301, 245, - 442, 246, 443, 446, 447, 206, 272, 351, 147, 385, - 438, 387, 436, 440, 386, 361, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 359, - 360, 439, 417, 416, 415, 383,32767,32767, 384, 358, - 388,32767,32767,32767,32767,32767,32767,32767,32767, 100, - 32767, 390, 389, 406, 407, 404, 405, 408,32767, 409, - 410, 411, 412,32767,32767,32767,32767, 336, 334, 397, - 398, 289, 289,32767,32767,32767,32767,32767,32767,32767, - 32767, 499, 414,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 100,32767, 98, 501, - 380, 382, 469, 392, 393, 391, 362,32767, 476,32767, - 100, 478,32767,32767,32767, 109,32767,32767,32767, 500, - 32767, 507, 507,32767, 462, 98,32767,32767,32767,32767, - 267,32767,32767,32767,32767, 568, 462, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108,32767, 108, - 32767,32767,32767, 98, 186,32767, 255, 257, 100, 522, - 191,32767, 481,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 474, 191, 191,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 589,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 462, 402, 136,32767, 136, 507, 394, 395, - 396, 464, 507, 507, 507,32767,32767,32767, 191,32767, - 479, 479, 98, 98, 98, 98, 474,32767, 191, 191, - 32767, 191, 109, 97, 97, 97, 97, 191, 191, 97, - 101, 99, 191, 191,32767,32767,32767,32767, 191, 97, - 32767, 99, 99,32767,32767, 191, 191, 212, 203, 210, - 99,32767, 526, 527, 210, 99, 214, 214, 214, 234, - 234, 453, 291, 99, 97, 99, 99, 191, 291, 291, - 32767, 99, 453, 291, 453, 291, 193, 291, 291, 291, - 453, 291,32767,32767, 99, 291, 205, 191, 97, 97, - 291,32767,32767,32767, 464,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 494, - 32767, 511, 524, 400, 401, 403, 509, 425, 426, 427, - 428, 429, 430, 431, 433, 556,32767, 468,32767,32767, - 32767,32767, 309, 566,32767, 566,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 473, 452, + 453, 455, 456, 386, 541, 595, 327, 592, 385, 146, + 339, 329, 242, 330, 258, 474, 259, 475, 478, 479, + 215, 287, 382, 150, 151, 416, 470, 418, 468, 472, + 417, 392, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 390, 391, 471, 449, 448, + 447,32767,32767, 414, 415, 419,32767,32767,32767,32767, + 32767,32767,32767,32767, 103,32767, 389, 422, 420, 421, + 438, 439, 436, 437, 440,32767,32767,32767, 441, 442, + 443, 444, 316,32767,32767, 366, 364, 316, 112,32767, + 32767, 429, 430,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 534, 446,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 103, + 32767, 101, 536, 411, 413, 503, 424, 425, 423, 393, + 32767, 510,32767, 103,32767, 512,32767,32767,32767,32767, + 32767,32767,32767, 535,32767, 542, 542,32767, 496, 101, + 195,32767,32767,32767, 195, 195,32767,32767,32767,32767, + 32767,32767,32767,32767, 603, 496, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111,32767, 195, 111, + 32767,32767,32767, 101, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 190,32767, 268, 270, 103, 557, + 195,32767, 515,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 508,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 496, + 434, 139,32767, 139, 542, 426, 427, 428, 498, 542, + 542, 542, 312, 289,32767,32767,32767,32767, 513, 513, + 101, 101, 101, 101, 508,32767,32767,32767,32767, 112, + 100, 100, 100, 100, 100, 104, 102,32767,32767,32767, + 32767, 223, 100,32767, 102, 102,32767,32767, 223, 225, + 212, 102, 227,32767, 561, 562, 223, 102, 227, 227, + 227, 247, 247, 485, 318, 102, 100, 102, 102, 197, + 318, 318,32767, 102, 485, 318, 485, 318, 199, 318, + 318, 318, 485, 318,32767, 102, 318, 214, 100, 100, + 318,32767,32767,32767, 498,32767,32767,32767,32767,32767, + 32767,32767, 222,32767,32767,32767,32767,32767,32767,32767, + 529,32767, 546, 559, 432, 433, 435, 544, 457, 458, + 459, 460, 461, 462, 463, 465, 591,32767, 502,32767, + 32767,32767, 338, 601,32767, 601,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 567,32767, 507,32767,32767,32767,32767, - 399, 7, 74, 41, 42, 50, 56, 485, 486, 487, - 488, 482, 483, 489, 484,32767, 490, 532,32767,32767, - 508, 559,32767,32767,32767,32767,32767,32767, 136,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 494, - 32767, 134,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 507,32767,32767,32767, 286, 288,32767, + 32767, 602,32767, 542,32767,32767,32767,32767, 431, 9, + 76, 491, 43, 44, 52, 58, 519, 520, 521, 522, + 516, 517, 523, 518,32767,32767, 524, 567,32767,32767, + 543, 594,32767,32767,32767,32767,32767,32767, 139,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 507,32767,32767,32767, 274, 276, + 529,32767, 137,32767,32767,32767,32767,32767,32767,32767, + 32767, 525,32767,32767,32767, 542,32767,32767,32767,32767, + 314, 311,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 542,32767, + 32767,32767,32767,32767, 291,32767, 308,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 271,32767,32767, 350,32767,32767, - 32767,32767, 330,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 149, 149, 3, 3, 312, 149, 149, - 149, 312, 149, 312, 312, 312, 149, 149, 149, 149, - 149, 149, 181, 249, 252, 234, 234, 149, 322, 149 + 32767,32767,32767, 286,32767,32767, 381, 498, 294, 296, + 297,32767,32767,32767,32767, 360,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 153, 153, 3, + 3, 341, 153, 153, 153, 341, 341, 153, 341, 341, + 341, 153, 153, 153, 153, 153, 153, 280, 185, 262, + 265, 247, 247, 153, 352, 153 ); protected $goto = array( - 191, 191, 661, 403, 634, 453, 1237, 1238, 397, 300, - 301, 321, 555, 306, 402, 322, 404, 613, 1038, 1039, - 669, 315, 315, 315, 315, 162, 162, 162, 162, 188, - 188, 172, 174, 215, 192, 210, 188, 188, 188, 188, - 188, 189, 189, 189, 189, 189, 189, 183, 184, 185, - 186, 187, 212, 210, 213, 513, 514, 393, 515, 517, - 518, 519, 520, 521, 522, 523, 524, 1065, 163, 164, - 165, 190, 166, 167, 168, 161, 169, 170, 171, 173, - 209, 211, 214, 232, 235, 238, 240, 251, 252, 253, - 254, 255, 256, 257, 259, 260, 261, 262, 269, 270, - 303, 304, 305, 398, 399, 400, 560, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 175, 231, 176, 193, 194, 195, 233, 183, - 184, 185, 186, 187, 212, 1065, 196, 177, 178, 179, - 197, 193, 180, 234, 198, 160, 199, 200, 181, 201, - 202, 203, 182, 204, 205, 206, 207, 208, 814, 586, - 600, 603, 604, 605, 606, 625, 626, 627, 671, 811, - 599, 599, 539, 530, 577, 1194, 1194, 1194, 1194, 1194, - 1194, 1194, 1194, 1194, 1194, 280, 280, 280, 280, 997, - 332, 819, 812, 867, 862, 863, 876, 845, 820, 864, - 817, 865, 866, 818, 597, 631, 1144, 897, 788, 870, - 1145, 1148, 898, 1149, 367, 530, 871, 539, 872, 1018, - 1014, 1015, 792, 548, 549, 617, 617, 786, 374, 558, - 1159, 987, 984, 985, 579, 915, 383, 668, 1212, 1212, - 923, 593, 594, 1212, 1212, 1212, 1212, 1212, 1212, 1212, - 1212, 1212, 1212, 904, 975, 982, 983, 1163, 1163, 1163, - 979, 552, 792, 476, 792, 979, 979, 979, 979, 979, - 979, 979, 979, 979, 329, 396, 422, 588, 5, 1163, - 6, 422, 422, 14, 1163, 1163, 1163, 1163, 1160, 1252, - 1163, 1163, 1163, 1244, 1244, 1244, 1244, 944, 802, 363, - 335, 546, 551, 311, 295, 694, 612, 614, 883, 632, - 335, 335, 884, 651, 655, 958, 659, 667, 954, 1161, - 1220, 1221, 1239, 1240, 335, 335, 633, 335, 1113, 1279, - 365, 369, 540, 578, 582, 323, 1262, 1262, 1210, 1210, - 532, 804, 335, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1210, 1210, 1210, 1262, 409, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 832, 422, 1265, 373, - 525, 525, 525, 525, 545, 1223, 829, 516, 516, 581, - 966, 592, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 609, 610, 381, 382, 807, 807, 1156, 640, - 654, 641, 1003, 385, 386, 387, 628, 652, 642, 643, - 644, 388, 697, 531, 543, 454, 327, 1263, 1263, 531, - 841, 543, 442, 442, 366, 333, 334, 556, 591, 532, - 1234, 1234, 1234, 442, 1263, 527, 527, 527, 1007, 1048, - 267, 559, 447, 448, 449, 528, 528, 837, 928, 0, - 1270, 1271, 458, 1246, 1246, 1246, 1246, 430, 477, 0, - 478, 0, 917, 917, 917, 917, 485, 827, 430, 911, - 918, 810, 839, 0, 0, 826, 0, 835, 0, 1230, - 0, 0, 0, 947, 921, 921, 919, 921, 693, 486, - 529, 956, 951, 840, 828, 1002, 0, 0, 1006, 1158, - 888, 1053, 0, 807, 0, 0, 0, 0, 926, 596, - 0, 0, 0, 0, 963, 1005, 0, 0, 1232, 1232, - 1005, 0, 831, 0, 637, 942, 0, 0, 0, 0, - 825, 576, 1031, 916, 672, 658, 658, 0, 664, 1029, - 0, 0, 0, 1155, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1046, 844, 0, + 196, 196, 1031, 703, 694, 430, 658, 1062, 1334, 1334, + 424, 313, 314, 335, 573, 319, 429, 336, 431, 635, + 651, 652, 850, 669, 670, 671, 1334, 167, 167, 167, + 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, + 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, + 189, 190, 191, 192, 218, 216, 219, 534, 535, 420, + 536, 538, 539, 540, 541, 542, 543, 544, 545, 1132, + 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, + 176, 178, 215, 217, 220, 238, 243, 244, 245, 257, + 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, + 271, 281, 282, 316, 317, 318, 425, 426, 427, 578, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, + 200, 239, 188, 189, 190, 191, 192, 218, 1132, 201, + 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, + 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, + 212, 213, 214, 853, 851, 278, 278, 278, 278, 418, + 620, 620, 350, 570, 597, 1265, 1265, 1265, 1265, 1265, + 1265, 1265, 1265, 1265, 1265, 1283, 1283, 831, 618, 655, + 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, + 353, 353, 353, 353, 866, 557, 550, 858, 825, 907, + 902, 903, 916, 859, 904, 856, 905, 906, 857, 878, + 457, 910, 865, 884, 546, 546, 546, 546, 831, 601, + 831, 1084, 1079, 1080, 1081, 341, 550, 557, 566, 567, + 343, 576, 599, 613, 614, 407, 408, 972, 465, 465, + 667, 15, 668, 1323, 411, 412, 413, 465, 681, 348, + 1233, 414, 1233, 478, 569, 346, 439, 1031, 1031, 1233, + 993, 480, 1031, 393, 1031, 1031, 1104, 1105, 1031, 1031, + 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1315, + 1315, 1315, 1315, 1233, 657, 1333, 1333, 1055, 1233, 1233, + 1233, 1233, 1037, 1036, 1233, 1233, 1233, 1034, 1034, 1181, + 354, 678, 949, 1333, 437, 1026, 1042, 1043, 337, 691, + 354, 354, 827, 923, 691, 1040, 1041, 924, 691, 663, + 1336, 939, 871, 939, 354, 354, 1281, 1281, 354, 679, + 1350, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, + 1281, 552, 537, 537, 911, 354, 912, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 548, 564, 548, + 574, 611, 730, 634, 636, 849, 548, 656, 475, 1308, + 1309, 680, 684, 1007, 692, 701, 1003, 252, 252, 996, + 970, 970, 968, 970, 729, 843, 549, 1005, 1000, 423, + 455, 608, 1294, 846, 955, 966, 966, 966, 966, 325, + 308, 455, 960, 967, 249, 249, 249, 249, 251, 253, + 402, 351, 352, 683, 868, 551, 561, 449, 449, 449, + 551, 1305, 561, 1305, 612, 396, 461, 1010, 1010, 1224, + 1305, 395, 398, 558, 598, 602, 1015, 468, 577, 469, + 470, 1310, 1311, 876, 552, 846, 1341, 1342, 964, 409, + 702, 733, 324, 275, 324, 1317, 1317, 1317, 1317, 606, + 621, 624, 625, 626, 627, 648, 649, 650, 705, 1068, + 596, 1097, 874, 706, 476, 1228, 507, 697, 880, 1095, + 1115, 432, 1301, 628, 630, 632, 432, 879, 867, 1067, + 1071, 5, 1072, 6, 1038, 1038, 977, 0, 975, 662, + 1049, 1045, 1046, 0, 0, 0, 0, 1226, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 928, + 1120, 449, 965, 1070, 0, 0, 616, 1303, 1303, 1070, + 1229, 1230, 1012, 499, 0, 500, 0, 0, 841, 0, + 870, 506, 661, 991, 1113, 883, 1212, 941, 864, 0, + 1213, 1216, 942, 1217, 0, 0, 1231, 1291, 1292, 0, + 1223, 0, 0, 0, 846, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 961, 961 + 0, 0, 0, 0, 0, 0, 0, 255, 255 ); protected $gotoCheck = array( - 41, 41, 71, 64, 64, 160, 160, 160, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 130, 130, - 8, 22, 22, 22, 22, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 14, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 25, - 102, 102, 74, 74, 116, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 23, 23, 23, 23, 113, - 91, 14, 26, 14, 14, 14, 14, 44, 14, 14, - 14, 14, 14, 14, 54, 54, 76, 76, 6, 14, - 76, 76, 76, 76, 74, 74, 63, 74, 63, 14, - 14, 14, 11, 74, 74, 109, 109, 5, 74, 74, - 19, 109, 109, 109, 74, 87, 87, 87, 154, 154, - 48, 74, 74, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 85, 85, 85, 85, 71, 71, 71, - 71, 156, 11, 74, 11, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 163, 12, 22, 12, 45, 71, - 45, 22, 22, 74, 71, 71, 71, 71, 19, 165, - 71, 71, 71, 8, 8, 8, 8, 97, 19, 60, - 13, 47, 98, 153, 153, 47, 47, 47, 71, 47, - 13, 13, 71, 47, 47, 47, 47, 47, 47, 19, - 19, 19, 162, 162, 13, 13, 62, 13, 137, 13, - 57, 57, 57, 57, 57, 28, 166, 166, 155, 155, - 13, 17, 13, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 166, 106, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 38, 22, 166, 27, - 101, 101, 101, 101, 8, 13, 36, 157, 157, 101, - 104, 8, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 81, 81, 78, 78, 21, 21, 146, 78, - 13, 78, 115, 78, 78, 78, 82, 78, 82, 82, - 82, 78, 93, 8, 8, 143, 78, 167, 167, 8, - 40, 8, 135, 135, 8, 91, 91, 2, 2, 13, - 116, 116, 116, 135, 167, 18, 18, 18, 118, 133, - 23, 8, 8, 8, 8, 23, 23, 8, 90, -1, - 8, 8, 80, 116, 116, 116, 116, 18, 141, -1, - 141, -1, 18, 18, 18, 18, 141, 34, 18, 18, - 18, 24, 34, -1, -1, 34, -1, 8, -1, 116, - -1, -1, -1, 24, 24, 24, 24, 24, 24, 8, - 24, 24, 24, 15, 15, 15, -1, -1, 15, 13, - 16, 16, -1, 21, -1, -1, -1, -1, 15, 16, - -1, -1, -1, -1, 16, 116, -1, -1, 116, 116, - 116, -1, 16, -1, 16, 16, -1, -1, -1, -1, - 16, 7, 7, 15, 7, 7, 7, -1, 7, 7, - -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 15, 15, -1, + 42, 42, 72, 9, 72, 65, 65, 126, 181, 181, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 85, 85, 26, 85, 85, 85, 181, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 15, 27, 23, 23, 23, 23, 43, + 107, 107, 96, 170, 129, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 168, 168, 12, 55, 55, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 24, 24, 24, 24, 35, 75, 75, 15, 6, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, + 82, 15, 35, 45, 106, 106, 106, 106, 12, 106, + 12, 15, 15, 15, 15, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 81, 81, 49, 148, 148, + 81, 75, 81, 179, 81, 81, 81, 148, 81, 177, + 72, 81, 72, 83, 103, 81, 82, 72, 72, 72, + 102, 83, 72, 61, 72, 72, 143, 143, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 9, + 9, 9, 9, 72, 63, 180, 180, 113, 72, 72, + 72, 72, 117, 117, 72, 72, 72, 88, 88, 150, + 14, 88, 88, 180, 112, 88, 88, 88, 29, 7, + 14, 14, 7, 72, 7, 118, 118, 72, 7, 119, + 180, 9, 39, 9, 14, 14, 169, 169, 14, 115, + 14, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 14, 171, 171, 64, 14, 64, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 19, 48, 19, + 2, 2, 48, 48, 48, 25, 19, 48, 174, 174, + 174, 48, 48, 48, 48, 48, 48, 5, 5, 25, + 25, 25, 25, 25, 25, 18, 25, 25, 25, 13, + 19, 13, 14, 22, 91, 19, 19, 19, 19, 167, + 167, 19, 19, 19, 5, 5, 5, 5, 5, 5, + 28, 96, 96, 14, 37, 9, 9, 23, 23, 23, + 9, 129, 9, 129, 79, 9, 9, 106, 106, 159, + 129, 58, 58, 58, 58, 58, 109, 9, 9, 9, + 9, 176, 176, 9, 14, 22, 9, 9, 92, 92, + 92, 98, 24, 24, 24, 129, 129, 129, 129, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 128, + 8, 8, 9, 8, 156, 20, 8, 8, 41, 8, + 146, 116, 129, 84, 84, 84, 116, 16, 16, 16, + 16, 46, 131, 46, 116, 116, 95, -1, 16, 116, + 116, 116, 116, -1, -1, -1, -1, 14, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 17, + 17, 23, 16, 129, -1, -1, 17, 129, 129, 129, + 20, 20, 17, 154, -1, 154, -1, -1, 20, -1, + 17, 154, 17, 17, 16, 16, 78, 78, 17, -1, + 78, 78, 78, 78, -1, -1, 20, 20, 20, -1, + 17, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 101, 101 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 5 ); protected $gotoBase = array( - 0, 0, -248, 0, 0, 214, 199, 524, 7, 0, - 0, -61, -48, 16, -170, 69, 59, 45, 172, -132, - 0, 81, 18, 182, 467, 165, 188, 46, 52, 0, - 0, 0, 0, 0, 117, 0, 51, 0, 56, 0, - 8, -1, 0, 0, 185, -419, 0, -373, 218, 0, - 0, 0, 0, 0, 166, 0, 0, 287, 0, 0, - 259, 0, 89, 198, -233, 0, 0, 0, 0, 0, - 0, -6, 0, 0, -204, 0, -175, -179, -74, 0, - -2, -65, -275, 0, 0, -20, 0, -56, 0, 0, - 34, -270, 0, 32, 0, 0, 0, 266, 261, 0, - 0, 344, -66, 0, 31, 0, 82, 0, 0, -46, - 0, 0, 0, 187, 0, 49, 167, 0, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -249, 0, 0, 24, 0, 392, 0, 63, 0, 0, - 0, -14, 0, 4, 0, 0, -10, 0, 0, 0, - 0, 0, 0, -5, 2, 102, 234, 141, 0, 0, - -282, 0, -29, 246, 0, 260, 42, 123, 0, 0 + 0, 0, -339, 0, 0, 386, 195, 312, 472, -10, + 0, 0, -109, 62, 13, -184, 46, 65, 86, 102, + 93, 0, 125, 162, 197, 371, 18, 160, 83, 22, + 0, 0, 0, 0, 0, -166, 0, 85, 0, 9, + 0, 48, -1, 157, 0, 207, -232, 0, -340, 223, + 0, 0, 0, 0, 0, 148, 0, 0, 396, 0, + 0, 231, 0, 52, 334, -236, 0, 0, 0, 0, + 0, 0, -5, 0, 0, -139, 0, 0, 149, 91, + 112, -245, -58, -205, 15, -695, 0, 0, 28, 0, + 0, 75, 154, 0, 0, 64, -310, 0, 55, 0, + 0, 0, 235, 221, 0, 0, 196, -71, 0, 77, + 0, 0, 37, 24, 0, 56, 219, 23, 40, 39, + 0, 0, 0, 0, 0, 0, 5, 0, 106, 166, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 47, 0, 214, 0, + 35, 0, 0, 0, 49, 0, 45, 0, 0, 71, + 0, 0, 0, 0, 0, 0, 0, 88, -56, 95, + 144, 111, 0, 0, 78, 0, 80, 229, 0, 222, + -12, -299, 0, 0 ); protected $gotoDefault = array( - -32768, 491, 701, 4, 702, 776, 784, 575, 507, 670, - 328, 601, 394, 1228, 869, 1052, 557, 803, 1172, 1180, - 431, 806, 316, 330, 851, 852, 853, 370, 355, 361, - 368, 623, 602, 471, 838, 425, 830, 463, 833, 424, - 842, 159, 391, 489, 846, 3, 848, 534, 879, 356, - 856, 357, 647, 858, 542, 860, 861, 364, 371, 372, - 1057, 550, 598, 873, 239, 544, 874, 354, 875, 882, - 359, 362, 656, 441, 483, 384, 1033, 585, 620, 437, - 457, 608, 607, 595, 456, 638, 389, 913, 464, 439, - 927, 331, 935, 699, 1064, 615, 466, 943, 616, 950, - 953, 508, 509, 455, 965, 271, 467, 992, 639, 977, - 618, 990, 450, 996, 426, 1004, 1216, 429, 1008, 258, - 1011, 272, 390, 405, 1016, 1017, 8, 1023, 662, 663, - 10, 268, 488, 1047, 657, 423, 1063, 410, 1132, 1134, - 536, 468, 1152, 1151, 650, 484, 1157, 1219, 420, 510, - 451, 302, 511, 294, 319, 299, 526, 281, 320, 512, - 452, 1225, 1233, 317, 29, 1253, 1264, 326, 554, 590 + -32768, 511, 737, 4, 738, 932, 814, 823, 594, 528, + 704, 347, 622, 421, 1299, 909, 1119, 575, 842, 1242, + 1250, 456, 845, 330, 727, 891, 892, 893, 399, 385, + 391, 397, 646, 623, 493, 877, 452, 869, 485, 872, + 451, 881, 164, 417, 509, 885, 3, 888, 554, 919, + 386, 896, 387, 674, 898, 560, 900, 901, 394, 400, + 401, 1124, 568, 619, 913, 256, 562, 914, 384, 915, + 922, 389, 392, 685, 464, 504, 498, 410, 1099, 563, + 605, 643, 446, 472, 617, 629, 615, 479, 433, 415, + 329, 954, 962, 486, 462, 976, 349, 984, 735, 1131, + 637, 488, 992, 638, 999, 1002, 529, 530, 477, 1014, + 272, 1017, 489, 12, 664, 1028, 1029, 665, 639, 1051, + 640, 666, 641, 1053, 471, 595, 1061, 453, 1069, 1287, + 454, 1073, 266, 1076, 277, 416, 434, 1082, 1083, 9, + 1089, 695, 696, 11, 276, 508, 1114, 686, 450, 1130, + 438, 1200, 1202, 556, 490, 1220, 1219, 677, 505, 1225, + 447, 1290, 448, 531, 473, 315, 532, 307, 333, 312, + 547, 294, 334, 533, 474, 1296, 1304, 331, 31, 1324, + 1335, 342, 572, 610 ); protected $ruleToNonTerminal = array( - 0, 1, 3, 3, 2, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, - 6, 6, 6, 7, 7, 8, 9, 10, 10, 10, - 11, 11, 12, 12, 13, 14, 14, 15, 15, 16, - 16, 17, 17, 20, 20, 21, 22, 22, 23, 23, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 28, 28, 29, 29, 31, 33, 33, 27, 35, - 35, 32, 37, 37, 34, 34, 36, 36, 38, 38, - 30, 39, 39, 40, 42, 43, 43, 44, 45, 45, - 47, 46, 46, 46, 46, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 24, - 24, 67, 67, 70, 70, 69, 68, 68, 61, 73, - 73, 74, 74, 75, 75, 76, 76, 25, 25, 26, - 26, 26, 26, 84, 84, 86, 86, 79, 79, 79, - 80, 80, 83, 83, 81, 81, 87, 88, 88, 55, - 55, 63, 63, 66, 66, 66, 65, 89, 89, 90, - 56, 56, 56, 56, 91, 91, 92, 92, 93, 93, - 94, 95, 95, 96, 96, 97, 97, 53, 53, 49, - 49, 99, 51, 51, 100, 50, 50, 52, 52, 62, - 62, 62, 62, 77, 77, 103, 103, 105, 105, 105, - 105, 104, 104, 104, 107, 107, 107, 85, 85, 109, - 109, 109, 108, 108, 110, 110, 111, 111, 111, 106, - 106, 78, 78, 78, 19, 19, 112, 112, 113, 113, - 113, 113, 58, 114, 114, 115, 59, 117, 117, 118, - 118, 119, 119, 82, 120, 120, 120, 120, 120, 120, - 125, 125, 126, 126, 127, 127, 127, 127, 127, 128, - 129, 129, 124, 124, 121, 121, 123, 123, 131, 131, - 130, 130, 130, 130, 130, 130, 122, 132, 132, 134, - 133, 133, 60, 98, 135, 135, 54, 54, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 142, 136, 136, 141, 141, 144, 145, 145, 146, 147, - 147, 147, 18, 18, 71, 71, 71, 71, 137, 137, - 137, 137, 149, 149, 138, 138, 140, 140, 140, 143, - 143, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 155, 155, 102, 157, 157, 157, 157, 139, 139, 139, - 139, 139, 139, 139, 139, 57, 57, 152, 152, 152, - 152, 158, 158, 148, 148, 148, 159, 159, 159, 159, - 159, 159, 72, 72, 64, 64, 64, 64, 116, 116, - 116, 116, 162, 161, 151, 151, 151, 151, 151, 151, - 151, 150, 150, 150, 160, 160, 160, 160, 101, 156, - 164, 164, 163, 163, 165, 165, 165, 165, 165, 165, - 165, 165, 153, 153, 153, 153, 167, 168, 166, 166, - 166, 166, 166, 166, 166, 166, 169, 169, 169, 169 + 0, 1, 3, 3, 2, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, + 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, + 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, + 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, + 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, + 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 25, 25, 68, 68, 71, 71, 70, + 69, 69, 62, 74, 74, 75, 75, 76, 76, 77, + 77, 78, 78, 79, 79, 26, 26, 27, 27, 27, + 27, 27, 87, 87, 89, 89, 82, 82, 90, 90, + 91, 91, 91, 83, 83, 86, 86, 84, 84, 92, + 93, 93, 56, 56, 64, 64, 67, 67, 67, 66, + 94, 94, 95, 57, 57, 57, 57, 96, 96, 97, + 97, 98, 98, 99, 100, 100, 101, 101, 102, 102, + 54, 54, 50, 50, 104, 52, 52, 105, 51, 51, + 53, 53, 63, 63, 63, 63, 80, 80, 108, 108, + 110, 110, 111, 111, 111, 111, 109, 109, 109, 113, + 113, 113, 113, 88, 88, 116, 116, 116, 117, 117, + 114, 114, 118, 118, 120, 120, 121, 121, 115, 122, + 122, 119, 123, 123, 123, 123, 112, 112, 81, 81, + 81, 20, 20, 20, 125, 124, 124, 126, 126, 126, + 126, 59, 127, 127, 128, 60, 130, 130, 131, 131, + 132, 132, 85, 133, 133, 133, 133, 133, 133, 133, + 138, 138, 139, 139, 140, 140, 140, 140, 140, 141, + 142, 142, 137, 137, 134, 134, 136, 136, 144, 144, + 143, 143, 143, 143, 143, 143, 143, 135, 145, 145, + 147, 146, 146, 61, 103, 148, 148, 55, 55, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 155, 149, 149, 154, 154, 157, 158, 158, + 159, 160, 161, 161, 161, 161, 19, 19, 72, 72, + 72, 72, 150, 150, 150, 150, 163, 163, 151, 151, + 153, 153, 153, 156, 156, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 169, 169, 169, 107, 171, 171, + 171, 171, 152, 152, 152, 152, 152, 152, 152, 152, + 58, 58, 166, 166, 166, 166, 172, 172, 162, 162, + 162, 173, 173, 173, 173, 173, 173, 73, 73, 65, + 65, 65, 65, 129, 129, 129, 129, 176, 175, 165, + 165, 165, 165, 165, 165, 165, 164, 164, 164, 174, + 174, 174, 174, 106, 170, 178, 178, 177, 177, 179, + 179, 179, 179, 179, 179, 179, 179, 167, 167, 167, + 167, 181, 182, 180, 180, 180, 180, 180, 180, 180, + 180, 183, 183, 183, 183 ); protected $ruleToLength = array( @@ -905,55 +947,59 @@ class Php7 extends \PhpParser\ParserAbstract 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 3, 4, 1, 2, 0, 1, - 1, 1, 1, 1, 3, 5, 4, 3, 4, 2, - 3, 1, 1, 7, 6, 2, 3, 1, 2, 3, - 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, - 2, 3, 1, 3, 2, 3, 1, 3, 2, 0, - 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, - 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, - 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, - 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, - 3, 0, 1, 0, 1, 3, 1, 8, 9, 8, - 7, 6, 8, 0, 2, 0, 2, 1, 2, 2, - 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, - 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, - 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, - 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, - 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, - 2, 1, 1, 2, 0, 1, 3, 0, 1, 1, - 1, 6, 8, 6, 1, 2, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 1, 2, 1, 0, - 1, 0, 2, 2, 2, 4, 1, 3, 1, 2, - 2, 3, 2, 3, 1, 1, 2, 3, 1, 1, - 3, 2, 0, 1, 5, 5, 10, 3, 5, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, + 2, 0, 1, 1, 1, 1, 1, 3, 5, 4, + 3, 4, 2, 3, 1, 1, 7, 6, 2, 3, + 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, + 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, + 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, + 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, + 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, + 3, 2, 1, 1, 1, 0, 2, 1, 3, 8, + 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, + 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, + 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, + 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, + 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, + 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, + 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, + 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, + 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, + 0, 2, 1, 1, 1, 1, 6, 8, 6, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, + 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, + 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, + 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, + 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, - 1, 3, 2, 2, 3, 1, 0, 1, 1, 3, - 3, 3, 4, 1, 1, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, + 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, + 3, 3, 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, - 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, - 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, - 8, 3, 2, 0, 4, 2, 1, 3, 2, 2, - 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 0, 3, 0, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 3, 4, 1, 1, 3, 1, 1, 1, - 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 3, 1, 1, 4, 4, 1, - 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, - 2, 2, 1, 3, 1, 4, 4, 3, 3, 3, - 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, - 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, - 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, - 3, 3, 3, 3, 6, 3, 1, 1, 2, 1 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, + 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, + 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, + 9, 10, 8, 3, 2, 0, 4, 2, 1, 3, + 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 0, 3, + 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, + 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, + 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, + 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, + 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, + 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, + 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, + 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -1209,25 +1255,25 @@ protected function initReduceCallbacks() { $this->semValue = $this->semStack[$stackPos]; }, 83 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 84 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 85 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 86 => function ($stackPos) { $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 87 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 88 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 89 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 90 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); @@ -1236,118 +1282,118 @@ protected function initReduceCallbacks() { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 92 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 93 => function ($stackPos) { - $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 94 => function ($stackPos) { - $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 95 => function ($stackPos) { - /* nothing */ + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 96 => function ($stackPos) { - /* nothing */ + $this->semValue = new Name(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 97 => function ($stackPos) { - /* nothing */ + $this->semValue = new Expr\Variable(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 98 => function ($stackPos) { - $this->emitError(new Error('A trailing comma is not allowed here', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + /* nothing */ }, 99 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + /* nothing */ }, 100 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + /* nothing */ }, 101 => function ($stackPos) { - $this->semValue = new Node\Attribute($this->semStack[$stackPos-(1-1)], [], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->emitError(new Error('A trailing comma is not allowed here', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, 102 => function ($stackPos) { - $this->semValue = new Node\Attribute($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 103 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos]; }, 104 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Node\Attribute($this->semStack[$stackPos-(1-1)], [], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 105 => function ($stackPos) { - $this->semValue = new Node\AttributeGroup($this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Node\Attribute($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 106 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 107 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 108 => function ($stackPos) { - $this->semValue = []; + $this->semValue = new Node\AttributeGroup($this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 109 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 110 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 111 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = []; }, 112 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 113 => function ($stackPos) { - $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 114 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 115 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 116 => function ($stackPos) { + $this->semValue = new Stmt\HaltCompiler($this->lexer->handleHaltCompiler(), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 117 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(3-2)], null, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); $this->checkNamespace($this->semValue); }, - 115 => function ($stackPos) { + 118 => function ($stackPos) { $this->semValue = new Stmt\Namespace_($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 116 => function ($stackPos) { + 119 => function ($stackPos) { $this->semValue = new Stmt\Namespace_(null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); $this->semValue->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); $this->checkNamespace($this->semValue); }, - 117 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 118 => function ($stackPos) { - $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 119 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, 120 => function ($stackPos) { - $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(3-2)], Stmt\Use_::TYPE_NORMAL, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 121 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_FUNCTION; + $this->semValue = new Stmt\Use_($this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 122 => function ($stackPos) { - $this->semValue = Stmt\Use_::TYPE_CONSTANT; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 123 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = new Stmt\Const_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 124 => function ($stackPos) { - $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + $this->semValue = Stmt\Use_::TYPE_FUNCTION; }, 125 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = Stmt\Use_::TYPE_CONSTANT; }, 126 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->semStack[$stackPos-(7-2)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 127 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Stmt\GroupUse($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-5)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 128 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; @@ -1368,70 +1414,82 @@ protected function initReduceCallbacks() { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 134 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 135 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 136 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 137 => function ($stackPos) { - $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); }, 138 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); }, 139 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(1-1)], null, Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(1-1)); }, 140 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = new Stmt\UseUse($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], Stmt\Use_::TYPE_UNKNOWN, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->checkUseUse($this->semValue, $stackPos-(3-3)); }, 141 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; $this->semValue->type = Stmt\Use_::TYPE_NORMAL; }, 142 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-2)]; $this->semValue->type = $this->semStack[$stackPos-(2-1)]; }, 143 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 144 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 145 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 146 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 147 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 148 => function ($stackPos) { - if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 149 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 150 => function ($stackPos) { + $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 151 => function ($stackPos) { + $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 152 => function ($stackPos) { + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + }, + 153 => function ($stackPos) { + $this->semValue = array(); + }, + 154 => function ($stackPos) { $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 151 => function ($stackPos) { + 155 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 152 => function ($stackPos) { + 156 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 153 => function ($stackPos) { + 157 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 154 => function ($stackPos) { + 158 => function ($stackPos) { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 155 => function ($stackPos) { + 159 => function ($stackPos) { if ($this->semStack[$stackPos-(3-2)]) { $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; @@ -1441,46 +1499,46 @@ protected function initReduceCallbacks() { } }, - 156 => function ($stackPos) { + 160 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => is_array($this->semStack[$stackPos-(7-5)]) ? $this->semStack[$stackPos-(7-5)] : array($this->semStack[$stackPos-(7-5)]), 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 157 => function ($stackPos) { + 161 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 158 => function ($stackPos) { + 162 => function ($stackPos) { $this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 159 => function ($stackPos) { + 163 => function ($stackPos) { $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], is_array($this->semStack[$stackPos-(7-2)]) ? $this->semStack[$stackPos-(7-2)] : array($this->semStack[$stackPos-(7-2)]), $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 160 => function ($stackPos) { + 164 => function ($stackPos) { $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 161 => function ($stackPos) { + 165 => function ($stackPos) { $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 162 => function ($stackPos) { + 166 => function ($stackPos) { $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 163 => function ($stackPos) { + 167 => function ($stackPos) { $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 164 => function ($stackPos) { + 168 => function ($stackPos) { $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 165 => function ($stackPos) { + 169 => function ($stackPos) { $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 166 => function ($stackPos) { + 170 => function ($stackPos) { $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 167 => function ($stackPos) { + 171 => function ($stackPos) { $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 168 => function ($stackPos) { + 172 => function ($stackPos) { $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 169 => function ($stackPos) { + 173 => function ($stackPos) { $e = $this->semStack[$stackPos-(2-1)]; if ($e instanceof Expr\Throw_) { @@ -1492,1253 +1550,1347 @@ protected function initReduceCallbacks() { } }, - 170 => function ($stackPos) { + 174 => function ($stackPos) { $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 171 => function ($stackPos) { + 175 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 172 => function ($stackPos) { + 176 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 173 => function ($stackPos) { + 177 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->startAttributeStack[$stackPos-(6-4)] + $this->endAttributeStack[$stackPos-(6-4)]), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, - 174 => function ($stackPos) { + 178 => function ($stackPos) { $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 175 => function ($stackPos) { + 179 => function ($stackPos) { $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); }, - 176 => function ($stackPos) { + 180 => function ($stackPos) { $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 177 => function ($stackPos) { + 181 => function ($stackPos) { $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 178 => function ($stackPos) { + 182 => function ($stackPos) { $this->semValue = array(); /* means: no statement */ }, - 179 => function ($stackPos) { + 183 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 180 => function ($stackPos) { + 184 => function ($stackPos) { $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ }, - 181 => function ($stackPos) { + 185 => function ($stackPos) { $this->semValue = array(); }, - 182 => function ($stackPos) { + 186 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 183 => function ($stackPos) { + 187 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 184 => function ($stackPos) { + 188 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 185 => function ($stackPos) { + 189 => function ($stackPos) { $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 186 => function ($stackPos) { + 190 => function ($stackPos) { $this->semValue = null; }, - 187 => function ($stackPos) { + 191 => function ($stackPos) { $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 188 => function ($stackPos) { + 192 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 189 => function ($stackPos) { + 193 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 190 => function ($stackPos) { + 194 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 191 => function ($stackPos) { + 195 => function ($stackPos) { $this->semValue = false; }, - 192 => function ($stackPos) { + 196 => function ($stackPos) { $this->semValue = true; }, - 193 => function ($stackPos) { + 197 => function ($stackPos) { $this->semValue = false; }, - 194 => function ($stackPos) { + 198 => function ($stackPos) { $this->semValue = true; }, - 195 => function ($stackPos) { + 199 => function ($stackPos) { + $this->semValue = false; + }, + 200 => function ($stackPos) { + $this->semValue = true; + }, + 201 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 196 => function ($stackPos) { + 202 => function ($stackPos) { $this->semValue = []; }, - 197 => function ($stackPos) { + 203 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 204 => function ($stackPos) { + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 205 => function ($stackPos) { $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 198 => function ($stackPos) { + 206 => function ($stackPos) { $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 199 => function ($stackPos) { + 207 => function ($stackPos) { + $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->checkClass($this->semValue, $stackPos-(7-2)); + }, + 208 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos-(8-3)); }, - 200 => function ($stackPos) { + 209 => function ($stackPos) { $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); $this->checkInterface($this->semValue, $stackPos-(7-3)); }, - 201 => function ($stackPos) { + 210 => function ($stackPos) { $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, - 202 => function ($stackPos) { + 211 => function ($stackPos) { $this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); $this->checkEnum($this->semValue, $stackPos-(8-3)); }, - 203 => function ($stackPos) { + 212 => function ($stackPos) { $this->semValue = null; }, - 204 => function ($stackPos) { + 213 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 205 => function ($stackPos) { + 214 => function ($stackPos) { $this->semValue = null; }, - 206 => function ($stackPos) { + 215 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 207 => function ($stackPos) { + 216 => function ($stackPos) { $this->semValue = 0; }, - 208 => function ($stackPos) { + 217 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 218 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 219 => function ($stackPos) { + $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 220 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, - 209 => function ($stackPos) { + 221 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, - 210 => function ($stackPos) { + 222 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 223 => function ($stackPos) { $this->semValue = null; }, - 211 => function ($stackPos) { + 224 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 212 => function ($stackPos) { + 225 => function ($stackPos) { $this->semValue = array(); }, - 213 => function ($stackPos) { + 226 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 214 => function ($stackPos) { + 227 => function ($stackPos) { $this->semValue = array(); }, - 215 => function ($stackPos) { + 228 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 216 => function ($stackPos) { + 229 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 217 => function ($stackPos) { + 230 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 218 => function ($stackPos) { + 231 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 219 => function ($stackPos) { + 232 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 220 => function ($stackPos) { + 233 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 221 => function ($stackPos) { + 234 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 222 => function ($stackPos) { + 235 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 223 => function ($stackPos) { + 236 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 224 => function ($stackPos) { + 237 => function ($stackPos) { $this->semValue = null; }, - 225 => function ($stackPos) { + 238 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 226 => function ($stackPos) { + 239 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 227 => function ($stackPos) { + 240 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 228 => function ($stackPos) { + 241 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 229 => function ($stackPos) { + 242 => function ($stackPos) { $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 230 => function ($stackPos) { + 243 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 231 => function ($stackPos) { + 244 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-3)]; }, - 232 => function ($stackPos) { + 245 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 233 => function ($stackPos) { + 246 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(5-3)]; }, - 234 => function ($stackPos) { + 247 => function ($stackPos) { $this->semValue = array(); }, - 235 => function ($stackPos) { + 248 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 236 => function ($stackPos) { + 249 => function ($stackPos) { $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 237 => function ($stackPos) { + 250 => function ($stackPos) { $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 238 => function ($stackPos) { + 251 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, - 239 => function ($stackPos) { + 252 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, - 240 => function ($stackPos) { + 253 => function ($stackPos) { $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 241 => function ($stackPos) { + 254 => function ($stackPos) { $this->semValue = []; }, - 242 => function ($stackPos) { + 255 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 243 => function ($stackPos) { + 256 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 244 => function ($stackPos) { + 257 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 245 => function ($stackPos) { + 258 => function ($stackPos) { $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 246 => function ($stackPos) { + 259 => function ($stackPos) { $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 247 => function ($stackPos) { + 260 => function ($stackPos) { $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, - 248 => function ($stackPos) { + 261 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 249 => function ($stackPos) { + 262 => function ($stackPos) { $this->semValue = array(); }, - 250 => function ($stackPos) { + 263 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 251 => function ($stackPos) { + 264 => function ($stackPos) { $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 252 => function ($stackPos) { + 265 => function ($stackPos) { $this->semValue = array(); }, - 253 => function ($stackPos) { + 266 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 254 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); + 267 => function ($stackPos) { + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); }, - 255 => function ($stackPos) { + 268 => function ($stackPos) { $this->semValue = null; }, - 256 => function ($stackPos) { + 269 => function ($stackPos) { $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 257 => function ($stackPos) { + 270 => function ($stackPos) { $this->semValue = null; }, - 258 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + 271 => function ($stackPos) { + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); }, - 259 => function ($stackPos) { + 272 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, - 260 => function ($stackPos) { + 273 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(2-2)], true); }, - 261 => function ($stackPos) { + 274 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, - 262 => function ($stackPos) { + 275 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, - 263 => function ($stackPos) { + 276 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 264 => function ($stackPos) { + 277 => function ($stackPos) { $this->semValue = array(); }, - 265 => function ($stackPos) { + 278 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 266 => function ($stackPos) { + 279 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 267 => function ($stackPos) { + 280 => function ($stackPos) { $this->semValue = 0; }, - 268 => function ($stackPos) { + 281 => function ($stackPos) { + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 282 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, - 269 => function ($stackPos) { + 283 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, - 270 => function ($stackPos) { + 284 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, - 271 => function ($stackPos) { + 285 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 286 => function ($stackPos) { $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); $this->checkParam($this->semValue); }, - 272 => function ($stackPos) { + 287 => function ($stackPos) { $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]); $this->checkParam($this->semValue); }, - 273 => function ($stackPos) { + 288 => function ($stackPos) { $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); }, - 274 => function ($stackPos) { + 289 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 275 => function ($stackPos) { + 290 => function ($stackPos) { $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 276 => function ($stackPos) { + 291 => function ($stackPos) { $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 277 => function ($stackPos) { + 292 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 278 => function ($stackPos) { + 293 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 294 => function ($stackPos) { $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 279 => function ($stackPos) { + 295 => function ($stackPos) { $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); }, - 280 => function ($stackPos) { + 296 => function ($stackPos) { $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 281 => function ($stackPos) { + 297 => function ($stackPos) { $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 282 => function ($stackPos) { + 298 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 299 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 300 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, - 283 => function ($stackPos) { + 301 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 284 => function ($stackPos) { + 302 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 303 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 304 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, - 285 => function ($stackPos) { + 305 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 286 => function ($stackPos) { + 306 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 307 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 308 => function ($stackPos) { + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 309 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 310 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 311 => function ($stackPos) { + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 312 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 287 => function ($stackPos) { + 313 => function ($stackPos) { $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 288 => function ($stackPos) { + 314 => function ($stackPos) { $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 289 => function ($stackPos) { + 315 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 316 => function ($stackPos) { $this->semValue = null; }, - 290 => function ($stackPos) { + 317 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 291 => function ($stackPos) { + 318 => function ($stackPos) { $this->semValue = null; }, - 292 => function ($stackPos) { + 319 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 293 => function ($stackPos) { + 320 => function ($stackPos) { $this->semValue = null; }, - 294 => function ($stackPos) { + 321 => function ($stackPos) { $this->semValue = array(); }, - 295 => function ($stackPos) { + 322 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-2)]; }, - 296 => function ($stackPos) { + 323 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-2)]); + }, + 324 => function ($stackPos) { + $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 325 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 297 => function ($stackPos) { + 326 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 298 => function ($stackPos) { + 327 => function ($stackPos) { $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 299 => function ($stackPos) { + 328 => function ($stackPos) { $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 300 => function ($stackPos) { + 329 => function ($stackPos) { $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 301 => function ($stackPos) { + 330 => function ($stackPos) { $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); }, - 302 => function ($stackPos) { + 331 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 303 => function ($stackPos) { + 332 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 304 => function ($stackPos) { + 333 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 305 => function ($stackPos) { + 334 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 306 => function ($stackPos) { + 335 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 307 => function ($stackPos) { + 336 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 308 => function ($stackPos) { + 337 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 309 => function ($stackPos) { + 338 => function ($stackPos) { $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 310 => function ($stackPos) { + 339 => function ($stackPos) { $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 311 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + 340 => function ($stackPos) { + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } else { $this->semValue = $this->semStack[$stackPos-(2-1)]; } }, - 312 => function ($stackPos) { + 341 => function ($stackPos) { $this->semValue = array(); }, - 313 => function ($stackPos) { + 342 => function ($stackPos) { $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 314 => function ($stackPos) { + 343 => function ($stackPos) { $this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]); $this->checkProperty($this->semValue, $stackPos-(5-2)); }, - 315 => function ($stackPos) { + 344 => function ($stackPos) { $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-1)]); $this->checkClassConst($this->semValue, $stackPos-(5-2)); }, - 316 => function ($stackPos) { + 345 => function ($stackPos) { + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)]); + $this->checkClassConst($this->semValue, $stackPos-(6-2)); + }, + 346 => function ($stackPos) { $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); $this->checkClassMethod($this->semValue, $stackPos-(10-2)); }, - 317 => function ($stackPos) { + 347 => function ($stackPos) { $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 318 => function ($stackPos) { + 348 => function ($stackPos) { $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 319 => function ($stackPos) { + 349 => function ($stackPos) { $this->semValue = null; /* will be skipped */ }, - 320 => function ($stackPos) { + 350 => function ($stackPos) { $this->semValue = array(); }, - 321 => function ($stackPos) { + 351 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 322 => function ($stackPos) { + 352 => function ($stackPos) { $this->semValue = array(); }, - 323 => function ($stackPos) { + 353 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 324 => function ($stackPos) { + 354 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 325 => function ($stackPos) { + 355 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 326 => function ($stackPos) { + 356 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 327 => function ($stackPos) { + 357 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 328 => function ($stackPos) { + 358 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 329 => function ($stackPos) { + 359 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, - 330 => function ($stackPos) { + 360 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 331 => function ($stackPos) { + 361 => function ($stackPos) { $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); }, - 332 => function ($stackPos) { + 362 => function ($stackPos) { $this->semValue = null; }, - 333 => function ($stackPos) { + 363 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 334 => function ($stackPos) { + 364 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 335 => function ($stackPos) { + 365 => function ($stackPos) { $this->semValue = 0; }, - 336 => function ($stackPos) { + 366 => function ($stackPos) { $this->semValue = 0; }, - 337 => function ($stackPos) { + 367 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 338 => function ($stackPos) { + 368 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 339 => function ($stackPos) { + 369 => function ($stackPos) { $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, - 340 => function ($stackPos) { + 370 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, - 341 => function ($stackPos) { + 371 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, - 342 => function ($stackPos) { + 372 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, - 343 => function ($stackPos) { + 373 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_STATIC; }, - 344 => function ($stackPos) { + 374 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, - 345 => function ($stackPos) { + 375 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, - 346 => function ($stackPos) { + 376 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 377 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 347 => function ($stackPos) { + 378 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 348 => function ($stackPos) { + 379 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 349 => function ($stackPos) { + 380 => function ($stackPos) { $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 350 => function ($stackPos) { + 381 => function ($stackPos) { $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 351 => function ($stackPos) { + 382 => function ($stackPos) { $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 352 => function ($stackPos) { + 383 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 353 => function ($stackPos) { + 384 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 354 => function ($stackPos) { + 385 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 355 => function ($stackPos) { + 386 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 356 => function ($stackPos) { + 387 => function ($stackPos) { $this->semValue = array(); }, - 357 => function ($stackPos) { + 388 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 358 => function ($stackPos) { + 389 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 359 => function ($stackPos) { + 390 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 360 => function ($stackPos) { + 391 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 361 => function ($stackPos) { + 392 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 362 => function ($stackPos) { + 393 => function ($stackPos) { $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 363 => function ($stackPos) { + 394 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 364 => function ($stackPos) { + 395 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 365 => function ($stackPos) { + 396 => function ($stackPos) { $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 366 => function ($stackPos) { + 397 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 367 => function ($stackPos) { + 398 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 368 => function ($stackPos) { + 399 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 369 => function ($stackPos) { + 400 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 370 => function ($stackPos) { + 401 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 371 => function ($stackPos) { + 402 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 372 => function ($stackPos) { + 403 => function ($stackPos) { $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 373 => function ($stackPos) { + 404 => function ($stackPos) { $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 374 => function ($stackPos) { + 405 => function ($stackPos) { $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 375 => function ($stackPos) { + 406 => function ($stackPos) { $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 376 => function ($stackPos) { + 407 => function ($stackPos) { $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 377 => function ($stackPos) { + 408 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 378 => function ($stackPos) { + 409 => function ($stackPos) { $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 379 => function ($stackPos) { + 410 => function ($stackPos) { $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 380 => function ($stackPos) { + 411 => function ($stackPos) { $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 381 => function ($stackPos) { + 412 => function ($stackPos) { $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 382 => function ($stackPos) { + 413 => function ($stackPos) { $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 383 => function ($stackPos) { + 414 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 384 => function ($stackPos) { + 415 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 385 => function ($stackPos) { + 416 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 386 => function ($stackPos) { + 417 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 387 => function ($stackPos) { + 418 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 388 => function ($stackPos) { + 419 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 389 => function ($stackPos) { + 420 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 390 => function ($stackPos) { + 421 => function ($stackPos) { + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 422 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 391 => function ($stackPos) { + 423 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 392 => function ($stackPos) { + 424 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 393 => function ($stackPos) { + 425 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 394 => function ($stackPos) { + 426 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 395 => function ($stackPos) { + 427 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 396 => function ($stackPos) { + 428 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 397 => function ($stackPos) { + 429 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 398 => function ($stackPos) { + 430 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 399 => function ($stackPos) { + 431 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 400 => function ($stackPos) { + 432 => function ($stackPos) { $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 401 => function ($stackPos) { + 433 => function ($stackPos) { $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 402 => function ($stackPos) { + 434 => function ($stackPos) { $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 403 => function ($stackPos) { + 435 => function ($stackPos) { $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 404 => function ($stackPos) { + 436 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 405 => function ($stackPos) { + 437 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 406 => function ($stackPos) { + 438 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 407 => function ($stackPos) { + 439 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 408 => function ($stackPos) { + 440 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 409 => function ($stackPos) { + 441 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 410 => function ($stackPos) { + 442 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 411 => function ($stackPos) { + 443 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 412 => function ($stackPos) { + 444 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 413 => function ($stackPos) { + 445 => function ($stackPos) { $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 414 => function ($stackPos) { + 446 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 415 => function ($stackPos) { + 447 => function ($stackPos) { $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 416 => function ($stackPos) { + 448 => function ($stackPos) { $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 417 => function ($stackPos) { + 449 => function ($stackPos) { $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 418 => function ($stackPos) { + 450 => function ($stackPos) { $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 419 => function ($stackPos) { + 451 => function ($stackPos) { $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 420 => function ($stackPos) { + 452 => function ($stackPos) { $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 421 => function ($stackPos) { + 453 => function ($stackPos) { $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 422 => function ($stackPos) { + 454 => function ($stackPos) { $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 423 => function ($stackPos) { + 455 => function ($stackPos) { $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 424 => function ($stackPos) { + 456 => function ($stackPos) { $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 425 => function ($stackPos) { + 457 => function ($stackPos) { $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 426 => function ($stackPos) { + 458 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, - 427 => function ($stackPos) { + 459 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 428 => function ($stackPos) { + 460 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 429 => function ($stackPos) { + 461 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 430 => function ($stackPos) { + 462 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 431 => function ($stackPos) { + 463 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 432 => function ($stackPos) { + 464 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, - 433 => function ($stackPos) { + 465 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 434 => function ($stackPos) { + 466 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 435 => function ($stackPos) { + 467 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 436 => function ($stackPos) { + 468 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 437 => function ($stackPos) { + 469 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 438 => function ($stackPos) { + 470 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 439 => function ($stackPos) { + 471 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 440 => function ($stackPos) { + 472 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 441 => function ($stackPos) { + 473 => function ($stackPos) { $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 442 => function ($stackPos) { + 474 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 443 => function ($stackPos) { + 475 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 444 => function ($stackPos) { + 476 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 445 => function ($stackPos) { + 477 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 446 => function ($stackPos) { + 478 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 447 => function ($stackPos) { + 479 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 448 => function ($stackPos) { + 480 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 449 => function ($stackPos) { + 481 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 450 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]); + 482 => function ($stackPos) { + $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]); $this->checkClass($this->semValue[0], -1); }, - 451 => function ($stackPos) { + 483 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 452 => function ($stackPos) { + 484 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 453 => function ($stackPos) { + 485 => function ($stackPos) { $this->semValue = array(); }, - 454 => function ($stackPos) { + 486 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-3)]; }, - 455 => function ($stackPos) { + 487 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 456 => function ($stackPos) { + 488 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 457 => function ($stackPos) { + 489 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 458 => function ($stackPos) { + 490 => function ($stackPos) { $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 459 => function ($stackPos) { + 491 => function ($stackPos) { + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 492 => function ($stackPos) { $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 460 => function ($stackPos) { + 493 => function ($stackPos) { $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 461 => function ($stackPos) { + 494 => function ($stackPos) { + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 495 => function ($stackPos) { $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 462 => function ($stackPos) { + 496 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 463 => function ($stackPos) { + 497 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 464 => function ($stackPos) { + 498 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 465 => function ($stackPos) { + 499 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 466 => function ($stackPos) { + 500 => function ($stackPos) { $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 467 => function ($stackPos) { + 501 => function ($stackPos) { $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 468 => function ($stackPos) { + 502 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 469 => function ($stackPos) { + 503 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 470 => function ($stackPos) { + 504 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 471 => function ($stackPos) { + 505 => function ($stackPos) { $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, - 472 => function ($stackPos) { + 506 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 473 => function ($stackPos) { + 507 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 474 => function ($stackPos) { + 508 => function ($stackPos) { $this->semValue = null; }, - 475 => function ($stackPos) { + 509 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 476 => function ($stackPos) { + 510 => function ($stackPos) { $this->semValue = array(); }, - 477 => function ($stackPos) { + 511 => function ($stackPos) { $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); }, - 478 => function ($stackPos) { + 512 => function ($stackPos) { foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 479 => function ($stackPos) { + 513 => function ($stackPos) { $this->semValue = array(); }, - 480 => function ($stackPos) { + 514 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 481 => function ($stackPos) { + 515 => function ($stackPos) { $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 482 => function ($stackPos) { + 516 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 483 => function ($stackPos) { + 517 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 484 => function ($stackPos) { + 518 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 485 => function ($stackPos) { + 519 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 486 => function ($stackPos) { + 520 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 487 => function ($stackPos) { + 521 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 488 => function ($stackPos) { + 522 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 489 => function ($stackPos) { + 523 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 490 => function ($stackPos) { + 524 => function ($stackPos) { $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 491 => function ($stackPos) { + 525 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 526 => function ($stackPos) { $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; }, - 492 => function ($stackPos) { + 527 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, - 493 => function ($stackPos) { + 528 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, - 494 => function ($stackPos) { + 529 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 495 => function ($stackPos) { - $attrs = $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes; $attrs['kind'] = ($this->semStack[$stackPos-(1-1)][0] === "'" || ($this->semStack[$stackPos-(1-1)][1] === "'" && ($this->semStack[$stackPos-(1-1)][0] === 'b' || $this->semStack[$stackPos-(1-1)][0] === 'B')) ? Scalar\String_::KIND_SINGLE_QUOTED : Scalar\String_::KIND_DOUBLE_QUOTED); - $this->semValue = new Scalar\String_(Scalar\String_::parse($this->semStack[$stackPos-(1-1)]), $attrs); + 530 => function ($stackPos) { + $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 496 => function ($stackPos) { + 531 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, - 497 => function ($stackPos) { + 532 => function ($stackPos) { $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 498 => function ($stackPos) { - $this->semValue = new Scalar\DNumber(Scalar\DNumber::parse($this->semStack[$stackPos-(1-1)]), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + 533 => function ($stackPos) { + $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 499 => function ($stackPos) { + 534 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 500 => function ($stackPos) { + 535 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 501 => function ($stackPos) { + 536 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 502 => function ($stackPos) { + 537 => function ($stackPos) { $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, - 503 => function ($stackPos) { + 538 => function ($stackPos) { $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); }, - 504 => function ($stackPos) { + 539 => function ($stackPos) { $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, - 505 => function ($stackPos) { + 540 => function ($stackPos) { $this->semValue = null; }, - 506 => function ($stackPos) { + 541 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 507 => function ($stackPos) { + 542 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 508 => function ($stackPos) { + 543 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 509 => function ($stackPos) { + 544 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 510 => function ($stackPos) { + 545 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 511 => function ($stackPos) { + 546 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 512 => function ($stackPos) { + 547 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 513 => function ($stackPos) { + 548 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 514 => function ($stackPos) { + 549 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 515 => function ($stackPos) { + 550 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 516 => function ($stackPos) { + 551 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 517 => function ($stackPos) { + 552 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 518 => function ($stackPos) { + 553 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 519 => function ($stackPos) { + 554 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 520 => function ($stackPos) { + 555 => function ($stackPos) { $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 521 => function ($stackPos) { + 556 => function ($stackPos) { $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 522 => function ($stackPos) { + 557 => function ($stackPos) { $this->semValue = null; }, - 523 => function ($stackPos) { + 558 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 524 => function ($stackPos) { + 559 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 525 => function ($stackPos) { + 560 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 526 => function ($stackPos) { + 561 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 527 => function ($stackPos) { + 562 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 528 => function ($stackPos) { + 563 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 529 => function ($stackPos) { + 564 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 530 => function ($stackPos) { + 565 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 531 => function ($stackPos) { + 566 => function ($stackPos) { $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; }, - 532 => function ($stackPos) { + 567 => function ($stackPos) { $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; }, - 533 => function ($stackPos) { + 568 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 534 => function ($stackPos) { + 569 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 535 => function ($stackPos) { + 570 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 536 => function ($stackPos) { + 571 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 537 => function ($stackPos) { + 572 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 538 => function ($stackPos) { + 573 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 539 => function ($stackPos) { + 574 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 540 => function ($stackPos) { + 575 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 541 => function ($stackPos) { + 576 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 542 => function ($stackPos) { + 577 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 543 => function ($stackPos) { + 578 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 544 => function ($stackPos) { + 579 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 545 => function ($stackPos) { + 580 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 546 => function ($stackPos) { + 581 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 547 => function ($stackPos) { + 582 => function ($stackPos) { $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, - 548 => function ($stackPos) { + 583 => function ($stackPos) { $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 549 => function ($stackPos) { + 584 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); }, - 550 => function ($stackPos) { + 585 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, - 551 => function ($stackPos) { + 586 => function ($stackPos) { /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ }, - 552 => function ($stackPos) { + 587 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 553 => function ($stackPos) { + 588 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 554 => function ($stackPos) { + 589 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 555 => function ($stackPos) { + 590 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 556 => function ($stackPos) { + 591 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 557 => function ($stackPos) { + 592 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 558 => function ($stackPos) { + 593 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 559 => function ($stackPos) { + 594 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 560 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + 595 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true); }, - 561 => function ($stackPos) { + 596 => function ($stackPos) { $this->semValue = null; }, - 562 => function ($stackPos) { + 597 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 563 => function ($stackPos) { + 598 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 564 => function ($stackPos) { + 599 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 565 => function ($stackPos) { + 600 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); }, - 566 => function ($stackPos) { + 601 => function ($stackPos) { $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 567 => function ($stackPos) { + 602 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 568 => function ($stackPos) { + 603 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 569 => function ($stackPos) { + 604 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 570 => function ($stackPos) { + 605 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 571 => function ($stackPos) { + 606 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 572 => function ($stackPos) { + 607 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 573 => function ($stackPos) { + 608 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 574 => function ($stackPos) { + 609 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, - 575 => function ($stackPos) { + 610 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 576 => function ($stackPos) { + 611 => function ($stackPos) { $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 577 => function ($stackPos) { + 612 => function ($stackPos) { $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 578 => function ($stackPos) { + 613 => function ($stackPos) { $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 579 => function ($stackPos) { + 614 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php index ed5ead224..b76a5d94c 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/Parser/Tokens.php @@ -35,111 +35,114 @@ final class Tokens const T_COALESCE = 283; const T_BOOLEAN_OR = 284; const T_BOOLEAN_AND = 285; - const T_IS_EQUAL = 286; - const T_IS_NOT_EQUAL = 287; - const T_IS_IDENTICAL = 288; - const T_IS_NOT_IDENTICAL = 289; - const T_SPACESHIP = 290; - const T_IS_SMALLER_OR_EQUAL = 291; - const T_IS_GREATER_OR_EQUAL = 292; - const T_SL = 293; - const T_SR = 294; - const T_INSTANCEOF = 295; - const T_INC = 296; - const T_DEC = 297; - const T_INT_CAST = 298; - const T_DOUBLE_CAST = 299; - const T_STRING_CAST = 300; - const T_ARRAY_CAST = 301; - const T_OBJECT_CAST = 302; - const T_BOOL_CAST = 303; - const T_UNSET_CAST = 304; - const T_POW = 305; - const T_NEW = 306; - const T_CLONE = 307; - const T_EXIT = 308; - const T_IF = 309; - const T_ELSEIF = 310; - const T_ELSE = 311; - const T_ENDIF = 312; - const T_LNUMBER = 313; - const T_DNUMBER = 314; - const T_STRING = 315; - const T_STRING_VARNAME = 316; - const T_VARIABLE = 317; - const T_NUM_STRING = 318; - const T_INLINE_HTML = 319; - const T_ENCAPSED_AND_WHITESPACE = 320; - const T_CONSTANT_ENCAPSED_STRING = 321; - const T_ECHO = 322; - const T_DO = 323; - const T_WHILE = 324; - const T_ENDWHILE = 325; - const T_FOR = 326; - const T_ENDFOR = 327; - const T_FOREACH = 328; - const T_ENDFOREACH = 329; - const T_DECLARE = 330; - const T_ENDDECLARE = 331; - const T_AS = 332; - const T_SWITCH = 333; - const T_MATCH = 334; - const T_ENDSWITCH = 335; - const T_CASE = 336; - const T_DEFAULT = 337; - const T_BREAK = 338; - const T_CONTINUE = 339; - const T_GOTO = 340; - const T_FUNCTION = 341; - const T_FN = 342; - const T_CONST = 343; - const T_RETURN = 344; - const T_TRY = 345; - const T_CATCH = 346; - const T_FINALLY = 347; - const T_USE = 348; - const T_INSTEADOF = 349; - const T_GLOBAL = 350; - const T_STATIC = 351; - const T_ABSTRACT = 352; - const T_FINAL = 353; - const T_PRIVATE = 354; - const T_PROTECTED = 355; - const T_PUBLIC = 356; - const T_VAR = 357; - const T_UNSET = 358; - const T_ISSET = 359; - const T_EMPTY = 360; - const T_HALT_COMPILER = 361; - const T_CLASS = 362; - const T_TRAIT = 363; - const T_INTERFACE = 364; - const T_ENUM = 365; - const T_EXTENDS = 366; - const T_IMPLEMENTS = 367; - const T_OBJECT_OPERATOR = 368; - const T_NULLSAFE_OBJECT_OPERATOR = 369; - const T_LIST = 370; - const T_ARRAY = 371; - const T_CALLABLE = 372; - const T_CLASS_C = 373; - const T_TRAIT_C = 374; - const T_METHOD_C = 375; - const T_FUNC_C = 376; - const T_LINE = 377; - const T_FILE = 378; - const T_START_HEREDOC = 379; - const T_END_HEREDOC = 380; - const T_DOLLAR_OPEN_CURLY_BRACES = 381; - const T_CURLY_OPEN = 382; - const T_PAAMAYIM_NEKUDOTAYIM = 383; - const T_NAMESPACE = 384; - const T_NS_C = 385; - const T_DIR = 386; - const T_NS_SEPARATOR = 387; - const T_ELLIPSIS = 388; - const T_NAME_FULLY_QUALIFIED = 389; - const T_NAME_QUALIFIED = 390; - const T_NAME_RELATIVE = 391; - const T_ATTRIBUTE = 392; + const T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG = 286; + const T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG = 287; + const T_IS_EQUAL = 288; + const T_IS_NOT_EQUAL = 289; + const T_IS_IDENTICAL = 290; + const T_IS_NOT_IDENTICAL = 291; + const T_SPACESHIP = 292; + const T_IS_SMALLER_OR_EQUAL = 293; + const T_IS_GREATER_OR_EQUAL = 294; + const T_SL = 295; + const T_SR = 296; + const T_INSTANCEOF = 297; + const T_INC = 298; + const T_DEC = 299; + const T_INT_CAST = 300; + const T_DOUBLE_CAST = 301; + const T_STRING_CAST = 302; + const T_ARRAY_CAST = 303; + const T_OBJECT_CAST = 304; + const T_BOOL_CAST = 305; + const T_UNSET_CAST = 306; + const T_POW = 307; + const T_NEW = 308; + const T_CLONE = 309; + const T_EXIT = 310; + const T_IF = 311; + const T_ELSEIF = 312; + const T_ELSE = 313; + const T_ENDIF = 314; + const T_LNUMBER = 315; + const T_DNUMBER = 316; + const T_STRING = 317; + const T_STRING_VARNAME = 318; + const T_VARIABLE = 319; + const T_NUM_STRING = 320; + const T_INLINE_HTML = 321; + const T_ENCAPSED_AND_WHITESPACE = 322; + const T_CONSTANT_ENCAPSED_STRING = 323; + const T_ECHO = 324; + const T_DO = 325; + const T_WHILE = 326; + const T_ENDWHILE = 327; + const T_FOR = 328; + const T_ENDFOR = 329; + const T_FOREACH = 330; + const T_ENDFOREACH = 331; + const T_DECLARE = 332; + const T_ENDDECLARE = 333; + const T_AS = 334; + const T_SWITCH = 335; + const T_MATCH = 336; + const T_ENDSWITCH = 337; + const T_CASE = 338; + const T_DEFAULT = 339; + const T_BREAK = 340; + const T_CONTINUE = 341; + const T_GOTO = 342; + const T_FUNCTION = 343; + const T_FN = 344; + const T_CONST = 345; + const T_RETURN = 346; + const T_TRY = 347; + const T_CATCH = 348; + const T_FINALLY = 349; + const T_USE = 350; + const T_INSTEADOF = 351; + const T_GLOBAL = 352; + const T_STATIC = 353; + const T_ABSTRACT = 354; + const T_FINAL = 355; + const T_PRIVATE = 356; + const T_PROTECTED = 357; + const T_PUBLIC = 358; + const T_READONLY = 359; + const T_VAR = 360; + const T_UNSET = 361; + const T_ISSET = 362; + const T_EMPTY = 363; + const T_HALT_COMPILER = 364; + const T_CLASS = 365; + const T_TRAIT = 366; + const T_INTERFACE = 367; + const T_ENUM = 368; + const T_EXTENDS = 369; + const T_IMPLEMENTS = 370; + const T_OBJECT_OPERATOR = 371; + const T_NULLSAFE_OBJECT_OPERATOR = 372; + const T_LIST = 373; + const T_ARRAY = 374; + const T_CALLABLE = 375; + const T_CLASS_C = 376; + const T_TRAIT_C = 377; + const T_METHOD_C = 378; + const T_FUNC_C = 379; + const T_LINE = 380; + const T_FILE = 381; + const T_START_HEREDOC = 382; + const T_END_HEREDOC = 383; + const T_DOLLAR_OPEN_CURLY_BRACES = 384; + const T_CURLY_OPEN = 385; + const T_PAAMAYIM_NEKUDOTAYIM = 386; + const T_NAMESPACE = 387; + const T_NS_C = 388; + const T_DIR = 389; + const T_NS_SEPARATOR = 390; + const T_ELLIPSIS = 391; + const T_NAME_FULLY_QUALIFIED = 392; + const T_NAME_QUALIFIED = 393; + const T_NAME_RELATIVE = 394; + const T_ATTRIBUTE = 395; } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php b/api/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php index c61208b07..567e09a97 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/ParserAbstract.php @@ -16,9 +16,12 @@ use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassConst; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Else_; +use PhpParser\Node\Stmt\ElseIf_; use PhpParser\Node\Stmt\Enum_; use PhpParser\Node\Stmt\Interface_; use PhpParser\Node\Stmt\Namespace_; +use PhpParser\Node\Stmt\Nop; use PhpParser\Node\Stmt\Property; use PhpParser\Node\Stmt\TryCatch; use PhpParser\Node\Stmt\UseUse; @@ -152,7 +155,7 @@ public function __construct(Lexer $lexer, array $options = []) { * @return Node\Stmt[]|null Array of statements (or null non-throwing error handler is used and * the parser was unable to recover from an error). */ - public function parse(string $code, ErrorHandler $errorHandler = null) { + public function parse(string $code, ?ErrorHandler $errorHandler = null) { $this->errorHandler = $errorHandler ?: new ErrorHandler\Throwing; $this->lexer->startLexing($code, $this->errorHandler); @@ -664,6 +667,7 @@ protected function handleBuiltinTypes(Name $name) { 'false' => true, 'mixed' => true, 'never' => true, + 'true' => true, ]; if (!$name->isUnqualified()) { @@ -875,6 +879,33 @@ protected function createCommentNopAttributes(array $comments) { return $attributes; } + /** @param ElseIf_|Else_ $node */ + protected function fixupAlternativeElse($node) { + // Make sure a trailing nop statement carrying comments is part of the node. + $numStmts = \count($node->stmts); + if ($numStmts !== 0 && $node->stmts[$numStmts - 1] instanceof Nop) { + $nopAttrs = $node->stmts[$numStmts - 1]->getAttributes(); + if (isset($nopAttrs['endLine'])) { + $node->setAttribute('endLine', $nopAttrs['endLine']); + } + if (isset($nopAttrs['endFilePos'])) { + $node->setAttribute('endFilePos', $nopAttrs['endFilePos']); + } + if (isset($nopAttrs['endTokenPos'])) { + $node->setAttribute('endTokenPos', $nopAttrs['endTokenPos']); + } + } + } + + protected function checkClassModifier($a, $b, $modifierPos) { + try { + Class_::verifyClassModifier($a, $b); + } catch (Error $error) { + $error->setAttributes($this->getAttributesAt($modifierPos)); + $this->emitError($error); + } + } + protected function checkModifier($a, $b, $modifierPos) { // Jumping through some hoops here because verifyModifier() is also used elsewhere try { @@ -977,6 +1008,12 @@ protected function checkClassMethod(ClassMethod $node, $modifierPos) { break; } } + + if ($node->flags & Class_::MODIFIER_READONLY) { + $this->emitError(new Error( + sprintf('Method %s() cannot be readonly', $node->name), + $this->getAttributesAt($modifierPos))); + } } protected function checkClassConst(ClassConst $node, $modifierPos) { @@ -990,9 +1027,9 @@ protected function checkClassConst(ClassConst $node, $modifierPos) { "Cannot use 'abstract' as constant modifier", $this->getAttributesAt($modifierPos))); } - if ($node->flags & Class_::MODIFIER_FINAL) { + if ($node->flags & Class_::MODIFIER_READONLY) { $this->emitError(new Error( - "Cannot use 'final' as constant modifier", + "Cannot use 'readonly' as constant modifier", $this->getAttributesAt($modifierPos))); } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php b/api/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php index f041e7ffe..98b0aee34 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php @@ -2,6 +2,9 @@ namespace PhpParser; +use PhpParser\Lexer\Emulative; +use PhpParser\Parser\Php7; + class ParserFactory { const PREFER_PHP7 = 1; @@ -18,7 +21,7 @@ class ParserFactory * * @return Parser The parser instance */ - public function create(int $kind, Lexer $lexer = null, array $parserOptions = []) : Parser { + public function create(int $kind, ?Lexer $lexer = null, array $parserOptions = []) : Parser { if (null === $lexer) { $lexer = new Lexer\Emulative(); } @@ -41,4 +44,33 @@ public function create(int $kind, Lexer $lexer = null, array $parserOptions = [] ); } } + + /** + * Create a parser targeting the newest version supported by this library. Code for older + * versions will be accepted if there have been no relevant backwards-compatibility breaks in + * PHP. + * + * All supported lexer attributes (comments, startLine, endLine, startTokenPos, endTokenPos, + * startFilePos, endFilePos) will be enabled. + */ + public function createForNewestSupportedVersion(): Parser { + return new Php7(new Emulative($this->getLexerOptions())); + } + + /** + * Create a parser targeting the host PHP version, that is the PHP version we're currently + * running on. This parser will not use any token emulation. + * + * All supported lexer attributes (comments, startLine, endLine, startTokenPos, endTokenPos, + * startFilePos, endFilePos) will be enabled. + */ + public function createForHostVersion(): Parser { + return new Php7(new Lexer($this->getLexerOptions())); + } + + private function getLexerOptions(): array { + return ['usedAttributes' => [ + 'comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos', 'startFilePos', 'endFilePos', + ]]; + } } diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php b/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php index 62d1f34c1..7c32e5a3c 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php @@ -33,6 +33,10 @@ protected function pArg(Node\Arg $node) { . $this->p($node->value); } + protected function pVariadicPlaceholder(Node\VariadicPlaceholder $node) { + return '...'; + } + protected function pConst(Node\Const_ $node) { return $node->name . ' = ' . $this->p($node->value); } @@ -42,7 +46,19 @@ protected function pNullableType(Node\NullableType $node) { } protected function pUnionType(Node\UnionType $node) { - return $this->pImplode($node->types, '|'); + $types = []; + foreach ($node->types as $typeNode) { + if ($typeNode instanceof Node\IntersectionType) { + $types[] = '('. $this->p($typeNode) . ')'; + continue; + } + $types[] = $this->p($typeNode); + } + return implode('|', $types); + } + + protected function pIntersectionType(Node\IntersectionType $node) { + return $this->pImplode($node->types, '&'); } protected function pIdentifier(Node\Identifier $node) { @@ -513,7 +529,7 @@ protected function pExpr_NullsafeMethodCall(Expr\NullsafeMethodCall $node) { } protected function pExpr_StaticCall(Expr\StaticCall $node) { - return $this->pDereferenceLhs($node->class) . '::' + return $this->pStaticDereferenceLhs($node->class) . '::' . ($node->name instanceof Expr ? ($node->name instanceof Expr\Variable ? $this->p($node->name) @@ -590,7 +606,7 @@ protected function pExpr_ConstFetch(Expr\ConstFetch $node) { } protected function pExpr_ClassConstFetch(Expr\ClassConstFetch $node) { - return $this->pDereferenceLhs($node->class) . '::' . $this->p($node->name); + return $this->pStaticDereferenceLhs($node->class) . '::' . $this->pObjectProperty($node->name); } protected function pExpr_PropertyFetch(Expr\PropertyFetch $node) { @@ -602,7 +618,7 @@ protected function pExpr_NullsafePropertyFetch(Expr\NullsafePropertyFetch $node) } protected function pExpr_StaticPropertyFetch(Expr\StaticPropertyFetch $node) { - return $this->pDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); + return $this->pStaticDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); } protected function pExpr_ShellExec(Expr\ShellExec $node) { @@ -798,7 +814,9 @@ protected function pStmt_ClassMethod(Stmt\ClassMethod $node) { protected function pStmt_ClassConst(Stmt\ClassConst $node) { return $this->pAttrGroups($node->attrGroups) . $this->pModifiers($node->flags) - . 'const ' . $this->pCommaSeparated($node->consts) . ';'; + . 'const ' + . (null !== $node->type ? $this->p($node->type) . ' ' : '') + . $this->pCommaSeparated($node->consts) . ';'; } protected function pStmt_Function(Stmt\Function_ $node) { @@ -1051,6 +1069,14 @@ protected function pDereferenceLhs(Node $node) { } } + protected function pStaticDereferenceLhs(Node $node) { + if (!$this->staticDereferenceLhsRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } + } + protected function pCallLhs(Node $node) { if (!$this->callLhsRequiresParens($node)) { return $this->p($node); @@ -1059,9 +1085,12 @@ protected function pCallLhs(Node $node) { } } - protected function pNewVariable(Node $node) { - // TODO: This is not fully accurate. - return $this->pDereferenceLhs($node); + protected function pNewVariable(Node $node): string { + if (!$this->newOperandRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } } /** diff --git a/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index f453db091..770d50092 100644 --- a/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/api/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -21,6 +21,8 @@ abstract class PrettyPrinterAbstract const FIXUP_BRACED_NAME = 4; // Name operand that may require bracing const FIXUP_VAR_BRACED_NAME = 5; // Name operand that may require ${} bracing const FIXUP_ENCAPSED = 6; // Encapsed string part + const FIXUP_NEW = 7; // New/instanceof operand + const FIXUP_STATIC_DEREF_LHS = 8; // LHS of static dereferencing operation protected $precedenceMap = [ // [precedence, associativity] @@ -774,7 +776,8 @@ protected function pArray( } if ($skipRemovedNode) { - if ($isStmtList && $this->origTokens->haveBracesInRange($pos, $itemStartPos)) { + if ($isStmtList && ($this->origTokens->haveBracesInRange($pos, $itemStartPos) || + $this->origTokens->haveTagInRange($pos, $itemStartPos))) { // We'd remove the brace of a code block. // TODO: Preserve formatting. $this->setIndentLevel($origIndentLevel); @@ -824,7 +827,11 @@ protected function pArray( return null; } - if ($insertStr === ', ' && $this->isMultiline($origNodes)) { + // We go multiline if the original code was multiline, + // or if it's an array item with a comment above it. + if ($insertStr === ', ' && + ($this->isMultiline($origNodes) || $arrItem->getComments()) + ) { $insertStr = ','; $insertNewline = true; } @@ -842,11 +849,11 @@ protected function pArray( $this->setIndentLevel($lastElemIndentLevel); if ($insertNewline) { + $result .= $insertStr . $this->nl; $comments = $arrItem->getComments(); if ($comments) { - $result .= $this->nl . $this->pComments($comments); + $result .= $this->pComments($comments) . $this->nl; } - $result .= $insertStr . $this->nl; } else { $result .= $insertStr; } @@ -873,7 +880,8 @@ protected function pArray( $pos, $itemStartPos, $indentAdjustment); $skipRemovedNode = true; } else { - if ($isStmtList && $this->origTokens->haveBracesInRange($pos, $itemStartPos)) { + if ($isStmtList && ($this->origTokens->haveBracesInRange($pos, $itemStartPos) || + $this->origTokens->haveTagInRange($pos, $itemStartPos))) { // We'd remove the brace of a code block. // TODO: Preserve formatting. return null; @@ -919,11 +927,14 @@ protected function pArray( foreach ($delayedAdd as $delayedAddNode) { if (!$first) { $result .= $insertStr; + if ($insertNewline) { + $result .= $this->nl; + } } $result .= $this->p($delayedAddNode, true); $first = false; } - $result .= $extraRight; + $result .= $extraRight === "\n" ? $this->nl : $extraRight; } return $result; @@ -968,6 +979,19 @@ protected function pFixup(int $fixup, Node $subNode, $parentClass, int $subStart return '(' . $this->p($subNode) . ')'; } break; + case self::FIXUP_STATIC_DEREF_LHS: + if ($this->staticDereferenceLhsRequiresParens($subNode) + && !$this->origTokens->haveParens($subStartPos, $subEndPos) + ) { + return '(' . $this->p($subNode) . ')'; + } + break; + case self::FIXUP_NEW: + if ($this->newOperandRequiresParens($subNode) + && !$this->origTokens->haveParens($subStartPos, $subEndPos)) { + return '(' . $this->p($subNode) . ')'; + } + break; case self::FIXUP_BRACED_NAME: case self::FIXUP_VAR_BRACED_NAME: if ($subNode instanceof Expr @@ -1038,13 +1062,26 @@ protected function callLhsRequiresParens(Node $node) : bool { } /** - * Determines whether the LHS of a dereferencing operation must be wrapped in parenthesis. + * Determines whether the LHS of an array/object operation must be wrapped in parentheses. * * @param Node $node LHS of dereferencing operation * * @return bool Whether parentheses are required */ protected function dereferenceLhsRequiresParens(Node $node) : bool { + // A constant can occur on the LHS of an array/object deref, but not a static deref. + return $this->staticDereferenceLhsRequiresParens($node) + && !$node instanceof Expr\ConstFetch; + } + + /** + * Determines whether the LHS of a static operation must be wrapped in parentheses. + * + * @param Node $node LHS of dereferencing operation + * + * @return bool Whether parentheses are required + */ + protected function staticDereferenceLhsRequiresParens(Node $node): bool { return !($node instanceof Expr\Variable || $node instanceof Node\Name || $node instanceof Expr\ArrayDimFetch @@ -1057,10 +1094,31 @@ protected function dereferenceLhsRequiresParens(Node $node) : bool { || $node instanceof Expr\StaticCall || $node instanceof Expr\Array_ || $node instanceof Scalar\String_ - || $node instanceof Expr\ConstFetch || $node instanceof Expr\ClassConstFetch); } + /** + * Determines whether an expression used in "new" or "instanceof" requires parentheses. + * + * @param Node $node New or instanceof operand + * + * @return bool Whether parentheses are required + */ + protected function newOperandRequiresParens(Node $node): bool { + if ($node instanceof Node\Name || $node instanceof Expr\Variable) { + return false; + } + if ($node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || + $node instanceof Expr\NullsafePropertyFetch + ) { + return $this->newOperandRequiresParens($node->var); + } + if ($node instanceof Expr\StaticPropertyFetch) { + return $this->newOperandRequiresParens($node->class); + } + return true; + } + /** * Print modifiers, including trailing whitespace. * @@ -1074,7 +1132,8 @@ protected function pModifiers(int $modifiers) { . ($modifiers & Stmt\Class_::MODIFIER_PRIVATE ? 'private ' : '') . ($modifiers & Stmt\Class_::MODIFIER_STATIC ? 'static ' : '') . ($modifiers & Stmt\Class_::MODIFIER_ABSTRACT ? 'abstract ' : '') - . ($modifiers & Stmt\Class_::MODIFIER_FINAL ? 'final ' : ''); + . ($modifiers & Stmt\Class_::MODIFIER_FINAL ? 'final ' : '') + . ($modifiers & Stmt\Class_::MODIFIER_READONLY ? 'readonly ' : ''); } /** @@ -1123,7 +1182,8 @@ protected function initializeLabelCharMap() { for ($i = 0; $i < 256; $i++) { // Since PHP 7.1 The lower range is 0x80. However, we also want to support code for // older versions. - $this->labelCharMap[chr($i)] = $i >= 0x7f || ctype_alnum($i); + $chr = chr($i); + $this->labelCharMap[$chr] = $i >= 0x7f || ctype_alnum($chr); } } @@ -1160,7 +1220,7 @@ protected function initializeFixupMap() { Expr\PostDec::class => ['var' => self::FIXUP_PREC_LEFT], Expr\Instanceof_::class => [ 'expr' => self::FIXUP_PREC_LEFT, - 'class' => self::FIXUP_PREC_RIGHT, // TODO: FIXUP_NEW_VARIABLE + 'class' => self::FIXUP_NEW, ], Expr\Ternary::class => [ 'cond' => self::FIXUP_PREC_LEFT, @@ -1168,10 +1228,13 @@ protected function initializeFixupMap() { ], Expr\FuncCall::class => ['name' => self::FIXUP_CALL_LHS], - Expr\StaticCall::class => ['class' => self::FIXUP_DEREF_LHS], + Expr\StaticCall::class => ['class' => self::FIXUP_STATIC_DEREF_LHS], Expr\ArrayDimFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\ClassConstFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\New_::class => ['class' => self::FIXUP_DEREF_LHS], // TODO: FIXUP_NEW_VARIABLE + Expr\ClassConstFetch::class => [ + 'class' => self::FIXUP_STATIC_DEREF_LHS, + 'name' => self::FIXUP_BRACED_NAME, + ], + Expr\New_::class => ['class' => self::FIXUP_NEW], Expr\MethodCall::class => [ 'var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME, @@ -1181,7 +1244,7 @@ protected function initializeFixupMap() { 'name' => self::FIXUP_BRACED_NAME, ], Expr\StaticPropertyFetch::class => [ - 'class' => self::FIXUP_DEREF_LHS, + 'class' => self::FIXUP_STATIC_DEREF_LHS, 'name' => self::FIXUP_VAR_BRACED_NAME, ], Expr\PropertyFetch::class => [ @@ -1267,6 +1330,7 @@ protected function initializeRemovalMap() { 'Param->default' => $stripEquals, 'Stmt_Break->num' => $stripBoth, 'Stmt_Catch->var' => $stripLeft, + 'Stmt_ClassConst->type' => $stripRight, 'Stmt_ClassMethod->returnType' => $stripColon, 'Stmt_Class->extends' => ['left' => \T_EXTENDS], 'Stmt_Enum->scalarType' => $stripColon, @@ -1308,6 +1372,7 @@ protected function initializeInsertionMap() { 'Stmt_Break->num' => [\T_BREAK, false, ' ', null], 'Stmt_Catch->var' => [null, false, ' ', null], 'Stmt_ClassMethod->returnType' => [')', false, ' : ', null], + 'Stmt_ClassConst->type' => [\T_CONST, false, ' ', null], 'Stmt_Class->extends' => [null, false, ' extends ', null], 'Stmt_Enum->scalarType' => [null, false, ' : ', null], 'Stmt_EnumCase->expr' => [null, false, ' = ', null], @@ -1341,6 +1406,7 @@ protected function initializeListInsertionMap() { //'Scalar_Encapsed->parts' => '', 'Stmt_Catch->types' => '|', 'UnionType->types' => '|', + 'IntersectionType->types' => '&', 'Stmt_If->elseifs' => ' ', 'Stmt_TryCatch->catches' => ' ', @@ -1447,6 +1513,16 @@ protected function initializeEmptyListInsertionMap() { 'Stmt_ClassMethod->params' => ['(', '', ''], 'Stmt_Interface->extends' => [null, ' extends ', ''], 'Stmt_Function->params' => ['(', '', ''], + 'Stmt_Interface->attrGroups' => [null, '', "\n"], + 'Stmt_Class->attrGroups' => [null, '', "\n"], + 'Stmt_ClassConst->attrGroups' => [null, '', "\n"], + 'Stmt_ClassMethod->attrGroups' => [null, '', "\n"], + 'Stmt_Function->attrGroups' => [null, '', "\n"], + 'Stmt_Property->attrGroups' => [null, '', "\n"], + 'Stmt_Trait->attrGroups' => [null, '', "\n"], + 'Expr_ArrowFunction->attrGroups' => [null, '', ' '], + 'Expr_Closure->attrGroups' => [null, '', ' '], + 'Expr_PrintableNewAnonClass->attrGroups' => [\T_NEW, ' ', ''], /* These cannot be empty to start with: * Expr_Isset->vars @@ -1486,6 +1562,7 @@ protected function initializeModifierChangeMap() { 'Stmt_ClassMethod->flags' => \T_FUNCTION, 'Stmt_Class->flags' => \T_CLASS, 'Stmt_Property->flags' => \T_VARIABLE, + 'Expr_PrintableNewAnonClass->flags' => \T_CLASS, 'Param->flags' => \T_VARIABLE, //'Stmt_TraitUseAdaptation_Alias->newModifier' => 0, // TODO ]; diff --git a/api/vendor/nyholm/psr7/.php-cs-fixer.dist.php b/api/vendor/nyholm/psr7/.php-cs-fixer.dist.php new file mode 100644 index 000000000..04765dec7 --- /dev/null +++ b/api/vendor/nyholm/psr7/.php-cs-fixer.dist.php @@ -0,0 +1,25 @@ +in(__DIR__.'/src') + ->in(__DIR__.'/tests'); + +$config = new PhpCsFixer\Config(); + +return $config->setRules([ + '@Symfony' => true, + '@Symfony:risky' => true, + 'native_function_invocation' => ['include'=> ['@all']], + 'native_constant_invocation' => true, + 'ordered_imports' => true, + 'declare_strict_types' => false, + 'linebreak_after_opening_tag' => false, + 'single_import_per_statement' => false, + 'blank_line_after_opening_tag' => false, + 'concat_space' => ['spacing'=>'one'], + 'phpdoc_align' => ['align'=>'left'], +]) + ->setRiskyAllowed(true) + ->setFinder($finder); diff --git a/api/vendor/nyholm/psr7/CHANGELOG.md b/api/vendor/nyholm/psr7/CHANGELOG.md index 07238bdab..cddd3633e 100644 --- a/api/vendor/nyholm/psr7/CHANGELOG.md +++ b/api/vendor/nyholm/psr7/CHANGELOG.md @@ -2,6 +2,49 @@ All notable changes to this project will be documented in this file, in reverse chronological order by release. +## 1.8.0 + +- Deprecate HttplugFactory, use Psr17Factory instead +- Make depencendy on php-http/message-factory optional + +## 1.7.0 + +- Bump to PHP 7.2 minimum +- Allow psr/http-message v2 +- Use copy-on-write for streams created from strings + +## 1.6.1 + +- Security fix: CVE-2023-29197 + +## 1.6.0 + +### Changed + +- Seek to the begining of the string when using Stream::create() +- Populate ServerRequest::getQueryParams() on instantiation +- Encode [reserved characters](https://www.rfc-editor.org/rfc/rfc3986#appendix-A) in userinfo in Uri +- Normalize leading slashes for Uri::getPath() +- Make Stream's constructor public +- Add some missing type checks on arguments + +## 1.5.1 + +### Fixed + +- Fixed deprecations on PHP 8.1 + +## 1.5.0 + +### Added + +- Add explicit `@return mixed` +- Add explicit return types to HttplugFactory + +### Fixed + +- Improve error handling with streams + ## 1.4.1 ### Fixed diff --git a/api/vendor/nyholm/psr7/README.md b/api/vendor/nyholm/psr7/README.md index 9f9293300..7fc30bc13 100644 --- a/api/vendor/nyholm/psr7/README.md +++ b/api/vendor/nyholm/psr7/README.md @@ -1,13 +1,11 @@ # PSR-7 implementation [![Latest Version](https://img.shields.io/github/release/Nyholm/psr7.svg?style=flat-square)](https://github.com/Nyholm/psr7/releases) -[![Build Status](https://img.shields.io/travis/Nyholm/psr7/master.svg?style=flat-square)](https://travis-ci.org/Nyholm/psr7) -[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/Nyholm/psr7.svg?style=flat-square)](https://scrutinizer-ci.com/g/Nyholm/psr7) -[![Quality Score](https://img.shields.io/scrutinizer/g/Nyholm/psr7.svg?style=flat-square)](https://scrutinizer-ci.com/g/Nyholm/psr7) [![Total Downloads](https://poser.pugx.org/nyholm/psr7/downloads)](https://packagist.org/packages/nyholm/psr7) [![Monthly Downloads](https://poser.pugx.org/nyholm/psr7/d/monthly.png)](https://packagist.org/packages/nyholm/psr7) [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE) - +[![Static analysis](https://github.com/Nyholm/psr7/actions/workflows/static.yml/badge.svg?branch=master)](https://github.com/Nyholm/psr7/actions/workflows/static.yml?query=branch%3Amaster) +[![Tests](https://github.com/Nyholm/psr7/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/Nyholm/psr7/actions/workflows/tests.yml?query=branch%3Amaster) A super lightweight PSR-7 implementation. Very strict and very fast. diff --git a/api/vendor/nyholm/psr7/composer.json b/api/vendor/nyholm/psr7/composer.json index fffdec0b9..c6076159d 100644 --- a/api/vendor/nyholm/psr7/composer.json +++ b/api/vendor/nyholm/psr7/composer.json @@ -15,18 +15,19 @@ } ], "require": { - "php": ">=7.1", - "psr/http-message": "^1.0", - "php-http/message-factory": "^1.0", + "php": ">=7.2", + "psr/http-message": "^1.1 || ^2.0", "psr/http-factory": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^7.5 || 8.5 || 9.4", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "php-http/message-factory": "^1.0", "php-http/psr7-integration-tests": "^1.0", "http-interop/http-factory-tests": "^0.9", "symfony/error-handler": "^4.4" }, "provide": { + "php-http/message-factory-implementation": "1.0", "psr/http-message-implementation": "1.0", "psr/http-factory-implementation": "1.0" }, @@ -42,7 +43,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.8-dev" } } } diff --git a/api/vendor/nyholm/psr7/doc/final.md b/api/vendor/nyholm/psr7/doc/final.md deleted file mode 100644 index b5b1942b8..000000000 --- a/api/vendor/nyholm/psr7/doc/final.md +++ /dev/null @@ -1,20 +0,0 @@ -# Final classes - -The `final` keyword was removed in version 1.4.0. It was replaced by `@final` annotation. -This was done due popular demand, not because it is a good technical reason to -extend the classes. - -This document will show the correct way to work with PSR-7 classes. The "correct way" -refers to best practices and good software design. I strongly believe that one should -be aware of how a problem *should* be solved, however, it is not needed to always -implement that solution. - -## Extending classes - -You should never extend the classes, you should rather use composition or implement -the interface yourself. Please refer to the [decorator pattern](https://refactoring.guru/design-patterns/decorator). - -## Mocking classes - -The PSR-7 classes are all value objects and they can be used without mocking. If -one really needs to create a special scenario, one can mock the interface instead. diff --git a/api/vendor/nyholm/psr7/phpstan-baseline.neon b/api/vendor/nyholm/psr7/phpstan-baseline.neon new file mode 100644 index 000000000..9a0cf1159 --- /dev/null +++ b/api/vendor/nyholm/psr7/phpstan-baseline.neon @@ -0,0 +1,36 @@ +parameters: + ignoreErrors: + - + message: "#^Result of && is always false\\.$#" + count: 1 + path: src/Response.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Response.php + + - + message: "#^Result of && is always false\\.$#" + count: 1 + path: src/ServerRequest.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and null will always evaluate to false\\.$#" + count: 1 + path: src/ServerRequest.php + + - + message: "#^Result of && is always false\\.$#" + count: 1 + path: src/Stream.php + + - + message: "#^Result of && is always false\\.$#" + count: 2 + path: src/UploadedFile.php + + - + message: "#^Strict comparison using \\=\\=\\= between false and true will always evaluate to false\\.$#" + count: 2 + path: src/UploadedFile.php diff --git a/api/vendor/nyholm/psr7/psalm.baseline.xml b/api/vendor/nyholm/psr7/psalm.baseline.xml new file mode 100644 index 000000000..fe5b92e76 --- /dev/null +++ b/api/vendor/nyholm/psr7/psalm.baseline.xml @@ -0,0 +1,8 @@ + + + + + return \trigger_error((string) $e, \E_USER_ERROR); + + + diff --git a/api/vendor/nyholm/psr7/psalm.xml b/api/vendor/nyholm/psr7/psalm.xml deleted file mode 100644 index d234691b9..000000000 --- a/api/vendor/nyholm/psr7/psalm.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/api/vendor/nyholm/psr7/src/Factory/HttplugFactory.php b/api/vendor/nyholm/psr7/src/Factory/HttplugFactory.php index cc64780e1..cc9285ddf 100644 --- a/api/vendor/nyholm/psr7/src/Factory/HttplugFactory.php +++ b/api/vendor/nyholm/psr7/src/Factory/HttplugFactory.php @@ -6,27 +6,38 @@ use Http\Message\{MessageFactory, StreamFactory, UriFactory}; use Nyholm\Psr7\{Request, Response, Stream, Uri}; +use Psr\Http\Message\RequestInterface; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\StreamInterface; use Psr\Http\Message\UriInterface; +if (!\interface_exists(MessageFactory::class)) { + throw new \LogicException('You cannot use "Nyholm\Psr7\Factory\HttplugFactory" as the "php-http/message-factory" package is not installed. Try running "composer require php-http/message-factory". Note that this package is deprecated, use "psr/http-factory" instead'); +} + +@\trigger_error('Class "Nyholm\Psr7\Factory\HttplugFactory" is deprecated since version 1.8, use "Nyholm\Psr7\Factory\Psr17Factory" instead.', \E_USER_DEPRECATED); + /** * @author Tobias Nyholm * @author Martijn van der Ven * * @final This class should never be extended. See https://github.com/Nyholm/psr7/blob/master/doc/final.md + * + * @deprecated since version 1.8, use Psr17Factory instead */ class HttplugFactory implements MessageFactory, StreamFactory, UriFactory { - public function createRequest($method, $uri, array $headers = [], $body = null, $protocolVersion = '1.1') + public function createRequest($method, $uri, array $headers = [], $body = null, $protocolVersion = '1.1'): RequestInterface { return new Request($method, $uri, $headers, $body, $protocolVersion); } - public function createResponse($statusCode = 200, $reasonPhrase = null, array $headers = [], $body = null, $version = '1.1') + public function createResponse($statusCode = 200, $reasonPhrase = null, array $headers = [], $body = null, $version = '1.1'): ResponseInterface { return new Response((int) $statusCode, $headers, $body, $version, $reasonPhrase); } - public function createStream($body = null) + public function createStream($body = null): StreamInterface { return Stream::create($body ?? ''); } diff --git a/api/vendor/nyholm/psr7/src/Factory/Psr17Factory.php b/api/vendor/nyholm/psr7/src/Factory/Psr17Factory.php index f304baa1b..440bec347 100644 --- a/api/vendor/nyholm/psr7/src/Factory/Psr17Factory.php +++ b/api/vendor/nyholm/psr7/src/Factory/Psr17Factory.php @@ -37,18 +37,16 @@ public function createStream(string $content = ''): StreamInterface public function createStreamFromFile(string $filename, string $mode = 'r'): StreamInterface { - try { - $resource = @\fopen($filename, $mode); - } catch (\Throwable $e) { - throw new \RuntimeException(\sprintf('The file "%s" cannot be opened.', $filename)); + if ('' === $filename) { + throw new \RuntimeException('Path cannot be empty'); } - if (false === $resource) { + if (false === $resource = @\fopen($filename, $mode)) { if ('' === $mode || false === \in_array($mode[0], ['r', 'w', 'a', 'x', 'c'], true)) { throw new \InvalidArgumentException(\sprintf('The mode "%s" is invalid.', $mode)); } - throw new \RuntimeException(\sprintf('The file "%s" cannot be opened.', $filename)); + throw new \RuntimeException(\sprintf('The file "%s" cannot be opened: %s', $filename, \error_get_last()['message'] ?? '')); } return Stream::create($resource); diff --git a/api/vendor/nyholm/psr7/src/MessageTrait.php b/api/vendor/nyholm/psr7/src/MessageTrait.php index 595258bb5..7d02383b8 100644 --- a/api/vendor/nyholm/psr7/src/MessageTrait.php +++ b/api/vendor/nyholm/psr7/src/MessageTrait.php @@ -4,6 +4,7 @@ namespace Nyholm\Psr7; +use Psr\Http\Message\MessageInterface; use Psr\Http\Message\StreamInterface; /** @@ -34,14 +35,21 @@ public function getProtocolVersion(): string return $this->protocol; } - public function withProtocolVersion($version): self + /** + * @return static + */ + public function withProtocolVersion($version): MessageInterface { + if (!\is_scalar($version)) { + throw new \InvalidArgumentException('Protocol version must be a string'); + } + if ($this->protocol === $version) { return $this; } $new = clone $this; - $new->protocol = $version; + $new->protocol = (string) $version; return $new; } @@ -58,6 +66,10 @@ public function hasHeader($header): bool public function getHeader($header): array { + if (!\is_string($header)) { + throw new \InvalidArgumentException('Header name must be an RFC 7230 compatible string'); + } + $header = \strtr($header, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'); if (!isset($this->headerNames[$header])) { return []; @@ -73,7 +85,10 @@ public function getHeaderLine($header): string return \implode(', ', $this->getHeader($header)); } - public function withHeader($header, $value): self + /** + * @return static + */ + public function withHeader($header, $value): MessageInterface { $value = $this->validateAndTrimHeader($header, $value); $normalized = \strtr($header, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'); @@ -88,10 +103,13 @@ public function withHeader($header, $value): self return $new; } - public function withAddedHeader($header, $value): self + /** + * @return static + */ + public function withAddedHeader($header, $value): MessageInterface { if (!\is_string($header) || '' === $header) { - throw new \InvalidArgumentException('Header name must be an RFC 7230 compatible string.'); + throw new \InvalidArgumentException('Header name must be an RFC 7230 compatible string'); } $new = clone $this; @@ -100,8 +118,15 @@ public function withAddedHeader($header, $value): self return $new; } - public function withoutHeader($header): self + /** + * @return static + */ + public function withoutHeader($header): MessageInterface { + if (!\is_string($header)) { + throw new \InvalidArgumentException('Header name must be an RFC 7230 compatible string'); + } + $normalized = \strtr($header, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'); if (!isset($this->headerNames[$normalized])) { return $this; @@ -123,7 +148,10 @@ public function getBody(): StreamInterface return $this->stream; } - public function withBody(StreamInterface $body): self + /** + * @return static + */ + public function withBody(StreamInterface $body): MessageInterface { if ($body === $this->stream) { return $this; @@ -175,28 +203,28 @@ private function setHeaders(array $headers): void */ private function validateAndTrimHeader($header, $values): array { - if (!\is_string($header) || 1 !== \preg_match("@^[!#$%&'*+.^_`|~0-9A-Za-z-]+$@", $header)) { - throw new \InvalidArgumentException('Header name must be an RFC 7230 compatible string.'); + if (!\is_string($header) || 1 !== \preg_match("@^[!#$%&'*+.^_`|~0-9A-Za-z-]+$@D", $header)) { + throw new \InvalidArgumentException('Header name must be an RFC 7230 compatible string'); } if (!\is_array($values)) { // This is simple, just one value. if ((!\is_numeric($values) && !\is_string($values)) || 1 !== \preg_match("@^[ \t\x21-\x7E\x80-\xFF]*$@", (string) $values)) { - throw new \InvalidArgumentException('Header values must be RFC 7230 compatible strings.'); + throw new \InvalidArgumentException('Header values must be RFC 7230 compatible strings'); } return [\trim((string) $values, " \t")]; } if (empty($values)) { - throw new \InvalidArgumentException('Header values must be a string or an array of strings, empty array given.'); + throw new \InvalidArgumentException('Header values must be a string or an array of strings, empty array given'); } // Assert Non empty array $returnValues = []; foreach ($values as $v) { - if ((!\is_numeric($v) && !\is_string($v)) || 1 !== \preg_match("@^[ \t\x21-\x7E\x80-\xFF]*$@", (string) $v)) { - throw new \InvalidArgumentException('Header values must be RFC 7230 compatible strings.'); + if ((!\is_numeric($v) && !\is_string($v)) || 1 !== \preg_match("@^[ \t\x21-\x7E\x80-\xFF]*$@D", (string) $v)) { + throw new \InvalidArgumentException('Header values must be RFC 7230 compatible strings'); } $returnValues[] = \trim((string) $v, " \t"); diff --git a/api/vendor/nyholm/psr7/src/RequestTrait.php b/api/vendor/nyholm/psr7/src/RequestTrait.php index f39993a19..2dbb3abf6 100644 --- a/api/vendor/nyholm/psr7/src/RequestTrait.php +++ b/api/vendor/nyholm/psr7/src/RequestTrait.php @@ -4,6 +4,7 @@ namespace Nyholm\Psr7; +use Psr\Http\Message\RequestInterface; use Psr\Http\Message\UriInterface; /** @@ -40,8 +41,15 @@ public function getRequestTarget(): string return $target; } - public function withRequestTarget($requestTarget): self + /** + * @return static + */ + public function withRequestTarget($requestTarget): RequestInterface { + if (!\is_string($requestTarget)) { + throw new \InvalidArgumentException('Request target must be a string'); + } + if (\preg_match('#\s#', $requestTarget)) { throw new \InvalidArgumentException('Invalid request target provided; cannot contain whitespace'); } @@ -57,7 +65,10 @@ public function getMethod(): string return $this->method; } - public function withMethod($method): self + /** + * @return static + */ + public function withMethod($method): RequestInterface { if (!\is_string($method)) { throw new \InvalidArgumentException('Method must be a string'); @@ -74,7 +85,10 @@ public function getUri(): UriInterface return $this->uri; } - public function withUri(UriInterface $uri, $preserveHost = false): self + /** + * @return static + */ + public function withUri(UriInterface $uri, $preserveHost = false): RequestInterface { if ($uri === $this->uri) { return $this; diff --git a/api/vendor/nyholm/psr7/src/Response.php b/api/vendor/nyholm/psr7/src/Response.php index 9a26d2cb5..f3e209784 100644 --- a/api/vendor/nyholm/psr7/src/Response.php +++ b/api/vendor/nyholm/psr7/src/Response.php @@ -67,7 +67,10 @@ public function getReasonPhrase(): string return $this->reasonPhrase; } - public function withStatus($code, $reasonPhrase = ''): self + /** + * @return static + */ + public function withStatus($code, $reasonPhrase = ''): ResponseInterface { if (!\is_int($code) && !\is_string($code)) { throw new \InvalidArgumentException('Status code has to be an integer'); diff --git a/api/vendor/nyholm/psr7/src/ServerRequest.php b/api/vendor/nyholm/psr7/src/ServerRequest.php index 1ad879299..a3c5ba90b 100644 --- a/api/vendor/nyholm/psr7/src/ServerRequest.php +++ b/api/vendor/nyholm/psr7/src/ServerRequest.php @@ -56,6 +56,7 @@ public function __construct(string $method, $uri, array $headers = [], $body = n $this->uri = $uri; $this->setHeaders($headers); $this->protocol = $version; + \parse_str($uri->getQuery(), $this->queryParams); if (!$this->hasHeader('Host')) { $this->updateHostFromUri(); @@ -77,7 +78,10 @@ public function getUploadedFiles(): array return $this->uploadedFiles; } - public function withUploadedFiles(array $uploadedFiles) + /** + * @return static + */ + public function withUploadedFiles(array $uploadedFiles): ServerRequestInterface { $new = clone $this; $new->uploadedFiles = $uploadedFiles; @@ -90,7 +94,10 @@ public function getCookieParams(): array return $this->cookieParams; } - public function withCookieParams(array $cookies) + /** + * @return static + */ + public function withCookieParams(array $cookies): ServerRequestInterface { $new = clone $this; $new->cookieParams = $cookies; @@ -103,7 +110,10 @@ public function getQueryParams(): array return $this->queryParams; } - public function withQueryParams(array $query) + /** + * @return static + */ + public function withQueryParams(array $query): ServerRequestInterface { $new = clone $this; $new->queryParams = $query; @@ -111,12 +121,18 @@ public function withQueryParams(array $query) return $new; } + /** + * @return array|object|null + */ public function getParsedBody() { return $this->parsedBody; } - public function withParsedBody($data) + /** + * @return static + */ + public function withParsedBody($data): ServerRequestInterface { if (!\is_array($data) && !\is_object($data) && null !== $data) { throw new \InvalidArgumentException('First parameter to withParsedBody MUST be object, array or null'); @@ -133,8 +149,15 @@ public function getAttributes(): array return $this->attributes; } + /** + * @return mixed + */ public function getAttribute($attribute, $default = null) { + if (!\is_string($attribute)) { + throw new \InvalidArgumentException('Attribute name must be a string'); + } + if (false === \array_key_exists($attribute, $this->attributes)) { return $default; } @@ -142,16 +165,30 @@ public function getAttribute($attribute, $default = null) return $this->attributes[$attribute]; } - public function withAttribute($attribute, $value): self + /** + * @return static + */ + public function withAttribute($attribute, $value): ServerRequestInterface { + if (!\is_string($attribute)) { + throw new \InvalidArgumentException('Attribute name must be a string'); + } + $new = clone $this; $new->attributes[$attribute] = $value; return $new; } - public function withoutAttribute($attribute): self + /** + * @return static + */ + public function withoutAttribute($attribute): ServerRequestInterface { + if (!\is_string($attribute)) { + throw new \InvalidArgumentException('Attribute name must be a string'); + } + if (false === \array_key_exists($attribute, $this->attributes)) { return $this; } diff --git a/api/vendor/nyholm/psr7/src/Stream.php b/api/vendor/nyholm/psr7/src/Stream.php index 1a7f8c1f9..63b7d6dd5 100644 --- a/api/vendor/nyholm/psr7/src/Stream.php +++ b/api/vendor/nyholm/psr7/src/Stream.php @@ -5,8 +5,6 @@ namespace Nyholm\Psr7; use Psr\Http\Message\StreamInterface; -use Symfony\Component\Debug\ErrorHandler as SymfonyLegacyErrorHandler; -use Symfony\Component\ErrorHandler\ErrorHandler as SymfonyErrorHandler; /** * @author Michael Dowling and contributors to guzzlehttp/psr7 @@ -17,6 +15,8 @@ */ class Stream implements StreamInterface { + use StreamTrait; + /** @var resource|null A resource reference */ private $stream; @@ -51,8 +51,20 @@ class Stream implements StreamInterface ], ]; - private function __construct() + /** + * @param resource $body + */ + public function __construct($body) { + if (!\is_resource($body)) { + throw new \InvalidArgumentException('First argument to Stream::__construct() must be resource'); + } + + $this->stream = $body; + $meta = \stream_get_meta_data($this->stream); + $this->seekable = $meta['seekable'] && 0 === \fseek($this->stream, 0, \SEEK_CUR); + $this->readable = isset(self::READ_WRITE_HASH['read'][$meta['mode']]); + $this->writable = isset(self::READ_WRITE_HASH['write'][$meta['mode']]); } /** @@ -69,23 +81,21 @@ public static function create($body = ''): StreamInterface } if (\is_string($body)) { - $resource = \fopen('php://temp', 'rw+'); - \fwrite($resource, $body); - $body = $resource; + if (200000 <= \strlen($body)) { + $body = self::openZvalStream($body); + } else { + $resource = \fopen('php://memory', 'r+'); + \fwrite($resource, $body); + \fseek($resource, 0); + $body = $resource; + } } - if (\is_resource($body)) { - $new = new self(); - $new->stream = $body; - $meta = \stream_get_meta_data($new->stream); - $new->seekable = $meta['seekable'] && 0 === \fseek($new->stream, 0, \SEEK_CUR); - $new->readable = isset(self::READ_WRITE_HASH['read'][$meta['mode']]); - $new->writable = isset(self::READ_WRITE_HASH['write'][$meta['mode']]); - - return $new; + if (!\is_resource($body)) { + throw new \InvalidArgumentException('First argument to Stream::create() must be a string, resource or StreamInterface'); } - throw new \InvalidArgumentException('First argument to Stream::create() must be a string, resource or StreamInterface.'); + return new self($body); } /** @@ -96,35 +106,6 @@ public function __destruct() $this->close(); } - /** - * @return string - */ - public function __toString() - { - try { - if ($this->isSeekable()) { - $this->seek(0); - } - - return $this->getContents(); - } catch (\Throwable $e) { - if (\PHP_VERSION_ID >= 70400) { - throw $e; - } - - if (\is_array($errorHandler = \set_error_handler('var_dump'))) { - $errorHandler = $errorHandler[0] ?? null; - } - \restore_error_handler(); - - if ($e instanceof \Error || $errorHandler instanceof SymfonyErrorHandler || $errorHandler instanceof SymfonyLegacyErrorHandler) { - return \trigger_error((string) $e, \E_USER_ERROR); - } - - return ''; - } - } - public function close(): void { if (isset($this->stream)) { @@ -185,8 +166,12 @@ public function getSize(): ?int public function tell(): int { - if (false === $result = \ftell($this->stream)) { - throw new \RuntimeException('Unable to determine stream position'); + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + + if (false === $result = @\ftell($this->stream)) { + throw new \RuntimeException('Unable to determine stream position: ' . (\error_get_last()['message'] ?? '')); } return $result; @@ -194,7 +179,7 @@ public function tell(): int public function eof(): bool { - return !$this->stream || \feof($this->stream); + return !isset($this->stream) || \feof($this->stream); } public function isSeekable(): bool @@ -204,6 +189,10 @@ public function isSeekable(): bool public function seek($offset, $whence = \SEEK_SET): void { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + if (!$this->seekable) { throw new \RuntimeException('Stream is not seekable'); } @@ -225,6 +214,10 @@ public function isWritable(): bool public function write($string): int { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + if (!$this->writable) { throw new \RuntimeException('Cannot write to a non-writable stream'); } @@ -232,8 +225,8 @@ public function write($string): int // We can't know the size after writing anything $this->size = null; - if (false === $result = \fwrite($this->stream, $string)) { - throw new \RuntimeException('Unable to write to stream'); + if (false === $result = @\fwrite($this->stream, $string)) { + throw new \RuntimeException('Unable to write to stream: ' . (\error_get_last()['message'] ?? '')); } return $result; @@ -246,12 +239,16 @@ public function isReadable(): bool public function read($length): string { + if (!isset($this->stream)) { + throw new \RuntimeException('Stream is detached'); + } + if (!$this->readable) { throw new \RuntimeException('Cannot read from non-readable stream'); } - if (false === $result = \fread($this->stream, $length)) { - throw new \RuntimeException('Unable to read from stream'); + if (false === $result = @\fread($this->stream, $length)) { + throw new \RuntimeException('Unable to read from stream: ' . (\error_get_last()['message'] ?? '')); } return $result; @@ -260,18 +257,33 @@ public function read($length): string public function getContents(): string { if (!isset($this->stream)) { - throw new \RuntimeException('Unable to read stream contents'); + throw new \RuntimeException('Stream is detached'); } - if (false === $contents = \stream_get_contents($this->stream)) { - throw new \RuntimeException('Unable to read stream contents'); - } + $exception = null; + + \set_error_handler(static function ($type, $message) use (&$exception) { + throw $exception = new \RuntimeException('Unable to read stream contents: ' . $message); + }); - return $contents; + try { + return \stream_get_contents($this->stream); + } catch (\Throwable $e) { + throw $e === $exception ? $e : new \RuntimeException('Unable to read stream contents: ' . $e->getMessage(), 0, $e); + } finally { + \restore_error_handler(); + } } + /** + * @return mixed + */ public function getMetadata($key = null) { + if (null !== $key && !\is_string($key)) { + throw new \InvalidArgumentException('Metadata key must be a string'); + } + if (!isset($this->stream)) { return $key ? null : []; } @@ -284,4 +296,104 @@ public function getMetadata($key = null) return $meta[$key] ?? null; } + + private static function openZvalStream(string $body) + { + static $wrapper; + + $wrapper ?? \stream_wrapper_register('Nyholm-Psr7-Zval', $wrapper = \get_class(new class() { + public $context; + + private $data; + private $position = 0; + + public function stream_open(): bool + { + $this->data = \stream_context_get_options($this->context)['Nyholm-Psr7-Zval']['data']; + \stream_context_set_option($this->context, 'Nyholm-Psr7-Zval', 'data', null); + + return true; + } + + public function stream_read(int $count): string + { + $result = \substr($this->data, $this->position, $count); + $this->position += \strlen($result); + + return $result; + } + + public function stream_write(string $data): int + { + $this->data = \substr_replace($this->data, $data, $this->position, \strlen($data)); + $this->position += \strlen($data); + + return \strlen($data); + } + + public function stream_tell(): int + { + return $this->position; + } + + public function stream_eof(): bool + { + return \strlen($this->data) <= $this->position; + } + + public function stream_stat(): array + { + return [ + 'mode' => 33206, // POSIX_S_IFREG | 0666 + 'nlink' => 1, + 'rdev' => -1, + 'size' => \strlen($this->data), + 'blksize' => -1, + 'blocks' => -1, + ]; + } + + public function stream_seek(int $offset, int $whence): bool + { + if (\SEEK_SET === $whence && (0 <= $offset && \strlen($this->data) >= $offset)) { + $this->position = $offset; + } elseif (\SEEK_CUR === $whence && 0 <= $offset) { + $this->position += $offset; + } elseif (\SEEK_END === $whence && (0 > $offset && 0 <= $offset = \strlen($this->data) + $offset)) { + $this->position = $offset; + } else { + return false; + } + + return true; + } + + public function stream_set_option(): bool + { + return true; + } + + public function stream_truncate(int $new_size): bool + { + if ($new_size) { + $this->data = \substr($this->data, 0, $new_size); + $this->position = \min($this->position, $new_size); + } else { + $this->data = ''; + $this->position = 0; + } + + return true; + } + })); + + $context = \stream_context_create(['Nyholm-Psr7-Zval' => ['data' => $body]]); + + if (!$stream = @\fopen('Nyholm-Psr7-Zval://', 'r+', false, $context)) { + \stream_wrapper_register('Nyholm-Psr7-Zval', $wrapper); + $stream = \fopen('Nyholm-Psr7-Zval://', 'r+', false, $context); + } + + return $stream; + } } diff --git a/api/vendor/nyholm/psr7/src/StreamTrait.php b/api/vendor/nyholm/psr7/src/StreamTrait.php new file mode 100644 index 000000000..41a3f9d7e --- /dev/null +++ b/api/vendor/nyholm/psr7/src/StreamTrait.php @@ -0,0 +1,57 @@ += 70400 || (new \ReflectionMethod(StreamInterface::class, '__toString'))->hasReturnType()) { + /** + * @internal + */ + trait StreamTrait + { + public function __toString(): string + { + if ($this->isSeekable()) { + $this->seek(0); + } + + return $this->getContents(); + } + } +} else { + /** + * @internal + */ + trait StreamTrait + { + /** + * @return string + */ + public function __toString() + { + try { + if ($this->isSeekable()) { + $this->seek(0); + } + + return $this->getContents(); + } catch (\Throwable $e) { + if (\is_array($errorHandler = \set_error_handler('var_dump'))) { + $errorHandler = $errorHandler[0] ?? null; + } + \restore_error_handler(); + + if ($e instanceof \Error || $errorHandler instanceof SymfonyErrorHandler || $errorHandler instanceof SymfonyLegacyErrorHandler) { + return \trigger_error((string) $e, \E_USER_ERROR); + } + + return ''; + } + } + } +} diff --git a/api/vendor/nyholm/psr7/src/UploadedFile.php b/api/vendor/nyholm/psr7/src/UploadedFile.php index 198cd3386..c77dca43f 100644 --- a/api/vendor/nyholm/psr7/src/UploadedFile.php +++ b/api/vendor/nyholm/psr7/src/UploadedFile.php @@ -58,7 +58,7 @@ class UploadedFile implements UploadedFileInterface public function __construct($streamOrFile, $size, $errorStatus, $clientFilename = null, $clientMediaType = null) { if (false === \is_int($errorStatus) || !isset(self::ERRORS[$errorStatus])) { - throw new \InvalidArgumentException('Upload file error status must be an integer value and one of the "UPLOAD_ERR_*" constants.'); + throw new \InvalidArgumentException('Upload file error status must be an integer value and one of the "UPLOAD_ERR_*" constants'); } if (false === \is_int($size)) { @@ -80,7 +80,7 @@ public function __construct($streamOrFile, $size, $errorStatus, $clientFilename if (\UPLOAD_ERR_OK === $this->error) { // Depending on the value set file or stream variable. - if (\is_string($streamOrFile)) { + if (\is_string($streamOrFile) && '' !== $streamOrFile) { $this->file = $streamOrFile; } elseif (\is_resource($streamOrFile)) { $this->stream = Stream::create($streamOrFile); @@ -114,11 +114,11 @@ public function getStream(): StreamInterface return $this->stream; } - try { - return Stream::create(\fopen($this->file, 'r')); - } catch (\Throwable $e) { - throw new \RuntimeException(\sprintf('The file "%s" cannot be opened.', $this->file)); + if (false === $resource = @\fopen($this->file, 'r')) { + throw new \RuntimeException(\sprintf('The file "%s" cannot be opened: %s', $this->file, \error_get_last()['message'] ?? '')); } + + return Stream::create($resource); } public function moveTo($targetPath): void @@ -130,20 +130,23 @@ public function moveTo($targetPath): void } if (null !== $this->file) { - $this->moved = 'cli' === \PHP_SAPI ? \rename($this->file, $targetPath) : \move_uploaded_file($this->file, $targetPath); + $this->moved = 'cli' === \PHP_SAPI ? @\rename($this->file, $targetPath) : @\move_uploaded_file($this->file, $targetPath); + + if (false === $this->moved) { + throw new \RuntimeException(\sprintf('Uploaded file could not be moved to "%s": %s', $targetPath, \error_get_last()['message'] ?? '')); + } } else { $stream = $this->getStream(); if ($stream->isSeekable()) { $stream->rewind(); } - try { - // Copy the contents of a stream into another stream until end-of-file. - $dest = Stream::create(\fopen($targetPath, 'w')); - } catch (\Throwable $e) { - throw new \RuntimeException(\sprintf('The file "%s" cannot be opened.', $targetPath)); + if (false === $resource = @\fopen($targetPath, 'w')) { + throw new \RuntimeException(\sprintf('The file "%s" cannot be opened: %s', $targetPath, \error_get_last()['message'] ?? '')); } + $dest = Stream::create($resource); + while (!$stream->eof()) { if (!$dest->write($stream->read(1048576))) { break; @@ -152,10 +155,6 @@ public function moveTo($targetPath): void $this->moved = true; } - - if (false === $this->moved) { - throw new \RuntimeException(\sprintf('Uploaded file could not be moved to "%s"', $targetPath)); - } } public function getSize(): int diff --git a/api/vendor/nyholm/psr7/src/Uri.php b/api/vendor/nyholm/psr7/src/Uri.php index 13fbf72e7..621e2e724 100644 --- a/api/vendor/nyholm/psr7/src/Uri.php +++ b/api/vendor/nyholm/psr7/src/Uri.php @@ -25,6 +25,8 @@ class Uri implements UriInterface private const CHAR_SUB_DELIMS = '!\$&\'\(\)\*\+,;='; + private const CHAR_GEN_DELIMS = ':\/\?#\[\]@'; + /** @var string Uri scheme. */ private $scheme = ''; @@ -112,7 +114,20 @@ public function getPort(): ?int public function getPath(): string { - return $this->path; + $path = $this->path; + + if ('' !== $path && '/' !== $path[0]) { + if ('' !== $this->host) { + // If the path is rootless and an authority is present, the path MUST be prefixed by "/" + $path = '/' . $path; + } + } elseif (isset($path[1]) && '/' === $path[1]) { + // If the path is starting with more than one "/", the + // starting slashes MUST be reduced to one. + $path = '/' . \ltrim($path, '/'); + } + + return $path; } public function getQuery(): string @@ -125,7 +140,10 @@ public function getFragment(): string return $this->fragment; } - public function withScheme($scheme): self + /** + * @return static + */ + public function withScheme($scheme): UriInterface { if (!\is_string($scheme)) { throw new \InvalidArgumentException('Scheme must be a string'); @@ -142,11 +160,22 @@ public function withScheme($scheme): self return $new; } - public function withUserInfo($user, $password = null): self + /** + * @return static + */ + public function withUserInfo($user, $password = null): UriInterface { - $info = $user; + if (!\is_string($user)) { + throw new \InvalidArgumentException('User must be a string'); + } + + $info = \preg_replace_callback('/[' . self::CHAR_GEN_DELIMS . self::CHAR_SUB_DELIMS . ']++/', [__CLASS__, 'rawurlencodeMatchZero'], $user); if (null !== $password && '' !== $password) { - $info .= ':' . $password; + if (!\is_string($password)) { + throw new \InvalidArgumentException('Password must be a string'); + } + + $info .= ':' . \preg_replace_callback('/[' . self::CHAR_GEN_DELIMS . self::CHAR_SUB_DELIMS . ']++/', [__CLASS__, 'rawurlencodeMatchZero'], $password); } if ($this->userInfo === $info) { @@ -159,7 +188,10 @@ public function withUserInfo($user, $password = null): self return $new; } - public function withHost($host): self + /** + * @return static + */ + public function withHost($host): UriInterface { if (!\is_string($host)) { throw new \InvalidArgumentException('Host must be a string'); @@ -175,7 +207,10 @@ public function withHost($host): self return $new; } - public function withPort($port): self + /** + * @return static + */ + public function withPort($port): UriInterface { if ($this->port === $port = $this->filterPort($port)) { return $this; @@ -187,7 +222,10 @@ public function withPort($port): self return $new; } - public function withPath($path): self + /** + * @return static + */ + public function withPath($path): UriInterface { if ($this->path === $path = $this->filterPath($path)) { return $this; @@ -199,7 +237,10 @@ public function withPath($path): self return $new; } - public function withQuery($query): self + /** + * @return static + */ + public function withQuery($query): UriInterface { if ($this->query === $query = $this->filterQueryAndFragment($query)) { return $this; @@ -211,7 +252,10 @@ public function withQuery($query): self return $new; } - public function withFragment($fragment): self + /** + * @return static + */ + public function withFragment($fragment): UriInterface { if ($this->fragment === $fragment = $this->filterQueryAndFragment($fragment)) { return $this; @@ -280,7 +324,7 @@ private function filterPort($port): ?int } $port = (int) $port; - if (0 > $port || 0xffff < $port) { + if (0 > $port || 0xFFFF < $port) { throw new \InvalidArgumentException(\sprintf('Invalid port: %d. Must be between 0 and 65535', $port)); } diff --git a/api/vendor/opis/closure/autoload.php b/api/vendor/opis/closure/autoload.php index 48b10f66f..2354ea565 100644 --- a/api/vendor/opis/closure/autoload.php +++ b/api/vendor/opis/closure/autoload.php @@ -5,7 +5,7 @@ * Licensed under the MIT License * =========================================================================== */ -require_once 'functions.php'; +require_once __DIR__ . '/functions.php'; spl_autoload_register(function($class){ diff --git a/api/vendor/overtrue/socialite/composer.json b/api/vendor/overtrue/socialite/composer.json index 337bd169d..d5b4aef36 100644 --- a/api/vendor/overtrue/socialite/composer.json +++ b/api/vendor/overtrue/socialite/composer.json @@ -22,7 +22,7 @@ }, "require-dev": { "mockery/mockery": "~1.2", - "phpunit/phpunit": "~6" + "phpunit/phpunit": "^6.0|^7.0|^8.0|^9.0" }, "license": "MIT", "authors": [ diff --git a/api/vendor/overtrue/socialite/src/Providers/GoogleProvider.php b/api/vendor/overtrue/socialite/src/Providers/GoogleProvider.php index e74d8302f..c702aff1a 100644 --- a/api/vendor/overtrue/socialite/src/Providers/GoogleProvider.php +++ b/api/vendor/overtrue/socialite/src/Providers/GoogleProvider.php @@ -65,7 +65,8 @@ protected function getTokenUrl() */ public function getAccessToken($code) { - $postKey = (1 === version_compare(ClientInterface::VERSION, '6')) ? 'form_params' : 'body'; + $guzzleVersion = \defined(ClientInterface::class.'::VERSION') ? \constant(ClientInterface::class.'::VERSION') : 7; + $postKey = (1 === version_compare($guzzleVersion, '6')) ? 'form_params' : 'body'; $response = $this->getHttpClient()->post($this->getTokenUrl(), [ $postKey => $this->getTokenFields($code), diff --git a/api/vendor/overtrue/wechat/src/BasicService/ContentSecurity/Client.php b/api/vendor/overtrue/wechat/src/BasicService/ContentSecurity/Client.php index 227d041df..9f4b1422b 100644 --- a/api/vendor/overtrue/wechat/src/BasicService/ContentSecurity/Client.php +++ b/api/vendor/overtrue/wechat/src/BasicService/ContentSecurity/Client.php @@ -21,11 +21,6 @@ */ class Client extends BaseClient { - /** - * @var string - */ - protected $baseUri = 'https://api.weixin.qq.com/wxa/'; - /** * Text content security check. * @@ -40,7 +35,7 @@ public function checkText(string $text) 'content' => $text, ]; - return $this->httpPostJson('msg_sec_check', $params); + return $this->httpPostJson('wxa/msg_sec_check', $params); } /** @@ -53,7 +48,7 @@ public function checkText(string $text) */ public function checkImage(string $path) { - return $this->httpUpload('img_sec_check', ['media' => $path]); + return $this->httpUpload('wxa/img_sec_check', ['media' => $path]); } /** @@ -81,7 +76,7 @@ public function checkMediaAsync(string $mediaUrl, int $mediaType) 'media_type' => $mediaType, ]; - return $this->httpPostJson('media_check_async', $params); + return $this->httpPostJson('wxa/media_check_async', $params); } /** diff --git a/api/vendor/overtrue/wechat/src/BasicService/Jssdk/Client.php b/api/vendor/overtrue/wechat/src/BasicService/Jssdk/Client.php index 565e2995d..f6dbb5e5d 100644 --- a/api/vendor/overtrue/wechat/src/BasicService/Jssdk/Client.php +++ b/api/vendor/overtrue/wechat/src/BasicService/Jssdk/Client.php @@ -28,7 +28,7 @@ class Client extends BaseClient /** * @var string */ - protected $ticketEndpoint = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket'; + protected $ticketEndpoint = 'cgi-bin/ticket/getticket'; /** * Current URI. diff --git a/api/vendor/overtrue/wechat/src/BasicService/Media/Client.php b/api/vendor/overtrue/wechat/src/BasicService/Media/Client.php index 21c0dfd99..70654baca 100644 --- a/api/vendor/overtrue/wechat/src/BasicService/Media/Client.php +++ b/api/vendor/overtrue/wechat/src/BasicService/Media/Client.php @@ -22,11 +22,6 @@ */ class Client extends BaseClient { - /** - * @var string - */ - protected $baseUri = 'https://api.weixin.qq.com/cgi-bin/'; - /** * Allow media type. * @@ -113,7 +108,7 @@ public function upload(string $type, string $path) throw new InvalidArgumentException(sprintf("Unsupported media type: '%s'", $type)); } - return $this->httpUpload('media/upload', ['media' => $path], ['type' => $type]); + return $this->httpUpload('cgi-bin/media/upload', ['media' => $path], ['type' => $type]); } /** @@ -144,7 +139,7 @@ public function uploadVideoForBroadcasting(string $path, string $title, string $ */ public function createVideoForBroadcasting(string $mediaId, string $title, string $description) { - return $this->httpPostJson('media/uploadvideo', [ + return $this->httpPostJson('cgi-bin/media/uploadvideo', [ 'media_id' => $mediaId, 'title' => $title, 'description' => $description, @@ -161,7 +156,7 @@ public function createVideoForBroadcasting(string $mediaId, string $title, strin */ public function get(string $mediaId) { - $response = $this->requestRaw('media/get', 'GET', [ + $response = $this->requestRaw('cgi-bin/media/get', 'GET', [ 'query' => [ 'media_id' => $mediaId, ], @@ -182,7 +177,7 @@ public function get(string $mediaId) */ public function getJssdkMedia(string $mediaId) { - $response = $this->requestRaw('media/get/jssdk', 'GET', [ + $response = $this->requestRaw('cgi-bin/media/get/jssdk', 'GET', [ 'query' => [ 'media_id' => $mediaId, ], diff --git a/api/vendor/overtrue/wechat/src/BasicService/QrCode/Client.php b/api/vendor/overtrue/wechat/src/BasicService/QrCode/Client.php index 15a8f6404..92caeeb92 100644 --- a/api/vendor/overtrue/wechat/src/BasicService/QrCode/Client.php +++ b/api/vendor/overtrue/wechat/src/BasicService/QrCode/Client.php @@ -20,11 +20,6 @@ */ class Client extends BaseClient { - /** - * @var string - */ - protected $baseUri = 'https://api.weixin.qq.com/cgi-bin/'; - public const DAY = 86400; public const SCENE_MAX_VALUE = 100000; public const SCENE_QR_CARD = 'QR_CARD'; @@ -115,6 +110,6 @@ protected function create($actionName, $actionInfo, $temporary = true, $expireSe $params['expire_seconds'] = min($expireSeconds, 30 * self::DAY); } - return $this->httpPostJson('qrcode/create', $params); + return $this->httpPostJson('cgi-bin/qrcode/create', $params); } } diff --git a/api/vendor/overtrue/wechat/src/BasicService/Url/Client.php b/api/vendor/overtrue/wechat/src/BasicService/Url/Client.php index bac5c4072..b4b0a4c28 100644 --- a/api/vendor/overtrue/wechat/src/BasicService/Url/Client.php +++ b/api/vendor/overtrue/wechat/src/BasicService/Url/Client.php @@ -20,11 +20,6 @@ */ class Client extends BaseClient { - /** - * @var string - */ - protected $baseUri = 'https://api.weixin.qq.com/'; - /** * Shorten the url. * diff --git a/api/vendor/overtrue/wechat/src/Kernel/AccessToken.php b/api/vendor/overtrue/wechat/src/Kernel/AccessToken.php index bdb21904e..6edc1d429 100644 --- a/api/vendor/overtrue/wechat/src/Kernel/AccessToken.php +++ b/api/vendor/overtrue/wechat/src/Kernel/AccessToken.php @@ -75,6 +75,11 @@ public function __construct(ServiceContainer $app) $this->app = $app; } + public function getLastToken(): array + { + return $this->token; + } + /** * @throws \EasyWeChat\Kernel\Exceptions\HttpException * @throws \Psr\SimpleCache\InvalidArgumentException @@ -108,6 +113,8 @@ public function getToken(bool $refresh = false): array $this->setToken($token[$this->tokenKey], $token['expires_in'] ?? 7200); + $this->token = $token; + $this->app->events->dispatch(new Events\AccessTokenRefreshed($this)); return $token; diff --git a/api/vendor/overtrue/wechat/src/Kernel/Providers/LogServiceProvider.php b/api/vendor/overtrue/wechat/src/Kernel/Providers/LogServiceProvider.php index fa15e6bea..b3ee84bc6 100644 --- a/api/vendor/overtrue/wechat/src/Kernel/Providers/LogServiceProvider.php +++ b/api/vendor/overtrue/wechat/src/Kernel/Providers/LogServiceProvider.php @@ -48,7 +48,9 @@ public function register(Container $pimple) public function formatLogConfig($app) { if (!empty($app['config']->get('log.channels'))) { - return $app['config']->get('log'); + return [ + 'log' => $app['config']->get('log'), + ]; } if (empty($app['config']->get('log'))) { diff --git a/api/vendor/overtrue/wechat/src/Kernel/ServiceContainer.php b/api/vendor/overtrue/wechat/src/Kernel/ServiceContainer.php index 135093c82..78798aee0 100644 --- a/api/vendor/overtrue/wechat/src/Kernel/ServiceContainer.php +++ b/api/vendor/overtrue/wechat/src/Kernel/ServiceContainer.php @@ -157,4 +157,8 @@ public function registerProviders(array $providers) parent::register(new $provider()); } } + + public function getClient () { + return new BaseClient($this); + } } diff --git a/api/vendor/overtrue/wechat/src/MiniProgram/Auth/AccessToken.php b/api/vendor/overtrue/wechat/src/MiniProgram/Auth/AccessToken.php index 8147d2500..af08921b7 100644 --- a/api/vendor/overtrue/wechat/src/MiniProgram/Auth/AccessToken.php +++ b/api/vendor/overtrue/wechat/src/MiniProgram/Auth/AccessToken.php @@ -23,7 +23,7 @@ class AccessToken extends BaseAccessToken /** * @var string */ - protected $endpointToGetToken = 'https://api.weixin.qq.com/cgi-bin/token'; + protected $endpointToGetToken = 'cgi-bin/token'; /** * {@inheritdoc} diff --git a/api/vendor/overtrue/wechat/src/MiniProgram/Base/Client.php b/api/vendor/overtrue/wechat/src/MiniProgram/Base/Client.php index 84d6b8146..b4f5bd810 100644 --- a/api/vendor/overtrue/wechat/src/MiniProgram/Base/Client.php +++ b/api/vendor/overtrue/wechat/src/MiniProgram/Base/Client.php @@ -35,4 +35,19 @@ public function getPaidUnionid($openid, $options = []) { return $this->httpGet('wxa/getpaidunionid', compact('openid') + $options); } + + /** + * Get user phone number by code + * + * @param string $code + * + * @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string + * + * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException + * @throws \GuzzleHttp\Exception\GuzzleException + */ + public function getPhoneNumber($code) + { + return $this->httpPostJson('wxa/business/getuserphonenumber', ['code' => $code]); + } } diff --git a/api/vendor/overtrue/wechat/src/MiniProgram/OpenData/Client.php b/api/vendor/overtrue/wechat/src/MiniProgram/OpenData/Client.php index 73944dc02..c945f8c5d 100644 --- a/api/vendor/overtrue/wechat/src/MiniProgram/OpenData/Client.php +++ b/api/vendor/overtrue/wechat/src/MiniProgram/OpenData/Client.php @@ -20,11 +20,6 @@ */ class Client extends BaseClient { - /** - * @var string - */ - protected $baseUri = 'https://api.weixin.qq.com/wxa/'; - /** * removeUserStorage. * @@ -42,7 +37,7 @@ public function removeUserStorage(string $openid, string $sessionKey, array $key 'signature' => hash_hmac('sha256', json_encode($data), $sessionKey), ]; - return $this->httpPostJson('remove_user_storage', $data, $query); + return $this->httpPostJson('wxa/remove_user_storage', $data, $query); } /** @@ -64,7 +59,7 @@ public function setUserStorage(string $openid, string $sessionKey, array $kvList 'signature' => hash_hmac('sha256', json_encode($data), $sessionKey), ]; - return $this->httpPostJson('set_user_storage', $data, $query); + return $this->httpPostJson('wxa/set_user_storage', $data, $query); } /** diff --git a/api/vendor/overtrue/wechat/src/OfficialAccount/Auth/AccessToken.php b/api/vendor/overtrue/wechat/src/OfficialAccount/Auth/AccessToken.php index 9d6e24455..55409bad8 100644 --- a/api/vendor/overtrue/wechat/src/OfficialAccount/Auth/AccessToken.php +++ b/api/vendor/overtrue/wechat/src/OfficialAccount/Auth/AccessToken.php @@ -23,7 +23,7 @@ class AccessToken extends BaseAccessToken /** * @var string */ - protected $endpointToGetToken = 'https://api.weixin.qq.com/cgi-bin/token'; + protected $endpointToGetToken = 'cgi-bin/token'; protected function getCredentials(): array { diff --git a/api/vendor/overtrue/wechat/src/OfficialAccount/Guide/Client.php b/api/vendor/overtrue/wechat/src/OfficialAccount/Guide/Client.php index 6fcd3aed2..9c771dc9e 100644 --- a/api/vendor/overtrue/wechat/src/OfficialAccount/Guide/Client.php +++ b/api/vendor/overtrue/wechat/src/OfficialAccount/Guide/Client.php @@ -23,7 +23,6 @@ */ class Client extends BaseClient { - /** * 添加顾问 * @param string $guideAccount diff --git a/api/vendor/overtrue/wechat/src/OpenWork/Server/Handlers/EchoStrHandler.php b/api/vendor/overtrue/wechat/src/OpenWork/Server/Handlers/EchoStrHandler.php index b63af19b3..b3aaf3715 100644 --- a/api/vendor/overtrue/wechat/src/OpenWork/Server/Handlers/EchoStrHandler.php +++ b/api/vendor/overtrue/wechat/src/OpenWork/Server/Handlers/EchoStrHandler.php @@ -53,7 +53,7 @@ public function handle($payload = null) return new FinallyResult($str); } //把SuiteTicket缓存起来 - if (!empty($payload['SuiteTicket'])) { + if (!empty($payload['SuiteTicket']) && !empty($payload['SuiteId']) && $this->app['config']['suite_id'] == $payload['SuiteId']) { $this->app['suite_ticket']->setTicket($payload['SuiteTicket']); } } diff --git a/api/vendor/overtrue/wechat/src/Work/ExternalContact/Client.php b/api/vendor/overtrue/wechat/src/Work/ExternalContact/Client.php index 327f25dcd..21ece9871 100644 --- a/api/vendor/overtrue/wechat/src/Work/ExternalContact/Client.php +++ b/api/vendor/overtrue/wechat/src/Work/ExternalContact/Client.php @@ -164,10 +164,11 @@ public function getGroupChats(array $params) * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ - public function getGroupChat(string $chatId) + public function getGroupChat(string $chatId, int $needName = 0) { $params = [ 'chat_id' => $chatId, + 'need_name' => $needName, ]; return $this->httpPostJson('cgi-bin/externalcontact/groupchat/get', $params); diff --git a/api/vendor/overtrue/wechat/src/Work/ExternalContact/MessageClient.php b/api/vendor/overtrue/wechat/src/Work/ExternalContact/MessageClient.php index db21997c3..a79017587 100644 --- a/api/vendor/overtrue/wechat/src/Work/ExternalContact/MessageClient.php +++ b/api/vendor/overtrue/wechat/src/Work/ExternalContact/MessageClient.php @@ -26,7 +26,7 @@ class MessageClient extends BaseClient * * @var array */ - protected $required = ['content', 'media_id', 'title', 'url', 'pic_media_id', 'appid', 'page']; + protected $required = ['media_id', 'title', 'url', 'pic_media_id', 'appid', 'page']; protected $textMessage = [ 'content' => '', @@ -153,4 +153,19 @@ protected function formatFields(array $data = [], array $default = []) return $params; } + + /** + * 企业发表内容到客户的朋友圈 + * + * @see https://developer.work.weixin.qq.com/document/path/95094 + * + * @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string + * + * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException + * @throws \GuzzleHttp\Exception\GuzzleException + */ + public function moments(array $msg) + { + return $this->httpPostJson('cgi-bin/externalcontact/add_moment_task', $msg); + } } diff --git a/api/vendor/overtrue/wechat/src/Work/ExternalContact/SchoolClient.php b/api/vendor/overtrue/wechat/src/Work/ExternalContact/SchoolClient.php index a38b95e14..1e86328e2 100644 --- a/api/vendor/overtrue/wechat/src/Work/ExternalContact/SchoolClient.php +++ b/api/vendor/overtrue/wechat/src/Work/ExternalContact/SchoolClient.php @@ -20,7 +20,6 @@ */ class SchoolClient extends BaseClient { - /** * 创建部门 * @see https://work.weixin.qq.com/api/doc/90000/90135/92340 @@ -431,8 +430,8 @@ public function getTeacherViewMode() */ public function convertOpenid(string $userId) { - return $this->httpGet('cgi-bin/externalcontact/convert_to_openid',[ - 'external_userid' => $userId + return $this->httpGet('cgi-bin/externalcontact/convert_to_openid', [ + 'external_userid' => $userId ]); } diff --git a/api/vendor/overtrue/wechat/src/Work/ExternalContact/ServiceProvider.php b/api/vendor/overtrue/wechat/src/Work/ExternalContact/ServiceProvider.php index 2d4af0569..25d2f8ef7 100644 --- a/api/vendor/overtrue/wechat/src/Work/ExternalContact/ServiceProvider.php +++ b/api/vendor/overtrue/wechat/src/Work/ExternalContact/ServiceProvider.php @@ -42,7 +42,7 @@ public function register(Container $app) return new MessageClient($app); }; - $app['school'] = function ($app){ + $app['school'] = function ($app) { return new SchoolClient($app); }; } diff --git a/api/vendor/overtrue/wechat/src/Work/Jssdk/Client.php b/api/vendor/overtrue/wechat/src/Work/Jssdk/Client.php index 752c26fcc..d65bbe22a 100644 --- a/api/vendor/overtrue/wechat/src/Work/Jssdk/Client.php +++ b/api/vendor/overtrue/wechat/src/Work/Jssdk/Client.php @@ -22,7 +22,7 @@ */ class Client extends BaseClient { - protected $ticketEndpoint = 'https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket'; + protected $ticketEndpoint = 'cgi-bin/get_jsapi_ticket'; /** * @return string diff --git a/api/vendor/overtrue/wechat/src/Work/Media/Client.php b/api/vendor/overtrue/wechat/src/Work/Media/Client.php index 285a11a83..9b8a8158c 100644 --- a/api/vendor/overtrue/wechat/src/Work/Media/Client.php +++ b/api/vendor/overtrue/wechat/src/Work/Media/Client.php @@ -84,6 +84,16 @@ public function uploadFile(string $path) return $this->upload('file', $path); } + /** + * Upload Attachment Resources + * + * @return mixed + */ + public function uploadAttachmentResources(string $path, string $mediaType = 'image', int $attachmentType = 1) + { + return $this->uploadAttachment($path, $mediaType, $attachmentType); + } + /** * Upload media. * @@ -100,4 +110,26 @@ public function upload(string $type, string $path) return $this->httpUpload('cgi-bin/media/upload', $files, [], compact('type')); } + + /** + * Upload media + * + * @return mixed + * + * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException + * @throws \GuzzleHttp\Exception\GuzzleException + */ + public function uploadAttachment(string $path, string $mediaType, int $attachmentType) + { + $files = [ + 'media' => $path, + ]; + + $query = [ + 'media_type' => $mediaType, + 'attachment_type' => $attachmentType, + ]; + + return $this->httpUpload('cgi-bin/media/upload_attachment', $files, [], $query); + } } diff --git a/api/vendor/overtrue/wechat/src/Work/Message/Client.php b/api/vendor/overtrue/wechat/src/Work/Message/Client.php index 9690f1ebf..8de4f3d57 100644 --- a/api/vendor/overtrue/wechat/src/Work/Message/Client.php +++ b/api/vendor/overtrue/wechat/src/Work/Message/Client.php @@ -43,4 +43,17 @@ public function send(array $message) { return $this->httpPostJson('cgi-bin/message/send', $message); } + + /** + * @param string $msgid + * + * @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string + * + * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException + * @throws \GuzzleHttp\Exception\GuzzleException + */ + public function recall(string $msgid) + { + return $this->httpPostJson('cgi-bin/message/recall', ['msgid' => $msgid]); + } } diff --git a/api/vendor/overtrue/wechat/src/Work/Message/Messenger.php b/api/vendor/overtrue/wechat/src/Work/Message/Messenger.php index a9796f504..aa2d21562 100644 --- a/api/vendor/overtrue/wechat/src/Work/Message/Messenger.php +++ b/api/vendor/overtrue/wechat/src/Work/Message/Messenger.php @@ -181,6 +181,21 @@ public function send($message = null) return $this->client->send($message); } + + /** + * @param string $msgid + * + * @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string + * + * @throws RuntimeException + */ + public function recall(string $msgid) + { + if (empty($msgid)) { + throw new RuntimeException('No msgid specified.'); + } + return $this->client->recall($msgid); + } /** * Return property. diff --git a/api/vendor/overtrue/wechat/src/Work/Message/ServiceProvider.php b/api/vendor/overtrue/wechat/src/Work/Message/ServiceProvider.php index 18193bd77..ea14f9e4f 100644 --- a/api/vendor/overtrue/wechat/src/Work/Message/ServiceProvider.php +++ b/api/vendor/overtrue/wechat/src/Work/Message/ServiceProvider.php @@ -33,7 +33,7 @@ public function register(Container $app) $app['messenger'] = function ($app) { $messenger = new Messenger($app['message']); - if (is_int($app['config']['agent_id'])) { + if (is_numeric($app['config']['agent_id'])) { $messenger->ofAgent($app['config']['agent_id']); } diff --git a/api/vendor/php-http/message-factory/CHANGELOG.md b/api/vendor/php-http/message-factory/CHANGELOG.md deleted file mode 100644 index 4711924c6..000000000 --- a/api/vendor/php-http/message-factory/CHANGELOG.md +++ /dev/null @@ -1,65 +0,0 @@ -# Change Log - - -## 1.0.2 - 2015-12-19 - -### Added - -- Request and Response factory binding types to Puli - - -## 1.0.1 - 2015-12-17 - -### Added - -- Puli configuration and binding types - - -## 1.0.0 - 2015-12-15 - -### Added - -- Response Factory in order to be reused in Message and Server Message factories -- Request Factory - -### Changed - -- Message Factory extends Request and Response factories - - -## 1.0.0-RC1 - 2015-12-14 - -### Added - -- CS check - -### Changed - -- RuntimeException is thrown when the StreamFactory cannot write to the underlying stream - - -## 0.3.0 - 2015-11-16 - -### Removed - -- Client Context Factory -- Factory Awares and Templates - - -## 0.2.0 - 2015-11-16 - -### Changed - -- Reordered the parameters when creating a message to have the protocol last, -as its the least likely to need to be changed. - - -## 0.1.0 - 2015-06-01 - -### Added - -- Initial release - -### Changed - -- Helpers are renamed to templates diff --git a/api/vendor/php-http/message-factory/LICENSE b/api/vendor/php-http/message-factory/LICENSE deleted file mode 100644 index 8e2c4a0b8..000000000 --- a/api/vendor/php-http/message-factory/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 PHP HTTP Team - -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/api/vendor/php-http/message-factory/README.md b/api/vendor/php-http/message-factory/README.md deleted file mode 100644 index 4654495a7..000000000 --- a/api/vendor/php-http/message-factory/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# PSR-7 Message Factory - -[![Latest Version](https://img.shields.io/github/release/php-http/message-factory.svg?style=flat-square)](https://github.com/php-http/message-factory/releases) -[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE) -[![Total Downloads](https://img.shields.io/packagist/dt/php-http/message-factory.svg?style=flat-square)](https://packagist.org/packages/php-http/message-factory) - -**Factory interfaces for PSR-7 HTTP Message.** - - -## Install - -Via Composer - -``` bash -$ composer require php-http/message-factory -``` - - -## Documentation - -Please see the [official documentation](http://php-http.readthedocs.org/en/latest/message-factory/). - - -## Contributing - -Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details. - - -## Security - -If you discover any security related issues, please contact us at [security@php-http.org](mailto:security@php-http.org). - - -## License - -The MIT License (MIT). Please see [License File](LICENSE) for more information. diff --git a/api/vendor/php-http/message-factory/composer.json b/api/vendor/php-http/message-factory/composer.json deleted file mode 100644 index 7c72febe5..000000000 --- a/api/vendor/php-http/message-factory/composer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "php-http/message-factory", - "description": "Factory interfaces for PSR-7 HTTP Message", - "license": "MIT", - "keywords": ["http", "factory", "message", "stream", "uri"], - "homepage": "http://php-http.org", - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "require": { - "php": ">=5.4", - "psr/http-message": "^1.0" - }, - "autoload": { - "psr-4": { - "Http\\Message\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - } -} diff --git a/api/vendor/php-http/message-factory/puli.json b/api/vendor/php-http/message-factory/puli.json deleted file mode 100644 index 08d37627d..000000000 --- a/api/vendor/php-http/message-factory/puli.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "version": "1.0", - "binding-types": { - "Http\\Message\\MessageFactory": { - "description": "PSR-7 Message Factory", - "parameters": { - "depends": { - "description": "Optional class dependency which can be checked by consumers" - } - } - }, - "Http\\Message\\RequestFactory": { - "parameters": { - "depends": { - "description": "Optional class dependency which can be checked by consumers" - } - } - }, - "Http\\Message\\ResponseFactory": { - "parameters": { - "depends": { - "description": "Optional class dependency which can be checked by consumers" - } - } - }, - "Http\\Message\\StreamFactory": { - "description": "PSR-7 Stream Factory", - "parameters": { - "depends": { - "description": "Optional class dependency which can be checked by consumers" - } - } - }, - "Http\\Message\\UriFactory": { - "description": "PSR-7 URI Factory", - "parameters": { - "depends": { - "description": "Optional class dependency which can be checked by consumers" - } - } - } - } -} diff --git a/api/vendor/php-http/message-factory/src/MessageFactory.php b/api/vendor/php-http/message-factory/src/MessageFactory.php deleted file mode 100644 index 965aaa804..000000000 --- a/api/vendor/php-http/message-factory/src/MessageFactory.php +++ /dev/null @@ -1,12 +0,0 @@ - - */ -interface MessageFactory extends RequestFactory, ResponseFactory -{ -} diff --git a/api/vendor/php-http/message-factory/src/RequestFactory.php b/api/vendor/php-http/message-factory/src/RequestFactory.php deleted file mode 100644 index 624e82f36..000000000 --- a/api/vendor/php-http/message-factory/src/RequestFactory.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -interface RequestFactory -{ - /** - * Creates a new PSR-7 request. - * - * @param string $method - * @param string|UriInterface $uri - * @param array $headers - * @param resource|string|StreamInterface|null $body - * @param string $protocolVersion - * - * @return RequestInterface - */ - public function createRequest( - $method, - $uri, - array $headers = [], - $body = null, - $protocolVersion = '1.1' - ); -} diff --git a/api/vendor/php-http/message-factory/src/ResponseFactory.php b/api/vendor/php-http/message-factory/src/ResponseFactory.php deleted file mode 100644 index 2411ed3a1..000000000 --- a/api/vendor/php-http/message-factory/src/ResponseFactory.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ -interface ResponseFactory -{ - /** - * Creates a new PSR-7 response. - * - * @param int $statusCode - * @param string|null $reasonPhrase - * @param array $headers - * @param resource|string|StreamInterface|null $body - * @param string $protocolVersion - * - * @return ResponseInterface - */ - public function createResponse( - $statusCode = 200, - $reasonPhrase = null, - array $headers = [], - $body = null, - $protocolVersion = '1.1' - ); -} diff --git a/api/vendor/php-http/message-factory/src/StreamFactory.php b/api/vendor/php-http/message-factory/src/StreamFactory.php deleted file mode 100644 index 327a902f9..000000000 --- a/api/vendor/php-http/message-factory/src/StreamFactory.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -interface StreamFactory -{ - /** - * Creates a new PSR-7 stream. - * - * @param string|resource|StreamInterface|null $body - * - * @return StreamInterface - * - * @throws \InvalidArgumentException If the stream body is invalid. - * @throws \RuntimeException If creating the stream from $body fails. - */ - public function createStream($body = null); -} diff --git a/api/vendor/php-http/message-factory/src/UriFactory.php b/api/vendor/php-http/message-factory/src/UriFactory.php deleted file mode 100644 index f05e62521..000000000 --- a/api/vendor/php-http/message-factory/src/UriFactory.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -interface UriFactory -{ - /** - * Creates an PSR-7 URI. - * - * @param string|UriInterface $uri - * - * @return UriInterface - * - * @throws \InvalidArgumentException If the $uri argument can not be converted into a valid URI. - */ - public function createUri($uri); -} diff --git a/api/vendor/phpdocumentor/type-resolver/.yamllint.yaml b/api/vendor/phpdocumentor/type-resolver/.yamllint.yaml new file mode 100644 index 000000000..55695cd56 --- /dev/null +++ b/api/vendor/phpdocumentor/type-resolver/.yamllint.yaml @@ -0,0 +1,65 @@ +extends: "default" + +ignore: | + .build/ + .notes/ + vendor/ +rules: + braces: + max-spaces-inside-empty: 0 + max-spaces-inside: 1 + min-spaces-inside-empty: 0 + min-spaces-inside: 1 + brackets: + max-spaces-inside-empty: 0 + max-spaces-inside: 0 + min-spaces-inside-empty: 0 + min-spaces-inside: 0 + colons: + max-spaces-after: 1 + max-spaces-before: 0 + commas: + max-spaces-after: 1 + max-spaces-before: 0 + min-spaces-after: 1 + comments: + ignore-shebangs: true + min-spaces-from-content: 1 + require-starting-space: true + comments-indentation: "enable" + document-end: + present: false + document-start: + present: false + indentation: + check-multi-line-strings: false + indent-sequences: true + spaces: 2 + empty-lines: + max-end: 0 + max-start: 0 + max: 1 + empty-values: + forbid-in-block-mappings: true + forbid-in-flow-mappings: true + hyphens: + max-spaces-after: 2 + key-duplicates: "enable" + key-ordering: "disable" + line-length: "disable" + new-line-at-end-of-file: "enable" + new-lines: + type: "unix" + octal-values: + forbid-implicit-octal: true + quoted-strings: + quote-type: "double" + trailing-spaces: "enable" + truthy: + allowed-values: + - "false" + - "true" + +yaml-files: + - "*.yaml" + - "*.yml" diff --git a/api/vendor/phpdocumentor/type-resolver/composer-require-checker.json b/api/vendor/phpdocumentor/type-resolver/composer-require-checker.json new file mode 100644 index 000000000..137522df8 --- /dev/null +++ b/api/vendor/phpdocumentor/type-resolver/composer-require-checker.json @@ -0,0 +1,16 @@ +{ + "symbol-whitelist" : [ + "null", "true", "false", + "static", "self", "parent", + "array", "string", "int", "float", "bool", "iterable", "callable", "void", "object", "XSLTProcessor", + "T_NAME_QUALIFIED", "T_NAME_FULLY_QUALIFIED" + ], + "php-core-extensions" : [ + "Core", + "pcre", + "Reflection", + "tokenizer", + "SPL", + "standard" + ] +} diff --git a/api/vendor/phpdocumentor/type-resolver/composer.json b/api/vendor/phpdocumentor/type-resolver/composer.json index 4dbf6237e..a7ae10f6a 100644 --- a/api/vendor/phpdocumentor/type-resolver/composer.json +++ b/api/vendor/phpdocumentor/type-resolver/composer.json @@ -10,12 +10,17 @@ } ], "require": { - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { "ext-tokenizer": "*", - "psalm/phar": "^4.8" + "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/extension-installer": "^1.1", + "vimeo/psalm": "^4.25", + "rector/rector": "^0.13.9" }, "autoload": { "psr-4": { @@ -31,5 +36,13 @@ "branch-alias": { "dev-1.x": "1.x-dev" } + }, + "config": { + "platform": { + "php": "7.4.0" + }, + "allow-plugins": { + "phpstan/extension-installer": true + } } } diff --git a/api/vendor/phpdocumentor/type-resolver/rector.php b/api/vendor/phpdocumentor/type-resolver/rector.php new file mode 100644 index 000000000..b285d6cf0 --- /dev/null +++ b/api/vendor/phpdocumentor/type-resolver/rector.php @@ -0,0 +1,26 @@ +paths([ + __DIR__ . '/src', + __DIR__ . '/tests/unit' + ]); + + // register a single rule + $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class); + $rectorConfig->rule(Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector::class); + $rectorConfig->rule(Rector\TypeDeclaration\Rector\Closure\AddClosureReturnTypeRector::class); + $rectorConfig->rule(Rector\PHPUnit\Rector\Class_\AddProphecyTraitRector::class); + $rectorConfig->importNames(); + + // define sets of rules + $rectorConfig->sets([ + LevelSetList::UP_TO_PHP_74 + ]); +}; diff --git a/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php b/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php index 4ec6885f6..871c17209 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php +++ b/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php @@ -37,4 +37,4 @@ public function __toString(): string } } -class_alias('\phpDocumentor\Reflection\PseudoTypes\False_', 'phpDocumentor\Reflection\Types\False_', false); +class_alias(False_::class, 'phpDocumentor\Reflection\Types\False_', false); diff --git a/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerRange.php b/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerRange.php index c5a3bc535..37f774d35 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerRange.php +++ b/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerRange.php @@ -24,11 +24,9 @@ */ final class IntegerRange extends Integer implements PseudoType { - /** @var string */ - private $minValue; + private string $minValue; - /** @var string */ - private $maxValue; + private string $maxValue; public function __construct(string $minValue, string $maxValue) { diff --git a/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/True_.php b/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/True_.php index dc970b3aa..c9ad1cb10 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/True_.php +++ b/api/vendor/phpdocumentor/type-resolver/src/PseudoTypes/True_.php @@ -37,4 +37,4 @@ public function __toString(): string } } -class_alias('\phpDocumentor\Reflection\PseudoTypes\True_', 'phpDocumentor\Reflection\Types\True_', false); +class_alias(True_::class, 'phpDocumentor\Reflection\Types\True_', false); diff --git a/api/vendor/phpdocumentor/type-resolver/src/TypeResolver.php b/api/vendor/phpdocumentor/type-resolver/src/TypeResolver.php index 0c9a73cb3..e5695b8ec 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/TypeResolver.php +++ b/api/vendor/phpdocumentor/type-resolver/src/TypeResolver.php @@ -15,35 +15,60 @@ use ArrayIterator; use InvalidArgumentException; +use phpDocumentor\Reflection\PseudoTypes\CallableString; +use phpDocumentor\Reflection\PseudoTypes\False_; +use phpDocumentor\Reflection\PseudoTypes\HtmlEscapedString; use phpDocumentor\Reflection\PseudoTypes\IntegerRange; use phpDocumentor\Reflection\PseudoTypes\List_; +use phpDocumentor\Reflection\PseudoTypes\LiteralString; +use phpDocumentor\Reflection\PseudoTypes\LowercaseString; +use phpDocumentor\Reflection\PseudoTypes\NegativeInteger; +use phpDocumentor\Reflection\PseudoTypes\NonEmptyLowercaseString; +use phpDocumentor\Reflection\PseudoTypes\NonEmptyString; +use phpDocumentor\Reflection\PseudoTypes\Numeric_; +use phpDocumentor\Reflection\PseudoTypes\NumericString; +use phpDocumentor\Reflection\PseudoTypes\PositiveInteger; +use phpDocumentor\Reflection\PseudoTypes\TraitString; +use phpDocumentor\Reflection\PseudoTypes\True_; use phpDocumentor\Reflection\Types\Array_; use phpDocumentor\Reflection\Types\ArrayKey; +use phpDocumentor\Reflection\Types\Boolean; +use phpDocumentor\Reflection\Types\Callable_; use phpDocumentor\Reflection\Types\ClassString; use phpDocumentor\Reflection\Types\Collection; use phpDocumentor\Reflection\Types\Compound; use phpDocumentor\Reflection\Types\Context; use phpDocumentor\Reflection\Types\Expression; +use phpDocumentor\Reflection\Types\Float_; use phpDocumentor\Reflection\Types\Integer; use phpDocumentor\Reflection\Types\InterfaceString; use phpDocumentor\Reflection\Types\Intersection; use phpDocumentor\Reflection\Types\Iterable_; +use phpDocumentor\Reflection\Types\Mixed_; +use phpDocumentor\Reflection\Types\Never_; +use phpDocumentor\Reflection\Types\Null_; use phpDocumentor\Reflection\Types\Nullable; use phpDocumentor\Reflection\Types\Object_; +use phpDocumentor\Reflection\Types\Parent_; +use phpDocumentor\Reflection\Types\Resource_; +use phpDocumentor\Reflection\Types\Scalar; +use phpDocumentor\Reflection\Types\Self_; +use phpDocumentor\Reflection\Types\Static_; use phpDocumentor\Reflection\Types\String_; +use phpDocumentor\Reflection\Types\This; +use phpDocumentor\Reflection\Types\Void_; use RuntimeException; use function array_key_exists; +use function array_key_last; use function array_pop; use function array_values; use function class_exists; use function class_implements; use function count; use function current; -use function end; use function in_array; use function is_numeric; -use function key; use function preg_split; use function strpos; use function strtolower; @@ -76,54 +101,51 @@ final class TypeResolver * @var array List of recognized keywords and unto which Value Object they map * @psalm-var array> */ - private $keywords = [ - 'string' => Types\String_::class, - 'class-string' => Types\ClassString::class, - 'interface-string' => Types\InterfaceString::class, - 'html-escaped-string' => PseudoTypes\HtmlEscapedString::class, - 'lowercase-string' => PseudoTypes\LowercaseString::class, - 'non-empty-lowercase-string' => PseudoTypes\NonEmptyLowercaseString::class, - 'non-empty-string' => PseudoTypes\NonEmptyString::class, - 'numeric-string' => PseudoTypes\NumericString::class, - 'numeric' => PseudoTypes\Numeric_::class, - 'trait-string' => PseudoTypes\TraitString::class, - 'int' => Types\Integer::class, - 'integer' => Types\Integer::class, - 'positive-int' => PseudoTypes\PositiveInteger::class, - 'negative-int' => PseudoTypes\NegativeInteger::class, - 'bool' => Types\Boolean::class, - 'boolean' => Types\Boolean::class, - 'real' => Types\Float_::class, - 'float' => Types\Float_::class, - 'double' => Types\Float_::class, - 'object' => Types\Object_::class, - 'mixed' => Types\Mixed_::class, - 'array' => Types\Array_::class, - 'array-key' => Types\ArrayKey::class, - 'resource' => Types\Resource_::class, - 'void' => Types\Void_::class, - 'null' => Types\Null_::class, - 'scalar' => Types\Scalar::class, - 'callback' => Types\Callable_::class, - 'callable' => Types\Callable_::class, - 'callable-string' => PseudoTypes\CallableString::class, - 'false' => PseudoTypes\False_::class, - 'true' => PseudoTypes\True_::class, - 'literal-string' => PseudoTypes\LiteralString::class, - 'self' => Types\Self_::class, - '$this' => Types\This::class, - 'static' => Types\Static_::class, - 'parent' => Types\Parent_::class, - 'iterable' => Types\Iterable_::class, - 'never' => Types\Never_::class, - 'list' => PseudoTypes\List_::class, + private array $keywords = [ + 'string' => String_::class, + 'class-string' => ClassString::class, + 'interface-string' => InterfaceString::class, + 'html-escaped-string' => HtmlEscapedString::class, + 'lowercase-string' => LowercaseString::class, + 'non-empty-lowercase-string' => NonEmptyLowercaseString::class, + 'non-empty-string' => NonEmptyString::class, + 'numeric-string' => NumericString::class, + 'numeric' => Numeric_::class, + 'trait-string' => TraitString::class, + 'int' => Integer::class, + 'integer' => Integer::class, + 'positive-int' => PositiveInteger::class, + 'negative-int' => NegativeInteger::class, + 'bool' => Boolean::class, + 'boolean' => Boolean::class, + 'real' => Float_::class, + 'float' => Float_::class, + 'double' => Float_::class, + 'object' => Object_::class, + 'mixed' => Mixed_::class, + 'array' => Array_::class, + 'array-key' => ArrayKey::class, + 'resource' => Resource_::class, + 'void' => Void_::class, + 'null' => Null_::class, + 'scalar' => Scalar::class, + 'callback' => Callable_::class, + 'callable' => Callable_::class, + 'callable-string' => CallableString::class, + 'false' => False_::class, + 'true' => True_::class, + 'literal-string' => LiteralString::class, + 'self' => Self_::class, + '$this' => This::class, + 'static' => Static_::class, + 'parent' => Parent_::class, + 'iterable' => Iterable_::class, + 'never' => Never_::class, + 'list' => List_::class, ]; - /** - * @var FqsenResolver - * @psalm-readonly - */ - private $fqsenResolver; + /** @psalm-readonly */ + private FqsenResolver $fqsenResolver; /** * Initializes this TypeResolver with the means to create and resolve Fqsen objects. @@ -210,6 +232,7 @@ private function parseTypes(ArrayIterator $tokens, Context $context, int $parser self::PARSER_IN_COMPOUND, self::PARSER_IN_ARRAY_EXPRESSION, self::PARSER_IN_COLLECTION_EXPRESSION, + self::PARSER_IN_NULLABLE, ], true) ) { throw new RuntimeException( @@ -225,6 +248,7 @@ private function parseTypes(ArrayIterator $tokens, Context $context, int $parser self::PARSER_IN_COMPOUND, self::PARSER_IN_ARRAY_EXPRESSION, self::PARSER_IN_COLLECTION_EXPRESSION, + self::PARSER_IN_NULLABLE, ], true) ) { throw new RuntimeException( @@ -278,8 +302,7 @@ private function parseTypes(ArrayIterator $tokens, Context $context, int $parser ) { break; } elseif ($token === self::OPERATOR_ARRAY) { - end($types); - $last = key($types); + $last = array_key_last($types); if ($last === null) { throw new InvalidArgumentException('Unexpected array operator'); } @@ -293,13 +316,8 @@ private function parseTypes(ArrayIterator $tokens, Context $context, int $parser $tokens->next(); } else { - $type = $this->resolveSingleType($token, $context); + $types[] = $this->resolveSingleType($token, $context); $tokens->next(); - if ($parserContext === self::PARSER_IN_NULLABLE) { - return $type; - } - - $types[] = $type; } } @@ -550,7 +568,7 @@ private function resolveIntRange(ArrayIterator $tokens): Type ); } - if (!$minValue || !$maxValue || $tokenCounter > 4) { + if ($minValue === null || $maxValue === null || $tokenCounter > 4) { throw new RuntimeException( 'int has not the correct format' ); diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php b/api/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php index b674862af..ee8ace80f 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php @@ -54,7 +54,7 @@ public function getKeyType(): Type } /** - * Returns the value for the keys of this array. + * Returns the type for the values of this array. */ public function getValueType(): Type { diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php b/api/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php index 472a1cdc6..257ed516e 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php @@ -34,10 +34,9 @@ abstract class AggregatedType implements Type, IteratorAggregate * @psalm-allow-private-mutation * @var array */ - private $types = []; + private array $types = []; - /** @var string */ - private $token; + private string $token; /** * @param array $types diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php b/api/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php index fbdd879bb..b54c549a2 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php @@ -24,8 +24,7 @@ */ final class ClassString extends String_ implements PseudoType { - /** @var Fqsen|null */ - private $fqsen; + private ?Fqsen $fqsen; /** * Initializes this representation of a class string with the given Fqsen. diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/Collection.php b/api/vendor/phpdocumentor/type-resolver/src/Types/Collection.php index 943cc22e5..dbf3f19f3 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/Collection.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/Collection.php @@ -31,8 +31,7 @@ */ final class Collection extends AbstractList { - /** @var Fqsen|null */ - private $fqsen; + private ?Fqsen $fqsen; /** * Initializes this representation of an array with the given Type or Fqsen. diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/Context.php b/api/vendor/phpdocumentor/type-resolver/src/Types/Context.php index 79aadaf88..17aa50650 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/Context.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/Context.php @@ -36,13 +36,13 @@ final class Context { /** @var string The current namespace. */ - private $namespace; + private string $namespace; /** * @var string[] List of namespace aliases => Fully Qualified Namespace. * @psalm-var array */ - private $namespaceAliases; + private array $namespaceAliases; /** * Initializes the new context and normalizes all passed namespaces to be in Qualified Namespace Name (QNN) diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/Expression.php b/api/vendor/phpdocumentor/type-resolver/src/Types/Expression.php index da5f65d59..2b6b0951a 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/Expression.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/Expression.php @@ -22,8 +22,7 @@ */ final class Expression implements Type { - /** @var Type */ - protected $valueType; + protected Type $valueType; /** * Initializes this representation of an array with the given Type. diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/InterfaceString.php b/api/vendor/phpdocumentor/type-resolver/src/Types/InterfaceString.php index 9836961fd..0b7dbb80b 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/InterfaceString.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/InterfaceString.php @@ -23,8 +23,7 @@ */ final class InterfaceString implements Type { - /** @var Fqsen|null */ - private $fqsen; + private ?Fqsen $fqsen; /** * Initializes this representation of a class string with the given Fqsen. diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php b/api/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php index a94693507..52c3d5383 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php @@ -23,7 +23,7 @@ final class Nullable implements Type { /** @var Type The actual type that is wrapped */ - private $realType; + private Type $realType; /** * Initialises this nullable type using the real type embedded diff --git a/api/vendor/phpdocumentor/type-resolver/src/Types/Object_.php b/api/vendor/phpdocumentor/type-resolver/src/Types/Object_.php index 90dee57ac..feb6ee34f 100644 --- a/api/vendor/phpdocumentor/type-resolver/src/Types/Object_.php +++ b/api/vendor/phpdocumentor/type-resolver/src/Types/Object_.php @@ -30,8 +30,7 @@ */ final class Object_ implements Type { - /** @var Fqsen|null */ - private $fqsen; + private ?Fqsen $fqsen; /** * Initializes this object with an optional FQSEN, if not provided this object is considered 'untyped'. diff --git a/api/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php b/api/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php index 4179c6771..db7072718 100644 --- a/api/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php +++ b/api/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php @@ -2,6 +2,7 @@ $finder = PhpCsFixer\Finder::create() ->exclude('vendor') + ->notPath('src/PhpSpreadsheet/Writer/ZipStream3.php') ->in(__DIR__); $config = new PhpCsFixer\Config(); diff --git a/api/vendor/phpoffice/phpspreadsheet/CHANGELOG.md b/api/vendor/phpoffice/phpspreadsheet/CHANGELOG.md index 2f383e23f..38836217c 100644 --- a/api/vendor/phpoffice/phpspreadsheet/CHANGELOG.md +++ b/api/vendor/phpoffice/phpspreadsheet/CHANGELOG.md @@ -5,6 +5,67 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com) and this project adheres to [Semantic Versioning](https://semver.org). +## 1.29.0 - 2023-06-15 + +### Added + +- Wizards for defining Number Format masks for Dates and Times, including Durations/Intervals. [PR #3458](https://github.com/PHPOffice/PhpSpreadsheet/pull/3458) +- Specify data type in html tags. [Issue #3444](https://github.com/PHPOffice/PhpSpreadsheet/issues/3444) [PR #3445](https://github.com/PHPOffice/PhpSpreadsheet/pull/3445) +- Provide option to ignore hidden rows/columns in `toArray()` methods. [PR #3494](https://github.com/PHPOffice/PhpSpreadsheet/pull/3494) +- Font/Effects/Theme support for Chart Data Labels and Axis. [PR #3476](https://github.com/PHPOffice/PhpSpreadsheet/pull/3476) +- Font Themes support. [PR #3486](https://github.com/PHPOffice/PhpSpreadsheet/pull/3486) +- Ability to Ignore Cell Errors in Excel. [Issue #1141](https://github.com/PHPOffice/PhpSpreadsheet/issues/1141) [PR #3508](https://github.com/PHPOffice/PhpSpreadsheet/pull/3508) +- Unzipped Gnumeric file [PR #3591](https://github.com/PHPOffice/PhpSpreadsheet/pull/3591) + +### Changed + +- Xlsx Color schemes read in will be written out (previously Excel 2007-2010 Color scheme was always written); manipulation of those schemes before write, including restoring prior behavior, is provided [PR #3476](https://github.com/PHPOffice/PhpSpreadsheet/pull/3476) +- Memory and speed optimisations for Read Filters with Xlsx Files and Shared Formulae. [PR #3474](https://github.com/PHPOffice/PhpSpreadsheet/pull/3474) +- Allow `CellRange` and `CellAddress` objects for the `range` argument in the `rangeToArray()` method. [PR #3494](https://github.com/PHPOffice/PhpSpreadsheet/pull/3494) +- Stock charts will now read and reproduce `upDownBars` and subsidiary tags; these were previously ignored on read and hard-coded on write. [PR #3515](https://github.com/PHPOffice/PhpSpreadsheet/pull/3515) + +### Deprecated + +- Nothing + +### Removed + +- Nothing + +### Fixed + +- Updates Cell formula absolute ranges/references, and Defined Name absolute ranges/references when inserting/deleting rows/columns. [Issue #3368](https://github.com/PHPOffice/PhpSpreadsheet/issues/3368) [PR #3402](https://github.com/PHPOffice/PhpSpreadsheet/pull/3402) +- EOMONTH() and EDATE() Functions should round date value before evaluation. [Issue #3436](https://github.com/PHPOffice/PhpSpreadsheet/issues/3436) [PR #3437](https://github.com/PHPOffice/PhpSpreadsheet/pull/3437) +- NETWORKDAYS function erroneously being converted to NETWORK_xlfn.DAYS in Xlsx Writer. [Issue #3461](https://github.com/PHPOffice/PhpSpreadsheet/issues/3461) [PR #3463](https://github.com/PHPOffice/PhpSpreadsheet/pull/3463) +- Getting a style for a CellAddress instance fails if the worksheet is set in the CellAddress instance. [Issue #3439](https://github.com/PHPOffice/PhpSpreadsheet/issues/3439) [PR #3469](https://github.com/PHPOffice/PhpSpreadsheet/pull/3469) +- Shared Formulae outside the filter range when reading with a filter are not always being identified. [Issue #3473](https://github.com/PHPOffice/PhpSpreadsheet/issues/3473) [PR #3474](https://github.com/PHPOffice/PhpSpreadsheet/pull/3474) +- Xls Reader Conditional Styles. [PR #3400](https://github.com/PHPOffice/PhpSpreadsheet/pull/3400) +- Allow use of # and 0 digit placeholders in fraction masks. [PR #3401](https://github.com/PHPOffice/PhpSpreadsheet/pull/3401) +- Modify Date/Time check in the NumberFormatter for decimal/fractional times. [PR #3413](https://github.com/PHPOffice/PhpSpreadsheet/pull/3413) +- Misplaced Xml Writing Chart Label FillColor. [Issue #3397](https://github.com/PHPOffice/PhpSpreadsheet/issues/3397) [PR #3404](https://github.com/PHPOffice/PhpSpreadsheet/pull/3404) +- TEXT function ignores Time in DateTimeStamp. [Issue #3409](https://github.com/PHPOffice/PhpSpreadsheet/issues/3409) [PR #3411](https://github.com/PHPOffice/PhpSpreadsheet/pull/3411) +- Xlsx Column Autosize Approximate for CJK. [Issue #3405](https://github.com/PHPOffice/PhpSpreadsheet/issues/3405) [PR #3416](https://github.com/PHPOffice/PhpSpreadsheet/pull/3416) +- Correct Xlsx Parsing of quotePrefix="0". [Issue #3435](https://github.com/PHPOffice/PhpSpreadsheet/issues/3435) [PR #3438](https://github.com/PHPOffice/PhpSpreadsheet/pull/3438) +- More Display Options for Chart Axis and Legend. [Issue #3414](https://github.com/PHPOffice/PhpSpreadsheet/issues/3414) [PR #3434](https://github.com/PHPOffice/PhpSpreadsheet/pull/3434) +- Apply strict type checking to Complex suffix. [PR #3452](https://github.com/PHPOffice/PhpSpreadsheet/pull/3452) +- Incorrect Font Color Read Xlsx Rich Text Indexed Color Custom Palette. [Issue #3464](https://github.com/PHPOffice/PhpSpreadsheet/issues/3464) [PR #3465](https://github.com/PHPOffice/PhpSpreadsheet/pull/3465) +- Xlsx Writer Honor Alignment in Default Font. [Issue #3443](https://github.com/PHPOffice/PhpSpreadsheet/issues/3443) [PR #3459](https://github.com/PHPOffice/PhpSpreadsheet/pull/3459) +- Support Border for Charts. [PR #3462](https://github.com/PHPOffice/PhpSpreadsheet/pull/3462) +- Error in "this row" structured reference calculation (cached result from first row when using a range) [Issue #3504](https://github.com/PHPOffice/PhpSpreadsheet/issues/3504) [PR #3505](https://github.com/PHPOffice/PhpSpreadsheet/pull/3505) +- Allow colour palette index references in Number Format masks [Issue #3511](https://github.com/PHPOffice/PhpSpreadsheet/issues/3511) [PR #3512](https://github.com/PHPOffice/PhpSpreadsheet/pull/3512) +- Xlsx Reader formula with quotePrefix [Issue #3495](https://github.com/PHPOffice/PhpSpreadsheet/issues/3495) [PR #3497](https://github.com/PHPOffice/PhpSpreadsheet/pull/3497) +- Handle REF error as part of range [Issue #3453](https://github.com/PHPOffice/PhpSpreadsheet/issues/3453) [PR #3467](https://github.com/PHPOffice/PhpSpreadsheet/pull/3467) +- Handle Absolute Pathnames in Rels File [Issue #3553](https://github.com/PHPOffice/PhpSpreadsheet/issues/3553) [PR #3554](https://github.com/PHPOffice/PhpSpreadsheet/pull/3554) +- Return Page Breaks in Order [Issue #3552](https://github.com/PHPOffice/PhpSpreadsheet/issues/3552) [PR #3555](https://github.com/PHPOffice/PhpSpreadsheet/pull/3555) +- Add position attribute for MemoryDrawing in Html [Issue #3529](https://github.com/PHPOffice/PhpSpreadsheet/issues/3529 [PR #3535](https://github.com/PHPOffice/PhpSpreadsheet/pull/3535) +- Allow Index_number as Array for VLOOKUP/HLOOKUP [Issue #3561](https://github.com/PHPOffice/PhpSpreadsheet/issues/3561 [PR #3570](https://github.com/PHPOffice/PhpSpreadsheet/pull/3570) +- Add Unsupported Options in Xml Spreadsheet [Issue #3566](https://github.com/PHPOffice/PhpSpreadsheet/issues/3566 [Issue #3568](https://github.com/PHPOffice/PhpSpreadsheet/issues/3568 [Issue #3569](https://github.com/PHPOffice/PhpSpreadsheet/issues/3569 [PR #3567](https://github.com/PHPOffice/PhpSpreadsheet/pull/3567) +- Changes to NUMBERVALUE, VALUE, DATEVALUE, TIMEVALUE [Issue #3574](https://github.com/PHPOffice/PhpSpreadsheet/issues/3574 [PR #3575](https://github.com/PHPOffice/PhpSpreadsheet/pull/3575) +- Redo calculation of color tinting [Issue #3550](https://github.com/PHPOffice/PhpSpreadsheet/issues/3550) [PR #3580](https://github.com/PHPOffice/PhpSpreadsheet/pull/3580) +- Accommodate Slash with preg_quote [PR #3582](https://github.com/PHPOffice/PhpSpreadsheet/pull/3582) [PR #3583](https://github.com/PHPOffice/PhpSpreadsheet/pull/3583) [PR #3584](https://github.com/PHPOffice/PhpSpreadsheet/pull/3584) +- HyperlinkBase Property and Html Handling of Properties [Issue #3573](https://github.com/PHPOffice/PhpSpreadsheet/issues/3573) [PR #3589](https://github.com/PHPOffice/PhpSpreadsheet/pull/3589) +- Improvements for Data Validation [Issue #3592](https://github.com/PHPOffice/PhpSpreadsheet/issues/3592) [Issue #3594](https://github.com/PHPOffice/PhpSpreadsheet/issues/3594) [PR #3605](https://github.com/PHPOffice/PhpSpreadsheet/pull/3605) + ## 1.28.0 - 2023-02-25 ### Added diff --git a/api/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md b/api/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md index f59535331..09794b565 100644 --- a/api/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md +++ b/api/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md @@ -2,19 +2,44 @@ If you would like to contribute, here are some notes and guidelines: - - All new development happens on feature/fix branches, and are then merged to the `master` branch once stable; so the `master` branch is always the most up-to-date, working code - - Tagged releases are made from the `master` branch - - If you are going to be submitting a pull request, please fork from `master`, and submit your pull request back as a fix/feature branch referencing the GitHub issue number - - Code style might be automatically fixed by `composer fix` - - All code changes must be validated by `composer check` + - All new development should be on feature/fix branches, which are then merged to the `master` branch once stable and approved; so the `master` branch is always the most up-to-date, working code + - If you are going to submit a pull request, please fork from `master`, and submit your pull request back as a fix/feature branch referencing the GitHub issue number + - The code must work with all PHP versions that we support (currently PHP 7.4 to PHP 8.2). + - You can call `composer versions` to test version compatibility. + - Code style should be maintained. + - `composer style` will identify any issues with Coding Style`. + - `composer fix` will fix most issues with Coding Style. + - All code changes must be validated by `composer check`. + - Please include Unit Tests to verify that a bug exists, and that this PR fixes it. + - Please include Unit Tests to show that a new Feature works as expected. + - Please don't "bundle" several changes into a single PR; submit a PR for each discrete change/fix. + - Remember to update documentation if necessary. + - [Helpful article about forking](https://help.github.com/articles/fork-a-repo/ "Forking a GitHub repository") - [Helpful article about pull requests](https://help.github.com/articles/using-pull-requests/ "Pull Requests") +## Unit Tests + +When writing Unit Tests, please + - Always try to write Unit Tests for both the happy and unhappy paths. + - Put all assertions in the Test itself, not in an abstract class that the Test extends (even if this means code duplication between tests). + - Include any necessary `setup()` and `tearDown()` in the Test itself. + - If you change any global settings (such as system locale, or Compatibility Mode for Excel Function tests), make sure that you reset to the default in the `tearDown()`. + - Use the `ExcelError` functions in assertions for Excel Error values in Excel Function implementations. +
Not only does it reduce the risk of typos; but at some point in the future, ExcelError values will be an object rather than a string, and we won't then need to update all the tests. + - Don't over-complicate test code by testing happy and unhappy paths in the same test. + +This makes it easier to see exactly what is being tested when reviewing the PR. I want to be able to see it in the PR, not have to hunt in other unchanged classes to see what the test is doing. + ## How to release 1. Complete CHANGELOG.md and commit 2. Create an annotated tag 1. `git tag -a 1.2.3` 2. Tag subject must be the version number, eg: `1.2.3` - 3. Tag body must be a copy-paste of the changelog entries -3. Push tag with `git push --tags`, GitHub Actions will create a GitHub release automatically + 3. Tag body must be a copy-paste of the changelog entries. +3. Push the tag with `git push --tags`, GitHub Actions will create a GitHub release automatically, and the release details will automatically be sent to packagist. +4. Github seems to remove markdown headings in the Release Notes, so you should edit to restore these. + +> **Note:** Tagged releases are made from the `master` branch. Only in an emergency should a tagged release be made from the `release` branch. (i.e. cherry-picked hot-fixes.) + diff --git a/api/vendor/phpoffice/phpspreadsheet/README.md b/api/vendor/phpoffice/phpspreadsheet/README.md index d9a807326..a69c3afc9 100644 --- a/api/vendor/phpoffice/phpspreadsheet/README.md +++ b/api/vendor/phpoffice/phpspreadsheet/README.md @@ -32,7 +32,7 @@ If you are building your installation on a development machine that is on a diff ```json { "require": { - "phpoffice/phpspreadsheet": "^1.23" + "phpoffice/phpspreadsheet": "^1.28" }, "config": { "platform": { @@ -74,16 +74,20 @@ or the appropriate PDF Writer wrapper for the library that you have chosen to in For Chart export, we support following packages, which you will also need to install yourself using `composer require` - [jpgraph/jpgraph](https://packagist.org/packages/jpgraph/jpgraph) (this package was abandoned at version 4.0. You can manually download the latest version that supports PHP 8 and above from [jpgraph.net](https://jpgraph.net/)) - - [mitoteam/jpgraph](https://packagist.org/packages/mitoteam/jpgraph) (fork with php 8.1 support) + - [mitoteam/jpgraph](https://packagist.org/packages/mitoteam/jpgraph) - up to date fork with modern PHP versions support and some bugs fixed. and then configure PhpSpreadsheet using: ```php -Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class); // to use jpgraph/jpgraph +// to use jpgraph/jpgraph +Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class); //or -Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); // to use mitoteam/jpgraph +// to use mitoteam/jpgraph +Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); ``` -One or the other of these libraries is necessary if you want to generate HTML or PDF files that include charts. +One or the other of these libraries is necessary if you want to generate HTML or PDF files that include charts; or to render a Chart to an Image format from within your code. +They are not necessary to define charts for writing to `Xlsx` files. +Other file formats don't support writing Charts. ## Documentation @@ -103,10 +107,15 @@ Posts already available to Patreon supporters: - Looping the Loop - Advice on Iterating through the rows and cells in a worksheet. -The next post (currently being written) will be: +And for Patrons at levels actively using PhpSpreadsheet: - Behind the Mask - A look at Number Format Masks. +The Next Article (currently Work in Progress): + - Formula for Success + - How to debug formulae that don't produce the expected result. + + My aim is to post at least one article each month, taking a detailed look at some feature of MS Excel and how to use that feature in PhpSpreadsheet, or on how to perform different activities in PhpSpreadsheet. Planned posts for the future include topics like: @@ -116,8 +125,9 @@ Planned posts for the future include topics like: - Array Formulae - Conditional Formatting - Data Validation - - Formula Debugging - Value Binders + - Images + - Charts After a period of six months exclusive to Patreon supporters, articles will be incorporated into the public documentation for the library. diff --git a/api/vendor/phpoffice/phpspreadsheet/composer.json b/api/vendor/phpoffice/phpspreadsheet/composer.json index 1e8e5f6c0..4b05be334 100644 --- a/api/vendor/phpoffice/phpspreadsheet/composer.json +++ b/api/vendor/phpoffice/phpspreadsheet/composer.json @@ -42,13 +42,19 @@ ], "scripts": { "check": [ + "phpcs src/ tests/ --report=checkstyle", + "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 7.4- -n", "php-cs-fixer fix --ansi --dry-run --diff", - "phpcs", "phpunit --color=always", - "phpstan analyse --ansi" + "phpstan analyse --ansi --memory-limit=2048M" + ], + "style": [ + "phpcs src/ tests/ --report=checkstyle", + "php-cs-fixer fix --ansi --dry-run --diff" ], "fix": [ - "php-cs-fixer fix --ansi" + "phpcbf src/ tests/ --report=checkstyle", + "php-cs-fixer fix" ], "versions": [ "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 7.4- -n" @@ -70,7 +76,7 @@ "ext-zip": "*", "ext-zlib": "*", "ezyang/htmlpurifier": "^4.15", - "maennchen/zipstream-php": "^2.1", + "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", "psr/http-client": "^1.0", @@ -81,12 +87,12 @@ "dealerdirect/phpcodesniffer-composer-installer": "dev-main", "dompdf/dompdf": "^1.0 || ^2.0", "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.2.4", + "mitoteam/jpgraph": "^10.3", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", + "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, diff --git a/api/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist b/api/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist index 30bd6c2f7..ef2ae14fa 100644 --- a/api/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist +++ b/api/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist @@ -12,6 +12,10 @@ parameters: excludePaths: - src/PhpSpreadsheet/Chart/Renderer/JpGraph.php - src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php + - src/PhpSpreadsheet/Collection/Memory/SimpleCache1.php + - src/PhpSpreadsheet/Collection/Memory/SimpleCache3.php + - src/PhpSpreadsheet/Writer/ZipStream2.php + - src/PhpSpreadsheet/Writer/ZipStream3.php parallel: processTimeout: 300.0 checkMissingIterableValueType: false diff --git a/api/vendor/phpoffice/phpspreadsheet/phpunit10.xml.dist b/api/vendor/phpoffice/phpspreadsheet/phpunit10.xml.dist new file mode 100644 index 000000000..207d8ec97 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/phpunit10.xml.dist @@ -0,0 +1,15 @@ + + + + + + + + ./tests/PhpSpreadsheetTests + + + + ./src + + + diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php index 6de546fa2..c88656b4a 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php @@ -19,6 +19,7 @@ use ReflectionClassConstant; use ReflectionMethod; use ReflectionParameter; +use Throwable; class Calculation { @@ -3556,7 +3557,7 @@ public function calculateCellValue(?Cell $cell = null, $resetLog = true) } } - throw new Exception($e->getMessage()); + throw new Exception($e->getMessage(), $e->getCode(), $e); } if ((is_array($result)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) { @@ -4210,7 +4211,7 @@ private function internalParseFormula($formula, ?Cell $cell = null) try { $this->branchPruner->closingBrace($d['value']); } catch (Exception $e) { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } $functionName = $matches[1]; // Get the function name @@ -4249,7 +4250,7 @@ private function internalParseFormula($formula, ?Cell $cell = null) } elseif ($expectedArgumentCount != '*') { $isOperandOrFunction = preg_match('/(\d*)([-+,])(\d*)/', $expectedArgumentCount, $argMatch); self::doNothing($isOperandOrFunction); - switch ($argMatch[2]) { + switch ($argMatch[2] ?? '') { case '+': if ($argumentCount < $argMatch[1]) { $argumentCountError = true; @@ -4282,7 +4283,7 @@ private function internalParseFormula($formula, ?Cell $cell = null) try { $this->branchPruner->argumentSeparator(); } catch (Exception $e) { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } while (($o2 = $stack->pop()) && $o2['value'] !== '(') { // Pop off the stack back to the last ( @@ -4364,8 +4365,12 @@ private function internalParseFormula($formula, ?Cell $cell = null) $rangeStartCellRef = $output[count($output) - 2]['value'] ?? ''; } preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/miu', $rangeStartCellRef, $rangeStartMatches); - if ($rangeStartMatches[2] > '') { - $val = $rangeStartMatches[2] . '!' . $val; + if (array_key_exists(2, $rangeStartMatches)) { + if ($rangeStartMatches[2] > '') { + $val = $rangeStartMatches[2] . '!' . $val; + } + } else { + $val = Information\ExcelError::REF(); } } else { $rangeStartCellRef = $output[count($output) - 1]['value'] ?? ''; @@ -4391,7 +4396,7 @@ private function internalParseFormula($formula, ?Cell $cell = null) try { $structuredReference = Operands\StructuredReference::fromParser($formula, $index, $matches); } catch (Exception $e) { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } $val = $structuredReference->value(); @@ -4434,6 +4439,8 @@ private function internalParseFormula($formula, ?Cell $cell = null) } $val = $address; } + } elseif ($val === Information\ExcelError::REF()) { + $stackItemReference = $val; } else { $startRowColRef = $output[count($output) - 1]['value'] ?? ''; [$rangeWS1, $startRowColRef] = Worksheet::extractSheetTitle($startRowColRef, true); @@ -4731,7 +4738,7 @@ private function processTokenStack($tokens, $cellID = null, ?Cell $cell = null) $cellRange = $token->parse($cell); if (strpos($cellRange, ':') !== false) { $this->debugLog->writeDebugLog('Evaluating Structured Reference %s as Cell Range %s', $token->value(), $cellRange); - $rangeValue = self::getInstance($cell->getWorksheet()->getParent())->_calculateFormulaValue("={$cellRange}", $token->value(), $cell); + $rangeValue = self::getInstance($cell->getWorksheet()->getParent())->_calculateFormulaValue("={$cellRange}", $cellRange, $cell); $stack->push('Value', $rangeValue); $this->debugLog->writeDebugLog('Evaluated Structured Reference %s as value %s', $token->value(), $this->showValue($rangeValue)); } else { @@ -4745,7 +4752,7 @@ private function processTokenStack($tokens, $cellID = null, ?Cell $cell = null) $stack->push('Error', Information\ExcelError::REF(), null); $this->debugLog->writeDebugLog('Evaluated Structured Reference %s as error value %s', $token->value(), Information\ExcelError::REF()); } else { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } } } elseif (!is_numeric($token) && !is_object($token) && isset(self::BINARY_OPERATORS[$token])) { @@ -4793,7 +4800,7 @@ private function processTokenStack($tokens, $cellID = null, ?Cell $cell = null) } } } - if (strpos($operand1Data['reference'], '!') !== false) { + if (strpos($operand1Data['reference'] ?? '', '!') !== false) { [$sheet1, $operand1Data['reference']] = Worksheet::extractSheetTitle($operand1Data['reference'], true); } else { $sheet1 = ($pCellWorksheet !== null) ? $pCellWorksheet->getTitle() : ''; @@ -4830,10 +4837,21 @@ private function processTokenStack($tokens, $cellID = null, ?Cell $cell = null) $oData = array_merge(explode(':', $operand1Data['reference']), explode(':', $operand2Data['reference'])); $oCol = $oRow = []; + $breakNeeded = false; foreach ($oData as $oDatum) { - $oCR = Coordinate::coordinateFromString($oDatum); - $oCol[] = Coordinate::columnIndexFromString($oCR[0]) - 1; - $oRow[] = $oCR[1]; + try { + $oCR = Coordinate::coordinateFromString($oDatum); + $oCol[] = Coordinate::columnIndexFromString($oCR[0]) - 1; + $oRow[] = $oCR[1]; + } catch (\Exception $e) { + $stack->push('Error', Information\ExcelError::REF(), null); + $breakNeeded = true; + + break; + } + } + if ($breakNeeded) { + break; } $cellRef = Coordinate::stringFromColumnIndex(min($oCol) + 1) . min($oRow) . ':' . Coordinate::stringFromColumnIndex(max($oCol) + 1) . max($oRow); if ($pCellParent !== null && $this->spreadsheet !== null) { @@ -4842,8 +4860,10 @@ private function processTokenStack($tokens, $cellID = null, ?Cell $cell = null) return $this->raiseFormulaError('Unable to access Cell Reference'); } + $this->debugLog->writeDebugLog('Evaluation Result is %s', $this->showTypeDetails($cellValue)); $stack->push('Cell Reference', $cellValue, $cellRef); } else { + $this->debugLog->writeDebugLog('Evaluation Result is a #REF! Error'); $stack->push('Error', Information\ExcelError::REF(), null); } @@ -5434,13 +5454,13 @@ private function executeNumericBinaryOperation($operand1, $operand2, $operation, * * @return false */ - protected function raiseFormulaError(string $errorMessage) + protected function raiseFormulaError(string $errorMessage, int $code = 0, ?Throwable $exception = null) { $this->formulaError = $errorMessage; $this->cyclicReferenceStack->clear(); $suppress = /** @scrutinizer ignore-deprecated */ $this->suppressFormulaErrors ?? $this->suppressFormulaErrorsNew; if (!$suppress) { - throw new Exception($errorMessage); + throw new Exception($errorMessage, $code, $exception); } return false; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php index 9a9870d91..1d59988c3 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php @@ -45,6 +45,11 @@ public static function fromString($dateValue) return self::evaluateSingleArgumentArray([self::class, __FUNCTION__], $dateValue); } + // try to parse as date iff there is at least one digit + if (is_string($dateValue) && preg_match('/\\d/', $dateValue) !== 1) { + return ExcelError::VALUE(); + } + $dti = new DateTimeImmutable(); $baseYear = SharedDateHelper::getExcelCalendar(); $dateValue = trim($dateValue ?? '', '"'); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php index c72d006b9..5c42eac08 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php @@ -45,6 +45,7 @@ public static function adjust($dateValue, $adjustmentMonths) } catch (Exception $e) { return $e->getMessage(); } + $dateValue = floor($dateValue); $adjustmentMonths = floor($adjustmentMonths); // Execute function @@ -88,6 +89,7 @@ public static function lastDay($dateValue, $adjustmentMonths) } catch (Exception $e) { return $e->getMessage(); } + $dateValue = floor($dateValue); $adjustmentMonths = floor($adjustmentMonths); // Execute function diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php index bb9036f78..78d67b837 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php @@ -42,6 +42,11 @@ public static function fromString($timeValue) return self::evaluateSingleArgumentArray([self::class, __FUNCTION__], $timeValue); } + // try to parse as time iff there is at least one digit + if (is_string($timeValue) && preg_match('/\\d/', $timeValue) !== 1) { + return ExcelError::VALUE(); + } + $timeValue = trim($timeValue ?? '', '"'); $timeValue = str_replace(['/', '.'], '-', $timeValue); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php index 3e88ece55..331fa448b 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php @@ -48,9 +48,9 @@ public static function convertToNumberIfFormatted(string &$operand): bool */ public static function convertToNumberIfNumeric(string &$operand): bool { - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); $value = preg_replace(['/(\d)' . $thousandsSeparator . '(\d)/u', '/([+-])\s+(\d)/u'], ['$1$2', '$1$2'], trim($operand)); - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); + $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator(), '/'); $value = preg_replace(['/(\d)' . $decimalSeparator . '(\d)/u', '/([+-])\s+(\d)/u'], ['$1.$2', '$1$2'], $value ?? ''); if (is_numeric($value)) { @@ -90,9 +90,9 @@ public static function convertToNumberIfFraction(string &$operand): bool */ public static function convertToNumberIfPercent(string &$operand): bool { - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); $value = preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', trim($operand)); - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); + $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator(), '/'); $value = preg_replace(['/(\d)' . $decimalSeparator . '(\d)/u', '/([+-])\s+(\d)/u'], ['$1.$2', '$1$2'], $value ?? ''); $match = []; @@ -116,17 +116,22 @@ public static function convertToNumberIfPercent(string &$operand): bool public static function convertToNumberIfCurrency(string &$operand): bool { $currencyRegexp = self::currencyMatcherRegexp(); - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); $value = preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $operand); $match = []; if ($value !== null && preg_match($currencyRegexp, $value, $match, PREG_UNMATCHED_AS_NULL)) { //Determine the sign $sign = ($match['PrefixedSign'] ?? $match['PrefixedSign2'] ?? $match['PostfixedSign']) ?? ''; + $decimalSeparator = StringHelper::getDecimalSeparator(); //Cast to a float - $operand = (float) ($sign . ($match['PostfixedValue'] ?? $match['PrefixedValue'])); + $intermediate = (string) ($match['PostfixedValue'] ?? $match['PrefixedValue']); + $intermediate = str_replace($decimalSeparator, '.', $intermediate); + if (is_numeric($intermediate)) { + $operand = (float) ($sign . str_replace($decimalSeparator, '.', $intermediate)); - return true; + return true; + } } return false; @@ -134,8 +139,8 @@ public static function convertToNumberIfCurrency(string &$operand): bool public static function currencyMatcherRegexp(): string { - $currencyCodes = sprintf(self::CURRENCY_CONVERSION_LIST, preg_quote(StringHelper::getCurrencyCode())); - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); + $currencyCodes = sprintf(self::CURRENCY_CONVERSION_LIST, preg_quote(StringHelper::getCurrencyCode(), '/')); + $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator(), '/'); return '~^(?:(?: *(?[-+])? *(?[' . $currencyCodes . ']) *(?[-+])? *(?[0-9]+[' . $decimalSeparator . ']?[0-9*]*(?:E[-+]?[0-9]*)?) *)|(?: *(?[-+])? *(?[0-9]+' . $decimalSeparator . '?[0-9]*(?:E[-+]?[0-9]*)?) *(?[' . $currencyCodes . ']) *))$~ui'; } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php index 266f1b2bb..59cc3e3d2 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php @@ -190,8 +190,8 @@ private function adjustRowReference(string $columnName, string $reference, Cell { if ($columnName !== '') { $cellReference = $columnId . $cell->getRow(); - $pattern1 = '/\[' . preg_quote($columnName) . '\]/miu'; - $pattern2 = '/@' . preg_quote($columnName) . '/miu'; + $pattern1 = '/\[' . preg_quote($columnName, '/') . '\]/miu'; + $pattern2 = '/@' . preg_quote($columnName, '/') . '/miu'; if (preg_match($pattern1, $reference) === 1) { $reference = preg_replace($pattern1, $cellReference, $reference); } elseif (preg_match($pattern2, $reference) === 1) { @@ -328,7 +328,7 @@ private function getColumnsForColumnReference(string $reference, int $startRow, $cellFrom = "{$columnId}{$startRow}"; $cellTo = "{$columnId}{$endRow}"; $cellReference = ($cellFrom === $cellTo) ? $cellFrom : "{$cellFrom}:{$cellTo}"; - $pattern = '/\[' . preg_quote($columnName) . '\]/mui'; + $pattern = '/\[' . preg_quote($columnName, '/') . '\]/mui'; if (preg_match($pattern, $reference) === 1) { $columnsSelected = true; $reference = preg_replace($pattern, $cellReference, $reference); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php index e3a2bd65c..fdee7503e 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php @@ -20,28 +20,6 @@ class Engineering */ public const EULER = 2.71828182845904523536; - /** - * parseComplex. - * - * Parses a complex number into its real and imaginary parts, and an I or J suffix - * - * @deprecated 1.12.0 No longer used by internal code. Please use the \Complex\Complex class instead - * - * @param string $complexNumber The complex number - * - * @return mixed[] Indexed on "real", "imaginary" and "suffix" - */ - public static function parseComplex($complexNumber) - { - $complex = new Complex($complexNumber); - - return [ - 'real' => $complex->getReal(), - 'imaginary' => $complex->getImaginary(), - 'suffix' => $complex->getSuffix(), - ]; - } - /** * BESSELI. * diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php index 691de8b70..f7ec02d43 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php @@ -49,7 +49,7 @@ public static function COMPLEX($realNumber = 0.0, $imaginary = 0.0, $suffix = 'i return $e->getMessage(); } - if (($suffix == 'i') || ($suffix == 'j') || ($suffix == '')) { + if (($suffix === 'i') || ($suffix === 'j') || ($suffix === '')) { $complex = new ComplexObject($realNumber, $imaginary, $suffix); return (string) $complex; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php index 4741f3010..04bf3e506 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php @@ -40,7 +40,7 @@ public static function toDecimal($value) return $e->getMessage(); } - if (strlen($value) == 10) { + if (strlen($value) == 10 && $value[0] === '1') { // Two's Complement $value = substr($value, -9); @@ -91,7 +91,7 @@ public static function toHex($value, $places = null) return $e->getMessage(); } - if (strlen($value) == 10) { + if (strlen($value) == 10 && $value[0] === '1') { $high2 = substr($value, 0, 2); $low8 = substr($value, 2); $xarr = ['00' => '00000000', '01' => '00000001', '10' => 'FFFFFFFE', '11' => 'FFFFFFFF']; @@ -144,7 +144,7 @@ public static function toOctal($value, $places = null) return $e->getMessage(); } - if (strlen($value) == 10 && substr($value, 0, 1) === '1') { // Two's Complement + if (strlen($value) == 10 && $value[0] === '1') { // Two's Complement return str_repeat('7', 6) . strtoupper(decoct((int) bindec("11$value"))); } $octVal = (string) decoct((int) bindec($value)); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php index e2d27bde2..bc425f873 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php @@ -27,7 +27,7 @@ class HLookup extends LookupBase */ public static function lookup($lookupValue, $lookupArray, $indexNumber, $notExactMatch = true) { - if (is_array($lookupValue)) { + if (is_array($lookupValue) || is_array($indexNumber)) { return self::evaluateArrayArgumentsIgnore([self::class, __FUNCTION__], 1, $lookupValue, $lookupArray, $indexNumber, $notExactMatch); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php index edeb1aa8c..badd10573 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php @@ -26,7 +26,7 @@ class VLookup extends LookupBase */ public static function lookup($lookupValue, $lookupArray, $indexNumber, $notExactMatch = true) { - if (is_array($lookupValue)) { + if (is_array($lookupValue) || is_array($indexNumber)) { return self::evaluateArrayArgumentsIgnore([self::class, __FUNCTION__], 1, $lookupValue, $lookupArray, $indexNumber, $notExactMatch); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php index 1a797c8a2..56b0861c6 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php @@ -66,8 +66,8 @@ public static function sumErroringStrings(...$args) $returnValue += (int) $arg; } elseif (ErrorValue::isError($arg)) { return $arg; - // ignore non-numerics from cell, but fail as literals (except null) } elseif ($arg !== null && !Functions::isCellValue($k)) { + // ignore non-numerics from cell, but fail as literals (except null) return ExcelError::VALUE(); } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php index 519607c08..24ddff2ec 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php @@ -261,7 +261,7 @@ private static function buildDelimiter($delimiter): string $delimiter = Functions::flattenArray($delimiter); $quotedDelimiters = array_map( function ($delimiter) { - return preg_quote($delimiter ?? ''); + return preg_quote($delimiter ?? '', '/'); }, $delimiter ); @@ -270,7 +270,7 @@ function ($delimiter) { return '(' . $delimiters . ')'; } - return '(' . preg_quote($delimiter ?? '') . ')'; + return '(' . preg_quote($delimiter ?? '', '/') . ')'; } private static function matchFlags(int $matchMode): string diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php index 93e728202..57d331663 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php @@ -129,7 +129,7 @@ public static function TEXTFORMAT($value, $format) $format = Helpers::extractString($format); if (!is_numeric($value) && Date::isDateTimeFormatCode($format)) { - $value = DateTimeExcel\DateValue::fromString($value); + $value = DateTimeExcel\DateValue::fromString($value) + DateTimeExcel\TimeValue::fromString($value); } return (string) NumberFormat::toFormattedString($value, $format); @@ -140,7 +140,7 @@ public static function TEXTFORMAT($value, $format) * * @return mixed */ - private static function convertValue($value) + private static function convertValue($value, bool $spacesMeanZero = false) { $value = $value ?? 0; if (is_bool($value)) { @@ -150,6 +150,12 @@ private static function convertValue($value) throw new CalcExp(ExcelError::VALUE()); } } + if (is_string($value)) { + $value = trim($value); + if ($spacesMeanZero && $value === '') { + $value = 0; + } + } return $value; } @@ -181,6 +187,9 @@ public static function VALUE($value = '') '', trim($value, " \t\n\r\0\x0B" . StringHelper::getCurrencyCode()) ); + if ($numberValue === '') { + return ExcelError::VALUE(); + } if (is_numeric($numberValue)) { return (float) $numberValue; } @@ -277,7 +286,7 @@ public static function NUMBERVALUE($value = '', $decimalSeparator = null, $group } try { - $value = self::convertValue($value); + $value = self::convertValue($value, true); $decimalSeparator = self::getDecimalSeparator($decimalSeparator); $groupSeparator = self::getGroupSeparator($groupSeparator); } catch (CalcExp $e) { @@ -285,12 +294,12 @@ public static function NUMBERVALUE($value = '', $decimalSeparator = null, $group } if (!is_numeric($value)) { - $decimalPositions = preg_match_all('/' . preg_quote($decimalSeparator) . '/', $value, $matches, PREG_OFFSET_CAPTURE); + $decimalPositions = preg_match_all('/' . preg_quote($decimalSeparator, '/') . '/', $value, $matches, PREG_OFFSET_CAPTURE); if ($decimalPositions > 1) { return ExcelError::VALUE(); } - $decimalOffset = array_pop($matches[0])[1]; // @phpstan-ignore-line - if (strpos($value, $groupSeparator, $decimalOffset) !== false) { + $decimalOffset = array_pop($matches[0])[1] ?? null; + if ($decimalOffset === null || strpos($value, $groupSeparator, $decimalOffset) !== false) { return ExcelError::VALUE(); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php index 8e6a575a2..b8a730767 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php @@ -193,7 +193,7 @@ private static function buildDelimiter($delimiter): string if (is_array($delimiter) && count($valueSet) > 1) { $quotedDelimiters = array_map( function ($delimiter) { - return preg_quote($delimiter ?? ''); + return preg_quote($delimiter ?? '', '/'); }, $valueSet ); @@ -202,7 +202,7 @@ function ($delimiter) { return '(' . $delimiters . ')'; } - return '(' . preg_quote(/** @scrutinizer ignore-type */ Functions::flattenSingleValue($delimiter)) . ')'; + return '(' . preg_quote(/** @scrutinizer ignore-type */ Functions::flattenSingleValue($delimiter), '/') . ')'; } private static function matchFlags(bool $matchMode): string diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php index 1bf73ba82..c0fb38775 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php @@ -51,8 +51,9 @@ public function bindValue(Cell $cell, $value = null) return $this->setImproperFraction($matches, $cell); } - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $decimalSeparatorNoPreg = StringHelper::getDecimalSeparator(); + $decimalSeparator = preg_quote($decimalSeparatorNoPreg, '/'); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); // Check for percentage if (preg_match('/^\-?\d*' . $decimalSeparator . '?\d*\s?\%$/', preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $value))) { @@ -64,7 +65,7 @@ public function bindValue(Cell $cell, $value = null) // Convert value to number $sign = ($matches['PrefixedSign'] ?? $matches['PrefixedSign2'] ?? $matches['PostfixedSign']) ?? null; $currencyCode = $matches['PrefixedCurrency'] ?? $matches['PostfixedCurrency']; - $value = (float) ($sign . trim(str_replace([$decimalSeparator, $currencyCode, ' ', '-'], ['.', '', '', ''], preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $value)))); // @phpstan-ignore-line + $value = (float) ($sign . trim(str_replace([$decimalSeparatorNoPreg, $currencyCode, ' ', '-'], ['.', '', '', ''], preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $value)))); // @phpstan-ignore-line return $this->setCurrency($value, $cell, $currencyCode); // @phpstan-ignore-line } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php index a53294e53..e9e41d7c7 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php @@ -71,6 +71,9 @@ class Cell */ private $formulaAttributes; + /** @var IgnoredErrors */ + private $ignoredErrors; + /** * Update the cell into the cell collection. * @@ -119,6 +122,7 @@ public function __construct($value, ?string $dataType, Worksheet $worksheet) } elseif (self::getValueBinder()->bindValue($this, $value) === false) { throw new Exception('Value could not be bound to cell.'); } + $this->ignoredErrors = new IgnoredErrors(); } /** @@ -391,7 +395,9 @@ public function getCalculatedValue(bool $resetLog = true) } throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception( - $this->getWorksheet()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage() + $this->getWorksheet()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage(), + $ex->getCode(), + $ex ); } @@ -794,4 +800,9 @@ public function __toString() { return (string) $this->getValue(); } + + public function getIgnoredErrors(): IgnoredErrors + { + return $this->ignoredErrors; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php index 0e395a7ff..692f316ec 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php @@ -20,7 +20,7 @@ class DataValidator */ public function isValid(Cell $cell) { - if (!$cell->hasDataValidation()) { + if (!$cell->hasDataValidation() || $cell->getDataValidation()->getType() === DataValidation::TYPE_NONE) { return true; } @@ -31,13 +31,55 @@ public function isValid(Cell $cell) return false; } - // TODO: write check on all cases - switch ($dataValidation->getType()) { - case DataValidation::TYPE_LIST: - return $this->isValueInList($cell); + $returnValue = false; + $type = $dataValidation->getType(); + if ($type === DataValidation::TYPE_LIST) { + $returnValue = $this->isValueInList($cell); + } elseif ($type === DataValidation::TYPE_WHOLE) { + if (!is_numeric($cellValue) || fmod((float) $cellValue, 1) != 0) { + $returnValue = false; + } else { + $returnValue = $this->numericOperator($dataValidation, (int) $cellValue); + } + } elseif ($type === DataValidation::TYPE_DECIMAL || $type === DataValidation::TYPE_DATE || $type === DataValidation::TYPE_TIME) { + if (!is_numeric($cellValue)) { + $returnValue = false; + } else { + $returnValue = $this->numericOperator($dataValidation, (float) $cellValue); + } + } elseif ($type === DataValidation::TYPE_TEXTLENGTH) { + $returnValue = $this->numericOperator($dataValidation, mb_strlen((string) $cellValue)); + } + + return $returnValue; + } + + /** @param float|int $cellValue */ + private function numericOperator(DataValidation $dataValidation, $cellValue): bool + { + $operator = $dataValidation->getOperator(); + $formula1 = $dataValidation->getFormula1(); + $formula2 = $dataValidation->getFormula2(); + $returnValue = false; + if ($operator === DataValidation::OPERATOR_BETWEEN) { + $returnValue = $cellValue >= $formula1 && $cellValue <= $formula2; + } elseif ($operator === DataValidation::OPERATOR_NOTBETWEEN) { + $returnValue = $cellValue < $formula1 || $cellValue > $formula2; + } elseif ($operator === DataValidation::OPERATOR_EQUAL) { + $returnValue = $cellValue == $formula1; + } elseif ($operator === DataValidation::OPERATOR_NOTEQUAL) { + $returnValue = $cellValue != $formula1; + } elseif ($operator === DataValidation::OPERATOR_LESSTHAN) { + $returnValue = $cellValue < $formula1; + } elseif ($operator === DataValidation::OPERATOR_LESSTHANOREQUAL) { + $returnValue = $cellValue <= $formula1; + } elseif ($operator === DataValidation::OPERATOR_GREATERTHAN) { + $returnValue = $cellValue > $formula1; + } elseif ($operator === DataValidation::OPERATOR_GREATERTHANOREQUAL) { + $returnValue = $cellValue >= $formula1; } - return false; + return $returnValue; } /** diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php new file mode 100644 index 000000000..ee4b51562 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php @@ -0,0 +1,66 @@ +numberStoredAsText = $value; + + return $this; + } + + public function getNumberStoredAsText(): bool + { + return $this->numberStoredAsText; + } + + public function setFormula(bool $value): self + { + $this->formula = $value; + + return $this; + } + + public function getFormula(): bool + { + return $this->formula; + } + + public function setTwoDigitTextYear(bool $value): self + { + $this->twoDigitTextYear = $value; + + return $this; + } + + public function getTwoDigitTextYear(): bool + { + return $this->twoDigitTextYear; + } + + public function setEvalError(bool $value): self + { + $this->evalError = $value; + + return $this; + } + + public function getEvalError(): bool + { + return $this->evalError; + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php index 24694d5c6..0e164543b 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php @@ -118,7 +118,7 @@ protected function updateColumnReference(int $newColumnIndex, string $absoluteCo { $newColumn = Coordinate::stringFromColumnIndex(min($newColumnIndex + $this->numberOfColumns, AddressRange::MAX_COLUMN_INT)); - return $absoluteColumn . $newColumn; + return "{$absoluteColumn}{$newColumn}"; } protected function updateRowReference(int $newRowIndex, string $absoluteRow): string @@ -126,6 +126,6 @@ protected function updateRowReference(int $newRowIndex, string $absoluteRow): st $newRow = $newRowIndex + $this->numberOfRows; $newRow = ($newRow > AddressRange::MAX_ROW) ? AddressRange::MAX_ROW : $newRow; - return $absoluteRow . (string) $newRow; + return "{$absoluteRow}{$newRow}"; } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php index ade7b99d8..3d4813468 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php @@ -52,6 +52,9 @@ public function __construct() /** @var string */ private $axisType = ''; + /** @var ?AxisText */ + private $axisText; + /** * Axis Options. * @@ -88,6 +91,9 @@ public function __construct() Properties::FORMAT_CODE_DATE_ISO8601, ]; + /** @var bool */ + private $noFill = false; + /** * Get Series Data Type. * @@ -183,6 +189,14 @@ public function setAxisOptionsProperties( */ public function getAxisOptionsProperty($property) { + if ($property === 'textRotation') { + if ($this->axisText !== null) { + if ($this->axisText->getRotation() !== null) { + return (string) $this->axisText->getRotation(); + } + } + } + return $this->axisOptions[$property]; } @@ -295,4 +309,28 @@ public function setMinorGridlines(?GridLines $gridlines): self return $this; } + + public function getAxisText(): ?AxisText + { + return $this->axisText; + } + + public function setAxisText(?AxisText $axisText): self + { + $this->axisText = $axisText; + + return $this; + } + + public function setNoFill(bool $noFill): self + { + $this->noFill = $noFill; + + return $this; + } + + public function getNoFill(): bool + { + return $this->noFill; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php new file mode 100644 index 000000000..cd9ba2ce2 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php @@ -0,0 +1,56 @@ +font = new Font(); + $this->font->setSize(null, true); + } + + public function setRotation(?int $rotation): self + { + $this->rotation = $rotation; + + return $this; + } + + public function getRotation(): ?int + { + return $this->rotation; + } + + public function getFillColorObject(): ChartColor + { + $fillColor = $this->font->getChartColor(); + if ($fillColor === null) { + $fillColor = new ChartColor(); + $this->font->setChartColorFromObject($fillColor); + } + + return $fillColor; + } + + public function getFont(): Font + { + return $this->font; + } + + public function setFont(Font $font): self + { + $this->font = $font; + + return $this; + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php index 2ff22a344..38c69a463 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php @@ -150,6 +150,12 @@ class Chart /** @var bool */ private $roundedCorners = false; + /** @var GridLines */ + private $borderLines; + + /** @var ChartColor */ + private $fillColor; + /** * Create a new Chart. * majorGridlines and minorGridlines are deprecated, moved to Axis. @@ -176,6 +182,8 @@ public function __construct($name, ?Title $title = null, ?Legend $legend = null, if ($minorGridlines !== null) { $this->yAxis->setMinorGridlines($minorGridlines); } + $this->fillColor = new ChartColor(); + $this->borderLines = new GridLines(); } /** @@ -786,4 +794,21 @@ public function setRoundedCorners(?bool $roundedCorners): self return $this; } + + public function getBorderLines(): GridLines + { + return $this->borderLines; + } + + public function setBorderLines(GridLines $borderLines): self + { + $this->borderLines = $borderLines; + + return $this; + } + + public function getFillColor(): ChartColor + { + return $this->fillColor; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php index 0018d79d7..ac36c25c9 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php @@ -2,6 +2,8 @@ namespace PhpOffice\PhpSpreadsheet\Chart; +use PhpOffice\PhpSpreadsheet\Style\Font; + class Layout { /** @@ -127,8 +129,11 @@ class Layout /** @var ?ChartColor */ private $labelBorderColor; - /** @var ?ChartColor */ - private $labelFontColor; + /** @var ?Font */ + private $labelFont; + + /** @var Properties */ + private $labelEffects; /** * Create a new Layout. @@ -172,7 +177,18 @@ public function __construct(array $layout = []) $this->initBoolean($layout, 'numFmtLinked'); $this->initColor($layout, 'labelFillColor'); $this->initColor($layout, 'labelBorderColor'); - $this->initColor($layout, 'labelFontColor'); + $labelFont = $layout['labelFont'] ?? null; + if ($labelFont instanceof Font) { + $this->labelFont = $labelFont; + } + $labelFontColor = $layout['labelFontColor'] ?? null; + if ($labelFontColor instanceof ChartColor) { + $this->setLabelFontColor($labelFontColor); + } + $labelEffects = $layout['labelEffects'] ?? null; + if ($labelEffects instanceof Properties) { + $this->labelEffects = $labelEffects; + } } private function initBoolean(array $layout, string $name): void @@ -493,14 +509,32 @@ public function setLabelBorderColor(?ChartColor $chartColor): self return $this; } + public function getLabelFont(): ?Font + { + return $this->labelFont; + } + + public function getLabelEffects(): ?Properties + { + return $this->labelEffects; + } + public function getLabelFontColor(): ?ChartColor { - return $this->labelFontColor; + if ($this->labelFont === null) { + return null; + } + + return $this->labelFont->getChartColor(); } public function setLabelFontColor(?ChartColor $chartColor): self { - $this->labelFontColor = $chartColor; + if ($this->labelFont === null) { + $this->labelFont = new Font(); + $this->labelFont->setSize(null, true); + } + $this->labelFont->setChartColorFromObject($chartColor); return $this; } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php index edd87015a..04040aed6 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php @@ -48,6 +48,15 @@ class Legend */ private $layout; + /** @var GridLines */ + private $borderLines; + + /** @var ChartColor */ + private $fillColor; + + /** @var ?AxisText */ + private $legendText; + /** * Create a new Legend. * @@ -60,6 +69,13 @@ public function __construct($position = self::POSITION_RIGHT, ?Layout $layout = $this->setPosition($position); $this->layout = $layout; $this->setOverlay($overlay); + $this->borderLines = new GridLines(); + $this->fillColor = new ChartColor(); + } + + public function getFillColor(): ChartColor + { + return $this->fillColor; } /** @@ -148,4 +164,28 @@ public function getLayout() { return $this->layout; } + + public function getLegendText(): ?AxisText + { + return $this->legendText; + } + + public function setLegendText(?AxisText $legendText): self + { + $this->legendText = $legendText; + + return $this; + } + + public function getBorderLines(): GridLines + { + return $this->borderLines; + } + + public function setBorderLines(GridLines $borderLines): self + { + $this->borderLines = $borderLines; + + return $this; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php index ccde4bb2a..2b78d9a4e 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php @@ -163,4 +163,49 @@ public function getGradientFillStops() { return $this->gradientFillStops; } + + /** @var ?int */ + private $gapWidth; + + /** @var bool */ + private $useUpBars = false; + + /** @var bool */ + private $useDownBars = false; + + public function getGapWidth(): ?int + { + return $this->gapWidth; + } + + public function setGapWidth(?int $gapWidth): self + { + $this->gapWidth = $gapWidth; + + return $this; + } + + public function getUseUpBars(): bool + { + return $this->useUpBars; + } + + public function setUseUpBars(bool $useUpBars): self + { + $this->useUpBars = $useUpBars; + + return $this; + } + + public function getUseDownBars(): bool + { + return $this->useDownBars; + } + + public function setUseDownBars(bool $useDownBars): self + { + $this->useDownBars = $useDownBars; + + return $this; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php index cb9b544b8..d676f1d33 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php @@ -434,12 +434,33 @@ private function renderPlotScatter($groupID, $bubble): void // Loop through each data series in turn for ($i = 0; $i < $seriesCount; ++$i) { - $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); + $plotCategoryByIndex = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i); + if ($plotCategoryByIndex === false) { + $plotCategoryByIndex = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0); + } + $dataValuesY = $plotCategoryByIndex->getDataValues(); $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - foreach ($dataValuesY as $k => $dataValueY) { - $dataValuesY[$k] = $k; + $redoDataValuesY = true; + if ($bubble) { + if (!$bubbleSize) { + $bubbleSize = '10'; + } + $redoDataValuesY = false; + foreach ($dataValuesY as $dataValueY) { + if (!is_int($dataValueY) && !is_float($dataValueY)) { + $redoDataValuesY = true; + + break; + } + } + } + if ($redoDataValuesY) { + foreach ($dataValuesY as $k => $dataValueY) { + $dataValuesY[$k] = $k; + } } + //var_dump($dataValuesY, $dataValuesX, $bubbleSize); $seriesPlot = new ScatterPlot($dataValuesX, $dataValuesY); if ($scatterStyle == 'lineMarker') { @@ -483,7 +504,7 @@ private function renderPlotRadar($groupID): void $dataValues = []; foreach ($dataValuesY as $k => $dataValueY) { - $dataValues[$k] = implode(' ', array_reverse($dataValueY)); + $dataValues[$k] = is_array($dataValueY) ? implode(' ', array_reverse($dataValueY)) : $dataValueY; } $tmp = array_shift($dataValues); $dataValues[] = $tmp; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php index e1f0f90ad..b5e70d3a1 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php @@ -3,12 +3,12 @@ namespace PhpOffice\PhpSpreadsheet\Chart\Renderer; /** - * Jpgraph is not oficially maintained in Composer. + * Jpgraph is not officially maintained by Composer at packagist.org. * * This renderer implementation uses package * https://packagist.org/packages/mitoteam/jpgraph * - * This package is up to date for August 2022 and has PHP 8.1 support. + * This package is up to date for June 2023 and has PHP 8.2 support. */ class MtJpGraphRenderer extends JpGraphRendererBase { @@ -29,7 +29,7 @@ protected static function init(): void 'regstat', 'scatter', 'stock', - ]); + ], true); // enable Extended mode $loaded = true; } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php index afdeea996..302afee79 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php @@ -107,6 +107,8 @@ class Properties */ private $customProperties = []; + private string $hyperlinkBase = ''; + /** * Create a new Document Properties instance. */ @@ -434,7 +436,7 @@ private function identifyPropertyType($propertyValue): string * * @param mixed $propertyValue * @param string $propertyType - * 'i' : Integer + * 'i' : Integer * 'f' : Floating Point * 's' : String * 'd' : Date/Time @@ -534,4 +536,16 @@ public static function convertPropertyType(string $propertyType): string { return self::PROPERTY_TYPE_ARRAY[$propertyType] ?? self::PROPERTY_TYPE_UNKNOWN; } + + public function getHyperlinkBase(): string + { + return $this->hyperlinkBase; + } + + public function setHyperlinkBase(string $hyperlinkBase): self + { + $this->hyperlinkBase = $hyperlinkBase; + + return $this; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php new file mode 100644 index 000000000..e66ae4258 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php @@ -0,0 +1,89 @@ + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xls' => 'application/vnd.ms-excel', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'csv' => 'text/csv', + 'html' => 'text/html', + 'pdf' => 'application/pdf', + ]; + + public function __construct(string $folder, string $filename, ?string $filetype = null) + { + if ((is_dir($folder) === false) || (is_readable($folder) === false)) { + throw new Exception("Folder {$folder} is not accessable"); + } + $filepath = "{$folder}/{$filename}"; + $this->filepath = (string) realpath($filepath); + $this->filename = basename($filepath); + if ((file_exists($this->filepath) === false) || (is_readable($this->filepath) === false)) { + throw new Exception("{$this->filename} not found, or cannot be read"); + } + + $filetype ??= pathinfo($filename, PATHINFO_EXTENSION); + if (array_key_exists(strtolower($filetype), self::CONTENT_TYPES) === false) { + throw new Exception("Invalid filetype: {$filetype} cannot be downloaded"); + } + $this->filetype = strtolower($filetype); + } + + public function download(): void + { + $this->headers(); + + readfile($this->filepath); + } + + public function headers(): void + { + ob_clean(); + + $this->contentType(); + $this->contentDisposition(); + $this->cacheHeaders(); + $this->fileSize(); + + flush(); + } + + protected function contentType(): void + { + header('Content-Type: ' . self::CONTENT_TYPES[$this->filetype]); + } + + protected function contentDisposition(): void + { + header('Content-Disposition: attachment;filename="' . $this->filename . '"'); + } + + protected function cacheHeaders(): void + { + header('Cache-Control: max-age=0'); + // If you're serving to IE 9, then the following may be needed + header('Cache-Control: max-age=1'); + + // If you're serving to IE over SSL, then the following may be needed + header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified + header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 + header('Pragma: public'); // HTTP/1.0 + } + + protected function fileSize(): void + { + header('Content-Length: ' . filesize($this->filepath)); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php new file mode 100644 index 000000000..d05197cef --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php @@ -0,0 +1,46 @@ +attributes; if ($attrs !== null) { @@ -737,72 +737,72 @@ private function startFontTag(DOMElement $tag): void } } - private function endFontTag(): void + protected function endFontTag(): void { $this->face = $this->size = $this->color = null; } - private function startBoldTag(): void + protected function startBoldTag(): void { $this->bold = true; } - private function endBoldTag(): void + protected function endBoldTag(): void { $this->bold = false; } - private function startItalicTag(): void + protected function startItalicTag(): void { $this->italic = true; } - private function endItalicTag(): void + protected function endItalicTag(): void { $this->italic = false; } - private function startUnderlineTag(): void + protected function startUnderlineTag(): void { $this->underline = true; } - private function endUnderlineTag(): void + protected function endUnderlineTag(): void { $this->underline = false; } - private function startSubscriptTag(): void + protected function startSubscriptTag(): void { $this->subscript = true; } - private function endSubscriptTag(): void + protected function endSubscriptTag(): void { $this->subscript = false; } - private function startSuperscriptTag(): void + protected function startSuperscriptTag(): void { $this->superscript = true; } - private function endSuperscriptTag(): void + protected function endSuperscriptTag(): void { $this->superscript = false; } - private function startStrikethruTag(): void + protected function startStrikethruTag(): void { $this->strikethrough = true; } - private function endStrikethruTag(): void + protected function endStrikethruTag(): void { $this->strikethrough = false; } - private function breakTag(): void + protected function breakTag(): void { $this->stringData .= "\n"; } @@ -826,8 +826,9 @@ private function handleCallback(DOMElement $element, $callbackTag, array $callba if (isset($callbacks[$callbackTag])) { $elementHandler = $callbacks[$callbackTag]; if (method_exists($this, $elementHandler)) { - /** @phpstan-ignore-next-line */ - call_user_func([$this, $elementHandler], $element); + /** @var callable */ + $callable = [$this, $elementHandler]; + call_user_func($callable, $element); } } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php index 5ca546e07..6244375fe 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php @@ -2,7 +2,9 @@ namespace PhpOffice\PhpSpreadsheet\Helper; +use PhpOffice\PhpSpreadsheet\Chart\Chart; use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Settings; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Writer\IWriter; @@ -12,6 +14,7 @@ use ReflectionClass; use RegexIterator; use RuntimeException; +use Throwable; /** * Helper class to be used in sample code. @@ -120,7 +123,7 @@ public function getSamples() * @param string $filename * @param string[] $writers */ - public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls']): void + public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls'], bool $withCharts = false, ?callable $writerCallback = null): void { // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); @@ -129,9 +132,16 @@ public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xl foreach ($writers as $writerType) { $path = $this->getFilename($filename, mb_strtolower($writerType)); $writer = IOFactory::createWriter($spreadsheet, $writerType); + $writer->setIncludeCharts($withCharts); + if ($writerCallback !== null) { + $writerCallback($writer); + } $callStartTime = microtime(true); $writer->save($path); $this->logWrite($writer, $path, /** @scrutinizer ignore-type */ $callStartTime); + if ($this->isCli() === false) { + echo 'Download ' . basename($path) . '
'; + } } $this->logEndingNotes(); @@ -147,7 +157,7 @@ protected function isDirOrMkdir(string $folder): bool * * @return string */ - private function getTemporaryFolder() + public function getTemporaryFolder() { $tempFolder = sys_get_temp_dir() . '/phpspreadsheet'; if (!$this->isDirOrMkdir($tempFolder)) { @@ -162,10 +172,8 @@ private function getTemporaryFolder() * * @param string $filename * @param string $extension - * - * @return string */ - public function getFilename($filename, $extension = 'xlsx') + public function getFilename($filename, $extension = 'xlsx'): string { $originalExtension = pathinfo($filename, PATHINFO_EXTENSION); @@ -195,7 +203,29 @@ public function getTemporaryFilename($extension = 'xlsx') public function log(string $message): void { $eol = $this->isCli() ? PHP_EOL : '
'; - echo date('H:i:s ') . $message . $eol; + echo($this->isCli() ? date('H:i:s ') : '') . $message . $eol; + } + + public function renderChart(Chart $chart, string $fileName): void + { + if ($this->isCli() === true) { + return; + } + + Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); + + $fileName = $this->getFilename($fileName, 'png'); + + try { + $chart->render($fileName); + $this->log('Rendered image: ' . $fileName); + $imageData = file_get_contents($fileName); + if ($imageData !== false) { + echo '
'; + } + } catch (Throwable $e) { + $this->log('Error rendering chart: ' . $e->getMessage() . PHP_EOL); + } } public function titles(string $category, string $functionName, ?string $description = null): void @@ -246,7 +276,10 @@ public function logWrite(IWriter $writer, $path, $callStartTime): void $callTime = $callEndTime - $callStartTime; $reflection = new ReflectionClass($writer); $format = $reflection->getShortName(); - $message = "Write {$format} format to {$path} in " . sprintf('%.4f', $callTime) . ' seconds'; + + $message = ($this->isCli() === true) + ? "Write {$format} format to {$path} in " . sprintf('%.4f', $callTime) . ' seconds' + : "Write {$format} format to {$path} in " . sprintf('%.4f', $callTime) . ' seconds'; $this->log($message); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php index ed146a55d..3a4a98f02 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php @@ -48,17 +48,17 @@ function (&$row): void { public function render(): string { - $this->gridDisplay = $this->isCli ? '' : ''; + $this->gridDisplay = $this->isCli ? '' : '
';
 
         $maxRow = max($this->rows);
-        $maxRowLength = strlen((string) $maxRow) + 1;
+        $maxRowLength = mb_strlen((string) $maxRow) + 1;
         $columnWidths = $this->getColumnWidths();
 
         $this->renderColumnHeader($maxRowLength, $columnWidths);
         $this->renderRows($maxRowLength, $columnWidths);
         $this->renderFooter($maxRowLength, $columnWidths);
 
-        $this->gridDisplay .= $this->isCli ? '' : '';
+        $this->gridDisplay .= $this->isCli ? '' : '
'; return $this->gridDisplay; } @@ -75,9 +75,9 @@ private function renderRows(int $maxRowLength, array $columnWidths): void private function renderCells(array $rowData, array $columnWidths): void { foreach ($rowData as $column => $cell) { - $cell = ($this->isCli) ? (string) $cell : htmlentities((string) $cell); + $displayCell = ($this->isCli) ? (string) $cell : htmlentities((string) $cell); $this->gridDisplay .= '| '; - $this->gridDisplay .= str_pad($cell, $columnWidths[$column] + 1, ' '); + $this->gridDisplay .= $displayCell . str_repeat(' ', $columnWidths[$column] - mb_strlen($cell ?? '') + 1); } } @@ -126,12 +126,12 @@ private function getColumnWidth(array $columnData): int foreach ($columnData as $columnValue) { if (is_string($columnValue)) { - $columnWidth = max($columnWidth, strlen($columnValue)); + $columnWidth = max($columnWidth, mb_strlen($columnValue)); } elseif (is_bool($columnValue)) { - $columnWidth = max($columnWidth, strlen($columnValue ? 'TRUE' : 'FALSE')); + $columnWidth = max($columnWidth, mb_strlen($columnValue ? 'TRUE' : 'FALSE')); } - $columnWidth = max($columnWidth, strlen((string) $columnWidth)); + $columnWidth = max($columnWidth, mb_strlen((string) $columnWidth)); } return $columnWidth; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php index 174553225..99e4d6ad6 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -80,17 +80,15 @@ public function __construct() */ public function canRead(string $filename): bool { - // Check if gzlib functions are available - if (File::testFileNoThrow($filename) && function_exists('gzread')) { - // Read signature data (first 3 bytes) - $fh = fopen($filename, 'rb'); - if ($fh !== false) { - $data = fread($fh, 2); - fclose($fh); + $data = null; + if (File::testFileNoThrow($filename)) { + $data = $this->gzfileGetContents($filename); + if (strpos($data, self::NAMESPACE_GNM) === false) { + $data = ''; } } - return isset($data) && $data === chr(0x1F) . chr(0x8B); + return !empty($data); } private static function matchXml(XMLReader $xml, string $expectedLocalName): bool @@ -110,9 +108,13 @@ private static function matchXml(XMLReader $xml, string $expectedLocalName): boo public function listWorksheetNames($filename) { File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an invalid Gnumeric file.'); + } $xml = new XMLReader(); - $xml->xml($this->getSecurityScannerOrThrow()->scanFile('compress.zlib://' . realpath($filename)), null, Settings::getLibXmlLoaderOptions()); + $contents = $this->gzfileGetContents($filename); + $xml->xml($contents, null, Settings::getLibXmlLoaderOptions()); $xml->setParserProperty(2, true); $worksheetNames = []; @@ -139,9 +141,13 @@ public function listWorksheetNames($filename) public function listWorksheetInfo($filename) { File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an invalid Gnumeric file.'); + } $xml = new XMLReader(); - $xml->xml($this->getSecurityScannerOrThrow()->scanFile('compress.zlib://' . realpath($filename)), null, Settings::getLibXmlLoaderOptions()); + $contents = $this->gzfileGetContents($filename); + $xml->xml($contents, null, Settings::getLibXmlLoaderOptions()); $xml->setParserProperty(2, true); $worksheetInfo = []; @@ -185,13 +191,23 @@ public function listWorksheetInfo($filename) */ private function gzfileGetContents($filename) { - $file = @gzopen($filename, 'rb'); $data = ''; - if ($file !== false) { - while (!gzeof($file)) { - $data .= gzread($file, 1024); + $contents = @file_get_contents($filename); + if ($contents !== false) { + if (substr($contents, 0, 2) === "\x1f\x8b") { + // Check if gzlib functions are available + if (function_exists('gzdecode')) { + $contents = @gzdecode($contents); + if ($contents !== false) { + $data = $contents; + } + } + } else { + $data = $contents; } - gzclose($file); + } + if ($data !== '') { + $data = $this->getSecurityScannerOrThrow()->scan($data); } return $data; @@ -245,10 +261,13 @@ public function loadIntoExisting(string $filename, Spreadsheet $spreadsheet): Sp { $this->spreadsheet = $spreadsheet; File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an invalid Gnumeric file.'); + } $gFileData = $this->gzfileGetContents($filename); - $xml2 = simplexml_load_string($this->getSecurityScannerOrThrow()->scan($gFileData), 'SimpleXMLElement', Settings::getLibXmlLoaderOptions()); + $xml2 = simplexml_load_string($gFileData, 'SimpleXMLElement', Settings::getLibXmlLoaderOptions()); $xml = self::testSimpleXml($xml2); $gnmXML = $xml->children(self::NAMESPACE_GNM); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php index b165b6c17..bfb52401a 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php @@ -7,6 +7,8 @@ use DOMNode; use DOMText; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Document\Properties; use PhpOffice\PhpSpreadsheet\Helper\Dimension as CssDimension; use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -283,15 +285,35 @@ protected function releaseTableStartColumn(): string * @param int|string $row * @param mixed $cellContent */ - protected function flushCell(Worksheet $sheet, $column, $row, &$cellContent): void + protected function flushCell(Worksheet $sheet, $column, $row, &$cellContent, array $attributeArray): void { if (is_string($cellContent)) { // Simple String content if (trim($cellContent) > '') { // Only actually write it if there's content in the string // Write to worksheet to be done here... - // ... we return the cell so we can mess about with styles more easily - $sheet->setCellValue($column . $row, $cellContent); + // ... we return the cell, so we can mess about with styles more easily + + // Set cell value explicitly if there is data-type attribute + if (isset($attributeArray['data-type'])) { + $datatype = $attributeArray['data-type']; + if (in_array($datatype, [DataType::TYPE_STRING, DataType::TYPE_STRING2, DataType::TYPE_INLINE])) { + //Prevent to Excel treat string with beginning equal sign or convert big numbers to scientific number + if (substr($cellContent, 0, 1) === '=') { + $sheet->getCell($column . $row) + ->getStyle() + ->setQuotePrefix(true); + } + } + //catching the Exception and ignoring the invalid data types + try { + $sheet->setCellValueExplicit($column . $row, $cellContent, $attributeArray['data-type']); + } catch (\PhpOffice\PhpSpreadsheet\Exception $exception) { + $sheet->setCellValue($column . $row, $cellContent); + } + } else { + $sheet->setCellValue($column . $row, $cellContent); + } $this->dataArray[$row][$column] = $cellContent; } } else { @@ -305,7 +327,7 @@ protected function flushCell(Worksheet $sheet, $column, $row, &$cellContent): vo private function processDomElementBody(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child): void { $attributeArray = []; - foreach (($child->attributes ?? []) as $attribute) { + foreach ($child->attributes as $attribute) { $attributeArray[$attribute->name] = $attribute->value; } @@ -355,7 +377,7 @@ private function processDomElementSpanEtc(Worksheet $sheet, int &$row, string &$ private function processDomElementHr(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child, array &$attributeArray): void { if ($child->nodeName === 'hr') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); ++$row; if (isset($this->formats[$child->nodeName])) { $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); @@ -375,7 +397,7 @@ private function processDomElementBr(Worksheet $sheet, int &$row, string &$colum $sheet->getStyle($column . $row)->getAlignment()->setWrapText(true); } else { // Otherwise flush our existing content and move the row cursor on - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); ++$row; } } else { @@ -421,11 +443,11 @@ private function processDomElementH1Etc(Worksheet $sheet, int &$row, string &$co $this->processDomElement($child, $sheet, $row, $column, $cellContent); } else { if ($cellContent > '') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); ++$row; } $this->processDomElement($child, $sheet, $row, $column, $cellContent); - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); if (isset($this->formats[$child->nodeName])) { $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); @@ -448,11 +470,11 @@ private function processDomElementLi(Worksheet $sheet, int &$row, string &$colum $this->processDomElement($child, $sheet, $row, $column, $cellContent); } else { if ($cellContent > '') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); } ++$row; $this->processDomElement($child, $sheet, $row, $column, $cellContent); - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); $column = 'A'; } } else { @@ -469,10 +491,13 @@ private function processDomElementImg(Worksheet $sheet, int &$row, string &$colu } } + private string $currentColumn = 'A'; + private function processDomElementTable(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child, array &$attributeArray): void { if ($child->nodeName === 'table') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->currentColumn = 'A'; + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); $column = $this->setTableStartColumn($column); if ($this->tableLevel > 1 && $row > 1) { --$row; @@ -491,7 +516,10 @@ private function processDomElementTable(Worksheet $sheet, int &$row, string &$co private function processDomElementTr(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child, array &$attributeArray): void { - if ($child->nodeName === 'tr') { + if ($child->nodeName === 'col') { + $this->applyInlineStyle($sheet, -1, $this->currentColumn, $attributeArray); + ++$this->currentColumn; + } elseif ($child->nodeName === 'tr') { $column = $this->getTableStartColumn(); $cellContent = ''; $this->processDomElement($child, $sheet, $row, $column, $cellContent); @@ -574,7 +602,7 @@ private function processDomElementThTd(Worksheet $sheet, int &$row, string &$col // apply inline style $this->applyInlineStyle($sheet, $row, $column, $attributeArray); - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); $this->processDomElementBgcolor($sheet, $row, $column, $attributeArray); $this->processDomElementWidth($sheet, $column, $attributeArray); @@ -664,10 +692,94 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) if ($loaded === false) { throw new Exception('Failed to load ' . $filename . ' as a DOM Document', 0, $e ?? null); } + self::loadProperties($dom, $spreadsheet); return $this->loadDocument($dom, $spreadsheet); } + private static function loadProperties(DOMDocument $dom, Spreadsheet $spreadsheet): void + { + $properties = $spreadsheet->getProperties(); + foreach ($dom->getElementsByTagName('meta') as $meta) { + $metaContent = (string) $meta->getAttribute('content'); + if ($metaContent !== '') { + $metaName = (string) $meta->getAttribute('name'); + switch ($metaName) { + case 'author': + $properties->setCreator($metaContent); + + break; + case 'category': + $properties->setCategory($metaContent); + + break; + case 'company': + $properties->setCompany($metaContent); + + break; + case 'created': + $properties->setCreated($metaContent); + + break; + case 'description': + $properties->setDescription($metaContent); + + break; + case 'keywords': + $properties->setKeywords($metaContent); + + break; + case 'lastModifiedBy': + $properties->setLastModifiedBy($metaContent); + + break; + case 'manager': + $properties->setManager($metaContent); + + break; + case 'modified': + $properties->setModified($metaContent); + + break; + case 'subject': + $properties->setSubject($metaContent); + + break; + case 'title': + $properties->setTitle($metaContent); + + break; + default: + if (preg_match('/^custom[.](bool|date|float|int|string)[.](.+)$/', $metaName, $matches) === 1) { + switch ($matches[1]) { + case 'bool': + $properties->setCustomProperty($matches[2], (bool) $metaContent, Properties::PROPERTY_TYPE_BOOLEAN); + + break; + case 'float': + $properties->setCustomProperty($matches[2], (float) $metaContent, Properties::PROPERTY_TYPE_FLOAT); + + break; + case 'int': + $properties->setCustomProperty($matches[2], (int) $metaContent, Properties::PROPERTY_TYPE_INTEGER); + + break; + case 'date': + $properties->setCustomProperty($matches[2], $metaContent, Properties::PROPERTY_TYPE_DATE); + + break; + default: // string + $properties->setCustomProperty($matches[2], $metaContent, Properties::PROPERTY_TYPE_STRING); + } + } + } + } + } + if (!empty($dom->baseURI)) { + $properties->setHyperlinkBase($dom->baseURI); + } + } + private static function replaceNonAscii(array $matches): string { return '&#' . mb_ord($matches[0], 'UTF-8') . ';'; @@ -698,8 +810,10 @@ public function loadFromString($content, ?Spreadsheet $spreadsheet = null): Spre if ($loaded === false) { throw new Exception('Failed to load content as a DOM Document', 0, $e ?? null); } + $spreadsheet = $spreadsheet ?? new Spreadsheet(); + self::loadProperties($dom, $spreadsheet); - return $this->loadDocument($dom, $spreadsheet ?? new Spreadsheet()); + return $this->loadDocument($dom, $spreadsheet); } /** @@ -769,7 +883,9 @@ private function applyInlineStyle(Worksheet &$sheet, $row, $column, $attributeAr return; } - if (isset($attributeArray['rowspan'], $attributeArray['colspan'])) { + if ($row <= 0 || $column === '') { + $cellStyle = new Style(); + } elseif (isset($attributeArray['rowspan'], $attributeArray['colspan'])) { $columnTo = $column; for ($i = 0; $i < (int) $attributeArray['colspan'] - 1; ++$i) { ++$columnTo; @@ -901,16 +1017,20 @@ private function applyInlineStyle(Worksheet &$sheet, $row, $column, $attributeAr break; case 'width': - $sheet->getColumnDimension($column)->setWidth( - (new CssDimension($styleValue ?? ''))->width() - ); + if ($column !== '') { + $sheet->getColumnDimension($column)->setWidth( + (new CssDimension($styleValue ?? ''))->width() + ); + } break; case 'height': - $sheet->getRowDimension($row)->setRowHeight( - (new CssDimension($styleValue ?? ''))->height() - ); + if ($row > 0) { + $sheet->getRowDimension($row)->setRowHeight( + (new CssDimension($styleValue ?? ''))->height() + ); + } break; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php index 250815400..9913f3325 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php @@ -8,6 +8,7 @@ use DOMNode; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Helper\Dimension as HelperDimension; use PhpOffice\PhpSpreadsheet\Reader\Ods\AutoFilter; use PhpOffice\PhpSpreadsheet\Reader\Ods\DefinedNames; use PhpOffice\PhpSpreadsheet\Reader\Ods\FormulaTranslator; @@ -295,11 +296,29 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) $tableNs = $dom->lookupNamespaceUri('table'); $textNs = $dom->lookupNamespaceUri('text'); $xlinkNs = $dom->lookupNamespaceUri('xlink'); + $styleNs = $dom->lookupNamespaceUri('style'); $pageSettings->readStyleCrossReferences($dom); $autoFilterReader = new AutoFilter($spreadsheet, $tableNs); $definedNameReader = new DefinedNames($spreadsheet, $tableNs); + $columnWidths = []; + $automaticStyle0 = $dom->getElementsByTagNameNS($officeNs, 'automatic-styles')->item(0); + $automaticStyles = ($automaticStyle0 === null) ? [] : $automaticStyle0->getElementsByTagNameNS($styleNs, 'style'); + foreach ($automaticStyles as $automaticStyle) { + $styleName = $automaticStyle->getAttributeNS($styleNs, 'name'); + $styleFamily = $automaticStyle->getAttributeNS($styleNs, 'family'); + if ($styleFamily === 'table-column') { + $tcprops = $automaticStyle->getElementsByTagNameNS($styleNs, 'table-column-properties'); + if ($tcprops !== null) { + $tcprop = $tcprops->item(0); + if ($tcprop !== null) { + $columnWidth = $tcprop->getAttributeNs($styleNs, 'column-width'); + $columnWidths[$styleName] = $columnWidth; + } + } + } + } // Content $item0 = $dom->getElementsByTagNameNS($officeNs, 'body')->item(0); @@ -340,6 +359,7 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) // Go through every child of table element $rowID = 1; + $tableColumnIndex = 1; foreach ($worksheetDataSet->childNodes as $childNode) { /** @var DOMElement $childNode */ @@ -366,6 +386,26 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) // $rowData = $cellData; // break; // } + break; + case 'table-column': + if ($childNode->hasAttributeNS($tableNs, 'number-columns-repeated')) { + $rowRepeats = (int) $childNode->getAttributeNS($tableNs, 'number-columns-repeated'); + } else { + $rowRepeats = 1; + } + $tableStyleName = $childNode->getAttributeNS($tableNs, 'style-name'); + if (isset($columnWidths[$tableStyleName])) { + $columnWidth = new HelperDimension($columnWidths[$tableStyleName]); + $tableColumnString = Coordinate::stringFromColumnIndex($tableColumnIndex); + for ($rowRepeats2 = $rowRepeats; $rowRepeats2 > 0; --$rowRepeats2) { + $spreadsheet->getActiveSheet() + ->getColumnDimension($tableColumnString) + ->setWidth($columnWidth->toUnit('cm'), 'cm'); + ++$tableColumnString; + } + } + $tableColumnIndex += $rowRepeats; + break; case 'table-row': if ($childNode->hasAttributeNS($tableNs, 'number-rows-repeated')) { diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php index ad898ae41..f8eaf39d0 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php @@ -151,7 +151,7 @@ public function scan($xml) throw new Reader\Exception('Detected use of ENTITY in XML, spreadsheet file load() aborted to prevent XXE/XEE attacks'); } - if ($this->callback !== null && is_callable($this->callback)) { + if ($this->callback !== null) { $xml = call_user_func($this->callback, $xml); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php index f35e8c3b2..816e7698d 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php @@ -430,7 +430,7 @@ public function __construct() */ public function canRead(string $filename): bool { - if (!File::testFileNoThrow($filename)) { + if (File::testFileNoThrow($filename) === false) { return false; } @@ -440,6 +440,9 @@ public function canRead(string $filename): bool // get excel data $ole->read($filename); + if ($ole->wrkbook === null) { + throw new Exception('The filename ' . $filename . ' is not recognised as a Spreadsheet file'); + } return true; } catch (PhpSpreadsheetException $e) { @@ -449,7 +452,7 @@ public function canRead(string $filename): bool public function setCodepage(string $codepage): void { - if (!CodePage::validate($codepage)) { + if (CodePage::validate($codepage) === false) { throw new PhpSpreadsheetException('Unknown codepage: ' . $codepage); } @@ -1097,7 +1100,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet // treat OBJ records foreach ($this->objs as $n => $obj) { // the first shape container never has a corresponding OBJ record, hence $n + 1 - if (isset($allSpContainers[$n + 1]) && is_object($allSpContainers[$n + 1])) { + if (isset($allSpContainers[$n + 1])) { $spContainer = $allSpContainers[$n + 1]; // we skip all spContainers that are a part of a group shape since we cannot yet handle those diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php index bf8908470..1c33fd681 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php @@ -16,6 +16,7 @@ use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\PageSetup; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Properties as PropertyReader; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\SharedFormula; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\SheetViewOptions; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\SheetViews; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Styles; @@ -61,6 +62,11 @@ class Xlsx extends BaseReader /** @var Styles */ private $styleReader; + /** + * @var array + */ + private $sharedFormulae = []; + /** * Create a new Xlsx Reader instance. */ @@ -128,7 +134,7 @@ private function loadZip(string $filename, string $ns = '', bool $replaceUnclose if ($replaceUnclosedBr) { $contents = str_replace('
', '
', $contents); } - $rels = simplexml_load_string( + $rels = @simplexml_load_string( $this->getSecurityScannerOrThrow()->scan($contents), 'SimpleXMLElement', Settings::getLibXmlLoaderOptions(), @@ -246,6 +252,7 @@ public function listWorksheetInfo($filename) $xmlWorkbook = $this->loadZip($relTarget, $mainNS); if ($xmlWorkbook->sheets) { $dir = dirname($relTarget); + /** @var SimpleXMLElement $eleSheet */ foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { $tmpInfo = [ @@ -261,8 +268,8 @@ public function listWorksheetInfo($filename) $xml = new XMLReader(); $xml->xml( - $this->getSecurityScannerOrThrow()->scanFile( - 'zip://' . File::realpath($filename) . '#' . $fileWorksheetPath + $this->getSecurityScannerOrThrow()->scan( + $this->getFromZipArchive($this->zip, $fileWorksheetPath) ), null, Settings::getLibXmlLoaderOptions() @@ -324,13 +331,13 @@ private static function castToString(?SimpleXMLElement $c): ?string * @param mixed $value * @param mixed $calculatedValue */ - private function castToFormula(?SimpleXMLElement $c, string $r, string &$cellDataType, &$value, &$calculatedValue, array &$sharedFormulas, string $castBaseType): void + private function castToFormula(?SimpleXMLElement $c, string $r, string &$cellDataType, &$value, &$calculatedValue, string $castBaseType, bool $updateSharedCells = true): void { if ($c === null) { return; } $attr = $c->f->attributes(); - $cellDataType = 'f'; + $cellDataType = DataType::TYPE_FORMULA; $value = "={$c->f}"; $calculatedValue = self::$castBaseType($c); @@ -338,17 +345,19 @@ private function castToFormula(?SimpleXMLElement $c, string $r, string &$cellDat if (isset($attr['t']) && strtolower((string) $attr['t']) == 'shared') { $instance = (string) $attr['si']; - if (!isset($sharedFormulas[(string) $attr['si']])) { - $sharedFormulas[$instance] = ['master' => $r, 'formula' => $value]; - } else { - $master = Coordinate::indexesFromString($sharedFormulas[$instance]['master']); + if (!isset($this->sharedFormulae[(string) $attr['si']])) { + $this->sharedFormulae[$instance] = new SharedFormula($r, $value); + } elseif ($updateSharedCells === true) { + // It's only worth the overhead of adjusting the shared formula for this cell if we're actually loading + // the cell, which may not be the case if we're using a read filter. + $master = Coordinate::indexesFromString($this->sharedFormulae[$instance]->master()); $current = Coordinate::indexesFromString($r); $difference = [0, 0]; $difference[0] = $current[0] - $master[0]; $difference[1] = $current[1] - $master[1]; - $value = $this->referenceHelper->updateFormulaReferences($sharedFormulas[$instance]['formula'], 'A1', $difference[0], $difference[1]); + $value = $this->referenceHelper->updateFormulaReferences($this->sharedFormulae[$instance]->formula(), 'A1', $difference[0], $difference[1]); } } } @@ -395,12 +404,18 @@ private function getFromZipArchive(ZipArchive $archive, $fileName = '') // Sadly, some 3rd party xlsx generators don't use consistent case for filenaming // so we need to load case-insensitively from the zip file - // Apache POI fixes $contents = $archive->getFromName($fileName, 0, ZipArchive::FL_NOCASE); + + // Apache POI fixes if ($contents === false) { $contents = $archive->getFromName(substr($fileName, 1), 0, ZipArchive::FL_NOCASE); } + // Has the file been saved with Windoze directory separators rather than unix? + if ($contents === false) { + $contents = $archive->getFromName(str_replace('/', '\\', $fileName), 0, ZipArchive::FL_NOCASE); + } + return ($contents === false) ? '' : $contents; } @@ -447,6 +462,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $colourScheme = self::getAttributes($xmlTheme->themeElements->clrScheme); $colourSchemeName = (string) $colourScheme['name']; + $excel->getTheme()->setThemeColorName($colourSchemeName); $colourScheme = $xmlTheme->themeElements->clrScheme->children($drawingNS); $themeColours = []; @@ -458,14 +474,46 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet if (isset($xmlColour->sysClr)) { $xmlColourData = self::getAttributes($xmlColour->sysClr); $themeColours[$themePos] = (string) $xmlColourData['lastClr']; + $excel->getTheme()->setThemeColor($k, (string) $xmlColourData['lastClr']); } elseif (isset($xmlColour->srgbClr)) { $xmlColourData = self::getAttributes($xmlColour->srgbClr); $themeColours[$themePos] = (string) $xmlColourData['val']; + $excel->getTheme()->setThemeColor($k, (string) $xmlColourData['val']); } } $theme = new Theme($themeName, $colourSchemeName, $themeColours); $this->styleReader->setTheme($theme); + $fontScheme = self::getAttributes($xmlTheme->themeElements->fontScheme); + $fontSchemeName = (string) $fontScheme['name']; + $excel->getTheme()->setThemeFontName($fontSchemeName); + $majorFonts = []; + $minorFonts = []; + $fontScheme = $xmlTheme->themeElements->fontScheme->children($drawingNS); + $majorLatin = self::getAttributes($fontScheme->majorFont->latin)['typeface'] ?? ''; + $majorEastAsian = self::getAttributes($fontScheme->majorFont->ea)['typeface'] ?? ''; + $majorComplexScript = self::getAttributes($fontScheme->majorFont->cs)['typeface'] ?? ''; + $minorLatin = self::getAttributes($fontScheme->minorFont->latin)['typeface'] ?? ''; + $minorEastAsian = self::getAttributes($fontScheme->minorFont->ea)['typeface'] ?? ''; + $minorComplexScript = self::getAttributes($fontScheme->minorFont->cs)['typeface'] ?? ''; + + foreach ($fontScheme->majorFont->font as $xmlFont) { + $fontAttributes = self::getAttributes($xmlFont); + $script = (string) ($fontAttributes['script'] ?? ''); + if (!empty($script)) { + $majorFonts[$script] = (string) ($fontAttributes['typeface'] ?? ''); + } + } + foreach ($fontScheme->minorFont->font as $xmlFont) { + $fontAttributes = self::getAttributes($xmlFont); + $script = (string) ($fontAttributes['script'] ?? ''); + if (!empty($script)) { + $minorFonts[$script] = (string) ($fontAttributes['typeface'] ?? ''); + } + } + $excel->getTheme()->setMajorFontValues($majorLatin, $majorEastAsian, $majorComplexScript, $majorFonts); + $excel->getTheme()->setMinorFontValues($minorLatin, $minorEastAsian, $minorComplexScript, $minorFonts); + break; } } @@ -477,6 +525,10 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet foreach ($rels->Relationship as $relx) { $rel = self::getAttributes($relx); $relTarget = (string) $rel['Target']; + // issue 3553 + if ($relTarget[0] === '/') { + $relTarget = substr($relTarget, 1); + } $relType = (string) $rel['Type']; $mainNS = self::REL_TO_MAIN[$relType] ?? Namespaces::MAIN; switch ($relType) { @@ -507,26 +559,6 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $relsWorkbook = $this->loadZip("$dir/_rels/" . basename($relTarget) . '.rels', ''); $relsWorkbook->registerXPathNamespace('rel', Namespaces::RELATIONSHIPS); - $sharedStrings = []; - $relType = "rel:Relationship[@Type='" - //. Namespaces::SHARED_STRINGS - . "$xmlNamespaceBase/sharedStrings" - . "']"; - $xpath = self::getArrayItem($relsWorkbook->xpath($relType)); - - if ($xpath) { - $xmlStrings = $this->loadZip("$dir/$xpath[Target]", $mainNS); - if (isset($xmlStrings->si)) { - foreach ($xmlStrings->si as $val) { - if (isset($val->t)) { - $sharedStrings[] = StringHelper::controlCharacterOOXML2PHP((string) $val->t); - } elseif (isset($val->r)) { - $sharedStrings[] = $this->parseRichText($val); - } - } - } - } - $worksheets = []; $macros = $customUI = null; foreach ($relsWorkbook->Relationship as $elex) { @@ -618,7 +650,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $numFmt = NumberFormat::builtInFormatCode((int) $xf['numFmtId']); } } - $quotePrefix = (bool) ($xf['quotePrefix'] ?? false); + $quotePrefix = (bool) (string) ($xf['quotePrefix'] ?? ''); $style = (object) [ 'numFmt' => $numFmt ?? NumberFormat::FORMAT_GENERAL, @@ -653,7 +685,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet } } - $quotePrefix = (bool) ($xf['quotePrefix'] ?? false); + $quotePrefix = (bool) (string) ($xf['quotePrefix'] ?? ''); $cellStyle = (object) [ 'numFmt' => $numFmt, @@ -682,6 +714,27 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $dxfs = $this->styleReader->dxfs($this->readDataOnly); $styles = $this->styleReader->styles(); + // Read content after setting the styles + $sharedStrings = []; + $relType = "rel:Relationship[@Type='" + //. Namespaces::SHARED_STRINGS + . "$xmlNamespaceBase/sharedStrings" + . "']"; + $xpath = self::getArrayItem($relsWorkbook->xpath($relType)); + + if ($xpath) { + $xmlStrings = $this->loadZip("$dir/$xpath[Target]", $mainNS); + if (isset($xmlStrings->si)) { + foreach ($xmlStrings->si as $val) { + if (isset($val->t)) { + $sharedStrings[] = StringHelper::controlCharacterOOXML2PHP((string) $val->t); + } elseif (isset($val->r)) { + $sharedStrings[] = $this->parseRichText($val); + } + } + } + } + $xmlWorkbook = $this->loadZipNoNamespace($relTarget, $mainNS); $xmlWorkbookNS = $this->loadZip($relTarget, $mainNS); @@ -743,7 +796,8 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $xmlSheet = $this->loadZipNoNamespace("$dir/$fileWorksheet", $mainNS); $xmlSheetNS = $this->loadZip("$dir/$fileWorksheet", $mainNS); - $sharedFormulas = []; + // Shared Formula table is unique to each Worksheet, so we need to reset it here + $this->sharedFormulae = []; if (isset($eleSheetAttr['state']) && (string) $eleSheetAttr['state'] != '') { $docSheet->setSheetState((string) $eleSheetAttr['state']); @@ -789,8 +843,12 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $coordinates = Coordinate::coordinateFromString($r); if (!$this->getReadFilter()->readCell($coordinates[0], (int) $coordinates[1], $docSheet->getTitle())) { - if (isset($cAttr->f)) { - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); + // Normally, just testing for the f attribute should identify this cell as containing a formula + // that we need to read, even though it is outside of the filter range, in case it is a shared formula. + // But in some cases, this attribute isn't set; so we need to delve a level deeper and look at + // whether or not the cell has a child formula element that is shared. + if (isset($cAttr->f) || (isset($c->f, $c->f->attributes()['t']) && strtolower((string) $c->f->attributes()['t']) === 'shared')) { + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToError', false); } ++$rowIndex; @@ -822,7 +880,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet } } else { // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToBoolean'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToBoolean'); if (isset($c->f['t'])) { $att = $c->f; $docSheet->getCell($r)->setFormulaAttributes($att); @@ -832,7 +890,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet break; case 'inlineStr': if (isset($c->f)) { - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToError'); } else { $value = $this->parseRichText($c->is); } @@ -843,7 +901,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $value = self::castToError($c); } else { // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToError'); } break; @@ -852,7 +910,7 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $value = self::castToString($c); } else { // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToString'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToString'); if (isset($c->f['t'])) { $attributes = $c->f['t']; $docSheet->getCell($r)->setFormulaAttributes(['t' => (string) $attributes]); @@ -891,6 +949,10 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet // no style index means 0, it seems $cell->setXfIndex(isset($styles[(int) ($cAttr['s'])]) ? (int) ($cAttr['s']) : 0); + // issue 3495 + if ($cell->getDataType() === DataType::TYPE_FORMULA) { + $cell->getStyle()->setQuotePrefix(false); + } } } ++$rowIndex; @@ -898,6 +960,12 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet ++$cIndex; } } + if ($xmlSheetNS && $xmlSheetNS->ignoredErrors) { + foreach ($xmlSheetNS->ignoredErrors->ignoredError as $ignoredErrorx) { + $ignoredError = self::testSimpleXml($ignoredErrorx); + $this->processIgnoredErrors($ignoredError, $docSheet); + } + } if (!$this->readDataOnly && $xmlSheetNS && $xmlSheetNS->sheetProtection) { $protAttr = $xmlSheetNS->sheetProtection->attributes() ?? []; @@ -2205,4 +2273,48 @@ private static function extractPalette(?SimpleXMLElement $sxml): array return $array; } + + private function processIgnoredErrors(SimpleXMLElement $xml, Worksheet $sheet): void + { + $attributes = self::getAttributes($xml); + $sqref = (string) ($attributes['sqref'] ?? ''); + $numberStoredAsText = (string) ($attributes['numberStoredAsText'] ?? ''); + $formula = (string) ($attributes['formula'] ?? ''); + $twoDigitTextYear = (string) ($attributes['twoDigitTextYear'] ?? ''); + $evalError = (string) ($attributes['evalError'] ?? ''); + if (!empty($sqref)) { + $explodedSqref = explode(' ', $sqref); + $pattern1 = '/^([A-Z]{1,3})([0-9]{1,7})(:([A-Z]{1,3})([0-9]{1,7}))?$/'; + foreach ($explodedSqref as $sqref1) { + if (preg_match($pattern1, $sqref1, $matches) === 1) { + $firstRow = $matches[2]; + $firstCol = $matches[1]; + if (array_key_exists(3, $matches)) { + $lastCol = $matches[4]; + $lastRow = $matches[5]; + } else { + $lastCol = $firstCol; + $lastRow = $firstRow; + } + ++$lastCol; + for ($row = $firstRow; $row <= $lastRow; ++$row) { + for ($col = $firstCol; $col !== $lastCol; ++$col) { + if ($numberStoredAsText === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setNumberStoredAsText(true); + } + if ($formula === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setFormula(true); + } + if ($twoDigitTextYear === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setTwoDigitTextYear(true); + } + if ($evalError === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setEvalError(true); + } + } + } + } + } + } + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php index 5230cf0d7..c5a59f558 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php @@ -4,6 +4,7 @@ use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError; use PhpOffice\PhpSpreadsheet\Chart\Axis; +use PhpOffice\PhpSpreadsheet\Chart\AxisText; use PhpOffice\PhpSpreadsheet\Chart\ChartColor; use PhpOffice\PhpSpreadsheet\Chart\DataSeries; use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; @@ -76,16 +77,28 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) $yAxis = new Axis(); $autoTitleDeleted = null; $chartNoFill = false; + $chartBorderLines = null; + $chartFillColor = null; $gradientArray = []; $gradientLin = null; $roundedCorners = false; + $gapWidth = null; + $useUpBars = null; + $useDownBars = null; foreach ($chartElementsC as $chartElementKey => $chartElement) { switch ($chartElementKey) { case 'spPr': - $possibleNoFill = $chartElementsC->spPr->children($this->aNamespace); - if (isset($possibleNoFill->noFill)) { + $children = $chartElementsC->spPr->children($this->aNamespace); + if (isset($children->noFill)) { $chartNoFill = true; } + if (isset($children->solidFill)) { + $chartFillColor = $this->readColor($children->solidFill); + } + if (isset($children->ln)) { + $chartBorderLines = new GridLines(); + $this->readLineStyle($chartElementsC, $chartBorderLines); + } break; case 'roundedCorners': @@ -157,6 +170,9 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) $axisColorArray = $this->readColor($sppr->solidFill); $xAxis->setFillParameters($axisColorArray['value'], $axisColorArray['alpha'], $axisColorArray['type']); } + if (isset($chartDetail->spPr->ln->noFill)) { + $xAxis->setNoFill(true); + } } if (isset($chartDetail->majorGridlines)) { $majorGridlines = new GridLines(); @@ -227,6 +243,9 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) $axisColorArray = $this->readColor($sppr->solidFill); $whichAxis->setFillParameters($axisColorArray['value'], $axisColorArray['alpha'], $axisColorArray['type']); } + if (isset($sppr->ln->noFill)) { + $whichAxis->setNoFill(true); + } } if ($whichAxis !== null && isset($chartDetail->majorGridlines)) { $majorGridlines = new GridLines(); @@ -316,6 +335,15 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) break; case 'stockChart': $plotSeries[] = $this->chartDataSeries($chartDetail, $chartDetailKey); + if (isset($chartDetail->upDownBars->gapWidth)) { + $gapWidth = self::getAttribute($chartDetail->upDownBars->gapWidth, 'val', 'integer'); + } + if (isset($chartDetail->upDownBars->upBars)) { + $useUpBars = true; + } + if (isset($chartDetail->upDownBars->downBars)) { + $useDownBars = true; + } $plotAttributes = $this->readChartAttributes($chartDetail); break; @@ -332,6 +360,15 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) if (!empty($gradientArray)) { $plotArea->setGradientFillProperties($gradientArray, $gradientLin); } + if (is_int($gapWidth)) { + $plotArea->setGapWidth($gapWidth); + } + if ($useUpBars === true) { + $plotArea->setUseUpBars(true); + } + if ($useDownBars === true) { + $plotArea->setUseDownBars(true); + } break; case 'plotVisOnly': @@ -350,6 +387,10 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) $legendPos = 'r'; $legendLayout = null; $legendOverlay = false; + $legendBorderLines = null; + $legendFillColor = null; + $legendText = null; + $addLegendText = false; foreach ($chartDetails as $chartDetailKey => $chartDetail) { $chartDetail = Xlsx::testSimpleXml($chartDetail); switch ($chartDetailKey) { @@ -364,10 +405,45 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) case 'layout': $legendLayout = $this->chartLayoutDetails($chartDetail); + break; + case 'spPr': + $children = $chartDetails->spPr->children($this->aNamespace); + if (isset($children->solidFill)) { + $legendFillColor = $this->readColor($children->solidFill); + } + if (isset($children->ln)) { + $legendBorderLines = new GridLines(); + $this->readLineStyle($chartDetails, $legendBorderLines); + } + + break; + case 'txPr': + $children = $chartDetails->txPr->children($this->aNamespace); + $addLegendText = false; + $legendText = new AxisText(); + if (isset($children->p->pPr->defRPr->solidFill)) { + $colorArray = $this->readColor($children->p->pPr->defRPr->solidFill); + $legendText->getFillColorObject()->setColorPropertiesArray($colorArray); + $addLegendText = true; + } + if (isset($children->p->pPr->defRPr->effectLst)) { + $this->readEffects($children->p->pPr->defRPr, $legendText, false); + $addLegendText = true; + } + break; } } $legend = new Legend("$legendPos", $legendLayout, (bool) $legendOverlay); + if ($legendFillColor !== null) { + $legend->getFillColor()->setColorPropertiesArray($legendFillColor); + } + if ($legendBorderLines !== null) { + $legend->setBorderLines($legendBorderLines); + } + if ($addLegendText) { + $legend->setLegendText($legendText); + } break; } @@ -378,6 +454,12 @@ public function readChart(SimpleXMLElement $chartElements, $chartName) if ($chartNoFill) { $chart->setNoFill(true); } + if ($chartFillColor !== null) { + $chart->getFillColor()->setColorPropertiesArray($chartFillColor); + } + if ($chartBorderLines !== null) { + $chart->setBorderLines($chartBorderLines); + } $chart->setRoundedCorners($roundedCorners); if (is_bool($autoTitleDeleted)) { $chart->setAutoTitleDeleted($autoTitleDeleted); @@ -1082,6 +1164,37 @@ private function parseRichText(SimpleXMLElement $titleDetailPart): RichText return $value; } + private function parseFont(SimpleXMLElement $titleDetailPart): ?Font + { + if (!isset($titleDetailPart->pPr->defRPr)) { + return null; + } + $fontArray = []; + $fontArray['size'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'sz', 'integer'); + $fontArray['bold'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'b', 'boolean'); + $fontArray['italic'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'i', 'boolean'); + $fontArray['underscore'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'u', 'string'); + $fontArray['strikethrough'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'strike', 'string'); + + if (isset($titleDetailPart->pPr->defRPr->latin)) { + $fontArray['latin'] = self::getAttribute($titleDetailPart->pPr->defRPr->latin, 'typeface', 'string'); + } + if (isset($titleDetailPart->pPr->defRPr->ea)) { + $fontArray['eastAsian'] = self::getAttribute($titleDetailPart->pPr->defRPr->ea, 'typeface', 'string'); + } + if (isset($titleDetailPart->pPr->defRPr->cs)) { + $fontArray['complexScript'] = self::getAttribute($titleDetailPart->pPr->defRPr->cs, 'typeface', 'string'); + } + if (isset($titleDetailPart->pPr->defRPr->solidFill)) { + $fontArray['chartColor'] = new ChartColor($this->readColor($titleDetailPart->pPr->defRPr->solidFill)); + } + $font = new Font(); + $font->setSize(null, true); + $font->applyFromArray($fontArray); + + return $font; + } + /** * @param ?SimpleXMLElement $chartDetail */ @@ -1128,8 +1241,13 @@ private function readChartAttributes($chartDetail): array } if (isset($chartDetail->dLbls->txPr)) { $txpr = $chartDetail->dLbls->txPr->children($this->aNamespace); - if (isset($txpr->p->pPr->defRPr->solidFill)) { - $plotAttributes['labelFontColor'] = new ChartColor($this->readColor($txpr->p->pPr->defRPr->solidFill)); + if (isset($txpr->p)) { + $plotAttributes['labelFont'] = $this->parseFont($txpr->p); + if (isset($txpr->p->pPr->defRPr->effectLst)) { + $labelEffects = new GridLines(); + $this->readEffects($txpr->p->pPr->defRPr, $labelEffects, false); + $plotAttributes['labelEffects'] = $labelEffects; + } } } } @@ -1176,13 +1294,19 @@ private function setChartAttributes(Layout $plotArea, $plotAttributes): void } } - private function readEffects(SimpleXMLElement $chartDetail, ?ChartProperties $chartObject): void + private function readEffects(SimpleXMLElement $chartDetail, ?ChartProperties $chartObject, bool $getSppr = true): void { - if (!isset($chartObject, $chartDetail->spPr)) { + if (!isset($chartObject)) { return; } - $sppr = $chartDetail->spPr->children($this->aNamespace); - + if ($getSppr) { + if (!isset($chartDetail->spPr)) { + return; + } + $sppr = $chartDetail->spPr->children($this->aNamespace); + } else { + $sppr = $chartDetail; + } if (isset($sppr->effectLst->glow)) { $axisGlowSize = (float) self::getAttribute($sppr->effectLst->glow, 'rad', 'integer') / ChartProperties::POINTS_WIDTH_MULTIPLIER; if ($axisGlowSize != 0.0) { @@ -1412,13 +1536,30 @@ private function setAxisProperties(SimpleXMLElement $chartDetail, ?Axis $whichAx } if (isset($chartDetail->txPr)) { $children = $chartDetail->txPr->children($this->aNamespace); + $addAxisText = false; + $axisText = new AxisText(); if (isset($children->bodyPr)) { /** @var string */ $textRotation = self::getAttribute($children->bodyPr, 'rot', 'string'); if (is_numeric($textRotation)) { - $whichAxis->setAxisOption('textRotation', (string) ChartProperties::xmlToAngle($textRotation)); + $axisText->setRotation((int) ChartProperties::xmlToAngle($textRotation)); + $addAxisText = true; + } + } + if (isset($children->p->pPr->defRPr)) { + $font = $this->parseFont($children->p); + if ($font !== null) { + $axisText->setFont($font); + $addAxisText = true; } } + if (isset($children->p->pPr->defRPr->effectLst)) { + $this->readEffects($children->p->pPr->defRPr, $axisText, false); + $addAxisText = true; + } + if ($addAxisText) { + $whichAxis->setAxisText($axisText); + } } } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php index dac76230c..210c322f9 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php @@ -22,6 +22,18 @@ public function __construct(Worksheet $workSheet, SimpleXMLElement $worksheetXml public function load(): void { + foreach ($this->worksheetXml->dataValidations->dataValidation as $dataValidation) { + // Uppercase coordinate + $range = strtoupper((string) $dataValidation['sqref']); + $rangeSet = explode(' ', $range); + foreach ($rangeSet as $range) { + if (preg_match('/^[A-Z]{1,3}\\d{1,7}/', $range, $matches) === 1) { + // Ensure left/top row of range exists, thereby + // adjusting high row/column. + $this->worksheet->getCell($matches[0]); + } + } + } foreach ($this->worksheetXml->dataValidations->dataValidation as $dataValidation) { // Uppercase coordinate $range = strtoupper((string) $dataValidation['sqref']); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php index 72addffd5..0d4701afa 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php @@ -73,6 +73,9 @@ public function readExtendedProperties(string $propertyData): void if (isset($xmlCore->Manager)) { $this->docProps->setManager((string) $xmlCore->Manager); } + if (isset($xmlCore->HyperlinkBase)) { + $this->docProps->setHyperlinkBase((string) $xmlCore->HyperlinkBase); + } } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php new file mode 100644 index 000000000..fb7a39320 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php @@ -0,0 +1,26 @@ +master = $master; + $this->formula = $formula; + } + + public function master(): string + { + return $this->master; + } + + public function formula(): string + { + return $this->formula; + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php index 705b319e7..5a360fda1 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php @@ -136,6 +136,10 @@ public function readFontStyle(Font $fontStyle, SimpleXMLElement $fontStyleXml): } } } + if (isset($fontStyleXml->scheme)) { + $attr = $this->getStyleAttributes($fontStyleXml->scheme); + $fontStyle->setScheme((string) $attr['val']); + } } private function readNumberFormat(NumberFormat $numfmtStyle, SimpleXMLElement $numfmtStyleXml): void @@ -253,10 +257,14 @@ private function readBorder(Border $border, SimpleXMLElement $borderXml): void public function readAlignmentStyle(Alignment $alignment, SimpleXMLElement $alignmentXml): void { - $horizontal = $this->getAttribute($alignmentXml, 'horizontal'); - $alignment->setHorizontal($horizontal); - $vertical = $this->getAttribute($alignmentXml, 'vertical'); - $alignment->setVertical((string) $vertical); + $horizontal = (string) $this->getAttribute($alignmentXml, 'horizontal'); + if ($horizontal !== '') { + $alignment->setHorizontal($horizontal); + } + $vertical = (string) $this->getAttribute($alignmentXml, 'vertical'); + if ($vertical !== '') { + $alignment->setVertical($vertical); + } $textRotation = (int) $this->getAttribute($alignmentXml, 'textRotation'); if ($textRotation > 90) { diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php index 9cce7003f..6be26fc2c 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php @@ -9,6 +9,7 @@ use PhpOffice\PhpSpreadsheet\Cell\DataType; use PhpOffice\PhpSpreadsheet\DefinedName; use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Reader\Xml\PageSettings; use PhpOffice\PhpSpreadsheet\Reader\Xml\Properties; use PhpOffice\PhpSpreadsheet\Reader\Xml\Style; @@ -26,6 +27,8 @@ */ class Xml extends BaseReader { + public const NAMESPACES_SS = 'urn:schemas-microsoft-com:office:spreadsheet'; + /** * Formats. * @@ -146,11 +149,9 @@ public function listWorksheetNames($filename) throw new Exception("Problem reading {$filename}"); } - $namespaces = $xml->getNamespaces(true); - - $xml_ss = $xml->children($namespaces['ss']); + $xml_ss = $xml->children(self::NAMESPACES_SS); foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = self::getAttributes($worksheet, $namespaces['ss']); + $worksheet_ss = self::getAttributes($worksheet, self::NAMESPACES_SS); $worksheetNames[] = (string) $worksheet_ss['Name']; } @@ -178,12 +179,10 @@ public function listWorksheetInfo($filename) throw new Exception("Problem reading {$filename}"); } - $namespaces = $xml->getNamespaces(true); - $worksheetID = 1; - $xml_ss = $xml->children($namespaces['ss']); + $xml_ss = $xml->children(self::NAMESPACES_SS); foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = self::getAttributes($worksheet, $namespaces['ss']); + $worksheet_ss = self::getAttributes($worksheet, self::NAMESPACES_SS); $tmpInfo = []; $tmpInfo['worksheetName'] = ''; @@ -231,6 +230,19 @@ public function listWorksheetInfo($filename) return $worksheetInfo; } + /** + * Loads Spreadsheet from string. + */ + public function loadSpreadsheetFromString(string $contents): Spreadsheet + { + // Create new Spreadsheet + $spreadsheet = new Spreadsheet(); + $spreadsheet->removeSheetByIndex(0); + + // Load into this instance + return $this->loadIntoExisting($contents, $spreadsheet, true); + } + /** * Loads Spreadsheet from file. */ @@ -245,17 +257,19 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet } /** - * Loads from file into Spreadsheet instance. - * - * @param string $filename + * Loads from file or contents into Spreadsheet instance. * - * @return Spreadsheet + * @param string $filename file name if useContents is false else file contents */ - public function loadIntoExisting($filename, Spreadsheet $spreadsheet) + public function loadIntoExisting(string $filename, Spreadsheet $spreadsheet, bool $useContents = false): Spreadsheet { - File::assertFile($filename); - if (!$this->canRead($filename)) { - throw new Exception($filename . ' is an Invalid Spreadsheet file.'); + if ($useContents) { + $this->fileContents = $filename; + } else { + File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an Invalid Spreadsheet file.'); + } } $xml = $this->trySimpleXMLLoadString($filename); @@ -268,14 +282,17 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) (new Properties($spreadsheet))->readProperties($xml, $namespaces); $this->styles = (new Style())->parseStyles($xml, $namespaces); + if (isset($this->styles['Default'])) { + $spreadsheet->getCellXfCollection()[0]->applyFromArray($this->styles['Default']); + } $worksheetID = 0; - $xml_ss = $xml->children($namespaces['ss']); + $xml_ss = $xml->children(self::NAMESPACES_SS); /** @var null|SimpleXMLElement $worksheetx */ foreach ($xml_ss->Worksheet as $worksheetx) { $worksheet = $worksheetx ?? new SimpleXMLElement(''); - $worksheet_ss = self::getAttributes($worksheet, $namespaces['ss']); + $worksheet_ss = self::getAttributes($worksheet, self::NAMESPACES_SS); if ( isset($this->loadSheetsOnly, $worksheet_ss['Name']) && @@ -295,11 +312,15 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) // the worksheet name in line with the formula, not the reverse $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false); } + if (isset($worksheet_ss['Protected'])) { + $protection = (string) $worksheet_ss['Protected'] === '1'; + $spreadsheet->getActiveSheet()->getProtection()->setSheet($protection); + } // locally scoped defined names if (isset($worksheet->Names[0])) { foreach ($worksheet->Names[0] as $definedName) { - $definedName_ss = self::getAttributes($definedName, $namespaces['ss']); + $definedName_ss = self::getAttributes($definedName, self::NAMESPACES_SS); $name = (string) $definedName_ss['Name']; $definedValue = (string) $definedName_ss['RefersTo']; $convertedValue = AddressHelper::convertFormulaToA1($definedValue); @@ -313,15 +334,35 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) $columnID = 'A'; if (isset($worksheet->Table->Column)) { foreach ($worksheet->Table->Column as $columnData) { - $columnData_ss = self::getAttributes($columnData, $namespaces['ss']); + $columnData_ss = self::getAttributes($columnData, self::NAMESPACES_SS); + $colspan = 0; + if (isset($columnData_ss['Span'])) { + $spanAttr = (string) $columnData_ss['Span']; + if (is_numeric($spanAttr)) { + $colspan = max(0, (int) $spanAttr); + } + } if (isset($columnData_ss['Index'])) { $columnID = Coordinate::stringFromColumnIndex((int) $columnData_ss['Index']); } + $columnWidth = null; if (isset($columnData_ss['Width'])) { $columnWidth = $columnData_ss['Width']; - $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); } - ++$columnID; + $columnVisible = null; + if (isset($columnData_ss['Hidden'])) { + $columnVisible = ((string) $columnData_ss['Hidden']) !== '1'; + } + while ($colspan >= 0) { + if (isset($columnWidth)) { + $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); + } + if (isset($columnVisible)) { + $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setVisible($columnVisible); + } + ++$columnID; + --$colspan; + } } } @@ -330,14 +371,18 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) $additionalMergedCells = 0; foreach ($worksheet->Table->Row as $rowData) { $rowHasData = false; - $row_ss = self::getAttributes($rowData, $namespaces['ss']); + $row_ss = self::getAttributes($rowData, self::NAMESPACES_SS); if (isset($row_ss['Index'])) { $rowID = (int) $row_ss['Index']; } + if (isset($row_ss['Hidden'])) { + $rowVisible = ((string) $row_ss['Hidden']) !== '1'; + $spreadsheet->getActiveSheet()->getRowDimension($rowID)->setVisible($rowVisible); + } $columnID = 'A'; foreach ($rowData->Cell as $cell) { - $cell_ss = self::getAttributes($cell, $namespaces['ss']); + $cell_ss = self::getAttributes($cell, self::NAMESPACES_SS); if (isset($cell_ss['Index'])) { $columnID = Coordinate::stringFromColumnIndex((int) $cell_ss['Index']); } @@ -379,7 +424,7 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) $cellData = $cell->Data; $cellValue = (string) $cellData; $type = DataType::TYPE_NULL; - $cellData_ss = self::getAttributes($cellData, $namespaces['ss']); + $cellData_ss = self::getAttributes($cellData, self::NAMESPACES_SS); if (isset($cellData_ss['Type'])) { $cellDataType = $cellData_ss['Type']; switch ($cellDataType) { @@ -437,7 +482,7 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) } if (isset($cell->Comment)) { - $this->parseCellComment($cell->Comment, $namespaces, $spreadsheet, $columnID, $rowID); + $this->parseCellComment($cell->Comment, $spreadsheet, $columnID, $rowID); } if (isset($cell_ss['StyleID'])) { @@ -466,11 +511,57 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) ++$rowID; } + } - if (isset($namespaces['x'])) { - $xmlX = $worksheet->children($namespaces['x']); - if (isset($xmlX->WorksheetOptions)) { - (new PageSettings($xmlX, $namespaces))->loadPageSettings($spreadsheet); + $dataValidations = new Xml\DataValidations(); + $dataValidations->loadDataValidations($worksheet, $spreadsheet); + $xmlX = $worksheet->children(Namespaces::URN_EXCEL); + if (isset($xmlX->WorksheetOptions)) { + if (isset($xmlX->WorksheetOptions->FreezePanes)) { + $freezeRow = $freezeColumn = 1; + if (isset($xmlX->WorksheetOptions->SplitHorizontal)) { + $freezeRow = (int) $xmlX->WorksheetOptions->SplitHorizontal + 1; + } + if (isset($xmlX->WorksheetOptions->SplitVertical)) { + $freezeColumn = (int) $xmlX->WorksheetOptions->SplitVertical + 1; + } + $spreadsheet->getActiveSheet()->freezePane(Coordinate::stringFromColumnIndex($freezeColumn) . (string) $freezeRow); + } + (new PageSettings($xmlX))->loadPageSettings($spreadsheet); + if (isset($xmlX->WorksheetOptions->TopRowVisible, $xmlX->WorksheetOptions->LeftColumnVisible)) { + $leftTopRow = (string) $xmlX->WorksheetOptions->TopRowVisible; + $leftTopColumn = (string) $xmlX->WorksheetOptions->LeftColumnVisible; + if (is_numeric($leftTopRow) && is_numeric($leftTopColumn)) { + $leftTopCoordinate = Coordinate::stringFromColumnIndex((int) $leftTopColumn + 1) . (string) ($leftTopRow + 1); + $spreadsheet->getActiveSheet()->setTopLeftCell($leftTopCoordinate); + } + } + $rangeCalculated = false; + if (isset($xmlX->WorksheetOptions->Panes->Pane->RangeSelection)) { + if (1 === preg_match('/^R(\d+)C(\d+):R(\d+)C(\d+)$/', (string) $xmlX->WorksheetOptions->Panes->Pane->RangeSelection, $selectionMatches)) { + $selectedCell = Coordinate::stringFromColumnIndex((int) $selectionMatches[2]) + . $selectionMatches[1] + . ':' + . Coordinate::stringFromColumnIndex((int) $selectionMatches[4]) + . $selectionMatches[3]; + $spreadsheet->getActiveSheet()->setSelectedCells($selectedCell); + $rangeCalculated = true; + } + } + if (!$rangeCalculated) { + if (isset($xmlX->WorksheetOptions->Panes->Pane->ActiveRow)) { + $activeRow = (string) $xmlX->WorksheetOptions->Panes->Pane->ActiveRow; + } else { + $activeRow = 0; + } + if (isset($xmlX->WorksheetOptions->Panes->Pane->ActiveCol)) { + $activeColumn = (string) $xmlX->WorksheetOptions->Panes->Pane->ActiveCol; + } else { + $activeColumn = 0; + } + if (is_numeric($activeRow) && is_numeric($activeColumn)) { + $selectedCell = Coordinate::stringFromColumnIndex((int) $activeColumn + 1) . (string) ($activeRow + 1); + $spreadsheet->getActiveSheet()->setSelectedCells($selectedCell); } } } @@ -478,10 +569,14 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) } // Globally scoped defined names - $activeWorksheet = $spreadsheet->setActiveSheetIndex(0); + $activeSheetIndex = 0; + if (isset($xml->ExcelWorkbook->ActiveSheet)) { + $activeSheetIndex = (int) (string) $xml->ExcelWorkbook->ActiveSheet; + } + $activeWorksheet = $spreadsheet->setActiveSheetIndex($activeSheetIndex); if (isset($xml->Names[0])) { foreach ($xml->Names[0] as $definedName) { - $definedName_ss = self::getAttributes($definedName, $namespaces['ss']); + $definedName_ss = self::getAttributes($definedName, self::NAMESPACES_SS); $name = (string) $definedName_ss['Name']; $definedValue = (string) $definedName_ss['RefersTo']; $convertedValue = AddressHelper::convertFormulaToA1($definedValue); @@ -498,12 +593,11 @@ public function loadIntoExisting($filename, Spreadsheet $spreadsheet) protected function parseCellComment( SimpleXMLElement $comment, - array $namespaces, Spreadsheet $spreadsheet, string $columnID, int $rowID ): void { - $commentAttributes = $comment->attributes($namespaces['ss']); + $commentAttributes = $comment->attributes(self::NAMESPACES_SS); $author = 'unknown'; if (isset($commentAttributes->Author)) { $author = (string) $commentAttributes->Author; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php new file mode 100644 index 000000000..31748cb9c --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php @@ -0,0 +1,177 @@ + DataValidation::OPERATOR_BETWEEN, + 'equal' => DataValidation::OPERATOR_EQUAL, + 'greater' => DataValidation::OPERATOR_GREATERTHAN, + 'greaterorequal' => DataValidation::OPERATOR_GREATERTHANOREQUAL, + 'less' => DataValidation::OPERATOR_LESSTHAN, + 'lessorequal' => DataValidation::OPERATOR_LESSTHANOREQUAL, + 'notbetween' => DataValidation::OPERATOR_NOTBETWEEN, + 'notequal' => DataValidation::OPERATOR_NOTEQUAL, + ]; + + private const TYPE_MAPPINGS = [ + 'textlength' => DataValidation::TYPE_TEXTLENGTH, + ]; + + private int $thisRow = 0; + + private int $thisColumn = 0; + + private function replaceR1C1(array $matches): string + { + return AddressHelper::convertToA1($matches[0], $this->thisRow, $this->thisColumn, false); + } + + public function loadDataValidations(SimpleXMLElement $worksheet, Spreadsheet $spreadsheet): void + { + $xmlX = $worksheet->children(Namespaces::URN_EXCEL); + $sheet = $spreadsheet->getActiveSheet(); + /** @var callable */ + $pregCallback = [$this, 'replaceR1C1']; + foreach ($xmlX->DataValidation as $dataValidation) { + $cells = []; + $validation = new DataValidation(); + + // set defaults + $validation->setShowDropDown(true); + $validation->setShowInputMessage(true); + $validation->setShowErrorMessage(true); + $validation->setShowDropDown(true); + $this->thisRow = 1; + $this->thisColumn = 1; + + foreach ($dataValidation as $tagName => $tagValue) { + $tagValue = (string) $tagValue; + $tagValueLower = strtolower($tagValue); + switch ($tagName) { + case 'Range': + foreach (explode(',', $tagValue) as $range) { + $cell = ''; + if (preg_match('/^R(\d+)C(\d+):R(\d+)C(\d+)$/', (string) $range, $selectionMatches) === 1) { + // range + $firstCell = Coordinate::stringFromColumnIndex((int) $selectionMatches[2]) + . $selectionMatches[1]; + $cell = $firstCell + . ':' + . Coordinate::stringFromColumnIndex((int) $selectionMatches[4]) + . $selectionMatches[3]; + $this->thisRow = (int) $selectionMatches[1]; + $this->thisColumn = (int) $selectionMatches[2]; + $sheet->getCell($firstCell); + } elseif (preg_match('/^R(\d+)C(\d+)$/', (string) $range, $selectionMatches) === 1) { + // cell + $cell = Coordinate::stringFromColumnIndex((int) $selectionMatches[2]) + . $selectionMatches[1]; + $sheet->getCell($cell); + $this->thisRow = (int) $selectionMatches[1]; + $this->thisColumn = (int) $selectionMatches[2]; + } elseif (preg_match('/^C(\d+)$/', (string) $range, $selectionMatches) === 1) { + // column + $firstCell = Coordinate::stringFromColumnIndex((int) $selectionMatches[1]) + . '1'; + $cell = $firstCell + . ':' + . Coordinate::stringFromColumnIndex((int) $selectionMatches[1]) + . ((string) AddressRange::MAX_ROW); + $this->thisColumn = (int) $selectionMatches[1]; + $sheet->getCell($firstCell); + } elseif (preg_match('/^R(\d+)$/', (string) $range, $selectionMatches)) { + // row + $firstCell = 'A' + . $selectionMatches[1]; + $cell = $firstCell + . ':' + . AddressRange::MAX_COLUMN + . $selectionMatches[1]; + $this->thisRow = (int) $selectionMatches[1]; + $sheet->getCell($firstCell); + } + + $validation->setSqref($cell); + $stRange = $sheet->shrinkRangeToFit($cell); + $cells = array_merge($cells, Coordinate::extractAllCellReferencesInRange($stRange)); + } + + break; + case 'Type': + $validation->setType(self::TYPE_MAPPINGS[$tagValueLower] ?? $tagValueLower); + + break; + case 'Qualifier': + $validation->setOperator(self::OPERATOR_MAPPINGS[$tagValueLower] ?? $tagValueLower); + + break; + case 'InputTitle': + $validation->setPromptTitle($tagValue); + + break; + case 'InputMessage': + $validation->setPrompt($tagValue); + + break; + case 'InputHide': + $validation->setShowInputMessage(false); + + break; + case 'ErrorStyle': + $validation->setErrorStyle($tagValueLower); + + break; + case 'ErrorTitle': + $validation->setErrorTitle($tagValue); + + break; + case 'ErrorMessage': + $validation->setError($tagValue); + + break; + case 'ErrorHide': + $validation->setShowErrorMessage(false); + + break; + case 'ComboHide': + $validation->setShowDropDown(false); + + break; + case 'UseBlank': + $validation->setAllowBlank(true); + + break; + case 'CellRangeList': + // FIXME missing FIXME + + break; + case 'Min': + case 'Value': + $tagValue = (string) preg_replace_callback(AddressHelper::R1C1_COORDINATE_REGEX, $pregCallback, $tagValue); + $validation->setFormula1($tagValue); + + break; + case 'Max': + $tagValue = (string) preg_replace_callback(AddressHelper::R1C1_COORDINATE_REGEX, $pregCallback, $tagValue); + $validation->setFormula2($tagValue); + + break; + } + } + + foreach ($cells as $cell) { + $sheet->getCell($cell)->setDataValidation(clone $validation); + } + } + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php index 39535c3e7..137cabaf3 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Reader\Xml; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup; use SimpleXMLElement; @@ -14,9 +15,9 @@ class PageSettings */ private $printSettings; - public function __construct(SimpleXMLElement $xmlX, array $namespaces) + public function __construct(SimpleXMLElement $xmlX) { - $printSettings = $this->pageSetup($xmlX, $namespaces, $this->getPrintDefaults()); + $printSettings = $this->pageSetup($xmlX, $this->getPrintDefaults()); $this->printSettings = $this->printSetup($xmlX, $printSettings); } @@ -56,13 +57,13 @@ private function getPrintDefaults(): stdClass ]; } - private function pageSetup(SimpleXMLElement $xmlX, array $namespaces, stdClass $printDefaults): stdClass + private function pageSetup(SimpleXMLElement $xmlX, stdClass $printDefaults): stdClass { if (isset($xmlX->WorksheetOptions->PageSetup)) { foreach ($xmlX->WorksheetOptions->PageSetup as $pageSetupData) { foreach ($pageSetupData as $pageSetupKey => $pageSetupValue) { /** @scrutinizer ignore-call */ - $pageSetupAttributes = $pageSetupValue->attributes($namespaces['x']); + $pageSetupAttributes = $pageSetupValue->attributes(Namespaces::URN_EXCEL); if ($pageSetupAttributes !== null) { switch ($pageSetupKey) { case 'Layout': diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php index f0346ed02..e216c254d 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php @@ -92,6 +92,10 @@ protected function processStandardProperty( case 'Manager': $docProps->setManager($stringValue); + break; + case 'HyperlinkBase': + $docProps->setHyperlinkBase($stringValue); + break; case 'Keywords': $docProps->setKeywords($stringValue); @@ -110,17 +114,10 @@ protected function processCustomProperty( ?SimpleXMLElement $propertyValue, SimpleXMLElement $propertyAttributes ): void { - $propertyType = DocumentProperties::PROPERTY_TYPE_UNKNOWN; - switch ((string) $propertyAttributes) { - case 'string': - $propertyType = DocumentProperties::PROPERTY_TYPE_STRING; - $propertyValue = trim((string) $propertyValue); - - break; case 'boolean': $propertyType = DocumentProperties::PROPERTY_TYPE_BOOLEAN; - $propertyValue = (bool) $propertyValue; + $propertyValue = (bool) (string) $propertyValue; break; case 'integer': @@ -134,9 +131,15 @@ protected function processCustomProperty( break; case 'dateTime.tz': + case 'dateTime.iso8601tz': $propertyType = DocumentProperties::PROPERTY_TYPE_DATE; $propertyValue = trim((string) $propertyValue); + break; + default: + $propertyType = DocumentProperties::PROPERTY_TYPE_STRING; + $propertyValue = trim((string) $propertyValue); + break; } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php index 774fffe8b..698acf6ac 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Reader\Xml; +use PhpOffice\PhpSpreadsheet\Style\Protection; use SimpleXMLElement; class Style @@ -30,7 +31,7 @@ public function parseStyles(SimpleXMLElement $xml, array $namespaces): array $styleID = (string) $style_ss['ID']; $this->styles[$styleID] = $this->styles['Default'] ?? []; - $alignment = $border = $font = $fill = $numberFormat = []; + $alignment = $border = $font = $fill = $numberFormat = $protection = []; foreach ($style as $styleType => $styleDatax) { $styleData = self::getSxml($styleDatax); @@ -64,11 +65,31 @@ public function parseStyles(SimpleXMLElement $xml, array $namespaces): array $numberFormat = $numberFormatStyleParser->parseStyle($styleAttributes); } + break; + case 'Protection': + $locked = $hidden = null; + $styleAttributesP = $styleData->attributes($namespaces['x']); + if (isset($styleAttributes['Protected'])) { + $locked = ((bool) (string) $styleAttributes['Protected']) ? Protection::PROTECTION_PROTECTED : Protection::PROTECTION_UNPROTECTED; + } + if (isset($styleAttributesP['HideFormula'])) { + $hidden = ((bool) (string) $styleAttributesP['HideFormula']) ? Protection::PROTECTION_PROTECTED : Protection::PROTECTION_UNPROTECTED; + } + if ($locked !== null || $hidden !== null) { + $protection['protection'] = []; + if ($locked !== null) { + $protection['protection']['locked'] = $locked; + } + if ($hidden !== null) { + $protection['protection']['hidden'] = $hidden; + } + } + break; } } - $this->styles[$styleID] = array_merge($alignment, $border, $font, $fill, $numberFormat); + $this->styles[$styleID] = array_merge($alignment, $border, $font, $fill, $numberFormat, $protection); } return $this->styles; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php index 16ab44d80..5f824889a 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php @@ -56,11 +56,11 @@ public function parseStyle(SimpleXMLElement $styleAttributes): array break; case 'Bold': - $style['font']['bold'] = true; + $style['font']['bold'] = $styleAttributeValue === '1'; break; case 'Italic': - $style['font']['italic'] = true; + $style['font']['italic'] = $styleAttributeValue === '1'; break; case 'Underline': diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php index b4d4d52af..90eee534d 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php @@ -75,14 +75,11 @@ public static function columnSort($a, $b) * * @return int */ - public static function columnReverseSort($a, $b) + public static function columnReverseSort(string $a, string $b) { return -strcasecmp(strlen($a) . $a, strlen($b) . $b); } - /** @var int */ - private static $scrutinizer0 = 0; - /** * Compare two cell addresses * Intended for use as a Callback function for sorting cell addresses by column and row. @@ -92,16 +89,16 @@ public static function columnReverseSort($a, $b) * * @return int */ - public static function cellSort($a, $b) + public static function cellSort(string $a, string $b) { - $ac = $bc = ''; - $ar = self::$scrutinizer0; - $br = 0; + /** @scrutinizer be-damned */ sscanf($a, '%[A-Z]%d', $ac, $ar); + /** @var int $ar */ + /** @var string $ac */ + /** @scrutinizer be-damned */ sscanf($b, '%[A-Z]%d', $bc, $br); - - $ac = (string) $ac; - $bc = (string) $bc; + /** @var int $br */ + /** @var string $bc */ if ($ar === $br) { return strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); } @@ -118,16 +115,16 @@ public static function cellSort($a, $b) * * @return int */ - public static function cellReverseSort($a, $b) + public static function cellReverseSort(string $a, string $b) { - $ac = $bc = ''; - $ar = self::$scrutinizer0; - $br = 0; + /** @scrutinizer be-damned */ sscanf($a, '%[A-Z]%d', $ac, $ar); + /** @var int $ar */ + /** @var string $ac */ + /** @scrutinizer be-damned */ sscanf($b, '%[A-Z]%d', $bc, $br); - - $ac = (string) $ac; - $bc = (string) $bc; + /** @var int $br */ + /** @var string $bc */ if ($ar === $br) { return -strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); } @@ -142,7 +139,7 @@ public static function cellReverseSort($a, $b) * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustPageBreaks(Worksheet $worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustPageBreaks(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aBreaks = $worksheet->getBreaks(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -171,7 +168,7 @@ protected function adjustPageBreaks(Worksheet $worksheet, $numberOfColumns, $num * * @param Worksheet $worksheet The worksheet that we're editing */ - protected function adjustComments($worksheet): void + protected function adjustComments(Worksheet $worksheet): void { $aComments = $worksheet->getComments(); $aNewComments = []; // the new array of all comments @@ -195,7 +192,7 @@ protected function adjustComments($worksheet): void * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustHyperlinks($worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustHyperlinks(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aHyperlinkCollection = $worksheet->getHyperlinkCollection(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -220,7 +217,7 @@ protected function adjustHyperlinks($worksheet, $numberOfColumns, $numberOfRows) * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustConditionalFormatting($worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustConditionalFormatting(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aStyles = $worksheet->getConditionalStylesCollection(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -259,7 +256,7 @@ protected function adjustConditionalFormatting($worksheet, $numberOfColumns, $nu * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustDataValidations(Worksheet $worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustDataValidations(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aDataValidationCollection = $worksheet->getDataValidationCollection(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -299,7 +296,7 @@ protected function adjustMergeCells(Worksheet $worksheet): void * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustProtectedCells(Worksheet $worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustProtectedCells(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aProtectedCells = $worksheet->getProtectedCells(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -412,7 +409,7 @@ public function insertNewBefore( $cellCollection = $worksheet->getCellCollection(); $missingCoordinates = array_filter( array_map(function ($row) use ($highestColumn) { - return $highestColumn . $row; + return "{$highestColumn}{$row}"; }, range(1, $highestRow)), function ($coordinate) use ($cellCollection) { return $cellCollection->has($coordinate) === false; @@ -453,9 +450,9 @@ function ($coordinate) use ($cellCollection) { if ($cell->getDataType() === DataType::TYPE_FORMULA) { // Formula should be adjusted $worksheet->getCell($newCoordinate) - ->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle())); + ->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true)); } else { - // Formula should not be adjusted + // Cell value should not be adjusted $worksheet->getCell($newCoordinate)->setValueExplicit($cell->getValue(), $cell->getDataType()); } @@ -463,10 +460,10 @@ function ($coordinate) use ($cellCollection) { $worksheet->getCellCollection()->delete($coordinate); } else { /* We don't need to update styles for rows/columns before our insertion position, - but we do still need to adjust any formulae in those cells */ + but we do still need to adjust any formulae in those cells */ if ($cell->getDataType() === DataType::TYPE_FORMULA) { // Formula should be adjusted - $cell->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle())); + $cell->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true)); } } } @@ -609,7 +606,7 @@ public function updateFormulaReferences( // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more $column = 100000; $row = 10000000 + (int) trim($match[3], '$'); - $cellIndex = $column . $row; + $cellIndex = "{$column}{$row}"; $newCellTokens[$cellIndex] = preg_quote($toString, '/'); $cellTokens[$cellIndex] = '/(?getValue(); $asFormula = ($cellAddress[0] === '='); if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) { + /** + * If we delete the entire range that is referenced by a Named Range, MS Excel sets the value to #REF! + * PhpSpreadsheet still only does a basic adjustment, so the Named Range will still reference Cells. + * Note that this applies only when deleting columns/rows; subsequent insertion won't fix the #REF! + * TODO Can we work out a method to identify Named Ranges that cease to be valid, so that we can replace + * them with a #REF! + */ if ($asFormula === true) { - $formula = $this->updateFormulaReferences($cellAddress, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle()); + $formula = $this->updateFormulaReferences($cellAddress, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true); $definedName->setValue($formula); } else { - $definedName->setValue($this->updateCellReference(ltrim($cellAddress, '='))); + $definedName->setValue($this->updateCellReference(ltrim($cellAddress, '='), true)); } } } @@ -929,8 +933,15 @@ private function updateNamedRange(DefinedName $definedName, Worksheet $worksheet private function updateNamedFormula(DefinedName $definedName, Worksheet $worksheet, string $beforeCellAddress, int $numberOfColumns, int $numberOfRows): void { if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) { + /** + * If we delete the entire range that is referenced by a Named Formula, MS Excel sets the value to #REF! + * PhpSpreadsheet still only does a basic adjustment, so the Named Formula will still reference Cells. + * Note that this applies only when deleting columns/rows; subsequent insertion won't fix the #REF! + * TODO Can we work out a method to identify Named Ranges that cease to be valid, so that we can replace + * them with a #REF! + */ $formula = $definedName->getValue(); - $formula = $this->updateFormulaReferences($formula, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle()); + $formula = $this->updateFormulaReferences($formula, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true); $definedName->setValue($formula); } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php index 23733436b..ee693a2b3 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php @@ -47,7 +47,7 @@ public function setText($text) } /** - * Get font. + * Get font. For this class, the return value is always null. * * @return null|\PhpOffice\PhpSpreadsheet\Style\Font */ diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php index 0baf44637..d8007fd00 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php @@ -155,7 +155,7 @@ public static function getLibXmlDisableEntityLoader(): bool /** * Sets the implementation of cache that should be used for cell collection. */ - public static function setCache(CacheInterface $cache): void + public static function setCache(?CacheInterface $cache): void { self::$cache = $cache; } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php index 26dde93f3..4f1967311 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php @@ -184,7 +184,7 @@ public static function convertIsoDate($value) throw new Exception("Invalid string $value supplied for datatype Date"); } - if (preg_match('/^\\d\\d:\\d\\d:\\d\\d/', $value) == 1) { + if (preg_match('/^\\s*\\d?\\d:\\d\\d(:\\d\\d([.]\\d+)?)?\\s*(am|pm)?\\s*$/i', $value) == 1) { $newValue = fmod($newValue, 1.0); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php index f2fe8caa8..737a6eb59 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php @@ -156,7 +156,11 @@ public static function assertFile(string $filename, string $zipMember = ''): voi if ($zipMember !== '') { $zipfile = "zip://$filename#$zipMember"; if (!self::fileExists($zipfile)) { - throw new ReaderException("Could not find zip member $zipfile"); + // Has the file been saved with Windoze directory separators rather than unix? + $zipfile = "zip://$filename#" . str_replace('/', '\\', $zipMember); + if (!self::fileExists($zipfile)) { + throw new ReaderException("Could not find zip member $zipfile"); + } } } } @@ -180,6 +184,14 @@ public static function testFileNoThrow(string $filename, ?string $zipMember = nu return self::validateZipFirst4($filename); } - return self::fileExists("zip://$filename#$zipMember"); + $zipfile = "zip://$filename#$zipMember"; + if (self::fileExists($zipfile)) { + return true; + } + + // Has the file been saved with Windoze directory separators rather than unix? + $zipfile = "zip://$filename#" . str_replace('/', '\\', $zipMember); + + return self::fileExists($zipfile); } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php index aa3512ae3..90c1992a3 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php @@ -380,15 +380,15 @@ public static function calculateColumnWidth( $approximate = self::$autoSizeMethod === self::AUTOSIZE_METHOD_APPROX; $columnWidth = 0; if (!$approximate) { - $columnWidthAdjust = ceil( - self::getTextWidthPixelsExact( - str_repeat('n', 1 * (($filterAdjustment ? 3 : 1) + ($indentAdjustment * 2))), - $font, - 0 - ) * 1.07 - ); - try { + $columnWidthAdjust = ceil( + self::getTextWidthPixelsExact( + str_repeat('n', 1 * (($filterAdjustment ? 3 : 1) + ($indentAdjustment * 2))), + $font, + 0 + ) * 1.07 + ); + // Width of text in pixels excl. padding // and addition because Excel adds some padding, just use approx width of 'n' glyph $columnWidth = self::getTextWidthPixelsExact($cellText, $font, $rotation) + $columnWidthAdjust; @@ -453,29 +453,26 @@ public static function getTextWidthPixelsApprox($columnText, FontStyle $font, $r $fontName = $font->getName(); $fontSize = $font->getSize(); - // Calculate column width in pixels. We assume fixed glyph width. Result varies with font name and size. + // Calculate column width in pixels. + // We assume fixed glyph width, but count double for "fullwidth" characters. + // Result varies with font name and size. switch ($fontName) { - case 'Calibri': - // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font. - $columnWidth = (int) (8.26 * StringHelper::countCharacters($columnText)); - $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size - - break; case 'Arial': // value 8 was set because of experience in different exports at Arial 10 font. - $columnWidth = (int) (8 * StringHelper::countCharacters($columnText)); + $columnWidth = (int) (8 * StringHelper::countCharactersDbcs($columnText)); $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size break; case 'Verdana': // value 8 was found via interpolation by inspecting real Excel files with Verdana 10 font. - $columnWidth = (int) (8 * StringHelper::countCharacters($columnText)); + $columnWidth = (int) (8 * StringHelper::countCharactersDbcs($columnText)); $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size break; default: // just assume Calibri - $columnWidth = (int) (8.26 * StringHelper::countCharacters($columnText)); + // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font. + $columnWidth = (int) (8.26 * StringHelper::countCharactersDbcs($columnText)); $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size break; @@ -564,10 +561,13 @@ public static function getTrueTypeFontFileFromFont(FontStyle $font, bool $checkP if (mb_strlen(self::$trueTypeFontPath) > 1 && mb_substr(self::$trueTypeFontPath, -1) !== '/' && mb_substr(self::$trueTypeFontPath, -1) !== '\\') { $separator = DIRECTORY_SEPARATOR; } - $fontFile = self::$trueTypeFontPath . $separator . $fontFile; + $fontFileAbsolute = preg_match('~^([A-Za-z]:)?[/\\\\]~', $fontFile) === 1; + if (!$fontFileAbsolute) { + $fontFile = self::$trueTypeFontPath . $separator . $fontFile; + } // Check if file actually exists - if ($checkPath && !file_exists($fontFile)) { + if ($checkPath && !file_exists($fontFile) && !$fontFileAbsolute) { $alternateName = $name; if ($index !== 'x' && $fontArray[$name][$index] !== $fontArray[$name]['x']) { // Bold but no italic: diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php index c61ee2594..5d5babc3f 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php @@ -6,6 +6,9 @@ class ChainedBlockStream { + /** @var mixed */ + public $context; + /** * The OLE container of the file that is being read. * @@ -160,7 +163,7 @@ public function stream_seek($offset, $whence) // @codingStandardsIgnoreLine $this->pos = $offset; } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) { $this->pos += $offset; - // @phpstan-ignore-next-line + // @phpstan-ignore-next-line } elseif ($whence == SEEK_END && -$offset <= count(/** @scrutinizer ignore-type */ $this->data)) { $this->pos = strlen($this->data) + $offset; } else { diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php index 3d952a9c8..fcc963953 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php @@ -134,7 +134,7 @@ public function read(string $filename): void $bbdBlocks = $this->numBigBlockDepotBlocks; - if ($this->numExtensionBlocks != 0) { + if ($this->numExtensionBlocks !== 0) { $bbdBlocks = (self::BIG_BLOCK_SIZE - self::BIG_BLOCK_DEPOT_BLOCKS_POS) / 4; } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php index 30bd8c5fd..c6c198e20 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php @@ -451,6 +451,18 @@ public static function countCharacters(string $textValue, string $encoding = 'UT return mb_strlen($textValue, $encoding); } + /** + * Get character count using mb_strwidth rather than mb_strlen. + * + * @param string $encoding Encoding + * + * @return int Character count + */ + public static function countCharactersDbcs(string $textValue, string $encoding = 'UTF-8'): int + { + return mb_strwidth($textValue, $encoding); + } + /** * Get a substring of a UTF-8 encoded string. * diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php index b94609af7..117848c77 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php @@ -105,7 +105,6 @@ public static function calculate($trendType = self::TREND_BEST_FIT, $yValues = [ $className = '\PhpOffice\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit'; //* @phpstan-ignore-next-line $bestFit[$trendMethod] = new $className($yValues, $xValues, $const); - //* @phpstan-ignore-next-line $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); } if ($trendType != self::TREND_BEST_FIT_NO_POLY) { diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php index f0744cd27..110908550 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php @@ -203,6 +203,14 @@ class Spreadsheet implements JsonSerializable */ private $tabRatio = 600; + /** @var Theme */ + private $theme; + + public function getTheme(): Theme + { + return $this->theme; + } + /** * The workbook has macros ? * @@ -476,6 +484,7 @@ public function __construct() { $this->uniqueID = uniqid('', true); $this->calculationEngine = new Calculation($this); + $this->theme = new Theme(); // Initialise worksheet collection and add one worksheet $this->workSheetCollection = []; @@ -1654,4 +1663,26 @@ public function jsonSerialize(): mixed { throw new Exception('Spreadsheet objects cannot be json encoded'); } + + public function resetThemeFonts(): void + { + $majorFontLatin = $this->theme->getMajorFontLatin(); + $minorFontLatin = $this->theme->getMinorFontLatin(); + foreach ($this->cellXfCollection as $cellStyleXf) { + $scheme = $cellStyleXf->getFont()->getScheme(); + if ($scheme === 'major') { + $cellStyleXf->getFont()->setName($majorFontLatin)->setScheme($scheme); + } elseif ($scheme === 'minor') { + $cellStyleXf->getFont()->setName($minorFontLatin)->setScheme($scheme); + } + } + foreach ($this->cellStyleXfCollection as $cellStyleXf) { + $scheme = $cellStyleXf->getFont()->getScheme(); + if ($scheme === 'major') { + $cellStyleXf->getFont()->setName($majorFontLatin)->setScheme($scheme); + } elseif ($scheme === 'minor') { + $cellStyleXf->getFont()->setName($minorFontLatin)->setScheme($scheme); + } + } + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php index 3c002b270..282defc0c 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php @@ -362,23 +362,8 @@ public static function changeBrightness($hexColourValue, $adjustPercentage) $green = self::getGreen($hexColourValue, false); /** @var int $blue */ $blue = self::getBlue($hexColourValue, false); - if ($adjustPercentage > 0) { - $red += (255 - $red) * $adjustPercentage; - $green += (255 - $green) * $adjustPercentage; - $blue += (255 - $blue) * $adjustPercentage; - } else { - $red += $red * $adjustPercentage; - $green += $green * $adjustPercentage; - $blue += $blue * $adjustPercentage; - } - - $rgb = strtoupper( - str_pad(dechex((int) $red), 2, '0', 0) . - str_pad(dechex((int) $green), 2, '0', 0) . - str_pad(dechex((int) $blue), 2, '0', 0) - ); - return (($rgba) ? 'FF' : '') . $rgb; + return (($rgba) ? 'FF' : '') . RgbTint::rgbAndTintToRgb($red, $green, $blue, $adjustPercentage); } /** diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php index de565d345..36069b00c 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php @@ -248,7 +248,7 @@ public function getConditions() /** * Set Conditions. * - * @param bool|float|int|string|(bool|float|int|string)[] $conditions Condition + * @param (bool|float|int|string)[]|bool|float|int|string $conditions Condition * * @return $this */ diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php index 3d7bc1bce..a8eeaa986 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php @@ -107,6 +107,9 @@ class Font extends Supervisor */ public $colorIndex; + /** @var string */ + protected $scheme = ''; + /** * Create a new Font. * @@ -231,6 +234,12 @@ public function applyFromArray(array $styleArray) if (isset($styleArray['size'])) { $this->setSize($styleArray['size']); } + if (isset($styleArray['chartColor'])) { + $this->chartColor = $styleArray['chartColor']; + } + if (isset($styleArray['scheme'])) { + $this->setScheme($styleArray['scheme']); + } } return $this; @@ -278,13 +287,11 @@ public function getComplexScript(): string } /** - * Set Name. + * Set Name and turn off Scheme. * * @param string $fontname - * - * @return $this */ - public function setName($fontname) + public function setName($fontname): self { if ($fontname == '') { $fontname = 'Calibri'; @@ -296,7 +303,7 @@ public function setName($fontname) $this->name = $fontname; } - return $this; + return $this->setScheme(''); } public function setLatin(string $fontname): self @@ -634,6 +641,13 @@ public function setChartColor(array $colorArray): self return $this; } + public function setChartColorFromObject(?ChartColor $chartColor): self + { + $this->chartColor = $chartColor; + + return $this; + } + /** * Get Underline. * @@ -774,6 +788,7 @@ public function getHashCode() $this->underline . ($this->strikethrough ? 't' : 'f') . $this->color->getHashCode() . + $this->scheme . implode( '*', [ @@ -802,6 +817,7 @@ protected function exportArray1(): array $this->exportArray2($exportedArray, 'italic', $this->getItalic()); $this->exportArray2($exportedArray, 'latin', $this->getLatin()); $this->exportArray2($exportedArray, 'name', $this->getName()); + $this->exportArray2($exportedArray, 'scheme', $this->getScheme()); $this->exportArray2($exportedArray, 'size', $this->getSize()); $this->exportArray2($exportedArray, 'strikethrough', $this->getStrikethrough()); $this->exportArray2($exportedArray, 'strikeType', $this->getStrikeType()); @@ -812,4 +828,27 @@ protected function exportArray1(): array return $exportedArray; } + + public function getScheme(): string + { + if ($this->isSupervisor) { + return $this->getSharedComponent()->getScheme(); + } + + return $this->scheme; + } + + public function setScheme(string $scheme): self + { + if ($scheme === '' || $scheme === 'major' || $scheme === 'minor') { + if ($this->isSupervisor) { + $styleArray = $this->getStyleArray(['scheme' => $scheme]); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->scheme = $scheme; + } + } + + return $this; + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php index de3666ae1..41a17151d 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php @@ -3,6 +3,7 @@ namespace PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Calculation\Calculation; +use PhpOffice\PhpSpreadsheet\Reader\Xls\Color\BIFF8; use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\Style\Color; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; @@ -67,14 +68,19 @@ private static function splitFormatForSectionSelection(array $sections, $value): // 3 sections: [POSITIVE/TEXT] [NEGATIVE] [ZERO] // 4 sections: [POSITIVE] [NEGATIVE] [ZERO] [TEXT] $sectionCount = count($sections); - $color_regex = '/\\[(' . implode('|', Color::NAMED_COLORS) . ')\\]/mui'; + // Colour could be a named colour, or a numeric index entry in the colour-palette + $color_regex = '/\\[(' . implode('|', Color::NAMED_COLORS) . '|color\\s*(\\d+))\\]/mui'; $cond_regex = '/\\[(>|>=|<|<=|=|<>)([+-]?\\d+([.]\\d+)?)\\]/'; $colors = ['', '', '', '', '']; $conditionOperations = ['', '', '', '', '']; $conditionComparisonValues = [0, 0, 0, 0, 0]; for ($idx = 0; $idx < $sectionCount; ++$idx) { if (preg_match($color_regex, $sections[$idx], $matches)) { - $colors[$idx] = $matches[0]; + if (isset($matches[2])) { + $colors[$idx] = '#' . BIFF8::lookup((int) $matches[2] + 7)['rgb']; + } else { + $colors[$idx] = $matches[0]; + } $sections[$idx] = (string) preg_replace($color_regex, '', $sections[$idx]); } if (preg_match($cond_regex, $sections[$idx], $matches)) { @@ -170,10 +176,11 @@ function ($matches) { $format = (string) preg_replace('/_.?/ui', ' ', $format); // Let's begin inspecting the format and converting the value to a formatted string - // Check for date/time characters (not inside quotes) if ( - (preg_match('/(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy](?=(?:[^"]|"[^"]*")*$)/miu', $format)) && - (preg_match('/0(?![^\[]*\])/miu', $format) === 0) + // Check for date/time characters (not inside quotes) + (preg_match('/(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy](?=(?:[^"]|"[^"]*")*$)/miu', $format)) + // A date/time with a decimal time shouldn't have a digit placeholder before the decimal point + && (preg_match('/[0\?#]\.(?![^\[]*\])/miu', $format) === 0) ) { // datetime format $value = DateFormatter::format($value, $format); @@ -194,8 +201,6 @@ function ($matches) { $value = $writerInstance->$function($value, $colors); } - $value = str_replace(chr(0x00), '.', $value); - - return $value; + return str_replace(chr(0x00), '.', $value); } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php index a138ab7f1..c30028601 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php @@ -89,13 +89,13 @@ public function format(): string ( $this->currencySymbolPosition === self::LEADING_SYMBOL && $this->currencySymbolSpacing === self::SYMBOL_WITH_SPACING - ) ? ' ' : '', + ) ? "\u{a0}" : '', $this->thousandsSeparator ? '#,##' : null, $this->decimals > 0 ? '.' . str_repeat('0', $this->decimals) : null, ( $this->currencySymbolPosition === self::TRAILING_SYMBOL && $this->currencySymbolSpacing === self::SYMBOL_WITH_SPACING - ) ? ' ' : '', + ) ? "\u{a0}" : '', $this->currencySymbolPosition === self::TRAILING_SYMBOL ? $this->formatCurrencyCode() : null ); } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php new file mode 100644 index 000000000..61ac117b7 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php @@ -0,0 +1,125 @@ +separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + } + + private function mapFormatBlocks(string $value): string + { + // Any date masking codes are returned as lower case values + if (in_array(mb_strtolower($value), self::DATE_BLOCKS, true)) { + return mb_strtolower($value); + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php new file mode 100644 index 000000000..292c1efc9 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php @@ -0,0 +1,50 @@ + + */ + protected array $formatBlocks; + + /** + * @param null|string|string[] $separators + * If you want to use only a single format block, then pass a null as the separator argument + * @param DateTimeWizard|string ...$formatBlocks + */ + public function __construct($separators, ...$formatBlocks) + { + $this->separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + } + + /** + * @param DateTimeWizard|string $value + */ + private function mapFormatBlocks($value): string + { + // Any date masking codes are returned as lower case values + if (is_object($value)) { + // We can't explicitly test for Stringable until PHP >= 8.0 + return $value; + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php new file mode 100644 index 000000000..b14a6190f --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php @@ -0,0 +1,44 @@ += "; + + protected function padSeparatorArray(array $separators, int $count): array + { + $lastSeparator = array_pop($separators); + + return $separators + array_fill(0, $count, $lastSeparator); + } + + protected function escapeSingleCharacter(string $value): string + { + if (strpos(self::NO_ESCAPING_NEEDED, $value) !== false) { + return $value; + } + + return "\\{$value}"; + } + + protected function wrapLiteral(string $value): string + { + if (mb_strlen($value, 'UTF-8') === 1) { + return $this->escapeSingleCharacter($value); + } + + // Wrap any other string literals in quotes, so that they're clearly defined as string literals + return '"' . str_replace('"', '""', $value) . '"'; + } + + protected function intersperse(string $formatBlock, ?string $separator): string + { + return "{$formatBlock}{$separator}"; + } + + public function __toString(): string + { + return $this->format(); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php new file mode 100644 index 000000000..b81f77acb --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php @@ -0,0 +1,153 @@ + self::DAYS_DURATION, + self::HOURS_DURATION => self::HOURS_SHORT, + self::MINUTES_DURATION => self::MINUTES_LONG, + self::SECONDS_DURATION => self::SECONDS_LONG, + ]; + + protected const DURATION_DEFAULTS = [ + self::HOURS_LONG => self::HOURS_DURATION, + self::HOURS_SHORT => self::HOURS_DURATION, + self::MINUTES_LONG => self::MINUTES_DURATION, + self::MINUTES_SHORT => self::MINUTES_DURATION, + self::SECONDS_LONG => self::SECONDS_DURATION, + self::SECONDS_SHORT => self::SECONDS_DURATION, + ]; + + public const SEPARATOR_COLON = ':'; + public const SEPARATOR_SPACE_NONBREAKING = "\u{a0}"; + public const SEPARATOR_SPACE = ' '; + + public const DURATION_DEFAULT = [ + self::HOURS_DURATION, + self::MINUTES_LONG, + self::SECONDS_LONG, + ]; + + /** + * @var string[] + */ + protected array $separators; + + /** + * @var string[] + */ + protected array $formatBlocks; + + protected bool $durationIsSet = false; + + /** + * @param null|string|string[] $separators + * If you want to use the same separator for all format blocks, then it can be passed as a string literal; + * if you wish to use different separators, then they should be passed as an array. + * If you want to use only a single format block, then pass a null as the separator argument + */ + public function __construct($separators = self::SEPARATOR_COLON, string ...$formatBlocks) + { + $separators ??= self::SEPARATOR_COLON; + $formatBlocks = (count($formatBlocks) === 0) ? self::DURATION_DEFAULT : $formatBlocks; + + $this->separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + + if ($this->durationIsSet === false) { + // We need at least one duration mask, so if none has been set we change the first mask element + // to a duration. + $this->formatBlocks[0] = self::DURATION_DEFAULTS[mb_strtolower($this->formatBlocks[0])]; + } + } + + private function mapFormatBlocks(string $value): string + { + // Any duration masking codes are returned as lower case values + if (in_array(mb_strtolower($value), self::DURATION_BLOCKS, true)) { + if (array_key_exists(mb_strtolower($value), self::DURATION_MASKS)) { + if ($this->durationIsSet) { + // We should only have a single duration mask, the first defined in the mask set, + // so convert any additional duration masks to standard time masks. + $value = self::DURATION_MASKS[mb_strtolower($value)]; + } + $this->durationIsSet = true; + } + + return mb_strtolower($value); + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php new file mode 100644 index 000000000..64b9104a6 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php @@ -0,0 +1,105 @@ +separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + } + + private function mapFormatBlocks(string $value): string + { + // Any date masking codes are returned as lower case values + // except for AM/PM, which is set to uppercase + if (in_array(mb_strtolower($value), self::TIME_BLOCKS, true)) { + return mb_strtolower($value); + } elseif (mb_strtoupper($value) === self::MORNING_AFTERNOON) { + return mb_strtoupper($value); + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php new file mode 100644 index 000000000..582ae4839 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php @@ -0,0 +1,175 @@ += 0.0) ? $hue : (1.0 + $hue); + } + + /** + * Convert red/green/blue to HLSMAX-based hue/luminance/saturation. + * + * @return int[] + */ + private static function rgbToMsHls(int $red, int $green, int $blue): array + { + $red01 = $red / self::RGBMAX; + $green01 = $green / self::RGBMAX; + $blue01 = $blue / self::RGBMAX; + [$hue, $luminance, $saturation] = self::rgbToHls($red01, $green01, $blue01); + + return [ + (int) round($hue * self::HLSMAX), + (int) round($luminance * self::HLSMAX), + (int) round($saturation * self::HLSMAX), + ]; + } + + /** + * Converts HLSMAX based HLS values to rgb values in the range (0,1). + * + * @return float[] + */ + private static function msHlsToRgb(int $hue, int $lightness, int $saturation): array + { + return self::hlsToRgb($hue / self::HLSMAX, $lightness / self::HLSMAX, $saturation / self::HLSMAX); + } + + /** + * Tints HLSMAX based luminance. + * + * @see http://ciintelligence.blogspot.co.uk/2012/02/converting-excel-theme-color-and-tint.html + */ + private static function tintLuminance(float $tint, float $luminance): int + { + if ($tint < 0) { + return (int) round($luminance * (1.0 + $tint)); + } + + return (int) round($luminance * (1.0 - $tint) + (self::HLSMAX - self::HLSMAX * (1.0 - $tint))); + } + + /** + * Return result of tinting supplied rgb as 6 hex digits. + */ + public static function rgbAndTintToRgb(int $red, int $green, int $blue, float $tint): string + { + [$hue, $luminance, $saturation] = self::rgbToMsHls($red, $green, $blue); + [$red, $green, $blue] = self::msHlsToRgb($hue, self::tintLuminance($tint, $luminance), $saturation); + + return sprintf( + '%02X%02X%02X', + (int) round($red * self::RGBMAX), + (int) round($green * self::RGBMAX), + (int) round($blue * self::RGBMAX) + ); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php index be70639eb..9309830bf 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php @@ -2,7 +2,10 @@ namespace PhpOffice\PhpSpreadsheet\Style; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Spreadsheet; class Style extends Supervisor @@ -122,7 +125,7 @@ public function __construct($isSupervisor = false, $isConditional = false) public function getSharedComponent(): self { $activeSheet = $this->getActiveSheet(); - $selectedCell = $this->getActiveCell(); // e.g. 'A1' + $selectedCell = Functions::trimSheetFromCellReference($this->getActiveCell()); // e.g. 'A1' if ($activeSheet->cellExists($selectedCell)) { $xfIndex = $activeSheet->getCell($selectedCell)->getXfIndex(); @@ -203,8 +206,15 @@ public function applyFromArray(array $styleArray, $advancedBorders = true) if ($this->isSupervisor) { $pRange = $this->getSelectedCells(); - // Uppercase coordinate + // Uppercase coordinate and strip any Worksheet reference from the selected range $pRange = strtoupper($pRange); + if (strpos($pRange, '!') !== false) { + $pRangeWorksheet = StringHelper::strToUpper(trim(substr($pRange, 0, (int) strrpos($pRange, '!')), "'")); + if ($pRangeWorksheet !== '' && StringHelper::strToUpper($this->getActiveSheet()->getTitle()) !== $pRangeWorksheet) { + throw new Exception('Invalid Worksheet for specified Range'); + } + $pRange = strtoupper(Functions::trimSheetFromCellReference($pRange)); + } // Is it a cell range or a single cell? if (strpos($pRange, ':') === false) { diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php new file mode 100644 index 000000000..ab101f01e --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php @@ -0,0 +1,269 @@ + '000000', + 'lt1' => 'FFFFFF', + 'dk2' => '44546A', + 'lt2' => 'E7E6E6', + 'accent1' => '4472C4', + 'accent2' => 'ED7D31', + 'accent3' => 'A5A5A5', + 'accent4' => 'FFC000', + 'accent5' => '5B9BD5', + 'accent6' => '70AD47', + 'hlink' => '0563C1', + 'folHlink' => '954F72', + ]; + + public const COLOR_SCHEME_2007_2010_NAME = 'Office 2007-2010'; + public const COLOR_SCHEME_2007_2010 = [ + 'dk1' => '000000', + 'lt1' => 'FFFFFF', + 'dk2' => '1F497D', + 'lt2' => 'EEECE1', + 'accent1' => '4F81BD', + 'accent2' => 'C0504D', + 'accent3' => '9BBB59', + 'accent4' => '8064A2', + 'accent5' => '4BACC6', + 'accent6' => 'F79646', + 'hlink' => '0000FF', + 'folHlink' => '800080', + ]; + + /** @var string[] */ + private $themeColors = self::COLOR_SCHEME_2007_2010; + + /** @var string */ + private $majorFontLatin = 'Cambria'; + + /** @var string */ + private $majorFontEastAsian = ''; + + /** @var string */ + private $majorFontComplexScript = ''; + + /** @var string */ + private $minorFontLatin = 'Calibri'; + + /** @var string */ + private $minorFontEastAsian = ''; + + /** @var string */ + private $minorFontComplexScript = ''; + + /** + * Map of Major (header) fonts to write. + * + * @var string[] + */ + private $majorFontSubstitutions = self::FONTS_TIMES_SUBSTITUTIONS; + + /** + * Map of Minor (body) fonts to write. + * + * @var string[] + */ + private $minorFontSubstitutions = self::FONTS_ARIAL_SUBSTITUTIONS; + + public const FONTS_TIMES_SUBSTITUTIONS = [ + 'Jpan' => 'MS Pゴシック', + 'Hang' => '맑은 고딕', + 'Hans' => '宋体', + 'Hant' => '新細明體', + 'Arab' => 'Times New Roman', + 'Hebr' => 'Times New Roman', + 'Thai' => 'Tahoma', + 'Ethi' => 'Nyala', + 'Beng' => 'Vrinda', + 'Gujr' => 'Shruti', + 'Khmr' => 'MoolBoran', + 'Knda' => 'Tunga', + 'Guru' => 'Raavi', + 'Cans' => 'Euphemia', + 'Cher' => 'Plantagenet Cherokee', + 'Yiii' => 'Microsoft Yi Baiti', + 'Tibt' => 'Microsoft Himalaya', + 'Thaa' => 'MV Boli', + 'Deva' => 'Mangal', + 'Telu' => 'Gautami', + 'Taml' => 'Latha', + 'Syrc' => 'Estrangelo Edessa', + 'Orya' => 'Kalinga', + 'Mlym' => 'Kartika', + 'Laoo' => 'DokChampa', + 'Sinh' => 'Iskoola Pota', + 'Mong' => 'Mongolian Baiti', + 'Viet' => 'Times New Roman', + 'Uigh' => 'Microsoft Uighur', + 'Geor' => 'Sylfaen', + ]; + + public const FONTS_ARIAL_SUBSTITUTIONS = [ + 'Jpan' => 'MS Pゴシック', + 'Hang' => '맑은 고딕', + 'Hans' => '宋体', + 'Hant' => '新細明體', + 'Arab' => 'Arial', + 'Hebr' => 'Arial', + 'Thai' => 'Tahoma', + 'Ethi' => 'Nyala', + 'Beng' => 'Vrinda', + 'Gujr' => 'Shruti', + 'Khmr' => 'DaunPenh', + 'Knda' => 'Tunga', + 'Guru' => 'Raavi', + 'Cans' => 'Euphemia', + 'Cher' => 'Plantagenet Cherokee', + 'Yiii' => 'Microsoft Yi Baiti', + 'Tibt' => 'Microsoft Himalaya', + 'Thaa' => 'MV Boli', + 'Deva' => 'Mangal', + 'Telu' => 'Gautami', + 'Taml' => 'Latha', + 'Syrc' => 'Estrangelo Edessa', + 'Orya' => 'Kalinga', + 'Mlym' => 'Kartika', + 'Laoo' => 'DokChampa', + 'Sinh' => 'Iskoola Pota', + 'Mong' => 'Mongolian Baiti', + 'Viet' => 'Arial', + 'Uigh' => 'Microsoft Uighur', + 'Geor' => 'Sylfaen', + ]; + + public function getThemeColors(): array + { + return $this->themeColors; + } + + public function setThemeColor(string $key, string $value): self + { + $this->themeColors[$key] = $value; + + return $this; + } + + public function getThemeColorName(): string + { + return $this->themeColorName; + } + + public function setThemeColorName(string $name, ?array $themeColors = null): self + { + $this->themeColorName = $name; + if ($name === self::COLOR_SCHEME_2007_2010_NAME) { + $themeColors = $themeColors ?? self::COLOR_SCHEME_2007_2010; + } elseif ($name === self::COLOR_SCHEME_2013_PLUS_NAME) { + $themeColors = $themeColors ?? self::COLOR_SCHEME_2013_PLUS; + } + if ($themeColors !== null) { + $this->themeColors = $themeColors; + } + + return $this; + } + + public function getMajorFontLatin(): string + { + return $this->majorFontLatin; + } + + public function getMajorFontEastAsian(): string + { + return $this->majorFontEastAsian; + } + + public function getMajorFontComplexScript(): string + { + return $this->majorFontComplexScript; + } + + public function getMajorFontSubstitutions(): array + { + return $this->majorFontSubstitutions; + } + + /** @param null|array $substitutions */ + public function setMajorFontValues(?string $latin, ?string $eastAsian, ?string $complexScript, $substitutions): self + { + if (!empty($latin)) { + $this->majorFontLatin = $latin; + } + if ($eastAsian !== null) { + $this->majorFontEastAsian = $eastAsian; + } + if ($complexScript !== null) { + $this->majorFontComplexScript = $complexScript; + } + if ($substitutions !== null) { + $this->majorFontSubstitutions = $substitutions; + } + + return $this; + } + + public function getMinorFontLatin(): string + { + return $this->minorFontLatin; + } + + public function getMinorFontEastAsian(): string + { + return $this->minorFontEastAsian; + } + + public function getMinorFontComplexScript(): string + { + return $this->minorFontComplexScript; + } + + public function getMinorFontSubstitutions(): array + { + return $this->minorFontSubstitutions; + } + + /** @param null|array $substitutions */ + public function setMinorFontValues(?string $latin, ?string $eastAsian, ?string $complexScript, $substitutions): self + { + if (!empty($latin)) { + $this->minorFontLatin = $latin; + } + if ($eastAsian !== null) { + $this->minorFontEastAsian = $eastAsian; + } + if ($complexScript !== null) { + $this->minorFontComplexScript = $complexScript; + } + if ($substitutions !== null) { + $this->minorFontSubstitutions = $substitutions; + } + + return $this; + } + + public function getThemeFontName(): string + { + return $this->themeFontName; + } + + public function setThemeFontName(?string $name): self + { + if (!empty($name)) { + $this->themeFontName = $name; + } + + return $this; + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php index d6041985d..cbc4ff65f 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -321,7 +321,7 @@ public function shiftColumn($fromColumn, $toColumn) * * @return bool */ - private static function filterTestInSimpleDataSet($cellValue, $dataSet) + protected static function filterTestInSimpleDataSet($cellValue, $dataSet) { $dataSetValues = $dataSet['filterValues']; $blanks = $dataSet['blanks']; @@ -340,7 +340,7 @@ private static function filterTestInSimpleDataSet($cellValue, $dataSet) * * @return bool */ - private static function filterTestInDateGroupSet($cellValue, $dataSet) + protected static function filterTestInDateGroupSet($cellValue, $dataSet) { $dateSet = $dataSet['filterValues']; $blanks = $dataSet['blanks']; @@ -384,7 +384,7 @@ private static function filterTestInDateGroupSet($cellValue, $dataSet) * * @return bool */ - private static function filterTestInCustomDataSet($cellValue, $ruleSet) + protected static function filterTestInCustomDataSet($cellValue, $ruleSet) { /** @var array[] */ $dataSet = $ruleSet['filterRules']; @@ -509,7 +509,7 @@ private static function filterTestInCustomDataSet($cellValue, $ruleSet) * * @return bool */ - private static function filterTestInPeriodDateSet($cellValue, $monthSet) + protected static function filterTestInPeriodDateSet($cellValue, $monthSet) { // Blank cells are always ignored, so return a FALSE if (($cellValue == '') || ($cellValue === null)) { diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php index 34e1145e0..d51023fcc 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php @@ -197,21 +197,6 @@ public function setFooter($footer) return $this; } - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } - public static function fromCentimeters(float $value): float { return $value / 2.54; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php index 22c99ff3b..72c8958c8 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php @@ -885,19 +885,4 @@ public function setPageOrder(?string $pageOrder): self return $this; } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php index 13464c997..697f11c2a 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php @@ -175,19 +175,4 @@ public function setView($sheetViewType) return $this; } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php index dc2a4f8a5..1bc8dff45 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php @@ -180,7 +180,7 @@ private function updateStructuredReferences(string $name): void private function updateStructuredReferencesInCells(Worksheet $worksheet, string $newName): void { - $pattern = '/' . preg_quote($this->name) . '\[/mui'; + $pattern = '/' . preg_quote($this->name, '/') . '\[/mui'; foreach ($worksheet->getCoordinates(false) as $coordinate) { $cell = $worksheet->getCell($coordinate); @@ -196,7 +196,7 @@ private function updateStructuredReferencesInCells(Worksheet $worksheet, string private function updateStructuredReferencesInNamedFormulae(Spreadsheet $spreadsheet, string $newName): void { - $pattern = '/' . preg_quote($this->name) . '\[/mui'; + $pattern = '/' . preg_quote($this->name, '/') . '\[/mui'; foreach ($spreadsheet->getNamedFormulae() as $namedFormula) { $formula = $namedFormula->getValue(); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php index 30630c0d4..32dd4c4f8 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php @@ -225,7 +225,7 @@ public static function updateStructuredReferences(?Worksheet $workSheet, ?string private static function updateStructuredReferencesInCells(Worksheet $worksheet, string $oldTitle, string $newTitle): void { - $pattern = '/\[(@?)' . preg_quote($oldTitle) . '\]/mui'; + $pattern = '/\[(@?)' . preg_quote($oldTitle, '/') . '\]/mui'; foreach ($worksheet->getCoordinates(false) as $coordinate) { $cell = $worksheet->getCell($coordinate); @@ -241,7 +241,7 @@ private static function updateStructuredReferencesInCells(Worksheet $worksheet, private static function updateStructuredReferencesInNamedFormulae(Spreadsheet $spreadsheet, string $oldTitle, string $newTitle): void { - $pattern = '/\[(@?)' . preg_quote($oldTitle) . '\]/mui'; + $pattern = '/\[(@?)' . preg_quote($oldTitle, '/') . '\]/mui'; foreach ($spreadsheet->getNamedFormulae() as $namedFormula) { $formula = $namedFormula->getValue(); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php index aab3aae44..42ba566c6 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php @@ -53,6 +53,9 @@ public static function validateCellOrCellRange($cellRange): string return self::validateCellRange($cellRange); } + private const SETMAXROW = '${1}1:${2}' . AddressRange::MAX_ROW; + private const SETMAXCOL = 'A${1}:' . AddressRange::MAX_COLUMN . '${2}'; + /** * Validate a cell range. * @@ -69,7 +72,7 @@ public static function validateCellRange($cellRange): string // or Row ranges like '1:3' to 'A1:XFD3' $addressRange = (string) preg_replace( ['/^([A-Z]+):([A-Z]+)$/i', '/^(\\d+):(\\d+)$/'], - ['${1}1:${2}1048576', 'A${1}:XFD${2}'], + [self::SETMAXROW, self::SETMAXCOL], $addressRange ); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php index cc0e05b69..29221e991 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php @@ -543,9 +543,18 @@ public function getDefaultRowDimension() */ public function getColumnDimensions() { + /** @var callable */ + $callable = [self::class, 'columnDimensionCompare']; + uasort($this->columnDimensions, $callable); + return $this->columnDimensions; } + private static function columnDimensionCompare(ColumnDimension $a, ColumnDimension $b): int + { + return $a->getColumnNumeric() - $b->getColumnNumeric(); + } + /** * Get default column dimension. * @@ -1806,9 +1815,15 @@ public function setBreakByColumnAndRow($columnIndex, $row, $break) public function getBreaks() { $breaks = []; + /** @var callable */ + $compareFunction = [self::class, 'compareRowBreaks']; + uksort($this->rowBreaks, $compareFunction); foreach ($this->rowBreaks as $break) { $breaks[$break->getCoordinate()] = self::BREAK_ROW; } + /** @var callable */ + $compareFunction = [self::class, 'compareColumnBreaks']; + uksort($this->columnBreaks, $compareFunction); foreach ($this->columnBreaks as $break) { $breaks[$break->getCoordinate()] = self::BREAK_COLUMN; } @@ -1823,16 +1838,40 @@ public function getBreaks() */ public function getRowBreaks() { + /** @var callable */ + $compareFunction = [self::class, 'compareRowBreaks']; + uksort($this->rowBreaks, $compareFunction); + return $this->rowBreaks; } + protected static function compareRowBreaks(string $coordinate1, string $coordinate2): int + { + $row1 = Coordinate::indexesFromString($coordinate1)[1]; + $row2 = Coordinate::indexesFromString($coordinate2)[1]; + + return $row1 - $row2; + } + + protected static function compareColumnBreaks(string $coordinate1, string $coordinate2): int + { + $column1 = Coordinate::indexesFromString($coordinate1)[0]; + $column2 = Coordinate::indexesFromString($coordinate2)[0]; + + return $column1 - $column2; + } + /** - * Get row breaks. + * Get column breaks. * * @return PageBreak[] */ public function getColumnBreaks() { + /** @var callable */ + $compareFunction = [self::class, 'compareColumnBreaks']; + uksort($this->columnBreaks, $compareFunction); + return $this->columnBreaks; } @@ -2448,12 +2487,12 @@ public function getTopLeftCell() /** * Insert a new row, updating all possible related data. * - * @param int $before Insert before this one - * @param int $numberOfRows Number of rows to insert + * @param int $before Insert before this row number + * @param int $numberOfRows Number of new rows to insert * * @return $this */ - public function insertNewRowBefore($before, $numberOfRows = 1) + public function insertNewRowBefore(int $before, int $numberOfRows = 1) { if ($before >= 1) { $objReferenceHelper = ReferenceHelper::getInstance(); @@ -2468,12 +2507,12 @@ public function insertNewRowBefore($before, $numberOfRows = 1) /** * Insert a new column, updating all possible related data. * - * @param string $before Insert before this one, eg: 'A' - * @param int $numberOfColumns Number of columns to insert + * @param string $before Insert before this column Name, eg: 'A' + * @param int $numberOfColumns Number of new columns to insert * * @return $this */ - public function insertNewColumnBefore($before, $numberOfColumns = 1) + public function insertNewColumnBefore(string $before, int $numberOfColumns = 1) { if (!is_numeric($before)) { $objReferenceHelper = ReferenceHelper::getInstance(); @@ -2488,12 +2527,12 @@ public function insertNewColumnBefore($before, $numberOfColumns = 1) /** * Insert a new column, updating all possible related data. * - * @param int $beforeColumnIndex Insert before this one (numeric column coordinate of the cell) - * @param int $numberOfColumns Number of columns to insert + * @param int $beforeColumnIndex Insert before this column ID (numeric column coordinate of the cell) + * @param int $numberOfColumns Number of new columns to insert * * @return $this */ - public function insertNewColumnBeforeByIndex($beforeColumnIndex, $numberOfColumns = 1) + public function insertNewColumnBeforeByIndex(int $beforeColumnIndex, int $numberOfColumns = 1) { if ($beforeColumnIndex >= 1) { return $this->insertNewColumnBefore(Coordinate::stringFromColumnIndex($beforeColumnIndex), $numberOfColumns); @@ -2505,12 +2544,12 @@ public function insertNewColumnBeforeByIndex($beforeColumnIndex, $numberOfColumn /** * Delete a row, updating all possible related data. * - * @param int $row Remove starting with this one + * @param int $row Remove rows, starting with this row number * @param int $numberOfRows Number of rows to remove * * @return $this */ - public function removeRow($row, $numberOfRows = 1) + public function removeRow(int $row, int $numberOfRows = 1) { if ($row < 1) { throw new Exception('Rows to be deleted should at least start from row 1.'); @@ -2561,12 +2600,12 @@ private function removeRowDimensions(int $row, int $numberOfRows): array /** * Remove a column, updating all possible related data. * - * @param string $column Remove starting with this one, eg: 'A' + * @param string $column Remove columns starting with this column name, eg: 'A' * @param int $numberOfColumns Number of columns to remove * * @return $this */ - public function removeColumn($column, $numberOfColumns = 1) + public function removeColumn(string $column, int $numberOfColumns = 1) { if (is_numeric($column)) { throw new Exception('Column references should not be numeric.'); @@ -2623,12 +2662,12 @@ private function removeColumnDimensions(int $pColumnIndex, int $numberOfColumns) /** * Remove a column, updating all possible related data. * - * @param int $columnIndex Remove starting with this one (numeric column coordinate of the cell) + * @param int $columnIndex Remove starting with this column Index (numeric column coordinate) * @param int $numColumns Number of columns to remove * * @return $this */ - public function removeColumnByIndex($columnIndex, $numColumns = 1) + public function removeColumnByIndex(int $columnIndex, int $numColumns = 1) { if ($columnIndex >= 1) { return $this->removeColumn(Coordinate::stringFromColumnIndex($columnIndex), $numColumns); @@ -2988,21 +3027,58 @@ public function fromArray(array $source, $nullValue = null, $startCell = 'A1', $ return $this; } + /** + * @param mixed $nullValue + * + * @throws Exception + * @throws \PhpOffice\PhpSpreadsheet\Calculation\Exception + * + * @return mixed + */ + protected function cellToArray(Cell $cell, bool $calculateFormulas, bool $formatData, $nullValue) + { + $returnValue = $nullValue; + + if ($cell->getValue() !== null) { + if ($cell->getValue() instanceof RichText) { + $returnValue = $cell->getValue()->getPlainText(); + } else { + $returnValue = ($calculateFormulas) ? $cell->getCalculatedValue() : $cell->getValue(); + } + + if ($formatData) { + $style = $this->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex()); + $returnValue = NumberFormat::toFormattedString( + $returnValue, + $style->getNumberFormat()->getFormatCode() ?? NumberFormat::FORMAT_GENERAL + ); + } + } + + return $returnValue; + } + /** * Create array from a range of cells. * - * @param string $range Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist * @param bool $calculateFormulas Should formulas be calculated? * @param bool $formatData Should formatting be applied to cell values? * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * - * @return array - */ - public function rangeToArray($range, $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { - // Returnvalue + * True - Return rows and columns indexed by their actual row and column IDs + * @param bool $ignoreHidden False - Return values for rows/columns even if they are defined as hidden. + * True - Don't return values for rows/columns that are defined as hidden. + */ + public function rangeToArray( + string $range, + $nullValue = null, + bool $calculateFormulas = true, + bool $formatData = true, + bool $returnCellRef = false, + bool $ignoreHidden = false + ): array { + $range = Validations::validateCellOrCellRange($range); + $returnValue = []; // Identify the range that we need to extract from the worksheet [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($range); @@ -3015,42 +3091,23 @@ public function rangeToArray($range, $nullValue = null, $calculateFormulas = tru // Loop through rows $r = -1; for ($row = $minRow; $row <= $maxRow; ++$row) { - $rRef = $returnCellRef ? $row : ++$r; + if (($ignoreHidden === true) && ($this->getRowDimension($row)->getVisible() === false)) { + continue; + } + $rowRef = $returnCellRef ? $row : ++$r; $c = -1; // Loop through columns in the current row - for ($col = $minCol; $col != $maxCol; ++$col) { - $cRef = $returnCellRef ? $col : ++$c; + for ($col = $minCol; $col !== $maxCol; ++$col) { + if (($ignoreHidden === true) && ($this->getColumnDimension($col)->getVisible() === false)) { + continue; + } + $columnRef = $returnCellRef ? $col : ++$c; // Using getCell() will create a new cell if it doesn't already exist. We don't want that to happen // so we test and retrieve directly against cellCollection - $cell = $this->cellCollection->get($col . $row); - //if ($this->cellCollection->has($col . $row)) { + $cell = $this->cellCollection->get("{$col}{$row}"); + $returnValue[$rowRef][$columnRef] = $nullValue; if ($cell !== null) { - // Cell exists - if ($cell->getValue() !== null) { - if ($cell->getValue() instanceof RichText) { - $returnValue[$rRef][$cRef] = $cell->getValue()->getPlainText(); - } else { - if ($calculateFormulas) { - $returnValue[$rRef][$cRef] = $cell->getCalculatedValue(); - } else { - $returnValue[$rRef][$cRef] = $cell->getValue(); - } - } - - if ($formatData) { - $style = $this->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex()); - $returnValue[$rRef][$cRef] = NumberFormat::toFormattedString( - $returnValue[$rRef][$cRef], - $style->getNumberFormat()->getFormatCode() ?? NumberFormat::FORMAT_GENERAL - ); - } - } else { - // Cell holds a NULL - $returnValue[$rRef][$cRef] = $nullValue; - } - } else { - // Cell doesn't exist - $returnValue[$rRef][$cRef] = $nullValue; + $returnValue[$rowRef][$columnRef] = $this->cellToArray($cell, $calculateFormulas, $formatData, $nullValue); } } } @@ -3102,12 +3159,18 @@ private function validateNamedRange(string $definedName, bool $returnNullIfInval * @param bool $calculateFormulas Should formulas be calculated? * @param bool $formatData Should formatting be applied to cell values? * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * - * @return array - */ - public function namedRangeToArray(string $definedName, $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { + * True - Return rows and columns indexed by their actual row and column IDs + * @param bool $ignoreHidden False - Return values for rows/columns even if they are defined as hidden. + * True - Don't return values for rows/columns that are defined as hidden. + */ + public function namedRangeToArray( + string $definedName, + $nullValue = null, + bool $calculateFormulas = true, + bool $formatData = true, + bool $returnCellRef = false, + bool $ignoreHidden = false + ): array { $retVal = []; $namedRange = $this->validateNamedRange($definedName); if ($namedRange !== null) { @@ -3115,7 +3178,7 @@ public function namedRangeToArray(string $definedName, $nullValue = null, $calcu $cellRange = str_replace('$', '', $cellRange); $workSheet = $namedRange->getWorksheet(); if ($workSheet !== null) { - $retVal = $workSheet->rangeToArray($cellRange, $nullValue, $calculateFormulas, $formatData, $returnCellRef); + $retVal = $workSheet->rangeToArray($cellRange, $nullValue, $calculateFormulas, $formatData, $returnCellRef, $ignoreHidden); } } @@ -3129,12 +3192,17 @@ public function namedRangeToArray(string $definedName, $nullValue = null, $calcu * @param bool $calculateFormulas Should formulas be calculated? * @param bool $formatData Should formatting be applied to cell values? * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * - * @return array - */ - public function toArray($nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { + * True - Return rows and columns indexed by their actual row and column IDs + * @param bool $ignoreHidden False - Return values for rows/columns even if they are defined as hidden. + * True - Don't return values for rows/columns that are defined as hidden. + */ + public function toArray( + $nullValue = null, + bool $calculateFormulas = true, + bool $formatData = true, + bool $returnCellRef = false, + bool $ignoreHidden = false + ): array { // Garbage collect... $this->garbageCollect(); @@ -3143,7 +3211,7 @@ public function toArray($nullValue = null, $calculateFormulas = true, $formatDat $maxRow = $this->getHighestRow(); // Return - return $this->rangeToArray('A1:' . $maxCol . $maxRow, $nullValue, $calculateFormulas, $formatData, $returnCellRef); + return $this->rangeToArray("A1:{$maxCol}{$maxRow}", $nullValue, $calculateFormulas, $formatData, $returnCellRef, $ignoreHidden); } /** diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php index c30bb30ac..842998f9e 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php @@ -7,9 +7,11 @@ use PhpOffice\PhpSpreadsheet\Cell\Cell; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Chart\Chart; +use PhpOffice\PhpSpreadsheet\Document\Properties; use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\RichText\Run; use PhpOffice\PhpSpreadsheet\Settings; +use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Shared\Drawing as SharedDrawing; use PhpOffice\PhpSpreadsheet\Shared\File; use PhpOffice\PhpSpreadsheet\Shared\Font as SharedFont; @@ -342,13 +344,21 @@ public function writeAllSheets() private static function generateMeta(?string $val, string $desc): string { - return $val + return ($val || $val === '0') ? (' ' . PHP_EOL) : ''; } public const BODY_LINE = ' ' . PHP_EOL; + private const CUSTOM_TO_META = [ + Properties::PROPERTY_TYPE_BOOLEAN => 'bool', + Properties::PROPERTY_TYPE_DATE => 'date', + Properties::PROPERTY_TYPE_FLOAT => 'float', + Properties::PROPERTY_TYPE_INTEGER => 'int', + Properties::PROPERTY_TYPE_STRING => 'string', + ]; + /** * Generate HTML header. * @@ -374,6 +384,36 @@ public function generateHTMLHeader($includeStyles = false) $html .= self::generateMeta($properties->getCategory(), 'category'); $html .= self::generateMeta($properties->getCompany(), 'company'); $html .= self::generateMeta($properties->getManager(), 'manager'); + $html .= self::generateMeta($properties->getLastModifiedBy(), 'lastModifiedBy'); + $date = Date::dateTimeFromTimestamp((string) $properties->getCreated()); + $date->setTimeZone(Date::getDefaultOrLocalTimeZone()); + $html .= self::generateMeta($date->format(DATE_W3C), 'created'); + $date = Date::dateTimeFromTimestamp((string) $properties->getModified()); + $date->setTimeZone(Date::getDefaultOrLocalTimeZone()); + $html .= self::generateMeta($date->format(DATE_W3C), 'modified'); + + $customProperties = $properties->getCustomProperties(); + foreach ($customProperties as $customProperty) { + $propertyValue = $properties->getCustomPropertyValue($customProperty); + $propertyType = $properties->getCustomPropertyType($customProperty); + $propertyQualifier = self::CUSTOM_TO_META[$propertyType] ?? null; + if ($propertyQualifier !== null) { + if ($propertyType === Properties::PROPERTY_TYPE_BOOLEAN) { + $propertyValue = $propertyValue ? '1' : '0'; + } elseif ($propertyType === Properties::PROPERTY_TYPE_DATE) { + $date = Date::dateTimeFromTimestamp((string) $propertyValue); + $date->setTimeZone(Date::getDefaultOrLocalTimeZone()); + $propertyValue = $date->format(DATE_W3C); + } else { + $propertyValue = (string) $propertyValue; + } + $html .= self::generateMeta($propertyValue, "custom.$propertyQualifier.$customProperty"); + } + } + + if (!empty($properties->getHyperlinkBase())) { + $html .= ' ' . PHP_EOL; + } $html .= $includeStyles ? $this->generateStyles(true) : $this->generatePageDeclarations(true); @@ -693,7 +733,8 @@ private function writeImageInCell(Worksheet $worksheet, $coordinates) // max-width: 100% ensures that image doesnt overflow containing cell // width: X sets width of supplied image. // As a result, images bigger than cell will be contained and images smaller will not get stretched - $html .= '' . $filedesc . ''; + $html .= '' . $filedesc . ''; } } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php index 872be52de..c9e0ba839 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php @@ -12,7 +12,6 @@ use PhpOffice\PhpSpreadsheet\Writer\Ods\Styles; use PhpOffice\PhpSpreadsheet\Writer\Ods\Thumbnails; use ZipStream\Exception\OverflowException; -use ZipStream\Option\Archive; use ZipStream\ZipStream; class Ods extends BaseWriter @@ -158,11 +157,7 @@ private function createZip() } // Create new ZIP stream - $options = new Archive(); - $options->setEnableZip64(false); - $options->setOutputStream($this->fileHandle); - - return new ZipStream(null, $options); + return ZipStream0::newZipStream($this->fileHandle); } /** diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php index e931421af..e0a729ab8 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php @@ -126,7 +126,16 @@ private function writeSheets(XMLWriter $objWriter): void $objWriter->writeAttribute('table:name', $spreadsheet->getSheet($sheetIndex)->getTitle()); $objWriter->writeAttribute('table:style-name', Style::TABLE_STYLE_PREFIX . (string) ($sheetIndex + 1)); $objWriter->writeElement('office:forms'); + $lastColumn = 0; foreach ($spreadsheet->getSheet($sheetIndex)->getColumnDimensions() as $columnDimension) { + $thisColumn = $columnDimension->getColumnNumeric(); + $emptyColumns = $thisColumn - $lastColumn - 1; + if ($emptyColumns > 0) { + $objWriter->startElement('table:table-column'); + $objWriter->writeAttribute('table:number-columns-repeated', (string) $emptyColumns); + $objWriter->endElement(); + } + $lastColumn = $thisColumn; $objWriter->startElement('table:table-column'); $objWriter->writeAttribute( 'table:style-name', diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php index 33a404d42..983414fcc 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php @@ -751,11 +751,12 @@ private function writeDocumentSummaryInformation() $dataSection_Content .= $dataProp['data']['data']; $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']); - // Condition below can never be true - //} elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - // $dataSection_Content .= $dataProp['data']['data']; + /* Condition below can never be true + } elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + $dataSection_Content .= $dataProp['data']['data']; - // $dataSection_Content_Offset += 4 + 8; + $dataSection_Content_Offset += 4 + 8; + */ } else { $dataSection_Content .= $dataProp['data']['data']; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php index 6b98395f5..f195ac782 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php @@ -643,7 +643,6 @@ private function convertRange2d($range, $class = 0) // TODO: use real error codes throw new WriterException('Unknown range separator'); } - // Convert the cell references [$row1, $col1] = $this->cellToPackedRowcol($cell1); [$row2, $col2] = $this->cellToPackedRowcol($cell2); @@ -1109,8 +1108,8 @@ private function match($token) if (is_numeric($token) && (!is_numeric($token . $this->lookAhead) || ($this->lookAhead == '')) && ($this->lookAhead !== '!') && ($this->lookAhead !== ':')) { return $token; } - // If it's a string (of maximum 255 characters) if (preg_match('/"([^"]|""){0,255}"/', $token) && $this->lookAhead !== '"' && (substr_count($token, '"') % 2 == 0)) { + // If it's a string (of maximum 255 characters) return $token; } // If it's an error code @@ -1219,21 +1218,18 @@ private function expression() $this->advance(); return $result; - // If it's an error code - } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $this->currentToken) || $this->currentToken == '#N/A') { + } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $this->currentToken) || $this->currentToken == '#N/A') { // error code $result = $this->createTree($this->currentToken, 'ptgErr', ''); $this->advance(); return $result; - // If it's a negative value - } elseif ($this->currentToken == '-') { + } elseif ($this->currentToken == '-') { // negative value // catch "-" Term $this->advance(); $result2 = $this->expression(); return $this->createTree('ptgUminus', $result2, ''); - // If it's a positive value - } elseif ($this->currentToken == '+') { + } elseif ($this->currentToken == '+') { // positive value // catch "+" Term $this->advance(); $result2 = $this->expression(); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php index 6e9b265dc..3c68847aa 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php @@ -643,9 +643,8 @@ private function writeAllDefinedNamesBiff8(): string // store the DEFINEDNAME record $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true)); - - // (exclusive) either repeatColumns or repeatRows } elseif ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) { + // (exclusive) either repeatColumns or repeatRows. // Columns to repeat if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); @@ -1102,16 +1101,15 @@ private function writeSharedStringsTable() // 2. space remaining is greater than or equal to minimum space needed // here we write as much as we can in the current block, then move to next record data block - // 1. space remaining is less than minimum space needed if ($space_remaining < $min_space_needed) { + // 1. space remaining is less than minimum space needed. // we close the block, store the block data $recordDatas[] = $recordData; // and start new record data block where we start writing the string $recordData = ''; - - // 2. space remaining is greater than or equal to minimum space needed } else { + // 2. space remaining is greater than or equal to minimum space needed. // initialize effective remaining space, for Unicode strings this may need to be reduced by 1, see below $effective_space_remaining = $space_remaining; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php index 9f23bd365..aeedd08e7 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php @@ -503,6 +503,8 @@ public function close(): void $this->writeMergedCells(); // Hyperlinks + $phpParent = $phpSheet->getParent(); + $hyperlinkbase = ($phpParent === null) ? '' : $phpParent->getProperties()->getHyperlinkBase(); foreach ($phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) { [$column, $row] = Coordinate::indexesFromString($coordinate); @@ -513,6 +515,11 @@ public function close(): void $url = str_replace('sheet://', 'internal:', $url); } elseif (preg_match('/^(http:|https:|ftp:|mailto:)/', $url)) { // URL + } elseif (!empty($hyperlinkbase) && preg_match('~^([A-Za-z]:)?[/\\\\]~', $url) !== 1) { + $url = "$hyperlinkbase$url"; + if (preg_match('/^(http:|https:|ftp:|mailto:)/', $url) !== 1) { + $url = 'external:' . $url; + } } else { // external (local file) $url = 'external:' . $url; diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php index 07b790440..6ed12d4aa 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php @@ -31,7 +31,6 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet; use ZipArchive; use ZipStream\Exception\OverflowException; -use ZipStream\Option\Archive; use ZipStream\ZipStream; class Xlsx extends BaseWriter @@ -377,7 +376,7 @@ public function save($filename, int $flags = 0): void } // Add theme to ZIP file - $zipContent['xl/theme/theme1.xml'] = $this->getWriterPartTheme()->writeTheme(); + $zipContent['xl/theme/theme1.xml'] = $this->getWriterPartTheme()->writeTheme($this->spreadSheet); // Add string table to ZIP file $zipContent['xl/sharedStrings.xml'] = $this->getWriterPartStringTable()->writeStringTable($this->stringTable); @@ -546,11 +545,7 @@ public function save($filename, int $flags = 0): void $this->openFileHandle($filename); - $options = new Archive(); - $options->setEnableZip64(false); - $options->setOutputStream($this->fileHandle); - - $this->zip = new ZipStream(null, $options); + $this->zip = ZipStream0::newZipStream($this->fileHandle); $this->addZipFiles($zipContent); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php index 6465904ee..6d302aac4 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php @@ -14,6 +14,7 @@ use PhpOffice\PhpSpreadsheet\Chart\TrendLine; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; +use PhpOffice\PhpSpreadsheet\Style\Font; use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException; class Chart extends WriterPart @@ -109,12 +110,20 @@ public function writeChart(\PhpOffice\PhpSpreadsheet\Chart\Chart $chart, $calcul $objWriter->endElement(); $objWriter->endElement(); // c:chart + + $objWriter->startElement('c:spPr'); if ($chart->getNoFill()) { - $objWriter->startElement('c:spPr'); $objWriter->startElement('a:noFill'); $objWriter->endElement(); // a:noFill - $objWriter->endElement(); // c:spPr } + $fillColor = $chart->getFillColor(); + if ($fillColor->isUsable()) { + $this->writeColor($objWriter, $fillColor); + } + $borderLines = $chart->getBorderLines(); + $this->writeLineStyles($objWriter, $borderLines); + $this->writeEffects($objWriter, $borderLines); + $objWriter->endElement(); // c:spPr $this->writePrintSettings($objWriter); @@ -201,6 +210,17 @@ private function writeLegend(XMLWriter $objWriter, ?Legend $legend = null): void $objWriter->writeAttribute('val', ($legend->getOverlay()) ? '1' : '0'); $objWriter->endElement(); + $objWriter->startElement('c:spPr'); + $fillColor = $legend->getFillColor(); + if ($fillColor->isUsable()) { + $this->writeColor($objWriter, $fillColor); + } + $borderLines = $legend->getBorderLines(); + $this->writeLineStyles($objWriter, $borderLines); + $this->writeEffects($objWriter, $borderLines); + $objWriter->endElement(); // c:spPr + + $legendText = $legend->getLegendText(); $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); $objWriter->endElement(); @@ -213,17 +233,21 @@ private function writeLegend(XMLWriter $objWriter, ?Legend $legend = null): void $objWriter->writeAttribute('rtl', '0'); $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); - $objWriter->endElement(); + if ($legendText !== null) { + $this->writeColor($objWriter, $legendText->getFillColorObject()); + $this->writeEffects($objWriter, $legendText); + } + $objWriter->endElement(); // a:defRpr + $objWriter->endElement(); // a:pPr $objWriter->startElement('a:endParaRPr'); $objWriter->writeAttribute('lang', 'en-US'); - $objWriter->endElement(); + $objWriter->endElement(); // a:endParaRPr - $objWriter->endElement(); - $objWriter->endElement(); + $objWriter->endElement(); // a:p + $objWriter->endElement(); // c:txPr - $objWriter->endElement(); + $objWriter->endElement(); // c:legend } /** @@ -307,19 +331,26 @@ private function writePlotArea(XMLWriter $objWriter, ?PlotArea $plotArea, ?Title $objWriter->startElement('c:hiLowLines'); $objWriter->endElement(); - $objWriter->startElement('c:upDownBars'); - - $objWriter->startElement('c:gapWidth'); - $objWriter->writeAttribute('val', '300'); - $objWriter->endElement(); - - $objWriter->startElement('c:upBars'); - $objWriter->endElement(); - - $objWriter->startElement('c:downBars'); - $objWriter->endElement(); - - $objWriter->endElement(); + $gapWidth = $plotArea->getGapWidth(); + $upBars = $plotArea->getUseUpBars(); + $downBars = $plotArea->getUseDownBars(); + if ($gapWidth !== null || $upBars || $downBars) { + $objWriter->startElement('c:upDownBars'); + if ($gapWidth !== null) { + $objWriter->startElement('c:gapWidth'); + $objWriter->writeAttribute('val', "$gapWidth"); + $objWriter->endElement(); + } + if ($upBars) { + $objWriter->startElement('c:upBars'); + $objWriter->endElement(); + } + if ($downBars) { + $objWriter->startElement('c:downBars'); + $objWriter->endElement(); + } + $objWriter->endElement(); // c:upDownBars + } } // Generate 3 unique numbers to use for axId values @@ -428,8 +459,8 @@ private function writeDataLabels(XMLWriter $objWriter, ?Layout $chartLayout = nu } $objWriter->endElement(); // c:spPr } - $fontColor = $chartLayout->getLabelFontColor(); - if ($fontColor && $fontColor->isUsable()) { + $labelFont = $chartLayout->getLabelFont(); + if ($labelFont !== null) { $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); @@ -445,14 +476,7 @@ private function writeDataLabels(XMLWriter $objWriter, ?Layout $chartLayout = nu $objWriter->startElement('a:lstStyle'); $objWriter->endElement(); // a:lstStyle - - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $this->writeColor($objWriter, $fontColor); - $objWriter->endElement(); // a:defRPr - $objWriter->endElement(); // a:pPr - $objWriter->endElement(); // a:p + $this->writeLabelFont($objWriter, $labelFont, $chartLayout->getLabelEffects()); $objWriter->endElement(); // c:txPr } @@ -608,25 +632,24 @@ private function writeCategoryAxis(XMLWriter $objWriter, ?Title $xAxisLabel, $id } $textRotation = $yAxis->getAxisOptionsProperty('textRotation'); - if (is_numeric($textRotation)) { + $axisText = $yAxis->getAxisText(); + + if ($axisText !== null || is_numeric($textRotation)) { $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); - $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + if (is_numeric($textRotation)) { + $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + } $objWriter->endElement(); // a:bodyPr $objWriter->startElement('a:lstStyle'); $objWriter->endElement(); // a:lstStyle - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); // a:defRPr - $objWriter->endElement(); // a:pPr - $objWriter->endElement(); // a:p + $this->writeLabelFont($objWriter, ($axisText === null) ? null : $axisText->getFont(), $axisText); $objWriter->endElement(); // c:txPr } $objWriter->startElement('c:spPr'); $this->writeColor($objWriter, $yAxis->getFillColorObject()); - $this->writeLineStyles($objWriter, $yAxis); + $this->writeLineStyles($objWriter, $yAxis, $yAxis->getNoFill()); $this->writeEffects($objWriter, $yAxis); $objWriter->endElement(); // spPr @@ -826,25 +849,26 @@ private function writeValueAxis(XMLWriter $objWriter, ?Title $yAxisLabel, $group } $textRotation = $xAxis->getAxisOptionsProperty('textRotation'); - if (is_numeric($textRotation)) { + $axisText = $xAxis->getAxisText(); + + if ($axisText !== null || is_numeric($textRotation)) { $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); - $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + if (is_numeric($textRotation)) { + $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + } $objWriter->endElement(); // a:bodyPr $objWriter->startElement('a:lstStyle'); $objWriter->endElement(); // a:lstStyle - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); // a:defRPr - $objWriter->endElement(); // a:pPr - $objWriter->endElement(); // a:p + + $this->writeLabelFont($objWriter, ($axisText === null) ? null : $axisText->getFont(), $axisText); + $objWriter->endElement(); // c:txPr } $objWriter->startElement('c:spPr'); $this->writeColor($objWriter, $xAxis->getFillColorObject()); - $this->writeLineStyles($objWriter, $xAxis); + $this->writeLineStyles($objWriter, $xAxis, $xAxis->getNoFill()); $this->writeEffects($objWriter, $xAxis); $objWriter->endElement(); //end spPr @@ -1055,14 +1079,6 @@ private function writePlotGroup(?DataSeries $plotGroup, string $groupType, XMLWr $labelFill = $plotLabel->getFillColorObject(); $labelFill = ($labelFill instanceof ChartColor) ? $labelFill : null; } - if ($plotLabel && $groupType !== DataSeries::TYPE_LINECHART) { - $fillColor = $plotLabel->getFillColorObject(); - if ($fillColor !== null && !is_array($fillColor) && $fillColor->isUsable()) { - $objWriter->startElement('c:spPr'); - $this->writeColor($objWriter, $fillColor); - $objWriter->endElement(); // c:spPr - } - } // Values $plotSeriesValues = $plotGroup->getPlotValuesByIndex($plotSeriesIdx); @@ -1094,6 +1110,12 @@ private function writePlotGroup(?DataSeries $plotGroup, string $groupType, XMLWr $plotSeriesValues !== false ) { $objWriter->startElement('c:spPr'); + if ($plotLabel && $groupType !== DataSeries::TYPE_LINECHART) { + $fillColor = $plotLabel->getFillColorObject(); + if ($fillColor !== null && !is_array($fillColor) && $fillColor->isUsable()) { + $this->writeColor($objWriter, $fillColor); + } + } $fillObject = $labelFill ?? $plotSeriesValues->getFillColorObject(); $callLineStyles = true; if ($fillObject instanceof ChartColor && $fillObject->isUsable()) { @@ -1398,7 +1420,7 @@ private function writePlotSeriesValues(?DataSeriesValues $plotSeriesValues, XMLW $count = $plotSeriesValues->getPointCount(); $source = $plotSeriesValues->getDataSource(); $values = $plotSeriesValues->getDataValues(); - if ($count > 1 || ($count === 1 && "=$source" !== (string) $values[0])) { + if ($count > 1 || ($count === 1 && array_key_exists(0, $values) && "=$source" !== (string) $values[0])) { $objWriter->startElement('c:' . $dataType . 'Cache'); if (($groupType != DataSeries::TYPE_PIECHART) && ($groupType != DataSeries::TYPE_PIECHART_3D) && ($groupType != DataSeries::TYPE_DONUTCHART)) { @@ -1770,4 +1792,51 @@ private function writeColor(XMLWriter $objWriter, ChartColor $chartColor, bool $ } } } + + private function writeLabelFont(XMLWriter $objWriter, ?Font $labelFont, ?Properties $axisText): void + { + $objWriter->startElement('a:p'); + $objWriter->startElement('a:pPr'); + $objWriter->startElement('a:defRPr'); + if ($labelFont !== null) { + $fontSize = $labelFont->getSize(); + if (is_numeric($fontSize)) { + $fontSize *= (($fontSize < 100) ? 100 : 1); + $objWriter->writeAttribute('sz', (string) $fontSize); + } + if ($labelFont->getBold() === true) { + $objWriter->writeAttribute('b', '1'); + } + if ($labelFont->getItalic() === true) { + $objWriter->writeAttribute('i', '1'); + } + $fontColor = $labelFont->getChartColor(); + if ($fontColor !== null) { + $this->writeColor($objWriter, $fontColor); + } + } + if ($axisText !== null) { + $this->writeEffects($objWriter, $axisText); + } + if ($labelFont !== null) { + if (!empty($labelFont->getLatin())) { + $objWriter->startElement('a:latin'); + $objWriter->writeAttribute('typeface', $labelFont->getLatin()); + $objWriter->endElement(); + } + if (!empty($labelFont->getEastAsian())) { + $objWriter->startElement('a:eastAsian'); + $objWriter->writeAttribute('typeface', $labelFont->getEastAsian()); + $objWriter->endElement(); + } + if (!empty($labelFont->getComplexScript())) { + $objWriter->startElement('a:complexScript'); + $objWriter->writeAttribute('typeface', $labelFont->getComplexScript()); + $objWriter->endElement(); + } + } + $objWriter->endElement(); // a:defRPr + $objWriter->endElement(); // a:pPr + $objWriter->endElement(); // a:p + } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php index 8902826a1..8c33f5932 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php @@ -93,6 +93,9 @@ public function writeDocPropsApp(Spreadsheet $spreadsheet) // SharedDoc $objWriter->writeElement('SharedDoc', 'false'); + // HyperlinkBase + $objWriter->writeElement('HyperlinkBase', $spreadsheet->getProperties()->getHyperlinkBase()); + // HyperlinksChanged $objWriter->writeElement('HyperlinksChanged', 'false'); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php index ecc247d86..cf4f90693 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php @@ -4,7 +4,7 @@ class FunctionPrefix { - const XLFNREGEXP = '/(?:_xlfn\.)?((?:_xlws\.)?(' + const XLFNREGEXP = '/(?:_xlfn\.)?((?:_xlws\.)?\b(' // functions added with Excel 2010 . 'beta[.]dist' . '|beta[.]inv' diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php index 7f623933c..29e95eb2f 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php @@ -64,7 +64,7 @@ public function createStringTable(ActualWorksheet $worksheet, $existingTable = n /** * Write string table to XML format. * - * @param (string|RichText)[] $stringTable + * @param (RichText|string)[] $stringTable * * @return string XML Output */ @@ -226,9 +226,10 @@ public function writeRichTextForCharts(XMLWriter $objWriter, $richText = null, $ if ($element->getFont() !== null) { // rPr $objWriter->startElement($prefix . 'rPr'); - $size = $element->getFont()->getSize(); - if (is_numeric($size)) { - $objWriter->writeAttribute('sz', (string) (int) ($size * 100)); + $fontSize = $element->getFont()->getSize(); + if (is_numeric($fontSize)) { + $fontSize *= (($fontSize < 100) ? 100 : 1); + $objWriter->writeAttribute('sz', (string) $fontSize); } // Bold diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php index 0261f22e5..baafdc334 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php @@ -112,8 +112,13 @@ public function writeStyles(Spreadsheet $spreadsheet) $objWriter->writeAttribute('count', (string) count($spreadsheet->getCellXfCollection())); // xf + $alignment = new Alignment(); + $defaultAlignHash = $alignment->getHashCode(); + if ($defaultAlignHash !== $spreadsheet->getDefaultStyle()->getAlignment()->getHashCode()) { + $defaultAlignHash = ''; + } foreach ($spreadsheet->getCellXfCollection() as $cellXf) { - $this->writeCellStyleXf($objWriter, $cellXf, $spreadsheet); + $this->writeCellStyleXf($objWriter, $cellXf, $spreadsheet, $defaultAlignHash); } $objWriter->endElement(); @@ -354,6 +359,13 @@ private function writeFont(XMLWriter $objWriter, Font $font): void $objWriter->endElement(); } + if (!empty($font->getScheme())) { + $this->startFont($objWriter, $fontStarted); + $objWriter->startElement('scheme'); + $objWriter->writeAttribute('val', $font->getScheme()); + $objWriter->endElement(); + } + if ($fontStarted) { $objWriter->endElement(); } @@ -400,7 +412,7 @@ private function writeBorder(XMLWriter $objWriter, Borders $borders): void /** * Write Cell Style Xf. */ - private function writeCellStyleXf(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Style\Style $style, Spreadsheet $spreadsheet): void + private function writeCellStyleXf(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Style\Style $style, Spreadsheet $spreadsheet, string $defaultAlignHash): void { // xf $objWriter->startElement('xf'); @@ -424,7 +436,11 @@ private function writeCellStyleXf(XMLWriter $objWriter, \PhpOffice\PhpSpreadshee $objWriter->writeAttribute('applyNumberFormat', ($spreadsheet->getDefaultStyle()->getNumberFormat()->getHashCode() != $style->getNumberFormat()->getHashCode()) ? '1' : '0'); $objWriter->writeAttribute('applyFill', ($spreadsheet->getDefaultStyle()->getFill()->getHashCode() != $style->getFill()->getHashCode()) ? '1' : '0'); $objWriter->writeAttribute('applyBorder', ($spreadsheet->getDefaultStyle()->getBorders()->getHashCode() != $style->getBorders()->getHashCode()) ? '1' : '0'); - $applyAlignment = ($spreadsheet->getDefaultStyle()->getAlignment()->getHashCode() != $style->getAlignment()->getHashCode()) ? '1' : '0'; + if ($defaultAlignHash !== '' && $defaultAlignHash === $style->getAlignment()->getHashCode()) { + $applyAlignment = '0'; + } else { + $applyAlignment = '1'; + } $objWriter->writeAttribute('applyAlignment', $applyAlignment); if ($style->getProtection()->getLocked() != Protection::PROTECTION_INHERIT || $style->getProtection()->getHidden() != Protection::PROTECTION_INHERIT) { $objWriter->writeAttribute('applyProtection', 'true'); diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php index 9ff29d45d..1e8ef5b43 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php @@ -4,109 +4,17 @@ use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Theme as SpreadsheetTheme; class Theme extends WriterPart { - /** - * Map of Major fonts to write. - * - * @var string[] - */ - private static $majorFonts = [ - 'Jpan' => 'MS Pゴシック', - 'Hang' => '맑은 고딕', - 'Hans' => '宋体', - 'Hant' => '新細明體', - 'Arab' => 'Times New Roman', - 'Hebr' => 'Times New Roman', - 'Thai' => 'Tahoma', - 'Ethi' => 'Nyala', - 'Beng' => 'Vrinda', - 'Gujr' => 'Shruti', - 'Khmr' => 'MoolBoran', - 'Knda' => 'Tunga', - 'Guru' => 'Raavi', - 'Cans' => 'Euphemia', - 'Cher' => 'Plantagenet Cherokee', - 'Yiii' => 'Microsoft Yi Baiti', - 'Tibt' => 'Microsoft Himalaya', - 'Thaa' => 'MV Boli', - 'Deva' => 'Mangal', - 'Telu' => 'Gautami', - 'Taml' => 'Latha', - 'Syrc' => 'Estrangelo Edessa', - 'Orya' => 'Kalinga', - 'Mlym' => 'Kartika', - 'Laoo' => 'DokChampa', - 'Sinh' => 'Iskoola Pota', - 'Mong' => 'Mongolian Baiti', - 'Viet' => 'Times New Roman', - 'Uigh' => 'Microsoft Uighur', - 'Geor' => 'Sylfaen', - ]; - - /** - * Map of Minor fonts to write. - * - * @var string[] - */ - private static $minorFonts = [ - 'Jpan' => 'MS Pゴシック', - 'Hang' => '맑은 고딕', - 'Hans' => '宋体', - 'Hant' => '新細明體', - 'Arab' => 'Arial', - 'Hebr' => 'Arial', - 'Thai' => 'Tahoma', - 'Ethi' => 'Nyala', - 'Beng' => 'Vrinda', - 'Gujr' => 'Shruti', - 'Khmr' => 'DaunPenh', - 'Knda' => 'Tunga', - 'Guru' => 'Raavi', - 'Cans' => 'Euphemia', - 'Cher' => 'Plantagenet Cherokee', - 'Yiii' => 'Microsoft Yi Baiti', - 'Tibt' => 'Microsoft Himalaya', - 'Thaa' => 'MV Boli', - 'Deva' => 'Mangal', - 'Telu' => 'Gautami', - 'Taml' => 'Latha', - 'Syrc' => 'Estrangelo Edessa', - 'Orya' => 'Kalinga', - 'Mlym' => 'Kartika', - 'Laoo' => 'DokChampa', - 'Sinh' => 'Iskoola Pota', - 'Mong' => 'Mongolian Baiti', - 'Viet' => 'Arial', - 'Uigh' => 'Microsoft Uighur', - 'Geor' => 'Sylfaen', - ]; - - /** - * Map of core colours. - * - * @var string[] - */ - private static $colourScheme = [ - 'dk2' => '1F497D', - 'lt2' => 'EEECE1', - 'accent1' => '4F81BD', - 'accent2' => 'C0504D', - 'accent3' => '9BBB59', - 'accent4' => '8064A2', - 'accent5' => '4BACC6', - 'accent6' => 'F79646', - 'hlink' => '0000FF', - 'folHlink' => '800080', - ]; - /** * Write theme to XML format. * * @return string XML Output */ - public function writeTheme() + public function writeTheme(Spreadsheet $spreadsheet) { // Create XML writer $objWriter = null; @@ -115,6 +23,7 @@ public function writeTheme() } else { $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY); } + $theme = $spreadsheet->getTheme(); // XML header $objWriter->startDocument('1.0', 'UTF-8', 'yes'); @@ -129,50 +38,39 @@ public function writeTheme() // a:clrScheme $objWriter->startElement('a:clrScheme'); - $objWriter->writeAttribute('name', 'Office'); - - // a:dk1 - $objWriter->startElement('a:dk1'); - - // a:sysClr - $objWriter->startElement('a:sysClr'); - $objWriter->writeAttribute('val', 'windowText'); - $objWriter->writeAttribute('lastClr', '000000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lt1 - $objWriter->startElement('a:lt1'); - - // a:sysClr - $objWriter->startElement('a:sysClr'); - $objWriter->writeAttribute('val', 'window'); - $objWriter->writeAttribute('lastClr', 'FFFFFF'); - $objWriter->endElement(); + $objWriter->writeAttribute('name', $theme->getThemeColorName()); - $objWriter->endElement(); - - // a:dk2 - $this->writeColourScheme($objWriter); + $this->writeColourScheme($objWriter, $theme); $objWriter->endElement(); // a:fontScheme $objWriter->startElement('a:fontScheme'); - $objWriter->writeAttribute('name', 'Office'); + $objWriter->writeAttribute('name', $theme->getThemeFontName()); // a:majorFont $objWriter->startElement('a:majorFont'); - $this->writeFonts($objWriter, 'Cambria', self::$majorFonts); - $objWriter->endElement(); + $this->writeFonts( + $objWriter, + $theme->getMajorFontLatin(), + $theme->getMajorFontEastAsian(), + $theme->getMajorFontComplexScript(), + $theme->getMajorFontSubstitutions() + ); + $objWriter->endElement(); // a:majorFont // a:minorFont $objWriter->startElement('a:minorFont'); - $this->writeFonts($objWriter, 'Calibri', self::$minorFonts); - $objWriter->endElement(); + $this->writeFonts( + $objWriter, + $theme->getMinorFontLatin(), + $theme->getMinorFontEastAsian(), + $theme->getMinorFontComplexScript(), + $theme->getMinorFontSubstitutions() + ); + $objWriter->endElement(); // a:minorFont - $objWriter->endElement(); + $objWriter->endElement(); // a:fontScheme // a:fmtScheme $objWriter->startElement('a:fmtScheme'); @@ -786,7 +684,7 @@ public function writeTheme() * * @param string[] $fontSet */ - private function writeFonts(XMLWriter $objWriter, string $latinFont, array $fontSet): void + private function writeFonts(XMLWriter $objWriter, string $latinFont, string $eastAsianFont, string $complexScriptFont, array $fontSet): void { // a:latin $objWriter->startElement('a:latin'); @@ -795,12 +693,12 @@ private function writeFonts(XMLWriter $objWriter, string $latinFont, array $font // a:ea $objWriter->startElement('a:ea'); - $objWriter->writeAttribute('typeface', ''); + $objWriter->writeAttribute('typeface', $eastAsianFont); $objWriter->endElement(); // a:cs $objWriter->startElement('a:cs'); - $objWriter->writeAttribute('typeface', ''); + $objWriter->writeAttribute('typeface', $complexScriptFont); $objWriter->endElement(); foreach ($fontSet as $fontScript => $typeface) { @@ -814,16 +712,33 @@ private function writeFonts(XMLWriter $objWriter, string $latinFont, array $font /** * Write colour scheme to XML format. */ - private function writeColourScheme(XMLWriter $objWriter): void + private function writeColourScheme(XMLWriter $objWriter, SpreadsheetTheme $theme): void { - foreach (self::$colourScheme as $colourName => $colourValue) { - $objWriter->startElement('a:' . $colourName); - - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', $colourValue); - $objWriter->endElement(); + $themeArray = $theme->getThemeColors(); + // a:dk1 + $objWriter->startElement('a:dk1'); + $objWriter->startElement('a:sysClr'); + $objWriter->writeAttribute('val', 'windowText'); + $objWriter->writeAttribute('lastClr', $themeArray['dk1'] ?? '000000'); + $objWriter->endElement(); // a:sysClr + $objWriter->endElement(); // a:dk1 - $objWriter->endElement(); + // a:lt1 + $objWriter->startElement('a:lt1'); + $objWriter->startElement('a:sysClr'); + $objWriter->writeAttribute('val', 'window'); + $objWriter->writeAttribute('lastClr', $themeArray['lt1'] ?? 'FFFFFF'); + $objWriter->endElement(); // a:sysClr + $objWriter->endElement(); // a:lt1 + + foreach ($themeArray as $colourName => $colourValue) { + if ($colourName !== 'dk1' && $colourName !== 'lt1') { + $objWriter->startElement('a:' . $colourName); + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', $colourValue); + $objWriter->endElement(); // a:srgbClr + $objWriter->endElement(); // a:$colourName + } } } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php index 53c451245..5e453b3d8 100644 --- a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php @@ -18,6 +18,18 @@ class Worksheet extends WriterPart { + /** @var string */ + private $numberStoredAsText = ''; + + /** @var string */ + private $formula = ''; + + /** @var string */ + private $twoDigitTextYear = ''; + + /** @var string */ + private $evalError = ''; + /** * Write worksheet to XML format. * @@ -28,6 +40,10 @@ class Worksheet extends WriterPart */ public function writeWorksheet(PhpspreadsheetWorksheet $worksheet, $stringTable = [], $includeCharts = false) { + $this->numberStoredAsText = ''; + $this->formula = ''; + $this->twoDigitTextYear = ''; + $this->evalError = ''; // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { @@ -118,6 +134,9 @@ public function writeWorksheet(PhpspreadsheetWorksheet $worksheet, $stringTable // AlternateContent $this->writeAlternateContent($objWriter, $worksheet); + // IgnoredErrors + $this->writeIgnoredErrors($objWriter); + // Table $this->writeTable($objWriter, $worksheet); @@ -131,6 +150,32 @@ public function writeWorksheet(PhpspreadsheetWorksheet $worksheet, $stringTable return $objWriter->getData(); } + private function writeIgnoredError(XMLWriter $objWriter, bool &$started, string $attr, string $cells): void + { + if ($cells !== '') { + if (!$started) { + $objWriter->startElement('ignoredErrors'); + $started = true; + } + $objWriter->startElement('ignoredError'); + $objWriter->writeAttribute('sqref', substr($cells, 1)); + $objWriter->writeAttribute($attr, '1'); + $objWriter->endElement(); + } + } + + private function writeIgnoredErrors(XMLWriter $objWriter): void + { + $started = false; + $this->writeIgnoredError($objWriter, $started, 'numberStoredAsText', $this->numberStoredAsText); + $this->writeIgnoredError($objWriter, $started, 'formula', $this->formula); + $this->writeIgnoredError($objWriter, $started, 'twoDigitTextYear', $this->twoDigitTextYear); + $this->writeIgnoredError($objWriter, $started, 'evalError', $this->evalError); + if ($started) { + $objWriter->endElement(); + } + } + /** * Write SheetPr. */ @@ -1134,7 +1179,20 @@ private function writeSheetData(XMLWriter $objWriter, PhpspreadsheetWorksheet $w array_pop($columnsInRow); foreach ($columnsInRow as $column) { // Write cell - $this->writeCell($objWriter, $worksheet, "{$column}{$currentRow}", $aFlippedStringTable); + $coord = "$column$currentRow"; + if ($worksheet->getCell($coord)->getIgnoredErrors()->getNumberStoredAsText()) { + $this->numberStoredAsText .= " $coord"; + } + if ($worksheet->getCell($coord)->getIgnoredErrors()->getFormula()) { + $this->formula .= " $coord"; + } + if ($worksheet->getCell($coord)->getIgnoredErrors()->getTwoDigitTextYear()) { + $this->twoDigitTextYear .= " $coord"; + } + if ($worksheet->getCell($coord)->getIgnoredErrors()->getEvalError()) { + $this->evalError .= " $coord"; + } + $this->writeCell($objWriter, $worksheet, $coord, $aFlippedStringTable); } } diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php new file mode 100644 index 000000000..886731ca9 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php @@ -0,0 +1,17 @@ +setEnableZip64(false); + $options->setOutputStream($fileHandle); + + return new ZipStream(null, $options); + } +} diff --git a/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php new file mode 100644 index 000000000..d9c8d0b16 --- /dev/null +++ b/api/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php @@ -0,0 +1,22 @@ +explicit_key_length) { - $length = strlen($key); - switch (true) { - case $length <= 16: - $this->key_length = 16; - break; - case $length <= 24: - $this->key_length = 24; - break; - default: - $this->key_length = 32; - } - $this->_setEngine(); + switch ($this->key_length) { + case 20: + $this->key_length = 24; + break; + case 28: + $this->key_length = 32; } } } diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php index 8822b9b88..ab5944cde 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php @@ -79,7 +79,11 @@ abstract class Base /** * Encrypt / decrypt using the Cipher Feedback mode (8bit) */ - const MODE_CFB8 = 38; + const MODE_CFB8 = 6; + /** + * Encrypt / decrypt using the Output Feedback mode (8bit) + */ + const MODE_OFB8 = 7; /** * Encrypt / decrypt using the Output Feedback mode. * @@ -152,7 +156,7 @@ abstract class Base * @var string * @access private */ - var $iv; + var $iv = ''; /** * A "sliding" Initialization Vector @@ -484,6 +488,7 @@ function __construct($mode = self::MODE_CBC) case self::MODE_CTR: case self::MODE_CFB: case self::MODE_CFB8: + case self::MODE_OFB8: case self::MODE_OFB: case self::MODE_STREAM: $this->mode = $mode; @@ -495,6 +500,46 @@ function __construct($mode = self::MODE_CBC) } $this->_setEngine(); + + // Determining whether inline crypting can be used by the cipher + if ($this->use_inline_crypt !== false) { + $this->use_inline_crypt = version_compare(PHP_VERSION, '5.3.0') >= 0 || function_exists('create_function'); + } + + if (!defined('PHP_INT_SIZE')) { + define('PHP_INT_SIZE', 4); + } + + if (!defined('CRYPT_BASE_USE_REG_INTVAL')) { + switch (true) { + // PHP_OS & "\xDF\xDF\xDF" == strtoupper(substr(PHP_OS, 0, 3)), but a lot faster + case (PHP_OS & "\xDF\xDF\xDF") === 'WIN': + case !function_exists('php_uname'): + case !is_string(php_uname('m')): + case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM': + case PHP_INT_SIZE == 8: + define('CRYPT_BASE_USE_REG_INTVAL', true); + break; + case (php_uname('m') & "\xDF\xDF\xDF") == 'ARM': + switch (true) { + /* PHP 7.0.0 introduced a bug that affected 32-bit ARM processors: + + https://github.com/php/php-src/commit/716da71446ebbd40fa6cf2cea8a4b70f504cc3cd + + altho the changelogs make no mention of it, this bug was fixed with this commit: + + https://github.com/php/php-src/commit/c1729272b17a1fe893d1a54e423d3b71470f3ee8 + + affected versions of PHP are: 7.0.x, 7.1.0 - 7.1.23 and 7.2.0 - 7.2.11 */ + case PHP_VERSION_ID >= 70000 && PHP_VERSION_ID <= 70123: + case PHP_VERSION_ID >= 70200 && PHP_VERSION_ID <= 70211: + define('CRYPT_BASE_USE_REG_INTVAL', false); + break; + default: + define('CRYPT_BASE_USE_REG_INTVAL', true); + } + } + } } /** @@ -588,6 +633,10 @@ function setKey($key) * $hash, $salt, $count, $dkLen * * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php + * {@link https://en.wikipedia.org/wiki/Bcrypt bcypt}: + * $salt, $rounds, $keylen + * + * This is a modified version of bcrypt used by OpenSSH. * * @see Crypt/Hash.php * @param string $password @@ -601,6 +650,28 @@ function setPassword($password, $method = 'pbkdf2') $key = ''; switch ($method) { + case 'bcrypt': + $func_args = func_get_args(); + + if (!isset($func_args[2])) { + return false; + } + + $salt = $func_args[2]; + + $rounds = isset($func_args[3]) ? $func_args[3] : 16; + $keylen = isset($func_args[4]) ? $func_args[4] : $this->key_length; + + $bf = new Blowfish(); + $key = $bf->bcrypt_pbkdf($password, $salt, $keylen + $this->block_size, $rounds); + if (!$key) { + return false; + } + + $this->setKey(substr($key, 0, $keylen)); + $this->setIV(substr($key, $keylen)); + + return true; default: // 'pbkdf2' or 'pbkdf1' $func_args = func_get_args(); @@ -773,6 +844,22 @@ function encrypt($plaintext) } } return $ciphertext; + case self::MODE_OFB8: + // OpenSSL has built in support for cfb8 but not ofb8 + $ciphertext = ''; + $len = strlen($plaintext); + $iv = $this->encryptIV; + + for ($i = 0; $i < $len; ++$i) { + $xor = openssl_encrypt($iv, $this->cipher_name_openssl_ecb, $this->key, $this->openssl_options, $this->decryptIV); + $ciphertext.= $plaintext[$i] ^ $xor; + $iv = substr($iv, 1) . $xor[0]; + } + + if ($this->continuousBuffer) { + $this->encryptIV = $iv; + } + break; case self::MODE_OFB: return $this->_openssl_ofb_process($plaintext, $this->encryptIV, $this->enbuffer); } @@ -896,8 +983,8 @@ function encrypt($plaintext) $block = substr($plaintext, $i, $block_size); if (strlen($block) > strlen($buffer['ciphertext'])) { $buffer['ciphertext'].= $this->_encryptBlock($xor); + $this->_increment_str($xor); } - $this->_increment_str($xor); $key = $this->_string_shift($buffer['ciphertext'], $block_size); $ciphertext.= $block ^ $key; } @@ -959,12 +1046,14 @@ function encrypt($plaintext) } break; case self::MODE_CFB8: + // compared to regular CFB, which encrypts a block at a time, + // here, we're encrypting a byte at a time $ciphertext = ''; $len = strlen($plaintext); $iv = $this->encryptIV; for ($i = 0; $i < $len; ++$i) { - $ciphertext .= ($c = $plaintext[$i] ^ $this->_encryptBlock($iv)); + $ciphertext.= ($c = $plaintext[$i] ^ $this->_encryptBlock($iv)); $iv = substr($iv, 1) . $c; } @@ -976,6 +1065,21 @@ function encrypt($plaintext) } } break; + case self::MODE_OFB8: + $ciphertext = ''; + $len = strlen($plaintext); + $iv = $this->encryptIV; + + for ($i = 0; $i < $len; ++$i) { + $xor = $this->_encryptBlock($iv); + $ciphertext.= $plaintext[$i] ^ $xor; + $iv = substr($iv, 1) . $xor[0]; + } + + if ($this->continuousBuffer) { + $this->encryptIV = $iv; + } + break; case self::MODE_OFB: $xor = $this->encryptIV; if (strlen($buffer['xor'])) { @@ -1067,7 +1171,7 @@ function decrypt($ciphertext) $plaintext = ''; if ($this->continuousBuffer) { $iv = &$this->decryptIV; - $pos = &$this->buffer['pos']; + $pos = &$this->debuffer['pos']; } else { $iv = $this->decryptIV; $pos = 0; @@ -1116,6 +1220,21 @@ function decrypt($ciphertext) } } break; + case self::MODE_OFB8: + $plaintext = ''; + $len = strlen($ciphertext); + $iv = $this->decryptIV; + + for ($i = 0; $i < $len; ++$i) { + $xor = openssl_encrypt($iv, $this->cipher_name_openssl_ecb, $this->key, $this->openssl_options, $this->decryptIV); + $plaintext.= $ciphertext[$i] ^ $xor; + $iv = substr($iv, 1) . $xor[0]; + } + + if ($this->continuousBuffer) { + $this->decryptIV = $iv; + } + break; case self::MODE_OFB: $plaintext = $this->_openssl_ofb_process($ciphertext, $this->decryptIV, $this->debuffer); } @@ -1290,7 +1409,7 @@ function decrypt($ciphertext) $iv = $this->decryptIV; for ($i = 0; $i < $len; ++$i) { - $plaintext .= $ciphertext[$i] ^ $this->_encryptBlock($iv); + $plaintext.= $ciphertext[$i] ^ $this->_encryptBlock($iv); $iv = substr($iv, 1) . $ciphertext[$i]; } @@ -1302,6 +1421,21 @@ function decrypt($ciphertext) } } break; + case self::MODE_OFB8: + $plaintext = ''; + $len = strlen($ciphertext); + $iv = $this->decryptIV; + + for ($i = 0; $i < $len; ++$i) { + $xor = $this->_encryptBlock($iv); + $plaintext.= $ciphertext[$i] ^ $xor; + $iv = substr($iv, 1) . $xor[0]; + } + + if ($this->continuousBuffer) { + $this->decryptIV = $iv; + } + break; case self::MODE_OFB: $xor = $this->decryptIV; if (strlen($buffer['xor'])) { @@ -1864,6 +1998,7 @@ function _setupMcrypt() self::MODE_CFB => 'ncfb', self::MODE_CFB8 => MCRYPT_MODE_CFB, self::MODE_OFB => MCRYPT_MODE_NOFB, + self::MODE_OFB8 => MCRYPT_MODE_OFB, self::MODE_STREAM => MCRYPT_MODE_STREAM, ); @@ -2009,6 +2144,13 @@ function _string_pop(&$string, $index = 1) */ function _increment_str(&$var) { + if (function_exists('sodium_increment')) { + $var = strrev($var); + sodium_increment($var); + $var = strrev($var); + return; + } + for ($i = 4; $i <= strlen($var); $i+= 4) { $temp = substr($var, -$i, 4); switch ($temp) { @@ -2446,7 +2588,7 @@ function _createInlineCryptFunction($cipher_code) for ($_i = 0; $_i < $_len; ++$_i) { $in = $_iv; '.$encrypt_block.' - $_ciphertext .= ($_c = $_text[$_i] ^ $in); + $_ciphertext.= ($_c = $_text[$_i] ^ $in); $_iv = substr($_iv, 1) . $_c; } @@ -2468,7 +2610,7 @@ function _createInlineCryptFunction($cipher_code) for ($_i = 0; $_i < $_len; ++$_i) { $in = $_iv; '.$encrypt_block.' - $_plaintext .= $_text[$_i] ^ $in; + $_plaintext.= $_text[$_i] ^ $in; $_iv = substr($_iv, 1) . $_text[$_i]; } @@ -2480,6 +2622,44 @@ function _createInlineCryptFunction($cipher_code) } } + return $_plaintext; + '; + break; + case self::MODE_OFB8: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + $_len = strlen($_text); + $_iv = $self->encryptIV; + + for ($_i = 0; $_i < $_len; ++$_i) { + $in = $_iv; + '.$encrypt_block.' + $_ciphertext.= $_text[$_i] ^ $in; + $_iv = substr($_iv, 1) . $in[0]; + } + + if ($self->continuousBuffer) { + $self->encryptIV = $_iv; + } + + return $_ciphertext; + '; + $decrypt = $init_encrypt . ' + $_plaintext = ""; + $_len = strlen($_text); + $_iv = $self->decryptIV; + + for ($_i = 0; $_i < $_len; ++$_i) { + $in = $_iv; + '.$encrypt_block.' + $_plaintext.= $_text[$_i] ^ $in; + $_iv = substr($_iv, 1) . $in[0]; + } + + if ($self->continuousBuffer) { + $self->decryptIV = $_iv; + } + return $_plaintext; '; break; @@ -2684,11 +2864,8 @@ function _hashInlineCryptFunction($bytes) */ function safe_intval($x) { - switch (true) { - case is_int($x): - // PHP 5.3, per http://php.net/releases/5_3_0.php, introduced "more consistent float rounding" - case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM': - return $x; + if (is_int($x)) { + return $x; } return (fmod($x, 0x80000000) & 0x7FFFFFFF) | ((fmod(floor($x / 0x80000000), 2) & 1) << 31); @@ -2702,15 +2879,12 @@ function safe_intval($x) */ function safe_intval_inline() { - switch (true) { - case defined('PHP_INT_SIZE') && PHP_INT_SIZE == 8: - case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM': - return '%s'; - break; - default: - $safeint = '(is_int($temp = %s) ? $temp : (fmod($temp, 0x80000000) & 0x7FFFFFFF) | '; - return $safeint . '((fmod(floor($temp / 0x80000000), 2) & 1) << 31))'; + if (CRYPT_BASE_USE_REG_INTVAL) { + return PHP_INT_SIZE == 4 ? 'intval(%s)' : '%s'; } + + $safeint = '(is_int($temp = %s) ? $temp : (fmod($temp, 0x80000000) & 0x7FFFFFFF) | '; + return $safeint . '((fmod(floor($temp / 0x80000000), 2) & 1) << 31))'; } /** @@ -2721,4 +2895,15 @@ function safe_intval_inline() function do_nothing() { } + + /** + * Is the continuous buffer enabled? + * + * @access public + * @return boolean + */ + function continuousBufferEnabled() + { + return $this->continuousBuffer; + } } diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php index 74cc49de8..346c064b8 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php @@ -11,6 +11,87 @@ * * - {@link http://en.wikipedia.org/wiki/Blowfish_(cipher) Wikipedia description of Blowfish} * + * # An overview of bcrypt vs Blowfish + * + * OpenSSH private keys use a customized version of bcrypt. Specifically, instead of + * encrypting OrpheanBeholderScryDoubt 64 times OpenSSH's bcrypt variant encrypts + * OxychromaticBlowfishSwatDynamite 64 times. so we can't use crypt(). + * + * bcrypt is basically Blowfish but instead of performing the key expansion once it performs + * the expansion 129 times for each round, with the first key expansion interleaving the salt + * and password. This renders OpenSSL unusable and forces us to use a pure-PHP implementation + * of blowfish. + * + * # phpseclib's four different _encryptBlock() implementations + * + * When using Blowfish as an encryption algorithm, _encryptBlock() is called 9 + 512 + + * (the number of blocks in the plaintext) times. + * + * Each of the first 9 calls to _encryptBlock() modify the P-array. Each of the next 512 + * calls modify the S-boxes. The remaining _encryptBlock() calls operate on the plaintext to + * produce the ciphertext. In the pure-PHP implementation of Blowfish these remaining + * _encryptBlock() calls are highly optimized through the use of eval(). Among other things, + * P-array lookups are eliminated by hard-coding the key-dependent P-array values, and thus we + * have explained 2 of the 4 different _encryptBlock() implementations. + * + * With bcrypt things are a bit different. _encryptBlock() is called 1,079,296 times, + * assuming 16 rounds (which is what OpenSSH's bcrypt defaults to). The eval()-optimized + * _encryptBlock() isn't as beneficial because the P-array values are not constant. Well, they + * are constant, but only for, at most, 777 _encryptBlock() calls, which is equivalent to ~6KB + * of data. The average length of back to back _encryptBlock() calls with a fixed P-array is + * 514.12, which is ~4KB of data. Creating an eval()-optimized _encryptBlock() has an upfront + * cost, which is CPU dependent and is probably not going to be worth it for just ~4KB of + * data. Conseqeuently, bcrypt does not benefit from the eval()-optimized _encryptBlock(). + * + * The regular _encryptBlock() does unpack() and pack() on every call, as well, and that can + * begin to add up after one million function calls. + * + * In theory, one might think that it might be beneficial to rewrite all block ciphers so + * that, instead of passing strings to _encryptBlock(), you convert the string to an array of + * integers and then pass successive subarrays of that array to _encryptBlock. This, however, + * kills PHP's memory use. Like let's say you have a 1MB long string. After doing + * $in = str_repeat('a', 1024 * 1024); PHP's memory utilization jumps up by ~1MB. After doing + * $blocks = str_split($in, 4); it jumps up by an additional ~16MB. After + * $blocks = array_map(fn($x) => unpack('N*', $x), $blocks); it jumps up by an additional + * ~90MB, yielding a 106x increase in memory usage. Consequently, it bcrypt calls a different + * _encryptBlock() then the regular Blowfish does. That said, the Blowfish _encryptBlock() is + * basically just a thin wrapper around the bcrypt _encryptBlock(), so there's that. + * + * This explains 3 of the 4 _encryptBlock() implementations. the last _encryptBlock() + * implementation can best be understood by doing Ctrl + F and searching for where + * CRYPT_BASE_USE_REG_INTVAL is defined. + * + * # phpseclib's three different _setupKey() implementations + * + * Every bcrypt round is the equivalent of encrypting 512KB of data. Since OpenSSH uses 16 + * rounds by default that's ~8MB of data that's essentially being encrypted whenever + * you use bcrypt. That's a lot of data, however, bcrypt operates within tighter constraints + * than regular Blowfish, so we can use that to our advantage. In particular, whereas Blowfish + * supports variable length keys, in bcrypt, the initial "key" is the sha512 hash of the + * password. sha512 hashes are 512 bits or 64 bytes long and thus the bcrypt keys are of a + * fixed length whereas Blowfish keys are not of a fixed length. + * + * bcrypt actually has two different key expansion steps. The first one (expandstate) is + * constantly XOR'ing every _encryptBlock() parameter against the salt prior _encryptBlock()'s + * being called. The second one (expand0state) is more similar to Blowfish's _setupKey() + * but it can still use the fixed length key optimization discussed above and can do away with + * the pack() / unpack() calls. + * + * I suppose _setupKey() could be made to be a thin wrapper around expandstate() but idk it's + * just a lot of work for very marginal benefits as _setupKey() is only called once for + * regular Blowfish vs the 128 times it's called --per round-- with bcrypt. + * + * # blowfish + bcrypt in the same class + * + * Altho there's a lot of Blowfish code that bcrypt doesn't re-use, bcrypt does re-use the + * initial S-boxes, the initial P-array and the int-only _encryptBlock() implementation. + * + * # Credit + * + * phpseclib's bcrypt implementation is based losely off of OpenSSH's implementation: + * + * https://github.com/openssh/openssh-portable/blob/master/openbsd-compat/bcrypt_pbkdf.c + * * Here's a short example of how to use this library: * * sbox0 = array_map('intval', $this->sbox0); + $this->sbox1 = array_map('intval', $this->sbox1); + $this->sbox2 = array_map('intval', $this->sbox2); + $this->sbox3 = array_map('intval', $this->sbox3); + $this->parray = array_map('intval', $this->parray); + } + /** * Sets the key length. * @@ -317,6 +442,12 @@ function setKeyLength($length) function isValidEngine($engine) { if ($engine == self::ENGINE_OPENSSL) { + // quoting https://www.openssl.org/news/openssl-3.0-notes.html, OpenSSL 3.0.1 + // "Moved all variations of the EVP ciphers CAST5, BF, IDEA, SEED, RC2, RC4, RC5, and DES to the legacy provider" + // in theory openssl_get_cipher_methods() should catch this but, on GitHub Actions, at least, it does not + if (defined('OPENSSL_VERSION_TEXT') && version_compare(preg_replace('#OpenSSL (\d+\.\d+\.\d+) .*#', '$1', OPENSSL_VERSION_TEXT), '3.0.1', '>=')) { + return false; + } if (version_compare(PHP_VERSION, '5.3.7') < 0 && $this->key_length != 16) { return false; } @@ -358,6 +489,7 @@ function _setupKey() // unpack binary string in unsigned chars $key = array_values(unpack('C*', $this->key)); $keyl = count($key); + // with bcrypt $keyl will always be 16 (because the key is the sha512 of the key you provide) for ($j = 0, $i = 0; $i < 18; ++$i) { // xor P1 with the first 32-bits of the key, xor P2 with the second 32-bits ... for ($data = 0, $k = 0; $k < 4; ++$k) { @@ -366,7 +498,7 @@ function _setupKey() $j = 0; } } - $this->bctx['p'][] = $this->parray[$i] ^ $data; + $this->bctx['p'][] = $this->parray[$i] ^ intval($data); } // encrypt the zero-string, replace P1 and P2 with the encrypted data, @@ -386,6 +518,230 @@ function _setupKey() } } + /** + * bcrypt + * + * @param string $sha2pass + * @param string $sha2salt + * @access private + * @return string + */ + function _bcrypt_hash($sha2pass, $sha2salt) + { + $p = $this->parray; + $sbox0 = $this->sbox0; + $sbox1 = $this->sbox1; + $sbox2 = $this->sbox2; + $sbox3 = $this->sbox3; + + $cdata = array_values(unpack('N*', 'OxychromaticBlowfishSwatDynamite')); + $sha2pass = array_values(unpack('N*', $sha2pass)); + $sha2salt = array_values(unpack('N*', $sha2salt)); + + $this->_expandstate($sha2salt, $sha2pass, $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 0; $i < 64; $i++) { + $this->_expand0state($sha2salt, $sbox0, $sbox1, $sbox2, $sbox3, $p); + $this->_expand0state($sha2pass, $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + for ($i = 0; $i < 64; $i++) { + for ($j = 0; $j < 8; $j+= 2) { // count($cdata) == 8 + list($cdata[$j], $cdata[$j + 1]) = $this->_encryptBlockHelperFast($cdata[$j], $cdata[$j + 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + } + + $output = ''; + for ($i = 0; $i < count($cdata); $i++) { + $output.= pack('L*', $cdata[$i]); + } + return $output; + } + + /** + * Performs OpenSSH-style bcrypt + * + * @param string $pass + * @param string $salt + * @param int $keylen + * @param int $rounds + * @access public + * @return false|string + */ + function bcrypt_pbkdf($pass, $salt, $keylen, $rounds) + { + if (PHP_INT_SIZE == 4) { + user_error('bcrypt is far too slow to be practical on 32-bit versions of PHP'); + return false; + } + + if (!isset($this->sha512)) { + $this->sha512 = new Hash('sha512'); + } + + $sha2pass = $this->sha512->hash($pass); + $results = array(); + $count = 1; + while (32 * count($results) < $keylen) { + $countsalt = $salt . pack('N', $count++); + $sha2salt = $this->sha512->hash($countsalt); + $out = $tmpout = $this->_bcrypt_hash($sha2pass, $sha2salt); + for ($i = 1; $i < $rounds; $i++) { + $sha2salt = $this->sha512->hash($tmpout); + $tmpout = $this->_bcrypt_hash($sha2pass, $sha2salt); + $out^= $tmpout; + } + $results[] = $out; + } + $output = ''; + for ($i = 0; $i < 32; $i++) { + foreach ($results as $result) { + $output.= $result[$i]; + } + } + return substr($output, 0, $keylen); + } + + /** + * Key expansion without salt + * + * @access private + * @param int[] $key + * @param int[] $sbox0 + * @param int[] $sbox1 + * @param int[] $sbox2 + * @param int[] $sbox3 + * @param int[] $p + * @see self::_bcrypt_hash() + */ + function _expand0state($key, &$sbox0, &$sbox1, &$sbox2, &$sbox3, &$p) + { + // expand0state is basically the same thing as this: + //return $this->_expandstate(array_fill(0, 16, 0), $key); + // but this separate function eliminates a bunch of XORs and array lookups + + $p = array( + $p[0] ^ $key[0], + $p[1] ^ $key[1], + $p[2] ^ $key[2], + $p[3] ^ $key[3], + $p[4] ^ $key[4], + $p[5] ^ $key[5], + $p[6] ^ $key[6], + $p[7] ^ $key[7], + $p[8] ^ $key[8], + $p[9] ^ $key[9], + $p[10] ^ $key[10], + $p[11] ^ $key[11], + $p[12] ^ $key[12], + $p[13] ^ $key[13], + $p[14] ^ $key[14], + $p[15] ^ $key[15], + $p[16] ^ $key[0], + $p[17] ^ $key[1] + ); + + // @codingStandardsIgnoreStart + list( $p[0], $p[1]) = $this->_encryptBlockHelperFast( 0, 0, $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[2], $p[3]) = $this->_encryptBlockHelperFast($p[ 0], $p[ 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[4], $p[5]) = $this->_encryptBlockHelperFast($p[ 2], $p[ 3], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[6], $p[7]) = $this->_encryptBlockHelperFast($p[ 4], $p[ 5], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[8], $p[9]) = $this->_encryptBlockHelperFast($p[ 6], $p[ 7], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[10], $p[11]) = $this->_encryptBlockHelperFast($p[ 8], $p[ 9], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[12], $p[13]) = $this->_encryptBlockHelperFast($p[10], $p[11], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[14], $p[15]) = $this->_encryptBlockHelperFast($p[12], $p[13], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[16], $p[17]) = $this->_encryptBlockHelperFast($p[14], $p[15], $sbox0, $sbox1, $sbox2, $sbox3, $p); + // @codingStandardsIgnoreEnd + + list($sbox0[0], $sbox0[1]) = $this->_encryptBlockHelperFast($p[16], $p[17], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2; $i < 256; $i+= 2) { + list($sbox0[$i], $sbox0[$i + 1]) = $this->_encryptBlockHelperFast($sbox0[$i - 2], $sbox0[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + list($sbox1[0], $sbox1[1]) = $this->_encryptBlockHelperFast($sbox0[254], $sbox0[255], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2; $i < 256; $i+= 2) { + list($sbox1[$i], $sbox1[$i + 1]) = $this->_encryptBlockHelperFast($sbox1[$i - 2], $sbox1[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + list($sbox2[0], $sbox2[1]) = $this->_encryptBlockHelperFast($sbox1[254], $sbox1[255], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2; $i < 256; $i+= 2) { + list($sbox2[$i], $sbox2[$i + 1]) = $this->_encryptBlockHelperFast($sbox2[$i - 2], $sbox2[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + list($sbox3[0], $sbox3[1]) = $this->_encryptBlockHelperFast($sbox2[254], $sbox2[255], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2; $i < 256; $i+= 2) { + list($sbox3[$i], $sbox3[$i + 1]) = $this->_encryptBlockHelperFast($sbox3[$i - 2], $sbox3[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + } + + /** + * Key expansion with salt + * + * @access private + * @param int[] $data + * @param int[] $key + * @param int[] $sbox0 + * @param int[] $sbox1 + * @param int[] $sbox2 + * @param int[] $sbox3 + * @param int[] $p + * @see self::_bcrypt_hash() + */ + function _expandstate($data, $key, &$sbox0, &$sbox1, &$sbox2, &$sbox3, &$p) + { + $p = array( + $p[0] ^ $key[0], + $p[1] ^ $key[1], + $p[2] ^ $key[2], + $p[3] ^ $key[3], + $p[4] ^ $key[4], + $p[5] ^ $key[5], + $p[6] ^ $key[6], + $p[7] ^ $key[7], + $p[8] ^ $key[8], + $p[9] ^ $key[9], + $p[10] ^ $key[10], + $p[11] ^ $key[11], + $p[12] ^ $key[12], + $p[13] ^ $key[13], + $p[14] ^ $key[14], + $p[15] ^ $key[15], + $p[16] ^ $key[0], + $p[17] ^ $key[1] + ); + + // @codingStandardsIgnoreStart + list( $p[0], $p[1]) = $this->_encryptBlockHelperFast($data[ 0] , $data[ 1] , $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[2], $p[3]) = $this->_encryptBlockHelperFast($data[ 2] ^ $p[ 0], $data[ 3] ^ $p[ 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[4], $p[5]) = $this->_encryptBlockHelperFast($data[ 4] ^ $p[ 2], $data[ 5] ^ $p[ 3], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[6], $p[7]) = $this->_encryptBlockHelperFast($data[ 6] ^ $p[ 4], $data[ 7] ^ $p[ 5], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list( $p[8], $p[9]) = $this->_encryptBlockHelperFast($data[ 8] ^ $p[ 6], $data[ 9] ^ $p[ 7], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[10], $p[11]) = $this->_encryptBlockHelperFast($data[10] ^ $p[ 8], $data[11] ^ $p[ 9], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[12], $p[13]) = $this->_encryptBlockHelperFast($data[12] ^ $p[10], $data[13] ^ $p[11], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[14], $p[15]) = $this->_encryptBlockHelperFast($data[14] ^ $p[12], $data[15] ^ $p[13], $sbox0, $sbox1, $sbox2, $sbox3, $p); + list($p[16], $p[17]) = $this->_encryptBlockHelperFast($data[ 0] ^ $p[14], $data[ 1] ^ $p[15], $sbox0, $sbox1, $sbox2, $sbox3, $p); + // @codingStandardsIgnoreEnd + + list($sbox0[0], $sbox0[1]) = $this->_encryptBlockHelperFast($data[2] ^ $p[16], $data[3] ^ $p[17], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2, $j = 4; $i < 256; $i+= 2, $j = ($j + 2) % 16) { // instead of 16 maybe count($data) would be better? + list($sbox0[$i], $sbox0[$i + 1]) = $this->_encryptBlockHelperFast($data[$j] ^ $sbox0[$i - 2], $data[$j + 1] ^ $sbox0[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + list($sbox1[0], $sbox1[1]) = $this->_encryptBlockHelperFast($data[2] ^ $sbox0[254], $data[3] ^ $sbox0[255], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2, $j = 4; $i < 256; $i+= 2, $j = ($j + 2) % 16) { + list($sbox1[$i], $sbox1[$i + 1]) = $this->_encryptBlockHelperFast($data[$j] ^ $sbox1[$i - 2], $data[$j + 1] ^ $sbox1[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + list($sbox2[0], $sbox2[1]) = $this->_encryptBlockHelperFast($data[2] ^ $sbox1[254], $data[3] ^ $sbox1[255], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2, $j = 4; $i < 256; $i+= 2, $j = ($j + 2) % 16) { + list($sbox2[$i], $sbox2[$i + 1]) = $this->_encryptBlockHelperFast($data[$j] ^ $sbox2[$i - 2], $data[$j + 1] ^ $sbox2[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + + list($sbox3[0], $sbox3[1]) = $this->_encryptBlockHelperFast($data[2] ^ $sbox2[254], $data[3] ^ $sbox2[255], $sbox0, $sbox1, $sbox2, $sbox3, $p); + for ($i = 2, $j = 4; $i < 256; $i+= 2, $j = ($j + 2) % 16) { + list($sbox3[$i], $sbox3[$i + 1]) = $this->_encryptBlockHelperFast($data[$j] ^ $sbox3[$i - 2], $data[$j + 1] ^ $sbox3[$i - 1], $sbox0, $sbox1, $sbox2, $sbox3, $p); + } + } + /** * Encrypts a block * @@ -406,18 +762,84 @@ function _encryptBlock($in) $l = $in[1]; $r = $in[2]; - for ($i = 0; $i < 16; $i+= 2) { - $l^= $p[$i]; - $r^= $this->safe_intval(($this->safe_intval($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff]) ^ - $sb_2[$l >> 8 & 0xff]) + - $sb_3[$l & 0xff]); + list($r, $l) = PHP_INT_SIZE === 8 ? + $this->_encryptBlockHelperFast($l, $r, $sb_0, $sb_1, $sb_2, $sb_3, $p) : + $this->_encryptBlockHelperSlow($l, $r, $sb_0, $sb_1, $sb_2, $sb_3, $p); - $r^= $p[$i + 1]; - $l^= $this->safe_intval(($this->safe_intval($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff]) ^ - $sb_2[$r >> 8 & 0xff]) + - $sb_3[$r & 0xff]); - } - return pack("N*", $r ^ $p[17], $l ^ $p[16]); + return pack("N*", $r, $l); + } + + /** + * Fast helper function for block encryption + * + * @access private + * @param int $x0 + * @param int $x1 + * @param int[] $sbox0 + * @param int[] $sbox1 + * @param int[] $sbox2 + * @param int[] $sbox3 + * @param int[] $p + * @return int[] + */ + function _encryptBlockHelperFast($x0, $x1, $sbox0, $sbox1, $sbox2, $sbox3, $p) + { + $x0 ^= $p[0]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[1]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[2]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[3]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[4]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[5]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[6]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[7]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[8]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[9]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[10]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[11]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[12]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[13]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[14]; + $x1 ^= ((($sbox0[($x0 & 0xFF000000) >> 24] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[15]; + $x0 ^= ((($sbox0[($x1 & 0xFF000000) >> 24] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[16]; + + return array($x1 & 0xFFFFFFFF ^ $p[17], $x0 & 0xFFFFFFFF); + } + + /** + * Slow helper function for block encryption + * + * @access private + * @param int $x0 + * @param int $x1 + * @param int[] $sbox0 + * @param int[] $sbox1 + * @param int[] $sbox2 + * @param int[] $sbox3 + * @param int[] $p + * @return int[] + */ + function _encryptBlockHelperSlow($x0, $x1, $sbox0, $sbox1, $sbox2, $sbox3, $p) + { + // -16777216 == intval(0xFF000000) on 32-bit PHP installs + $x0^= $p[0]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[1]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[2]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[3]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[4]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[5]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[6]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[7]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[8]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[9]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[10]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[11]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[12]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[13]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[14]; + $x1^= $this->safe_intval(($this->safe_intval($sbox0[(($x0 & -16777216) >> 24) & 0xFF] + $sbox1[($x0 & 0xFF0000) >> 16]) ^ $sbox2[($x0 & 0xFF00) >> 8]) + $sbox3[$x0 & 0xFF]) ^ $p[15]; + $x0^= $this->safe_intval(($this->safe_intval($sbox0[(($x1 & -16777216) >> 24) & 0xFF] + $sbox1[($x1 & 0xFF0000) >> 16]) ^ $sbox2[($x1 & 0xFF00) >> 8]) + $sbox3[$x1 & 0xFF]) ^ $p[16]; + + return array($x1 ^ $p[17], $x0); } /** diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php index 9a8225fb5..26bd385f5 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php @@ -592,6 +592,12 @@ function isValidEngine($engine) { if ($this->key_length_max == 8) { if ($engine == self::ENGINE_OPENSSL) { + // quoting https://www.openssl.org/news/openssl-3.0-notes.html, OpenSSL 3.0.1 + // "Moved all variations of the EVP ciphers CAST5, BF, IDEA, SEED, RC2, RC4, RC5, and DES to the legacy provider" + // in theory openssl_get_cipher_methods() should catch this but, on GitHub Actions, at least, it does not + if (defined('OPENSSL_VERSION_TEXT') && version_compare(preg_replace('#OpenSSL (\d+\.\d+\.\d+) .*#', '$1', OPENSSL_VERSION_TEXT), '3.0.1', '>=')) { + return false; + } $this->cipher_name_openssl_ecb = 'des-ecb'; $this->cipher_name_openssl = 'des-' . $this->_openssl_translate_mode(); } @@ -1246,9 +1252,9 @@ function _setupKey() $pc2mapd3[($d >> 8) & 0xFF] | $pc2mapd4[ $d & 0xFF]; // Reorder: odd bytes/even bytes. Push the result in key schedule. - $val1 = ( $cp & 0xFF000000) | (($cp << 8) & 0x00FF0000) | + $val1 = ( $cp & intval(0xFF000000)) | (($cp << 8) & 0x00FF0000) | (($dp >> 16) & 0x0000FF00) | (($dp >> 8) & 0x000000FF); - $val2 = (($cp << 8) & 0xFF000000) | (($cp << 16) & 0x00FF0000) | + $val2 = (($cp << 8) & intval(0xFF000000)) | (($cp << 16) & 0x00FF0000) | (($dp >> 8) & 0x0000FF00) | ( $dp & 0x000000FF); $keys[$des_round][self::ENCRYPT][ ] = $val1; $keys[$des_round][self::DECRYPT][$ki - 1] = $val1; diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php index 248b65ef7..5e5d13d4c 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php @@ -866,7 +866,7 @@ function _add() $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument; } - if ((php_uname('m') & "\xDF\xDF\xDF") != 'ARM') { + if (function_exists('php_uname') && is_string(php_uname('m')) && (php_uname('m') & "\xDF\xDF\xDF") != 'ARM') { return fmod($result, $mod); } diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php index b2b9d48ea..e0511b32f 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php @@ -72,7 +72,7 @@ class RC2 extends Base * @var string * @access private */ - var $orig_key; + var $orig_key = ''; /** * Don't truncate / null pad key @@ -273,6 +273,12 @@ function isValidEngine($engine) { switch ($engine) { case self::ENGINE_OPENSSL: + // quoting https://www.openssl.org/news/openssl-3.0-notes.html, OpenSSL 3.0.1 + // "Moved all variations of the EVP ciphers CAST5, BF, IDEA, SEED, RC2, RC4, RC5, and DES to the legacy provider" + // in theory openssl_get_cipher_methods() should catch this but, on GitHub Actions, at least, it does not + if (defined('OPENSSL_VERSION_TEXT') && version_compare(preg_replace('#OpenSSL (\d+\.\d+\.\d+) .*#', '$1', OPENSSL_VERSION_TEXT), '3.0.1', '>=')) { + return false; + } if ($this->current_key_length != 128 || strlen($this->orig_key) < 16) { return false; } diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php index 25e4ff854..2e5c05567 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php @@ -144,7 +144,13 @@ function __construct() */ function isValidEngine($engine) { - if ($engine == Base::ENGINE_OPENSSL) { + if ($engine == self::ENGINE_OPENSSL) { + // quoting https://www.openssl.org/news/openssl-3.0-notes.html, OpenSSL 3.0.1 + // "Moved all variations of the EVP ciphers CAST5, BF, IDEA, SEED, RC2, RC4, RC5, and DES to the legacy provider" + // in theory openssl_get_cipher_methods() should catch this but, on GitHub Actions, at least, it does not + if (defined('OPENSSL_VERSION_TEXT') && version_compare(preg_replace('#OpenSSL (\d+\.\d+\.\d+) .*#', '$1', OPENSSL_VERSION_TEXT), '3.0.1', '>=')) { + return false; + } if (version_compare(PHP_VERSION, '5.3.7') >= 0) { $this->cipher_name_openssl = 'rc4-40'; } else { @@ -222,7 +228,7 @@ function setKeyLength($length) */ function encrypt($plaintext) { - if ($this->engine != Base::ENGINE_INTERNAL) { + if ($this->engine != self::ENGINE_INTERNAL) { return parent::encrypt($plaintext); } return $this->_crypt($plaintext, self::ENCRYPT); @@ -242,7 +248,7 @@ function encrypt($plaintext) */ function decrypt($ciphertext) { - if ($this->engine != Base::ENGINE_INTERNAL) { + if ($this->engine != self::ENGINE_INTERNAL) { return parent::decrypt($ciphertext); } return $this->_crypt($ciphertext, self::DECRYPT); diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php index e26fe41dd..fec689585 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php @@ -470,7 +470,7 @@ function __construct() case defined('MATH_BIGINTEGER_OPENSSL_DISABLE'): define('CRYPT_RSA_MODE', self::MODE_INTERNAL); break; - case extension_loaded('openssl') && file_exists($this->configFile): + case function_exists('phpinfo') && extension_loaded('openssl') && file_exists($this->configFile): // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work $versions = array(); @@ -570,6 +570,7 @@ function createKey($bits = 1024, $timeout = false, $partial = array()) $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, self::PUBLIC_FORMAT_PKCS1))); // clear the buffer of error strings stemming from a minimalistic openssl.cnf + // https://github.com/php/php-src/issues/11054 talks about other errors this'll pick up while (openssl_error_string() !== false) { } @@ -878,9 +879,9 @@ function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) ); $key = "openssh-key-v1\0$key"; - return "-----BEGIN OPENSSH PRIVATE KEY-----\r\n" . - chunk_split(base64_encode($key), 70) . - "-----END OPENSSH PRIVATE KEY-----"; + return "-----BEGIN OPENSSH PRIVATE KEY-----\n" . + chunk_split(base64_encode($key), 70, "\n") . + "-----END OPENSSH PRIVATE KEY-----\n"; default: // eg. self::PRIVATE_FORMAT_PKCS1 $components = array(); foreach ($raw as $name => $value) { @@ -1388,6 +1389,10 @@ function. As is, the definitive authority on this encoding scheme isn't the IET // http://en.wikipedia.org/wiki/XML_Signature case self::PRIVATE_FORMAT_XML: case self::PUBLIC_FORMAT_XML: + if (!extension_loaded('xml')) { + return false; + } + $this->components = array(); $xml = xml_parser_create('UTF-8'); @@ -1405,11 +1410,18 @@ function. As is, the definitive authority on this encoding scheme isn't the IET unset($xml); return isset($this->components['modulus']) && isset($this->components['publicExponent']) ? $this->components : false; - // from PuTTY's SSHPUBK.C + // see PuTTY's SSHPUBK.C and https://tartarus.org/~simon/putty-snapshots/htmldoc/AppendixC.html case self::PRIVATE_FORMAT_PUTTY: $components = array(); $key = preg_split('#\r\n|\r|\n#', $key); - $type = trim(preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0])); + if ($this->_string_shift($key[0], strlen('PuTTY-User-Key-File-')) != 'PuTTY-User-Key-File-') { + return false; + } + $version = (int) $this->_string_shift($key[0], 3); // should be either "2: " or "3: 0" prior to int casting + if ($version != 2 && $version != 3) { + return false; + } + $type = rtrim($key[0]); if ($type != 'ssh-rsa') { return false; } @@ -1424,23 +1436,55 @@ function. As is, the definitive authority on this encoding scheme isn't the IET extract(unpack('Nlength', $this->_string_shift($public, 4))); $components['modulus'] = new BigInteger($this->_string_shift($public, $length), -256); - $privateLength = trim(preg_replace('#Private-Lines: (\d+)#', '$1', $key[$publicLength + 4])); - $private = base64_decode(implode('', array_map('trim', array_slice($key, $publicLength + 5, $privateLength)))); - + $offset = $publicLength + 4; switch ($encryption) { case 'aes256-cbc': - $symkey = ''; - $sequence = 0; - while (strlen($symkey) < 32) { - $temp = pack('Na*', $sequence++, $this->password); - $symkey.= pack('H*', sha1($temp)); - } - $symkey = substr($symkey, 0, 32); $crypto = new AES(); + switch ($version) { + case 3: + if (!function_exists('sodium_crypto_pwhash')) { + return false; + } + $flavour = trim(preg_replace('#Key-Derivation: (.*)#', '$1', $key[$offset++])); + switch ($flavour) { + case 'Argon2i': + $flavour = SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13; + break; + case 'Argon2id': + $flavour = SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13; + break; + default: + return false; + } + $memory = trim(preg_replace('#Argon2-Memory: (\d+)#', '$1', $key[$offset++])); + $passes = trim(preg_replace('#Argon2-Passes: (\d+)#', '$1', $key[$offset++])); + $parallelism = trim(preg_replace('#Argon2-Parallelism: (\d+)#', '$1', $key[$offset++])); + $salt = pack('H*', trim(preg_replace('#Argon2-Salt: ([0-9a-f]+)#', '$1', $key[$offset++]))); + + $length = 80; // keylen + ivlen + mac_keylen + $temp = sodium_crypto_pwhash($length, $this->password, $salt, $passes, $memory << 10, $flavour); + + $symkey = substr($temp, 0, 32); + $symiv = substr($temp, 32, 16); + break; + case 2: + $symkey = ''; + $sequence = 0; + while (strlen($symkey) < 32) { + $temp = pack('Na*', $sequence++, $this->password); + $symkey.= pack('H*', sha1($temp)); + } + $symkey = substr($symkey, 0, 32); + $symiv = str_repeat("\0", 16); + } } + $privateLength = trim(preg_replace('#Private-Lines: (\d+)#', '$1', $key[$offset++])); + $private = base64_decode(implode('', array_map('trim', array_slice($key, $offset, $privateLength)))); + if ($encryption != 'none') { $crypto->setKey($symkey); + $crypto->setIV($symiv); $crypto->disablePadding(); $private = $crypto->decrypt($private); if ($private === false) { @@ -1483,14 +1527,44 @@ function. As is, the definitive authority on this encoding scheme isn't the IET if ($magic !== "openssh-key-v1\0") { return false; } - $options = $this->_string_shift($decoded, 24); - // \0\0\0\4none = ciphername - // \0\0\0\4none = kdfname - // \0\0\0\0 = kdfoptions - // \0\0\0\1 = numkeys - if ($options != "\0\0\0\4none\0\0\0\4none\0\0\0\0\0\0\0\1") { + extract(unpack('Nlength', $this->_string_shift($decoded, 4))); + if (strlen($decoded) < $length) { + return false; + } + $ciphername = $this->_string_shift($decoded, $length); + extract(unpack('Nlength', $this->_string_shift($decoded, 4))); + if (strlen($decoded) < $length) { + return false; + } + $kdfname = $this->_string_shift($decoded, $length); + extract(unpack('Nlength', $this->_string_shift($decoded, 4))); + if (strlen($decoded) < $length) { + return false; + } + $kdfoptions = $this->_string_shift($decoded, $length); + extract(unpack('Nnumkeys', $this->_string_shift($decoded, 4))); + if ($numkeys != 1 || ($ciphername != 'none' && $kdfname != 'bcrypt')) { return false; } + switch ($ciphername) { + case 'none': + break; + case 'aes256-ctr': + extract(unpack('Nlength', $this->_string_shift($kdfoptions, 4))); + if (strlen($kdfoptions) < $length) { + return false; + } + $salt = $this->_string_shift($kdfoptions, $length); + extract(unpack('Nrounds', $this->_string_shift($kdfoptions, 4))); + $crypto = new AES(AES::MODE_CTR); + $crypto->disablePadding(); + if (!$crypto->setPassword($this->password, 'bcrypt', $salt, $rounds, 32)) { + return false; + } + break; + default: + return false; + } extract(unpack('Nlength', $this->_string_shift($decoded, 4))); if (strlen($decoded) < $length) { return false; @@ -1500,12 +1574,16 @@ function. As is, the definitive authority on this encoding scheme isn't the IET if (strlen($decoded) < $length) { return false; } - $paddedKey = $this->_string_shift($decoded, $length); if ($this->_string_shift($publicKey, 11) !== "\0\0\0\7ssh-rsa") { return false; } + $paddedKey = $this->_string_shift($decoded, $length); + if (isset($crypto)) { + $paddedKey = $crypto->decrypt($paddedKey); + } + $checkint1 = $this->_string_shift($paddedKey, 4); $checkint2 = $this->_string_shift($paddedKey, 4); if (strlen($checkint1) != 4 || $checkint1 !== $checkint2) { diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php index 8f53eb319..e039340c5 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php @@ -151,7 +151,10 @@ static function string($length) (isset($_POST) ? phpseclib_safe_serialize($_POST) : '') . (isset($_GET) ? phpseclib_safe_serialize($_GET) : '') . (isset($_COOKIE) ? phpseclib_safe_serialize($_COOKIE) : '') . - phpseclib_safe_serialize($GLOBALS) . + // as of PHP 8.1 $GLOBALS can't be accessed by reference, which eliminates + // the need for phpseclib_safe_serialize. see https://wiki.php.net/rfc/restrict_globals_usage + // for more info + (version_compare(PHP_VERSION, '8.1.0', '>=') ? serialize($GLOBALS) : phpseclib_safe_serialize($GLOBALS)) . phpseclib_safe_serialize($_SESSION) . phpseclib_safe_serialize($_OLD_SESSION) )); diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php index 3648a1972..4665738e1 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php @@ -340,7 +340,7 @@ function _encryptBlock($in) $k = $c[2]; $l = $c[3]; while ($i < $Nb) { - $temp[$i] = ($state[$i] & 0xFF000000) ^ + $temp[$i] = ($state[$i] & intval(0xFF000000)) ^ ($state[$j] & 0x00FF0000) ^ ($state[$k] & 0x0000FF00) ^ ($state[$l] & 0x000000FF) ^ @@ -426,7 +426,7 @@ function _decryptBlock($in) $l = $Nb - $c[3]; while ($i < $Nb) { - $word = ($state[$i] & 0xFF000000) | + $word = ($state[$i] & intval(0xFF000000)) | ($state[$j] & 0x00FF0000) | ($state[$k] & 0x0000FF00) | ($state[$l] & 0x000000FF); @@ -465,14 +465,19 @@ function _setupKey() { // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse - static $rcon = array(0, - 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, - 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, - 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, - 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, - 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, - 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 - ); + static $rcon; + + if (!isset($rcon)) { + $rcon = array(0, + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, + 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, + 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, + 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, + 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 + ); + $rcon = array_map('intval', $rcon); + } if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_length === $this->kl['key_length'] && $this->block_size === $this->kl['block_size']) { // already expanded @@ -511,7 +516,7 @@ function _setupKey() // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. - $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord + $temp = (($temp << 8) & intval(0xFFFFFF00)) | (($temp >> 24) & 0x000000FF); // rotWord $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; } elseif ($this->Nk > 6 && $i % $this->Nk == 4) { $temp = $this->_subWord($temp); @@ -641,9 +646,9 @@ function &_getTables() )); foreach ($t3 as $t3i) { - $t0[] = (($t3i << 24) & 0xFF000000) | (($t3i >> 8) & 0x00FFFFFF); - $t1[] = (($t3i << 16) & 0xFFFF0000) | (($t3i >> 16) & 0x0000FFFF); - $t2[] = (($t3i << 8) & 0xFFFFFF00) | (($t3i >> 24) & 0x000000FF); + $t0[] = (($t3i << 24) & intval(0xFF000000)) | (($t3i >> 8) & 0x00FFFFFF); + $t1[] = (($t3i << 16) & intval(0xFFFF0000)) | (($t3i >> 16) & 0x0000FFFF); + $t2[] = (($t3i << 8) & intval(0xFFFFFF00)) | (($t3i >> 24) & 0x000000FF); } $tables = array( @@ -725,9 +730,9 @@ function &_getInvTables() )); foreach ($dt3 as $dt3i) { - $dt0[] = (($dt3i << 24) & 0xFF000000) | (($dt3i >> 8) & 0x00FFFFFF); - $dt1[] = (($dt3i << 16) & 0xFFFF0000) | (($dt3i >> 16) & 0x0000FFFF); - $dt2[] = (($dt3i << 8) & 0xFFFFFF00) | (($dt3i >> 24) & 0x000000FF); + $dt0[] = (($dt3i << 24) & intval(0xFF000000)) | (($dt3i >> 8) & 0x00FFFFFF); + $dt1[] = (($dt3i << 16) & intval(0xFFFF0000)) | (($dt3i >> 16) & 0x0000FFFF); + $dt2[] = (($dt3i << 8) & intval(0xFFFFFF00)) | (($dt3i >> 24) & 0x000000FF); }; $tables = array( @@ -809,7 +814,6 @@ function _setupInlineCrypt() // Generating encrypt code: $init_encrypt.= ' - static $tables; if (empty($tables)) { $tables = &$self->_getTables(); } @@ -866,7 +870,6 @@ function _setupInlineCrypt() // Generating decrypt code: $init_decrypt.= ' - static $invtables; if (empty($invtables)) { $invtables = &$self->_getInvTables(); } @@ -923,7 +926,7 @@ function _setupInlineCrypt() $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( array( - 'init_crypt' => '', + 'init_crypt' => 'static $tables; static $invtables;', 'init_encrypt' => $init_encrypt, 'init_decrypt' => $init_decrypt, 'encrypt_block' => $encrypt_block, diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php index a2c41668a..bf2df95ed 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php @@ -57,7 +57,7 @@ class TripleDES extends DES * * Outer chaining is used by SSH-2 and when the mode is set to \phpseclib\Crypt\Base::MODE_CBC. */ - const MODE_CBC3 = Base::MODE_CBC; + const MODE_CBC3 = self::MODE_CBC; /** * Key Length (in bytes) @@ -151,20 +151,20 @@ class TripleDES extends DES * @param int $mode * @access public */ - function __construct($mode = Base::MODE_CBC) + function __construct($mode = self::MODE_CBC) { switch ($mode) { // In case of self::MODE_3CBC, we init as CRYPT_DES_MODE_CBC // and additional flag us internally as 3CBC case self::MODE_3CBC: - parent::__construct(Base::MODE_CBC); + parent::__construct(self::MODE_CBC); $this->mode_3cbc = true; // This three $des'es will do the 3CBC work (if $key > 64bits) $this->des = array( - new DES(Base::MODE_CBC), - new DES(Base::MODE_CBC), - new DES(Base::MODE_CBC), + new DES(self::MODE_CBC), + new DES(self::MODE_CBC), + new DES(self::MODE_CBC), ); // we're going to be doing the padding, ourselves, so disable it in the \phpseclib\Crypt\DES objects diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php index 70980a2ff..1c020481a 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php @@ -368,6 +368,42 @@ class Twofish extends Base */ var $key_length = 16; + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_MODE_ECB + * + * - CRYPT_MODE_CBC + * + * - CRYPT_MODE_CTR + * + * - CRYPT_MODE_CFB + * + * - CRYPT_MODE_OFB + * + * (or the alias constants of the chosen cipher, for example for AES: CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC ...) + * + * If not explicitly set, CRYPT_MODE_CBC will be used. + * + * @param int $mode + * @access public + */ + function __construct($mode = self::MODE_CBC) + { + parent::__construct($mode); + + $this->m0 = array_map('intval', $this->m0); + $this->m1 = array_map('intval', $this->m1); + $this->m2 = array_map('intval', $this->m2); + $this->m3 = array_map('intval', $this->m3); + $this->q0 = array_map('intval', $this->q0); + $this->q1 = array_map('intval', $this->q1); + } + /** * Sets the key length. * diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php b/api/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php index d1a7719f8..dba99de73 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php @@ -143,6 +143,16 @@ class ASN1 */ var $filters; + /** + * Current Location of most recent ASN.1 encode process + * + * Useful for debug purposes + * + * @var array + * @see self::encode_der() + */ + var $location; + /** * Type mapping table for the ANY type. * @@ -234,6 +244,9 @@ function _decode_ber($encoded, $start = 0, $encoded_pos = 0) { $current = array('start' => $start); + if (!isset($encoded[$encoded_pos])) { + return false; + } $type = ord($encoded[$encoded_pos++]); $startOffset = 1; @@ -244,6 +257,9 @@ function _decode_ber($encoded, $start = 0, $encoded_pos = 0) $tag = 0; // process septets (since the eighth bit is ignored, it's not an octet) do { + if (!isset($encoded[$encoded_pos])) { + return false; + } $temp = ord($encoded[$encoded_pos++]); $startOffset++; $loop = $temp >> 7; @@ -260,6 +276,9 @@ function _decode_ber($encoded, $start = 0, $encoded_pos = 0) $start+= $startOffset; // Length, as discussed in paragraph 8.1.3 of X.690-0207.pdf#page=13 + if (!isset($encoded[$encoded_pos])) { + return false; + } $length = ord($encoded[$encoded_pos++]); $start++; if ($length == 0x80) { // indefinite length @@ -1157,6 +1176,11 @@ function _decodeOID($content) $oid = array(); $pos = 0; $len = strlen($content); + // see https://github.com/openjdk/jdk/blob/2deb318c9f047ec5a4b160d66a4b52f93688ec42/src/java.base/share/classes/sun/security/util/ObjectIdentifier.java#L55 + if ($len > 4096) { + //user_error('Object Identifier size is limited to 4096 bytes'); + return false; + } if (ord($content[$len - 1]) & 0x80) { return false; @@ -1422,7 +1446,7 @@ function convert($in, $from = self::TYPE_UTF8_STRING, $to = self::TYPE_UTF8_STRI return false; } break; - case ($c & 0x80000000) != 0: + case ($c & (PHP_INT_SIZE == 8 ? 0x80000000 : (1 << 31))) != 0: return false; case $c >= 0x04000000: $v .= chr(0x80 | ($c & 0x3F)); diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/File/X509.php b/api/vendor/phpseclib/phpseclib/phpseclib/File/X509.php index fa3c0264e..7b8d96e29 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/File/X509.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/File/X509.php @@ -145,6 +145,7 @@ class X509 var $AuthorityKeyIdentifier; var $CertificatePolicies; var $AuthorityInfoAccessSyntax; + var $SubjectInfoAccessSyntax; var $SubjectAltName; var $SubjectDirectoryAttributes; var $PrivateKeyUsagePeriod; @@ -1320,6 +1321,10 @@ function __construct() '2.5.4.45' => 'id-at-uniqueIdentifier', '2.5.4.72' => 'id-at-role', '2.5.4.16' => 'id-at-postalAddress', + '1.3.6.1.4.1.311.60.2.1.3' => 'jurisdictionOfIncorporationCountryName', + '1.3.6.1.4.1.311.60.2.1.2' => 'jurisdictionOfIncorporationStateOrProvinceName', + '1.3.6.1.4.1.311.60.2.1.1' => 'jurisdictionLocalityName', + '2.5.4.15' => 'id-at-businessCategory', '0.9.2342.19200300.100.1.25' => 'id-domainComponent', '1.2.840.113549.1.9' => 'pkcs-9', @@ -1622,7 +1627,6 @@ function _mapInExtensions(&$root, $path, $asn1) $id = $extensions[$i]['extnId']; $value = &$extensions[$i]['extnValue']; $value = base64_decode($value); - $decoded = $asn1->decodeBER($value); /* [extnValue] contains the DER encoding of an ASN.1 value corresponding to the extension type identified by extnID */ $map = $this->_getMapping($id); @@ -1630,6 +1634,7 @@ function _mapInExtensions(&$root, $path, $asn1) $decoder = $id == 'id-ce-nameConstraints' ? array($this, '_decodeNameConstraintIP') : array($this, '_decodeIP'); + $decoded = $asn1->decodeBER($value); $mapped = $asn1->asn1map($decoded[0], $map, array('iPAddress' => $decoder)); $value = $mapped === false ? $decoded[0] : $mapped; @@ -2065,7 +2070,8 @@ function validateURL($url) if ($names = $this->getExtension('id-ce-subjectAltName')) { foreach ($names as $name) { foreach ($name as $key => $value) { - $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value); + $value = preg_quote($value); + $value = str_replace('\*', '[^.]*', $value); switch ($key) { case 'dNSName': /* From RFC2818 "HTTP over TLS": @@ -2163,7 +2169,11 @@ static function _fetchURL($url) if (!$fsock) { return false; } - fputs($fsock, "GET $parts[path] HTTP/1.0\r\n"); + $path = $parts['path']; + if (isset($parts['query'])) { + $path.= '?' . $parts['query']; + } + fputs($fsock, "GET $path HTTP/1.0\r\n"); fputs($fsock, "Host: $parts[host]\r\n\r\n"); $line = fgets($fsock, 1024); if (strlen($line) < 3) { @@ -2571,6 +2581,20 @@ function _encodeIP($ip) function _translateDNProp($propName) { switch (strtolower($propName)) { + case 'jurisdictionofincorporationcountryname': + case 'jurisdictioncountryname': + case 'jurisdictionc': + return 'jurisdictionOfIncorporationCountryName'; + case 'jurisdictionofincorporationstateorprovincename': + case 'jurisdictionstateorprovincename': + case 'jurisdictionst': + return 'jurisdictionOfIncorporationStateOrProvinceName'; + case 'jurisdictionlocalityname': + case 'jurisdictionl': + return 'jurisdictionLocalityName'; + case 'id-at-businesscategory': + case 'businesscategory': + return 'id-at-businessCategory'; case 'id-at-countryname': case 'countryname': case 'c': diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php b/api/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php index fc24b9145..7747a95b6 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php @@ -163,23 +163,23 @@ class BigInteger * * @see __construct() */ - protected static $base; - protected static $baseFull; - protected static $maxDigit; - protected static $msb; + static $base; + static $baseFull; + static $maxDigit; + static $msb; /** * $max10 in greatest $max10Len satisfying * $max10 = 10**$max10Len <= 2**$base. */ - protected static $max10; + static $max10; /** * $max10Len in greatest $max10Len satisfying * $max10 = 10**$max10Len <= 2**$base. */ - protected static $max10Len; - protected static $maxDigit2; + static $max10Len; + static $maxDigit2; /**#@-*/ /** @@ -268,7 +268,7 @@ function __construct($x = 0, $base = 10) $versions = array(); // avoid generating errors (even with suppression) when phpinfo() is disabled (common in production systems) - if (strpos(ini_get('disable_functions'), 'phpinfo') === false) { + if (function_exists('phpinfo')) { ob_start(); @phpinfo(); $content = ob_get_contents(); @@ -372,7 +372,7 @@ function __construct($x = 0, $base = 10) break; case self::MODE_BCMATH: // round $len to the nearest 4 (thanks, DavidMJ!) - $len = (strlen($x) + 3) & 0xFFFFFFFC; + $len = (strlen($x) + 3) & ~3; $x = str_pad($x, $len, chr(0), STR_PAD_LEFT); @@ -408,7 +408,7 @@ function __construct($x = 0, $base = 10) $x = substr($x, 1); } - $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); + $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#s', '$1', $x); $is_negative = false; if ($base < 0 && hexdec($x[0]) >= 8) { @@ -444,7 +444,7 @@ function __construct($x = 0, $base = 10) // (?toBits()); + } + + $max = count($this->value) - 1; + return $max != -1 ? + $max * self::$base + intval(ceil(log($this->value[$max] + 1, 2))) : + 0; + } + + /** + * Return the size of a BigInteger in bytes + * + * @return int + */ + function getLengthInBytes() + { + return (int) ceil($this->getLength() / 8); + } + /** * Copy an object * @@ -3237,6 +3264,11 @@ function randomPrime($arg1, $arg2 = false, $timeout = false) $min = $temp; } + $length = $max->getLength(); + if ($length > 8196) { + user_error('Generation of random prime numbers larger than 8196 has been disabled'); + } + static $one, $two; if (!isset($one)) { $one = new static(1); @@ -3344,7 +3376,14 @@ function _make_odd() */ function isPrime($t = false) { - $length = strlen($this->toBytes()); + $length = $this->getLength(); + // OpenSSL limits RSA keys to 16384 bits. The length of an RSA key is equal to the length of the modulo, which is + // produced by multiplying the primes p and q by one another. The largest number two 8196 bit primes can produce is + // a 16384 bit number so, basically, 8196 bit primes are the largest OpenSSL will generate and if that's the largest + // that it'll generate it also stands to reason that that's the largest you'll be able to test primality on + if ($length > 8196) { + user_error('Primality testing is not supported for numbers larger than 8196 bits'); + } if (!$t) { // see HAC 4.49 "Note (controlling the error probability)" diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php index cf13496cd..ee6e1c9d9 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php @@ -247,6 +247,13 @@ function get($remote_file, $local_file = false) $content = ''; while ($size < $info['size']) { $data = $this->_receive(); + + // Terminate the loop in case the server repeatedly sends an empty response + if ($data === false) { + user_error('No data received from server', E_USER_NOTICE); + return false; + } + // SCP usually seems to split stuff out into 16k chunks $size+= strlen($data); diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php index f9bb22352..28b568062 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php @@ -5,9 +5,7 @@ * * PHP version 5 * - * Currently only supports SFTPv2 and v3, which, according to wikipedia.org, "is the most widely used version, - * implemented by the popular OpenSSH SFTP server". If you want SFTPv4/5/6 support, provide me with access - * to an SFTPv4/5/6 server. + * Supports SFTPv2/3/4/5/6. Defaults to v3. * * The API for this library is modeled after the API from PHP's {@link http://php.net/book.ftp FTP extension}. * @@ -154,6 +152,24 @@ class SFTP extends SSH2 */ var $version; + /** + * Default Server SFTP version + * + * @var int + * @see self::_initChannel() + * @access private + */ + var $defaultVersion; + + /** + * Preferred SFTP version + * + * @var int + * @see self::_initChannel() + * @access private + */ + var $preferredVersion = 3; + /** * Current working directory * @@ -269,6 +285,21 @@ class SFTP extends SSH2 */ var $preserveTime = false; + /** + * Arbitrary Length Packets Flag + * + * Determines whether or not packets of any length should be allowed, + * in cases where the server chooses the packet length (such as + * directory listings). By default, packets are only allowed to be + * 256 * 1024 bytes (SFTP_MAX_MSG_LENGTH from OpenSSH's sftp-common.h) + * + * @see self::enableArbitraryLengthPackets() + * @see self::_get_sftp_packet() + * @var bool + * @access private + */ + var $allow_arbitrary_length_packets = false; + /** * Was the last packet due to the channels being closed or not? * @@ -279,6 +310,46 @@ class SFTP extends SSH2 */ var $channel_close = false; + /** + * Has the SFTP channel been partially negotiated? + * + * @var bool + * @access private + */ + var $partial_init = false; + + /** + * http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-7.1 + * the order, in this case, matters quite a lot - see \phpseclib3\Net\SFTP::_parseAttributes() to understand why + * + * @var array + * @access private + */ + var $attributes = array(); + + /** + * @var array + * @access private + */ + var $open_flags = array(); + + /** + * SFTPv5+ changed the flags up: + * https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-8.1.1.3 + * + * @var array + * @access private + */ + var $open_flags5 = array(); + + /** + * http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 + * see \phpseclib\Net\SFTP::_parseLongname() for an explanation + * + * @var array + */ + var $file_types = array(); + /** * Default Constructor. * @@ -299,15 +370,13 @@ function __construct($host, $port = 22, $timeout = 10) $this->packet_types = array( 1 => 'NET_SFTP_INIT', 2 => 'NET_SFTP_VERSION', - /* the format of SSH_FXP_OPEN changed between SFTPv4 and SFTPv5+: - SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.1 - pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 */ 3 => 'NET_SFTP_OPEN', 4 => 'NET_SFTP_CLOSE', 5 => 'NET_SFTP_READ', 6 => 'NET_SFTP_WRITE', 7 => 'NET_SFTP_LSTAT', 9 => 'NET_SFTP_SETSTAT', + 10 => 'NET_SFTP_FSETSTAT', 11 => 'NET_SFTP_OPENDIR', 12 => 'NET_SFTP_READDIR', 13 => 'NET_SFTP_REMOVE', @@ -315,18 +384,13 @@ function __construct($host, $port = 22, $timeout = 10) 15 => 'NET_SFTP_RMDIR', 16 => 'NET_SFTP_REALPATH', 17 => 'NET_SFTP_STAT', - /* the format of SSH_FXP_RENAME changed between SFTPv4 and SFTPv5+: - SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 - pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.5 */ 18 => 'NET_SFTP_RENAME', 19 => 'NET_SFTP_READLINK', 20 => 'NET_SFTP_SYMLINK', + 21 => 'NET_SFTP_LINK', 101=> 'NET_SFTP_STATUS', 102=> 'NET_SFTP_HANDLE', - /* the format of SSH_FXP_NAME changed between SFTPv3 and SFTPv4+: - SFTPv4+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.4 - pre-SFTPv4 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-7 */ 103=> 'NET_SFTP_DATA', 104=> 'NET_SFTP_NAME', 105=> 'NET_SFTP_ATTRS', @@ -371,25 +435,59 @@ function __construct($host, $port = 22, $timeout = 10) // the order, in this case, matters quite a lot - see \phpseclib\Net\SFTP::_parseAttributes() to understand why $this->attributes = array( 0x00000001 => 'NET_SFTP_ATTR_SIZE', - 0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+ + 0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+ + 0x00000080 => 'NET_SFTP_ATTR_OWNERGROUP', // defined in SFTPv4+ 0x00000004 => 'NET_SFTP_ATTR_PERMISSIONS', 0x00000008 => 'NET_SFTP_ATTR_ACCESSTIME', + 0x00000010 => 'NET_SFTP_ATTR_CREATETIME', // SFTPv4+ + 0x00000020 => 'NET_SFTP_ATTR_MODIFYTIME', + 0x00000040 => 'NET_SFTP_ATTR_ACL', + 0x00000100 => 'NET_SFTP_ATTR_SUBSECOND_TIMES', + 0x00000200 => 'NET_SFTP_ATTR_BITS', // SFTPv5+ + 0x00000400 => 'NET_SFTP_ATTR_ALLOCATION_SIZE', // SFTPv6+ + 0x00000800 => 'NET_SFTP_ATTR_TEXT_HINT', + 0x00001000 => 'NET_SFTP_ATTR_MIME_TYPE', + 0x00002000 => 'NET_SFTP_ATTR_LINK_COUNT', + 0x00004000 => 'NET_SFTP_ATTR_UNTRANSLATED_NAME', + 0x00008000 => 'NET_SFTP_ATTR_CTIME', // 0x80000000 will yield a floating point on 32-bit systems and converting floating points to integers // yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in // two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000. // that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored. - (-1 << 31) & 0xFFFFFFFF => 'NET_SFTP_ATTR_EXTENDED' + (PHP_INT_SIZE == 4 ? (-1 << 31) : 0x80000000) => 'NET_SFTP_ATTR_EXTENDED' ); - // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 - // the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name - // the array for that $this->open5_flags and similarly alter the constant names. $this->open_flags = array( 0x00000001 => 'NET_SFTP_OPEN_READ', 0x00000002 => 'NET_SFTP_OPEN_WRITE', 0x00000004 => 'NET_SFTP_OPEN_APPEND', 0x00000008 => 'NET_SFTP_OPEN_CREATE', 0x00000010 => 'NET_SFTP_OPEN_TRUNCATE', - 0x00000020 => 'NET_SFTP_OPEN_EXCL' + 0x00000020 => 'NET_SFTP_OPEN_EXCL', + 0x00000040 => 'NET_SFTP_OPEN_TEXT' // defined in SFTPv4 + ); + // SFTPv5+ changed the flags up: + // https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-8.1.1.3 + $this->open_flags5 = array( + // when SSH_FXF_ACCESS_DISPOSITION is a 3 bit field that controls how the file is opened + 0x00000000 => 'NET_SFTP_OPEN_CREATE_NEW', + 0x00000001 => 'NET_SFTP_OPEN_CREATE_TRUNCATE', + 0x00000002 => 'NET_SFTP_OPEN_OPEN_EXISTING', + 0x00000003 => 'NET_SFTP_OPEN_OPEN_OR_CREATE', + 0x00000004 => 'NET_SFTP_OPEN_TRUNCATE_EXISTING', + // the rest of the flags are not supported + 0x00000008 => 'NET_SFTP_OPEN_APPEND_DATA', // "the offset field of SS_FXP_WRITE requests is ignored" + 0x00000010 => 'NET_SFTP_OPEN_APPEND_DATA_ATOMIC', + 0x00000020 => 'NET_SFTP_OPEN_TEXT_MODE', + 0x00000040 => 'NET_SFTP_OPEN_BLOCK_READ', + 0x00000080 => 'NET_SFTP_OPEN_BLOCK_WRITE', + 0x00000100 => 'NET_SFTP_OPEN_BLOCK_DELETE', + 0x00000200 => 'NET_SFTP_OPEN_BLOCK_ADVISORY', + 0x00000400 => 'NET_SFTP_OPEN_NOFOLLOW', + 0x00000800 => 'NET_SFTP_OPEN_DELETE_ON_CLOSE', + 0x00001000 => 'NET_SFTP_OPEN_ACCESS_AUDIT_ALARM_INFO', + 0x00002000 => 'NET_SFTP_OPEN_ACCESS_BACKUP', + 0x00004000 => 'NET_SFTP_OPEN_BACKUP_STREAM', + 0x00008000 => 'NET_SFTP_OPEN_OVERRIDE_OWNER', ); // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 // see \phpseclib\Net\SFTP::_parseLongname() for an explanation @@ -411,6 +509,7 @@ function __construct($host, $port = 22, $timeout = 10) $this->status_codes, $this->attributes, $this->open_flags, + $this->open_flags5, $this->file_types ); @@ -423,28 +522,31 @@ function __construct($host, $port = 22, $timeout = 10) } /** - * Login + * Check a few things before SFTP functions are called * - * @param string $username * @return bool * @access public */ - function login($username) + function _precheck() { - if (!call_user_func_array('parent::login', func_get_args())) { + if (!($this->bitmap & SSH2::MASK_LOGIN)) { return false; } - return $this->_init_sftp_connection(); + if ($this->pwd === false) { + return $this->_init_sftp_connection(); + } + + return true; } /** - * (Re)initializes the SFTP channel + * Partially initialize an SFTP connection * * @return bool - * @access private + * @access public */ - function _init_sftp_connection() + function _partial_init_sftp_connection() { $this->window_size_server_to_client[self::CHANNEL] = $this->window_size; @@ -467,6 +569,8 @@ function _init_sftp_connection() $response = $this->_get_channel_packet(self::CHANNEL, true); if ($response === false) { return false; + } elseif ($response === true && $this->isTimeout()) { + return false; } $packet = pack( @@ -513,6 +617,8 @@ function _init_sftp_connection() if ($response === false) { return false; } + } elseif ($response === true && $this->isTimeout()) { + return false; } $this->channel_status[self::CHANNEL] = NET_SSH2_MSG_CHANNEL_DATA; @@ -527,11 +633,13 @@ function _init_sftp_connection() return false; } + $this->use_request_id = true; + if (strlen($response) < 4) { return false; } extract(unpack('Nversion', $this->_string_shift($response, 4))); - $this->version = $version; + $this->defaultVersion = $version; while (!empty($response)) { if (strlen($response) < 4) { return false; @@ -546,21 +654,22 @@ function _init_sftp_connection() $this->extensions[$key] = $value; } - /* - SFTPv4+ defines a 'newline' extension. SFTPv3 seems to have unofficial support for it via 'newline@vandyke.com', - however, I'm not sure what 'newline@vandyke.com' is supposed to do (the fact that it's unofficial means that it's - not in the official SFTPv3 specs) and 'newline@vandyke.com' / 'newline' are likely not drop-in substitutes for - one another due to the fact that 'newline' comes with a SSH_FXF_TEXT bitmask whereas it seems unlikely that - 'newline@vandyke.com' would. - */ - /* - if (isset($this->extensions['newline@vandyke.com'])) { - $this->extensions['newline'] = $this->extensions['newline@vandyke.com']; - unset($this->extensions['newline@vandyke.com']); - } - */ + $this->partial_init = true; - $this->use_request_id = true; + return true; + } + + /** + * (Re)initializes the SFTP channel + * + * @return bool + * @access private + */ + function _init_sftp_connection() + { + if (!$this->partial_init && !$this->_partial_init_sftp_connection()) { + return false; + } /* A Note on SFTPv4/5/6 support: @@ -585,15 +694,72 @@ function _init_sftp_connection() in draft-ietf-secsh-filexfer-13 would be quite impossible. As such, what \phpseclib\Net\SFTP would do is close the channel and reopen it with a new and updated SSH_FXP_INIT packet. */ - switch ($this->version) { - case 2: - case 3: - break; - default: - return false; + $this->version = $this->defaultVersion; + if (isset($this->extensions['versions']) && (!$this->preferredVersion || $this->preferredVersion != $this->version)) { + $versions = explode(',', $this->extensions['versions']); + $supported = array(6, 5, 4); + if ($this->preferredVersion) { + $supported = array_diff($supported, array($this->preferredVersion)); + array_unshift($supported, $this->preferredVersion); + } + foreach ($supported as $ver) { + if (in_array($ver, $versions)) { + if ($ver === $this->version) { + break; + } + $this->version = (int) $ver; + $packet = pack('Na*Na*', strlen('version-select'), 'version-select', strlen($ver), $ver); + if (!$this->_send_sftp_packet(NET_SFTP_EXTENDED, $packet)) { + return false; + } + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + if (strlen($response) < 4) { + return false; + } + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + break; + } + } } + /* + SFTPv4+ defines a 'newline' extension. SFTPv3 seems to have unofficial support for it via 'newline@vandyke.com', + however, I'm not sure what 'newline@vandyke.com' is supposed to do (the fact that it's unofficial means that it's + not in the official SFTPv3 specs) and 'newline@vandyke.com' / 'newline' are likely not drop-in substitutes for + one another due to the fact that 'newline' comes with a SSH_FXF_TEXT bitmask whereas it seems unlikely that + 'newline@vandyke.com' would. + */ + /* + if (isset($this->extensions['newline@vandyke.com'])) { + $this->extensions['newline'] = $this->extensions['newline@vandyke.com']; + unset($this->extensions['newline@vandyke.com']); + } + */ + + if ($this->version < 2 || $this->version > 6) { + return false; + } + + $this->pwd = true; $this->pwd = $this->_realpath('.'); + if ($this->pwd === false) { + if (!$this->canonicalize_paths) { + user_error('Unable to canonicalize current working directory'); + return false; + } + $this->canonicalize_paths = false; + $this->_reset_connection(NET_SSH2_DISCONNECT_CONNECTION_LOST); + } $this->_update_stat_cache($this->pwd, array()); @@ -641,7 +807,9 @@ function enablePathCanonicalization() } /** - * Enable path canonicalization + * Disable path canonicalization + * + * If this is enabled then $sftp->pwd() will not return the canonicalized absolute path * * @access public */ @@ -650,6 +818,26 @@ function disablePathCanonicalization() $this->canonicalize_paths = false; } + /** + * Enable arbitrary length packets + * + * @access public + */ + function enableArbitraryLengthPackets() + { + $this->allow_arbitrary_length_packets = true; + } + + /** + * Disable arbitrary length packets + * + * @access public + */ + function disableArbitraryLengthPackets() + { + $this->allow_arbitrary_length_packets = false; + } + /** * Returns the current directory name * @@ -658,6 +846,10 @@ function disablePathCanonicalization() */ function pwd() { + if (!$this->_precheck()) { + return false; + } + return $this->pwd; } @@ -679,7 +871,7 @@ function _logError($response, $status = -1) $error = $this->status_codes[$status]; - if ($this->version > 2 || strlen($response) < 4) { + if ($this->version > 2) { extract(unpack('Nlength', $this->_string_shift($response, 4))); $this->sftp_errors[] = $error . ': ' . $this->_string_shift($response, $length); } else { @@ -699,6 +891,10 @@ function _logError($response, $status = -1) */ function realpath($path) { + if (!$this->_precheck()) { + return false; + } + return $this->_realpath($path); } @@ -719,10 +915,37 @@ function realpath($path) function _realpath($path) { if (!$this->canonicalize_paths) { - return $path; + if ($this->pwd === true) { + return '.'; + } + if (!strlen($path) || $path[0] != '/') { + $path = $this->pwd . '/' . $path; + } + + $parts = explode('/', $path); + $afterPWD = $beforePWD = array(); + foreach ($parts as $part) { + switch ($part) { + //case '': // some SFTP servers /require/ double /'s. see https://github.com/phpseclib/phpseclib/pull/1137 + case '.': + break; + case '..': + if (!empty($afterPWD)) { + array_pop($afterPWD); + } else { + $beforePWD[] = '..'; + } + break; + default: + $afterPWD[] = $part; + } + } + + $beforePWD = count($beforePWD) ? implode('/', $beforePWD) : '.'; + return $beforePWD . '/' . implode('/', $afterPWD); } - if ($this->pwd === false) { + if ($this->pwd === true) { // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.9 if (!$this->_send_sftp_packet(NET_SFTP_REALPATH, pack('Na*', strlen($path), $path))) { return false; @@ -744,7 +967,6 @@ function _realpath($path) $this->_logError($response); return false; default: - user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS'); return false; } } @@ -781,7 +1003,7 @@ function _realpath($path) */ function chdir($dir) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -860,6 +1082,12 @@ function _nlist_helper($dir, $recursive, $relativeDir) { $files = $this->_list($dir, false); + // If we get an int back, then that is an "unexpected" status. + // We do not have a file list, so return false. + if (is_int($files)) { + return false; + } + if (!$recursive || $files === false) { return $files; } @@ -895,6 +1123,13 @@ function _nlist_helper($dir, $recursive, $relativeDir) function rawlist($dir = '.', $recursive = false) { $files = $this->_list($dir, true); + + // If we get an int back, then that is an "unexpected" status. + // We do not have a file list, so return false. + if (is_int($files)) { + return false; + } + if (!$recursive || $files === false) { return $files; } @@ -938,7 +1173,7 @@ function rawlist($dir = '.', $recursive = false) */ function _list($dir, $raw = true) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -962,8 +1197,12 @@ function _list($dir, $raw = true) break; case NET_SFTP_STATUS: // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED - $this->_logError($response); - return false; + if (strlen($response) < 4) { + return false; + } + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + $this->_logError($response, $status); + return $status; default: user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); return false; @@ -993,13 +1232,17 @@ function _list($dir, $raw = true) } extract(unpack('Nlength', $this->_string_shift($response, 4))); $shortname = $this->_string_shift($response, $length); - if (strlen($response) < 4) { - return false; + // SFTPv4 "removed the long filename from the names structure-- it can now be + // built from information available in the attrs structure." + if ($this->version < 4) { + if (strlen($response) < 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $longname = $this->_string_shift($response, $length); } - extract(unpack('Nlength', $this->_string_shift($response, 4))); - $longname = $this->_string_shift($response, $length); $attributes = $this->_parseAttributes($response); - if (!isset($attributes['type'])) { + if (!isset($attributes['type']) && $this->version < 4) { $fileType = $this->_parseLongname($longname); if ($fileType) { $attributes['type'] = $fileType; @@ -1028,7 +1271,7 @@ function _list($dir, $raw = true) extract(unpack('Nstatus', $this->_string_shift($response, 4))); if ($status != NET_SFTP_STATUS_EOF) { $this->_logError($response, $status); - return false; + return $status; } break 2; default: @@ -1159,10 +1402,6 @@ function setListOrder() */ function size($filename) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { - return false; - } - $result = $this->stat($filename); if ($result === false) { return false; @@ -1279,7 +1518,7 @@ function _query_stat_cache($path) */ function stat($filename) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1336,7 +1575,7 @@ function stat($filename) */ function lstat($filename) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1450,7 +1689,7 @@ function truncate($filename, $new_size) */ function touch($filename, $time = null, $atime = null) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1466,9 +1705,25 @@ function touch($filename, $time = null, $atime = null) $atime = $time; } - $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE | NET_SFTP_OPEN_EXCL; - $attr = pack('N3', NET_SFTP_ATTR_ACCESSTIME, $time, $atime); - $packet = pack('Na*Na*', strlen($filename), $filename, $flags, $attr); + if ($this->version < 4) { + $attr = pack('N3', NET_SFTP_ATTR_ACCESSTIME, $atime, $time); + } else { + $attr = pack( + 'N5', + NET_SFTP_ATTR_ACCESSTIME | NET_SFTP_ATTR_MODIFYTIME, + $atime / 4294967296, + $atime, + $time / 4294967296, + $time + ); + } + + $packet = pack('Na*', strlen($filename), $filename); + $packet.= $this->version >= 5 ? + pack('N2', 0, NET_SFTP_OPEN_OPEN_EXISTING) : + pack('N', NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE | NET_SFTP_OPEN_EXCL); + $packet.= $attr; + if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { return false; } @@ -1491,19 +1746,47 @@ function touch($filename, $time = null, $atime = null) /** * Changes file or directory owner * + * $uid should be an int for SFTPv3 and a string for SFTPv4+. Ideally the string + * would be of the form "user@dns_domain" but it does not need to be. + * `$sftp->getSupportedVersions()['version']` will return the specific version + * that's being used. + * * Returns true on success or false on error. * * @param string $filename - * @param int $uid + * @param int|string $uid * @param bool $recursive * @return bool * @access public */ function chown($filename, $uid, $recursive = false) { - // quoting from , - // "if the owner or group is specified as -1, then that ID is not changed" - $attr = pack('N3', NET_SFTP_ATTR_UIDGID, $uid, -1); + /* + quoting , + + "To avoid a representation that is tied to a particular underlying + implementation at the client or server, the use of UTF-8 strings has + been chosen. The string should be of the form "user@dns_domain". + This will allow for a client and server that do not use the same + local representation the ability to translate to a common syntax that + can be interpreted by both. In the case where there is no + translation available to the client or server, the attribute value + must be constructed without the "@"." + + phpseclib _could_ auto append the dns_domain to $uid BUT what if it shouldn't + have one? phpseclib would have no way of knowing so rather than guess phpseclib + will just use whatever value the user provided + */ + + $attr = $this->version < 4 ? + // quoting , + // "if the owner or group is specified as -1, then that ID is not changed" + pack('N3', NET_SFTP_ATTR_UIDGID, $uid, -1) : + // quoting , + // "If either the owner or group field is zero length, the field should be + // considered absent, and no change should be made to that specific field + // during a modification operation" + pack('NNa*Na*', NET_SFTP_ATTR_OWNERGROUP, strlen($uid), $uid, 0, ''); return $this->_setstat($filename, $attr, $recursive); } @@ -1511,17 +1794,24 @@ function chown($filename, $uid, $recursive = false) /** * Changes file or directory group * + * $gid should be an int for SFTPv3 and a string for SFTPv4+. Ideally the string + * would be of the form "user@dns_domain" but it does not need to be. + * `$sftp->getSupportedVersions()['version']` will return the specific version + * that's being used. + * * Returns true on success or false on error. * * @param string $filename - * @param int $gid + * @param int|string $gid * @param bool $recursive * @return bool * @access public */ function chgrp($filename, $gid, $recursive = false) { - $attr = pack('N3', NET_SFTP_ATTR_UIDGID, -1, $gid); + $attr = $this->version < 4 ? + pack('N3', NET_SFTP_ATTR_UIDGID, -1, $gid) : + pack('NNa*Na*', NET_SFTP_ATTR_OWNERGROUP, 0, '', strlen($gid), $gid); return $this->_setstat($filename, $attr, $recursive); } @@ -1588,7 +1878,7 @@ function chmod($mode, $filename, $recursive = false) */ function _setstat($filename, $attr, $recursive) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1606,9 +1896,10 @@ function _setstat($filename, $attr, $recursive) return $result; } - // SFTPv4+ has an additional byte field - type - that would need to be sent, as well. setting it to - // SSH_FILEXFER_TYPE_UNKNOWN might work. if not, we'd have to do an SSH_FXP_STAT before doing an SSH_FXP_SETSTAT. - if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($filename), $filename, $attr))) { + $packet = $this->version >= 4 ? + pack('Na*a*Ca*', strlen($filename), $filename, substr($attr, 0, 4), NET_SFTP_TYPE_UNKNOWN, substr($attr, 4)) : + pack('Na*a*', strlen($filename), $filename, $attr); + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, $packet)) { return false; } @@ -1656,7 +1947,7 @@ function _setstat_recursive($path, $attr, &$i) $i = 0; $entries = $this->_list($path, true); - if ($entries === false) { + if ($entries === false || is_int($entries)) { return $this->_setstat($path, $attr, false); } @@ -1678,7 +1969,10 @@ function _setstat_recursive($path, $attr, &$i) return false; } } else { - if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($temp), $temp, $attr))) { + $packet = $this->version >= 4 ? + pack('Na*Ca*', strlen($temp), $temp, NET_SFTP_TYPE_UNKNOWN, $attr) : + pack('Na*a*', strlen($temp), $temp, $attr); + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, $packet)) { return false; } @@ -1693,7 +1987,10 @@ function _setstat_recursive($path, $attr, &$i) } } - if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($path), $path, $attr))) { + $packet = $this->version >= 4 ? + pack('Na*Ca*', strlen($temp), $temp, NET_SFTP_TYPE_UNKNOWN, $attr) : + pack('Na*a*', strlen($temp), $temp, $attr); + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, $packet)) { return false; } @@ -1718,7 +2015,7 @@ function _setstat_recursive($path, $attr, &$i) */ function readlink($link) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1768,15 +2065,44 @@ function readlink($link) */ function symlink($target, $link) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } //$target = $this->_realpath($target); $link = $this->_realpath($link); - $packet = pack('Na*Na*', strlen($target), $target, strlen($link), $link); - if (!$this->_send_sftp_packet(NET_SFTP_SYMLINK, $packet)) { + /* quoting https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-09#section-12.1 : + + Changed the SYMLINK packet to be LINK and give it the ability to + create hard links. Also change it's packet number because many + implementation implemented SYMLINK with the arguments reversed. + Hopefully the new argument names make it clear which way is which. + */ + if ($this->version == 6) { + $type = NET_SFTP_LINK; + $packet = pack('Na*Na*C', strlen($link), $link, strlen($target), $target, 1); + } else { + $type = NET_SFTP_SYMLINK; + /* quoting http://bxr.su/OpenBSD/usr.bin/ssh/PROTOCOL#347 : + + 3.1. sftp: Reversal of arguments to SSH_FXP_SYMLINK + + When OpenSSH's sftp-server was implemented, the order of the arguments + to the SSH_FXP_SYMLINK method was inadvertently reversed. Unfortunately, + the reversal was not noticed until the server was widely deployed. Since + fixing this to follow the specification would cause incompatibility, the + current order was retained. For correct operation, clients should send + SSH_FXP_SYMLINK as follows: + + uint32 id + string targetpath + string linkpath */ + $packet = substr($this->server_identifier, 0, 15) == 'SSH-2.0-OpenSSH' ? + pack('Na*Na*', strlen($target), $target, strlen($link), $link) : + pack('Na*Na*', strlen($link), $link, strlen($target), $target); + } + if (!$this->_send_sftp_packet($type, $packet)) { return false; } @@ -1809,7 +2135,7 @@ function symlink($target, $link) */ function mkdir($dir, $mode = -1, $recursive = false) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1878,7 +2204,7 @@ function _mkdir_helper($dir, $mode) */ function rmdir($dir) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1927,7 +2253,8 @@ function rmdir($dir) * contain as many bytes as filename.ext does on your local filesystem. If your filename.ext is 1MB then that is how * large $remote_file will be, as well. * - * Setting $mode to self::SOURCE_CALLBACK will use $data as callback function, which gets only one parameter -- number of bytes to return, and returns a string if there is some data or null if there is no more data + * Setting $mode to self::SOURCE_CALLBACK will use $data as callback function, which gets only one parameter -- number + * of bytes to return, and returns a string if there is some data or null if there is no more data * * If $data is a resource then it'll be used as a resource instead. * @@ -1963,7 +2290,7 @@ function rmdir($dir) */ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $local_start = -1, $progressCallback = null) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -1974,23 +2301,34 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc $this->_remove_from_stat_cache($remote_file); - $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE; - // according to the SFTP specs, NET_SFTP_OPEN_APPEND should "force all writes to append data at the end of the file." - // in practice, it doesn't seem to do that. - //$flags|= ($mode & self::RESUME) ? NET_SFTP_OPEN_APPEND : NET_SFTP_OPEN_TRUNCATE; + if ($this->version >= 5) { + $flags = NET_SFTP_OPEN_OPEN_OR_CREATE; + } else { + $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE; + // according to the SFTP specs, NET_SFTP_OPEN_APPEND should "force all writes to append data at the end of the file." + // in practice, it doesn't seem to do that. + //$flags|= ($mode & SFTP::RESUME) ? NET_SFTP_OPEN_APPEND : NET_SFTP_OPEN_TRUNCATE; + } if ($start >= 0) { $offset = $start; - } elseif ($mode & self::RESUME) { + } elseif ($mode & (self::RESUME | self::RESUME_START)) { // if NET_SFTP_OPEN_APPEND worked as it should _size() wouldn't need to be called $size = $this->size($remote_file); $offset = $size !== false ? $size : 0; } else { $offset = 0; - $flags|= NET_SFTP_OPEN_TRUNCATE; + if ($this->version >= 5) { + $flags = NET_SFTP_OPEN_CREATE_TRUNCATE; + } else { + $flags|= NET_SFTP_OPEN_TRUNCATE; + } } - $packet = pack('Na*N2', strlen($remote_file), $remote_file, $flags, 0); + $packet = pack('Na*', strlen($remote_file), $remote_file); + $packet.= $this->version >= 5 ? + pack('N3', 0, $flags, 0) : + pack('N2', $flags, 0); if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { return false; } @@ -2021,7 +2359,7 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc case is_resource($data): $mode = $mode & ~self::SOURCE_LOCAL_FILE; $info = stream_get_meta_data($data); - if ($info['wrapper_type'] == 'PHP' && $info['stream_type'] == 'Input') { + if (isset($info['wrapper_type']) && $info['wrapper_type'] == 'PHP' && $info['stream_type'] == 'Input') { $fp = fopen('php://memory', 'w+'); stream_copy_to_stream($data, $fp); rewind($fp); @@ -2047,7 +2385,11 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc if ($local_start >= 0) { fseek($fp, $local_start); $size-= $local_start; + } elseif ($mode & self::RESUME) { + fseek($fp, $offset); + $size-= $offset; } + } elseif ($dataCallback) { $size = 0; } else { @@ -2099,6 +2441,8 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc } } + $result = $this->_close_handle($handle); + if (!$this->_read_put_responses($i)) { if ($mode & self::SOURCE_LOCAL_FILE) { fclose($fp); @@ -2107,18 +2451,33 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc return false; } - if ($mode & self::SOURCE_LOCAL_FILE) { - if ($this->preserveTime) { - $stat = fstat($fp); - $this->touch($remote_file, $stat['mtime'], $stat['atime']); - } - + if ($mode & SFTP::SOURCE_LOCAL_FILE) { if (isset($fp) && is_resource($fp)) { fclose($fp); } + + if ($this->preserveTime) { + $stat = stat($data); + if ($this->version < 4) { + $attr = pack('N3', NET_SFTP_ATTR_ACCESSTIME, $stat['atime'], $stat['mtime']); + } else { + $attr = pack( + 'N5', + NET_SFTP_ATTR_ACCESSTIME | NET_SFTP_ATTR_MODIFYTIME, + $stat['atime'] / 4294967296, + $stat['atime'], + $stat['mtime'] / 4294967296, + $stat['mtime'] + ); + } + + if (!$this->_setstat($remote_file, $attr, false)) { + user_error('Error setting file time'); + } + } } - return $this->_close_handle($handle); + return $result; } /** @@ -2205,7 +2564,7 @@ function _close_handle($handle) */ function get($remote_file, $local_file = false, $offset = 0, $length = -1, $progressCallback = null) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -2214,7 +2573,10 @@ function get($remote_file, $local_file = false, $offset = 0, $length = -1, $prog return false; } - $packet = pack('Na*N2', strlen($remote_file), $remote_file, NET_SFTP_OPEN_READ, 0); + $packet = pack('Na*', strlen($remote_file), $remote_file); + $packet.= $this->version >= 5 ? + pack('N3', 0, NET_SFTP_OPEN_OPEN_EXISTING, 0) : + pack('N2', NET_SFTP_OPEN_READ, 0); if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { return false; } @@ -2316,6 +2678,7 @@ function get($remote_file, $local_file = false, $offset = 0, $length = -1, $prog } // maybe the file was successfully transferred, maybe it wasn't if ($this->channel_close) { + $this->partial_init = false; $this->_init_sftp_connection(); return false; } else { @@ -2330,14 +2693,6 @@ function get($remote_file, $local_file = false, $offset = 0, $length = -1, $prog } } - if ($length > 0 && $length <= $offset - $start) { - if ($local_file === false) { - $content = substr($content, 0, $length); - } else { - ftruncate($fp, $length + $res_offset); - } - } - if ($fclose_check) { fclose($fp); @@ -2365,7 +2720,7 @@ function get($remote_file, $local_file = false, $offset = 0, $length = -1, $prog */ function delete($path, $recursive = true) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -2433,12 +2788,17 @@ function _delete_recursive($path, &$i) $i = 0; $entries = $this->_list($path, true); - // normally $entries would have at least . and .. but it might not if the directories - // permissions didn't allow reading - if (empty($entries)) { + // The folder does not exist at all, so we cannot delete it. + if ($entries === NET_SFTP_STATUS_NO_SUCH_FILE) { return false; } + // Normally $entries would have at least . and .. but it might not if the directories + // permissions didn't allow reading. If this happens then default to an empty list of files. + if ($entries === false || is_int($entries)) { + $entries = array(); + } + unset($entries['.'], $entries['..']); foreach ($entries as $filename => $props) { if (!isset($props['type'])) { @@ -2494,6 +2854,10 @@ function _delete_recursive($path, &$i) function file_exists($path) { if ($this->use_stat_cache) { + if (!$this->_precheck()) { + return false; + } + $path = $this->_realpath($path); $result = $this->_query_stat_cache($path); @@ -2564,6 +2928,10 @@ function is_link($path) */ function is_readable($path) { + if (!$this->_precheck()) { + return false; + } + $path = $this->_realpath($path); $packet = pack('Na*N2', strlen($path), $path, NET_SFTP_OPEN_READ, 0); @@ -2592,6 +2960,10 @@ function is_readable($path) */ function is_writable($path) { + if (!$this->_precheck()) { + return false; + } + $path = $this->_realpath($path); $packet = pack('Na*N2', strlen($path), $path, NET_SFTP_OPEN_WRITE, 0); @@ -2772,6 +3144,10 @@ function _get_lstat_cache_prop($path, $prop) */ function _get_xstat_cache_prop($path, $prop, $type) { + if (!$this->_precheck()) { + return false; + } + if ($this->use_stat_cache) { $path = $this->_realpath($path); @@ -2792,7 +3168,9 @@ function _get_xstat_cache_prop($path, $prop, $type) } /** - * Renames a file or a directory on the SFTP server + * Renames a file or a directory on the SFTP server. + * + * If the file already exists this will return false * * @param string $oldname * @param string $newname @@ -2801,7 +3179,7 @@ function _get_xstat_cache_prop($path, $prop, $type) */ function rename($oldname, $newname) { - if (!($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->_precheck()) { return false; } @@ -2813,6 +3191,18 @@ function rename($oldname, $newname) // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 $packet = pack('Na*Na*', strlen($oldname), $oldname, strlen($newname), $newname); + if ($this->version >= 5) { + /* quoting https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-05#section-6.5 , + + 'flags' is 0 or a combination of: + + SSH_FXP_RENAME_OVERWRITE 0x00000001 + SSH_FXP_RENAME_ATOMIC 0x00000002 + SSH_FXP_RENAME_NATIVE 0x00000004 + + (none of these are currently supported) */ + $packet.= "\0\0\0\0"; + } if (!$this->_send_sftp_packet(NET_SFTP_RENAME, $packet)) { return false; } @@ -2842,6 +3232,31 @@ function rename($oldname, $newname) return true; } + /** + * Parse Time + * + * See '7.7. Times' of draft-ietf-secsh-filexfer-13 for more info. + * + * @param string $key + * @param int $flags + * @param string $response + * @return array + * @access private + */ + function _parseTime($key, $flags, &$response) + { + if (strlen($response) < 8) { + user_error('Malformed file attributes'); + return array(); + } + $attr = array(); + $attr[$key] = hexdec(bin2hex($this->_string_shift($response, 8))); + if ($flags & NET_SFTP_ATTR_SUBSECOND_TIMES) { + $attr+= extract(unpack('N' . $key . '_nseconds', $this->_string_shift($response, 4))); + } + return $attr; + } + /** * Parse Attributes * @@ -2853,16 +3268,56 @@ function rename($oldname, $newname) */ function _parseAttributes(&$response) { + if ($this->version >= 4) { + $length = 5; + $format = 'Nflags/Ctype'; + } else { + $length = 4; + $format = 'Nflags'; + } + $attr = array(); - if (strlen($response) < 4) { + if (strlen($response) < $length) { user_error('Malformed file attributes'); return array(); } - extract(unpack('Nflags', $this->_string_shift($response, 4))); - // SFTPv4+ have a type field (a byte) that follows the above flag field + extract(unpack($format, $this->_string_shift($response, $length))); + if (isset($type)) { + $attr['type'] = $type; + } foreach ($this->attributes as $key => $value) { switch ($flags & $key) { - case NET_SFTP_ATTR_SIZE: // 0x00000001 + case NET_SFTP_ATTR_UIDGID: + if ($this->version > 3) { + continue 2; + } + break; + case NET_SFTP_ATTR_CREATETIME: + case NET_SFTP_ATTR_MODIFYTIME: + case NET_SFTP_ATTR_ACL: + case NET_SFTP_ATTR_OWNERGROUP: + case NET_SFTP_ATTR_SUBSECOND_TIMES: + if ($this->version < 4) { + continue 2; + } + break; + case NET_SFTP_ATTR_BITS: + if ($this->version < 5) { + continue 2; + } + break; + case NET_SFTP_ATTR_ALLOCATION_SIZE: + case NET_SFTP_ATTR_TEXT_HINT: + case NET_SFTP_ATTR_MIME_TYPE: + case NET_SFTP_ATTR_LINK_COUNT: + case NET_SFTP_ATTR_UNTRANSLATED_NAME: + case NET_SFTP_ATTR_CTIME: + if ($this->version < 6) { + continue 2; + } + } + switch ($flags & $key) { + case NET_SFTP_ATTR_SIZE: // 0x00000001 // The size attribute is defined as an unsigned 64-bit integer. // The following will use floats on 32-bit platforms, if necessary. // As can be seen in the BigInteger class, floats are generally @@ -2871,14 +3326,14 @@ function _parseAttributes(&$response) // of precision. Interpreted in filesize, 2^50 bytes = 1024 TiB. $attr['size'] = hexdec(bin2hex($this->_string_shift($response, 8))); break; - case NET_SFTP_ATTR_UIDGID: // 0x00000002 (SFTPv3 only) + case NET_SFTP_ATTR_UIDGID: // 0x00000002 (SFTPv3 or earlier) if (strlen($response) < 8) { user_error('Malformed file attributes'); return $attr; } $attr+= unpack('Nuid/Ngid', $this->_string_shift($response, 8)); break; - case NET_SFTP_ATTR_PERMISSIONS: // 0x00000004 + case NET_SFTP_ATTR_PERMISSIONS: // 0x00000004 if (strlen($response) < 4) { user_error('Malformed file attributes'); return $attr; @@ -2892,14 +3347,134 @@ function _parseAttributes(&$response) $attr+= array('type' => $fileType); } break; - case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008 + case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008 + if ($this->version >= 4) { + $attr+= $this->_parseTime('atime', $flags, $response); + break; + } if (strlen($response) < 8) { user_error('Malformed file attributes'); return $attr; } $attr+= unpack('Natime/Nmtime', $this->_string_shift($response, 8)); break; - case NET_SFTP_ATTR_EXTENDED: // 0x80000000 + case NET_SFTP_ATTR_CREATETIME: // 0x00000010 (SFTPv4+) + $attr+= $this->_parseTime('createtime', $flags, $response); + break; + case NET_SFTP_ATTR_MODIFYTIME: // 0x00000020 + $attr+= $this->_parseTime('mtime', $flags, $response); + break; + case NET_SFTP_ATTR_ACL: // 0x00000040 + // access control list + // see https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-04#section-5.7 + // currently unsupported + if (strlen($response) < 4) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Ncount', $this->_string_shift($response, 4))); + for ($i = 0; $i < $count; $i++) { + if (strlen($response) < 16) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Ntype/Nflag/Nmask/Nlength', $this->_string_shift($response, 16))); + if (strlen($response) < $length) { + user_error('Malformed file attributes'); + return $attr; + } + $this->_string_shift($response, $length); // who + } + break; + case NET_SFTP_ATTR_OWNERGROUP: // 0x00000080 + if (strlen($response) < 4) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + if (strlen($response) < $length) { + user_error('Malformed file attributes'); + return $attr; + } + $attr['owner'] = $this->_string_shift($response, $length); + + if (strlen($response) < 4) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + if (strlen($response) < $length) { + user_error('Malformed file attributes'); + return $attr; + } + $attr['group'] = $this->_string_shift($response, $length); + break; + case NET_SFTP_ATTR_SUBSECOND_TIMES: // 0x00000100 + break; + case NET_SFTP_ATTR_BITS: // 0x00000200 (SFTPv5+) + // see https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-05#section-5.8 + // currently unsupported + // tells if you file is: + // readonly, system, hidden, case inensitive, archive, encrypted, compressed, sparse + // append only, immutable, sync + if (strlen($response) < 8) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Nattrib-bits/Nattrib-bits-valid', $this->_string_shift($response, 8))); + break; + case NET_SFTP_ATTR_ALLOCATION_SIZE: // 0x00000400 (SFTPv6+) + // see https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-7.4 + // represents the number of bytes htat the file consumes on the disk. will + // usually be larger than the 'size' field + $attr['allocation-size'] = hexdec(bin2hex($this->_string_shift($response, 8))); + break; + case NET_SFTP_ATTR_TEXT_HINT: // 0x00000800 + // https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-7.10 + // currently unsupported + // tells if file is "known text", "guessed text", "known binary", "guessed binary" + extract(unpack('Ctext-hint', $this->_string_shift($response))); + break; + case NET_SFTP_ATTR_MIME_TYPE: // 0x00001000 + // see https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-7.11 + if (strlen($response) < 4) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + if (strlen($response) < $length) { + user_error('Malformed file attributes'); + return $attr; + } + $attr['mime-type'] = $this->_string_shift($response, $length); + break; + case NET_SFTP_ATTR_LINK_COUNT: // 0x00002000 + // see https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-7.12 + if (strlen($response) < 4) { + user_error('Malformed file attributes'); + return $attr; + } + $attr+= unpack('Nlink-count', $this->_string_shift($response, 4)); + break; + case NET_SFTP_ATTR_UNTRANSLATED_NAME:// 0x00004000 + // see https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-13#section-7.13 + if (strlen($response) < 4) { + user_error('Malformed file attributes'); + return $attr; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + if (strlen($response) < $length) { + user_error('Malformed file attributes'); + return $attr; + } + $attr['untranslated-name'] = $this->_string_shift($response, $length); + break; + case NET_SFTP_ATTR_CTIME: // 0x00008000 + // 'ctime' contains the last time the file attributes were changed. The + // exact meaning of this field depends on the server. + $attr+= $this->_parseTime('ctime', $flags, $response); + break; + case NET_SFTP_ATTR_EXTENDED: // 0x80000000 if (strlen($response) < 4) { user_error('Malformed file attributes'); return $attr; @@ -3065,6 +3640,7 @@ function _reset_connection($reason) $this->use_request_id = false; $this->pwd = false; $this->requestBuffer = array(); + $this->partial_init = false; } /** @@ -3108,6 +3684,9 @@ function _get_sftp_packet($request_id = null) $this->packet_buffer = ''; return false; } + if ($temp === false) { + return false; + } $this->packet_buffer.= $temp; } if (strlen($this->packet_buffer) < 4) { @@ -3117,9 +3696,8 @@ function _get_sftp_packet($request_id = null) $tempLength = $length; $tempLength-= strlen($this->packet_buffer); - // 256 * 1024 is what SFTP_MAX_MSG_LENGTH is set to in OpenSSH's sftp-common.h - if ($tempLength > 256 * 1024) { + if (!$this->allow_arbitrary_length_packets && !$this->use_request_id && $tempLength > 256 * 1024) { user_error('Invalid SFTP packet size'); return false; } @@ -3128,6 +3706,9 @@ function _get_sftp_packet($request_id = null) while ($tempLength > 0) { $temp = $this->_get_channel_packet(self::CHANNEL, true); if (is_bool($temp)) { + if ($temp && $this->channel_status[self::CHANNEL] === NET_SSH2_MSG_CHANNEL_CLOSE) { + $this->channel_close = true; + } $this->packet_type = false; $this->packet_buffer = ''; return false; @@ -3208,7 +3789,7 @@ function getSFTPLog() } /** - * Returns all errors + * Returns all errors on the SFTP layer * * @return array * @access public @@ -3219,7 +3800,7 @@ function getSFTPErrors() } /** - * Returns the last error + * Returns the last error on the SFTP layer * * @return string * @access public @@ -3237,13 +3818,51 @@ function getLastSFTPError() */ function getSupportedVersions() { - $temp = array('version' => $this->version); + if (!($this->bitmap & SSH2::MASK_LOGIN)) { + return false; + } + + if (!$this->partial_init) { + $this->_partial_init_sftp_connection(); + } + + $temp = array('version' => $this->defaultVersion); if (isset($this->extensions['versions'])) { $temp['extensions'] = $this->extensions['versions']; } return $temp; } + /** + * Get supported SFTP versions + * + * @return array + * @access public + */ + function getNegotiatedVersion() + { + if (!$this->_precheck()) { + return false; + } + + return $this->version; + } + + /** + * Set preferred version + * + * If you're preferred version isn't supported then the highest supported + * version of SFTP will be utilized. Set to null or false or int(0) to + * unset the preferred version + * + * @param int $version + * @access public + */ + function setPreferredVersion($version) + { + $this->preferredVersion = $version; + } + /** * Disconnect * diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php index e372b8b92..fc8d2acd8 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php @@ -205,6 +205,10 @@ class SSH1 * Dumps the content real-time to a file */ const LOG_REALTIME_FILE = 4; + /** + * Make sure that the log never gets larger than this + */ + const LOG_MAX_SIZE = 1048576; // 1024 * 1024 /**#@-*/ /**#@+ @@ -360,7 +364,7 @@ class SSH1 * @var array * @access private */ - var $protocol_flag_log = array(); + var $protocol_flags_log = array(); /** * Message Log @@ -407,6 +411,18 @@ class SSH1 */ var $interactiveBuffer = ''; + /** + * Current log size + * + * Should never exceed self::LOG_MAX_SIZE + * + * @see self::_send_binary_packet() + * @see self::_get_binary_packet() + * @var int + * @access private + */ + var $log_size; + /** * Timeout * @@ -1418,7 +1434,7 @@ function getLog() switch (NET_SSH1_LOGGING) { case self::LOG_SIMPLE: - return $this->message_number_log; + return $this->protocol_flags_log; break; case self::LOG_COMPLEX: return $this->_format_log($this->message_log, $this->protocol_flags_log); diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php index e449d987a..607cc2145 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php @@ -70,6 +70,25 @@ */ class SSH2 { + /**#@+ + * Compression Types + * + * @access private + */ + /** + * No compression + */ + const NET_SSH2_COMPRESSION_NONE = 1; + /** + * zlib compression + */ + const NET_SSH2_COMPRESSION_ZLIB = 2; + /** + * zlib@openssh.com + */ + const NET_SSH2_COMPRESSION_ZLIB_AT_OPENSSH = 3; + /**#@-*/ + /**#@+ * Execution Bitmap Masks * @@ -254,6 +273,18 @@ class SSH2 */ var $server_host_key_algorithms = false; + /** + * Supported Private Key Algorithms + * + * In theory this should be the same as the Server Host Key Algorithms but, in practice, + * some servers (eg. Azure) will support rsa-sha2-512 as a server host key algorithm but + * not a private key algorithm + * + * @see self::privatekey_login() + * @var array|false + */ + var $supported_private_key_algorithms = false; + /** * Encryption Algorithms: Client to Server * @@ -371,6 +402,14 @@ class SSH2 */ var $decrypt = false; + /** + * Decryption Algorithm Name + * + * @var string|null + * @access private + */ + var $decryptName; + /** * Client to Server Encryption Object * @@ -380,6 +419,14 @@ class SSH2 */ var $encrypt = false; + /** + * Encryption Algorithm Name + * + * @var string|null + * @access private + */ + var $encryptName; + /** * Client to Server HMAC Object * @@ -389,6 +436,13 @@ class SSH2 */ var $hmac_create = false; + /** + * Client to Server HMAC Name + * + * @var string|false + */ + private $hmac_create_name; + /** * Server to Client HMAC Object * @@ -398,6 +452,13 @@ class SSH2 */ var $hmac_check = false; + /** + * Server to Client HMAC Name + * + * @var string|false + */ + var $hmac_check_name; + /** * Size of server to client HMAC * @@ -975,13 +1036,80 @@ class SSH2 * * @see https://tools.ietf.org/html/rfc4252#section-5.1 * @var array|null + * @access private + */ + var $auth_methods_to_continue = null; + + /** + * Compression method + * + * @var int + * @access private + */ + var $compress = self::NET_SSH2_COMPRESSION_NONE; + + /** + * Decompression method + * + * @var resource|object + * @access private + */ + var $decompress = self::NET_SSH2_COMPRESSION_NONE; + + /** + * Compression context + * + * @var int + * @access private + */ + var $compress_context; + + /** + * Decompression context + * + * @var resource|object + * @access private + */ + var $decompress_context; + + /** + * Regenerate Compression Context + * + * @var bool + * @access private + */ + var $regenerate_compression_context = false; + + /** + * Regenerate Decompression Context + * + * @var bool + * @access private + */ + var $regenerate_decompression_context = false; + + /** + * Smart multi-factor authentication flag + * + * @var bool + * @access private */ - private $auth_methods_to_continue = null; + var $smartMFA = true; + + /** + * Extra packets counter + * + * @var bool + * @access private + */ + var $extra_packets; /** * Default Constructor. * * $host can either be a string, representing the host, or a stream resource. + * If $host is a stream resource then $port doesn't do anything, altho $timeout + * still will be used * * @param mixed $host * @param int $port @@ -999,6 +1127,7 @@ function __construct($host, $port = 22, $timeout = 10) 4 => 'NET_SSH2_MSG_DEBUG', 5 => 'NET_SSH2_MSG_SERVICE_REQUEST', 6 => 'NET_SSH2_MSG_SERVICE_ACCEPT', + 7 => 'NET_SSH2_MSG_EXT_INFO', // RFC 8308 20 => 'NET_SSH2_MSG_KEXINIT', 21 => 'NET_SSH2_MSG_NEWKEYS', 30 => 'NET_SSH2_MSG_KEXDH_INIT', @@ -1071,6 +1200,8 @@ function __construct($host, $port = 22, $timeout = 10) 31 => 'NET_SSH2_MSG_KEX_ECDH_REPLY') ); + $this->timeout = $timeout; + if (is_resource($host)) { $this->fsock = $host; return; @@ -1079,7 +1210,6 @@ function __construct($host, $port = 22, $timeout = 10) if (is_string($host)) { $this->host = $host; $this->port = $port; - $this->timeout = $timeout; } } @@ -1218,8 +1348,8 @@ function _connect() $read = array($this->fsock); $write = $except = null; $start = microtime(true); - $sec = floor($this->curTimeout); - $usec = 1000000 * ($this->curTimeout - $sec); + $sec = (int) floor($this->curTimeout); + $usec = (int) (1000000 * ($this->curTimeout - $sec)); // on windows this returns a "Warning: Invalid CRT parameters detected" error // the !count() is done as a workaround for if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { @@ -1234,6 +1364,7 @@ function _connect() if (strlen($temp) == 255) { continue; } + if ($temp === false) { return false; } @@ -1382,6 +1513,8 @@ function _key_exchange($kexinit_payload_server = false) $preferred['client_to_server']['comp'] : $this->getSupportedCompressionAlgorithms(); + $kex_algorithms = array_merge($kex_algorithms, array('ext-info-c', 'kex-strict-c-v00@openssh.com')); + // some SSH servers have buggy implementations of some of the above algorithms switch (true) { case $this->server_identifier == 'SSH-2.0-SSHD': @@ -1444,6 +1577,7 @@ function _key_exchange($kexinit_payload_server = false) return false; } + $this->extra_packets = 0; $kexinit_payload_server = $this->_get_binary_packet(); if ($kexinit_payload_server === false) { $this->bitmap = 0; @@ -1468,6 +1602,12 @@ function _key_exchange($kexinit_payload_server = false) } $temp = unpack('Nlength', $this->_string_shift($response, 4)); $this->kex_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + if (in_array('kex-strict-s-v00@openssh.com', $this->kex_algorithms)) { + if ($this->session_id === false && $this->extra_packets) { + user_error('Possible Terrapin Attack detected'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + } if (strlen($response) < 4) { return false; @@ -1475,6 +1615,8 @@ function _key_exchange($kexinit_payload_server = false) $temp = unpack('Nlength', $this->_string_shift($response, 4)); $this->server_host_key_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + $this->supported_private_key_algorithms = $this->server_host_key_algorithms; + if (strlen($response) < 4) { return false; } @@ -1569,19 +1711,25 @@ function _key_exchange($kexinit_payload_server = false) return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); } + $compression_map = array( + 'none' => self::NET_SSH2_COMPRESSION_NONE, + 'zlib' => self::NET_SSH2_COMPRESSION_ZLIB, + 'zlib@openssh.com' => self::NET_SSH2_COMPRESSION_ZLIB_AT_OPENSSH + ); + $compression_algorithm_out = $this->_array_intersect_first($c2s_compression_algorithms, $this->compression_algorithms_client_to_server); if ($compression_algorithm_out === false) { user_error('No compatible client to server compression algorithms found'); return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); } - //$this->decompress = $compression_algorithm_out == 'zlib'; + $this->compress = $compression_map[$compression_algorithm_out]; - $compression_algorithm_in = $this->_array_intersect_first($s2c_compression_algorithms, $this->compression_algorithms_client_to_server); + $compression_algorithm_in = $this->_array_intersect_first($s2c_compression_algorithms, $this->compression_algorithms_server_to_client); if ($compression_algorithm_in === false) { user_error('No compatible server to client compression algorithms found'); return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); } - //$this->compress = $compression_algorithm_in == 'zlib'; + $this->decompress = $compression_map[$compression_algorithm_in]; // Only relevant in diffie-hellman-group-exchange-sha{1,256}, otherwise empty. $exchange_hash_rfc4419 = ''; @@ -1866,6 +2014,10 @@ function _key_exchange($kexinit_payload_server = false) return false; } + if (in_array('kex-strict-s-v00@openssh.com', $this->kex_algorithms)) { + $this->get_seq_no = $this->send_seq_no = 0; + } + $keyBytes = pack('Na*', strlen($keyBytes), $keyBytes); $this->encrypt = $this->_encryption_algorithm_to_crypt_instance($encrypt); @@ -1895,7 +2047,7 @@ function _key_exchange($kexinit_payload_server = false) } $this->encrypt->setKey(substr($key, 0, $encryptKeyLength)); - $this->encrypt->name = $decrypt; + $this->encryptName = $encrypt; } $this->decrypt = $this->_encryption_algorithm_to_crypt_instance($decrypt); @@ -1925,7 +2077,7 @@ function _key_exchange($kexinit_payload_server = false) } $this->decrypt->setKey(substr($key, 0, $decryptKeyLength)); - $this->decrypt->name = $decrypt; + $this->decryptName = $decrypt; } /* The "arcfour128" algorithm is the RC4 cipher, as described in @@ -1970,7 +2122,7 @@ function _key_exchange($kexinit_payload_server = false) $this->hmac_create = new Hash('md5-96'); $createKeyLength = 16; } - $this->hmac_create->name = $mac_algorithm_out; + $this->hmac_create_name = $mac_algorithm_out; $checkKeyLength = 0; $this->hmac_size = 0; @@ -2000,7 +2152,7 @@ function _key_exchange($kexinit_payload_server = false) $checkKeyLength = 16; $this->hmac_size = 12; } - $this->hmac_check->name = $mac_algorithm_in; + $this->hmac_check_name = $mac_algorithm_in; $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'E' . $this->session_id); while ($createKeyLength > strlen($key)) { @@ -2014,6 +2166,8 @@ function _key_exchange($kexinit_payload_server = false) } $this->hmac_check->setKey(substr($key, 0, $checkKeyLength)); + $this->regenerate_compression_context = $this->regenerate_decompression_context = true; + return true; } @@ -2138,11 +2292,13 @@ function _bad_algorithm_candidate($algorithm) function login($username) { $args = func_get_args(); - $this->auth[] = $args; + if (!$this->retry_connect) { + $this->auth[] = $args; + } // try logging with 'none' as an authentication method first since that's what // PuTTY does - if (substr($this->server_identifier, 0, 13) != 'SSH-2.0-CoreFTP' && $this->auth_methods_to_continue === null) { + if (substr($this->server_identifier, 0, 15) != 'SSH-2.0-CoreFTP' && $this->auth_methods_to_continue === null) { if ($this->_login($username)) { return true; } @@ -2174,9 +2330,61 @@ function _login($username) return $this->_login_helper($username); } - foreach ($args as $arg) { - if ($this->_login_helper($username, $arg)) { - return true; + while (count($args)) { + if (!$this->auth_methods_to_continue || !$this->smartMFA) { + $newargs = $args; + $args = array(); + } else { + $newargs = array(); + foreach ($this->auth_methods_to_continue as $method) { + switch ($method) { + case 'publickey': + foreach ($args as $key => $arg) { + if (is_object($arg)) { + $newargs[] = $arg; + unset($args[$key]); + break; + } + } + break; + case 'keyboard-interactive': + $hasArray = $hasString = false; + foreach ($args as $arg) { + if ($hasArray || is_array($arg)) { + $hasArray = true; + break; + } + if ($hasString || is_string($arg)) { + $hasString = true; + break; + } + } + if ($hasArray && $hasString) { + foreach ($args as $key => $arg) { + if (is_array($arg)) { + $newargs[] = $arg; + break 2; + } + } + } + case 'password': + foreach ($args as $key => $arg) { + $newargs[] = $arg; + unset($args[$key]); + break; + } + } + } + } + + if (!count($newargs)) { + return false; + } + + foreach ($newargs as $arg) { + if ($this->_login_helper($username, $arg)) { + return true; + } } } return false; @@ -2229,6 +2437,35 @@ function _login_helper($username, $password = null) } extract(unpack('Ctype', $this->_string_shift($response, 1))); + if ($type == NET_SSH2_MSG_EXT_INFO) { + if (strlen($response) < 4) { + return false; + } + $nr_extensions = unpack('Nlength', $this->_string_shift($response, 4)); + for ($i = 0; $i < $nr_extensions['length']; $i++) { + if (strlen($response) < 4) { + return false; + } + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $extension_name = $this->_string_shift($response, $temp['length']); + if ($extension_name == 'server-sig-algs') { + if (strlen($response) < 4) { + return false; + } + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->supported_private_key_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + } + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + $this->bitmap = 0; + user_error('Connection closed by server'); + return false; + } + extract(unpack('Ctype', $this->_string_shift($response, 1))); + } + if ($type != NET_SSH2_MSG_SERVICE_ACCEPT) { user_error('Expected SSH_MSG_SERVICE_ACCEPT'); return false; @@ -2594,7 +2831,13 @@ function _privatekey_login($username, $privatekey) $publickey['n'] ); - switch ($this->signature_format) { + $algos = array('rsa-sha2-256', 'rsa-sha2-512', 'ssh-rsa'); + if (isset($this->preferred['hostkey'])) { + $algos = array_intersect($algos, $this->preferred['hostkey']); + } + $algo = $this->_array_intersect_first($algos, $this->supported_private_key_algorithms); + + switch ($algo) { case 'rsa-sha2-512': $hash = 'sha512'; $signatureType = 'rsa-sha2-512'; @@ -2644,7 +2887,12 @@ function _privatekey_login($username, $privatekey) return false; } extract(unpack('Nmethodlistlen', $this->_string_shift($response, 4))); - $this->auth_methods_to_continue = explode(',', $this->_string_shift($response, $methodlistlen)); + $auth_methods = explode(',', $this->_string_shift($response, $methodlistlen)); + if (in_array('publickey', $auth_methods) && substr($signatureType, 0, 9) == 'rsa-sha2-') { + $this->supported_private_key_algorithms = array_diff($this->supported_private_key_algorithms, array('rsa-sha2-256', 'rsa-sha2-512')); + return $this->_privatekey_login($username, $privatekey); + } + $this->auth_methods_to_continue = $auth_methods; $this->errors[] = 'SSH_MSG_USERAUTH_FAILURE'; return false; case NET_SSH2_MSG_USERAUTH_PK_OK: @@ -2698,6 +2946,16 @@ function _privatekey_login($username, $privatekey) return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); } + /** + * Return the currently configured timeout + * + * @return int + */ + function getTimeout() + { + return $this->timeout; + } + /** * Set Timeout * @@ -2814,26 +3072,12 @@ function exec($command, $callback = null) return false; } - $response = $this->_get_binary_packet(); - if ($response === false) { - $this->bitmap = 0; - user_error('Connection closed by server'); - return false; - } - - if (!strlen($response)) { - return false; + $this->channel_status[self::CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_REQUEST; + if (!$this->_get_channel_packet(self::CHANNEL_EXEC)) { + user_error('Unable to request pseudo-terminal'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); } - list(, $type) = unpack('C', $this->_string_shift($response, 1)); - switch ($type) { - case NET_SSH2_MSG_CHANNEL_SUCCESS: - break; - case NET_SSH2_MSG_CHANNEL_FAILURE: - default: - user_error('Unable to request pseudo-terminal'); - return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); - } $this->in_request_pty_exec = true; } @@ -2954,6 +3198,13 @@ function _initShell() return false; } + $this->channel_status[self::CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_REQUEST; + + if (!$this->_get_channel_packet(self::CHANNEL_SHELL)) { + user_error('Unable to request pseudo-terminal'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + $packet = pack( 'CNNa*C', NET_SSH2_MSG_CHANNEL_REQUEST, @@ -2966,7 +3217,12 @@ function _initShell() return false; } - $this->channel_status[self::CHANNEL_SHELL] = NET_SSH2_MSG_IGNORE; + $response = $this->_get_channel_packet(self::CHANNEL_SHELL); + if ($response === false) { + return false; + } + + $this->channel_status[self::CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_DATA; $this->bitmap |= self::MASK_SHELL; @@ -3228,7 +3484,7 @@ function __destruct() */ function isConnected() { - return (bool) ($this->bitmap & self::MASK_CONNECTED); + return ($this->bitmap & self::MASK_CONNECTED) && is_resource($this->fsock) && !feof($this->fsock); } /** @@ -3369,8 +3625,8 @@ function _get_binary_packet($skip_channel_filter = false) $this->curTimeout-= $elapsed; } - $sec = floor($this->curTimeout); - $usec = 1000000 * ($this->curTimeout - $sec); + $sec = (int)floor($this->curTimeout); + $usec = (int)(1000000 * ($this->curTimeout - $sec)); // on windows this returns a "Warning: Invalid CRT parameters detected" error if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { @@ -3384,15 +3640,23 @@ function _get_binary_packet($skip_channel_filter = false) if (!is_resource($this->fsock) || feof($this->fsock)) { $this->bitmap = 0; - user_error('Connection closed prematurely'); + $str = 'Connection closed (by server) prematurely'; + if (isset($elapsed)) { + $str.= ' ' . $elapsed . 's'; + } + user_error($str); return false; } $start = microtime(true); + $sec = (int) floor($this->curTimeout); + $usec = (int) (1000000 * ($this->curTimeout - $sec)); + stream_set_timeout($this->fsock, $sec, $usec); $raw = stream_get_contents($this->fsock, $this->decrypt_block_size); if (!strlen($raw)) { - return ''; + user_error('No data received from server'); + return false; } if ($this->decrypt !== false) { @@ -3414,7 +3678,7 @@ function _get_binary_packet($skip_channel_filter = false) // "implementations SHOULD check that the packet length is reasonable" // PuTTY uses 0x9000 as the actual max packet size and so to shall we if ($remaining_length < -$this->decrypt_block_size || $remaining_length > 0x9000 || $remaining_length % $this->decrypt_block_size != 0) { - if (!$this->bad_key_size_fix && $this->_bad_algorithm_candidate($this->decrypt->name) && !($this->bitmap & SSH2::MASK_LOGIN)) { + if (!$this->bad_key_size_fix && $this->_bad_algorithm_candidate($this->decryptName) && !($this->bitmap & SSH2::MASK_LOGIN)) { $this->bad_key_size_fix = true; $this->_reset_connection(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); return false; @@ -3455,9 +3719,41 @@ function _get_binary_packet($skip_channel_filter = false) } } - //if ($this->decompress) { - // $payload = gzinflate(substr($payload, 2)); - //} + switch ($this->decompress) { + case self::NET_SSH2_COMPRESSION_ZLIB_AT_OPENSSH: + if (!$this->isAuthenticated()) { + break; + } + case self::NET_SSH2_COMPRESSION_ZLIB: + if ($this->regenerate_decompression_context) { + $this->regenerate_decompression_context = false; + + $cmf = ord($payload[0]); + $cm = $cmf & 0x0F; + if ($cm != 8) { // deflate + user_error("Only CM = 8 ('deflate') is supported ($cm)"); + } + $cinfo = ($cmf & 0xF0) >> 4; + if ($cinfo > 7) { + user_error("CINFO above 7 is not allowed ($cinfo)"); + } + $windowSize = 1 << ($cinfo + 8); + + $flg = ord($payload[1]); + //$fcheck = $flg && 0x0F; + if ((($cmf << 8) | $flg) % 31) { + user_error('fcheck failed'); + } + $fdict = boolval($flg & 0x20); + $flevel = ($flg & 0xC0) >> 6; + + $this->decompress_context = inflate_init(ZLIB_ENCODING_RAW, array('window' => $cinfo + 8)); + $payload = substr($payload, 2); + } + if ($this->decompress_context) { + $payload = inflate_add($this->decompress_context, $payload, ZLIB_PARTIAL_FLUSH); + } + } $this->get_seq_no++; @@ -3495,9 +3791,11 @@ function _filter($payload, $skip_channel_filter) $this->bitmap = 0; return false; case NET_SSH2_MSG_IGNORE: + $this->extra_packets++; $payload = $this->_get_binary_packet($skip_channel_filter); break; case NET_SSH2_MSG_DEBUG: + $this->extra_packets++; $this->_string_shift($payload, 2); if (strlen($payload) < 4) { return false; @@ -3509,6 +3807,7 @@ function _filter($payload, $skip_channel_filter) case NET_SSH2_MSG_UNIMPLEMENTED: return false; case NET_SSH2_MSG_KEXINIT: + // this is here for key re-exchanges after the initial key exchange if ($this->session_id !== false) { $this->send_kex_first = false; if (!$this->_key_exchange($payload)) { @@ -3737,7 +4036,20 @@ function isPTYEnabled() function _get_channel_packet($client_channel, $skip_extended = false) { if (!empty($this->channel_buffers[$client_channel])) { - return array_shift($this->channel_buffers[$client_channel]); + switch ($this->channel_status[$client_channel]) { + case NET_SSH2_MSG_CHANNEL_REQUEST: + foreach ($this->channel_buffers[$client_channel] as $i => $packet) { + switch (ord($packet[0])) { + case NET_SSH2_MSG_CHANNEL_SUCCESS: + case NET_SSH2_MSG_CHANNEL_FAILURE: + unset($this->channel_buffers[$client_channel][$i]); + return substr($packet, 1); + } + } + break; + default: + return substr(array_shift($this->channel_buffers[$client_channel]), 1); + } } while (true) { @@ -3811,10 +4123,7 @@ function _get_channel_packet($client_channel, $skip_extended = false) if ($client_channel == $channel && $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA) { return $data; } - if (!isset($this->channel_buffers[$channel])) { - $this->channel_buffers[$channel] = array(); - } - $this->channel_buffers[$channel][] = $data; + $this->channel_buffers[$channel][] = chr($type) . $data; continue 2; case NET_SSH2_MSG_CHANNEL_REQUEST: @@ -3893,20 +4202,15 @@ function _get_channel_packet($client_channel, $skip_extended = false) $result = $client_channel == $channel ? true : $this->_get_channel_packet($client_channel, $skip_extended); $this->_on_channel_open(); return $result; - //case NET_SSH2_MSG_CHANNEL_OPEN_FAILURE: - default: + case NET_SSH2_MSG_CHANNEL_OPEN_FAILURE: user_error('Unable to open channel'); return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); - } - break; - case NET_SSH2_MSG_IGNORE: - switch ($type) { - case NET_SSH2_MSG_CHANNEL_SUCCESS: - //$this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_DATA; - continue 3; - case NET_SSH2_MSG_CHANNEL_FAILURE: - user_error('Error opening channel'); - return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + default: + if ($client_channel == $channel) { + user_error('Unexpected response to open request'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + return $this->_get_channel_packet($client_channel, $skip_extended); } break; case NET_SSH2_MSG_CHANNEL_REQUEST: @@ -3915,6 +4219,14 @@ function _get_channel_packet($client_channel, $skip_extended = false) return true; case NET_SSH2_MSG_CHANNEL_FAILURE: return false; + case NET_SSH2_MSG_CHANNEL_DATA: + if (strlen($response) < 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $data = $this->_string_shift($response, $length); + $this->channel_buffers[$channel][] = chr($type) . $data; + return $this->_get_channel_packet($client_channel, $skip_extended); default: user_error('Unable to fulfill channel request'); return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); @@ -3928,10 +4240,6 @@ function _get_channel_packet($client_channel, $skip_extended = false) switch ($type) { case NET_SSH2_MSG_CHANNEL_DATA: - //if ($this->channel_status[$channel] == NET_SSH2_MSG_IGNORE) { - // $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_DATA; - //} - /* if ($channel == self::CHANNEL_EXEC) { // SCP requires null packets, such as this, be sent. further, in the case of the ssh.com SSH server @@ -3958,10 +4266,7 @@ function _get_channel_packet($client_channel, $skip_extended = false) if ($client_channel == $channel) { return $data; } - if (!isset($this->channel_buffers[$channel])) { - $this->channel_buffers[$channel] = array(); - } - $this->channel_buffers[$channel][] = $data; + $this->channel_buffers[$channel][] = chr($type) . $data; break; case NET_SSH2_MSG_CHANNEL_CLOSE: $this->curTimeout = 5; @@ -3980,7 +4285,7 @@ function _get_channel_packet($client_channel, $skip_extended = false) case NET_SSH2_MSG_CHANNEL_EOF: break; default: - user_error('Error reading channel data'); + user_error("Error reading channel data ($type)"); return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); } } @@ -4005,11 +4310,27 @@ function _send_binary_packet($data, $logged = null) return false; } - //if ($this->compress) { - // // the -4 removes the checksum: - // // http://php.net/function.gzcompress#57710 - // $data = substr(gzcompress($data), 0, -4); - //} + if (!isset($logged)) { + $logged = $data; + } + + switch ($this->compress) { + case self::NET_SSH2_COMPRESSION_ZLIB_AT_OPENSSH: + if (!$this->isAuthenticated()) { + break; + } + case self::NET_SSH2_COMPRESSION_ZLIB: + if (!$this->regenerate_compression_context) { + $header = ''; + } else { + $this->regenerate_compression_context = false; + $this->compress_context = deflate_init(ZLIB_ENCODING_RAW, array('window' => 15)); + $header = "\x78\x9C"; + } + if ($this->compress_context) { + $data = $header . deflate_add($this->compress_context, $data, ZLIB_PARTIAL_FLUSH); + } + } // 4 (packet length) + 1 (padding length) + 4 (minimal padding amount) == 9 $packet_length = strlen($data) + 9; @@ -4037,10 +4358,10 @@ function _send_binary_packet($data, $logged = null) if (defined('NET_SSH2_LOGGING')) { $current = microtime(true); - $message_number = isset($this->message_numbers[ord($data[0])]) ? $this->message_numbers[ord($data[0])] : 'UNKNOWN (' . ord($data[0]) . ')'; + $message_number = isset($this->message_numbers[ord($logged[0])]) ? $this->message_numbers[ord($logged[0])] : 'UNKNOWN (' . ord($logged[0]) . ')'; $message_number = '-> ' . $message_number . ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)'; - $this->_append_log($message_number, isset($logged) ? $logged : $data); + $this->_append_log($message_number, $logged); $this->last_packet = $current; } @@ -4383,7 +4704,9 @@ function _array_intersect_first($array1, $array2) } /** - * Returns all errors + * Returns all errors / debug messages on the SSH layer + * + * If you are looking for messages from the SFTP layer, please see SFTP::getSFTPErrors() * * @return string[] * @access public @@ -4394,7 +4717,9 @@ function getErrors() } /** - * Returns the last error + * Returns the last error received on the SSH layer + * + * If you are looking for messages from the SFTP layer, please see SFTP::getLastSFTPError() * * @return string * @access public @@ -4735,10 +5060,12 @@ function getSupportedMACAlgorithms() */ function getSupportedCompressionAlgorithms() { - return array( - 'none' // REQUIRED no compression - //'zlib' // OPTIONAL ZLIB (LZ77) compression - ); + $algos = array('none'); // REQUIRED no compression + if (function_exists('deflate_init')) { + $algos[] = 'zlib@openssh.com'; // https://datatracker.ietf.org/doc/html/draft-miller-secsh-compression-delayed + $algos[] = 'zlib'; + } + return $algos; } /** @@ -4753,18 +5080,24 @@ function getAlgorithmsNegotiated() { $this->_connect(); + $compression_map = array( + self::NET_SSH2_COMPRESSION_NONE => 'none', + self::NET_SSH2_COMPRESSION_ZLIB => 'zlib', + self::NET_SSH2_COMPRESSION_ZLIB_AT_OPENSSH => 'zlib@openssh.com' + ); + return array( 'kex' => $this->kex_algorithm, 'hostkey' => $this->signature_format, 'client_to_server' => array( - 'crypt' => $this->encrypt->name, - 'mac' => $this->hmac_create->name, - 'comp' => 'none', + 'crypt' => $this->encryptName, + 'mac' => $this->hmac_create_name, + 'comp' => $compression_map[$this->compress], ), 'server_to_client' => array( - 'crypt' => $this->decrypt->name, - 'mac' => $this->hmac_check->name, - 'comp' => 'none', + 'crypt' => $this->decryptName, + 'mac' => $this->hmac_check_name, + 'comp' => $compression_map[$this->decompress], ) ); } @@ -5173,8 +5506,24 @@ function _updateLogHistory($old, $new) * @see https://tools.ietf.org/html/rfc4252#section-5.1 * @return array|null */ - public function getAuthMethodsToContinue() + function getAuthMethodsToContinue() { return $this->auth_methods_to_continue; } + + /** + * Enables "smart" multi-factor authentication (MFA) + */ + function enableSmartMFA() + { + $this->smartMFA = true; + } + + /** + * Disables "smart" multi-factor authentication (MFA) + */ + function disableSmartMFA() + { + $this->smartMFA = false; + } } diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php b/api/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php index 2b25250bd..ec1d9773e 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php @@ -133,9 +133,20 @@ function __construct($address = null) } } - $this->fsock = fsockopen('unix://' . $address, 0, $errno, $errstr); - if (!$this->fsock) { - user_error("Unable to connect to ssh-agent (Error $errno: $errstr)"); + if (in_array('unix', stream_get_transports())) { + $this->fsock = fsockopen('unix://' . $address, 0, $errno, $errstr); + if (!$this->fsock) { + user_error("Unable to connect to ssh-agent (Error $errno: $errstr)"); + } + } else { + if (substr($address, 0, 9) != '\\\\.\\pipe\\' || strpos(substr($address, 9), '\\') !== false) { + user_error('Address is not formatted as a named pipe should be'); + } else { + $this->fsock = fopen($address, 'r+b'); + if (!$this->fsock) { + user_error('Unable to open address'); + } + } } } @@ -234,11 +245,10 @@ function requestIdentities() * Signal that agent forwarding should * be requested when a channel is opened * - * @param Net_SSH2 $ssh * @return bool * @access public */ - function startSSHForwarding($ssh) + function startSSHForwarding() { if ($this->forward_status == self::FORWARD_NONE) { $this->forward_status = self::FORWARD_REQUEST; diff --git a/api/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php b/api/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php index 0da0999fd..547688f9f 100644 --- a/api/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php +++ b/api/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php @@ -7,7 +7,8 @@ if (extension_loaded('mbstring')) { // 2 - MB_OVERLOAD_STRING - if (ini_get('mbstring.func_overload') & 2) { + // mbstring.func_overload is deprecated in php 7.2 and removed in php 8.0. + if (version_compare(PHP_VERSION, '8.0.0') < 0 && ini_get('mbstring.func_overload') & 2) { throw new \UnexpectedValueException( 'Overloading of string functions using mbstring.func_overload ' . 'is not supported by phpseclib.' diff --git a/api/vendor/pimple/pimple/.github/workflows/tests.yml b/api/vendor/pimple/pimple/.github/workflows/tests.yml new file mode 100644 index 000000000..09b67600c --- /dev/null +++ b/api/vendor/pimple/pimple/.github/workflows/tests.yml @@ -0,0 +1,47 @@ +name: "Tests" + +on: + - pull_request + - push + +jobs: + test: + name: PHP ${{ matrix.php }} - ${{ matrix.dependencies }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + php: + - "7.2" + - "7.3" + - "7.4" + - "8.0" + - "8.1" + dependencies: + - "psr/container:^1.1" + - "psr/container:^2.0" + + steps: + - name: Checkout Code + uses: actions/checkout@v2 + + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + ini-values: display_errors=off, log_errors=on + extensions: :xdebug + env: + # https://github.com/shivammathur/setup-php/issues/407#issuecomment-773675741 + fail-fast: true + + - name: Validate composer.json + run: composer validate --strict --no-check-lock + + - name: Install dependencies +${{ matrix.dependencies }} + run: | + composer require --no-update ${{ matrix.dependencies }} + composer update --prefer-dist --no-progress + + - name: Run PHPUnit tests + run: vendor/bin/simple-phpunit --verbose diff --git a/api/vendor/pimple/pimple/.travis.yml b/api/vendor/pimple/pimple/.travis.yml deleted file mode 100644 index 046ec3082..000000000 --- a/api/vendor/pimple/pimple/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: php - -env: - global: - - REPORT_EXIT_STATUS=1 - -php: - - 7.2 - - 7.3 - - 7.4 - - 8.0 - - nightly - -before_script: - - composer self-update - - COMPOSER_ROOT_VERSION=dev-master composer install - -script: - - ./vendor/bin/simple-phpunit diff --git a/api/vendor/pimple/pimple/composer.json b/api/vendor/pimple/pimple/composer.json index fd319eb8b..ca6a58190 100644 --- a/api/vendor/pimple/pimple/composer.json +++ b/api/vendor/pimple/pimple/composer.json @@ -13,10 +13,10 @@ ], "require": { "php": ">=7.2.5", - "psr/container": "^1.1" + "psr/container": "^1.1 || ^2.0" }, "require-dev": { - "symfony/phpunit-bridge": "^5.0" + "symfony/phpunit-bridge": "^5.4@dev" }, "autoload": { "psr-0": { "Pimple": "src/" } diff --git a/api/vendor/pimple/pimple/src/Pimple/Container.php b/api/vendor/pimple/pimple/src/Pimple/Container.php index 715de10e3..586a0b77d 100644 --- a/api/vendor/pimple/pimple/src/Pimple/Container.php +++ b/api/vendor/pimple/pimple/src/Pimple/Container.php @@ -74,8 +74,11 @@ public function __construct(array $values = []) * @param string $id The unique identifier for the parameter or object * @param mixed $value The value of the parameter or a closure to define an object * + * @return void + * * @throws FrozenServiceException Prevent override of a frozen service */ + #[\ReturnTypeWillChange] public function offsetSet($id, $value) { if (isset($this->frozen[$id])) { @@ -95,6 +98,7 @@ public function offsetSet($id, $value) * * @throws UnknownIdentifierException If the identifier is not defined */ + #[\ReturnTypeWillChange] public function offsetGet($id) { if (!isset($this->keys[$id])) { @@ -130,6 +134,7 @@ public function offsetGet($id) * * @return bool */ + #[\ReturnTypeWillChange] public function offsetExists($id) { return isset($this->keys[$id]); @@ -139,7 +144,10 @@ public function offsetExists($id) * Unsets a parameter or an object. * * @param string $id The unique identifier for the parameter or object + * + * @return void */ + #[\ReturnTypeWillChange] public function offsetUnset($id) { if (isset($this->keys[$id])) { @@ -280,8 +288,7 @@ public function keys() /** * Registers a service provider. * - * @param ServiceProviderInterface $provider A ServiceProviderInterface instance - * @param array $values An array of values that customizes the provider + * @param array $values An array of values that customizes the provider * * @return static */ diff --git a/api/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php b/api/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php index c173d7c09..714b8826a 100644 --- a/api/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php +++ b/api/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php @@ -68,7 +68,7 @@ public function get(string $id) /** * {@inheritdoc} */ - public function has(string $id) + public function has(string $id): bool { return isset($this->aliases[$id]) && isset($this->container[$this->aliases[$id]]); } diff --git a/api/vendor/pimple/pimple/src/Pimple/ServiceIterator.php b/api/vendor/pimple/pimple/src/Pimple/ServiceIterator.php index 5cde5188f..ebafac16a 100644 --- a/api/vendor/pimple/pimple/src/Pimple/ServiceIterator.php +++ b/api/vendor/pimple/pimple/src/Pimple/ServiceIterator.php @@ -42,26 +42,46 @@ public function __construct(Container $container, array $ids) $this->ids = $ids; } + /** + * @return void + */ + #[\ReturnTypeWillChange] public function rewind() { \reset($this->ids); } + /** + * @return mixed + */ + #[\ReturnTypeWillChange] public function current() { return $this->container[\current($this->ids)]; } + /** + * @return mixed + */ + #[\ReturnTypeWillChange] public function key() { return \current($this->ids); } + /** + * @return void + */ + #[\ReturnTypeWillChange] public function next() { \next($this->ids); } + /** + * @return bool + */ + #[\ReturnTypeWillChange] public function valid() { return null !== \key($this->ids); diff --git a/api/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php b/api/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php index c004594ba..abf90d82e 100644 --- a/api/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php +++ b/api/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php @@ -39,8 +39,6 @@ interface ServiceProviderInterface * * This method should only be used to configure services and parameters. * It should not get services. - * - * @param Container $pimple A container instance */ public function register(Container $pimple); } diff --git a/api/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php b/api/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php index 0c910af7c..f6ca0a8dc 100644 --- a/api/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php +++ b/api/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php @@ -36,8 +36,6 @@ class PimpleServiceProvider implements ServiceProviderInterface * * This method should only be used to configure services and parameters. * It should not get services. - * - * @param Container $pimple An Container instance */ public function register(Container $pimple) { diff --git a/api/vendor/psr/clock/CHANGELOG.md b/api/vendor/psr/clock/CHANGELOG.md new file mode 100644 index 000000000..3cd6b9b75 --- /dev/null +++ b/api/vendor/psr/clock/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +All notable changes to this project will be documented in this file, in reverse chronological order by release. + +## 1.0.0 + +First stable release after PSR-20 acceptance + +## 0.1.0 + +First release diff --git a/api/vendor/psr/clock/LICENSE b/api/vendor/psr/clock/LICENSE new file mode 100644 index 000000000..be6834212 --- /dev/null +++ b/api/vendor/psr/clock/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2017 PHP Framework Interoperability Group + +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/api/vendor/psr/clock/README.md b/api/vendor/psr/clock/README.md new file mode 100644 index 000000000..6ca877eeb --- /dev/null +++ b/api/vendor/psr/clock/README.md @@ -0,0 +1,61 @@ +# PSR Clock + +This repository holds the interface for [PSR-20][psr-url]. + +Note that this is not a clock of its own. It is merely an interface that +describes a clock. See the specification for more details. + +## Installation + +```bash +composer require psr/clock +``` + +## Usage + +If you need a clock, you can use the interface like this: + +```php +clock = $clock; + } + + public function doSomething() + { + /** @var DateTimeImmutable $currentDateAndTime */ + $currentDateAndTime = $this->clock->now(); + // do something useful with that information + } +} +``` + +You can then pick one of the [implementations][implementation-url] of the interface to get a clock. + +If you want to implement the interface, you can require this package and +implement `Psr\Clock\ClockInterface` in your code. + +Don't forget to add `psr/clock-implementation` to your `composer.json`s `provides`-section like this: + +```json +{ + "provides": { + "psr/clock-implementation": "1.0" + } +} +``` + +And please read the [specification text][specification-url] for details on the interface. + +[psr-url]: https://www.php-fig.org/psr/psr-20 +[package-url]: https://packagist.org/packages/psr/clock +[implementation-url]: https://packagist.org/providers/psr/clock-implementation +[specification-url]: https://github.com/php-fig/fig-standards/blob/master/proposed/clock.md diff --git a/api/vendor/psr/clock/composer.json b/api/vendor/psr/clock/composer.json new file mode 100644 index 000000000..77992eda7 --- /dev/null +++ b/api/vendor/psr/clock/composer.json @@ -0,0 +1,21 @@ +{ + "name": "psr/clock", + "description": "Common interface for reading the clock.", + "keywords": ["psr", "psr-20", "time", "clock", "now"], + "homepage": "https://github.com/php-fig/clock", + "license": "MIT", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "require": { + "php": "^7.0 || ^8.0" + }, + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + } +} diff --git a/api/vendor/psr/clock/src/ClockInterface.php b/api/vendor/psr/clock/src/ClockInterface.php new file mode 100644 index 000000000..7b6d8d8aa --- /dev/null +++ b/api/vendor/psr/clock/src/ClockInterface.php @@ -0,0 +1,13 @@ +=7.0.0", - "psr/http-message": "^1.0" + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" }, "autoload": { "psr-4": { diff --git a/api/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php b/api/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php index 7db4e30af..d7adbf0e2 100644 --- a/api/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php +++ b/api/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php @@ -15,10 +15,10 @@ interface UploadedFileFactoryInterface * * @param StreamInterface $stream Underlying stream representing the * uploaded file content. - * @param int $size in bytes + * @param int|null $size in bytes * @param int $error PHP file upload error - * @param string $clientFilename Filename as provided by the client, if any. - * @param string $clientMediaType Media type as provided by the client, if any. + * @param string|null $clientFilename Filename as provided by the client, if any. + * @param string|null $clientMediaType Media type as provided by the client, if any. * * @return UploadedFileInterface * @@ -26,9 +26,9 @@ interface UploadedFileFactoryInterface */ public function createUploadedFile( StreamInterface $stream, - int $size = null, + ?int $size = null, int $error = \UPLOAD_ERR_OK, - string $clientFilename = null, - string $clientMediaType = null + ?string $clientFilename = null, + ?string $clientMediaType = null ): UploadedFileInterface; } diff --git a/api/vendor/psr/http-message/README.md b/api/vendor/psr/http-message/README.md index 28185338f..2668be6c3 100644 --- a/api/vendor/psr/http-message/README.md +++ b/api/vendor/psr/http-message/README.md @@ -10,4 +10,7 @@ interface that describes a HTTP message. See the specification for more details. Usage ----- -We'll certainly need some stuff in here. \ No newline at end of file +Before reading the usage guide we recommend reading the PSR-7 interfaces method list: + +* [`PSR-7 Interfaces Method List`](docs/PSR7-Interfaces.md) +* [`PSR-7 Usage Guide`](docs/PSR7-Usage.md) \ No newline at end of file diff --git a/api/vendor/psr/http-message/composer.json b/api/vendor/psr/http-message/composer.json index b0d2937a0..56e8c0a6d 100644 --- a/api/vendor/psr/http-message/composer.json +++ b/api/vendor/psr/http-message/composer.json @@ -11,7 +11,7 @@ } ], "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "autoload": { "psr-4": { @@ -20,7 +20,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } } } diff --git a/api/vendor/psr/http-message/docs/PSR7-Interfaces.md b/api/vendor/psr/http-message/docs/PSR7-Interfaces.md new file mode 100644 index 000000000..3a7e7dda6 --- /dev/null +++ b/api/vendor/psr/http-message/docs/PSR7-Interfaces.md @@ -0,0 +1,130 @@ +# Interfaces + +The purpose of this list is to help in finding the methods when working with PSR-7. This can be considered as a cheatsheet for PSR-7 interfaces. + +The interfaces defined in PSR-7 are the following: + +| Class Name | Description | +|---|---| +| [Psr\Http\Message\MessageInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagemessageinterface) | Representation of a HTTP message | +| [Psr\Http\Message\RequestInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagerequestinterface) | Representation of an outgoing, client-side request. | +| [Psr\Http\Message\ServerRequestInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageserverrequestinterface) | Representation of an incoming, server-side HTTP request. | +| [Psr\Http\Message\ResponseInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageresponseinterface) | Representation of an outgoing, server-side response. | +| [Psr\Http\Message\StreamInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagestreaminterface) | Describes a data stream | +| [Psr\Http\Message\UriInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageuriinterface) | Value object representing a URI. | +| [Psr\Http\Message\UploadedFileInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageuploadedfileinterface) | Value object representing a file uploaded through an HTTP request. | + +## `Psr\Http\Message\MessageInterface` Methods + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `getProtocolVersion()` | Retrieve HTTP protocol version | 1.0 or 1.1 | +| `withProtocolVersion($version)` | Returns new message instance with given HTTP protocol version | | +| `getHeaders()` | Retrieve all HTTP Headers | [Request Header List](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields), [Response Header List](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields) | +| `hasHeader($name)` | Checks if HTTP Header with given name exists | | +| `getHeader($name)` | Retrieves a array with the values for a single header | | +| `getHeaderLine($name)` | Retrieves a comma-separated string of the values for a single header | | +| `withHeader($name, $value)` | Returns new message instance with given HTTP Header | if the header existed in the original instance, replaces the header value from the original message with the value provided when creating the new instance. | +| `withAddedHeader($name, $value)` | Returns new message instance with appended value to given header | If header already exists value will be appended, if not a new header will be created | +| `withoutHeader($name)` | Removes HTTP Header with given name| | +| `getBody()` | Retrieves the HTTP Message Body | Returns object implementing `StreamInterface`| +| `withBody(StreamInterface $body)` | Returns new message instance with given HTTP Message Body | | + + +## `Psr\Http\Message\RequestInterface` Methods + +Same methods as `Psr\Http\Message\MessageInterface` + the following methods: + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `getRequestTarget()` | Retrieves the message's request target | origin-form, absolute-form, authority-form, asterisk-form ([RFC7230](https://www.rfc-editor.org/rfc/rfc7230.txt)) | +| `withRequestTarget($requestTarget)` | Return a new message instance with the specific request-target | | +| `getMethod()` | Retrieves the HTTP method of the request. | GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE (defined in [RFC7231](https://tools.ietf.org/html/rfc7231)), PATCH (defined in [RFC5789](https://tools.ietf.org/html/rfc5789)) | +| `withMethod($method)` | Returns a new message instance with the provided HTTP method | | +| `getUri()` | Retrieves the URI instance | | +| `withUri(UriInterface $uri, $preserveHost = false)` | Returns a new message instance with the provided URI | | + + +## `Psr\Http\Message\ServerRequestInterface` Methods + +Same methods as `Psr\Http\Message\RequestInterface` + the following methods: + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `getServerParams() ` | Retrieve server parameters | Typically derived from `$_SERVER` | +| `getCookieParams()` | Retrieves cookies sent by the client to the server. | Typically derived from `$_COOKIES` | +| `withCookieParams(array $cookies)` | Returns a new request instance with the specified cookies | | +| `withQueryParams(array $query)` | Returns a new request instance with the specified query string arguments | | +| `getUploadedFiles()` | Retrieve normalized file upload data | | +| `withUploadedFiles(array $uploadedFiles)` | Returns a new request instance with the specified uploaded files | | +| `getParsedBody()` | Retrieve any parameters provided in the request body | | +| `withParsedBody($data)` | Returns a new request instance with the specified body parameters | | +| `getAttributes()` | Retrieve attributes derived from the request | | +| `getAttribute($name, $default = null)` | Retrieve a single derived request attribute | | +| `withAttribute($name, $value)` | Returns a new request instance with the specified derived request attribute | | +| `withoutAttribute($name)` | Returns a new request instance that without the specified derived request attribute | | + +## `Psr\Http\Message\ResponseInterface` Methods: + +Same methods as `Psr\Http\Message\MessageInterface` + the following methods: + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `getStatusCode()` | Gets the response status code. | | +| `withStatus($code, $reasonPhrase = '')` | Returns a new response instance with the specified status code and, optionally, reason phrase. | | +| `getReasonPhrase()` | Gets the response reason phrase associated with the status code. | | + +## `Psr\Http\Message\StreamInterface` Methods + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `__toString()` | Reads all data from the stream into a string, from the beginning to end. | | +| `close()` | Closes the stream and any underlying resources. | | +| `detach()` | Separates any underlying resources from the stream. | | +| `getSize()` | Get the size of the stream if known. | | +| `eof()` | Returns true if the stream is at the end of the stream.| | +| `isSeekable()` | Returns whether or not the stream is seekable. | | +| `seek($offset, $whence = SEEK_SET)` | Seek to a position in the stream. | | +| `rewind()` | Seek to the beginning of the stream. | | +| `isWritable()` | Returns whether or not the stream is writable. | | +| `write($string)` | Write data to the stream. | | +| `isReadable()` | Returns whether or not the stream is readable. | | +| `read($length)` | Read data from the stream. | | +| `getContents()` | Returns the remaining contents in a string | | +| `getMetadata($key = null)()` | Get stream metadata as an associative array or retrieve a specific key. | | + +## `Psr\Http\Message\UriInterface` Methods + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `getScheme()` | Retrieve the scheme component of the URI. | | +| `getAuthority()` | Retrieve the authority component of the URI. | | +| `getUserInfo()` | Retrieve the user information component of the URI. | | +| `getHost()` | Retrieve the host component of the URI. | | +| `getPort()` | Retrieve the port component of the URI. | | +| `getPath()` | Retrieve the path component of the URI. | | +| `getQuery()` | Retrieve the query string of the URI. | | +| `getFragment()` | Retrieve the fragment component of the URI. | | +| `withScheme($scheme)` | Return an instance with the specified scheme. | | +| `withUserInfo($user, $password = null)` | Return an instance with the specified user information. | | +| `withHost($host)` | Return an instance with the specified host. | | +| `withPort($port)` | Return an instance with the specified port. | | +| `withPath($path)` | Return an instance with the specified path. | | +| `withQuery($query)` | Return an instance with the specified query string. | | +| `withFragment($fragment)` | Return an instance with the specified URI fragment. | | +| `__toString()` | Return the string representation as a URI reference. | | + +## `Psr\Http\Message\UploadedFileInterface` Methods + +| Method Name | Description | Notes | +|------------------------------------| ----------- | ----- | +| `getStream()` | Retrieve a stream representing the uploaded file. | | +| `moveTo($targetPath)` | Move the uploaded file to a new location. | | +| `getSize()` | Retrieve the file size. | | +| `getError()` | Retrieve the error associated with the uploaded file. | | +| `getClientFilename()` | Retrieve the filename sent by the client. | | +| `getClientMediaType()` | Retrieve the media type sent by the client. | | + +> `RequestInterface`, `ServerRequestInterface`, `ResponseInterface` extend `MessageInterface` because the `Request` and the `Response` are `HTTP Messages`. +> When using `ServerRequestInterface`, both `RequestInterface` and `Psr\Http\Message\MessageInterface` methods are considered. + diff --git a/api/vendor/psr/http-message/docs/PSR7-Usage.md b/api/vendor/psr/http-message/docs/PSR7-Usage.md new file mode 100644 index 000000000..b6d048a34 --- /dev/null +++ b/api/vendor/psr/http-message/docs/PSR7-Usage.md @@ -0,0 +1,159 @@ +### PSR-7 Usage + +All PSR-7 applications comply with these interfaces +They were created to establish a standard between middleware implementations. + +> `RequestInterface`, `ServerRequestInterface`, `ResponseInterface` extend `MessageInterface` because the `Request` and the `Response` are `HTTP Messages`. +> When using `ServerRequestInterface`, both `RequestInterface` and `Psr\Http\Message\MessageInterface` methods are considered. + + +The following examples will illustrate how basic operations are done in PSR-7. + +##### Examples + + +For this examples to work (at least) a PSR-7 implementation package is required. (eg: zendframework/zend-diactoros, guzzlehttp/psr7, slim/slim, etc) +All PSR-7 implementations should have the same behaviour. + +The following will be assumed: +`$request` is an object of `Psr\Http\Message\RequestInterface` and + +`$response` is an object implementing `Psr\Http\Message\RequestInterface` + + +### Working with HTTP Headers + +#### Adding headers to response: + +```php +$response->withHeader('My-Custom-Header', 'My Custom Message'); +``` + +#### Appending values to headers + +```php +$response->withAddedHeader('My-Custom-Header', 'The second message'); +``` + +#### Checking if header exists: + +```php +$request->hasHeader('My-Custom-Header'); // will return false +$response->hasHeader('My-Custom-Header'); // will return true +``` + +> Note: My-Custom-Header was only added in the Response + +#### Getting comma-separated values from a header (also applies to request) + +```php +// getting value from request headers +$request->getHeaderLine('Content-Type'); // will return: "text/html; charset=UTF-8" +// getting value from response headers +$response->getHeaderLine('My-Custom-Header'); // will return: "My Custom Message; The second message" +``` + +#### Getting array of value from a header (also applies to request) +```php +// getting value from request headers +$request->getHeader('Content-Type'); // will return: ["text/html", "charset=UTF-8"] +// getting value from response headers +$response->getHeader('My-Custom-Header'); // will return: ["My Custom Message", "The second message"] +``` + +#### Removing headers from HTTP Messages +```php +// removing a header from Request, removing deprecated "Content-MD5" header +$request->withoutHeader('Content-MD5'); + +// removing a header from Response +// effect: the browser won't know the size of the stream +// the browser will download the stream till it ends +$response->withoutHeader('Content-Length'); +``` + +### Working with HTTP Message Body + +When working with the PSR-7 there are two methods of implementation: +#### 1. Getting the body separately + +> This method makes the body handling easier to understand and is useful when repeatedly calling body methods. (You only call `getBody()` once). Using this method mistakes like `$response->write()` are also prevented. + +```php +$body = $response->getBody(); +// operations on body, eg. read, write, seek +// ... +// replacing the old body +$response->withBody($body); +// this last statement is optional as we working with objects +// in this case the "new" body is same with the "old" one +// the $body variable has the same value as the one in $request, only the reference is passed +``` + +#### 2. Working directly on response + +> This method is useful when only performing few operations as the `$request->getBody()` statement fragment is required + +```php +$response->getBody()->write('hello'); +``` + +### Getting the body contents + +The following snippet gets the contents of a stream contents. +> Note: Streams must be rewinded, if content was written into streams, it will be ignored when calling `getContents()` because the stream pointer is set to the last character, which is `\0` - meaning end of stream. +```php +$body = $response->getBody(); +$body->rewind(); // or $body->seek(0); +$bodyText = $body->getContents(); +``` +> Note: If `$body->seek(1)` is called before `$body->getContents()`, the first character will be ommited as the starting pointer is set to `1`, not `0`. This is why using `$body->rewind()` is recommended. + +### Append to body + +```php +$response->getBody()->write('Hello'); // writing directly +$body = $request->getBody(); // which is a `StreamInterface` +$body->write('xxxxx'); +``` + +### Prepend to body +Prepending is different when it comes to streams. The content must be copied before writing the content to be prepended. +The following example will explain the behaviour of streams. + +```php +// assuming our response is initially empty +$body = $repsonse->getBody(); +// writing the string "abcd" +$body->write('abcd'); + +// seeking to start of stream +$body->seek(0); +// writing 'ef' +$body->write('ef'); // at this point the stream contains "efcd" +``` + +#### Prepending by rewriting separately + +```php +// assuming our response body stream only contains: "abcd" +$body = $response->getBody(); +$body->rewind(); +$contents = $body->getContents(); // abcd +// seeking the stream to beginning +$body->rewind(); +$body->write('ef'); // stream contains "efcd" +$body->write($contents); // stream contains "efabcd" +``` + +> Note: `getContents()` seeks the stream while reading it, therefore if the second `rewind()` method call was not present the stream would have resulted in `abcdefabcd` because the `write()` method appends to stream if not preceeded by `rewind()` or `seek(0)`. + +#### Prepending by using contents as a string +```php +$body = $response->getBody(); +$body->rewind(); +$contents = $body->getContents(); // efabcd +$contents = 'ef'.$contents; +$body->rewind(); +$body->write($contents); +``` diff --git a/api/vendor/psr/http-message/src/MessageInterface.php b/api/vendor/psr/http-message/src/MessageInterface.php index dd46e5ec8..8cdb4ed63 100644 --- a/api/vendor/psr/http-message/src/MessageInterface.php +++ b/api/vendor/psr/http-message/src/MessageInterface.php @@ -1,5 +1,7 @@ [ - 'src/', - 'vendor/hoa/console/', - 'vendor/nikic/php-parser/lib/', - 'vendor/symfony/console/', - 'vendor/symfony/var-dumper/', - ], - - // A directory list that defines files that will be excluded - // from static analysis, but whose class and method - // information should be included. - // - // Generally, you'll want to include the directories for - // third-party code (such as "vendor/") in this list. - // - // n.b.: If you'd like to parse but not analyze 3rd - // party code, directories containing that code - // should be added to both the `directory_list` - // and `exclude_analysis_directory_list` arrays. - "exclude_analysis_directory_list" => [ - 'vendor/' - ], -]; diff --git a/api/vendor/psy/psysh/LICENSE b/api/vendor/psy/psysh/LICENSE index 2c6a45137..007634a5f 100644 --- a/api/vendor/psy/psysh/LICENSE +++ b/api/vendor/psy/psysh/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2012-2018 Justin Hileman +Copyright (c) 2012-2023 Justin Hileman Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/psy/psysh/README.md b/api/vendor/psy/psysh/README.md index 0be99d7a6..fc731d115 100644 --- a/api/vendor/psy/psysh/README.md +++ b/api/vendor/psy/psysh/README.md @@ -7,7 +7,7 @@ PsySH is a runtime developer console, interactive debugger and [REPL](https://en [![Monthly downloads](http://img.shields.io/packagist/dm/psy/psysh.svg?style=flat-square)](https://packagist.org/packages/psy/psysh) [![Made out of awesome](https://img.shields.io/badge/made_out_of_awesome-✓-brightgreen.svg?style=flat-square)](http://psysh.org) -[![Build status](https://img.shields.io/github/workflow/status/bobthecow/psysh/Tests/main.svg?style=flat-square)](https://github.com/bobthecow/psysh/actions?query=branch:main) +[![Build status](https://img.shields.io/github/actions/workflow/status/bobthecow/psysh/tests.yml?branch=main&style=flat-square)](https://github.com/bobthecow/psysh/actions?query=branch:main) [![StyleCI](https://styleci.io/repos/4549925/shield)](https://styleci.io/repos/4549925) @@ -30,6 +30,7 @@ PsySH is a runtime developer console, interactive debugger and [REPL](https://en ### [🛠 Configuration](https://github.com/bobthecow/psysh/wiki/Configuration) * [🎛 Config options](https://github.com/bobthecow/psysh/wiki/Config-options) + * [🎨 Themes](https://github.com/bobthecow/psysh/wiki/Themes) * [📄 Sample config file](https://github.com/bobthecow/psysh/wiki/Sample-config) ### [🔌 Integrations](https://github.com/bobthecow/psysh/wiki/Integrations) diff --git a/api/vendor/psy/psysh/bin/psysh b/api/vendor/psy/psysh/bin/psysh index 0829481e8..a20a3e115 100644 --- a/api/vendor/psy/psysh/bin/psysh +++ b/api/vendor/psy/psysh/bin/psysh @@ -4,7 +4,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2017 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -116,7 +116,7 @@ if (version_compare(PHP_VERSION, '5.3.6', '<')) { } elseif (version_compare(PHP_VERSION, '5.4.0', '<')) { $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); } else { - $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1); + $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); } if (Psy\Shell::isIncluded($trace)) { diff --git a/api/vendor/psy/psysh/composer.json b/api/vendor/psy/psysh/composer.json index 95e6641da..62295dc17 100644 --- a/api/vendor/psy/psysh/composer.json +++ b/api/vendor/psy/psysh/composer.json @@ -13,23 +13,20 @@ } ], "require": { - "php": "^8.0 || ^7.0 || ^5.5.9", + "php": "^8.0 || ^7.4", "ext-json": "*", "ext-tokenizer": "*", - "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10", - "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7", - "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3" + "nikic/php-parser": "^5.0 || ^4.0", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "require-dev": { - "hoa/console": "3.17.*", "bamarni/composer-bin-plugin": "^1.2" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + "ext-pdo-sqlite": "The doc command requires SQLite to work." }, "autoload": { "files": ["src/functions.php"], @@ -43,9 +40,21 @@ } }, "bin": ["bin/psysh"], + "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true + } + }, "extra": { "branch-alias": { - "dev-main": "0.10.x-dev" + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false } + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner.php b/api/vendor/psy/psysh/src/CodeCleaner.php index c23bd2b36..edf2e65b2 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner.php +++ b/api/vendor/psy/psysh/src/CodeCleaner.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -18,13 +18,13 @@ use Psy\CodeCleaner\AssignThisVariablePass; use Psy\CodeCleaner\CalledClassPass; use Psy\CodeCleaner\CallTimePassByReferencePass; +use Psy\CodeCleaner\CodeCleanerPass; use Psy\CodeCleaner\EmptyArrayDimFetchPass; use Psy\CodeCleaner\ExitPass; use Psy\CodeCleaner\FinalClassPass; use Psy\CodeCleaner\FunctionContextPass; use Psy\CodeCleaner\FunctionReturnInWriteContextPass; use Psy\CodeCleaner\ImplicitReturnPass; -use Psy\CodeCleaner\InstanceOfPass; use Psy\CodeCleaner\IssetPass; use Psy\CodeCleaner\LabelContextPass; use Psy\CodeCleaner\LeavePsyshAlonePass; @@ -38,7 +38,6 @@ use Psy\CodeCleaner\StrictTypesPass; use Psy\CodeCleaner\UseStatementPass; use Psy\CodeCleaner\ValidClassNamePass; -use Psy\CodeCleaner\ValidConstantPass; use Psy\CodeCleaner\ValidConstructorPass; use Psy\CodeCleaner\ValidFunctionNamePass; use Psy\Exception\ParseErrorException; @@ -50,6 +49,8 @@ class CodeCleaner { private $yolo = false; + private $strictTypes = false; + private $parser; private $printer; private $traverser; @@ -58,21 +59,18 @@ class CodeCleaner /** * CodeCleaner constructor. * - * @param Parser|null $parser A PhpParser Parser instance. One will be created if not explicitly supplied - * @param Printer|null $printer A PhpParser Printer instance. One will be created if not explicitly supplied - * @param NodeTraverser|null $traverser A PhpParser NodeTraverser instance. One will be created if not explicitly supplied - * @param bool $yolo run without input validation + * @param Parser|null $parser A PhpParser Parser instance. One will be created if not explicitly supplied + * @param Printer|null $printer A PhpParser Printer instance. One will be created if not explicitly supplied + * @param NodeTraverser|null $traverser A PhpParser NodeTraverser instance. One will be created if not explicitly supplied + * @param bool $yolo run without input validation + * @param bool $strictTypes enforce strict types by default */ - public function __construct(Parser $parser = null, Printer $printer = null, NodeTraverser $traverser = null, $yolo = false) + public function __construct(?Parser $parser = null, ?Printer $printer = null, ?NodeTraverser $traverser = null, bool $yolo = false, bool $strictTypes = false) { $this->yolo = $yolo; + $this->strictTypes = $strictTypes; - if ($parser === null) { - $parserFactory = new ParserFactory(); - $parser = $parserFactory->createParser(); - } - - $this->parser = $parser; + $this->parser = $parser ?? (new ParserFactory())->createParser(); $this->printer = $printer ?: new Printer(); $this->traverser = $traverser ?: new NodeTraverser(); @@ -83,10 +81,8 @@ public function __construct(Parser $parser = null, Printer $printer = null, Node /** * Check whether this CodeCleaner is in YOLO mode. - * - * @return bool */ - public function yolo() + public function yolo(): bool { return $this->yolo; } @@ -94,14 +90,10 @@ public function yolo() /** * Get default CodeCleaner passes. * - * @return array + * @return CodeCleanerPass[] */ - private function getDefaultPasses() + private function getDefaultPasses(): array { - if ($this->yolo) { - return $this->getYoloPasses(); - } - $useStatementPass = new UseStatementPass(); $namespacePass = new NamespacePass($this); @@ -109,6 +101,25 @@ private function getDefaultPasses() // based on the file in which the `debug` call was made. $this->addImplicitDebugContext([$useStatementPass, $namespacePass]); + // A set of code cleaner passes that don't try to do any validation, and + // only do minimal rewriting to make things work inside the REPL. + // + // When in --yolo mode, these are the only code cleaner passes used. + $rewritePasses = [ + new LeavePsyshAlonePass(), + $useStatementPass, // must run before the namespace pass + new ExitPass(), + new ImplicitReturnPass(), + new MagicConstantsPass(), + $namespacePass, // must run after the implicit return pass + new RequirePass(), + new StrictTypesPass($this->strictTypes), + ]; + + if ($this->yolo) { + return $rewritePasses; + } + return [ // Validation passes new AbstractClassPass(), @@ -118,10 +129,8 @@ private function getDefaultPasses() new FinalClassPass(), new FunctionContextPass(), new FunctionReturnInWriteContextPass(), - new InstanceOfPass(), new IssetPass(), new LabelContextPass(), - new LeavePsyshAlonePass(), new ListPass(), new LoopContextPass(), new PassableByReferencePass(), @@ -130,51 +139,14 @@ private function getDefaultPasses() new ValidConstructorPass(), // Rewriting shenanigans - $useStatementPass, // must run before the namespace pass - new ExitPass(), - new ImplicitReturnPass(), - new MagicConstantsPass(), - $namespacePass, // must run after the implicit return pass - new RequirePass(), - new StrictTypesPass(), + ...$rewritePasses, // Namespace-aware validation (which depends on aforementioned shenanigans) new ValidClassNamePass(), - new ValidConstantPass(), new ValidFunctionNamePass(), ]; } - /** - * A set of code cleaner passes that don't try to do any validation, and - * only do minimal rewriting to make things work inside the REPL. - * - * This list should stay in sync with the "rewriting shenanigans" in - * getDefaultPasses above. - * - * @return array - */ - private function getYoloPasses() - { - $useStatementPass = new UseStatementPass(); - $namespacePass = new NamespacePass($this); - - // Try to add implicit `use` statements and an implicit namespace, - // based on the file in which the `debug` call was made. - $this->addImplicitDebugContext([$useStatementPass, $namespacePass]); - - return [ - new LeavePsyshAlonePass(), - $useStatementPass, // must run before the namespace pass - new ExitPass(), - new ImplicitReturnPass(), - new MagicConstantsPass(), - $namespacePass, // must run after the implicit return pass - new RequirePass(), - new StrictTypesPass(), - ]; - } - /** * "Warm up" code cleaner passes when we're coming from a debug call. * @@ -203,6 +175,7 @@ private function addImplicitDebugContext(array $passes) } // Set up a clean traverser for just these code cleaner passes + // @todo Pass visitors directly to once we drop support for PHP-Parser 4.x $traverser = new NodeTraverser(); foreach ($passes as $pass) { $traverser->addVisitor($pass); @@ -211,8 +184,6 @@ private function addImplicitDebugContext(array $passes) $traverser->traverse($stmts); } catch (\Throwable $e) { // Don't care. - } catch (\Exception $e) { - // Still don't care. } } @@ -244,10 +215,8 @@ private static function getDebugFile() * Check whether a given backtrace frame is a call to Psy\debug. * * @param array $stackFrame - * - * @return bool */ - private static function isDebugCall(array $stackFrame) + private static function isDebugCall(array $stackFrame): bool { $class = isset($stackFrame['class']) ? $stackFrame['class'] : null; $function = isset($stackFrame['function']) ? $stackFrame['function'] : null; @@ -266,7 +235,7 @@ private static function isDebugCall(array $stackFrame) * * @return string|false Cleaned PHP code, False if the input is incomplete */ - public function clean(array $codeLines, $requireSemicolons = false) + public function clean(array $codeLines, bool $requireSemicolons = false) { $stmts = $this->parse('namespace = $namespace; } @@ -323,7 +290,7 @@ public function getNamespace() * * @return array|false A set of statements, or false if incomplete */ - protected function parse($code, $requireSemicolons = false) + protected function parse(string $code, bool $requireSemicolons = false) { try { return $this->parser->parse($code); @@ -357,7 +324,7 @@ protected function parse($code, $requireSemicolons = false) } } - private function parseErrorIsEOF(\PhpParser\Error $e) + private function parseErrorIsEOF(\PhpParser\Error $e): bool { $msg = $e->getRawMessage(); @@ -373,10 +340,8 @@ private function parseErrorIsEOF(\PhpParser\Error $e) * * @param \PhpParser\Error $e * @param string $code - * - * @return bool */ - private function parseErrorIsUnclosedString(\PhpParser\Error $e, $code) + private function parseErrorIsUnclosedString(\PhpParser\Error $e, string $code): bool { if ($e->getRawMessage() !== 'Syntax error, unexpected T_ENCAPSED_AND_WHITESPACE') { return false; @@ -384,19 +349,19 @@ private function parseErrorIsUnclosedString(\PhpParser\Error $e, $code) try { $this->parser->parse($code."';"); - } catch (\Exception $e) { + } catch (\Throwable $e) { return false; } return true; } - private function parseErrorIsUnterminatedComment(\PhpParser\Error $e, $code) + private function parseErrorIsUnterminatedComment(\PhpParser\Error $e, $code): bool { return $e->getRawMessage() === 'Unterminated comment'; } - private function parseErrorIsTrailingComma(\PhpParser\Error $e, $code) + private function parseErrorIsTrailingComma(\PhpParser\Error $e, $code): bool { return ($e->getRawMessage() === 'A trailing comma is not allowed here') && (\substr(\rtrim($code), -1) === ','); } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/AbstractClassPass.php b/api/vendor/psy/psysh/src/CodeCleaner/AbstractClassPass.php index 4c0c859d0..5b491ceb9 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/AbstractClassPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/AbstractClassPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -28,6 +28,8 @@ class AbstractClassPass extends CodeCleanerPass * @throws FatalErrorException if the node is an abstract function with a body * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -41,7 +43,7 @@ public function enterNode(Node $node) if ($node->stmts !== null) { $msg = \sprintf('Abstract function %s cannot contain body', $name); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } } @@ -51,6 +53,8 @@ public function enterNode(Node $node) * @throws FatalErrorException if the node is a non-abstract class with abstract methods * * @param Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { @@ -64,7 +68,7 @@ public function leaveNode(Node $node) ($count === 1) ? '' : 's', \implode(', ', $this->abstractMethods) ); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php b/api/vendor/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php index ed3b4c812..cdcb84ad5 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -29,11 +29,13 @@ class AssignThisVariablePass extends CodeCleanerPass * @throws FatalErrorException if the user assign the `$this` variable * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { if ($node instanceof Assign && $node->var instanceof Variable && $node->var->name === 'this') { - throw new FatalErrorException('Cannot re-assign $this', 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException('Cannot re-assign $this', 0, \E_ERROR, null, $node->getStartLine()); } } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php b/api/vendor/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php index e686d1799..c3eaed141 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -15,6 +15,7 @@ use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; +use PhpParser\Node\VariadicPlaceholder; use Psy\Exception\FatalErrorException; /** @@ -34,6 +35,8 @@ class CallTimePassByReferencePass extends CodeCleanerPass * @throws FatalErrorException if the user used call-time pass-by-reference * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -42,8 +45,12 @@ public function enterNode(Node $node) } foreach ($node->args as $arg) { + if ($arg instanceof VariadicPlaceholder) { + continue; + } + if ($arg->byRef) { - throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getStartLine()); } } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/CalledClassPass.php b/api/vendor/psy/psysh/src/CodeCleaner/CalledClassPass.php index 1e85ae359..441685f97 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/CalledClassPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/CalledClassPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -17,6 +17,7 @@ use PhpParser\Node\Name; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Trait_; +use PhpParser\Node\VariadicPlaceholder; use Psy\Exception\ErrorException; /** @@ -29,6 +30,8 @@ class CalledClassPass extends CodeCleanerPass /** * @param array $nodes + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -39,6 +42,8 @@ public function beforeTraverse(array $nodes) * @throws ErrorException if get_class or get_called_class is called without an object from outside a class * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -61,13 +66,15 @@ public function enterNode(Node $node) $name = \strtolower($node->name); if (\in_array($name, ['get_class', 'get_called_class'])) { $msg = \sprintf('%s() called without object from outside a class', $name); - throw new ErrorException($msg, 0, \E_USER_WARNING, null, $node->getLine()); + throw new ErrorException($msg, 0, \E_USER_WARNING, null, $node->getStartLine()); } } } /** * @param Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { @@ -76,8 +83,12 @@ public function leaveNode(Node $node) } } - private function isNull(Node $node) + private function isNull(Node $node): bool { + if ($node instanceof VariadicPlaceholder) { + return false; + } + return $node->value instanceof ConstFetch && \strtolower($node->value->name) === 'null'; } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/CodeCleanerPass.php b/api/vendor/psy/psysh/src/CodeCleaner/CodeCleanerPass.php index 7d80ac896..244c9d4e8 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/CodeCleanerPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/CodeCleanerPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/CodeCleaner/EmptyArrayDimFetchPass.php b/api/vendor/psy/psysh/src/CodeCleaner/EmptyArrayDimFetchPass.php index 60f5c5641..88cdae9f4 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/EmptyArrayDimFetchPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/EmptyArrayDimFetchPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,6 +14,8 @@ use PhpParser\Node; use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\AssignRef; +use PhpParser\Node\Stmt\Foreach_; use Psy\Exception\FatalErrorException; /** @@ -25,25 +27,39 @@ class EmptyArrayDimFetchPass extends CodeCleanerPass private $theseOnesAreFine = []; + /** + * @return Node[]|null Array of nodes + */ public function beforeTraverse(array $nodes) { $this->theseOnesAreFine = []; } /** - * @throws FatalErrorException if the user used empty empty array dim fetch outside of assignment + * @throws FatalErrorException if the user used empty array dim fetch outside of assignment * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { if ($node instanceof Assign && $node->var instanceof ArrayDimFetch) { $this->theseOnesAreFine[] = $node->var; + } elseif ($node instanceof AssignRef && $node->expr instanceof ArrayDimFetch) { + $this->theseOnesAreFine[] = $node->expr; + } elseif ($node instanceof Foreach_ && $node->valueVar instanceof ArrayDimFetch) { + $this->theseOnesAreFine[] = $node->valueVar; + } elseif ($node instanceof ArrayDimFetch && $node->var instanceof ArrayDimFetch) { + // $a[]['b'] = 'c' + if (\in_array($node, $this->theseOnesAreFine)) { + $this->theseOnesAreFine[] = $node->var; + } } if ($node instanceof ArrayDimFetch && $node->dim === null) { if (!\in_array($node, $this->theseOnesAreFine)) { - throw new FatalErrorException(self::EXCEPTION_MESSAGE, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, $node->getStartLine()); } } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ExitPass.php b/api/vendor/psy/psysh/src/CodeCleaner/ExitPass.php index 6571bb755..e58a8d68a 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ExitPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ExitPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,6 +23,8 @@ class ExitPass extends CodeCleanerPass * Converts exit calls to BreakExceptions. * * @param \PhpParser\Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { diff --git a/api/vendor/psy/psysh/src/CodeCleaner/FinalClassPass.php b/api/vendor/psy/psysh/src/CodeCleaner/FinalClassPass.php index 1051f07e9..1507664fe 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/FinalClassPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/FinalClassPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -24,6 +24,8 @@ class FinalClassPass extends CodeCleanerPass /** * @param array $nodes + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -34,6 +36,8 @@ public function beforeTraverse(array $nodes) * @throws FatalErrorException if the node is a class that extends a final class * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -42,7 +46,7 @@ public function enterNode(Node $node) $extends = (string) $node->extends; if ($this->isFinalClass($extends)) { $msg = \sprintf('Class %s may not inherit from final class (%s)', $node->name, $extends); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } @@ -54,10 +58,8 @@ public function enterNode(Node $node) /** * @param string $name Class name - * - * @return bool */ - private function isFinalClass($name) + private function isFinalClass(string $name): bool { if (!\class_exists($name)) { return isset($this->finalClasses[\strtolower($name)]); diff --git a/api/vendor/psy/psysh/src/CodeCleaner/FunctionContextPass.php b/api/vendor/psy/psysh/src/CodeCleaner/FunctionContextPass.php index ea646e9c0..07a3e8fd6 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/FunctionContextPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/FunctionContextPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,12 +23,17 @@ class FunctionContextPass extends CodeCleanerPass /** * @param array $nodes + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { $this->functionDepth = 0; } + /** + * @return int|Node|null Replacement node (or special return value) + */ public function enterNode(Node $node) { if ($node instanceof FunctionLike) { @@ -45,12 +50,14 @@ public function enterNode(Node $node) // It causes fatal error. if ($node instanceof Yield_) { $msg = 'The "yield" expression can only be used inside a function'; - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } /** * @param \PhpParser\Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { diff --git a/api/vendor/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php b/api/vendor/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php index e3b764d7b..2c50d5fc4 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,6 +19,7 @@ use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Stmt\Unset_; +use PhpParser\Node\VariadicPlaceholder; use Psy\Exception\FatalErrorException; /** @@ -39,14 +40,20 @@ class FunctionReturnInWriteContextPass extends CodeCleanerPass * @throws FatalErrorException if a value is assigned to a function * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { if ($node instanceof Array_ || $this->isCallNode($node)) { $items = $node instanceof Array_ ? $node->items : $node->args; foreach ($items as $item) { + if ($item instanceof VariadicPlaceholder) { + continue; + } + if ($item && $item->byRef && $this->isCallNode($item->value)) { - throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getStartLine()); } } } elseif ($node instanceof Isset_ || $node instanceof Unset_) { @@ -56,14 +63,14 @@ public function enterNode(Node $node) } $msg = $node instanceof Isset_ ? self::ISSET_MESSAGE : self::EXCEPTION_MESSAGE; - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } elseif ($node instanceof Assign && $this->isCallNode($node->var)) { - throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getStartLine()); } } - private function isCallNode(Node $node) + private function isCallNode(Node $node): bool { return $node instanceof FuncCall || $node instanceof MethodCall || $node instanceof StaticCall; } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php b/api/vendor/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php index 94f886337..202a08257 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -32,7 +32,7 @@ class ImplicitReturnPass extends CodeCleanerPass * * @return array */ - public function beforeTraverse(array $nodes) + public function beforeTraverse(array $nodes): array { return $this->addImplicitReturn($nodes); } @@ -42,7 +42,7 @@ public function beforeTraverse(array $nodes) * * @return array */ - private function addImplicitReturn(array $nodes) + private function addImplicitReturn(array $nodes): array { // If nodes is empty, it can't have a return value. if (empty($nodes)) { @@ -77,15 +77,14 @@ private function addImplicitReturn(array $nodes) } elseif ($last instanceof Expr && !($last instanceof Exit_)) { // @codeCoverageIgnoreStart $nodes[\count($nodes) - 1] = new Return_($last, [ - 'startLine' => $last->getLine(), - 'endLine' => $last->getLine(), + 'startLine' => $last->getStartLine(), + 'endLine' => $last->getEndLine(), ]); // @codeCoverageIgnoreEnd } elseif ($last instanceof Expression && !($last->expr instanceof Exit_)) { - // For PHP Parser 4.x $nodes[\count($nodes) - 1] = new Return_($last->expr, [ - 'startLine' => $last->getLine(), - 'endLine' => $last->getLine(), + 'startLine' => $last->getStartLine(), + 'endLine' => $last->getEndLine(), ]); } elseif ($last instanceof Namespace_) { $last->stmts = $this->addImplicitReturn($last->stmts); @@ -115,10 +114,8 @@ private function addImplicitReturn(array $nodes) * we'll exclude them here. * * @param Node $node - * - * @return bool */ - private static function isNonExpressionStmt(Node $node) + private static function isNonExpressionStmt(Node $node): bool { return $node instanceof Stmt && !$node instanceof Expression && diff --git a/api/vendor/psy/psysh/src/CodeCleaner/InstanceOfPass.php b/api/vendor/psy/psysh/src/CodeCleaner/InstanceOfPass.php deleted file mode 100644 index a976df6c4..000000000 --- a/api/vendor/psy/psysh/src/CodeCleaner/InstanceOfPass.php +++ /dev/null @@ -1,67 +0,0 @@ - - */ -class InstanceOfPass extends CodeCleanerPass -{ - const EXCEPTION_MSG = 'instanceof expects an object instance, constant given'; - - private $atLeastPhp73; - - public function __construct() - { - $this->atLeastPhp73 = \version_compare(\PHP_VERSION, '7.3', '>='); - } - - /** - * Validate that the instanceof statement does not receive a scalar value or a non-class constant. - * - * @throws FatalErrorException if a scalar or a non-class constant is given - * - * @param Node $node - */ - public function enterNode(Node $node) - { - // Basically everything is allowed in PHP 7.3 :) - if ($this->atLeastPhp73) { - return; - } - - if (!$node instanceof Instanceof_) { - return; - } - - if (($node->expr instanceof Scalar && !$node->expr instanceof Encapsed) || - $node->expr instanceof BinaryOp || - $node->expr instanceof Array_ || - $node->expr instanceof ConstFetch || - $node->expr instanceof ClassConstFetch - ) { - throw new FatalErrorException(self::EXCEPTION_MSG, 0, \E_ERROR, null, $node->getLine()); - } - } -} diff --git a/api/vendor/psy/psysh/src/CodeCleaner/IssetPass.php b/api/vendor/psy/psysh/src/CodeCleaner/IssetPass.php index d0be550e4..fa8f60cfe 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/IssetPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/IssetPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -31,6 +31,8 @@ class IssetPass extends CodeCleanerPass * @throws FatalErrorException * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -40,7 +42,7 @@ public function enterNode(Node $node) foreach ($node->vars as $var) { if (!$var instanceof Variable && !$var instanceof ArrayDimFetch && !$var instanceof PropertyFetch && !$var instanceof NullsafePropertyFetch) { - throw new FatalErrorException(self::EXCEPTION_MSG, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MSG, 0, \E_ERROR, null, $node->getStartLine()); } } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/LabelContextPass.php b/api/vendor/psy/psysh/src/CodeCleaner/LabelContextPass.php index c640de862..44962f63d 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/LabelContextPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/LabelContextPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -41,6 +41,8 @@ class LabelContextPass extends CodeCleanerPass /** * @param array $nodes + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -49,6 +51,9 @@ public function beforeTraverse(array $nodes) $this->labelGotos = []; } + /** + * @return int|Node|null Replacement node (or special return value) + */ public function enterNode(Node $node) { if ($node instanceof FunctionLike) { @@ -63,14 +68,16 @@ public function enterNode(Node $node) } if ($node instanceof Goto_) { - $this->labelGotos[\strtolower($node->name)] = $node->getLine(); + $this->labelGotos[\strtolower($node->name)] = $node->getStartLine(); } elseif ($node instanceof Label) { - $this->labelDeclarations[\strtolower($node->name)] = $node->getLine(); + $this->labelDeclarations[\strtolower($node->name)] = $node->getStartLine(); } } /** * @param \PhpParser\Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { @@ -79,6 +86,9 @@ public function leaveNode(Node $node) } } + /** + * @return Node[]|null Array of nodes + */ public function afterTraverse(array $nodes) { foreach ($this->labelGotos as $name => $line) { diff --git a/api/vendor/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php b/api/vendor/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php index 2c2823863..67ba68b16 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -26,6 +26,8 @@ class LeavePsyshAlonePass extends CodeCleanerPass * @throws RuntimeException if the user is messing with $__psysh__ * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ListPass.php b/api/vendor/psy/psysh/src/CodeCleaner/ListPass.php index ef1d63bdd..6269bf15e 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ListPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ListPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,9 +12,9 @@ namespace Psy\CodeCleaner; use PhpParser\Node; -use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayDimFetch; +// @todo Switch to PhpParser\Node\ArrayItem once we drop support for PHP-Parser 4.x use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\FuncCall; @@ -29,19 +29,14 @@ */ class ListPass extends CodeCleanerPass { - private $atLeastPhp71; - - public function __construct() - { - $this->atLeastPhp71 = \version_compare(\PHP_VERSION, '7.1', '>='); - } - /** * Validate use of list assignment. * * @throws ParseErrorException if the user used empty with anything but a variable * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -53,16 +48,11 @@ public function enterNode(Node $node) return; } - if (!$this->atLeastPhp71 && $node->var instanceof Array_) { - $msg = "syntax error, unexpected '='"; - throw new ParseErrorException($msg, $node->expr->getLine()); - } - // Polyfill for PHP-Parser 2.x $items = isset($node->var->items) ? $node->var->items : $node->var->vars; if ($items === [] || $items === [null]) { - throw new ParseErrorException('Cannot use empty list', $node->var->getLine()); + throw new ParseErrorException('Cannot use empty list', ['startLine' => $node->var->getStartLine(), 'endLine' => $node->var->getEndLine()]); } $itemFound = false; @@ -73,15 +63,9 @@ public function enterNode(Node $node) $itemFound = true; - // List_->$vars in PHP-Parser 2.x is Variable instead of ArrayItem. - if (!$this->atLeastPhp71 && $item instanceof ArrayItem && $item->key !== null) { - $msg = 'Syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting \',\' or \')\''; - throw new ParseErrorException($msg, $item->key->getLine()); - } - if (!self::isValidArrayItem($item)) { $msg = 'Assignments can only happen to writable values'; - throw new ParseErrorException($msg, $item->getLine()); + throw new ParseErrorException($msg, ['startLine' => $item->getStartLine(), 'endLine' => $item->getEndLine()]); } } @@ -93,11 +77,9 @@ public function enterNode(Node $node) /** * Validate whether a given item in an array is valid for short assignment. * - * @param Expr $item - * - * @return bool + * @param Node $item */ - private static function isValidArrayItem(Expr $item) + private static function isValidArrayItem(Node $item): bool { $value = ($item instanceof ArrayItem) ? $item->value : $item; diff --git a/api/vendor/psy/psysh/src/CodeCleaner/LoopContextPass.php b/api/vendor/psy/psysh/src/CodeCleaner/LoopContextPass.php index 44582baa8..c7121d99e 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/LoopContextPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/LoopContextPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -32,6 +32,8 @@ class LoopContextPass extends CodeCleanerPass /** * {@inheritdoc} + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -45,6 +47,8 @@ public function beforeTraverse(array $nodes) * @throws FatalErrorException if the node is a break or continue and has an argument less than 1 * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -63,23 +67,24 @@ public function enterNode(Node $node) if ($this->loopDepth === 0) { $msg = \sprintf("'%s' not in the 'loop' or 'switch' context", $operator); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } + // @todo Rename to Int_ and Float_ once we drop support for PHP-Parser 4.x if ($node->num instanceof LNumber || $node->num instanceof DNumber) { $num = $node->num->value; if ($node->num instanceof DNumber || $num < 1) { $msg = \sprintf("'%s' operator accepts only positive numbers", $operator); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } if ($num > $this->loopDepth) { $msg = \sprintf("Cannot '%s' %d levels", $operator, $num); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } elseif ($node->num) { $msg = \sprintf("'%s' operator with non-constant operand is no longer supported", $operator); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } break; } @@ -87,6 +92,8 @@ public function enterNode(Node $node) /** * @param Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { diff --git a/api/vendor/psy/psysh/src/CodeCleaner/MagicConstantsPass.php b/api/vendor/psy/psysh/src/CodeCleaner/MagicConstantsPass.php index adf92fba1..3c468af09 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/MagicConstantsPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/MagicConstantsPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php b/api/vendor/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php index 55318fede..53290fd8e 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -29,6 +29,8 @@ abstract class NamespaceAwarePass extends CodeCleanerPass * use afterTraverse or call parent::beforeTraverse() when overloading. * * Reset the namespace and the current scope before beginning analysis + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -41,11 +43,13 @@ public function beforeTraverse(array $nodes) * leaveNode or call parent::enterNode() when overloading * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { if ($node instanceof Namespace_) { - $this->namespace = isset($node->name) ? $node->name->parts : []; + $this->namespace = isset($node->name) ? $this->getParts($node->name) : []; } } @@ -53,19 +57,29 @@ public function enterNode(Node $node) * Get a fully-qualified name (class, function, interface, etc). * * @param mixed $name - * - * @return string */ - protected function getFullyQualifiedName($name) + protected function getFullyQualifiedName($name): string { if ($name instanceof FullyQualifiedName) { - return \implode('\\', $name->parts); - } elseif ($name instanceof Name) { - $name = $name->parts; + return \implode('\\', $this->getParts($name)); + } + + if ($name instanceof Name) { + $name = $this->getParts($name); } elseif (!\is_array($name)) { $name = [$name]; } return \implode('\\', \array_merge($this->namespace, $name)); } + + /** + * Backwards compatibility shim for PHP-Parser 4.x. + * + * At some point we might want to make $namespace a plain string, to match how Name works? + */ + protected function getParts(Name $name): array + { + return \method_exists($name, 'getParts') ? $name->getParts() : $name->parts; + } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/NamespacePass.php b/api/vendor/psy/psysh/src/CodeCleaner/NamespacePass.php index 1f11072ef..25c0be035 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/NamespacePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/NamespacePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -11,6 +11,7 @@ namespace Psy\CodeCleaner; +use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Namespace_; use Psy\CodeCleaner; @@ -46,6 +47,8 @@ public function __construct(CodeCleaner $cleaner) * is encountered. * * @param array $nodes + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -83,6 +86,16 @@ public function beforeTraverse(array $nodes) private function setNamespace($namespace) { $this->namespace = $namespace; - $this->cleaner->setNamespace($namespace === null ? null : $namespace->parts); + $this->cleaner->setNamespace($namespace === null ? null : $this->getParts($namespace)); + } + + /** + * Backwards compatibility shim for PHP-Parser 4.x. + * + * At some point we might want to make the namespace a plain string, to match how Name works? + */ + protected function getParts(Name $name): array + { + return \method_exists($name, 'getParts') ? $name->getParts() : $name->parts; } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/NoReturnValue.php b/api/vendor/psy/psysh/src/CodeCleaner/NoReturnValue.php index d9c920bc7..53f30a221 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/NoReturnValue.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/NoReturnValue.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -25,10 +25,8 @@ class NoReturnValue { /** * Get PhpParser AST expression for creating a new NoReturnValue. - * - * @return \PhpParser\Node\Expr\New_ */ - public static function create() + public static function create(): New_ { return new New_(new FullyQualifiedName(self::class)); } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/PassableByReferencePass.php b/api/vendor/psy/psysh/src/CodeCleaner/PassableByReferencePass.php index 0ce154904..9fd49e30f 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/PassableByReferencePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/PassableByReferencePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,6 +14,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; @@ -33,6 +34,8 @@ class PassableByReferencePass extends CodeCleanerPass * @throws FatalErrorException if non-variables are passed by reference * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -56,18 +59,23 @@ public function enterNode(Node $node) return; } + $args = []; + foreach ($node->args as $position => $arg) { + $args[$arg->name !== null ? $arg->name->name : $position] = $arg; + } + foreach ($refl->getParameters() as $key => $param) { - if (\array_key_exists($key, $node->args)) { - $arg = $node->args[$key]; + if (\array_key_exists($key, $args) || \array_key_exists($param->name, $args)) { + $arg = $args[$param->name] ?? $args[$key]; if ($param->isPassedByReference() && !$this->isPassableByReference($arg)) { - throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getStartLine()); } } } } } - private function isPassableByReference(Node $arg) + private function isPassableByReference(Node $arg): bool { // Unpacked arrays can be passed by reference if ($arg->value instanceof Array_) { @@ -81,7 +89,8 @@ private function isPassableByReference(Node $arg) $arg->value instanceof Variable || $arg->value instanceof FuncCall || $arg->value instanceof MethodCall || - $arg->value instanceof StaticCall; + $arg->value instanceof StaticCall || + $arg->value instanceof ArrayDimFetch; } /** @@ -108,7 +117,7 @@ private function validateArrayMultisort(Node $node) } elseif (++$nonPassable > 2) { // There can be *at most* two non-passable-by-reference args in a row. This is about // as close as we can get to validating the arguments for this function :-/ - throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getStartLine()); } } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/RequirePass.php b/api/vendor/psy/psysh/src/CodeCleaner/RequirePass.php index 4f7c36abe..3713aaa37 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/RequirePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/RequirePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -29,6 +29,8 @@ class RequirePass extends CodeCleanerPass /** * {@inheritdoc} + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $origNode) { @@ -47,10 +49,11 @@ public function enterNode(Node $origNode) * * $foo = require \Psy\CodeCleaner\RequirePass::resolve($bar) */ + // @todo Rename LNumber to Int_ once we drop support for PHP-Parser 4.x $node->expr = new StaticCall( new FullyQualifiedName(self::class), 'resolve', - [new Arg($origNode->expr), new Arg(new LNumber($origNode->getLine()))], + [new Arg($origNode->expr), new Arg(new LNumber($origNode->getStartLine()))], $origNode->getAttributes() ); @@ -69,11 +72,11 @@ public function enterNode(Node $origNode) * @throws ErrorException if $file is empty and E_WARNING is included in error_reporting level * * @param string $file - * @param int $lineNumber Line number of the original require expression + * @param int $startLine Line number of the original require expression * * @return string Exactly the same as $file, unless $file collides with a path in the currently running phar */ - public static function resolve($file, $lineNumber = null) + public static function resolve($file, $startLine = null): string { $file = (string) $file; @@ -82,7 +85,7 @@ public static function resolve($file, $lineNumber = null) // fake the file and line number, but we can't call it statically. // So we're duplicating some of the logics here. if (\E_WARNING & \error_reporting()) { - ErrorException::throwException(\E_WARNING, 'Filename cannot be empty', null, $lineNumber); + ErrorException::throwException(\E_WARNING, 'Filename cannot be empty', null, $startLine); } // @todo trigger an error as fallback? this is pretty ugly… // trigger_error('Filename cannot be empty', E_USER_WARNING); @@ -91,7 +94,7 @@ public static function resolve($file, $lineNumber = null) $resolvedPath = \stream_resolve_include_path($file); if ($file === '' || !$resolvedPath) { $msg = \sprintf("Failed opening required '%s'", $file); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $lineNumber); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $startLine); } // Special case: if the path is not already relative or absolute, and it would resolve to @@ -115,12 +118,12 @@ public static function resolve($file, $lineNumber = null) return $file; } - private function isRequireNode(Node $node) + private function isRequireNode(Node $node): bool { return $node instanceof Include_ && \in_array($node->type, self::$requireTypes); } - private static function getIncludePath() + private static function getIncludePath(): array { if (\PATH_SEPARATOR === ':') { return \preg_split('#:(?!//)#', \get_include_path()); diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ReturnTypePass.php b/api/vendor/psy/psysh/src/CodeCleaner/ReturnTypePass.php index 6a43ba42c..cef7b6c3b 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ReturnTypePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ReturnTypePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -15,9 +15,12 @@ use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Identifier; +use PhpParser\Node\IntersectionType; +use PhpParser\Node\Name; use PhpParser\Node\NullableType; use PhpParser\Node\Stmt\Function_; use PhpParser\Node\Stmt\Return_; +use PhpParser\Node\UnionType; use Psy\Exception\FatalErrorException; /** @@ -31,23 +34,15 @@ class ReturnTypePass extends CodeCleanerPass const VOID_NULL_MESSAGE = 'A void function must not return a value (did you mean "return;" instead of "return null;"?)'; const NULLABLE_VOID_MESSAGE = 'Void type cannot be nullable'; - private $atLeastPhp71; private $returnTypeStack = []; - public function __construct() - { - $this->atLeastPhp71 = \version_compare(\PHP_VERSION, '7.1', '>='); - } - /** * {@inheritdoc} + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { - if (!$this->atLeastPhp71) { - return; // @codeCoverageIgnore - } - if ($this->isFunctionNode($node)) { $this->returnTypeStack[] = $node->returnType; @@ -79,38 +74,44 @@ public function enterNode(Node $node) } if ($msg !== null) { - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } } /** * {@inheritdoc} + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { - if (!$this->atLeastPhp71) { - return; // @codeCoverageIgnore - } - if (!empty($this->returnTypeStack) && $this->isFunctionNode($node)) { \array_pop($this->returnTypeStack); } } - private function isFunctionNode(Node $node) + private function isFunctionNode(Node $node): bool { return $node instanceof Function_ || $node instanceof Closure; } - private function typeName(Node $node) + private function typeName(Node $node): string { + if ($node instanceof UnionType) { + return \implode('|', \array_map([$this, 'typeName'], $node->types)); + } + + if ($node instanceof IntersectionType) { + return \implode('&', \array_map([$this, 'typeName'], $node->types)); + } + if ($node instanceof NullableType) { - return \strtolower($node->type->name); + return $this->typeName($node->type); } - if ($node instanceof Identifier) { - return \strtolower($node->name); + if ($node instanceof Identifier || $node instanceof Name) { + return $node->toLowerString(); } throw new \InvalidArgumentException('Unable to find type name'); diff --git a/api/vendor/psy/psysh/src/CodeCleaner/StrictTypesPass.php b/api/vendor/psy/psysh/src/CodeCleaner/StrictTypesPass.php index d0fe4c3f4..9ad84cc6a 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/StrictTypesPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/StrictTypesPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -11,7 +11,8 @@ namespace Psy\CodeCleaner; -use PhpParser\Node\Identifier; +use PhpParser\Node; +use PhpParser\Node\DeclareItem; use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Stmt\Declare_; use PhpParser\Node\Stmt\DeclareDeclare; @@ -32,11 +33,13 @@ class StrictTypesPass extends CodeCleanerPass const EXCEPTION_MESSAGE = 'strict_types declaration must have 0 or 1 as its value'; private $strictTypes = false; - private $atLeastPhp7; - public function __construct() + /** + * @param bool $strictTypes enforce strict types by default + */ + public function __construct(bool $strictTypes = false) { - $this->atLeastPhp7 = \version_compare(\PHP_VERSION, '7.0', '>='); + $this->strictTypes = $strictTypes; } /** @@ -48,24 +51,21 @@ public function __construct() * @throws FatalErrorException if an invalid `strict_types` declaration is found * * @param array $nodes + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { - if (!$this->atLeastPhp7) { - return; // @codeCoverageIgnore - } - $prependStrictTypes = $this->strictTypes; foreach ($nodes as $node) { if ($node instanceof Declare_) { foreach ($node->declares as $declare) { - // For PHP Parser 4.x - $declareKey = $declare->key instanceof Identifier ? $declare->key->toString() : $declare->key; - if ($declareKey === 'strict_types') { + if ($declare->key->toString() === 'strict_types') { $value = $declare->value; + // @todo Rename LNumber to Int_ once we drop support for PHP-Parser 4.x if (!$value instanceof LNumber || ($value->value !== 0 && $value->value !== 1)) { - throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException(self::EXCEPTION_MESSAGE, 0, \E_ERROR, null, $node->getStartLine()); } $this->strictTypes = $value->value === 1; @@ -77,7 +77,12 @@ public function beforeTraverse(array $nodes) if ($prependStrictTypes) { $first = \reset($nodes); if (!$first instanceof Declare_) { - $declare = new Declare_([new DeclareDeclare('strict_types', new LNumber(1))]); + // @todo Switch to PhpParser\Node\DeclareItem once we drop support for PHP-Parser 4.x + // @todo Rename LNumber to Int_ once we drop support for PHP-Parser 4.x + $declareItem = \class_exists('PhpParser\Node\DeclareItem') ? + new DeclareItem('strict_types', new LNumber(1)) : + new DeclareDeclare('strict_types', new LNumber(1)); + $declare = new Declare_([$declareItem]); \array_unshift($nodes, $declare); } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/UseStatementPass.php b/api/vendor/psy/psysh/src/CodeCleaner/UseStatementPass.php index 112728a10..59040b756 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/UseStatementPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/UseStatementPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -17,6 +17,7 @@ use PhpParser\Node\Stmt\GroupUse; use PhpParser\Node\Stmt\Namespace_; use PhpParser\Node\Stmt\Use_; +use PhpParser\Node\Stmt\UseItem; use PhpParser\Node\Stmt\UseUse; use PhpParser\NodeTraverser; @@ -44,13 +45,15 @@ class UseStatementPass extends CodeCleanerPass * work like you'd expect. * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { if ($node instanceof Namespace_) { // If this is the same namespace as last namespace, let's do ourselves // a favor and reload all the aliases... - if (\strtolower($node->name) === \strtolower($this->lastNamespace)) { + if (\strtolower($node->name ?: '') === \strtolower($this->lastNamespace ?: '')) { $this->aliases = $this->lastAliases; } } @@ -63,29 +66,31 @@ public function enterNode(Node $node) * remembered aliases to the code. * * @param Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { // Store a reference to every "use" statement, because we'll need them in a bit. if ($node instanceof Use_) { - foreach ($node->uses as $use) { - $alias = $use->alias ?: \end($use->name->parts); - $this->aliases[\strtolower($alias)] = $use->name; + foreach ($node->uses as $useItem) { + $this->aliases[\strtolower($useItem->getAlias())] = $useItem->name; } + // @todo Rename to Node_Visitor::REMOVE_NODE once we drop support for PHP-Parser 4.x return NodeTraverser::REMOVE_NODE; } // Expand every "use" statement in the group into a full, standalone "use" and store 'em with the others. if ($node instanceof GroupUse) { - foreach ($node->uses as $use) { - $alias = $use->alias ?: \end($use->name->parts); - $this->aliases[\strtolower($alias)] = Name::concat($node->prefix, $use->name, [ + foreach ($node->uses as $useItem) { + $this->aliases[\strtolower($useItem->getAlias())] = Name::concat($node->prefix, $useItem->name, [ 'startLine' => $node->prefix->getAttribute('startLine'), - 'endLine' => $use->name->getAttribute('endLine'), + 'endLine' => $useItem->name->getAttribute('endLine'), ]); } + // @todo Rename to Node_Visitor::REMOVE_NODE once we drop support for PHP-Parser 4.x return NodeTraverser::REMOVE_NODE; } @@ -98,8 +103,9 @@ public function leaveNode(Node $node) return; } - // Do nothing with UseUse; this an entry in the list of uses in the use statement. - if ($node instanceof UseUse) { + // Do nothing with UseItem; this an entry in the list of uses in the use statement. + // @todo Remove UseUse once we drop support for PHP-Parser 4.x + if ($node instanceof UseUse || $node instanceof UseItem) { return; } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php b/api/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php index 11f69f5c9..dff32d58d 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ValidClassNamePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,9 +13,6 @@ use PhpParser\Node; use PhpParser\Node\Expr; -use PhpParser\Node\Expr\ClassConstFetch; -use PhpParser\Node\Expr\New_; -use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Ternary; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Class_; @@ -40,12 +37,6 @@ class ValidClassNamePass extends NamespaceAwarePass const TRAIT_TYPE = 'trait'; private $conditionalScopes = 0; - private $atLeastPhp7; - - public function __construct() - { - $this->atLeastPhp7 = \version_compare(\PHP_VERSION, '7.0', '>='); - } /** * Validate class, interface and trait definitions. @@ -55,6 +46,8 @@ public function __construct() * trait methods. * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -78,36 +71,18 @@ public function enterNode(Node $node) } /** - * Validate `new` expressions, class constant fetches, and static calls. - * - * @throws FatalErrorException if a class, interface or trait is referenced which does not exist - * @throws FatalErrorException if a class extends something that is not a class - * @throws FatalErrorException if a class implements something that is not an interface - * @throws FatalErrorException if an interface extends something that is not an interface - * @throws FatalErrorException if a class, interface or trait redefines an existing class, interface or trait name - * * @param Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { if (self::isConditional($node)) { $this->conditionalScopes--; - - return; - } - - if (!$this->atLeastPhp7) { - if ($node instanceof New_) { - $this->validateNewExpression($node); - } elseif ($node instanceof ClassConstFetch) { - $this->validateClassConstFetchExpression($node); - } elseif ($node instanceof StaticCall) { - $this->validateStaticCallExpression($node); - } } } - private static function isConditional(Node $node) + private static function isConditional(Node $node): bool { return $node instanceof If_ || $node instanceof While_ || @@ -151,50 +126,6 @@ protected function validateTraitStatement(Trait_ $stmt) $this->ensureCanDefine($stmt, self::TRAIT_TYPE); } - /** - * Validate a `new` expression. - * - * @param New_ $stmt - */ - protected function validateNewExpression(New_ $stmt) - { - // if class name is an expression or an anonymous class, give it a pass for now - if (!$stmt->class instanceof Expr && !$stmt->class instanceof Class_) { - $this->ensureClassExists($this->getFullyQualifiedName($stmt->class), $stmt); - } - } - - /** - * Validate a class constant fetch expression's class. - * - * @param ClassConstFetch $stmt - */ - protected function validateClassConstFetchExpression(ClassConstFetch $stmt) - { - // there is no need to check exists for ::class const - if (\strtolower($stmt->name) === 'class') { - return; - } - - // if class name is an expression, give it a pass for now - if (!$stmt->class instanceof Expr) { - $this->ensureClassOrInterfaceExists($this->getFullyQualifiedName($stmt->class), $stmt); - } - } - - /** - * Validate a class constant fetch expression's class. - * - * @param StaticCall $stmt - */ - protected function validateStaticCallExpression(StaticCall $stmt) - { - // if class name is an expression, give it a pass for now - if (!$stmt->class instanceof Expr) { - $this->ensureMethodExists($this->getFullyQualifiedName($stmt->class), $stmt->name, $stmt); - } - } - /** * Ensure that no class, interface or trait name collides with a new definition. * @@ -203,7 +134,7 @@ protected function validateStaticCallExpression(StaticCall $stmt) * @param Stmt $stmt * @param string $scopeType */ - protected function ensureCanDefine(Stmt $stmt, $scopeType = self::CLASS_TYPE) + protected function ensureCanDefine(Stmt $stmt, string $scopeType = self::CLASS_TYPE) { // Anonymous classes don't have a name, and uniqueness shouldn't be enforced. if ($stmt->name === null) { @@ -239,7 +170,7 @@ protected function ensureCanDefine(Stmt $stmt, $scopeType = self::CLASS_TYPE) * @param string $name * @param Stmt $stmt */ - protected function ensureClassExists($name, $stmt) + protected function ensureClassExists(string $name, Stmt $stmt) { if (!$this->classExists($name)) { throw $this->createError(\sprintf('Class \'%s\' not found', $name), $stmt); @@ -254,7 +185,7 @@ protected function ensureClassExists($name, $stmt) * @param string $name * @param Stmt $stmt */ - protected function ensureClassOrInterfaceExists($name, $stmt) + protected function ensureClassOrInterfaceExists(string $name, Stmt $stmt) { if (!$this->classExists($name) && !$this->interfaceExists($name)) { throw $this->createError(\sprintf('Class \'%s\' not found', $name), $stmt); @@ -269,7 +200,7 @@ protected function ensureClassOrInterfaceExists($name, $stmt) * @param string $name * @param Stmt $stmt */ - protected function ensureClassOrTraitExists($name, $stmt) + protected function ensureClassOrTraitExists(string $name, Stmt $stmt) { if (!$this->classExists($name) && !$this->traitExists($name)) { throw $this->createError(\sprintf('Class \'%s\' not found', $name), $stmt); @@ -285,7 +216,7 @@ protected function ensureClassOrTraitExists($name, $stmt) * @param string $name * @param Stmt $stmt */ - protected function ensureMethodExists($class, $name, $stmt) + protected function ensureMethodExists(string $class, string $name, Stmt $stmt) { $this->ensureClassOrTraitExists($class, $stmt); @@ -317,7 +248,7 @@ protected function ensureMethodExists($class, $name, $stmt) * @param Interface_[] $interfaces * @param Stmt $stmt */ - protected function ensureInterfacesExist($interfaces, $stmt) + protected function ensureInterfacesExist(array $interfaces, Stmt $stmt) { foreach ($interfaces as $interface) { /** @var string $name */ @@ -328,37 +259,14 @@ protected function ensureInterfacesExist($interfaces, $stmt) } } - /** - * Get a symbol type key for storing in the scope name cache. - * - * @deprecated No longer used. Scope type should be passed into ensureCanDefine directly. - * @codeCoverageIgnore - * - * @param Stmt $stmt - * - * @return string - */ - protected function getScopeType(Stmt $stmt) - { - if ($stmt instanceof Class_) { - return self::CLASS_TYPE; - } elseif ($stmt instanceof Interface_) { - return self::INTERFACE_TYPE; - } elseif ($stmt instanceof Trait_) { - return self::TRAIT_TYPE; - } - } - /** * Check whether a class exists, or has been defined in the current code snippet. * * Gives `self`, `static` and `parent` a free pass. * * @param string $name - * - * @return bool */ - protected function classExists($name) + protected function classExists(string $name): bool { // Give `self`, `static` and `parent` a pass. This will actually let // some errors through, since we're not checking whether the keyword is @@ -374,10 +282,8 @@ protected function classExists($name) * Check whether an interface exists, or has been defined in the current code snippet. * * @param string $name - * - * @return bool */ - protected function interfaceExists($name) + protected function interfaceExists(string $name): bool { return \interface_exists($name) || $this->findInScope($name) === self::INTERFACE_TYPE; } @@ -386,10 +292,8 @@ protected function interfaceExists($name) * Check whether a trait exists, or has been defined in the current code snippet. * * @param string $name - * - * @return bool */ - protected function traitExists($name) + protected function traitExists(string $name): bool { return \trait_exists($name) || $this->findInScope($name) === self::TRAIT_TYPE; } @@ -401,7 +305,7 @@ protected function traitExists($name) * * @return string|null */ - protected function findInScope($name) + protected function findInScope(string $name) { $name = \strtolower($name); if (isset($this->currentScope[$name])) { @@ -414,11 +318,9 @@ protected function findInScope($name) * * @param string $msg * @param Stmt $stmt - * - * @return FatalErrorException */ - protected function createError($msg, $stmt) + protected function createError(string $msg, Stmt $stmt): FatalErrorException { - return new FatalErrorException($msg, 0, \E_ERROR, null, $stmt->getLine()); + return new FatalErrorException($msg, 0, \E_ERROR, null, $stmt->getStartLine()); } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ValidConstantPass.php b/api/vendor/psy/psysh/src/CodeCleaner/ValidConstantPass.php deleted file mode 100644 index 8e69813a3..000000000 --- a/api/vendor/psy/psysh/src/CodeCleaner/ValidConstantPass.php +++ /dev/null @@ -1,90 +0,0 @@ -name->parts) > 1) { - $name = $this->getFullyQualifiedName($node->name); - if (!\defined($name)) { - $msg = \sprintf('Undefined constant %s', $name); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); - } - } elseif ($node instanceof ClassConstFetch) { - $this->validateClassConstFetchExpression($node); - } - } - - /** - * Validate a class constant fetch expression. - * - * @throws FatalErrorException if a class constant is not defined - * - * @param ClassConstFetch $stmt - */ - protected function validateClassConstFetchExpression(ClassConstFetch $stmt) - { - // For PHP Parser 4.x - $constName = $stmt->name instanceof Identifier ? $stmt->name->toString() : $stmt->name; - - // give the `class` pseudo-constant a pass - if ($constName === 'class') { - return; - } - - // if class name is an expression, give it a pass for now - if (!$stmt->class instanceof Expr) { - $className = $this->getFullyQualifiedName($stmt->class); - - // if the class doesn't exist, don't throw an exception… it might be - // defined in the same line it's used or something stupid like that. - if (\class_exists($className) || \interface_exists($className)) { - $refl = new \ReflectionClass($className); - if (!$refl->hasConstant($constName)) { - $constType = \class_exists($className) ? 'Class' : 'Interface'; - $msg = \sprintf('%s constant \'%s::%s\' not found', $constType, $className, $constName); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $stmt->getLine()); - } - } - } - } -} diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ValidConstructorPass.php b/api/vendor/psy/psysh/src/CodeCleaner/ValidConstructorPass.php index 44928cc8f..481de6fc2 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ValidConstructorPass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ValidConstructorPass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,7 +12,7 @@ namespace Psy\CodeCleaner; use PhpParser\Node; -use PhpParser\Node\Identifier; +use PhpParser\Node\Name; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Namespace_; @@ -35,6 +35,9 @@ class ValidConstructorPass extends CodeCleanerPass { private $namespace; + /** + * @return Node[]|null Array of nodes + */ public function beforeTraverse(array $nodes) { $this->namespace = []; @@ -47,11 +50,13 @@ public function beforeTraverse(array $nodes) * @throws FatalErrorException the constructor function has a return type * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { if ($node instanceof Namespace_) { - $this->namespace = isset($node->name) ? $node->name->parts : []; + $this->namespace = isset($node->name) ? $this->getParts($node->name) : []; } elseif ($node instanceof Class_) { $constructor = null; foreach ($node->stmts as $stmt) { @@ -86,27 +91,31 @@ public function enterNode(Node $node) private function validateConstructor(Node $constructor, Node $classNode) { if ($constructor->isStatic()) { - // For PHP Parser 4.x - $className = $classNode->name instanceof Identifier ? $classNode->name->toString() : $classNode->name; - $msg = \sprintf( 'Constructor %s::%s() cannot be static', - \implode('\\', \array_merge($this->namespace, (array) $className)), + \implode('\\', \array_merge($this->namespace, (array) $classNode->name->toString())), $constructor->name ); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $classNode->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $classNode->getStartLine()); } if (\method_exists($constructor, 'getReturnType') && $constructor->getReturnType()) { - // For PHP Parser 4.x - $className = $classNode->name instanceof Identifier ? $classNode->name->toString() : $classNode->name; - $msg = \sprintf( 'Constructor %s::%s() cannot declare a return type', - \implode('\\', \array_merge($this->namespace, (array) $className)), + \implode('\\', \array_merge($this->namespace, (array) $classNode->name->toString())), $constructor->name ); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $classNode->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $classNode->getStartLine()); } } + + /** + * Backwards compatibility shim for PHP-Parser 4.x. + * + * At some point we might want to make $namespace a plain string, to match how Name works? + */ + protected function getParts(Name $name): array + { + return \method_exists($name, 'getParts') ? $name->getParts() : $name->parts; + } } diff --git a/api/vendor/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php b/api/vendor/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php index 9c1e669f1..bd20607c4 100644 --- a/api/vendor/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php +++ b/api/vendor/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,9 +12,6 @@ namespace Psy\CodeCleaner; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\FuncCall; -use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt\Do_; use PhpParser\Node\Stmt\Function_; use PhpParser\Node\Stmt\If_; @@ -35,7 +32,11 @@ class ValidFunctionNamePass extends NamespaceAwarePass /** * Store newly defined function names on the way in, to allow recursion. * + * @throws FatalErrorException if a function is redefined in a non-conditional scope + * * @param Node $node + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -52,7 +53,7 @@ public function enterNode(Node $node) if (\function_exists($name) || isset($this->currentScope[\strtolower($name)])) { $msg = \sprintf('Cannot redeclare %s()', $name); - throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getLine()); + throw new FatalErrorException($msg, 0, \E_ERROR, null, $node->getStartLine()); } } @@ -61,29 +62,14 @@ public function enterNode(Node $node) } /** - * Validate that function calls will succeed. - * - * @throws FatalErrorException if a function is redefined - * @throws FatalErrorException if the function name is a string (not an expression) and is not defined - * * @param Node $node + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { if (self::isConditional($node)) { $this->conditionalScopes--; - } elseif ($node instanceof FuncCall) { - // if function name is an expression or a variable, give it a pass for now. - $name = $node->name; - if (!$name instanceof Expr && !$name instanceof Variable) { - $shortName = \implode('\\', $name->parts); - $fullName = $this->getFullyQualifiedName($name); - $inScope = isset($this->currentScope[\strtolower($fullName)]); - if (!$inScope && !\function_exists($shortName) && !\function_exists($fullName)) { - $message = \sprintf('Call to undefined function %s()', $name); - throw new FatalErrorException($message, 0, \E_ERROR, null, $node->getLine()); - } - } } } diff --git a/api/vendor/psy/psysh/src/Command/BufferCommand.php b/api/vendor/psy/psysh/src/Command/BufferCommand.php index 6e16ac536..8348aee64 100644 --- a/api/vendor/psy/psysh/src/Command/BufferCommand.php +++ b/api/vendor/psy/psysh/src/Command/BufferCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -11,6 +11,7 @@ namespace Psy\Command; +use Psy\Exception\RuntimeException; use Psy\Output\ShellOutput; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -46,12 +47,19 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { - $buf = $this->getApplication()->getCodeBuffer(); + $app = $this->getApplication(); + if (!$app instanceof \Psy\Shell) { + throw new RuntimeException('Buffer command requires a \Psy\Shell application'); + } + + $buf = $app->getCodeBuffer(); if ($input->getOption('clear')) { - $this->getApplication()->resetCodeBuffer(); + $app->resetCodeBuffer(); $output->writeln($this->formatLines($buf, 'urgent'), ShellOutput::NUMBER_LINES); } else { $output->writeln($this->formatLines($buf), ShellOutput::NUMBER_LINES); @@ -68,7 +76,7 @@ protected function execute(InputInterface $input, OutputInterface $output) * * @return array Formatted strings */ - protected function formatLines(array $lines, $type = 'return') + protected function formatLines(array $lines, string $type = 'return'): array { $template = \sprintf('<%s>%%s', $type, $type); diff --git a/api/vendor/psy/psysh/src/Command/ClearCommand.php b/api/vendor/psy/psysh/src/Command/ClearCommand.php index d20abab12..42a66b0f2 100644 --- a/api/vendor/psy/psysh/src/Command/ClearCommand.php +++ b/api/vendor/psy/psysh/src/Command/ClearCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -41,8 +41,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $output->write(\sprintf('%c[2J%c[0;0f', 27, 27)); diff --git a/api/vendor/psy/psysh/src/Command/CodeArgumentParser.php b/api/vendor/psy/psysh/src/Command/CodeArgumentParser.php new file mode 100644 index 000000000..faa214ff2 --- /dev/null +++ b/api/vendor/psy/psysh/src/Command/CodeArgumentParser.php @@ -0,0 +1,59 @@ +parser = $parser ?? (new ParserFactory())->createParser(); + } + + /** + * Lex and parse a string of code into statements. + * + * This is intended for code arguments, so the code string *should not* start with parser->parse($code); + } catch (\PhpParser\Error $e) { + if (\strpos($e->getMessage(), 'unexpected EOF') === false) { + throw ParseErrorException::fromParseError($e); + } + + // If we got an unexpected EOF, let's try it again with a semicolon. + try { + return $this->parser->parse($code.';'); + } catch (\PhpParser\Error $_e) { + // Throw the original error, not the semicolon one. + throw ParseErrorException::fromParseError($e); + } + } + } +} diff --git a/api/vendor/psy/psysh/src/Command/Command.php b/api/vendor/psy/psysh/src/Command/Command.php index 2a58eece8..b9dc1b8ae 100644 --- a/api/vendor/psy/psysh/src/Command/Command.php +++ b/api/vendor/psy/psysh/src/Command/Command.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -15,7 +15,6 @@ use Symfony\Component\Console\Application; use Symfony\Component\Console\Command\Command as BaseCommand; use Symfony\Component\Console\Helper\Table; -use Symfony\Component\Console\Helper\TableHelper; use Symfony\Component\Console\Helper\TableStyle; use Symfony\Component\Console\Output\OutputInterface; @@ -31,19 +30,19 @@ abstract class Command extends BaseCommand * * @api */ - public function setApplication(Application $application = null) + public function setApplication(?Application $application = null): void { if ($application !== null && !$application instanceof Shell) { throw new \InvalidArgumentException('PsySH Commands require an instance of Psy\Shell'); } - return parent::setApplication($application); + parent::setApplication($application); } /** * {@inheritdoc} */ - public function asText() + public function asText(): string { $messages = [ 'Usage:', @@ -74,7 +73,7 @@ public function asText() /** * {@inheritdoc} */ - private function getArguments() + private function getArguments(): array { $hidden = $this->getHiddenArguments(); @@ -86,9 +85,9 @@ private function getArguments() /** * These arguments will be excluded from help output. * - * @return array + * @return string[] */ - protected function getHiddenArguments() + protected function getHiddenArguments(): array { return ['command']; } @@ -96,7 +95,7 @@ protected function getHiddenArguments() /** * {@inheritdoc} */ - private function getOptions() + private function getOptions(): array { $hidden = $this->getHiddenOptions(); @@ -108,29 +107,25 @@ private function getOptions() /** * These options will be excluded from help output. * - * @return array + * @return string[] */ - protected function getHiddenOptions() + protected function getHiddenOptions(): array { return ['verbose']; } /** * Format command aliases as text.. - * - * @return string */ - private function aliasesAsText() + private function aliasesAsText(): string { return 'Aliases: '.\implode(', ', $this->getAliases()).''.\PHP_EOL; } /** * Format command arguments as text. - * - * @return string */ - private function argumentsAsText() + private function argumentsAsText(): string { $max = $this->getMaxWidth(); $messages = []; @@ -147,7 +142,7 @@ private function argumentsAsText() $description = \str_replace("\n", "\n".\str_pad('', $max + 2, ' '), $argument->getDescription()); - $messages[] = \sprintf(" %-${max}s %s%s", $argument->getName(), $description, $default); + $messages[] = \sprintf(" %-{$max}s %s%s", $argument->getName(), $description, $default); } $messages[] = ''; @@ -158,10 +153,8 @@ private function argumentsAsText() /** * Format options as text. - * - * @return string */ - private function optionsAsText() + private function optionsAsText(): string { $max = $this->getMaxWidth(); $messages = []; @@ -182,7 +175,7 @@ private function optionsAsText() $optionMax = $max - \strlen($option->getName()) - 2; $messages[] = \sprintf( - " %s %-${optionMax}s%s%s%s", + " %s %-{$optionMax}s%s%s%s", '--'.$option->getName(), $option->getShortcut() ? \sprintf('(-%s) ', $option->getShortcut()) : '', $description, @@ -199,10 +192,8 @@ private function optionsAsText() /** * Calculate the maximum padding width for a set of lines. - * - * @return int */ - private function getMaxWidth() + private function getMaxWidth(): int { $max = 0; @@ -226,10 +217,8 @@ private function getMaxWidth() * Format an option default as text. * * @param mixed $default - * - * @return string */ - private function formatDefaultValue($default) + private function formatDefaultValue($default): string { if (\is_array($default) && $default === \array_values($default)) { return \sprintf("['%s']", \implode("', '", $default)); @@ -241,16 +230,10 @@ private function formatDefaultValue($default) /** * Get a Table instance. * - * Falls back to legacy TableHelper. - * - * @return Table|TableHelper + * @return Table */ protected function getTable(OutputInterface $output) { - if (!\class_exists(Table::class)) { - return $this->getTableHelper(); - } - $style = new TableStyle(); // Symfony 4.1 deprecated single-argument style setters. @@ -270,20 +253,4 @@ protected function getTable(OutputInterface $output) ->setRows([]) ->setStyle($style); } - - /** - * Legacy fallback for getTable. - * - * @return TableHelper - */ - protected function getTableHelper() - { - $table = $this->getApplication()->getHelperSet()->get('table'); - - return $table - ->setRows([]) - ->setLayout(TableHelper::LAYOUT_BORDERLESS) - ->setHorizontalBorderChar('') - ->setCrossingChar(''); - } } diff --git a/api/vendor/psy/psysh/src/Command/DocCommand.php b/api/vendor/psy/psysh/src/Command/DocCommand.php index 803999fbe..1650ccf62 100644 --- a/api/vendor/psy/psysh/src/Command/DocCommand.php +++ b/api/vendor/psy/psysh/src/Command/DocCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,8 +14,8 @@ use Psy\Formatter\DocblockFormatter; use Psy\Formatter\SignatureFormatter; use Psy\Input\CodeArgument; -use Psy\Reflection\ReflectionClassConstant; -use Psy\Reflection\ReflectionConstant_; +use Psy\Output\ShellOutput; +use Psy\Reflection\ReflectionConstant; use Psy\Reflection\ReflectionLanguageConstruct; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -26,6 +26,8 @@ */ class DocCommand extends ReflectingCommand { + const INHERIT_DOC_TAG = '{@inheritdoc}'; + /** * {@inheritdoc} */ @@ -57,8 +59,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $value = $input->getArgument('target'); if (ReflectionLanguageConstruct::isLanguageConstruct($value)) { @@ -91,7 +95,8 @@ protected function execute(InputInterface $input, OutputInterface $output) $output->writeln($doc); } - if ($input->getOption('all')) { + // Implicit --all if the original docblock has an {@inheritdoc} tag. + if ($input->getOption('all') || \stripos($doc, self::INHERIT_DOC_TAG) !== false) { $parent = $reflector; foreach ($this->getParentReflectors($reflector) as $parent) { $output->writeln(''); @@ -140,14 +145,13 @@ private function getManualDoc($reflector) break; case \ReflectionClassConstant::class: - case ReflectionClassConstant::class: // @todo this is going to collide with ReflectionMethod ids // someday... start running the query by id + type if the DB // supports it. $id = $reflector->class.'::'.$reflector->name; break; - case ReflectionConstant_::class: + case ReflectionConstant::class: $id = $reflector->name; break; @@ -166,30 +170,44 @@ private function getManualDoc($reflector) * yield Reflectors for the same-named method or property on all traits and * parent classes. * - * @return Generator a whole bunch of \Reflector instances + * @return \Generator a whole bunch of \Reflector instances */ - private function getParentReflectors($reflector) + private function getParentReflectors($reflector): \Generator { + $seenClasses = []; + switch (\get_class($reflector)) { case \ReflectionClass::class: case \ReflectionObject::class: foreach ($reflector->getTraits() as $trait) { - yield $trait; + if (!\in_array($trait->getName(), $seenClasses)) { + $seenClasses[] = $trait->getName(); + yield $trait; + } } foreach ($reflector->getInterfaces() as $interface) { - yield $interface; + if (!\in_array($interface->getName(), $seenClasses)) { + $seenClasses[] = $interface->getName(); + yield $interface; + } } while ($reflector = $reflector->getParentClass()) { yield $reflector; foreach ($reflector->getTraits() as $trait) { - yield $trait; + if (!\in_array($trait->getName(), $seenClasses)) { + $seenClasses[] = $trait->getName(); + yield $trait; + } } foreach ($reflector->getInterfaces() as $interface) { - yield $interface; + if (!\in_array($interface->getName(), $seenClasses)) { + $seenClasses[] = $interface->getName(); + yield $interface; + } } } @@ -198,7 +216,11 @@ private function getParentReflectors($reflector) case \ReflectionMethod::class: foreach ($this->getParentReflectors($reflector->getDeclaringClass()) as $parent) { if ($parent->hasMethod($reflector->getName())) { - yield $parent->getMethod($reflector->getName()); + $parentMethod = $parent->getMethod($reflector->getName()); + if (!\in_array($parentMethod->getDeclaringClass()->getName(), $seenClasses)) { + $seenClasses[] = $parentMethod->getDeclaringClass()->getName(); + yield $parentMethod; + } } } @@ -207,7 +229,11 @@ private function getParentReflectors($reflector) case \ReflectionProperty::class: foreach ($this->getParentReflectors($reflector->getDeclaringClass()) as $parent) { if ($parent->hasProperty($reflector->getName())) { - yield $parent->getProperty($reflector->getName()); + $parentProperty = $parent->getProperty($reflector->getName()); + if (!\in_array($parentProperty->getDeclaringClass()->getName(), $seenClasses)) { + $seenClasses[] = $parentProperty->getDeclaringClass()->getName(); + yield $parentProperty; + } } } break; @@ -217,9 +243,10 @@ private function getParentReflectors($reflector) private function getManualDocById($id) { if ($db = $this->getApplication()->getManualDb()) { - return $db - ->query(\sprintf('SELECT doc FROM php_manual WHERE id = %s', $db->quote($id))) - ->fetchColumn(0); + $result = $db->query(\sprintf('SELECT doc FROM php_manual WHERE id = %s', $db->quote($id))); + if ($result !== false) { + return $result->fetchColumn(0); + } } } } diff --git a/api/vendor/psy/psysh/src/Command/DumpCommand.php b/api/vendor/psy/psysh/src/Command/DumpCommand.php index 9e279e761..88ddbe26a 100644 --- a/api/vendor/psy/psysh/src/Command/DumpCommand.php +++ b/api/vendor/psy/psysh/src/Command/DumpCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -66,8 +66,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $depth = $input->getOption('depth'); $target = $this->resolveCode($input->getArgument('target')); @@ -79,18 +81,4 @@ protected function execute(InputInterface $input, OutputInterface $output) return 0; } - - /** - * @deprecated Use `resolveCode` instead - * - * @param string $name - * - * @return mixed - */ - protected function resolveTarget($name) - { - @\trigger_error('`resolveTarget` is deprecated; use `resolveCode` instead.', \E_USER_DEPRECATED); - - return $this->resolveCode($name); - } } diff --git a/api/vendor/psy/psysh/src/Command/EditCommand.php b/api/vendor/psy/psysh/src/Command/EditCommand.php index 19a7b6498..0a6d00fe6 100644 --- a/api/vendor/psy/psysh/src/Command/EditCommand.php +++ b/api/vendor/psy/psysh/src/Command/EditCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -74,10 +74,12 @@ protected function configure() * @param InputInterface $input * @param OutputInterface $output * + * @return int 0 if everything went fine, or an exit code + * * @throws \InvalidArgumentException when both exec and no-exec flags are given or if a given variable is not found in the current context * @throws \UnexpectedValueException if file_get_contents on the edited file returns false instead of a string */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { if ($input->getOption('exec') && $input->getOption('no-exec')) { @@ -112,10 +114,8 @@ protected function execute(InputInterface $input, OutputInterface $output) * @param bool $execOption * @param bool $noExecOption * @param string|null $filePath - * - * @return bool */ - private function shouldExecuteFile($execOption, $noExecOption, $filePath) + private function shouldExecuteFile(bool $execOption, bool $noExecOption, ?string $filePath = null): bool { if ($execOption) { return true; @@ -136,11 +136,11 @@ private function shouldExecuteFile($execOption, $noExecOption, $filePath) * * @throws \InvalidArgumentException If the variable is not found in the current context */ - private function extractFilePath($fileArgument) + private function extractFilePath(?string $fileArgument = null) { // If the file argument was a variable, get it from the context if ($fileArgument !== null && - \strlen($fileArgument) > 0 && + $fileArgument !== '' && $fileArgument[0] === '$') { $fileArgument = $this->context->get(\preg_replace('/^\$/', '', $fileArgument)); } @@ -152,11 +152,9 @@ private function extractFilePath($fileArgument) * @param string $filePath * @param bool $shouldRemoveFile * - * @return string - * * @throws \UnexpectedValueException if file_get_contents on $filePath returns false instead of a string */ - private function editFile($filePath, $shouldRemoveFile) + private function editFile(string $filePath, bool $shouldRemoveFile): string { $escapedFilePath = \escapeshellarg($filePath); $editor = (isset($_SERVER['EDITOR']) && $_SERVER['EDITOR']) ? $_SERVER['EDITOR'] : 'nano'; diff --git a/api/vendor/psy/psysh/src/Command/ExitCommand.php b/api/vendor/psy/psysh/src/Command/ExitCommand.php index 3e51a3462..6552e288a 100644 --- a/api/vendor/psy/psysh/src/Command/ExitCommand.php +++ b/api/vendor/psy/psysh/src/Command/ExitCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -44,8 +44,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { throw new BreakException('Goodbye'); } diff --git a/api/vendor/psy/psysh/src/Command/HelpCommand.php b/api/vendor/psy/psysh/src/Command/HelpCommand.php index d3cdb9402..13ea34831 100644 --- a/api/vendor/psy/psysh/src/Command/HelpCommand.php +++ b/api/vendor/psy/psysh/src/Command/HelpCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,7 +12,6 @@ namespace Psy\Command; use Psy\Output\ShellOutput; -use Symfony\Component\Console\Helper\TableHelper; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -46,15 +45,17 @@ protected function configure() * * @param Command $command */ - public function setCommand($command) + public function setCommand(Command $command) { $this->command = $command; } /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { if ($this->command !== null) { // help for an individual command @@ -91,11 +92,7 @@ protected function execute(InputInterface $input, OutputInterface $output) $output->startPaging(); } - if ($table instanceof TableHelper) { - $table->render($output); - } else { - $table->render(); - } + $table->render(); if ($output instanceof ShellOutput) { $output->stopPaging(); diff --git a/api/vendor/psy/psysh/src/Command/HistoryCommand.php b/api/vendor/psy/psysh/src/Command/HistoryCommand.php index 22318a4dc..cf5f29b9d 100644 --- a/api/vendor/psy/psysh/src/Command/HistoryCommand.php +++ b/api/vendor/psy/psysh/src/Command/HistoryCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -90,8 +90,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $this->validateOnlyOne($input, ['show', 'head', 'tail']); $this->validateOnlyOne($input, ['save', 'replay', 'clear']); @@ -156,7 +158,7 @@ protected function execute(InputInterface $input, OutputInterface $output) * * @return array [ start, end ] */ - private function extractRange($range) + private function extractRange(string $range): array { if (\preg_match('/^\d+$/', $range)) { return [$range, $range + 1]; @@ -176,13 +178,13 @@ private function extractRange($range) /** * Retrieve a slice of the readline history. * - * @param string $show - * @param string $head - * @param string $tail + * @param string|null $show + * @param string|null $head + * @param string|null $tail * - * @return array A slilce of history + * @return array A slice of history */ - private function getHistorySlice($show, $head, $tail) + private function getHistorySlice($show, $head, $tail): array { $history = $this->readline->listHistory(); @@ -241,7 +243,7 @@ private function clearHistory() $this->readline->clearHistory(); } - public static function escape($string) + public static function escape(string $string): string { return OutputFormatter::escape($string); } diff --git a/api/vendor/psy/psysh/src/Command/ListCommand.php b/api/vendor/psy/psysh/src/Command/ListCommand.php index bcc1f33ff..1982aa4c1 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -26,7 +26,6 @@ use Psy\VarDumper\Presenter; use Psy\VarDumper\PresenterAware; use Symfony\Component\Console\Formatter\OutputFormatter; -use Symfony\Component\Console\Helper\TableHelper; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; @@ -112,8 +111,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $this->validateInput($input); $this->initEnumerators(); @@ -211,11 +212,7 @@ protected function writeLong(OutputInterface $output, array $result) $table->addRow([$this->formatItemName($item), $item['value']]); } - if ($table instanceof TableHelper) { - $table->render($output); - } else { - $table->render(); - } + $table->render(); } } @@ -223,10 +220,8 @@ protected function writeLong(OutputInterface $output, array $result) * Format an item name given its visibility. * * @param array $item - * - * @return string */ - private function formatItemName($item) + private function formatItemName(array $item): string { return \sprintf('<%s>%s', $item['style'], OutputFormatter::escape($item['name']), $item['style']); } diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php index 3b5b0dfaa..9bc56748f 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -11,7 +11,6 @@ namespace Psy\Command\ListCommand; -use Psy\Reflection\ReflectionClassConstant; use Symfony\Component\Console\Input\InputInterface; /** @@ -22,7 +21,7 @@ class ClassConstantEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // only list constants when a Reflector is present. if ($reflector === null) { @@ -56,18 +55,18 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null /** * Get defined constants for the given class or object Reflector. * - * @param \Reflector $reflector - * @param bool $noInherit Exclude inherited constants + * @param \ReflectionClass $reflector + * @param bool $noInherit Exclude inherited constants * * @return array */ - protected function getConstants(\Reflector $reflector, $noInherit = false) + protected function getConstants(\ReflectionClass $reflector, bool $noInherit = false): array { $className = $reflector->getName(); $constants = []; foreach ($reflector->getConstants() as $name => $constant) { - $constReflector = ReflectionClassConstant::create($reflector->name, $name); + $constReflector = new \ReflectionClassConstant($reflector->name, $name); if ($noInherit && $constReflector->getDeclaringClass()->getName() !== $className) { continue; @@ -88,7 +87,7 @@ protected function getConstants(\Reflector $reflector, $noInherit = false) * * @return array */ - protected function prepareConstants(array $constants) + protected function prepareConstants(array $constants): array { // My kingdom for a generator. $ret = []; @@ -110,10 +109,8 @@ protected function prepareConstants(array $constants) * Get a label for the particular kind of "class" represented. * * @param \ReflectionClass $reflector - * - * @return string */ - protected function getKindLabel(\ReflectionClass $reflector) + protected function getKindLabel(\ReflectionClass $reflector): string { if ($reflector->isInterface()) { return 'Interface Constants'; diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/ClassEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/ClassEnumerator.php index c939a0bb8..b0edf0353 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/ClassEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/ClassEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -22,7 +22,7 @@ class ClassEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // if we have a reflector, ensure that it's a namespace reflector if (($target !== null || $reflector !== null) && !$reflector instanceof ReflectionNamespace) { @@ -66,7 +66,7 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null * * @return array */ - protected function filterClasses($key, $classes, $internal, $user, $prefix = null) + protected function filterClasses(string $key, array $classes, bool $internal, bool $user, ?string $prefix = null): array { $ret = []; @@ -110,7 +110,7 @@ protected function filterClasses($key, $classes, $internal, $user, $prefix = nul * * @return array */ - protected function prepareClasses(array $classes) + protected function prepareClasses(array $classes): array { \natcasesort($classes); diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php index 7471c2d23..a754c1de2 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -49,7 +49,7 @@ class ConstantEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // if we have a reflector, ensure that it's a namespace reflector if (($target !== null || $reflector !== null) && !$reflector instanceof ReflectionNamespace) { @@ -122,7 +122,7 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null * * @return array */ - protected function getConstants($category = null) + protected function getConstants(?string $category = null): array { if (!$category) { return \get_defined_constants(); @@ -133,7 +133,7 @@ protected function getConstants($category = null) if ($category === 'internal') { unset($consts['user']); - return \call_user_func_array('array_merge', \array_values($consts)); + return \array_merge(...\array_values($consts)); } foreach ($consts as $key => $value) { @@ -152,7 +152,7 @@ protected function getConstants($category = null) * * @return array */ - protected function prepareConstants(array $constants) + protected function prepareConstants(array $constants): array { // My kingdom for a generator. $ret = []; diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/Enumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/Enumerator.php index f6705d08e..83bdf67a7 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/Enumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/Enumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -54,7 +54,7 @@ public function __construct(Presenter $presenter) * * @return array */ - public function enumerate(InputInterface $input, \Reflector $reflector = null, $target = null) + public function enumerate(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { $this->filter->bind($input); @@ -82,7 +82,7 @@ public function enumerate(InputInterface $input, \Reflector $reflector = null, $ * * @return array */ - abstract protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null); + abstract protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array; protected function showItem($name) { diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php index c651c707f..fe3891a59 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -22,7 +22,7 @@ class FunctionEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // if we have a reflector, ensure that it's a namespace reflector if (($target !== null || $reflector !== null) && !$reflector instanceof ReflectionNamespace) { @@ -67,7 +67,7 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null * * @return array */ - protected function getFunctions($type = null) + protected function getFunctions(?string $type = null): array { $funcs = \get_defined_functions(); @@ -86,7 +86,7 @@ protected function getFunctions($type = null) * * @return array */ - protected function prepareFunctions(array $functions, $prefix = null) + protected function prepareFunctions(array $functions, ?string $prefix = null): array { \natcasesort($functions); @@ -105,8 +105,8 @@ protected function prepareFunctions(array $functions, $prefix = null) 'style' => self::IS_FUNCTION, 'value' => $this->presentSignature($name), ]; - } catch (\Exception $e) { - // Ignore failures. HHVM does this sometimes for internal functions. + } catch (\Throwable $e) { + // Ignore failures. } } } diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php index a2a4d83f7..81be16e53 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,7 +21,7 @@ class GlobalVariableEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // only list globals when no Reflector is present. if ($reflector !== null || $target !== null) { @@ -49,7 +49,7 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null * * @return array */ - protected function getGlobals() + protected function getGlobals(): array { global $GLOBALS; @@ -71,7 +71,7 @@ protected function getGlobals() * * @return array */ - protected function prepareGlobals($globals) + protected function prepareGlobals(array $globals): array { // My kingdom for a generator. $ret = []; diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/MethodEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/MethodEnumerator.php index 66b988c7e..e7b4503fd 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/MethodEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/MethodEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,7 +21,7 @@ class MethodEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // only list methods when a Reflector is present. if ($reflector === null) { @@ -55,13 +55,13 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null /** * Get defined methods for the given class or object Reflector. * - * @param bool $showAll Include private and protected methods - * @param \Reflector $reflector - * @param bool $noInherit Exclude inherited methods + * @param bool $showAll Include private and protected methods + * @param \ReflectionClass $reflector + * @param bool $noInherit Exclude inherited methods * * @return array */ - protected function getMethods($showAll, \Reflector $reflector, $noInherit = false) + protected function getMethods(bool $showAll, \ReflectionClass $reflector, bool $noInherit = false): array { $className = $reflector->getName(); @@ -90,7 +90,7 @@ protected function getMethods($showAll, \Reflector $reflector, $noInherit = fals * * @return array */ - protected function prepareMethods(array $methods) + protected function prepareMethods(array $methods): array { // My kingdom for a generator. $ret = []; @@ -112,10 +112,8 @@ protected function prepareMethods(array $methods) * Get a label for the particular kind of "class" represented. * * @param \ReflectionClass $reflector - * - * @return string */ - protected function getKindLabel(\ReflectionClass $reflector) + protected function getKindLabel(\ReflectionClass $reflector): string { if ($reflector->isInterface()) { return 'Interface Methods'; @@ -130,10 +128,8 @@ protected function getKindLabel(\ReflectionClass $reflector) * Get output style for the given method's visibility. * * @param \ReflectionMethod $method - * - * @return string */ - private function getVisibilityStyle(\ReflectionMethod $method) + private function getVisibilityStyle(\ReflectionMethod $method): string { if ($method->isPublic()) { return self::IS_PUBLIC; diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php index a414726d6..17661455a 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,7 +21,7 @@ class PropertyEnumerator extends Enumerator /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // only list properties when a Reflector is present. @@ -56,13 +56,13 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null /** * Get defined properties for the given class or object Reflector. * - * @param bool $showAll Include private and protected properties - * @param \Reflector $reflector - * @param bool $noInherit Exclude inherited properties + * @param bool $showAll Include private and protected properties + * @param \ReflectionClass $reflector + * @param bool $noInherit Exclude inherited properties * * @return array */ - protected function getProperties($showAll, \Reflector $reflector, $noInherit = false) + protected function getProperties(bool $showAll, \ReflectionClass $reflector, bool $noInherit = false): array { $className = $reflector->getName(); @@ -89,7 +89,7 @@ protected function getProperties($showAll, \Reflector $reflector, $noInherit = f * * @return array */ - protected function prepareProperties(array $properties, $target = null) + protected function prepareProperties(array $properties, $target = null): array { // My kingdom for a generator. $ret = []; @@ -112,10 +112,8 @@ protected function prepareProperties(array $properties, $target = null) * Get a label for the particular kind of "class" represented. * * @param \ReflectionClass $reflector - * - * @return string */ - protected function getKindLabel(\ReflectionClass $reflector) + protected function getKindLabel(\ReflectionClass $reflector): string { if (\method_exists($reflector, 'isTrait') && $reflector->isTrait()) { return 'Trait Properties'; @@ -128,10 +126,8 @@ protected function getKindLabel(\ReflectionClass $reflector) * Get output style for the given property's visibility. * * @param \ReflectionProperty $property - * - * @return string */ - private function getVisibilityStyle(\ReflectionProperty $property) + private function getVisibilityStyle(\ReflectionProperty $property): string { if ($property->isPublic()) { return self::IS_PUBLIC; @@ -147,11 +143,13 @@ private function getVisibilityStyle(\ReflectionProperty $property) * * @param \ReflectionProperty $property * @param mixed $target - * - * @return string */ - protected function presentValue(\ReflectionProperty $property, $target) + protected function presentValue(\ReflectionProperty $property, $target): string { + if (!$target) { + return ''; + } + // If $target is a class or trait (try to) get the default // value for the property. if (!\is_object($target)) { @@ -163,7 +161,7 @@ protected function presentValue(\ReflectionProperty $property, $target) return $this->presentRef($props[$property->name]).$suffix; } - } catch (\Exception $e) { + } catch (\Throwable $e) { // Well, we gave it a shot. } diff --git a/api/vendor/psy/psysh/src/Command/ListCommand/VariableEnumerator.php b/api/vendor/psy/psysh/src/Command/ListCommand/VariableEnumerator.php index 2cd0345fe..2da1c6d7d 100644 --- a/api/vendor/psy/psysh/src/Command/ListCommand/VariableEnumerator.php +++ b/api/vendor/psy/psysh/src/Command/ListCommand/VariableEnumerator.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -45,7 +45,7 @@ public function __construct(Presenter $presenter, Context $context) /** * {@inheritdoc} */ - protected function listItems(InputInterface $input, \Reflector $reflector = null, $target = null) + protected function listItems(InputInterface $input, ?\Reflector $reflector = null, $target = null): array { // only list variables when no Reflector is present. if ($reflector !== null || $target !== null) { @@ -76,7 +76,7 @@ protected function listItems(InputInterface $input, \Reflector $reflector = null * * @return array */ - protected function getVariables($showAll) + protected function getVariables(bool $showAll): array { $scopeVars = $this->context->getAll(); \uksort($scopeVars, function ($a, $b) { @@ -117,7 +117,7 @@ protected function getVariables($showAll) * * @return array */ - protected function prepareVariables(array $variables) + protected function prepareVariables(array $variables): array { // My kingdom for a generator. $ret = []; diff --git a/api/vendor/psy/psysh/src/Command/ParseCommand.php b/api/vendor/psy/psysh/src/Command/ParseCommand.php index 2df2b9aa6..230612737 100644 --- a/api/vendor/psy/psysh/src/Command/ParseCommand.php +++ b/api/vendor/psy/psysh/src/Command/ParseCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,7 +12,6 @@ namespace Psy\Command; use PhpParser\Node; -use PhpParser\Parser; use Psy\Context; use Psy\ContextAware; use Psy\Input\CodeArgument; @@ -37,16 +36,14 @@ class ParseCommand extends Command implements ContextAware, PresenterAware protected $context; private $presenter; - private $parserFactory; - private $parsers; + private $parser; /** * {@inheritdoc} */ public function __construct($name = null) { - $this->parserFactory = new ParserFactory(); - $this->parsers = []; + $this->parser = (new ParserFactory())->createParser(); parent::__construct($name); } @@ -90,23 +87,12 @@ public function setPresenter(Presenter $presenter) */ protected function configure() { - $definition = [ - new CodeArgument('code', CodeArgument::REQUIRED, 'PHP code to parse.'), - new InputOption('depth', '', InputOption::VALUE_REQUIRED, 'Depth to parse.', 10), - ]; - - if ($this->parserFactory->hasKindsSupport()) { - $msg = 'One of PhpParser\\ParserFactory constants: ' - .\implode(', ', ParserFactory::getPossibleKinds()) - ." (default is based on current interpreter's version)."; - $defaultKind = $this->parserFactory->getDefaultKind(); - - $definition[] = new InputOption('kind', '', InputOption::VALUE_REQUIRED, $msg, $defaultKind); - } - $this ->setName('parse') - ->setDefinition($definition) + ->setDefinition([ + new CodeArgument('code', CodeArgument::REQUIRED, 'PHP code to parse.'), + new InputOption('depth', '', InputOption::VALUE_REQUIRED, 'Depth to parse.', 10), + ]) ->setDescription('Parse PHP code and show the abstract syntax tree.') ->setHelp( <<<'HELP' @@ -125,58 +111,16 @@ protected function configure() /** * {@inheritdoc} */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $code = $input->getArgument('code'); - if (\strpos($code, 'parserFactory->hasKindsSupport() ? $input->getOption('kind') : null; $depth = $input->getOption('depth'); - $nodes = $this->parse($this->getParser($parserKind), $code); + + $nodes = $this->parser->parse($code); $output->page($this->presenter->present($nodes, $depth)); $this->context->setReturnValue($nodes); return 0; } - - /** - * Lex and parse a string of code into statements. - * - * @param Parser $parser - * @param string $code - * - * @return array Statements - */ - private function parse(Parser $parser, $code) - { - try { - return $parser->parse($code); - } catch (\PhpParser\Error $e) { - if (\strpos($e->getMessage(), 'unexpected EOF') === false) { - throw $e; - } - - // If we got an unexpected EOF, let's try it again with a semicolon. - return $parser->parse($code.';'); - } - } - - /** - * Get (or create) the Parser instance. - * - * @param string|null $kind One of Psy\ParserFactory constants (only for PHP parser 2.0 and above) - * - * @return Parser - */ - private function getParser($kind = null) - { - if (!\array_key_exists($kind, $this->parsers)) { - $this->parsers[$kind] = $this->parserFactory->createParser($kind); - } - - return $this->parsers[$kind]; - } } diff --git a/api/vendor/psy/psysh/src/Command/PsyVersionCommand.php b/api/vendor/psy/psysh/src/Command/PsyVersionCommand.php index 1355841f1..959a9a786 100644 --- a/api/vendor/psy/psysh/src/Command/PsyVersionCommand.php +++ b/api/vendor/psy/psysh/src/Command/PsyVersionCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -34,7 +34,7 @@ protected function configure() /** * {@inheritdoc} */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln($this->getApplication()->getVersion()); diff --git a/api/vendor/psy/psysh/src/Command/ReflectingCommand.php b/api/vendor/psy/psysh/src/Command/ReflectingCommand.php index 47b779e21..55f919bb5 100644 --- a/api/vendor/psy/psysh/src/Command/ReflectingCommand.php +++ b/api/vendor/psy/psysh/src/Command/ReflectingCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -11,14 +11,16 @@ namespace Psy\Command; +use PhpParser\NodeTraverser; +use PhpParser\PrettyPrinter\Standard as Printer; use Psy\CodeCleaner\NoReturnValue; use Psy\Context; use Psy\ContextAware; use Psy\Exception\ErrorException; use Psy\Exception\RuntimeException; use Psy\Exception\UnexpectedTargetException; -use Psy\Reflection\ReflectionClassConstant; -use Psy\Reflection\ReflectionConstant_; +use Psy\Reflection\ReflectionConstant; +use Psy\Sudo\SudoVisitor; use Psy\Util\Mirror; /** @@ -38,6 +40,26 @@ abstract class ReflectingCommand extends Command implements ContextAware */ protected $context; + private $parser; + private $traverser; + private $printer; + + /** + * {@inheritdoc} + */ + public function __construct($name = null) + { + $this->parser = new CodeArgumentParser(); + + // @todo Pass visitor directly to once we drop support for PHP-Parser 4.x + $this->traverser = new NodeTraverser(); + $this->traverser->addVisitor(new SudoVisitor()); + + $this->printer = new Printer(); + + parent::__construct($name); + } + /** * ContextAware interface. * @@ -57,7 +79,7 @@ public function setContext(Context $context) * * @return array (class or instance name, member name, kind) */ - protected function getTarget($valueName) + protected function getTarget(string $valueName): array { $valueName = \trim($valueName); $matches = []; @@ -92,10 +114,8 @@ protected function getTarget($valueName) * * @param string $name * @param bool $includeFunctions (default: false) - * - * @return string */ - protected function resolveName($name, $includeFunctions = false) + protected function resolveName(string $name, bool $includeFunctions = false): string { $shell = $this->getApplication(); @@ -140,10 +160,10 @@ protected function resolveName($name, $includeFunctions = false) /** * Check whether a given name could be a class name. */ - protected function couldBeClassName($name) + protected function couldBeClassName(string $name): bool { // Regex based on https://www.php.net/manual/en/language.oop5.basic.php#language.oop5.basic.class - return \preg_match('/^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*(\\\\[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)*$/', $name); + return \preg_match('/^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*(\\\\[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)*$/', $name) === 1; } /** @@ -153,7 +173,7 @@ protected function couldBeClassName($name) * * @return array (value, Reflector) */ - protected function getTargetAndReflector($valueName) + protected function getTargetAndReflector(string $valueName): array { list($value, $member, $kind) = $this->getTarget($valueName); @@ -169,11 +189,14 @@ protected function getTargetAndReflector($valueName) * * @return mixed Variable value */ - protected function resolveCode($code) + protected function resolveCode(string $code) { try { - $value = $this->getApplication()->execute($code, true); - } catch (\Exception $e) { + // Add an implicit `sudo` to target resolution. + $nodes = $this->traverser->traverse($this->parser->parse($code)); + $sudoCode = $this->printer->prettyPrint($nodes); + $value = $this->getApplication()->execute($sudoCode, true); + } catch (\Throwable $e) { // Swallow all exceptions? } @@ -193,7 +216,7 @@ protected function resolveCode($code) * * @return object Variable instance */ - private function resolveObject($code) + private function resolveObject(string $code) { $value = $this->resolveCode($code); @@ -204,20 +227,6 @@ private function resolveObject($code) return $value; } - /** - * @deprecated Use `resolveCode` instead - * - * @param string $name - * - * @return mixed Variable instance - */ - protected function resolveInstance($name) - { - @\trigger_error('`resolveInstance` is deprecated; use `resolveCode` instead.', \E_USER_DEPRECATED); - - return $this->resolveCode($name); - } - /** * Get a variable from the current shell scope. * @@ -225,7 +234,7 @@ protected function resolveInstance($name) * * @return mixed */ - protected function getScopeVariable($name) + protected function getScopeVariable(string $name) { return $this->context->get($name); } @@ -235,7 +244,7 @@ protected function getScopeVariable($name) * * @return array */ - protected function getScopeVariables() + protected function getScopeVariables(): array { return $this->context->getAll(); } @@ -291,7 +300,6 @@ protected function setCommandScopeVariables(\Reflector $reflector) case \ReflectionProperty::class: case \ReflectionClassConstant::class: - case ReflectionClassConstant::class: $classReflector = $reflector->getDeclaringClass(); $vars['__class'] = $classReflector->name; if ($classReflector->inNamespace()) { @@ -304,7 +312,7 @@ protected function setCommandScopeVariables(\Reflector $reflector) } break; - case ReflectionConstant_::class: + case ReflectionConstant::class: if ($reflector->inNamespace()) { $vars['__namespace'] = $reflector->getNamespaceName(); } diff --git a/api/vendor/psy/psysh/src/Command/ShowCommand.php b/api/vendor/psy/psysh/src/Command/ShowCommand.php index 564b3f710..4d721d72b 100644 --- a/api/vendor/psy/psysh/src/Command/ShowCommand.php +++ b/api/vendor/psy/psysh/src/Command/ShowCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -29,14 +29,6 @@ class ShowCommand extends ReflectingCommand private $lastException; private $lastExceptionIndex; - /** - * @param string|null $colorMode (deprecated and ignored) - */ - public function __construct($colorMode = null) - { - parent::__construct(); - } - /** * {@inheritdoc} */ @@ -69,8 +61,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { // n.b. As far as I can tell, InputInterface doesn't want to tell me // whether an option with an optional value was actually passed. If you @@ -122,7 +116,9 @@ private function writeCodeContext(InputInterface $input, OutputInterface $output ]); } - return $output->page(CodeFormatter::formatCode($code)); + $output->page(CodeFormatter::formatCode($code)); + + return; } else { throw $e; } @@ -193,7 +189,7 @@ private function writeTraceLine(OutputInterface $output, array $trace, $index) )); } - private function replaceCwd($file) + private function replaceCwd(string $file): string { if ($cwd = \getcwd()) { $cwd = \rtrim($cwd, \DIRECTORY_SEPARATOR).\DIRECTORY_SEPARATOR; @@ -252,7 +248,7 @@ private function setCommandScopeVariablesFromContext(array $context) if ($namespace = $refl->getNamespaceName()) { $vars['__namespace'] = $namespace; } - } catch (\Exception $e) { + } catch (\Throwable $e) { // oh well } } elseif (isset($context['function'])) { @@ -263,7 +259,7 @@ private function setCommandScopeVariablesFromContext(array $context) if ($namespace = $refl->getNamespaceName()) { $vars['__namespace'] = $namespace; } - } catch (\Exception $e) { + } catch (\Throwable $e) { // oh well } } @@ -288,7 +284,7 @@ private function setCommandScopeVariablesFromContext(array $context) $this->context->setCommandScopeVariables($vars); } - private function extractEvalFileAndLine($file) + private function extractEvalFileAndLine(string $file) { if (\preg_match('/(.*)\\((\\d+)\\) : eval\\(\\)\'d code$/', $file, $matches)) { return [$matches[1], $matches[2]]; diff --git a/api/vendor/psy/psysh/src/Command/SudoCommand.php b/api/vendor/psy/psysh/src/Command/SudoCommand.php index c55f1e4b1..7a29e8b5f 100644 --- a/api/vendor/psy/psysh/src/Command/SudoCommand.php +++ b/api/vendor/psy/psysh/src/Command/SudoCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,7 +14,6 @@ use PhpParser\NodeTraverser; use PhpParser\PrettyPrinter\Standard as Printer; use Psy\Input\CodeArgument; -use Psy\ParserFactory; use Psy\Readline\Readline; use Psy\Sudo\SudoVisitor; use Symfony\Component\Console\Input\InputInterface; @@ -35,9 +34,9 @@ class SudoCommand extends Command */ public function __construct($name = null) { - $parserFactory = new ParserFactory(); - $this->parser = $parserFactory->createParser(); + $this->parser = new CodeArgumentParser(); + // @todo Pass visitor directly to once we drop support for PHP-Parser 4.x $this->traverser = new NodeTraverser(); $this->traverser->addVisitor(new SudoVisitor()); @@ -95,8 +94,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $code = $input->getArgument('code'); @@ -109,11 +110,7 @@ protected function execute(InputInterface $input, OutputInterface $output) $code = $history[\count($history) - 2]; } - if (\strpos($code, 'traverser->traverse($this->parse($code)); + $nodes = $this->traverser->traverse($this->parser->parse($code)); $sudoCode = $this->printer->prettyPrint($nodes); $shell = $this->getApplication(); @@ -121,25 +118,4 @@ protected function execute(InputInterface $input, OutputInterface $output) return 0; } - - /** - * Lex and parse a string of code into statements. - * - * @param string $code - * - * @return array Statements - */ - private function parse($code) - { - try { - return $this->parser->parse($code); - } catch (\PhpParser\Error $e) { - if (\strpos($e->getMessage(), 'unexpected EOF') === false) { - throw $e; - } - - // If we got an unexpected EOF, let's try it again with a semicolon. - return $this->parser->parse($code.';'); - } - } } diff --git a/api/vendor/psy/psysh/src/Command/ThrowUpCommand.php b/api/vendor/psy/psysh/src/Command/ThrowUpCommand.php index d2a12b91c..f6ba73d61 100644 --- a/api/vendor/psy/psysh/src/Command/ThrowUpCommand.php +++ b/api/vendor/psy/psysh/src/Command/ThrowUpCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,24 +13,21 @@ use PhpParser\Node\Arg; use PhpParser\Node\Expr\New_; -use PhpParser\Node\Expr\StaticCall; +use PhpParser\Node\Expr\Throw_; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Name\FullyQualified as FullyQualifiedName; use PhpParser\Node\Scalar\String_; -use PhpParser\Node\Stmt\Throw_; +use PhpParser\Node\Stmt\Expression; use PhpParser\PrettyPrinter\Standard as Printer; -use Psy\Context; -use Psy\ContextAware; use Psy\Exception\ThrowUpException; use Psy\Input\CodeArgument; -use Psy\ParserFactory; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; /** * Throw an exception or error out of the Psy Shell. */ -class ThrowUpCommand extends Command implements ContextAware +class ThrowUpCommand extends Command { private $parser; private $printer; @@ -40,24 +37,12 @@ class ThrowUpCommand extends Command implements ContextAware */ public function __construct($name = null) { - $parserFactory = new ParserFactory(); - - $this->parser = $parserFactory->createParser(); + $this->parser = new CodeArgumentParser(); $this->printer = new Printer(); parent::__construct($name); } - /** - * @deprecated throwUp no longer needs to be ContextAware - * - * @param Context $context - */ - public function setContext(Context $context) - { - // Do nothing - } - /** * {@inheritdoc} */ @@ -87,12 +72,14 @@ protected function configure() /** * {@inheritdoc} * + * @return int 0 if everything went fine, or an exit code + * * @throws \InvalidArgumentException if there is no exception to throw */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $args = $this->prepareArgs($input->getArgument('exception')); - $throwStmt = new Throw_(new StaticCall(new FullyQualifiedName(ThrowUpException::class), 'fromThrowable', $args)); + $throwStmt = new Expression(new Throw_(new New_(new FullyQualifiedName(ThrowUpException::class), $args))); $throwCode = $this->printer->prettyPrint([$throwStmt]); $shell = $this->getApplication(); @@ -112,26 +99,20 @@ protected function execute(InputInterface $input, OutputInterface $output) * * @return Arg[] */ - private function prepareArgs($code = null) + private function prepareArgs(?string $code = null): array { if (!$code) { // Default to last exception if nothing else was supplied return [new Arg(new Variable('_e'))]; } - if (\strpos($code, 'parse($code); + $nodes = $this->parser->parse($code); if (\count($nodes) !== 1) { throw new \InvalidArgumentException('No idea how to throw this'); } $node = $nodes[0]; - - // Make this work for PHP Parser v3.x - $expr = isset($node->expr) ? $node->expr : $node; + $expr = $node->expr; $args = [new Arg($expr, false, false, $node->getAttributes())]; @@ -142,25 +123,4 @@ private function prepareArgs($code = null) return $args; } - - /** - * Lex and parse a string of code into statements. - * - * @param string $code - * - * @return array Statements - */ - private function parse($code) - { - try { - return $this->parser->parse($code); - } catch (\PhpParser\Error $e) { - if (\strpos($e->getMessage(), 'unexpected EOF') === false) { - throw $e; - } - - // If we got an unexpected EOF, let's try it again with a semicolon. - return $this->parser->parse($code.';'); - } - } } diff --git a/api/vendor/psy/psysh/src/Command/TimeitCommand.php b/api/vendor/psy/psysh/src/Command/TimeitCommand.php index 3a3f29e7c..3b3cf50d7 100644 --- a/api/vendor/psy/psysh/src/Command/TimeitCommand.php +++ b/api/vendor/psy/psysh/src/Command/TimeitCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -15,7 +15,6 @@ use PhpParser\PrettyPrinter\Standard as Printer; use Psy\Command\TimeitCommand\TimeitVisitor; use Psy\Input\CodeArgument; -use Psy\ParserFactory; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; @@ -28,6 +27,7 @@ class TimeitCommand extends Command const RESULT_MSG = 'Command took %.6f seconds to complete.'; const AVG_RESULT_MSG = 'Command took %.6f seconds on average (%.6f median; %.6f total) to complete.'; + // All times stored as nanoseconds! private static $start = null; private static $times = []; @@ -40,9 +40,9 @@ class TimeitCommand extends Command */ public function __construct($name = null) { - $parserFactory = new ParserFactory(); - $this->parser = $parserFactory->createParser(); + $this->parser = new CodeArgumentParser(); + // @todo Pass visitor directly to once we drop support for PHP-Parser 4.x $this->traverser = new NodeTraverser(); $this->traverser->addVisitor(new TimeitVisitor()); @@ -76,21 +76,23 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $code = $input->getArgument('code'); - $num = $input->getOption('num') ?: 1; + $num = (int) ($input->getOption('num') ?: 1); $shell = $this->getApplication(); $instrumentedCode = $this->instrumentCode($code); self::$times = []; - for ($i = 0; $i < $num; $i++) { + do { $_ = $shell->execute($instrumentedCode); $this->ensureEndMarked(); - } + } while (\count(self::$times) < $num); $shell->writeReturnValue($_); @@ -98,13 +100,13 @@ protected function execute(InputInterface $input, OutputInterface $output) self::$times = []; if ($num === 1) { - $output->writeln(\sprintf(self::RESULT_MSG, $times[0])); + $output->writeln(\sprintf(self::RESULT_MSG, $times[0] / 1e+9)); } else { $total = \array_sum($times); \rsort($times); $median = $times[\round($num / 2)]; - $output->writeln(\sprintf(self::AVG_RESULT_MSG, $total / $num, $median, $total)); + $output->writeln(\sprintf(self::AVG_RESULT_MSG, ($total / $num) / 1e+9, $median / 1e+9, $total / 1e+9)); } return 0; @@ -119,7 +121,7 @@ protected function execute(InputInterface $input, OutputInterface $output) */ public static function markStart() { - self::$start = \microtime(true); + self::$start = \hrtime(true); } /** @@ -138,7 +140,7 @@ public static function markStart() */ public static function markEnd($ret = null) { - self::$times[] = \microtime(true) - self::$start; + self::$times[] = \hrtime(true) - self::$start; self::$start = null; return $ret; @@ -162,36 +164,9 @@ private function ensureEndMarked() * * This inserts `markStart` and `markEnd` calls to ensure that (reasonably) * accurate times are recorded for just the code being executed. - * - * @param string $code - * - * @return string - */ - private function instrumentCode($code) - { - return $this->printer->prettyPrint($this->traverser->traverse($this->parse($code))); - } - - /** - * Lex and parse a string of code into statements. - * - * @param string $code - * - * @return array Statements */ - private function parse($code) + private function instrumentCode(string $code): string { - $code = 'parser->parse($code); - } catch (\PhpParser\Error $e) { - if (\strpos($e->getMessage(), 'unexpected EOF') === false) { - throw $e; - } - - // If we got an unexpected EOF, let's try it again with a semicolon. - return $this->parser->parse($code.';'); - } + return $this->printer->prettyPrint($this->traverser->traverse($this->parser->parse($code))); } } diff --git a/api/vendor/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php b/api/vendor/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php index 8deb7335a..8f2bde6cb 100644 --- a/api/vendor/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php +++ b/api/vendor/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -35,6 +35,8 @@ class TimeitVisitor extends NodeVisitorAbstract /** * {@inheritdoc} + * + * @return Node[]|null Array of nodes */ public function beforeTraverse(array $nodes) { @@ -43,6 +45,8 @@ public function beforeTraverse(array $nodes) /** * {@inheritdoc} + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -62,6 +66,8 @@ public function enterNode(Node $node) /** * {@inheritdoc} + * + * @return int|Node|Node[]|null Replacement node (or special return value) */ public function leaveNode(Node $node) { @@ -72,11 +78,13 @@ public function leaveNode(Node $node) /** * {@inheritdoc} + * + * @return Node[]|null Array of nodes */ public function afterTraverse(array $nodes) { // prepend a `markStart` call - \array_unshift($nodes, $this->maybeExpression($this->getStartCall())); + \array_unshift($nodes, new Expression($this->getStartCall(), [])); // append a `markEnd` call (wrapping the final node, if it's an expression) $last = $nodes[\count($nodes) - 1]; @@ -89,7 +97,7 @@ public function afterTraverse(array $nodes) } elseif ($last instanceof Return_) { // nothing to do here, we're already ending with a return call } else { - $nodes[] = $this->maybeExpression($this->getEndCall()); + $nodes[] = new Expression($this->getEndCall(), []); } return $nodes; @@ -100,7 +108,7 @@ public function afterTraverse(array $nodes) * * @return \PhpParser\Node\Expr\StaticCall */ - private function getStartCall() + private function getStartCall(): StaticCall { return new StaticCall(new FullyQualifiedName(TimeitCommand::class), 'markStart'); } @@ -111,10 +119,8 @@ private function getStartCall() * Optionally pass in a return value. * * @param Expr|null $arg - * - * @return \PhpParser\Node\Expr\StaticCall */ - private function getEndCall(Expr $arg = null) + private function getEndCall(?Expr $arg = null): StaticCall { if ($arg === null) { $arg = NoReturnValue::create(); @@ -122,19 +128,4 @@ private function getEndCall(Expr $arg = null) return new StaticCall(new FullyQualifiedName(TimeitCommand::class), 'markEnd', [new Arg($arg)]); } - - /** - * Compatibility shim for PHP Parser 3.x. - * - * Wrap $expr in a PhpParser\Node\Stmt\Expression if the class exists. - * - * @param \PhpParser\Node $expr - * @param array $attrs - * - * @return \PhpParser\Node\Expr|\PhpParser\Node\Stmt\Expression - */ - private function maybeExpression($expr, $attrs = []) - { - return \class_exists(Expression::class) ? new Expression($expr, $attrs) : $expr; - } } diff --git a/api/vendor/psy/psysh/src/Command/TraceCommand.php b/api/vendor/psy/psysh/src/Command/TraceCommand.php index 14362b41d..04a2beb0c 100644 --- a/api/vendor/psy/psysh/src/Command/TraceCommand.php +++ b/api/vendor/psy/psysh/src/Command/TraceCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -68,8 +68,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $this->filter->bind($input); $trace = $this->getBacktrace(new \Exception(), $input->getOption('num'), $input->getOption('include-psy')); @@ -79,18 +81,18 @@ protected function execute(InputInterface $input, OutputInterface $output) } /** - * Get a backtrace for an exception. + * Get a backtrace for an exception or error. * * Optionally limit the number of rows to include with $count, and exclude * Psy from the trace. * - * @param \Exception $e The exception with a backtrace + * @param \Throwable $e The exception or error with a backtrace * @param int $count (default: PHP_INT_MAX) * @param bool $includePsy (default: true) * * @return array Formatted stacktrace lines */ - protected function getBacktrace(\Exception $e, $count = null, $includePsy = true) + protected function getBacktrace(\Throwable $e, ?int $count = null, bool $includePsy = true): array { return TraceFormatter::formatTrace($e, $this->filter, $count, $includePsy); } diff --git a/api/vendor/psy/psysh/src/Command/WhereamiCommand.php b/api/vendor/psy/psysh/src/Command/WhereamiCommand.php index 913a9ef2a..b7d569bea 100644 --- a/api/vendor/psy/psysh/src/Command/WhereamiCommand.php +++ b/api/vendor/psy/psysh/src/Command/WhereamiCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -25,10 +25,7 @@ class WhereamiCommand extends Command { private $backtrace; - /** - * @param string|null $colorMode (deprecated and ignored) - */ - public function __construct($colorMode = null) + public function __construct() { $this->backtrace = \debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS); @@ -67,7 +64,7 @@ protected function configure() * * @return array */ - protected function trace() + protected function trace(): array { foreach (\array_reverse($this->backtrace) as $stackFrame) { if ($this->isDebugCall($stackFrame)) { @@ -78,7 +75,7 @@ protected function trace() return \end($this->backtrace); } - private static function isDebugCall(array $stackFrame) + private static function isDebugCall(array $stackFrame): bool { $class = isset($stackFrame['class']) ? $stackFrame['class'] : null; $function = isset($stackFrame['function']) ? $stackFrame['function'] : null; @@ -92,7 +89,7 @@ private static function isDebugCall(array $stackFrame) * * @return array */ - protected function fileInfo() + protected function fileInfo(): array { $stackFrame = $this->trace(); if (\preg_match('/eval\(/', $stackFrame['file'])) { @@ -109,8 +106,10 @@ protected function fileInfo() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $info = $this->fileInfo(); $num = $input->getOption('num'); @@ -142,10 +141,8 @@ protected function execute(InputInterface $input, OutputInterface $output) * Replace the given directory from the start of a filepath. * * @param string $file - * - * @return string */ - private function replaceCwd($file) + private function replaceCwd(string $file): string { $cwd = \getcwd(); if ($cwd === false) { diff --git a/api/vendor/psy/psysh/src/Command/WtfCommand.php b/api/vendor/psy/psysh/src/Command/WtfCommand.php index 77c174ec2..6e2472c00 100644 --- a/api/vendor/psy/psysh/src/Command/WtfCommand.php +++ b/api/vendor/psy/psysh/src/Command/WtfCommand.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -81,8 +81,10 @@ protected function configure() /** * {@inheritdoc} + * + * @return int 0 if everything went fine, or an exit code */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $this->filter->bind($input); diff --git a/api/vendor/psy/psysh/src/ConfigPaths.php b/api/vendor/psy/psysh/src/ConfigPaths.php index 4b40879ea..fe3f2d77b 100644 --- a/api/vendor/psy/psysh/src/ConfigPaths.php +++ b/api/vendor/psy/psysh/src/ConfigPaths.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -31,10 +31,11 @@ class ConfigPaths * @param string[] $overrides Directory overrides * @param EnvInterface $env */ - public function __construct($overrides = [], $env = null) + public function __construct(array $overrides = [], ?EnvInterface $env = null) { $this->overrideDirs($overrides); - $this->env = $env ?: new SuperglobalsEnv(); + + $this->env = $env ?: (\PHP_SAPI === 'cli-server' ? new SystemEnv() : new SuperglobalsEnv()); } /** @@ -45,7 +46,7 @@ public function __construct($overrides = [], $env = null) * * @param string[] $overrides Directory overrides */ - public function overrideDirs($overrides) + public function overrideDirs(array $overrides) { if (\array_key_exists('configDir', $overrides)) { $this->configDir = $overrides['configDir'] ?: null; @@ -108,7 +109,7 @@ private function homeConfigDir() * * @return string[] */ - public function configDirs() + public function configDirs(): array { if ($this->configDir !== null) { return [$this->configDir]; @@ -119,32 +120,6 @@ public function configDirs() return $this->allDirNames(\array_merge([$this->homeConfigDir()], $configDirs)); } - /** - * @deprecated - */ - public static function getConfigDirs() - { - return (new self())->configDirs(); - } - - /** - * Get potential home config directory paths. - * - * Returns `~/.psysh`, `%APPDATA%/PsySH` (when on Windows), and the - * XDG Base Directory home config directory: - * - * http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html - * - * @deprecated - * - * @return string[] - */ - public static function getHomeConfigDirs() - { - // Not quite the same, but this is deprecated anyway /shrug - return self::getConfigDirs(); - } - /** * Get the current home config directory. * @@ -154,10 +129,8 @@ public static function getHomeConfigDirs() * everywhere else). * * @see self::homeConfigDir - * - * @return string */ - public function currentConfigDir() + public function currentConfigDir(): string { if ($this->configDir !== null) { return $this->configDir; @@ -174,14 +147,6 @@ public function currentConfigDir() return $configDirs[0]; } - /** - * @deprecated - */ - public static function getCurrentConfigDir() - { - return (new self())->currentConfigDir(); - } - /** * Find real config files in config directories. * @@ -189,19 +154,11 @@ public static function getCurrentConfigDir() * * @return string[] */ - public function configFiles(array $names) + public function configFiles(array $names): array { return $this->allRealFiles($this->configDirs(), $names); } - /** - * @deprecated - */ - public static function getConfigFiles(array $names, $configDir = null) - { - return (new self(['configDir' => $configDir]))->configFiles($names); - } - /** * Get potential data directory paths. * @@ -214,7 +171,7 @@ public static function getConfigFiles(array $names, $configDir = null) * * @return string[] */ - public function dataDirs() + public function dataDirs(): array { if ($this->dataDir !== null) { return [$this->dataDir]; @@ -226,14 +183,6 @@ public function dataDirs() return $this->allDirNames(\array_merge([$homeDataDir], $dataDirs)); } - /** - * @deprecated - */ - public static function getDataDirs() - { - return (new self())->dataDirs(); - } - /** * Find real data files in config directories. * @@ -241,27 +190,17 @@ public static function getDataDirs() * * @return string[] */ - public function dataFiles(array $names) + public function dataFiles(array $names): array { return $this->allRealFiles($this->dataDirs(), $names); } - /** - * @deprecated - */ - public static function getDataFiles(array $names, $dataDir = null) - { - return (new self(['dataDir' => $dataDir]))->dataFiles($names); - } - /** * Get a runtime directory. * * Defaults to `/psysh` inside the system's temp dir. - * - * @return string */ - public function runtimeDir() + public function runtimeDir(): string { if ($this->runtimeDir !== null) { return $this->runtimeDir; @@ -274,11 +213,37 @@ public function runtimeDir() } /** - * @deprecated + * Get a list of directories in PATH. + * + * If $PATH is unset/empty it defaults to '/usr/sbin:/usr/bin:/sbin:/bin'. + * + * @return string[] + */ + public function pathDirs(): array + { + return $this->getEnvArray('PATH') ?: ['/usr/sbin', '/usr/bin', '/sbin', '/bin']; + } + + /** + * Locate a command (an executable) in $PATH. + * + * Behaves like 'command -v COMMAND' or 'which COMMAND'. + * If $PATH is unset/empty it defaults to '/usr/sbin:/usr/bin:/sbin:/bin'. + * + * @param string $command the executable to locate + * + * @return string */ - public static function getRuntimeDir() + public function which($command) { - return (new self())->runtimeDir(); + foreach ($this->pathDirs() as $path) { + $fullpath = $path.\DIRECTORY_SEPARATOR.$command; + if (@\is_file($fullpath) && @\is_executable($fullpath)) { + return $fullpath; + } + } + + return null; } /** @@ -292,7 +257,7 @@ public static function getRuntimeDir() * * @return string[] */ - private function allDirNames(array $baseDirs) + private function allDirNames(array $baseDirs): array { $dirs = \array_map(function ($dir) { return \strtr($dir, '\\', '/').'/psysh'; @@ -327,7 +292,7 @@ private function allDirNames(array $baseDirs) * * @return string[] */ - private function allRealFiles(array $dirNames, array $fileNames) + private function allRealFiles(array $dirNames, array $fileNames): array { $files = []; foreach ($dirNames as $dir) { @@ -351,7 +316,7 @@ private function allRealFiles(array $dirNames, array $fileNames) * * @return bool False if directory exists but is not writeable, or cannot be created */ - public static function ensureDir($dir) + public static function ensureDir(string $dir): bool { if (!\is_dir($dir)) { // Just try making it and see if it works @@ -376,7 +341,7 @@ public static function ensureDir($dir) * * @return string|false Full path to $file, or false if file is not writable */ - public static function touchFileWithMkdir($file) + public static function touchFileWithMkdir(string $file) { if (\file_exists($file)) { if (\is_writable($file)) { @@ -405,7 +370,7 @@ private function getEnv($key) private function getEnvArray($key) { if ($value = $this->getEnv($key)) { - return \explode(':', $value); + return \explode(\PATH_SEPARATOR, $value); } return null; diff --git a/api/vendor/psy/psysh/src/Configuration.php b/api/vendor/psy/psysh/src/Configuration.php index fbd28e6a1..3bb70640e 100644 --- a/api/vendor/psy/psysh/src/Configuration.php +++ b/api/vendor/psy/psysh/src/Configuration.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -16,6 +16,7 @@ use Psy\ExecutionLoop\ProcessForker; use Psy\Output\OutputPager; use Psy\Output\ShellOutput; +use Psy\Output\Theme; use Psy\TabCompletion\AutoCompleter; use Psy\VarDumper\Presenter; use Psy\VersionUpdater\Checker; @@ -56,6 +57,7 @@ class Configuration 'errorLoggingLevel', 'forceArrayIndexes', 'formatterStyles', + 'historyFile', 'historySize', 'interactiveMode', 'manualDbFile', @@ -65,6 +67,8 @@ class Configuration 'requireSemicolons', 'runtimeDir', 'startupMessage', + 'strictTypes', + 'theme', 'updateCheck', 'useBracketedPaste', 'usePcntl', @@ -96,6 +100,7 @@ class Configuration private $pipedOutput; private $rawOutput = false; private $requireSemicolons = false; + private $strictTypes = false; private $useUnicode; private $useTabCompletion; private $newMatchers = []; @@ -106,12 +111,16 @@ class Configuration private $updateCheck; private $startupMessage; private $forceArrayIndexes = false; + /** @deprecated */ private $formatterStyles = []; private $verbosity = self::VERBOSITY_NORMAL; private $yolo = false; + /** @var Theme */ + private $theme; // services private $readline; + /** @var ShellOutput */ private $output; private $shell; private $cleaner; @@ -120,6 +129,7 @@ class Configuration private $presenter; private $autoCompleter; private $checker; + /** @deprecated */ private $prompt; private $configPaths; @@ -139,6 +149,8 @@ public function __construct(array $config = []) $this->configFile = $config['configFile']; } elseif (isset($_SERVER['PSYSH_CONFIG']) && $_SERVER['PSYSH_CONFIG']) { $this->configFile = $_SERVER['PSYSH_CONFIG']; + } elseif (\PHP_SAPI === 'cli-server' && ($configFile = \getenv('PSYSH_CONFIG'))) { + $this->configFile = $configFile; } // legacy baseDir option @@ -170,10 +182,8 @@ public function __construct(array $config = []) * @throws \InvalidArgumentException * * @param InputInterface $input - * - * @return self */ - public static function fromInput(InputInterface $input) + public static function fromInput(InputInterface $input): self { $config = new self(['configFile' => self::getConfigFileFromInput($input)]); @@ -196,6 +206,11 @@ public static function fromInput(InputInterface $input) $config->setInteractiveMode(self::INTERACTIVE_MODE_DISABLED); } + // Handle --compact + if (self::getOptionFromInput($input, ['compact'])) { + $config->setTheme('compact'); + } + // Handle --raw-output // @todo support raw output with interactive input? if (!$config->getInputInteractive()) { @@ -236,7 +251,7 @@ private static function getConfigFileFromInput(InputInterface $input) * * @return bool true if the option (or an alias) is present */ - private static function getOptionFromInput(InputInterface $input, array $names, array $otherParams = []) + private static function getOptionFromInput(InputInterface $input, array $names, array $otherParams = []): bool { // Best case, input is properly bound and validated. foreach ($names as $name) { @@ -295,6 +310,11 @@ private static function getVerbosityFromInput(InputInterface $input) return self::VERBOSITY_VERY_VERBOSE; case '3': case 'vv': // `-vvv` + case 'vvv': + case 'vvvv': + case 'vvvvv': + case 'vvvvvv': + case 'vvvvvvv': return self::VERBOSITY_DEBUG; default: // implicitly normal, config file default wins return; @@ -331,7 +351,7 @@ private static function getVerbosityFromInput(InputInterface $input) * * @return InputOption[] */ - public static function getInputOptions() + public static function getInputOptions(): array { return [ new InputOption('config', 'c', InputOption::VALUE_REQUIRED, 'Use an alternate PsySH config file location.'), @@ -345,6 +365,7 @@ public static function getInputOptions() new InputOption('quiet', 'q', InputOption::VALUE_NONE, 'Shhhhhh.'), new InputOption('verbose', 'v|vv|vvv', InputOption::VALUE_OPTIONAL, 'Increase the verbosity of messages.', '0'), + new InputOption('compact', null, InputOption::VALUE_NONE, 'Run PsySH with compact output.'), new InputOption('interactive', 'i|a', InputOption::VALUE_NONE, 'Force PsySH to run in interactive mode.'), new InputOption('no-interactive', 'n', InputOption::VALUE_NONE, 'Run PsySH without interactive input. Requires input from stdin.'), // --interaction and --no-interaction aliases for compatibility with Symfony, Composer, etc @@ -352,6 +373,8 @@ public static function getInputOptions() new InputOption('no-interaction', null, InputOption::VALUE_NONE, 'Run PsySH without interactive input. Requires input from stdin.'), new InputOption('raw-output', 'r', InputOption::VALUE_NONE, 'Print var_export-style return values (for non-interactive input)'), + new InputOption('self-update', 'u', InputOption::VALUE_NONE, 'Update to the latest version'), + new InputOption('yolo', null, InputOption::VALUE_NONE, 'Run PsySH with minimal input validation. You probably don\'t want this.'), ]; } @@ -399,7 +422,7 @@ public function init() * * ~/.config/psysh/config.php * - * @return string + * @return string|null */ public function getConfigFile() { @@ -425,7 +448,7 @@ public function getConfigFile() * Searches for a project specific config file `.psysh.php` in the current * working directory. * - * @return string + * @return string|null */ public function getLocalConfigFile() { @@ -485,7 +508,7 @@ public function loadConfig(array $options) * * @param string $file */ - public function loadConfigFile($file) + public function loadConfigFile(string $file) { if (!\is_file($file)) { throw new \InvalidArgumentException(\sprintf('Invalid configuration file specified, %s does not exist', $file)); @@ -522,9 +545,9 @@ public function setDefaultIncludes(array $includes = []) /** * Get files to be included by default at the start of each shell session. * - * @return array + * @return string[] */ - public function getDefaultIncludes() + public function getDefaultIncludes(): array { return $this->defaultIncludes ?: []; } @@ -534,7 +557,7 @@ public function getDefaultIncludes() * * @param string $dir */ - public function setConfigDir($dir) + public function setConfigDir(string $dir) { $this->configDir = (string) $dir; @@ -548,7 +571,7 @@ public function setConfigDir($dir) /** * Get the current configuration directory, if any is explicitly set. * - * @return string + * @return string|null */ public function getConfigDir() { @@ -560,7 +583,7 @@ public function getConfigDir() * * @param string $dir */ - public function setDataDir($dir) + public function setDataDir(string $dir) { $this->dataDir = (string) $dir; @@ -574,7 +597,7 @@ public function setDataDir($dir) /** * Get the current data directory, if any is explicitly set. * - * @return string + * @return string|null */ public function getDataDir() { @@ -586,7 +609,7 @@ public function getDataDir() * * @param string $dir */ - public function setRuntimeDir($dir) + public function setRuntimeDir(string $dir) { $this->runtimeDir = (string) $dir; @@ -603,9 +626,9 @@ public function setRuntimeDir($dir) * Defaults to `/psysh` inside the system's temp dir unless explicitly * overridden. * - * @return string + * @throws RuntimeException if no temporary directory is set and it is not possible to create one */ - public function getRuntimeDir() + public function getRuntimeDir(): string { $runtimeDir = $this->configPaths->runtimeDir(); @@ -623,7 +646,7 @@ public function getRuntimeDir() * * @param string $file */ - public function setHistoryFile($file) + public function setHistoryFile(string $file) { $this->historyFile = ConfigPaths::touchFileWithMkdir($file); } @@ -633,10 +656,8 @@ public function setHistoryFile($file) * * Defaults to `/history` inside the shell's base config dir unless * explicitly overridden. - * - * @return string */ - public function getHistoryFile() + public function getHistoryFile(): string { if (isset($this->historyFile)) { return $this->historyFile; @@ -664,7 +685,7 @@ public function getHistoryFile() * * @param int $value */ - public function setHistorySize($value) + public function setHistorySize(int $value) { $this->historySize = (int) $value; } @@ -684,7 +705,7 @@ public function getHistorySize() * * @param bool $value */ - public function setEraseDuplicates($value) + public function setEraseDuplicates(bool $value) { $this->eraseDuplicates = (bool) $value; } @@ -692,7 +713,7 @@ public function setEraseDuplicates($value) /** * Get whether readline erases old duplicate history entries. * - * @return bool + * @return bool|null */ public function getEraseDuplicates() { @@ -711,7 +732,7 @@ public function getEraseDuplicates() * * @return string Temporary file name */ - public function getTempFile($type, $pid) + public function getTempFile(string $type, int $pid): string { return \tempnam($this->getRuntimeDir(), $type.'_'.$pid.'_'); } @@ -726,7 +747,7 @@ public function getTempFile($type, $pid) * * @return string Pipe name */ - public function getPipe($type, $pid) + public function getPipe(string $type, int $pid): string { return \sprintf('%s/%s_%s', $this->getRuntimeDir(), $type, $pid); } @@ -736,7 +757,7 @@ public function getPipe($type, $pid) * * @return bool True if Readline is available */ - public function hasReadline() + public function hasReadline(): bool { return $this->hasReadline; } @@ -746,7 +767,7 @@ public function hasReadline() * * @param bool $useReadline */ - public function setUseReadline($useReadline) + public function setUseReadline(bool $useReadline) { $this->useReadline = (bool) $useReadline; } @@ -759,7 +780,7 @@ public function setUseReadline($useReadline) * * @return bool True if the current Shell should use Readline */ - public function useReadline() + public function useReadline(): bool { return isset($this->useReadline) ? ($this->hasReadline && $this->useReadline) : $this->hasReadline; } @@ -785,7 +806,7 @@ public function setReadline(Readline\Readline $readline) * * @return Readline\Readline */ - public function getReadline() + public function getReadline(): Readline\Readline { if (!isset($this->readline)) { $className = $this->getReadlineClass(); @@ -803,21 +824,21 @@ public function getReadline() * Get the appropriate Readline implementation class name. * * @see self::getReadline - * - * @return string */ - private function getReadlineClass() + private function getReadlineClass(): string { if ($this->useReadline()) { if (Readline\GNUReadline::isSupported()) { return Readline\GNUReadline::class; } elseif (Readline\Libedit::isSupported()) { return Readline\Libedit::class; - } elseif (Readline\HoaConsole::isSupported()) { - return Readline\HoaConsole::class; } } + if (Readline\Userland::isSupported()) { + return Readline\Userland::class; + } + return Readline\Transient::class; } @@ -828,7 +849,7 @@ private function getReadlineClass() * * @param bool $useBracketedPaste */ - public function setUseBracketedPaste($useBracketedPaste) + public function setUseBracketedPaste(bool $useBracketedPaste) { $this->useBracketedPaste = (bool) $useBracketedPaste; } @@ -848,15 +869,14 @@ public function setUseBracketedPaste($useBracketedPaste) * * @return bool True if the shell should use bracketed paste */ - public function useBracketedPaste() + public function useBracketedPaste(): bool { - // For now, only the GNU readline implementation supports bracketed paste. - $supported = ($this->getReadlineClass() === Readline\GNUReadline::class) && Readline\GNUReadline::supportsBracketedPaste(); + $readlineClass = $this->getReadlineClass(); - return $supported && $this->useBracketedPaste; + return $this->useBracketedPaste && $readlineClass::supportsBracketedPaste(); // @todo mebbe turn this on by default some day? - // return isset($this->useBracketedPaste) ? ($supported && $this->useBracketedPaste) : $supported; + // return $readlineClass::supportsBracketedPaste() && $this->useBracketedPaste !== false; } /** @@ -864,7 +884,7 @@ public function useBracketedPaste() * * @return bool True if Pcntl is available */ - public function hasPcntl() + public function hasPcntl(): bool { return $this->hasPcntl; } @@ -874,7 +894,7 @@ public function hasPcntl() * * @param bool $usePcntl */ - public function setUsePcntl($usePcntl) + public function setUsePcntl(bool $usePcntl) { $this->usePcntl = (bool) $usePcntl; } @@ -887,9 +907,19 @@ public function setUsePcntl($usePcntl) * * @return bool True if the current Shell should use Pcntl */ - public function usePcntl() + public function usePcntl(): bool { - return isset($this->usePcntl) ? ($this->hasPcntl && $this->usePcntl) : $this->hasPcntl; + if (!isset($this->usePcntl)) { + // Unless pcntl is explicitly *enabled*, don't use it while XDebug is debugging. + // See https://github.com/bobthecow/psysh/issues/742 + if (\function_exists('xdebug_is_debugger_active') && \xdebug_is_debugger_active()) { + return false; + } + + return $this->hasPcntl; + } + + return $this->hasPcntl && $this->usePcntl; } /** @@ -900,7 +930,7 @@ public function usePcntl() * * @return bool true if raw output is enabled */ - public function rawOutput() + public function rawOutput(): bool { return $this->rawOutput; } @@ -910,7 +940,7 @@ public function rawOutput() * * @param bool $rawOutput */ - public function setRawOutput($rawOutput) + public function setRawOutput(bool $rawOutput) { $this->rawOutput = (bool) $rawOutput; } @@ -922,7 +952,7 @@ public function setRawOutput($rawOutput) * * @param bool $requireSemicolons */ - public function setRequireSemicolons($requireSemicolons) + public function setRequireSemicolons(bool $requireSemicolons) { $this->requireSemicolons = (bool) $requireSemicolons; } @@ -933,14 +963,28 @@ public function setRequireSemicolons($requireSemicolons) * By default, PsySH will automatically insert semicolons at the end of * statements if they're missing. To strictly require semicolons, set * `requireSemicolons` to true. - * - * @return bool */ - public function requireSemicolons() + public function requireSemicolons(): bool { return $this->requireSemicolons; } + /** + * Enable or disable strict types enforcement. + */ + public function setStrictTypes($strictTypes) + { + $this->strictTypes = (bool) $strictTypes; + } + + /** + * Check whether to enforce strict types. + */ + public function strictTypes(): bool + { + return $this->strictTypes; + } + /** * Enable or disable Unicode in PsySH specific output. * @@ -949,7 +993,7 @@ public function requireSemicolons() * * @param bool $useUnicode */ - public function setUseUnicode($useUnicode) + public function setUseUnicode(bool $useUnicode) { $this->useUnicode = (bool) $useUnicode; } @@ -959,10 +1003,8 @@ public function setUseUnicode($useUnicode) * * Note that this does not disable Unicode output in general, it just makes * it so PsySH won't output any itself. - * - * @return bool */ - public function useUnicode() + public function useUnicode(): bool { if (isset($this->useUnicode)) { return $this->useUnicode; @@ -977,7 +1019,7 @@ public function useUnicode() * * @see self::errorLoggingLevel * - * @param bool $errorLoggingLevel + * @param int $errorLoggingLevel */ public function setErrorLoggingLevel($errorLoggingLevel) { @@ -995,10 +1037,8 @@ public function setErrorLoggingLevel($errorLoggingLevel) * level. * * http://php.net/manual/en/function.error-reporting.php - * - * @return int */ - public function errorLoggingLevel() + public function errorLoggingLevel(): int { return $this->errorLoggingLevel; } @@ -1017,13 +1057,11 @@ public function setCodeCleaner(CodeCleaner $cleaner) * Get a CodeCleaner service instance. * * If none has been explicitly defined, this will create a new instance. - * - * @return CodeCleaner */ - public function getCodeCleaner() + public function getCodeCleaner(): CodeCleaner { if (!isset($this->cleaner)) { - $this->cleaner = new CodeCleaner(null, null, null, $this->yolo()); + $this->cleaner = new CodeCleaner(null, null, null, $this->yolo(), $this->strictTypes()); } return $this->cleaner; @@ -1042,7 +1080,7 @@ public function setYolo($yolo) /** * Check whether to disable input validation. */ - public function yolo() + public function yolo(): bool { return $this->yolo; } @@ -1052,7 +1090,7 @@ public function yolo() * * @param bool $useTabCompletion */ - public function setUseTabCompletion($useTabCompletion) + public function setUseTabCompletion(bool $useTabCompletion) { $this->useTabCompletion = (bool) $useTabCompletion; } @@ -1062,8 +1100,10 @@ public function setUseTabCompletion($useTabCompletion) * * @param bool $useTabCompletion */ - public function setTabCompletion($useTabCompletion) + public function setTabCompletion(bool $useTabCompletion) { + @\trigger_error('`setTabCompletion` is deprecated; call `setUseTabCompletion` instead.', \E_USER_DEPRECATED); + $this->setUseTabCompletion($useTabCompletion); } @@ -1075,18 +1115,18 @@ public function setTabCompletion($useTabCompletion) * * @return bool True if the current Shell should use tab completion */ - public function useTabCompletion() + public function useTabCompletion(): bool { return isset($this->useTabCompletion) ? ($this->hasReadline && $this->useTabCompletion) : $this->hasReadline; } /** * @deprecated Call `useTabCompletion` instead - * - * @return bool */ - public function getTabCompletion() + public function getTabCompletion(): bool { + @\trigger_error('`getTabCompletion` is deprecated; call `useTabCompletion` instead.', \E_USER_DEPRECATED); + return $this->useTabCompletion(); } @@ -1099,6 +1139,11 @@ public function setOutput(ShellOutput $output) { $this->output = $output; $this->pipedOutput = null; // Reset cached pipe info + + if (isset($this->theme)) { + $output->setTheme($this->theme); + } + $this->applyFormatterStyles(); } @@ -1110,17 +1155,16 @@ public function setOutput(ShellOutput $output) * * @see self::verbosity * @see self::getPager - * - * @return ShellOutput */ - public function getOutput() + public function getOutput(): ShellOutput { if (!isset($this->output)) { $this->setOutput(new ShellOutput( $this->getOutputVerbosity(), null, null, - $this->getPager() + $this->getPager() ?: null, + $this->theme() )); // This is racy because `getOutputDecorated` needs access to the @@ -1143,29 +1187,29 @@ public function getOutput() public function getOutputDecorated() { switch ($this->colorMode()) { - case self::COLOR_MODE_AUTO: - return $this->outputIsPiped() ? false : null; case self::COLOR_MODE_FORCED: return true; case self::COLOR_MODE_DISABLED: return false; + case self::COLOR_MODE_AUTO: + default: + return $this->outputIsPiped() ? false : null; } } /** * Get the interactive setting for shell input. - * - * @return bool */ - public function getInputInteractive() + public function getInputInteractive(): bool { switch ($this->interactiveMode()) { - case self::INTERACTIVE_MODE_AUTO: - return !$this->inputIsPiped(); case self::INTERACTIVE_MODE_FORCED: return true; case self::INTERACTIVE_MODE_DISABLED: return false; + case self::INTERACTIVE_MODE_AUTO: + default: + return !$this->inputIsPiped(); } } @@ -1175,13 +1219,19 @@ public function getInputInteractive() * If a string is supplied, a ProcOutputPager will be used which shells out * to the specified command. * + * `cat` is special-cased to use the PassthruPager directly. + * * @throws \InvalidArgumentException if $pager is not a string or OutputPager instance * - * @param string|OutputPager $pager + * @param string|OutputPager|false $pager */ public function setPager($pager) { - if ($pager && !\is_string($pager) && !$pager instanceof OutputPager) { + if ($pager === null || $pager === false || $pager === 'cat') { + $pager = false; + } + + if ($pager !== false && !\is_string($pager) && !$pager instanceof OutputPager) { throw new \InvalidArgumentException('Unexpected pager instance'); } @@ -1194,17 +1244,31 @@ public function setPager($pager) * If no Pager has been explicitly provided, and Pcntl is available, this * will default to `cli.pager` ini value, falling back to `which less`. * - * @return string|OutputPager + * @return string|OutputPager|false */ public function getPager() { if (!isset($this->pager) && $this->usePcntl()) { + if (\getenv('TERM') === 'dumb') { + return false; + } + if ($pager = \ini_get('cli.pager')) { // use the default pager $this->pager = $pager; - } elseif ($less = \exec('which less 2>/dev/null')) { + } elseif ($less = $this->configPaths->which('less')) { // check for the presence of less... - $this->pager = $less.' -R -S -F -X'; + + // n.b. The busybox less implementation is a bit broken, so + // let's not use it by default. + // + // See https://github.com/bobthecow/psysh/issues/778 + $link = @\readlink($less); + if ($link !== false && \strpos($link, 'busybox') !== false) { + return false; + } + + $this->pager = $less.' -R -F -X'; } } @@ -1223,10 +1287,8 @@ public function setAutoCompleter(AutoCompleter $autoCompleter) /** * Get an AutoCompleter service instance. - * - * @return AutoCompleter */ - public function getAutoCompleter() + public function getAutoCompleter(): AutoCompleter { if (!isset($this->autoCompleter)) { $this->autoCompleter = new AutoCompleter(); @@ -1237,11 +1299,11 @@ public function getAutoCompleter() /** * @deprecated Nothing should be using this anymore - * - * @return array */ - public function getTabCompletionMatchers() + public function getTabCompletionMatchers(): array { + @\trigger_error('`getTabCompletionMatchers` is no longer used.', \E_USER_DEPRECATED); + return []; } @@ -1282,6 +1344,8 @@ private function doAddMatchers() */ public function addTabCompletionMatchers(array $matchers) { + @\trigger_error('`addTabCompletionMatchers` is deprecated; call `addMatchers` instead.', \E_USER_DEPRECATED); + $this->addMatchers($matchers); } @@ -1335,7 +1399,7 @@ public function setShell(Shell $shell) * * @param string $filename */ - public function setManualDbFile($filename) + public function setManualDbFile(string $filename) { $this->manualDbFile = (string) $filename; } @@ -1343,7 +1407,7 @@ public function setManualDbFile($filename) /** * Get the current PHP manual database file. * - * @return string Default: '~/.local/share/psysh/php_manual.sqlite' + * @return string|null Default: '~/.local/share/psysh/php_manual.sqlite' */ public function getManualDbFile() { @@ -1365,13 +1429,13 @@ public function getManualDbFile() /** * Get a PHP manual database connection. * - * @return \PDO + * @return \PDO|null */ public function getManualDb() { if (!isset($this->manualDb)) { $dbFile = $this->getManualDbFile(); - if (\is_file($dbFile)) { + if ($dbFile !== null && \is_file($dbFile)) { try { $this->manualDb = new \PDO('sqlite:'.$dbFile); } catch (\PDOException $e) { @@ -1399,10 +1463,8 @@ public function addCasters(array $casters) /** * Get the Presenter service. - * - * @return Presenter */ - public function getPresenter() + public function getPresenter(): Presenter { if (!isset($this->presenter)) { $this->presenter = new Presenter($this->getOutput()->getFormatter(), $this->forceArrayIndexes()); @@ -1418,7 +1480,7 @@ public function getPresenter() * * @param bool $warnOnMultipleConfigs */ - public function setWarnOnMultipleConfigs($warnOnMultipleConfigs) + public function setWarnOnMultipleConfigs(bool $warnOnMultipleConfigs) { $this->warnOnMultipleConfigs = (bool) $warnOnMultipleConfigs; } @@ -1432,10 +1494,8 @@ public function setWarnOnMultipleConfigs($warnOnMultipleConfigs) * are found. * * This will default to true in a future release, but is false for now. - * - * @return bool */ - public function warnOnMultipleConfigs() + public function warnOnMultipleConfigs(): bool { return $this->warnOnMultipleConfigs; } @@ -1443,9 +1503,11 @@ public function warnOnMultipleConfigs() /** * Set the current color mode. * + * @throws \InvalidArgumentException if the color mode isn't auto, forced or disabled + * * @param string $colorMode */ - public function setColorMode($colorMode) + public function setColorMode(string $colorMode) { $validColorModes = [ self::COLOR_MODE_AUTO, @@ -1454,8 +1516,7 @@ public function setColorMode($colorMode) ]; if (!\in_array($colorMode, $validColorModes)) { - // @todo Fix capitalization for 0.11.0 - throw new \InvalidArgumentException('invalid color mode: '.$colorMode); + throw new \InvalidArgumentException('Invalid color mode: '.$colorMode); } $this->colorMode = $colorMode; @@ -1463,10 +1524,8 @@ public function setColorMode($colorMode) /** * Get the current color mode. - * - * @return string */ - public function colorMode() + public function colorMode(): string { return $this->colorMode; } @@ -1474,9 +1533,11 @@ public function colorMode() /** * Set the shell's interactive mode. * + * @throws \InvalidArgumentException if interactive mode isn't disabled, forced, or auto + * * @param string $interactiveMode */ - public function setInteractiveMode($interactiveMode) + public function setInteractiveMode(string $interactiveMode) { $validInteractiveModes = [ self::INTERACTIVE_MODE_AUTO, @@ -1493,10 +1554,8 @@ public function setInteractiveMode($interactiveMode) /** * Get the current interactive mode. - * - * @return string */ - public function interactiveMode() + public function interactiveMode(): string { return $this->interactiveMode; } @@ -1515,10 +1574,8 @@ public function setChecker(Checker $checker) * Get an update checker service instance. * * If none has been explicitly defined, this will create a new instance. - * - * @return Checker */ - public function getChecker() + public function getChecker(): Checker { if (!isset($this->checker)) { $interval = $this->getUpdateCheck(); @@ -1552,10 +1609,8 @@ public function getChecker() * * One of 'always', 'daily', 'weekly', 'monthly' or 'never'. If none is * explicitly set, default to 'weekly'. - * - * @return string */ - public function getUpdateCheck() + public function getUpdateCheck(): string { return isset($this->updateCheck) ? $this->updateCheck : Checker::WEEKLY; } @@ -1567,7 +1622,7 @@ public function getUpdateCheck() * * @param string $interval */ - public function setUpdateCheck($interval) + public function setUpdateCheck(string $interval) { $validIntervals = [ Checker::ALWAYS, @@ -1578,8 +1633,7 @@ public function setUpdateCheck($interval) ]; if (!\in_array($interval, $validIntervals)) { - // @todo Fix capitalization for 0.11.0 - throw new \InvalidArgumentException('invalid update check interval: '.$interval); + throw new \InvalidArgumentException('Invalid update check interval: '.$interval); } $this->updateCheck = $interval; @@ -1600,7 +1654,7 @@ public function getUpdateCheckCacheFile() * * @param string $message */ - public function setStartupMessage($message) + public function setStartupMessage(string $message) { $this->startupMessage = $message; } @@ -1618,17 +1672,25 @@ public function getStartupMessage() /** * Set the prompt. * - * @param string $prompt + * @deprecated The `prompt` configuration has been replaced by Themes and support will + * eventually be removed. In the meantime, prompt is applied first by the Theme, then overridden + * by any explicitly defined prompt. + * + * Note that providing a prompt but not a theme config will implicitly use the `classic` theme. */ - public function setPrompt($prompt) + public function setPrompt(string $prompt) { $this->prompt = $prompt; + + if (isset($this->theme)) { + $this->theme->setPrompt($prompt); + } } /** * Get the prompt. * - * @return string + * @return string|null */ public function getPrompt() { @@ -1637,10 +1699,8 @@ public function getPrompt() /** * Get the force array indexes. - * - * @return bool */ - public function forceArrayIndexes() + public function forceArrayIndexes(): bool { return $this->forceArrayIndexes; } @@ -1650,11 +1710,51 @@ public function forceArrayIndexes() * * @param bool $forceArrayIndexes */ - public function setForceArrayIndexes($forceArrayIndexes) + public function setForceArrayIndexes(bool $forceArrayIndexes) { $this->forceArrayIndexes = $forceArrayIndexes; } + /** + * Set the current output Theme. + * + * @param Theme|string|array $theme Theme (or Theme config) + */ + public function setTheme($theme) + { + if (!$theme instanceof Theme) { + $theme = new Theme($theme); + } + + $this->theme = $theme; + + if (isset($this->prompt)) { + $this->theme->setPrompt($this->prompt); + } + + if (isset($this->output)) { + $this->output->setTheme($theme); + $this->applyFormatterStyles(); + } + } + + /** + * Get the current output Theme. + */ + public function theme(): Theme + { + if (!isset($this->theme)) { + // If a prompt is explicitly set, and a theme is not, base it on the `classic` theme. + $this->theme = $this->prompt ? new Theme('classic') : new Theme(); + } + + if (isset($this->prompt)) { + $this->theme->setPrompt($this->prompt); + } + + return $this->theme; + } + /** * Set the shell output formatter styles. * @@ -1667,15 +1767,14 @@ public function setForceArrayIndexes($forceArrayIndexes) * * Foreground, background or options can be null, or even omitted entirely. * - * @see ShellOutput::initFormatters - * - * @param array $formatterStyles + * @deprecated The `formatterStyles` configuration has been replaced by Themes and support will + * eventually be removed. In the meantime, styles are applied first by the Theme, then + * overridden by any explicitly defined formatter styles. */ public function setFormatterStyles(array $formatterStyles) { foreach ($formatterStyles as $name => $style) { - list($fg, $bg, $opts) = \array_pad($style, 3, null); - $this->formatterStyles[$name] = new OutputFormatterStyle($fg ?: null, $bg ?: null, $opts ?: []); + $this->formatterStyles[$name] = new OutputFormatterStyle(...$style); } if (isset($this->output)) { @@ -1688,6 +1787,10 @@ public function setFormatterStyles(array $formatterStyles) * * This is called on initialization of the shell output, and again if the * formatter styles config is updated. + * + * @deprecated The `formatterStyles` configuration has been replaced by Themes and support will + * eventually be removed. In the meantime, styles are applied first by the Theme, then + * overridden by any explicitly defined formatter styles. */ private function applyFormatterStyles() { @@ -1695,14 +1798,19 @@ private function applyFormatterStyles() foreach ($this->formatterStyles as $name => $style) { $formatter->setStyle($name, $style); } + + $errorFormatter = $this->output->getErrorOutput()->getFormatter(); + foreach (Theme::ERROR_STYLES as $name) { + if (isset($this->formatterStyles[$name])) { + $errorFormatter->setStyle($name, $this->formatterStyles[$name]); + } + } } /** * Get the configured output verbosity. - * - * @return string */ - public function verbosity() + public function verbosity(): string { return $this->verbosity; } @@ -1712,9 +1820,11 @@ public function verbosity() * * Accepts OutputInterface verbosity constants. * + * @throws \InvalidArgumentException if verbosity level is invalid + * * @param string $verbosity */ - public function setVerbosity($verbosity) + public function setVerbosity(string $verbosity) { $validVerbosityLevels = [ self::VERBOSITY_QUIET, @@ -1740,7 +1850,7 @@ public function setVerbosity($verbosity) * * @return int OutputInterface verbosity level */ - public function getOutputVerbosity() + public function getOutputVerbosity(): int { switch ($this->verbosity()) { case self::VERBOSITY_QUIET: @@ -1761,13 +1871,11 @@ public function getOutputVerbosity() * Guess whether stdin is piped. * * This is mostly useful for deciding whether to use non-interactive mode. - * - * @return bool */ - public function inputIsPiped() + public function inputIsPiped(): bool { if ($this->pipedInput === null) { - $this->pipedInput = \defined('STDIN') && static::looksLikeAPipe(\STDIN); + $this->pipedInput = \defined('STDIN') && self::looksLikeAPipe(\STDIN); } return $this->pipedInput; @@ -1777,13 +1885,11 @@ public function inputIsPiped() * Guess whether shell output is piped. * * This is mostly useful for deciding whether to use non-decorated output. - * - * @return bool */ - public function outputIsPiped() + public function outputIsPiped(): bool { if ($this->pipedOutput === null) { - $this->pipedOutput = static::looksLikeAPipe($this->getOutput()->getStream()); + $this->pipedOutput = self::looksLikeAPipe($this->getOutput()->getStream()); } return $this->pipedOutput; @@ -1793,10 +1899,8 @@ public function outputIsPiped() * Guess whether an input or output stream is piped. * * @param resource|int $stream - * - * @return bool */ - private static function looksLikeAPipe($stream) + private static function looksLikeAPipe($stream): bool { if (\function_exists('posix_isatty')) { return !\posix_isatty($stream); diff --git a/api/vendor/psy/psysh/src/ConsoleColorFactory.php b/api/vendor/psy/psysh/src/ConsoleColorFactory.php deleted file mode 100644 index 9cfbf40e3..000000000 --- a/api/vendor/psy/psysh/src/ConsoleColorFactory.php +++ /dev/null @@ -1,39 +0,0 @@ -scopeVariables, $this->getSpecialVariables()); } /** * Get all defined magic variables: $_, $_e, $__out, $__class, $__file, etc. - * - * @return array */ - public function getSpecialVariables() + public function getSpecialVariables(): array { $vars = [ '_' => $this->returnValue, @@ -168,21 +164,21 @@ public function getReturnValue() } /** - * Set the most recent Exception. + * Set the most recent Exception or Error. * - * @param \Exception $e + * @param \Throwable $e */ - public function setLastException(\Exception $e) + public function setLastException(\Throwable $e) { $this->lastException = $e; } /** - * Get the most recent Exception. + * Get the most recent Exception or Error. * * @throws \InvalidArgumentException If no Exception has been caught * - * @return \Exception|null + * @return \Throwable|null */ public function getLastException() { @@ -198,7 +194,7 @@ public function getLastException() * * @param string $lastStdout */ - public function setLastStdout($lastStdout) + public function setLastStdout(string $lastStdout) { $this->lastStdout = $lastStdout; } @@ -285,10 +281,8 @@ public function setCommandScopeVariables(array $commandScopeVariables) /** * Get command-scope magic variables: $__class, $__file, etc. - * - * @return array */ - public function getCommandScopeVariables() + public function getCommandScopeVariables(): array { return $this->commandScopeVariables; } @@ -301,7 +295,7 @@ public function getCommandScopeVariables() * * @return array Array of unused variable names */ - public function getUnusedCommandScopeVariableNames() + public function getUnusedCommandScopeVariableNames(): array { return \array_diff(self::$commandScopeNames, \array_keys($this->commandScopeVariables)); } @@ -310,10 +304,8 @@ public function getUnusedCommandScopeVariableNames() * Check whether a variable name is a magic variable. * * @param string $name - * - * @return bool */ - public static function isSpecialVariableName($name) + public static function isSpecialVariableName(string $name): bool { return \in_array($name, self::$specialNames) || \in_array($name, self::$commandScopeNames); } diff --git a/api/vendor/psy/psysh/src/ContextAware.php b/api/vendor/psy/psysh/src/ContextAware.php index 121d4db18..83979ae85 100644 --- a/api/vendor/psy/psysh/src/ContextAware.php +++ b/api/vendor/psy/psysh/src/ContextAware.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/EnvInterface.php b/api/vendor/psy/psysh/src/EnvInterface.php index 1f7b9fae8..31a738fc4 100644 --- a/api/vendor/psy/psysh/src/EnvInterface.php +++ b/api/vendor/psy/psysh/src/EnvInterface.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,5 +21,5 @@ interface EnvInterface * * @return string|null */ - public function get($key); + public function get(string $key); } diff --git a/api/vendor/psy/psysh/src/Exception/BreakException.php b/api/vendor/psy/psysh/src/Exception/BreakException.php index 6efc7acb7..5c56914fe 100644 --- a/api/vendor/psy/psysh/src/Exception/BreakException.php +++ b/api/vendor/psy/psysh/src/Exception/BreakException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,7 +21,7 @@ class BreakException extends \Exception implements Exception /** * {@inheritdoc} */ - public function __construct($message = '', $code = 0, \Exception $previous = null) + public function __construct($message = '', $code = 0, ?\Throwable $previous = null) { $this->rawMessage = $message; parent::__construct(\sprintf('Exit: %s', $message), $code, $previous); @@ -29,10 +29,8 @@ public function __construct($message = '', $code = 0, \Exception $previous = nul /** * Return a raw (unformatted) version of the error message. - * - * @return string */ - public function getRawMessage() + public function getRawMessage(): string { return $this->rawMessage; } diff --git a/api/vendor/psy/psysh/src/Exception/DeprecatedException.php b/api/vendor/psy/psysh/src/Exception/DeprecatedException.php index d06608ebb..f326b53bd 100644 --- a/api/vendor/psy/psysh/src/Exception/DeprecatedException.php +++ b/api/vendor/psy/psysh/src/Exception/DeprecatedException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/Exception/ErrorException.php b/api/vendor/psy/psysh/src/Exception/ErrorException.php index 78ac9c569..ef3f35705 100644 --- a/api/vendor/psy/psysh/src/Exception/ErrorException.php +++ b/api/vendor/psy/psysh/src/Exception/ErrorException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,14 +21,14 @@ class ErrorException extends \ErrorException implements Exception /** * Construct a Psy ErrorException. * - * @param string $message (default: "") - * @param int $code (default: 0) - * @param int $severity (default: 1) - * @param string|null $filename (default: null) - * @param int|null $lineno (default: null) - * @param Exception|null $previous (default: null) + * @param string $message (default: "") + * @param int $code (default: 0) + * @param int $severity (default: 1) + * @param string|null $filename (default: null) + * @param int|null $lineno (default: null) + * @param \Throwable|null $previous (default: null) */ - public function __construct($message = '', $code = 0, $severity = 1, $filename = null, $lineno = null, $previous = null) + public function __construct($message = '', $code = 0, $severity = 1, $filename = null, $lineno = null, ?\Throwable $previous = null) { $this->rawMessage = $message; @@ -73,10 +73,8 @@ public function __construct($message = '', $code = 0, $severity = 1, $filename = /** * Get the raw (unformatted) message for this error. - * - * @return string */ - public function getRawMessage() + public function getRawMessage(): string { return $this->rawMessage; } @@ -88,7 +86,7 @@ public function getRawMessage() * * set_error_handler([ErrorException::class, 'throwException']); * - * @throws ErrorException + * @throws self * * @param int $errno Error type * @param string $errstr Message @@ -103,12 +101,12 @@ public static function throwException($errno, $errstr, $errfile, $errline) /** * Create an ErrorException from an Error. * - * @param \Error $e + * @deprecated PsySH no longer wraps Errors * - * @return ErrorException + * @param \Error $e */ public static function fromError(\Error $e) { - return new self($e->getMessage(), $e->getCode(), 1, $e->getFile(), $e->getLine(), $e); + @\trigger_error('PsySH no longer wraps Errors', \E_USER_DEPRECATED); } } diff --git a/api/vendor/psy/psysh/src/Exception/Exception.php b/api/vendor/psy/psysh/src/Exception/Exception.php index 4b02d1326..db7906211 100644 --- a/api/vendor/psy/psysh/src/Exception/Exception.php +++ b/api/vendor/psy/psysh/src/Exception/Exception.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/Exception/FatalErrorException.php b/api/vendor/psy/psysh/src/Exception/FatalErrorException.php index 6642264e2..c7dcbf661 100644 --- a/api/vendor/psy/psysh/src/Exception/FatalErrorException.php +++ b/api/vendor/psy/psysh/src/Exception/FatalErrorException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -26,9 +26,9 @@ class FatalErrorException extends \ErrorException implements Exception * @param int $severity (default: 1) * @param string|null $filename (default: null) * @param int|null $lineno (default: null) - * @param \Exception|null $previous (default: null) + * @param \Throwable|null $previous (default: null) */ - public function __construct($message = '', $code = 0, $severity = 1, $filename = null, $lineno = null, $previous = null) + public function __construct($message = '', $code = 0, $severity = 1, $filename = null, $lineno = null, ?\Throwable $previous = null) { // Since these are basically always PHP Parser Node line numbers, treat -1 as null. if ($lineno === -1) { @@ -42,10 +42,8 @@ public function __construct($message = '', $code = 0, $severity = 1, $filename = /** * Return a raw (unformatted) version of the error message. - * - * @return string */ - public function getRawMessage() + public function getRawMessage(): string { return $this->rawMessage; } diff --git a/api/vendor/psy/psysh/src/Exception/ParseErrorException.php b/api/vendor/psy/psysh/src/Exception/ParseErrorException.php index cfc5f70ca..ee2e2d427 100644 --- a/api/vendor/psy/psysh/src/Exception/ParseErrorException.php +++ b/api/vendor/psy/psysh/src/Exception/ParseErrorException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,24 +19,28 @@ class ParseErrorException extends \PhpParser\Error implements Exception /** * Constructor! * - * @param string $message (default: "") - * @param int $line (default: -1) + * @param string $message (default: '') + * @param array|int $attributes Attributes of node/token where error occurred + * (or start line of error -- deprecated) */ - public function __construct($message = '', $line = -1) + public function __construct(string $message = '', $attributes = []) { $message = \sprintf('PHP Parse error: %s', $message); - parent::__construct($message, $line); + + if (!\is_array($attributes)) { + $attributes = ['startLine' => $attributes]; + } + + parent::__construct($message, $attributes); } /** * Create a ParseErrorException from a PhpParser Error. * * @param \PhpParser\Error $e - * - * @return ParseErrorException */ - public static function fromParseError(\PhpParser\Error $e) + public static function fromParseError(\PhpParser\Error $e): self { - return new self($e->getRawMessage(), $e->getStartLine()); + return new self($e->getRawMessage(), $e->getAttributes()); } } diff --git a/api/vendor/psy/psysh/src/Exception/RuntimeException.php b/api/vendor/psy/psysh/src/Exception/RuntimeException.php index 31890517e..fd423ffbf 100644 --- a/api/vendor/psy/psysh/src/Exception/RuntimeException.php +++ b/api/vendor/psy/psysh/src/Exception/RuntimeException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,9 +23,9 @@ class RuntimeException extends \RuntimeException implements Exception * * @param string $message (default: "") * @param int $code (default: 0) - * @param \Exception|null $previous (default: null) + * @param \Throwable|null $previous (default: null) */ - public function __construct($message = '', $code = 0, \Exception $previous = null) + public function __construct(string $message = '', int $code = 0, ?\Throwable $previous = null) { $this->rawMessage = $message; parent::__construct($message, $code, $previous); @@ -33,10 +33,8 @@ public function __construct($message = '', $code = 0, \Exception $previous = nul /** * Return a raw (unformatted) version of the error message. - * - * @return string */ - public function getRawMessage() + public function getRawMessage(): string { return $this->rawMessage; } diff --git a/api/vendor/psy/psysh/src/Exception/ThrowUpException.php b/api/vendor/psy/psysh/src/Exception/ThrowUpException.php index 692c4a3c6..b2b758e65 100644 --- a/api/vendor/psy/psysh/src/Exception/ThrowUpException.php +++ b/api/vendor/psy/psysh/src/Exception/ThrowUpException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,18 +19,16 @@ class ThrowUpException extends \Exception implements Exception /** * {@inheritdoc} */ - public function __construct(\Exception $exception) + public function __construct(\Throwable $throwable) { - $message = \sprintf("Throwing %s with message '%s'", \get_class($exception), $exception->getMessage()); - parent::__construct($message, $exception->getCode(), $exception); + $message = \sprintf("Throwing %s with message '%s'", \get_class($throwable), $throwable->getMessage()); + parent::__construct($message, $throwable->getCode(), $throwable); } /** * Return a raw (unformatted) version of the error message. - * - * @return string */ - public function getRawMessage() + public function getRawMessage(): string { return $this->getPrevious()->getMessage(); } @@ -38,20 +36,12 @@ public function getRawMessage() /** * Create a ThrowUpException from a Throwable. * - * @param \Throwable $throwable + * @deprecated PsySH no longer wraps Throwables * - * @return ThrowUpException + * @param \Throwable $throwable */ public static function fromThrowable($throwable) { - if ($throwable instanceof \Error) { - $throwable = ErrorException::fromError($throwable); - } - - if (!$throwable instanceof \Exception) { - throw new \InvalidArgumentException('throw-up can only throw Exceptions and Errors'); - } - - return new self($throwable); + @\trigger_error('PsySH no longer wraps Throwables', \E_USER_DEPRECATED); } } diff --git a/api/vendor/psy/psysh/src/Exception/TypeErrorException.php b/api/vendor/psy/psysh/src/Exception/TypeErrorException.php deleted file mode 100644 index 40dccf47e..000000000 --- a/api/vendor/psy/psysh/src/Exception/TypeErrorException.php +++ /dev/null @@ -1,55 +0,0 @@ -rawMessage = $message; - $message = \preg_replace('/, called in .*?: eval\\(\\)\'d code/', '', $message); - parent::__construct(\sprintf('TypeError: %s', $message), $code); - } - - /** - * Get the raw (unformatted) message for this error. - * - * @return string - */ - public function getRawMessage() - { - return $this->rawMessage; - } - - /** - * Create a TypeErrorException from a TypeError. - * - * @param \TypeError $e - * - * @return TypeErrorException - */ - public static function fromTypeError(\TypeError $e) - { - return new self($e->getMessage(), $e->getCode()); - } -} diff --git a/api/vendor/psy/psysh/src/Exception/UnexpectedTargetException.php b/api/vendor/psy/psysh/src/Exception/UnexpectedTargetException.php index fd2330508..35ce2d23f 100644 --- a/api/vendor/psy/psysh/src/Exception/UnexpectedTargetException.php +++ b/api/vendor/psy/psysh/src/Exception/UnexpectedTargetException.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,9 +19,9 @@ class UnexpectedTargetException extends RuntimeException * @param mixed $target * @param string $message (default: "") * @param int $code (default: 0) - * @param \Exception|null $previous (default: null) + * @param \Throwable|null $previous (default: null) */ - public function __construct($target, $message = '', $code = 0, \Exception $previous = null) + public function __construct($target, string $message = '', int $code = 0, ?\Throwable $previous = null) { $this->target = $target; parent::__construct($message, $code, $previous); diff --git a/api/vendor/psy/psysh/src/ExecutionClosure.php b/api/vendor/psy/psysh/src/ExecutionClosure.php index bebec1349..837e931be 100644 --- a/api/vendor/psy/psysh/src/ExecutionClosure.php +++ b/api/vendor/psy/psysh/src/ExecutionClosure.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -44,13 +44,6 @@ public function __construct(Shell $__psysh__) \ob_end_clean(); } - throw $_e; - } catch (\Exception $_e) { - // Clean up on our way out. - if (\ob_get_level() > 0) { - \ob_end_clean(); - } - throw $_e; } finally { // Won't be needing this anymore diff --git a/api/vendor/psy/psysh/src/ExecutionLoop/AbstractListener.php b/api/vendor/psy/psysh/src/ExecutionLoop/AbstractListener.php index 0bfa3fdf5..8230c5508 100644 --- a/api/vendor/psy/psysh/src/ExecutionLoop/AbstractListener.php +++ b/api/vendor/psy/psysh/src/ExecutionLoop/AbstractListener.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -35,14 +35,14 @@ public function beforeLoop(Shell $shell) /** * {@inheritdoc} */ - public function onInput(Shell $shell, $input) + public function onInput(Shell $shell, string $input) { } /** * {@inheritdoc} */ - public function onExecute(Shell $shell, $code) + public function onExecute(Shell $shell, string $code) { } diff --git a/api/vendor/psy/psysh/src/ExecutionLoop/Listener.php b/api/vendor/psy/psysh/src/ExecutionLoop/Listener.php index 5bc03c196..9f207f5b7 100644 --- a/api/vendor/psy/psysh/src/ExecutionLoop/Listener.php +++ b/api/vendor/psy/psysh/src/ExecutionLoop/Listener.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -20,10 +20,8 @@ interface Listener { /** * Determines whether this listener should be active. - * - * @return bool */ - public static function isSupported(); + public static function isSupported(): bool; /** * Called once before the REPL session starts. @@ -49,7 +47,7 @@ public function beforeLoop(Shell $shell); * * @return string|null User input override */ - public function onInput(Shell $shell, $input); + public function onInput(Shell $shell, string $input); /** * Called before executing user code. @@ -65,7 +63,7 @@ public function onInput(Shell $shell, $input); * * @return string|null User code override */ - public function onExecute(Shell $shell, $code); + public function onExecute(Shell $shell, string $code); /** * Called at the end of each loop. diff --git a/api/vendor/psy/psysh/src/ExecutionLoop/ProcessForker.php b/api/vendor/psy/psysh/src/ExecutionLoop/ProcessForker.php index 0bad66e0e..3d61693c4 100644 --- a/api/vendor/psy/psysh/src/ExecutionLoop/ProcessForker.php +++ b/api/vendor/psy/psysh/src/ExecutionLoop/ProcessForker.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -41,10 +41,8 @@ class ProcessForker extends AbstractListener /** * Process forker is supported if pcntl and posix extensions are available. - * - * @return bool */ - public static function isSupported() + public static function isSupported(): bool { return self::isPcntlSupported() && !self::disabledPcntlFunctions() && self::isPosixSupported() && !self::disabledPosixFunctions(); } @@ -52,7 +50,7 @@ public static function isSupported() /** * Verify that all required pcntl functions are, in fact, available. */ - public static function isPcntlSupported() + public static function isPcntlSupported(): bool { foreach (self::$pcntlFunctions as $func) { if (!\function_exists($func)) { @@ -74,7 +72,7 @@ public static function disabledPcntlFunctions() /** * Verify that all required posix functions are, in fact, available. */ - public static function isPosixSupported() + public static function isPosixSupported(): bool { foreach (self::$posixFunctions as $func) { if (!\function_exists($func)) { @@ -93,13 +91,13 @@ public static function disabledPosixFunctions() return self::checkDisabledFunctions(self::$posixFunctions); } - private static function checkDisabledFunctions(array $functions) + private static function checkDisabledFunctions(array $functions): array { return \array_values(\array_intersect($functions, \array_map('strtolower', \array_map('trim', \explode(',', \ini_get('disable_functions')))))); } /** - * Forks into a master and a loop process. + * Forks into a main and a loop process. * * The loop process will handle the evaluation of all instructions, then * return its state via a socket upon completion. @@ -250,10 +248,8 @@ private function createSavegame() * we can. * * @param array $return - * - * @return string */ - private function serializeReturn(array $return) + private function serializeReturn(array $return): string { $serializable = []; @@ -268,14 +264,19 @@ private function serializeReturn(array $return) continue; } + if (\version_compare(\PHP_VERSION, '8.1', '>=') && $value instanceof \UnitEnum) { + // Enums defined in the REPL session can't be unserialized. + $ref = new \ReflectionObject($value); + if (\strpos($ref->getFileName(), ": eval()'d code") !== false) { + continue; + } + } + try { @\serialize($value); $serializable[$key] = $value; } catch (\Throwable $e) { // we'll just ignore this one... - } catch (\Exception $e) { - // and this one too... - // @todo remove this once we don't support PHP 5.x anymore :) } } diff --git a/api/vendor/psy/psysh/src/ExecutionLoop/RunkitReloader.php b/api/vendor/psy/psysh/src/ExecutionLoop/RunkitReloader.php index e0375a2d8..987fb1cb4 100644 --- a/api/vendor/psy/psysh/src/ExecutionLoop/RunkitReloader.php +++ b/api/vendor/psy/psysh/src/ExecutionLoop/RunkitReloader.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -17,6 +17,8 @@ /** * A runkit-based code reloader, which is pretty much magic. + * + * @todo Remove RunkitReloader once we drop support for PHP 7.x :( */ class RunkitReloader extends AbstractListener { @@ -25,10 +27,8 @@ class RunkitReloader extends AbstractListener /** * Only enabled if Runkit is installed. - * - * @return bool */ - public static function isSupported() + public static function isSupported(): bool { // runkit_import was removed in runkit7-4.0.0a1 return \extension_loaded('runkit') || \extension_loaded('runkit7') && \function_exists('runkit_import'); @@ -36,13 +36,10 @@ public static function isSupported() /** * Construct a Runkit Reloader. - * - * @todo Pass in Parser Factory instance for dependency injection? */ public function __construct() { - $parserFactory = new ParserFactory(); - $this->parser = $parserFactory->createParser(); + $this->parser = (new ParserFactory())->createParser(); } /** @@ -51,7 +48,7 @@ public function __construct() * @param Shell $shell * @param string $input */ - public function onInput(Shell $shell, $input) + public function onInput(Shell $shell, string $input) { $this->reload($shell); } @@ -127,15 +124,13 @@ private function reload(Shell $shell) * Use PHP-Parser to ensure that the file is valid PHP. * * @param string $file - * - * @return bool */ - private function lintFile($file) + private function lintFile(string $file): bool { // first try to parse it try { $this->parser->parse(\file_get_contents($file)); - } catch (\Exception $e) { + } catch (\Throwable $e) { return false; } diff --git a/api/vendor/psy/psysh/src/ExecutionLoopClosure.php b/api/vendor/psy/psysh/src/ExecutionLoopClosure.php index 0ee316fb7..28c6561a4 100644 --- a/api/vendor/psy/psysh/src/ExecutionLoopClosure.php +++ b/api/vendor/psy/psysh/src/ExecutionLoopClosure.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,15 +12,12 @@ namespace Psy; use Psy\Exception\BreakException; -use Psy\Exception\ErrorException; use Psy\Exception\ThrowUpException; -use Psy\Exception\TypeErrorException; /** * The Psy Shell's execution loop scope. * - * @todo Once we're on PHP 5.5, we can switch ExecutionClosure to a generator - * and get rid of the duplicate closure implementations :) + * @todo Switch ExecutionClosure to a generator and get rid of the duplicate closure implementations? */ class ExecutionLoopClosure extends ExecutionClosure { @@ -33,7 +30,7 @@ public function __construct(Shell $__psysh__) // Restore execution scope variables \extract($__psysh__->getScopeVariables(false)); - do { + while (true) { $__psysh__->beforeLoop(); try { @@ -59,13 +56,6 @@ public function __construct(Shell $__psysh__) \ob_end_clean(); } - throw $_e; - } catch (\Exception $_e) { - // Clean up on our way out. - if (\ob_get_level() > 0) { - \ob_end_clean(); - } - throw $_e; } finally { // Won't be needing this anymore @@ -87,16 +77,12 @@ public function __construct(Shell $__psysh__) $__psysh__->writeException($_e); throw $_e; - } catch (\TypeError $_e) { - $__psysh__->writeException(TypeErrorException::fromTypeError($_e)); - } catch (\Error $_e) { - $__psysh__->writeException(ErrorException::fromError($_e)); - } catch (\Exception $_e) { + } catch (\Throwable $_e) { $__psysh__->writeException($_e); } $__psysh__->afterLoop(); - } while (true); + } }); } } diff --git a/api/vendor/psy/psysh/src/Formatter/CodeFormatter.php b/api/vendor/psy/psysh/src/Formatter/CodeFormatter.php index 0dabc0642..fb306f82e 100644 --- a/api/vendor/psy/psysh/src/Formatter/CodeFormatter.php +++ b/api/vendor/psy/psysh/src/Formatter/CodeFormatter.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -32,7 +32,7 @@ class CodeFormatter implements ReflectorFormatter const HIGHLIGHT_CONST = 'const'; const HIGHLIGHT_NUMBER = 'number'; const HIGHLIGHT_STRING = 'string'; - const HIGHLIGHT_COMMENT = 'comment'; + const HIGHLIGHT_COMMENT = 'code_comment'; const HIGHLIGHT_INLINE_HTML = 'inline_html'; private static $tokenMap = [ @@ -76,12 +76,11 @@ class CodeFormatter implements ReflectorFormatter /** * Format the code represented by $reflector for shell output. * - * @param \Reflector $reflector - * @param string|null $colorMode (deprecated and ignored) + * @param \Reflector $reflector * * @return string formatted code */ - public static function format(\Reflector $reflector, $colorMode = null) + public static function format(\Reflector $reflector): string { if (self::isReflectable($reflector)) { if ($code = @\file_get_contents($reflector->getFileName())) { @@ -104,7 +103,7 @@ public static function format(\Reflector $reflector, $colorMode = null) * * @return string formatted code */ - public static function formatCode($code, $startLine = 1, $endLine = null, $markLine = null) + public static function formatCode(string $code, int $startLine = 1, ?int $endLine = null, ?int $markLine = null): string { $spans = self::tokenizeSpans($code); $lines = self::splitLines($spans, $startLine, $endLine); @@ -122,10 +121,8 @@ public static function formatCode($code, $startLine = 1, $endLine = null, $markL * This is typehinted as \Reflector but we've narrowed the input via self::isReflectable already. * * @param \ReflectionClass|\ReflectionFunctionAbstract $reflector - * - * @return int */ - private static function getStartLine(\Reflector $reflector) + private static function getStartLine(\Reflector $reflector): int { $startLine = $reflector->getStartLine(); @@ -148,7 +145,7 @@ private static function getStartLine(\Reflector $reflector) * * @return \Generator [$spanType, $spanText] highlight spans */ - private static function tokenizeSpans($code) + private static function tokenizeSpans(string $code): \Generator { $spanType = null; $buffer = ''; @@ -209,7 +206,7 @@ private static function nextHighlightType($token, $currentType) * * @return \Generator lines, each an array of [$spanType, $spanText] pairs */ - private static function splitLines(\Generator $spans, $startLine = 1, $endLine = null) + private static function splitLines(\Generator $spans, int $startLine = 1, ?int $endLine = null): \Generator { $lineNum = 1; $buffer = []; @@ -247,7 +244,7 @@ private static function splitLines(\Generator $spans, $startLine = 1, $endLine = * * @return \Generator Formatted lines */ - private static function formatLines(\Generator $spanLines) + private static function formatLines(\Generator $spanLines): \Generator { foreach ($spanLines as $lineNum => $spanLine) { $line = ''; @@ -276,7 +273,7 @@ private static function formatLines(\Generator $spanLines) * * @return \Generator Numbered, formatted lines */ - private static function numberLines(\Generator $lines, $markLine = null) + private static function numberLines(\Generator $lines, ?int $markLine = null): \Generator { $lines = \iterator_to_array($lines); @@ -302,18 +299,18 @@ private static function numberLines(\Generator $lines, $markLine = null) $mark = ($markLine === $lineNum) ? self::LINE_MARKER : self::NO_LINE_MARKER; } - yield \sprintf("%s: %s", $mark, $lineNum, $line); + yield \sprintf("%s: %s", $mark, $lineNum, $line); } } /** * Check whether a Reflector instance is reflectable by this formatter. * - * @param \Reflector $reflector + * @phpstan-assert-if-true \ReflectionClass|\ReflectionFunctionAbstract $reflector * - * @return bool + * @param \Reflector $reflector */ - private static function isReflectable(\Reflector $reflector) + private static function isReflectable(\Reflector $reflector): bool { return ($reflector instanceof \ReflectionClass || $reflector instanceof \ReflectionFunctionAbstract) && \is_file($reflector->getFileName()); } diff --git a/api/vendor/psy/psysh/src/Formatter/DocblockFormatter.php b/api/vendor/psy/psysh/src/Formatter/DocblockFormatter.php index 3056967d2..282f463e2 100644 --- a/api/vendor/psy/psysh/src/Formatter/DocblockFormatter.php +++ b/api/vendor/psy/psysh/src/Formatter/DocblockFormatter.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -31,7 +31,7 @@ class DocblockFormatter implements ReflectorFormatter * * @return string Formatted docblock */ - public static function format(\Reflector $reflector) + public static function format(\Reflector $reflector): string { $docblock = new Docblock($reflector); $chunks = []; @@ -68,10 +68,8 @@ public static function format(\Reflector $reflector) * * @param array $vector * @param array $lines - * - * @return string */ - private static function formatVector(array $vector, array $lines) + private static function formatVector(array $vector, array $lines): string { $template = [' ']; foreach ($vector as $type) { @@ -109,7 +107,7 @@ private static function formatVector(array $vector, array $lines) * * @return string formatted tags */ - private static function formatTags(array $skip, array $tags) + private static function formatTags(array $skip, array $tags): string { $chunks = []; @@ -133,10 +131,8 @@ private static function formatTags(array $skip, array $tags) * * @param string $type Vector type * @param int $max Pad width - * - * @return string */ - private static function getVectorParamTemplate($type, $max) + private static function getVectorParamTemplate(string $type, int $max): string { if (!isset(self::$vectorParamTemplates[$type])) { return \sprintf('%%-%ds', $max); @@ -150,10 +146,8 @@ private static function getVectorParamTemplate($type, $max) * * @param string $text String to indent * @param string $indent (default: ' ') - * - * @return string */ - private static function indent($text, $indent = ' ') + private static function indent(string $text, string $indent = ' '): string { return $indent.\str_replace("\n", "\n".$indent, $text); } @@ -162,10 +156,8 @@ private static function indent($text, $indent = ' ') * Convert underscored or whitespace separated words into sentence case. * * @param string $text - * - * @return string */ - private static function inflect($text) + private static function inflect(string $text): string { $words = \trim(\preg_replace('/[\s_-]+/', ' ', \preg_replace('/([a-z])([A-Z])/', '$1 $2', $text))); diff --git a/api/vendor/psy/psysh/src/Formatter/Formatter.php b/api/vendor/psy/psysh/src/Formatter/Formatter.php deleted file mode 100644 index 8800c1866..000000000 --- a/api/vendor/psy/psysh/src/Formatter/Formatter.php +++ /dev/null @@ -1,21 +0,0 @@ -getName(); } @@ -75,20 +73,12 @@ public static function formatName(\Reflector $reflector) /** * Print the method, property or class modifiers. * - * @param \Reflector $reflector + * @param \ReflectionMethod|\ReflectionProperty|\ReflectionClass $reflector * * @return string Formatted modifiers */ - private static function formatModifiers(\Reflector $reflector) + private static function formatModifiers(\Reflector $reflector): string { - if ($reflector instanceof \ReflectionClass && $reflector->isTrait()) { - // For some reason, PHP 5.x returns `abstract public` modifiers for - // traits. Let's just ignore that business entirely. - if (\version_compare(\PHP_VERSION, '7.0.0', '<')) { - return ''; - } - } - return \implode(' ', \array_map(function ($modifier) { return \sprintf('%s', $modifier); }, \Reflection::getModifierNames($reflector->getModifiers()))); @@ -101,7 +91,7 @@ private static function formatModifiers(\Reflector $reflector) * * @return string Formatted signature */ - private static function formatClass(\ReflectionClass $reflector) + private static function formatClass(\ReflectionClass $reflector): string { $chunks = []; @@ -138,11 +128,11 @@ private static function formatClass(\ReflectionClass $reflector) /** * Format a constant signature. * - * @param ReflectionClassConstant|\ReflectionClassConstant $reflector + * @param \ReflectionClassConstant $reflector * * @return string Formatted signature */ - private static function formatClassConstant($reflector) + private static function formatClassConstant($reflector): string { $value = $reflector->getValue(); $style = self::getTypeStyle($value); @@ -159,11 +149,11 @@ private static function formatClassConstant($reflector) /** * Format a constant signature. * - * @param ReflectionConstant_ $reflector + * @param ReflectionConstant $reflector * * @return string Formatted signature */ - private static function formatConstant($reflector) + private static function formatConstant(ReflectionConstant $reflector): string { $value = $reflector->getValue(); $style = self::getTypeStyle($value); @@ -181,10 +171,8 @@ private static function formatConstant($reflector) * Helper for getting output style for a given value's type. * * @param mixed $value - * - * @return string */ - private static function getTypeStyle($value) + private static function getTypeStyle($value): string { if (\is_int($value) || \is_float($value)) { return 'number'; @@ -204,7 +192,7 @@ private static function getTypeStyle($value) * * @return string Formatted signature */ - private static function formatProperty(\ReflectionProperty $reflector) + private static function formatProperty(\ReflectionProperty $reflector): string { return \sprintf( '%s $%s', @@ -220,7 +208,7 @@ private static function formatProperty(\ReflectionProperty $reflector) * * @return string Formatted signature */ - private static function formatFunction(\ReflectionFunctionAbstract $reflector) + private static function formatFunction(\ReflectionFunctionAbstract $reflector): string { return \sprintf( 'function %s%s(%s)%s', @@ -238,13 +226,13 @@ private static function formatFunction(\ReflectionFunctionAbstract $reflector) * * @return string Formatted return type */ - private static function formatFunctionReturnType(\ReflectionFunctionAbstract $reflector) + private static function formatFunctionReturnType(\ReflectionFunctionAbstract $reflector): string { if (!\method_exists($reflector, 'hasReturnType') || !$reflector->hasReturnType()) { return ''; } - return \sprintf(': %s', self::formatReflectionType($reflector->getReturnType())); + return \sprintf(': %s', self::formatReflectionType($reflector->getReturnType(), true)); } /** @@ -254,7 +242,7 @@ private static function formatFunctionReturnType(\ReflectionFunctionAbstract $re * * @return string Formatted signature */ - private static function formatMethod(\ReflectionMethod $reflector) + private static function formatMethod(\ReflectionMethod $reflector): string { return \sprintf( '%s %s', @@ -270,14 +258,16 @@ private static function formatMethod(\ReflectionMethod $reflector) * * @return array */ - private static function formatFunctionParams(\ReflectionFunctionAbstract $reflector) + private static function formatFunctionParams(\ReflectionFunctionAbstract $reflector): array { $params = []; foreach ($reflector->getParameters() as $param) { $hint = ''; try { if (\method_exists($param, 'getType')) { - $hint = self::formatReflectionType($param->getType()); + // Only include the inquisitive nullable type iff param default value is not null. + $defaultIsNull = $param->isOptional() && $param->isDefaultValueAvailable() && $param->getDefaultValue() === null; + $hint = self::formatReflectionType($param->getType(), !$defaultIsNull); } else { if ($param->isArray()) { $hint = 'array'; @@ -285,7 +275,7 @@ private static function formatFunctionParams(\ReflectionFunctionAbstract $reflec $hint = \sprintf('%s', $class->getName()); } } - } catch (\Exception $e) { + } catch (\Throwable $e) { // sometimes we just don't know... // bad class names, or autoloaded classes that haven't been loaded yet, or whathaveyou. // come to think of it, the only time I've seen this is with the intl extension. @@ -332,28 +322,37 @@ private static function formatFunctionParams(\ReflectionFunctionAbstract $reflec * Print function param or return type(s). * * @param \ReflectionType $type - * - * @return string */ - private static function formatReflectionType(\ReflectionType $type = null) + private static function formatReflectionType(?\ReflectionType $type, bool $indicateNullable): string { if ($type === null) { return ''; } - $types = $type instanceof \ReflectionUnionType ? $type->getTypes() : [$type]; - $formattedTypes = []; + if ($type instanceof \ReflectionUnionType) { + $delimeter = '|'; + } elseif ($type instanceof \ReflectionIntersectionType) { + $delimeter = '&'; + } else { + return self::formatReflectionNamedType($type, $indicateNullable); + } - foreach ($types as $type) { - $typeStyle = $type->isBuiltin() ? 'keyword' : 'class'; + $formattedTypes = []; + foreach ($type->getTypes() as $namedType) { + $formattedTypes[] = self::formatReflectionNamedType($namedType, $indicateNullable); + } - // PHP 7.0 didn't have `getName` on reflection types, so wheee! - $typeName = \method_exists($type, 'getName') ? $type->getName() : (string) $type; + return \implode($delimeter, $formattedTypes); + } - // @todo Do we want to include the ? for nullable types? Maybe only sometimes? - $formattedTypes[] = \sprintf('<%s>%s', $typeStyle, OutputFormatter::escape($typeName), $typeStyle); - } + /** + * Print a single named type. + */ + private static function formatReflectionNamedType(\ReflectionNamedType $type, bool $indicateNullable): string + { + $typeStyle = $type->isBuiltin() ? 'keyword' : 'class'; + $nullable = $indicateNullable && $type->allowsNull() ? '?' : ''; - return \implode('|', $formattedTypes); + return \sprintf('<%s>%s%s', $typeStyle, $nullable, OutputFormatter::escape($type->getName()), $typeStyle); } } diff --git a/api/vendor/psy/psysh/src/Formatter/TraceFormatter.php b/api/vendor/psy/psysh/src/Formatter/TraceFormatter.php index 7a638a519..a30b4b8c3 100644 --- a/api/vendor/psy/psysh/src/Formatter/TraceFormatter.php +++ b/api/vendor/psy/psysh/src/Formatter/TraceFormatter.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -22,10 +22,6 @@ class TraceFormatter /** * Format the trace of the given exception. * - * @throws \InvalidArgumentException if passed a non-Throwable value - * - * @todo type hint $throwable when we drop support for PHP 5.x - * * @param \Throwable $throwable The error or exception with a backtrace * @param FilterOptions $filter (default: null) * @param int $count (default: PHP_INT_MAX) @@ -33,12 +29,8 @@ class TraceFormatter * * @return string[] Formatted stacktrace lines */ - public static function formatTrace($throwable, FilterOptions $filter = null, $count = null, $includePsy = true) + public static function formatTrace(\Throwable $throwable, ?FilterOptions $filter = null, ?int $count = null, bool $includePsy = true): array { - if (!($throwable instanceof \Throwable || $throwable instanceof \Exception)) { - throw new \InvalidArgumentException('Unable to format non-throwable value'); - } - if ($cwd = \getcwd()) { $cwd = \rtrim($cwd, \DIRECTORY_SEPARATOR).\DIRECTORY_SEPARATOR; } diff --git a/api/vendor/psy/psysh/src/Input/CodeArgument.php b/api/vendor/psy/psysh/src/Input/CodeArgument.php index a2189af7f..2654c9437 100644 --- a/api/vendor/psy/psysh/src/Input/CodeArgument.php +++ b/api/vendor/psy/psysh/src/Input/CodeArgument.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -39,7 +39,7 @@ class CodeArgument extends InputArgument * * @throws \InvalidArgumentException When argument mode is not valid */ - public function __construct($name, $mode = null, $description = '', $default = null) + public function __construct(string $name, ?int $mode = null, string $description = '', $default = null) { if ($mode & InputArgument::IS_ARRAY) { throw new \InvalidArgumentException('Argument mode IS_ARRAY is not valid'); diff --git a/api/vendor/psy/psysh/src/Input/FilterOptions.php b/api/vendor/psy/psysh/src/Input/FilterOptions.php index f2c1c629f..4f8c6b274 100644 --- a/api/vendor/psy/psysh/src/Input/FilterOptions.php +++ b/api/vendor/psy/psysh/src/Input/FilterOptions.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -31,7 +31,7 @@ class FilterOptions * * @return InputOption[] */ - public static function getOptions() + public static function getOptions(): array { return [ new InputOption('grep', 'G', InputOption::VALUE_REQUIRED, 'Limit to items matching the given pattern (string or regex).'), @@ -73,10 +73,8 @@ public function bind(InputInterface $input) /** * Check whether the bound input has filter options. - * - * @return bool */ - public function hasFilter() + public function hasFilter(): bool { return $this->filter; } @@ -86,10 +84,8 @@ public function hasFilter() * * @param string $string * @param array $matches - * - * @return bool */ - public function match($string, array &$matches = null) + public function match(string $string, ?array &$matches = null): bool { return $this->filter === false || (\preg_match($this->pattern, $string, $matches) xor $this->invert); } @@ -116,10 +112,8 @@ private function validateInput(InputInterface $input) * Check whether a string appears to be a regular expression. * * @param string $string - * - * @return bool */ - private function stringIsRegex($string) + private function stringIsRegex(string $string): bool { return \substr($string, 0, 1) === '/' && \substr($string, -1) === '/' && \strlen($string) >= 3; } @@ -131,7 +125,7 @@ private function stringIsRegex($string) * * @param string $pattern */ - private function validateRegex($pattern) + private function validateRegex(string $pattern) { \set_error_handler([ErrorException::class, 'throwException']); try { diff --git a/api/vendor/psy/psysh/src/Input/ShellInput.php b/api/vendor/psy/psysh/src/Input/ShellInput.php index 493af899d..9b8bf81d7 100644 --- a/api/vendor/psy/psysh/src/Input/ShellInput.php +++ b/api/vendor/psy/psysh/src/Input/ShellInput.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,6 +19,8 @@ */ class ShellInput extends StringInput { + public const REGEX_STRING = '([^\s]+?)(?:\s|(?hasCodeArgument = $hasCodeArgument; - return parent::bind($definition); + parent::bind($definition); } /** @@ -81,7 +83,7 @@ public function bind(InputDefinition $definition) * * @throws \InvalidArgumentException When unable to parse input (should never happen) */ - private function tokenize($input) + private function tokenize(string $input): array { $tokens = []; $length = \strlen($input); @@ -98,7 +100,7 @@ private function tokenize($input) \stripcslashes(\substr($match[0], 1, \strlen($match[0]) - 2)), \stripcslashes(\substr($input, $cursor)), ]; - } elseif (\preg_match('/'.StringInput::REGEX_STRING.'/A', $input, $match, 0, $cursor)) { + } elseif (\preg_match('/'.self::REGEX_STRING.'/A', $input, $match, 0, $cursor)) { $tokens[] = [ \stripcslashes($match[1]), \stripcslashes(\substr($input, $cursor)), @@ -119,7 +121,7 @@ private function tokenize($input) /** * Same as parent, but with some bonus handling for code arguments. */ - protected function parse() + protected function parse(): void { $parseOptions = true; $this->parsed = $this->tokenPairs; @@ -150,7 +152,7 @@ protected function parse() * * @throws \RuntimeException When too many arguments are given */ - private function parseShellArgument($token, $rest) + private function parseShellArgument(string $token, string $rest) { $c = \count($this->arguments); @@ -200,7 +202,7 @@ private function parseShellArgument($token, $rest) * * @param string $token The current token */ - private function parseShortOption($token) + private function parseShortOption(string $token) { $name = \substr($token, 1); @@ -223,7 +225,7 @@ private function parseShortOption($token) * * @throws \RuntimeException When option given doesn't exist */ - private function parseShortOptionSet($name) + private function parseShortOptionSet(string $name) { $len = \strlen($name); for ($i = 0; $i < $len; $i++) { @@ -247,17 +249,12 @@ private function parseShortOptionSet($name) * * @param string $token The current token */ - private function parseLongOption($token) + private function parseLongOption(string $token) { $name = \substr($token, 2); if (false !== $pos = \strpos($name, '=')) { - if (0 === \strlen($value = \substr($name, $pos + 1))) { - // if no value after "=" then substr() returns "" since php7 only, false before - // see http://php.net/manual/fr/migration70.incompatible.php#119151 - if (\PHP_VERSION_ID < 70000 && false === $value) { - $value = ''; - } + if (($value = \substr($name, $pos + 1)) === '') { \array_unshift($this->parsed, [$value, null]); } $this->addLongOption(\substr($name, 0, $pos), $value); @@ -274,7 +271,7 @@ private function parseLongOption($token) * * @throws \RuntimeException When option given doesn't exist */ - private function addShortOption($shortcut, $value) + private function addShortOption(string $shortcut, $value) { if (!$this->definition->hasShortcut($shortcut)) { throw new \RuntimeException(\sprintf('The "-%s" option does not exist.', $shortcut)); @@ -291,7 +288,7 @@ private function addShortOption($shortcut, $value) * * @throws \RuntimeException When option given doesn't exist */ - private function addLongOption($name, $value) + private function addLongOption(string $name, $value) { if (!$this->definition->hasOption($name)) { throw new \RuntimeException(\sprintf('The "--%s" option does not exist.', $name)); diff --git a/api/vendor/psy/psysh/src/Input/SilentInput.php b/api/vendor/psy/psysh/src/Input/SilentInput.php index b4804c611..0c963f544 100644 --- a/api/vendor/psy/psysh/src/Input/SilentInput.php +++ b/api/vendor/psy/psysh/src/Input/SilentInput.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -27,17 +27,15 @@ class SilentInput * * @param string $inputString */ - public function __construct($inputString) + public function __construct(string $inputString) { $this->inputString = $inputString; } /** * To. String. - * - * @return string */ - public function __toString() + public function __toString(): string { return $this->inputString; } diff --git a/api/vendor/psy/psysh/src/Output/OutputPager.php b/api/vendor/psy/psysh/src/Output/OutputPager.php index b9dcdf82d..0652b70bf 100644 --- a/api/vendor/psy/psysh/src/Output/OutputPager.php +++ b/api/vendor/psy/psysh/src/Output/OutputPager.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/Output/PassthruPager.php b/api/vendor/psy/psysh/src/Output/PassthruPager.php index 3eaa9cf78..6ad17b5b9 100644 --- a/api/vendor/psy/psysh/src/Output/PassthruPager.php +++ b/api/vendor/psy/psysh/src/Output/PassthruPager.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/Output/ProcOutputPager.php b/api/vendor/psy/psysh/src/Output/ProcOutputPager.php index d31471ca0..42e40db5c 100644 --- a/api/vendor/psy/psysh/src/Output/ProcOutputPager.php +++ b/api/vendor/psy/psysh/src/Output/ProcOutputPager.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -32,9 +32,9 @@ class ProcOutputPager extends StreamOutput implements OutputPager * Constructor. * * @param StreamOutput $output - * @param string $cmd Pager process command (default: 'less -R -S -F -X') + * @param string $cmd Pager process command (default: 'less -R -F -X') */ - public function __construct(StreamOutput $output, $cmd = 'less -R -S -F -X') + public function __construct(StreamOutput $output, string $cmd = 'less -R -F -X') { $this->stream = $output->getStream(); $this->cmd = $cmd; @@ -48,12 +48,13 @@ public function __construct(StreamOutput $output, $cmd = 'less -R -S -F -X') * * @throws \RuntimeException When unable to write output (should never happen) */ - public function doWrite($message, $newline) + public function doWrite($message, $newline): void { $pipe = $this->getPipe(); if (false === @\fwrite($pipe, $message.($newline ? \PHP_EOL : ''))) { // @codeCoverageIgnoreStart // should never happen + $this->close(); throw new \RuntimeException('Unable to write output'); // @codeCoverageIgnoreEnd } diff --git a/api/vendor/psy/psysh/src/Output/ShellOutput.php b/api/vendor/psy/psysh/src/Output/ShellOutput.php index 5b8931bba..a0c2a699f 100644 --- a/api/vendor/psy/psysh/src/Output/ShellOutput.php +++ b/api/vendor/psy/psysh/src/Output/ShellOutput.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,7 +13,6 @@ use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Formatter\OutputFormatterInterface; -use Symfony\Component\Console\Formatter\OutputFormatterStyle; use Symfony\Component\Console\Output\ConsoleOutput; /** @@ -24,8 +23,13 @@ class ShellOutput extends ConsoleOutput const NUMBER_LINES = 128; private $paging = 0; + + /** @var OutputPager */ private $pager; + /** @var Theme */ + private $theme; + /** * Construct a ShellOutput instance. * @@ -34,10 +38,11 @@ class ShellOutput extends ConsoleOutput * @param OutputFormatterInterface|null $formatter (default: null) * @param string|OutputPager|null $pager (default: null) */ - public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = null, OutputFormatterInterface $formatter = null, $pager = null) + public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = null, ?OutputFormatterInterface $formatter = null, $pager = null, $theme = null) { parent::__construct($verbosity, $decorated, $formatter); + $this->theme = $theme ?? new Theme('modern'); $this->initFormatters(); if ($pager === null) { @@ -64,7 +69,7 @@ public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = nu * @param string|array|\Closure $messages A string, array of strings or a callback * @param int $type (default: 0) */ - public function page($messages, $type = 0) + public function page($messages, int $type = 0) { if (\is_string($messages)) { $messages = (array) $messages; @@ -114,7 +119,7 @@ public function stopPaging() * @param bool $newline Whether to add a newline or not * @param int $type The type of output */ - public function write($messages, $newline = false, $type = 0) + public function write($messages, $newline = false, $type = 0): void { if ($this->getVerbosity() === self::VERBOSITY_QUIET) { return; @@ -149,7 +154,7 @@ public function write($messages, $newline = false, $type = 0) * @param string $message A message to write to the output * @param bool $newline Whether to add a newline or not */ - public function doWrite($message, $newline) + public function doWrite($message, $newline): void { if ($this->paging > 0) { $this->pager->doWrite($message, $newline); @@ -158,6 +163,15 @@ public function doWrite($message, $newline) } } + /** + * Set the output Theme. + */ + public function setTheme(Theme $theme) + { + $this->theme = $theme; + $this->initFormatters(); + } + /** * Flush and close the output pager. */ @@ -173,36 +187,22 @@ private function closePager() */ private function initFormatters() { - $formatter = $this->getFormatter(); - - $formatter->setStyle('warning', new OutputFormatterStyle('black', 'yellow')); - $formatter->setStyle('error', new OutputFormatterStyle('white', 'red', ['bold'])); - $formatter->setStyle('aside', new OutputFormatterStyle('blue')); - $formatter->setStyle('strong', new OutputFormatterStyle(null, null, ['bold'])); - $formatter->setStyle('return', new OutputFormatterStyle('cyan')); - $formatter->setStyle('urgent', new OutputFormatterStyle('red')); - $formatter->setStyle('hidden', new OutputFormatterStyle('black')); - - // Visibility - $formatter->setStyle('public', new OutputFormatterStyle(null, null, ['bold'])); - $formatter->setStyle('protected', new OutputFormatterStyle('yellow')); - $formatter->setStyle('private', new OutputFormatterStyle('red')); - $formatter->setStyle('global', new OutputFormatterStyle('cyan', null, ['bold'])); - $formatter->setStyle('const', new OutputFormatterStyle('cyan')); - $formatter->setStyle('class', new OutputFormatterStyle('blue', null, ['underscore'])); - $formatter->setStyle('function', new OutputFormatterStyle(null)); - $formatter->setStyle('default', new OutputFormatterStyle(null)); - - // Types - $formatter->setStyle('number', new OutputFormatterStyle('magenta')); - $formatter->setStyle('string', new OutputFormatterStyle('green')); - $formatter->setStyle('bool', new OutputFormatterStyle('cyan')); - $formatter->setStyle('keyword', new OutputFormatterStyle('yellow')); - $formatter->setStyle('comment', new OutputFormatterStyle('blue')); - $formatter->setStyle('object', new OutputFormatterStyle('blue')); - $formatter->setStyle('resource', new OutputFormatterStyle('yellow')); - - // Code-specific formatting - $formatter->setStyle('inline_html', new OutputFormatterStyle('cyan')); + $useGrayFallback = !$this->grayExists(); + $this->theme->applyStyles($this->getFormatter(), $useGrayFallback); + $this->theme->applyErrorStyles($this->getErrorOutput()->getFormatter(), $useGrayFallback); + } + + /** + * Checks if the "gray" color exists on the output. + */ + private function grayExists(): bool + { + try { + $this->write(''); + } catch (\InvalidArgumentException $e) { + return false; + } + + return true; } } diff --git a/api/vendor/psy/psysh/src/Output/Theme.php b/api/vendor/psy/psysh/src/Output/Theme.php new file mode 100644 index 000000000..01023f2ec --- /dev/null +++ b/api/vendor/psy/psysh/src/Output/Theme.php @@ -0,0 +1,282 @@ + true, + ]; + + const CLASSIC_THEME = [ + 'compact' => true, + + 'prompt' => '>>> ', + 'bufferPrompt' => '... ', + 'replayPrompt' => '--> ', + 'returnValue' => '=> ', + ]; + + const DEFAULT_STYLES = [ + 'info' => ['white', 'blue', ['bold']], + 'warning' => ['black', 'yellow'], + 'error' => ['white', 'red', ['bold']], + 'whisper' => ['gray'], + + 'aside' => ['blue'], + 'strong' => [null, null, ['bold']], + 'return' => ['cyan'], + 'urgent' => ['red'], + 'hidden' => ['black'], + + // Visibility + 'public' => [null, null, ['bold']], + 'protected' => ['yellow'], + 'private' => ['red'], + 'global' => ['cyan', null, ['bold']], + 'const' => ['cyan'], + 'class' => ['blue', null, ['underscore']], + 'function' => [null], + 'default' => [null], + + // Types + 'number' => ['magenta'], + 'integer' => ['magenta'], + 'float' => ['yellow'], + 'string' => ['green'], + 'bool' => ['cyan'], + 'keyword' => ['yellow'], + 'comment' => ['blue'], + 'code_comment' => ['gray'], + 'object' => ['blue'], + 'resource' => ['yellow'], + + // Code-specific formatting + 'inline_html' => ['cyan'], + ]; + + const ERROR_STYLES = ['info', 'warning', 'error', 'whisper', 'class']; + + private $compact = false; + + private $prompt = '> '; + private $bufferPrompt = '. '; + private $replayPrompt = '- '; + private $returnValue = '= '; + + private $grayFallback = 'blue'; + + private $styles = []; + + /** + * @param string|array $config theme name or config options + */ + public function __construct($config = 'modern') + { + if (\is_string($config)) { + switch ($config) { + case 'modern': + $config = static::MODERN_THEME; + break; + + case 'compact': + $config = static::COMPACT_THEME; + break; + + case 'classic': + $config = static::CLASSIC_THEME; + break; + + default: + \trigger_error(\sprintf('Unknown theme: %s', $config), \E_USER_NOTICE); + $config = static::MODERN_THEME; + break; + } + } + + if (!\is_array($config)) { + throw new \InvalidArgumentException('Invalid theme config'); + } + + foreach ($config as $name => $value) { + switch ($name) { + case 'compact': + $this->setCompact($value); + break; + + case 'prompt': + $this->setPrompt($value); + break; + + case 'bufferPrompt': + $this->setBufferPrompt($value); + break; + + case 'replayPrompt': + $this->setReplayPrompt($value); + break; + + case 'returnValue': + $this->setReturnValue($value); + break; + + case 'grayFallback': + $this->setGrayFallback($value); + break; + } + } + + $this->setStyles($config['styles'] ?? []); + } + + /** + * Enable or disable compact output. + */ + public function setCompact(bool $compact) + { + $this->compact = $compact; + } + + /** + * Get whether to use compact output. + */ + public function compact(): bool + { + return $this->compact; + } + + /** + * Set the prompt string. + */ + public function setPrompt(string $prompt) + { + $this->prompt = $prompt; + } + + /** + * Get the prompt string. + */ + public function prompt(): string + { + return $this->prompt; + } + + /** + * Set the buffer prompt string (used for multi-line input continuation). + */ + public function setBufferPrompt(string $bufferPrompt) + { + $this->bufferPrompt = $bufferPrompt; + } + + /** + * Get the buffer prompt string (used for multi-line input continuation). + */ + public function bufferPrompt(): string + { + return $this->bufferPrompt; + } + + /** + * Set the prompt string used when replaying history. + */ + public function setReplayPrompt(string $replayPrompt) + { + $this->replayPrompt = $replayPrompt; + } + + /** + * Get the prompt string used when replaying history. + */ + public function replayPrompt(): string + { + return $this->replayPrompt; + } + + /** + * Set the return value marker. + */ + public function setReturnValue(string $returnValue) + { + $this->returnValue = $returnValue; + } + + /** + * Get the return value marker. + */ + public function returnValue(): string + { + return $this->returnValue; + } + + /** + * Set the fallback color when "gray" is unavailable. + */ + public function setGrayFallback(string $grayFallback) + { + $this->grayFallback = $grayFallback; + } + + /** + * Set the shell output formatter styles. + * + * Accepts a map from style name to [fg, bg, options], for example: + * + * [ + * 'error' => ['white', 'red', ['bold']], + * 'warning' => ['black', 'yellow'], + * ] + * + * Foreground, background or options can be null, or even omitted entirely. + */ + public function setStyles(array $styles) + { + foreach (\array_keys(static::DEFAULT_STYLES) as $name) { + $this->styles[$name] = $styles[$name] ?? static::DEFAULT_STYLES[$name]; + } + } + + /** + * Apply the current output formatter styles. + */ + public function applyStyles(OutputFormatterInterface $formatter, bool $useGrayFallback) + { + foreach (\array_keys(static::DEFAULT_STYLES) as $name) { + $formatter->setStyle($name, new OutputFormatterStyle(...$this->getStyle($name, $useGrayFallback))); + } + } + + /** + * Apply the current output formatter error styles. + */ + public function applyErrorStyles(OutputFormatterInterface $errorFormatter, bool $useGrayFallback) + { + foreach (static::ERROR_STYLES as $name) { + $errorFormatter->setStyle($name, new OutputFormatterStyle(...$this->getStyle($name, $useGrayFallback))); + } + } + + private function getStyle(string $name, bool $useGrayFallback): array + { + return \array_map(function ($style) use ($useGrayFallback) { + return ($useGrayFallback && $style === 'gray') ? $this->grayFallback : $style; + }, $this->styles[$name]); + } +} diff --git a/api/vendor/psy/psysh/src/ParserFactory.php b/api/vendor/psy/psysh/src/ParserFactory.php index 90c75bc28..2b37ccd09 100644 --- a/api/vendor/psy/psysh/src/ParserFactory.php +++ b/api/vendor/psy/psysh/src/ParserFactory.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -11,81 +11,25 @@ namespace Psy; -use PhpParser\Lexer; use PhpParser\Parser; use PhpParser\ParserFactory as OriginalParserFactory; /** - * Parser factory to abstract over PHP parser library versions. + * Parser factory to abstract over PHP Parser library versions. */ class ParserFactory { - const ONLY_PHP5 = 'ONLY_PHP5'; - const ONLY_PHP7 = 'ONLY_PHP7'; - const PREFER_PHP5 = 'PREFER_PHP5'; - const PREFER_PHP7 = 'PREFER_PHP7'; - - /** - * Possible kinds of parsers for the factory, from PHP parser library. - * - * @return array - */ - public static function getPossibleKinds() - { - return ['ONLY_PHP5', 'ONLY_PHP7', 'PREFER_PHP5', 'PREFER_PHP7']; - } - - /** - * Is this parser factory supports kinds? - * - * PHP parser < 2.0 doesn't support kinds, >= 2.0 — does. - * - * @return bool - */ - public function hasKindsSupport() - { - return \class_exists(OriginalParserFactory::class); - } - - /** - * Default kind (if supported, based on current interpreter's version). - * - * @return string|null - */ - public function getDefaultKind() - { - if ($this->hasKindsSupport()) { - return \version_compare(\PHP_VERSION, '7.0', '>=') ? static::ONLY_PHP7 : static::ONLY_PHP5; - } - } - /** - * New parser instance with given kind. - * - * @param string|null $kind One of class constants (only for PHP parser 2.0 and above) - * - * @return Parser + * New parser instance. */ - public function createParser($kind = null) + public function createParser(): Parser { - if ($this->hasKindsSupport()) { - $originalFactory = new OriginalParserFactory(); - - $kind = $kind ?: $this->getDefaultKind(); - - if (!\in_array($kind, static::getPossibleKinds())) { - throw new \InvalidArgumentException('Unknown parser kind'); - } - - $parser = $originalFactory->create(\constant(OriginalParserFactory::class.'::'.$kind)); - } else { - if ($kind !== null) { - throw new \InvalidArgumentException('Install PHP Parser v2.x to specify parser kind'); - } + $factory = new OriginalParserFactory(); - $parser = new Parser(new Lexer()); + if (!\method_exists($factory, 'createForHostVersion')) { + return $factory->create(OriginalParserFactory::PREFER_PHP7); } - return $parser; + return $factory->createForHostVersion(); } } diff --git a/api/vendor/psy/psysh/src/Readline/GNUReadline.php b/api/vendor/psy/psysh/src/Readline/GNUReadline.php index 179cd29ae..28fd5d8c6 100644 --- a/api/vendor/psy/psysh/src/Readline/GNUReadline.php +++ b/api/vendor/psy/psysh/src/Readline/GNUReadline.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -34,10 +34,8 @@ class GNUReadline implements Readline * * NOTE: As of PHP 7.4, PHP sometimes has history support in the Libedit * wrapper, so that will use the GNUReadline implementation as well! - * - * @return bool */ - public static function isSupported() + public static function isSupported(): bool { return \function_exists('readline') && \function_exists('readline_list_history'); } @@ -47,34 +45,24 @@ public static function isSupported() * * Currently, the GNU readline implementation does, but the libedit wrapper does not. */ - public static function supportsBracketedPaste() + public static function supportsBracketedPaste(): bool { - return self::isSupported() && \stripos(\readline_info('library_version'), 'editline') === false; + return self::isSupported() && \stripos(\readline_info('library_version') ?: '', 'editline') === false; } - /** - * GNU Readline constructor. - * - * @param string|false $historyFile - * @param int $historySize - * @param bool $eraseDups - */ public function __construct($historyFile = null, $historySize = 0, $eraseDups = false) { $this->historyFile = ($historyFile !== null) ? $historyFile : false; $this->historySize = $historySize; $this->eraseDups = $eraseDups; - // HHVM errors on this, so HHVM doesn't get a readline_name. - if (!\defined('HHVM_VERSION')) { - \readline_info('readline_name', 'psysh'); - } + \readline_info('readline_name', 'psysh'); } /** * {@inheritdoc} */ - public function addHistory($line) + public function addHistory(string $line): bool { if ($res = \readline_add_history($line)) { $this->writeHistory(); @@ -86,7 +74,7 @@ public function addHistory($line) /** * {@inheritdoc} */ - public function clearHistory() + public function clearHistory(): bool { if ($res = \readline_clear_history()) { $this->writeHistory(); @@ -98,7 +86,7 @@ public function clearHistory() /** * {@inheritdoc} */ - public function listHistory() + public function listHistory(): array { return \readline_list_history(); } @@ -106,17 +94,9 @@ public function listHistory() /** * {@inheritdoc} */ - public function readHistory() + public function readHistory(): bool { - // Workaround PHP bug #69054 - // - // If open_basedir is set, readline_read_history() segfaults. This was fixed in 5.6.7: - // - // https://github.com/php/php-src/blob/423a057023ef3c00d2ffc16a6b43ba01d0f71796/NEWS#L19-L21 - // - if (\version_compare(\PHP_VERSION, '5.6.7', '>=') || !\ini_get('open_basedir')) { - \readline_read_history(); - } + \readline_read_history(); \readline_clear_history(); return \readline_read_history($this->historyFile); @@ -125,7 +105,7 @@ public function readHistory() /** * {@inheritdoc} */ - public function readline($prompt = null) + public function readline(?string $prompt = null) { return \readline($prompt); } @@ -141,7 +121,7 @@ public function redisplay() /** * {@inheritdoc} */ - public function writeHistory() + public function writeHistory(): bool { // We have to write history first, since it is used // by Libedit to list history diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Autocompleter.php b/api/vendor/psy/psysh/src/Readline/Hoa/Autocompleter.php new file mode 100644 index 000000000..6955de622 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Autocompleter.php @@ -0,0 +1,57 @@ +setAutocompleters($autocompleters); + + return; + } + + /** + * Complete a word. + * Returns null for no word, a full-word or an array of full-words. + */ + public function complete(&$prefix) + { + foreach ($this->getAutocompleters() as $autocompleter) { + $preg = \preg_match( + '#('.$autocompleter->getWordDefinition().')$#u', + $prefix, + $match + ); + + if (0 === $preg) { + continue; + } + + $_prefix = $match[0]; + + if (null === $out = $autocompleter->complete($_prefix)) { + continue; + } + + $prefix = $_prefix; + + return $out; + } + + return null; + } + + /** + * Set/initialize list of autocompleters. + */ + protected function setAutocompleters(array $autocompleters) + { + $old = $this->_autocompleters; + $this->_autocompleters = new \ArrayObject($autocompleters); + + return $old; + } + + /** + * Get list of autocompleters. + */ + public function getAutocompleters() + { + return $this->_autocompleters; + } + + /** + * Get definition of a word. + */ + public function getWordDefinition(): string + { + return '.*'; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/AutocompleterPath.php b/api/vendor/psy/psysh/src/Readline/Hoa/AutocompleterPath.php new file mode 100644 index 000000000..f1eaca0ea --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/AutocompleterPath.php @@ -0,0 +1,194 @@ +setRoot($root); + } + + if (null !== $iteratorFactory) { + $this->setIteratorFactory($iteratorFactory); + } + } + + /** + * Complete a word. + * Returns null for no word, a full-word or an array of full-words. + */ + public function complete(&$prefix) + { + $root = $this->getRoot(); + + if (static::PWD === $root) { + $root = \getcwd(); + } + + $path = $root.\DIRECTORY_SEPARATOR.$prefix; + + if (!\is_dir($path)) { + $path = \dirname($path).\DIRECTORY_SEPARATOR; + $prefix = \basename($prefix); + } else { + $prefix = null; + } + + $iteratorFactory = $this->getIteratorFactory() ?: + static::getDefaultIteratorFactory(); + + try { + $iterator = $iteratorFactory($path); + $out = []; + $length = \mb_strlen($prefix); + + foreach ($iterator as $fileinfo) { + $filename = $fileinfo->getFilename(); + + if (null === $prefix || + (\mb_substr($filename, 0, $length) === $prefix)) { + if ($fileinfo->isDir()) { + $out[] = $filename.'/'; + } else { + $out[] = $filename; + } + } + } + } catch (\Exception $e) { + return null; + } + + $count = \count($out); + + if (1 === $count) { + return $out[0]; + } + + if (0 === $count) { + return null; + } + + return $out; + } + + /** + * Get definition of a word. + */ + public function getWordDefinition(): string + { + return '/?[\w\d\\_\-\.]+(/[\w\d\\_\-\.]*)*'; + } + + /** + * Set root. + */ + public function setRoot(string $root) + { + $old = $this->_root; + $this->_root = $root; + + return $old; + } + + /** + * Get root. + */ + public function getRoot() + { + return $this->_root; + } + + /** + * Set iterator factory (a finder). + */ + public function setIteratorFactory(\Closure $iteratorFactory) + { + $old = $this->_iteratorFactory; + $this->_iteratorFactory = $iteratorFactory; + + return $old; + } + + /** + * Get iterator factory. + */ + public function getIteratorFactory() + { + return $this->_iteratorFactory; + } + + /** + * Get default iterator factory (based on \DirectoryIterator). + */ + public static function getDefaultIteratorFactory() + { + return function ($path) { + return new \DirectoryIterator($path); + }; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/AutocompleterWord.php b/api/vendor/psy/psysh/src/Readline/Hoa/AutocompleterWord.php new file mode 100644 index 000000000..c60823eac --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/AutocompleterWord.php @@ -0,0 +1,119 @@ +setWords($words); + } + + /** + * Complete a word. + * Returns null for no word, a full-word or an array of full-words. + * + * @param string &$prefix Prefix to autocomplete + * + * @return mixed + */ + public function complete(&$prefix) + { + $out = []; + $length = \mb_strlen($prefix); + + foreach ($this->getWords() as $word) { + if (\mb_substr($word, 0, $length) === $prefix) { + $out[] = $word; + } + } + + if (empty($out)) { + return null; + } + + if (1 === \count($out)) { + return $out[0]; + } + + return $out; + } + + /** + * Get definition of a word. + */ + public function getWordDefinition(): string + { + return '\b\w+'; + } + + /** + * Set list of words. + * + * @param array $words words + * + * @return array + */ + public function setWords(array $words) + { + $old = $this->_words; + $this->_words = $words; + + return $old; + } + + /** + * Get list of words. + */ + public function getWords(): array + { + return $this->_words; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Console.php b/api/vendor/psy/psysh/src/Readline/Hoa/Console.php new file mode 100644 index 000000000..17b1fecc6 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Console.php @@ -0,0 +1,347 @@ + $repeat) { + return; + } elseif (1 === $repeat) { + $handle = \explode(' ', $steps); + } else { + $handle = \explode(' ', $steps, 1); + } + + $tput = Console::getTput(); + $output = Console::getOutput(); + + foreach ($handle as $step) { + switch ($step) { + case 'u': + case 'up': + case '↑': + $output->writeAll( + \str_replace( + '%p1%d', + $repeat, + $tput->get('parm_up_cursor') + ) + ); + + break; + + case 'U': + case 'UP': + static::moveTo(null, 1); + + break; + + case 'r': + case 'right': + case '→': + $output->writeAll( + \str_replace( + '%p1%d', + $repeat, + $tput->get('parm_right_cursor') + ) + ); + + break; + + case 'R': + case 'RIGHT': + static::moveTo(9999); + + break; + + case 'd': + case 'down': + case '↓': + $output->writeAll( + \str_replace( + '%p1%d', + $repeat, + $tput->get('parm_down_cursor') + ) + ); + + break; + + case 'D': + case 'DOWN': + static::moveTo(null, 9999); + + break; + + case 'l': + case 'left': + case '←': + $output->writeAll( + \str_replace( + '%p1%d', + $repeat, + $tput->get('parm_left_cursor') + ) + ); + + break; + + case 'L': + case 'LEFT': + static::moveTo(1); + + break; + } + } + } + + /** + * Move to the line X and the column Y. + * If null, use the current coordinate. + */ + public static function moveTo(?int $x = null, ?int $y = null) + { + if (null === $x || null === $y) { + $position = static::getPosition(); + + if (null === $x) { + $x = $position['x']; + } + + if (null === $y) { + $y = $position['y']; + } + } + + Console::getOutput()->writeAll( + \str_replace( + ['%i%p1%d', '%p2%d'], + [$y, $x], + Console::getTput()->get('cursor_address') + ) + ); + } + + /** + * Get current position (x and y) of the cursor. + */ + public static function getPosition(): array + { + $tput = Console::getTput(); + $user7 = $tput->get('user7'); + + if (null === $user7) { + return [ + 'x' => 0, + 'y' => 0, + ]; + } + + Console::getOutput()->writeAll($user7); + + $input = Console::getInput(); + + // Read $tput->get('user6'). + $input->read(2); // skip \033 and [. + + $x = null; + $y = null; + $handle = &$y; + + while (true) { + $char = $input->readCharacter(); + + switch ($char) { + case ';': + $handle = &$x; + + break; + + case 'R': + break 2; + + default: + $handle .= $char; + } + } + + return [ + 'x' => (int) $x, + 'y' => (int) $y, + ]; + } + + /** + * Save current position. + */ + public static function save() + { + Console::getOutput()->writeAll( + Console::getTput()->get('save_cursor') + ); + } + + /** + * Restore cursor to the last saved position. + */ + public static function restore() + { + Console::getOutput()->writeAll( + Console::getTput()->get('restore_cursor') + ); + } + + /** + * Clear the screen. + * Part can be: + * • a, all, ↕ : clear entire screen and static::move(1, 1); + * • u, up, ↑ : clear from cursor to beginning of the screen; + * • r, right, → : clear from cursor to the end of the line; + * • d, down, ↓ : clear from cursor to end of the screen; + * • l, left, ← : clear from cursor to beginning of the screen; + * • line, ↔ : clear all the line and static::move(1). + * Parts can be concatenated by a single space. + */ + public static function clear(string $parts = 'all') + { + $tput = Console::getTput(); + $output = Console::getOutput(); + + foreach (\explode(' ', $parts) as $part) { + switch ($part) { + case 'a': + case 'all': + case '↕': + $output->writeAll($tput->get('clear_screen')); + static::moveTo(1, 1); + + break; + + case 'u': + case 'up': + case '↑': + $output->writeAll("\033[1J"); + + break; + + case 'r': + case 'right': + case '→': + $output->writeAll($tput->get('clr_eol')); + + break; + + case 'd': + case 'down': + case '↓': + $output->writeAll($tput->get('clr_eos')); + + break; + + case 'l': + case 'left': + case '←': + $output->writeAll($tput->get('clr_bol')); + + break; + + case 'line': + case '↔': + $output->writeAll("\r".$tput->get('clr_eol')); + + break; + } + } + } + + /** + * Hide the cursor. + */ + public static function hide() + { + Console::getOutput()->writeAll( + Console::getTput()->get('cursor_invisible') + ); + } + + /** + * Show the cursor. + */ + public static function show() + { + Console::getOutput()->writeAll( + Console::getTput()->get('cursor_visible') + ); + } + + /** + * Colorize cursor. + * Attributes can be: + * • n, normal : normal; + * • b, bold : bold; + * • u, underlined : underlined; + * • bl, blink : blink; + * • i, inverse : inverse; + * • !b, !bold : normal weight; + * • !u, !underlined : not underlined; + * • !bl, !blink : steady; + * • !i, !inverse : positive; + * • fg(color), foreground(color) : set foreground to “color”; + * • bg(color), background(color) : set background to “color”. + * “color” can be: + * • default; + * • black; + * • red; + * • green; + * • yellow; + * • blue; + * • magenta; + * • cyan; + * • white; + * • 0-256 (classic palette); + * • #hexa. + * Attributes can be concatenated by a single space. + */ + public static function colorize(string $attributes) + { + static $_rgbTo256 = null; + + if (null === $_rgbTo256) { + $_rgbTo256 = [ + '000000', '800000', '008000', '808000', '000080', '800080', + '008080', 'c0c0c0', '808080', 'ff0000', '00ff00', 'ffff00', + '0000ff', 'ff00ff', '00ffff', 'ffffff', '000000', '00005f', + '000087', '0000af', '0000d7', '0000ff', '005f00', '005f5f', + '005f87', '005faf', '005fd7', '005fff', '008700', '00875f', + '008787', '0087af', '0087d7', '0087ff', '00af00', '00af5f', + '00af87', '00afaf', '00afd7', '00afff', '00d700', '00d75f', + '00d787', '00d7af', '00d7d7', '00d7ff', '00ff00', '00ff5f', + '00ff87', '00ffaf', '00ffd7', '00ffff', '5f0000', '5f005f', + '5f0087', '5f00af', '5f00d7', '5f00ff', '5f5f00', '5f5f5f', + '5f5f87', '5f5faf', '5f5fd7', '5f5fff', '5f8700', '5f875f', + '5f8787', '5f87af', '5f87d7', '5f87ff', '5faf00', '5faf5f', + '5faf87', '5fafaf', '5fafd7', '5fafff', '5fd700', '5fd75f', + '5fd787', '5fd7af', '5fd7d7', '5fd7ff', '5fff00', '5fff5f', + '5fff87', '5fffaf', '5fffd7', '5fffff', '870000', '87005f', + '870087', '8700af', '8700d7', '8700ff', '875f00', '875f5f', + '875f87', '875faf', '875fd7', '875fff', '878700', '87875f', + '878787', '8787af', '8787d7', '8787ff', '87af00', '87af5f', + '87af87', '87afaf', '87afd7', '87afff', '87d700', '87d75f', + '87d787', '87d7af', '87d7d7', '87d7ff', '87ff00', '87ff5f', + '87ff87', '87ffaf', '87ffd7', '87ffff', 'af0000', 'af005f', + 'af0087', 'af00af', 'af00d7', 'af00ff', 'af5f00', 'af5f5f', + 'af5f87', 'af5faf', 'af5fd7', 'af5fff', 'af8700', 'af875f', + 'af8787', 'af87af', 'af87d7', 'af87ff', 'afaf00', 'afaf5f', + 'afaf87', 'afafaf', 'afafd7', 'afafff', 'afd700', 'afd75f', + 'afd787', 'afd7af', 'afd7d7', 'afd7ff', 'afff00', 'afff5f', + 'afff87', 'afffaf', 'afffd7', 'afffff', 'd70000', 'd7005f', + 'd70087', 'd700af', 'd700d7', 'd700ff', 'd75f00', 'd75f5f', + 'd75f87', 'd75faf', 'd75fd7', 'd75fff', 'd78700', 'd7875f', + 'd78787', 'd787af', 'd787d7', 'd787ff', 'd7af00', 'd7af5f', + 'd7af87', 'd7afaf', 'd7afd7', 'd7afff', 'd7d700', 'd7d75f', + 'd7d787', 'd7d7af', 'd7d7d7', 'd7d7ff', 'd7ff00', 'd7ff5f', + 'd7ff87', 'd7ffaf', 'd7ffd7', 'd7ffff', 'ff0000', 'ff005f', + 'ff0087', 'ff00af', 'ff00d7', 'ff00ff', 'ff5f00', 'ff5f5f', + 'ff5f87', 'ff5faf', 'ff5fd7', 'ff5fff', 'ff8700', 'ff875f', + 'ff8787', 'ff87af', 'ff87d7', 'ff87ff', 'ffaf00', 'ffaf5f', + 'ffaf87', 'ffafaf', 'ffafd7', 'ffafff', 'ffd700', 'ffd75f', + 'ffd787', 'ffd7af', 'ffd7d7', 'ffd7ff', 'ffff00', 'ffff5f', + 'ffff87', 'ffffaf', 'ffffd7', 'ffffff', '080808', '121212', + '1c1c1c', '262626', '303030', '3a3a3a', '444444', '4e4e4e', + '585858', '606060', '666666', '767676', '808080', '8a8a8a', + '949494', '9e9e9e', 'a8a8a8', 'b2b2b2', 'bcbcbc', 'c6c6c6', + 'd0d0d0', 'dadada', 'e4e4e4', 'eeeeee', + ]; + } + + $tput = Console::getTput(); + + if (1 >= $tput->count('max_colors')) { + return; + } + + $handle = []; + + foreach (\explode(' ', $attributes) as $attribute) { + switch ($attribute) { + case 'n': + case 'normal': + $handle[] = 0; + + break; + + case 'b': + case 'bold': + $handle[] = 1; + + break; + + case 'u': + case 'underlined': + $handle[] = 4; + + break; + + case 'bl': + case 'blink': + $handle[] = 5; + + break; + + case 'i': + case 'inverse': + $handle[] = 7; + + break; + + case '!b': + case '!bold': + $handle[] = 22; + + break; + + case '!u': + case '!underlined': + $handle[] = 24; + + break; + + case '!bl': + case '!blink': + $handle[] = 25; + + break; + + case '!i': + case '!inverse': + $handle[] = 27; + + break; + + default: + if (0 === \preg_match('#^([^\(]+)\(([^\)]+)\)$#', $attribute, $m)) { + break; + } + + $shift = 0; + + switch ($m[1]) { + case 'fg': + case 'foreground': + $shift = 0; + + break; + + case 'bg': + case 'background': + $shift = 10; + + break; + + default: + break 2; + } + + $_handle = 0; + $_keyword = true; + + switch ($m[2]) { + case 'black': + $_handle = 30; + + break; + + case 'red': + $_handle = 31; + + break; + + case 'green': + $_handle = 32; + + break; + + case 'yellow': + $_handle = 33; + + break; + + case 'blue': + $_handle = 34; + + break; + + case 'magenta': + $_handle = 35; + + break; + + case 'cyan': + $_handle = 36; + + break; + + case 'white': + $_handle = 37; + + break; + + case 'default': + $_handle = 39; + + break; + + default: + $_keyword = false; + + if (256 <= $tput->count('max_colors') && + '#' === $m[2][0]) { + $rgb = \hexdec(\substr($m[2], 1)); + $r = ($rgb >> 16) & 255; + $g = ($rgb >> 8) & 255; + $b = $rgb & 255; + $distance = null; + + foreach ($_rgbTo256 as $i => $_rgb) { + $_rgb = \hexdec($_rgb); + $_r = ($_rgb >> 16) & 255; + $_g = ($_rgb >> 8) & 255; + $_b = $_rgb & 255; + + $d = \sqrt( + ($_r - $r) ** 2 + + ($_g - $g) ** 2 + + ($_b - $b) ** 2 + ); + + if (null === $distance || + $d <= $distance) { + $distance = $d; + $_handle = $i; + } + } + } else { + $_handle = (int) ($m[2]); + } + } + + if (true === $_keyword) { + $handle[] = $_handle + $shift; + } else { + $handle[] = (38 + $shift).';5;'.$_handle; + } + } + } + + Console::getOutput()->writeAll("\033[".\implode(';', $handle).'m'); + + return; + } + + /** + * Change color number to a specific RGB color. + */ + public static function changeColor(int $fromCode, int $toColor) + { + $tput = Console::getTput(); + + if (true !== $tput->has('can_change')) { + return; + } + + $r = ($toColor >> 16) & 255; + $g = ($toColor >> 8) & 255; + $b = $toColor & 255; + + Console::getOutput()->writeAll( + \str_replace( + [ + '%p1%d', + 'rgb:', + '%p2%{255}%*%{1000}%/%2.2X/', + '%p3%{255}%*%{1000}%/%2.2X/', + '%p4%{255}%*%{1000}%/%2.2X', + ], + [ + $fromCode, + '', + \sprintf('%02x', $r), + \sprintf('%02x', $g), + \sprintf('%02x', $b), + ], + $tput->get('initialize_color') + ) + ); + + return; + } + + /** + * Set cursor style. + * Style can be: + * • b, block, ▋: block; + * • u, underline, _: underline; + * • v, vertical, |: vertical. + */ + public static function setStyle(string $style, bool $blink = true) + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + switch ($style) { + case 'u': + case 'underline': + case '_': + $_style = 2; + + break; + + case 'v': + case 'vertical': + case '|': + $_style = 5; + + break; + + case 'b': + case 'block': + case '▋': + default: + $_style = 1; + + break; + } + + if (false === $blink) { + ++$_style; + } + + // Not sure what tput entry we can use here… + Console::getOutput()->writeAll("\033[".$_style.' q'); + + return; + } + + /** + * Make a stupid “bip”. + */ + public static function bip() + { + Console::getOutput()->writeAll( + Console::getTput()->get('bell') + ); + } +} + +/* + * Advanced interaction. + */ +Console::advancedInteraction(); diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleException.php b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleException.php new file mode 100644 index 000000000..17e6f607b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleException.php @@ -0,0 +1,46 @@ +_input = $input; + + return; + } + + /** + * Get underlying stream. + */ + public function getStream(): StreamIn + { + return $this->_input; + } + + /** + * Test for end-of-file. + */ + public function eof(): bool + { + return $this->_input->eof(); + } + + /** + * Read n characters. + */ + public function read(int $length) + { + return $this->_input->read($length); + } + + /** + * Alias of $this->read(). + */ + public function readString(int $length) + { + return $this->_input->readString($length); + } + + /** + * Read a character. + */ + public function readCharacter() + { + return $this->_input->readCharacter(); + } + + /** + * Read a boolean. + */ + public function readBoolean() + { + return $this->_input->readBoolean(); + } + + /** + * Read an integer. + */ + public function readInteger(int $length = 1) + { + return $this->_input->readInteger($length); + } + + /** + * Read a float. + */ + public function readFloat(int $length = 1) + { + return $this->_input->readFloat($length); + } + + /** + * Read an array. + * Alias of the $this->scanf() method. + */ + public function readArray($argument = null) + { + return $this->_input->readArray($argument); + } + + /** + * Read a line. + */ + public function readLine() + { + return $this->_input->readLine(); + } + + /** + * Read all, i.e. read as much as possible. + */ + public function readAll(int $offset = 0) + { + return $this->_input->readAll($offset); + } + + /** + * Parse input from a stream according to a format. + */ + public function scanf(string $format): array + { + return $this->_input->scanf($format); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleOutput.php b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleOutput.php new file mode 100644 index 000000000..b7ed27951 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleOutput.php @@ -0,0 +1,208 @@ +_output = $output; + + return; + } + + /** + * Get the real output stream. + */ + public function getStream(): StreamOut + { + return $this->_output; + } + + /** + * Write n characters. + */ + public function write(string $string, int $length) + { + if (0 > $length) { + throw new ConsoleException('Length must be greater than 0, given %d.', 0, $length); + } + + $out = \substr($string, 0, $length); + + if (true === $this->isMultiplexerConsidered()) { + if (true === Console::isTmuxRunning()) { + $out = + "\033Ptmux;". + \str_replace("\033", "\033\033", $out). + "\033\\"; + } + + $length = \strlen($out); + } + + if (null === $this->_output) { + echo $out; + } else { + $this->_output->write($out, $length); + } + } + + /** + * Write a string. + */ + public function writeString(string $string) + { + $string = (string) $string; + + return $this->write($string, \strlen($string)); + } + + /** + * Write a character. + */ + public function writeCharacter(string $character) + { + return $this->write((string) $character[0], 1); + } + + /** + * Write a boolean. + */ + public function writeBoolean(bool $boolean) + { + return $this->write(((bool) $boolean) ? '1' : '0', 1); + } + + /** + * Write an integer. + */ + public function writeInteger(int $integer) + { + $integer = (string) (int) $integer; + + return $this->write($integer, \strlen($integer)); + } + + /** + * Write a float. + */ + public function writeFloat(float $float) + { + $float = (string) (float) $float; + + return $this->write($float, \strlen($float)); + } + + /** + * Write an array. + */ + public function writeArray(array $array) + { + $array = \var_export($array, true); + + return $this->write($array, \strlen($array)); + } + + /** + * Write a line. + */ + public function writeLine(string $line) + { + if (false === $n = \strpos($line, "\n")) { + return $this->write($line."\n", \strlen($line) + 1); + } + + ++$n; + + return $this->write(\substr($line, 0, $n), $n); + } + + /** + * Write all, i.e. as much as possible. + */ + public function writeAll(string $string) + { + return $this->write($string ?? '', \strlen($string ?? '')); + } + + /** + * Truncate a stream to a given length. + */ + public function truncate(int $size): bool + { + return false; + } + + /** + * Consider the multiplexer (if running) while writing on the output. + */ + public function considerMultiplexer(bool $consider): bool + { + $old = $this->_considerMultiplexer; + $this->_considerMultiplexer = $consider; + + return $old; + } + + /** + * Check whether the multiplexer must be considered or not. + */ + public function isMultiplexerConsidered(): bool + { + return $this->_considerMultiplexer; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleProcessus.php b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleProcessus.php new file mode 100644 index 000000000..da7298547 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleProcessus.php @@ -0,0 +1,892 @@ + value, or input). + */ + protected $_options = []; + + /** + * Current working directory. + */ + protected $_cwd = null; + + /** + * Environment. + */ + protected $_environment = null; + + /** + * Timeout. + */ + protected $_timeout = 30; + + /** + * Descriptor. + */ + protected $_descriptors = [ + 0 => ['pipe', 'r'], + 1 => ['pipe', 'w'], + 2 => ['pipe', 'w'], + ]; + + /** + * Pipe descriptors of the processus. + */ + protected $_pipes = null; + + /** + * Seekability of pipes. + */ + protected $_seekable = []; + + /** + * Start a processus. + */ + public function __construct( + string $command, + ?array $options = null, + ?array $descriptors = null, + ?string $cwd = null, + ?array $environment = null, + int $timeout = 30 + ) { + $this->setCommand($command); + + if (null !== $options) { + $this->setOptions($options); + } + + if (null !== $descriptors) { + $this->_descriptors = []; + + foreach ($descriptors as $descriptor => $nature) { + if (isset($this->_descriptors[$descriptor])) { + throw new ConsoleException('Pipe descriptor %d already exists, cannot '.'redefine it.', 0, $descriptor); + } + + $this->_descriptors[$descriptor] = $nature; + } + } + + $this->setCwd($cwd ?: \getcwd()); + + if (null !== $environment) { + $this->setEnvironment($environment); + } + + $this->setTimeout($timeout); + parent::__construct($this->getCommandLine(), null, true); + $this->getListener()->addIds(['input', 'output', 'timeout', 'start', 'stop']); + + return; + } + + /** + * Open the stream and return the associated resource. + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + $out = @\proc_open( + $streamName, + $this->_descriptors, + $this->_pipes, + $this->getCwd(), + $this->getEnvironment() + ); + + if (false === $out) { + throw new ConsoleException('Something wrong happen when running %s.', 1, $streamName); + } + + return $out; + } + + /** + * Close the current stream. + */ + protected function _close(): bool + { + foreach ($this->_pipes as $pipe) { + @\fclose($pipe); + } + + return (bool) @\proc_close($this->getStream()); + } + + /** + * Run the process and fire events (amongst start, stop, input, output and + * timeout). + * If an event returns false, it will close the current pipe. + * For a simple run without firing events, use the $this->open() method. + */ + public function run() + { + if (false === $this->isOpened()) { + $this->open(); + } else { + $this->_close(); + $this->_setStream($this->_open( + $this->getStreamName(), + $this->getStreamContext() + )); + } + + $this->getListener()->fire('start', new EventBucket()); + + $_read = []; + $_write = []; + $_except = []; + + foreach ($this->_pipes as $p => $pipe) { + switch ($this->_descriptors[$p][1]) { + case 'r': + \stream_set_blocking($pipe, false); + $_write[] = $pipe; + + break; + + case 'w': + case 'a': + \stream_set_blocking($pipe, true); + $_read[] = $pipe; + + break; + } + } + + while (true) { + foreach ($_read as $i => $r) { + if (false === \is_resource($r)) { + unset($_read[$i]); + } + } + + foreach ($_write as $i => $w) { + if (false === \is_resource($w)) { + unset($_write[$i]); + } + } + + foreach ($_except as $i => $e) { + if (false === \is_resource($e)) { + unset($_except[$i]); + } + } + + if (empty($_read) && empty($_write) && empty($_except)) { + break; + } + + $read = $_read; + $write = $_write; + $except = $_except; + $select = \stream_select($read, $write, $except, $this->getTimeout()); + + if (0 === $select) { + $this->getListener()->fire('timeout', new EventBucket()); + + break; + } + + foreach ($read as $i => $_r) { + $pipe = \array_search($_r, $this->_pipes); + $line = $this->readLine($pipe); + + if (false === $line) { + $result = [false]; + } else { + $result = $this->getListener()->fire( + 'output', + new EventBucket([ + 'pipe' => $pipe, + 'line' => $line, + ]) + ); + } + + if (true === \feof($_r) || \in_array(false, $result, true)) { + \fclose($_r); + unset($_read[$i]); + + break; + } + } + + foreach ($write as $j => $_w) { + $result = $this->getListener()->fire( + 'input', + new EventBucket([ + 'pipe' => \array_search($_w, $this->_pipes), + ]) + ); + + if (true === \feof($_w) || \in_array(false, $result, true)) { + \fclose($_w); + unset($_write[$j]); + } + } + + if (empty($_read)) { + break; + } + } + + $this->getListener()->fire('stop', new EventBucket()); + + return; + } + + /** + * Get pipe resource. + */ + protected function getPipe(int $pipe) + { + if (!isset($this->_pipes[$pipe])) { + throw new ConsoleException('Pipe descriptor %d does not exist, cannot read from it.', 2, $pipe); + } + + return $this->_pipes[$pipe]; + } + + /** + * Check if a pipe is seekable or not. + */ + protected function isPipeSeekable(int $pipe): bool + { + if (!isset($this->_seekable[$pipe])) { + $_pipe = $this->getPipe($pipe); + $data = \stream_get_meta_data($_pipe); + $this->_seekable[$pipe] = $data['seekable']; + } + + return $this->_seekable[$pipe]; + } + + /** + * Test for end-of-file. + */ + public function eof(int $pipe = 1): bool + { + return \feof($this->getPipe($pipe)); + } + + /** + * Read n characters. + */ + public function read(int $length, int $pipe = 1) + { + if (0 > $length) { + throw new ConsoleException('Length must be greater than 0, given %d.', 3, $length); + } + + return \fread($this->getPipe($pipe), $length); + } + + /** + * Alias of $this->read(). + */ + public function readString(int $length, int $pipe = 1) + { + return $this->read($length, $pipe); + } + + /** + * Read a character. + */ + public function readCharacter(int $pipe = 1) + { + return \fgetc($this->getPipe($pipe)); + } + + /** + * Read a boolean. + */ + public function readBoolean(int $pipe = 1) + { + return (bool) $this->read(1, $pipe); + } + + /** + * Read an integer. + */ + public function readInteger(int $length = 1, int $pipe = 1) + { + return (int) $this->read($length, $pipe); + } + + /** + * Read a float. + */ + public function readFloat(int $length = 1, int $pipe = 1) + { + return (float) $this->read($length, $pipe); + } + + /** + * Read an array. + * Alias of the $this->scanf() method. + */ + public function readArray(?string $format = null, int $pipe = 1) + { + return $this->scanf($format, $pipe); + } + + /** + * Read a line. + */ + public function readLine(int $pipe = 1) + { + return \stream_get_line($this->getPipe($pipe), 1 << 15, "\n"); + } + + /** + * Read all, i.e. read as much as possible. + */ + public function readAll(int $offset = -1, int $pipe = 1) + { + $_pipe = $this->getPipe($pipe); + + if (true === $this->isPipeSeekable($pipe)) { + $offset += \ftell($_pipe); + } else { + $offset = -1; + } + + return \stream_get_contents($_pipe, -1, $offset); + } + + /** + * Parse input from a stream according to a format. + */ + public function scanf(string $format, int $pipe = 1): array + { + return \fscanf($this->getPipe($pipe), $format); + } + + /** + * Write n characters. + */ + public function write(string $string, int $length, int $pipe = 0) + { + if (0 > $length) { + throw new ConsoleException('Length must be greater than 0, given %d.', 4, $length); + } + + return \fwrite($this->getPipe($pipe), $string, $length); + } + + /** + * Write a string. + */ + public function writeString(string $string, int $pipe = 0) + { + $string = (string) $string; + + return $this->write($string, \strlen($string), $pipe); + } + + /** + * Write a character. + */ + public function writeCharacter(string $char, int $pipe = 0) + { + return $this->write((string) $char[0], 1, $pipe); + } + + /** + * Write a boolean. + */ + public function writeBoolean(bool $boolean, int $pipe = 0) + { + return $this->write((string) (bool) $boolean, 1, $pipe); + } + + /** + * Write an integer. + */ + public function writeInteger(int $integer, int $pipe = 0) + { + $integer = (string) (int) $integer; + + return $this->write($integer, \strlen($integer), $pipe); + } + + /** + * Write a float. + */ + public function writeFloat(float $float, int $pipe = 0) + { + $float = (string) (float) $float; + + return $this->write($float, \strlen($float), $pipe); + } + + /** + * Write an array. + */ + public function writeArray(array $array, int $pipe = 0) + { + $array = \var_export($array, true); + + return $this->write($array, \strlen($array), $pipe); + } + + /** + * Write a line. + */ + public function writeLine(string $line, int $pipe = 0) + { + if (false === $n = \strpos($line, "\n")) { + return $this->write($line."\n", \strlen($line) + 1, $pipe); + } + + ++$n; + + return $this->write(\substr($line, 0, $n), $n, $pipe); + } + + /** + * Write all, i.e. as much as possible. + */ + public function writeAll(string $string, int $pipe = 0) + { + return $this->write($string, \strlen($string), $pipe); + } + + /** + * Truncate a file to a given length. + */ + public function truncate(int $size, int $pipe = 0): bool + { + return \ftruncate($this->getPipe($pipe), $size); + } + + /** + * Get filename component of path. + */ + public function getBasename(): string + { + return \basename($this->getCommand()); + } + + /** + * Get directory name component of path. + */ + public function getDirname(): string + { + return \dirname($this->getCommand()); + } + + /** + * Get status. + */ + public function getStatus(): array + { + return \proc_get_status($this->getStream()); + } + + /** + * Get exit code (alias of $this->getStatus()['exitcode']);. + */ + public function getExitCode(): int + { + $handle = $this->getStatus(); + + return $handle['exitcode']; + } + + /** + * Whether the processus have ended successfully. + * + * @return bool + */ + public function isSuccessful(): bool + { + return 0 === $this->getExitCode(); + } + + /** + * Terminate the process. + * + * Valid signals are self::SIGHUP, SIGINT, SIGQUIT, SIGABRT, SIGKILL, + * SIGALRM and SIGTERM. + */ + public function terminate(int $signal = self::SIGTERM): bool + { + return \proc_terminate($this->getStream(), $signal); + } + + /** + * Set command name. + */ + protected function setCommand(string $command) + { + $old = $this->_command; + $this->_command = \escapeshellcmd($command); + + return $old; + } + + /** + * Get command name. + */ + public function getCommand() + { + return $this->_command; + } + + /** + * Set command options. + */ + protected function setOptions(array $options): array + { + foreach ($options as &$option) { + $option = \escapeshellarg($option); + } + + $old = $this->_options; + $this->_options = $options; + + return $old; + } + + /** + * Get options. + */ + public function getOptions(): array + { + return $this->_options; + } + + /** + * Get command-line. + */ + public function getCommandLine(): string + { + $out = $this->getCommand(); + + foreach ($this->getOptions() as $key => $value) { + if (!\is_int($key)) { + $out .= ' '.$key.'='.$value; + } else { + $out .= ' '.$value; + } + } + + return $out; + } + + /** + * Set current working directory of the process. + */ + protected function setCwd(string $cwd) + { + $old = $this->_cwd; + $this->_cwd = $cwd; + + return $old; + } + + /** + * Get current working directory of the process. + */ + public function getCwd(): string + { + return $this->_cwd; + } + + /** + * Set environment of the process. + */ + protected function setEnvironment(array $environment) + { + $old = $this->_environment; + $this->_environment = $environment; + + return $old; + } + + /** + * Get environment of the process. + */ + public function getEnvironment() + { + return $this->_environment; + } + + /** + * Set timeout of the process. + */ + public function setTimeout(int $timeout) + { + $old = $this->_timeout; + $this->_timeout = $timeout; + + return $old; + } + + /** + * Get timeout of the process. + */ + public function getTimeout(): int + { + return $this->_timeout; + } + + /** + * Set process title. + */ + public static function setTitle(string $title) + { + \cli_set_process_title($title); + } + + /** + * Get process title. + */ + public static function getTitle() + { + return \cli_get_process_title(); + } + + /** + * Found the place of a binary. + */ + public static function locate(string $binary) + { + if (isset($_ENV['PATH'])) { + $separator = ':'; + $path = &$_ENV['PATH']; + } elseif (isset($_SERVER['PATH'])) { + $separator = ':'; + $path = &$_SERVER['PATH']; + } elseif (isset($_SERVER['Path'])) { + $separator = ';'; + $path = &$_SERVER['Path']; + } else { + return null; + } + + foreach (\explode($separator, $path) as $directory) { + if (true === \file_exists($out = $directory.\DIRECTORY_SEPARATOR.$binary)) { + return $out; + } + } + + return null; + } + + /** + * Quick process execution. + * Returns only the STDOUT. + */ + public static function execute(string $commandLine, bool $escape = true): string + { + if (true === $escape) { + $commandLine = \escapeshellcmd($commandLine); + } + + return \rtrim(\shell_exec($commandLine) ?? ''); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleTput.php b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleTput.php new file mode 100644 index 000000000..ba627e379 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleTput.php @@ -0,0 +1,841 @@ +parse($terminfo); + + return; + } + + /** + * Parse. + */ + protected function parse(string $terminfo): array + { + if (!\file_exists($terminfo)) { + throw new ConsoleException('Terminfo file %s does not exist.', 0, $terminfo); + } + + $data = \file_get_contents($terminfo); + $length = \strlen($data); + $out = ['file' => $terminfo]; + + $headers = [ + 'data_size' => $length, + 'header_size' => 12, + 'magic_number' => (\ord($data[1]) << 8) | \ord($data[0]), + 'names_size' => (\ord($data[3]) << 8) | \ord($data[2]), + 'bool_count' => (\ord($data[5]) << 8) | \ord($data[4]), + 'number_count' => (\ord($data[7]) << 8) | \ord($data[6]), + 'string_count' => (\ord($data[9]) << 8) | \ord($data[8]), + 'string_table_size' => (\ord($data[11]) << 8) | \ord($data[10]), + ]; + $out['headers'] = $headers; + + // Names. + $i = $headers['header_size']; + $nameAndDescription = \explode('|', \substr($data, $i, $headers['names_size'] - 1)); + $out['name'] = $nameAndDescription[0]; + $out['description'] = $nameAndDescription[1]; + + // Booleans. + $i += $headers['names_size']; + $booleans = []; + $booleanNames = &static::$_booleans; + + for ( + $e = 0, $max = $i + $headers['bool_count']; + $i < $max; + ++$e, ++$i + ) { + $booleans[$booleanNames[$e]] = 1 === \ord($data[$i]); + } + + $out['booleans'] = $booleans; + + // Numbers. + if (1 === ($i % 2)) { + ++$i; + } + + $numbers = []; + $numberNames = &static::$_numbers; + + for ( + $e = 0, $max = $i + $headers['number_count'] * 2; + $i < $max; + ++$e, $i += 2 + ) { + $name = $numberNames[$e]; + $data_i0 = \ord($data[$i]); + $data_i1 = \ord($data[$i + 1]); + + if ($data_i1 === 255 && $data_i0 === 255) { + $numbers[$name] = -1; + } else { + $numbers[$name] = ($data_i1 << 8) | $data_i0; + } + } + + $out['numbers'] = $numbers; + + // Strings. + $strings = []; + $stringNames = &static::$_strings; + $ii = $i + $headers['string_count'] * 2; + + for ( + $e = 0, $max = $ii; + $i < $max; + ++$e, $i += 2 + ) { + $name = $stringNames[$e]; + $data_i0 = \ord($data[$i]); + $data_i1 = \ord($data[$i + 1]); + + if ($data_i1 === 255 && $data_i0 === 255) { + continue; + } + + $a = ($data_i1 << 8) | $data_i0; + $strings[$name] = $a; + + if (65534 === $a) { + continue; + } + + $b = $ii + $a; + $c = $b; + + while ($c < $length && \ord($data[$c])) { + $c++; + } + + $value = \substr($data, $b, $c - $b); + $strings[$name] = false !== $value ? $value : null; + } + + $out['strings'] = $strings; + + return $this->_informations = $out; + } + + /** + * Get all informations. + */ + public function getInformations(): array + { + return $this->_informations; + } + + /** + * Get a boolean value. + */ + public function has(string $boolean): bool + { + if (!isset($this->_informations['booleans'][$boolean])) { + return false; + } + + return $this->_informations['booleans'][$boolean]; + } + + /** + * Get a number value. + */ + public function count(string $number): int + { + if (!isset($this->_informations['numbers'][$number])) { + return 0; + } + + return $this->_informations['numbers'][$number]; + } + + /** + * Get a string value. + */ + public function get(string $string) + { + if (!isset($this->_informations['strings'][$string])) { + return null; + } + + return $this->_informations['strings'][$string]; + } + + /** + * Get current term profile. + */ + public static function getTerm(): string + { + return + isset($_SERVER['TERM']) && !empty($_SERVER['TERM']) + ? $_SERVER['TERM'] + : (\defined('PHP_WINDOWS_VERSION_PLATFORM') ? 'windows-ansi' : 'xterm'); + } + + /** + * Get pathname to the current terminfo. + */ + public static function getTerminfo($term = null): string + { + $paths = []; + + if (isset($_SERVER['TERMINFO'])) { + $paths[] = $_SERVER['TERMINFO']; + } + + if (isset($_SERVER['HOME'])) { + $paths[] = $_SERVER['HOME'].\DIRECTORY_SEPARATOR.'.terminfo'; + } + + if (isset($_SERVER['TERMINFO_DIRS'])) { + foreach (\explode(':', $_SERVER['TERMINFO_DIRS']) as $path) { + $paths[] = $path; + } + } + + $paths[] = '/usr/share/terminfo'; + $paths[] = '/usr/share/lib/terminfo'; + $paths[] = '/lib/terminfo'; + $paths[] = '/usr/lib/terminfo'; + $paths[] = '/usr/local/share/terminfo'; + $paths[] = '/usr/local/share/lib/terminfo'; + $paths[] = '/usr/local/lib/terminfo'; + $paths[] = '/usr/local/ncurses/lib/terminfo'; + $paths[] = 'hoa://Library/Terminfo'; + + $term = $term ?: static::getTerm(); + $fileHexa = \dechex(\ord($term[0])).\DIRECTORY_SEPARATOR.$term; + $fileAlpha = $term[0].\DIRECTORY_SEPARATOR.$term; + $pathname = null; + + foreach ($paths as $path) { + if (\file_exists($_ = $path.\DIRECTORY_SEPARATOR.$fileHexa) || + \file_exists($_ = $path.\DIRECTORY_SEPARATOR.$fileAlpha)) { + $pathname = $_; + + break; + } + } + + if (null === $pathname && 'xterm' !== $term) { + return static::getTerminfo('xterm'); + } + + return $pathname ?? ''; + } + + /** + * Check whether all required terminfo capabilities are defined. + */ + public static function isSupported(): bool + { + if (static::getTerminfo() === '') { + return false; + } + + $requiredVars = [ + 'clear_screen', + 'clr_bol', + 'clr_eol', + 'clr_eos', + 'initialize_color', + 'parm_down_cursor', + 'parm_index', + 'parm_left_cursor', + 'parm_right_cursor', + 'parm_rindex', + 'parm_up_cursor', + 'user6', + 'user7', + ]; + + $tput = new self(); + + foreach ($requiredVars as $var) { + if ($tput->get($var) === null) { + return false; + } + } + + return true; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleWindow.php b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleWindow.php new file mode 100644 index 000000000..fe77e05de --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ConsoleWindow.php @@ -0,0 +1,529 @@ +writeAll("\033[8;".$y.';'.$x.'t'); + + return; + } + + /** + * Get current size (x and y) of the window. + */ + public static function getSize(): array + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + $modecon = \explode("\n", \ltrim(ConsoleProcessus::execute('mode con'))); + + $_y = \trim($modecon[2]); + \preg_match('#[^:]+:\s*([0-9]+)#', $_y, $matches); + $y = (int) $matches[1]; + + $_x = \trim($modecon[3]); + \preg_match('#[^:]+:\s*([0-9]+)#', $_x, $matches); + $x = (int) $matches[1]; + + return [ + 'x' => $x, + 'y' => $y, + ]; + } + + $term = ''; + + if (isset($_SERVER['TERM'])) { + $term = 'TERM="'.$_SERVER['TERM'].'" '; + } + + $command = $term.'tput cols && '.$term.'tput lines'; + $tput = ConsoleProcessus::execute($command, false); + + if (!empty($tput)) { + list($x, $y) = \explode("\n", $tput); + + return [ + 'x' => (int) $x, + 'y' => (int) $y, + ]; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[18t"); + + $input = Console::getInput(); + + // Read \033[8;y;xt. + $input->read(4); // skip \033, [, 8 and ;. + + $x = null; + $y = null; + $handle = &$y; + + while (true) { + $char = $input->readCharacter(); + + switch ($char) { + case ';': + $handle = &$x; + + break; + + case 't': + break 2; + + default: + if (false === \ctype_digit($char)) { + break 2; + } + + $handle .= $char; + } + } + + if (null === $x || null === $y) { + return [ + 'x' => 0, + 'y' => 0, + ]; + } + + return [ + 'x' => (int) $x, + 'y' => (int) $y, + ]; + } + + /** + * Move to X and Y (in pixels). + */ + public static function moveTo(int $x, int $y) + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[3;".$x.';'.$y.'t'); + + return; + } + + /** + * Get current position (x and y) of the window (in pixels). + */ + public static function getPosition(): array + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return ['x' => 0, 'y' => 0]; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[13t"); + + $input = Console::getInput(); + + // Read \033[3;x;yt. + $input->read(4); // skip \033, [, 3 and ;. + + $x = null; + $y = null; + $handle = &$x; + + while (true) { + $char = $input->readCharacter(); + + switch ($char) { + case ';': + $handle = &$y; + + break; + + case 't': + break 2; + + default: + $handle .= $char; + } + } + + return [ + 'x' => (int) $x, + 'y' => (int) $y, + ]; + } + + /** + * Scroll whole page. + * Directions can be: + * • u, up, ↑ : scroll whole page up; + * • d, down, ↓ : scroll whole page down. + * Directions can be concatenated by a single space. + */ + public static function scroll(string $directions, int $repeat = 1) + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + if (1 > $repeat) { + return; + } elseif (1 === $repeat) { + $handle = \explode(' ', $directions); + } else { + $handle = \explode(' ', $directions, 1); + } + + $tput = Console::getTput(); + $count = ['up' => 0, 'down' => 0]; + + foreach ($handle as $direction) { + switch ($direction) { + case 'u': + case 'up': + case '↑': + ++$count['up']; + + break; + + case 'd': + case 'down': + case '↓': + ++$count['down']; + + break; + } + } + + $output = Console::getOutput(); + + if (0 < $count['up']) { + $output->writeAll( + \str_replace( + '%p1%d', + $count['up'] * $repeat, + $tput->get('parm_index') + ) + ); + } + + if (0 < $count['down']) { + $output->writeAll( + \str_replace( + '%p1%d', + $count['down'] * $repeat, + $tput->get('parm_rindex') + ) + ); + } + + return; + } + + /** + * Minimize the window. + */ + public static function minimize() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[2t"); + + return; + } + + /** + * Restore the window (de-minimize). + */ + public static function restore() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + Console::getOutput()->writeAll("\033[1t"); + + return; + } + + /** + * Raise the window to the front of the stacking order. + */ + public static function raise() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + Console::getOutput()->writeAll("\033[5t"); + + return; + } + + /** + * Lower the window to the bottom of the stacking order. + */ + public static function lower() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + Console::getOutput()->writeAll("\033[6t"); + + return; + } + + /** + * Set title. + */ + public static function setTitle(string $title) + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033]0;".$title."\033\\"); + + return; + } + + /** + * Get title. + */ + public static function getTitle() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return null; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[21t"); + + $input = Console::getInput(); + $read = [$input->getStream()->getStream()]; + $write = []; + $except = []; + $out = null; + + if (0 === \stream_select($read, $write, $except, 0, 50000)) { + return $out; + } + + // Read \033]l\033\ + $input->read(3); // skip \033, ] and l. + + while (true) { + $char = $input->readCharacter(); + + if ("\033" === $char) { + $chaar = $input->readCharacter(); + + if ('\\' === $chaar) { + break; + } + + $char .= $chaar; + } + + $out .= $char; + } + + return $out; + } + + /** + * Get label. + */ + public static function getLabel() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return null; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[20t"); + + $input = Console::getInput(); + $read = [$input->getStream()->getStream()]; + $write = []; + $except = []; + $out = null; + + if (0 === \stream_select($read, $write, $except, 0, 50000)) { + return $out; + } + + // Read \033]L<label>\033\ + $input->read(3); // skip \033, ] and L. + + while (true) { + $char = $input->readCharacter(); + + if ("\033" === $char) { + $chaar = $input->readCharacter(); + + if ('\\' === $chaar) { + break; + } + + $char .= $chaar; + } + + $out .= $char; + } + + return $out; + } + + /** + * Refresh the window. + */ + public static function refresh() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + // DECSLPP. + Console::getOutput()->writeAll("\033[7t"); + + return; + } + + /** + * Set clipboard value. + */ + public static function copy(string $data) + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + $out = "\033]52;;".\base64_encode($data)."\033\\"; + $output = Console::getOutput(); + $considerMultiplexer = $output->considerMultiplexer(true); + + $output->writeAll($out); + $output->considerMultiplexer($considerMultiplexer); + + return; + } +} + +/* + * Advanced interaction. + */ +Console::advancedInteraction(); + +/* + * Event. + */ +if (\function_exists('pcntl_signal')) { + ConsoleWindow::getInstance(); + \pcntl_signal( + \SIGWINCH, + function () { + static $_window = null; + + if (null === $_window) { + $_window = ConsoleWindow::getInstance(); + } + + Event::notify( + 'hoa://Event/Console/Window:resize', + $_window, + new EventBucket([ + 'size' => ConsoleWindow::getSize(), + ]) + ); + } + ); +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Event.php b/api/vendor/psy/psysh/src/Readline/Hoa/Event.php new file mode 100644 index 000000000..bb08f328a --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Event.php @@ -0,0 +1,193 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Events are asynchronous at registration, anonymous at use (until we + * receive a bucket) and useful to largely spread data through components + * without any known connection between them. + */ +class Event +{ + /** + * Event ID key. + */ + const KEY_EVENT = 0; + + /** + * Source object key. + */ + const KEY_SOURCE = 1; + + /** + * Static register of all observable objects, i.e. `Hoa\Event\Source` + * object, i.e. object that can send event. + */ + private static $_register = []; + + /** + * Collection of callables, i.e. observer objects. + */ + protected $_callable = []; + + /** + * Privatize the constructor. + */ + private function __construct() + { + return; + } + + /** + * Manage multiton of events, with the principle of asynchronous + * attachments. + */ + public static function getEvent(string $eventId): self + { + if (!isset(self::$_register[$eventId][self::KEY_EVENT])) { + self::$_register[$eventId] = [ + self::KEY_EVENT => new self(), + self::KEY_SOURCE => null, + ]; + } + + return self::$_register[$eventId][self::KEY_EVENT]; + } + + /** + * Declares a new object in the observable collection. + * Note: Hoa's libraries use `hoa://Event/anID` for their observable objects. + */ + public static function register(string $eventId, /* Source|string */ $source) + { + if (true === self::eventExists($eventId)) { + throw new EventException('Cannot redeclare an event with the same ID, i.e. the event '.'ID %s already exists.', 0, $eventId); + } + + if (\is_object($source) && !($source instanceof EventSource)) { + throw new EventException('The source must implement \Hoa\Event\Source '.'interface; given %s.', 1, \get_class($source)); + } else { + $reflection = new \ReflectionClass($source); + + if (false === $reflection->implementsInterface('\Psy\Readline\Hoa\EventSource')) { + throw new EventException('The source must implement \Hoa\Event\Source '.'interface; given %s.', 2, $source); + } + } + + if (!isset(self::$_register[$eventId][self::KEY_EVENT])) { + self::$_register[$eventId][self::KEY_EVENT] = new self(); + } + + self::$_register[$eventId][self::KEY_SOURCE] = $source; + } + + /** + * Undeclares an object in the observable collection. + * + * If `$hard` is set to `true, then the source and its attached callables + * will be deleted. + */ + public static function unregister(string $eventId, bool $hard = false) + { + if (false !== $hard) { + unset(self::$_register[$eventId]); + } else { + self::$_register[$eventId][self::KEY_SOURCE] = null; + } + } + + /** + * Attach an object to an event. + * + * It can be a callable or an accepted callable form (please, see the + * `Hoa\Consistency\Xcallable` class). + */ + public function attach($callable): self + { + $callable = Xcallable::from($callable); + $this->_callable[$callable->getHash()] = $callable; + + return $this; + } + + /** + * Detaches an object to an event. + * + * Please see `self::attach` method. + */ + public function detach($callable): self + { + unset($this->_callable[Xcallable::from($callable)->getHash()]); + + return $this; + } + + /** + * Checks if at least one callable is attached to an event. + */ + public function isListened(): bool + { + return !empty($this->_callable); + } + + /** + * Notifies, i.e. send data to observers. + */ + public static function notify(string $eventId, EventSource $source, EventBucket $data) + { + if (false === self::eventExists($eventId)) { + throw new EventException('Event ID %s does not exist, cannot send notification.', 3, $eventId); + } + + $data->setSource($source); + $event = self::getEvent($eventId); + + foreach ($event->_callable as $callable) { + $callable($data); + } + } + + /** + * Checks whether an event exists. + */ + public static function eventExists(string $eventId): bool + { + return + \array_key_exists($eventId, self::$_register) && + self::$_register[$eventId][self::KEY_SOURCE] !== null; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/EventBucket.php b/api/vendor/psy/psysh/src/Readline/Hoa/EventBucket.php new file mode 100644 index 000000000..37d3ca15a --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/EventBucket.php @@ -0,0 +1,109 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * This class is the object which is transmit through event channels. + */ +class EventBucket +{ + /** + * The source object (must be of kind `Hoa\Event\Source`). + */ + protected $_source = null; + + /** + * Data attached to the bucket. + */ + protected $_data = null; + + /** + * Allocates a new bucket with various data attached to it. + */ + public function __construct($data = null) + { + $this->setData($data); + + return; + } + + /** + * Sends this object on the event channel. + */ + public function send(string $eventId, EventSource $source) + { + return Event::notify($eventId, $source, $this); + } + + /** + * Sets a new source. + */ + public function setSource(EventSource $source) + { + $old = $this->_source; + $this->_source = $source; + + return $old; + } + + /** + * Returns the source. + */ + public function getSource() + { + return $this->_source; + } + + /** + * Sets new data. + */ + public function setData($data) + { + $old = $this->_data; + $this->_data = $data; + + return $old; + } + + /** + * Returns the data. + */ + public function getData() + { + return $this->_data; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/EventException.php b/api/vendor/psy/psysh/src/Readline/Hoa/EventException.php new file mode 100644 index 000000000..9517d9c96 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/EventException.php @@ -0,0 +1,44 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Extending the `Hoa\Exception\Exception` class. + */ +class EventException extends Exception +{ +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/EventListenable.php b/api/vendor/psy/psysh/src/Readline/Hoa/EventListenable.php new file mode 100644 index 000000000..cefd3e6aa --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/EventListenable.php @@ -0,0 +1,48 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Each object which is listenable must implement this interface. + */ +interface EventListenable extends EventSource +{ + /** + * Attaches a callable to a listenable component. + */ + public function on(string $listenerId, $callable): self; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/EventListener.php b/api/vendor/psy/psysh/src/Readline/Hoa/EventListener.php new file mode 100644 index 000000000..8e877e610 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/EventListener.php @@ -0,0 +1,137 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * A contrario of events, listeners are synchronous, identified at use and + * useful for close interactions between one or some components. + */ +class EventListener +{ + /** + * Source of listener (for `Hoa\Event\Bucket`). + */ + protected $_source = null; + + /** + * All listener IDs and associated listeners. + */ + protected $_callables = []; + + /** + * Build a listener. + */ + public function __construct(EventListenable $source, array $ids) + { + $this->_source = $source; + $this->addIds($ids); + + return; + } + + /** + * Adds acceptable ID (or reset). + */ + public function addIds(array $ids) + { + foreach ($ids as $id) { + $this->_callables[$id] = []; + } + } + + /** + * Attaches a callable to a listenable component. + */ + public function attach(string $listenerId, $callable): self + { + if (false === $this->listenerExists($listenerId)) { + throw new EventException('Cannot listen %s because it is not defined.', 0, $listenerId); + } + + $callable = Xcallable::from($callable); + $this->_callables[$listenerId][$callable->getHash()] = $callable; + + return $this; + } + + /** + * Detaches a callable from a listenable component. + */ + public function detach(string $listenerId, $callable): self + { + unset($this->_callables[$listenerId][Xcallable::from($callable)->getHash()]); + + return $this; + } + + /** + * Detaches all callables from a listenable component. + */ + public function detachAll(string $listenerId): self + { + unset($this->_callables[$listenerId]); + + return $this; + } + + /** + * Checks if a listener exists. + */ + public function listenerExists(string $listenerId): bool + { + return \array_key_exists($listenerId, $this->_callables); + } + + /** + * Sends/fires a bucket to a listener. + */ + public function fire(string $listenerId, EventBucket $data): array + { + if (false === $this->listenerExists($listenerId)) { + throw new EventException('Cannot fire on %s because it is not defined.', 1, $listenerId); + } + + $data->setSource($this->_source); + $out = []; + + foreach ($this->_callables[$listenerId] as $callable) { + $out[] = $callable($data); + } + + return $out; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/EventListens.php b/api/vendor/psy/psysh/src/Readline/Hoa/EventListens.php new file mode 100644 index 000000000..41f1172b5 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/EventListens.php @@ -0,0 +1,83 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Implementation of a listener. + */ +trait EventListens +{ + /** + * Listener instance of type `Hoa\Event\Listener`. + */ + protected $_listener = null; + + /** + * Attaches a callable to a listenable component. + */ + public function on(string $listenerId, $callable): EventListenable + { + $listener = $this->getListener(); + + if (null === $listener) { + throw new EventException('Cannot attach a callable to the listener %s because '.'it has not been initialized yet.', 0, static::class); + } + + $listener->attach($listenerId, $callable); + + return $this; + } + + /** + * Sets a new listener. + */ + protected function setListener(EventListener $listener) + { + $old = $this->_listener; + $this->_listener = $listener; + + return $old; + } + + /** + * Returns the listener. + */ + protected function getListener() + { + return $this->_listener; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/EventSource.php b/api/vendor/psy/psysh/src/Readline/Hoa/EventSource.php new file mode 100644 index 000000000..3a495d4b6 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/EventSource.php @@ -0,0 +1,44 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Each object which is listenable must implement this interface. + */ +interface EventSource +{ +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Exception.php b/api/vendor/psy/psysh/src/Readline/Hoa/Exception.php new file mode 100644 index 000000000..0a08f7a9b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Exception.php @@ -0,0 +1,79 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Each exception must extend `Hoa\Exception\Exception`. + */ +class Exception extends ExceptionIdle implements EventSource +{ + /** + * Allocates a new exception. + * + * An exception is built with a formatted message, a code (an ID), and an + * array that contains the list of formatted string for the message. If + * chaining, a previous exception can be added. + */ + public function __construct( + string $message, + int $code = 0, + $arguments = [], + ?\Throwable $previous = null + ) { + parent::__construct($message, $code, $arguments, $previous); + + if (false === Event::eventExists('hoa://Event/Exception')) { + Event::register('hoa://Event/Exception', __CLASS__); + } + + $this->send(); + + return; + } + + /** + * Sends the exception on `hoa://Event/Exception`. + */ + public function send() + { + Event::notify( + 'hoa://Event/Exception', + $this, + new EventBucket($this) + ); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ExceptionIdle.php b/api/vendor/psy/psysh/src/Readline/Hoa/ExceptionIdle.php new file mode 100644 index 000000000..29497f06e --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ExceptionIdle.php @@ -0,0 +1,267 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * `Hoa\Exception\Idle` is the mother exception class of libraries. The only + * difference between `Hoa\Exception\Idle` and its direct children + * `Hoa\Exception` is that the latter fires events after beeing constructed. + */ +class ExceptionIdle extends \Exception +{ + /** + * Delay processing on arguments. + */ + protected $_tmpArguments = null; + + /** + * List of arguments to format message. + */ + protected $_arguments = null; + + /** + * Backtrace. + */ + protected $_trace = null; + + /** + * Previous exception if any. + */ + protected $_previous = null; + + /** + * Original exception message. + */ + protected $_rawMessage = null; + + /** + * Allocates a new exception. + * + * An exception is built with a formatted message, a code (an ID) and an + * array that contains the list of formatted strings for the message. If + * chaining, we can add a previous exception. + */ + public function __construct( + string $message, + int $code = 0, + $arguments = [], + ?\Exception $previous = null + ) { + $this->_tmpArguments = $arguments; + parent::__construct($message, $code, $previous); + $this->_rawMessage = $message; + $this->message = @\vsprintf($message, $this->getArguments()); + + return; + } + + /** + * Returns the backtrace. + * + * Do not use `Exception::getTrace` any more. + */ + public function getBacktrace() + { + if (null === $this->_trace) { + $this->_trace = $this->getTrace(); + } + + return $this->_trace; + } + + /** + * Returns the previous exception if any. + * + * Do not use `Exception::getPrevious` any more. + */ + public function getPreviousThrow() + { + if (null === $this->_previous) { + $this->_previous = $this->getPrevious(); + } + + return $this->_previous; + } + + /** + * Returns the arguments of the message. + */ + public function getArguments() + { + if (null === $this->_arguments) { + $arguments = $this->_tmpArguments; + + if (!\is_array($arguments)) { + $arguments = [$arguments]; + } + + foreach ($arguments as &$value) { + if (null === $value) { + $value = '(null)'; + } + } + + $this->_arguments = $arguments; + unset($this->_tmpArguments); + } + + return $this->_arguments; + } + + /** + * Returns the raw message. + */ + public function getRawMessage(): string + { + return $this->_rawMessage; + } + + /** + * Returns the message already formatted. + */ + public function getFormattedMessage(): string + { + return $this->getMessage(); + } + + /** + * Returns the source of the exception (class, method, function, main etc.). + */ + public function getFrom(): string + { + $trace = $this->getBacktrace(); + $from = '{main}'; + + if (!empty($trace)) { + $t = $trace[0]; + $from = ''; + + if (isset($t['class'])) { + $from .= $t['class'].'::'; + } + + if (isset($t['function'])) { + $from .= $t['function'].'()'; + } + } + + return $from; + } + + /** + * Raises an exception as a string. + */ + public function raise(bool $includePrevious = false): string + { + $message = $this->getFormattedMessage(); + $trace = $this->getBacktrace(); + $file = '/dev/null'; + $line = -1; + $pre = $this->getFrom(); + + if (!empty($trace)) { + $file = $trace['file'] ?? null; + $line = $trace['line'] ?? null; + } + + $pre .= ': '; + + try { + $out = + $pre.'('.$this->getCode().') '.$message."\n". + 'in '.$this->getFile().' at line '. + $this->getLine().'.'; + } catch (\Exception $e) { + $out = + $pre.'('.$this->getCode().') '.$message."\n". + 'in '.$file.' around line '.$line.'.'; + } + + if (true === $includePrevious && + null !== $previous = $this->getPreviousThrow()) { + $out .= + "\n\n".' ⬇'."\n\n". + 'Nested exception ('.\get_class($previous).'):'."\n". + ($previous instanceof self + ? $previous->raise(true) + : $previous->getMessage()); + } + + return $out; + } + + /** + * Catches uncaught exception (only `Hoa\Exception\Idle` and children). + */ + public static function uncaught(\Throwable $exception) + { + if (!($exception instanceof self)) { + throw $exception; + } + + while (0 < \ob_get_level()) { + \ob_end_flush(); + } + + echo 'Uncaught exception ('.\get_class($exception).'):'."\n". + $exception->raise(true); + } + + /** + * String representation of object. + */ + public function __toString(): string + { + return $this->raise(); + } + + /** + * Enables uncaught exception handler. + * + * This is restricted to Hoa's exceptions only. + */ + public static function enableUncaughtHandler(bool $enable = true) + { + if (false === $enable) { + return \restore_exception_handler(); + } + + return \set_exception_handler(function ($exception) { + return self::uncaught($exception); + }); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/File.php b/api/vendor/psy/psysh/src/Readline/Hoa/File.php new file mode 100644 index 000000000..1db395da5 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/File.php @@ -0,0 +1,274 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File. + * + * File handler. + */ +abstract class File extends FileGeneric implements StreamBufferable, StreamLockable, StreamPointable +{ + /** + * Open for reading only; place the file pointer at the beginning of the + * file. + */ + const MODE_READ = 'rb'; + + /** + * Open for reading and writing; place the file pointer at the beginning of + * the file. + */ + const MODE_READ_WRITE = 'r+b'; + + /** + * Open for writing only; place the file pointer at the beginning of the + * file and truncate the file to zero length. If the file does not exist, + * attempt to create it. + */ + const MODE_TRUNCATE_WRITE = 'wb'; + + /** + * Open for reading and writing; place the file pointer at the beginning of + * the file and truncate the file to zero length. If the file does not + * exist, attempt to create it. + */ + const MODE_TRUNCATE_READ_WRITE = 'w+b'; + + /** + * Open for writing only; place the file pointer at the end of the file. If + * the file does not exist, attempt to create it. + */ + const MODE_APPEND_WRITE = 'ab'; + + /** + * Open for reading and writing; place the file pointer at the end of the + * file. If the file does not exist, attempt to create it. + */ + const MODE_APPEND_READ_WRITE = 'a+b'; + + /** + * Create and open for writing only; place the file pointer at the beginning + * of the file. If the file already exits, the fopen() call with fail by + * returning false and generating an error of level E_WARNING. If the file + * does not exist, attempt to create it. This is equivalent to specifying + * O_EXCL | O_CREAT flags for the underlying open(2) system call. + */ + const MODE_CREATE_WRITE = 'xb'; + + /** + * Create and open for reading and writing; place the file pointer at the + * beginning of the file. If the file already exists, the fopen() call with + * fail by returning false and generating an error of level E_WARNING. If + * the file does not exist, attempt to create it. This is equivalent to + * specifying O_EXCL | O_CREAT flags for the underlying open(2) system call. + */ + const MODE_CREATE_READ_WRITE = 'x+b'; + + /** + * Open a file. + */ + public function __construct( + string $streamName, + string $mode, + ?string $context = null, + bool $wait = false + ) { + $this->setMode($mode); + + switch ($streamName) { + case '0': + $streamName = 'php://stdin'; + + break; + + case '1': + $streamName = 'php://stdout'; + + break; + + case '2': + $streamName = 'php://stderr'; + + break; + + default: + if (true === \ctype_digit($streamName)) { + $streamName = 'php://fd/'.$streamName; + } + } + + parent::__construct($streamName, $context, $wait); + + return; + } + + /** + * Open the stream and return the associated resource. + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + if (\substr($streamName, 0, 4) === 'file' && + false === \is_dir(\dirname($streamName))) { + throw new FileException('Directory %s does not exist. Could not open file %s.', 1, [\dirname($streamName), \basename($streamName)]); + } + + if (null === $context) { + if (false === $out = @\fopen($streamName, $this->getMode(), true)) { + throw new FileException('Failed to open stream %s.', 2, $streamName); + } + + return $out; + } + + $out = @\fopen( + $streamName, + $this->getMode(), + true, + $context->getContext() + ); + + if (false === $out) { + throw new FileException('Failed to open stream %s.', 3, $streamName); + } + + return $out; + } + + /** + * Close the current stream. + */ + protected function _close(): bool + { + return @\fclose($this->getStream()); + } + + /** + * Start a new buffer. + * The callable acts like a light filter. + */ + public function newBuffer($callable = null, ?int $size = null): int + { + $this->setStreamBuffer($size); + + // @todo manage $callable as a filter? + + return 1; + } + + /** + * Flush the output to a stream. + */ + public function flush(): bool + { + return \fflush($this->getStream()); + } + + /** + * Delete buffer. + */ + public function deleteBuffer(): bool + { + return $this->disableStreamBuffer(); + } + + /** + * Get bufffer level. + */ + public function getBufferLevel(): int + { + return 1; + } + + /** + * Get buffer size. + */ + public function getBufferSize(): int + { + return $this->getStreamBufferSize(); + } + + /** + * Portable advisory locking. + */ + public function lock(int $operation): bool + { + return \flock($this->getStream(), $operation); + } + + /** + * Rewind the position of a stream pointer. + */ + public function rewind(): bool + { + return \rewind($this->getStream()); + } + + /** + * Seek on a stream pointer. + */ + public function seek(int $offset, int $whence = StreamPointable::SEEK_SET): int + { + return \fseek($this->getStream(), $offset, $whence); + } + + /** + * Get the current position of the stream pointer. + */ + public function tell(): int + { + $stream = $this->getStream(); + + if (null === $stream) { + return 0; + } + + return \ftell($stream); + } + + /** + * Create a file. + */ + public static function create(string $name) + { + if (\file_exists($name)) { + return true; + } + + return \touch($name); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileDirectory.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileDirectory.php new file mode 100644 index 000000000..31adb00f3 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileDirectory.php @@ -0,0 +1,221 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Directory. + * + * Directory handler. + */ +class FileDirectory extends FileGeneric +{ + /** + * Open for reading. + */ + const MODE_READ = 'rb'; + + /** + * Open for reading and writing. If the directory does not exist, attempt to + * create it. + */ + const MODE_CREATE = 'xb'; + + /** + * Open for reading and writing. If the directory does not exist, attempt to + * create it recursively. + */ + const MODE_CREATE_RECURSIVE = 'xrb'; + + /** + * Open a directory. + */ + public function __construct( + string $streamName, + string $mode = self::MODE_READ, + ?string $context = null, + bool $wait = false + ) { + $this->setMode($mode); + parent::__construct($streamName, $context, $wait); + + return; + } + + /** + * Open the stream and return the associated resource. + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + if (false === \is_dir($streamName)) { + if ($this->getMode() === self::MODE_READ) { + throw new FileDoesNotExistException('Directory %s does not exist.', 0, $streamName); + } else { + self::create( + $streamName, + $this->getMode(), + null !== $context + ? $context->getContext() + : null + ); + } + } + + $out = null; + + return $out; + } + + /** + * Close the current stream. + */ + protected function _close(): bool + { + return true; + } + + /** + * Recursive copy of a directory. + */ + public function copy(string $to, bool $force = StreamTouchable::DO_NOT_OVERWRITE): bool + { + if (empty($to)) { + throw new FileException('The destination path (to copy) is empty.', 1); + } + + $from = $this->getStreamName(); + $fromLength = \strlen($from) + 1; + $finder = new FileFinder(); + $finder->in($from); + + self::create($to, self::MODE_CREATE_RECURSIVE); + + foreach ($finder as $file) { + $relative = \substr($file->getPathname(), $fromLength); + $_to = $to.\DIRECTORY_SEPARATOR.$relative; + + if (true === $file->isDir()) { + self::create($_to, self::MODE_CREATE); + + continue; + } + + // This is not possible to do `$file->open()->copy(); + // $file->close();` because the file will be opened in read and + // write mode. In a PHAR for instance, this operation is + // forbidden. So a special care must be taken to open file in read + // only mode. + $handle = null; + + if (true === $file->isFile()) { + $handle = new FileRead($file->getPathname()); + } elseif (true === $file->isDir()) { + $handle = new self($file->getPathName()); + } elseif (true === $file->isLink()) { + $handle = new FileLinkRead($file->getPathName()); + } + + if (null !== $handle) { + $handle->copy($_to, $force); + $handle->close(); + } + } + + return true; + } + + /** + * Delete a directory. + */ + public function delete(): bool + { + $from = $this->getStreamName(); + $finder = new FileFinder(); + $finder->in($from) + ->childFirst(); + + foreach ($finder as $file) { + $file->open()->delete(); + $file->close(); + } + + if (null === $this->getStreamContext()) { + return @\rmdir($from); + } + + return @\rmdir($from, $this->getStreamContext()->getContext()); + } + + /** + * Create a directory. + */ + public static function create( + string $name, + string $mode = self::MODE_CREATE_RECURSIVE, + ?string $context = null + ): bool { + if (true === \is_dir($name)) { + return true; + } + + if (empty($name)) { + return false; + } + + if (null !== $context) { + if (false === StreamContext::contextExists($context)) { + throw new FileException('Context %s was not previously declared, cannot retrieve '.'this context.', 2, $context); + } else { + $context = StreamContext::getInstance($context); + } + } + + if (null === $context) { + return @\mkdir( + $name, + 0755, + self::MODE_CREATE_RECURSIVE === $mode + ); + } + + return @\mkdir( + $name, + 0755, + self::MODE_CREATE_RECURSIVE === $mode, + $context->getContext() + ); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileDoesNotExistException.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileDoesNotExistException.php new file mode 100644 index 000000000..81599a5de --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileDoesNotExistException.php @@ -0,0 +1,48 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Exception\FileDoesNotExist. + * + * Extending the \Hoa\File\Exception class. + * + * @license New BSD License + */ +class FileDoesNotExistException extends FileException +{ +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileException.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileException.php new file mode 100644 index 000000000..0e224c252 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileException.php @@ -0,0 +1,48 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Exception. + * + * Extending the \Hoa\Exception\Exception class. + * + * @license New BSD License + */ +class FileException extends Exception +{ +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileFinder.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileFinder.php new file mode 100644 index 000000000..1523b366b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileFinder.php @@ -0,0 +1,658 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Finder. + * + * This class allows to find files easily by using filters and flags. + */ +class FileFinder implements \IteratorAggregate +{ + /** + * SplFileInfo classname. + */ + protected $_splFileInfo = \SplFileInfo::class; + + /** + * Paths where to look for. + */ + protected $_paths = []; + + /** + * Max depth in recursion. + */ + protected $_maxDepth = -1; + + /** + * Filters. + */ + protected $_filters = []; + + /** + * Flags. + */ + protected $_flags = -1; + + /** + * Types of files to handle. + */ + protected $_types = []; + + /** + * What comes first: parent or child? + */ + protected $_first = -1; + + /** + * Sorts. + */ + protected $_sorts = []; + + /** + * Initialize. + */ + public function __construct() + { + $this->_flags = IteratorFileSystem::KEY_AS_PATHNAME + | IteratorFileSystem::CURRENT_AS_FILEINFO + | IteratorFileSystem::SKIP_DOTS; + $this->_first = \RecursiveIteratorIterator::SELF_FIRST; + + return; + } + + /** + * Select a directory to scan. + */ + public function in($paths): self + { + if (!\is_array($paths)) { + $paths = [$paths]; + } + + foreach ($paths as $path) { + if (1 === \preg_match('/[\*\?\[\]]/', $path)) { + $iterator = new \CallbackFilterIterator( + new \GlobIterator(\rtrim($path, \DIRECTORY_SEPARATOR)), + function ($current) { + return $current->isDir(); + } + ); + + foreach ($iterator as $fileInfo) { + $this->_paths[] = $fileInfo->getPathname(); + } + } else { + $this->_paths[] = $path; + } + } + + return $this; + } + + /** + * Set max depth for recursion. + */ + public function maxDepth(int $depth): self + { + $this->_maxDepth = $depth; + + return $this; + } + + /** + * Include files in the result. + */ + public function files(): self + { + $this->_types[] = 'file'; + + return $this; + } + + /** + * Include directories in the result. + */ + public function directories(): self + { + $this->_types[] = 'dir'; + + return $this; + } + + /** + * Include links in the result. + */ + public function links(): self + { + $this->_types[] = 'link'; + + return $this; + } + + /** + * Follow symbolink links. + */ + public function followSymlinks(bool $flag = true): self + { + if (true === $flag) { + $this->_flags ^= IteratorFileSystem::FOLLOW_SYMLINKS; + } else { + $this->_flags |= IteratorFileSystem::FOLLOW_SYMLINKS; + } + + return $this; + } + + /** + * Include files that match a regex. + * Example: + * $this->name('#\.php$#');. + */ + public function name(string $regex): self + { + $this->_filters[] = function (\SplFileInfo $current) use ($regex) { + return 0 !== \preg_match($regex, $current->getBasename()); + }; + + return $this; + } + + /** + * Exclude directories that match a regex. + * Example: + * $this->notIn('#^\.(git|hg)$#');. + */ + public function notIn(string $regex): self + { + $this->_filters[] = function (\SplFileInfo $current) use ($regex) { + foreach (\explode(\DIRECTORY_SEPARATOR, $current->getPathname()) as $part) { + if (0 !== \preg_match($regex, $part)) { + return false; + } + } + + return true; + }; + + return $this; + } + + /** + * Include files that respect a certain size. + * The size is a string of the form: + * operator number unit + * where + * • operator could be: <, <=, >, >= or =; + * • number is a positive integer; + * • unit could be: b (default), Kb, Mb, Gb, Tb, Pb, Eb, Zb, Yb. + * Example: + * $this->size('>= 12Kb');. + */ + public function size(string $size): self + { + if (0 === \preg_match('#^(<|<=|>|>=|=)\s*(\d+)\s*((?:[KMGTPEZY])b)?$#', $size, $matches)) { + return $this; + } + + $number = (float) ($matches[2]); + $unit = $matches[3] ?? 'b'; + $operator = $matches[1]; + + switch ($unit) { + case 'b': + break; + + // kilo + case 'Kb': + $number <<= 10; + + break; + + // mega. + case 'Mb': + $number <<= 20; + + break; + + // giga. + case 'Gb': + $number <<= 30; + + break; + + // tera. + case 'Tb': + $number *= 1099511627776; + + break; + + // peta. + case 'Pb': + $number *= 1024 ** 5; + + break; + + // exa. + case 'Eb': + $number *= 1024 ** 6; + + break; + + // zetta. + case 'Zb': + $number *= 1024 ** 7; + + break; + + // yota. + case 'Yb': + $number *= 1024 ** 8; + + break; + } + + $filter = null; + + switch ($operator) { + case '<': + $filter = function (\SplFileInfo $current) use ($number) { + return $current->getSize() < $number; + }; + + break; + + case '<=': + $filter = function (\SplFileInfo $current) use ($number) { + return $current->getSize() <= $number; + }; + + break; + + case '>': + $filter = function (\SplFileInfo $current) use ($number) { + return $current->getSize() > $number; + }; + + break; + + case '>=': + $filter = function (\SplFileInfo $current) use ($number) { + return $current->getSize() >= $number; + }; + + break; + + case '=': + $filter = function (\SplFileInfo $current) use ($number) { + return $current->getSize() === $number; + }; + + break; + } + + $this->_filters[] = $filter; + + return $this; + } + + /** + * Whether we should include dots or not (respectively . and ..). + */ + public function dots(bool $flag = true): self + { + if (true === $flag) { + $this->_flags ^= IteratorFileSystem::SKIP_DOTS; + } else { + $this->_flags |= IteratorFileSystem::SKIP_DOTS; + } + + return $this; + } + + /** + * Include files that are owned by a certain owner. + */ + public function owner(int $owner): self + { + $this->_filters[] = function (\SplFileInfo $current) use ($owner) { + return $current->getOwner() === $owner; + }; + + return $this; + } + + /** + * Format date. + * Date can have the following syntax: + * date + * since date + * until date + * If the date does not have the “ago” keyword, it will be added. + * Example: “42 hours” is equivalent to “since 42 hours” which is equivalent + * to “since 42 hours ago”. + */ + protected function formatDate(string $date, &$operator): int + { + $operator = -1; + + if (0 === \preg_match('#\bago\b#', $date)) { + $date .= ' ago'; + } + + if (0 !== \preg_match('#^(since|until)\b(.+)$#', $date, $matches)) { + $time = \strtotime($matches[2]); + + if ('until' === $matches[1]) { + $operator = 1; + } + } else { + $time = \strtotime($date); + } + + return $time; + } + + /** + * Include files that have been changed from a certain date. + * Example: + * $this->changed('since 13 days');. + */ + public function changed(string $date): self + { + $time = $this->formatDate($date, $operator); + + if (-1 === $operator) { + $this->_filters[] = function (\SplFileInfo $current) use ($time) { + return $current->getCTime() >= $time; + }; + } else { + $this->_filters[] = function (\SplFileInfo $current) use ($time) { + return $current->getCTime() < $time; + }; + } + + return $this; + } + + /** + * Include files that have been modified from a certain date. + * Example: + * $this->modified('since 13 days');. + */ + public function modified(string $date): self + { + $time = $this->formatDate($date, $operator); + + if (-1 === $operator) { + $this->_filters[] = function (\SplFileInfo $current) use ($time) { + return $current->getMTime() >= $time; + }; + } else { + $this->_filters[] = function (\SplFileInfo $current) use ($time) { + return $current->getMTime() < $time; + }; + } + + return $this; + } + + /** + * Add your own filter. + * The callback will receive 3 arguments: $current, $key and $iterator. It + * must return a boolean: true to include the file, false to exclude it. + * Example: + * // Include files that are readable + * $this->filter(function ($current) { + * return $current->isReadable(); + * });. + */ + public function filter($callback): self + { + $this->_filters[] = $callback; + + return $this; + } + + /** + * Sort result by name. + * If \Collator exists (from ext/intl), the $locale argument will be used + * for its constructor. Else, strcmp() will be used. + * Example: + * $this->sortByName('fr_FR');. + */ + public function sortByName(string $locale = 'root'): self + { + if (true === \class_exists('Collator', false)) { + $collator = new \Collator($locale); + + $this->_sorts[] = function (\SplFileInfo $a, \SplFileInfo $b) use ($collator) { + return $collator->compare($a->getPathname(), $b->getPathname()); + }; + } else { + $this->_sorts[] = function (\SplFileInfo $a, \SplFileInfo $b) { + return \strcmp($a->getPathname(), $b->getPathname()); + }; + } + + return $this; + } + + /** + * Sort result by size. + * Example: + * $this->sortBySize();. + */ + public function sortBySize(): self + { + $this->_sorts[] = function (\SplFileInfo $a, \SplFileInfo $b) { + return $a->getSize() < $b->getSize(); + }; + + return $this; + } + + /** + * Add your own sort. + * The callback will receive 2 arguments: $a and $b. Please see the uasort() + * function. + * Example: + * // Sort files by their modified time. + * $this->sort(function ($a, $b) { + * return $a->getMTime() < $b->getMTime(); + * });. + */ + public function sort($callable): self + { + $this->_sorts[] = $callable; + + return $this; + } + + /** + * Child comes first when iterating. + */ + public function childFirst(): self + { + $this->_first = \RecursiveIteratorIterator::CHILD_FIRST; + + return $this; + } + + /** + * Get the iterator. + */ + public function getIterator() + { + $_iterator = new \AppendIterator(); + $types = $this->getTypes(); + + if (!empty($types)) { + $this->_filters[] = function (\SplFileInfo $current) use ($types) { + return \in_array($current->getType(), $types); + }; + } + + $maxDepth = $this->getMaxDepth(); + $splFileInfo = $this->getSplFileInfo(); + + foreach ($this->getPaths() as $path) { + if (1 === $maxDepth) { + $iterator = new \IteratorIterator( + new IteratorRecursiveDirectory( + $path, + $this->getFlags(), + $splFileInfo + ), + $this->getFirst() + ); + } else { + $iterator = new \RecursiveIteratorIterator( + new IteratorRecursiveDirectory( + $path, + $this->getFlags(), + $splFileInfo + ), + $this->getFirst() + ); + + if (1 < $maxDepth) { + $iterator->setMaxDepth($maxDepth - 1); + } + } + + $_iterator->append($iterator); + } + + foreach ($this->getFilters() as $filter) { + $_iterator = new \CallbackFilterIterator( + $_iterator, + $filter + ); + } + + $sorts = $this->getSorts(); + + if (empty($sorts)) { + return $_iterator; + } + + $array = \iterator_to_array($_iterator); + + foreach ($sorts as $sort) { + \uasort($array, $sort); + } + + return new \ArrayIterator($array); + } + + /** + * Set SplFileInfo classname. + */ + public function setSplFileInfo(string $splFileInfo): string + { + $old = $this->_splFileInfo; + $this->_splFileInfo = $splFileInfo; + + return $old; + } + + /** + * Get SplFileInfo classname. + */ + public function getSplFileInfo(): string + { + return $this->_splFileInfo; + } + + /** + * Get all paths. + */ + protected function getPaths(): array + { + return $this->_paths; + } + + /** + * Get max depth. + */ + public function getMaxDepth(): int + { + return $this->_maxDepth; + } + + /** + * Get types. + */ + public function getTypes(): array + { + return $this->_types; + } + + /** + * Get filters. + */ + protected function getFilters(): array + { + return $this->_filters; + } + + /** + * Get sorts. + */ + protected function getSorts(): array + { + return $this->_sorts; + } + + /** + * Get flags. + */ + public function getFlags(): int + { + return $this->_flags; + } + + /** + * Get first. + */ + public function getFirst(): int + { + return $this->_first; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileGeneric.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileGeneric.php new file mode 100644 index 000000000..767b8045d --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileGeneric.php @@ -0,0 +1,487 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Generic. + * + * Describe a super-file. + */ +abstract class FileGeneric extends Stream implements StreamPathable, StreamStatable, StreamTouchable +{ + /** + * Mode. + */ + protected $_mode = null; + + /** + * Get filename component of path. + */ + public function getBasename(): string + { + return \basename($this->getStreamName()); + } + + /** + * Get directory name component of path. + */ + public function getDirname(): string + { + return \dirname($this->getStreamName()); + } + + /** + * Get size. + */ + public function getSize(): int + { + if (false === $this->getStatistic()) { + return false; + } + + return \filesize($this->getStreamName()); + } + + /** + * Get informations about a file. + */ + public function getStatistic(): array + { + return \fstat($this->getStream()); + } + + /** + * Get last access time of file. + */ + public function getATime(): int + { + return \fileatime($this->getStreamName()); + } + + /** + * Get inode change time of file. + */ + public function getCTime(): int + { + return \filectime($this->getStreamName()); + } + + /** + * Get file modification time. + */ + public function getMTime(): int + { + return \filemtime($this->getStreamName()); + } + + /** + * Get file group. + */ + public function getGroup(): int + { + return \filegroup($this->getStreamName()); + } + + /** + * Get file owner. + */ + public function getOwner(): int + { + return \fileowner($this->getStreamName()); + } + + /** + * Get file permissions. + */ + public function getPermissions(): int + { + return \fileperms($this->getStreamName()); + } + + /** + * Get file permissions as a string. + * Result sould be interpreted like this: + * * s: socket; + * * l: symbolic link; + * * -: regular; + * * b: block special; + * * d: directory; + * * c: character special; + * * p: FIFO pipe; + * * u: unknown. + */ + public function getReadablePermissions(): string + { + $p = $this->getPermissions(); + + if (($p & 0xC000) === 0xC000) { + $out = 's'; + } elseif (($p & 0xA000) === 0xA000) { + $out = 'l'; + } elseif (($p & 0x8000) === 0x8000) { + $out = '-'; + } elseif (($p & 0x6000) === 0x6000) { + $out = 'b'; + } elseif (($p & 0x4000) === 0x4000) { + $out = 'd'; + } elseif (($p & 0x2000) === 0x2000) { + $out = 'c'; + } elseif (($p & 0x1000) === 0x1000) { + $out = 'p'; + } else { + $out = 'u'; + } + + $out .= + (($p & 0x0100) ? 'r' : '-'). + (($p & 0x0080) ? 'w' : '-'). + (($p & 0x0040) ? + (($p & 0x0800) ? 's' : 'x') : + (($p & 0x0800) ? 'S' : '-')). + (($p & 0x0020) ? 'r' : '-'). + (($p & 0x0010) ? 'w' : '-'). + (($p & 0x0008) ? + (($p & 0x0400) ? 's' : 'x') : + (($p & 0x0400) ? 'S' : '-')). + (($p & 0x0004) ? 'r' : '-'). + (($p & 0x0002) ? 'w' : '-'). + (($p & 0x0001) ? + (($p & 0x0200) ? 't' : 'x') : + (($p & 0x0200) ? 'T' : '-')); + + return $out; + } + + /** + * Check if the file is readable. + */ + public function isReadable(): bool + { + return \is_readable($this->getStreamName()); + } + + /** + * Check if the file is writable. + */ + public function isWritable(): bool + { + return \is_writable($this->getStreamName()); + } + + /** + * Check if the file is executable. + */ + public function isExecutable(): bool + { + return \is_executable($this->getStreamName()); + } + + /** + * Clear file status cache. + */ + public function clearStatisticCache() + { + \clearstatcache(true, $this->getStreamName()); + } + + /** + * Clear all files status cache. + */ + public static function clearAllStatisticCaches() + { + \clearstatcache(); + } + + /** + * Set access and modification time of file. + */ + public function touch(?int $time = null, ?int $atime = null): bool + { + if (null === $time) { + $time = \time(); + } + + if (null === $atime) { + $atime = $time; + } + + return \touch($this->getStreamName(), $time, $atime); + } + + /** + * Copy file. + * Return the destination file path if succeed, false otherwise. + */ + public function copy(string $to, bool $force = StreamTouchable::DO_NOT_OVERWRITE): bool + { + $from = $this->getStreamName(); + + if ($force === StreamTouchable::DO_NOT_OVERWRITE && + true === \file_exists($to)) { + return true; + } + + if (null === $this->getStreamContext()) { + return @\copy($from, $to); + } + + return @\copy($from, $to, $this->getStreamContext()->getContext()); + } + + /** + * Move a file. + */ + public function move( + string $name, + bool $force = StreamTouchable::DO_NOT_OVERWRITE, + bool $mkdir = StreamTouchable::DO_NOT_MAKE_DIRECTORY + ): bool { + $from = $this->getStreamName(); + + if ($force === StreamTouchable::DO_NOT_OVERWRITE && + true === \file_exists($name)) { + return false; + } + + if (StreamTouchable::MAKE_DIRECTORY === $mkdir) { + FileDirectory::create( + \dirname($name), + FileDirectory::MODE_CREATE_RECURSIVE + ); + } + + if (null === $this->getStreamContext()) { + return @\rename($from, $name); + } + + return @\rename($from, $name, $this->getStreamContext()->getContext()); + } + + /** + * Delete a file. + */ + public function delete(): bool + { + if (null === $this->getStreamContext()) { + return @\unlink($this->getStreamName()); + } + + return @\unlink( + $this->getStreamName(), + $this->getStreamContext()->getContext() + ); + } + + /** + * Change file group. + */ + public function changeGroup($group): bool + { + return \chgrp($this->getStreamName(), $group); + } + + /** + * Change file mode. + */ + public function changeMode(int $mode): bool + { + return \chmod($this->getStreamName(), $mode); + } + + /** + * Change file owner. + */ + public function changeOwner($user): bool + { + return \chown($this->getStreamName(), $user); + } + + /** + * Change the current umask. + */ + public static function umask(?int $umask = null): int + { + if (null === $umask) { + return \umask(); + } + + return \umask($umask); + } + + /** + * Check if it is a file. + */ + public function isFile(): bool + { + return \is_file($this->getStreamName()); + } + + /** + * Check if it is a link. + */ + public function isLink(): bool + { + return \is_link($this->getStreamName()); + } + + /** + * Check if it is a directory. + */ + public function isDirectory(): bool + { + return \is_dir($this->getStreamName()); + } + + /** + * Check if it is a socket. + */ + public function isSocket(): bool + { + return \filetype($this->getStreamName()) === 'socket'; + } + + /** + * Check if it is a FIFO pipe. + */ + public function isFIFOPipe(): bool + { + return \filetype($this->getStreamName()) === 'fifo'; + } + + /** + * Check if it is character special file. + */ + public function isCharacterSpecial(): bool + { + return \filetype($this->getStreamName()) === 'char'; + } + + /** + * Check if it is block special. + */ + public function isBlockSpecial(): bool + { + return \filetype($this->getStreamName()) === 'block'; + } + + /** + * Check if it is an unknown type. + */ + public function isUnknown(): bool + { + return \filetype($this->getStreamName()) === 'unknown'; + } + + /** + * Set the open mode. + */ + protected function setMode(string $mode) + { + $old = $this->_mode; + $this->_mode = $mode; + + return $old; + } + + /** + * Get the open mode. + */ + public function getMode() + { + return $this->_mode; + } + + /** + * Get inode. + */ + public function getINode(): int + { + return \fileinode($this->getStreamName()); + } + + /** + * Check if the system is case sensitive or not. + */ + public static function isCaseSensitive(): bool + { + return !( + \file_exists(\mb_strtolower(__FILE__)) && + \file_exists(\mb_strtoupper(__FILE__)) + ); + } + + /** + * Get a canonicalized absolute pathname. + */ + public function getRealPath(): string + { + if (false === $out = \realpath($this->getStreamName())) { + return $this->getStreamName(); + } + + return $out; + } + + /** + * Get file extension (if exists). + */ + public function getExtension(): string + { + return \pathinfo( + $this->getStreamName(), + \PATHINFO_EXTENSION + ); + } + + /** + * Get filename without extension. + */ + public function getFilename(): string + { + $file = \basename($this->getStreamName()); + + if (\defined('PATHINFO_FILENAME')) { + return \pathinfo($file, \PATHINFO_FILENAME); + } + + if (\strstr($file, '.')) { + return \substr($file, 0, \strrpos($file, '.')); + } + + return $file; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileLink.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileLink.php new file mode 100644 index 000000000..e48a41115 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileLink.php @@ -0,0 +1,149 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Link. + * + * Link handler. + */ +class FileLink extends File +{ + /** + * Open a link. + */ + public function __construct( + string $streamName, + string $mode, + ?string $context = null, + bool $wait = false + ) { + if (!\is_link($streamName)) { + throw new FileException('File %s is not a link.', 0, $streamName); + } + + parent::__construct($streamName, $mode, $context, $wait); + + return; + } + + /** + * Get informations about a link. + */ + public function getStatistic(): array + { + return \lstat($this->getStreamName()); + } + + /** + * Change file group. + */ + public function changeGroup($group): bool + { + return \lchgrp($this->getStreamName(), $group); + } + + /** + * Change file owner. + */ + public function changeOwner($user): bool + { + return \lchown($this->getStreamName(), $user); + } + + /** + * Get file permissions. + */ + public function getPermissions(): int + { + return 41453; // i.e. lrwxr-xr-x + } + + /** + * Get the target of a symbolic link. + */ + public function getTarget(): FileGeneric + { + $target = \dirname($this->getStreamName()).\DIRECTORY_SEPARATOR. + $this->getTargetName(); + $context = null !== $this->getStreamContext() + ? $this->getStreamContext()->getCurrentId() + : null; + + if (true === \is_link($target)) { + return new FileLinkReadWrite( + $target, + File::MODE_APPEND_READ_WRITE, + $context + ); + } elseif (true === \is_file($target)) { + return new FileReadWrite( + $target, + File::MODE_APPEND_READ_WRITE, + $context + ); + } elseif (true === \is_dir($target)) { + return new FileDirectory( + $target, + File::MODE_READ, + $context + ); + } + + throw new FileException('Cannot find an appropriated object that matches with '.'path %s when defining it.', 1, $target); + } + + /** + * Get the target name of a symbolic link. + */ + public function getTargetName(): string + { + return \readlink($this->getStreamName()); + } + + /** + * Create a link. + */ + public static function create(string $name, string $target): bool + { + if (false !== \linkinfo($name)) { + return true; + } + + return \symlink($target, $name); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileLinkRead.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileLinkRead.php new file mode 100644 index 000000000..ffa4ebcf0 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileLinkRead.php @@ -0,0 +1,231 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Link\Read. + * + * File handler. + * + * @license New BSD License + */ +class FileLinkRead extends FileLink implements StreamIn +{ + /** + * Open a file. + * + * @param string $streamName stream name + * @param string $mode open mode, see the parent::MODE_* constants + * @param string $context context ID (please, see the + * \Hoa\Stream\Context class) + * @param bool $wait differ opening or not + */ + public function __construct( + string $streamName, + string $mode = parent::MODE_READ, + ?string $context = null, + bool $wait = false + ) { + parent::__construct($streamName, $mode, $context, $wait); + + return; + } + + /** + * Open the stream and return the associated resource. + * + * @param string $streamName Stream name (e.g. path or URL). + * @param \Hoa\Stream\Context $context context + * + * @return resource + * + * @throws \Hoa\File\Exception\FileDoesNotExist + * @throws \Hoa\File\Exception + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + static $createModes = [ + parent::MODE_READ, + ]; + + if (!\in_array($this->getMode(), $createModes)) { + throw new FileException('Open mode are not supported; given %d. Only %s are supported.', 0, [$this->getMode(), \implode(', ', $createModes)]); + } + + \preg_match('#^(\w+)://#', $streamName, $match); + + if (((isset($match[1]) && $match[1] === 'file') || !isset($match[1])) && + !\file_exists($streamName)) { + throw new FileDoesNotExistException('File %s does not exist.', 1, $streamName); + } + + $out = parent::_open($streamName, $context); + + return $out; + } + + /** + * Test for end-of-file. + * + * @return bool + */ + public function eof(): bool + { + return \feof($this->getStream()); + } + + /** + * Read n characters. + * + * @param int $length length + * + * @return string + * + * @throws \Hoa\File\Exception + */ + public function read(int $length) + { + if (0 > $length) { + throw new FileException('Length must be greater than 0, given %d.', 2, $length); + } + + return \fread($this->getStream(), $length); + } + + /** + * Alias of $this->read(). + * + * @param int $length length + * + * @return string + */ + public function readString(int $length) + { + return $this->read($length); + } + + /** + * Read a character. + * + * @return string + */ + public function readCharacter() + { + return \fgetc($this->getStream()); + } + + /** + * Read a boolean. + * + * @return bool + */ + public function readBoolean() + { + return (bool) $this->read(1); + } + + /** + * Read an integer. + * + * @param int $length length + * + * @return int + */ + public function readInteger(int $length = 1) + { + return (int) $this->read($length); + } + + /** + * Read a float. + * + * @param int $length length + * + * @return float + */ + public function readFloat(int $length = 1) + { + return (float) $this->read($length); + } + + /** + * Read an array. + * Alias of the $this->scanf() method. + * + * @param string $format format (see printf's formats) + * + * @return array + */ + public function readArray(?string $format = null) + { + return $this->scanf($format); + } + + /** + * Read a line. + * + * @return string + */ + public function readLine() + { + return \fgets($this->getStream()); + } + + /** + * Read all, i.e. read as much as possible. + * + * @param int $offset offset + * + * @return string + */ + public function readAll(int $offset = 0) + { + return \stream_get_contents($this->getStream(), -1, $offset); + } + + /** + * Parse input from a stream according to a format. + * + * @param string $format format (see printf's formats) + * + * @return array + */ + public function scanf(string $format): array + { + return \fscanf($this->getStream(), $format); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileLinkReadWrite.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileLinkReadWrite.php new file mode 100644 index 000000000..e930d9197 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileLinkReadWrite.php @@ -0,0 +1,279 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Link\ReadWrite. + * + * File handler. + */ +class FileLinkReadWrite extends FileLink implements StreamIn, StreamOut +{ + /** + * Open a file. + */ + public function __construct( + string $streamName, + string $mode = parent::MODE_APPEND_READ_WRITE, + ?string $context = null, + bool $wait = false + ) { + parent::__construct($streamName, $mode, $context, $wait); + + return; + } + + /** + * Open the stream and return the associated resource. + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + static $createModes = [ + parent::MODE_READ_WRITE, + parent::MODE_TRUNCATE_READ_WRITE, + parent::MODE_APPEND_READ_WRITE, + parent::MODE_CREATE_READ_WRITE, + ]; + + if (!\in_array($this->getMode(), $createModes)) { + throw new FileException('Open mode are not supported; given %d. Only %s are supported.', 0, [$this->getMode(), \implode(', ', $createModes)]); + } + + \preg_match('#^(\w+)://#', $streamName, $match); + + if (((isset($match[1]) && $match[1] === 'file') || !isset($match[1])) && + !\file_exists($streamName) && + parent::MODE_READ_WRITE === $this->getMode()) { + throw new FileDoesNotExistException('File %s does not exist.', 1, $streamName); + } + + $out = parent::_open($streamName, $context); + + return $out; + } + + /** + * Test for end-of-file. + */ + public function eof(): bool + { + return \feof($this->getStream()); + } + + /** + * Read n characters. + */ + public function read(int $length) + { + if (0 > $length) { + throw new FileException('Length must be greater than 0, given %d.', 2, $length); + } + + return \fread($this->getStream(), $length); + } + + /** + * Alias of $this->read(). + */ + public function readString(int $length) + { + return $this->read($length); + } + + /** + * Read a character. + */ + public function readCharacter() + { + return \fgetc($this->getStream()); + } + + /** + * Read a boolean. + */ + public function readBoolean() + { + return (bool) $this->read(1); + } + + /** + * Read an integer. + */ + public function readInteger(int $length = 1) + { + return (int) $this->read($length); + } + + /** + * Read a float. + */ + public function readFloat(int $length = 1) + { + return (float) $this->read($length); + } + + /** + * Read an array. + * Alias of the $this->scanf() method. + */ + public function readArray(?string $format = null) + { + return $this->scanf($format); + } + + /** + * Read a line. + */ + public function readLine() + { + return \fgets($this->getStream()); + } + + /** + * Read all, i.e. read as much as possible. + */ + public function readAll(int $offset = 0) + { + return \stream_get_contents($this->getStream(), -1, $offset); + } + + /** + * Parse input from a stream according to a format. + */ + public function scanf(string $format): array + { + return \fscanf($this->getStream(), $format); + } + + /** + * Write n characters. + */ + public function write(string $string, int $length) + { + if (0 > $length) { + throw new FileException('Length must be greater than 0, given %d.', 3, $length); + } + + return \fwrite($this->getStream(), $string, $length); + } + + /** + * Write a string. + */ + public function writeString(string $string) + { + $string = (string) $string; + + return $this->write($string, \strlen($string)); + } + + /** + * Write a character. + */ + public function writeCharacter(string $char) + { + return $this->write((string) $char[0], 1); + } + + /** + * Write a boolean. + */ + public function writeBoolean(bool $boolean) + { + return $this->write((string) (bool) $boolean, 1); + } + + /** + * Write an integer. + */ + public function writeInteger(int $integer) + { + $integer = (string) (int) $integer; + + return $this->write($integer, \strlen($integer)); + } + + /** + * Write a float. + */ + public function writeFloat(float $float) + { + $float = (string) (float) $float; + + return $this->write($float, \strlen($float)); + } + + /** + * Write an array. + */ + public function writeArray(array $array) + { + $array = \var_export($array, true); + + return $this->write($array, \strlen($array)); + } + + /** + * Write a line. + */ + public function writeLine(string $line) + { + if (false === $n = \strpos($line, "\n")) { + return $this->write($line."\n", \strlen($line) + 1); + } + + ++$n; + + return $this->write(\substr($line, 0, $n), $n); + } + + /** + * Write all, i.e. as much as possible. + */ + public function writeAll(string $string) + { + return $this->write($string, \strlen($string)); + } + + /** + * Truncate a file to a given length. + */ + public function truncate(int $size): bool + { + return \ftruncate($this->getStream(), $size); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileRead.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileRead.php new file mode 100644 index 000000000..f737ba5d2 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileRead.php @@ -0,0 +1,177 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\Read. + * + * File handler. + */ +class FileRead extends File implements StreamIn +{ + /** + * Open a file. + */ + public function __construct( + string $streamName, + string $mode = parent::MODE_READ, + ?string $context = null, + bool $wait = false + ) { + parent::__construct($streamName, $mode, $context, $wait); + + return; + } + + /** + * Open the stream and return the associated resource. + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + static $createModes = [ + parent::MODE_READ, + ]; + + if (!\in_array($this->getMode(), $createModes)) { + throw new FileException('Open mode are not supported; given %d. Only %s are supported.', 0, [$this->getMode(), \implode(', ', $createModes)]); + } + + \preg_match('#^(\w+)://#', $streamName, $match); + + if (((isset($match[1]) && $match[1] === 'file') || !isset($match[1])) && + !\file_exists($streamName)) { + throw new FileDoesNotExistException('File %s does not exist.', 1, $streamName); + } + + $out = parent::_open($streamName, $context); + + return $out; + } + + /** + * Test for end-of-file. + */ + public function eof(): bool + { + return \feof($this->getStream()); + } + + /** + * Read n characters. + */ + public function read(int $length) + { + if (0 > $length) { + throw new FileException('Length must be greater than 0, given %d.', 2, $length); + } + + return \fread($this->getStream(), $length); + } + + /** + * Alias of $this->read(). + */ + public function readString(int $length) + { + return $this->read($length); + } + + /** + * Read a character. + */ + public function readCharacter() + { + return \fgetc($this->getStream()); + } + + /** + * Read a boolean. + */ + public function readBoolean() + { + return (bool) $this->read(1); + } + + /** + * Read an integer. + */ + public function readInteger(int $length = 1) + { + return (int) $this->read($length); + } + + /** + * Read a float. + */ + public function readFloat(int $length = 1) + { + return (float) $this->read($length); + } + + /** + * Read an array. + * Alias of the $this->scanf() method. + */ + public function readArray(?string $format = null) + { + return $this->scanf($format); + } + + /** + * Read a line. + */ + public function readLine() + { + return \fgets($this->getStream()); + } + + /** + * Read all, i.e. read as much as possible. + */ + public function readAll(int $offset = 0) + { + return \stream_get_contents($this->getStream(), -1, $offset); + } + + /** + * Parse input from a stream according to a format. + */ + public function scanf(string $format): array + { + return \fscanf($this->getStream(), $format); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/FileReadWrite.php b/api/vendor/psy/psysh/src/Readline/Hoa/FileReadWrite.php new file mode 100644 index 000000000..d97aa174d --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/FileReadWrite.php @@ -0,0 +1,279 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\File\ReadWrite. + * + * File handler. + */ +class FileReadWrite extends File implements StreamIn, StreamOut +{ + /** + * Open a file. + */ + public function __construct( + string $streamName, + string $mode = parent::MODE_APPEND_READ_WRITE, + ?string $context = null, + bool $wait = false + ) { + parent::__construct($streamName, $mode, $context, $wait); + + return; + } + + /** + * Open the stream and return the associated resource. + */ + protected function &_open(string $streamName, ?StreamContext $context = null) + { + static $createModes = [ + parent::MODE_READ_WRITE, + parent::MODE_TRUNCATE_READ_WRITE, + parent::MODE_APPEND_READ_WRITE, + parent::MODE_CREATE_READ_WRITE, + ]; + + if (!\in_array($this->getMode(), $createModes)) { + throw new FileException('Open mode are not supported; given %d. Only %s are supported.', 0, [$this->getMode(), \implode(', ', $createModes)]); + } + + \preg_match('#^(\w+)://#', $streamName, $match); + + if (((isset($match[1]) && $match[1] === 'file') || !isset($match[1])) && + !\file_exists($streamName) && + parent::MODE_READ_WRITE === $this->getMode()) { + throw new FileDoesNotExistException('File %s does not exist.', 1, $streamName); + } + + $out = parent::_open($streamName, $context); + + return $out; + } + + /** + * Test for end-of-file. + */ + public function eof(): bool + { + return \feof($this->getStream()); + } + + /** + * Read n characters. + */ + public function read(int $length) + { + if (0 > $length) { + throw new FileException('Length must be greater than 0, given %d.', 2, $length); + } + + return \fread($this->getStream(), $length); + } + + /** + * Alias of $this->read(). + */ + public function readString(int $length) + { + return $this->read($length); + } + + /** + * Read a character. + */ + public function readCharacter() + { + return \fgetc($this->getStream()); + } + + /** + * Read a boolean. + */ + public function readBoolean() + { + return (bool) $this->read(1); + } + + /** + * Read an integer. + */ + public function readInteger(int $length = 1) + { + return (int) $this->read($length); + } + + /** + * Read a float. + */ + public function readFloat(int $length = 1) + { + return (float) $this->read($length); + } + + /** + * Read an array. + * Alias of the $this->scanf() method. + */ + public function readArray(?string $format = null) + { + return $this->scanf($format); + } + + /** + * Read a line. + */ + public function readLine() + { + return \fgets($this->getStream()); + } + + /** + * Read all, i.e. read as much as possible. + */ + public function readAll(int $offset = 0) + { + return \stream_get_contents($this->getStream(), -1, $offset); + } + + /** + * Parse input from a stream according to a format. + */ + public function scanf(string $format): array + { + return \fscanf($this->getStream(), $format); + } + + /** + * Write n characters. + */ + public function write(string $string, int $length) + { + if (0 > $length) { + throw new FileException('Length must be greater than 0, given %d.', 3, $length); + } + + return \fwrite($this->getStream(), $string, $length); + } + + /** + * Write a string. + */ + public function writeString(string $string) + { + $string = (string) $string; + + return $this->write($string, \strlen($string)); + } + + /** + * Write a character. + */ + public function writeCharacter(string $char) + { + return $this->write((string) $char[0], 1); + } + + /** + * Write a boolean. + */ + public function writeBoolean(bool $boolean) + { + return $this->write((string) (bool) $boolean, 1); + } + + /** + * Write an integer. + */ + public function writeInteger(int $integer) + { + $integer = (string) (int) $integer; + + return $this->write($integer, \strlen($integer)); + } + + /** + * Write a float. + */ + public function writeFloat(float $float) + { + $float = (string) (float) $float; + + return $this->write($float, \strlen($float)); + } + + /** + * Write an array. + */ + public function writeArray(array $array) + { + $array = \var_export($array, true); + + return $this->write($array, \strlen($array)); + } + + /** + * Write a line. + */ + public function writeLine(string $line) + { + if (false === $n = \strpos($line, "\n")) { + return $this->write($line."\n", \strlen($line) + 1); + } + + ++$n; + + return $this->write(\substr($line, 0, $n), $n); + } + + /** + * Write all, i.e. as much as possible. + */ + public function writeAll(string $string) + { + return $this->write($string, \strlen($string)); + } + + /** + * Truncate a file to a given length. + */ + public function truncate(int $size): bool + { + return \ftruncate($this->getStream(), $size); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/IStream.php b/api/vendor/psy/psysh/src/Readline/Hoa/IStream.php new file mode 100644 index 000000000..9b9949a24 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/IStream.php @@ -0,0 +1,50 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Stream. + * + * Interface for all streams. + */ +interface IStream +{ + /** + * Get the current stream. + */ + public function getStream(); +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/IteratorFileSystem.php b/api/vendor/psy/psysh/src/Readline/Hoa/IteratorFileSystem.php new file mode 100644 index 000000000..2ed843154 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/IteratorFileSystem.php @@ -0,0 +1,86 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Iterator\FileSystem. + * + * Extending the SPL FileSystemIterator class. + */ +class IteratorFileSystem extends \FilesystemIterator +{ + /** + * SplFileInfo classname. + */ + protected $_splFileInfoClass = null; + + /** + * Constructor. + * Please, see \FileSystemIterator::__construct() method. + * We add the $splFileInfoClass parameter. + */ + public function __construct(string $path, ?int $flags = null, ?string $splFileInfoClass = null) + { + $this->_splFileInfoClass = $splFileInfoClass; + + if (null === $flags) { + parent::__construct($path); + } else { + parent::__construct($path, $flags); + } + + return; + } + + /** + * Current. + * Please, see \FileSystemIterator::current() method. + */ + #[\ReturnTypeWillChange] + public function current() + { + $out = parent::current(); + + if (null !== $this->_splFileInfoClass && + $out instanceof \SplFileInfo) { + $out->setInfoClass($this->_splFileInfoClass); + $out = $out->getFileInfo(); + } + + return $out; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/IteratorRecursiveDirectory.php b/api/vendor/psy/psysh/src/Readline/Hoa/IteratorRecursiveDirectory.php new file mode 100644 index 000000000..80fd02acf --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/IteratorRecursiveDirectory.php @@ -0,0 +1,126 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Iterator\Recursive\Directory. + * + * Extending the SPL RecursiveDirectoryIterator class. + */ +class IteratorRecursiveDirectory extends \RecursiveDirectoryIterator +{ + /** + * SplFileInfo classname. + */ + protected $_splFileInfoClass = null; + + /** + * Relative path. + */ + protected $_relativePath = null; + + /** + * Constructor. + * Please, see \RecursiveDirectoryIterator::__construct() method. + * We add the $splFileInfoClass parameter. + */ + public function __construct(string $path, ?int $flags = null, ?string $splFileInfoClass = null) + { + if (null === $flags) { + parent::__construct($path); + } else { + parent::__construct($path, $flags); + } + + $this->_relativePath = $path; + $this->setSplFileInfoClass($splFileInfoClass); + + return; + } + + /** + * Current. + * Please, see \RecursiveDirectoryIterator::current() method. + */ + #[\ReturnTypeWillChange] + public function current() + { + $out = parent::current(); + + if (null !== $this->_splFileInfoClass && + $out instanceof \SplFileInfo) { + $out->setInfoClass($this->_splFileInfoClass); + $out = $out->getFileInfo(); + + if ($out instanceof IteratorSplFileInfo) { + $out->setRelativePath($this->getRelativePath()); + } + } + + return $out; + } + + /** + * Get children. + * Please, see \RecursiveDirectoryIterator::getChildren() method. + */ + #[\ReturnTypeWillChange] + public function getChildren() + { + $out = parent::getChildren(); + $out->_relativePath = $this->getRelativePath(); + $out->setSplFileInfoClass($this->_splFileInfoClass); + + return $out; + } + + /** + * Set SplFileInfo classname. + */ + public function setSplFileInfoClass($splFileInfoClass) + { + $this->_splFileInfoClass = $splFileInfoClass; + } + + /** + * Get relative path (if given). + */ + public function getRelativePath(): string + { + return $this->_relativePath; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/IteratorSplFileInfo.php b/api/vendor/psy/psysh/src/Readline/Hoa/IteratorSplFileInfo.php new file mode 100644 index 000000000..61fa08068 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/IteratorSplFileInfo.php @@ -0,0 +1,122 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Iterator\SplFileInfo. + * + * Enhance SplFileInfo implementation. + */ +class IteratorSplFileInfo extends \SplFileInfo +{ + /** + * Hash. + */ + protected $_hash = null; + + /** + * Relative path. + */ + protected $_relativePath = null; + + /** + * Construct. + */ + public function __construct(string $filename, ?string $relativePath = null) + { + parent::__construct($filename); + + if (-1 !== $mtime = $this->getMTime()) { + $this->_hash = \md5($this->getPathname().$mtime); + } + + $this->_relativePath = $relativePath; + + return; + } + + /** + * Get the hash. + */ + public function getHash(): string + { + return $this->_hash; + } + + /** + * Get the MTime. + */ + public function getMTime(): int + { + try { + return parent::getMTime(); + } catch (\RuntimeException $e) { + return -1; + } + } + + /** + * Set relative path. + */ + public function setRelativePath(string $relativePath) + { + $old = $this->_relativePath; + $this->_relativePath = $relativePath; + + return $old; + } + + /** + * Get relative path (if given). + */ + public function getRelativePath() + { + return $this->_relativePath; + } + + /** + * Get relative pathname (if possible). + */ + public function getRelativePathname(): string + { + if (null === $relative = $this->getRelativePath()) { + return $this->getPathname(); + } + + return \substr($this->getPathname(), \strlen($relative)); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Protocol.php b/api/vendor/psy/psysh/src/Readline/Hoa/Protocol.php new file mode 100644 index 000000000..922ddcbfb --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Protocol.php @@ -0,0 +1,223 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Root of the `hoa://` protocol. + */ +class Protocol extends ProtocolNode +{ + /** + * No resolution value. + * + * @const string + */ + const NO_RESOLUTION = '/hoa/flatland'; + + /** + * Singleton. + */ + private static $_instance = null; + + /** + * Cache of resolver. + */ + private static $_cache = []; + + /** + * Initialize the protocol. + */ + public function __construct() + { + $this->initialize(); + + return; + } + + /** + * Singleton. + * To use the `hoa://` protocol shared by everyone. + */ + public static function getInstance(): self + { + if (null === static::$_instance) { + static::$_instance = new self(); + } + + return static::$_instance; + } + + /** + * Initialize the protocol. + */ + protected function initialize() + { + $root = \dirname(__DIR__, 3); + $argv0 = isset($_SERVER['argv'][0]) ? \realpath($_SERVER['argv'][0]) : false; + + $cwd = + 'cli' === \PHP_SAPI + ? false !== $argv0 ? \dirname($argv0) : '' + : \getcwd(); + + $this[] = new ProtocolNode( + 'Application', + $cwd.\DIRECTORY_SEPARATOR, + [ + new ProtocolNode('Public', 'Public'.\DIRECTORY_SEPARATOR), + ] + ); + + $this[] = new ProtocolNode( + 'Data', + \dirname($cwd).\DIRECTORY_SEPARATOR, + [ + new ProtocolNode( + 'Etc', + 'Etc'.\DIRECTORY_SEPARATOR, + [ + new ProtocolNode('Configuration', 'Configuration'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Locale', 'Locale'.\DIRECTORY_SEPARATOR), + ] + ), + new ProtocolNode('Lost+found', 'Lost+found'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Temporary', 'Temporary'.\DIRECTORY_SEPARATOR), + new ProtocolNode( + 'Variable', + 'Variable'.\DIRECTORY_SEPARATOR, + [ + new ProtocolNode('Cache', 'Cache'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Database', 'Database'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Log', 'Log'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Private', 'Private'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Run', 'Run'.\DIRECTORY_SEPARATOR), + new ProtocolNode('Test', 'Test'.\DIRECTORY_SEPARATOR), + ] + ), + ] + ); + + $this[] = new ProtocolNodeLibrary( + 'Library', + $root.\DIRECTORY_SEPARATOR.'Hoathis'.\DIRECTORY_SEPARATOR.';'. + $root.\DIRECTORY_SEPARATOR.'Hoa'.\DIRECTORY_SEPARATOR + ); + } + + /** + * Resolve (unfold) an `hoa://` path to its real resource. + * + * If `$exists` is set to `true`, try to find the first that exists, + * otherwise returns the first solution. If `$unfold` is set to `true`, + * it returns all the paths. + */ + public function resolve(string $path, bool $exists = true, bool $unfold = false) + { + if (\substr($path, 0, 6) !== 'hoa://') { + if (true === \is_dir($path)) { + $path = \rtrim($path, '/\\'); + + if ('' === $path) { + $path = '/'; + } + } + + return $path; + } + + if (isset(self::$_cache[$path])) { + $handle = self::$_cache[$path]; + } else { + $out = $this->_resolve($path, $handle); + + // Not a path but a resource. + if (!\is_array($handle)) { + return $out; + } + + $handle = \array_values(\array_unique($handle, \SORT_REGULAR)); + + foreach ($handle as &$entry) { + if (true === \is_dir($entry)) { + $entry = \rtrim($entry, '/\\'); + + if ('' === $entry) { + $entry = '/'; + } + } + } + + self::$_cache[$path] = $handle; + } + + if (true === $unfold) { + if (true !== $exists) { + return $handle; + } + + $out = []; + + foreach ($handle as $solution) { + if (\file_exists($solution)) { + $out[] = $solution; + } + } + + return $out; + } + + if (true !== $exists) { + return $handle[0]; + } + + foreach ($handle as $solution) { + if (\file_exists($solution)) { + return $solution; + } + } + + return static::NO_RESOLUTION; + } + + /** + * Clear the cache. + */ + public static function clearCache() + { + self::$_cache = []; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolException.php b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolException.php new file mode 100644 index 000000000..6b624bb9e --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolException.php @@ -0,0 +1,44 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Extends the `Hoa\Exception\Exception` class. + */ +class ProtocolException extends Exception +{ +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolNode.php b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolNode.php new file mode 100644 index 000000000..4a82cf497 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolNode.php @@ -0,0 +1,323 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Abstract class for all `hoa://`'s nodes. + */ +class ProtocolNode implements \ArrayAccess, \IteratorAggregate +{ + /** + * Node's name. + */ + protected $_name = null; + + /** + * Path for the `reach` method. + */ + protected $_reach = null; + + /** + * Children of the node. + */ + private $_children = []; + + /** + * Construct a protocol's node. + * If it is not a data object (i.e. if it does not extend this class to + * overload the `$_name` attribute), we can set the `$_name` attribute + * dynamically. This is useful to create a node on-the-fly. + */ + public function __construct(?string $name = null, ?string $reach = null, array $children = []) + { + if (null !== $name) { + $this->_name = $name; + } + + if (null !== $reach) { + $this->_reach = $reach; + } + + foreach ($children as $child) { + $this[] = $child; + } + + return; + } + + /** + * Add a node. + */ + #[\ReturnTypeWillChange] + public function offsetSet($name, $node) + { + if (!($node instanceof self)) { + throw new ProtocolException('Protocol node must extend %s.', 0, __CLASS__); + } + + if (empty($name)) { + $name = $node->getName(); + } + + if (empty($name)) { + throw new ProtocolException('Cannot add a node to the `hoa://` protocol without a name.', 1); + } + + $this->_children[$name] = $node; + } + + /** + * Get a specific node. + */ + public function offsetGet($name): self + { + if (!isset($this[$name])) { + throw new ProtocolException('Node %s does not exist.', 2, $name); + } + + return $this->_children[$name]; + } + + /** + * Check if a node exists. + */ + public function offsetExists($name): bool + { + return true === \array_key_exists($name, $this->_children); + } + + /** + * Remove a node. + */ + #[\ReturnTypeWillChange] + public function offsetUnset($name) + { + unset($this->_children[$name]); + } + + /** + * Resolve a path, i.e. iterate the nodes tree and reach the queue of + * the path. + */ + protected function _resolve(string $path, &$accumulator, ?string $id = null) + { + if (\substr($path, 0, 6) === 'hoa://') { + $path = \substr($path, 6); + } + + if (empty($path)) { + return null; + } + + if (null === $accumulator) { + $accumulator = []; + $posId = \strpos($path, '#'); + + if (false !== $posId) { + $id = \substr($path, $posId + 1); + $path = \substr($path, 0, $posId); + } else { + $id = null; + } + } + + $path = \trim($path, '/'); + $pos = \strpos($path, '/'); + + if (false !== $pos) { + $next = \substr($path, 0, $pos); + } else { + $next = $path; + } + + if (isset($this[$next])) { + if (false === $pos) { + if (null === $id) { + $this->_resolveChoice($this[$next]->reach(), $accumulator); + + return true; + } + + $accumulator = null; + + return $this[$next]->reachId($id); + } + + $tnext = $this[$next]; + $this->_resolveChoice($tnext->reach(), $accumulator); + + return $tnext->_resolve(\substr($path, $pos + 1), $accumulator, $id); + } + + $this->_resolveChoice($this->reach($path), $accumulator); + + return true; + } + + /** + * Resolve choices, i.e. a reach value has a “;”. + */ + protected function _resolveChoice($reach, &$accumulator) + { + if (null === $reach) { + $reach = ''; + } + + if (empty($accumulator)) { + $accumulator = \explode(';', $reach); + + return; + } + + if (false === \strpos($reach, ';')) { + if (false !== $pos = \strrpos($reach, "\r")) { + $reach = \substr($reach, $pos + 1); + + foreach ($accumulator as &$entry) { + $entry = null; + } + } + + foreach ($accumulator as &$entry) { + $entry .= $reach; + } + + return; + } + + $choices = \explode(';', $reach); + $ref = $accumulator; + $accumulator = []; + + foreach ($choices as $choice) { + if (false !== $pos = \strrpos($choice, "\r")) { + $choice = \substr($choice, $pos + 1); + + foreach ($ref as $entry) { + $accumulator[] = $choice; + } + } else { + foreach ($ref as $entry) { + $accumulator[] = $entry.$choice; + } + } + } + + unset($ref); + + return; + } + + /** + * Queue of the node. + * Generic one. Must be overrided in children classes. + */ + public function reach(?string $queue = null) + { + return empty($queue) ? $this->_reach : $queue; + } + + /** + * ID of the component. + * Generic one. Should be overrided in children classes. + */ + public function reachId(string $id) + { + throw new ProtocolException('The node %s has no ID support (tried to reach #%s).', 4, [$this->getName(), $id]); + } + + /** + * Set a new reach value. + */ + public function setReach(string $reach) + { + $old = $this->_reach; + $this->_reach = $reach; + + return $old; + } + + /** + * Get node's name. + */ + public function getName() + { + return $this->_name; + } + + /** + * Get reach's root. + */ + protected function getReach() + { + return $this->_reach; + } + + /** + * Get an iterator. + */ + public function getIterator(): \ArrayIterator + { + return new \ArrayIterator($this->_children); + } + + /** + * Get root the protocol. + */ + public static function getRoot(): Protocol + { + return Protocol::getInstance(); + } + + /** + * Print a tree of component. + */ + public function __toString(): string + { + static $i = 0; + + $out = \str_repeat(' ', $i).$this->getName()."\n"; + + foreach ($this as $node) { + ++$i; + $out .= $node; + --$i; + } + + return $out; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolNodeLibrary.php b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolNodeLibrary.php new file mode 100644 index 000000000..023f0300c --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolNodeLibrary.php @@ -0,0 +1,90 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * The `hoa://Library/` node. + */ +class ProtocolNodeLibrary extends ProtocolNode +{ + /** + * Queue of the component. + */ + public function reach(?string $queue = null) + { + $withComposer = \class_exists('Composer\Autoload\ClassLoader', false) || + ('cli' === \PHP_SAPI && \file_exists(__DIR__.\DIRECTORY_SEPARATOR.'..'.\DIRECTORY_SEPARATOR.'..'.\DIRECTORY_SEPARATOR.'..'.\DIRECTORY_SEPARATOR.'..'.\DIRECTORY_SEPARATOR.'autoload.php')); + + if ($withComposer) { + return parent::reach($queue); + } + + if (!empty($queue)) { + $head = $queue; + + if (false !== $pos = \strpos($queue, '/')) { + $head = \substr($head, 0, $pos); + $queue = \DIRECTORY_SEPARATOR.\substr($queue, $pos + 1); + } else { + $queue = null; + } + + $out = []; + + foreach (\explode(';', $this->_reach) as $part) { + $out[] = "\r".$part.\strtolower($head).$queue; + } + + $out[] = "\r".\dirname(__DIR__, 5).$queue; + + return \implode(';', $out); + } + + $out = []; + + foreach (\explode(';', $this->_reach) as $part) { + $pos = \strrpos(\rtrim($part, \DIRECTORY_SEPARATOR), \DIRECTORY_SEPARATOR) + 1; + $head = \substr($part, 0, $pos); + $tail = \substr($part, $pos); + $out[] = $head.\strtolower($tail); + } + + $this->_reach = \implode(';', $out); + + return parent::reach($queue); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolWrapper.php b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolWrapper.php new file mode 100644 index 000000000..8d525e7ef --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/ProtocolWrapper.php @@ -0,0 +1,473 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Stream wrapper for the `hoa://` protocol. + */ +class ProtocolWrapper +{ + /** + * Opened stream as a resource. + */ + private $_stream = null; + + /** + * Stream name (filename). + */ + private $_streamName = null; + + /** + * Stream context (given by the streamWrapper class) as a resource. + */ + public $context = null; + + /** + * Get the real path of the given URL. + * Could return false if the path cannot be reached. + */ + public static function realPath(string $path, bool $exists = true) + { + return ProtocolNode::getRoot()->resolve($path, $exists); + } + + /** + * Retrieve the underlying resource. + * + * `$castAs` can be `STREAM_CAST_FOR_SELECT` when `stream_select` is + * calling `stream_cast` or `STREAM_CAST_AS_STREAM` when `stream_cast` is + * called for other uses. + */ + public function stream_cast(int $castAs) + { + return null; + } + + /** + * Closes a resource. + * This method is called in response to `fclose`. + * All resources that were locked, or allocated, by the wrapper should be + * released. + */ + public function stream_close() + { + if (true === @\fclose($this->getStream())) { + $this->_stream = null; + $this->_streamName = null; + } + } + + /** + * Tests for end-of-file on a file pointer. + * This method is called in response to feof(). + */ + public function stream_eof(): bool + { + return \feof($this->getStream()); + } + + /** + * Flush the output. + * This method is called in respond to fflush(). + * If we have cached data in our stream but not yet stored it into the + * underlying storage, we should do so now. + */ + public function stream_flush(): bool + { + return \fflush($this->getStream()); + } + + /** + * Advisory file locking. + * This method is called in response to flock(), when file_put_contents() + * (when flags contains LOCK_EX), stream_set_blocking() and when closing the + * stream (LOCK_UN). + * + * Operation is one the following: + * * LOCK_SH to acquire a shared lock (reader) ; + * * LOCK_EX to acquire an exclusive lock (writer) ; + * * LOCK_UN to release a lock (shared or exclusive) ; + * * LOCK_NB if we don't want flock() to + * block while locking (not supported on + * Windows). + */ + public function stream_lock(int $operation): bool + { + return \flock($this->getStream(), $operation); + } + + /** + * Change stream options. + * This method is called to set metadata on the stream. It is called when + * one of the following functions is called on a stream URL: touch, chmod, + * chown or chgrp. + * + * Option must be one of the following constant: + * * STREAM_META_TOUCH, + * * STREAM_META_OWNER_NAME, + * * STREAM_META_OWNER, + * * STREAM_META_GROUP_NAME, + * * STREAM_META_GROUP, + * * STREAM_META_ACCESS. + * + * Values are arguments of `touch`, `chmod`, `chown`, and `chgrp`. + */ + public function stream_metadata(string $path, int $option, $values): bool + { + $path = static::realPath($path, false); + + switch ($option) { + case \STREAM_META_TOUCH: + $arity = \count($values); + + if (0 === $arity) { + $out = \touch($path); + } elseif (1 === $arity) { + $out = \touch($path, $values[0]); + } else { + $out = \touch($path, $values[0], $values[1]); + } + + break; + + case \STREAM_META_OWNER_NAME: + case \STREAM_META_OWNER: + $out = \chown($path, $values); + + break; + + case \STREAM_META_GROUP_NAME: + case \STREAM_META_GROUP: + $out = \chgrp($path, $values); + + break; + + case \STREAM_META_ACCESS: + $out = \chmod($path, $values); + + break; + + default: + $out = false; + } + + return $out; + } + + /** + * Open file or URL. + * This method is called immediately after the wrapper is initialized (f.e. + * by fopen() and file_get_contents()). + */ + public function stream_open(string $path, string $mode, int $options, &$openedPath): bool + { + $path = static::realPath($path, 'r' === $mode[0]); + + if (Protocol::NO_RESOLUTION === $path) { + return false; + } + + if (null === $this->context) { + $openedPath = \fopen($path, $mode, $options & \STREAM_USE_PATH); + } else { + $openedPath = \fopen( + $path, + $mode, + (bool) ($options & \STREAM_USE_PATH), + $this->context + ); + } + + if (false === \is_resource($openedPath)) { + return false; + } + + $this->_stream = $openedPath; + $this->_streamName = $path; + + return true; + } + + /** + * Read from stream. + * This method is called in response to fread() and fgets(). + */ + public function stream_read(int $size): string + { + return \fread($this->getStream(), $size); + } + + /** + * Seek to specific location in a stream. + * This method is called in response to fseek(). + * The read/write position of the stream should be updated according to the + * $offset and $whence. + * + * The possible values for `$whence` are: + * * SEEK_SET to set position equal to $offset bytes, + * * SEEK_CUR to set position to current location plus `$offset`, + * * SEEK_END to set position to end-of-file plus `$offset`. + */ + public function stream_seek(int $offset, int $whence = \SEEK_SET): bool + { + return 0 === \fseek($this->getStream(), $offset, $whence); + } + + /** + * Retrieve information about a file resource. + * This method is called in response to fstat(). + */ + public function stream_stat(): array + { + return \fstat($this->getStream()); + } + + /** + * Retrieve the current position of a stream. + * This method is called in response to ftell(). + */ + public function stream_tell(): int + { + return \ftell($this->getStream()); + } + + /** + * Truncate a stream to a given length. + */ + public function stream_truncate(int $size): bool + { + return \ftruncate($this->getStream(), $size); + } + + /** + * Write to stream. + * This method is called in response to fwrite(). + */ + public function stream_write(string $data): int + { + return \fwrite($this->getStream(), $data); + } + + /** + * Close directory handle. + * This method is called in to closedir(). + * Any resources which were locked, or allocated, during opening and use of + * the directory stream should be released. + */ + public function dir_closedir() + { + \closedir($this->getStream()); + $this->_stream = null; + $this->_streamName = null; + } + + /** + * Open directory handle. + * This method is called in response to opendir(). + * + * The `$options` input represents whether or not to enforce safe_mode + * (0x04). It is not used here. + */ + public function dir_opendir(string $path, int $options): bool + { + $path = static::realPath($path); + $handle = null; + + if (null === $this->context) { + $handle = @\opendir($path); + } else { + $handle = @\opendir($path, $this->context); + } + + if (false === $handle) { + return false; + } + + $this->_stream = $handle; + $this->_streamName = $path; + + return true; + } + + /** + * Read entry from directory handle. + * This method is called in response to readdir(). + * + * @return mixed + */ + public function dir_readdir() + { + return \readdir($this->getStream()); + } + + /** + * Rewind directory handle. + * This method is called in response to rewinddir(). + * Should reset the output generated by self::dir_readdir, i.e. the next + * call to self::dir_readdir should return the first entry in the location + * returned by self::dir_opendir. + */ + public function dir_rewinddir() + { + \rewinddir($this->getStream()); + } + + /** + * Create a directory. + * This method is called in response to mkdir(). + */ + public function mkdir(string $path, int $mode, int $options): bool + { + if (null === $this->context) { + return \mkdir( + static::realPath($path, false), + $mode, + $options | \STREAM_MKDIR_RECURSIVE + ); + } + + return \mkdir( + static::realPath($path, false), + $mode, + (bool) ($options | \STREAM_MKDIR_RECURSIVE), + $this->context + ); + } + + /** + * Rename a file or directory. + * This method is called in response to rename(). + * Should attempt to rename $from to $to. + */ + public function rename(string $from, string $to): bool + { + if (null === $this->context) { + return \rename(static::realPath($from), static::realPath($to, false)); + } + + return \rename( + static::realPath($from), + static::realPath($to, false), + $this->context + ); + } + + /** + * Remove a directory. + * This method is called in response to rmdir(). + * The `$options` input is a bitwise mask of values. It is not used here. + */ + public function rmdir(string $path, int $options): bool + { + if (null === $this->context) { + return \rmdir(static::realPath($path)); + } + + return \rmdir(static::realPath($path), $this->context); + } + + /** + * Delete a file. + * This method is called in response to unlink(). + */ + public function unlink(string $path): bool + { + if (null === $this->context) { + return \unlink(static::realPath($path)); + } + + return \unlink(static::realPath($path), $this->context); + } + + /** + * Retrieve information about a file. + * This method is called in response to all stat() related functions. + * The `$flags` input holds additional flags set by the streams API. It + * can hold one or more of the following values OR'd together. + * STREAM_URL_STAT_LINK: for resource with the ability to link to other + * resource (such as an HTTP location: forward, or a filesystem + * symlink). This flag specified that only information about the link + * itself should be returned, not the resource pointed to by the + * link. This flag is set in response to calls to lstat(), is_link(), or + * filetype(). STREAM_URL_STAT_QUIET: if this flag is set, our wrapper + * should not raise any errors. If this flag is not set, we are + * responsible for reporting errors using the trigger_error() function + * during stating of the path. + */ + public function url_stat(string $path, int $flags) + { + $path = static::realPath($path); + + if (Protocol::NO_RESOLUTION === $path) { + if ($flags & \STREAM_URL_STAT_QUIET) { + return 0; + } else { + return \trigger_error( + 'Path '.$path.' cannot be resolved.', + \E_WARNING + ); + } + } + + if ($flags & \STREAM_URL_STAT_LINK) { + return @\lstat($path); + } + + return @\stat($path); + } + + /** + * Get stream resource. + */ + public function getStream() + { + return $this->_stream; + } + + /** + * Get stream name. + */ + public function getStreamName() + { + return $this->_streamName; + } +} + +/* + * Register the `hoa://` protocol. + */ +\stream_wrapper_register('hoa', ProtocolWrapper::class); diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Readline.php b/api/vendor/psy/psysh/src/Readline/Hoa/Readline.php new file mode 100644 index 000000000..614ce52a1 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Readline.php @@ -0,0 +1,1032 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Console\Readline. + * + * Read, edit, bind… a line from the input. + */ +class Readline +{ + /** + * State: continue to read. + */ + const STATE_CONTINUE = 1; + + /** + * State: stop to read. + */ + const STATE_BREAK = 2; + + /** + * State: no output the current buffer. + */ + const STATE_NO_ECHO = 4; + + /** + * Current editing line. + */ + protected $_line = null; + + /** + * Current editing line seek. + */ + protected $_lineCurrent = 0; + + /** + * Current editing line length. + */ + protected $_lineLength = 0; + + /** + * Current buffer (most of the time, a char). + */ + protected $_buffer = null; + + /** + * Mapping. + */ + protected $_mapping = []; + + /** + * History. + */ + protected $_history = []; + + /** + * History current position. + */ + protected $_historyCurrent = 0; + + /** + * History size. + */ + protected $_historySize = 0; + + /** + * Prefix. + */ + protected $_prefix = null; + + /** + * Autocompleter. + */ + protected $_autocompleter = null; + + /** + * Initialize the readline editor. + */ + public function __construct() + { + if (\defined('PHP_WINDOWS_VERSION_PLATFORM')) { + return; + } + + $this->_mapping["\033[A"] = [$this, '_bindArrowUp']; + $this->_mapping["\033[B"] = [$this, '_bindArrowDown']; + $this->_mapping["\033[C"] = [$this, '_bindArrowRight']; + $this->_mapping["\033[D"] = [$this, '_bindArrowLeft']; + $this->_mapping["\001"] = [$this, '_bindControlA']; + $this->_mapping["\002"] = [$this, '_bindControlB']; + $this->_mapping["\005"] = [$this, '_bindControlE']; + $this->_mapping["\006"] = [$this, '_bindControlF']; + $this->_mapping["\010"] = + $this->_mapping["\177"] = [$this, '_bindBackspace']; + $this->_mapping["\027"] = [$this, '_bindControlW']; + $this->_mapping["\n"] = [$this, '_bindNewline']; + $this->_mapping["\t"] = [$this, '_bindTab']; + + return; + } + + /** + * Read a line from the input. + */ + public function readLine(?string $prefix = null) + { + $input = Console::getInput(); + + if (true === $input->eof()) { + return false; + } + + $direct = Console::isDirect($input->getStream()->getStream()); + $output = Console::getOutput(); + + if (false === $direct || \defined('PHP_WINDOWS_VERSION_PLATFORM')) { + $out = $input->readLine(); + + if (false === $out) { + return false; + } + + $out = \substr($out, 0, -1); + + if (true === $direct) { + $output->writeAll($prefix); + } else { + $output->writeAll($prefix.$out."\n"); + } + + return $out; + } + + $this->resetLine(); + $this->setPrefix($prefix); + $read = [$input->getStream()->getStream()]; + $write = $except = []; + $output->writeAll($prefix); + + while (true) { + @\stream_select($read, $write, $except, 30, 0); + + if (empty($read)) { + $read = [$input->getStream()->getStream()]; + + continue; + } + + $char = $this->_read(); + $this->_buffer = $char; + $return = $this->_readLine($char); + + if (0 === ($return & self::STATE_NO_ECHO)) { + $output->writeAll($this->_buffer); + } + + if (0 !== ($return & self::STATE_BREAK)) { + break; + } + } + + return $this->getLine(); + } + + /** + * Readline core. + */ + public function _readLine(string $char) + { + if (isset($this->_mapping[$char]) && + \is_callable($this->_mapping[$char])) { + $mapping = $this->_mapping[$char]; + + return $mapping($this); + } + + if (isset($this->_mapping[$char])) { + $this->_buffer = $this->_mapping[$char]; + } elseif (false === Ustring::isCharPrintable($char)) { + ConsoleCursor::bip(); + + return static::STATE_CONTINUE | static::STATE_NO_ECHO; + } + + if ($this->getLineLength() === $this->getLineCurrent()) { + $this->appendLine($this->_buffer); + + return static::STATE_CONTINUE; + } + + $this->insertLine($this->_buffer); + $tail = \mb_substr( + $this->getLine(), + $this->getLineCurrent() - 1 + ); + $this->_buffer = "\033[K".$tail.\str_repeat( + "\033[D", + \mb_strlen($tail) - 1 + ); + + return static::STATE_CONTINUE; + } + + /** + * Add mappings. + */ + public function addMappings(array $mappings) + { + foreach ($mappings as $key => $mapping) { + $this->addMapping($key, $mapping); + } + } + + /** + * Add a mapping. + * Supported key: + * • \e[… for \033[…; + * • \C-… for Ctrl-…; + * • abc for a simple mapping. + * A mapping is a callable that has only one parameter of type + * Hoa\Console\Readline and that returns a self::STATE_* constant. + */ + public function addMapping(string $key, $mapping) + { + if ('\e[' === \substr($key, 0, 3)) { + $this->_mapping["\033[".\substr($key, 3)] = $mapping; + } elseif ('\C-' === \substr($key, 0, 3)) { + $_key = \ord(\strtolower(\substr($key, 3))) - 96; + $this->_mapping[\chr($_key)] = $mapping; + } else { + $this->_mapping[$key] = $mapping; + } + } + + /** + * Add an entry in the history. + */ + public function addHistory(?string $line = null) + { + if (empty($line)) { + return; + } + + $this->_history[] = $line; + $this->_historyCurrent = $this->_historySize++; + } + + /** + * Clear history. + */ + public function clearHistory() + { + unset($this->_history); + $this->_history = []; + $this->_historyCurrent = 0; + $this->_historySize = 1; + } + + /** + * Get an entry in the history. + */ + public function getHistory(?int $i = null) + { + if (null === $i) { + $i = $this->_historyCurrent; + } + + if (!isset($this->_history[$i])) { + return null; + } + + return $this->_history[$i]; + } + + /** + * Go backward in the history. + */ + public function previousHistory() + { + if (0 >= $this->_historyCurrent) { + return $this->getHistory(0); + } + + return $this->getHistory($this->_historyCurrent--); + } + + /** + * Go forward in the history. + */ + public function nextHistory() + { + if ($this->_historyCurrent + 1 >= $this->_historySize) { + return $this->getLine(); + } + + return $this->getHistory(++$this->_historyCurrent); + } + + /** + * Get current line. + */ + public function getLine() + { + return $this->_line; + } + + /** + * Append to current line. + */ + public function appendLine(string $append) + { + $this->_line .= $append; + $this->_lineLength = \mb_strlen($this->_line); + $this->_lineCurrent = $this->_lineLength; + } + + /** + * Insert into current line at the current seek. + */ + public function insertLine(string $insert) + { + if ($this->_lineLength === $this->_lineCurrent) { + return $this->appendLine($insert); + } + + $this->_line = \mb_substr($this->_line, 0, $this->_lineCurrent). + $insert. + \mb_substr($this->_line, $this->_lineCurrent); + $this->_lineLength = \mb_strlen($this->_line); + $this->_lineCurrent += \mb_strlen($insert); + + return; + } + + /** + * Reset current line. + */ + protected function resetLine() + { + $this->_line = null; + $this->_lineCurrent = 0; + $this->_lineLength = 0; + } + + /** + * Get current line seek. + */ + public function getLineCurrent(): int + { + return $this->_lineCurrent; + } + + /** + * Get current line length. + * + * @return int + */ + public function getLineLength(): int + { + return $this->_lineLength; + } + + /** + * Set prefix. + */ + public function setPrefix(string $prefix) + { + $this->_prefix = $prefix; + } + + /** + * Get prefix. + */ + public function getPrefix() + { + return $this->_prefix; + } + + /** + * Get buffer. Not for user. + */ + public function getBuffer() + { + return $this->_buffer; + } + + /** + * Set an autocompleter. + */ + public function setAutocompleter(Autocompleter $autocompleter) + { + $old = $this->_autocompleter; + $this->_autocompleter = $autocompleter; + + return $old; + } + + /** + * Get the autocompleter. + * + * @return ?Autocompleter + */ + public function getAutocompleter() + { + return $this->_autocompleter; + } + + /** + * Read on input. Not for user. + */ + public function _read(int $length = 512): string + { + return Console::getInput()->read($length); + } + + /** + * Set current line. Not for user. + */ + public function setLine(string $line) + { + $this->_line = $line; + $this->_lineLength = \mb_strlen($this->_line ?: ''); + $this->_lineCurrent = $this->_lineLength; + } + + /** + * Set current line seek. Not for user. + */ + public function setLineCurrent(int $current) + { + $this->_lineCurrent = $current; + } + + /** + * Set line length. Not for user. + */ + public function setLineLength(int $length) + { + $this->_lineLength = $length; + } + + /** + * Set buffer. Not for user. + */ + public function setBuffer(string $buffer) + { + $this->_buffer = $buffer; + } + + /** + * Up arrow binding. + * Go backward in the history. + */ + public function _bindArrowUp(self $self): int + { + if (0 === (static::STATE_CONTINUE & static::STATE_NO_ECHO)) { + ConsoleCursor::clear('↔'); + Console::getOutput()->writeAll($self->getPrefix()); + } + $buffer = $self->previousHistory() ?? ''; + $self->setBuffer($buffer); + $self->setLine($buffer); + + return static::STATE_CONTINUE; + } + + /** + * Down arrow binding. + * Go forward in the history. + */ + public function _bindArrowDown(self $self): int + { + if (0 === (static::STATE_CONTINUE & static::STATE_NO_ECHO)) { + ConsoleCursor::clear('↔'); + Console::getOutput()->writeAll($self->getPrefix()); + } + + $self->setBuffer($buffer = $self->nextHistory()); + $self->setLine($buffer); + + return static::STATE_CONTINUE; + } + + /** + * Right arrow binding. + * Move cursor to the right. + */ + public function _bindArrowRight(self $self): int + { + if ($self->getLineLength() > $self->getLineCurrent()) { + if (0 === (static::STATE_CONTINUE & static::STATE_NO_ECHO)) { + ConsoleCursor::move('→'); + } + + $self->setLineCurrent($self->getLineCurrent() + 1); + } + + $self->setBuffer(''); + + return static::STATE_CONTINUE; + } + + /** + * Left arrow binding. + * Move cursor to the left. + */ + public function _bindArrowLeft(self $self): int + { + if (0 < $self->getLineCurrent()) { + if (0 === (static::STATE_CONTINUE & static::STATE_NO_ECHO)) { + ConsoleCursor::move('←'); + } + + $self->setLineCurrent($self->getLineCurrent() - 1); + } + + $self->setBuffer(''); + + return static::STATE_CONTINUE; + } + + /** + * Backspace and Control-H binding. + * Delete the first character at the right of the cursor. + */ + public function _bindBackspace(self $self): int + { + $buffer = ''; + + if (0 < $self->getLineCurrent()) { + if (0 === (static::STATE_CONTINUE & static::STATE_NO_ECHO)) { + ConsoleCursor::move('←'); + ConsoleCursor::clear('→'); + } + + if ($self->getLineLength() === $current = $self->getLineCurrent()) { + $self->setLine(\mb_substr($self->getLine(), 0, -1)); + } else { + $line = $self->getLine(); + $current = $self->getLineCurrent(); + $tail = \mb_substr($line, $current); + $buffer = $tail.\str_repeat("\033[D", \mb_strlen($tail)); + $self->setLine(\mb_substr($line, 0, $current - 1).$tail); + $self->setLineCurrent($current - 1); + } + } + + $self->setBuffer($buffer); + + return static::STATE_CONTINUE; + } + + /** + * Control-A binding. + * Move cursor to beginning of line. + */ + public function _bindControlA(self $self): int + { + for ($i = $self->getLineCurrent() - 1; 0 <= $i; --$i) { + $self->_bindArrowLeft($self); + } + + return static::STATE_CONTINUE; + } + + /** + * Control-B binding. + * Move cursor backward one word. + */ + public function _bindControlB(self $self): int + { + $current = $self->getLineCurrent(); + + if (0 === $current) { + return static::STATE_CONTINUE; + } + + $words = \preg_split( + '#\b#u', + $self->getLine(), + -1, + \PREG_SPLIT_OFFSET_CAPTURE | \PREG_SPLIT_NO_EMPTY + ); + + for ( + $i = 0, $max = \count($words) - 1; + $i < $max && $words[$i + 1][1] < $current; + ++$i + ) { + } + + for ($j = $words[$i][1] + 1; $current >= $j; ++$j) { + $self->_bindArrowLeft($self); + } + + return static::STATE_CONTINUE; + } + + /** + * Control-E binding. + * Move cursor to end of line. + */ + public function _bindControlE(self $self): int + { + for ( + $i = $self->getLineCurrent(), $max = $self->getLineLength(); + $i < $max; + ++$i + ) { + $self->_bindArrowRight($self); + } + + return static::STATE_CONTINUE; + } + + /** + * Control-F binding. + * Move cursor forward one word. + */ + public function _bindControlF(self $self): int + { + $current = $self->getLineCurrent(); + + if ($self->getLineLength() === $current) { + return static::STATE_CONTINUE; + } + + $words = \preg_split( + '#\b#u', + $self->getLine(), + -1, + \PREG_SPLIT_OFFSET_CAPTURE | \PREG_SPLIT_NO_EMPTY + ); + + for ( + $i = 0, $max = \count($words) - 1; + $i < $max && $words[$i][1] < $current; + ++$i + ) { + } + + if (!isset($words[$i + 1])) { + $words[$i + 1] = [1 => $self->getLineLength()]; + } + + for ($j = $words[$i + 1][1]; $j > $current; --$j) { + $self->_bindArrowRight($self); + } + + return static::STATE_CONTINUE; + } + + /** + * Control-W binding. + * Delete first backward word. + */ + public function _bindControlW(self $self): int + { + $current = $self->getLineCurrent(); + + if (0 === $current) { + return static::STATE_CONTINUE; + } + + $words = \preg_split( + '#\b#u', + $self->getLine(), + -1, + \PREG_SPLIT_OFFSET_CAPTURE | \PREG_SPLIT_NO_EMPTY + ); + + for ( + $i = 0, $max = \count($words) - 1; + $i < $max && $words[$i + 1][1] < $current; + ++$i + ) { + } + + for ($j = $words[$i][1] + 1; $current >= $j; ++$j) { + $self->_bindBackspace($self); + } + + return static::STATE_CONTINUE; + } + + /** + * Newline binding. + */ + public function _bindNewline(self $self): int + { + $self->addHistory($self->getLine()); + + return static::STATE_BREAK; + } + + /** + * Tab binding. + */ + public function _bindTab(self $self): int + { + $output = Console::getOutput(); + $autocompleter = $self->getAutocompleter(); + $state = static::STATE_CONTINUE | static::STATE_NO_ECHO; + + if (null === $autocompleter) { + return $state; + } + + $current = $self->getLineCurrent(); + $line = $self->getLine(); + + if (0 === $current) { + return $state; + } + + $matches = \preg_match_all( + '#'.$autocompleter->getWordDefinition().'$#u', + \mb_substr($line, 0, $current), + $words + ); + + if (0 === $matches) { + return $state; + } + + $word = $words[0][0]; + + if ('' === \trim($word)) { + return $state; + } + + $solution = $autocompleter->complete($word); + $length = \mb_strlen($word); + + if (null === $solution) { + return $state; + } + + if (\is_array($solution)) { + $_solution = $solution; + $count = \count($_solution) - 1; + $cWidth = 0; + $window = ConsoleWindow::getSize(); + $wWidth = $window['x']; + $cursor = ConsoleCursor::getPosition(); + + \array_walk($_solution, function (&$value) use (&$cWidth) { + $handle = \mb_strlen($value); + + if ($handle > $cWidth) { + $cWidth = $handle; + } + + return; + }); + \array_walk($_solution, function (&$value) use (&$cWidth) { + $handle = \mb_strlen($value); + + if ($handle >= $cWidth) { + return; + } + + $value .= \str_repeat(' ', $cWidth - $handle); + + return; + }); + + $mColumns = (int) \floor($wWidth / ($cWidth + 2)); + $mLines = (int) \ceil(($count + 1) / $mColumns); + --$mColumns; + $i = 0; + + if (0 > $window['y'] - $cursor['y'] - $mLines) { + ConsoleWindow::scroll('↑', $mLines); + ConsoleCursor::move('↑', $mLines); + } + + ConsoleCursor::save(); + ConsoleCursor::hide(); + ConsoleCursor::move('↓ LEFT'); + ConsoleCursor::clear('↓'); + + foreach ($_solution as $j => $s) { + $output->writeAll("\033[0m".$s."\033[0m"); + + if ($i++ < $mColumns) { + $output->writeAll(' '); + } else { + $i = 0; + + if (isset($_solution[$j + 1])) { + $output->writeAll("\n"); + } + } + } + + ConsoleCursor::restore(); + ConsoleCursor::show(); + + ++$mColumns; + $input = Console::getInput(); + $read = [$input->getStream()->getStream()]; + $write = $except = []; + $mColumn = -1; + $mLine = -1; + $coord = -1; + $unselect = function () use ( + &$mColumn, + &$mLine, + &$coord, + &$_solution, + &$cWidth, + $output + ) { + ConsoleCursor::save(); + ConsoleCursor::hide(); + ConsoleCursor::move('↓ LEFT'); + ConsoleCursor::move('→', $mColumn * ($cWidth + 2)); + ConsoleCursor::move('↓', $mLine); + $output->writeAll("\033[0m".$_solution[$coord]."\033[0m"); + ConsoleCursor::restore(); + ConsoleCursor::show(); + + return; + }; + $select = function () use ( + &$mColumn, + &$mLine, + &$coord, + &$_solution, + &$cWidth, + $output + ) { + ConsoleCursor::save(); + ConsoleCursor::hide(); + ConsoleCursor::move('↓ LEFT'); + ConsoleCursor::move('→', $mColumn * ($cWidth + 2)); + ConsoleCursor::move('↓', $mLine); + $output->writeAll("\033[7m".$_solution[$coord]."\033[0m"); + ConsoleCursor::restore(); + ConsoleCursor::show(); + + return; + }; + $init = function () use ( + &$mColumn, + &$mLine, + &$coord, + &$select + ) { + $mColumn = 0; + $mLine = 0; + $coord = 0; + $select(); + + return; + }; + + while (true) { + @\stream_select($read, $write, $except, 30, 0); + + if (empty($read)) { + $read = [$input->getStream()->getStream()]; + + continue; + } + + switch ($char = $self->_read()) { + case "\033[A": + if (-1 === $mColumn && -1 === $mLine) { + $init(); + + break; + } + + $unselect(); + $coord = \max(0, $coord - $mColumns); + $mLine = (int) \floor($coord / $mColumns); + $mColumn = $coord % $mColumns; + $select(); + + break; + + case "\033[B": + if (-1 === $mColumn && -1 === $mLine) { + $init(); + + break; + } + + $unselect(); + $coord = \min($count, $coord + $mColumns); + $mLine = (int) \floor($coord / $mColumns); + $mColumn = $coord % $mColumns; + $select(); + + break; + + case "\t": + case "\033[C": + if (-1 === $mColumn && -1 === $mLine) { + $init(); + + break; + } + + $unselect(); + $coord = \min($count, $coord + 1); + $mLine = (int) \floor($coord / $mColumns); + $mColumn = $coord % $mColumns; + $select(); + + break; + + case "\033[D": + if (-1 === $mColumn && -1 === $mLine) { + $init(); + + break; + } + + $unselect(); + $coord = \max(0, $coord - 1); + $mLine = (int) \floor($coord / $mColumns); + $mColumn = $coord % $mColumns; + $select(); + + break; + + case "\n": + if (-1 !== $mColumn && -1 !== $mLine) { + $tail = \mb_substr($line, $current); + $current -= $length; + $self->setLine( + \mb_substr($line, 0, $current). + $solution[$coord]. + $tail + ); + $self->setLineCurrent( + $current + \mb_strlen($solution[$coord]) + ); + + ConsoleCursor::move('←', $length); + $output->writeAll($solution[$coord]); + ConsoleCursor::clear('→'); + $output->writeAll($tail); + ConsoleCursor::move('←', \mb_strlen($tail)); + } + + // no break + default: + $mColumn = -1; + $mLine = -1; + $coord = -1; + ConsoleCursor::save(); + ConsoleCursor::move('↓ LEFT'); + ConsoleCursor::clear('↓'); + ConsoleCursor::restore(); + + if ("\033" !== $char && "\n" !== $char) { + $self->setBuffer($char); + + return $self->_readLine($char); + } + + break 2; + } + } + + return $state; + } + + $tail = \mb_substr($line, $current); + $current -= $length; + $self->setLine( + \mb_substr($line, 0, $current). + $solution. + $tail + ); + $self->setLineCurrent( + $current + \mb_strlen($solution) + ); + + ConsoleCursor::move('←', $length); + $output->writeAll($solution); + ConsoleCursor::clear('→'); + $output->writeAll($tail); + ConsoleCursor::move('←', \mb_strlen($tail)); + + return $state; + } +} + +/* + * Advanced interaction. + */ +Console::advancedInteraction(); diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Stream.php b/api/vendor/psy/psysh/src/Readline/Hoa/Stream.php new file mode 100644 index 000000000..7a7bd8e43 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Stream.php @@ -0,0 +1,571 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Stream. + * + * Static register for all streams (files, sockets etc.). + */ +abstract class Stream implements IStream, EventListenable +{ + use EventListens; + + /** + * Name index in the stream bucket. + */ + const NAME = 0; + + /** + * Handler index in the stream bucket. + */ + const HANDLER = 1; + + /** + * Resource index in the stream bucket. + */ + const RESOURCE = 2; + + /** + * Context index in the stream bucket. + */ + const CONTEXT = 3; + + /** + * Default buffer size. + */ + const DEFAULT_BUFFER_SIZE = 8192; + + /** + * Current stream bucket. + */ + protected $_bucket = []; + + /** + * Static stream register. + */ + private static $_register = []; + + /** + * Buffer size (default is 8Ko). + */ + protected $_bufferSize = self::DEFAULT_BUFFER_SIZE; + + /** + * Original stream name, given to the stream constructor. + */ + protected $_streamName = null; + + /** + * Context name. + */ + protected $_context = null; + + /** + * Whether the opening has been deferred. + */ + protected $_hasBeenDeferred = false; + + /** + * Whether this stream is already opened by another handler. + */ + protected $_borrowing = false; + + /** + * Set the current stream. + * If not exists in the register, try to call the + * `$this->_open()` method. Please, see the `self::_getStream()` method. + */ + public function __construct(string $streamName, ?string $context = null, bool $wait = false) + { + $this->_streamName = $streamName; + $this->_context = $context; + $this->_hasBeenDeferred = $wait; + $this->setListener( + new EventListener( + $this, + [ + 'authrequire', + 'authresult', + 'complete', + 'connect', + 'failure', + 'mimetype', + 'progress', + 'redirect', + 'resolve', + 'size', + ] + ) + ); + + if (true === $wait) { + return; + } + + $this->open(); + + return; + } + + /** + * Get a stream in the register. + * If the stream does not exist, try to open it by calling the + * $handler->_open() method. + */ + private static function &_getStream( + string $streamName, + self $handler, + ?string $context = null + ): array { + $name = \md5($streamName); + + if (null !== $context) { + if (false === StreamContext::contextExists($context)) { + throw new StreamException('Context %s was not previously declared, cannot retrieve '.'this context.', 0, $context); + } + + $context = StreamContext::getInstance($context); + } + + if (!isset(self::$_register[$name])) { + self::$_register[$name] = [ + self::NAME => $streamName, + self::HANDLER => $handler, + self::RESOURCE => $handler->_open($streamName, $context), + self::CONTEXT => $context, + ]; + Event::register( + 'hoa://Event/Stream/'.$streamName, + $handler + ); + // Add :open-ready? + Event::register( + 'hoa://Event/Stream/'.$streamName.':close-before', + $handler + ); + } else { + $handler->_borrowing = true; + } + + if (null === self::$_register[$name][self::RESOURCE]) { + self::$_register[$name][self::RESOURCE] + = $handler->_open($streamName, $context); + } + + return self::$_register[$name]; + } + + /** + * Open the stream and return the associated resource. + * Note: This method is protected, but do not forget that it could be + * overloaded into a public context. + */ + abstract protected function &_open(string $streamName, ?StreamContext $context = null); + + /** + * Close the current stream. + * Note: this method is protected, but do not forget that it could be + * overloaded into a public context. + */ + abstract protected function _close(): bool; + + /** + * Open the stream. + */ + final public function open(): self + { + $context = $this->_context; + + if (true === $this->hasBeenDeferred()) { + if (null === $context) { + $handle = StreamContext::getInstance(\uniqid()); + $handle->setParameters([ + 'notification' => [$this, '_notify'], + ]); + $context = $handle->getId(); + } elseif (true === StreamContext::contextExists($context)) { + $handle = StreamContext::getInstance($context); + $parameters = $handle->getParameters(); + + if (!isset($parameters['notification'])) { + $handle->setParameters([ + 'notification' => [$this, '_notify'], + ]); + } + } + } + + $this->_bufferSize = self::DEFAULT_BUFFER_SIZE; + $this->_bucket = self::_getStream( + $this->_streamName, + $this, + $context + ); + + return $this; + } + + /** + * Close the current stream. + */ + final public function close() + { + $streamName = $this->getStreamName(); + + if (null === $streamName) { + return; + } + + $name = \md5($streamName); + + if (!isset(self::$_register[$name])) { + return; + } + + Event::notify( + 'hoa://Event/Stream/'.$streamName.':close-before', + $this, + new EventBucket() + ); + + if (false === $this->_close()) { + return; + } + + unset(self::$_register[$name]); + $this->_bucket[self::HANDLER] = null; + Event::unregister( + 'hoa://Event/Stream/'.$streamName + ); + Event::unregister( + 'hoa://Event/Stream/'.$streamName.':close-before' + ); + + return; + } + + /** + * Get the current stream name. + */ + public function getStreamName() + { + if (empty($this->_bucket)) { + return null; + } + + return $this->_bucket[self::NAME]; + } + + /** + * Get the current stream. + */ + public function getStream() + { + if (empty($this->_bucket)) { + return null; + } + + return $this->_bucket[self::RESOURCE]; + } + + /** + * Get the current stream context. + */ + public function getStreamContext() + { + if (empty($this->_bucket)) { + return null; + } + + return $this->_bucket[self::CONTEXT]; + } + + /** + * Get stream handler according to its name. + */ + public static function getStreamHandler(string $streamName) + { + $name = \md5($streamName); + + if (!isset(self::$_register[$name])) { + return null; + } + + return self::$_register[$name][self::HANDLER]; + } + + /** + * Set the current stream. Useful to manage a stack of streams (e.g. socket + * and select). Notice that it could be unsafe to use this method without + * taking time to think about it two minutes. Resource of type “Unknown” is + * considered as valid. + */ + public function _setStream($stream) + { + if (false === \is_resource($stream) && + ('resource' !== \gettype($stream) || + 'Unknown' !== \get_resource_type($stream))) { + throw new StreamException('Try to change the stream resource with an invalid one; '.'given %s.', 1, \gettype($stream)); + } + + $old = $this->_bucket[self::RESOURCE]; + $this->_bucket[self::RESOURCE] = $stream; + + return $old; + } + + /** + * Check if the stream is opened. + */ + public function isOpened(): bool + { + return \is_resource($this->getStream()); + } + + /** + * Set the timeout period. + */ + public function setStreamTimeout(int $seconds, int $microseconds = 0): bool + { + return \stream_set_timeout($this->getStream(), $seconds, $microseconds); + } + + /** + * Whether the opening of the stream has been deferred. + */ + protected function hasBeenDeferred() + { + return $this->_hasBeenDeferred; + } + + /** + * Check whether the connection has timed out or not. + * This is basically a shortcut of `getStreamMetaData` + the `timed_out` + * index, but the resulting code is more readable. + */ + public function hasTimedOut(): bool + { + $metaData = $this->getStreamMetaData(); + + return true === $metaData['timed_out']; + } + + /** + * Set blocking/non-blocking mode. + */ + public function setStreamBlocking(bool $mode): bool + { + return \stream_set_blocking($this->getStream(), $mode); + } + + /** + * Set stream buffer. + * Output using fwrite() (or similar function) is normally buffered at 8 Ko. + * This means that if there are two processes wanting to write to the same + * output stream, each is paused after 8 Ko of data to allow the other to + * write. + */ + public function setStreamBuffer(int $buffer): bool + { + // Zero means success. + $out = 0 === \stream_set_write_buffer($this->getStream(), $buffer); + + if (true === $out) { + $this->_bufferSize = $buffer; + } + + return $out; + } + + /** + * Disable stream buffering. + * Alias of $this->setBuffer(0). + */ + public function disableStreamBuffer(): bool + { + return $this->setStreamBuffer(0); + } + + /** + * Get stream buffer size. + */ + public function getStreamBufferSize(): int + { + return $this->_bufferSize; + } + + /** + * Get stream wrapper name. + */ + public function getStreamWrapperName(): string + { + if (false === $pos = \strpos($this->getStreamName(), '://')) { + return 'file'; + } + + return \substr($this->getStreamName(), 0, $pos); + } + + /** + * Get stream meta data. + */ + public function getStreamMetaData(): array + { + return \stream_get_meta_data($this->getStream()); + } + + /** + * Whether this stream is already opened by another handler. + */ + public function isBorrowing(): bool + { + return $this->_borrowing; + } + + /** + * Notification callback. + */ + public function _notify( + int $ncode, + int $severity, + $message, + $code, + $transferred, + $max + ) { + static $_map = [ + \STREAM_NOTIFY_AUTH_REQUIRED => 'authrequire', + \STREAM_NOTIFY_AUTH_RESULT => 'authresult', + \STREAM_NOTIFY_COMPLETED => 'complete', + \STREAM_NOTIFY_CONNECT => 'connect', + \STREAM_NOTIFY_FAILURE => 'failure', + \STREAM_NOTIFY_MIME_TYPE_IS => 'mimetype', + \STREAM_NOTIFY_PROGRESS => 'progress', + \STREAM_NOTIFY_REDIRECTED => 'redirect', + \STREAM_NOTIFY_RESOLVE => 'resolve', + \STREAM_NOTIFY_FILE_SIZE_IS => 'size', + ]; + + $this->getListener()->fire($_map[$ncode], new EventBucket([ + 'code' => $code, + 'severity' => $severity, + 'message' => $message, + 'transferred' => $transferred, + 'max' => $max, + ])); + } + + /** + * Call the $handler->close() method on each stream in the static stream + * register. + * This method does not check the return value of $handler->close(). Thus, + * if a stream is persistent, the $handler->close() should do anything. It + * is a very generic method. + */ + final public static function _Hoa_Stream() + { + foreach (self::$_register as $entry) { + $entry[self::HANDLER]->close(); + } + + return; + } + + /** + * Transform object to string. + */ + public function __toString(): string + { + return $this->getStreamName(); + } + + /** + * Close the stream when destructing. + */ + public function __destruct() + { + if (false === $this->isOpened()) { + return; + } + + $this->close(); + + return; + } +} + +/** + * Class \Hoa\Stream\_Protocol. + * + * The `hoa://Library/Stream` node. + * + * @license New BSD License + */ +class _Protocol extends ProtocolNode +{ + /** + * Component's name. + * + * @var string + */ + protected $_name = 'Stream'; + + /** + * ID of the component. + * + * @param string $id ID of the component + * + * @return mixed + */ + public function reachId(string $id) + { + return Stream::getStreamHandler($id); + } +} + +/* + * Shutdown method. + */ +\register_shutdown_function([Stream::class, '_Hoa_Stream']); + +/** + * Add the `hoa://Library/Stream` node. Should be use to reach/get an entry + * in the stream register. + */ +$protocol = Protocol::getInstance(); +$protocol['Library'][] = new _Protocol(); diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamBufferable.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamBufferable.php new file mode 100644 index 000000000..6a0c363e1 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamBufferable.php @@ -0,0 +1,73 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Bufferable. + * + * Interface for bufferable streams. It's complementary to native buffer support + * of Hoa\Stream (please, see *StreamBuffer*() methods). Classes implementing + * this interface are able to create nested buffers, flush them etc. + */ +interface StreamBufferable extends IStream +{ + /** + * Start a new buffer. + * The callable acts like a light filter. + */ + public function newBuffer($callable = null, ?int $size = null): int; + + /** + * Flush the buffer. + */ + public function flush(); + + /** + * Delete buffer. + */ + public function deleteBuffer(): bool; + + /** + * Get bufffer level. + */ + public function getBufferLevel(): int; + + /** + * Get buffer size. + */ + public function getBufferSize(): int; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamContext.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamContext.php new file mode 100644 index 000000000..f7ec2f1dd --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamContext.php @@ -0,0 +1,141 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Stream\Context. + * + * Make a multiton of stream contexts. + */ +class StreamContext +{ + /** + * Context ID. + */ + protected $_id = null; + + /** + * @var resource + */ + protected $_context; + + /** + * Multiton. + */ + protected static $_instances = []; + + /** + * Construct a context. + */ + protected function __construct($id) + { + $this->_id = $id; + $this->_context = \stream_context_create(); + + return; + } + + /** + * Multiton. + */ + public static function getInstance(string $id): self + { + if (false === static::contextExists($id)) { + static::$_instances[$id] = new self($id); + } + + return static::$_instances[$id]; + } + + /** + * Get context ID. + */ + public function getId(): string + { + return $this->_id; + } + + /** + * Check if a context exists. + */ + public static function contextExists(string $id): bool + { + return \array_key_exists($id, static::$_instances); + } + + /** + * Set options. + * Please, see http://php.net/context. + */ + public function setOptions(array $options): bool + { + return \stream_context_set_option($this->getContext(), $options); + } + + /** + * Set parameters. + * Please, see http://php.net/context.params. + */ + public function setParameters(array $parameters): bool + { + return \stream_context_set_params($this->getContext(), $parameters); + } + + /** + * Get options. + */ + public function getOptions(): array + { + return \stream_context_get_options($this->getContext()); + } + + /** + * Get parameters. + */ + public function getParameters(): array + { + return \stream_context_get_params($this->getContext()); + } + + /** + * Get context as a resource. + */ + public function getContext() + { + return $this->_context; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamException.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamException.php new file mode 100644 index 000000000..21da03cfb --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamException.php @@ -0,0 +1,46 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Class \Hoa\Stream\Exception. + * + * Extending the \Hoa\Exception\Exception class. + */ +class StreamException extends Exception +{ +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamIn.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamIn.php new file mode 100644 index 000000000..1ced9135b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamIn.php @@ -0,0 +1,102 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\In. + * + * Interface for input. + */ +interface StreamIn extends IStream +{ + /** + * Test for end-of-stream. + */ + public function eof(): bool; + + /** + * Read n characters. + */ + public function read(int $length); + + /** + * Alias of $this->read(). + */ + public function readString(int $length); + + /** + * Read a character. + * It could be equivalent to $this->read(1). + */ + public function readCharacter(); + + /** + * Read a boolean. + */ + public function readBoolean(); + + /** + * Read an integer. + */ + public function readInteger(int $length = 1); + + /** + * Read a float. + */ + public function readFloat(int $length = 1); + + /** + * Read an array. + * In most cases, it could be an alias to the $this->scanf() method. + */ + public function readArray(); + + /** + * Read a line. + */ + public function readLine(); + + /** + * Read all, i.e. read as much as possible. + */ + public function readAll(int $offset = 0); + + /** + * Parse input from a stream according to a format. + */ + public function scanf(string $format): array; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamLockable.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamLockable.php new file mode 100644 index 000000000..c19c4dba0 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamLockable.php @@ -0,0 +1,85 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Lockable. + * + * Interface for lockable input/output. + * + * @license New BSD License + */ +interface StreamLockable extends IStream +{ + /** + * Acquire a shared lock (reader). + * + * @const int + */ + const LOCK_SHARED = \LOCK_SH; + + /** + * Acquire an exclusive lock (writer). + * + * @const int + */ + const LOCK_EXCLUSIVE = \LOCK_EX; + + /** + * Release a lock (shared or exclusive). + * + * @const int + */ + const LOCK_RELEASE = \LOCK_UN; + + /** + * If we do not want $this->lock() to block while locking. + * + * @const int + */ + const LOCK_NO_BLOCK = \LOCK_NB; + + /** + * Portable advisory locking. + * Should take a look at stream_supports_lock(). + * + * @param int $operation operation, use the self::LOCK_* constants + * + * @return bool + */ + public function lock(int $operation): bool; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamOut.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamOut.php new file mode 100644 index 000000000..e4bb925e1 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamOut.php @@ -0,0 +1,95 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Out. + * + * Interface for output. + */ +interface StreamOut extends IStream +{ + /** + * Write n characters. + */ + public function write(string $string, int $length); + + /** + * Write a string. + */ + public function writeString(string $string); + + /** + * Write a character. + */ + public function writeCharacter(string $character); + + /** + * Write a boolean. + */ + public function writeBoolean(bool $boolean); + + /** + * Write an integer. + */ + public function writeInteger(int $integer); + + /** + * Write a float. + */ + public function writeFloat(float $float); + + /** + * Write an array. + */ + public function writeArray(array $array); + + /** + * Write a line. + */ + public function writeLine(string $line); + + /** + * Write all, i.e. as much as possible. + */ + public function writeAll(string $string); + + /** + * Truncate a stream to a given length. + */ + public function truncate(int $size): bool; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamPathable.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamPathable.php new file mode 100644 index 000000000..558684aed --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamPathable.php @@ -0,0 +1,55 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Pathable. + * + * Interface for pathable input/output. + */ +interface StreamPathable extends IStream +{ + /** + * Get filename component of path. + */ + public function getBasename(): string; + + /** + * Get directory name component of path. + */ + public function getDirname(): string; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamPointable.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamPointable.php new file mode 100644 index 000000000..4030acbd3 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamPointable.php @@ -0,0 +1,75 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Pointable. + * + * Interface for pointable input/output. + */ +interface StreamPointable extends IStream +{ + /** + * Set position equal to $offset bytes. + */ + const SEEK_SET = \SEEK_SET; + + /** + * Set position to current location plus $offset. + */ + const SEEK_CURRENT = \SEEK_CUR; + + /** + * Set position to end-of-file plus $offset. + */ + const SEEK_END = \SEEK_END; + + /** + * Rewind the position of a stream pointer. + */ + public function rewind(): bool; + + /** + * Seek on a stream pointer. + */ + public function seek(int $offset, int $whence = self::SEEK_SET): int; + + /** + * Get the current position of the stream pointer. + */ + public function tell(): int; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamStatable.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamStatable.php new file mode 100644 index 000000000..9b83696db --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamStatable.php @@ -0,0 +1,115 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Statable. + * + * Interface for statable input/output. + */ +interface StreamStatable extends IStream +{ + /** + * Size is undefined. + */ + const SIZE_UNDEFINED = -1; + + /** + * Get size. + */ + public function getSize(): int; + + /** + * Get informations about a file. + */ + public function getStatistic(): array; + + /** + * Get last access time of file. + */ + public function getATime(): int; + + /** + * Get inode change time of file. + */ + public function getCTime(): int; + + /** + * Get file modification time. + */ + public function getMTime(): int; + + /** + * Get file group. + */ + public function getGroup(): int; + + /** + * Get file owner. + */ + public function getOwner(): int; + + /** + * Get file permissions. + */ + public function getPermissions(): int; + + /** + * Check if the file is readable. + */ + public function isReadable(): bool; + + /** + * Check if the file is writable. + */ + public function isWritable(): bool; + + /** + * Check if the file is executable. + */ + public function isExecutable(): bool; + + /** + * Clear file status cache. + */ + public function clearStatisticCache(); + + /** + * Clear all files status cache. + */ + public static function clearAllStatisticCaches(); +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/StreamTouchable.php b/api/vendor/psy/psysh/src/Readline/Hoa/StreamTouchable.php new file mode 100644 index 000000000..f1b50d52b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/StreamTouchable.php @@ -0,0 +1,110 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Interface \Hoa\Stream\IStream\Touchable. + * + * Interface for touchable input/output. + */ +interface StreamTouchable extends IStream +{ + /** + * Overwrite file if already exists. + */ + const OVERWRITE = true; + + /** + * Do not overwrite file if already exists. + */ + const DO_NOT_OVERWRITE = false; + + /** + * Make directory if does not exist. + */ + const MAKE_DIRECTORY = true; + + /** + * Do not make directory if does not exist. + */ + const DO_NOT_MAKE_DIRECTORY = false; + + /** + * Set access and modification time of file. + */ + public function touch(int $time = -1, int $atime = -1): bool; + + /** + * Copy file. + * Return the destination file path if succeed, false otherwise. + */ + public function copy(string $to, bool $force = self::DO_NOT_OVERWRITE): bool; + + /** + * Move a file. + */ + public function move( + string $name, + bool $force = self::DO_NOT_OVERWRITE, + bool $mkdir = self::DO_NOT_MAKE_DIRECTORY + ): bool; + + /** + * Delete a file. + */ + public function delete(): bool; + + /** + * Change file group. + */ + public function changeGroup($group): bool; + + /** + * Change file mode. + */ + public function changeMode(int $mode): bool; + + /** + * Change file owner. + */ + public function changeOwner($user): bool; + + /** + * Change the current umask. + */ + public static function umask(?int $umask = null): int; +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/77/windows-ansi b/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/77/windows-ansi new file mode 100644 index 000000000..50864235f Binary files /dev/null and b/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/77/windows-ansi differ diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/78/xterm b/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/78/xterm new file mode 100644 index 000000000..fec988def Binary files /dev/null and b/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/78/xterm differ diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/78/xterm-256color b/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/78/xterm-256color new file mode 100644 index 000000000..d3be7ef31 Binary files /dev/null and b/api/vendor/psy/psysh/src/Readline/Hoa/Terminfo/78/xterm-256color differ diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Ustring.php b/api/vendor/psy/psysh/src/Readline/Hoa/Ustring.php new file mode 100644 index 000000000..8d7312b9b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Ustring.php @@ -0,0 +1,143 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * This class represents a UTF-8 string. + * Please, see: + * * http://www.ietf.org/rfc/rfc3454.txt, + * * http://unicode.org/reports/tr9/, + * * http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt. + */ +class Ustring +{ + /** + * Check if ext/mbstring is available. + */ + public static function checkMbString(): bool + { + return \function_exists('mb_substr'); + } + + /** + * Get the number of column positions of a wide-character. + * + * This is a PHP implementation of wcwidth() and wcswidth() (defined in IEEE + * Std 1002.1-2001) for Unicode, by Markus Kuhn. Please, see + * http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c. + * + * The wcwidth(wc) function shall either return 0 (if wc is a null + * wide-character code), or return the number of column positions to be + * occupied by the wide-character code wc, or return -1 (if wc does not + * correspond to a printable wide-character code). + */ + public static function getCharWidth(string $char): int + { + $char = (string) $char; + $c = static::toCode($char); + + // Test for 8-bit control characters. + if (0x0 === $c) { + return 0; + } + + if (0x20 > $c || (0x7F <= $c && $c < 0xA0)) { + return -1; + } + + // Non-spacing characters. + if (0xAD !== $c && + 0 !== \preg_match('#^[\p{Mn}\p{Me}\p{Cf}\x{1160}-\x{11ff}\x{200b}]#u', $char)) { + return 0; + } + + // If we arrive here, $c is not a combining C0/C1 control character. + return 1 + + (0x1100 <= $c && + (0x115F >= $c || // Hangul Jamo init. consonants + 0x2329 === $c || 0x232A === $c || + (0x2E80 <= $c && 0xA4CF >= $c && + 0x303F !== $c) || // CJK…Yi + (0xAC00 <= $c && 0xD7A3 >= $c) || // Hangul Syllables + (0xF900 <= $c && 0xFAFF >= $c) || // CJK Compatibility Ideographs + (0xFE10 <= $c && 0xFE19 >= $c) || // Vertical forms + (0xFE30 <= $c && 0xFE6F >= $c) || // CJK Compatibility Forms + (0xFF00 <= $c && 0xFF60 >= $c) || // Fullwidth Forms + (0xFFE0 <= $c && 0xFFE6 >= $c) || + (0x20000 <= $c && 0x2FFFD >= $c) || + (0x30000 <= $c && 0x3FFFD >= $c))); + } + + /** + * Check whether the character is printable or not. + */ + public static function isCharPrintable(string $char): bool + { + return 1 <= static::getCharWidth($char); + } + + /** + * Get a decimal code representation of a specific character. + */ + public static function toCode(string $char): int + { + $char = (string) $char; + $code = \ord($char[0]); + $bytes = 1; + + if (!($code & 0x80)) { // 0xxxxxxx + return $code; + } + + if (($code & 0xE0) === 0xC0) { // 110xxxxx + $bytes = 2; + $code = $code & ~0xC0; + } elseif (($code & 0xF0) === 0xE0) { // 1110xxxx + $bytes = 3; + $code = $code & ~0xE0; + } elseif (($code & 0xF8) === 0xF0) { // 11110xxx + $bytes = 4; + $code = $code & ~0xF0; + } + + for ($i = 2; $i <= $bytes; $i++) { // 10xxxxxx + $code = ($code << 6) + (\ord($char[$i - 1]) & ~0x80); + } + + return $code; + } +} diff --git a/api/vendor/psy/psysh/src/Readline/Hoa/Xcallable.php b/api/vendor/psy/psysh/src/Readline/Hoa/Xcallable.php new file mode 100644 index 000000000..e1160a556 --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Hoa/Xcallable.php @@ -0,0 +1,256 @@ +<?php + +/** + * Hoa + * + * + * @license + * + * New BSD License + * + * Copyright © 2007-2017, Hoa community. 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 Hoa 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 HOLDERS AND 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. + */ + +namespace Psy\Readline\Hoa; + +/** + * Build a callable object, i.e. `function`, `class::method`, `object->method` or + * closure. They all have the same behaviour. This callable is an extension of + * native PHP callable (aka callback) to integrate Hoa's structures. + */ +class Xcallable +{ + /** + * Callback with the PHP format. + */ + protected $_callback = null; + + /** + * Callable hash. + */ + protected $_hash = null; + + /** + * Allocates a xcallable based on a callback. + * + * Accepted forms: + * * `'function'`, + * * `'class::method'`, + * * `'class', 'method'`, + * * `$object, 'method'`, + * * `$object, ''`, + * * `function (…) { … }`, + * * `['class', 'method']`, + * * `[$object, 'method']`. + * + * # Examples + * + * ```php + * $toUpper = new Hoa\Consistency\Xcallable('strtoupper'); + * assert('FOO' === $toUpper('foo')); + * ``` + * + * # Exceptions + * + * A `Hoa\Consistency\Exception` exception is thrown if the callback form + * is invalid. + * + * ```php,must_throw(Hoa\Consistency\Exception) + * new Hoa\Consistency\Xcallable('Foo:'); + * ``` + */ + public function __construct($call, $able = '') + { + if ($call instanceof \Closure) { + $this->_callback = $call; + + return; + } + + if (!\is_string($able)) { + throw new Exception('Bad callback form; the able part must be a string.', 0); + } + + if ('' === $able) { + if (\is_string($call)) { + if (false === \strpos($call, '::')) { + if (!\function_exists($call)) { + throw new Exception('Bad callback form; function %s does not exist.', 1, $call); + } + + $this->_callback = $call; + + return; + } + + list($call, $able) = \explode('::', $call); + } elseif (\is_object($call)) { + if ($call instanceof StreamOut) { + $able = null; + } elseif (\method_exists($call, '__invoke')) { + $able = '__invoke'; + } else { + throw new Exception('Bad callback form; an object but without a known '.'method.', 2); + } + } elseif (\is_array($call) && isset($call[0])) { + if (!isset($call[1])) { + $this->__construct($call[0]); + return; + } + + $this->__construct($call[0], $call[1]); + return; + } else { + throw new Exception('Bad callback form.', 3); + } + } + + $this->_callback = [$call, $able]; + + return; + } + + /** + * Calls the callable. + */ + public function __invoke(...$arguments) + { + $callback = $this->getValidCallback($arguments); + + return $callback(...$arguments); + } + + /** + * Returns a valid PHP callback. + */ + public function getValidCallback(array &$arguments = []) + { + $callback = $this->_callback; + $head = null; + + if (isset($arguments[0])) { + $head = &$arguments[0]; + } + + // If method is undetermined, we find it (we understand event bucket and + // stream). + if (null !== $head && + \is_array($callback) && + null === $callback[1]) { + if ($head instanceof EventBucket) { + $head = $head->getData(); + } + + switch ($type = \gettype($head)) { + case 'string': + if (1 === \strlen($head)) { + $method = 'writeCharacter'; + } else { + $method = 'writeString'; + } + + break; + + case 'boolean': + case 'integer': + case 'array': + $method = 'write'.\ucfirst($type); + + break; + + case 'double': + $method = 'writeFloat'; + + break; + + default: + $method = 'writeAll'; + $head = $head."\n"; + } + + $callback[1] = $method; + } + + return $callback; + } + + /** + * Computes the hash of this callable. + * + * Will produce: + * * `function#…`, + * * `class#…::…`, + * * `object(…)#…::…`, + * * `closure(…)`. + */ + public function getHash(): string + { + if (null !== $this->_hash) { + return $this->_hash; + } + + $_ = &$this->_callback; + + if (\is_string($_)) { + return $this->_hash = 'function#'.$_; + } + + if (\is_array($_)) { + return + $this->_hash = + (\is_object($_[0]) + ? 'object('.\spl_object_hash($_[0]).')'. + '#'.\get_class($_[0]) + : 'class#'.$_[0]). + '::'. + (null !== $_[1] + ? $_[1] + : '???'); + } + + return $this->_hash = 'closure('.\spl_object_hash($_).')'; + } + + /** + * The string representation of a callable is its hash. + */ + public function __toString(): string + { + return $this->getHash(); + } + + /** + * Hoa's xcallable() helper. + */ + public static function from($call, $able = '') + { + if ($call instanceof self) { + return $call; + } + + return new self($call, $able); + } +} diff --git a/api/vendor/psy/psysh/src/Readline/HoaConsole.php b/api/vendor/psy/psysh/src/Readline/HoaConsole.php deleted file mode 100644 index bd4d9d541..000000000 --- a/api/vendor/psy/psysh/src/Readline/HoaConsole.php +++ /dev/null @@ -1,121 +0,0 @@ -<?php - -/* - * This file is part of Psy Shell. - * - * (c) 2012-2020 Justin Hileman - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Psy\Readline; - -use Hoa\Console\Console; -use Hoa\Console\Cursor; -use Hoa\Console\Readline\Readline as HoaReadline; -use Psy\Exception\BreakException; - -/** - * Hoa\Console Readline implementation. - */ -class HoaConsole implements Readline -{ - /** @var HoaReadline */ - private $hoaReadline; - - /** @var string|null */ - private $lastPrompt; - - /** - * @return bool - */ - public static function isSupported() - { - return \class_exists(Console::class, true); - } - - public function __construct() - { - $this->hoaReadline = new HoaReadline(); - $this->hoaReadline->addMapping('\C-l', function () { - $this->redisplay(); - - return HoaReadline::STATE_NO_ECHO; - }); - } - - /** - * {@inheritdoc} - */ - public function addHistory($line) - { - $this->hoaReadline->addHistory($line); - - return true; - } - - /** - * {@inheritdoc} - */ - public function clearHistory() - { - $this->hoaReadline->clearHistory(); - - return true; - } - - /** - * {@inheritdoc} - */ - public function listHistory() - { - $i = 0; - $list = []; - while (($item = $this->hoaReadline->getHistory($i++)) !== null) { - $list[] = $item; - } - - return $list; - } - - /** - * {@inheritdoc} - */ - public function readHistory() - { - return true; - } - - /** - * {@inheritdoc} - * - * @throws BreakException if user hits Ctrl+D - * - * @return string - */ - public function readline($prompt = null) - { - $this->lastPrompt = $prompt; - - return $this->hoaReadline->readLine($prompt); - } - - /** - * {@inheritdoc} - */ - public function redisplay() - { - $currentLine = $this->hoaReadline->getLine(); - Cursor::clear('all'); - echo $this->lastPrompt, $currentLine; - } - - /** - * {@inheritdoc} - */ - public function writeHistory() - { - return true; - } -} diff --git a/api/vendor/psy/psysh/src/Readline/Libedit.php b/api/vendor/psy/psysh/src/Readline/Libedit.php index 7818e413f..6259e2ffa 100644 --- a/api/vendor/psy/psysh/src/Readline/Libedit.php +++ b/api/vendor/psy/psysh/src/Readline/Libedit.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -29,10 +29,8 @@ class Libedit extends GNUReadline /** * Let's emulate GNU Readline by manually reading and parsing the history file! - * - * @return bool */ - public static function isSupported() + public static function isSupported(): bool { return \function_exists('readline') && !\function_exists('readline_list_history'); } @@ -40,7 +38,15 @@ public static function isSupported() /** * {@inheritdoc} */ - public function listHistory() + public static function supportsBracketedPaste(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function listHistory(): array { $history = \file_get_contents($this->historyFile); if (!$history) { @@ -57,6 +63,7 @@ public function listHistory() // decode the line $history = \array_map([$this, 'parseHistoryLine'], $history); + // filter empty lines & comments return \array_values(\array_filter($history)); } @@ -64,7 +71,7 @@ public function listHistory() /** * {@inheritdoc} */ - public function writeHistory() + public function writeHistory(): bool { $res = parent::writeHistory(); @@ -91,9 +98,9 @@ public function writeHistory() * * @param string $line The history line to parse * - * @return string | null + * @return string|null */ - protected function parseHistoryLine($line) + protected function parseHistoryLine(string $line) { // empty line, comment or timestamp if (!$line || $line[0] === "\0") { diff --git a/api/vendor/psy/psysh/src/Readline/Readline.php b/api/vendor/psy/psysh/src/Readline/Readline.php index 7e404dccc..429b2b1ff 100644 --- a/api/vendor/psy/psysh/src/Readline/Readline.php +++ b/api/vendor/psy/psysh/src/Readline/Readline.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -16,12 +16,22 @@ */ interface Readline { + /** + * @param string|false $historyFile + * @param int|null $historySize + * @param bool|null $eraseDups + */ + public function __construct($historyFile = null, $historySize = 0, $eraseDups = false); + /** * Check whether this Readline class is supported by the current system. - * - * @return bool */ - public static function isSupported(); + public static function isSupported(): bool; + + /** + * Check whether this Readline class supports bracketed paste. + */ + public static function supportsBracketedPaste(): bool; /** * Add a line to the command history. @@ -30,28 +40,28 @@ public static function isSupported(); * * @return bool Success */ - public function addHistory($line); + public function addHistory(string $line): bool; /** * Clear the command history. * * @return bool Success */ - public function clearHistory(); + public function clearHistory(): bool; /** * List the command history. * - * @return array + * @return string[] */ - public function listHistory(); + public function listHistory(): array; /** * Read the command history. * * @return bool Success */ - public function readHistory(); + public function readHistory(): bool; /** * Read a single line of input from the user. @@ -60,7 +70,7 @@ public function readHistory(); * * @return false|string */ - public function readline($prompt = null); + public function readline(?string $prompt = null); /** * Redraw readline to redraw the display. @@ -72,5 +82,5 @@ public function redisplay(); * * @return bool Success */ - public function writeHistory(); + public function writeHistory(): bool; } diff --git a/api/vendor/psy/psysh/src/Readline/Transient.php b/api/vendor/psy/psysh/src/Readline/Transient.php index 884354dbd..22c624930 100644 --- a/api/vendor/psy/psysh/src/Readline/Transient.php +++ b/api/vendor/psy/psysh/src/Readline/Transient.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -28,11 +28,19 @@ class Transient implements Readline * * {@inheritdoc} */ - public static function isSupported() + public static function isSupported(): bool { return true; } + /** + * {@inheritdoc} + */ + public static function supportsBracketedPaste(): bool + { + return false; + } + /** * Transient Readline constructor. */ @@ -47,7 +55,7 @@ public function __construct($historyFile = null, $historySize = 0, $eraseDups = /** * {@inheritdoc} */ - public function addHistory($line) + public function addHistory(string $line): bool { if ($this->eraseDups) { if (($key = \array_search($line, $this->history)) !== false) { @@ -72,7 +80,7 @@ public function addHistory($line) /** * {@inheritdoc} */ - public function clearHistory() + public function clearHistory(): bool { $this->history = []; @@ -82,7 +90,7 @@ public function clearHistory() /** * {@inheritdoc} */ - public function listHistory() + public function listHistory(): array { return $this->history; } @@ -90,7 +98,7 @@ public function listHistory() /** * {@inheritdoc} */ - public function readHistory() + public function readHistory(): bool { return true; } @@ -100,9 +108,9 @@ public function readHistory() * * @throws BreakException if user hits Ctrl+D * - * @return string + * @return false|string */ - public function readline($prompt = null) + public function readline(?string $prompt = null) { echo $prompt; @@ -120,7 +128,7 @@ public function redisplay() /** * {@inheritdoc} */ - public function writeHistory() + public function writeHistory(): bool { return true; } diff --git a/api/vendor/psy/psysh/src/Readline/Userland.php b/api/vendor/psy/psysh/src/Readline/Userland.php new file mode 100644 index 000000000..95b12282b --- /dev/null +++ b/api/vendor/psy/psysh/src/Readline/Userland.php @@ -0,0 +1,165 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\Readline; + +use Psy\Exception\BreakException; +use Psy\Readline\Hoa\Console as HoaConsole; +use Psy\Readline\Hoa\ConsoleCursor as HoaConsoleCursor; +use Psy\Readline\Hoa\ConsoleInput as HoaConsoleInput; +use Psy\Readline\Hoa\ConsoleOutput as HoaConsoleOutput; +use Psy\Readline\Hoa\ConsoleTput as HoaConsoleTput; +use Psy\Readline\Hoa\Readline as HoaReadline; +use Psy\Readline\Hoa\Ustring as HoaUstring; + +/** + * Userland Readline implementation. + */ +class Userland implements Readline +{ + /** @var HoaReadline */ + private $hoaReadline; + + /** @var string|null */ + private $lastPrompt; + + private $tput; + private $input; + private $output; + + public static function isSupported(): bool + { + static::bootstrapHoa(); + + return HoaUstring::checkMbString() && HoaConsoleTput::isSupported(); + } + + /** + * {@inheritdoc} + */ + public static function supportsBracketedPaste(): bool + { + return false; + } + + /** + * Doesn't (currently) support history file, size or erase dupes configs. + */ + public function __construct($historyFile = null, $historySize = 0, $eraseDups = false) + { + static::bootstrapHoa(true); + + $this->hoaReadline = new HoaReadline(); + $this->hoaReadline->addMapping('\C-l', function () { + $this->redisplay(); + + return HoaReadline::STATE_NO_ECHO; + }); + + $this->tput = new HoaConsoleTput(); + HoaConsole::setTput($this->tput); + + $this->input = new HoaConsoleInput(); + HoaConsole::setInput($this->input); + + $this->output = new HoaConsoleOutput(); + HoaConsole::setOutput($this->output); + } + + /** + * Bootstrap some things that Hoa used to do itself. + */ + public static function bootstrapHoa(bool $withTerminalResize = false) + { + // A side effect registers hoa:// stream wrapper + \class_exists('Psy\Readline\Hoa\ProtocolWrapper'); + + // A side effect registers hoa://Library/Stream + \class_exists('Psy\Readline\Hoa\Stream'); + + // A side effect binds terminal resize + $withTerminalResize && \class_exists('Psy\Readline\Hoa\ConsoleWindow'); + } + + /** + * {@inheritdoc} + */ + public function addHistory(string $line): bool + { + $this->hoaReadline->addHistory($line); + + return true; + } + + /** + * {@inheritdoc} + */ + public function clearHistory(): bool + { + $this->hoaReadline->clearHistory(); + + return true; + } + + /** + * {@inheritdoc} + */ + public function listHistory(): array + { + $i = 0; + $list = []; + while (($item = $this->hoaReadline->getHistory($i++)) !== null) { + $list[] = $item; + } + + return $list; + } + + /** + * {@inheritdoc} + */ + public function readHistory(): bool + { + return true; + } + + /** + * {@inheritdoc} + * + * @throws BreakException if user hits Ctrl+D + * + * @return string + */ + public function readline(?string $prompt = null) + { + $this->lastPrompt = $prompt; + + return $this->hoaReadline->readLine($prompt); + } + + /** + * {@inheritdoc} + */ + public function redisplay() + { + $currentLine = $this->hoaReadline->getLine(); + HoaConsoleCursor::clear('all'); + echo $this->lastPrompt, $currentLine; + } + + /** + * {@inheritdoc} + */ + public function writeHistory(): bool + { + return true; + } +} diff --git a/api/vendor/psy/psysh/src/Reflection/ReflectionClassConstant.php b/api/vendor/psy/psysh/src/Reflection/ReflectionClassConstant.php deleted file mode 100644 index 527308dfd..000000000 --- a/api/vendor/psy/psysh/src/Reflection/ReflectionClassConstant.php +++ /dev/null @@ -1,228 +0,0 @@ -<?php - -/* - * This file is part of Psy Shell. - * - * (c) 2012-2020 Justin Hileman - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Psy\Reflection; - -/** - * Somehow the standard reflection library didn't include class constants until 7.1. - * - * ReflectionClassConstant corrects that omission. - */ -class ReflectionClassConstant implements \Reflector -{ - public $class; - public $name; - private $value; - - /** - * Construct a ReflectionClassConstant object. - * - * @param string|object $class - * @param string $name - */ - public function __construct($class, $name) - { - if (!$class instanceof \ReflectionClass) { - $class = new \ReflectionClass($class); - } - - $this->class = $class; - $this->name = $name; - - $constants = $class->getConstants(); - if (!\array_key_exists($name, $constants)) { - throw new \InvalidArgumentException('Unknown constant: '.$name); - } - - $this->value = $constants[$name]; - } - - /** - * Exports a reflection. - * - * @param string|object $class - * @param string $name - * @param bool $return pass true to return the export, as opposed to emitting it - * - * @return string|null - */ - public static function export($class, $name, $return = false) - { - $refl = new self($class, $name); - $value = $refl->getValue(); - - $str = \sprintf('Constant [ public %s %s ] { %s }', \gettype($value), $refl->getName(), $value); - - if ($return) { - return $str; - } - - echo $str."\n"; - } - - /** - * Gets the declaring class. - * - * @return \ReflectionClass - */ - public function getDeclaringClass() - { - $parent = $this->class; - - // Since we don't have real reflection constants, we can't see where - // it's actually defined. Let's check for a constant that is also - // available on the parent class which has exactly the same value. - // - // While this isn't _technically_ correct, it's prolly close enough. - do { - $class = $parent; - $parent = $class->getParentClass(); - } while ($parent && $parent->hasConstant($this->name) && $parent->getConstant($this->name) === $this->value); - - return $class; - } - - /** - * Get the constant's docblock. - * - * @return false - */ - public function getDocComment() - { - return false; - } - - /** - * Gets the class constant modifiers. - * - * Since this is only used for PHP < 7.1, we can just return "public". All - * the fancier modifiers are only available on PHP versions which have their - * own ReflectionClassConstant class :) - * - * @return int - */ - public function getModifiers() - { - return \ReflectionMethod::IS_PUBLIC; - } - - /** - * Gets the constant name. - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Gets the value of the constant. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Checks if class constant is private. - * - * @return bool false - */ - public function isPrivate() - { - return false; - } - - /** - * Checks if class constant is protected. - * - * @return bool false - */ - public function isProtected() - { - return false; - } - - /** - * Checks if class constant is public. - * - * @return bool true - */ - public function isPublic() - { - return true; - } - - /** - * To string. - * - * @return string - */ - public function __toString() - { - return $this->getName(); - } - - /** - * Gets the constant's file name. - * - * Currently returns null, because if it returns a file name the signature - * formatter will barf. - */ - public function getFileName() - { - return; - // return $this->class->getFileName(); - } - - /** - * Get the code start line. - * - * @throws \RuntimeException - */ - public function getStartLine() - { - throw new \RuntimeException('Not yet implemented because it\'s unclear what I should do here :)'); - } - - /** - * Get the code end line. - * - * @throws \RuntimeException - */ - public function getEndLine() - { - return $this->getStartLine(); - } - - /** - * Get a ReflectionClassConstant instance. - * - * In PHP >= 7.1, this will return a \ReflectionClassConstant from the - * standard reflection library. For older PHP, it will return this polyfill. - * - * @param string|object $class - * @param string $name - * - * @return ReflectionClassConstant|\ReflectionClassConstant - */ - public static function create($class, $name) - { - if (\class_exists(\ReflectionClassConstant::class)) { - return new \ReflectionClassConstant($class, $name); - } - - return new self($class, $name); - } -} diff --git a/api/vendor/psy/psysh/src/Reflection/ReflectionConstant.php b/api/vendor/psy/psysh/src/Reflection/ReflectionConstant.php index cac76e764..763011ff7 100644 --- a/api/vendor/psy/psysh/src/Reflection/ReflectionConstant.php +++ b/api/vendor/psy/psysh/src/Reflection/ReflectionConstant.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,19 +12,159 @@ namespace Psy\Reflection; /** - * @deprecated ReflectionConstant is now ReflectionClassConstant. This class - * name will be reclaimed in the next stable release, to be used for - * ReflectionConstant_ :) + * Somehow the standard reflection library doesn't include constants. + * + * ReflectionConstant corrects that omission. */ -class ReflectionConstant extends ReflectionClassConstant +class ReflectionConstant implements \Reflector { + public $name; + private $value; + + private static $magicConstants = [ + '__LINE__', + '__FILE__', + '__DIR__', + '__FUNCTION__', + '__CLASS__', + '__TRAIT__', + '__METHOD__', + '__NAMESPACE__', + '__COMPILER_HALT_OFFSET__', + ]; + + /** + * Construct a ReflectionConstant object. + * + * @param string $name + */ + public function __construct(string $name) + { + $this->name = $name; + + if (!\defined($name) && !self::isMagicConstant($name)) { + throw new \InvalidArgumentException('Unknown constant: '.$name); + } + + if (!self::isMagicConstant($name)) { + $this->value = @\constant($name); + } + } + + /** + * Exports a reflection. + * + * @param string $name + * @param bool $return pass true to return the export, as opposed to emitting it + * + * @return string|null + */ + public static function export(string $name, bool $return = false) + { + $refl = new self($name); + $value = $refl->getValue(); + + $str = \sprintf('Constant [ %s %s ] { %s }', \gettype($value), $refl->getName(), $value); + + if ($return) { + return $str; + } + + echo $str."\n"; + } + + public static function isMagicConstant($name) + { + return \in_array($name, self::$magicConstants); + } + + /** + * Get the constant's docblock. + * + * @return false + */ + public function getDocComment(): bool + { + return false; + } + + /** + * Gets the constant name. + */ + public function getName(): string + { + return $this->name; + } + /** - * {inheritDoc}. + * Gets the namespace name. + * + * Returns '' when the constant is not namespaced. */ - public function __construct($class, $name) + public function getNamespaceName(): string { - @\trigger_error('ReflectionConstant is now ReflectionClassConstant', \E_USER_DEPRECATED); + if (!$this->inNamespace()) { + return ''; + } - parent::__construct($class, $name); + return \preg_replace('/\\\\[^\\\\]+$/', '', $this->name); + } + + /** + * Gets the value of the constant. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } + + /** + * Checks if this constant is defined in a namespace. + */ + public function inNamespace(): bool + { + return \strpos($this->name, '\\') !== false; + } + + /** + * To string. + */ + public function __toString(): string + { + return $this->getName(); + } + + /** + * Gets the constant's file name. + * + * Currently returns null, because if it returns a file name the signature + * formatter will barf. + */ + public function getFileName() + { + return; + // return $this->class->getFileName(); + } + + /** + * Get the code start line. + * + * @throws \RuntimeException + */ + public function getStartLine() + { + throw new \RuntimeException('Not yet implemented because it\'s unclear what I should do here :)'); + } + + /** + * Get the code end line. + * + * @throws \RuntimeException + */ + public function getEndLine() + { + return $this->getStartLine(); } } diff --git a/api/vendor/psy/psysh/src/Reflection/ReflectionConstant_.php b/api/vendor/psy/psysh/src/Reflection/ReflectionConstant_.php deleted file mode 100644 index 56c11ad01..000000000 --- a/api/vendor/psy/psysh/src/Reflection/ReflectionConstant_.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -/* - * This file is part of Psy Shell. - * - * (c) 2012-2020 Justin Hileman - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Psy\Reflection; - -/** - * Somehow the standard reflection library doesn't include constants. - * - * ReflectionConstant_ corrects that omission. - * - * Note: For backwards compatibility reasons, this class is named - * ReflectionConstant_ rather than ReflectionConstant. It will be renamed in - * v0.10.0. - */ -class ReflectionConstant_ implements \Reflector -{ - public $name; - private $value; - - private static $magicConstants = [ - '__LINE__', - '__FILE__', - '__DIR__', - '__FUNCTION__', - '__CLASS__', - '__TRAIT__', - '__METHOD__', - '__NAMESPACE__', - '__COMPILER_HALT_OFFSET__', - ]; - - /** - * Construct a ReflectionConstant_ object. - * - * @param string $name - */ - public function __construct($name) - { - $this->name = $name; - - if (!\defined($name) && !self::isMagicConstant($name)) { - throw new \InvalidArgumentException('Unknown constant: '.$name); - } - - if (!self::isMagicConstant($name)) { - $this->value = @\constant($name); - } - } - - /** - * Exports a reflection. - * - * @param string $name - * @param bool $return pass true to return the export, as opposed to emitting it - * - * @return string|null - */ - public static function export($name, $return = false) - { - $refl = new self($name); - $value = $refl->getValue(); - - $str = \sprintf('Constant [ %s %s ] { %s }', \gettype($value), $refl->getName(), $value); - - if ($return) { - return $str; - } - - echo $str."\n"; - } - - public static function isMagicConstant($name) - { - return \in_array($name, self::$magicConstants); - } - - /** - * Get the constant's docblock. - * - * @return false - */ - public function getDocComment() - { - return false; - } - - /** - * Gets the constant name. - * - * @return string - */ - public function getName() - { - return $this->name; - } - - /** - * Gets the namespace name. - * - * Returns '' when the constant is not namespaced. - * - * @return string - */ - public function getNamespaceName() - { - if (!$this->inNamespace()) { - return ''; - } - - return \preg_replace('/\\\\[^\\\\]+$/', '', $this->name); - } - - /** - * Gets the value of the constant. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Checks if this constant is defined in a namespace. - * - * @return bool - */ - public function inNamespace() - { - return \strpos($this->name, '\\') !== false; - } - - /** - * To string. - * - * @return string - */ - public function __toString() - { - return $this->getName(); - } - - /** - * Gets the constant's file name. - * - * Currently returns null, because if it returns a file name the signature - * formatter will barf. - */ - public function getFileName() - { - return; - // return $this->class->getFileName(); - } - - /** - * Get the code start line. - * - * @throws \RuntimeException - */ - public function getStartLine() - { - throw new \RuntimeException('Not yet implemented because it\'s unclear what I should do here :)'); - } - - /** - * Get the code end line. - * - * @throws \RuntimeException - */ - public function getEndLine() - { - return $this->getStartLine(); - } -} diff --git a/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php b/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php index 64f7f6d1c..890221469 100644 --- a/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php +++ b/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -74,7 +74,7 @@ class ReflectionLanguageConstruct extends \ReflectionFunctionAbstract * * @param string $keyword */ - public function __construct($keyword) + public function __construct(string $keyword) { if (!self::isLanguageConstruct($keyword)) { throw new \InvalidArgumentException('Unknown language construct: '.$keyword); @@ -95,20 +95,16 @@ public static function export($name) /** * Get language construct name. - * - * @return string */ - public function getName() + public function getName(): string { return $this->keyword; } /** * None of these return references. - * - * @return bool */ - public function returnsReference() + public function returnsReference(): bool { return false; } @@ -118,7 +114,7 @@ public function returnsReference() * * @return array */ - public function getParameters() + public function getParameters(): array { $params = []; foreach (self::$languageConstructs[$this->keyword] as $parameter => $opts) { @@ -133,8 +129,11 @@ public function getParameters() * * (Hint: it always returns false) * - * @return bool false + * @todo remove \ReturnTypeWillChange attribute after dropping support for PHP 7.x (when we can use union types) + * + * @return string|false (false) */ + #[\ReturnTypeWillChange] public function getFileName() { return false; @@ -142,10 +141,8 @@ public function getFileName() /** * To string. - * - * @return string */ - public function __toString() + public function __toString(): string { return $this->getName(); } @@ -154,10 +151,8 @@ public function __toString() * Check whether keyword is a (known) language construct. * * @param string $keyword - * - * @return bool */ - public static function isLanguageConstruct($keyword) + public static function isLanguageConstruct(string $keyword): bool { return \array_key_exists($keyword, self::$languageConstructs); } diff --git a/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php b/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php index 895fc2bb8..756dfd8ae 100644 --- a/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php +++ b/api/vendor/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -32,9 +32,9 @@ public function __construct($function, $parameter, array $opts) /** * No class here. */ - public function getClass() + public function getClass(): ?\ReflectionClass { - return; + return null; } /** @@ -42,7 +42,7 @@ public function getClass() * * @return bool */ - public function isArray() + public function isArray(): bool { return \array_key_exists('isArray', $this->opts) && $this->opts['isArray']; } @@ -50,13 +50,18 @@ public function isArray() /** * Get param default value. * + * @todo remove \ReturnTypeWillChange attribute after dropping support for PHP 7.x (when we can use mixed type) + * * @return mixed */ + #[\ReturnTypeWillChange] public function getDefaultValue() { if ($this->isDefaultValueAvailable()) { return $this->opts['defaultValue']; } + + return null; } /** @@ -64,7 +69,7 @@ public function getDefaultValue() * * @return string */ - public function getName() + public function getName(): string { return $this->parameter; } @@ -74,7 +79,7 @@ public function getName() * * @return bool */ - public function isOptional() + public function isOptional(): bool { return \array_key_exists('isOptional', $this->opts) && $this->opts['isOptional']; } @@ -84,7 +89,7 @@ public function isOptional() * * @return bool */ - public function isDefaultValueAvailable() + public function isDefaultValueAvailable(): bool { return \array_key_exists('defaultValue', $this->opts); } @@ -96,7 +101,7 @@ public function isDefaultValueAvailable() * * @return bool */ - public function isPassedByReference() + public function isPassedByReference(): bool { return \array_key_exists('isPassedByReference', $this->opts) && $this->opts['isPassedByReference']; } diff --git a/api/vendor/psy/psysh/src/Reflection/ReflectionNamespace.php b/api/vendor/psy/psysh/src/Reflection/ReflectionNamespace.php index f50a322a8..3c8b330c0 100644 --- a/api/vendor/psy/psysh/src/Reflection/ReflectionNamespace.php +++ b/api/vendor/psy/psysh/src/Reflection/ReflectionNamespace.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,7 +23,7 @@ class ReflectionNamespace implements \Reflector * * @param string $name */ - public function __construct($name) + public function __construct(string $name) { $this->name = $name; } @@ -33,7 +33,7 @@ public function __construct($name) * * @return string */ - public function getName() + public function getName(): string { return $this->name; } @@ -53,7 +53,7 @@ public static function export($name) * * @return string */ - public function __toString() + public function __toString(): string { return $this->getName(); } diff --git a/api/vendor/psy/psysh/src/Shell.php b/api/vendor/psy/psysh/src/Shell.php index 240516e03..4fd97b721 100644 --- a/api/vendor/psy/psysh/src/Shell.php +++ b/api/vendor/psy/psysh/src/Shell.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -15,17 +15,19 @@ use Psy\Exception\BreakException; use Psy\Exception\ErrorException; use Psy\Exception\Exception as PsyException; +use Psy\Exception\RuntimeException; use Psy\Exception\ThrowUpException; -use Psy\Exception\TypeErrorException; use Psy\ExecutionLoop\ProcessForker; use Psy\ExecutionLoop\RunkitReloader; use Psy\Formatter\TraceFormatter; use Psy\Input\ShellInput; use Psy\Input\SilentInput; +use Psy\Output\ShellOutput; use Psy\TabCompletion\Matcher; use Psy\VarDumper\PresenterAware; use Symfony\Component\Console\Application; use Symfony\Component\Console\Command\Command as BaseCommand; +use Symfony\Component\Console\Exception\ExceptionInterface as SymfonyConsoleException; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Input\InputArgument; @@ -48,12 +50,7 @@ */ class Shell extends Application { - const VERSION = 'v0.10.8'; - - const PROMPT = '>>> '; - const BUFF_PROMPT = '... '; - const REPLAY = '--> '; - const RETVAL = '=> '; + const VERSION = 'v0.12.4'; private $config; private $cleaner; @@ -75,13 +72,14 @@ class Shell extends Application private $commandsMatcher; private $lastExecSuccess = true; private $nonInteractive = false; + private $errorReporting; /** * Create a new Psy Shell. * * @param Configuration|null $config (default: null) */ - public function __construct(Configuration $config = null) + public function __construct(?Configuration $config = null) { $this->config = $config ?: new Configuration(); $this->cleaner = $this->config->getCodeCleaner(); @@ -107,10 +105,28 @@ public function __construct(Configuration $config = null) * This is used by the psysh bin to decide whether to start a shell on boot, * or to simply autoload the library. */ - public static function isIncluded(array $trace) + public static function isIncluded(array $trace): bool { - return isset($trace[0]['function']) && + $isIncluded = isset($trace[0]['function']) && \in_array($trace[0]['function'], ['require', 'include', 'require_once', 'include_once']); + + // Detect Composer PHP bin proxies. + if ($isIncluded && \array_key_exists('_composer_autoload_path', $GLOBALS) && \preg_match('{[\\\\/]psysh$}', $trace[0]['file'])) { + // If we're in a bin proxy, we'll *always* see one include, but we + // care if we see a second immediately after that. + return isset($trace[1]['function']) && + \in_array($trace[1]['function'], ['require', 'include', 'require_once', 'include_once']); + } + + return $isIncluded; + } + + /** + * Check if the currently running PsySH bin is a phar archive. + */ + public static function isPhar(): bool + { + return \class_exists("\Phar") && \Phar::running() !== '' && \strpos(__FILE__, \Phar::running(true)) === 0; } /** @@ -124,8 +140,10 @@ public static function isIncluded(array $trace) * * @return array Scope variables from the debugger session */ - public static function debug(array $vars = [], $bindTo = null) + public static function debug(array $vars = [], $bindTo = null): array { + @\trigger_error('`Psy\\Shell::debug` is deprecated; call `Psy\\debug` instead.', \E_USER_DEPRECATED); + return \Psy\debug($vars, $bindTo); } @@ -138,7 +156,7 @@ public static function debug(array $vars = [], $bindTo = null) * * @return BaseCommand The registered command */ - public function add(BaseCommand $command) + public function add(BaseCommand $command): BaseCommand { if ($ret = parent::add($command)) { if ($ret instanceof ContextAware) { @@ -162,7 +180,7 @@ public function add(BaseCommand $command) * * @return InputDefinition An InputDefinition instance */ - protected function getDefaultInputDefinition() + protected function getDefaultInputDefinition(): InputDefinition { return new InputDefinition([ new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'), @@ -175,7 +193,7 @@ protected function getDefaultInputDefinition() * * @return array An array of default Command instances */ - protected function getDefaultCommands() + protected function getDefaultCommands(): array { $sudo = new Command\SudoCommand(); $sudo->setReadline($this->readline); @@ -205,9 +223,9 @@ protected function getDefaultCommands() } /** - * @return array + * @return Matcher\AbstractMatcher[] */ - protected function getDefaultMatchers() + protected function getDefaultMatchers(): array { // Store the Commands Matcher for later. If more commands are added, // we'll update the Commands Matcher too. @@ -230,20 +248,12 @@ protected function getDefaultMatchers() ]; } - /** - * @deprecated Nothing should use this anymore - */ - protected function getTabCompletionMatchers() - { - @\trigger_error('getTabCompletionMatchers is no longer used', \E_USER_DEPRECATED); - } - /** * Gets the default command loop listeners. * * @return array An array of Execution Loop Listener instances */ - protected function getDefaultLoopListeners() + protected function getDefaultLoopListeners(): array { $listeners = []; @@ -279,6 +289,8 @@ public function addMatchers(array $matchers) */ public function addTabCompletionMatchers(array $matchers) { + @\trigger_error('`addTabCompletionMatchers` is deprecated; call `addMatchers` instead.', \E_USER_DEPRECATED); + $this->addMatchers($matchers); } @@ -301,7 +313,7 @@ public function setOutput(OutputInterface $output) * * @return int 0 if everything went fine, or an error code */ - public function run(InputInterface $input = null, OutputInterface $output = null) + public function run(?InputInterface $input = null, ?OutputInterface $output = null): int { // We'll just ignore the input passed in, and set up our own! $input = new ArrayInput([]); @@ -315,7 +327,7 @@ public function run(InputInterface $input = null, OutputInterface $output = null try { return parent::run($input, $output); - } catch (\Exception $e) { + } catch (\Throwable $e) { $this->writeException($e); } @@ -325,14 +337,14 @@ public function run(InputInterface $input = null, OutputInterface $output = null /** * Runs PsySH. * - * @throws \Exception if thrown via the `throw-up` command + * @throws \Throwable if thrown via the `throw-up` command * * @param InputInterface $input An Input instance * @param OutputInterface $output An Output instance * * @return int 0 if everything went fine, or an error code */ - public function doRun(InputInterface $input, OutputInterface $output) + public function doRun(InputInterface $input, OutputInterface $output): int { $this->setOutput($output); $this->resetCodeBuffer(); @@ -351,11 +363,11 @@ public function doRun(InputInterface $input, OutputInterface $output) * Initializes tab completion and readline history, then spins up the * execution loop. * - * @throws \Exception if thrown via the `throw-up` command + * @throws \Throwable if thrown via the `throw-up` command * * @return int 0 if everything went fine, or an error code */ - private function doInteractiveRun() + private function doInteractiveRun(): int { $this->initializeTabCompletion(); $this->readline->readHistory(); @@ -389,7 +401,7 @@ private function doInteractiveRun() * * @return int 0 if everything went fine, or an error code */ - private function doNonInteractiveRun($rawOutput) + private function doNonInteractiveRun(bool $rawOutput): int { $this->nonInteractive = true; @@ -424,7 +436,7 @@ private function doNonInteractiveRun($rawOutput) /** * Configures the input and output instances based on the user arguments and options. */ - protected function configureIO(InputInterface $input, OutputInterface $output) + protected function configureIO(InputInterface $input, OutputInterface $output): void { // @todo overrides via environment variables (or should these happen in config? ... probably config) $input->setInteractive($this->config->getInputInteractive()); @@ -447,8 +459,6 @@ private function loadIncludes() foreach ($__psysh__->getIncludes() as $__psysh_include__) { try { include_once $__psysh_include__; - } catch (\Error $_e) { - $__psysh__->writeException(ErrorException::fromError($_e)); } catch (\Exception $_e) { $__psysh__->writeException($_e); } @@ -476,7 +486,7 @@ private function loadIncludes() * * @param bool $interactive */ - public function getInput($interactive = true) + public function getInput(bool $interactive = true) { $this->codeBufferOpen = false; @@ -533,7 +543,7 @@ public function getInput($interactive = true) * * @return bool true if the input is in an open string or comment */ - private function inputInOpenStringOrComment($input) + private function inputInOpenStringOrComment(string $input): bool { if (!$this->hasCode()) { return false; @@ -572,10 +582,8 @@ public function beforeLoop() * Run execution loop listeners on user input. * * @param string $input - * - * @return string */ - public function onInput($input) + public function onInput(string $input): string { foreach ($this->loopListeners as $listeners) { if (($return = $listeners->onInput($this, $input)) !== null) { @@ -590,11 +598,11 @@ public function onInput($input) * Run execution loop listeners on code to be executed. * * @param string $code - * - * @return string */ - public function onExecute($code) + public function onExecute(string $code): string { + $this->errorReporting = \error_reporting(); + foreach ($this->loopListeners as $listener) { if (($return = $listener->onExecute($this, $code)) !== null) { $code = $return; @@ -606,7 +614,7 @@ public function onExecute($code) $output = $output->getErrorOutput(); } - $output->writeln(\sprintf('<aside>%s</aside>', OutputFormatter::escape($code)), ConsoleOutput::VERBOSITY_DEBUG); + $output->writeln(\sprintf('<whisper>%s</whisper>', OutputFormatter::escape($code)), ConsoleOutput::VERBOSITY_DEBUG); return $code; } @@ -646,11 +654,11 @@ public function setScopeVariables(array $vars) * * @param bool $includeBoundObject Pass false to exclude 'this'. If you're * passing the scope variables to `extract` - * in PHP 7.1+, you _must_ exclude 'this' + * you _must_ exclude 'this' * * @return array Associative array of scope variables */ - public function getScopeVariables($includeBoundObject = true) + public function getScopeVariables(bool $includeBoundObject = true): array { $vars = $this->context->getAll(); @@ -666,11 +674,11 @@ public function getScopeVariables($includeBoundObject = true) * * @param bool $includeBoundObject Pass false to exclude 'this'. If you're * passing the scope variables to `extract` - * in PHP 7.1+, you _must_ exclude 'this' + * you _must_ exclude 'this' * * @return array Associative array of magic scope variables */ - public function getSpecialScopeVariables($includeBoundObject = true) + public function getSpecialScopeVariables(bool $includeBoundObject = true): array { $vars = $this->context->getSpecialVariables(); @@ -692,7 +700,7 @@ public function getSpecialScopeVariables($includeBoundObject = true) * * @return array Associative array of scope variables which differ from $currentVars */ - public function getScopeVariablesDiff(array $currentVars) + public function getScopeVariablesDiff(array $currentVars): array { $newVars = []; @@ -710,7 +718,7 @@ public function getScopeVariablesDiff(array $currentVars) * * @return array Array of unused variable names */ - public function getUnusedCommandScopeVariableNames() + public function getUnusedCommandScopeVariableNames(): array { return $this->context->getUnusedCommandScopeVariableNames(); } @@ -720,7 +728,7 @@ public function getUnusedCommandScopeVariableNames() * * @return array Array of variable names */ - public function getScopeVariableNames() + public function getScopeVariableNames(): array { return \array_keys($this->context->getAll()); } @@ -732,7 +740,7 @@ public function getScopeVariableNames() * * @return mixed */ - public function getScopeVariable($name) + public function getScopeVariable(string $name) { return $this->context->get($name); } @@ -790,9 +798,9 @@ public function setIncludes(array $includes = []) /** * Get PHP files to be parsed and executed before running the interactive shell. * - * @return array + * @return string[] */ - public function getIncludes() + public function getIncludes(): array { return \array_merge($this->config->getDefaultIncludes(), $this->includes); } @@ -802,7 +810,7 @@ public function getIncludes() * * @return bool True if the code buffer contains code */ - public function hasCode() + public function hasCode(): bool { return !empty($this->codeBuffer); } @@ -814,7 +822,7 @@ public function hasCode() * * @return bool True if the code buffer content is valid */ - protected function hasValidCode() + protected function hasValidCode(): bool { return !$this->codeBufferOpen && $this->code !== false; } @@ -825,7 +833,7 @@ protected function hasValidCode() * @param string $code * @param bool $silent */ - public function addCode($code, $silent = false) + public function addCode(string $code, bool $silent = false) { try { // Code lines ending in \ keep the buffer open @@ -838,7 +846,7 @@ public function addCode($code, $silent = false) $this->codeBuffer[] = $silent ? new SilentInput($code) : $code; $this->code = $this->cleaner->clean($this->codeBuffer, $this->config->requireSemicolons()); - } catch (\Exception $e) { + } catch (\Throwable $e) { // Add failed code blocks to the readline history. $this->addCodeBufferToHistory(); @@ -858,7 +866,7 @@ public function addCode($code, $silent = false) * @param string $code * @param bool $silent */ - private function setCode($code, $silent = false) + private function setCode(string $code, bool $silent = false) { if ($this->hasCode()) { $this->codeStack[] = [$this->codeBuffer, $this->codeBufferOpen, $this->code]; @@ -870,10 +878,6 @@ private function setCode($code, $silent = false) } catch (\Throwable $e) { $this->popCodeStack(); - throw $e; - } catch (\Exception $e) { - $this->popCodeStack(); - throw $e; } @@ -889,9 +893,9 @@ private function setCode($code, $silent = false) * * This is useful for commands which manipulate the buffer. * - * @return array + * @return string[] */ - public function getCodeBuffer() + public function getCodeBuffer(): array { return $this->codeBuffer; } @@ -905,7 +909,7 @@ public function getCodeBuffer() * * @return mixed Who knows? */ - protected function runCommand($input) + protected function runCommand(string $input) { $command = $this->getCommand($input); @@ -917,6 +921,9 @@ protected function runCommand($input) if ($input->hasParameterOption(['--help', '-h'])) { $helpCommand = $this->get('help'); + if (!$helpCommand instanceof Command\HelpCommand) { + throw new RuntimeException('Invalid help command instance'); + } $helpCommand->setCommand($command); return $helpCommand->run(new StringInput(''), $this->output); @@ -945,7 +952,7 @@ public function resetCodeBuffer() * @param string|array $input * @param bool $silent */ - public function addInput($input, $silent = false) + public function addInput($input, bool $silent = false) { foreach ((array) $input as $line) { $this->inputBuffer[] = $silent ? new SilentInput($line) : $line; @@ -958,7 +965,7 @@ public function addInput($input, $silent = false) * If the code buffer is valid, resets the code buffer and returns the * current code. * - * @return string PHP code buffer contents + * @return string|null PHP code buffer contents */ public function flushCode() { @@ -1030,7 +1037,7 @@ private function addCodeBufferToHistory() * * @see CodeCleaner::getNamespace * - * @return string Current code namespace + * @return string|null Current code namespace */ public function getNamespace() { @@ -1047,8 +1054,14 @@ public function getNamespace() * @param string $out * @param int $phase Output buffering phase */ - public function writeStdout($out, $phase = \PHP_OUTPUT_HANDLER_END) + public function writeStdout(string $out, int $phase = \PHP_OUTPUT_HANDLER_END) { + if ($phase & \PHP_OUTPUT_HANDLER_START) { + if ($this->output instanceof ShellOutput) { + $this->output->startPaging(); + } + } + $isCleaning = $phase & \PHP_OUTPUT_HANDLER_CLEAN; // Incremental flush @@ -1063,7 +1076,7 @@ public function writeStdout($out, $phase = \PHP_OUTPUT_HANDLER_END) // Write an extra newline if stdout didn't end with one if ($this->outputWantsNewline) { if (!$this->config->rawOutput() && !$this->config->outputIsPiped()) { - $this->output->writeln(\sprintf('<aside>%s</aside>', $this->config->useUnicode() ? '⏎' : '\\n')); + $this->output->writeln(\sprintf('<whisper>%s</whisper>', $this->config->useUnicode() ? '⏎' : '\\n')); } else { $this->output->writeln(''); } @@ -1075,6 +1088,10 @@ public function writeStdout($out, $phase = \PHP_OUTPUT_HANDLER_END) $this->context->setLastStdout($this->stdoutBuffer); $this->stdoutBuffer = ''; } + + if ($this->output instanceof ShellOutput) { + $this->output->stopPaging(); + } } } @@ -1089,7 +1106,7 @@ public function writeStdout($out, $phase = \PHP_OUTPUT_HANDLER_END) * @param mixed $ret * @param bool $rawOutput Write raw var_export-style values */ - public function writeReturnValue($ret, $rawOutput = false) + public function writeReturnValue($ret, bool $rawOutput = false) { $this->lastExecSuccess = true; @@ -1102,25 +1119,32 @@ public function writeReturnValue($ret, $rawOutput = false) if ($rawOutput) { $formatted = \var_export($ret, true); } else { - $indent = \str_repeat(' ', \strlen(static::RETVAL)); + $prompt = $this->config->theme()->returnValue(); + $indent = \str_repeat(' ', \strlen($prompt)); $formatted = $this->presentValue($ret); - $formatted = static::RETVAL.\str_replace(\PHP_EOL, \PHP_EOL.$indent, $formatted); + $formattedRetValue = \sprintf('<whisper>%s</whisper>', $prompt); + + $formatted = $formattedRetValue.\str_replace(\PHP_EOL, \PHP_EOL.$indent, $formatted); } - $this->output->writeln($formatted); + if ($this->output instanceof ShellOutput) { + $this->output->page($formatted.\PHP_EOL); + } else { + $this->output->writeln($formatted); + } } /** - * Renders a caught Exception. + * Renders a caught Exception or Error. * * Exceptions are formatted according to severity. ErrorExceptions which were * warnings or Strict errors aren't rendered as harshly as real errors. * * Stores $e as the last Exception in the Shell Context. * - * @param \Exception $e An exception instance + * @param \Throwable $e An exception or error instance */ - public function writeException(\Exception $e) + public function writeException(\Throwable $e) { // No need to write the break exception during a non-interactive run. if ($e instanceof BreakException && $this->nonInteractive) { @@ -1139,8 +1163,17 @@ public function writeException(\Exception $e) if ($output instanceof ConsoleOutput) { $output = $output->getErrorOutput(); } + + if (!$this->config->theme()->compact()) { + $output->writeln(''); + } + $output->writeln($this->formatException($e)); + if (!$this->config->theme()->compact()) { + $output->writeln(''); + } + // Include an exception trace (as long as this isn't a BreakException). if (!$e instanceof BreakException && $output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) { $trace = TraceFormatter::formatTrace($e); @@ -1158,32 +1191,34 @@ public function writeException(\Exception $e) * Check whether the last exec was successful. * * Returns true if a return value was logged rather than an exception. - * - * @return bool */ - public function getLastExecSuccess() + public function getLastExecSuccess(): bool { return $this->lastExecSuccess; } /** - * Helper for formatting an exception for writeException(). + * Helper for formatting an exception or error for writeException(). * * @todo extract this to somewhere it makes more sense * - * @param \Exception $e - * - * @return string + * @param \Throwable $e */ - public function formatException(\Exception $e) + public function formatException(\Throwable $e): string { - $message = $e->getMessage(); - if (!$e instanceof PsyException) { - if ($message === '') { - $message = \get_class($e); - } else { - $message = \sprintf('%s with message \'%s\'', \get_class($e), $message); - } + $indent = $this->config->theme()->compact() ? '' : ' '; + + if ($e instanceof BreakException) { + return \sprintf('%s<info> INFO </info> %s.', $indent, \rtrim($e->getRawMessage(), '.')); + } elseif ($e instanceof PsyException) { + $message = $e->getLine() > 1 + ? \sprintf('%s in %s on line %d', $e->getRawMessage(), $e->getFile(), $e->getLine()) + : \sprintf('%s in %s', $e->getRawMessage(), $e->getFile()); + + $messageLabel = \strtoupper($this->getMessageLabel($e)); + } else { + $message = $e->getMessage(); + $messageLabel = $this->getMessageLabel($e); } $message = \preg_replace( @@ -1192,21 +1227,28 @@ public function formatException(\Exception $e) $message ); - $message = \str_replace(" in eval()'d code", ' in Psy Shell code', $message); + $message = \str_replace(" in eval()'d code", '', $message); + $message = \trim($message); + + // Ensures the given string ends with punctuation... + if (!empty($message) && !\in_array(\substr($message, -1), ['.', '?', '!', ':'])) { + $message = "$message."; + } + + // Ensures the given message only contains relative paths... + $message = \str_replace(\getcwd().\DIRECTORY_SEPARATOR, '', $message); $severity = ($e instanceof \ErrorException) ? $this->getSeverity($e) : 'error'; - return \sprintf('<%s>%s</%s>', $severity, OutputFormatter::escape($message), $severity); + return \sprintf('%s<%s> %s </%s> %s', $indent, $severity, $messageLabel, $severity, OutputFormatter::escape($message)); } /** * Helper for getting an output style for the given ErrorException's level. * * @param \ErrorException $e - * - * @return string */ - protected function getSeverity(\ErrorException $e) + protected function getSeverity(\ErrorException $e): string { $severity = $e->getSeverity(); if ($severity & \error_reporting()) { @@ -1217,6 +1259,8 @@ protected function getSeverity(\ErrorException $e) case \E_COMPILE_WARNING: case \E_USER_WARNING: case \E_USER_NOTICE: + case \E_USER_DEPRECATED: + case \E_DEPRECATED: case \E_STRICT: return 'warning'; @@ -1229,6 +1273,62 @@ protected function getSeverity(\ErrorException $e) } } + /** + * Helper for getting an output style for the given ErrorException's level. + * + * @param \Throwable $e + */ + protected function getMessageLabel(\Throwable $e): string + { + if ($e instanceof \ErrorException) { + $severity = $e->getSeverity(); + + if ($severity & \error_reporting()) { + switch ($severity) { + case \E_WARNING: + return 'Warning'; + case \E_NOTICE: + return 'Notice'; + case \E_CORE_WARNING: + return 'Core Warning'; + case \E_COMPILE_WARNING: + return 'Compile Warning'; + case \E_USER_WARNING: + return 'User Warning'; + case \E_USER_NOTICE: + return 'User Notice'; + case \E_USER_DEPRECATED: + return 'User Deprecated'; + case \E_DEPRECATED: + return 'Deprecated'; + case \E_STRICT: + return 'Strict'; + } + } + } + + if ($e instanceof PsyException || $e instanceof SymfonyConsoleException) { + $exceptionShortName = (new \ReflectionClass($e))->getShortName(); + $typeParts = \preg_split('/(?=[A-Z])/', $exceptionShortName); + + switch ($exceptionShortName) { + case 'RuntimeException': + case 'LogicException': + // These ones look weird without 'Exception' + break; + default: + if (\end($typeParts) === 'Exception') { + \array_pop($typeParts); + } + break; + } + + return \trim(\strtoupper(\implode(' ', $typeParts))); + } + + return \get_class($e); + } + /** * Execute code in the shell execution context. * @@ -1237,7 +1337,7 @@ protected function getSeverity(\ErrorException $e) * * @return mixed */ - public function execute($code, $throwExceptions = false) + public function execute(string $code, bool $throwExceptions = false) { $this->setCode($code, true); $closure = new ExecutionClosure($this); @@ -1248,11 +1348,7 @@ public function execute($code, $throwExceptions = false) try { return $closure->execute(); - } catch (\TypeError $_e) { - $this->writeException(TypeErrorException::fromTypeError($_e)); - } catch (\Error $_e) { - $this->writeException(ErrorException::fromError($_e)); - } catch (\Exception $_e) { + } catch (\Throwable $_e) { $this->writeException($_e); } } @@ -1292,8 +1388,12 @@ public function handleError($errno, $errstr, $errfile, $errline) ErrorException::throwException($errno, $errstr, $errfile, $errline); } + // When errors are suppressed, the error_reporting value will differ + // from when we started executing. In that case, we won't log errors. + $errorsSuppressed = $this->errorReporting !== null && $this->errorReporting !== \error_reporting(); + // Otherwise log it and continue. - if ($errno & \error_reporting() || $errno & $this->config->errorLoggingLevel()) { + if ($errno & \error_reporting() || (!$errorsSuppressed && ($errno & $this->config->errorLoggingLevel()))) { $this->writeException(new ErrorException($errstr, 0, $errno, $errfile, $errline)); } } @@ -1307,7 +1407,7 @@ public function handleError($errno, $errstr, $errfile, $errline) * * @return string Formatted value */ - protected function presentValue($val) + protected function presentValue($val): string { return $this->config->getPresenter()->present($val); } @@ -1319,7 +1419,7 @@ protected function presentValue($val) * * @return BaseCommand|null */ - protected function getCommand($input) + protected function getCommand(string $input) { $input = new StringInput($input); if ($name = $input->getFirstArgument()) { @@ -1334,7 +1434,7 @@ protected function getCommand($input) * * @return bool True if the shell has a command for the given input */ - protected function hasCommand($input) + protected function hasCommand(string $input): bool { if (\preg_match('/([^\s]+?)(?:\s|$)/A', \ltrim($input), $match)) { return $this->has($match[1]); @@ -1346,7 +1446,7 @@ protected function hasCommand($input) /** * Get the current input prompt. * - * @return string | null + * @return string|null */ protected function getPrompt() { @@ -1354,11 +1454,13 @@ protected function getPrompt() return null; } + $theme = $this->config->theme(); + if ($this->hasCode()) { - return static::BUFF_PROMPT; + return $theme->bufferPrompt(); } - return $this->config->getPrompt() ?: static::PROMPT; + return $theme->prompt(); } /** @@ -1372,14 +1474,16 @@ protected function getPrompt() * * @param bool $interactive * - * @return string One line of user input + * @return string|false One line of user input */ - protected function readline($interactive = true) + protected function readline(bool $interactive = true) { + $prompt = $this->config->theme()->replayPrompt(); + if (!empty($this->inputBuffer)) { $line = \array_shift($this->inputBuffer); if (!$line instanceof SilentInput) { - $this->output->writeln(\sprintf('<aside>%s %s</aside>', static::REPLAY, OutputFormatter::escape($line))); + $this->output->writeln(\sprintf('<whisper>%s</whisper><aside>%s</aside>', $prompt, OutputFormatter::escape($line))); } return $line; @@ -1402,23 +1506,21 @@ protected function readline($interactive = true) /** * Get the shell output header. - * - * @return string */ - protected function getHeader() + protected function getHeader(): string { - return \sprintf('<aside>%s by Justin Hileman</aside>', $this->getVersion()); + return \sprintf('<whisper>%s by Justin Hileman</whisper>', self::getVersionHeader($this->config->useUnicode())); } /** * Get the current version of Psy Shell. * * @deprecated call self::getVersionHeader instead - * - * @return string */ - public function getVersion() + public function getVersion(): string { + @\trigger_error('`getVersion` is deprecated; call `self::getVersionHeader` instead.', \E_USER_DEPRECATED); + return self::getVersionHeader($this->config->useUnicode()); } @@ -1426,10 +1528,8 @@ public function getVersion() * Get a pretty header including the current version of Psy Shell. * * @param bool $useUnicode - * - * @return string */ - public static function getVersionHeader($useUnicode = false) + public static function getVersionHeader(bool $useUnicode = false): string { $separator = $useUnicode ? '—' : '-'; @@ -1446,14 +1546,6 @@ public function getManualDb() return $this->config->getManualDb(); } - /** - * @deprecated Tab completion is provided by the AutoCompleter service - */ - protected function autocomplete($text) - { - @\trigger_error('Tab completion is provided by the AutoCompleter service', \E_USER_DEPRECATED); - } - /** * Initialize tab completion matchers. * @@ -1492,7 +1584,6 @@ private function addMatchersToAutoCompleter(array $matchers) } /** - * @todo Implement self-update * @todo Implement prompt to start update * * @return void|string @@ -1506,7 +1597,7 @@ protected function writeVersionInfo() try { $client = $this->config->getChecker(); if (!$client->isLatest()) { - $this->output->writeln(\sprintf('New version is available (current: %s, latest: %s)', self::VERSION, $client->getLatest())); + $this->output->writeln(\sprintf('<whisper>New version is available at psysh.org/psysh (current: %s, latest: %s)</whisper>', self::VERSION, $client->getLatest())); } } catch (\InvalidArgumentException $e) { $this->output->writeln($e->getMessage()); diff --git a/api/vendor/psy/psysh/src/Sudo.php b/api/vendor/psy/psysh/src/Sudo.php index 8c9e5a150..54016f933 100644 --- a/api/vendor/psy/psysh/src/Sudo.php +++ b/api/vendor/psy/psysh/src/Sudo.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -25,9 +25,9 @@ class Sudo * * @return mixed Value of $object->property */ - public static function fetchProperty($object, $property) + public static function fetchProperty($object, string $property) { - $prop = static::getProperty(new \ReflectionObject($object), $property); + $prop = self::getProperty(new \ReflectionObject($object), $property); return $prop->getValue($object); } @@ -41,9 +41,9 @@ public static function fetchProperty($object, $property) * * @return mixed Value of $object->property */ - public static function assignProperty($object, $property, $value) + public static function assignProperty($object, string $property, $value) { - $prop = static::getProperty(new \ReflectionObject($object), $property); + $prop = self::getProperty(new \ReflectionObject($object), $property); $prop->setValue($object, $value); return $value; @@ -58,12 +58,8 @@ public static function assignProperty($object, $property, $value) * * @return mixed */ - public static function callMethod($object, $method, $args = null) + public static function callMethod($object, string $method, ...$args) { - $args = \func_get_args(); - $object = \array_shift($args); - $method = \array_shift($args); - $refl = new \ReflectionObject($object); $reflMethod = $refl->getMethod($method); $reflMethod->setAccessible(true); @@ -79,9 +75,9 @@ public static function callMethod($object, $method, $args = null) * * @return mixed Value of $class::$property */ - public static function fetchStaticProperty($class, $property) + public static function fetchStaticProperty($class, string $property) { - $prop = static::getProperty(new \ReflectionClass($class), $property); + $prop = self::getProperty(new \ReflectionClass($class), $property); $prop->setAccessible(true); return $prop->getValue(); @@ -96,10 +92,16 @@ public static function fetchStaticProperty($class, $property) * * @return mixed Value of $class::$property */ - public static function assignStaticProperty($class, $property, $value) + public static function assignStaticProperty($class, string $property, $value) { - $prop = static::getProperty(new \ReflectionClass($class), $property); - $prop->setValue($value); + $prop = self::getProperty(new \ReflectionClass($class), $property); + $refl = $prop->getDeclaringClass(); + + if (\method_exists($refl, 'setStaticPropertyValue')) { + $refl->setStaticPropertyValue($property, $value); + } else { + $prop->setValue($value); + } return $value; } @@ -113,12 +115,8 @@ public static function assignStaticProperty($class, $property, $value) * * @return mixed */ - public static function callStatic($class, $method, $args = null) + public static function callStatic($class, string $method, ...$args) { - $args = \func_get_args(); - $class = \array_shift($args); - $method = \array_shift($args); - $refl = new \ReflectionClass($class); $reflMethod = $refl->getMethod($method); $reflMethod->setAccessible(true); @@ -134,10 +132,15 @@ public static function callStatic($class, $method, $args = null) * * @return mixed */ - public static function fetchClassConst($class, $const) + public static function fetchClassConst($class, string $const) { $refl = new \ReflectionClass($class); + // Special case the ::class magic constant, because `getConstant` does the wrong thing here. + if ($const === 'class') { + return $refl->getName(); + } + do { if ($refl->hasConstant($const)) { return $refl->getConstant($const); @@ -149,6 +152,24 @@ public static function fetchClassConst($class, $const) return false; } + /** + * Construct an instance of a class, bypassing private constructors. + * + * @param string $class class name + * @param mixed $args... + */ + public static function newInstance(string $class, ...$args) + { + $refl = new \ReflectionClass($class); + $instance = $refl->newInstanceWithoutConstructor(); + + $constructor = $refl->getConstructor(); + $constructor->setAccessible(true); + $constructor->invokeArgs($instance, $args); + + return $instance; + } + /** * Get a ReflectionProperty from an object (or its parent classes). * @@ -159,7 +180,7 @@ public static function fetchClassConst($class, $const) * * @return \ReflectionProperty */ - private static function getProperty(\ReflectionClass $refl, $property) + private static function getProperty(\ReflectionClass $refl, string $property): \ReflectionProperty { $firstException = null; do { diff --git a/api/vendor/psy/psysh/src/Sudo/SudoVisitor.php b/api/vendor/psy/psysh/src/Sudo/SudoVisitor.php index 7fbe2012c..151dc527c 100644 --- a/api/vendor/psy/psysh/src/Sudo/SudoVisitor.php +++ b/api/vendor/psy/psysh/src/Sudo/SudoVisitor.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -16,6 +16,7 @@ use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\New_; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\StaticPropertyFetch; @@ -41,9 +42,12 @@ class SudoVisitor extends NodeVisitorAbstract const STATIC_PROPERTY_ASSIGN = 'assignStaticProperty'; const STATIC_CALL = 'callStatic'; const CLASS_CONST_FETCH = 'fetchClassConst'; + const NEW_INSTANCE = 'newInstance'; /** * {@inheritdoc} + * + * @return int|Node|null Replacement node (or special return value) */ public function enterNode(Node $node) { @@ -111,10 +115,17 @@ public function enterNode(Node $node) ]; return $this->prepareCall(self::CLASS_CONST_FETCH, $args); + } elseif ($node instanceof New_) { + $args = $node->args; + $class = $node->class instanceof Name ? $node->class->toString() : $node->class; + \array_unshift($args, new Arg(\is_string($class) ? new String_($class) : $class)); + + // not using prepareCall because the $node->args we started with are already Arg instances + return new StaticCall(new FullyQualifiedName(Sudo::class), self::NEW_INSTANCE, $args); } } - private function prepareCall($method, $args) + private function prepareCall(string $method, array $args): StaticCall { return new StaticCall(new FullyQualifiedName(Sudo::class), $method, \array_map(function ($arg) { return new Arg($arg); diff --git a/api/vendor/psy/psysh/src/SuperglobalsEnv.php b/api/vendor/psy/psysh/src/SuperglobalsEnv.php index 7f522f936..d3369c6ab 100644 --- a/api/vendor/psy/psysh/src/SuperglobalsEnv.php +++ b/api/vendor/psy/psysh/src/SuperglobalsEnv.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,7 +21,7 @@ class SuperglobalsEnv implements EnvInterface * * @return string|null */ - public function get($key) + public function get(string $key) { if (isset($_SERVER[$key]) && $_SERVER[$key]) { return $_SERVER[$key]; diff --git a/api/vendor/psy/psysh/src/SystemEnv.php b/api/vendor/psy/psysh/src/SystemEnv.php new file mode 100644 index 000000000..fe2a8edcf --- /dev/null +++ b/api/vendor/psy/psysh/src/SystemEnv.php @@ -0,0 +1,34 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy; + +/** + * Environment variables implementation via getenv(). + */ +class SystemEnv implements EnvInterface +{ + /** + * Get an environment variable by name. + * + * @return string|null + */ + public function get(string $key) + { + if (isset($_SERVER[$key]) && $_SERVER[$key]) { + return $_SERVER[$key]; + } + + $result = \getenv($key); + + return $result === false ? null : $result; + } +} diff --git a/api/vendor/psy/psysh/src/TabCompletion/AutoCompleter.php b/api/vendor/psy/psysh/src/TabCompletion/AutoCompleter.php index 13fcd39ac..400b797ab 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/AutoCompleter.php +++ b/api/vendor/psy/psysh/src/TabCompletion/AutoCompleter.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -50,7 +50,7 @@ public function activate() * * @return array */ - public function processCallback($input, $index, $info = []) + public function processCallback(string $input, int $index, array $info = []): array { // Some (Windows?) systems provide incomplete `readline_info`, so let's // try to work around it. @@ -68,6 +68,8 @@ public function processCallback($input, $index, $info = []) $tokens = \array_filter($tokens, function ($token) { return !AbstractMatcher::tokenIs($token, AbstractMatcher::T_WHITESPACE); }); + // reset index from 0 to remove missing index number + $tokens = \array_values($tokens); $matches = []; foreach ($this->matchers as $matcher) { @@ -91,7 +93,7 @@ public function processCallback($input, $index, $info = []) * * @return array */ - public function callback($input, $index) + public function callback(string $input, int $index): array { return $this->processCallback($input, $index, \readline_info()); } diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php index f7da443b9..bc39e6047 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -48,7 +48,7 @@ public function setContext(Context $context) * * @return mixed */ - protected function getVariable($var) + protected function getVariable(string $var) { return $this->context->get($var); } @@ -58,7 +58,7 @@ protected function getVariable($var) * * @return array */ - protected function getVariables() + protected function getVariables(): array { return $this->context->getAll(); } diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php index c80b0068a..0887333a3 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -18,7 +18,7 @@ abstract class AbstractDefaultParametersMatcher extends AbstractContextAwareMatc * * @return array */ - public function getDefaultParameterCompletion(array $reflectionParameters) + public function getDefaultParameterCompletion(array $reflectionParameters): array { $parametersProcessed = []; @@ -29,7 +29,7 @@ public function getDefaultParameterCompletion(array $reflectionParameters) $defaultValue = $this->valueToShortString($parameter->getDefaultValue()); - $parametersProcessed[] = "\${$parameter->getName()} = $defaultValue"; + $parametersProcessed[] = \sprintf('$%s = %s', $parameter->getName(), $defaultValue); } if (empty($parametersProcessed)) { @@ -45,10 +45,8 @@ public function getDefaultParameterCompletion(array $reflectionParameters) * This is not 100% true to the original (newlines are inlined, for example). * * @param mixed $value - * - * @return string */ - private function valueToShortString($value) + private function valueToShortString($value): string { if (!\is_array($value)) { return \json_encode($value); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php index bdb25deed..209cae2f6 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -48,9 +48,9 @@ abstract class AbstractMatcher * * @param array $tokens Tokenized readline input * - * @return bool + * @return false */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { return false; } @@ -59,10 +59,8 @@ public function hasMatched(array $tokens) * Get current readline input word. * * @param array $tokens Tokenized readline input (see token_get_all) - * - * @return string */ - protected function getInput(array $tokens) + protected function getInput(array $tokens): string { $var = ''; $firstToken = \array_pop($tokens); @@ -77,10 +75,8 @@ protected function getInput(array $tokens) * Get current namespace and class (if any) from readline input. * * @param array $tokens Tokenized readline input (see token_get_all) - * - * @return string */ - protected function getNamespaceAndClass($tokens) + protected function getNamespaceAndClass(array $tokens): string { $class = ''; while (self::hasToken( @@ -105,17 +101,15 @@ protected function getNamespaceAndClass($tokens) * * @return array The matches resulting from the query */ - abstract public function getMatches(array $tokens, array $info = []); + abstract public function getMatches(array $tokens, array $info = []): array; /** * Check whether $word starts with $prefix. * * @param string $prefix * @param string $word - * - * @return bool */ - public static function startsWith($prefix, $word) + public static function startsWith(string $prefix, string $word): bool { return \preg_match(\sprintf('#^%s#', $prefix), $word); } @@ -125,10 +119,8 @@ public static function startsWith($prefix, $word) * * @param mixed $token A PHP token (see token_get_all) * @param string $syntax A syntax pattern (default: variable pattern) - * - * @return bool */ - public static function hasSyntax($token, $syntax = self::VAR_SYNTAX) + public static function hasSyntax($token, string $syntax = self::VAR_SYNTAX): bool { if (!\is_array($token)) { return false; @@ -144,10 +136,8 @@ public static function hasSyntax($token, $syntax = self::VAR_SYNTAX) * * @param mixed $token A PHP token (see token_get_all) * @param string $which A PHP token type - * - * @return bool */ - public static function tokenIs($token, $which) + public static function tokenIs($token, string $which): bool { if (!\is_array($token)) { return false; @@ -160,10 +150,8 @@ public static function tokenIs($token, $which) * Check whether $token is an operator. * * @param mixed $token A PHP token (see token_get_all) - * - * @return bool */ - public static function isOperator($token) + public static function isOperator($token): bool { if (!\is_string($token)) { return false; @@ -172,7 +160,7 @@ public static function isOperator($token) return \strpos(self::MISC_OPERATORS, $token) !== false; } - public static function needCompleteClass($token) + public static function needCompleteClass($token): bool { return \in_array($token[1], ['doc', 'ls', 'show']); } @@ -182,10 +170,8 @@ public static function needCompleteClass($token) * * @param array $coll A list of token types * @param mixed $token A PHP token (see token_get_all) - * - * @return bool */ - public static function hasToken(array $coll, $token) + public static function hasToken(array $coll, $token): bool { if (!\is_array($token)) { return false; diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php index 5ecd4cf8b..0503d71db 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -24,7 +24,7 @@ class ClassAttributesMatcher extends AbstractMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -71,7 +71,7 @@ function ($var) use ($input) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php index d88cb69b6..118740ef2 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,7 +13,7 @@ class ClassMethodDefaultParametersMatcher extends AbstractDefaultParametersMatcher { - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $openBracket = \array_pop($tokens); $functionName = \array_pop($tokens); @@ -39,7 +39,7 @@ public function getMatches(array $tokens, array $info = []) return []; } - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $openBracket = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php index d980766dd..a526e1ec3 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -24,7 +24,7 @@ class ClassMethodsMatcher extends AbstractMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -68,7 +68,7 @@ function ($name) use ($class) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php index 7b17830dd..32a34640e 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,10 +23,10 @@ class ClassNamesMatcher extends AbstractMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $class = $this->getNamespaceAndClass($tokens); - if (\strlen($class) > 0 && $class[0] === '\\') { + if ($class !== '' && $class[0] === '\\') { $class = \substr($class, 1, \strlen($class)); } $quotedClass = \preg_quote($class); @@ -36,7 +36,8 @@ function ($className) use ($class) { // get the number of namespace separators $nsPos = \substr_count($class, '\\'); $pieces = \explode('\\', $className); - //$methods = Mirror::get($class); + + // $methods = Mirror::get($class); return \implode('\\', \array_slice($pieces, $nsPos, \count($pieces))); }, \array_filter( @@ -51,18 +52,18 @@ function ($className) use ($quotedClass) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); - $blacklistedTokens = [ + $ignoredTokens = [ self::T_INCLUDE, self::T_INCLUDE_ONCE, self::T_REQUIRE, self::T_REQUIRE_ONCE, ]; switch (true) { - case self::hasToken([$blacklistedTokens], $token): - case self::hasToken([$blacklistedTokens], $prevToken): + case self::hasToken([$ignoredTokens], $token): + case self::hasToken([$ignoredTokens], $prevToken): case \is_string($token) && $token === '$': return false; case self::hasToken([self::T_NEW, self::T_OPEN_TAG, self::T_NS_SEPARATOR, self::T_STRING], $prevToken): diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php index bdeb45d4c..952329a5b 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -55,10 +55,8 @@ public function setCommands(array $commands) * Check whether a command $name is defined. * * @param string $name - * - * @return bool */ - protected function isCommand($name) + protected function isCommand(string $name): bool { return \in_array($name, $this->commands); } @@ -67,10 +65,8 @@ protected function isCommand($name) * Check whether input matches a defined command. * * @param string $name - * - * @return bool */ - protected function matchCommand($name) + protected function matchCommand(string $name): bool { foreach ($this->commands as $cmd) { if ($this->startsWith($name, $cmd)) { @@ -84,7 +80,7 @@ protected function matchCommand($name) /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -96,16 +92,16 @@ public function getMatches(array $tokens, array $info = []) /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { /* $openTag */ \array_shift($tokens); $command = \array_shift($tokens); switch (true) { case self::tokenIs($command, self::T_STRING) && - !$this->isCommand($command[1]) && - $this->matchCommand($command[1]) && - empty($tokens): + !$this->isCommand($command[1]) && + $this->matchCommand($command[1]) && + empty($tokens): return true; } diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php index 178adf8c2..cad81a53e 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,7 +23,7 @@ class ConstantsMatcher extends AbstractMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $const = $this->getInput($tokens); @@ -35,7 +35,7 @@ public function getMatches(array $tokens, array $info = []) /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php index e1277c2ee..2bbf12627 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,7 +13,7 @@ class FunctionDefaultParametersMatcher extends AbstractDefaultParametersMatcher { - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { \array_pop($tokens); // open bracket @@ -30,7 +30,7 @@ public function getMatches(array $tokens, array $info = []) return $this->getDefaultParameterCompletion($parameters); } - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $openBracket = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php index 1f6e6dbb5..964565997 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,7 +23,7 @@ class FunctionsMatcher extends AbstractMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $func = $this->getInput($tokens); @@ -38,7 +38,7 @@ public function getMatches(array $tokens, array $info = []) /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php index 393674c62..9f2bdef7d 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -32,9 +32,9 @@ class KeywordsMatcher extends AbstractMatcher /** * Get all (completable) PHP keywords. * - * @return array + * @return string[] */ - public function getKeywords() + public function getKeywords(): array { return $this->keywords; } @@ -43,10 +43,8 @@ public function getKeywords() * Check whether $keyword is a (completable) PHP keyword. * * @param string $keyword - * - * @return bool */ - public function isKeyword($keyword) + public function isKeyword(string $keyword): bool { return \in_array($keyword, $this->keywords); } @@ -54,7 +52,7 @@ public function isKeyword($keyword) /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -66,7 +64,7 @@ public function getMatches(array $tokens, array $info = []) /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); @@ -75,7 +73,7 @@ public function hasMatched(array $tokens) case self::hasToken([self::T_OPEN_TAG, self::T_VARIABLE], $token): // case is_string($token) && $token === '$': case self::hasToken([self::T_OPEN_TAG, self::T_VARIABLE], $prevToken) && - self::tokenIs($token, self::T_STRING): + self::tokenIs($token, self::T_STRING): case self::isOperator($token): return true; } diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php index f38836d02..3c70ee095 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,7 +23,7 @@ class MongoClientMatcher extends AbstractContextAwareMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -55,7 +55,7 @@ function ($var) use ($input) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php index a0d4d49c7..7cea95f49 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,7 +23,7 @@ class MongoDatabaseMatcher extends AbstractContextAwareMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -51,7 +51,7 @@ function ($var) use ($input) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php index 8b3d29057..e0e96679e 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -26,7 +26,7 @@ class ObjectAttributesMatcher extends AbstractContextAwareMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -62,7 +62,7 @@ function ($var) use ($input) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php index 08bab8bc9..73221fd37 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,7 +13,7 @@ class ObjectMethodDefaultParametersMatcher extends AbstractDefaultParametersMatcher { - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $openBracket = \array_pop($tokens); $functionName = \array_pop($tokens); @@ -46,7 +46,7 @@ public function getMatches(array $tokens, array $info = []) return []; } - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $openBracket = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php index 2a1d22407..4f10b0796 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -26,7 +26,7 @@ class ObjectMethodsMatcher extends AbstractContextAwareMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $input = $this->getInput($tokens); @@ -64,7 +64,7 @@ function ($var) use ($input) { /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); $prevToken = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php b/api/vendor/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php index f2438d3d1..6a5167f7c 100644 --- a/api/vendor/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php +++ b/api/vendor/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,7 +23,7 @@ class VariablesMatcher extends AbstractContextAwareMatcher /** * {@inheritdoc} */ - public function getMatches(array $tokens, array $info = []) + public function getMatches(array $tokens, array $info = []): array { $var = \str_replace('$', '', $this->getInput($tokens)); @@ -35,7 +35,7 @@ public function getMatches(array $tokens, array $info = []) /** * {@inheritdoc} */ - public function hasMatched(array $tokens) + public function hasMatched(array $tokens): bool { $token = \array_pop($tokens); diff --git a/api/vendor/psy/psysh/src/Util/Docblock.php b/api/vendor/psy/psysh/src/Util/Docblock.php index 132d15d5f..1b98f2796 100644 --- a/api/vendor/psy/psysh/src/Util/Docblock.php +++ b/api/vendor/psy/psysh/src/Util/Docblock.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -74,7 +74,10 @@ class Docblock public function __construct(\Reflector $reflector) { $this->reflector = $reflector; - $this->setComment($reflector->getDocComment()); + + if ($reflector instanceof \ReflectionClass || $reflector instanceof \ReflectionClassConstant || $reflector instanceof \ReflectionFunctionAbstract || $reflector instanceof \ReflectionProperty) { + $this->setComment($reflector->getDocComment()); + } } /** @@ -82,7 +85,7 @@ public function __construct(\Reflector $reflector) * * @param string $comment The docblock */ - protected function setComment($comment) + protected function setComment(string $comment) { $this->desc = ''; $this->tags = []; @@ -98,7 +101,7 @@ protected function setComment($comment) * * @return int Prefix length */ - protected static function prefixLength(array $lines) + protected static function prefixLength(array $lines): int { // find only lines with interesting things $lines = \array_filter($lines, function ($line) { @@ -132,7 +135,7 @@ protected static function prefixLength(array $lines) * * @param string $comment The docblock */ - protected function parseComment($comment) + protected function parseComment(string $comment) { // Strip the opening and closing tags of the docblock $comment = \substr($comment, 3, -2); @@ -198,10 +201,8 @@ protected function parseComment($comment) * Whether or not a docblock contains a given @tag. * * @param string $tag The name of the @tag to check for - * - * @return bool */ - public function hasTag($tag) + public function hasTag(string $tag): bool { return \is_array($this->tags) && \array_key_exists($tag, $this->tags); } @@ -211,9 +212,9 @@ public function hasTag($tag) * * @param string $tag * - * @return array + * @return array|null */ - public function tag($tag) + public function tag(string $tag): ?array { return $this->hasTag($tag) ? $this->tags[$tag] : null; } @@ -222,10 +223,8 @@ public function tag($tag) * Whether or not a string begins with a @tag. * * @param string $str - * - * @return bool */ - public static function isTagged($str) + public static function isTagged(string $str): bool { return isset($str[1]) && $str[0] === '@' && !\preg_match('/[^A-Za-z]/', $str[1]); } @@ -237,7 +236,7 @@ public static function isTagged($str) * * @return string|null */ - public static function strTag($str) + public static function strTag(string $str) { if (\preg_match('/^@[a-z0-9_]+/', $str, $matches)) { return $matches[0]; diff --git a/api/vendor/psy/psysh/src/Util/Json.php b/api/vendor/psy/psysh/src/Util/Json.php index d3884c27c..a7eebca95 100644 --- a/api/vendor/psy/psysh/src/Util/Json.php +++ b/api/vendor/psy/psysh/src/Util/Json.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -21,10 +21,8 @@ class Json * * @param mixed $val * @param int $opt - * - * @return string */ - public static function encode($val, $opt = 0) + public static function encode($val, int $opt = 0): string { $opt |= \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE; diff --git a/api/vendor/psy/psysh/src/Util/Mirror.php b/api/vendor/psy/psysh/src/Util/Mirror.php index 268a28d61..9dd0c1b06 100644 --- a/api/vendor/psy/psysh/src/Util/Mirror.php +++ b/api/vendor/psy/psysh/src/Util/Mirror.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,8 +12,7 @@ namespace Psy\Util; use Psy\Exception\RuntimeException; -use Psy\Reflection\ReflectionClassConstant; -use Psy\Reflection\ReflectionConstant_; +use Psy\Reflection\ReflectionConstant; use Psy\Reflection\ReflectionNamespace; /** @@ -43,13 +42,13 @@ class Mirror * * @return \Reflector */ - public static function get($value, $member = null, $filter = 15) + public static function get($value, ?string $member = null, int $filter = 15): \Reflector { if ($member === null && \is_string($value)) { if (\function_exists($value)) { return new \ReflectionFunction($value); - } elseif (\defined($value) || ReflectionConstant_::isMagicConstant($value)) { - return new ReflectionConstant_($value); + } elseif (\defined($value) || ReflectionConstant::isMagicConstant($value)) { + return new ReflectionConstant($value); } } @@ -58,7 +57,7 @@ public static function get($value, $member = null, $filter = 15) if ($member === null) { return $class; } elseif ($filter & self::CONSTANT && $class->hasConstant($member)) { - return ReflectionClassConstant::create($value, $member); + return new \ReflectionClassConstant($value, $member); } elseif ($filter & self::METHOD && $class->hasMethod($member)) { return $class->getMethod($member); } elseif ($filter & self::PROPERTY && $class->hasProperty($member)) { @@ -104,7 +103,7 @@ private static function getClass($value) /** * Check declared namespaces for a given namespace. */ - private static function namespaceExists($value) + private static function namespaceExists(string $value): bool { return \in_array(\strtolower($value), self::getDeclaredNamespaces()); } @@ -115,7 +114,7 @@ private static function namespaceExists($value) * Note that this relies on at least one function, class, interface, trait * or constant to have been declared in that namespace. */ - private static function getDeclaredNamespaces() + private static function getDeclaredNamespaces(): array { $functions = \get_defined_functions(); diff --git a/api/vendor/psy/psysh/src/Util/Str.php b/api/vendor/psy/psysh/src/Util/Str.php index 8fc0abc1a..dd126d1b4 100644 --- a/api/vendor/psy/psysh/src/Util/Str.php +++ b/api/vendor/psy/psysh/src/Util/Str.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -56,12 +56,11 @@ class Str * except for the \s sequence (ASCII space). * * @param string $input The string to decode - * - * @return string */ - public static function unvis($input) + public static function unvis(string $input): string { - $output = \preg_replace_callback(self::UNVIS_RX, 'self::unvisReplace', $input); + $output = \preg_replace_callback(self::UNVIS_RX, [self::class, 'unvisReplace'], $input); + // other escapes & octal are handled by stripcslashes return \stripcslashes($output); } @@ -70,10 +69,8 @@ public static function unvis($input) * Callback for Str::unvis. * * @param array $match The matches passed by preg_replace_callback - * - * @return string */ - protected static function unvisReplace($match) + protected static function unvisReplace(array $match): string { // \040, \s if (!empty($match[1])) { diff --git a/api/vendor/psy/psysh/src/VarDumper/Cloner.php b/api/vendor/psy/psysh/src/VarDumper/Cloner.php index bbb658f82..e0aaab972 100644 --- a/api/vendor/psy/psysh/src/VarDumper/Cloner.php +++ b/api/vendor/psy/psysh/src/VarDumper/Cloner.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -12,6 +12,7 @@ namespace Psy\VarDumper; use Symfony\Component\VarDumper\Caster\Caster; +use Symfony\Component\VarDumper\Cloner\Data; use Symfony\Component\VarDumper\Cloner\Stub; use Symfony\Component\VarDumper\Cloner\VarCloner; @@ -25,7 +26,7 @@ class Cloner extends VarCloner /** * {@inheritdoc} */ - public function cloneVar($var, $filter = 0) + public function cloneVar($var, $filter = 0): Data { $this->filter = $filter; @@ -35,7 +36,7 @@ public function cloneVar($var, $filter = 0) /** * {@inheritdoc} */ - protected function castResource(Stub $stub, $isNested) + protected function castResource(Stub $stub, $isNested): array { return Caster::EXCLUDE_VERBOSE & $this->filter ? [] : parent::castResource($stub, $isNested); } diff --git a/api/vendor/psy/psysh/src/VarDumper/Dumper.php b/api/vendor/psy/psysh/src/VarDumper/Dumper.php index 9ee3ef862..def61d4a1 100644 --- a/api/vendor/psy/psysh/src/VarDumper/Dumper.php +++ b/api/vendor/psy/psysh/src/VarDumper/Dumper.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -23,9 +23,9 @@ class Dumper extends CliDumper private $formatter; private $forceArrayIndexes; - protected static $onlyControlCharsRx = '/^[\x00-\x1F\x7F]+$/'; - protected static $controlCharsRx = '/([\x00-\x1F\x7F]+)/'; - protected static $controlCharsMap = [ + private const ONLY_CONTROL_CHARS = '/^[\x00-\x1F\x7F]+$/'; + private const CONTROL_CHARS = '/([\x00-\x1F\x7F]+)/'; + private const CONTROL_CHARS_MAP = [ "\0" => '\0', "\t" => '\t', "\n" => '\n', @@ -46,7 +46,7 @@ public function __construct(OutputFormatter $formatter, $forceArrayIndexes = fal /** * {@inheritdoc} */ - public function enterHash(Cursor $cursor, $type, $class, $hasChild) + public function enterHash(Cursor $cursor, $type, $class, $hasChild): void { if (Cursor::HASH_INDEXED === $type || Cursor::HASH_ASSOC === $type) { $class = 0; @@ -57,30 +57,29 @@ public function enterHash(Cursor $cursor, $type, $class, $hasChild) /** * {@inheritdoc} */ - protected function dumpKey(Cursor $cursor) + protected function dumpKey(Cursor $cursor): void { if ($this->forceArrayIndexes || Cursor::HASH_INDEXED !== $cursor->hashType) { parent::dumpKey($cursor); } } - protected function style($style, $value, $attr = []) + protected function style($style, $value, $attr = []): string { if ('ref' === $style) { $value = \strtr($value, '@', '#'); } $styled = ''; - $map = self::$controlCharsMap; $cchr = $this->styles['cchr']; - $chunks = \preg_split(self::$controlCharsRx, $value, -1, \PREG_SPLIT_NO_EMPTY | \PREG_SPLIT_DELIM_CAPTURE); + $chunks = \preg_split(self::CONTROL_CHARS, $value, -1, \PREG_SPLIT_NO_EMPTY | \PREG_SPLIT_DELIM_CAPTURE); foreach ($chunks as $chunk) { - if (\preg_match(self::$onlyControlCharsRx, $chunk)) { + if (\preg_match(self::ONLY_CONTROL_CHARS, $chunk)) { $chars = ''; $i = 0; do { - $chars .= isset($map[$chunk[$i]]) ? $map[$chunk[$i]] : \sprintf('\x%02X', \ord($chunk[$i])); + $chars .= isset(self::CONTROL_CHARS_MAP[$chunk[$i]]) ? self::CONTROL_CHARS_MAP[$chunk[$i]] : \sprintf('\x%02X', \ord($chunk[$i])); } while (isset($chunk[++$i])); $chars = $this->formatter->escape($chars); @@ -98,7 +97,7 @@ protected function style($style, $value, $attr = []) /** * {@inheritdoc} */ - protected function dumpLine($depth, $endOfValue = false) + protected function dumpLine($depth, $endOfValue = false): void { if ($endOfValue && 0 < $depth) { $this->line .= ','; diff --git a/api/vendor/psy/psysh/src/VarDumper/Presenter.php b/api/vendor/psy/psysh/src/VarDumper/Presenter.php index 24dd6033d..b63ca8d0d 100644 --- a/api/vendor/psy/psysh/src/VarDumper/Presenter.php +++ b/api/vendor/psy/psysh/src/VarDumper/Presenter.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -33,6 +33,8 @@ class Presenter ]; private $styles = [ 'num' => 'number', + 'integer' => 'integer', + 'float' => 'float', 'const' => 'const', 'str' => 'string', 'cchr' => 'default', @@ -61,7 +63,7 @@ public function __construct(OutputFormatter $formatter, $forceArrayIndexes = fal $this->cloner = new Cloner(); $this->cloner->addCasters(['*' => function ($obj, array $a, Stub $stub, $isNested, $filter = 0) { if ($filter || $isNested) { - if ($obj instanceof \Exception) { + if ($obj instanceof \Throwable) { $a = Caster::filter($a, Caster::EXCLUDE_NOT_IMPORTANT | Caster::EXCLUDE_EMPTY, $this->exceptionsImportants); } else { $a = Caster::filter($a, Caster::EXCLUDE_PROTECTED | Caster::EXCLUDE_PRIVATE); @@ -88,10 +90,8 @@ public function addCasters(array $casters) * Present a reference to the value. * * @param mixed $value - * - * @return string */ - public function presentRef($value) + public function presentRef($value): string { return $this->present($value, 0); } @@ -104,10 +104,8 @@ public function presentRef($value) * @param mixed $value * @param int $depth (default: null) * @param int $options One of Presenter constants - * - * @return string */ - public function present($value, $depth = null, $options = 0) + public function present($value, ?int $depth = null, int $options = 0): string { $data = $this->cloner->cloneVar($value, !($options & self::VERBOSE) ? Caster::EXCLUDE_VERBOSE : 0); diff --git a/api/vendor/psy/psysh/src/VarDumper/PresenterAware.php b/api/vendor/psy/psysh/src/VarDumper/PresenterAware.php index d0c02ae33..47590fb3a 100644 --- a/api/vendor/psy/psysh/src/VarDumper/PresenterAware.php +++ b/api/vendor/psy/psysh/src/VarDumper/PresenterAware.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. diff --git a/api/vendor/psy/psysh/src/VersionUpdater/Checker.php b/api/vendor/psy/psysh/src/VersionUpdater/Checker.php index 5278d0217..4de48013f 100644 --- a/api/vendor/psy/psysh/src/VersionUpdater/Checker.php +++ b/api/vendor/psy/psysh/src/VersionUpdater/Checker.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,13 +19,7 @@ interface Checker const MONTHLY = 'monthly'; const NEVER = 'never'; - /** - * @return bool - */ - public function isLatest(); + public function isLatest(): bool; - /** - * @return string - */ - public function getLatest(); + public function getLatest(): string; } diff --git a/api/vendor/psy/psysh/src/VersionUpdater/Downloader.php b/api/vendor/psy/psysh/src/VersionUpdater/Downloader.php new file mode 100644 index 000000000..233db318b --- /dev/null +++ b/api/vendor/psy/psysh/src/VersionUpdater/Downloader.php @@ -0,0 +1,43 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\VersionUpdater; + +use Psy\Exception\ErrorException; + +interface Downloader +{ + /** + * Set the directory where the download will be written to. + * + * @param string $tempDir + */ + public function setTempDir(string $tempDir); + + /** + * @param string $url + * + * @throws ErrorException on failure + */ + public function download(string $url): bool; + + /** + * Get the temporary file name the download was written to. + */ + public function getFilename(): string; + + /** + * Delete the downloaded file if it exists. + * + * @return void + */ + public function cleanup(); +} diff --git a/api/vendor/psy/psysh/src/VersionUpdater/Downloader/CurlDownloader.php b/api/vendor/psy/psysh/src/VersionUpdater/Downloader/CurlDownloader.php new file mode 100644 index 000000000..14ca1d875 --- /dev/null +++ b/api/vendor/psy/psysh/src/VersionUpdater/Downloader/CurlDownloader.php @@ -0,0 +1,84 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\VersionUpdater\Downloader; + +use Psy\Exception\ErrorException; +use Psy\Shell; +use Psy\VersionUpdater\Downloader; + +class CurlDownloader implements Downloader +{ + private $tempDir = null; + private $outputFile = null; + + /** {@inheritDoc} */ + public function setTempDir(string $tempDir) + { + $this->tempDir = $tempDir; + } + + /** {@inheritDoc} */ + public function download(string $url): bool + { + $tempDir = $this->tempDir ?: \sys_get_temp_dir(); + $this->outputFile = \tempnam($tempDir, 'psysh-archive-'); + $targetName = $this->outputFile.'.tar.gz'; + + if (!\rename($this->outputFile, $targetName)) { + return false; + } + + $this->outputFile = $targetName; + + $outputHandle = \fopen($this->outputFile, 'w'); + if (!$outputHandle) { + return false; + } + $curl = \curl_init(); + \curl_setopt_array($curl, [ + \CURLOPT_FAILONERROR => true, + \CURLOPT_HEADER => 0, + \CURLOPT_FOLLOWLOCATION => true, + \CURLOPT_TIMEOUT => 10, + \CURLOPT_FILE => $outputHandle, + \CURLOPT_HTTPHEADER => [ + 'User-Agent' => 'PsySH/'.Shell::VERSION, + ], + ]); + \curl_setopt($curl, \CURLOPT_URL, $url); + $result = \curl_exec($curl); + $error = \curl_error($curl); + \curl_close($curl); + + \fclose($outputHandle); + + if (!$result) { + throw new ErrorException('cURL Error: '.$error); + } + + return (bool) $result; + } + + /** {@inheritDoc} */ + public function getFilename(): string + { + return $this->outputFile; + } + + /** {@inheritDoc} */ + public function cleanup() + { + if (\file_exists($this->outputFile)) { + \unlink($this->outputFile); + } + } +} diff --git a/api/vendor/psy/psysh/src/VersionUpdater/Downloader/Factory.php b/api/vendor/psy/psysh/src/VersionUpdater/Downloader/Factory.php new file mode 100644 index 000000000..e1cfd8465 --- /dev/null +++ b/api/vendor/psy/psysh/src/VersionUpdater/Downloader/Factory.php @@ -0,0 +1,31 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\VersionUpdater\Downloader; + +use Psy\Exception\ErrorException; +use Psy\VersionUpdater\Downloader; + +class Factory +{ + /** + * @throws ErrorException If no downloaders can be used + */ + public static function getDownloader(): Downloader + { + if (\extension_loaded('curl')) { + return new CurlDownloader(); + } elseif (\ini_get('allow_url_fopen')) { + return new FileDownloader(); + } + throw new ErrorException('No downloader available.'); + } +} diff --git a/api/vendor/psy/psysh/src/VersionUpdater/Downloader/FileDownloader.php b/api/vendor/psy/psysh/src/VersionUpdater/Downloader/FileDownloader.php new file mode 100644 index 000000000..4bf381167 --- /dev/null +++ b/api/vendor/psy/psysh/src/VersionUpdater/Downloader/FileDownloader.php @@ -0,0 +1,56 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\VersionUpdater\Downloader; + +use Psy\VersionUpdater\Downloader; + +class FileDownloader implements Downloader +{ + private $tempDir = null; + private $outputFile = null; + + /** {@inheritDoc} */ + public function setTempDir(string $tempDir) + { + $this->tempDir = $tempDir; + } + + /** {@inheritDoc} */ + public function download(string $url): bool + { + $tempDir = $this->tempDir ?: \sys_get_temp_dir(); + $this->outputFile = \tempnam($tempDir, 'psysh-archive-'); + $targetName = $this->outputFile.'.tar.gz'; + + if (!\rename($this->outputFile, $targetName)) { + return false; + } + + $this->outputFile = $targetName; + + return (bool) \file_put_contents($this->outputFile, \file_get_contents($url)); + } + + /** {@inheritDoc} */ + public function getFilename(): string + { + return $this->outputFile; + } + + /** {@inheritDoc} */ + public function cleanup() + { + if (\file_exists($this->outputFile)) { + \unlink($this->outputFile); + } + } +} diff --git a/api/vendor/psy/psysh/src/VersionUpdater/GitHubChecker.php b/api/vendor/psy/psysh/src/VersionUpdater/GitHubChecker.php index 470cecad5..e1fc7cea7 100644 --- a/api/vendor/psy/psysh/src/VersionUpdater/GitHubChecker.php +++ b/api/vendor/psy/psysh/src/VersionUpdater/GitHubChecker.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -19,10 +19,7 @@ class GitHubChecker implements Checker private $latest; - /** - * @return bool - */ - public function isLatest() + public function isLatest(): bool { // version_compare doesn't handle semver completely; // strip pre-release and build metadata before comparing @@ -31,10 +28,7 @@ public function isLatest() return \version_compare($version, $this->getLatest(), '>='); } - /** - * @return string - */ - public function getLatest() + public function getLatest(): string { if (!isset($this->latest)) { $this->setLatest($this->getVersionFromTag()); @@ -46,7 +40,7 @@ public function getLatest() /** * @param string $version */ - public function setLatest($version) + public function setLatest(string $version) { $this->latest = $version; } @@ -75,7 +69,7 @@ public function fetchLatestRelease() $context = \stream_context_create([ 'http' => [ 'user_agent' => 'PsySH/'.Shell::VERSION, - 'timeout' => 3, + 'timeout' => 1.0, ], ]); diff --git a/api/vendor/psy/psysh/src/VersionUpdater/Installer.php b/api/vendor/psy/psysh/src/VersionUpdater/Installer.php new file mode 100644 index 000000000..83dded81f --- /dev/null +++ b/api/vendor/psy/psysh/src/VersionUpdater/Installer.php @@ -0,0 +1,143 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\VersionUpdater; + +use Psy\Exception\ErrorException; + +class Installer +{ + /** + * @var string + */ + protected $installLocation; + + /** + * @var string + */ + protected $tempDirectory; + + public function __construct(?string $tempDirectory = null) + { + $this->tempDirectory = $tempDirectory ?: \sys_get_temp_dir(); + $this->installLocation = \Phar::running(false); + } + + /** + * Public to allow the Downloader to use the temporary directory if it's been set. + */ + public function getTempDirectory(): string + { + return $this->tempDirectory; + } + + /** + * Verify the currently installed PsySH phar is writable so it can be replaced. + */ + public function isInstallLocationWritable(): bool + { + return \is_writable($this->installLocation); + } + + /** + * Verify the temporary directory is writable so downloads and backups can be saved there. + */ + public function isTempDirectoryWritable(): bool + { + return \is_writable($this->tempDirectory); + } + + /** + * Verifies the downloaded archive can be extracted with \PharData. + * + * @param string $sourceArchive + */ + public function isValidSource(string $sourceArchive): bool + { + if (!\class_exists('\PharData')) { + return false; + } + $pharArchive = new \PharData($sourceArchive); + + return $pharArchive->valid(); + } + + /** + * Extract the "psysh" phar from the archive and move it, replacing the currently installed phar. + * + * @param string $sourceArchive + */ + public function install(string $sourceArchive): bool + { + $pharArchive = new \PharData($sourceArchive); + $outputDirectory = \tempnam($this->tempDirectory, 'psysh-'); + + // remove the temp file, and replace it with a sub-directory + if (!\unlink($outputDirectory) || !\mkdir($outputDirectory, 0700)) { + return false; + } + + $pharArchive->extractTo($outputDirectory, ['psysh'], true); + + $renamed = \rename($outputDirectory.'/psysh', $this->installLocation); + + // Remove the sub-directory created to extract the psysh binary/phar + \rmdir($outputDirectory); + + return $renamed; + } + + /** + * Create a backup of the currently installed PsySH phar in the temporary directory with a version number postfix. + * + * @param string $version + */ + public function createBackup(string $version): bool + { + $backupFilename = $this->getBackupFilename($version); + + if (\file_exists($backupFilename) && !\is_writable($backupFilename)) { + return false; + } + + return \rename($this->installLocation, $backupFilename); + } + + /** + * Restore the backup file to the original PsySH install location. + * + * @param string $version + * + * @throws ErrorException If the backup file could not be found + */ + public function restoreFromBackup(string $version): bool + { + $backupFilename = $this->getBackupFilename($version); + + if (!\file_exists($backupFilename)) { + throw new ErrorException("Cannot restore from backup. File not found! [{$backupFilename}]"); + } + + return \rename($backupFilename, $this->installLocation); + } + + /** + * Get the full path for the backup target file location. + * + * @param string $version + */ + public function getBackupFilename(string $version): string + { + $installFilename = \basename($this->installLocation); + + return \sprintf('%s/%s.%s', $this->tempDirectory, $installFilename, $version); + } +} diff --git a/api/vendor/psy/psysh/src/VersionUpdater/IntervalChecker.php b/api/vendor/psy/psysh/src/VersionUpdater/IntervalChecker.php index 5c43b29d5..06a67775a 100644 --- a/api/vendor/psy/psysh/src/VersionUpdater/IntervalChecker.php +++ b/api/vendor/psy/psysh/src/VersionUpdater/IntervalChecker.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -43,7 +43,10 @@ public function fetchLatestRelease() return $release; } - private function getDateInterval() + /** + * @throws \RuntimeException if interval passed to constructor is not supported + */ + private function getDateInterval(): \DateInterval { switch ($this->interval) { case Checker::DAILY: @@ -53,6 +56,8 @@ private function getDateInterval() case Checker::MONTHLY: return new \DateInterval('P1M'); } + + throw new \RuntimeException('Invalid interval configured'); } private function updateCache($release) diff --git a/api/vendor/psy/psysh/src/VersionUpdater/NoopChecker.php b/api/vendor/psy/psysh/src/VersionUpdater/NoopChecker.php index 22340f763..2c8240e65 100644 --- a/api/vendor/psy/psysh/src/VersionUpdater/NoopChecker.php +++ b/api/vendor/psy/psysh/src/VersionUpdater/NoopChecker.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -14,22 +14,16 @@ use Psy\Shell; /** - * A version checker stub which always thinks the current verion is up to date. + * A version checker stub which always thinks the current version is up to date. */ class NoopChecker implements Checker { - /** - * @return bool - */ - public function isLatest() + public function isLatest(): bool { return true; } - /** - * @return string - */ - public function getLatest() + public function getLatest(): string { return Shell::VERSION; } diff --git a/api/vendor/psy/psysh/src/VersionUpdater/SelfUpdate.php b/api/vendor/psy/psysh/src/VersionUpdater/SelfUpdate.php new file mode 100644 index 000000000..dbda8716c --- /dev/null +++ b/api/vendor/psy/psysh/src/VersionUpdater/SelfUpdate.php @@ -0,0 +1,186 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2023 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\VersionUpdater; + +use Psy\Exception\ErrorException; +use Psy\Shell; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +/** + * Self update command. + * + * If a new version is available, this command will download it and replace the currently installed version + */ +class SelfUpdate +{ + const URL_PREFIX = 'https://github.com/bobthecow/psysh/releases/download'; + const SUCCESS = 0; + const FAILURE = 1; + + /** @var Checker */ + private $checker; + + /** @var Installer */ + private $installer; + + /** @var Downloader */ + private $downloader; + + public function __construct(Checker $checker, Installer $installer) + { + $this->checker = $checker; + $this->installer = $installer; + } + + /** + * Allow the downloader to be injected for testing. + * + * @param Downloader $downloader + * + * @return void + */ + public function setDownloader(Downloader $downloader) + { + $this->downloader = $downloader; + } + + /** + * Get the currently set Downloader or create one based on the capabilities of the php environment. + * + * @throws ErrorException if a downloader cannot be created for the php environment + */ + private function getDownloader(): Downloader + { + if (!isset($this->downloader)) { + return Downloader\Factory::getDownloader(); + } + + return $this->downloader; + } + + /** + * Build the download URL for the latest release. + * + * The file name used in the URL will include the flavour postfix extracted from the current version + * if it's present + * + * @param string $latestVersion + */ + private function getAssetUrl(string $latestVersion): string + { + $versionPostfix = ''; + if (\strpos(Shell::VERSION, '+')) { + $versionPostfix = '-'.\substr(Shell::VERSION, \strpos(Shell::VERSION, '+') + 1); + } + $downloadFilename = \sprintf('psysh-%s%s.tar.gz', $latestVersion, $versionPostfix); + + // check if latest release data contains an asset matching the filename? + + return \sprintf('%s/%s/%s', self::URL_PREFIX, $latestVersion, $downloadFilename); + } + + /** + * Execute the self-update process. + * + * @param InputInterface $input + * @param OutputInterface $output + * + * @throws ErrorException if the current version is not restored when installation fails + */ + public function run(InputInterface $input, OutputInterface $output): int + { + $currentVersion = Shell::VERSION; + + // already have the latest version? + if ($this->checker->isLatest()) { + // current version is latest version... + $output->writeln('<info>Current version is up-to-date.</info>'); + + return self::SUCCESS; + } + + // can overwrite current version? + if (!$this->installer->isInstallLocationWritable()) { + $output->writeln('<error>Installed version is not writable.</error>'); + + return self::FAILURE; + } + // can download to, and create a backup in the temp directory? + if (!$this->installer->isTempDirectoryWritable()) { + $output->writeln('<error>Temporary directory is not writable.</error>'); + + return self::FAILURE; + } + + $latestVersion = $this->checker->getLatest(); + $downloadUrl = $this->getAssetUrl($latestVersion); + + $output->write("Downloading PsySH $latestVersion ..."); + + try { + $downloader = $this->getDownloader(); + $downloader->setTempDir($this->installer->getTempDirectory()); + $downloaded = $downloader->download($downloadUrl); + } catch (ErrorException $e) { + $output->write(' <error>Failed.</error>'); + $output->writeln(\sprintf('<error>%s</error>', $e->getMessage())); + + return self::FAILURE; + } + + if (!$downloaded) { + $output->writeln('<error>Download failed.</error>'); + $downloader->cleanup(); + + return self::FAILURE; + } else { + $output->write(' <info>OK</info>'.\PHP_EOL); + } + + $downloadedFile = $downloader->getFilename(); + + if (!$this->installer->isValidSource($downloadedFile)) { + $downloader->cleanup(); + $output->writeln('<error>Downloaded file is not a valid archive.</error>'); + + return self::FAILURE; + } + + // create backup as bin.old-version in the temporary directory + $backupCreated = $this->installer->createBackup($currentVersion); + if (!$backupCreated) { + $downloader->cleanup(); + $output->writeln('<error>Failed to create a backup of the current version.</error>'); + + return self::FAILURE; + } elseif ($input->getOption('verbose')) { + $backupFilename = $this->installer->getBackupFilename($currentVersion); + $output->writeln('Created backup of current version: '.$backupFilename); + } + + if (!$this->installer->install($downloadedFile)) { + $this->installer->restoreFromBackup($currentVersion); + $downloader->cleanup(); + $output->writeln("<error>Failed to install new PsySH version $latestVersion.</error>"); + + return self::FAILURE; + } + + // Remove the downloaded archive file from the temporary directory + $downloader->cleanup(); + + $output->writeln("Updated PsySH from $currentVersion to <info>$latestVersion</info>"); + + return self::SUCCESS; + } +} diff --git a/api/vendor/psy/psysh/src/functions.php b/api/vendor/psy/psysh/src/functions.php index e36825d2e..7b58344eb 100644 --- a/api/vendor/psy/psysh/src/functions.php +++ b/api/vendor/psy/psysh/src/functions.php @@ -3,7 +3,7 @@ /* * This file is part of Psy Shell. * - * (c) 2012-2020 Justin Hileman + * (c) 2012-2023 Justin Hileman * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -13,6 +13,8 @@ use Psy\ExecutionLoop\ProcessForker; use Psy\VersionUpdater\GitHubChecker; +use Psy\VersionUpdater\Installer; +use Psy\VersionUpdater\SelfUpdate; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputDefinition; @@ -23,10 +25,8 @@ * Command to return the eval-able code to startup PsySH. * * eval(\Psy\sh()); - * - * @return string */ - function sh() + function sh(): string { if (\version_compare(\PHP_VERSION, '8.0', '<')) { return '\extract(\Psy\debug(\get_defined_vars(), isset($this) ? $this : @\get_called_class()));'; @@ -90,7 +90,7 @@ function sh() * * @return array Scope variables from the debugger session */ - function debug(array $vars = [], $bindTo = null) + function debug(array $vars = [], $bindTo = null): array { echo \PHP_EOL; @@ -128,7 +128,7 @@ function debug(array $vars = [], $bindTo = null) * * @return array|null */ - function info(Configuration $config = null) + function info(?Configuration $config = null) { static $lastConfig; if ($config !== null) { @@ -155,6 +155,9 @@ function info(Configuration $config = null) $config = $lastConfig ?: new Configuration(); $configEnv = (isset($_SERVER['PSYSH_CONFIG']) && $_SERVER['PSYSH_CONFIG']) ? $_SERVER['PSYSH_CONFIG'] : false; + if ($configEnv === false && \PHP_SAPI === 'cli-server') { + $configEnv = \getenv('PSYSH_CONFIG'); + } $shellInfo = [ 'PsySH version' => Shell::VERSION, @@ -165,6 +168,7 @@ function info(Configuration $config = null) 'OS' => \PHP_OS, 'default includes' => $config->getDefaultIncludes(), 'require semicolons' => $config->requireSemicolons(), + 'strict types' => $config->strictTypes(), 'error logging level' => $config->errorLoggingLevel(), 'config file' => [ 'default config file' => $prettyPath($config->getConfigFile()), @@ -183,7 +187,7 @@ function info(Configuration $config = null) try { $updateAvailable = !$checker->isLatest(); $latest = $checker->getLatest(); - } catch (\Exception $e) { + } catch (\Throwable $e) { } $updates = [ @@ -225,6 +229,17 @@ function info(Configuration $config = null) 'color mode' => $config->colorMode(), 'output decorated' => $config->getOutputDecorated(), 'output verbosity' => $config->verbosity(), + 'output pager' => $config->getPager(), + ]; + + $theme = $config->theme(); + // @todo show styles (but only if they're different than default?) + $output['theme'] = [ + 'compact' => $theme->compact(), + 'prompt' => $theme->prompt(), + 'bufferPrompt' => $theme->bufferPrompt(), + 'replayPrompt' => $theme->replayPrompt(), + 'returnValue' => $theme->returnValue(), ]; $pcntl = [ @@ -327,27 +342,17 @@ function info(Configuration $config = null) * * @return \Closure */ - function bin() + function bin(): \Closure { return function () { if (!isset($_SERVER['PSYSH_IGNORE_ENV']) || !$_SERVER['PSYSH_IGNORE_ENV']) { - if (\defined('HHVM_VERSION_ID') && \HHVM_VERSION_ID < 31800) { - \fwrite(\STDERR, 'HHVM 3.18 or higher is required. You can set the environment variable PSYSH_IGNORE_ENV=1 to override this restriction and proceed anyway.'.\PHP_EOL); + if (\defined('HHVM_VERSION_ID')) { + \fwrite(\STDERR, 'PsySH v0.11 and higher does not support HHVM. Install an older version, or set the environment variable PSYSH_IGNORE_ENV=1 to override this restriction and proceed anyway.'.\PHP_EOL); exit(1); } - if (\defined('HHVM_VERSION_ID') && \HHVM_VERSION_ID > 39999) { - \fwrite(\STDERR, 'HHVM 4 or higher is not supported. You can set the environment variable PSYSH_IGNORE_ENV=1 to override this restriction and proceed anyway.'.\PHP_EOL); - exit(1); - } - - if (\PHP_VERSION_ID < 50509) { - \fwrite(\STDERR, 'PHP 5.5.9 or higher is required. You can set the environment variable PSYSH_IGNORE_ENV=1 to override this restriction and proceed anyway.'.\PHP_EOL); - exit(1); - } - - if (\PHP_VERSION_ID < 50600 && \Phar::running()) { - \fwrite(\STDERR, 'PHP 5.6.0 or higher is required. You can set the environment variable PSYSH_IGNORE_ENV=1 to override this restriction and proceed anyway.'.\PHP_EOL); + if (\PHP_VERSION_ID < 70400) { + \fwrite(\STDERR, 'PHP 7.4.0 or higher is required. You can set the environment variable PSYSH_IGNORE_ENV=1 to override this restriction and proceed anyway.'.\PHP_EOL); exit(1); } @@ -368,12 +373,14 @@ function bin() } $usageException = null; + $shellIsPhar = Shell::isPhar(); $input = new ArgvInput(); try { $input->bind(new InputDefinition(\array_merge(Configuration::getInputOptions(), [ new InputOption('help', 'h', InputOption::VALUE_NONE), new InputOption('version', 'V', InputOption::VALUE_NONE), + new InputOption('self-update', 'u', InputOption::VALUE_NONE), new InputArgument('include', InputArgument::IS_ARRAY), ]))); @@ -388,7 +395,7 @@ function bin() } // Handle --help - if ($usageException !== null || $input->getOption('help')) { + if (!isset($config) || $usageException !== null || $input->getOption('help')) { if ($usageException !== null) { echo $usageException->getMessage().\PHP_EOL.\PHP_EOL; } @@ -408,16 +415,27 @@ function bin() -c, --config FILE Use an alternate PsySH config file location. --cwd PATH Use an alternate working directory. -V, --version Display the PsySH version. + +EOL; + if ($shellIsPhar) { + echo <<<EOL + -u, --self-update Install a newer version if available. + +EOL; + } + echo <<<EOL --color Force colors in output. --no-color Disable colors in output. -i, --interactive Force PsySH to run in interactive mode. -n, --no-interactive Run PsySH without interactive input. Requires input from stdin. -r, --raw-output Print var_export-style return values (for non-interactive input) + --compact Run PsySH with compact output. -q, --quiet Shhhhhh. -v|vv|vvv, --verbose Increase the verbosity of messages. --yolo Run PsySH without input validation. You don't want this. EOL; + exit($usageException === null ? 0 : 1); } @@ -427,6 +445,17 @@ function bin() exit(0); } + // Handle --self-update + if ($input->getOption('self-update')) { + if (!$shellIsPhar) { + \fwrite(\STDERR, 'The --self-update option can only be used with with a phar based install.'.\PHP_EOL); + exit(1); + } + $selfUpdate = new SelfUpdate(new GitHubChecker(), new Installer()); + $result = $selfUpdate->run($input, $config->getOutput()); + exit($result); + } + $shell = new Shell($config); // Pass additional arguments to Shell as 'includes' @@ -435,7 +464,7 @@ function bin() try { // And go! $shell->run(); - } catch (\Exception $e) { + } catch (\Throwable $e) { \fwrite(\STDERR, $e->getMessage().\PHP_EOL); // @todo this triggers the "exited unexpectedly" logic in the diff --git a/api/vendor/ramsey/collection/LICENSE b/api/vendor/ramsey/collection/LICENSE index ae15f590c..a7fcf1201 100644 --- a/api/vendor/ramsey/collection/LICENSE +++ b/api/vendor/ramsey/collection/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2021 Ben Ramsey <ben@benramsey.com> +Copyright (c) 2015-2022 Ben Ramsey <ben@benramsey.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 diff --git a/api/vendor/ramsey/collection/README.md b/api/vendor/ramsey/collection/README.md index 9124dd77e..c77ffcb18 100644 --- a/api/vendor/ramsey/collection/README.md +++ b/api/vendor/ramsey/collection/README.md @@ -9,7 +9,7 @@ <a href="https://packagist.org/packages/ramsey/collection"><img src="https://img.shields.io/packagist/v/ramsey/collection.svg?style=flat-square&label=release" alt="Download Package"></a> <a href="https://php.net"><img src="https://img.shields.io/packagist/php-v/ramsey/collection.svg?style=flat-square&colorB=%238892BF" alt="PHP Programming Language"></a> <a href="https://github.com/ramsey/collection/blob/master/LICENSE"><img src="https://img.shields.io/packagist/l/ramsey/collection.svg?style=flat-square&colorB=darkcyan" alt="Read License"></a> - <a href="https://github.com/ramsey/collection/actions?query=workflow%3ACI"><img src="https://img.shields.io/github/workflow/status/ramsey/collection/CI?label=CI&logo=github&style=flat-square" alt="Build Status"></a> + <a href="https://github.com/ramsey/collection/actions/workflows/continuous-integration.yml"><img src="https://img.shields.io/github/actions/workflow/status/ramsey/collection/continuous-integration.yml?branch=main&logo=github&style=flat-square" alt="Build Status"></a> <a href="https://codecov.io/gh/ramsey/collection"><img src="https://img.shields.io/codecov/c/gh/ramsey/collection?label=codecov&logo=codecov&style=flat-square" alt="Codecov Code Coverage"></a> <a href="https://shepherd.dev/github/ramsey/collection"><img src="https://img.shields.io/endpoint?style=flat-square&url=https%3A%2F%2Fshepherd.dev%2Fgithub%2Framsey%2Fcollection%2Fcoverage" alt="Psalm Type Coverage"></a> </p> @@ -34,25 +34,13 @@ composer require ramsey/collection ## Usage -Examples of how to use this framework can be found in the +Examples of how to use this library may be found in the [Wiki pages](https://github.com/ramsey/collection/wiki/Examples). ## Contributing -Contributions are welcome! Before contributing to this project, familiarize -yourself with [CONTRIBUTING.md](CONTRIBUTING.md). - -To develop this project, you will need [PHP](https://www.php.net) 7.3 or greater -and [Composer](https://getcomposer.org). - -After cloning this repository locally, execute the following commands: - -``` bash -cd /path/to/repository -composer install -``` - -Now, you are ready to develop! +Contributions are welcome! To contribute, please familiarize yourself with +[CONTRIBUTING.md](CONTRIBUTING.md). ## Coordinated Disclosure @@ -79,4 +67,4 @@ MIT License (MIT). Please see [LICENSE](LICENSE) for more information. [java]: http://docs.oracle.com/javase/8/docs/technotes/guides/collections/index.html -[security.md]: https://github.com/ramsey/collection/blob/master/SECURITY.md +[security.md]: https://github.com/ramsey/collection/blob/main/SECURITY.md diff --git a/api/vendor/ramsey/collection/SECURITY.md b/api/vendor/ramsey/collection/SECURITY.md index b052f3b65..3de4c0cbd 100644 --- a/api/vendor/ramsey/collection/SECURITY.md +++ b/api/vendor/ramsey/collection/SECURITY.md @@ -1,29 +1,59 @@ <!-- - This policy was created using the HackerOne Policy Builder: - https://hackerone.com/policy-builder/ + This policy template was created using the HackerOne Policy Builder [1], + with guidance from the National Telecommunications and Information + Administration Coordinated Vulnerability Disclosure Template [2]. --> -# Vulnerability Disclosure Policy +# Vulnerability Disclosure Policy (VDP) + +## Brand Promise + +<!-- + This is your brand promise. Its objective is to "demonstrate a clear, good + faith commitment to customers and other stakeholders potentially impacted by + security vulnerabilities" [2]. +--> Keeping user information safe and secure is a top priority, and we welcome the contribution of external security researchers. ## Scope +<!-- + This is your initial scope. It tells vulnerability finders and reporters + "which systems and capabilities are 'fair game' versus 'off limits'" [2]. + For software packages, this is often a list of currently maintained versions + of the package. +--> + If you believe you've found a security issue in software that is maintained in this repository, we encourage you to notify us. | Version | In scope | Source code | -| :-----: | :------: | :---------- | +| ------- | :------: | ----------- | | latest | ✅ | https://github.com/ramsey/collection | ## How to Submit a Report -To submit a vulnerability report, please contact us at <security@ramsey.dev>. +<!-- + This is your communication process. It tells security researchers how to + contact you to report a vulnerability. It may be a link to a web form that + uses HTTPS for secure communication, or it may be an email address. + Optionally, you may choose to include a PGP public key, so that researchers + may send you encrypted messages. +--> + +To submit a vulnerability report, please contact us at security@ramsey.dev. Your submission will be reviewed and validated by a member of our team. ## Safe Harbor +<!-- + This section assures vulnerability finders and reporters that they will + receive good faith responses to their good faith acts. In other words, + "we will not take legal action if..." [2]. +--> + We support safe harbor for security researchers who: * Make a good faith effort to avoid privacy violations, destruction of data, and @@ -33,7 +63,7 @@ We support safe harbor for security researchers who: us immediately, do not proceed with access, and immediately purge any local information. * Provide us with a reasonable amount of time to resolve vulnerabilities prior - to any disclosure to the public or a third-party. + to any disclosure to the public or a third party. We will consider activities conducted consistent with this policy to constitute "authorized" conduct and will not pursue civil action or initiate a complaint to @@ -45,15 +75,41 @@ with or unaddressed by this policy. ## Preferences +<!-- + The preferences section sets expectations based on priority and submission + volume, rather than legal objection or restriction [2]. + + According to the NTIA [2]: + + This section is a living document that sets expectations for preferences + and priorities, typically maintained by the support and engineering + team. This can outline classes of vulnerabilities, reporting style + (crash dumps, CVSS scoring, proof-of-concept, etc.), tools, etc. Too + many preferences can set the wrong tone or make reporting findings + difficult to navigate. This section also sets expectations to the + researcher community for what types of issues are considered important + or not. +--> + * Please provide detailed reports with reproducible steps and a clearly defined impact. * Include the version number of the vulnerable package in your report * Social engineering (e.g. phishing, vishing, smishing) is prohibited. +<!-- + References + + [1] HackerOne. Policy builder. Retrieved from https://hackerone.com/policy-builder/ + + [2] NTIA Safety Working Group. 2016. "Early stage" coordinated vulnerability + disclosure template: Version 1.1. (15 December 2016). Retrieved from + https://www.ntia.doc.gov/files/ntia/publications/ntia_vuln_disclosure_early_stage_template.pdf +--> + ## Encryption Key for security@ramsey.dev For increased privacy when reporting sensitive issues, you may encrypt your -messages using the following key: +message using the following public key: ``` -----BEGIN PGP PUBLIC KEY BLOCK----- diff --git a/api/vendor/ramsey/collection/composer.json b/api/vendor/ramsey/collection/composer.json index 98862ee46..f09106a15 100644 --- a/api/vendor/ramsey/collection/composer.json +++ b/api/vendor/ramsey/collection/composer.json @@ -1,7 +1,8 @@ { "name": "ramsey/collection", - "type": "library", "description": "A PHP library for representing and manipulating collections.", + "license": "MIT", + "type": "library", "keywords": [ "array", "collection", @@ -10,7 +11,6 @@ "queue", "set" ], - "license": "MIT", "authors": [ { "name": "Ben Ramsey", @@ -19,31 +19,33 @@ } ], "require": { - "php": "^7.3 || ^8", + "php": "^7.4 || ^8.0", "symfony/polyfill-php81": "^1.23" }, "require-dev": { - "captainhook/captainhook": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "ergebnis/composer-normalize": "^2.6", - "fakerphp/faker": "^1.5", - "hamcrest/hamcrest-php": "^2", - "jangregor/phpstan-prophecy": "^0.8", - "mockery/mockery": "^1.3", + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1", - "phpstan/phpstan": "^0.12.32", - "phpstan/phpstan-mockery": "^0.12.5", - "phpstan/phpstan-phpunit": "^0.12.11", - "phpunit/phpunit": "^8.5 || ^9", - "psy/psysh": "^0.10.4", - "slevomat/coding-standard": "^6.3", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.4" - }, - "config": { - "sort-packages": true + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" }, + "minimum-stability": "RC", + "prefer-stable": true, "autoload": { "psr-4": { "Ramsey\\Collection\\": "src/" @@ -51,7 +53,6 @@ }, "autoload-dev": { "psr-4": { - "Ramsey\\Console\\": "resources/console/", "Ramsey\\Collection\\Test\\": "tests/", "Ramsey\\Test\\Generics\\": "tests/generics/" }, @@ -59,44 +60,61 @@ "vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php" ] }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true, + "ergebnis/composer-normalize": true, + "phpstan/extension-installer": true, + "captainhook/plugin-composer": true + }, + "sort-packages": true + }, + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, "scripts": { - "post-autoload-dump": "captainhook install --ansi -f -s", "dev:analyze": [ "@dev:analyze:phpstan", "@dev:analyze:psalm" ], - "dev:analyze:phpstan": "phpstan --memory-limit=1G analyse", - "dev:analyze:psalm": "psalm --diff --config=psalm.xml", - "dev:build:clean": "git clean -fX build/.", - "dev:build:clear-cache": "git clean -fX build/cache/.", - "dev:lint": "phpcs --cache=build/cache/phpcs.cache", - "dev:lint:fix": "./bin/lint-fix.sh", - "dev:repl": [ - "echo ; echo 'Type ./bin/repl to start the REPL.'" + "dev:analyze:phpstan": "phpstan analyse --ansi --memory-limit=1G", + "dev:analyze:psalm": "psalm", + "dev:build:clean": "git clean -fX build/", + "dev:lint": [ + "@dev:lint:syntax", + "@dev:lint:style" ], - "dev:test": "phpunit", - "dev:test:all": [ + "dev:lint:fix": "phpcbf", + "dev:lint:style": "phpcs --colors", + "dev:lint:syntax": "parallel-lint --colors src/ tests/", + "dev:test": [ "@dev:lint", "@dev:analyze", - "@dev:test" + "@dev:test:unit" ], - "dev:test:coverage:ci": "phpunit --coverage-clover build/logs/clover.xml", - "dev:test:coverage:html": "phpunit --coverage-html build/coverage", - "test": "@dev:test:all" + "dev:test:coverage:ci": "phpunit --colors=always --coverage-text --coverage-clover build/coverage/clover.xml --coverage-cobertura build/coverage/cobertura.xml --coverage-crap4j build/coverage/crap4j.xml --coverage-xml build/coverage/coverage-xml --log-junit build/junit.xml", + "dev:test:coverage:html": "phpunit --colors=always --coverage-html build/coverage/coverage-html/", + "dev:test:unit": "phpunit --colors=always", + "test": "@dev:test" }, "scripts-descriptions": { - "dev:analyze": "Performs static analysis on the code base.", + "dev:analyze": "Runs all static analysis checks.", "dev:analyze:phpstan": "Runs the PHPStan static analyzer.", "dev:analyze:psalm": "Runs the Psalm static analyzer.", - "dev:build:clean": "Removes everything not under version control from the build directory.", - "dev:build:clear-cache": "Removes everything not under version control from build/cache/.", - "dev:lint": "Checks all source code for coding standards issues.", - "dev:lint:fix": "Checks source code for coding standards issues and fixes them, if possible.", - "dev:repl": "Note: Use ./bin/repl to run the REPL.", - "dev:test": "Runs the full unit test suite.", - "dev:test:all": "Runs linting, static analysis, and unit tests.", - "dev:test:coverage:ci": "Runs the unit test suite and generates a Clover coverage report.", - "dev:test:coverage:html": "Runs the unit tests suite and generates an HTML coverage report.", - "test": "Shortcut to run the full test suite." + "dev:build:clean": "Cleans the build/ directory.", + "dev:lint": "Runs all linting checks.", + "dev:lint:fix": "Auto-fixes coding standards issues, if possible.", + "dev:lint:style": "Checks for coding standards issues.", + "dev:lint:syntax": "Checks for syntax errors.", + "dev:test": "Runs linting, static analysis, and unit tests.", + "dev:test:coverage:ci": "Runs unit tests and generates CI coverage reports.", + "dev:test:coverage:html": "Runs unit tests and generates HTML coverage report.", + "dev:test:unit": "Runs unit tests.", + "test": "Runs linting, static analysis, and unit tests." } } diff --git a/api/vendor/ramsey/collection/conventional-commits.json b/api/vendor/ramsey/collection/conventional-commits.json new file mode 100644 index 000000000..5fe21d2fa --- /dev/null +++ b/api/vendor/ramsey/collection/conventional-commits.json @@ -0,0 +1,22 @@ +{ + "typeCase": "kebab", + "types": [ + "chore", + "ci", + "docs", + "feat", + "fix", + "refactor", + "security", + "style", + "test" + ], + "scopeCase": "kebab", + "scopeRequired": false, + "scopes": [], + "descriptionCase": null, + "descriptionEndMark": "", + "bodyRequired": false, + "bodyWrapWidth": 72, + "requiredFooters": [] +} diff --git a/api/vendor/ramsey/collection/src/AbstractArray.php b/api/vendor/ramsey/collection/src/AbstractArray.php index d72dbe697..9b39dd0cb 100644 --- a/api/vendor/ramsey/collection/src/AbstractArray.php +++ b/api/vendor/ramsey/collection/src/AbstractArray.php @@ -17,6 +17,7 @@ use ArrayIterator; use Traversable; +use function count; use function serialize; use function unserialize; @@ -34,7 +35,7 @@ abstract class AbstractArray implements ArrayInterface * * @var array<array-key, T> */ - protected $data = []; + protected array $data = []; /** * Constructs a new array object. @@ -83,8 +84,6 @@ public function offsetExists($offset): bool * * @return T|null the value stored at the offset, or null if the offset * does not exist. - * - * @psalm-suppress InvalidAttribute */ #[\ReturnTypeWillChange] // phpcs:ignore public function offsetGet($offset) diff --git a/api/vendor/ramsey/collection/src/AbstractCollection.php b/api/vendor/ramsey/collection/src/AbstractCollection.php index d2cd1151c..38ef7144c 100644 --- a/api/vendor/ramsey/collection/src/AbstractCollection.php +++ b/api/vendor/ramsey/collection/src/AbstractCollection.php @@ -33,7 +33,9 @@ use function end; use function in_array; use function is_int; +use function is_object; use function reset; +use function spl_object_id; use function sprintf; use function unserialize; use function usort; @@ -78,7 +80,7 @@ public function offsetSet($offset, $value): void if ($this->checkType($this->getType(), $value) === false) { throw new InvalidArgumentException( 'Value must be of type ' . $this->getType() . '; value is ' - . $this->toolValueToString($value) + . $this->toolValueToString($value), ); } @@ -95,7 +97,7 @@ public function offsetSet($offset, $value): void public function remove($element): bool { if (($position = array_search($element, $this->data, true)) !== false) { - unset($this->data[$position]); + unset($this[$position]); return true; } @@ -176,7 +178,7 @@ function ($a, $b) use ($propertyOrMethod, $order): int { $bValue = $this->extractValue($b, $propertyOrMethod); return ($aValue <=> $bValue) * ($order === self::SORT_DESC ? -1 : 1); - } + }, ); return $collection; @@ -244,15 +246,19 @@ public function merge(CollectionInterface ...$collections): CollectionInterface foreach ($collections as $index => $collection) { if (!$collection instanceof static) { throw new CollectionMismatchException( - sprintf('Collection with index %d must be of type %s', $index, static::class) + sprintf('Collection with index %d must be of type %s', $index, static::class), ); } // When using generics (Collection.php, Set.php, etc), // we also need to make sure that the internal types match each other - if ($collection->getType() !== $this->getType()) { + if ($this->getUniformType($collection) !== $this->getUniformType($this)) { throw new CollectionMismatchException( - sprintf('Collection items in collection with index %d must be of type %s', $index, $this->getType()) + sprintf( + 'Collection items in collection with index %d must be of type %s', + $index, + $this->getType(), + ), ); } @@ -290,7 +296,7 @@ private function compareCollectionTypes(CollectionInterface $other): void // When using generics (Collection.php, Set.php, etc), // we also need to make sure that the internal types match each other - if ($other->getType() !== $this->getType()) { + if ($this->getUniformType($other) !== $this->getUniformType($this)) { throw new CollectionMismatchException('Collection items must be of type ' . $this->getType()); } } @@ -315,4 +321,21 @@ function ($a, $b): int { return $a === $b ? 0 : ($a < $b ? 1 : -1); }; } + + /** + * @param CollectionInterface<mixed> $collection + */ + private function getUniformType(CollectionInterface $collection): string + { + switch ($collection->getType()) { + case 'integer': + return 'int'; + case 'boolean': + return 'bool'; + case 'double': + return 'float'; + default: + return $collection->getType(); + } + } } diff --git a/api/vendor/ramsey/collection/src/Collection.php b/api/vendor/ramsey/collection/src/Collection.php index 1299c12c2..532b971b6 100644 --- a/api/vendor/ramsey/collection/src/Collection.php +++ b/api/vendor/ramsey/collection/src/Collection.php @@ -80,10 +80,8 @@ class Collection extends AbstractCollection * * A collection's type is immutable once it is set. For this reason, this * property is set private. - * - * @var string */ - private $collectionType; + private string $collectionType; /** * Constructs a collection object of the specified type, optionally with the diff --git a/api/vendor/ramsey/collection/src/CollectionInterface.php b/api/vendor/ramsey/collection/src/CollectionInterface.php index aa86feb04..9f86a2837 100644 --- a/api/vendor/ramsey/collection/src/CollectionInterface.php +++ b/api/vendor/ramsey/collection/src/CollectionInterface.php @@ -151,6 +151,7 @@ public function filter(callable $callback): self; * * @return CollectionInterface<T> */ + // phpcs:ignore SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint public function where(string $propertyOrMethod, $value): self; /** diff --git a/api/vendor/ramsey/collection/src/DoubleEndedQueue.php b/api/vendor/ramsey/collection/src/DoubleEndedQueue.php index c9c59502d..4d1f71ea4 100644 --- a/api/vendor/ramsey/collection/src/DoubleEndedQueue.php +++ b/api/vendor/ramsey/collection/src/DoubleEndedQueue.php @@ -29,10 +29,8 @@ class DoubleEndedQueue extends Queue implements DoubleEndedQueueInterface { /** * Index of the last element in the queue. - * - * @var int */ - private $tail = -1; + private int $tail = -1; /** * @inheritDoc @@ -42,7 +40,7 @@ public function offsetSet($offset, $value): void if ($this->checkType($this->getType(), $value) === false) { throw new InvalidArgumentException( 'Value must be of type ' . $this->getType() . '; value is ' - . $this->toolValueToString($value) + . $this->toolValueToString($value), ); } @@ -52,6 +50,8 @@ public function offsetSet($offset, $value): void } /** + * @throws InvalidArgumentException if $element is of the wrong type + * * @inheritDoc */ public function addFirst($element): bool @@ -59,7 +59,7 @@ public function addFirst($element): bool if ($this->checkType($this->getType(), $element) === false) { throw new InvalidArgumentException( 'Value must be of type ' . $this->getType() . '; value is ' - . $this->toolValueToString($element) + . $this->toolValueToString($element), ); } diff --git a/api/vendor/ramsey/collection/src/DoubleEndedQueueInterface.php b/api/vendor/ramsey/collection/src/DoubleEndedQueueInterface.php index d7df53469..3fa4ecab8 100644 --- a/api/vendor/ramsey/collection/src/DoubleEndedQueueInterface.php +++ b/api/vendor/ramsey/collection/src/DoubleEndedQueueInterface.php @@ -15,6 +15,7 @@ namespace Ramsey\Collection; use Ramsey\Collection\Exception\NoSuchElementException; +use RuntimeException; /** * A linear collection that supports element insertion and removal at both ends. @@ -175,7 +176,7 @@ interface DoubleEndedQueueInterface extends QueueInterface * * @return bool `true` if this queue changed as a result of the call. * - * @throws \RuntimeException if a queue refuses to add a particular element + * @throws RuntimeException if a queue refuses to add a particular element * for any reason other than that it already contains the element. * Implementations should use a more-specific exception that extends * `\RuntimeException`. @@ -196,7 +197,7 @@ public function addFirst($element): bool; * * @return bool `true` if this queue changed as a result of the call. * - * @throws \RuntimeException if a queue refuses to add a particular element + * @throws RuntimeException if a queue refuses to add a particular element * for any reason other than that it already contains the element. * Implementations should use a more-specific exception that extends * `\RuntimeException`. diff --git a/api/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php b/api/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php index d4b335f45..7058bcf6e 100644 --- a/api/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php +++ b/api/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php @@ -14,9 +14,11 @@ namespace Ramsey\Collection\Exception; +use RuntimeException; + /** * Thrown when attempting to operate on collections of differing types. */ -class CollectionMismatchException extends \RuntimeException +class CollectionMismatchException extends RuntimeException { } diff --git a/api/vendor/ramsey/collection/src/Exception/InvalidSortOrderException.php b/api/vendor/ramsey/collection/src/Exception/InvalidSortOrderException.php index 9337ccc66..4491429c7 100644 --- a/api/vendor/ramsey/collection/src/Exception/InvalidSortOrderException.php +++ b/api/vendor/ramsey/collection/src/Exception/InvalidSortOrderException.php @@ -14,9 +14,11 @@ namespace Ramsey\Collection\Exception; +use RuntimeException; + /** * Thrown when attempting to use a sort order that is not recognized. */ -class InvalidSortOrderException extends \RuntimeException +class InvalidSortOrderException extends RuntimeException { } diff --git a/api/vendor/ramsey/collection/src/Exception/NoSuchElementException.php b/api/vendor/ramsey/collection/src/Exception/NoSuchElementException.php index 9debe8f66..cabcb9d88 100644 --- a/api/vendor/ramsey/collection/src/Exception/NoSuchElementException.php +++ b/api/vendor/ramsey/collection/src/Exception/NoSuchElementException.php @@ -14,9 +14,11 @@ namespace Ramsey\Collection\Exception; +use RuntimeException; + /** * Thrown when attempting to access an element that does not exist. */ -class NoSuchElementException extends \RuntimeException +class NoSuchElementException extends RuntimeException { } diff --git a/api/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php b/api/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php index 8f45e5836..9b6228971 100644 --- a/api/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php +++ b/api/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php @@ -14,9 +14,11 @@ namespace Ramsey\Collection\Exception; +use RuntimeException; + /** * Thrown to indicate that the requested operation is not supported. */ -class UnsupportedOperationException extends \RuntimeException +class UnsupportedOperationException extends RuntimeException { } diff --git a/api/vendor/ramsey/collection/src/Exception/ValueExtractionException.php b/api/vendor/ramsey/collection/src/Exception/ValueExtractionException.php index f6c6cb4ec..32f2a175f 100644 --- a/api/vendor/ramsey/collection/src/Exception/ValueExtractionException.php +++ b/api/vendor/ramsey/collection/src/Exception/ValueExtractionException.php @@ -14,9 +14,11 @@ namespace Ramsey\Collection\Exception; +use RuntimeException; + /** * Thrown when attempting to extract a value for a method or property that does not exist. */ -class ValueExtractionException extends \RuntimeException +class ValueExtractionException extends RuntimeException { } diff --git a/api/vendor/ramsey/collection/src/Map/AbstractMap.php b/api/vendor/ramsey/collection/src/Map/AbstractMap.php index ae9f2fe61..378807289 100644 --- a/api/vendor/ramsey/collection/src/Map/AbstractMap.php +++ b/api/vendor/ramsey/collection/src/Map/AbstractMap.php @@ -20,6 +20,7 @@ use function array_key_exists; use function array_keys; use function in_array; +use function var_export; /** * This class provides a basic implementation of `MapInterface`, to minimize the @@ -39,7 +40,7 @@ public function offsetSet($offset, $value): void if ($offset === null) { throw new InvalidArgumentException( 'Map elements are key/value pairs; a key must be provided for ' - . 'value ' . var_export($value, true) + . 'value ' . var_export($value, true), ); } diff --git a/api/vendor/ramsey/collection/src/Map/AbstractTypedMap.php b/api/vendor/ramsey/collection/src/Map/AbstractTypedMap.php index 551d2e6c6..486dc2e29 100644 --- a/api/vendor/ramsey/collection/src/Map/AbstractTypedMap.php +++ b/api/vendor/ramsey/collection/src/Map/AbstractTypedMap.php @@ -18,11 +18,13 @@ use Ramsey\Collection\Tool\TypeTrait; use Ramsey\Collection\Tool\ValueToStringTrait; +use function var_export; + /** * This class provides a basic implementation of `TypedMapInterface`, to * minimize the effort required to implement this interface. * - * @template K + * @template K of array-key * @template T * @extends AbstractMap<T> * @implements TypedMapInterface<T> @@ -37,33 +39,30 @@ abstract class AbstractTypedMap extends AbstractMap implements TypedMapInterface * @param T $value * * @inheritDoc - * - * @psalm-suppress MoreSpecificImplementedParamType */ public function offsetSet($offset, $value): void { if ($offset === null) { throw new InvalidArgumentException( 'Map elements are key/value pairs; a key must be provided for ' - . 'value ' . var_export($value, true) + . 'value ' . var_export($value, true), ); } if ($this->checkType($this->getKeyType(), $offset) === false) { throw new InvalidArgumentException( 'Key must be of type ' . $this->getKeyType() . '; key is ' - . $this->toolValueToString($offset) + . $this->toolValueToString($offset), ); } if ($this->checkType($this->getValueType(), $value) === false) { throw new InvalidArgumentException( 'Value must be of type ' . $this->getValueType() . '; value is ' - . $this->toolValueToString($value) + . $this->toolValueToString($value), ); } - /** @psalm-suppress MixedArgumentTypeCoercion */ parent::offsetSet($offset, $value); } } diff --git a/api/vendor/ramsey/collection/src/Map/NamedParameterMap.php b/api/vendor/ramsey/collection/src/Map/NamedParameterMap.php index 9926ddd8c..6e391e970 100644 --- a/api/vendor/ramsey/collection/src/Map/NamedParameterMap.php +++ b/api/vendor/ramsey/collection/src/Map/NamedParameterMap.php @@ -21,6 +21,7 @@ use function array_combine; use function array_key_exists; use function is_int; +use function var_export; /** * `NamedParameterMap` represents a mapping of values to a set of named keys @@ -38,7 +39,7 @@ class NamedParameterMap extends AbstractMap * * @var array<string, string> */ - protected $namedParameters; + protected array $namedParameters; /** * Constructs a new `NamedParameterMap`. @@ -70,14 +71,14 @@ public function offsetSet($offset, $value): void if ($offset === null) { throw new InvalidArgumentException( 'Map elements are key/value pairs; a key must be provided for ' - . 'value ' . var_export($value, true) + . 'value ' . var_export($value, true), ); } if (!array_key_exists($offset, $this->namedParameters)) { throw new InvalidArgumentException( 'Attempting to set value for unconfigured parameter \'' - . $offset . '\'' + . $offset . '\'', ); } @@ -85,7 +86,7 @@ public function offsetSet($offset, $value): void throw new InvalidArgumentException( 'Value for \'' . $offset . '\' must be of type ' . $this->namedParameters[$offset] . '; value is ' - . $this->toolValueToString($value) + . $this->toolValueToString($value), ); } diff --git a/api/vendor/ramsey/collection/src/Map/TypedMap.php b/api/vendor/ramsey/collection/src/Map/TypedMap.php index 2e796377a..77ef8d314 100644 --- a/api/vendor/ramsey/collection/src/Map/TypedMap.php +++ b/api/vendor/ramsey/collection/src/Map/TypedMap.php @@ -20,7 +20,7 @@ * A `TypedMap` represents a map of elements where key and value are typed. * * Each element is identified by a key with defined type and a value of defined - * type. The keys of the map must be unique. The values on the map can be= + * type. The keys of the map must be unique. The values on the map can be * repeated but each with its own different key. * * The most common case is to use a string type key, but it's not limited to @@ -80,7 +80,7 @@ * } * ``` * - * @template K + * @template K of array-key * @template T * @extends AbstractTypedMap<K, T> */ @@ -93,20 +93,16 @@ class TypedMap extends AbstractTypedMap * * A map key's type is immutable once it is set. For this reason, this * property is set private. - * - * @var string data type of the map key. */ - private $keyType; + private string $keyType; /** * The data type of values stored in this collection. * * A map value's type is immutable once it is set. For this reason, this * property is set private. - * - * @var string data type of the map value. */ - private $valueType; + private string $valueType; /** * Constructs a map object of the specified key and value types, @@ -121,7 +117,6 @@ public function __construct(string $keyType, string $valueType, array $data = [] $this->keyType = $keyType; $this->valueType = $valueType; - /** @psalm-suppress MixedArgumentTypeCoercion */ parent::__construct($data); } diff --git a/api/vendor/ramsey/collection/src/Queue.php b/api/vendor/ramsey/collection/src/Queue.php index 93e032b43..bc8c24e1c 100644 --- a/api/vendor/ramsey/collection/src/Queue.php +++ b/api/vendor/ramsey/collection/src/Queue.php @@ -37,17 +37,13 @@ class Queue extends AbstractArray implements QueueInterface * * A queue's type is immutable once it is set. For this reason, this * property is set private. - * - * @var string */ - private $queueType; + private string $queueType; /** * The index of the head of the queue. - * - * @var int */ - protected $index = 0; + protected int $index = 0; /** * Constructs a queue object of the specified type, optionally with the @@ -68,13 +64,15 @@ public function __construct(string $queueType, array $data = []) * Since arbitrary offsets may not be manipulated in a queue, this method * serves only to fulfill the `ArrayAccess` interface requirements. It is * invoked by other operations when adding values to the queue. + * + * @throws InvalidArgumentException if $value is of the wrong type */ public function offsetSet($offset, $value): void { if ($this->checkType($this->getType(), $value) === false) { throw new InvalidArgumentException( 'Value must be of type ' . $this->getType() . '; value is ' - . $this->toolValueToString($value) + . $this->toolValueToString($value), ); } @@ -82,6 +80,8 @@ public function offsetSet($offset, $value): void } /** + * @throws InvalidArgumentException if $value is of the wrong type + * * @inheritDoc */ public function add($element): bool @@ -100,7 +100,7 @@ public function element() if ($element === null) { throw new NoSuchElementException( - 'Can\'t return element from Queue. Queue is empty.' + 'Can\'t return element from Queue. Queue is empty.', ); } diff --git a/api/vendor/ramsey/collection/src/QueueInterface.php b/api/vendor/ramsey/collection/src/QueueInterface.php index 8c7383df8..4f91487fa 100644 --- a/api/vendor/ramsey/collection/src/QueueInterface.php +++ b/api/vendor/ramsey/collection/src/QueueInterface.php @@ -15,6 +15,7 @@ namespace Ramsey\Collection; use Ramsey\Collection\Exception\NoSuchElementException; +use RuntimeException; /** * A queue is a collection in which the entities in the collection are kept in @@ -123,7 +124,7 @@ interface QueueInterface extends ArrayInterface * * @return bool `true` if this queue changed as a result of the call. * - * @throws \RuntimeException if a queue refuses to add a particular element + * @throws RuntimeException if a queue refuses to add a particular element * for any reason other than that it already contains the element. * Implementations should use a more-specific exception that extends * `\RuntimeException`. diff --git a/api/vendor/ramsey/collection/src/Set.php b/api/vendor/ramsey/collection/src/Set.php index 6932f247a..c1d37ccca 100644 --- a/api/vendor/ramsey/collection/src/Set.php +++ b/api/vendor/ramsey/collection/src/Set.php @@ -44,10 +44,8 @@ class Set extends AbstractSet * The type of elements stored in this set * * A set's type is immutable. For this reason, this property is private. - * - * @var string */ - private $setType; + private string $setType; /** * Constructs a set object of the specified type, optionally with the diff --git a/api/vendor/ramsey/collection/src/Tool/TypeTrait.php b/api/vendor/ramsey/collection/src/Tool/TypeTrait.php index 8214e9654..728d44b65 100644 --- a/api/vendor/ramsey/collection/src/Tool/TypeTrait.php +++ b/api/vendor/ramsey/collection/src/Tool/TypeTrait.php @@ -36,6 +36,7 @@ trait TypeTrait * @param string $type The type to check the value against. * @param mixed $value The value to check. */ + // phpcs:ignore SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint protected function checkType(string $type, $value): bool { switch ($type) { diff --git a/api/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php b/api/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php index f9be1be28..e10824283 100644 --- a/api/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php +++ b/api/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php @@ -17,6 +17,7 @@ use Ramsey\Collection\Exception\ValueExtractionException; use function get_class; +use function is_object; use function method_exists; use function property_exists; use function sprintf; @@ -37,6 +38,7 @@ trait ValueExtractorTrait * * @throws ValueExtractionException if the method or property is not defined. */ + // phpcs:ignore SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint protected function extractValue($object, string $propertyOrMethod) { if (!is_object($object)) { @@ -52,7 +54,8 @@ protected function extractValue($object, string $propertyOrMethod) } throw new ValueExtractionException( - sprintf('Method or property "%s" not defined in %s', $propertyOrMethod, get_class($object)) + // phpcs:ignore SlevomatCodingStandard.Classes.ModernClassNameReference.ClassNameReferencedViaFunctionCall + sprintf('Method or property "%s" not defined in %s', $propertyOrMethod, get_class($object)), ); } } diff --git a/api/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php b/api/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php index 721ade002..cacefc8b6 100644 --- a/api/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php +++ b/api/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php @@ -21,8 +21,10 @@ use function is_array; use function is_bool; use function is_callable; +use function is_object; use function is_resource; use function is_scalar; +use function var_export; /** * Provides functionality to express a value as string @@ -44,6 +46,7 @@ trait ValueToStringTrait * * @param mixed $value the value to return as a string. */ + // phpcs:ignore SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint protected function toolValueToString($value): string { // null @@ -89,6 +92,7 @@ protected function toolValueToString($value): string } // unknown type + // phpcs:ignore SlevomatCodingStandard.Classes.ModernClassNameReference.ClassNameReferencedViaFunctionCall return '(' . get_class($value) . ' Object)'; } } diff --git a/api/vendor/react/promise/CHANGELOG.md b/api/vendor/react/promise/CHANGELOG.md index 81ffffbb4..c5d730359 100644 --- a/api/vendor/react/promise/CHANGELOG.md +++ b/api/vendor/react/promise/CHANGELOG.md @@ -1,162 +1,156 @@ -CHANGELOG for 2.x -================= +# Changelog + +## 3.2.0 (2024-05-24) + +* Feature: Improve PHP 8.4+ support by avoiding implicitly nullable type declarations. + (#260 by @Ayesh) + +* Feature: Include previous exceptions when reporting unhandled promise rejections. + (#262 by @clue) + +* Update test suite to improve PHP 8.4+ support. + (#261 by @SimonFrings) + +## 3.1.0 (2023-11-16) + +* Feature: Full PHP 8.3 compatibility. + (#255 by @clue) + +* Feature: Describe all callable arguments with types for `Promise` and `Deferred`. + (#253 by @clue) + +* Update test suite and minor documentation improvements. + (#251 by @ondrejmirtes and #250 by @SQKo) + +## 3.0.0 (2023-07-11) -* 2.8.0 (2020-05-12) +A major new feature release, see [**release announcement**](https://clue.engineering/2023/announcing-reactphp-promise-v3). - * Mark `FulfilledPromise`, `RejectedPromise` and `LazyPromise` as deprecated for Promise v2 (and remove for Promise v3). - (#143 and #165 by @clue) +* We'd like to emphasize that this component is production ready and battle-tested. + We plan to support all long-term support (LTS) releases for at least 24 months, + so you have a rock-solid foundation to build on top of. - ```php - // deprecated - $fulfilled = new React\Promise\FulfilledPromise($value); - $rejected = new React\Promise\RejectedPromise($reason); +* The v3 release will be the way forward for this package. However, we will still + actively support v2 and v1 to provide a smooth upgrade path for those not yet + on the latest versions. - // recommended alternatives - $fulfilled = React\Promise\resolve($value); - $rejected = React\Promise\reject($reason); - ``` +This update involves some major new features and a minor BC break over the +`v2.0.0` release. We've tried hard to avoid BC breaks where possible and +minimize impact otherwise. We expect that most consumers of this package will be +affected by BC breaks, but updating should take no longer than a few minutes. +See below for more details: - * Fix: Fix checking whether cancellable promise is an object and avoid possible warning. - (#168 by @smscr and @jsor) +* BC break: PHP 8.1+ recommended, PHP 7.1+ required. + (#138 and #149 by @WyriHaximus) - * Improve documentation and add docblocks to functions and interfaces. - (#135 by @CharlotteDunois) +* Feature / BC break: The `PromiseInterface` now includes the functionality of the old ~~`ExtendedPromiseInterface`~~ and ~~`CancellablePromiseInterface`~~. + Each promise now always includes the `then()`, `catch()`, `finally()` and `cancel()` methods. + The new `catch()` and `finally()` methods replace the deprecated ~~`otherwise()`~~ and ~~`always()`~~ methods which continue to exist for BC reasons. + The old ~~`ExtendedPromiseInterface`~~ and ~~`CancellablePromiseInterface`~~ are no longer needed and have been removed as a consequence. + (#75 by @jsor and #208 by @clue and @WyriHaximus) - * Add `.gitattributes` to exclude dev files from exports. - (#154 by @reedy) + ```php + // old (multiple interfaces may or may not be implemented) + assert($promise instanceof PromiseInterface); + assert(method_exists($promise, 'then')); + if ($promise instanceof ExtendedPromiseInterface) { assert(method_exists($promise, 'otherwise')); } + if ($promise instanceof ExtendedPromiseInterface) { assert(method_exists($promise, 'always')); } + if ($promise instanceof CancellablePromiseInterface) { assert(method_exists($promise, 'cancel')); } + + // new (single PromiseInterface with all methods) + assert($promise instanceof PromiseInterface); + assert(method_exists($promise, 'then')); + assert(method_exists($promise, 'catch')); + assert(method_exists($promise, 'finally')); + assert(method_exists($promise, 'cancel')); + ``` - * Improve test suite, run tests on PHP 7.4 and update PHPUnit test setup. - (#163 by @clue) +* Feature / BC break: Improve type safety of promises. Require `mixed` fulfillment value argument and `Throwable` (or `Exception`) as rejection reason. + Add PHPStan template types to ensure strict types for `resolve(T $value): PromiseInterface<T>` and `reject(Throwable $reason): PromiseInterface<never>`. + It is no longer possible to resolve a promise without a value (use `null` instead) or reject a promise without a reason (use `Throwable` instead). + (#93, #141 and #142 by @jsor, #138, #149 and #247 by @WyriHaximus and #213 and #246 by @clue) -* 2.7.1 (2018-01-07) + ```php + // old (arguments used to be optional) + $promise = resolve(); + $promise = reject(); + + // new (already supported before) + $promise = resolve(null); + $promise = reject(new RuntimeException()); + ``` - * Fix: file_exists warning when resolving with long strings. - (#130 by @sbesselsen) - * Improve performance by prefixing all global functions calls with \ to skip the look up and resolve process and go straight to the global function. - (#133 by @WyriHaximus) +* Feature / BC break: Report all unhandled rejections by default and remove ~~`done()`~~ method. + Add new `set_rejection_handler()` function to set the global rejection handler for unhandled promise rejections. + (#248, #249 and #224 by @clue) -* 2.7.0 (2018-06-13) + ```php + // Unhandled promise rejection with RuntimeException: Unhandled in example.php:2 + reject(new RuntimeException('Unhandled')); + ``` - * Feature: Improve memory consumption for pending promises by using static internal callbacks without binding to self. - (#124 by @clue) +* BC break: Remove all deprecated APIs and reduce API surface. + Remove ~~`some()`~~, ~~`map()`~~, ~~`reduce()`~~ functions, use `any()` and `all()` functions instead. + Remove internal ~~`FulfilledPromise`~~ and ~~`RejectedPromise`~~ classes, use `resolve()` and `reject()` functions instead. + Remove legacy promise progress API (deprecated third argument to `then()` method) and deprecated ~~`LazyPromise`~~ class. + (#32 and #98 by @jsor and #164, #219 and #220 by @clue) -* 2.6.0 (2018-06-11) +* BC break: Make all classes final to encourage composition over inheritance. + (#80 by @jsor) - * Feature: Significantly improve memory consumption and performance by only passing resolver args - to resolver and canceller if callback requires them. Also use static callbacks without - binding to promise, clean up canceller function reference when they are no longer - needed and hide resolver and canceller references from call stack on PHP 7+. - (#113, #115, #116, #117, #118, #119 and #123 by @clue) +* Feature / BC break: Require `array` (or `iterable`) type for `all()` + `race()` + `any()` functions and bring in line with ES6 specification. + These functions now require a single argument with a variable number of promises or values as input. + (#225 by @clue and #35 by @jsor) - These changes combined mean that rejecting promises with an `Exception` should - no longer cause any internal circular references which could cause some unexpected - memory growth in previous versions. By explicitly avoiding and explicitly - cleaning up said references, we can avoid relying on PHP's circular garbage collector - to kick in which significantly improves performance when rejecting many promises. +* Fix / BC break: Fix `race()` to return a forever pending promise when called with an empty `array` (or `iterable`) and bring in line with ES6 specification. + (#83 by @jsor and #225 by @clue) - * Mark legacy progress support / notification API as deprecated - (#112 by @clue) +* Minor performance improvements by initializing `Deferred` in the constructor and avoiding `call_user_func()` calls. + (#151 by @WyriHaximus and #171 by @Kubo2) - * Recommend rejecting promises by throwing an exception - (#114 by @jsor) +* Minor documentation improvements. + (#110 by @seregazhuk, #132 by @CharlotteDunois, #145 by @danielecr, #178 by @WyriHaximus, #189 by @srdante, #212 by @clue, #214, #239 and #243 by @SimonFrings and #231 by @nhedger) - * Improve documentation to properly instantiate LazyPromise - (#121 by @holtkamp) +The following changes had to be ported to this release due to our branching +strategy, but also appeared in the [`2.x` branch](https://github.com/reactphp/promise/tree/2.x): - * Follower cancellation propagation was originally planned for this release - but has been reverted for now and is planned for a future release. - (#99 by @jsor and #122 by @clue) +* Feature: Support union types and address deprecation of `ReflectionType::getClass()` (PHP 8+). + (#197 by @cdosoftei and @SimonFrings) -* 2.5.1 (2017-03-25) +* Feature: Support intersection types (PHP 8.1+). + (#209 by @bzikarsky) - * Fix circular references when resolving with a promise which follows - itself (#94). +* Feature: Support DNS types (PHP 8.2+). + (#236 by @nhedger) -* 2.5.0 (2016-12-22) +* Feature: Port all memory improvements from `2.x` to `3.x`. + (#150 by @clue and @WyriHaximus) - * Revert automatic cancellation of pending collection promises once the - output promise resolves. This was introduced in 42d86b7 (PR #36, released - in [v2.3.0](https://github.com/reactphp/promise/releases/tag/v2.3.0)) and - was both unintended and backward incompatible. +* Fix: Fix checking whether cancellable promise is an object and avoid possible warning. + (#161 by @smscr) - If you need automatic cancellation, you can use something like: +* Improve performance by prefixing all global functions calls with \ to skip the look up and resolve process and go straight to the global function. + (#134 by @WyriHaximus) - ```php - function allAndCancel(array $promises) - { - return \React\Promise\all($promises) - ->always(function() use ($promises) { - foreach ($promises as $promise) { - if ($promise instanceof \React\Promise\CancellablePromiseInterface) { - $promise->cancel(); - } - } - }); - } - ``` - * `all()` and `map()` functions now preserve the order of the array (#77). - * Fix circular references when resolving a promise with itself (#71). +* Improve test suite, update PHPUnit and PHP versions and add `.gitattributes` to exclude dev files from exports. + (#107 by @carusogabriel, #148 and #234 by @WyriHaximus, #153 by @reedy, #162, #230 and #240 by @clue, #173, #177, #185 and #199 by @SimonFrings, #193 by @woodongwong and #210 by @bzikarsky) + +The following changes were originally planned for this release but later reverted +and are not part of the final release: -* 2.4.1 (2016-05-03) +* Add iterative callback queue handler to avoid recursion (later removed to improve Fiber support). + (#28, #82 and #86 by @jsor, #158 by @WyriHaximus and #229 and #238 by @clue) - * Fix `some()` not cancelling pending promises when too much input promises - reject (16ff799). +* Trigger an `E_USER_ERROR` instead of throwing an exception from `done()` (later removed entire `done()` method to globally report unhandled rejections). + (#97 by @jsor and #224 and #248 by @clue) -* 2.4.0 (2016-03-31) +* Add type declarations for `some()` (later removed entire `some()` function). + (#172 by @WyriHaximus and #219 by @clue) - * Support foreign thenables in `resolve()`. - Any object that provides a `then()` method is now assimilated to a trusted - promise that follows the state of this thenable (#52). - * Fix `some()` and `any()` for input arrays containing not enough items - (#34). +## 2.0.0 (2013-12-10) -* 2.3.0 (2016-03-24) +See [`2.x` CHANGELOG](https://github.com/reactphp/promise/blob/2.x/CHANGELOG.md) for more details. - * Allow cancellation of promises returned by functions working on promise - collections (#36). - * Handle `\Throwable` in the same way as `\Exception` (#51 by @joshdifabio). +## 1.0.0 (2012-11-07) -* 2.2.2 (2016-02-26) - - * Fix cancellation handlers called multiple times (#47 by @clue). - -* 2.2.1 (2015-07-03) - - * Fix stack error when resolving a promise in its own fulfillment or - rejection handlers. - -* 2.2.0 (2014-12-30) - - * Introduce new `ExtendedPromiseInterface` implemented by all promises. - * Add new `done()` method (part of the `ExtendedPromiseInterface`). - * Add new `otherwise()` method (part of the `ExtendedPromiseInterface`). - * Add new `always()` method (part of the `ExtendedPromiseInterface`). - * Add new `progress()` method (part of the `ExtendedPromiseInterface`). - * Rename `Deferred::progress` to `Deferred::notify` to avoid confusion with - `ExtendedPromiseInterface::progress` (a `Deferred::progress` alias is - still available for backward compatibility) - * `resolve()` now always returns a `ExtendedPromiseInterface`. - -* 2.1.0 (2014-10-15) - - * Introduce new `CancellablePromiseInterface` implemented by all promises. - * Add new `cancel()` method (part of the `CancellablePromiseInterface`). - -* 2.0.0 (2013-12-10) - - New major release. The goal is to streamline the API and to make it more - compliant with other promise libraries and especially with the new upcoming - [ES6 promises specification](https://github.com/domenic/promises-unwrapping/). - - * Add standalone Promise class. - * Add new `race()` function. - * BC break: Bump minimum PHP version to PHP 5.4. - * BC break: Remove `ResolverInterface` and `PromiseInterface` from - `Deferred`. - * BC break: Change signature of `PromiseInterface`. - * BC break: Remove `When` and `Util` classes and move static methods to - functions. - * BC break: `FulfilledPromise` and `RejectedPromise` now throw an exception - when initialized with a promise instead of a value/reason. - * BC break: `Deferred::resolve()` and `Deferred::reject()` no longer return - a promise. +See [`1.x` CHANGELOG](https://github.com/reactphp/promise/blob/1.x/CHANGELOG.md) for more details. diff --git a/api/vendor/react/promise/LICENSE b/api/vendor/react/promise/LICENSE index 5919d20ff..21c1357b7 100644 --- a/api/vendor/react/promise/LICENSE +++ b/api/vendor/react/promise/LICENSE @@ -1,4 +1,6 @@ -Copyright (c) 2012-2016 Jan Sorgalla +The MIT License (MIT) + +Copyright (c) 2012 Jan Sorgalla, Christian Lück, Cees-Jan Kiewiet, Chris Boden Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/api/vendor/react/promise/README.md b/api/vendor/react/promise/README.md index 6588c7247..2108d982e 100644 --- a/api/vendor/react/promise/README.md +++ b/api/vendor/react/promise/README.md @@ -4,8 +4,8 @@ Promise A lightweight implementation of [CommonJS Promises/A](http://wiki.commonjs.org/wiki/Promises/A) for PHP. -[![Build Status](https://travis-ci.org/reactphp/promise.svg?branch=master)](http://travis-ci.org/reactphp/promise) -[![Coverage Status](https://coveralls.io/repos/github/reactphp/promise/badge.svg?branch=master)](https://coveralls.io/github/reactphp/promise?branch=master) +[![CI status](https://github.com/reactphp/promise/workflows/CI/badge.svg)](https://github.com/reactphp/promise/actions) +[![installs on Packagist](https://img.shields.io/packagist/dt/react/promise?color=blue&label=installs%20on%20Packagist)](https://packagist.org/packages/react/promise) Table of Contents ----------------- @@ -19,41 +19,31 @@ Table of Contents * [Deferred::promise()](#deferredpromise) * [Deferred::resolve()](#deferredresolve) * [Deferred::reject()](#deferredreject) - * [Deferred::notify()](#deferrednotify) * [PromiseInterface](#promiseinterface) * [PromiseInterface::then()](#promiseinterfacethen) - * [ExtendedPromiseInterface](#extendedpromiseinterface) - * [ExtendedPromiseInterface::done()](#extendedpromiseinterfacedone) - * [ExtendedPromiseInterface::otherwise()](#extendedpromiseinterfaceotherwise) - * [ExtendedPromiseInterface::always()](#extendedpromiseinterfacealways) - * [ExtendedPromiseInterface::progress()](#extendedpromiseinterfaceprogress) - * [CancellablePromiseInterface](#cancellablepromiseinterface) - * [CancellablePromiseInterface::cancel()](#cancellablepromiseinterfacecancel) + * [PromiseInterface::catch()](#promiseinterfacecatch) + * [PromiseInterface::finally()](#promiseinterfacefinally) + * [PromiseInterface::cancel()](#promiseinterfacecancel) + * [~~PromiseInterface::otherwise()~~](#promiseinterfaceotherwise) + * [~~PromiseInterface::always()~~](#promiseinterfacealways) * [Promise](#promise-2) - * [FulfilledPromise](#fulfilledpromise) - * [RejectedPromise](#rejectedpromise) - * [LazyPromise](#lazypromise) * [Functions](#functions) * [resolve()](#resolve) * [reject()](#reject) * [all()](#all) * [race()](#race) * [any()](#any) - * [some()](#some) - * [map()](#map) - * [reduce()](#reduce) - * [PromisorInterface](#promisorinterface) + * [set_rejection_handler()](#set_rejection_handler) 4. [Examples](#examples) * [How to use Deferred](#how-to-use-deferred) * [How promise forwarding works](#how-promise-forwarding-works) * [Resolution forwarding](#resolution-forwarding) * [Rejection forwarding](#rejection-forwarding) * [Mixed resolution and rejection forwarding](#mixed-resolution-and-rejection-forwarding) - * [Progress event forwarding](#progress-event-forwarding) - * [done() vs. then()](#done-vs-then) 5. [Install](#install) -6. [Credits](#credits) -7. [License](#license) +6. [Tests](#tests) +7. [Credits](#credits) +8. [License](#license) Introduction ------------ @@ -65,7 +55,7 @@ It also provides several other useful promise-related concepts, such as joining multiple promises and mapping and reducing collections of promises. If you've never heard about promises before, -[read this first](https://gist.github.com/3889970). +[read this first](https://gist.github.com/domenic/3889970). Concepts -------- @@ -95,17 +85,14 @@ $deferred = new React\Promise\Deferred(); $promise = $deferred->promise(); -$deferred->resolve(mixed $value = null); -$deferred->reject(mixed $reason = null); -$deferred->notify(mixed $update = null); +$deferred->resolve(mixed $value); +$deferred->reject(\Throwable $reason); ``` The `promise` method returns the promise of the deferred. The `resolve` and `reject` methods control the state of the deferred. -The deprecated `notify` method is for progress notification. - The constructor of the `Deferred` accepts an optional `$canceller` argument. See [Promise](#promise-2) for more information. @@ -121,7 +108,7 @@ keeping the authority to modify its state to yourself. #### Deferred::resolve() ```php -$deferred->resolve(mixed $value = null); +$deferred->resolve(mixed $value); ``` Resolves the promise returned by `promise()`. All consumers are notified by @@ -131,10 +118,12 @@ having `$onFulfilled` (which they registered via `$promise->then()`) called with If `$value` itself is a promise, the promise will transition to the state of this promise once it is resolved. +See also the [`resolve()` function](#resolve). + #### Deferred::reject() ```php -$deferred->reject(mixed $reason = null); +$deferred->reject(\Throwable $reason); ``` Rejects the promise returned by `promise()`, signalling that the deferred's @@ -142,27 +131,14 @@ computation failed. All consumers are notified by having `$onRejected` (which they registered via `$promise->then()`) called with `$reason`. -If `$reason` itself is a promise, the promise will be rejected with the outcome -of this promise regardless whether it fulfills or rejects. - -#### Deferred::notify() - -> Deprecated in v2.6.0: Progress support is deprecated and should not be used anymore. - -```php -$deferred->notify(mixed $update = null); -``` - -Triggers progress notifications, to indicate to consumers that the computation -is making progress toward its result. - -All consumers are notified by having `$onProgress` (which they registered via -`$promise->then()`) called with `$update`. +See also the [`reject()` function](#reject). ### PromiseInterface The promise interface provides the common interface for all promise implementations. +See [Promise](#promise-2) for the only public implementation exposed by this +package. A promise represents an eventual outcome, which is either fulfillment (success) and an associated value, or rejection (failure) and an associated reason. @@ -170,32 +146,22 @@ and an associated value, or rejection (failure) and an associated reason. Once in the fulfilled or rejected state, a promise becomes immutable. Neither its state nor its result (or error) can be modified. -#### Implementations - -* [Promise](#promise-2) -* [FulfilledPromise](#fulfilledpromise) (deprecated) -* [RejectedPromise](#rejectedpromise) (deprecated) -* [LazyPromise](#lazypromise) (deprecated) - #### PromiseInterface::then() ```php -$transformedPromise = $promise->then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null); +$transformedPromise = $promise->then(callable $onFulfilled = null, callable $onRejected = null); ``` Transforms a promise's value by applying a function to the promise's fulfillment or rejection value. Returns a new promise for the transformed result. -The `then()` method registers new fulfilled, rejection and progress handlers -with a promise (all parameters are optional): +The `then()` method registers new fulfilled and rejection handlers with a promise +(all parameters are optional): * `$onFulfilled` will be invoked once the promise is fulfilled and passed the result as the first argument. * `$onRejected` will be invoked once the promise is rejected and passed the reason as the first argument. - * `$onProgress` (deprecated) will be invoked whenever the producer of the promise - triggers progress notifications and passed a single argument (whatever it - wants) to indicate progress. It returns a new promise that will fulfill with the return value of either `$onFulfilled` or `$onRejected`, whichever is called, or will reject with @@ -208,51 +174,16 @@ the same call to `then()`: never both. 2. `$onFulfilled` and `$onRejected` will never be called more than once. - 3. `$onProgress` (deprecated) may be called multiple times. #### See also * [resolve()](#resolve) - Creating a resolved promise * [reject()](#reject) - Creating a rejected promise -* [ExtendedPromiseInterface::done()](#extendedpromiseinterfacedone) -* [done() vs. then()](#done-vs-then) - -### ExtendedPromiseInterface - -The ExtendedPromiseInterface extends the PromiseInterface with useful shortcut -and utility methods which are not part of the Promises/A specification. - -#### Implementations - -* [Promise](#promise-1) -* [FulfilledPromise](#fulfilledpromise) (deprecated) -* [RejectedPromise](#rejectedpromise) (deprecated) -* [LazyPromise](#lazypromise) (deprecated) - -#### ExtendedPromiseInterface::done() - -```php -$promise->done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null); -``` -Consumes the promise's ultimate value if the promise fulfills, or handles the -ultimate error. - -It will cause a fatal error if either `$onFulfilled` or `$onRejected` throw or -return a rejected promise. - -Since the purpose of `done()` is consumption rather than transformation, -`done()` always returns `null`. - -#### See also - -* [PromiseInterface::then()](#promiseinterfacethen) -* [done() vs. then()](#done-vs-then) - -#### ExtendedPromiseInterface::otherwise() +#### PromiseInterface::catch() ```php -$promise->otherwise(callable $onRejected); +$promise->catch(callable $onRejected); ``` Registers a rejection handler for promise. It is a shortcut for: @@ -266,19 +197,19 @@ only specific errors. ```php $promise - ->otherwise(function (\RuntimeException $reason) { + ->catch(function (\RuntimeException $reason) { // Only catch \RuntimeException instances // All other types of errors will propagate automatically }) - ->otherwise(function ($reason) { + ->catch(function (\Throwable $reason) { // Catch other errors - )}; + }); ``` -#### ExtendedPromiseInterface::always() +#### PromiseInterface::finally() ```php -$newPromise = $promise->always(callable $onFulfilledOrRejected); +$newPromise = $promise->finally(callable $onFulfilledOrRejected); ``` Allows you to execute "cleanup" type tasks in a promise chain. @@ -297,16 +228,16 @@ when the promise is either fulfilled or rejected. rejected promise, `$newPromise` will reject with the thrown exception or rejected promise's reason. -`always()` behaves similarly to the synchronous finally statement. When combined -with `otherwise()`, `always()` allows you to write code that is similar to the familiar +`finally()` behaves similarly to the synchronous finally statement. When combined +with `catch()`, `finally()` allows you to write code that is similar to the familiar synchronous catch/finally pair. Consider the following synchronous code: ```php try { - return doSomething(); -} catch(\Exception $e) { + return doSomething(); +} catch (\Throwable $e) { return handleError($e); } finally { cleanup(); @@ -318,48 +249,47 @@ written: ```php return doSomething() - ->otherwise('handleError') - ->always('cleanup'); + ->catch('handleError') + ->finally('cleanup'); ``` -#### ExtendedPromiseInterface::progress() - -> Deprecated in v2.6.0: Progress support is deprecated and should not be used anymore. +#### PromiseInterface::cancel() -```php -$promise->progress(callable $onProgress); +``` php +$promise->cancel(); ``` -Registers a handler for progress updates from promise. It is a shortcut for: +The `cancel()` method notifies the creator of the promise that there is no +further interest in the results of the operation. -```php -$promise->then(null, null, $onProgress); -``` +Once a promise is settled (either fulfilled or rejected), calling `cancel()` on +a promise has no effect. -### CancellablePromiseInterface +#### ~~PromiseInterface::otherwise()~~ -A cancellable promise provides a mechanism for consumers to notify the creator -of the promise that they are not longer interested in the result of an -operation. +> Deprecated since v3.0.0, see [`catch()`](#promiseinterfacecatch) instead. -#### CancellablePromiseInterface::cancel() +The `otherwise()` method registers a rejection handler for a promise. -``` php -$promise->cancel(); +This method continues to exist only for BC reasons and to ease upgrading +between versions. It is an alias for: + +```php +$promise->catch($onRejected); ``` -The `cancel()` method notifies the creator of the promise that there is no -further interest in the results of the operation. +#### ~~PromiseInterface::always()~~ -Once a promise is settled (either fulfilled or rejected), calling `cancel()` on -a promise has no effect. +> Deprecated since v3.0.0, see [`finally()`](#promiseinterfacefinally) instead. -#### Implementations +The `always()` method allows you to execute "cleanup" type tasks in a promise chain. -* [Promise](#promise-1) -* [FulfilledPromise](#fulfilledpromise) (deprecated) -* [RejectedPromise](#rejectedpromise) (deprecated) -* [LazyPromise](#lazypromise) (deprecated) +This method continues to exist only for BC reasons and to ease upgrading +between versions. It is an alias for: + +```php +$promise->finally($onFulfilledOrRejected); +``` ### Promise @@ -367,16 +297,14 @@ Creates a promise whose state is controlled by the functions passed to `$resolver`. ```php -$resolver = function (callable $resolve, callable $reject, callable $notify) { +$resolver = function (callable $resolve, callable $reject) { // Do some work, possibly asynchronously, and then - // resolve or reject. You can notify of progress events (deprecated) - // along the way if you want/need. + // resolve or reject. $resolve($awesomeResult); // or throw new Exception('Promise rejected'); // or $resolve($anotherPromise); // or $reject($nastyError); - // or $notify($progressNotification); }; $canceller = function () { @@ -390,7 +318,7 @@ $promise = new React\Promise\Promise($resolver, $canceller); ``` The promise constructor receives a resolver function and an optional canceller -function which both will be called with 3 arguments: +function which both will be called with two arguments: * `$resolve($value)` - Primary function that seals the fate of the returned promise. Accepts either a non-promise value, or another promise. @@ -399,7 +327,6 @@ function which both will be called with 3 arguments: fate will be equivalent to that of `$otherPromise`. * `$reject($reason)` - Function that rejects the promise. It is recommended to just throw an exception instead of using `$reject()`. - * `$notify($update)` - Deprecated function that issues progress events for the promise. If the resolver or canceller throw an exception, the promise will be rejected with that thrown exception as the rejection reason. @@ -407,108 +334,108 @@ with that thrown exception as the rejection reason. The resolver function will be called immediately, the canceller function only once all consumers called the `cancel()` method of the promise. -### FulfilledPromise - -> Deprecated in v2.8.0: External usage of `FulfilledPromise` is deprecated, use `resolve()` instead. - -Creates a already fulfilled promise. - -```php -$promise = React\Promise\FulfilledPromise($value); -``` - -Note, that `$value` **cannot** be a promise. It's recommended to use -[resolve()](#resolve) for creating resolved promises. +### Functions -### RejectedPromise +Useful functions for creating and joining collections of promises. -> Deprecated in v2.8.0: External usage of `RejectedPromise` is deprecated, use `reject()` instead. +All functions working on promise collections (like `all()`, `race()`, +etc.) support cancellation. This means, if you call `cancel()` on the returned +promise, all promises in the collection are cancelled. -Creates a already rejected promise. +#### resolve() ```php -$promise = React\Promise\RejectedPromise($reason); +$promise = React\Promise\resolve(mixed $promiseOrValue); ``` -Note, that `$reason` **cannot** be a promise. It's recommended to use -[reject()](#reject) for creating rejected promises. - -### LazyPromise - -> Deprecated in v2.8.0: LazyPromise is deprecated and should not be used anymore. +Creates a promise for the supplied `$promiseOrValue`. -Creates a promise which will be lazily initialized by `$factory` once a consumer -calls the `then()` method. +If `$promiseOrValue` is a value, it will be the resolution value of the +returned promise. -```php -$factory = function () { - $deferred = new React\Promise\Deferred(); +If `$promiseOrValue` is a thenable (any object that provides a `then()` method), +a trusted promise that follows the state of the thenable is returned. - // Do some heavy stuff here and resolve the deferred once completed +If `$promiseOrValue` is a promise, it will be returned as is. - return $deferred->promise(); -}; +The resulting `$promise` implements the [`PromiseInterface`](#promiseinterface) +and can be consumed like any other promise: -$promise = new React\Promise\LazyPromise($factory); +```php +$promise = React\Promise\resolve(42); -// $factory will only be executed once we call then() -$promise->then(function ($value) { +$promise->then(function (int $result): void { + var_dump($result); +}, function (\Throwable $e): void { + echo 'Error: ' . $e->getMessage() . PHP_EOL; }); ``` -### Functions - -Useful functions for creating, joining, mapping and reducing collections of -promises. - -All functions working on promise collections (like `all()`, `race()`, `some()` -etc.) support cancellation. This means, if you call `cancel()` on the returned -promise, all promises in the collection are cancelled. If the collection itself -is a promise which resolves to an array, this promise is also cancelled. - -#### resolve() +#### reject() ```php -$promise = React\Promise\resolve(mixed $promiseOrValue); +$promise = React\Promise\reject(\Throwable $reason); ``` -Creates a promise for the supplied `$promiseOrValue`. +Creates a rejected promise for the supplied `$reason`. -If `$promiseOrValue` is a value, it will be the resolution value of the -returned promise. +Note that the [`\Throwable`](https://www.php.net/manual/en/class.throwable.php) interface introduced in PHP 7 covers +both user land [`\Exception`](https://www.php.net/manual/en/class.exception.php)'s and +[`\Error`](https://www.php.net/manual/en/class.error.php) internal PHP errors. By enforcing `\Throwable` as reason to +reject a promise, any language error or user land exception can be used to reject a promise. -If `$promiseOrValue` is a thenable (any object that provides a `then()` method), -a trusted promise that follows the state of the thenable is returned. +The resulting `$promise` implements the [`PromiseInterface`](#promiseinterface) +and can be consumed like any other promise: -If `$promiseOrValue` is a promise, it will be returned as is. +```php +$promise = React\Promise\reject(new RuntimeException('Request failed')); -Note: The promise returned is always a promise implementing -[ExtendedPromiseInterface](#extendedpromiseinterface). If you pass in a custom -promise which only implements [PromiseInterface](#promiseinterface), this -promise will be assimilated to a extended promise following `$promiseOrValue`. +$promise->then(function (int $result): void { + var_dump($result); +}, function (\Throwable $e): void { + echo 'Error: ' . $e->getMessage() . PHP_EOL; +}); +``` -#### reject() +Note that rejected promises should always be handled similar to how any +exceptions should always be caught in a `try` + `catch` block. If you remove the +last reference to a rejected promise that has not been handled, it will +report an unhandled promise rejection: ```php -$promise = React\Promise\reject(mixed $promiseOrValue); -``` +function incorrect(): int +{ + $promise = React\Promise\reject(new RuntimeException('Request failed')); -Creates a rejected promise for the supplied `$promiseOrValue`. + // Commented out: No rejection handler registered here. + // $promise->then(null, function (\Throwable $e): void { /* ignore */ }); -If `$promiseOrValue` is a value, it will be the rejection value of the -returned promise. + // Returning from a function will remove all local variable references, hence why + // this will report an unhandled promise rejection here. + return 42; +} + +// Calling this function will log an error message plus its stack trace: +// Unhandled promise rejection with RuntimeException: Request failed in example.php:10 +incorrect(); +``` -If `$promiseOrValue` is a promise, its completion value will be the rejected -value of the returned promise. +A rejected promise will be considered "handled" if you catch the rejection +reason with either the [`then()` method](#promiseinterfacethen), the +[`catch()` method](#promiseinterfacecatch), or the +[`finally()` method](#promiseinterfacefinally). Note that each of these methods +return a new promise that may again be rejected if you re-throw an exception. -This can be useful in situations where you need to reject a promise without -throwing an exception. For example, it allows you to propagate a rejection with -the value of another promise. +A rejected promise will also be considered "handled" if you abort the operation +with the [`cancel()` method](#promiseinterfacecancel) (which in turn would +usually reject the promise if it is still pending). + +See also the [`set_rejection_handler()` function](#set_rejection_handler). #### all() ```php -$promise = React\Promise\all(array|React\Promise\PromiseInterface $promisesOrValues); +$promise = React\Promise\all(iterable $promisesOrValues); ``` Returns a promise that will resolve only once all the items in @@ -519,16 +446,19 @@ will be an array containing the resolution values of each of the items in #### race() ```php -$promise = React\Promise\race(array|React\Promise\PromiseInterface $promisesOrValues); +$promise = React\Promise\race(iterable $promisesOrValues); ``` Initiates a competitive race that allows one winner. Returns a promise which is resolved in the same way the first settled promise resolves. +The returned promise will become **infinitely pending** if `$promisesOrValues` +contains 0 items. + #### any() ```php -$promise = React\Promise\any(array|React\Promise\PromiseInterface $promisesOrValues); +$promise = React\Promise\any(iterable $promisesOrValues); ``` Returns a promise that will resolve when any one of the items in @@ -536,58 +466,52 @@ Returns a promise that will resolve when any one of the items in will be the resolution value of the triggering item. The returned promise will only reject if *all* items in `$promisesOrValues` are -rejected. The rejection value will be an array of all rejection reasons. +rejected. The rejection value will be a `React\Promise\Exception\CompositeException` +which holds all rejection reasons. The rejection reasons can be obtained with +`CompositeException::getThrowables()`. The returned promise will also reject with a `React\Promise\Exception\LengthException` if `$promisesOrValues` contains 0 items. -#### some() +#### set_rejection_handler() ```php -$promise = React\Promise\some(array|React\Promise\PromiseInterface $promisesOrValues, integer $howMany); +React\Promise\set_rejection_handler(?callable $callback): ?callable; ``` -Returns a promise that will resolve when `$howMany` of the supplied items in -`$promisesOrValues` resolve. The resolution value of the returned promise -will be an array of length `$howMany` containing the resolution values of the -triggering items. - -The returned promise will reject if it becomes impossible for `$howMany` items -to resolve (that is, when `(count($promisesOrValues) - $howMany) + 1` items -reject). The rejection value will be an array of -`(count($promisesOrValues) - $howMany) + 1` rejection reasons. - -The returned promise will also reject with a `React\Promise\Exception\LengthException` -if `$promisesOrValues` contains less items than `$howMany`. - -#### map() +Sets the global rejection handler for unhandled promise rejections. -```php -$promise = React\Promise\map(array|React\Promise\PromiseInterface $promisesOrValues, callable $mapFunc); -``` +Note that rejected promises should always be handled similar to how any +exceptions should always be caught in a `try` + `catch` block. If you remove +the last reference to a rejected promise that has not been handled, it will +report an unhandled promise rejection. See also the [`reject()` function](#reject) +for more details. -Traditional map function, similar to `array_map()`, but allows input to contain -promises and/or values, and `$mapFunc` may return either a value or a promise. +The `?callable $callback` argument MUST be a valid callback function that +accepts a single `Throwable` argument or a `null` value to restore the +default promise rejection handler. The return value of the callback function +will be ignored and has no effect, so you SHOULD return a `void` value. The +callback function MUST NOT throw or the program will be terminated with a +fatal error. -The map function receives each item as argument, where item is a fully resolved -value of a promise or value in `$promisesOrValues`. +The function returns the previous rejection handler or `null` if using the +default promise rejection handler. -#### reduce() +The default promise rejection handler will log an error message plus its stack +trace: ```php -$promise = React\Promise\reduce(array|React\Promise\PromiseInterface $promisesOrValues, callable $reduceFunc , $initialValue = null); +// Unhandled promise rejection with RuntimeException: Unhandled in example.php:2 +React\Promise\reject(new RuntimeException('Unhandled')); ``` -Traditional reduce function, similar to `array_reduce()`, but input may contain -promises and/or values, and `$reduceFunc` may return either a value or a -promise, *and* `$initialValue` may be a promise or a value for the starting -value. - -### PromisorInterface - -The `React\Promise\PromisorInterface` provides a common interface for objects -that provide a promise. `React\Promise\Deferred` implements it, but since it -is part of the public API anyone can implement it. +The promise rejection handler may be used to use customize the log message or +write to custom log targets. As a rule of thumb, this function should only be +used as a last resort and promise rejections are best handled with either the +[`then()` method](#promiseinterfacethen), the +[`catch()` method](#promiseinterfacecatch), or the +[`finally()` method](#promiseinterfacefinally). +See also the [`reject()` function](#reject) for more details. Examples -------- @@ -600,7 +524,7 @@ function getAwesomeResultPromise() $deferred = new React\Promise\Deferred(); // Execute a Node.js-style function using the callback pattern - computeAwesomeResultAsynchronously(function ($error, $result) use ($deferred) { + computeAwesomeResultAsynchronously(function (\Throwable $error, $result) use ($deferred) { if ($error) { $deferred->reject($error); } else { @@ -617,11 +541,8 @@ getAwesomeResultPromise() function ($value) { // Deferred resolved, do something with $value }, - function ($reason) { + function (\Throwable $reason) { // Deferred rejected, do something with $reason - }, - function ($update) { - // Progress notification triggered, do something with $update } ); ``` @@ -689,17 +610,17 @@ $deferred->promise() ->then(function ($x) { throw new \Exception($x + 1); }) - ->otherwise(function (\Exception $x) { + ->catch(function (\Exception $x) { // Propagate the rejection throw $x; }) - ->otherwise(function (\Exception $x) { + ->catch(function (\Exception $x) { // Can also propagate by returning another rejection return React\Promise\reject( new \Exception($x->getMessage() + 1) ); }) - ->otherwise(function ($x) { + ->catch(function ($x) { echo 'Reject ' . $x->getMessage(); // 3 }); @@ -721,7 +642,7 @@ $deferred->promise() ->then(function ($x) { throw new \Exception($x + 1); }) - ->otherwise(function (\Exception $x) { + ->catch(function (\Exception $x) { // Handle the rejection, and don't propagate. // This is like catch without a rethrow return $x->getMessage() + 1; @@ -733,132 +654,57 @@ $deferred->promise() $deferred->resolve(1); // Prints "Mixed 4" ``` -#### Progress event forwarding - -> Deprecated in v2.6.0: Progress support is deprecated and should not be used anymore. - -In the same way as resolution and rejection handlers, your progress handler -**MUST** return a progress event to be propagated to the next link in the chain. -If you return nothing, `null` will be propagated. - -Also in the same way as resolutions and rejections, if you don't register a -progress handler, the update will be propagated through. - -If your progress handler throws an exception, the exception will be propagated -to the next link in the chain. The best thing to do is to ensure your progress -handlers do not throw exceptions. - -This gives you the opportunity to transform progress events at each step in the -chain so that they are meaningful to the next step. It also allows you to choose -not to transform them, and simply let them propagate untransformed, by not -registering a progress handler. +Install +------- -```php -$deferred = new React\Promise\Deferred(); +The recommended way to install this library is [through Composer](https://getcomposer.org/). +[New to Composer?](https://getcomposer.org/doc/00-intro.md) -$deferred->promise() - ->progress(function ($update) { - return $update + 1; - }) - ->progress(function ($update) { - echo 'Progress ' . $update; // 2 - }); +This project follows [SemVer](https://semver.org/). +This will install the latest supported version from this branch: -$deferred->notify(1); // Prints "Progress 2" +```bash +composer require react/promise:^3.2 ``` -### done() vs. then() - -The golden rule is: - - Either return your promise, or call done() on it. - -At a first glance, `then()` and `done()` seem very similar. However, there are -important distinctions. - -The intent of `then()` is to transform a promise's value and to pass or return -a new promise for the transformed value along to other parts of your code. - -The intent of `done()` is to consume a promise's value, transferring -responsibility for the value to your code. - -In addition to transforming a value, `then()` allows you to recover from, or -propagate intermediate errors. Any errors that are not handled will be caught -by the promise machinery and used to reject the promise returned by `then()`. - -Calling `done()` transfers all responsibility for errors to your code. If an -error (either a thrown exception or returned rejection) escapes the -`$onFulfilled` or `$onRejected` callbacks you provide to done, it will be -rethrown in an uncatchable way causing a fatal error. +See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades. -```php -function getJsonResult() -{ - return queryApi() - ->then( - // Transform API results to an object - function ($jsonResultString) { - return json_decode($jsonResultString); - }, - // Transform API errors to an exception - function ($jsonErrorString) { - $object = json_decode($jsonErrorString); - throw new ApiErrorException($object->errorMessage); - } - ); -} +This project aims to run on any platform and thus does not require any PHP +extensions and supports running on PHP 7.1 through current PHP 8+. +It's *highly recommended to use the latest supported PHP version* for this project. -// Here we provide no rejection handler. If the promise returned has been -// rejected, the ApiErrorException will be thrown -getJsonResult() - ->done( - // Consume transformed object - function ($jsonResultObject) { - // Do something with $jsonResultObject - } - ); +We're committed to providing long-term support (LTS) options and to provide a +smooth upgrade path. If you're using an older PHP version, you may use the +[`2.x` branch](https://github.com/reactphp/promise/tree/2.x) (PHP 5.4+) or +[`1.x` branch](https://github.com/reactphp/promise/tree/1.x) (PHP 5.3+) which both +provide a compatible API but do not take advantage of newer language features. +You may target multiple versions at the same time to support a wider range of +PHP versions like this: -// Here we provide a rejection handler which will either throw while debugging -// or log the exception -getJsonResult() - ->done( - function ($jsonResultObject) { - // Do something with $jsonResultObject - }, - function (ApiErrorException $exception) { - if (isDebug()) { - throw $exception; - } else { - logException($exception); - } - } - ); +```bash +composer require "react/promise:^3 || ^2 || ^1" ``` -Note that if a rejection value is not an instance of `\Exception`, it will be -wrapped in an exception of the type `React\Promise\UnhandledRejectionException`. +## Tests -You can get the original rejection reason by calling `$exception->getReason()`. - -Install -------- +To run the test suite, you first need to clone this repo and then install all +dependencies [through Composer](https://getcomposer.org/): -The recommended way to install this library is [through Composer](https://getcomposer.org). -[New to Composer?](https://getcomposer.org/doc/00-intro.md) +```bash +composer install +``` -This project follows [SemVer](https://semver.org/). -This will install the latest supported version: +To run the test suite, go to the project root and run: ```bash -$ composer require react/promise:^2.8 +vendor/bin/phpunit ``` -See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades. +On top of this, we use PHPStan on max level to ensure type safety across the project: -This project aims to run on any platform and thus does not require any PHP -extensions and supports running on legacy PHP 5.4 through current PHP 7+ and HHVM. -It's *highly recommended to use PHP 7+* for this project due to its vast -performance improvements. +```bash +vendor/bin/phpstan +``` Credits ------- diff --git a/api/vendor/react/promise/composer.json b/api/vendor/react/promise/composer.json index b3e723a7a..5d1e27710 100644 --- a/api/vendor/react/promise/composer.json +++ b/api/vendor/react/promise/composer.json @@ -3,24 +3,52 @@ "description": "A lightweight implementation of CommonJS Promises/A for PHP", "license": "MIT", "authors": [ - {"name": "Jan Sorgalla", "email": "jsorgalla@gmail.com"} + { + "name": "Jan Sorgalla", + "homepage": "https://sorgalla.com/", + "email": "jsorgalla@gmail.com" + }, + { + "name": "Christian Lück", + "homepage": "https://clue.engineering/", + "email": "christian@clue.engineering" + }, + { + "name": "Cees-Jan Kiewiet", + "homepage": "https://wyrihaximus.net/", + "email": "reactphp@ceesjankiewiet.nl" + }, + { + "name": "Chris Boden", + "homepage": "https://cboden.dev/", + "email": "cboden@gmail.com" + } ], "require": { - "php": ">=5.4.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" }, "autoload": { "psr-4": { "React\\Promise\\": "src/" }, - "files": ["src/functions_include.php"] + "files": [ + "src/functions_include.php" + ] }, "autoload-dev": { "psr-4": { - "React\\Promise\\": ["tests", "tests/fixtures"] - } + "React\\Promise\\": [ + "tests/fixtures/", + "tests/" + ] + }, + "files": [ + "tests/Fiber.php" + ] }, "keywords": [ "promise", diff --git a/api/vendor/react/promise/src/CancellablePromiseInterface.php b/api/vendor/react/promise/src/CancellablePromiseInterface.php deleted file mode 100644 index 6b3a8c65d..000000000 --- a/api/vendor/react/promise/src/CancellablePromiseInterface.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php - -namespace React\Promise; - -interface CancellablePromiseInterface extends PromiseInterface -{ - /** - * The `cancel()` method notifies the creator of the promise that there is no - * further interest in the results of the operation. - * - * Once a promise is settled (either fulfilled or rejected), calling `cancel()` on - * a promise has no effect. - * - * @return void - */ - public function cancel(); -} diff --git a/api/vendor/react/promise/src/CancellationQueue.php b/api/vendor/react/promise/src/CancellationQueue.php deleted file mode 100644 index a381e9780..000000000 --- a/api/vendor/react/promise/src/CancellationQueue.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php - -namespace React\Promise; - -class CancellationQueue -{ - private $started = false; - private $queue = []; - - public function __invoke() - { - if ($this->started) { - return; - } - - $this->started = true; - $this->drain(); - } - - public function enqueue($cancellable) - { - if (!\is_object($cancellable) || !\method_exists($cancellable, 'then') || !\method_exists($cancellable, 'cancel')) { - return; - } - - $length = \array_push($this->queue, $cancellable); - - if ($this->started && 1 === $length) { - $this->drain(); - } - } - - private function drain() - { - for ($i = key($this->queue); isset($this->queue[$i]); $i++) { - $cancellable = $this->queue[$i]; - - $exception = null; - - try { - $cancellable->cancel(); - } catch (\Throwable $exception) { - } catch (\Exception $exception) { - } - - unset($this->queue[$i]); - - if ($exception) { - throw $exception; - } - } - - $this->queue = []; - } -} diff --git a/api/vendor/react/promise/src/Deferred.php b/api/vendor/react/promise/src/Deferred.php index 3ca034b85..80b8fcfbd 100644 --- a/api/vendor/react/promise/src/Deferred.php +++ b/api/vendor/react/promise/src/Deferred.php @@ -2,64 +2,51 @@ namespace React\Promise; -class Deferred implements PromisorInterface +/** + * @template T + */ +final class Deferred { + /** + * @var PromiseInterface<T> + */ private $promise; + + /** @var callable(T):void */ private $resolveCallback; + + /** @var callable(\Throwable):void */ private $rejectCallback; - private $notifyCallback; - private $canceller; - public function __construct(callable $canceller = null) + /** + * @param (callable(callable(T):void,callable(\Throwable):void):void)|null $canceller + */ + public function __construct(?callable $canceller = null) { - $this->canceller = $canceller; + $this->promise = new Promise(function ($resolve, $reject): void { + $this->resolveCallback = $resolve; + $this->rejectCallback = $reject; + }, $canceller); } - public function promise() + /** + * @return PromiseInterface<T> + */ + public function promise(): PromiseInterface { - if (null === $this->promise) { - $this->promise = new Promise(function ($resolve, $reject, $notify) { - $this->resolveCallback = $resolve; - $this->rejectCallback = $reject; - $this->notifyCallback = $notify; - }, $this->canceller); - $this->canceller = null; - } - return $this->promise; } - public function resolve($value = null) - { - $this->promise(); - - \call_user_func($this->resolveCallback, $value); - } - - public function reject($reason = null) - { - $this->promise(); - - \call_user_func($this->rejectCallback, $reason); - } - /** - * @deprecated 2.6.0 Progress support is deprecated and should not be used anymore. - * @param mixed $update + * @param T $value */ - public function notify($update = null) + public function resolve($value): void { - $this->promise(); - - \call_user_func($this->notifyCallback, $update); + ($this->resolveCallback)($value); } - /** - * @deprecated 2.2.0 - * @see Deferred::notify() - */ - public function progress($update = null) + public function reject(\Throwable $reason): void { - $this->notify($update); + ($this->rejectCallback)($reason); } } diff --git a/api/vendor/react/promise/src/Exception/CompositeException.php b/api/vendor/react/promise/src/Exception/CompositeException.php new file mode 100644 index 000000000..2e672a04a --- /dev/null +++ b/api/vendor/react/promise/src/Exception/CompositeException.php @@ -0,0 +1,32 @@ +<?php + +namespace React\Promise\Exception; + +/** + * Represents an exception that is a composite of one or more other exceptions. + * + * This exception is useful in situations where a promise must be rejected + * with multiple exceptions. It is used for example to reject the returned + * promise from `some()` and `any()` when too many input promises reject. + */ +class CompositeException extends \Exception +{ + /** @var \Throwable[] */ + private $throwables; + + /** @param \Throwable[] $throwables */ + public function __construct(array $throwables, string $message = '', int $code = 0, ?\Throwable $previous = null) + { + parent::__construct($message, $code, $previous); + + $this->throwables = $throwables; + } + + /** + * @return \Throwable[] + */ + public function getThrowables(): array + { + return $this->throwables; + } +} diff --git a/api/vendor/react/promise/src/ExtendedPromiseInterface.php b/api/vendor/react/promise/src/ExtendedPromiseInterface.php deleted file mode 100644 index 13b636917..000000000 --- a/api/vendor/react/promise/src/ExtendedPromiseInterface.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -namespace React\Promise; - -interface ExtendedPromiseInterface extends PromiseInterface -{ - /** - * Consumes the promise's ultimate value if the promise fulfills, or handles the - * ultimate error. - * - * It will cause a fatal error if either `$onFulfilled` or - * `$onRejected` throw or return a rejected promise. - * - * Since the purpose of `done()` is consumption rather than transformation, - * `done()` always returns `null`. - * - * @param callable|null $onFulfilled - * @param callable|null $onRejected - * @param callable|null $onProgress This argument is deprecated and should not be used anymore. - * @return void - */ - public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null); - - /** - * Registers a rejection handler for promise. It is a shortcut for: - * - * ```php - * $promise->then(null, $onRejected); - * ``` - * - * Additionally, you can type hint the `$reason` argument of `$onRejected` to catch - * only specific errors. - * - * @param callable $onRejected - * @return ExtendedPromiseInterface - */ - public function otherwise(callable $onRejected); - - /** - * Allows you to execute "cleanup" type tasks in a promise chain. - * - * It arranges for `$onFulfilledOrRejected` to be called, with no arguments, - * when the promise is either fulfilled or rejected. - * - * * If `$promise` fulfills, and `$onFulfilledOrRejected` returns successfully, - * `$newPromise` will fulfill with the same value as `$promise`. - * * If `$promise` fulfills, and `$onFulfilledOrRejected` throws or returns a - * rejected promise, `$newPromise` will reject with the thrown exception or - * rejected promise's reason. - * * If `$promise` rejects, and `$onFulfilledOrRejected` returns successfully, - * `$newPromise` will reject with the same reason as `$promise`. - * * If `$promise` rejects, and `$onFulfilledOrRejected` throws or returns a - * rejected promise, `$newPromise` will reject with the thrown exception or - * rejected promise's reason. - * - * `always()` behaves similarly to the synchronous finally statement. When combined - * with `otherwise()`, `always()` allows you to write code that is similar to the familiar - * synchronous catch/finally pair. - * - * Consider the following synchronous code: - * - * ```php - * try { - * return doSomething(); - * } catch(\Exception $e) { - * return handleError($e); - * } finally { - * cleanup(); - * } - * ``` - * - * Similar asynchronous code (with `doSomething()` that returns a promise) can be - * written: - * - * ```php - * return doSomething() - * ->otherwise('handleError') - * ->always('cleanup'); - * ``` - * - * @param callable $onFulfilledOrRejected - * @return ExtendedPromiseInterface - */ - public function always(callable $onFulfilledOrRejected); - - /** - * Registers a handler for progress updates from promise. It is a shortcut for: - * - * ```php - * $promise->then(null, null, $onProgress); - * ``` - * - * @param callable $onProgress - * @return ExtendedPromiseInterface - * @deprecated 2.6.0 Progress support is deprecated and should not be used anymore. - */ - public function progress(callable $onProgress); -} diff --git a/api/vendor/react/promise/src/FulfilledPromise.php b/api/vendor/react/promise/src/FulfilledPromise.php deleted file mode 100644 index 147275277..000000000 --- a/api/vendor/react/promise/src/FulfilledPromise.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php - -namespace React\Promise; - -/** - * @deprecated 2.8.0 External usage of FulfilledPromise is deprecated, use `resolve()` instead. - */ -class FulfilledPromise implements ExtendedPromiseInterface, CancellablePromiseInterface -{ - private $value; - - public function __construct($value = null) - { - if ($value instanceof PromiseInterface) { - throw new \InvalidArgumentException('You cannot create React\Promise\FulfilledPromise with a promise. Use React\Promise\resolve($promiseOrValue) instead.'); - } - - $this->value = $value; - } - - public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - if (null === $onFulfilled) { - return $this; - } - - try { - return resolve($onFulfilled($this->value)); - } catch (\Throwable $exception) { - return new RejectedPromise($exception); - } catch (\Exception $exception) { - return new RejectedPromise($exception); - } - } - - public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - if (null === $onFulfilled) { - return; - } - - $result = $onFulfilled($this->value); - - if ($result instanceof ExtendedPromiseInterface) { - $result->done(); - } - } - - public function otherwise(callable $onRejected) - { - return $this; - } - - public function always(callable $onFulfilledOrRejected) - { - return $this->then(function ($value) use ($onFulfilledOrRejected) { - return resolve($onFulfilledOrRejected())->then(function () use ($value) { - return $value; - }); - }); - } - - public function progress(callable $onProgress) - { - return $this; - } - - public function cancel() - { - } -} diff --git a/api/vendor/react/promise/src/Internal/CancellationQueue.php b/api/vendor/react/promise/src/Internal/CancellationQueue.php new file mode 100644 index 000000000..604b19c85 --- /dev/null +++ b/api/vendor/react/promise/src/Internal/CancellationQueue.php @@ -0,0 +1,64 @@ +<?php + +namespace React\Promise\Internal; + +/** + * @internal + */ +final class CancellationQueue +{ + /** @var bool */ + private $started = false; + + /** @var object[] */ + private $queue = []; + + public function __invoke(): void + { + if ($this->started) { + return; + } + + $this->started = true; + $this->drain(); + } + + /** + * @param mixed $cancellable + */ + public function enqueue($cancellable): void + { + if (!\is_object($cancellable) || !\method_exists($cancellable, 'then') || !\method_exists($cancellable, 'cancel')) { + return; + } + + $length = \array_push($this->queue, $cancellable); + + if ($this->started && 1 === $length) { + $this->drain(); + } + } + + private function drain(): void + { + for ($i = \key($this->queue); isset($this->queue[$i]); $i++) { + $cancellable = $this->queue[$i]; + assert(\method_exists($cancellable, 'cancel')); + + $exception = null; + + try { + $cancellable->cancel(); + } catch (\Throwable $exception) { + } + + unset($this->queue[$i]); + + if ($exception) { + throw $exception; + } + } + + $this->queue = []; + } +} diff --git a/api/vendor/react/promise/src/Internal/FulfilledPromise.php b/api/vendor/react/promise/src/Internal/FulfilledPromise.php new file mode 100644 index 000000000..8664ffdb6 --- /dev/null +++ b/api/vendor/react/promise/src/Internal/FulfilledPromise.php @@ -0,0 +1,89 @@ +<?php + +namespace React\Promise\Internal; + +use React\Promise\PromiseInterface; +use function React\Promise\resolve; + +/** + * @internal + * + * @template T + * @template-implements PromiseInterface<T> + */ +final class FulfilledPromise implements PromiseInterface +{ + /** @var T */ + private $value; + + /** + * @param T $value + * @throws \InvalidArgumentException + */ + public function __construct($value = null) + { + if ($value instanceof PromiseInterface) { + throw new \InvalidArgumentException('You cannot create React\Promise\FulfilledPromise with a promise. Use React\Promise\resolve($promiseOrValue) instead.'); + } + + $this->value = $value; + } + + /** + * @template TFulfilled + * @param ?(callable((T is void ? null : T)): (PromiseInterface<TFulfilled>|TFulfilled)) $onFulfilled + * @return PromiseInterface<($onFulfilled is null ? T : TFulfilled)> + */ + public function then(?callable $onFulfilled = null, ?callable $onRejected = null): PromiseInterface + { + if (null === $onFulfilled) { + return $this; + } + + try { + /** + * @var PromiseInterface<T>|T $result + */ + $result = $onFulfilled($this->value); + return resolve($result); + } catch (\Throwable $exception) { + return new RejectedPromise($exception); + } + } + + public function catch(callable $onRejected): PromiseInterface + { + return $this; + } + + public function finally(callable $onFulfilledOrRejected): PromiseInterface + { + return $this->then(function ($value) use ($onFulfilledOrRejected): PromiseInterface { + return resolve($onFulfilledOrRejected())->then(function () use ($value) { + return $value; + }); + }); + } + + public function cancel(): void + { + } + + /** + * @deprecated 3.0.0 Use `catch()` instead + * @see self::catch() + */ + public function otherwise(callable $onRejected): PromiseInterface + { + return $this->catch($onRejected); + } + + /** + * @deprecated 3.0.0 Use `finally()` instead + * @see self::finally() + */ + public function always(callable $onFulfilledOrRejected): PromiseInterface + { + return $this->finally($onFulfilledOrRejected); + } +} diff --git a/api/vendor/react/promise/src/Internal/RejectedPromise.php b/api/vendor/react/promise/src/Internal/RejectedPromise.php new file mode 100644 index 000000000..aa1dff308 --- /dev/null +++ b/api/vendor/react/promise/src/Internal/RejectedPromise.php @@ -0,0 +1,128 @@ +<?php + +namespace React\Promise\Internal; + +use React\Promise\PromiseInterface; +use function React\Promise\_checkTypehint; +use function React\Promise\resolve; +use function React\Promise\set_rejection_handler; + +/** + * @internal + * + * @template-implements PromiseInterface<never> + */ +final class RejectedPromise implements PromiseInterface +{ + /** @var \Throwable */ + private $reason; + + /** @var bool */ + private $handled = false; + + /** + * @param \Throwable $reason + */ + public function __construct(\Throwable $reason) + { + $this->reason = $reason; + } + + /** @throws void */ + public function __destruct() + { + if ($this->handled) { + return; + } + + $handler = set_rejection_handler(null); + if ($handler === null) { + $message = 'Unhandled promise rejection with ' . $this->reason; + + \error_log($message); + return; + } + + try { + $handler($this->reason); + } catch (\Throwable $e) { + \preg_match('/^([^:\s]++)(.*+)$/sm', (string) $e, $match); + \assert(isset($match[1], $match[2])); + $message = 'Fatal error: Uncaught ' . $match[1] . ' from unhandled promise rejection handler' . $match[2]; + + \error_log($message); + exit(255); + } + } + + /** + * @template TRejected + * @param ?callable $onFulfilled + * @param ?(callable(\Throwable): (PromiseInterface<TRejected>|TRejected)) $onRejected + * @return PromiseInterface<($onRejected is null ? never : TRejected)> + */ + public function then(?callable $onFulfilled = null, ?callable $onRejected = null): PromiseInterface + { + if (null === $onRejected) { + return $this; + } + + $this->handled = true; + + try { + return resolve($onRejected($this->reason)); + } catch (\Throwable $exception) { + return new RejectedPromise($exception); + } + } + + /** + * @template TThrowable of \Throwable + * @template TRejected + * @param callable(TThrowable): (PromiseInterface<TRejected>|TRejected) $onRejected + * @return PromiseInterface<TRejected> + */ + public function catch(callable $onRejected): PromiseInterface + { + if (!_checkTypehint($onRejected, $this->reason)) { + return $this; + } + + /** + * @var callable(\Throwable):(PromiseInterface<TRejected>|TRejected) $onRejected + */ + return $this->then(null, $onRejected); + } + + public function finally(callable $onFulfilledOrRejected): PromiseInterface + { + return $this->then(null, function (\Throwable $reason) use ($onFulfilledOrRejected): PromiseInterface { + return resolve($onFulfilledOrRejected())->then(function () use ($reason): PromiseInterface { + return new RejectedPromise($reason); + }); + }); + } + + public function cancel(): void + { + $this->handled = true; + } + + /** + * @deprecated 3.0.0 Use `catch()` instead + * @see self::catch() + */ + public function otherwise(callable $onRejected): PromiseInterface + { + return $this->catch($onRejected); + } + + /** + * @deprecated 3.0.0 Use `always()` instead + * @see self::always() + */ + public function always(callable $onFulfilledOrRejected): PromiseInterface + { + return $this->finally($onFulfilledOrRejected); + } +} diff --git a/api/vendor/react/promise/src/LazyPromise.php b/api/vendor/react/promise/src/LazyPromise.php deleted file mode 100644 index bbe9293e1..000000000 --- a/api/vendor/react/promise/src/LazyPromise.php +++ /dev/null @@ -1,66 +0,0 @@ -<?php - -namespace React\Promise; - -/** - * @deprecated 2.8.0 LazyPromise is deprecated and should not be used anymore. - */ -class LazyPromise implements ExtendedPromiseInterface, CancellablePromiseInterface -{ - private $factory; - private $promise; - - public function __construct(callable $factory) - { - $this->factory = $factory; - } - - public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - return $this->promise()->then($onFulfilled, $onRejected, $onProgress); - } - - public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - return $this->promise()->done($onFulfilled, $onRejected, $onProgress); - } - - public function otherwise(callable $onRejected) - { - return $this->promise()->otherwise($onRejected); - } - - public function always(callable $onFulfilledOrRejected) - { - return $this->promise()->always($onFulfilledOrRejected); - } - - public function progress(callable $onProgress) - { - return $this->promise()->progress($onProgress); - } - - public function cancel() - { - return $this->promise()->cancel(); - } - - /** - * @internal - * @see Promise::settle() - */ - public function promise() - { - if (null === $this->promise) { - try { - $this->promise = resolve(\call_user_func($this->factory)); - } catch (\Throwable $exception) { - $this->promise = new RejectedPromise($exception); - } catch (\Exception $exception) { - $this->promise = new RejectedPromise($exception); - } - } - - return $this->promise; - } -} diff --git a/api/vendor/react/promise/src/Promise.php b/api/vendor/react/promise/src/Promise.php index 33759e6fe..4ac27007c 100644 --- a/api/vendor/react/promise/src/Promise.php +++ b/api/vendor/react/promise/src/Promise.php @@ -2,18 +2,34 @@ namespace React\Promise; -class Promise implements ExtendedPromiseInterface, CancellablePromiseInterface +use React\Promise\Internal\RejectedPromise; + +/** + * @template T + * @template-implements PromiseInterface<T> + */ +final class Promise implements PromiseInterface { + /** @var (callable(callable(T):void,callable(\Throwable):void):void)|null */ private $canceller; + + /** @var ?PromiseInterface<T> */ private $result; + /** @var list<callable(PromiseInterface<T>):void> */ private $handlers = []; - private $progressHandlers = []; + /** @var int */ private $requiredCancelRequests = 0; - private $cancelRequests = 0; - public function __construct(callable $resolver, callable $canceller = null) + /** @var bool */ + private $cancelled = false; + + /** + * @param callable(callable(T):void,callable(\Throwable):void):void $resolver + * @param (callable(callable(T):void,callable(\Throwable):void):void)|null $canceller + */ + public function __construct(callable $resolver, ?callable $canceller = null) { $this->canceller = $canceller; @@ -25,14 +41,14 @@ public function __construct(callable $resolver, callable $canceller = null) $this->call($cb); } - public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) + public function then(?callable $onFulfilled = null, ?callable $onRejected = null): PromiseInterface { if (null !== $this->result) { - return $this->result->then($onFulfilled, $onRejected, $onProgress); + return $this->result->then($onFulfilled, $onRejected); } if (null === $this->canceller) { - return new static($this->resolver($onFulfilled, $onRejected, $onProgress)); + return new static($this->resolver($onFulfilled, $onRejected)); } // This promise has a canceller, so we create a new child promise which @@ -44,9 +60,12 @@ public function then(callable $onFulfilled = null, callable $onRejected = null, ++$parent->requiredCancelRequests; return new static( - $this->resolver($onFulfilled, $onRejected, $onProgress), - static function () use (&$parent) { - if (++$parent->cancelRequests >= $parent->requiredCancelRequests) { + $this->resolver($onFulfilled, $onRejected), + static function () use (&$parent): void { + assert($parent instanceof self); + --$parent->requiredCancelRequests; + + if ($parent->requiredCancelRequests <= 0) { $parent->cancel(); } @@ -55,91 +74,116 @@ static function () use (&$parent) { ); } - public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - if (null !== $this->result) { - return $this->result->done($onFulfilled, $onRejected, $onProgress); - } - - $this->handlers[] = static function (ExtendedPromiseInterface $promise) use ($onFulfilled, $onRejected) { - $promise - ->done($onFulfilled, $onRejected); - }; - - if ($onProgress) { - $this->progressHandlers[] = $onProgress; - } - } - - public function otherwise(callable $onRejected) + /** + * @template TThrowable of \Throwable + * @template TRejected + * @param callable(TThrowable): (PromiseInterface<TRejected>|TRejected) $onRejected + * @return PromiseInterface<T|TRejected> + */ + public function catch(callable $onRejected): PromiseInterface { - return $this->then(null, static function ($reason) use ($onRejected) { + return $this->then(null, static function (\Throwable $reason) use ($onRejected) { if (!_checkTypehint($onRejected, $reason)) { return new RejectedPromise($reason); } + /** + * @var callable(\Throwable):(PromiseInterface<TRejected>|TRejected) $onRejected + */ return $onRejected($reason); }); } - public function always(callable $onFulfilledOrRejected) + public function finally(callable $onFulfilledOrRejected): PromiseInterface { - return $this->then(static function ($value) use ($onFulfilledOrRejected) { + return $this->then(static function ($value) use ($onFulfilledOrRejected): PromiseInterface { return resolve($onFulfilledOrRejected())->then(function () use ($value) { return $value; }); - }, static function ($reason) use ($onFulfilledOrRejected) { - return resolve($onFulfilledOrRejected())->then(function () use ($reason) { + }, static function (\Throwable $reason) use ($onFulfilledOrRejected): PromiseInterface { + return resolve($onFulfilledOrRejected())->then(function () use ($reason): RejectedPromise { return new RejectedPromise($reason); }); }); } - public function progress(callable $onProgress) + public function cancel(): void { - return $this->then(null, null, $onProgress); - } + $this->cancelled = true; + $canceller = $this->canceller; + $this->canceller = null; - public function cancel() - { - if (null === $this->canceller || null !== $this->result) { - return; + $parentCanceller = null; + + if (null !== $this->result) { + // Forward cancellation to rejected promise to avoid reporting unhandled rejection + if ($this->result instanceof RejectedPromise) { + $this->result->cancel(); + } + + // Go up the promise chain and reach the top most promise which is + // itself not following another promise + $root = $this->unwrap($this->result); + + // Return if the root promise is already resolved or a + // FulfilledPromise or RejectedPromise + if (!$root instanceof self || null !== $root->result) { + return; + } + + $root->requiredCancelRequests--; + + if ($root->requiredCancelRequests <= 0) { + $parentCanceller = [$root, 'cancel']; + } } - $canceller = $this->canceller; - $this->canceller = null; + if (null !== $canceller) { + $this->call($canceller); + } - $this->call($canceller); + // For BC, we call the parent canceller after our own canceller + if ($parentCanceller) { + $parentCanceller(); + } } - private function resolver(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) + /** + * @deprecated 3.0.0 Use `catch()` instead + * @see self::catch() + */ + public function otherwise(callable $onRejected): PromiseInterface { - return function ($resolve, $reject, $notify) use ($onFulfilled, $onRejected, $onProgress) { - if ($onProgress) { - $progressHandler = static function ($update) use ($notify, $onProgress) { - try { - $notify($onProgress($update)); - } catch (\Throwable $e) { - $notify($e); - } catch (\Exception $e) { - $notify($e); - } - }; - } else { - $progressHandler = $notify; - } + return $this->catch($onRejected); + } - $this->handlers[] = static function (ExtendedPromiseInterface $promise) use ($onFulfilled, $onRejected, $resolve, $reject, $progressHandler) { - $promise - ->then($onFulfilled, $onRejected) - ->done($resolve, $reject, $progressHandler); - }; + /** + * @deprecated 3.0.0 Use `finally()` instead + * @see self::finally() + */ + public function always(callable $onFulfilledOrRejected): PromiseInterface + { + return $this->finally($onFulfilledOrRejected); + } - $this->progressHandlers[] = $progressHandler; + private function resolver(?callable $onFulfilled = null, ?callable $onRejected = null): callable + { + return function (callable $resolve, callable $reject) use ($onFulfilled, $onRejected): void { + $this->handlers[] = static function (PromiseInterface $promise) use ($onFulfilled, $onRejected, $resolve, $reject): void { + $promise = $promise->then($onFulfilled, $onRejected); + + if ($promise instanceof self && $promise->result === null) { + $promise->handlers[] = static function (PromiseInterface $promise) use ($resolve, $reject): void { + $promise->then($resolve, $reject); + }; + } else { + $promise->then($resolve, $reject); + } + }; }; } - private function reject($reason = null) + private function reject(\Throwable $reason): void { if (null !== $this->result) { return; @@ -148,48 +192,59 @@ private function reject($reason = null) $this->settle(reject($reason)); } - private function settle(ExtendedPromiseInterface $promise) + /** + * @param PromiseInterface<T> $result + */ + private function settle(PromiseInterface $result): void { - $promise = $this->unwrap($promise); + $result = $this->unwrap($result); - if ($promise === $this) { - $promise = new RejectedPromise( + if ($result === $this) { + $result = new RejectedPromise( new \LogicException('Cannot resolve a promise with itself.') ); } + if ($result instanceof self) { + $result->requiredCancelRequests++; + } else { + // Unset canceller only when not following a pending promise + $this->canceller = null; + } + $handlers = $this->handlers; - $this->progressHandlers = $this->handlers = []; - $this->result = $promise; - $this->canceller = null; + $this->handlers = []; + $this->result = $result; foreach ($handlers as $handler) { - $handler($promise); + $handler($result); } - } - private function unwrap($promise) - { - $promise = $this->extract($promise); - - while ($promise instanceof self && null !== $promise->result) { - $promise = $this->extract($promise->result); + // Forward cancellation to rejected promise to avoid reporting unhandled rejection + if ($this->cancelled && $result instanceof RejectedPromise) { + $result->cancel(); } - - return $promise; } - private function extract($promise) + /** + * @param PromiseInterface<T> $promise + * @return PromiseInterface<T> + */ + private function unwrap(PromiseInterface $promise): PromiseInterface { - if ($promise instanceof LazyPromise) { - $promise = $promise->promise(); + while ($promise instanceof self && null !== $promise->result) { + /** @var PromiseInterface<T> $promise */ + $promise = $promise->result; } return $promise; } - private function call(callable $cb) + /** + * @param callable(callable(mixed):void,callable(\Throwable):void):void $cb + */ + private function call(callable $cb): void { // Explicitly overwrite argument with null value. This ensure that this // argument does not show up in the stack trace in PHP 7+ only. @@ -206,6 +261,7 @@ private function call(callable $cb) } elseif (\is_object($callback) && !$callback instanceof \Closure) { $ref = new \ReflectionMethod($callback, '__invoke'); } else { + assert($callback instanceof \Closure || \is_string($callback)); $ref = new \ReflectionFunction($callback); } $args = $ref->getNumberOfParameters(); @@ -223,34 +279,25 @@ private function call(callable $cb) // These assumptions are covered by the test suite, so if you ever feel like // refactoring this, go ahead, any alternative suggestions are welcome! $target =& $this; - $progressHandlers =& $this->progressHandlers; $callback( - static function ($value = null) use (&$target) { + static function ($value) use (&$target): void { if ($target !== null) { $target->settle(resolve($value)); $target = null; } }, - static function ($reason = null) use (&$target) { + static function (\Throwable $reason) use (&$target): void { if ($target !== null) { $target->reject($reason); $target = null; } - }, - static function ($update = null) use (&$progressHandlers) { - foreach ($progressHandlers as $handler) { - $handler($update); - } } ); } } catch (\Throwable $e) { $target = null; $this->reject($e); - } catch (\Exception $e) { - $target = null; - $this->reject($e); } } } diff --git a/api/vendor/react/promise/src/PromiseInterface.php b/api/vendor/react/promise/src/PromiseInterface.php index edcb00770..5869f76b6 100644 --- a/api/vendor/react/promise/src/PromiseInterface.php +++ b/api/vendor/react/promise/src/PromiseInterface.php @@ -2,6 +2,9 @@ namespace React\Promise; +/** + * @template-covariant T + */ interface PromiseInterface { /** @@ -15,9 +18,6 @@ interface PromiseInterface * the result as the first argument. * * `$onRejected` will be invoked once the promise is rejected and passed the * reason as the first argument. - * * `$onProgress` (deprecated) will be invoked whenever the producer of the promise - * triggers progress notifications and passed a single argument (whatever it - * wants) to indicate progress. * * It returns a new promise that will fulfill with the return value of either * `$onFulfilled` or `$onRejected`, whichever is called, or will reject with @@ -30,12 +30,123 @@ interface PromiseInterface * never both. * 2. `$onFulfilled` and `$onRejected` will never be called more * than once. - * 3. `$onProgress` (deprecated) may be called multiple times. * - * @param callable|null $onFulfilled - * @param callable|null $onRejected - * @param callable|null $onProgress This argument is deprecated and should not be used anymore. - * @return PromiseInterface + * @template TFulfilled + * @template TRejected + * @param ?(callable((T is void ? null : T)): (PromiseInterface<TFulfilled>|TFulfilled)) $onFulfilled + * @param ?(callable(\Throwable): (PromiseInterface<TRejected>|TRejected)) $onRejected + * @return PromiseInterface<($onRejected is null ? ($onFulfilled is null ? T : TFulfilled) : ($onFulfilled is null ? T|TRejected : TFulfilled|TRejected))> */ - public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null); + public function then(?callable $onFulfilled = null, ?callable $onRejected = null): PromiseInterface; + + /** + * Registers a rejection handler for promise. It is a shortcut for: + * + * ```php + * $promise->then(null, $onRejected); + * ``` + * + * Additionally, you can type hint the `$reason` argument of `$onRejected` to catch + * only specific errors. + * + * @template TThrowable of \Throwable + * @template TRejected + * @param callable(TThrowable): (PromiseInterface<TRejected>|TRejected) $onRejected + * @return PromiseInterface<T|TRejected> + */ + public function catch(callable $onRejected): PromiseInterface; + + /** + * Allows you to execute "cleanup" type tasks in a promise chain. + * + * It arranges for `$onFulfilledOrRejected` to be called, with no arguments, + * when the promise is either fulfilled or rejected. + * + * * If `$promise` fulfills, and `$onFulfilledOrRejected` returns successfully, + * `$newPromise` will fulfill with the same value as `$promise`. + * * If `$promise` fulfills, and `$onFulfilledOrRejected` throws or returns a + * rejected promise, `$newPromise` will reject with the thrown exception or + * rejected promise's reason. + * * If `$promise` rejects, and `$onFulfilledOrRejected` returns successfully, + * `$newPromise` will reject with the same reason as `$promise`. + * * If `$promise` rejects, and `$onFulfilledOrRejected` throws or returns a + * rejected promise, `$newPromise` will reject with the thrown exception or + * rejected promise's reason. + * + * `finally()` behaves similarly to the synchronous finally statement. When combined + * with `catch()`, `finally()` allows you to write code that is similar to the familiar + * synchronous catch/finally pair. + * + * Consider the following synchronous code: + * + * ```php + * try { + * return doSomething(); + * } catch(\Exception $e) { + * return handleError($e); + * } finally { + * cleanup(); + * } + * ``` + * + * Similar asynchronous code (with `doSomething()` that returns a promise) can be + * written: + * + * ```php + * return doSomething() + * ->catch('handleError') + * ->finally('cleanup'); + * ``` + * + * @param callable(): (void|PromiseInterface<void>) $onFulfilledOrRejected + * @return PromiseInterface<T> + */ + public function finally(callable $onFulfilledOrRejected): PromiseInterface; + + /** + * The `cancel()` method notifies the creator of the promise that there is no + * further interest in the results of the operation. + * + * Once a promise is settled (either fulfilled or rejected), calling `cancel()` on + * a promise has no effect. + * + * @return void + */ + public function cancel(): void; + + /** + * [Deprecated] Registers a rejection handler for a promise. + * + * This method continues to exist only for BC reasons and to ease upgrading + * between versions. It is an alias for: + * + * ```php + * $promise->catch($onRejected); + * ``` + * + * @template TThrowable of \Throwable + * @template TRejected + * @param callable(TThrowable): (PromiseInterface<TRejected>|TRejected) $onRejected + * @return PromiseInterface<T|TRejected> + * @deprecated 3.0.0 Use catch() instead + * @see self::catch() + */ + public function otherwise(callable $onRejected): PromiseInterface; + + /** + * [Deprecated] Allows you to execute "cleanup" type tasks in a promise chain. + * + * This method continues to exist only for BC reasons and to ease upgrading + * between versions. It is an alias for: + * + * ```php + * $promise->finally($onFulfilledOrRejected); + * ``` + * + * @param callable(): (void|PromiseInterface<void>) $onFulfilledOrRejected + * @return PromiseInterface<T> + * @deprecated 3.0.0 Use finally() instead + * @see self::finally() + */ + public function always(callable $onFulfilledOrRejected): PromiseInterface; } diff --git a/api/vendor/react/promise/src/PromisorInterface.php b/api/vendor/react/promise/src/PromisorInterface.php deleted file mode 100644 index bd6440086..000000000 --- a/api/vendor/react/promise/src/PromisorInterface.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php - -namespace React\Promise; - -interface PromisorInterface -{ - /** - * Returns the promise of the deferred. - * - * @return PromiseInterface - */ - public function promise(); -} diff --git a/api/vendor/react/promise/src/RejectedPromise.php b/api/vendor/react/promise/src/RejectedPromise.php deleted file mode 100644 index 09cd4ab2f..000000000 --- a/api/vendor/react/promise/src/RejectedPromise.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php - -namespace React\Promise; - -/** - * @deprecated 2.8.0 External usage of RejectedPromise is deprecated, use `reject()` instead. - */ -class RejectedPromise implements ExtendedPromiseInterface, CancellablePromiseInterface -{ - private $reason; - - public function __construct($reason = null) - { - if ($reason instanceof PromiseInterface) { - throw new \InvalidArgumentException('You cannot create React\Promise\RejectedPromise with a promise. Use React\Promise\reject($promiseOrValue) instead.'); - } - - $this->reason = $reason; - } - - public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - if (null === $onRejected) { - return $this; - } - - try { - return resolve($onRejected($this->reason)); - } catch (\Throwable $exception) { - return new RejectedPromise($exception); - } catch (\Exception $exception) { - return new RejectedPromise($exception); - } - } - - public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null) - { - if (null === $onRejected) { - throw UnhandledRejectionException::resolve($this->reason); - } - - $result = $onRejected($this->reason); - - if ($result instanceof self) { - throw UnhandledRejectionException::resolve($result->reason); - } - - if ($result instanceof ExtendedPromiseInterface) { - $result->done(); - } - } - - public function otherwise(callable $onRejected) - { - if (!_checkTypehint($onRejected, $this->reason)) { - return $this; - } - - return $this->then(null, $onRejected); - } - - public function always(callable $onFulfilledOrRejected) - { - return $this->then(null, function ($reason) use ($onFulfilledOrRejected) { - return resolve($onFulfilledOrRejected())->then(function () use ($reason) { - return new RejectedPromise($reason); - }); - }); - } - - public function progress(callable $onProgress) - { - return $this; - } - - public function cancel() - { - } -} diff --git a/api/vendor/react/promise/src/UnhandledRejectionException.php b/api/vendor/react/promise/src/UnhandledRejectionException.php deleted file mode 100644 index e7fe2f7a8..000000000 --- a/api/vendor/react/promise/src/UnhandledRejectionException.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php - -namespace React\Promise; - -class UnhandledRejectionException extends \RuntimeException -{ - private $reason; - - public static function resolve($reason) - { - if ($reason instanceof \Exception || $reason instanceof \Throwable) { - return $reason; - } - - return new static($reason); - } - - public function __construct($reason) - { - $this->reason = $reason; - - $message = \sprintf('Unhandled Rejection: %s', \json_encode($reason)); - - parent::__construct($message, 0); - } - - public function getReason() - { - return $this->reason; - } -} diff --git a/api/vendor/react/promise/src/functions.php b/api/vendor/react/promise/src/functions.php index bdbdf52d8..2aab877e3 100644 --- a/api/vendor/react/promise/src/functions.php +++ b/api/vendor/react/promise/src/functions.php @@ -2,6 +2,10 @@ namespace React\Promise; +use React\Promise\Exception\CompositeException; +use React\Promise\Internal\FulfilledPromise; +use React\Promise\Internal\RejectedPromise; + /** * Creates a promise for the supplied `$promiseOrValue`. * @@ -13,26 +17,27 @@ * * If `$promiseOrValue` is a promise, it will be returned as is. * - * @param mixed $promiseOrValue - * @return PromiseInterface + * @template T + * @param PromiseInterface<T>|T $promiseOrValue + * @return PromiseInterface<T> */ -function resolve($promiseOrValue = null) +function resolve($promiseOrValue): PromiseInterface { - if ($promiseOrValue instanceof ExtendedPromiseInterface) { + if ($promiseOrValue instanceof PromiseInterface) { return $promiseOrValue; } - // Check is_object() first to avoid method_exists() triggering - // class autoloaders if $promiseOrValue is a string. if (\is_object($promiseOrValue) && \method_exists($promiseOrValue, 'then')) { $canceller = null; if (\method_exists($promiseOrValue, 'cancel')) { $canceller = [$promiseOrValue, 'cancel']; + assert(\is_callable($canceller)); } - return new Promise(function ($resolve, $reject, $notify) use ($promiseOrValue) { - $promiseOrValue->then($resolve, $reject, $notify); + /** @var Promise<T> */ + return new Promise(function (callable $resolve, callable $reject) use ($promiseOrValue): void { + $promiseOrValue->then($resolve, $reject); }, $canceller); } @@ -40,30 +45,23 @@ function resolve($promiseOrValue = null) } /** - * Creates a rejected promise for the supplied `$promiseOrValue`. + * Creates a rejected promise for the supplied `$reason`. * - * If `$promiseOrValue` is a value, it will be the rejection value of the + * If `$reason` is a value, it will be the rejection value of the * returned promise. * - * If `$promiseOrValue` is a promise, its completion value will be the rejected + * If `$reason` is a promise, its completion value will be the rejected * value of the returned promise. * * This can be useful in situations where you need to reject a promise without * throwing an exception. For example, it allows you to propagate a rejection with * the value of another promise. * - * @param mixed $promiseOrValue - * @return PromiseInterface + * @return PromiseInterface<never> */ -function reject($promiseOrValue = null) +function reject(\Throwable $reason): PromiseInterface { - if ($promiseOrValue instanceof PromiseInterface) { - return resolve($promiseOrValue)->then(function ($value) { - return new RejectedPromise($value); - }); - } - - return new RejectedPromise($promiseOrValue); + return new RejectedPromise($reason); } /** @@ -72,14 +70,50 @@ function reject($promiseOrValue = null) * will be an array containing the resolution values of each of the items in * `$promisesOrValues`. * - * @param array $promisesOrValues - * @return PromiseInterface + * @template T + * @param iterable<PromiseInterface<T>|T> $promisesOrValues + * @return PromiseInterface<array<T>> */ -function all($promisesOrValues) +function all(iterable $promisesOrValues): PromiseInterface { - return map($promisesOrValues, function ($val) { - return $val; - }); + $cancellationQueue = new Internal\CancellationQueue(); + + /** @var Promise<array<T>> */ + return new Promise(function (callable $resolve, callable $reject) use ($promisesOrValues, $cancellationQueue): void { + $toResolve = 0; + /** @var bool */ + $continue = true; + $values = []; + + foreach ($promisesOrValues as $i => $promiseOrValue) { + $cancellationQueue->enqueue($promiseOrValue); + $values[$i] = null; + ++$toResolve; + + resolve($promiseOrValue)->then( + function ($value) use ($i, &$values, &$toResolve, &$continue, $resolve): void { + $values[$i] = $value; + + if (0 === --$toResolve && !$continue) { + $resolve($values); + } + }, + function (\Throwable $reason) use (&$continue, $reject): void { + $continue = false; + $reject($reason); + } + ); + + if (!$continue && !\is_array($promisesOrValues)) { + break; + } + } + + $continue = false; + if ($toResolve === 0) { + $resolve($values); + } + }, $cancellationQueue); } /** @@ -89,29 +123,29 @@ function all($promisesOrValues) * The returned promise will become **infinitely pending** if `$promisesOrValues` * contains 0 items. * - * @param array $promisesOrValues - * @return PromiseInterface + * @template T + * @param iterable<PromiseInterface<T>|T> $promisesOrValues + * @return PromiseInterface<T> */ -function race($promisesOrValues) +function race(iterable $promisesOrValues): PromiseInterface { - $cancellationQueue = new CancellationQueue(); - $cancellationQueue->enqueue($promisesOrValues); - - return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $cancellationQueue) { - resolve($promisesOrValues) - ->done(function ($array) use ($cancellationQueue, $resolve, $reject, $notify) { - if (!is_array($array) || !$array) { - $resolve(); - return; - } + $cancellationQueue = new Internal\CancellationQueue(); - foreach ($array as $promiseOrValue) { - $cancellationQueue->enqueue($promiseOrValue); + /** @var Promise<T> */ + return new Promise(function (callable $resolve, callable $reject) use ($promisesOrValues, $cancellationQueue): void { + $continue = true; - resolve($promiseOrValue) - ->done($resolve, $reject, $notify); - } - }, $reject, $notify); + foreach ($promisesOrValues as $promiseOrValue) { + $cancellationQueue->enqueue($promiseOrValue); + + resolve($promiseOrValue)->then($resolve, $reject)->finally(function () use (&$continue): void { + $continue = false; + }); + + if (!$continue && !\is_array($promisesOrValues)) { + break; + } + } }, $cancellationQueue); } @@ -126,212 +160,118 @@ function race($promisesOrValues) * The returned promise will also reject with a `React\Promise\Exception\LengthException` * if `$promisesOrValues` contains 0 items. * - * @param array $promisesOrValues - * @return PromiseInterface - */ -function any($promisesOrValues) -{ - return some($promisesOrValues, 1) - ->then(function ($val) { - return \array_shift($val); - }); -} - -/** - * Returns a promise that will resolve when `$howMany` of the supplied items in - * `$promisesOrValues` resolve. The resolution value of the returned promise - * will be an array of length `$howMany` containing the resolution values of the - * triggering items. - * - * The returned promise will reject if it becomes impossible for `$howMany` items - * to resolve (that is, when `(count($promisesOrValues) - $howMany) + 1` items - * reject). The rejection value will be an array of - * `(count($promisesOrValues) - $howMany) + 1` rejection reasons. - * - * The returned promise will also reject with a `React\Promise\Exception\LengthException` - * if `$promisesOrValues` contains less items than `$howMany`. - * - * @param array $promisesOrValues - * @param int $howMany - * @return PromiseInterface + * @template T + * @param iterable<PromiseInterface<T>|T> $promisesOrValues + * @return PromiseInterface<T> */ -function some($promisesOrValues, $howMany) +function any(iterable $promisesOrValues): PromiseInterface { - $cancellationQueue = new CancellationQueue(); - $cancellationQueue->enqueue($promisesOrValues); - - return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $howMany, $cancellationQueue) { - resolve($promisesOrValues) - ->done(function ($array) use ($howMany, $cancellationQueue, $resolve, $reject, $notify) { - if (!\is_array($array) || $howMany < 1) { - $resolve([]); - return; + $cancellationQueue = new Internal\CancellationQueue(); + + /** @var Promise<T> */ + return new Promise(function (callable $resolve, callable $reject) use ($promisesOrValues, $cancellationQueue): void { + $toReject = 0; + $continue = true; + $reasons = []; + + foreach ($promisesOrValues as $i => $promiseOrValue) { + $cancellationQueue->enqueue($promiseOrValue); + ++$toReject; + + resolve($promiseOrValue)->then( + function ($value) use ($resolve, &$continue): void { + $continue = false; + $resolve($value); + }, + function (\Throwable $reason) use ($i, &$reasons, &$toReject, $reject, &$continue): void { + $reasons[$i] = $reason; + + if (0 === --$toReject && !$continue) { + $reject(new CompositeException( + $reasons, + 'All promises rejected.' + )); + } } + ); - $len = \count($array); - - if ($len < $howMany) { - throw new Exception\LengthException( - \sprintf( - 'Input array must contain at least %d item%s but contains only %s item%s.', - $howMany, - 1 === $howMany ? '' : 's', - $len, - 1 === $len ? '' : 's' - ) - ); - } - - $toResolve = $howMany; - $toReject = ($len - $toResolve) + 1; - $values = []; - $reasons = []; - - foreach ($array as $i => $promiseOrValue) { - $fulfiller = function ($val) use ($i, &$values, &$toResolve, $toReject, $resolve) { - if ($toResolve < 1 || $toReject < 1) { - return; - } - - $values[$i] = $val; - - if (0 === --$toResolve) { - $resolve($values); - } - }; - - $rejecter = function ($reason) use ($i, &$reasons, &$toReject, $toResolve, $reject) { - if ($toResolve < 1 || $toReject < 1) { - return; - } - - $reasons[$i] = $reason; - - if (0 === --$toReject) { - $reject($reasons); - } - }; - - $cancellationQueue->enqueue($promiseOrValue); + if (!$continue && !\is_array($promisesOrValues)) { + break; + } + } - resolve($promiseOrValue) - ->done($fulfiller, $rejecter, $notify); - } - }, $reject, $notify); + $continue = false; + if ($toReject === 0 && !$reasons) { + $reject(new Exception\LengthException( + 'Must contain at least 1 item but contains only 0 items.' + )); + } elseif ($toReject === 0) { + $reject(new CompositeException( + $reasons, + 'All promises rejected.' + )); + } }, $cancellationQueue); } /** - * Traditional map function, similar to `array_map()`, but allows input to contain - * promises and/or values, and `$mapFunc` may return either a value or a promise. + * Sets the global rejection handler for unhandled promise rejections. * - * The map function receives each item as argument, where item is a fully resolved - * value of a promise or value in `$promisesOrValues`. + * Note that rejected promises should always be handled similar to how any + * exceptions should always be caught in a `try` + `catch` block. If you remove + * the last reference to a rejected promise that has not been handled, it will + * report an unhandled promise rejection. See also the [`reject()` function](#reject) + * for more details. * - * @param array $promisesOrValues - * @param callable $mapFunc - * @return PromiseInterface - */ -function map($promisesOrValues, callable $mapFunc) -{ - $cancellationQueue = new CancellationQueue(); - $cancellationQueue->enqueue($promisesOrValues); - - return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $mapFunc, $cancellationQueue) { - resolve($promisesOrValues) - ->done(function ($array) use ($mapFunc, $cancellationQueue, $resolve, $reject, $notify) { - if (!\is_array($array) || !$array) { - $resolve([]); - return; - } - - $toResolve = \count($array); - $values = []; - - foreach ($array as $i => $promiseOrValue) { - $cancellationQueue->enqueue($promiseOrValue); - $values[$i] = null; - - resolve($promiseOrValue) - ->then($mapFunc) - ->done( - function ($mapped) use ($i, &$values, &$toResolve, $resolve) { - $values[$i] = $mapped; - - if (0 === --$toResolve) { - $resolve($values); - } - }, - $reject, - $notify - ); - } - }, $reject, $notify); - }, $cancellationQueue); -} - -/** - * Traditional reduce function, similar to `array_reduce()`, but input may contain - * promises and/or values, and `$reduceFunc` may return either a value or a - * promise, *and* `$initialValue` may be a promise or a value for the starting - * value. + * The `?callable $callback` argument MUST be a valid callback function that + * accepts a single `Throwable` argument or a `null` value to restore the + * default promise rejection handler. The return value of the callback function + * will be ignored and has no effect, so you SHOULD return a `void` value. The + * callback function MUST NOT throw or the program will be terminated with a + * fatal error. + * + * The function returns the previous rejection handler or `null` if using the + * default promise rejection handler. * - * @param array $promisesOrValues - * @param callable $reduceFunc - * @param mixed $initialValue - * @return PromiseInterface + * The default promise rejection handler will log an error message plus its + * stack trace: + * + * ```php + * // Unhandled promise rejection with RuntimeException: Unhandled in example.php:2 + * React\Promise\reject(new RuntimeException('Unhandled')); + * ``` + * + * The promise rejection handler may be used to use customize the log message or + * write to custom log targets. As a rule of thumb, this function should only be + * used as a last resort and promise rejections are best handled with either the + * [`then()` method](#promiseinterfacethen), the + * [`catch()` method](#promiseinterfacecatch), or the + * [`finally()` method](#promiseinterfacefinally). + * See also the [`reject()` function](#reject) for more details. + * + * @param callable(\Throwable):void|null $callback + * @return callable(\Throwable):void|null */ -function reduce($promisesOrValues, callable $reduceFunc, $initialValue = null) +function set_rejection_handler(?callable $callback): ?callable { - $cancellationQueue = new CancellationQueue(); - $cancellationQueue->enqueue($promisesOrValues); - - return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $reduceFunc, $initialValue, $cancellationQueue) { - resolve($promisesOrValues) - ->done(function ($array) use ($reduceFunc, $initialValue, $cancellationQueue, $resolve, $reject, $notify) { - if (!\is_array($array)) { - $array = []; - } + static $current = null; + $previous = $current; + $current = $callback; - $total = \count($array); - $i = 0; - - // Wrap the supplied $reduceFunc with one that handles promises and then - // delegates to the supplied. - $wrappedReduceFunc = function ($current, $val) use ($reduceFunc, $cancellationQueue, $total, &$i) { - $cancellationQueue->enqueue($val); - - return $current - ->then(function ($c) use ($reduceFunc, $total, &$i, $val) { - return resolve($val) - ->then(function ($value) use ($reduceFunc, $total, &$i, $c) { - return $reduceFunc($c, $value, $i++, $total); - }); - }); - }; - - $cancellationQueue->enqueue($initialValue); - - \array_reduce($array, $wrappedReduceFunc, resolve($initialValue)) - ->done($resolve, $reject, $notify); - }, $reject, $notify); - }, $cancellationQueue); + return $previous; } /** * @internal */ -function _checkTypehint(callable $callback, $object) +function _checkTypehint(callable $callback, \Throwable $reason): bool { - if (!\is_object($object)) { - return true; - } - if (\is_array($callback)) { $callbackReflection = new \ReflectionMethod($callback[0], $callback[1]); } elseif (\is_object($callback) && !$callback instanceof \Closure) { $callbackReflection = new \ReflectionMethod($callback, '__invoke'); } else { + assert($callback instanceof \Closure || \is_string($callback)); $callbackReflection = new \ReflectionFunction($callback); } @@ -343,9 +283,63 @@ function _checkTypehint(callable $callback, $object) $expectedException = $parameters[0]; - if (!$expectedException->getClass()) { + // Extract the type of the argument and handle different possibilities + $type = $expectedException->getType(); + + $isTypeUnion = true; + $types = []; + + switch (true) { + case $type === null: + break; + case $type instanceof \ReflectionNamedType: + $types = [$type]; + break; + case $type instanceof \ReflectionIntersectionType: + $isTypeUnion = false; + case $type instanceof \ReflectionUnionType; + $types = $type->getTypes(); + break; + default: + throw new \LogicException('Unexpected return value of ReflectionParameter::getType'); + } + + // If there is no type restriction, it matches + if (empty($types)) { return true; } - return $expectedException->getClass()->isInstance($object); + foreach ($types as $type) { + + if ($type instanceof \ReflectionIntersectionType) { + foreach ($type->getTypes() as $typeToMatch) { + assert($typeToMatch instanceof \ReflectionNamedType); + $name = $typeToMatch->getName(); + if (!($matches = (!$typeToMatch->isBuiltin() && $reason instanceof $name))) { + break; + } + } + assert(isset($matches)); + } else { + assert($type instanceof \ReflectionNamedType); + $name = $type->getName(); + $matches = !$type->isBuiltin() && $reason instanceof $name; + } + + // If we look for a single match (union), we can return early on match + // If we look for a full match (intersection), we can return early on mismatch + if ($matches) { + if ($isTypeUnion) { + return true; + } + } else { + if (!$isTypeUnion) { + return false; + } + } + } + + // If we look for a single match (union) and did not return early, we matched no type and are false + // If we look for a full match (intersection) and did not return early, we matched all types and are true + return $isTypeUnion ? false : true; } diff --git a/api/vendor/seld/jsonlint/CHANGELOG.md b/api/vendor/seld/jsonlint/CHANGELOG.md index cc7192685..b1413473a 100644 --- a/api/vendor/seld/jsonlint/CHANGELOG.md +++ b/api/vendor/seld/jsonlint/CHANGELOG.md @@ -1,3 +1,13 @@ +You can find newer changelog entries in [GitHub releases](https://github.com/Seldaek/jsonlint/releases) + +### 1.10.0 (2023-05-11) + + * Added ALLOW_COMMENTS flag to parse while allowing (and ignoring) inline `//` and multiline `/* */` comments in the JSON document (#81) + +### 1.9.0 (2022-04-01) + + * Internal cleanups and type fixes + ### 1.8.1 (2020-08-13) * Added type annotations diff --git a/api/vendor/seld/jsonlint/README.md b/api/vendor/seld/jsonlint/README.md index c6597637e..e658f7223 100644 --- a/api/vendor/seld/jsonlint/README.md +++ b/api/vendor/seld/jsonlint/README.md @@ -1,7 +1,7 @@ JSON Lint ========= -[![Build Status](https://secure.travis-ci.org/Seldaek/jsonlint.png)](http://travis-ci.org/Seldaek/jsonlint) +[![Build Status](https://github.com/Seldaek/jsonlint/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/Seldaek/jsonlint/actions/workflows/continuous-integration.yml) Usage ----- @@ -34,6 +34,8 @@ You can also pass additional flags to `JsonParser::lint/parse` that tweak the fu - `JsonParser::DETECT_KEY_CONFLICTS` throws an exception on duplicate keys. - `JsonParser::ALLOW_DUPLICATE_KEYS` collects duplicate keys. e.g. if you have two `foo` keys they will end up as `foo` and `foo.2`. - `JsonParser::PARSE_TO_ASSOC` parses to associative arrays instead of stdClass objects. +- `JsonParser::ALLOW_COMMENTS` parses while allowing (and ignoring) inline `//` and multiline `/* */` comments in the JSON document. +- `JsonParser::ALLOW_DUPLICATE_KEYS_TO_ARRAY` collects duplicate keys. e.g. if you have two `foo` keys the `foo` key will become an object (or array in assoc mode) with all `foo` values accessible as an array in `$result->foo->__duplicates__` (or `$result['foo']['__duplicates__']` in assoc mode). Example: @@ -57,7 +59,9 @@ Installation For a quick install with Composer use: - $ composer require seld/jsonlint +```bash +composer require seld/jsonlint +``` JSON Lint can easily be used within another app if you have a [PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md) diff --git a/api/vendor/seld/jsonlint/bin/jsonlint b/api/vendor/seld/jsonlint/bin/jsonlint index 8af29ebd6..c71d32e9a 100644 --- a/api/vendor/seld/jsonlint/bin/jsonlint +++ b/api/vendor/seld/jsonlint/bin/jsonlint @@ -58,7 +58,7 @@ if (!empty($files)) { } else { //stdin linting if ($contents = file_get_contents('php://stdin')) { - lint($contents); + lint($contents, $quiet); } else { fwrite(STDERR, 'No file name or json input given' . PHP_EOL); exit(1); diff --git a/api/vendor/seld/jsonlint/composer.json b/api/vendor/seld/jsonlint/composer.json index b065d7b06..dbc48e304 100644 --- a/api/vendor/seld/jsonlint/composer.json +++ b/api/vendor/seld/jsonlint/composer.json @@ -8,17 +8,22 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "require": { "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13", + "phpstan/phpstan": "^1.11" }, "autoload": { "psr-4": { "Seld\\JsonLint\\": "src/Seld/JsonLint/" } }, - "bin": ["bin/jsonlint"] + "bin": ["bin/jsonlint"], + "scripts": { + "test": "vendor/bin/phpunit", + "phpstan": "vendor/bin/phpstan analyse" + } } diff --git a/api/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php b/api/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php index 2783323e6..1f7670cc2 100644 --- a/api/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php +++ b/api/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php @@ -13,24 +13,32 @@ class DuplicateKeyException extends ParsingException { + /** + * @var array{key: string, line: int} + */ + protected $details; + /** * @param string $message * @param string $key - * @phpstan-param array{text?: string, token?: string, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[]} $details + * @phpstan-param array{line: int} $details */ - public function __construct($message, $key, array $details = array()) + public function __construct($message, $key, array $details) { $details['key'] = $key; parent::__construct($message, $details); } + /** + * @return string + */ public function getKey() { return $this->details['key']; } /** - * @phpstan-return array{text?: string, token?: string, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[], key: string} + * @phpstan-return array{key: string, line: int} */ public function getDetails() { diff --git a/api/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php b/api/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php index 0c3e93c69..cec4a87c2 100644 --- a/api/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php +++ b/api/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php @@ -30,12 +30,22 @@ class JsonParser const DETECT_KEY_CONFLICTS = 1; const ALLOW_DUPLICATE_KEYS = 2; const PARSE_TO_ASSOC = 4; + const ALLOW_COMMENTS = 8; + const ALLOW_DUPLICATE_KEYS_TO_ARRAY = 16; + /** @var Lexer */ private $lexer; + /** + * @var int + * @phpstan-var int-mask-of<self::*> + */ private $flags; + /** @var list<int> */ private $stack; + /** @var list<stdClass|array<mixed>|int|bool|float|string|null> */ private $vstack; // semantic value stack + /** @var list<array{first_line: int, first_column: int, last_line: int, last_column: int}> */ private $lstack; // location stack /** @@ -72,6 +82,7 @@ class JsonParser /** * @phpstan-var array<int, string> + * @const */ private $terminals_ = array( 2 => "error", @@ -89,34 +100,77 @@ class JsonParser 24 => "]", ); + /** + * @phpstan-var array<int<1,21>, array{int, int}> + * @const + */ private $productions_ = array( - 0, - array(3, 1), - array(5, 1), - array(7, 1), - array(9, 1), - array(9, 1), - array(12, 2), - array(13, 1), - array(13, 1), - array(13, 1), - array(13, 1), - array(13, 1), - array(13, 1), - array(15, 2), - array(15, 3), - array(20, 3), - array(19, 1), - array(19, 3), - array(16, 2), - array(16, 3), - array(25, 1), - array(25, 3) + 1 => array(3, 1), + 2 => array(5, 1), + 3 => array(7, 1), + 4 => array(9, 1), + 5 => array(9, 1), + 6 => array(12, 2), + 7 => array(13, 1), + 8 => array(13, 1), + 9 => array(13, 1), + 10 => array(13, 1), + 11 => array(13, 1), + 12 => array(13, 1), + 13 => array(15, 2), + 14 => array(15, 3), + 15 => array(20, 3), + 16 => array(19, 1), + 17 => array(19, 3), + 18 => array(16, 2), + 19 => array(16, 3), + 20 => array(25, 1), + 21 => array(25, 3) ); - private $table = array(array(3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 12 => 1, 13 => 2, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15)), array( 1 => array(3)), array( 14 => array(1,16)), array( 14 => array(2,7), 18 => array(2,7), 22 => array(2,7), 24 => array(2,7)), array( 14 => array(2,8), 18 => array(2,8), 22 => array(2,8), 24 => array(2,8)), array( 14 => array(2,9), 18 => array(2,9), 22 => array(2,9), 24 => array(2,9)), array( 14 => array(2,10), 18 => array(2,10), 22 => array(2,10), 24 => array(2,10)), array( 14 => array(2,11), 18 => array(2,11), 22 => array(2,11), 24 => array(2,11)), array( 14 => array(2,12), 18 => array(2,12), 22 => array(2,12), 24 => array(2,12)), array( 14 => array(2,3), 18 => array(2,3), 22 => array(2,3), 24 => array(2,3)), array( 14 => array(2,4), 18 => array(2,4), 22 => array(2,4), 24 => array(2,4)), array( 14 => array(2,5), 18 => array(2,5), 22 => array(2,5), 24 => array(2,5)), array( 14 => array(2,1), 18 => array(2,1), 21 => array(2,1), 22 => array(2,1), 24 => array(2,1)), array( 14 => array(2,2), 18 => array(2,2), 22 => array(2,2), 24 => array(2,2)), array( 3 => 20, 4 => array(1,12), 18 => array(1,17), 19 => 18, 20 => 19 ), array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 13 => 23, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15), 24 => array(1,21), 25 => 22 ), array( 1 => array(2,6)), array( 14 => array(2,13), 18 => array(2,13), 22 => array(2,13), 24 => array(2,13)), array( 18 => array(1,24), 22 => array(1,25)), array( 18 => array(2,16), 22 => array(2,16)), array( 21 => array(1,26)), array( 14 => array(2,18), 18 => array(2,18), 22 => array(2,18), 24 => array(2,18)), array( 22 => array(1,28), 24 => array(1,27)), array( 22 => array(2,20), 24 => array(2,20)), array( 14 => array(2,14), 18 => array(2,14), 22 => array(2,14), 24 => array(2,14)), array( 3 => 20, 4 => array(1,12), 20 => 29 ), array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 13 => 30, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15)), array( 14 => array(2,19), 18 => array(2,19), 22 => array(2,19), 24 => array(2,19)), array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 13 => 31, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15)), array( 18 => array(2,17), 22 => array(2,17)), array( 18 => array(2,15), 22 => array(2,15)), array( 22 => array(2,21), 24 => array(2,21)), + /** + * @var array<int<0, 31>, array<int, array<int>|int>> List of stateID=>symbolID=>actionIDs|actionID + * @const + */ + private $table = array( + 0 => array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 12 => 1, 13 => 2, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15)), + 1 => array( 1 => array(3)), + 2 => array( 14 => array(1,16)), + 3 => array( 14 => array(2,7), 18 => array(2,7), 22 => array(2,7), 24 => array(2,7)), + 4 => array( 14 => array(2,8), 18 => array(2,8), 22 => array(2,8), 24 => array(2,8)), + 5 => array( 14 => array(2,9), 18 => array(2,9), 22 => array(2,9), 24 => array(2,9)), + 6 => array( 14 => array(2,10), 18 => array(2,10), 22 => array(2,10), 24 => array(2,10)), + 7 => array( 14 => array(2,11), 18 => array(2,11), 22 => array(2,11), 24 => array(2,11)), + 8 => array( 14 => array(2,12), 18 => array(2,12), 22 => array(2,12), 24 => array(2,12)), + 9 => array( 14 => array(2,3), 18 => array(2,3), 22 => array(2,3), 24 => array(2,3)), + 10 => array( 14 => array(2,4), 18 => array(2,4), 22 => array(2,4), 24 => array(2,4)), + 11 => array( 14 => array(2,5), 18 => array(2,5), 22 => array(2,5), 24 => array(2,5)), + 12 => array( 14 => array(2,1), 18 => array(2,1), 21 => array(2,1), 22 => array(2,1), 24 => array(2,1)), + 13 => array( 14 => array(2,2), 18 => array(2,2), 22 => array(2,2), 24 => array(2,2)), + 14 => array( 3 => 20, 4 => array(1,12), 18 => array(1,17), 19 => 18, 20 => 19 ), + 15 => array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 13 => 23, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15), 24 => array(1,21), 25 => 22 ), + 16 => array( 1 => array(2,6)), + 17 => array( 14 => array(2,13), 18 => array(2,13), 22 => array(2,13), 24 => array(2,13)), + 18 => array( 18 => array(1,24), 22 => array(1,25)), + 19 => array( 18 => array(2,16), 22 => array(2,16)), + 20 => array( 21 => array(1,26)), + 21 => array( 14 => array(2,18), 18 => array(2,18), 22 => array(2,18), 24 => array(2,18)), + 22 => array( 22 => array(1,28), 24 => array(1,27)), + 23 => array( 22 => array(2,20), 24 => array(2,20)), + 24 => array( 14 => array(2,14), 18 => array(2,14), 22 => array(2,14), 24 => array(2,14)), + 25 => array( 3 => 20, 4 => array(1,12), 20 => 29 ), + 26 => array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 13 => 30, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15)), + 27 => array( 14 => array(2,19), 18 => array(2,19), 22 => array(2,19), 24 => array(2,19)), + 28 => array( 3 => 5, 4 => array(1,12), 5 => 6, 6 => array(1,13), 7 => 3, 8 => array(1,9), 9 => 4, 10 => array(1,10), 11 => array(1,11), 13 => 31, 15 => 7, 16 => 8, 17 => array(1,14), 23 => array(1,15)), + 29 => array( 18 => array(2,17), 22 => array(2,17)), + 30 => array( 18 => array(2,15), 22 => array(2,15)), + 31 => array( 22 => array(2,21), 24 => array(2,21)), ); + /** + * @var array{16: array{2, 6}} + * @const + */ private $defaultActions = array( 16 => array(2, 6) ); @@ -125,6 +179,8 @@ class JsonParser * @param string $input JSON string * @param int $flags Bitmask of parse/lint options (see constants of this class) * @return null|ParsingException null if no error is found, a ParsingException containing all details otherwise + * + * @phpstan-param int-mask-of<self::*> $flags */ public function lint($input, $flags = 0) { @@ -141,9 +197,15 @@ public function lint($input, $flags = 0) * @param int $flags Bitmask of parse/lint options (see constants of this class) * @return mixed * @throws ParsingException + * + * @phpstan-param int-mask-of<self::*> $flags */ public function parse($input, $flags = 0) { + if (($flags & self::ALLOW_DUPLICATE_KEYS_TO_ARRAY) && ($flags & self::ALLOW_DUPLICATE_KEYS)) { + throw new \InvalidArgumentException('Only one of ALLOW_DUPLICATE_KEYS and ALLOW_DUPLICATE_KEYS_TO_ARRAY can be used, you passed in both.'); + } + $this->failOnBOM($input); $this->flags = $flags; @@ -155,11 +217,10 @@ public function parse($input, $flags = 0) $yytext = ''; $yylineno = 0; $yyleng = 0; + /** @var int<0,3> */ $recovering = 0; - $TERROR = 2; - $EOF = 1; - $this->lexer = new Lexer(); + $this->lexer = new Lexer($flags); $this->lexer->setInput($input); $yyloc = $this->lexer->yylloc; @@ -167,15 +228,14 @@ public function parse($input, $flags = 0) $symbol = null; $preErrorSymbol = null; - $state = null; $action = null; $a = null; $r = null; - $yyval = new stdClass; $p = null; $len = null; $newState = null; $expected = null; + /** @var string|null */ $errStr = null; while (true) { @@ -186,15 +246,17 @@ public function parse($input, $flags = 0) if (isset($this->defaultActions[$state])) { $action = $this->defaultActions[$state]; } else { - if ($symbol == null) { - $symbol = $this->lex(); + if ($symbol === null) { + $symbol = $this->lexer->lex(); } // read action for current state and first input + /** @var array<int, int>|false */ $action = isset($this->table[$state][$symbol]) ? $this->table[$state][$symbol] : false; } // handle parse error if (!$action || !$action[0]) { + assert(isset($symbol)); if (!$recovering) { // Report error $expected = array(); @@ -231,7 +293,7 @@ public function parse($input, $flags = 0) $this->parseError($errStr, array( 'text' => $this->lexer->match, - 'token' => !empty($this->terminals_[$symbol]) ? $this->terminals_[$symbol] : $symbol, + 'token' => isset($this->terminals_[$symbol]) ? $this->terminals_[$symbol] : $symbol, 'line' => $this->lexer->yylineno, 'loc' => $yyloc, 'expected' => $expected, @@ -240,7 +302,7 @@ public function parse($input, $flags = 0) // just recovered from another error if ($recovering == 3) { - if ($symbol == $EOF) { + if ($symbol === Lexer::EOF) { throw new ParsingException($errStr ?: 'Parsing halted.'); } @@ -249,13 +311,13 @@ public function parse($input, $flags = 0) $yytext = $this->lexer->yytext; $yylineno = $this->lexer->yylineno; $yyloc = $this->lexer->yylloc; - $symbol = $this->lex(); + $symbol = $this->lexer->lex(); } // try to recover from error while (true) { // check for error recovery rule in this state - if (\array_key_exists($TERROR, $this->table[$state])) { + if (\array_key_exists(Lexer::T_ERROR, $this->table[$state])) { break; } if ($state == 0) { @@ -266,9 +328,13 @@ public function parse($input, $flags = 0) } $preErrorSymbol = $symbol; // save the lookahead token - $symbol = $TERROR; // insert generic error symbol as new lookahead + $symbol = Lexer::T_ERROR; // insert generic error symbol as new lookahead $state = $this->stack[\count($this->stack)-1]; - $action = isset($this->table[$state][$TERROR]) ? $this->table[$state][$TERROR] : false; + /** @var array<int, int>|false */ + $action = isset($this->table[$state][Lexer::T_ERROR]) ? $this->table[$state][Lexer::T_ERROR] : false; + if ($action === false) { + throw new \LogicException('No table value found for '.$state.' => '.Lexer::T_ERROR); + } $recovering = 3; // allow 3 real symbols to be shifted before reporting a new error } @@ -279,6 +345,7 @@ public function parse($input, $flags = 0) switch ($action[0]) { case 1: // shift + assert(isset($symbol)); $this->stack[] = $symbol; $this->vstack[] = $this->lexer->yytext; $this->lstack[] = $this->lexer->yylloc; @@ -292,7 +359,7 @@ public function parse($input, $flags = 0) if ($recovering > 0) { $recovering--; } - } else { // error just occurred, resume old lookahead f/ before error + } else { // error just occurred, resume old lookahead from before error $symbol = $preErrorSymbol; $preErrorSymbol = null; } @@ -302,18 +369,18 @@ public function parse($input, $flags = 0) $len = $this->productions_[$action[1]][1]; // perform semantic action - $yyval->token = $this->vstack[\count($this->vstack) - $len]; // default to $$ = $1 + $currentToken = $this->vstack[\count($this->vstack) - $len]; // default to $$ = $1 // default location, uses first token for firsts, last for lasts - $yyval->store = array( // _$ = store + $position = array( // _$ = store 'first_line' => $this->lstack[\count($this->lstack) - ($len ?: 1)]['first_line'], 'last_line' => $this->lstack[\count($this->lstack) - 1]['last_line'], 'first_column' => $this->lstack[\count($this->lstack) - ($len ?: 1)]['first_column'], 'last_column' => $this->lstack[\count($this->lstack) - 1]['last_column'], ); - $r = $this->performAction($yyval, $yytext, $yyleng, $yylineno, $action[1], $this->vstack); + list($newToken, $actionResult) = $this->performAction($currentToken, $yytext, $yyleng, $yylineno, $action[1]); - if (!$r instanceof Undefined) { - return $r; + if (!$actionResult instanceof Undefined) { + return $actionResult; } if ($len) { @@ -321,8 +388,9 @@ public function parse($input, $flags = 0) } $this->stack[] = $this->productions_[$action[1]][0]; // push nonterminal (reduce) - $this->vstack[] = $yyval->token; - $this->lstack[] = $yyval->store; + $this->vstack[] = $newToken; + $this->lstack[] = $position; + /** @var int */ $newState = $this->table[$this->stack[\count($this->stack)-2]][$this->stack[\count($this->stack)-1]]; $this->stack[] = $newState; break; @@ -334,125 +402,161 @@ public function parse($input, $flags = 0) } } - protected function parseError($str, $hash) + /** + * @param string $str + * @param array{text: string, token: string|int, line: int, loc: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected: string[]}|null $hash + * @return never + */ + protected function parseError($str, $hash = null) { - throw new ParsingException($str, $hash); + throw new ParsingException($str, $hash ?: array()); } - // $$ = $tokens // needs to be passed by ref? - // $ = $token - // _$ removed, useless? - private function performAction(stdClass $yyval, $yytext, $yyleng, $yylineno, $yystate, &$tokens) + /** + * @param stdClass|array<mixed>|int|bool|float|string|null $currentToken + * @param string $yytext + * @param int $yyleng + * @param int $yylineno + * @param int $yystate + * @return array{stdClass|array<mixed>|int|bool|float|string|null, stdClass|array<mixed>|int|bool|float|string|null|Undefined} + */ + private function performAction($currentToken, $yytext, $yyleng, $yylineno, $yystate) { - // $0 = $len - $len = \count($tokens) - 1; + $token = $currentToken; + + $len = \count($this->vstack) - 1; switch ($yystate) { case 1: $yytext = preg_replace_callback('{(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4})}', array($this, 'stringInterpolation'), $yytext); - $yyval->token = $yytext; + $token = $yytext; break; case 2: if (strpos($yytext, 'e') !== false || strpos($yytext, 'E') !== false) { - $yyval->token = \floatval($yytext); + $token = \floatval($yytext); } else { - $yyval->token = strpos($yytext, '.') === false ? \intval($yytext) : \floatval($yytext); + $token = strpos($yytext, '.') === false ? \intval($yytext) : \floatval($yytext); } break; case 3: - $yyval->token = null; + $token = null; break; case 4: - $yyval->token = true; + $token = true; break; case 5: - $yyval->token = false; + $token = false; break; case 6: - return $yyval->token = $tokens[$len-1]; + $token = $this->vstack[$len-1]; + + return array($token, $token); case 13: if ($this->flags & self::PARSE_TO_ASSOC) { - $yyval->token = array(); + $token = array(); } else { - $yyval->token = new stdClass; + $token = new stdClass; } break; case 14: - $yyval->token = $tokens[$len-1]; + $token = $this->vstack[$len-1]; break; case 15: - $yyval->token = array($tokens[$len-2], $tokens[$len]); + $token = array($this->vstack[$len-2], $this->vstack[$len]); break; case 16: + assert(\is_array($this->vstack[$len])); if (PHP_VERSION_ID < 70100) { - $property = $tokens[$len][0] === '' ? '_empty_' : $tokens[$len][0]; + $property = $this->vstack[$len][0] === '' ? '_empty_' : $this->vstack[$len][0]; } else { - $property = $tokens[$len][0]; + $property = $this->vstack[$len][0]; } if ($this->flags & self::PARSE_TO_ASSOC) { - $yyval->token = array(); - $yyval->token[$property] = $tokens[$len][1]; + $token = array(); + $token[$property] = $this->vstack[$len][1]; } else { - $yyval->token = new stdClass; - $yyval->token->$property = $tokens[$len][1]; + $token = new stdClass; + $token->$property = $this->vstack[$len][1]; } break; case 17: + assert(\is_array($this->vstack[$len])); if ($this->flags & self::PARSE_TO_ASSOC) { - $yyval->token =& $tokens[$len-2]; - $key = $tokens[$len][0]; - if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($tokens[$len-2][$key])) { + assert(\is_array($this->vstack[$len-2])); + $token =& $this->vstack[$len-2]; + $key = $this->vstack[$len][0]; + if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($this->vstack[$len-2][$key])) { $errStr = 'Parse error on line ' . ($yylineno+1) . ":\n"; $errStr .= $this->lexer->showPosition() . "\n"; - $errStr .= "Duplicate key: ".$tokens[$len][0]; - throw new DuplicateKeyException($errStr, $tokens[$len][0], array('line' => $yylineno+1)); - } elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($tokens[$len-2][$key])) { + $errStr .= "Duplicate key: ".$this->vstack[$len][0]; + throw new DuplicateKeyException($errStr, $this->vstack[$len][0], array('line' => $yylineno+1)); + } + if (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($this->vstack[$len-2][$key])) { $duplicateCount = 1; do { $duplicateKey = $key . '.' . $duplicateCount++; - } while (isset($tokens[$len-2][$duplicateKey])); - $key = $duplicateKey; + } while (isset($this->vstack[$len-2][$duplicateKey])); + $this->vstack[$len-2][$duplicateKey] = $this->vstack[$len][1]; + } elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS_TO_ARRAY) && isset($this->vstack[$len-2][$key])) { + if (!isset($this->vstack[$len-2][$key]['__duplicates__']) || !is_array($this->vstack[$len-2][$key]['__duplicates__'])) { + $this->vstack[$len-2][$key] = array('__duplicates__' => array($this->vstack[$len-2][$key])); + } + $this->vstack[$len-2][$key]['__duplicates__'][] = $this->vstack[$len][1]; + } else { + $this->vstack[$len-2][$key] = $this->vstack[$len][1]; } - $tokens[$len-2][$key] = $tokens[$len][1]; } else { - $yyval->token = $tokens[$len-2]; + assert($this->vstack[$len-2] instanceof stdClass); + $token = $this->vstack[$len-2]; if (PHP_VERSION_ID < 70100) { - $key = $tokens[$len][0] === '' ? '_empty_' : $tokens[$len][0]; + $key = $this->vstack[$len][0] === '' ? '_empty_' : $this->vstack[$len][0]; } else { - $key = $tokens[$len][0]; + $key = $this->vstack[$len][0]; } - if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($tokens[$len-2]->{$key})) { + if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($this->vstack[$len-2]->$key)) { $errStr = 'Parse error on line ' . ($yylineno+1) . ":\n"; $errStr .= $this->lexer->showPosition() . "\n"; - $errStr .= "Duplicate key: ".$tokens[$len][0]; - throw new DuplicateKeyException($errStr, $tokens[$len][0], array('line' => $yylineno+1)); - } elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($tokens[$len-2]->{$key})) { + $errStr .= "Duplicate key: ".$this->vstack[$len][0]; + throw new DuplicateKeyException($errStr, $this->vstack[$len][0], array('line' => $yylineno+1)); + } + if (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($this->vstack[$len-2]->$key)) { $duplicateCount = 1; do { $duplicateKey = $key . '.' . $duplicateCount++; - } while (isset($tokens[$len-2]->$duplicateKey)); - $key = $duplicateKey; + } while (isset($this->vstack[$len-2]->$duplicateKey)); + $this->vstack[$len-2]->$duplicateKey = $this->vstack[$len][1]; + } elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS_TO_ARRAY) && isset($this->vstack[$len-2]->$key)) { + if (!isset($this->vstack[$len-2]->$key->__duplicates__)) { + $this->vstack[$len-2]->$key = (object) array('__duplicates__' => array($this->vstack[$len-2]->$key)); + } + $this->vstack[$len-2]->$key->__duplicates__[] = $this->vstack[$len][1]; + } else { + $this->vstack[$len-2]->$key = $this->vstack[$len][1]; } - $tokens[$len-2]->$key = $tokens[$len][1]; } break; case 18: - $yyval->token = array(); + $token = array(); break; case 19: - $yyval->token = $tokens[$len-1]; + $token = $this->vstack[$len-1]; break; case 20: - $yyval->token = array($tokens[$len]); + $token = array($this->vstack[$len]); break; case 21: - $tokens[$len-2][] = $tokens[$len]; - $yyval->token = $tokens[$len-2]; + assert(\is_array($this->vstack[$len-2])); + $this->vstack[$len-2][] = $this->vstack[$len]; + $token = $this->vstack[$len-2]; break; } - return new Undefined(); + return array($token, new Undefined()); } + /** + * @param string $match + * @return string + */ private function stringInterpolation($match) { switch ($match[0]) { @@ -477,6 +581,10 @@ private function stringInterpolation($match) } } + /** + * @param int $n + * @return void + */ private function popStack($n) { $this->stack = \array_slice($this->stack, 0, - (2 * $n)); @@ -484,24 +592,17 @@ private function popStack($n) $this->lstack = \array_slice($this->lstack, 0, - $n); } - private function lex() - { - $token = $this->lexer->lex() ?: 1; // $end = 1 - // if token isn't its numeric value, convert - if (!is_numeric($token)) { - $token = isset($this->symbols[$token]) ? $this->symbols[$token] : $token; - } - - return $token; - } - + /** + * @param string $input + * @return void + */ private function failOnBOM($input) { // UTF-8 ByteOrderMark sequence $bom = "\xEF\xBB\xBF"; if (substr($input, 0, 3) === $bom) { - $this->parseError("BOM detected, make sure your input does not include a Unicode Byte-Order-Mark", array()); + $this->parseError("BOM detected, make sure your input does not include a Unicode Byte-Order-Mark"); } } } diff --git a/api/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php b/api/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php index 455f0f793..6db5e1e40 100644 --- a/api/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php +++ b/api/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php @@ -18,56 +18,110 @@ */ class Lexer { - private $EOF = 1; + /** @internal */ + const EOF = 1; + /** @internal */ + const T_INVALID = -1; + const T_SKIP_WHITESPACE = 0; + const T_ERROR = 2; + /** @internal */ + const T_BREAK_LINE = 3; + /** @internal */ + const T_COMMENT = 30; + /** @internal */ + const T_OPEN_COMMENT = 31; + /** @internal */ + const T_CLOSE_COMMENT = 32; + /** - * @phpstan-var array<int, string> + * @phpstan-var array<int<0,17>, string> + * @const */ private $rules = array( - 0 => '/\G\s+/', - 1 => '/\G-?([0-9]|[1-9][0-9]+)(\.[0-9]+)?([eE][+-]?[0-9]+)?\b/', - 2 => '{\G"(?>\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^\0-\x1f\\\\"]++)*+"}', - 3 => '/\G\{/', - 4 => '/\G\}/', - 5 => '/\G\[/', - 6 => '/\G\]/', - 7 => '/\G,/', - 8 => '/\G:/', - 9 => '/\Gtrue\b/', - 10 => '/\Gfalse\b/', - 11 => '/\Gnull\b/', - 12 => '/\G$/', - 13 => '/\G./', - ); - - private $conditions = array( - "INITIAL" => array( - "rules" => array(0,1,2,3,4,5,6,7,8,9,10,11,12,13), - "inclusive" => true, - ), + 0 => '/\G\s*\n\r?/', + 1 => '/\G\s+/', + 2 => '/\G-?([0-9]|[1-9][0-9]+)(\.[0-9]+)?([eE][+-]?[0-9]+)?\b/', + 3 => '{\G"(?>\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}|[^\0-\x1f\\\\"]++)*+"}', + 4 => '/\G\{/', + 5 => '/\G\}/', + 6 => '/\G\[/', + 7 => '/\G\]/', + 8 => '/\G,/', + 9 => '/\G:/', + 10 => '/\Gtrue\b/', + 11 => '/\Gfalse\b/', + 12 => '/\Gnull\b/', + 13 => '/\G$/', + 14 => '/\G\/\//', + 15 => '/\G\/\*/', + 16 => '/\G\*\//', + 17 => '/\G./', ); - private $conditionStack; + /** @var string */ private $input; + /** @var bool */ private $more; + /** @var bool */ private $done; + /** @var 0|positive-int */ private $offset; + /** @var int */ + private $flags; + /** @var string */ public $match; + /** @var 0|positive-int */ public $yylineno; + /** @var 0|positive-int */ public $yyleng; + /** @var string */ public $yytext; + /** @var array{first_line: 0|positive-int, first_column: 0|positive-int, last_line: 0|positive-int, last_column: 0|positive-int} */ public $yylloc; + /** + * @param int $flags + */ + public function __construct($flags = 0) + { + $this->flags = $flags; + } + + /** + * @return 0|1|4|6|8|10|11|14|17|18|21|22|23|24|30|-1 + */ public function lex() { - $r = $this->next(); - if (!$r instanceof Undefined) { - return $r; + while (true) { + $symbol = $this->next(); + switch ($symbol) { + case self::T_SKIP_WHITESPACE: + case self::T_BREAK_LINE: + break; + case self::T_COMMENT: + case self::T_OPEN_COMMENT: + if (!($this->flags & JsonParser::ALLOW_COMMENTS)) { + $this->parseError('Lexical error on line ' . ($this->yylineno+1) . ". Comments are not allowed.\n" . $this->showPosition()); + } + $this->skipUntil($symbol === self::T_COMMENT ? self::T_BREAK_LINE : self::T_CLOSE_COMMENT); + if ($this->done) { + // last symbol '/\G$/' before EOF + return 14; + } + break; + case self::T_CLOSE_COMMENT: + $this->parseError('Lexical error on line ' . ($this->yylineno+1) . ". Unexpected token.\n" . $this->showPosition()); + default: + return $symbol; + } } - - return $this->lex(); } + /** + * @param string $input + * @return $this + */ public function setInput($input) { $this->input = $input; @@ -76,20 +130,29 @@ public function setInput($input) $this->offset = 0; $this->yylineno = $this->yyleng = 0; $this->yytext = $this->match = ''; - $this->conditionStack = array('INITIAL'); $this->yylloc = array('first_line' => 1, 'first_column' => 0, 'last_line' => 1, 'last_column' => 0); return $this; } + /** + * @return string + */ public function showPosition() { + if ($this->yylineno === 0 && $this->offset === 1 && $this->match !== '{') { + return $this->match.'...' . "\n^"; + } + $pre = str_replace("\n", '', $this->getPastInput()); $c = str_repeat('-', max(0, \strlen($pre) - 1)); // new Array(pre.length + 1).join("-"); return $pre . str_replace("\n", '', $this->getUpcomingInput()) . "\n" . $c . "^"; } + /** + * @return string + */ public function getPastInput() { $pastLength = $this->offset - \strlen($this->match); @@ -97,6 +160,9 @@ public function getPastInput() return ($pastLength > 20 ? '...' : '') . substr($this->input, max(0, $pastLength - 20), min(20, $pastLength)); } + /** + * @return string + */ public function getUpcomingInput() { $next = $this->match; @@ -107,12 +173,19 @@ public function getUpcomingInput() return substr($next, 0, 20) . (\strlen($next) > 20 ? '...' : ''); } + /** + * @return string + */ public function getFullUpcomingInput() { $next = $this->match; if (substr($next, 0, 1) === '"' && substr_count($next, '"') === 1) { $len = \strlen($this->input); - $strEnd = min(strpos($this->input, '"', $this->offset + 1) ?: $len, strpos($this->input, "\n", $this->offset + 1) ?: $len); + if ($len === $this->offset) { + $strEnd = $len; + } else { + $strEnd = min(strpos($this->input, '"', $this->offset + 1) ?: $len, strpos($this->input, "\n", $this->offset + 1) ?: $len); + } $next .= substr($this->input, $this->offset, $strEnd - $this->offset); } elseif (\strlen($next) < 20) { $next .= substr($this->input, $this->offset, 20 - \strlen($next)); @@ -121,15 +194,34 @@ public function getFullUpcomingInput() return $next; } - protected function parseError($str, $hash) + /** + * @param string $str + * @return never + */ + protected function parseError($str) + { + throw new ParsingException($str); + } + + /** + * @param int $token + * @return void + */ + private function skipUntil($token) { - throw new \Exception($str); + $symbol = $this->next(); + while ($symbol !== $token && false === $this->done) { + $symbol = $this->next(); + } } + /** + * @return 0|1|3|4|6|8|10|11|14|17|18|21|22|23|24|30|31|32|-1 + */ private function next() { if ($this->done) { - return $this->EOF; + return self::EOF; } if ($this->offset === \strlen($this->input)) { $this->done = true; @@ -145,89 +237,84 @@ private function next() $this->match = ''; } - $rules = $this->getCurrentRules(); - $rulesLen = \count($rules); + $rulesLen = count($this->rules); for ($i=0; $i < $rulesLen; $i++) { - if (preg_match($this->rules[$rules[$i]], $this->input, $match, 0, $this->offset)) { - preg_match_all('/\n.*/', $match[0], $lines); - $lines = $lines[0]; - if ($lines) { - $this->yylineno += \count($lines); - } - + if (preg_match($this->rules[$i], $this->input, $match, 0, $this->offset)) { + $lines = explode("\n", $match[0]); + array_shift($lines); + $lineCount = \count($lines); + $this->yylineno += $lineCount; $this->yylloc = array( 'first_line' => $this->yylloc['last_line'], 'last_line' => $this->yylineno+1, 'first_column' => $this->yylloc['last_column'], - 'last_column' => $lines ? \strlen($lines[\count($lines) - 1]) - 1 : $this->yylloc['last_column'] + \strlen($match[0]), + 'last_column' => $lineCount > 0 ? \strlen($lines[$lineCount - 1]) : $this->yylloc['last_column'] + \strlen($match[0]), ); $this->yytext .= $match[0]; $this->match .= $match[0]; $this->yyleng = \strlen($this->yytext); $this->more = false; $this->offset += \strlen($match[0]); - $token = $this->performAction($rules[$i], $this->conditionStack[\count($this->conditionStack)-1]); - if ($token) { - return $token; - } - - return new Undefined(); + return $this->performAction($i); } } if ($this->offset === \strlen($this->input)) { - return $this->EOF; + return self::EOF; } $this->parseError( - 'Lexical error on line ' . ($this->yylineno+1) . ". Unrecognized text.\n" . $this->showPosition(), - array( - 'text' => "", - 'token' => null, - 'line' => $this->yylineno, - ) + 'Lexical error on line ' . ($this->yylineno+1) . ". Unrecognized text.\n" . $this->showPosition() ); } - private function getCurrentRules() - { - return $this->conditions[$this->conditionStack[\count($this->conditionStack)-1]]['rules']; - } - - private function performAction($avoiding_name_collisions, $YY_START) + /** + * @param int $rule + * @return 0|3|4|6|8|10|11|14|17|18|21|22|23|24|30|31|32|-1 + */ + private function performAction($rule) { - switch ($avoiding_name_collisions) { - case 0:/* skip whitespace */ - break; - case 1: - return 6; + switch ($rule) { + case 0:/* skip break line */ + return self::T_BREAK_LINE; + case 1:/* skip whitespace */ + return self::T_SKIP_WHITESPACE; case 2: + return 6; + case 3: $this->yytext = substr($this->yytext, 1, $this->yyleng-2); - return 4; - case 3: - return 17; case 4: - return 18; + return 17; case 5: - return 23; + return 18; case 6: - return 24; + return 23; case 7: - return 22; + return 24; case 8: - return 21; + return 22; case 9: - return 10; + return 21; case 10: - return 11; + return 10; case 11: - return 8; + return 11; case 12: - return 14; + return 8; case 13: - return 'INVALID'; + return 14; + case 14: + return self::T_COMMENT; + case 15: + return self::T_OPEN_COMMENT; + case 16: + return self::T_CLOSE_COMMENT; + case 17: + return self::T_INVALID; + default: + throw new \LogicException('Unsupported rule '.$rule); } } } diff --git a/api/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php b/api/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php index ce2964f4b..18e2d0649 100644 --- a/api/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php +++ b/api/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php @@ -13,11 +13,14 @@ class ParsingException extends \Exception { + /** + * @var array{text?: string, token?: string|int, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[]} + */ protected $details; /** * @param string $message - * @phpstan-param array{text?: string, token?: string, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[]} $details + * @phpstan-param array{text?: string, token?: string|int, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[]} $details */ public function __construct($message, $details = array()) { @@ -26,7 +29,7 @@ public function __construct($message, $details = array()) } /** - * @phpstan-return array{text?: string, token?: string, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[]} + * @phpstan-return array{text?: string, token?: string|int, line?: int, loc?: array{first_line: int, first_column: int, last_line: int, last_column: int}, expected?: string[]} */ public function getDetails() { diff --git a/api/vendor/seld/phar-utils/src/Linter.php b/api/vendor/seld/phar-utils/src/Linter.php index 892e30ea5..935d04e84 100644 --- a/api/vendor/seld/phar-utils/src/Linter.php +++ b/api/vendor/seld/phar-utils/src/Linter.php @@ -17,8 +17,9 @@ class Linter * Lints all php files inside a given phar with the current PHP version * * @param string $path Phar file path + * @param list<string> $excludedPaths Paths which should be skipped by the linter */ - public static function lint($path) + public static function lint($path, array $excludedPaths = array()) { $php = defined('PHP_BINARY') ? PHP_BINARY : 'php'; @@ -50,13 +51,17 @@ public static function lint($path) 2 => array('pipe', 'w') ); + // path to phar + phar:// + trailing slash + $baseLen = strlen(realpath($path)) + 7 + 1; foreach (new \RecursiveIteratorIterator(new \Phar($path)) as $file) { if ($file->isDir()) { continue; } if (substr($file, -4) === '.php') { $filename = (string) $file; - + if (in_array(substr($filename, $baseLen), $excludedPaths, true)) { + continue; + } if ($isWindows) { file_put_contents($tmpFile, file_get_contents($filename)); } diff --git a/api/vendor/seld/phar-utils/src/Timestamps.php b/api/vendor/seld/phar-utils/src/Timestamps.php index ebf6e817e..8077d5b85 100644 --- a/api/vendor/seld/phar-utils/src/Timestamps.php +++ b/api/vendor/seld/phar-utils/src/Timestamps.php @@ -73,7 +73,11 @@ public function updateTimestamps($timestamp = null) $pos += 4; // update timestamp to a fixed value - $this->contents = substr_replace($this->contents, pack('L', $timestamp), $pos, 4); + $timeStampBytes = pack('L', $timestamp); + $this->contents[$pos + 0] = $timeStampBytes[0]; + $this->contents[$pos + 1] = $timeStampBytes[1]; + $this->contents[$pos + 2] = $timeStampBytes[2]; + $this->contents[$pos + 3] = $timeStampBytes[3]; // skip timestamp, compressed file size, crc32 checksum and file flags $pos += 4*4; diff --git a/api/vendor/seld/signal-handler/LICENSE b/api/vendor/seld/signal-handler/LICENSE new file mode 100644 index 000000000..c1b62a35f --- /dev/null +++ b/api/vendor/seld/signal-handler/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 Jordi Boggiano + +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/api/vendor/seld/signal-handler/composer.json b/api/vendor/seld/signal-handler/composer.json new file mode 100644 index 000000000..cbbab08b4 --- /dev/null +++ b/api/vendor/seld/signal-handler/composer.json @@ -0,0 +1,40 @@ +{ + "name": "seld/signal-handler", + "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", + "keywords": ["unix", "posix", "signal", "sigint", "sigterm"], + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "require": { + "php": ">=7.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.20 || ^8.5.23", + "psr/log": "^1 || ^2 || ^3", + "phpstan/phpstan": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpstan/phpstan-deprecation-rules": "^1.0" + }, + "autoload": { + "psr-4": { "Seld\\Signal\\": "src/" } + }, + "autoload-dev": { + "psr-4": { "Seld\\Signal\\": "tests/" } + }, + "scripts": { + "phpstan": "@php phpstan analyse", + "test": "@php phpunit" + }, + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + } +} diff --git a/api/vendor/seld/signal-handler/src/SignalHandler.php b/api/vendor/seld/signal-handler/src/SignalHandler.php new file mode 100644 index 000000000..5b2b8275a --- /dev/null +++ b/api/vendor/seld/signal-handler/src/SignalHandler.php @@ -0,0 +1,567 @@ +<?php + +/* + * This file is part of signal-handler. + * + * (c) Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Seld\Signal; + +use Psr\Log\LoggerInterface; +use Closure; +use WeakReference; + +/** + * SignalHandler and factory + */ +final class SignalHandler +{ + /** + * The SIGHUP signal is sent to a process when its controlling terminal is closed. It was originally designed to + * notify the process of a serial line drop (a hangup). In modern systems, this signal usually means that the + * controlling pseudo or virtual terminal has been closed. Many daemons will reload their configuration files and + * reopen their logfiles instead of exiting when receiving this signal. nohup is a command to make a command ignore + * the signal. + */ + public const SIGHUP = 'SIGHUP'; + + /** + * The SIGINT signal is sent to a process by its controlling terminal when a user wishes to interrupt the process. + * This is typically initiated by pressing Ctrl-C, but on some systems, the "delete" character or "break" key can be + * used. + * + * On Windows this is used to denote a PHP_WINDOWS_EVENT_CTRL_C + */ + public const SIGINT = 'SIGINT'; + + /** + * The SIGQUIT signal is sent to a process by its controlling terminal when the user requests that the process quit + * and perform a core dump. + */ + public const SIGQUIT = 'SIGQUIT'; + + /** + * The SIGILL signal is sent to a process when it attempts to execute an illegal, malformed, unknown, or privileged + * instruction. + */ + public const SIGILL = 'SIGILL'; + + /** + * The SIGTRAP signal is sent to a process when an exception (or trap) occurs: a condition that a debugger has + * requested to be informed of — for example, when a particular function is executed, or when a particular variable + * changes value. + */ + public const SIGTRAP = 'SIGTRAP'; + + /** + * The SIGABRT signal is sent to a process to tell it to abort, i.e. to terminate. The signal is usually initiated + * by the process itself when it calls abort function of the C Standard Library, but it can be sent to the process + * from outside like any other signal. + */ + public const SIGABRT = 'SIGABRT'; + + public const SIGIOT = 'SIGIOT'; + + /** + * The SIGBUS signal is sent to a process when it causes a bus error. The conditions that lead to the signal being + * sent are, for example, incorrect memory access alignment or non-existent physical address. + */ + public const SIGBUS = 'SIGBUS'; + + public const SIGFPE = 'SIGFPE'; + + /** + * The SIGKILL signal is sent to a process to cause it to terminate immediately (kill). In contrast to SIGTERM and + * SIGINT, this signal cannot be caught or ignored, and the receiving process cannot perform any clean-up upon + * receiving this signal. + */ + public const SIGKILL = 'SIGKILL'; + + /** + * The SIGUSR1 signal is sent to a process to indicate user-defined conditions. + */ + public const SIGUSR1 = 'SIGUSR1'; + + /** + * The SIGUSR1 signa2 is sent to a process to indicate user-defined conditions. + */ + public const SIGUSR2 = 'SIGUSR2'; + + /** + * The SIGSEGV signal is sent to a process when it makes an invalid virtual memory reference, or segmentation fault, + * i.e. when it performs a segmentation violation. + */ + public const SIGSEGV = 'SIGSEGV'; + + /** + * The SIGPIPE signal is sent to a process when it attempts to write to a pipe without a process connected to the + * other end. + */ + public const SIGPIPE = 'SIGPIPE'; + + /** + * The SIGALRM, SIGVTALRM and SIGPROF signal is sent to a process when the time limit specified in a call to a + * preceding alarm setting function (such as setitimer) elapses. SIGALRM is sent when real or clock time elapses. + * SIGVTALRM is sent when CPU time used by the process elapses. SIGPROF is sent when CPU time used by the process + * and by the system on behalf of the process elapses. + */ + public const SIGALRM = 'SIGALRM'; + + /** + * The SIGTERM signal is sent to a process to request its termination. Unlike the SIGKILL signal, it can be caught + * and interpreted or ignored by the process. This allows the process to perform nice termination releasing + * resources and saving state if appropriate. SIGINT is nearly identical to SIGTERM. + */ + public const SIGTERM = 'SIGTERM'; + + public const SIGSTKFLT = 'SIGSTKFLT'; + public const SIGCLD = 'SIGCLD'; + + /** + * The SIGCHLD signal is sent to a process when a child process terminates, is interrupted, or resumes after being + * interrupted. One common usage of the signal is to instruct the operating system to clean up the resources used by + * a child process after its termination without an explicit call to the wait system call. + */ + public const SIGCHLD = 'SIGCHLD'; + + /** + * The SIGCONT signal instructs the operating system to continue (restart) a process previously paused by the + * SIGSTOP or SIGTSTP signal. One important use of this signal is in job control in the Unix shell. + */ + public const SIGCONT = 'SIGCONT'; + + /** + * The SIGSTOP signal instructs the operating system to stop a process for later resumption. + */ + public const SIGSTOP = 'SIGSTOP'; + + /** + * The SIGTSTP signal is sent to a process by its controlling terminal to request it to stop (terminal stop). It is + * commonly initiated by the user pressing Ctrl+Z. Unlike SIGSTOP, the process can register a signal handler for or + * ignore the signal. + */ + public const SIGTSTP = 'SIGTSTP'; + + /** + * The SIGTTIN signal is sent to a process when it attempts to read in from the tty while in the background. + * Typically, this signal is received only by processes under job control; daemons do not have controlling + */ + public const SIGTTIN = 'SIGTTIN'; + + /** + * The SIGTTOU signal is sent to a process when it attempts to write out from the tty while in the background. + * Typically, this signal is received only by processes under job control; daemons do not have controlling + */ + public const SIGTTOU = 'SIGTTOU'; + + /** + * The SIGURG signal is sent to a process when a socket has urgent or out-of-band data available to read. + */ + public const SIGURG = 'SIGURG'; + + /** + * The SIGXCPU signal is sent to a process when it has used up the CPU for a duration that exceeds a certain + * predetermined user-settable value. The arrival of a SIGXCPU signal provides the receiving process a chance to + * quickly save any intermediate results and to exit gracefully, before it is terminated by the operating system + * using the SIGKILL signal. + */ + public const SIGXCPU = 'SIGXCPU'; + + /** + * The SIGXFSZ signal is sent to a process when it grows a file larger than the maximum allowed size + */ + public const SIGXFSZ = 'SIGXFSZ'; + + /** + * The SIGVTALRM signal is sent to a process when the time limit specified in a call to a preceding alarm setting + * function (such as setitimer) elapses. SIGVTALRM is sent when CPU time used by the process elapses. + */ + public const SIGVTALRM = 'SIGVTALRM'; + + /** + * The SIGPROF signal is sent to a process when the time limit specified in a call to a preceding alarm setting + * function (such as setitimer) elapses. SIGPROF is sent when CPU time used by the process and by the system on + * behalf of the process elapses. + */ + public const SIGPROF = 'SIGPROF'; + + /** + * The SIGWINCH signal is sent to a process when its controlling terminal changes its size (a window change). + */ + public const SIGWINCH = 'SIGWINCH'; + + /** + * The SIGPOLL signal is sent when an event occurred on an explicitly watched file descriptor.Using it effectively + * leads to making asynchronous I/O requests since the kernel will poll the descriptor in place of the caller. It + * provides an alternative to active polling. + */ + public const SIGPOLL = 'SIGPOLL'; + + public const SIGIO = 'SIGIO'; + + /** + * The SIGPWR signal is sent to a process when the system experiences a power failure. + */ + public const SIGPWR = 'SIGPWR'; + + /** + * The SIGSYS signal is sent to a process when it passes a bad argument to a system call. In practice, this kind of + * signal is rarely encountered since applications rely on libraries (e.g. libc) to make the call for them. + */ + public const SIGSYS = 'SIGSYS'; + + public const SIGBABY = 'SIGBABY'; + + /** + * CTRL+Break support, available on Windows only for PHP_WINDOWS_EVENT_CTRL_BREAK + */ + public const SIGBREAK = 'SIGBREAK'; + + private const ALL_SIGNALS = [ + self::SIGHUP, self::SIGINT, self::SIGQUIT, self::SIGILL, self::SIGTRAP, self::SIGABRT, self::SIGIOT, self::SIGBUS, + self::SIGFPE, self::SIGKILL, self::SIGUSR1, self::SIGUSR2, self::SIGSEGV, self::SIGPIPE, self::SIGALRM, self::SIGTERM, + self::SIGSTKFLT, self::SIGCLD, self::SIGCHLD, self::SIGCONT, self::SIGSTOP, self::SIGTSTP, self::SIGTTIN, self::SIGTTOU, + self::SIGURG, self::SIGXCPU, self::SIGXFSZ, self::SIGVTALRM, self::SIGPROF, self::SIGWINCH, self::SIGPOLL, self::SIGIO, + self::SIGPWR, self::SIGSYS, self::SIGBABY, self::SIGBREAK + ]; + + /** + * @var self::SIG*|null + */ + private $triggered = null; + + /** + * @var list<self::SIG*> + * @readonly + */ + private $signals; + + /** + * @var LoggerInterface|(callable(self::SIG* $name, SignalHandler $self): void)|null + * @readonly + */ + private $loggerOrCallback; + + /** + * @var array<int, self|WeakReference<self>> + */ + private static $handlers = []; + + /** @var Closure|null */ + private static $windowsHandler = null; + + /** + * @param array<self::SIG*> $signals + * @param LoggerInterface|(callable(self::SIG* $name, SignalHandler $self): void)|null $loggerOrCallback + */ + private function __construct(array $signals, $loggerOrCallback) + { + if (!is_callable($loggerOrCallback) && !$loggerOrCallback instanceof LoggerInterface && $loggerOrCallback !== null) { + throw new \InvalidArgumentException('$loggerOrCallback must be a '.LoggerInterface::class.' instance, a callable, or null, '.(is_object($loggerOrCallback) ? get_class($loggerOrCallback) : gettype($loggerOrCallback)).' received.'); + } + + $this->signals = $signals; + $this->loggerOrCallback = $loggerOrCallback; + } + + /** + * @param self::SIG* $signalName + */ + private function trigger(string $signalName): void + { + $this->triggered = $signalName; + + if ($this->loggerOrCallback instanceof LoggerInterface) { + $this->loggerOrCallback->info('Received '.$signalName); + } elseif ($this->loggerOrCallback !== null) { + ($this->loggerOrCallback)($signalName, $this); + } + } + + /** + * Fetches the triggered state of the handler + * + * @phpstan-impure + */ + public function isTriggered(): bool + { + return $this->triggered !== null; + } + + /** + * Exits the process while communicating that the handled signal was what killed the process + * + * This is different from doing exit(SIGINT), and is also different to a successful exit(0). + * + * This should only be used when you received a signal and then handled it to gracefully shutdown and are now ready to shutdown. + * + * ``` + * $signal = SignalHandler::create([SignalHandler::SIGINT], function (string $signal, SignalHandler $handler) { + * // do cleanup here.. + * + * $handler->exitWithLastSignal(); + * }); + * + * // or... + * + * $signal = SignalHandler::create([SignalHandler::SIGINT]); + * + * while ($doingThings) { + * if ($signal->isTriggered()) { + * $signal->exitWithLastSignal(); + * } + * + * // do more things + * } + * ``` + * + * @see https://www.cons.org/cracauer/sigint.html + * @return never + */ + public function exitWithLastSignal(): void + { + $signal = $this->triggered ?? 'SIGINT'; + $signal = defined($signal) ? constant($signal) : 2; + + if (function_exists('posix_kill') && function_exists('posix_getpid')) { + pcntl_signal($signal, SIG_DFL); + posix_kill(posix_getpid(), $signal); + } + + // just in case posix_kill above could not run + // not strictly correct but it's the best we can do here + exit(128 + $signal); + } + + /** + * Resets the state to let a handler accept a signal again + */ + public function reset(): void + { + $this->triggered = null; + } + + public function __destruct() + { + $this->unregister(); + } + + /** + * @param (string|int)[] $signals array of signal names (more portable, see SignalHandler::SIG*) or constants - defaults to [SIGINT, SIGTERM] + * @param LoggerInterface|callable $loggerOrCallback A PSR-3 Logger or a callback($signal, $signalName) + * @return self A handler on which you can call isTriggered to know if the signal was received, and reset() to forget + * + * @phpstan-param list<self::SIG*|int> $signals + * @phpstan-param LoggerInterface|(callable(self::SIG* $name, SignalHandler $self): void) $loggerOrCallback + */ + public static function create(?array $signals = null, $loggerOrCallback = null): self + { + if ($signals === null) { + $signals = [self::SIGINT, self::SIGTERM]; + } + $signals = array_map(function ($signal) { + if (is_int($signal)) { + return self::getSignalName($signal); + } elseif (!in_array($signal, self::ALL_SIGNALS, true)) { + throw new \InvalidArgumentException('$signals must be an array of SIG* constants or self::SIG* constants, got '.var_export($signal, true)); + } + return $signal; + }, (array) $signals); + + $handler = new self($signals, $loggerOrCallback); + + if (PHP_VERSION_ID >= 80000) { + array_unshift(self::$handlers, WeakReference::create($handler)); + } else { + array_unshift(self::$handlers, $handler); + } + + if (function_exists('sapi_windows_set_ctrl_handler') && PHP_SAPI === 'cli' && (in_array(self::SIGINT, $signals, true) || in_array(self::SIGBREAK, $signals, true))) { + if (null === self::$windowsHandler) { + self::$windowsHandler = Closure::fromCallable([self::class, 'handleWindowsSignal']); + sapi_windows_set_ctrl_handler(self::$windowsHandler); + } + } + + if (function_exists('pcntl_signal') && function_exists('pcntl_async_signals')) { + pcntl_async_signals(true); + + self::registerPcntlHandler($signals); + } + + return $handler; + } + + /** + * Clears the signal handler + * + * On PHP 8+ this is not necessary and it will happen automatically on __destruct, but PHP 7 does not + * support weak references and thus there you need to manually do this. + * + * If another handler was registered previously to this one, it becomes active again + */ + public function unregister(): void + { + $signals = $this->signals; + + $index = false; + foreach (self::$handlers as $key => $handler) { + if (($handler instanceof WeakReference && $handler->get() === $this) || $handler === $this) { + $index = $key; + break; + } + } + if ($index === false) { + // guard against double-unregistration when __destruct happens + return; + } + + unset(self::$handlers[$index]); + + if (self::$windowsHandler !== null && (in_array(self::SIGINT, $signals, true) || in_array(self::SIGBREAK, $signals, true))) { + if (self::getHandlerFor(self::SIGINT) === null && self::getHandlerFor(self::SIGBREAK) === null) { + sapi_windows_set_ctrl_handler(self::$windowsHandler, false); + self::$windowsHandler = null; + } + } + + if (function_exists('pcntl_signal')) { + foreach ($signals as $signal) { + // skip missing signals, for example OSX does not have all signals + if (!defined($signal)) { + continue; + } + + // keep listening to signals where we have a handler registered + if (self::getHandlerFor($signal) !== null) { + continue; + } + + pcntl_signal(constant($signal), SIG_DFL); + } + } + } + + /** + * Clears all signal handlers + * + * On PHP 8+ this should not be necessary as it will happen automatically on __destruct, but PHP 7 does not + * support weak references and thus there you need to manually do this. + * + * This can be done to reset the global state, but ideally you should always call ->unregister() in a try/finally block to ensure it happens. + */ + public static function unregisterAll(): void + { + if (self::$windowsHandler !== null) { + sapi_windows_set_ctrl_handler(self::$windowsHandler, false); + self::$windowsHandler = null; + } + + foreach (self::$handlers as $key => $handler) { + if ($handler instanceof WeakReference) { + $handler = $handler->get(); + if ($handler === null) { + unset(self::$handlers[$key]); + continue; + } + } + $handler->unregister(); + } + } + + /** + * @param list<self::SIG*> $signals + */ + private static function registerPcntlHandler(array $signals): void + { + static $callable; + if ($callable === null) { + $callable = Closure::fromCallable([self::class, 'handlePcntlSignal']); + } + foreach ($signals as $signal) { + // skip missing signals, for example OSX does not have all signals + if (!defined($signal)) { + continue; + } + + pcntl_signal(constant($signal), $callable); + } + } + + private static function handleWindowsSignal(int $event): void + { + if (PHP_WINDOWS_EVENT_CTRL_C === $event) { + self::callHandlerFor(self::SIGINT); + } elseif (PHP_WINDOWS_EVENT_CTRL_BREAK === $event) { + self::callHandlerFor(self::SIGBREAK); + } + } + + private static function handlePcntlSignal(int $signal): void + { + self::callHandlerFor(self::getSignalName($signal)); + } + + /** + * Calls the first handler from the top of the stack that can handle a given signal + * + * @param self::SIG* $signal + */ + private static function callHandlerFor(string $signal): void + { + $handler = self::getHandlerFor($signal); + if ($handler !== null) { + $handler->trigger($signal); + } + } + + /** + * Returns the first handler from the top of the stack that can handle a given signal + * + * @param self::SIG* $signal + * @return self|null + */ + private static function getHandlerFor(string $signal): ?self + { + foreach (self::$handlers as $key => $handler) { + if ($handler instanceof WeakReference) { + $handler = $handler->get(); + if ($handler === null) { + unset(self::$handlers[$key]); + continue; + } + } + if (in_array($signal, $handler->signals, true)) { + return $handler; + } + } + + return null; + } + + /** + * @return self::SIG* + */ + private static function getSignalName(int $signo): string + { + static $signals = null; + if ($signals === null) { + $signals = []; + foreach (self::ALL_SIGNALS as $value) { + if (defined($value)) { + $signals[constant($value)] = $value; + } + } + } + + if (isset($signals[$signo])) { + return $signals[$signo]; + } + + throw new \InvalidArgumentException('Unknown signal #'.$signo); + } +} diff --git a/api/vendor/shalvah/clara/composer.json b/api/vendor/shalvah/clara/composer.json index 1d449a211..24fe6a8b6 100644 --- a/api/vendor/shalvah/clara/composer.json +++ b/api/vendor/shalvah/clara/composer.json @@ -22,7 +22,7 @@ }, "require": { "php": ">=7.4", - "symfony/console": "^4.0|^5.0|^6.0" + "symfony/console": "^4.0|^5.0|^6.0|^7.0" }, "require-dev": { "phpunit/phpunit": "^9.1", diff --git a/api/vendor/shalvah/upgrader/composer.json b/api/vendor/shalvah/upgrader/composer.json index 27cac711d..dadf7a9e2 100644 --- a/api/vendor/shalvah/upgrader/composer.json +++ b/api/vendor/shalvah/upgrader/composer.json @@ -14,14 +14,14 @@ ], "require": { "php": ">=7.4", - "illuminate/support": "^6.0|^7.0|^8.0", - "nikic/php-parser": "^4.10" + "illuminate/support": "^6.0|^7.0|^8.0|^9.0", + "nikic/php-parser": "^4.13" }, "require-dev": { "dms/phpunit-arraysubset-asserts": "^0.2.0", - "pestphp/pest": "^1.10", - "phpstan/phpstan": "^0.12.90", - "spatie/ray": "^1.28" + "pestphp/pest": "^1.21", + "phpstan/phpstan": "^1.0", + "spatie/ray": "^1.33" }, "autoload": { "psr-4": { @@ -41,7 +41,10 @@ "config": { "preferred-install": "dist", "sort-packages": true, - "process-timeout": 600 + "process-timeout": 600, + "allow-plugins": { + "pestphp/pest-plugin": true + } }, "funding": [ { diff --git a/api/vendor/shalvah/upgrader/phpstan.neon b/api/vendor/shalvah/upgrader/phpstan.neon index fcb0b3ed2..de3686d7c 100644 --- a/api/vendor/shalvah/upgrader/phpstan.neon +++ b/api/vendor/shalvah/upgrader/phpstan.neon @@ -1,10 +1,6 @@ parameters: level: 5 - excludePaths: - - './src/PrettyPrinter/Standard.php' - reportUnmatchedIgnoredErrors: false + reportUnmatchedIgnoredErrors: true inferPrivatePropertyTypeFromConstructor: true ignoreErrors: - - '#Method .+ should return .+\|null but return statement is missing.#' - # The type from the lib isn't exactly correct. Should be a generic. - - '#Property Shalvah\\Upgrader\\Upgrader::\$userOldConfigFileAst \(array<PhpParser\\Node\\Stmt>\|null\) does not accept array<PhpParser\\Node>#' \ No newline at end of file + - '#Method .+ should return .+\|null but return statement is missing.#' \ No newline at end of file diff --git a/api/vendor/shalvah/upgrader/src/PrettyPrinter/Standard.php b/api/vendor/shalvah/upgrader/src/PrettyPrinter/Standard.php deleted file mode 100644 index bd94debb9..000000000 --- a/api/vendor/shalvah/upgrader/src/PrettyPrinter/Standard.php +++ /dev/null @@ -1,247 +0,0 @@ -<?php - -namespace Shalvah\Upgrader\PrettyPrinter; - -use PhpParser\Internal\DiffElem; -use PhpParser\Node; - -/** - * Monkey-patch until https://github.com/nikic/PHP-Parser/pull/805 is merged - */ -class Standard extends \PhpParser\PrettyPrinter\Standard -{ - protected function pArray( - array $nodes, array $origNodes, int &$pos, int $indentAdjustment, - string $parentNodeType, string $subNodeName, $fixup - ) { - $diff = $this->nodeListDiffer->diffWithReplacements($origNodes, $nodes); - - $mapKey = $parentNodeType . '->' . $subNodeName; - $insertStr = $this->listInsertionMap[$mapKey] ?? null; - $isStmtList = $subNodeName === 'stmts'; - - $beforeFirstKeepOrReplace = true; - $skipRemovedNode = false; - $delayedAdd = []; - $lastElemIndentLevel = $this->indentLevel; - - $insertNewline = false; - if ($insertStr === "\n") { - $insertStr = ''; - $insertNewline = true; - } - - if ($isStmtList && \count($origNodes) === 1 && \count($nodes) !== 1) { - $startPos = $origNodes[0]->getStartTokenPos(); - $endPos = $origNodes[0]->getEndTokenPos(); - \assert($startPos >= 0 && $endPos >= 0); - if (!$this->origTokens->haveBraces($startPos, $endPos)) { - // This was a single statement without braces, but either additional statements - // have been added, or the single statement has been removed. This requires the - // addition of braces. For now fall back. - // TODO: Try to preserve formatting - return null; - } - } - - $result = ''; - foreach ($diff as $i => $diffElem) { - $diffType = $diffElem->type; - /** @var Node|null $arrItem */ - $arrItem = $diffElem->new; - /** @var Node|null $origArrItem */ - $origArrItem = $diffElem->old; - - if ($diffType === DiffElem::TYPE_KEEP || $diffType === DiffElem::TYPE_REPLACE) { - $beforeFirstKeepOrReplace = false; - - if ($origArrItem === null || $arrItem === null) { - // We can only handle the case where both are null - if ($origArrItem === $arrItem) { - continue; - } - return null; - } - - if (!$arrItem instanceof Node || !$origArrItem instanceof Node) { - // We can only deal with nodes. This can occur for Names, which use string arrays. - return null; - } - - $itemStartPos = $origArrItem->getStartTokenPos(); - $itemEndPos = $origArrItem->getEndTokenPos(); - \assert($itemStartPos >= 0 && $itemEndPos >= 0 && $itemStartPos >= $pos); - - $origIndentLevel = $this->indentLevel; - $lastElemIndentLevel = $this->origTokens->getIndentationBefore($itemStartPos) + $indentAdjustment; - $this->setIndentLevel($lastElemIndentLevel); - - $comments = $arrItem->getComments(); - $origComments = $origArrItem->getComments(); - $commentStartPos = $origComments ? $origComments[0]->getStartTokenPos() : $itemStartPos; - \assert($commentStartPos >= 0); - - if ($commentStartPos < $pos) { - // Comments may be assigned to multiple nodes if they start at the same position. - // Make sure we don't try to print them multiple times. - $commentStartPos = $itemStartPos; - } - - if ($skipRemovedNode) { - if ($isStmtList && $this->origTokens->haveBracesInRange($pos, $itemStartPos)) { - // We'd remove the brace of a code block. - // TODO: Preserve formatting. - $this->setIndentLevel($origIndentLevel); - return null; - } - } else { - $result .= $this->origTokens->getTokenCode( - $pos, $commentStartPos, $indentAdjustment); - } - - if (!empty($delayedAdd)) { - /** @var Node $delayedAddNode */ - foreach ($delayedAdd as $delayedAddNode) { - if ($insertNewline) { - $delayedAddComments = $delayedAddNode->getComments(); - if ($delayedAddComments) { - $result .= $this->pComments($delayedAddComments) . $this->nl; - } - } - - $this->safeAppend($result, $this->p($delayedAddNode, true)); - - if ($insertNewline) { - $result .= $insertStr . $this->nl; - } else { - $result .= $insertStr; - } - } - - $delayedAdd = []; - } - - if ($comments !== $origComments) { - if ($comments) { - $result .= $this->pComments($comments) . $this->nl; - } - } else { - $result .= $this->origTokens->getTokenCode( - $commentStartPos, $itemStartPos, $indentAdjustment); - } - - // If we had to remove anything, we have done so now. - $skipRemovedNode = false; - } elseif ($diffType === DiffElem::TYPE_ADD) { - if (null === $insertStr) { - // We don't have insertion information for this list type - return null; - } - - if ($insertStr === ', ' && $this->isMultiline($origNodes)) { - $insertStr = ','; - $insertNewline = true; - } - - if ($beforeFirstKeepOrReplace) { - // Will be inserted at the next "replace" or "keep" element - $delayedAdd[] = $arrItem; - continue; - } - - $itemStartPos = $pos; - $itemEndPos = $pos - 1; - - $origIndentLevel = $this->indentLevel; - $this->setIndentLevel($lastElemIndentLevel); - - // ---- CHANGED - if ($insertNewline) { - $result .= $insertStr . $this->nl; - $comments = $arrItem->getComments(); - if ($comments) { - $result .= $this->pComments($comments) . $this->nl; - } - // ---- CHANGED - } else { - $result .= $insertStr; - } - } elseif ($diffType === DiffElem::TYPE_REMOVE) { - if (!$origArrItem instanceof Node) { - // We only support removal for nodes - return null; - } - - $itemStartPos = $origArrItem->getStartTokenPos(); - $itemEndPos = $origArrItem->getEndTokenPos(); - \assert($itemStartPos >= 0 && $itemEndPos >= 0); - - // Consider comments part of the node. - $origComments = $origArrItem->getComments(); - if ($origComments) { - $itemStartPos = $origComments[0]->getStartTokenPos(); - } - - if ($i === 0) { - // If we're removing from the start, keep the tokens before the node and drop those after it, - // instead of the other way around. - $result .= $this->origTokens->getTokenCode( - $pos, $itemStartPos, $indentAdjustment); - $skipRemovedNode = true; - } else { - if ($isStmtList && $this->origTokens->haveBracesInRange($pos, $itemStartPos)) { - // We'd remove the brace of a code block. - // TODO: Preserve formatting. - return null; - } - } - - $pos = $itemEndPos + 1; - continue; - } else { - throw new \Exception("Shouldn't happen"); - } - - if (null !== $fixup && $arrItem->getAttribute('origNode') !== $origArrItem) { - $res = $this->pFixup($fixup, $arrItem, null, $itemStartPos, $itemEndPos); - } else { - $res = $this->p($arrItem, true); - } - $this->safeAppend($result, $res); - - $this->setIndentLevel($origIndentLevel); - $pos = $itemEndPos + 1; - } - - if ($skipRemovedNode) { - // TODO: Support removing single node. - return null; - } - - if (!empty($delayedAdd)) { - if (!isset($this->emptyListInsertionMap[$mapKey])) { - return null; - } - - [$findToken, $extraLeft, $extraRight] = $this->emptyListInsertionMap[$mapKey]; - if (null !== $findToken) { - $insertPos = $this->origTokens->findRight($pos, $findToken) + 1; - $result .= $this->origTokens->getTokenCode($pos, $insertPos, $indentAdjustment); - $pos = $insertPos; - } - - $first = true; - $result .= $extraLeft; - foreach ($delayedAdd as $delayedAddNode) { - if (!$first) { - $result .= $insertStr; - } - $result .= $this->p($delayedAddNode, true); - $first = false; - } - $result .= $extraRight; - } - - return $result; - } -} \ No newline at end of file diff --git a/api/vendor/shalvah/upgrader/src/ReadsAndWritesAsts.php b/api/vendor/shalvah/upgrader/src/ReadsAndWritesAsts.php index 2fb30dbc1..7be127879 100644 --- a/api/vendor/shalvah/upgrader/src/ReadsAndWritesAsts.php +++ b/api/vendor/shalvah/upgrader/src/ReadsAndWritesAsts.php @@ -9,6 +9,7 @@ use PhpParser\NodeTraverser; use PhpParser\ParserFactory; use PhpParser\NodeVisitor; +use PhpParser\PrettyPrinter; use PhpParser\Node\Stmt; trait ReadsAndWritesAsts diff --git a/api/vendor/shalvah/upgrader/src/Upgrader.php b/api/vendor/shalvah/upgrader/src/Upgrader.php index 208977f78..4b1e92c8e 100644 --- a/api/vendor/shalvah/upgrader/src/Upgrader.php +++ b/api/vendor/shalvah/upgrader/src/Upgrader.php @@ -52,7 +52,7 @@ public function move(string $oldKey, string $newKey): self */ public function dontTouch(string ...$keys): self { - $this->dontTouchKeys += $keys; + $this->dontTouchKeys = [...$this->dontTouchKeys, ...$keys]; return $this; } @@ -276,4 +276,4 @@ protected function applyChanges(): array return $userConfigAst; } -} \ No newline at end of file +} diff --git a/api/vendor/spatie/laravel-backup/.github/workflows/php-cs-fixer.yml b/api/vendor/spatie/laravel-backup/.github/workflows/php-cs-fixer.yml index 5cb3a86dc..421f27fc2 100644 --- a/api/vendor/spatie/laravel-backup/.github/workflows/php-cs-fixer.yml +++ b/api/vendor/spatie/laravel-backup/.github/workflows/php-cs-fixer.yml @@ -13,7 +13,7 @@ jobs: - name: Fix style uses: docker://oskarstark/php-cs-fixer-ga with: - args: --config=.php_cs --allow-risky=yes + args: --config=.php_cs.dist.php --allow-risky=yes - name: Extract branch name shell: bash diff --git a/api/vendor/spatie/laravel-backup/.github/workflows/run-tests.yml b/api/vendor/spatie/laravel-backup/.github/workflows/run-tests.yml index 851b6cee7..6ac1c9d58 100644 --- a/api/vendor/spatie/laravel-backup/.github/workflows/run-tests.yml +++ b/api/vendor/spatie/laravel-backup/.github/workflows/run-tests.yml @@ -6,7 +6,7 @@ jobs: tests: runs-on: ${{ matrix.os }} strategy: - fail-fast: true + fail-fast: false matrix: os: [ubuntu-latest] php: [8.0, 7.4, 7.3] diff --git a/api/vendor/spatie/laravel-backup/.php_cs b/api/vendor/spatie/laravel-backup/.php_cs deleted file mode 100644 index 1c4e7d562..000000000 --- a/api/vendor/spatie/laravel-backup/.php_cs +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -$finder = Symfony\Component\Finder\Finder::create() - ->notPath('bootstrap/*') - ->notPath('storage/*') - ->notPath('resources/view/mail/*') - ->in([ - __DIR__ . '/src', - __DIR__ . '/tests', - ]) - ->name('*.php') - ->notName('*.blade.php') - ->ignoreDotFiles(true) - ->ignoreVCS(true); - -return PhpCsFixer\Config::create() - ->setRules([ - '@PSR2' => true, - 'array_syntax' => ['syntax' => 'short'], - 'ordered_imports' => ['sortAlgorithm' => 'alpha'], - 'no_unused_imports' => true, - 'not_operator_with_successor_space' => true, - 'trailing_comma_in_multiline_array' => true, - 'phpdoc_scalar' => true, - 'unary_operator_spaces' => true, - 'binary_operator_spaces' => true, - 'blank_line_before_statement' => [ - 'statements' => ['break', 'continue', 'declare', 'return', 'throw', 'try'], - ], - 'phpdoc_single_line_var_spacing' => true, - 'phpdoc_var_without_name' => true, - 'method_argument_space' => [ - 'on_multiline' => 'ensure_fully_multiline', - 'keep_multiple_spaces_after_comma' => true, - ] - ]) - ->setFinder($finder); diff --git a/api/vendor/spatie/laravel-backup/.php_cs.dist.php b/api/vendor/spatie/laravel-backup/.php_cs.dist.php new file mode 100644 index 000000000..3de28fd49 --- /dev/null +++ b/api/vendor/spatie/laravel-backup/.php_cs.dist.php @@ -0,0 +1,40 @@ +<?php + +$finder = Symfony\Component\Finder\Finder::create() + ->in([ + __DIR__ . '/src', + __DIR__ . '/tests', + ]) + ->name('*.php') + ->notName('*.blade.php') + ->ignoreDotFiles(true) + ->ignoreVCS(true); + +return (new PhpCsFixer\Config()) + ->setRules([ + '@PSR2' => true, + 'array_syntax' => ['syntax' => 'short'], + 'ordered_imports' => ['sort_algorithm' => 'alpha'], + 'no_unused_imports' => true, + 'not_operator_with_successor_space' => true, + 'trailing_comma_in_multiline' => true, + 'phpdoc_scalar' => true, + 'unary_operator_spaces' => true, + 'binary_operator_spaces' => true, + 'blank_line_before_statement' => [ + 'statements' => ['break', 'continue', 'declare', 'return', 'throw', 'try'], + ], + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_var_without_name' => true, + 'class_attributes_separation' => [ + 'elements' => [ + 'method' => 'one', + ], + ], + 'method_argument_space' => [ + 'on_multiline' => 'ensure_fully_multiline', + 'keep_multiple_spaces_after_comma' => true, + ], + 'single_trait_insert_per_statement' => true, + ]) + ->setFinder($finder); diff --git a/api/vendor/spatie/laravel-backup/CHANGELOG.md b/api/vendor/spatie/laravel-backup/CHANGELOG.md index 97a2c5292..8e8d4488b 100644 --- a/api/vendor/spatie/laravel-backup/CHANGELOG.md +++ b/api/vendor/spatie/laravel-backup/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to `laravel-backup` will be documented in this file. +## 6.16.5 - 2021-09-12 + +- fix undefined constant GLOB_BRACE on alpine (#1370) + +## 6.16.4 - 2021-09-10 + +- fix windows compat + +## 6.16.3 - 2021-09-01 + +- avoid full path on db dumps (#1386) + +## 6.16.2 - 2021-08-11 + +- fix bugs (#1366) + ## 6.16.1 - 2021-07-09 - detect write failures (#1347) diff --git a/api/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php b/api/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php index d991f239e..4e3276eeb 100644 --- a/api/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php +++ b/api/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php @@ -214,7 +214,11 @@ protected function createZipContainingEveryFileInManifest(Manifest $manifest) consoleOutput()->info("Created zip containing {$zip->count()} files and directories. Size is {$zip->humanReadableSize()}"); - $this->sendNotification(new BackupZipWasCreated($pathToZip)); + if ($this->sendNotifications) { + $this->sendNotification(new BackupZipWasCreated($pathToZip)); + } else { + app()->call('\Spatie\Backup\Listeners\EncryptBackupArchive@handle', ['event' => new BackupZipWasCreated($pathToZip)]); + } return $pathToZip; } diff --git a/api/vendor/spatie/laravel-backup/src/Tasks/Backup/FileSelection.php b/api/vendor/spatie/laravel-backup/src/Tasks/Backup/FileSelection.php index cb7d80a7a..5ac9f6ecb 100644 --- a/api/vendor/spatie/laravel-backup/src/Tasks/Backup/FileSelection.php +++ b/api/vendor/spatie/laravel-backup/src/Tasks/Backup/FileSelection.php @@ -131,8 +131,16 @@ protected function includedDirectories(): array protected function shouldExclude(string $path): bool { + $path = realpath($path); + if (is_dir($path)) { + $path .= DIRECTORY_SEPARATOR ; + } foreach ($this->excludeFilesAndDirectories as $excludedPath) { - if (Str::startsWith(realpath($path), $excludedPath)) { + if (Str::startsWith($path, $excludedPath.(is_dir($excludedPath) ? DIRECTORY_SEPARATOR : ''))) { + if ($path != $excludedPath && is_file($excludedPath)) { + continue; + } + return true; } } @@ -152,7 +160,7 @@ protected function sanitize($paths): Collection return $path === ''; }) ->flatMap(function ($path) { - return glob($path); + return $this->getMatchingPaths($path); }) ->map(function ($path) { return realpath($path); @@ -161,4 +169,18 @@ protected function sanitize($paths): Collection return $path === false; }); } + + protected function getMatchingPaths(string $path): array + { + if ($this->canUseGlobBrace($path)) { + return glob(str_replace('*', '{.[!.],}*', $path), GLOB_BRACE); + } + + return glob($path); + } + + protected function canUseGlobBrace(string $path): bool + { + return strpos($path, '*') !== false && defined('GLOB_BRACE'); + } } diff --git a/api/vendor/spatie/laravel-backup/src/Tasks/Backup/Zip.php b/api/vendor/spatie/laravel-backup/src/Tasks/Backup/Zip.php index 16f3a58a3..9c92853a2 100644 --- a/api/vendor/spatie/laravel-backup/src/Tasks/Backup/Zip.php +++ b/api/vendor/spatie/laravel-backup/src/Tasks/Backup/Zip.php @@ -19,12 +19,15 @@ class Zip public static function createForManifest(Manifest $manifest, string $pathToZip): self { + $relativePath = config('backup.backup.source.files.relative_path') ? + rtrim(config('backup.backup.source.files.relative_path'), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR : false; + $zip = new static($pathToZip); $zip->open(); foreach ($manifest->files() as $file) { - $zip->add($file, self::determineNameOfFileInZip($file, $pathToZip)); + $zip->add($file, self::determineNameOfFileInZip($file, $pathToZip, $relativePath)); } $zip->close(); @@ -32,20 +35,18 @@ public static function createForManifest(Manifest $manifest, string $pathToZip): return $zip; } - protected static function determineNameOfFileInZip(string $pathToFile, string $pathToZip) + protected static function determineNameOfFileInZip(string $pathToFile, string $pathToZip, string $relativePath) { - $zipDirectory = pathinfo($pathToZip, PATHINFO_DIRNAME); + $fileDirectory = pathinfo($pathToFile, PATHINFO_DIRNAME) . DIRECTORY_SEPARATOR; - $fileDirectory = pathinfo($pathToFile, PATHINFO_DIRNAME); + $zipDirectory = pathinfo($pathToZip, PATHINFO_DIRNAME) . DIRECTORY_SEPARATOR; if (Str::startsWith($fileDirectory, $zipDirectory)) { return str_replace($zipDirectory, '', $pathToFile); } - if ($relativePath = config('backup.backup.source.files.relative_path')) { - if (Str::startsWith($fileDirectory . '/', $relativePath)) { - return str_replace($relativePath, '', $pathToFile); - } + if ($relativePath && $relativePath != DIRECTORY_SEPARATOR && Str::startsWith($fileDirectory, $relativePath)) { + return str_replace($relativePath, '', $pathToFile); } return $pathToFile; @@ -107,7 +108,7 @@ public function add($files, string $nameInZip = null): self foreach ($files as $file) { if (is_dir($file)) { - $this->zipFile->addEmptyDir($file); + $this->zipFile->addEmptyDir(ltrim($nameInZip ?: $file, DIRECTORY_SEPARATOR)); } if (is_file($file)) { diff --git a/api/vendor/squizlabs/php_codesniffer/CHANGELOG.md b/api/vendor/squizlabs/php_codesniffer/CHANGELOG.md new file mode 100644 index 000000000..c2dc3f53e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/CHANGELOG.md @@ -0,0 +1,7306 @@ +# Changelog + +The file documents changes to the PHP_CodeSniffer project. + +## [Unreleased] + +_Nothing yet._ + +## [3.10.1] - 2024-05-22 + +### Added +- Documentation for the following sniffs: + - Generic.Commenting.DocComment + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. + +### Changed +- The following have received efficiency improvements: + - Type handling in the PHP Tokenizer + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch. +- Various housekeeping, including improvements to the tests and documentation. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for their contributions. + +### Fixed +- Fixed bug [#110], [#437], [#475]: `File::findStartOfStatement()`: the start of statement/expression determination for tokens in parentheses/short array brackets/others scopes, nested within match expressions, was incorrect in most cases. + The trickle down effect of the bug fixes made to the `File::findStartOfStatement()` method, is that the Generic.WhiteSpace.ScopeIndent and the PEAR.WhiteSpace.ScopeIndent sniffs should now be able to correctly determine and fix the indent for match expressions containing nested expressions. + These fixes also fix an issue with the `Squiz.Arrays.ArrayDeclaration` sniff and possibly other, unreported bugs. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#504]: The tokenizer could inadvertently mistake the last parameter in a function call using named arguments for a DNF type. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#508]: Tokenizer/PHP: extra hardening against handling parse errors in the type handling layer. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[#110]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/110 +[#437]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/437 +[#475]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/475 +[#504]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/504 +[#508]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/508 + +## [3.10.0] - 2024-05-20 + +### Added +- Tokenizer support for PHP 8.2 Disjunctive Normal Form (DNF) types. [#3731][sq-3731], [#387], [#461] + - Includes new `T_TYPE_OPEN_PARENTHESIS` and `T_TYPE_CLOSE_PARENTHESIS` tokens to represent the parentheses in DNF types. + - These new tokens, like other parentheses, will have the `parenthesis_opener` and `parenthesis_closer` token array indexes set and the tokens between them will have the `nested_parenthesis` index. + - The `File::getMethodProperties()`, `File::getMethodParameters()` and `File::getMemberProperties()` methods now all support DNF types. [#471], [#472], [#473] + - Additionally, the following sniff has been updated to support DNF types: + - Generic.PHP.LowerCaseType [#478] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches. +- Documentation for the following sniffs: + - Squiz.WhiteSpace.FunctionClosingBraceSpace + - Thanks to [Przemek Hernik][@przemekhernik] for the patch. + +### Changed +- The help screens have received a face-lift for improved usability and readability. [#447] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch and thanks to [Colin Stewart][@costdev], [Gary Jones][@GaryJones] and [@mbomb007] for reviewing. +- The Squiz.Commenting.ClosingDeclarationComment sniff will now also examine and flag closing comments for traits. [#442] + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- The following sniff(s) have efficiency improvements: + - Generic.Arrays.ArrayIndent + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- The autoloader will now always return a boolean value indicating whether it has loaded a class or not. [#479] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch. +- Various housekeeping, including improvements to the tests and documentation. + - Thanks to [Dan Wallis][@fredden], [Danny van der Sluijs][@DannyvdSluijs], [Rodrigo Primo][@rodrigoprimo] and [Juliette Reinders Folmer][@jrfnl] for their contributions. + +### Fixed +- Fixed bug [#466] : Generic.Functions.CallTimePassByReference was not flagging call-time pass-by-reference in class instantiations using the self/parent/static keywords. + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- Fixed bug [#494] : edge case bug in tokenization of an empty block comment. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#494] : edge case bug in tokenization of an empty single-line DocBlock. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#499] : Generic.ControlStructures.InlineControlStructure now handles statements with a comment between `else` and `if` correctly. + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. + +[sq-3731]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3731 +[#387]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/387 +[#442]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/442 +[#447]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/447 +[#461]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/461 +[#466]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/466 +[#471]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/471 +[#472]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/472 +[#473]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/473 +[#478]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/478 +[#479]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/479 +[#494]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/494 +[#499]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/499 + +## [3.9.2] - 2024-04-24 + +### Changed +- The Generic.ControlStructures.DisallowYodaConditions sniff no longer listens for the null coalesce operator. [#458] + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- Various housekeeping, including improvements to the tests and documentation. + - Thanks to [Dan Wallis][@fredden], [Rodrigo Primo][@rodrigoprimo] and [Juliette Reinders Folmer][@jrfnl] for their contributions. + +### Fixed +- Fixed bug [#381] : Squiz.Commenting.ClosingDeclarationComment could throw the wrong error when the close brace being examined is at the very end of a file. + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- Fixed bug [#385] : Generic.CodeAnalysis.JumbledIncrementer improved handling of parse errors/live coding. + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- Fixed bug [#394] : Generic.Functions.CallTimePassByReference was not flagging call-time pass-by-reference in anonymous class instantiations + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- Fixed bug [#420] : PEAR.Functions.FunctionDeclaration could run into a blocking PHP notice while fixing code containing a parse error. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#421] : File::getMethodProperties() small performance improvement & more defensive coding. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#423] : PEAR.WhiteSpace.ScopeClosingBrace would have a fixer conflict with itself when a close tag was preceded by non-empty inline HTML. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#424] : PSR2.Classes.ClassDeclaration using namespace relative interface names in the extends/implements part of a class declaration would lead to a fixer conflict. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#427] : Squiz.Operators.OperatorSpacing would have a fixer conflict with itself when an operator was preceeded by a new line and the previous line ended in a comment. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#430] : Squiz.ControlStructures.ForLoopDeclaration: fixed potential undefined array index notice + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#431] : PSR2.Classes.ClassDeclaration will no longer try to auto-fix multi-line interface implements statements if these are interlaced with comments on their own line. This prevents a potential fixer conflict. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#453] : Arrow function tokenization was broken when the return type was a stand-alone `true` or `false`; or contained `true` or `false` as part of a union type. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Other +- [ESLint 9.0] has been released and changes the supported configuration file format. + The (deprecated) `Generic.Debug.ESLint` sniff only supports the "old" configuration file formats and when using the sniff to run ESLint, the `ESLINT_USE_FLAT_CONFIG=false` environment variable will need to be set when using ESLint >= 9.0. + For more information, see [#436]. + + +[ESLint 9.0]: https://eslint.org/blog/2024/04/eslint-v9.0.0-released/#flat-config-is-now-the-default-and-has-some-changes + +[#381]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/381 +[#385]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/385 +[#394]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/394 +[#420]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/420 +[#421]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/421 +[#423]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/423 +[#424]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/424 +[#427]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/427 +[#430]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/430 +[#431]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/431 +[#436]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/436 +[#453]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/453 +[#458]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/458 + +## [3.9.1] - 2024-03-31 + +### Added +- Documentation for the following sniffs: + - Generic.PHP.RequireStrictTypes + - Squiz.WhiteSpace.MemberVarSpacing + - Squiz.WhiteSpace.ScopeClosingBrace + - Squiz.WhiteSpace.SuperfluousWhitespace + - Thanks to [Jay McPartland][@jonmcp] and [Rodrigo Primo][@rodrigoprimo] for the patches. + +### Changed +- The following sniffs have received performance related improvements: + - Generic.CodeAnalysis.UselessOverridingMethod + - Generic.Files.ByteOrderMark + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patches. +- Performance improvement for the "Diff" report. Should be most notable for Windows users. [#355] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch. +- The test suite has received some performance improvements. Should be most notable contributors using Windows. [#351] + - External standards with sniff tests using the PHP_CodeSniffer native test framework will also benefit from these changes. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch. +- Various housekeeping, including improvements to the tests and documentation. + - Thanks to [Jay McPartland][@jonmcp], [João Pedro Oliveira][@jpoliveira08], [Rodrigo Primo][@rodrigoprimo] and [Juliette Reinders Folmer][@jrfnl] for their contributions. + +### Fixed +- Fixed bug [#289] : Squiz.WhiteSpace.OperatorSpacing and PSR12.Operators.OperatorSpacing : improved fixer conflict protection by more strenuously avoiding handling operators in declare statements. + - Thanks to [Dan Wallis][@fredden] for the patch. +- Fixed bug [#366] : Generic.CodeAnalysis.UselessOverridingMethod : prevent false negative when the declared method name and the called method name do not use the same case. + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch. +- Fixed bug [#368] : Squiz.Arrays.ArrayDeclaration fixer did not handle static closures correctly when moving array items to their own line. + - Thanks to [Michał Bundyra][@michalbundyra] for the patch. +- Fixed bug [#404] : Test framework : fixed PHP 8.4 deprecation notice. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[#289]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/289 +[#351]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/351 +[#355]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/355 +[#366]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/366 +[#368]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/368 +[#404]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/404 + +## [3.9.0] - 2024-02-16 + +### Added +- Tokenizer support for PHP 8.3 typed class constants. [#321] + - Additionally, the following sniffs have been updated to support typed class constants: + - Generic.NamingConventions.UpperCaseConstantName [#332] + - Generic.PHP.LowerCaseConstant [#330] + - Generic.PHP.LowerCaseType [#331] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches +- Tokenizer support for PHP 8.3 readonly anonymous classes. [#309] + - Additionally, the following sniffs have been updated to support readonly anonymous classes: + - PSR12.Classes.ClassInstantiation [#324] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches +- New `PHP_CodeSniffer\Sniffs\DeprecatedSniff` interface to allow for marking a sniff as deprecated. [#281] + - If a ruleset uses deprecated sniffs, deprecation notices will be shown to the end-user before the scan starts. + When running in `-q` (quiet) mode, the deprecation notices will be hidden. + - Deprecated sniffs will still run and using them will have no impact on the exit code for a scan. + - In ruleset "explain"-mode (`-e`) an asterix `*` will show next to deprecated sniffs. + - Sniff maintainers are advised to read through the PR description for full details on how to use this feature for their own (deprecated) sniffs. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- New `Generic.CodeAnalysis.RequireExplicitBooleanOperatorPrecedence` sniff. [#197] + - Forbid mixing different binary boolean operators within a single expression without making precedence clear using parentheses + - Thanks to [Tim Düsterhus][@TimWolla] for the contribution +- Squiz.PHP.EmbeddedPhp : the sniff will now also examine the formatting of embedded PHP statements using short open echo tags. [#27] + - Includes a new `ShortOpenEchoNoSemicolon` errorcode to allow for selectively ignoring missing semicolons in single line embedded PHP snippets within short open echo tags. + - The other error codes are the same and do not distinguish between what type of open tag was used. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Documentation for the following sniffs: + - Generic.WhiteSpace.IncrementDecrementSpacing + - PSR12.ControlStructures.ControlStructureSpacing + - PSR12.Files.ImportStatement + - PSR12.Functions.ReturnTypeDeclaration + - PSR12.Properties.ConstantVisibility + - Thanks to [Denis Žoljom][@dingo-d] and [Rodrigo Primo][@rodrigoprimo] for the patches + +### Changed +- The Performance report can now also be used for a `phpcbf` run. [#308] + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Sniff tests which extend the PHPCS native `AbstractSniffUnitTest` class will now show a (non-build-breaking) warning when test case files contain fixable errors/warnings, but there is no corresponding `.fixed` file available in the test suite to verify the fixes against. [#336] + - The warning is only displayed on PHPUnit 7.3.0 and higher. + - The warning will be elevated to a test failure in PHPCS 4.0. + - Thanks to [Dan Wallis][@fredden] for the patch +- The following sniffs have received performance related improvements: + - Squiz.PHP.EmbeddedPhp + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Various housekeeping, including improvements to the tests and documentation + - Thanks to [Dan Wallis][@fredden], [Joachim Noreiko][@joachim-n], [Remi Collet][@remicollet], [Rodrigo Primo][@rodrigoprimo] and [Juliette Reinders Folmer][@jrfnl] for their contributions + +### Deprecated +- Support for scanning JavaScript and CSS files. See [#2448][sq-2448]. + - This also means that all sniffs which are only aimed at JavaScript or CSS files are now deprecated. + - The Javascript and CSS Tokenizers, all Javascript and CSS specific sniffs, and support for JS and CSS in select sniffs which support multiple file types, will be removed in version 4.0.0. +- The abstract `PHP_CodeSniffer\Filters\ExactMatch::getBlacklist()` and `PHP_CodeSniffer\Filters\ExactMatch::getWhitelist()` methods are deprecated and will be removed in the 4.0 release. See [#198]. + - In version 4.0, these methods will be replaced with abstract `ExactMatch::getDisallowedFiles()` and `ExactMatch::getAllowedFiles()` methods + - To make Filters extending `ExactMatch` cross-version compatible with both PHP_CodeSniffer 3.9.0+ as well as 4.0+, implement the new `getDisallowedFiles()` and `getAllowedFiles()` methods. + - When both the `getDisallowedFiles()` and `getAllowedFiles()` methods as well as the `getBlacklist()` and `getWhitelist()` are available, the new methods will take precedence over the old methods. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The MySource standard and all sniffs in it. See [#2471][sq-2471]. + - The MySource standard and all sniffs in it will be removed in version 4.0.0. +- The `Zend.Debug.CodeAnalyzer` sniff. See [#277]. + - This sniff will be removed in version 4.0.0. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed bug [#127] : Squiz.Commenting.FunctionComment : The `MissingParamType` error code will now be used instead of `MissingParamName` when a parameter name is provided, but not its type. Additionally, invalid type hint suggestions will no longer be provided in these cases. + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : fixer will no longer leave behind trailing whitespace when moving code to another line. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : will now determine the needed indent with higher precision in multiple situations. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : fixer will no longer insert a stray new line when the closer of a multi-line embedded PHP block and the opener of the next multi-line embedded PHP block would be on the same line. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#235] : Generic.CodeAnalysis.ForLoopWithTestFunctionCall : prevent a potential PHP 8.3 deprecation notice during live coding + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch +- Fixed bug [#288] : Generic.WhiteSpace.IncrementDecrementSpacing : error message for post-in/decrement will now correctly inform about new lines found before the operator. + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch +- Fixed bug [#296] : Generic.WhiteSpace.ArbitraryParenthesesSpacing : false positive for non-arbitrary parentheses when these follow the scope closer of a `switch` `case`. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#307] : PSR2.Classes.ClassDeclaration : space between a modifier keyword and the `class` keyword was not checked when the space included a new line or comment. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#325] : Squiz.Operators.IncrementDecrementUsage : the sniff was underreporting when there was (no) whitespace and/or comments in unexpected places. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#335] : PSR12.Files.DeclareStatement : bow out in a certain parse error situation to prevent incorrect auto-fixes from being made. + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#340] : Squiz.Commenting.ClosingDeclarationComment : no longer adds a stray newline when adding a missing comment. + - Thanks to [Dan Wallis][@fredden] for the patch + +### Other +- A "Community cc list" has been introduced to ping maintainers of external standards and integrators for input regarding change proposals for PHP_CodeSniffer which may impact them. [#227] + - For anyone who missed the discussion about this and is interested to be on this list, please feel invited to submit a PR to add yourself. + The list is located in the `.github` folder. + +[sq-2448]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2448 +[sq-2471]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2471 +[#27]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/27 +[#127]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/127 +[#196]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/196 +[#197]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/197 +[#198]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/198 +[#227]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/227 +[#235]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/235 +[#277]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/277 +[#281]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/281 +[#288]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/288 +[#296]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/296 +[#307]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/307 +[#308]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/308 +[#309]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/309 +[#321]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/321 +[#324]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/324 +[#325]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/325 +[#330]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/330 +[#331]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/331 +[#332]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/332 +[#335]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/335 +[#336]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/336 +[#340]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/340 + +## [3.8.1] - 2024-01-11 + +### Added +- Documentation has been added for the following sniffs: + - Generic.CodeAnalysis.EmptyPHPStatement + - Generic.Formatting.SpaceBeforeCast + - Generic.PHP.Syntax + - Generic.WhiteSpace.LanguageConstructSpacing + - PSR12.Classes.ClosingBrace + - PSR12.Classes.OpeningBraceSpace + - PSR12.ControlStructures.BooleanOperatorPlacement + - PSR12.Files.OpenTag + - Thanks to [Rodrigo Primo][@rodrigoprimo] and [Denis Žoljom][@dingo-d] for the patches + +### Changed +- GitHub releases will now always only contain unversioned release assets (PHARS + asc files) (same as it previously was in the squizlabs repo). See [#205] for context. + - Thanks to [Shivam Mathur][@shivammathur] for opening a discussion about this +- Various housekeeping, includes improvements to the tests and documentation + - Thanks to [Dan Wallis][@fredden], [Lucas Hoffmann][@lucc], [Rodrigo Primo][@rodrigoprimo] and [Juliette Reinders Folmer][@jrfnl] for their contributions + +### Fixed +- Fixed bug [#124] : Report Full : avoid unnecessarily wrapping lines when `-s` is used + - Thanks to [Brad Jorsch][@anomiex] for the patch +- Fixed bug [#124] : Report Full : fix incorrect bolding of pipes when `-s` is used and messages wraps + - Thanks to [Brad Jorsch][@anomiex] for the patch +- Fixed bug [#150] : Squiz.WhiteSpace.KeywordSpacing : prevent a PHP notice when run during live coding + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#154] : Report Full : delimiter line calculation could go wonky on wide screens when a report contains multi-line messages + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#178] : Squiz.Commenting.VariableComment : docblocks were incorrectly being flagged as missing when a property declaration used PHP native union/intersection type declarations + - Thanks to [Ferdinand Kuhl][@fcool] for the patch +- Fixed bug [#211] : Squiz.Commenting.VariableComment : docblocks were incorrectly being flagged as missing when a property declaration used PHP 8.2+ stand-alone `true`/`false`/`null` type declarations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#211] : Squiz.Commenting.VariableComment : docblocks were incorrectly being flagged as missing when a property declaration used PHP native `parent`, `self` or a namespace relative class name type declaration + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#226] : Generic.CodeAnalysis.ForLoopShouldBeWhileLoop : prevent a potential PHP 8.3 deprecation notice during live coding + - Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch + +[#124]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/124 +[#150]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/150 +[#154]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/154 +[#178]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/178 +[#205]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/205 +[#211]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/211 +[#226]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/226 + +## [3.8.0] - 2023-12-08 + +[Squizlabs/PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) is dead. Long live [PHPCSStandards/PHP_CodeSniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer)! + +### Breaking Changes +- The `squizlabs/PHP_CodeSniffer` repository has been abandoned. The `PHPCSStandards/PHP_CodeSniffer` repository will serve as the continuation of the project. For more information about this change, please read the [announcement](https://github.com/squizlabs/PHP_CodeSniffer/issues/3932). + - Installation of PHP_CodeSniffer via PEAR is no longer supported. + - Users will need to switch to another installation method. + - Note: this does not affect the PEAR sniffs. + - For Composer users, nothing changes. + - **_In contrast to earlier information, the `squizlabs/php_codesniffer` package now points to the new repository and everything will continue to work as before._** + - PHIVE users may need to clear the PHIVE URL cache. + - PHIVE users who don't use the package alias, but refer to the package URL, will need to update the URL from `https://squizlabs.github.io/PHP_CodeSniffer/phars/` to `https://phars.phpcodesniffer.com/phars/`. + - Users who download the PHAR files using curl or wget, will need to update the download URL from `https://squizlabs.github.io/PHP_CodeSniffer/[phpcs|phpcbf].phar` or `https://github.com/squizlabs/PHP_CodeSnifffer/releases/latest/download/[phpcs|phpcbf].phar` to `https://phars.phpcodesniffer.com/[phpcs|phpcbf].phar`. + - For users who install PHP_CodeSniffer via the [Setup-PHP](https://github.com/shivammathur/setup-php/) action runner for GitHub Actions, nothing changes. + - Users using a git clone will need to update the clone address from `git@github.com:squizlabs/PHP_CodeSniffer.git` to `git@github.com:PHPCSStandards/PHP_CodeSniffer.git`. + - Contributors will need to fork the new repo and add both the new fork as well as the new repo as remotes to their local git copy of PHP_CodeSniffer. + - Users who have (valid) open issues or pull requests in the `squizlabs/PHP_CodeSniffer` repository are invited to resubmit these to the `PHPCSStandards/PHP_CodeSniffer` repository. + +### Added +- Runtime support for PHP 8.3. All known PHP 8.3 deprecation notices have been fixed + - Syntax support for new PHP 8.3 features will follow in a future release + - If you find any PHP 8.3 deprecation notices which were missed, please report them + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches +- Added support for PHP 8.2 readonly classes to File::getClassProperties() through a new is_readonly array index in the return value + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for PHP 8.2 readonly classes to a number of sniffs + - Generic.CodeAnalysis.UnnecessaryFinalModifier + - PEAR.Commenting.ClassComment + - PEAR.Commenting.FileComment + - PSR1.Files.SideEffects + - PSR2.Classes.ClassDeclaration + - PSR12.Files.FileHeader + - Squiz.Classes.ClassDeclaration + - Squiz.Classes.LowercaseClassKeywords + - Squiz.Commenting.ClassComment + - Squiz.Commenting.DocCommentAlignment + - Squiz.Commenting.FileComment + - Squiz.Commenting.InlineComment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for PHP 8.2 `true` as a stand-alone type declaration + - The `File::getMethodProperties()`, `File::getMethodParameters()` and `File::getMemberProperties()` methods now all support the `true` type + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for PHP 8.2 `true` as a stand-alone type to a number of sniffs + - Generic.PHP.LowerCaseType + - PSr12.Functions.NullableTypeDeclaration + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added a Performance report to allow for finding "slow" sniffs + - To run this report, run PHPCS with --report=Performance. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.RequireStrictTypes : new warning for when there is a declare statement, but the strict_types directive is set to 0 + - The warning can be turned off by excluding the `Generic.PHP.RequireStrictTypes.Disabled` error code + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.FunctionComment : new `ParamNameUnexpectedAmpersandPrefix` error for parameters annotated as passed by reference while the parameter is not passed by reference + - Thanks to [Dan Wallis][@fredden] for the patch +- Documentation has been added for the following sniffs: + - PSR2.Files.ClosingTag + - PSR2.Methods.FunctionCallSignature + - PSR2.Methods.FunctionClosingBrace + - Thanks to [Atsushi Okui][@blue32a] for the patch +- Support for PHPUnit 8 and 9 to the test suite + - Test suites for external standards which run via the PHPCS native test suite can now run on PHPUnit 4-9 (was 4-7) + - If any of these tests use the PHPUnit `setUp()`/`tearDown()` methods or overload the `setUp()` in the `AbstractSniffUnitTest` test case, they will need to be adjusted. See the [PR details for further information](https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/59/commits/bc302dd977877a22c5e60d42a2f6b7d9e9192dab) + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Changed +- Changes have been made to the way PHPCS handles invalid sniff properties being set in a custom ruleset + - Fixes PHP 8.2 deprecation notices for properties set in a (custom) ruleset for complete standards/complete sniff categories + - Invalid sniff properties set for individual sniffs will now result in an error and halt the execution of PHPCS + - A descriptive error message is provided to allow users to fix their ruleset + - Sniff properties set for complete standards/complete sniff categories will now only be set on sniffs which explicitly support the property + - The property will be silently ignored for those sniffs which do not support the property + - Invalid sniff properties set for sniffs via inline annotations will result in an informative `Internal.PropertyDoesNotExist` errror on line 1 of the scanned file, but will not halt the execution of PHPCS + - For sniff developers, it is strongly recommended for sniffs to explicitly declare any user-adjustable public properties + - If dynamic properties need to be supported for a sniff, either declare the magic __set()/__get()/__isset()/__unset() methods on the sniff or let the sniff extend stdClass + - Note: The `#[\AllowDynamicProperties]` attribute will have no effect for properties which are being set in rulesets + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The third parameter for the Ruleset::setSniffProperty() method has been changed to expect an array + - Sniff developers/integrators of PHPCS may need to make some small adjustments to allow for this change + - Existing code will continue to work but will throw a deprecation error + - The backwards compatiblity layer will be removed in PHPCS 4.0 + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- When using `auto` report width (the default) a value of 80 columns will be used if the width cannot be determined + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Sniff error messages are now more informative to help bugs get reported to the correct project + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.CodeAnalysis.UnusedFunctionParameter will now ignore magic methods for which the signature is defined by PHP + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Functions.OpeningFunctionBraceBsdAllman will now check the brace indent before the opening brace for empty functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Functions.OpeningFunctionBraceKernighanRitchie will now check the spacing before the opening brace for empty functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.WhiteSpace.IncrementDecrementSpacing now detects more spacing issues + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PSR2.Classes.PropertyDeclaration now enforces that the readonly modifier comes after the visibility modifier + - PSR2 and PSR12 do not have documented rules for this as they pre-date the readonly modifier + - PSR-PER has been used to confirm the order of this keyword so it can be applied to PSR2 and PSR12 correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.Commenting.FunctionComment + Squiz.Commenting.FunctionComment: the SpacingAfter error can now be auto-fixed + - Thanks to [Dan Wallis][@fredden] for the patch +- Squiz.PHP.InnerFunctions sniff no longer reports on OO methods for OO structures declared within a function or closure + - Thanks to [@Daimona] for the patch +- Squiz.PHP.NonExecutableCode will now also flag redundant return statements just before a closure close brace + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Runtime performance improvement for PHPCS CLI users. The improvement should be most noticeable for users on Windows. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The following sniffs have received performance related improvements: + - Generic.PHP.LowerCaseConstant + - Generic.PHP.LowerCaseType + - PSR12.Files.OpenTag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches +- The -e (explain) command will now list sniffs in natural order + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Tests using the PHPCS native test framework with multiple test case files will now run the test case files in numeric order. + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The following sniffs have received minor message readability improvements: + - Generic.Arrays.ArrayIndent + - Generic.Formatting.SpaceAfterCast + - Generic.Formatting.SpaceAfterNot + - Generic.WhiteSpace.SpreadOperatorSpacingAfter + - Squiz.Arrays.ArrayDeclaration + - Squiz.Commenting.DocCommentAlignment + - Squiz.ControlStructures.ControlSignature + - Thanks to [Danny van der Sluijs][@DannyvdSluijs] and [Juliette Reinders Folmer][@jrfnl] for the patches +- Improved README syntax highlighting + - Thanks to [Benjamin Loison][@Benjamin-Loison] for the patch +- Various documentation improvements + - Thanks to [Andrew Dawes][@AndrewDawes], [Danny van der Sluijs][@DannyvdSluijs] and [Juliette Reinders Folmer][@jrfnl] for the patches + +### Removed +- Removed support for installation via PEAR + - Use composer or the PHAR files instead + +### Fixed +- Fixed bug [#2857][sq-2857] : Squiz/NonExecutableCode: prevent false positives when exit is used in a ternary expression or as default with null coalesce + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3386][sq-3386] : PSR1/SideEffects : improved recognition of disable/enable annotations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3557][sq-3557] : Squiz.Arrays.ArrayDeclaration will now ignore PHP 7.4 array unpacking when determining whether an array is associative + - Thanks to [Volker Dusch][@edorian] for the patch +- Fixed bug [#3592][sq-3592] : Squiz/NonExecutableCode: prevent false positives when a PHP 8.0+ inline throw expression is encountered + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3715][sq-3715] : Generic/UnusedFunctionParameter: fixed incorrect errorcode for closures/arrow functions nested within extended classes/classes which implement + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3717][sq-3717] : Squiz.Commenting.FunctionComment: fixed false positive for `InvalidNoReturn` when type is never + - Thanks to [Choraimy Kroonstuiver][@axlon] for the patch +- Fixed bug [#3720][sq-3720] : Generic/RequireStrictTypes : will now bow out silently in case of parse errors/live coding instead of throwing false positives/false negatives + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3720][sq-3720] : Generic/RequireStrictTypes : did not handle multi-directive declare statements + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3722][sq-3722] : Potential "Uninitialized string offset 1" in octal notation backfill + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3736][sq-3736] : PEAR/FunctionDeclaration: prevent fixer removing the close brace (and creating a parse error) when there is no space between the open brace and close brace of a function + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3739][sq-3739] : PEAR/FunctionDeclaration: prevent fixer conflict, and potentially creating a parse error, for unconventionally formatted return types + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3770][sq-3770] : Squiz/NonExecutableCode: prevent false positives for switching between PHP and HTML + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#3773][sq-3773] : Tokenizer/PHP: tokenization of the readonly keyword when used in combination with PHP 8.2 disjunctive normal types + - Thanks to [Dan Wallis][@fredden] and [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3776][sq-3776] : Generic/JSHint: error when JSHint is not available + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#3777][sq-3777] : Squiz/NonExecutableCode: slew of bug fixes, mostly related to modern PHP + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3778][sq-3778] : Squiz/LowercasePHPFunctions: bug fix for class names in attributes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3779][sq-3779] : Generic/ForbiddenFunctions: bug fix for class names in attributes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3785][sq-3785] : Squiz.Commenting.FunctionComment: potential "Uninitialized string offset 0" when a type contains a duplicate pipe symbol + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#3787][sq-3787] : `PEAR/Squiz/[MultiLine]FunctionDeclaration`: allow for PHP 8.1 new in initializers + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3789][sq-3789] : Incorrect tokenization for ternary operator with `match` inside of it + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3790][sq-3790] : PSR12/AnonClassDeclaration: prevent fixer creating parse error when there was no space before the open brace + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3797][sq-3797] : Tokenizer/PHP: more context sensitive keyword fixes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3801][sq-3801] : File::getMethodParameters(): allow for readonly promoted properties without visibility + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3805][sq-3805] : Generic/FunctionCallArgumentSpacing: prevent fixer conflict over PHP 7.3+ trailing comma's in function calls + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3806][sq-3806] : Squiz.PHP.InnerFunctions sniff now correctly reports inner functions declared within a closure + - Thanks to [@Daimona] for the patch +- Fixed bug [#3809][sq-3809] : GitBlame report was broken when passing a basepath + - Thanks to [Chris][@datengraben] for the patch +- Fixed bug [#3813][sq-3813] : Squiz.Commenting.FunctionComment: false positive for parameter name mismatch on parameters annotated as passed by reference + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#3833][sq-3833] : Generic.PHP.LowerCaseType: fixed potential undefined array index notice + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3846][sq-3846] : PSR2.Classes.ClassDeclaration.CloseBraceAfterBody : fixer will no longer remove indentation on the close brace line + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3854][sq-3854] : Fatal error when using Gitblame report in combination with `--basepath` and running from project subdirectory + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3856][sq-3856] : PSR12.Traits.UseDeclaration was using the wrong error code - SpacingAfterAs - for spacing issues after the `use` keyword + - These will now be reported using the SpacingAfterUse error code + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3856][sq-3856] : PSR12.Traits.UseDeclaration did not check spacing after `use` keyword for multi-line trait use statements + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3867][sq-3867] : Tokenizer/PHP: union type and intersection type operators were not correctly tokenized for static properties without explicit visibility + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3877][sq-3877] : Filter names can be case-sensitive. The -h help text will now display the correct case for the available filters + - Thanks to [@simonsan] for the patch +- Fixed bug [#3893][sq-3893] : Generic/DocComment : the SpacingAfterTagGroup fixer could accidentally remove ignore annotations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3898][sq-3898] : Squiz/NonExecutableCode : the sniff could get confused over comments in unexpected places + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3904][sq-3904] : Squiz/FunctionSpacing : prevent potential fixer conflict + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3906][sq-3906] : Tokenizer/CSS: bug fix related to the unsupported slash comment syntax + - Thanks to [Dan Wallis][@fredden] for the patch +- Fixed bug [#3913][sq-3913] : Config did not always correctly store unknown "long" arguments in the `$unknown` property + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +Thanks go to [Dan Wallis][@fredden] and [Danny van der Sluijs][@DannyvdSluijs] for reviewing quite a few of the PRs for this release. +Additionally, thanks to [Alexander Turek][@derrabus] for consulting on the repo change over. + +[sq-2857]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2857 +[sq-3386]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3386 +[sq-3557]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3557 +[sq-3592]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3592 +[sq-3715]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3715 +[sq-3717]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3717 +[sq-3720]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3720 +[sq-3722]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3722 +[sq-3736]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3736 +[sq-3739]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3739 +[sq-3770]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3770 +[sq-3773]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3773 +[sq-3776]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3776 +[sq-3777]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3777 +[sq-3778]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3778 +[sq-3779]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3779 +[sq-3785]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3785 +[sq-3787]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3787 +[sq-3789]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3789 +[sq-3790]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3790 +[sq-3797]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3797 +[sq-3801]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3801 +[sq-3805]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3805 +[sq-3806]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3806 +[sq-3809]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3809 +[sq-3813]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3813 +[sq-3833]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3833 +[sq-3846]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3846 +[sq-3854]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3854 +[sq-3856]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3856 +[sq-3867]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3867 +[sq-3877]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3877 +[sq-3893]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3893 +[sq-3898]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3898 +[sq-3904]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3904 +[sq-3906]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3906 +[sq-3913]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3913 + +## [3.7.2] - 2023-02-23 + +### Changed +- Newer versions of Composer will now suggest installing PHPCS using require-dev instead of require + - Thanks to [Gary Jones][@GaryJones] for the patch +- A custom Out Of Memory error will now be shown if PHPCS or PHPCBF run out of memory during a run + - Error message provides actionable information about how to fix the problem and ensures the error is not silent + - Thanks to [Juliette Reinders Folmer][@jrfnl] and [Alain Schlesser][@schlessera] for the patch +- Generic.PHP.LowerCaseType sniff now correctly examines types inside arrow functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Formatting.OperatorBracket no longer reports false positives in match() structures + +### Fixed +- Fixed bug [#3616][sq-3616] : Squiz.PHP.DisallowComparisonAssignment false positive for PHP 8 match expression + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3618][sq-3618] : Generic.WhiteSpace.ArbitraryParenthesesSpacing false positive for return new parent() + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3632][sq-3632] : Short list not tokenized correctly in control structures without braces + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3639][sq-3639] : Tokenizer not applying tab replacement to heredoc/nowdoc closers + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3640][sq-3640] : Generic.WhiteSpace.DisallowTabIndent not reporting errors for PHP 7.3 flexible heredoc/nowdoc syntax + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3645][sq-3645] : PHPCS can show 0 exit code when running in parallel even if child process has fatal error + - Thanks to [Alex Panshin][@enl] for the patch +- Fixed bug [#3653][sq-3653] : False positives for match() in OperatorSpacingSniff + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#3666][sq-3666] : PEAR.Functions.FunctionCallSignature incorrect indent fix when checking mixed HTML/PHP files +- Fixed bug [#3668][sq-3668] : PSR12.Classes.ClassInstantiation.MissingParentheses false positive when instantiating parent classes + - Similar issues also fixed in Generic.Functions.FunctionCallArgumentSpacing and Squiz.Formatting.OperatorBracket + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3672][sq-3672] : Incorrect ScopeIndent.IncorrectExact report for match inside array literal +- Fixed bug [#3694][sq-3694] : Generic.WhiteSpace.SpreadOperatorSpacingAfter does not ignore spread operator in PHP 8.1 first class callables + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-3616]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3616 +[sq-3618]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3618 +[sq-3632]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3632 +[sq-3639]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3639 +[sq-3640]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3640 +[sq-3645]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3645 +[sq-3653]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3653 +[sq-3666]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3666 +[sq-3668]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3668 +[sq-3672]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3672 +[sq-3694]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3694 + +## [3.7.1] - 2022-06-18 + +### Fixed +- Fixed bug [#3609][sq-3609] : Methods/constants with name empty/isset/unset are always reported as error + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-3609]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3609 + +## [3.7.0] - 2022-06-13 + +### Added +- Added support for PHP 8.1 explicit octal notation + - This new syntax has been backfilled for PHP versions less than 8.1 + - Thanks to [Mark Baker][@MarkBaker] for the patch + - Thanks to [Juliette Reinders Folmer][@jrfnl] for additional fixes +- Added support for PHP 8.1 enums + - This new syntax has been backfilled for PHP versions less than 8.1 + - Includes a new T_ENUM_CASE token to represent the case statements inside an enum + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch + - Thanks to [Juliette Reinders Folmer][@jrfnl] for additional core and sniff support +- Added support for the PHP 8.1 readonly token + - Tokenizing of the readonly keyword has been backfilled for PHP versions less than 8.1 + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Added support for PHP 8.1 intersection types + - Includes a new T_TYPE_INTERSECTION token to represent the ampersand character inside intersection types + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch + +### Changed +- File::getMethodParameters now supports the new PHP 8.1 readonly token + - When constructor property promotion is used, a new property_readonly array index is included in the return value + - This is a boolean value indicating if the property is readonly + - If the readonly token is detected, a new readonly_token array index is included in the return value + - This contains the token index of the readonly keyword + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Support for new PHP 8.1 readonly keyword has been added to the following sniffs: + - Generic.PHP.LowerCaseKeyword + - PSR2.Classes.PropertyDeclaration + - Squiz.Commenting.BlockComment + - Squiz.Commenting.DocCommentAlignment + - Squiz.Commenting.VariableComment + - Squiz.WhiteSpace.ScopeKeywordSpacing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches +- The parallel feature is now more efficient and runs faster in some situations due to improved process management + - Thanks to [Sergei Morozov][@morozov] for the patch +- The list of installed coding standards now has consistent ordering across all platforms + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.UpperCaseConstant and Generic.PHP.LowerCaseConstant now ignore type declarations + - These sniffs now only report errors for true/false/null when used as values + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.LowerCaseType now supports the PHP 8.1 never type + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch + +### Fixed +- Fixed bug [#3502][sq-3502] : A match statement within an array produces Squiz.Arrays.ArrayDeclaration.NoKeySpecified +- Fixed bug [#3503][sq-3503] : Squiz.Commenting.FunctionComment.ThrowsNoFullStop false positive when one line @throw +- Fixed bug [#3505][sq-3505] : The nullsafe operator is not counted in Generic.Metrics.CyclomaticComplexity + - Thanks to [Mark Baker][@MarkBaker] for the patch +- Fixed bug [#3526][sq-3526] : PSR12.Properties.ConstantVisibility false positive when using public final const syntax + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3530][sq-3530] : Line indented incorrectly false positive when using match-expression inside switch case +- Fixed bug [#3534][sq-3534] : Name of typed enum tokenized as T_GOTO_LABEL + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3546][sq-3546] : Tokenizer/PHP: bug fix - parent/static keywords in class instantiations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3550][sq-3550] : False positive from PSR2.ControlStructures.SwitchDeclaration.TerminatingComment when using trailing comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3575][sq-3575] : Squiz.Scope.MethodScope misses visibility keyword on previous line + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3604][sq-3604] : Tokenizer/PHP: bug fix for double quoted strings using ${ + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-3502]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3502 +[sq-3503]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3503 +[sq-3505]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3505 +[sq-3526]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3526 +[sq-3530]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3530 +[sq-3534]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3534 +[sq-3546]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3546 +[sq-3550]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3550 +[sq-3575]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3575 +[sq-3604]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3604 + +## [3.6.2] - 2021-12-13 + +### Changed +- Processing large code bases that use tab indenting inside comments and strings will now be faster + - Thanks to [Thiemo Kreuz][@thiemowmde] for the patch + +### Fixed +- Fixed bug [#3388][sq-3388] : phpcs does not work when run from WSL drives + - Thanks to [Juliette Reinders Folmer][@jrfnl] and [Graham Wharton][@gwharton] for the patch +- Fixed bug [#3422][sq-3422] : Squiz.WhiteSpace.ScopeClosingBrace fixer removes HTML content when fixing closing brace alignment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3437][sq-3437] : PSR12 does not forbid blank lines at the start of the class body + - Added new PSR12.Classes.OpeningBraceSpace sniff to enforce this +- Fixed bug [#3440][sq-3440] : Squiz.WhiteSpace.MemberVarSpacing false positives when attributes used without docblock + - Thanks to [Vadim Borodavko][@javer] for the patch +- Fixed bug [#3448][sq-3448] : PHP 8.1 deprecation notice while generating running time value + - Thanks to [Juliette Reinders Folmer][@jrfnl] and [Andy Postnikov][@andypost] for the patch +- Fixed bug [#3456][sq-3456] : PSR12.Classes.ClassInstantiation.MissingParentheses false positive using attributes on anonymous class + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3460][sq-3460] : Generic.Formatting.MultipleStatementAlignment false positive on closure with parameters + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3468][sq-3468] : do/while loops are double-counted in Generic.Metrics.CyclomaticComplexity + - Thanks to [Mark Baker][@MarkBaker] for the patch +- Fixed bug [#3469][sq-3469] : Ternary Operator and Null Coalescing Operator are not counted in Generic.Metrics.CyclomaticComplexity + - Thanks to [Mark Baker][@MarkBaker] for the patch +- Fixed bug [#3472][sq-3472] : PHP 8 match() expression is not counted in Generic.Metrics.CyclomaticComplexity + - Thanks to [Mark Baker][@MarkBaker] for the patch + +[sq-3388]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3388 +[sq-3422]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3422 +[sq-3437]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3437 +[sq-3440]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3440 +[sq-3448]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3448 +[sq-3456]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3456 +[sq-3460]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3460 +[sq-3468]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3468 +[sq-3469]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3469 +[sq-3472]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3472 + +## [3.6.1] - 2021-10-11 + +### Changed +- PHPCS annotations can now be specified using hash-style comments + - Previously, only slash-style and block-style comments could be used to do things like disable errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The new PHP 8.1 tokenization for ampersands has been reverted to use the existing PHP_CodeSniffer method + - The PHP 8.1 tokens T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG and T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG are unused + - Ampersands continue to be tokenized as T_BITWISE_AND for all PHP versions + - Thanks to [Juliette Reinders Folmer][@jrfnl] and [Anna Filina][@afilina] for the patch +- File::getMethodParameters() no longer incorrectly returns argument attributes in the type hint array index + - A new has_attributes array index is available and set to TRUE if the argument has attributes defined + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed an issue where some sniffs would not run on PHP files that only used the short echo tag + - The following sniffs were affected: + - Generic.Files.ExecutableFile + - Generic.Files.LowercasedFilename + - Generic.Files.LineEndings + - Generic.Files.EndFileNewline + - Generic.Files.EndFileNoNewline + - Generic.PHP.ClosingPHPTag + - Generic.PHP.Syntax + - Generic.VersionControl.GitMergeConflict + - Generic.WhiteSpace.DisallowSpaceIndent + - Generic.WhiteSpace.DisallowTabIndent + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.BlockComment now correctly applies rules for block comments after a short echo tag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Generic.NamingConventions.ConstructorName no longer throws deprecation notices on PHP 8.1 + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed false positives when using attributes in the following sniffs: + - PEAR.Commenting.FunctionComment + - Squiz.Commenting.InlineComment + - Squiz.Commenting.BlockComment + - Squiz.Commenting.VariableComment + - Squiz.WhiteSpace.MemberVarSpacing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3294][sq-3294] : Bug in attribute tokenization when content contains PHP end token or attribute closer on new line + - Thanks to [Alessandro Chitolina][@alekitto] for the patch + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the tests +- Fixed bug [#3296][sq-3296] : PSR2.ControlStructures.SwitchDeclaration takes phpcs:ignore as content of case body +- Fixed bug [#3297][sq-3297] : PSR2.ControlStructures.SwitchDeclaration.TerminatingComment does not handle try/finally blocks + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3302][sq-3302] : PHP 8.0 | Tokenizer/PHP: bugfix for union types using namespace operator + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3303][sq-3303] : findStartOfStatement() doesn't work with T_OPEN_TAG_WITH_ECHO +- Fixed bug [#3316][sq-3316] : Arrow function not tokenized correctly when using null in union type +- Fixed bug [#3317][sq-3317] : Problem with how phpcs handles ignored files when running in parallel + - Thanks to [Emil Andersson][@emil-nasso] for the patch +- Fixed bug [#3324][sq-3324] : PHPCS hangs processing some nested arrow functions inside a function call +- Fixed bug [#3326][sq-3326] : Generic.Formatting.MultipleStatementAlignment error with const DEFAULT + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3333][sq-3333] : Squiz.Objects.ObjectInstantiation: null coalesce operators are not recognized as assignment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3340][sq-3340] : Ensure interface and trait names are always tokenized as T_STRING + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3342][sq-3342] : PSR12/Squiz/PEAR standards all error on promoted properties with docblocks + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3345][sq-3345] : IF statement with no braces and double catch turned into syntax error by auto-fixer + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3352][sq-3352] : PSR2.ControlStructures.SwitchDeclaration can remove comments on the same line as the case statement while fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3357][sq-3357] : Generic.Functions.OpeningFunctionBraceBsdAllman removes return type when additional lines are present + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3362][sq-3362] : Generic.WhiteSpace.ScopeIndent false positive for arrow functions inside arrays +- Fixed bug [#3384][sq-3384] : Squiz.Commenting.FileComment.SpacingAfterComment false positive on empty file +- Fixed bug [#3394][sq-3394] : Fix PHP 8.1 auto_detect_line_endings deprecation notice +- Fixed bug [#3400][sq-3400] : PHP 8.1: prevent deprecation notices about missing return types + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3424][sq-3424] : PHPCS fails when using PHP 8 Constructor property promotion with attributes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3425][sq-3425] : PHP 8.1 | Runner::processChildProcs(): fix passing null to non-nullable bug + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3445][sq-3445] : Nullable parameter after attribute incorrectly tokenized as ternary operator + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-3294]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3294 +[sq-3296]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3296 +[sq-3297]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3297 +[sq-3302]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3302 +[sq-3303]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3303 +[sq-3316]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3316 +[sq-3317]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3317 +[sq-3324]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3324 +[sq-3326]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3326 +[sq-3333]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3333 +[sq-3340]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3340 +[sq-3342]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3342 +[sq-3345]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3345 +[sq-3352]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3352 +[sq-3357]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3357 +[sq-3362]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3362 +[sq-3384]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3384 +[sq-3394]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3394 +[sq-3400]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3400 +[sq-3424]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3424 +[sq-3425]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3425 +[sq-3445]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3445 + +## [3.6.0] - 2021-04-09 + +### Added +- Added support for PHP 8.0 union types + - A new T_TYPE_UNION token is available to represent the pipe character + - File::getMethodParameters(), getMethodProperties(), and getMemberProperties() will now return union types + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for PHP 8.0 named function call arguments + - A new T_PARAM_NAME token is available to represent the label with the name of the function argument in it + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for PHP 8.0 attributes + - The PHP-supplied T_ATTRIBUTE token marks the start of an attribute + - A new T_ATTRIBUTE_END token is available to mark the end of an attribute + - New attribute_owner and attribute_closer indexes are available in the tokens array for all tokens inside an attribute + - Tokenizing of attributes has been backfilled for older PHP versions + - The following sniffs have been updated to support attributes: + - PEAR.Commenting.ClassComment + - PEAR.Commenting.FileComment + - PSR1.Files.SideEffects + - PSR12.Files.FileHeader + - Squiz.Commenting.ClassComment + - Squiz.Commenting.FileComment + - Squiz.WhiteSpace.FunctionSpacing + - Thanks to [Vadim Borodavko][@javer] for the patch + - Thanks to [Alessandro Chitolina][@alekitto] for the patch +- Added support for PHP 8.0 dereferencing of text strings with interpolated variables + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for PHP 8.0 match expressions + - Match expressions are now tokenized with parenthesis and scope openers and closers + - Sniffs can listen for the T_MATCH token to process match expressions + - Note that the case and default statements inside match expressions do not have scopes set + - A new T_MATCH_ARROW token is available to represent the arrows in match expressions + - A new T_MATCH_DEFAULT token is available to represent the default keyword in match expressions + - All tokenizing of match expressions has been backfilled for older PHP versions + - The following sniffs have been updated to support match expressions: + - Generic.CodeAnalysis.AssignmentInCondition + - Generic.CodeAnalysis.EmptyPHPStatement + - Thanks to [Vadim Borodavko][@javer] for the patch + - Generic.CodeAnalysis.EmptyStatement + - Generic.PHP.LowerCaseKeyword + - PEAR.ControlStructures.ControlSignature + - PSR12.ControlStructures.BooleanOperatorPlacement + - Squiz.Commenting.LongConditionClosingComment + - Squiz.Commenting.PostStatementComment + - Squiz.ControlStructures.LowercaseDeclaration + - Squiz.ControlStructures.ControlSignature + - Squiz.Formatting.OperatorBracket + - Squiz.PHP.DisallowMultipleAssignments + - Squiz.Objects.ObjectInstantiation + - Squiz.WhiteSpace.ControlStructureSpacing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added Generic.NamingConventions.AbstractClassNamePrefix to enforce that class names are prefixed with "Abstract" + - Thanks to [Anna Borzenko][@annechko] for the contribution +- Added Generic.NamingConventions.InterfaceNameSuffix to enforce that interface names are suffixed with "Interface" + - Thanks to [Anna Borzenko][@annechko] for the contribution +- Added Generic.NamingConventions.TraitNameSuffix to enforce that trait names are suffixed with "Trait" + - Thanks to [Anna Borzenko][@annechko] for the contribution + +### Changed +- The value of the T_FN_ARROW token has changed from "T_FN_ARROW" to "PHPCS_T_FN_ARROW" to avoid package conflicts + - This will have no impact on custom sniffs unless they are specifically looking at the value of the T_FN_ARROW constant + - If sniffs are just using constant to find arrow functions, they will continue to work without modification + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- File::findStartOfStatement() now works correctly when passed the last token in a statement +- File::getMethodParameters() now supports PHP 8.0 constructor property promotion + - Returned method params now include a "property_visibility" and "visibility_token" index if property promotion is detected + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- File::getMethodProperties() now includes a "return_type_end_token" index in the return value + - This indicates the last token in the return type, which is helpful when checking union types + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Include patterns are now ignored when processing STDIN + - Previously, checks using include patterns were excluded when processing STDIN when no file path was provided via --stdin-path + - Now, all include and exclude rules are ignored when no file path is provided, allowing all checks to run + - If you want include and exclude rules enforced when checking STDIN, use --stdin-path to set the file path + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Spaces are now correctly escaped in the paths to external on Windows + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.CodeAnalysis.UnusedFunctionParameter can now be configured to ignore variable usage for specific type hints + - This allows you to suppress warnings for some variables that are not required, but leave warnings for others + - Set the ignoreTypeHints array property to a list of type hints to ignore + - Thanks to [Petr Bugyík][@o5] for the patch +- Generic.Formatting.MultipleStatementAlignment can now align statements at the start of the assignment token + - Previously, the sniff enforced that the values were aligned, even if this meant the assignment tokens were not + - Now, the sniff can enforce that the assignment tokens are aligned, even if this means the values are not + - Set the "alignAtEnd" sniff property to "false" to align the assignment tokens + - The default remains at "true", so the assigned values are aligned + - Thanks to [John P. Bloch][@johnpbloch] for the patch +- Generic.PHP.LowerCaseType now supports checking of typed properties + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.LowerCaseType now supports checking of union types + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.Commenting.FunctionComment and Squiz.Commenting.FunctionComment sniffs can now ignore private and protected methods + - Set the "minimumVisibility" sniff property to "protected" to ignore private methods + - Set the "minimumVisibility" sniff property to "public" to ignore both private and protected methods + - The default remains at "private", so all methods are checked + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- PEAR.Commenting.FunctionComment and Squiz.Commenting.FunctionComment sniffs can now ignore return tags in any method + - Previously, only `__construct()` and `__destruct()` were ignored + - Set the list of method names to ignore in the "specialMethods" sniff property + - The default remains at "__construct" and "__destruct" only + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- PSR2.ControlStructures.SwitchDeclaration now supports nested switch statements where every branch terminates + - Previously, if a CASE only contained a SWITCH and no direct terminating statement, a fall-through error was displayed + - Now, the error is suppressed if every branch of the SWITCH has a terminating statement + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- The PSR2.Methods.FunctionCallSignature.SpaceBeforeCloseBracket error message is now reported on the closing parenthesis token + - Previously, the error was being reported on the function keyword, leading to confusing line numbers in the error report +- Squiz.Commenting.FunctionComment is now able to ignore function comments that are only inheritdoc statements + - Set the skipIfInheritdoc sniff property to "true" to skip checking function comments if the content is only {@inhertidoc} + - The default remains at "false", so these comments will continue to report errors + - Thanks to [Jess Myrbo][@xjm] for the patch +- Squiz.Commenting.FunctionComment now supports the PHP 8 mixed type + - Thanks to [Vadim Borodavko][@javer] for the patch +- Squiz.PHP.NonExecutableCode now has improved handling of syntax errors + - Thanks to [Thiemo Kreuz][@thiemowmde] for the patch +- Squiz.WhiteSpace.ScopeKeywordSpacing now checks spacing when using PHP 8.0 constructor property promotion + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed an issue that could occur when checking files on network drives, such as with WSL2 on Windows 10 + - This works around a long-standing PHP bug with is_readable() + - Thanks to [Michael S][@codebymikey] for the patch +- Fixed a number of false positives in the Squiz.PHP.DisallowMultipleAssignments sniff + - Sniff no longer errors for default value assignments in arrow functions + - Sniff no longer errors for assignments on first line of closure + - Sniff no longer errors for assignments after a goto label + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#2913][sq-2913] : Generic.WhiteSpace.ScopeIndent false positive when opening and closing tag on same line inside conditional +- Fixed bug [#2992][sq-2992] : Enabling caching using a ruleset produces invalid cache files when using --sniffs and --exclude CLI args +- Fixed bug [#3003][sq-3003] : Squiz.Formatting.OperatorBracket autofix incorrect when assignment used with null coalescing operator +- Fixed bug [#3145][sq-3145] : Autoloading of sniff fails when multiple classes declared in same file +- Fixed bug [#3157][sq-3157] : PSR2.ControlStructures.SwitchDeclaration.BreakIndent false positive when case keyword is not indented +- Fixed bug [#3163][sq-3163] : Undefined index error with pre-commit hook using husky on PHP 7.4 + - Thanks to [Ismo Vuorinen][@ivuorinen] for the patch +- Fixed bug [#3165][sq-3165] : Squiz.PHP.DisallowComparisonAssignment false positive when comparison inside closure +- Fixed bug [#3167][sq-3167] : Generic.WhiteSpace.ScopeIndent false positive when using PHP 8.0 constructor property promotion +- Fixed bug [#3170][sq-3170] : Squiz.WhiteSpace.OperatorSpacing false positive when using negation with string concat + - This also fixes the same issue in the PSR12.Operators.OperatorSpacing sniff +- Fixed bug [#3177][sq-3177] : Incorrect tokenization of GOTO statements in mixed PHP/HTML files + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3184][sq-3184] : PSR2.Namespace.NamespaceDeclaration false positive on namespace operator + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3188][sq-3188] : Squiz.WhiteSpace.ScopeKeywordSpacing false positive for static return type + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3192][sq-3192] : findStartOfStatement doesn't work correctly inside switch + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- Fixed bug [#3195][sq-3195] : Generic.WhiteSpace.ScopeIndent confusing message when combination of tabs and spaces found +- Fixed bug [#3197][sq-3197] : Squiz.NamingConventions.ValidVariableName does not use correct error code for all member vars +- Fixed bug [#3219][sq-3219] : Generic.Formatting.MultipleStatementAlignment false positive for empty anonymous classes and closures +- Fixed bug [#3258][sq-3258] : Squiz.Formatting.OperatorBracket duplicate error messages for unary minus + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3273][sq-3273] : Squiz.Functions.FunctionDeclarationArgumentSpacing reports line break as 0 spaces between parenthesis +- Fixed bug [#3277][sq-3277] : Nullable static return typehint causes whitespace error +- Fixed bug [#3284][sq-3284] : Unused parameter false positive when using array index in arrow function + +[sq-2913]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2913 +[sq-2992]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2992 +[sq-3003]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3003 +[sq-3145]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3145 +[sq-3157]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3157 +[sq-3163]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3163 +[sq-3165]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3165 +[sq-3167]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3167 +[sq-3170]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3170 +[sq-3177]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3177 +[sq-3184]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3184 +[sq-3188]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3188 +[sq-3192]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3192 +[sq-3195]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3195 +[sq-3197]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3197 +[sq-3219]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3219 +[sq-3258]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3258 +[sq-3273]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3273 +[sq-3277]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3277 +[sq-3284]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3284 + +## [3.5.8] - 2020-10-23 + +### Removed +- Reverted a change to the way include/exclude patterns are processed for STDIN content + - This change is not backwards compatible and will be re-introduced in version 3.6.0 + +## [3.5.7] - 2020-10-23 + +### Added +- The PHP 8.0 T_NULLSAFE_OBJECT_OPERATOR token has been made available for older versions + - Existing sniffs that check for T_OBJECT_OPERATOR have been modified to apply the same rules for the nullsafe object operator + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The new method of PHP 8.0 tokenizing for namespaced names has been reverted to the pre 8.0 method + - This maintains backwards compatible for existing sniffs on PHP 8.0 + - This change will be removed in PHPCS 4.0 as the PHP 8.0 tokenizing method will be backported for pre 8.0 versions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for changes to the way PHP 8.0 tokenizes hash comments + - The existing PHP 5-7 behaviour has been replicated for version 8, so no sniff changes are required + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Running the unit tests now includes warnings in the found and fixable error code counts + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PSR12.Functions.NullableTypeDeclaration now supports the PHP8 static return type + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Changed +- The autoloader has been changed to fix sniff class name detection issues that may occur when running on PHP 7.4+ + - Thanks to [Eloy Lafuente][@stronk7] for the patch +- PSR12.ControlStructures.BooleanOperatorPlacement.FoundMixed error message is now more accurate when using the allowOnly setting + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch + +### Fixed +- Fixed Squiz.Formatting.OperatorBracket false positive when exiting with a negative number +- Fixed Squiz.PHP.DisallowComparisonAssignment false positive for methods called on an object +- Fixed bug [#2882][sq-2882] : Generic.Arrays.ArrayIndent can request close brace indent to be less than the statement indent level +- Fixed bug [#2883][sq-2883] : Generic.WhiteSpace.ScopeIndent.Incorrect issue after NOWDOC +- Fixed bug [#2975][sq-2975] : Undefined offset in PSR12.Functions.ReturnTypeDeclaration when checking function return type inside ternary +- Fixed bug [#2988][sq-2988] : Undefined offset in Squiz.Strings.ConcatenationSpacing during live coding + - Thanks to [Thiemo Kreuz][@thiemowmde] for the patch +- Fixed bug [#2989][sq-2989] : Incorrect auto-fixing in Generic.ControlStructures.InlineControlStructure during live coding + - Thanks to [Thiemo Kreuz][@thiemowmde] for the patch +- Fixed bug [#3007][sq-3007] : Directory exclude pattern improperly excludes directories with names that start the same + - Thanks to [Steve Talbot][@SteveTalbot] for the patch +- Fixed bug [#3043][sq-3043] : Squiz.WhiteSpace.OperatorSpacing false positive for negation in arrow function + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3049][sq-3049] : Incorrect error with arrow function and parameter passed as reference + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3053][sq-3053] : PSR2 incorrect fix when multiple use statements on same line do not have whitespace between them +- Fixed bug [#3058][sq-3058] : Progress gets unaligned when 100% happens at the end of the available dots +- Fixed bug [#3059][sq-3059] : Squiz.Arrays.ArrayDeclaration false positive when using type casting + - Thanks to [Sergei Morozov][@morozov] for the patch +- Fixed bug [#3060][sq-3060] : Squiz.Arrays.ArrayDeclaration false positive for static functions + - Thanks to [Sergei Morozov][@morozov] for the patch +- Fixed bug [#3065][sq-3065] : Should not fix Squiz.Arrays.ArrayDeclaration.SpaceBeforeComma if comment between element and comma + - Thanks to [Sergei Morozov][@morozov] for the patch +- Fixed bug [#3066][sq-3066] : No support for namespace operator used in type declarations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3075][sq-3075] : PSR12.ControlStructures.BooleanOperatorPlacement false positive when operator is the only content on line +- Fixed bug [#3099][sq-3099] : Squiz.WhiteSpace.OperatorSpacing false positive when exiting with negative number + - Thanks to [Sergei Morozov][@morozov] for the patch +- Fixed bug [#3102][sq-3102] : PSR12.Squiz.OperatorSpacing false positive for default values of arrow functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#3124][sq-3124] : PSR-12 not reporting error for empty lines with only whitespace +- Fixed bug [#3135][sq-3135] : Ignore annotations are broken on PHP 8.0 + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-2882]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2882 +[sq-2883]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2883 +[sq-2975]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2975 +[sq-2988]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2988 +[sq-2989]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2989 +[sq-3007]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3007 +[sq-3043]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3043 +[sq-3049]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3049 +[sq-3053]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3053 +[sq-3058]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3058 +[sq-3059]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3059 +[sq-3060]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3060 +[sq-3065]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3065 +[sq-3066]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3066 +[sq-3075]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3075 +[sq-3099]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3099 +[sq-3102]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3102 +[sq-3124]: https://github.com/squizlabs/PHP_CodeSniffer/issues/3124 +[sq-3135]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3135 + +## [3.5.6] - 2020-08-10 + +### Added +- Added support for PHP 8.0 magic constant dereferencing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added support for changes to the way PHP 8.0 tokenizes comments + - The existing PHP 5-7 behaviour has been replicated for version 8, so no sniff changes are required + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- `File::getMethodProperties()` now detects the PHP 8.0 static return type + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The PHP 8.0 static return type is now supported for arrow functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Changed +- The cache is no longer used if the list of loaded PHP extensions changes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- `Generic.NamingConventions.CamelCapsFunctionName` no longer reports `__serialize` and `__unserialize` as invalid names + - Thanks to [Filip Š][@filips123] for the patch +- `PEAR.NamingConventions.ValidFunctionName` no longer reports `__serialize` and `__unserialize` as invalid names + - Thanks to [Filip Š][@filips123] for the patch +- `Squiz.Scope.StaticThisUsage` now detects usage of `$this` inside closures and arrow functions + - Thanks to [Michał Bundyra][@michalbundyra] for the patch + +### Fixed +- Fixed bug [#2877][sq-2877] : PEAR.Functions.FunctionCallSignature false positive for array of functions + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- Fixed bug [#2888][sq-2888] : PSR12.Files.FileHeader blank line error with multiple namespaces in one file +- Fixed bug [#2926][sq-2926] : phpcs hangs when using arrow functions that return heredoc +- Fixed bug [#2943][sq-2943] : Redundant semicolon added to a file when fixing PSR2.Files.ClosingTag.NotAllowed +- Fixed bug [#2967][sq-2967] : Markdown generator does not output headings correctly + - Thanks to [Petr Bugyík][@o5] for the patch +- Fixed bug [#2977][sq-2977] : File::isReference() does not detect return by reference for closures + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2994][sq-2994] : Generic.Formatting.DisallowMultipleStatements false positive for FOR loop with no body +- Fixed bug [#3033][sq-3033] : Error generated during tokenizing of goto statements on PHP 8 + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-2877]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2877 +[sq-2888]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2888 +[sq-2926]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2926 +[sq-2943]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2943 +[sq-2967]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2967 +[sq-2977]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2977 +[sq-2994]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2994 +[sq-3033]: https://github.com/squizlabs/PHP_CodeSniffer/pull/3033 + +## [3.5.5] - 2020-04-17 + +### Changed +- The T_FN backfill now works more reliably so T_FN tokens only ever represent real arrow functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed an issue where including sniffs using paths containing multiple dots would silently fail +- Generic.CodeAnalysis.EmptyPHPStatement now detects empty statements at the start of control structures + +### Fixed +- Error wording in PEAR.Functions.FunctionCallSignature now always uses "parenthesis" instead of sometimes using "bracket" + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- Fixed bug [#2787][sq-2787] : Squiz.PHP.DisallowMultipleAssignments not ignoring typed property declarations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2810][sq-2810] : PHPCBF fails to fix file with empty statement at start on control structure +- Fixed bug [#2812][sq-2812] : Squiz.Arrays.ArrayDeclaration not detecting some arrays with multiple arguments on the same line + - Thanks to [Jakub Chábek][@grongor] for the patch +- Fixed bug [#2826][sq-2826] : Generic.WhiteSpace.ArbitraryParenthesesSpacing doesn't detect issues for statements directly after a control structure + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- Fixed bug [#2848][sq-2848] : PSR12.Files.FileHeader false positive for file with mixed PHP and HTML and no file header +- Fixed bug [#2849][sq-2849] : Generic.WhiteSpace.ScopeIndent false positive with arrow function inside array +- Fixed bug [#2850][sq-2850] : Generic.PHP.LowerCaseKeyword complains __HALT_COMPILER is uppercase +- Fixed bug [#2853][sq-2853] : Undefined variable error when using Info report + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2865][sq-2865] : Double arrow tokenized as T_STRING when placed after function named "fn" +- Fixed bug [#2867][sq-2867] : Incorrect scope matching when arrow function used inside IF condition +- Fixed bug [#2868][sq-2868] : phpcs:ignore annotation doesn't work inside a docblock +- Fixed bug [#2878][sq-2878] : PSR12.Files.FileHeader conflicts with Generic.Files.LineEndings +- Fixed bug [#2895][sq-2895] : PSR2.Methods.FunctionCallSignature.MultipleArguments false positive with arrow function argument + +[sq-2787]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2787 +[sq-2810]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2810 +[sq-2812]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2812 +[sq-2826]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2826 +[sq-2848]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2848 +[sq-2849]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2849 +[sq-2850]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2850 +[sq-2853]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2853 +[sq-2865]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2865 +[sq-2867]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2867 +[sq-2868]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2868 +[sq-2878]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2878 +[sq-2895]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2895 + +## [3.5.4] - 2020-01-31 + +### Changed +- The PHP 7.4 numeric separator backfill now works correctly for more float formats + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The PHP 7.4 numeric separator backfill is no longer run on PHP version 7.4.0 or greater +- File::getCondition() now accepts a 3rd argument that allows for the closest matching token to be returned + - By default, it continues to return the first matched token found from the top of the file +- Fixed detection of array return types for arrow functions +- Added Generic.PHP.DisallowRequestSuperglobal to ban the use of the $_REQUEST superglobal + - Thanks to [Jeantwan Teuma][@Morerice] for the contribution +- Generic.ControlStructures.InlineControlStructure no longer shows errors for WHILE and FOR statements without a body + - Previously it required these to have curly braces, but there were no statements to enclose in them + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PSR12.ControlStructures.BooleanOperatorPlacement can now be configured to enforce a specific operator position + - By default, the sniff ensures that operators are all at the beginning or end of lines, but not a mix of both + - Set the allowOnly property to "first" to enforce all boolean operators to be at the start of a line + - Set the allowOnly property to "last" to enforce all boolean operators to be at the end of a line + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- PSR12.Files.ImportStatement now auto-fixes import statements by removing the leading slash + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Squiz.ControlStructures.ForLoopDeclaration now has a setting to ignore newline characters + - Default remains FALSE, so newlines are not allowed within FOR definitions + - Override the "ignoreNewlines" setting in a ruleset.xml file to change +- Squiz.PHP.InnerFunctions now handles multiple nested anon classes correctly + +### Fixed +- Fixed bug [#2497][sq-2497] : Sniff properties not set when referencing a sniff using relative paths or non-native slashes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2657][sq-2657] : Squiz.WhiteSpace.FunctionSpacing can remove spaces between comment and first/last method during auto-fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2688][sq-2688] : Case statements not tokenized correctly when switch is contained within ternary +- Fixed bug [#2698][sq-2698] : PHPCS throws errors determining auto report width when shell_exec is disabled + - Thanks to [Matthew Peveler][@MasterOdin] for the patch +- Fixed bug [#2730][sq-2730] : PSR12.ControlStructures.ControlStructureSpacing does not ignore comments between conditions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2732][sq-2732] : PSR12.Files.FileHeader misidentifies file header in mixed content file +- Fixed bug [#2745][sq-2745] : AbstractArraySniff wrong indices when mixed coalesce and ternary values + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#2748][sq-2748] : Wrong end of statement for fn closures + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#2751][sq-2751] : Autoload relative paths first to avoid confusion with files from the global include path + - Thanks to [Klaus Purer][@klausi] for the patch +- Fixed bug [#2763][sq-2763] : PSR12 standard reports errors for multi-line FOR definitions +- Fixed bug [#2768][sq-2768] : Generic.Files.LineLength false positive for non-breakable strings at exactly the soft limit + - Thanks to [Alex Miles][@ghostal] for the patch +- Fixed bug [#2773][sq-2773] : PSR2.Methods.FunctionCallSignature false positive when arrow function has array return type +- Fixed bug [#2790][sq-2790] : PSR12.Traits.UseDeclaration ignores block comments + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- Fixed bug [#2791][sq-2791] : PSR12.Functions.NullableTypeDeclaration false positive when ternary operator used with instanceof + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2802][sq-2802] : Can't specify a report file path using the tilde shortcut +- Fixed bug [#2804][sq-2804] : PHP4-style typed properties not tokenized correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2805][sq-2805] : Undefined Offset notice during live coding of arrow functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2843][sq-2843] : Tokenizer does not support alternative syntax for declare statements + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-2497]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2497 +[sq-2657]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2657 +[sq-2688]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2688 +[sq-2698]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2698 +[sq-2730]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2730 +[sq-2732]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2732 +[sq-2745]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2745 +[sq-2748]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2748 +[sq-2751]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2751 +[sq-2763]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2763 +[sq-2768]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2768 +[sq-2773]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2773 +[sq-2790]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2790 +[sq-2791]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2791 +[sq-2802]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2802 +[sq-2804]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2804 +[sq-2805]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2805 +[sq-2843]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2843 + +## [3.5.3] - 2019-12-04 + +### Changed +- The PHP 7.4 T_FN token has been made available for older versions + - T_FN represents the fn string used for arrow functions + - The double arrow becomes the scope opener, and uses a new T_FN_ARROW token type + - The token after the statement (normally a semicolon) becomes the scope closer + - The token is also associated with the opening and closing parenthesis of the statement + - Any functions named "fn" will have a T_FN token for the function name, but have no scope information + - Thanks to [Michał Bundyra][@michalbundyra] for the help with this change +- PHP 7.4 numeric separators are now tokenized in the same way when using older PHP versions + - Previously, a number like 1_000 would tokenize as T_LNUMBER (1), T_STRING (_000) + - Now, the number tokenizes as T_LNUMBER (1_000) + - Sniff developers should consider how numbers with underscores impact their custom sniffs +- The PHPCS file cache now takes file permissions into account + - The cache is now invalidated for a file when its permissions are changed +- File::getMethodParameters() now supports arrow functions +- File::getMethodProperties() now supports arrow functions +- Added Fixer::changeCodeBlockIndent() to change the indent of a code block while auto-fixing + - Can be used to either increase or decrease the indent + - Useful when moving the start position of something like a closure, where you want the content to also move +- Added Generic.Files.ExecutableFile sniff + - Ensures that files are not executable + - Thanks to [Matthew Peveler][@MasterOdin] for the contribution +- Generic.CodeAnalysis.EmptyPhpStatement now reports unnecessary semicolons after control structure closing braces + - Thanks to [Vincent Langlet][@VincentLanglet] for the patch +- Generic.PHP.LowerCaseKeyword now enforces that the "fn" keyword is lowercase + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Generic.WhiteSpace.ScopeIndent now supports static arrow functions +- PEAR.Functions.FunctionCallSignature now adjusts the indent of function argument contents during auto-fixing + - Previously, only the first line of an argument was changed, leading to inconsistent indents + - This change also applies to PSR2.Methods.FunctionCallSignature +- PSR2.ControlStructures.ControlStructureSpacing now checks whitespace before the closing parenthesis of multi-line control structures + - Previously, it incorrectly applied the whitespace check for single-line definitions only +- PSR12.Functions.ReturnTypeDeclaration now checks the return type of arrow functions + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- PSR12.Traits.UseDeclaration now ensures all trait import statements are grouped together + - Previously, the trait import section of the class ended when the first non-import statement was found + - Checking now continues throughout the class to ensure all statements are grouped together + - This also ensures that empty lines are not requested after an import statement that isn't the last one +- Squiz.Functions.LowercaseFunctionKeywords now enforces that the "fn" keyword is lowercase + - Thanks to [Michał Bundyra][@michalbundyra] for the patch + +### Fixed +- Fixed bug [#2586][sq-2586] : Generic.WhiteSpace.ScopeIndent false positives when indenting open tags at a non tab-stop +- Fixed bug [#2638][sq-2638] : Squiz.CSS.DuplicateClassDefinitionSniff sees comments as part of the class name + - Thanks to [Raphael Horber][@rhorber] for the patch +- Fixed bug [#2640][sq-2640] : Squiz.WhiteSpace.OperatorSpacing false positives for some negation operators + - Thanks to [Jakub Chábek][@grongor] and [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2674][sq-2674] : Squiz.Functions.FunctionDeclarationArgumentSpacing prints wrong argument name in error message +- Fixed bug [#2676][sq-2676] : PSR12.Files.FileHeader locks up when file ends with multiple inline comments +- Fixed bug [#2678][sq-2678] : PSR12.Classes.AnonClassDeclaration incorrectly enforcing that closing brace be on a line by itself +- Fixed bug [#2685][sq-2685] : File::getMethodParameters() setting typeHintEndToken for vars with no type hint + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2694][sq-2694] : AbstractArraySniff produces invalid indices when using ternary operator + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#2702][sq-2702] : Generic.WhiteSpace.ScopeIndent false positive when using ternary operator with short arrays + +[sq-2586]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2586 +[sq-2638]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2638 +[sq-2640]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2640 +[sq-2674]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2674 +[sq-2676]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2676 +[sq-2678]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2678 +[sq-2685]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2685 +[sq-2694]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2694 +[sq-2702]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2702 + +## [3.5.2] - 2019-10-28 + +### Changed +- Generic.ControlStructures.DisallowYodaConditions now returns less false positives + - False positives were being returned for array comparisons, or when performing some function calls +- Squiz.WhiteSpace.SemicolonSpacing.Incorrect error message now escapes newlines and tabs + - Provides a clearer error message as whitespace is now visible + - Also allows for better output for report types such as CSV and XML +- The error message for PSR12.Files.FileHeader.SpacingAfterBlock has been made clearer + - It now uses the wording from the published PSR-12 standard to indicate that blocks must be separated by a blank line + - Thanks to [Craig Duncan][@duncan3dc] for the patch + +### Fixed +- Fixed bug [#2654][sq-2654] : Incorrect indentation for arguments of multiline function calls +- Fixed bug [#2656][sq-2656] : Squiz.WhiteSpace.MemberVarSpacing removes comments before first member var during auto fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2663][sq-2663] : Generic.NamingConventions.ConstructorName complains about old constructor in interfaces +- Fixed bug [#2664][sq-2664] : PSR12.Files.OpenTag incorrectly identifies PHP file with only an opening tag +- Fixed bug [#2665][sq-2665] : PSR12.Files.ImportStatement should not apply to traits +- Fixed bug [#2673][sq-2673] : PSR12.Traits.UseDeclaration does not allow comments or blank lines between use statements + +[sq-2654]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2654 +[sq-2656]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2656 +[sq-2663]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2663 +[sq-2664]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2664 +[sq-2665]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2665 +[sq-2673]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2673 + +## [3.5.1] - 2019-10-17 + +### Changed +- Very very verbose diff report output has slightly changed to improve readability + - Output is printed when running PHPCS with the --report=diff and -vvv command line arguments + - Fully qualified class names have been replaced with sniff codes + - Tokens being changed now display the line number they are on +- PSR2, PSR12, and PEAR standards now correctly check for blank lines at the start of function calls + - This check has been missing from these standards, but has now been implemented + - When using the PEAR standard, the error code is PEAR.Functions.FunctionCallSignature.FirstArgumentPosition + - When using PSR2 or PSR12, the error code is PSR2.Methods.FunctionCallSignature.FirstArgumentPosition +- PSR12.ControlStructures.BooleanOperatorPlacement no longer complains when multiple expressions appear on the same line + - Previously, boolean operators were enforced to appear at the start or end of lines only + - Boolean operators can now appear in the middle of the line +- PSR12.Files.FileHeader no longer ignores comments preceding a use, namespace, or declare statement +- PSR12.Files.FileHeader now allows a hashbang line at the top of the file + +### Fixed +- Fixed bug [#2506][sq-2506] : PSR2 standard can't auto fix multi-line function call inside a string concat statement +- Fixed bug [#2530][sq-2530] : PEAR.Commenting.FunctionComment does not support intersection types in comments +- Fixed bug [#2615][sq-2615] : Constant visibility false positive on non-class constants +- Fixed bug [#2616][sq-2616] : PSR12.Files.FileHeader false positive when file only contains docblock +- Fixed bug [#2619][sq-2619] : PSR12.Files.FileHeader locks up when inline comment is the last content in a file +- Fixed bug [#2621][sq-2621] : PSR12.Classes.AnonClassDeclaration.CloseBraceSameLine false positive for anon class passed as function argument + - Thanks to [Martins Sipenko][@martinssipenko] for the patch +- Fixed bug [#2623][sq-2623] : PSR12.ControlStructures.ControlStructureSpacing not ignoring indentation inside multi-line string arguments +- Fixed bug [#2624][sq-2624] : PSR12.Traits.UseDeclaration doesnt apply the correct indent during auto fixing +- Fixed bug [#2626][sq-2626] : PSR12.Files.FileHeader detects @var annotations as file docblocks +- Fixed bug [#2628][sq-2628] : PSR12.Traits.UseDeclaration does not allow comments above a USE declaration +- Fixed bug [#2632][sq-2632] : Incorrect indentation of lines starting with "static" inside closures +- Fixed bug [#2641][sq-2641] : PSR12.Functions.NullableTypeDeclaration false positive when using new static() + +[sq-2506]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2506 +[sq-2530]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2530 +[sq-2615]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2615 +[sq-2616]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2616 +[sq-2619]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2619 +[sq-2621]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2621 +[sq-2623]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2623 +[sq-2624]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2624 +[sq-2626]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2626 +[sq-2628]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2628 +[sq-2632]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2632 +[sq-2641]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2641 + +## [3.5.0] - 2019-09-27 + +### Changed +- The included PSR12 standard is now complete and ready to use + - Check your code using PSR-12 by running PHPCS with --standard=PSR12 +- Added support for PHP 7.4 typed properties + - The nullable operator is now tokenized as T_NULLABLE inside property types, as it is elsewhere + - To get the type of a member var, use the File::getMemberProperties() method, which now contains a "type" array index + - This contains the type of the member var, or a blank string if not specified + - If the type is nullable, the return type will contain the leading ? + - If a type is specified, the position of the first token in the type will be set in a "type_token" array index + - If a type is specified, the position of the last token in the type will be set in a "type_end_token" array index + - If the type is nullable, a "nullable_type" array index will also be set to TRUE + - If the type contains namespace information, it will be cleaned of whitespace and comments in the return value +- The PSR1 standard now correctly bans alternate PHP tags + - Previously, it only banned short open tags and not the pre-7.0 alternate tags +- Added support for only checking files that have been locally staged in a git repo + - Use --filter=gitstaged to check these files + - You still need to give PHPCS a list of files or directories in which to apply the filter + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- JSON reports now end with a newline character +- The phpcs.xsd schema now validates phpcs-only and phpcbf-only attributes correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The tokenizer now correctly identifies inline control structures in more cases +- All helper methods inside the File class now throw RuntimeException instead of TokenizerException + - Some tokenizer methods were also throwing RuntimeException but now correctly throw TokenizerException + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The File::getMethodParameters() method now returns more information, and supports closure USE groups + - If a type hint is specified, the position of the last token in the hint will be set in a "type_hint_end_token" array index + - If a default is specified, the position of the first token in the default value will be set in a "default_token" array index + - If a default is specified, the position of the equals sign will be set in a "default_equal_token" array index + - If the param is not the last, the position of the comma will be set in a "comma_token" array index + - If the param is passed by reference, the position of the reference operator will be set in a "reference_token" array index + - If the param is variable length, the position of the variadic operator will be set in a "variadic_token" array index +- The T_LIST token and it's opening and closing parentheses now contain references to each other in the tokens array + - Uses the same parenthesis_opener/closer/owner indexes as other tokens + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The T_ANON_CLASS token and it's opening and closing parentheses now contain references to each other in the tokens array + - Uses the same parenthesis_opener/closer/owner indexes as other tokens + - Only applicable if the anon class is passing arguments to the constructor + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The PHP 7.4 T_BAD_CHARACTER token has been made available for older versions + - Allows you to safely look for this token, but it will not appear unless checking with PHP 7.4+ +- Metrics are now available for Squiz.WhiteSpace.FunctionSpacing + - Use the "info" report to see blank lines before/after functions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Metrics are now available for Squiz.WhiteSpace.MemberVarSpacing + - Use the "info" report to see blank lines before member vars + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added Generic.ControlStructures.DisallowYodaConditions sniff + - Ban the use of Yoda conditions + - Thanks to [Mponos George][@gmponos] for the contribution +- Added Generic.PHP.RequireStrictTypes sniff + - Enforce the use of a strict types declaration in PHP files +- Added Generic.WhiteSpace.SpreadOperatorSpacingAfter sniff + - Checks whitespace between the spread operator and the variable/function call it applies to + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added PSR12.Classes.AnonClassDeclaration sniff + - Enforces the formatting of anonymous classes +- Added PSR12.Classes.ClosingBrace sniff + - Enforces that closing braces of classes/interfaces/traits/functions are not followed by a comment or statement +- Added PSR12.ControlStructures.BooleanOperatorPlacement sniff + - Enforces that boolean operators between conditions are consistently at the start or end of the line +- Added PSR12.ControlStructures.ControlStructureSpacing sniff + - Enforces that spacing and indents are correct inside control structure parenthesis +- Added PSR12.Files.DeclareStatement sniff + - Enforces the formatting of declare statements within a file +- Added PSR12.Files.FileHeader sniff + - Enforces the order and formatting of file header blocks +- Added PSR12.Files.ImportStatement sniff + - Enforces the formatting of import statements within a file +- Added PSR12.Files.OpenTag sniff + - Enforces that the open tag is on a line by itself when used at the start of a PHP-only file +- Added PSR12.Functions.ReturnTypeDeclaration sniff + - Enforces the formatting of return type declarations in functions and closures +- Added PSR12.Properties.ConstantVisibility sniff + - Enforces that constants must have their visibility defined + - Uses a warning instead of an error due to this conditionally requiring the project to support PHP 7.1+ +- Added PSR12.Traits.UseDeclaration sniff + - Enforces the formatting of trait import statements within a class +- Generic.Files.LineLength ignoreComments property now ignores comments at the end of a line + - Previously, this property was incorrectly causing the sniff to ignore any line that ended with a comment + - Now, the trailing comment is not included in the line length, but the rest of the line is still checked +- Generic.Files.LineLength now only ignores unwrappable comments when the comment is on a line by itself + - Previously, a short unwrappable comment at the end of the line would have the sniff ignore the entire line +- Generic.Functions.FunctionCallArgumentSpacing no longer checks spacing around assignment operators inside function calls + - Use the Squiz.WhiteSpace.OperatorSpacing sniff to enforce spacing around assignment operators + - Note that this sniff checks spacing around all assignment operators, not just inside function calls + - The Generic.Functions.FunctionCallArgumentSpacing.NoSpaceBeforeEquals error has been removed + - Use Squiz.WhiteSpace.OperatorSpacing.NoSpaceBefore instead + - The Generic.Functions.FunctionCallArgumentSpacing.NoSpaceAfterEquals error has been removed + - Use Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfter instead + - This also changes the PEAR/PSR2/PSR12 standards so they no longer check assignment operators inside function calls + - They were previously checking these operators when they should not have + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.WhiteSpace.ScopeIndent no longer performs exact indents checking for chained method calls + - Other sniffs can be used to enforce chained method call indent rules + - Thanks to [Pieter Frenssen][@pfrenssen] for the patch +- PEAR.WhiteSpace.ObjectOperatorIndent now supports multi-level chained statements + - When enabled, chained calls must be indented 1 level more or less than the previous line + - Set the new "multilevel" setting to TRUE in a ruleset.xml file to enable this behaviour + - Thanks to [Marcos Passos][@marcospassos] for the patch +- PSR2.ControlStructures.ControlStructureSpacing now allows whitespace after the opening parenthesis if followed by a comment + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- PSR2.Classes.PropertyDeclaration now enforces a single space after a property type keyword + - The PSR2 standard itself excludes this new check as it is not defined in the written standard + - Using the PSR12 standard will enforce this check +- Squiz.Commenting.BlockComment no longer requires blank line before comment if it's the first content after the PHP open tag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Functions.FunctionDeclarationArgumentSpacing now has more accurate error messages + - This includes renaming the SpaceAfterDefault error code to SpaceAfterEquals, which reflects the real error +- Squiz.Functions.FunctionDeclarationArgumentSpacing now checks for no space after a reference operator + - If you don't want this new behaviour, exclude the SpacingAfterReference error message in a ruleset.xml file +- Squiz.Functions.FunctionDeclarationArgumentSpacing now checks for no space after a variadic operator + - If you don't want this new behaviour, exclude the SpacingAfterVariadic error message in a ruleset.xml file +- Squiz.Functions.MultiLineFunctionDeclaration now has improved fixing for the FirstParamSpacing and UseFirstParamSpacing errors +- Squiz.Operators.IncrementDecrementUsage now suggests pre-increment of variables instead of post-increment + - This change does not enforce pre-increment over post-increment; only the suggestion has changed + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.DisallowMultipleAssignments now has a second error code for when assignments are found inside control structure conditions + - The new error code is Squiz.PHP.DisallowMultipleAssignments.FoundInControlStructure + - All other multiple assignment cases use the existing error code Squiz.PHP.DisallowMultipleAssignments.Found + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.FunctionSpacing now applies beforeFirst and afterLast spacing rules to nested functions + - Previously, these rules only applied to the first and last function in a class, interface, or trait + - These rules now apply to functions nested in any statement block, including other functions and conditions +- Squiz.WhiteSpace.OperatorSpacing now has improved handling of parse errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.OperatorSpacing now checks spacing around the instanceof operator + - Thanks to [Jakub Chábek][@grongor] for the patch +- Squiz.WhiteSpace.OperatorSpacing can now enforce a single space before assignment operators + - Previously, the sniff this spacing as multiple assignment operators are sometimes aligned + - Now, you can set the ignoreSpacingBeforeAssignments sniff property to FALSE to enable checking + - Default remains TRUE, so spacing before assignments is not checked by default + - Thanks to [Jakub Chábek][@grongor] for the patch + +### Fixed +- Fixed bug [#2391][sq-2391] : Sniff-specific ignore rules inside rulesets are filtering out too many files + - Thanks to [Juliette Reinders Folmer][@jrfnl] and [Willington Vega][@wvega] for the patch +- Fixed bug [#2478][sq-2478] : FunctionCommentThrowTag.WrongNumber when exception is thrown once but built conditionally +- Fixed bug [#2479][sq-2479] : Generic.WhiteSpace.ScopeIndent error when using array destructing with exact indent checking +- Fixed bug [#2498][sq-2498] : Squiz.Arrays.ArrayDeclaration.MultiLineNotAllowed autofix breaks heredoc +- Fixed bug [#2502][sq-2502] : Generic.WhiteSpace.ScopeIndent false positives with nested switch indentation and case fall-through +- Fixed bug [#2504][sq-2504] : Generic.WhiteSpace.ScopeIndent false positives with nested arrays and nowdoc string +- Fixed bug [#2511][sq-2511] : PSR2 standard not checking if closing paren of single-line function declaration is on new line +- Fixed bug [#2512][sq-2512] : Squiz.PHP.NonExecutableCode does not support alternate SWITCH control structure + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2522][sq-2522] : Text generator throws error when code sample line is too long + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2526][sq-2526] : XML report format has bad syntax on Windows + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2529][sq-2529] : Generic.Formatting.MultipleStatementAlignment wrong error for assign in string concat +- Fixed bug [#2534][sq-2534] : Unresolvable installed_paths can lead to open_basedir errors + - Thanks to [Oliver Nowak][@ndm2] for the patch +- Fixed bug [#2541][sq-2541] : Text doc generator does not allow for multi-line rule explanations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2549][sq-2549] : Searching for a phpcs.xml file can throw warnings due to open_basedir restrictions + - Thanks to [Matthew Peveler][@MasterOdin] for the patch +- Fixed bug [#2558][sq-2558] : PHP 7.4 throwing offset syntax with curly braces is deprecated message + - Thanks to [Matthew Peveler][@MasterOdin] for the patch +- Fixed bug [#2561][sq-2561] : PHP 7.4 compatibility fix / implode argument order + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2562][sq-2562] : Inline WHILE triggers SpaceBeforeSemicolon incorrectly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2565][sq-2565] : Generic.ControlStructures.InlineControlStructure confused by mixed short/long tags + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2566][sq-2566] : Author tag email validation doesn't support all TLDs + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2575][sq-2575] : Custom error messages don't have data replaced when cache is enabled +- Fixed bug [#2601][sq-2601] : Squiz.WhiteSpace.FunctionSpacing incorrect fix when spacing is 0 +- Fixed bug [#2608][sq-2608] : PSR2 throws errors for use statements when multiple namespaces are defined in a file + +[sq-2391]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2391 +[sq-2478]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2478 +[sq-2479]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2479 +[sq-2498]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2498 +[sq-2502]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2502 +[sq-2504]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2504 +[sq-2511]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2511 +[sq-2512]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2512 +[sq-2522]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2522 +[sq-2526]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2526 +[sq-2529]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2529 +[sq-2534]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2534 +[sq-2541]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2541 +[sq-2549]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2549 +[sq-2558]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2558 +[sq-2561]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2561 +[sq-2562]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2562 +[sq-2565]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2565 +[sq-2566]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2566 +[sq-2575]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2575 +[sq-2601]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2601 +[sq-2608]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2608 + +## [3.4.2] - 2019-04-11 + +### Changed +- Squiz.Arrays.ArrayDeclaration now has improved handling of syntax errors + +### Fixed +- Fixed an issue where the PCRE JIT on PHP 7.3 caused PHPCS to die when using the parallel option + - PHPCS now disables the PCRE JIT before running +- Fixed bug [#2368][sq-2368] : MySource.PHP.AjaxNullComparison throws error when first function has no doc comment +- Fixed bug [#2414][sq-2414] : Indention false positive in switch/case/if combination +- Fixed bug [#2423][sq-2423] : Squiz.Formatting.OperatorBracket.MissingBrackets error with static +- Fixed bug [#2450][sq-2450] : Indentation false positive when closure containing nested IF conditions used as function argument +- Fixed bug [#2452][sq-2452] : LowercasePHPFunctions sniff failing on "new \File()" +- Fixed bug [#2453][sq-2453] : Squiz.CSS.SemicolonSpacingSniff false positive when style name proceeded by an asterisk + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2464][sq-2464] : Fixer conflict between Generic.WhiteSpace.ScopeIndent and Squiz.WhiteSpace.ScopeClosingBrace when class indented 1 space +- Fixed bug [#2465][sq-2465] : Excluding a sniff by path is not working +- Fixed bug [#2467][sq-2467] : PHP open/close tags inside CSS files are replaced with internal PHPCS token strings when auto fixing + +[sq-2368]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2368 +[sq-2414]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2414 +[sq-2423]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2423 +[sq-2450]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2450 +[sq-2452]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2452 +[sq-2453]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2453 +[sq-2464]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2464 +[sq-2465]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2465 +[sq-2467]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2467 + +## [3.4.1] - 2019-03-19 + +### Changed +- The PEAR installable version of PHPCS was missing some files, which have been re-included in this release + - The code report was not previously available for PEAR installs + - The Generic.Formatting.SpaceBeforeCast sniff was not previously available for PEAR installs + - The Generic.WhiteSpace.LanguageConstructSpacing sniff was not previously available for PEAR installs + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PHPCS will now refuse to run if any of the required PHP extensions are not loaded + - Previously, PHPCS only relied on requirements being checked by PEAR and Composer + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Ruleset XML parsing errors are now displayed in a readable format so they are easier to correct + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The PSR2 standard no longer throws duplicate errors for spacing around FOR loop parentheses + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- T_PHPCS_SET tokens now contain sniffCode, sniffProperty, and sniffPropertyValue indexes + - Sniffs can use this information instead of having to parse the token content manually +- Added more guard code for syntax errors to various CSS sniffs + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Commenting.DocComment error messages now contain the name of the comment tag that caused the error + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.ControlStructures.InlineControlStructure now handles syntax errors correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Debug.JSHint now longer requires rhino and can be run directly from the npm install + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Files.LineEndings no longer adds superfluous new line at the end of JS and CSS files + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Formatting.DisallowMultipleStatements no longer tries to fix lines containing phpcs:ignore statements + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Functions.FunctionCallArgumentSpacing now has improved performance and anonymous class support + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.WhiteSpace.ScopeIndent now respects changes to the "exact" property using phpcs:set mid-way through a file + - This allows you to change the "exact" rule for only some parts of a file +- Generic.WhiteSpace.ScopeIndent now disables exact indent checking inside all arrays + - Previously, this was only done when using long array syntax, but it now works for short array syntax as well +- PEAR.Classes.ClassDeclaration now has improved handling of PHPCS annotations and tab indents +- PSR12.Classes.ClassInstantiation has changed its error code from MissingParenthesis to MissingParentheses +- PSR12.Keywords.ShortFormTypeKeywords now ignores all spacing inside type casts during both checking and fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Classes.LowercaseClassKeywords now examines the class keyword for anonymous classes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.ControlStructures.ControlSignature now has improved handling of parse errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.PostStatementComment fixer no longer adds a blank line at the start of a JS file that begins with a comment + - Fixes a conflict between this sniff and the Squiz.WhiteSpace.SuperfluousWhitespace sniff + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.PostStatementComment now ignores comments inside control structure conditions, such as FOR loops + - Fixes a conflict between this sniff and the Squiz.ControlStructures.ForLoopDeclaration sniff + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.FunctionCommentThrowTag now has improved support for unknown exception types and namespaces + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.ControlStructures.ForLoopDeclaration has improved whitespace, closure, and empty expression support + - The SpacingAfterSecondNoThird error code has been removed as part of these fixes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.CSS.ClassDefinitionOpeningBraceSpace now handles comments and indentation correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.CSS.ClassDefinitionClosingBrace now handles comments, indentation, and multiple statements on the same line correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.CSS.Opacity now handles comments correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.CSS.SemicolonSpacing now handles comments and syntax errors correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.NamingConventions.ValidVariableName now supports variables inside anonymous classes correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.LowercasePHPFunctions now handles use statements, namespaces, and comments correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.FunctionSpacing now fixes function spacing correctly when a function is the first content in a file + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.SuperfluousWhitespace no longer throws errors for spacing between functions and properties in anon classes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Zend.Files.ClosingTag no longer adds a semicolon during fixing of a file that only contains a comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Zend.NamingConventions.ValidVariableName now supports variables inside anonymous classes correctly + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed bug [#2298][sq-2298] : PSR2.Classes.ClassDeclaration allows extended class on new line + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#2337][sq-2337] : Generic.WhiteSpace.ScopeIndent incorrect error when multi-line function call starts on same line as open tag +- Fixed bug [#2348][sq-2348] : Cache not invalidated when changing a ruleset included by another +- Fixed bug [#2376][sq-2376] : Using __halt_compiler() breaks Generic.PHP.ForbiddenFunctions unless it's last in the function list + - Thanks to [Sijun Zhu][@Billz95] for the patch +- Fixed bug [#2393][sq-2393] : The gitmodified filter will infinitely loop when encountering deleted file paths + - Thanks to [Lucas Manzke][@lmanzke] for the patch +- Fixed bug [#2396][sq-2396] : Generic.WhiteSpace.ScopeIndent incorrect error when multi-line IF condition mixed with HTML +- Fixed bug [#2431][sq-2431] : Use function/const not tokenized as T_STRING when preceded by comment + +[sq-2298]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2298 +[sq-2337]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2337 +[sq-2348]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2348 +[sq-2376]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2376 +[sq-2393]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2393 +[sq-2396]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2396 +[sq-2431]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2431 + +## [3.4.0] - 2018-12-20 + +### Deprecated +- The Generic.Formatting.NoSpaceAfterCast sniff has been deprecated and will be removed in version 4 + - The functionality of this sniff is now available in the Generic.Formatting.SpaceAfterCast sniff + - Include the Generic.Formatting.SpaceAfterCast sniff and set the "spacing" property to "0" + - As soon as possible, replace all instances of the old sniff code with the new sniff code and property setting + - The existing sniff will continue to work until version 4 has been released + +### Changed +- Rule include patterns in a ruleset.xml file are now evaluated as OR instead of AND + - Previously, a file had to match every include pattern and no exclude patterns to be included + - Now, a file must match at least one include pattern and no exclude patterns to be included + - This is a bug fix as include patterns are already documented to work this way +- New token T_BITWISE_NOT added for the bitwise not operator + - This token was previously tokenized as T_NONE + - Any sniffs specifically looking for T_NONE tokens with a tilde as the contents must now also look for T_BITWISE_NOT + - Sniffs can continue looking for T_NONE as well as T_BITWISE_NOT to support older PHP_CodeSniffer versions +- All types of binary casting are now tokenized as T_BINARY_CAST + - Previously, the 'b' in 'b"some string with $var"' would be a T_BINARY_CAST, but only when the string contained a var + - This change ensures the 'b' is always tokenized as T_BINARY_CAST + - This change also converts '(binary)' from T_STRING_CAST to T_BINARY_CAST + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the help with this patch +- Array properties set inside a ruleset.xml file can now extend a previous value instead of always overwriting it + - e.g., if you include a ruleset that defines forbidden functions, can you now add to that list instead of having to redefine it + - To use this feature, add extends="true" to the property tag + - e.g., property name="forbiddenFunctionNames" type="array" extend="true" + - Thanks to [Michael Moravec][@Majkl578] for the patch +- If $XDG_CACHE_HOME is set and points to a valid directory, it will be used for caching instead of the system temp directory +- PHPCBF now disables parallel running if you are passing content on STDIN + - Stops an error from being shown after the fixed output is printed +- The progress report now shows files with tokenizer errors as skipped (S) instead of a warning (W) + - The tokenizer error is still displayed in reports as normal + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The Squiz standard now ensures there is no space between an increment/decrement operator and its variable +- The File::getMethodProperties() method now includes a has_body array index in the return value + - FALSE if the method has no body (as with abstract and interface methods) or TRUE otherwise + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- The File::getTokensAsString() method now throws an exception if the $start param is invalid + - If the $length param is invalid, an empty string will be returned + - Stops an infinite loop when the function is passed invalid data + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added new Generic.CodeAnalysis.EmptyPHPStatement sniff + - Warns when it finds empty PHP open/close tag combinations or superfluous semicolons + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added new Generic.Formatting.SpaceBeforeCast sniff + - Ensures there is exactly 1 space before a type cast, unless the cast statement is indented or multi-line + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added new Generic.VersionControl.GitMergeConflict sniff + - Detects merge conflict artifacts left in files + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added Generic.WhiteSpace.IncrementDecrementSpacing sniff + - Ensures there is no space between the operator and the variable it applies to + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added PSR12.Functions.NullableTypeDeclaration sniff + - Ensures there is no space after the question mark in a nullable type declaration + - Thanks to [Timo Schinkel][@timoschinkel] for the contribution +- A number of sniffs have improved support for methods in anonymous classes + - These sniffs would often throw the same error twice for functions in nested classes + - Error messages have also been changed to be less confusing + - The full list of affected sniffs is: + - Generic.NamingConventions.CamelCapsFunctionName + - PEAR.NamingConventions.ValidFunctionName + - PSR1.Methods.CamelCapsMethodName + - PSR2.Methods.MethodDeclaration + - Squiz.Scope.MethodScope + - Squiz.Scope.StaticThisUsage + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.CodeAnalysis.UnusedFunctionParameter now only skips functions with empty bodies when the class implements an interface + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.CodeAnalysis.UnusedFunctionParameter now has additional error codes to indicate where unused params were found + - The new error code prefixes are: + - FoundInExtendedClass: when the class extends another + - FoundInImplementedInterface: when the class implements an interface + - Found: used in all other cases, including closures + - The new error code suffixes are: + - BeforeLastUsed: the unused param was positioned before the last used param in the function signature + - AfterLastUsed: the unused param was positioned after the last used param in the function signature + - This makes the new error code list for this sniff: + - Found + - FoundBeforeLastUsed + - FoundAfterLastUsed + - FoundInExtendedClass + - FoundInExtendedClassBeforeLastUsed + - FoundInExtendedClassAfterLastUsed + - FoundInImplementedInterface + - FoundInImplementedInterfaceBeforeLastUsed + - FoundInImplementedInterfaceAfterLastUsed + - These errors code make it easier for specific cases to be ignored or promoted using a ruleset.xml file + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Generic.Classes.DuplicateClassName now inspects traits for duplicate names as well as classes and interfaces + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Generic.Files.InlineHTML now ignores a BOM at the start of the file + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Generic.PHP.CharacterBeforePHPOpeningTag now ignores a BOM at the start of the file + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Generic.Formatting.SpaceAfterCast now has a setting to specify how many spaces are required after a type cast + - Default remains 1 + - Override the "spacing" setting in a ruleset.xml file to change + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Formatting.SpaceAfterCast now has a setting to ignore newline characters after a type cast + - Default remains FALSE, so newlines are not allowed + - Override the "ignoreNewlines" setting in a ruleset.xml file to change + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Formatting.SpaceAfterNot now has a setting to specify how many spaces are required after a NOT operator + - Default remains 1 + - Override the "spacing" setting in a ruleset.xml file to change + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Formatting.SpaceAfterNot now has a setting to ignore newline characters after the NOT operator + - Default remains FALSE, so newlines are not allowed + - Override the "ignoreNewlines" setting in a ruleset.xml file to change + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.Functions.FunctionDeclaration now checks spacing before the opening parenthesis of functions with no body + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- PEAR.Functions.FunctionDeclaration now enforces no space before the semicolon in functions with no body + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- PSR2.Classes.PropertyDeclaration now checks the order of property modifier keywords + - This is a rule that is documented in PSR-2 but was not enforced by the included PSR2 standard until now + - This sniff is also able to fix the order of the modifier keywords if they are incorrect + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PSR2.Methods.MethodDeclaration now checks method declarations inside traits + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Squiz.Commenting.InlineComment now has better detection of comment block boundaries +- Squiz.Classes.ClassFileName now checks that a trait name matches the filename + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Squiz.Classes.SelfMemberReference now supports scoped declarations and anonymous classes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Classes.SelfMemberReference now fixes multiple errors at once, increasing fixer performance + - Thanks to [Gabriel Ostrolucký][@ostrolucky] for the patch +- Squiz.Functions.LowercaseFunctionKeywords now checks abstract and final prefixes, and auto-fixes errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Objects.ObjectMemberComma.Missing has been renamed to Squiz.Objects.ObjectMemberComma.Found + - The error is thrown when the comma is found but not required, so the error code was incorrect + - If you are referencing the old error code in a ruleset XML file, please use the new code instead + - If you wish to maintain backwards compatibility, you can provide rules for both the old and new codes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.ObjectOperatorSpacing is now more tolerant of parse errors +- Squiz.WhiteSpace.ObjectOperatorSpacing now fixes errors more efficiently + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed bug [#2109][sq-2109] : Generic.Functions.CallTimePassByReference false positive for bitwise and used in function argument +- Fixed bug [#2165][sq-2165] : Conflict between Squiz.Arrays.ArrayDeclaration and ScopeIndent sniffs when heredoc used in array +- Fixed bug [#2167][sq-2167] : Generic.WhiteSpace.ScopeIndent shows invalid error when scope opener indented inside inline HTML +- Fixed bug [#2178][sq-2178] : Generic.NamingConventions.ConstructorName matches methods in anon classes with same name as containing class + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2190][sq-2190] : PEAR.Functions.FunctionCallSignature incorrect error when encountering trailing PHPCS annotation + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2194][sq-2194] : Generic.Whitespace.LanguageConstructSpacing should not be checking namespace operators + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2202][sq-2202] : Squiz.WhiteSpace.OperatorSpacing throws error for negative index when using curly braces for string access + - Same issue fixed in Squiz.Formatting.OperatorBracket + - Thanks to [Andreas Buchenrieder][@anbuc] for the patch +- Fixed bug [#2210][sq-2210] : Generic.NamingConventions.CamelCapsFunctionName not ignoring SoapClient __getCookies() method + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2211][sq-2211] : PSR2.Methods.MethodDeclaration gets confused over comments between modifier keywords + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2212][sq-2212] : FUNCTION and CONST in use groups being tokenized as T_FUNCTION and T_CONST + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Fixed bug [#2214][sq-2214] : File::getMemberProperties() is recognizing method params as properties + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2236][sq-2236] : Memory info measurement unit is Mb but probably should be MB +- Fixed bug [#2246][sq-2246] : CSS tokenizer does not tokenize class names correctly when they contain the string NEW + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2278][sq-2278] : Squiz.Operators.ComparisonOperatorUsage false positive when inline IF contained in parentheses + - Thanks to [Arnout Boks][@aboks] for the patch +- Fixed bug [#2284][sq-2284] : Squiz.Functions.FunctionDeclarationArgumentSpacing removing type hint during fixing + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#2297][sq-2297] : Anonymous class not tokenized correctly when used as argument to another anon class + - Thanks to [Michał Bundyra][@michalbundyra] for the patch + +[sq-2109]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2109 +[sq-2165]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2165 +[sq-2167]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2167 +[sq-2178]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2178 +[sq-2190]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2190 +[sq-2194]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2194 +[sq-2202]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2202 +[sq-2210]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2210 +[sq-2211]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2211 +[sq-2212]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2212 +[sq-2214]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2214 +[sq-2236]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2236 +[sq-2246]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2246 +[sq-2278]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2278 +[sq-2284]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2284 +[sq-2297]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2297 + +## [2.9.2] - 2018-11-08 + +### Changed +- PHPCS should now run under PHP 7.3 without deprecation warnings + - Thanks to [Nick Wilde][@NickDickinsonWilde] for the patch + +### Fixed +- Fixed bug [#1496][sq-1496] : Squiz.Strings.DoubleQuoteUsage not unescaping dollar sign when fixing + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#1549][sq-1549] : Squiz.PHP.EmbeddedPhp fixer conflict with // comment before PHP close tag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1890][sq-1890] : Incorrect Squiz.WhiteSpace.ControlStructureSpacing.NoLineAfterClose error between catch and finally statements + +## [3.3.2] - 2018-09-24 + +### Changed +- Fixed a problem where the report cache was not being cleared when the sniffs inside a standard were updated +- The info report (--report=info) now has improved formatting for metrics that span multiple lines + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The unit test runner now skips .bak files when looking for test cases + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The Squiz standard now ensures underscores are not used to indicate visibility of private members vars and methods + - Previously, this standard enforced the use of underscores +- Generic.PHP.NoSilencedErrors error messages now contain a code snippet to show the context of the error + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Arrays.ArrayDeclaration no longer reports errors for a comma on a line new after a here/nowdoc + - Also stops a parse error being generated when auto-fixing + - The SpaceBeforeComma error message has been changed to only have one data value instead of two +- Squiz.Commenting.FunctionComment no longer errors when trying to fix indents of multi-line param comments +- Squiz.Formatting.OperatorBracket now correctly fixes statements that contain strings +- Squiz.PHP.CommentedOutCode now ignores more @-style annotations and includes better comment block detection + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed a problem where referencing a relative file path in a ruleset XML file could add unnecessary sniff exclusions + - This didn't actually exclude anything, but caused verbose output to list strange exclusion rules +- Fixed bug [#2110][sq-2110] : Squiz.WhiteSpace.FunctionSpacing is removing indents from the start of functions when fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2115][sq-2115] : Squiz.Commenting.VariableComment not checking var types when the @var line contains a comment +- Fixed bug [#2120][sq-2120] : Tokenizer fails to match T_INLINE_ELSE when used after function call containing closure +- Fixed bug [#2121][sq-2121] : Squiz.PHP.DisallowMultipleAssignments false positive in while loop conditions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2127][sq-2127] : File::findExtendedClassName() doesn't support nested classes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2138][sq-2138] : Tokenizer detects wrong token for PHP ::class feature with spaces +- Fixed bug [#2143][sq-2143] : PSR2.Namespaces.UseDeclaration does not properly fix "use function" and "use const" statements + - Thanks to [Chris Wilkinson][@thewilkybarkid] for the patch +- Fixed bug [#2144][sq-2144] : Squiz.Arrays.ArrayDeclaration does incorrect align calculation in array with cyrillic keys +- Fixed bug [#2146][sq-2146] : Zend.Files.ClosingTag removes closing tag from end of file without inserting a semicolon +- Fixed bug [#2151][sq-2151] : XML schema not updated with the new array property syntax + +[sq-2110]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2110 +[sq-2115]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2115 +[sq-2120]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2120 +[sq-2121]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2121 +[sq-2127]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2127 +[sq-2138]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2138 +[sq-2143]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2143 +[sq-2144]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2144 +[sq-2146]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2146 +[sq-2151]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2151 + +## [3.3.1] - 2018-07-27 + +### Removed +- Support for HHVM has been dropped due to recent unfixed bugs and HHVM refocus on Hack only + - Thanks to [Walt Sorensen][@photodude] and [Juliette Reinders Folmer][@jrfnl] for helping to remove all HHVM exceptions from the core + +### Changed +- The full report (the default report) now has improved word wrapping for multi-line messages and sniff codes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The summary report now sorts files based on their directory location instead of just a basic string sort + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The source report now orders error codes by name when they have the same number of errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The junit report no longer generates validation errors with the Jenkins xUnit plugin + - Thanks to [Nikolay Geo][@nicholascus] for the patch +- Generic.Commenting.DocComment no longer generates the SpacingBeforeTags error if tags are the first content in the docblock + - The sniff will still generate a MissingShort error if there is no short comment + - This allows the MissingShort error to be suppressed in a ruleset to make short descriptions optional +- Generic.Functions.FunctionCallArgumentSpacing now properly fixes multi-line function calls with leading commas + - Previously, newlines between function arguments would be removed + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.Syntax will now use PHP_BINARY instead of trying to discover the executable path + - This ensures that the sniff will always syntax check files using the PHP version that PHPCS is running under + - Setting the `php_path` config var will still override this value as normal + - Thanks to [Willem Stuursma-Ruwen][@willemstuursma] for the patch +- PSR2.Namespaces.UseDeclaration now supports commas at the end of group use declarations + - Also improves checking and fixing for use statements containing parse errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Arrays.ArrayDeclaration no longer removes the array opening brace while fixing + - This could occur when the opening brace was on a new line and the first array key directly followed + - This change also stops the KeyNotAligned error message being incorrectly reported in these cases +- Squiz.Arrays.ArrayDeclaration no longer tries to change multi-line arrays to single line when they contain comments + - Fixes a conflict between this sniff and some indentation sniffs +- Squiz.Classes.ClassDeclaration no longer enforces spacing rules when a class is followed by a function + - Fixes a conflict between this sniff and the Squiz.WhiteSpace.FunctionSpacing sniff +- The Squiz.Classes.ValidClassName.NotCamelCaps message now references PascalCase instead of CamelCase + - The "CamelCase class name" metric produced by the sniff has been changed to "PascalCase class name" + - This reflects the fact that the class name check is actually a Pascal Case check and not really Camel Case + - Thanks to [Tom H Anderson][@TomHAnderson] for the patch +- Squiz.Commenting.InlineComment no longer enforces spacing rules when an inline comment is followed by a docblock + - Fixes a conflict between this sniff and the Squiz.WhiteSpace.FunctionSpacing sniff +- Squiz.WhiteSpace.OperatorSpacing no longer tries to fix operator spacing if the next content is a comment on a new line + - Fixes a conflict between this sniff and the Squiz.Commenting.PostStatementComment sniff + - Also stops PHPCS annotations from being moved to a different line, potentially changing their meaning + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.FunctionSpacing no longer checks spacing of functions at the top of an embedded PHP block + - Fixes a conflict between this sniff and the Squiz.PHP.EmbeddedPHP sniff + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.MemberVarSpacing no longer checks spacing before member vars that come directly after methods + - Fixes a conflict between this sniff and the Squiz.WhiteSpace.FunctionSpacing sniff +- Squiz.WhiteSpace.SuperfluousWhitespace now recognizes unicode whitespace at the start and end of a file + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed bug [#2029][sq-2029] : Squiz.Scope.MemberVarScope throws fatal error when a property is found in an interface + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2047][sq-2047] : PSR12.Classes.ClassInstantiation false positive when instantiating class from array index +- Fixed bug [#2048][sq-2048] : GenericFormatting.MultipleStatementAlignment false positive when assigning values inside an array +- Fixed bug [#2053][sq-2053] : PSR12.Classes.ClassInstantiation incorrectly fix when using member vars and some variable formats +- Fixed bug [#2065][sq-2065] : Generic.ControlStructures.InlineControlStructure fixing fails when inline control structure contains closure +- Fixed bug [#2072][sq-2072] : Squiz.Arrays.ArrayDeclaration throws NoComma error when array value is a shorthand IF statement +- Fixed bug [#2082][sq-2082] : File with "defined() or define()" syntax triggers PSR1.Files.SideEffects.FoundWithSymbols +- Fixed bug [#2095][sq-2095] : PSR2.Namespaces.NamespaceDeclaration does not handle namespaces defined over multiple lines + +[sq-2029]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2029 +[sq-2047]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2047 +[sq-2048]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2048 +[sq-2053]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2053 +[sq-2065]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2065 +[sq-2072]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2072 +[sq-2082]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2082 +[sq-2095]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2095 + +## [3.3.0] - 2018-06-07 + +### Deprecated +- The Squiz.WhiteSpace.LanguageConstructSpacing sniff has been deprecated and will be removed in version 4 + - The sniff has been moved to the Generic standard, with a new code of Generic.WhiteSpace.LanguageConstructSpacing + - As soon as possible, replace all instances of the old sniff code with the new sniff code in your ruleset.xml files + - The existing Squiz sniff will continue to work until version 4 has been released + - The new Generic sniff now also checks many more language constructs to enforce additional spacing rules + - Thanks to [Mponos George][@gmponos] for the contribution +- The current method for setting array properties in ruleset files has been deprecated and will be removed in version 4 + - Currently, setting an array value uses the string syntax "print=>echo,create_function=>null" + - Now, individual array elements are specified using a new "element" tag with "key" and "value" attributes + - For example, element key="print" value="echo" + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- The T_ARRAY_HINT token has been deprecated and will be removed in version 4 + - The token was used to ensure array type hints were not tokenized as T_ARRAY, but no other type hints were given a special token + - Array type hints now use the standard T_STRING token instead + - Sniffs referencing this token type will continue to run without error until version 4, but will not find any T_ARRAY_HINT tokens +- The T_RETURN_TYPE token has been deprecated and will be removed in version 4 + - The token was used to ensure array/self/parent/callable return types were tokenized consistently + - For namespaced return types, only the last part of the string (the class name) was tokenized as T_RETURN_TYPE + - This was not consistent and so return types are now left using their original token types so they are not skipped by sniffs + - The exception are array return types, which are tokenized as T_STRING instead of T_ARRAY, as they are for type hints + - Sniffs referencing this token type will continue to run without error until version 4, but will not find any T_RETUTN_TYPE tokens + - To get the return type of a function, use the File::getMethodProperties() method, which now contains a "return_type" array index + - This contains the return type of the function or closer, or a blank string if not specified + - If the return type is nullable, the return type will contain the leading ? + - A nullable_return_type array index in the return value will also be set to true + - If the return type contains namespace information, it will be cleaned of whitespace and comments + - To access the original return value string, use the main tokens array + +### Added +- This release contains an incomplete version of the PSR-12 coding standard + - Errors found using this standard should be valid, but it will miss a lot of violations until it is complete + - If you'd like to test and help, you can use the standard by running PHPCS with --standard=PSR12 + +### Changed +- Config values set using --runtime-set now override any config values set in rulesets or the CodeSniffer.conf file +- You can now apply include-pattern rules to individual message codes in a ruleset like you can with exclude-pattern rules + - Previously, include-pattern rules only applied to entire sniffs + - If a message code has both include and exclude patterns, the exclude patterns will be ignored +- Using PHPCS annotations to selectively re-enable sniffs is now more flexible + - Previously, you could only re-enable a sniff/category/standard using the exact same code that was disabled + - Now, you can disable a standard and only re-enable a specific category or sniff + - Or, you can disable a specific sniff and have it re-enable when you re-enable the category or standard +- The value of array sniff properties can now be set using phpcs:set annotations + - e.g., phpcs:set Standard.Category.SniffName property[] key=>value,key2=>value2 + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- PHPCS annotations now remain as T_PHPCS_* tokens instead of reverting to comment tokens when --ignore-annotations is used + - This stops sniffs (especially commenting sniffs) from generating a large number of false errors when ignoring + - Any custom sniffs that are using the T_PHPCS_* tokens to detect annotations may need to be changed to ignore them + - Check $phpcsFile->config->annotations to see if annotations are enabled and ignore when false +- You can now use fully or partially qualified class names for custom reports instead of absolute file paths + - To support this, you must specify an autoload file in your ruleset.xml file and use it to register an autoloader + - Your autoloader will need to load your custom report class when requested + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The JSON report format now does escaping in error source codes as well as error messages + - Thanks to [Martin Vasel][@marvasDE] for the patch +- Invalid installed_paths values are now ignored instead of causing a fatal error +- Improved testability of custom rulesets by allowing the installed standards to be overridden + - Thanks to [Timo Schinkel][@timoschinkel] for the patch +- The key used for caching PHPCS runs now includes all set config values + - This fixes a problem where changing config values (e.g., via --runtime-set) used an incorrect cache file +- The "Function opening brace placement" metric has been separated into function and closure metrics in the info report + - Closures are no longer included in the "Function opening brace placement" metric + - A new "Closure opening brace placement" metric now shows information for closures +- Multi-line T_YIELD_FROM statements are now replicated properly for older PHP versions +- The PSR2 standard no longer produces 2 error messages when the AS keyword in a foreach loop is not lowercase +- Specifying a path to a non-existent dir when using the `--report-[reportType]=/path/to/report` CLI option no longer throws an exception + - This now prints a readable error message, as it does when using `--report-file` +- The File::getMethodParamaters() method now includes a type_hint_token array index in the return value + - Provides the position in the token stack of the first token in the type hint +- The File::getMethodProperties() method now includes a return_type_token array index in the return value + - Provides the position in the token stack of the first token in the return type +- The File::getTokensAsString() method can now optionally return original (non tab-replaced) content + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Removed Squiz.PHP.DisallowObEndFlush from the Squiz standard + - If you use this sniff and want to continue banning ob_end_flush(), use Generic.PHP.ForbiddenFunctions instead + - You will need to set the forbiddenFunctions property in your ruleset.xml file +- Removed Squiz.PHP.ForbiddenFunctions from the Squiz standard + - Replaced by using the forbiddenFunctions property of Generic.PHP.ForbiddenFunctions in the Squiz ruleset.xml + - Functionality of the Squiz standard remains the same, but the error codes are now different + - Previously, Squiz.PHP.ForbiddenFunctions.Found and Squiz.PHP.ForbiddenFunctions.FoundWithAlternative + - Now, Generic.PHP.ForbiddenFunctions.Found and Generic.PHP.ForbiddenFunctions.FoundWithAlternative +- Added new Generic.PHP.LowerCaseType sniff + - Ensures PHP types used for type hints, return types, and type casting are lowercase + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added new Generic.WhiteSpace.ArbitraryParenthesesSpacing sniff + - Generates an error for whitespace inside parenthesis that don't belong to a function call/declaration or control structure + - Generates a warning for any empty parenthesis found + - Allows the required spacing to be set using the spacing sniff property (default is 0) + - Allows newlines to be used by setting the ignoreNewlines sniff property (default is false) + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added new PSR12.Classes.ClassInstantiation sniff + - Ensures parenthesis are used when instantiating a new class +- Added new PSR12.Keywords.ShortFormTypeKeywords sniff + - Ensures the short form of PHP types is used when type casting +- Added new PSR12.Namespaces.CompundNamespaceDepth sniff + - Ensures compound namespace use statements have a max depth of 2 levels + - The max depth can be changed by setting the 'maxDepth' sniff property in a ruleset.xml file +- Added new PSR12.Operators.OperatorSpacing sniff + - Ensures operators are preceded and followed by at least 1 space +- Improved core support for grouped property declarations + - Also improves support in Squiz.WhiteSpace.ScopeKeywordSpacing and Squiz.WhiteSpace.MemberVarSpacing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Commenting.DocComment now produces a NonParamGroup error when tags are mixed in with the @param tag group + - It would previously throw either a NonParamGroup or ParamGroup error depending on the order of tags + - This change allows the NonParamGroup error to be suppressed in a ruleset to allow the @param group to contain other tags + - Thanks to [Phil Davis][@phil-davis] for the patch +- Generic.Commenting.DocComment now continues checks param tags even if the doc comment short description is missing + - This change allows the MissingShort error to be suppressed in a ruleset without all other errors being suppressed as well + - Thanks to [Phil Davis][@phil-davis] for the patch +- Generic.CodeAnalysis.AssignmentInCondition now reports a different error code for assignments found in WHILE conditions + - The return value of a function call is often assigned in a WHILE condition, so this change makes it easier to exclude these cases + - The new code for this error message is Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition + - The error code for all other cases remains as Generic.CodeAnalysis.AssignmentInCondition.Found + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Functions.OpeningFunctionBraceBsdAllman now longer leaves trailing whitespace when moving the opening brace during fixing + - Also applies to fixes made by PEAR.Functions.FunctionDeclaration and Squiz.Functions.MultiLineFunctionDeclaration +- Generic.WhiteSpace.ScopeIndent now does a better job of fixing the indent of multi-line comments +- Generic.WhiteSpace.ScopeIndent now does a better job of fixing the indent of PHP open and close tags +- PEAR.Commenting.FunctionComment now report a different error code for param comment lines with too much padding + - Previously, any lines of a param comment that don't start at the exact comment position got the same error code + - Now, only comment lines with too little padding use ParamCommentAlignment as they are clearly mistakes + - Comment lines with too much padding may be using precision alignment as now use ParamCommentAlignmentExceeded + - This allows for excessive padding to be excluded from a ruleset while continuing to enforce a minimum padding +- PEAR.WhiteSpace.ObjectOperatorIndent now checks the indent of more chained operators + - Previously, it only checked chains beginning with a variable + - Now, it checks chains beginning with function calls, static class names, etc +- Squiz.Arrays.ArrayDeclaration now continues checking array formatting even if the key indent is not correct + - Allows for using different array indent rules while still checking/fixing double arrow and value alignment +- Squiz.Commenting.BlockComment has improved support for tab-indented comments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.BlockComment auto fixing no longer breaks when two block comments follow each other + - Also stopped single-line block comments from being auto fixed when they are embedded in other code + - Also fixed as issue found when PHPCS annotations were used inside a block comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.BlockComment.LastLineIndent is now able to be fixed with phpcbf + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.BlockComment now aligns star-prefixed lines under the opening tag while fixing, instead of indenting them + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.FunctionComment.IncorrectTypeHint message no longer contains cut-off suggested type hints +- Squiz.Commenting.InlineComment now uses a new error code for inline comments at the end of a function + - Previously, all inline comments followed by a blank line threw a Squiz.Commenting.InlineComment.SpacingAfter error + - Now, inline comments at the end of a function will instead throw Squiz.Commenting.InlineComment.SpacingAfterAtFunctionEnd + - If you previously excluded SpacingAfter, add an exclusion for SpacingAfterAtFunctionEnd to your ruleset as well + - If you previously only included SpacingAfter, consider including SpacingAfterAtFunctionEnd as well + - The Squiz standard now excludes SpacingAfterAtFunctionEnd as the blank line is checked elsewhere + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.ControlStructures.ControlSignature now errors when a comment follows the closing brace of an earlier body + - Applies to catch, finally, else, elseif, and do/while structures + - The included PSR2 standard now enforces this rule + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Formatting.OperatorBracket.MissingBrackets message has been changed to remove the word "arithmetic" + - The sniff checks more than just arithmetic operators, so the message is now clearer +- Sniffs.Operators.ComparisonOperatorUsage now detects more cases of implicit true comparisons + - It could previously be confused by comparisons used as function arguments +- Squiz.PHP.CommentedOutCode now ignores simple @-style annotation comments so they are not flagged as commented out code + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.CommentedOutCode now ignores a greater number of short comments so they are not flagged as commented out code + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.DisallowComparisonAssignment no longer errors when using the null coalescing operator + - Given this operator is used almost exclusively to assign values, it didn't make sense to generate an error +- Squiz.WhiteSpacing.FunctionSpacing now has a property to specify how many blank lines should be before the first class method + - Only applies when a method is the first code block in a class (i.e., there are no member vars before it) + - Override the 'spacingBeforeFirst' property in a ruleset.xml file to change + - If not set, the sniff will use whatever value is set for the existing 'spacing' property +- Squiz.WhiteSpacing.FunctionSpacing now has a property to specify how many blank lines should be after the last class method + - Only applies when a method is the last code block in a class (i.e., there are no member vars after it) + - Override the 'spacingAfterLast' property in a ruleset.xml file to change + - If not set, the sniff will use whatever value is set for the existing 'spacing' property + +### Fixed +- Fixed bug [#1863][sq-1863] : File::findEndOfStatement() not working when passed a scope opener +- Fixed bug [#1876][sq-1876] : PSR2.Namespaces.UseDeclaration not giving error for use statements before the namespace declaration + - Adds a new PSR2.Namespaces.UseDeclaration.UseBeforeNamespace error message +- Fixed bug [#1881][sq-1881] : Generic.Arrays.ArrayIndent is indenting sub-arrays incorrectly when comma not used after the last value +- Fixed bug [#1882][sq-1882] : Conditional with missing braces confused by indirect variables +- Fixed bug [#1915][sq-1915] : JS tokenizer fails to tokenize regular expression proceeded by boolean not operator +- Fixed bug [#1920][sq-1920] : Directory exclude pattern improperly excludes files with names that start the same + - Thanks to [Jeff Puckett][@jpuck] for the patch +- Fixed bug [#1922][sq-1922] : Equal sign alignment check broken when list syntax used before assignment operator +- Fixed bug [#1925][sq-1925] : Generic.Formatting.MultipleStatementAlignment skipping assignments within closures +- Fixed bug [#1931][sq-1931] : Generic opening brace placement sniffs do not correctly support function return types +- Fixed bug [#1932][sq-1932] : Generic.ControlStructures.InlineControlStructure fixer moves new PHPCS annotations +- Fixed bug [#1938][sq-1938] : Generic opening brace placement sniffs incorrectly move PHPCS annotations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1939][sq-1939] : phpcs:set annotations do not cause the line they are on to be ignored + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1949][sq-1949] : Squiz.PHP.DisallowMultipleAssignments false positive when using namespaces with static assignments +- Fixed bug [#1959][sq-1959] : SquizMultiLineFunctionDeclaration error when param has trailing comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1963][sq-1963] : Squiz.Scope.MemberVarScope does not work for multiline member declaration + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1971][sq-1971] : Short array list syntax not correctly tokenized if short array is the first content in a file +- Fixed bug [#1979][sq-1979] : Tokenizer does not change heredoc to nowdoc token if the start tag contains spaces +- Fixed bug [#1982][sq-1982] : Squiz.Arrays.ArrayDeclaration fixer sometimes puts a comma in front of the last array value +- Fixed bug [#1993][sq-1993] : PSR1/PSR2 not reporting or fixing short open tags +- Fixed bug [#1996][sq-1996] : Custom report paths don't work on case-sensitive filesystems +- Fixed bug [#2006][sq-2006] : Squiz.Functions.FunctionDeclarationArgumentSpacing fixer removes comment between parens when no args + - The SpacingAfterOpenHint error message has been removed + - It is replaced by the existing SpacingAfterOpen message + - The error message format for the SpacingAfterOpen and SpacingBeforeClose messages has been changed + - These used to contain 3 pieces of data, but now only contain 2 + - If you have customised the error messages of this sniff, please review your ruleset after upgrading +- Fixed bug [#2018][sq-2018] : Generic.Formatting.MultipleStatementAlignment does see PHP close tag as end of statement block + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#2027][sq-2027] : PEAR.NamingConventions.ValidFunctionName error when function name includes double underscore + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-1863]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1863 +[sq-1876]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1876 +[sq-1881]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1881 +[sq-1882]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1882 +[sq-1915]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1915 +[sq-1920]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1920 +[sq-1922]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1922 +[sq-1925]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1925 +[sq-1931]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1931 +[sq-1932]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1932 +[sq-1938]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1938 +[sq-1939]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1939 +[sq-1949]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1949 +[sq-1959]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1959 +[sq-1963]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1963 +[sq-1971]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1971 +[sq-1979]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1979 +[sq-1982]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1982 +[sq-1993]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1993 +[sq-1996]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1996 +[sq-2006]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2006 +[sq-2018]: https://github.com/squizlabs/PHP_CodeSniffer/pull/2018 +[sq-2027]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2027 + +## [3.2.3] - 2018-02-21 + +### Changed +- The new phpcs: comment syntax can now be prefixed with an at symbol ( @phpcs: ) + - This restores the behaviour of the previous syntax where these comments are ignored by doc generators +- The current PHP version ID is now used to generate cache files + - This ensures that only cache files generated by the current PHP version are selected + - This change fixes caching issues when using sniffs that produce errors based on the current PHP version +- A new Tokens::$phpcsCommentTokens array is now available for sniff developers to detect phpcs: comment syntax + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The PEAR.Commenting.FunctionComment.Missing error message now includes the name of the function + - Thanks to [Yorman Arias][@cixtor] for the patch +- The PEAR.Commenting.ClassComment.Missing and Squiz.Commenting.ClassComment.Missing error messages now include the name of the class + - Thanks to [Yorman Arias][@cixtor] for the patch +- PEAR.Functions.FunctionCallSignature now only forces alignment at a specific tab stop while fixing + - It was enforcing this during checking, but this meant invalid errors if the OpeningIndent message was being muted + - This fixes incorrect errors when using the PSR2 standard with some code blocks +- Generic.Files.LineLength now ignores lines that only contain phpcs: annotation comments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Formatting.MultipleStatementAlignment now skips over arrays containing comments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.Syntax now forces display_errors to ON when linting + - Thanks to [Raúl Arellano][@raul338] for the patch +- PSR2.Namespaces.UseDeclaration has improved syntax error handling and closure detection + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.CommentedOutCode now has improved comment block detection for improved accuracy + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.NonExecutableCode could fatal error while fixing file with syntax error +- Squiz.PHP.NonExecutableCode now detects unreachable code after a goto statement + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.LanguageConstructSpacing has improved syntax error handling while fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Improved phpcs: annotation syntax handling for a number of sniffs + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Improved auto-fixing of files with incomplete comment blocks for various commenting sniffs + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed test suite compatibility with PHPUnit 7 +- Fixed bug [#1793][sq-1793] : PSR2 forcing exact indent for function call opening statements +- Fixed bug [#1803][sq-1803] : Squiz.WhiteSpace.ScopeKeywordSpacing removes member var name while fixing if no space after scope keyword +- Fixed bug [#1817][sq-1817] : Blank line not enforced after control structure if comment on same line as closing brace +- Fixed bug [#1827][sq-1827] : A phpcs:enable comment is not tokenized correctly if it is outside a phpcs:disable block + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1828][sq-1828] : Squiz.WhiteSpace.SuperfluousWhiteSpace ignoreBlankLines property ignores whitespace after single line comments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1840][sq-1840] : When a comment has too many asterisks, phpcbf gives FAILED TO FIX error +- Fixed bug [#1867][sq-1867] : Can't use phpcs:ignore where the next line is HTML +- Fixed bug [#1870][sq-1870] : Invalid warning in multiple assignments alignment with closure or anon class +- Fixed bug [#1890][sq-1890] : Incorrect Squiz.WhiteSpace.ControlStructureSpacing.NoLineAfterClose error between catch and finally statements +- Fixed bug [#1891][sq-1891] : Comment on last USE statement causes false positive for PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse + - Thanks to [Matt Coleman][@iammattcoleman], [Daniel Hensby][@dhensby], and [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1901][sq-1901] : Fixed PHPCS annotations in multi-line tab-indented comments + not ignoring whole line for phpcs:set + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-1793]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1793 +[sq-1803]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1803 +[sq-1817]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1817 +[sq-1827]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1827 +[sq-1828]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1828 +[sq-1840]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1840 +[sq-1867]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1867 +[sq-1870]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1870 +[sq-1890]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1890 +[sq-1891]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1891 +[sq-1901]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1901 + +## [3.2.2] - 2017-12-20 + +### Changed +- Disabled STDIN detection on Windows + - This fixes a problem with IDE plugins (e.g., PHPStorm) hanging on Windows + +## [3.2.1] - 2017-12-18 + +### Changed +- Empty diffs are no longer followed by a newline character (request [#1781][sq-1781]) +- Generic.Functions.OpeningFunctionBraceKernighanRitchie no longer complains when the open brace is followed by a close tag + - This makes the sniff more useful when used in templates + - Thanks to [Joseph Zidell][@josephzidell] for the patch + +### Fixed +- Fixed problems with some scripts and plugins waiting for STDIN + - This was a notable problem with IDE plugins (e.g., PHPStorm) and build systems +- Fixed bug [#1782][sq-1782] : Incorrect detection of operator in ternary + anonymous function + +[sq-1781]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1781 +[sq-1782]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1782 + +## [3.2.0] - 2017-12-13 + +### Deprecated +- This release deprecates the @codingStandards comment syntax used for sending commands to PHP_CodeSniffer + - The existing syntax will continue to work in all version 3 releases, but will be removed in version 4 + - The comment formats have been replaced by a shorter syntax: + - @codingStandardsIgnoreFile becomes phpcs:ignoreFile + - @codingStandardsIgnoreStart becomes phpcs:disable + - @codingStandardsIgnoreEnd becomes phpcs:enable + - @codingStandardsIgnoreLine becomes phpcs:ignore + - @codingStandardsChangeSetting becomes phpcs:set + - The new syntax allows for additional developer comments to be added after a -- separator + - This is useful for describing why a code block is being ignored, or why a setting is being changed + - E.g., phpcs:disable -- This code block must be left as-is. + - Comments using the new syntax are assigned new comment token types to allow them to be detected: + - phpcs:ignoreFile has the token T_PHPCS_IGNORE_FILE + - phpcs:disable has the token T_PHPCS_DISABLE + - phpcs:enable has the token T_PHPCS_ENABLE + - phpcs:ignore has the token T_PHPCS_IGNORE + - phpcs:set has the token T_PHPCS_SET + +### Changed +- The phpcs:disable and phpcs:ignore comments can now selectively ignore specific sniffs (request [#604][sq-604]) + - E.g., phpcs:disable Generic.Commenting.Todo.Found for a specific message + - E.g., phpcs:disable Generic.Commenting.Todo for a whole sniff + - E.g., phpcs:disable Generic.Commenting for a whole category of sniffs + - E.g., phpcs:disable Generic for a whole standard + - Multiple sniff codes can be specified by comma separating them + - E.g., phpcs:disable Generic.Commenting.Todo,PSR1.Files +- @codingStandardsIgnoreLine comments now only ignore the following line if they are on a line by themselves + - If they are at the end of an existing line, they will only ignore the line they are on + - Stops some lines from accidentally being ignored + - Same rule applies for the new phpcs:ignore comment syntax +- PSR1.Files.SideEffects now respects the new phpcs:disable comment syntax + - The sniff will no longer check any code that is between phpcs:disable and phpcs:enable comments + - The sniff does not support phpcs:ignore; you must wrap code structures with disable/enable comments + - Previously, there was no way to have this sniff ignore parts of a file +- Fixed a problem where PHPCS would sometimes hang waiting for STDIN, or read incomplete versions of large files + - Thanks to [Arne Jørgensen][@arnested] for the patch +- Array properties specified in ruleset files now have their keys and values trimmed + - This saves having to do this in individual sniffs and stops errors introduced by whitespace in rulesets + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added phpcs.xsd to allow validation of ruleset XML files + - Thanks to [Renaat De Muynck][@renaatdemuynck] for the contribution +- File paths specified using --stdin-path can now point to fake file locations (request [#1488][sq-1488]) + - Previously, STDIN files using fake file paths were excluded from checking +- Setting an empty basepath (--basepath=) on the CLI will now clear a basepath set directly in a ruleset + - Thanks to [Xaver Loppenstedt][@xalopp] for the patch +- Ignore patterns are now checked on symlink target paths instead of symlink source paths + - Restores previous behaviour of this feature +- Metrics were being double counted when multiple sniffs were recording the same metric +- Added support for bash process substitution + - Thanks to [Scott Dutton][@exussum12] for the contribution +- Files included in the cache file code hash are now sorted to aid in cache file reuse across servers +- Windows BAT files can now be used outside a PEAR install + - You must have the path to PHP set in your PATH environment variable + - Thanks to [Joris Debonnet][@JorisDebonnet] for the patch +- The JS unsigned right shift assignment operator is now properly classified as an assignment operator + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The AbstractVariableSniff abstract sniff now supports anonymous classes and nested functions + - Also fixes an issue with Squiz.Scope.MemberVarScope where member vars of anonymous classes were not being checked +- Added AbstractArraySniff to make it easier to create sniffs that check array formatting + - Allows for checking of single and multi line arrays easily + - Provides a parsed structure of the array including positions of keys, values, and double arrows +- Added Generic.Arrays.ArrayIndent to enforce a single tab stop indent for array keys in multi-line arrays + - Also ensures the close brace is on a new line and indented to the same level as the original statement + - Allows for the indent size to be set using an "indent" property of the sniff +- Added Generic.PHP.DiscourageGoto to warn about the use of the GOTO language construct + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Generic.Debug.ClosureLinter was not running the gjslint command + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Generic.WhiteSpace.DisallowSpaceIndent now fixes space indents in multi-line block comments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.WhiteSpace.DisallowSpaceIndent now fixes mixed space/tab indents more accurately + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.WhiteSpace.DisallowTabIndent now fixes tab indents in multi-line block comments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.Functions.FunctionDeclaration no longer errors when a function declaration is the first content in a JS file + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.Functions.FunctionCallSignature now requires the function name to be indented to an exact tab stop + - If the function name is not the start of the statement, the opening statement must be indented correctly instead + - Added a new fixable error code PEAR.Functions.FunctionCallSignature.OpeningIndent for this error +- Squiz.Functions.FunctionDeclarationArgumentSpacing is no longer confused about comments in function declarations + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.PHP.NonExecutableCode error messages now indicate which line the code block ending is on + - Makes it easier to identify where the code block exited or returned + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.FunctionComment now supports nullable type hints +- Squiz.Commenting.FunctionCommentThrowTag no longer assigns throw tags inside anon classes to the enclosing function +- Squiz.WhiteSpace.SemicolonSpacing now ignores semicolons used for empty statements inside FOR conditions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.ControlStructures.ControlSignature now allows configuring the number of spaces before the colon in alternative syntax + - Override the 'requiredSpacesBeforeColon' setting in a ruleset.xml file to change + - Default remains at 1 + - Thanks to [Nikola Kovacs][@nkovacs] for the patch +- The Squiz standard now ensures array keys are indented 4 spaces from the main statement + - Previously, this standard aligned keys 1 space from the start of the array keyword +- The Squiz standard now ensures array end braces are aligned with the main statement + - Previously, this standard aligned the close brace with the start of the array keyword +- The standard for PHP_CodeSniffer itself now enforces short array syntax +- The standard for PHP_CodeSniffer itself now uses the Generic.Arrays/ArrayIndent sniff rules +- Improved fixer conflicts and syntax error handling for a number of sniffs + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed bug [#1462][sq-1462] : Error processing cyrillic strings in Tokenizer +- Fixed bug [#1573][sq-1573] : Squiz.WhiteSpace.LanguageConstructSpacing does not properly check for tabs and newlines + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#1590][sq-1590] : InlineControlStructure CBF issue while adding braces to an if that's returning a nested function +- Fixed bug [#1718][sq-1718] : Unclosed strings at EOF sometimes tokenized as T_WHITESPACE by the JS tokenizer +- Fixed bug [#1731][sq-1731] : Directory exclusions do not work as expected when a single file name is passed to phpcs +- Fixed bug [#1737][sq-1737] : Squiz.CSS.EmptyStyleDefinition sees comment as style definition and fails to report error +- Fixed bug [#1746][sq-1746] : Very large reports can sometimes become garbled when using the parallel option +- Fixed bug [#1747][sq-1747] : Squiz.Scope.StaticThisUsage incorrectly looking inside closures +- Fixed bug [#1757][sq-1757] : Unknown type hint "object" in Squiz.Commenting.FunctionComment +- Fixed bug [#1758][sq-1758] : PHPCS gets stuck creating file list when processing circular symlinks +- Fixed bug [#1761][sq-1761] : Generic.WhiteSpace.ScopeIndent error on multi-line function call with static closure argument +- Fixed bug [#1762][sq-1762] : `Generic.WhiteSpace.Disallow[Space/Tab]Indent` not inspecting content before open tag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1769][sq-1769] : Custom "define" function triggers a warning about declaring new symbols +- Fixed bug [#1776][sq-1776] : Squiz.Scope.StaticThisUsage incorrectly looking inside anon classes +- Fixed bug [#1777][sq-1777] : Generic.WhiteSpace.ScopeIndent incorrect indent errors when self called function proceeded by comment + +[sq-604]: https://github.com/squizlabs/PHP_CodeSniffer/issues/604 +[sq-1462]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1462 +[sq-1488]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1488 +[sq-1573]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1573 +[sq-1590]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1590 +[sq-1718]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1718 +[sq-1731]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1731 +[sq-1737]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1737 +[sq-1746]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1746 +[sq-1747]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1747 +[sq-1757]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1757 +[sq-1758]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1758 +[sq-1761]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1761 +[sq-1762]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1762 +[sq-1769]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1769 +[sq-1776]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1776 +[sq-1777]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1777 + +## [3.1.1] - 2017-10-17 + +### Changed +- Restored preference of non-dist files over dist files for phpcs.xml and phpcs.xml.dist + - The order that the files are searched is now: .phpcs.xml, phpcs.xml, .phpcs.xml.dist, phpcs.xml.dist + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Progress output now correctly shows skipped files +- Progress output now shows 100% when the file list has finished processing (request [#1697][sq-1697]) +- Stopped some IDEs complaining about testing class aliases + - Thanks to [Vytautas Stankus][@svycka] for the patch +- Squiz.Commenting.InlineComment incorrectly identified comment blocks in some cases, muting some errors + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +### Fixed +- Fixed bug [#1512][sq-1512] : PEAR.Functions.FunctionCallSignature enforces spaces when no arguments if required spaces is not 0 +- Fixed bug [#1522][sq-1522] : Squiz Arrays.ArrayDeclaration and Strings.ConcatenationSpacing fixers causing parse errors with here/nowdocs +- Fixed bug [#1570][sq-1570] : Squiz.Arrays.ArrayDeclaration fixer removes comments between array keyword and open parentheses +- Fixed bug [#1604][sq-1604] : File::isReference has problems with some bitwise operators and class property references + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1645][sq-1645] : Squiz.Commenting.InlineComment will fail to fix comments at the end of the file + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1656][sq-1656] : Using the --sniffs argument has a problem with case sensitivity +- Fixed bug [#1657][sq-1657] : Uninitialized string offset: 0 when sniffing CSS +- Fixed bug [#1669][sq-1669] : Temporary expression proceeded by curly brace is detected as function call +- Fixed bug [#1681][sq-1681] : Huge arrays are super slow to scan with Squiz.Arrays.ArrayDeclaration sniff +- Fixed bug [#1694][sq-1694] : Squiz.Arrays.ArrayBracketSpacing is removing some comments during fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1702][sq-1702] : Generic.WhiteSpaceDisallowSpaceIndent fixer bug when line only contains superfluous whitespace + +[sq-1512]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1512 +[sq-1522]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1522 +[sq-1570]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1570 +[sq-1604]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1604 +[sq-1645]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1645 +[sq-1656]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1656 +[sq-1657]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1657 +[sq-1669]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1669 +[sq-1681]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1681 +[sq-1694]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1694 +[sq-1697]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1697 +[sq-1702]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1702 + +## [3.1.0] - 2017-09-20 + +### Changed +- This release includes a change to support newer versions of PHPUnit (versions 4, 5, and 6 are now supported) + - The custom PHP_CodeSniffer test runner now requires a bootstrap file + - Developers with custom standards using the PHP_CodeSniffer test runner will need to do one of the following: + - run your unit tests from the PHP_CodeSniffer root dir so the bootstrap file is included + - specify the PHP_CodeSniffer bootstrap file on the command line: `phpunit --bootstrap=/path/to/phpcs/tests/bootstrap.php` + - require the PHP_CodeSniffer bootstrap file from your own bootstrap file + - If you don't run PHP_CodeSniffer unit tests, this change will not affect you + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- A phpcs.xml or phpcs.xml.dist file now takes precedence over the default_standard config setting + - Thanks to [Björn Fischer][@Fischer-Bjoern] for the patch +- Both phpcs.xml and phpcs.xml.dist files can now be prefixed with a dot (request [#1566][sq-1566]) + - The order that the files are searched is: .phpcs.xml, .phpcs.xml.dist, phpcs.xml, phpcs.xml.dist +- The autoloader will now search for files during unit tests runs from the same locations as during normal phpcs runs + - Allows for easier unit testing of custom standards that use helper classes or custom namespaces +- Include patterns for sniffs now use OR logic instead of AND logic + - Previously, a file had to be in each of the include patterns to be processed by a sniff + - Now, a file has to only be in at least one of the patterns + - This change reflects the original intention of the feature +- PHPCS will now follow symlinks under the list of checked directories + - This previously only worked if you specified the path to a symlink on the command line +- Output from --config-show, --config-set, and --config-delete now includes the path to the loaded config file +- PHPCS now cleanly exits if its config file is not readable + - Previously, a combination of PHP notices and PHPCS errors would be generated +- Comment tokens that start with /** are now always tokenized as docblocks + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- The PHP-supplied T_YIELD and T_YIELD_FROM token have been replicated for older PHP versions + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Added new Generic.CodeAnalysis.AssignmentInCondition sniff to warn about variable assignments inside conditions + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the contribution +- Added Generic.Files.OneObjectStructurePerFile sniff to ensure there is a single class/interface/trait per file + - Thanks to [Mponos George][@gmponos] for the contribution +- Function call sniffs now check variable function names and self/static object creation + - Specific sniffs are Generic.Functions.FunctionCallArgumentSpacing, PEAR.Functions.FunctionCallSignature, and PSR2.Methods.FunctionCallSignature + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Generic.Files.LineLength can now be configured to ignore all comment lines, no matter their length + - Set the ignoreComments property to TRUE (default is FALSE) in your ruleset.xml file to enable this + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.LowerCaseKeyword now checks self, parent, yield, yield from, and closure (function) keywords + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- PEAR.Functions.FunctionDeclaration now removes a blank line if it creates one by moving the curly brace during fixing +- Squiz.Commenting.FunctionCommentThrowTag now supports PHP 7.1 multi catch exceptions +- Squiz.Formatting.OperatorBracket no longer throws errors for PHP 7.1 multi catch exceptions +- Squiz.Commenting.LongConditionClosingComment now supports finally statements +- Squiz.Formatting.OperatorBracket now correctly fixes pipe separated flags +- Squiz.Formatting.OperatorBracket now correctly fixes statements containing short array syntax +- Squiz.PHP.EmbeddedPhp now properly fixes cases where the only content in an embedded PHP block is a comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.ControlStructureSpacing now ignores comments when checking blank lines at the top of control structures +- Squiz.WhiteSpace.ObjectOperatorSpacing now detects and fixes spaces around double colons + - Thanks to [Julius Šmatavičius][@bondas83] for the patch +- Squiz.WhiteSpace.MemberVarSpacing can now be configured to check any number of blank lines between member vars + - Set the spacing property (default is 1) in your ruleset.xml file to set the spacing +- Squiz.WhiteSpace.MemberVarSpacing can now be configured to check a different number of blank lines before the first member var + - Set the spacingBeforeFirst property (default is 1) in your ruleset.xml file to set the spacing +- Added a new PHP_CodeSniffer\Util\Tokens::$ooScopeTokens static member var for quickly checking object scope + - Includes T_CLASS, T_ANON_CLASS, T_INTERFACE, and T_TRAIT + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PHP_CodeSniffer\Files\File::findExtendedClassName() now supports extended interfaces + - Thanks to [Martin Hujer][@mhujer] for the patch + +### Fixed +- Fixed bug [#1550][sq-1550] : Squiz.Commenting.FunctionComment false positive when function contains closure +- Fixed bug [#1577][sq-1577] : Generic.InlineControlStructureSniff breaks with a comment between body and condition in do while loops +- Fixed bug [#1581][sq-1581] : Sniffs not loaded when one-standard directories are being registered in installed_paths +- Fixed bug [#1591][sq-1591] : Autoloader failing to load arbitrary files when installed_paths only set via a custom ruleset +- Fixed bug [#1605][sq-1605] : Squiz.WhiteSpace.OperatorSpacing false positive on unary minus after comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1615][sq-1615] : Uncaught RuntimeException when phpcbf fails to fix files +- Fixed bug [#1637][sq-1637] : Generic.WhiteSpaceScopeIndent closure argument indenting incorrect with multi-line strings +- Fixed bug [#1638][sq-1638] : Squiz.WhiteSpace.ScopeClosingBrace closure argument indenting incorrect with multi-line strings +- Fixed bug [#1640][sq-1640] : Squiz.Strings.DoubleQuoteUsage replaces tabs with spaces when fixing + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-1550]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1550 +[sq-1566]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1566 +[sq-1577]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1577 +[sq-1581]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1581 +[sq-1591]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1591 +[sq-1605]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1605 +[sq-1615]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1615 +[sq-1637]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1637 +[sq-1638]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1638 +[sq-1640]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1640 + +## [3.0.2] - 2017-07-18 + +### Changed +- The code report now gracefully handles tokenizer exceptions +- The phpcs and phpcbf scripts are now the only places that exit() in the code + - This allows for easier usage of core PHPCS functions from external scripts + - If you are calling Runner::runPHPCS() or Runner::runPHPCBF() directly, you will get back the full range of exit codes + - If not, catch the new DeepExitException to get the error message ($e->getMessage()) and exit code ($e->getCode()); +- NOWDOC tokens are now considered conditions, just as HEREDOC tokens are + - This makes it easier to find the start and end of a NOWDOC from any token within it + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Custom autoloaders are now only included once in case multiple standards are using the same one + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Improved tokenizing of fallthrough CASE and DEFAULT statements that share a closing statement and use curly braces +- Improved the error message when Squiz.ControlStructures.ControlSignature detects a newline after the closing parenthesis + +### Fixed +- Fixed a problem where the source report was not printing the correct number of errors found +- Fixed a problem where the --cache=/path/to/cachefile CLI argument was not working +- Fixed bug [#1465][sq-1465] : Generic.WhiteSpace.ScopeIndent reports incorrect errors when indenting double arrows in short arrays +- Fixed bug [#1478][sq-1478] : Indentation in fallthrough CASE that contains a closure +- Fixed bug [#1497][sq-1497] : Fatal error if composer prepend-autoloader is set to false + - Thanks to [Kunal Mehta][@legoktm] for the patch +- Fixed bug [#1503][sq-1503] : Alternative control structure syntax not always recognized as scoped +- Fixed bug [#1523][sq-1523] : Fatal error when using the --suffix argument + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1526][sq-1526] : Use of basepath setting can stop PHPCBF being able to write fixed files +- Fixed bug [#1530][sq-1530] : Generic.WhiteSpace.ScopeIndent can increase indent too much for lines within code blocks +- Fixed bug [#1547][sq-1547] : Wrong token type for backslash in use function + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#1549][sq-1549] : Squiz.PHP.EmbeddedPhp fixer conflict with // comment before PHP close tag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1560][sq-1560] : Squiz.Commenting.FunctionComment fatal error when fixing additional param comment lines that have no indent + +[sq-1465]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1465 +[sq-1478]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1478 +[sq-1497]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1497 +[sq-1503]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1503 +[sq-1523]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1523 +[sq-1526]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1526 +[sq-1530]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1530 +[sq-1547]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1547 +[sq-1549]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1549 +[sq-1560]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1560 + +## [3.0.1] - 2017-06-14 + +### Security +- This release contains a fix for a security advisory related to the improper handling of a shell command + - A properly crafted filename would allow for arbitrary code execution when using the --filter=gitmodified command line option + - All version 3 users are encouraged to upgrade to this version, especially if you are checking 3rd-party code + - e.g., you run PHPCS over libraries that you did not write + - e.g., you provide a web service that runs PHPCS over user-uploaded files or 3rd-party repositories + - e.g., you allow external tool paths to be set by user-defined values + - If you are unable to upgrade but you check 3rd-party code, ensure you are not using the Git modified filter + - This advisory does not affect PHP_CodeSniffer version 2. + - Thanks to [Sergei Morozov][@morozov] for the report and patch + +### Changed +- Arguments on the command line now override or merge with those specified in a ruleset.xml file in all cases +- PHPCS now stops looking for a phpcs.xml file as soon as one is found, favoring the closest one to the current dir +- Added missing help text for the --stdin-path CLI option to --help +- Re-added missing help text for the --file-list and --bootstrap CLI options to --help +- Runner::runPHPCS() and Runner::runPHPCBF() now return an exit code instead of exiting directly (request [#1484][sq-1484]) +- The Squiz standard now enforces short array syntax by default +- The autoloader is now working correctly with classes created with class_alias() +- The autoloader will now search for files inside all directories in the installed_paths config var + - This allows autoloading of files inside included custom coding standards without manually requiring them +- You can now specify a namespace for a custom coding standard, used by the autoloader to load non-sniff helper files + - Also used by the autoloader to help other standards directly include sniffs for your standard + - Set the value to the namespace prefix you are using for sniff files (everything up to \Sniffs\) + - e.g., if your namespace format is MyProject\CS\Standard\Sniffs\Category set the namespace to MyProject\CS\Standard + - If omitted, the namespace is assumed to be the same as the directory name containing the ruleset.xml file + - The namespace is set in the ruleset tag of the ruleset.xml file + - e.g., ruleset name="My Coding Standard" namespace="MyProject\CS\Standard" +- Rulesets can now specify custom autoloaders using the new autoload tag + - Autoloaders are included while the ruleset is being processed and before any custom sniffs are included + - Allows for very custom autoloading of helper classes well before the boostrap files are included +- The PEAR standard now includes Squiz.Commenting.DocCommentAlignment + - It previously broke comments onto multiple lines, but didn't align them + +### Fixed +- Fixed a problem where excluding a message from a custom standard's own sniff would exclude the whole sniff + - This caused some PSR2 errors to be under-reported +- Fixed bug [#1442][sq-1442] : T_NULLABLE detection not working for nullable parameters and return type hints in some cases +- Fixed bug [#1447][sq-1447] : Running the unit tests with a PHPUnit config file breaks the test suite + - Unknown arguments were not being handled correctly, but are now stored in $config->unknown +- Fixed bug [#1449][sq-1449] : Generic.Classes.OpeningBraceSameLine doesn't detect comment before opening brace + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1450][sq-1450] : Coding standard located under an installed_path with the same directory name throws an error + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1451][sq-1451] : Sniff exclusions/restrictions don't work with custom sniffs unless they use the PHP_CodeSniffer NS +- Fixed bug [#1454][sq-1454] : Squiz.WhiteSpace.OperatorSpacing is not checking spacing on either side of a short ternary operator + - Thanks to [Mponos George][@gmponos] for the patch +- Fixed bug [#1495][sq-1495] : Setting an invalid installed path breaks all commands +- Fixed bug [#1496][sq-1496] : Squiz.Strings.DoubleQuoteUsage not unescaping dollar sign when fixing + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#1501][sq-1501] : Interactive mode is broken +- Fixed bug [#1504][sq-1504] : PSR2.Namespaces.UseDeclaration hangs fixing use statement with no trailing code + +[sq-1447]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1447 +[sq-1449]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1449 +[sq-1450]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1450 +[sq-1451]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1451 +[sq-1454]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1454 +[sq-1484]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1484 +[sq-1495]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1495 +[sq-1496]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1496 +[sq-1501]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1501 +[sq-1504]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1504 + +## [2.9.1] - 2017-05-22 + +### Fixed +- Fixed bug [#1442][sq-1442] : T_NULLABLE detection not working for nullable parameters and return type hints in some cases +- Fixed bug [#1448][sq-1448] : Generic.Classes.OpeningBraceSameLine doesn't detect comment before opening brace + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch + +[sq-1442]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1442 +[sq-1448]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1448 + +## [3.0.0] - 2017-05-04 + +### Changed +- Added an --ignore-annotations command line argument to ignore all @codingStandards annotations in code comments (request [#811][sq-811]) +- This allows you to force errors to be shown that would otherwise be ignored by code comments + - Also stop files being able to change sniff properties midway through processing +- An error is now reported if no sniffs were registered to be run (request [#1129][sq-1129]) +- The autoloader will now search for files inside the directory of any loaded coding standard + - This allows autoloading of any file inside a custom coding standard without manually requiring them + - Ensure your namespace begins with your coding standard's directory name and follows PSR-4 + - e.g., StandardName\Sniffs\CategoryName\AbstractHelper or StandardName\Helpers\StringSniffHelper +- Fixed an error where STDIN was sometimes not checked when using the --parallel CLI option +- The is_closure index has been removed from the return value of File::getMethodProperties() + - This value was always false because T_FUNCTION tokens are never closures + - Closures have a token type of T_CLOSURE +- The File::isAnonymousFunction() method has been removed + - This function always returned false because it only accepted T_FUNCTION tokens, which are never closures + - Closures have a token type of T_CLOSURE +- Includes all changes from the 2.9.0 release + +### Fixed +- Fixed bug [#834][sq-834] : PSR2.ControlStructures.SwitchDeclaration does not handle if branches with returns + - Thanks to [Fabian Wiget][@fabacino] for the patch + +[sq-811]: https://github.com/squizlabs/PHP_CodeSniffer/issues/811 +[sq-834]: https://github.com/squizlabs/PHP_CodeSniffer/issues/834 +[sq-1129]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1129 + +## [3.0.0RC4] - 2017-03-02 + +### Security +- This release contains a fix for a security advisory related to the improper handling of shell commands + - Uses of shell_exec() and exec() were not escaping filenames and configuration settings in most cases + - A properly crafted filename or configuration option would allow for arbitrary code execution when using some features + - All users are encouraged to upgrade to this version, especially if you are checking 3rd-party code + - e.g., you run PHPCS over libraries that you did not write + - e.g., you provide a web service that runs PHPCS over user-uploaded files or 3rd-party repositories + - e.g., you allow external tool paths to be set by user-defined values + - If you are unable to upgrade but you check 3rd-party code, ensure you are not using the following features: + - The diff report + - The notify-send report + - The Generic.PHP.Syntax sniff + - The Generic.Debug.CSSLint sniff + - The Generic.Debug.ClosureLinter sniff + - The Generic.Debug.JSHint sniff + - The Squiz.Debug.JSLint sniff + - The Squiz.Debug.JavaScriptLint sniff + - The Zend.Debug.CodeAnalyzer sniff + - Thanks to [Klaus Purer][@klausi] for the report + +### Changed +- The indent property of PEAR.Classes.ClassDeclaration has been removed + - Instead of calculating the indent of the brace, it just ensures the brace is aligned with the class keyword + - Other sniffs can be used to ensure the class itself is indented correctly +- Invalid exclude rules inside a ruleset.xml file are now ignored instead of potentially causing out of memory errors + - Using the -vv command line argument now also shows the invalid exclude rule as XML +- Includes all changes from the 2.8.1 release + +### Fixed +- Fixed bug [#1333][sq-1333] : The new autoloader breaks some frameworks with custom autoloaders +- Fixed bug [#1334][sq-1334] : Undefined offset when explaining standard with custom sniffs + +[sq-1333]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1333 +[sq-1334]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1334 + +## [3.0.0RC3] - 2017-02-02 + +### Changed +- Added support for ES6 class declarations + - Previously, these class were tokenized as JS objects but are now tokenized as normal T_CLASS structures +- Added support for ES6 method declarations, where the "function" keyword is not used + - Previously, these methods were tokenized as JS objects (fixes bug [#1251][sq-1251]) + - The name of the ES6 method is now assigned the T_FUNCTION keyword and treated like a normal function + - Custom sniffs that support JS and listen for T_FUNCTION tokens can't assume the token represents the word "function" + - Check the contents of the token first, or use $phpcsFile->getDeclarationName($stackPtr) if you just want its name + - There is no change for custom sniffs that only check PHP code +- PHPCBF exit codes have been changed so they are now more useful (request [#1270][sq-1270]) + - Exit code 0 is now used to indicate that no fixable errors were found, and so nothing was fixed + - Exit code 1 is now used to indicate that all fixable errors were fixed correctly + - Exit code 2 is now used to indicate that PHPCBF failed to fix some of the fixable errors it found + - Exit code 3 is now used for general script execution errors +- Added PEAR.Commenting.FileComment.ParamCommentAlignment to check alignment of multi-line param comments +- Includes all changes from the 2.8.0 release + +### Fixed +- Fixed an issue where excluding a file using a @codingStandardsIgnoreFile comment would produce errors + - For PHPCS, it would show empty files being processed + - For PHPCBF, it would produce a PHP error +- Fixed bug [#1233][sq-1233] : Can't set config data inside ruleset.xml file +- Fixed bug [#1241][sq-1241] : CodeSniffer.conf not working with 3.x PHAR file + +[sq-1233]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1233 +[sq-1241]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1241 +[sq-1251]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1251 +[sq-1270]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1270 + +## [3.0.0RC2] - 2016-11-30 + +### Changed +- Made the Runner class easier to use with wrapper scripts +- Full usage information is no longer printed when a usage error is encountered (request [#1186][sq-1186]) + - Makes it a lot easier to find and read the error message that was printed +- Includes all changes from the 2.7.1 release + +### Fixed +- Fixed an undefined var name error that could be produced while running PHPCBF +- Fixed bug [#1167][sq-1167] : 3.0.0RC1 PHAR does not work with PEAR standard +- Fixed bug [#1208][sq-1208] : Excluding files doesn't work when using STDIN with a filename specified + +[sq-1167]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1167 +[sq-1186]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1186 +[sq-1208]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1208 + +## [3.0.0RC1] - 2016-09-02 + +### Changed +- Progress output now shows E and W in green when a file has fixable errors or warnings + - Only supported if colors are enabled +- PHPCBF no longer produces verbose output by default (request [#699][sq-699]) + - Use the -v command line argument to show verbose fixing output + - Use the -q command line argument to disable verbose information if enabled by default +- PHPBF now prints a summary report after fixing files + - Report shows files that were fixed, how many errors were fixed, and how many remain +- PHPCBF now supports the -p command line argument to print progress information + - Prints a green F for files where fixes occurred + - Prints a red E for files that could not be fixed due to an error + - Use the -q command line argument to disable progress information if enabled by default +- Running unit tests using --verbose no longer throws errors +- Includes all changes from the 2.7.0 release + +### Fixed +- Fixed shell error appearing on some systems when trying to find executable paths + +[sq-699]: https://github.com/squizlabs/PHP_CodeSniffer/issues/699 + +## [3.0.0a1] - 2016-07-20 + +### Changed +- Min PHP version increased from 5.1.2 to 5.4.0 +- Added optional caching of results between runs (request [#530][sq-530]) + - Enable the cache by using the --cache command line argument + - If you want the cache file written somewhere specific, use --cache=/path/to/cacheFile + - Use the command "phpcs --config-set cache true" to turn caching on by default + - Use the --no-cache command line argument to disable caching if it is being turned on automatically +- Add support for checking file in parallel (request [#421][sq-421]) + - Tell PHPCS how many files to check at once using the --parallel command line argument + - To check 100 files at once, using --parallel=100 + - To disable parallel checking if it is being turned on automatically, use --parallel=1 + - Requires PHP to be compiled with the PCNTL package +- The default encoding has been changed from iso-8859-1 to utf-8 (request [#760][sq-760]) + - The --encoding command line argument still works, but you no longer have to set it to process files as utf-8 + - If encoding is being set to utf-8 in a ruleset or on the CLI, it can be safely removed + - If the iconv PHP extension is not installed, standard non-multibyte aware functions will be used +- Added a new "code" report type to show a code snippet for each error (request [#419][sq-419]) + - The line containing the error is printed, along with 2 lines above and below it to show context + - The location of the errors is underlined in the code snippet if you also use --colors + - Use --report=code to generate this report +- Added support for custom filtering of the file list + - Developers can write their own filter classes to perform custom filtering of the list before the run starts + - Use the command line arg `--filter=/path/to/filter.php` to specify a filter to use + - Extend \PHP_CodeSniffer\Filters\Filter to also support the core PHPCS extension and path filtering + - Extend \PHP_CodeSniffer\Filters\ExactMatch to get the core filtering and the ability to use blacklists and whitelists + - The included \PHP_CodeSniffer\Filters\GitModified filter is a good example of an ExactMatch filter +- Added support for only checking files that have been locally modified or added in a git repo + - Use --filter=gitmodified to check these files + - You still need to give PHPCS a list of files or directories in which to check +- Added automatic discovery of executable paths (request [#571][sq-571]) + - Thanks to [Sergei Morozov][@morozov] for the patch +- You must now pass "-" on the command line to have PHPCS wait for STDIN + - E.g., phpcs --standard=PSR2 - + - You can still pipe content via STDIN as normal as PHPCS will see this and process it + - But without the "-", PHPCS will throw an error if no content or files are passed to it +- All PHP errors generated by sniffs are caught, re-thrown as exceptions, and reported in the standard error reports + - This should stop bugs inside sniffs causing infinite loops + - Also stops invalid reports being produced as errors don't print to the screen directly +- Sniff codes are no longer optional + - If a sniff throws an error or a warning, it must specify an internal code for that message +- The installed_paths config setting can now point directly to a standard + - Previously, it had to always point to the directory in which the standard lives +- Multiple reports can now be specified using the --report command line argument + - Report types are separated by commas + - E.g., --report=full,summary,info + - Previously, you had to use one argument for each report such as --report=full --report=summary --report=info +- You can now set the severity, message type, and exclude patterns for an entire sniff, category, or standard + - Previously, this was only available for a single message +- You can now include a single sniff code in a ruleset instead of having to include an entire sniff + - Including a sniff code will automatically exclude all other messages from that sniff + - If the sniff is already included by an imported standard, set the sniff severity to 0 and include the specific message you want +- PHPCBF no longer uses patch + - Files are now always overwritten + - The --no-patch option has been removed +- Added a --basepath option to strip a directory from the front of file paths in output (request [#470][sq-470]) + - The basepath is absolute or relative to the current directory + - E.g., to output paths relative to current dir in reports, use --basepath=. +- Ignore rules are now checked when using STDIN (request [#733][sq-733]) +- Added an include-pattern tag to rulesets to include a sniff for specific files and folders only (request [#656][sq-656]) + - This is the exact opposite of the exclude-pattern tag + - This option is only usable within sniffs, not globally like exclude-patterns are +- Added a new -m option to stop error messages from being recorded, which saves a lot of memory + - PHPCBF always uses this setting to reduce memory as it never outputs error messages + - Setting the $recordErrors member var inside custom report classes is no longer supported (use -m instead) +- Exit code 2 is now used to indicate fixable errors were found (request [#930][sq-930]) + - Exit code 3 is now used for general script execution errors + - Exit code 1 is used to indicate that coding standard errors were found, but none are fixable + - Exit code 0 is unchanged and continues to mean no coding standard errors found + +### Removed +- The included PHPCS standard has been removed + - All rules are now found inside the phpcs.xml.dist file + - Running "phpcs" without any arguments from a git clone will use this ruleset +- The included SVN pre-commit hook has been removed + - Hooks for version control systems will no longer be maintained within the PHPCS project + +[sq-419]: https://github.com/squizlabs/PHP_CodeSniffer/issues/419 +[sq-421]: https://github.com/squizlabs/PHP_CodeSniffer/issues/421 +[sq-470]: https://github.com/squizlabs/PHP_CodeSniffer/issues/470 +[sq-530]: https://github.com/squizlabs/PHP_CodeSniffer/issues/530 +[sq-571]: https://github.com/squizlabs/PHP_CodeSniffer/pull/571 +[sq-656]: https://github.com/squizlabs/PHP_CodeSniffer/issues/656 +[sq-733]: https://github.com/squizlabs/PHP_CodeSniffer/issues/733 +[sq-760]: https://github.com/squizlabs/PHP_CodeSniffer/issues/760 +[sq-930]: https://github.com/squizlabs/PHP_CodeSniffer/issues/930 + +## [2.9.0] - 2017-05-04 + +### Changed +- Added Generic.Debug.ESLint sniff to run ESLint over JS files and report errors + - Set eslint path using: phpcs --config-set eslint_path /path/to/eslint + - Thanks to [Ryan McCue][@rmccue] for the contribution +- T_POW is now properly considered an arithmetic operator, and will be checked as such + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- T_SPACESHIP and T_COALESCE are now properly considered comparison operators, and will be checked as such + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHP.DisallowShortOpenTag now warns about possible short open tags even when short_open_tag is set to OFF + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.WhiteSpace.DisallowTabIndent now finds and fixes improper use of spaces anywhere inside the line indent + - Previously, only the first part of the indent was used to determine the indent type + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.Commenting.ClassComment now supports checking of traits as well as classes and interfaces + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.FunctionCommentThrowTag now supports re-throwing exceptions (request [#946][sq-946]) + - Thanks to [Samuel Levy][@samlev] for the patch +- Squiz.PHP.DisallowMultipleAssignments now ignores PHP4-style member var assignments + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.FunctionSpacing now ignores spacing above functions when they are preceded by inline comments + - Stops conflicts between this sniff and comment spacing sniffs +- Squiz.WhiteSpace.OperatorSpacing no longer checks the equal sign in declare statements + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added missing error codes for a couple of sniffs so they can now be customised as normal + +### Fixed +- Fixed bug [#1266][sq-1266] : PEAR.WhiteSpace.ScopeClosingBrace can throw an error while fixing mixed PHP/HTML +- Fixed bug [#1364][sq-1364] : Yield From values are not recognised as returned values in Squiz FunctionComment sniff +- Fixed bug [#1373][sq-1373] : Error in tab expansion results in white-space of incorrect size + - Thanks to [Mark Clements][@MarkMaldaba] for the patch +- Fixed bug [#1381][sq-1381] : Tokenizer: dereferencing incorrectly identified as short array +- Fixed bug [#1387][sq-1387] : Squiz.ControlStructures.ControlSignature does not handle alt syntax when checking space after closing brace +- Fixed bug [#1392][sq-1392] : Scope indent calculated incorrectly when using array destructuring +- Fixed bug [#1394][sq-1394] : integer type hints appearing as TypeHintMissing instead of ScalarTypeHintMissing + - PHP 7 type hints were also being shown when run under PHP 5 in some cases +- Fixed bug [#1405][sq-1405] : Squiz.WhiteSpace.ScopeClosingBrace fails to fix closing brace within indented PHP tags +- Fixed bug [#1421][sq-1421] : Ternaries used in constant scalar expression for param default misidentified by tokenizer +- Fixed bug [#1431][sq-1431] : PHPCBF can't fix short open tags when they are not followed by a space + - Thanks to [Gonçalo Queirós][@ghunti] for the patch +- Fixed bug [#1432][sq-1432] : PHPCBF can make invalid fixes to inline JS control structures that make use of JS objects + +[sq-946]: https://github.com/squizlabs/PHP_CodeSniffer/pull/946 +[sq-1266]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1266 +[sq-1364]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1364 +[sq-1373]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1373 +[sq-1381]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1381 +[sq-1387]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1387 +[sq-1392]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1392 +[sq-1394]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1394 +[sq-1405]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1405 +[sq-1421]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1421 +[sq-1431]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1431 +[sq-1432]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1432 + +## [2.8.1] - 2017-03-02 + +### Security +- This release contains a fix for a security advisory related to the improper handling of shell commands + - Uses of shell_exec() and exec() were not escaping filenames and configuration settings in most cases + - A properly crafted filename or configuration option would allow for arbitrary code execution when using some features + - All users are encouraged to upgrade to this version, especially if you are checking 3rd-party code + - e.g., you run PHPCS over libraries that you did not write + - e.g., you provide a web service that runs PHPCS over user-uploaded files or 3rd-party repositories + - e.g., you allow external tool paths to be set by user-defined values + - If you are unable to upgrade but you check 3rd-party code, ensure you are not using the following features: + - The diff report + - The notify-send report + - The Generic.PHP.Syntax sniff + - The Generic.Debug.CSSLint sniff + - The Generic.Debug.ClosureLinter sniff + - The Generic.Debug.JSHint sniff + - The Squiz.Debug.JSLint sniff + - The Squiz.Debug.JavaScriptLint sniff + - The Zend.Debug.CodeAnalyzer sniff + - Thanks to [Klaus Purer][@klausi] for the report + +### Changed +- The PHP-supplied T_COALESCE_EQUAL token has been replicated for PHP versions before 7.2 +- PEAR.Functions.FunctionDeclaration now reports an error for blank lines found inside a function declaration +- PEAR.Functions.FunctionDeclaration no longer reports indent errors for blank lines in a function declaration +- Squiz.Functions.MultiLineFunctionDeclaration no longer reports errors for blank lines in a function declaration + - It would previously report that only one argument is allowed per line +- Squiz.Commenting.FunctionComment now corrects multi-line param comment padding more accurately +- Squiz.Commenting.FunctionComment now properly fixes pipe-separated param types +- Squiz.Commenting.FunctionComment now works correctly when function return types also contain a comment + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.ControlStructures.InlineIfDeclaration now supports the elvis operator + - As this is not a real PHP operator, it enforces no spaces between ? and : when the THEN statement is empty +- Squiz.ControlStructures.InlineIfDeclaration is now able to fix the spacing errors it reports + +### Fixed +- Fixed bug [#1340][sq-1340] : STDIN file contents not being populated in some cases + - Thanks to [David Biňovec][@david-binda] for the patch +- Fixed bug [#1344][sq-1344] : PEAR.Functions.FunctionCallSignatureSniff throws error for blank comment lines +- Fixed bug [#1347][sq-1347] : PSR2.Methods.FunctionCallSignature strips some comments during fixing + - Thanks to [Algirdas Gurevicius][@uniquexor] for the patch +- Fixed bug [#1349][sq-1349] : Squiz.Strings.DoubleQuoteUsage.NotRequired message is badly formatted when string contains a CR newline char + - Thanks to [Algirdas Gurevicius][@uniquexor] for the patch +- Fixed bug [#1350][sq-1350] : Invalid Squiz.Formatting.OperatorBracket error when using namespaces +- Fixed bug [#1369][sq-1369] : Empty line in multi-line function declaration cause infinite loop + +[sq-1340]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1340 +[sq-1344]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1344 +[sq-1347]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1347 +[sq-1349]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1349 +[sq-1350]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1350 +[sq-1369]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1369 + +## [2.8.0] - 2017-02-02 + +### Changed +- The Internal.NoCodeFound error is no longer generated for content sourced from STDIN + - This should stop some Git hooks generating errors because PHPCS is trying to process the refs passed on STDIN +- Squiz.Commenting.DocCommentAlignment now checks comments on class properties defined using the VAR keyword + - Thanks to [Klaus Purer][@klausi] for the patch +- The getMethodParameters() method now recognises "self" as a valid type hint + - The return array now contains a new "content" index containing the raw content of the param definition + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The getMethodParameters() method now supports nullable types + - The return array now contains a new "nullable_type" index set to true or false for each method param + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The getMethodParameters() method now supports closures + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added more guard code for JS files with syntax errors (request [#1271][sq-1271] and request [#1272][sq-1272]) +- Added more guard code for CSS files with syntax errors (request [#1304][sq-1304]) +- PEAR.Commenting.FunctionComment fixers now correctly handle multi-line param comments +- AbstractVariableSniff now supports anonymous classes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.NamingConventions.ConstructorName and PEAR.NamingConventions.ValidVariable now support anonymous classes +- Generic.NamingConventions.CamelCapsFunctionName and PEAR.NamingConventions.ValidFunctionName now support anonymous classes + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.CodeAnalysis.UnusedFunctionParameter and PEAR.Functions.ValidDefaultValue now support closures + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- PEAR.NamingConventions.ValidClassName and Squiz.Classes.ValidClassName now support traits + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.Functions.FunctionCallArgumentSpacing now supports closures other PHP-provided functions + - Thanks to [Algirdas Gurevicius][@uniquexor] for the patch +- Fixed an error where a nullable type character was detected as an inline then token + - A new T_NULLABLE token has been added to represent the ? nullable type character + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Squiz.WhiteSpace.SemicolonSpacing no longer removes comments while fixing the placement of semicolons + - Thanks to [Algirdas Gurevicius][@uniquexor] for the patch + +### Fixed +- Fixed bug [#1230][sq-1230] : JS tokeniser incorrectly tokenises bitwise shifts as comparison + - Thanks to [Ryan McCue][@rmccue] for the patch +- Fixed bug [#1237][sq-1237] : Uninitialized string offset in PHP Tokenizer on PHP 5.2 +- Fixed bug [#1239][sq-1239] : Warning when static method name is 'default' +- Fixed bug [#1240][sq-1240] : False positive for function names starting with triple underscore + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1245][sq-1245] : SELF is not recognised as T_SELF token in: return new self +- Fixed bug [#1246][sq-1246] : A mix of USE statements with and without braces can cause the tokenizer to mismatch brace tokens + - Thanks to [Michał Bundyra][@michalbundyra] for the patch +- Fixed bug [#1249][sq-1249] : GitBlame report requires a .git directory +- Fixed bug [#1252][sq-1252] : Squiz.Strings.ConcatenationSpacing fix creates syntax error when joining a number to a string +- Fixed bug [#1253][sq-1253] : Generic.ControlStructures.InlineControlStructure fix creates syntax error fixing if-try/catch +- Fixed bug [#1255][sq-1255] : Inconsistent indentation check results when ELSE on new line +- Fixed bug [#1257][sq-1257] : Double dash in CSS class name can lead to "Named colours are forbidden" false positives +- Fixed bug [#1260][sq-1260] : Syntax errors not being shown when error_prepend_string is set + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Fixed bug [#1264][sq-1264] : Array return type hint is sometimes detected as T_ARRAY_HINT instead of T_RETURN_TYPE + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#1265][sq-1265] : ES6 arrow function raises unexpected operator spacing errors +- Fixed bug [#1267][sq-1267] : Fixer incorrectly handles filepaths with repeated dir names + - Thanks to [Sergey Ovchinnikov][@orx0r] for the patch +- Fixed bug [#1276][sq-1276] : Commenting.FunctionComment.InvalidReturnVoid conditional issue with anonymous classes +- Fixed bug [#1277][sq-1277] : Squiz.PHP.DisallowMultipleAssignments.Found error when var assignment is on the same line as an open tag +- Fixed bug [#1284][sq-1284] : Squiz.Arrays.ArrayBracketSpacing.SpaceBeforeBracket false positive match for short list syntax + +[sq-1230]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1230 +[sq-1237]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1237 +[sq-1239]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1239 +[sq-1240]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1240 +[sq-1245]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1245 +[sq-1246]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1246 +[sq-1249]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1249 +[sq-1252]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1252 +[sq-1253]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1253 +[sq-1255]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1255 +[sq-1257]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1257 +[sq-1260]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1260 +[sq-1264]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1264 +[sq-1265]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1265 +[sq-1267]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1267 +[sq-1271]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1271 +[sq-1272]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1272 +[sq-1276]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1276 +[sq-1277]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1277 +[sq-1284]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1284 +[sq-1304]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1304 + +## [2.7.1] - 2016-11-30 + +### Changed +- Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis fix now removes unnecessary whitespace +- Squiz.Formatting.OperatorBracket no longer errors for negative array indexes used within a function call +- Squiz.PHP.EmbeddedPhp no longer expects a semicolon after statements that are only opening a scope +- Fixed a problem where the content of T_DOC_COMMENT_CLOSE_TAG tokens could sometimes be (boolean) false +- Developers of custom standards with custom test runners can now have their standards ignored by the built-in test runner + - Set the value of an environment variable called PHPCS_IGNORE_TESTS with a comma separated list of your standard names + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- The unit test runner now loads the test sniff outside of the standard's ruleset so that exclude rules do not get applied + - This may have caused problems when testing custom sniffs inside custom standards + - Also makes the unit tests runs a little faster +- The SVN pre-commit hook now works correctly when installed via composer + - Thanks to [Sergey][@sserbin] for the patch + +### Fixed +- Fixed bug [#1135][sq-1135] : PEAR.ControlStructures.MultiLineCondition.CloseBracketNewLine not detected if preceded by multiline function call +- Fixed bug [#1138][sq-1138] : PEAR.ControlStructures.MultiLineCondition.Alignment not detected if closing brace is first token on line +- Fixed bug [#1141][sq-1141] : Sniffs that check EOF newlines don't detect newlines properly when the last token is a doc block +- Fixed bug [#1150][sq-1150] : Squiz.Strings.EchoedStrings does not properly fix bracketed statements +- Fixed bug [#1156][sq-1156] : Generic.Formatting.DisallowMultipleStatements errors when multiple short echo tags are used on the same line + - Thanks to [Nikola Kovacs][@nkovacs] for the patch +- Fixed bug [#1161][sq-1161] : Absolute report path is treated like a relative path if it also exists within the current directory +- Fixed bug [#1170][sq-1170] : Javascript regular expression literal not recognized after comparison operator +- Fixed bug [#1180][sq-1180] : Class constant named FUNCTION is incorrectly tokenized +- Fixed bug [#1181][sq-1181] : Squiz.Operators.IncrementDecrementUsage.NoBrackets false positive when incrementing properties + - Thanks to [Jürgen Henge-Ernst][@hernst42] for the patch +- Fixed bug [#1188][sq-1188] : Generic.WhiteSpace.ScopeIndent issues with inline HTML and multi-line function signatures +- Fixed bug [#1190][sq-1190] : phpcbf on if/else with trailing comment generates erroneous code +- Fixed bug [#1191][sq-1191] : Javascript sniffer fails with function called "Function" +- Fixed bug [#1203][sq-1203] : Inconsistent behavior of PHP_CodeSniffer_File::findEndOfStatement +- Fixed bug [#1218][sq-1218] : CASE conditions using class constants named NAMESPACE/INTERFACE/TRAIT etc are incorrectly tokenized +- Fixed bug [#1221][sq-1221] : Indented function call with multiple closure arguments can cause scope indent error +- Fixed bug [#1224][sq-1224] : PHPCBF fails to fix code with heredoc/nowdoc as first argument to a function + +[sq-1135]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1135 +[sq-1138]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1138 +[sq-1141]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1141 +[sq-1150]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1150 +[sq-1156]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1156 +[sq-1161]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1161 +[sq-1170]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1170 +[sq-1180]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1180 +[sq-1181]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1181 +[sq-1188]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1188 +[sq-1190]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1190 +[sq-1191]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1191 +[sq-1203]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1203 +[sq-1218]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1218 +[sq-1221]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1221 +[sq-1224]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1224 + +## [2.7.0] - 2016-09-02 + +### Changed +- Added --file-list command line argument to allow a list of files and directories to be specified in an external file + - Useful if you have a generated list of files to check that would be too long for the command line + - File and directory paths are listed one per line + - Usage is: phpcs --file-list=/path/to/file-list ... + - Thanks to [Blotzu][@andrei-propertyguru] for the patch +- Values set using @codingStandardsChangeSetting comments can now contain spaces +- Sniff unit tests can now specify a list of test files instead of letting the runner pick them (request [#1078][sq-1078]) + - Useful if a sniff needs to exclude files based on the environment, or is checking filenames + - Override the new getTestFiles() method to specify your own list of test files +- Generic.Functions.OpeningFunctionBraceKernighanRitchie now ignores spacing for function return types + - The sniff code Generic.Functions.OpeningFunctionBraceKernighanRitchie.SpaceAfterBracket has been removed + - Replaced by Generic.Functions.OpeningFunctionBraceKernighanRitchie.SpaceBeforeBrace + - The new error message is slightly clearer as it indicates that a single space is needed before the brace +- Squiz.Commenting.LongConditionClosingComment now allows for the length of a code block to be configured + - Set the lineLimit property (default is 20) in your ruleset.xml file to set the code block length + - When the code block length is reached, the sniff will enforce a closing comment after the closing brace + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.Commenting.LongConditionClosingComment now allows for the end comment format to be configured + - Set the commentFormat property (default is "//end %s") in your ruleset.xml file to set the format + - The placeholder %s will be replaced with the type of condition opener, e.g., "//end foreach" + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Generic.PHPForbiddenFunctions now allows forbidden functions to have mixed case + - Previously, it would only do a strtolower comparison + - Error message now shows what case was found in the code and what the correct case should be + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added Generic.Classes.OpeningBraceSameLine to ensure opening brace of class/interface/trait is on the same line as the declaration + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added Generic.PHP.BacktickOperator to ban the use of the backtick operator for running shell commands + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Added Generic.PHP.DisallowAlternativePHPTags to ban the use of alternate PHP tags + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Squiz.WhiteSpace.LanguageConstructSpacing no longer checks for spaces if parenthesis are being used (request [#1062][sq-1062]) + - Makes this sniff more compatible with those that check parenthesis spacing of function calls +- Squiz.WhiteSpace.ObjectOperatorSpacing now has a setting to ignore newline characters around object operators + - Default remains FALSE, so newlines are not allowed + - Override the "ignoreNewlines" setting in a ruleset.xml file to change + - Thanks to [Alex Howansky][@AlexHowansky] for the patch +- Squiz.Scope.MethodScope now sniffs traits as well as classes and interfaces + - Thanks to [Jesse Donat][@donatj] for the patch +- PHPCBF is now able to fix Squiz.SelfMemberReference.IncorrectCase errors + - Thanks to [Nikola Kovacs][@nkovacs] for the patch +- PHPCBF is now able to fix Squiz.Commenting.VariableComment.IncorrectVarType + - Thanks to [Walt Sorensen][@photodude] for the patch +- PHPCBF is now able to fix Generic.PHP.DisallowShortOpenTag + - Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch +- Improved the formatting of the end brace when auto fixing InlineControlStructure errors (request [#1121][sq-1121]) +- Generic.Functions.OpeningFunctionBraceKernighanRitchie.BraceOnNewLine fix no longer leaves blank line after brace (request [#1085][sq-1085]) +- Generic UpperCaseConstantNameSniff now allows lowercase namespaces in constant definitions + - Thanks to [Daniel Schniepp][@dschniepp] for the patch +- Squiz DoubleQuoteUsageSniff is now more tolerant of syntax errors caused by mismatched string tokens +- A few sniffs that produce errors based on the current PHP version can now be told to run using a specific PHP version + - Set the `php_version` config var using `--config-set`, `--runtime-set`, or in a ruleset to specify a specific PHP version + - The format of the PHP version is the same as the `PHP_VERSION_ID` constant (e.g., 50403 for version 5.4.3) + - Supported sniffs are Generic.PHP.DisallowAlternativePHPTags, PSR1.Classes.ClassDeclaration, Squiz.Commenting.FunctionComment + - Thanks to [Finlay Beaton][@ofbeaton] for the patch + +### Fixed +- Fixed bug [#985][sq-985] : Duplicate class definition detection generates false-positives in media queries + - Thanks to [Raphael Horber][@rhorber] for the patch +- Fixed bug [#1014][sq-1014] : Squiz VariableCommentSniff doesn't always detect a missing comment +- Fixed bug [#1066][sq-1066] : Undefined index: quiet in `CLI.php` during unit test run with `-v` command line arg +- Fixed bug [#1072][sq-1072] : Squiz.SelfMemberReference.NotUsed not detected if leading namespace separator is used +- Fixed bug [#1089][sq-1089] : Rulesets cannot be loaded if the path contains urlencoded characters +- Fixed bug [#1091][sq-1091] : PEAR and Squiz FunctionComment sniffs throw errors for some invalid @param line formats +- Fixed bug [#1092][sq-1092] : PEAR.Functions.ValidDefaultValue should not flag type hinted methods with a NULL default argument +- Fixed bug [#1095][sq-1095] : Generic LineEndings sniff replaces tabs with spaces with --tab-width is set +- Fixed bug [#1096][sq-1096] : Squiz FunctionDeclarationArgumentSpacing gives incorrect error/fix when variadic operator is followed by a space +- Fixed bug [#1099][sq-1099] : Group use declarations are incorrectly fixed by the PSR2 standard + - Thanks to [Jason McCreary][@jasonmccreary] for the patch +- Fixed bug [#1101][sq-1101] : Incorrect indent errors when breaking out of PHP inside an IF statement +- Fixed bug [#1102][sq-1102] : Squiz.Formatting.OperatorBracket.MissingBrackets faulty bracketing fix +- Fixed bug [#1109][sq-1109] : Wrong scope indent reported in anonymous class +- Fixed bug [#1112][sq-1112] : File docblock not recognized when require_once follows it +- Fixed bug [#1120][sq-1120] : InlineControlStructureSniff does not handle auto-fixing for control structures that make function calls +- Fixed bug [#1124][sq-1124] : Squiz.Operators.ComparisonOperatorUsage does not detect bracketed conditions for inline IF statements + - Thanks to [Raphael Horber][@rhorber] for the patch + +[sq-985]: https://github.com/squizlabs/PHP_CodeSniffer/issues/985 +[sq-1014]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1014 +[sq-1062]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1062 +[sq-1066]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1066 +[sq-1072]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1072 +[sq-1078]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1078 +[sq-1085]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1085 +[sq-1089]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1089 +[sq-1091]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1091 +[sq-1092]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1092 +[sq-1095]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1095 +[sq-1096]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1096 +[sq-1099]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1099 +[sq-1101]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1101 +[sq-1102]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1102 +[sq-1109]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1109 +[sq-1112]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1112 +[sq-1120]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1120 +[sq-1121]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1121 +[sq-1124]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1124 + +## [2.6.2] - 2016-07-14 + +### Changed +- Added a new --exclude CLI argument to exclude a list of sniffs from checking and fixing (request [#904][sq-904]) + - Accepts the same sniff codes as the --sniffs command line argument, but provides the opposite functionality +- Added a new -q command line argument to disable progress and verbose information from being printed (request [#969][sq-969]) + - Useful if a coding standard hard-codes progress or verbose output but you want PHPCS to be quiet + - Use the command "phpcs --config-set quiet true" to turn quiet mode on by default +- Generic LineLength sniff no longer errors for comments that cannot be broken out onto a new line (request [#766][sq-766]) + - A typical case is a comment that contains a very long URL + - The comment is ignored if putting the URL on an indented new comment line would be longer than the allowed length +- Settings extensions in a ruleset no longer causes PHP notices during unit testing + - Thanks to [Klaus Purer][@klausi] for the patch +- Version control reports now show which errors are fixable if you are showing sources +- Added a new sniff to enforce a single space after a NOT operator (request [#1051][sq-1051]) + - Include in a ruleset using the code Generic.Formatting.SpaceAfterNot +- The Squiz.Commenting.BlockComment sniff now supports tabs for indenting comment lines (request [#1056][sq-1056]) + +### Fixed +- Fixed bug [#790][sq-790] : Incorrect missing @throws error in methods that use closures +- Fixed bug [#908][sq-908] : PSR2 standard is not checking that closing brace is on line following the body +- Fixed bug [#945][sq-945] : Incorrect indent behavior using deep-nested function and arrays +- Fixed bug [#961][sq-961] : Two anonymous functions passed as function/method arguments cause indentation false positive +- Fixed bug [#1005][sq-1005] : Using global composer vendor autoload breaks PHP lowercase built-in function sniff + - Thanks to [Michael Butler][@michaelbutler] for the patch +- Fixed bug [#1007][sq-1007] : Squiz Unreachable code detection is not working properly with a closure inside a case +- Fixed bug [#1023][sq-1023] : PSR2.Classes.ClassDeclaration fails if class extends base class and "implements" is on trailing line +- Fixed bug [#1026][sq-1026] : Arrays in comma delimited class properties cause ScopeIndent to increase indent +- Fixed bug [#1028][sq-1028] : Squiz ArrayDeclaration incorrectly fixes multi-line array where end bracket is not on a new line +- Fixed bug [#1034][sq-1034] : Squiz FunctionDeclarationArgumentSpacing gives incorrect error when first arg is a variadic +- Fixed bug [#1036][sq-1036] : Adjacent assignments aligned analysis statement wrong +- Fixed bug [#1049][sq-1049] : Version control reports can show notices when the report width is very small +- Fixed bug [#21050][pear-21050] : PEAR MultiLineCondition sniff suppresses errors on last condition line + +[sq-766]: https://github.com/squizlabs/PHP_CodeSniffer/issues/766 +[sq-790]: https://github.com/squizlabs/PHP_CodeSniffer/issues/790 +[sq-904]: https://github.com/squizlabs/PHP_CodeSniffer/issues/904 +[sq-908]: https://github.com/squizlabs/PHP_CodeSniffer/issues/908 +[sq-945]: https://github.com/squizlabs/PHP_CodeSniffer/issues/945 +[sq-961]: https://github.com/squizlabs/PHP_CodeSniffer/issues/961 +[sq-969]: https://github.com/squizlabs/PHP_CodeSniffer/issues/969 +[sq-1005]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1005 +[sq-1007]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1007 +[sq-1023]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1023 +[sq-1026]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1026 +[sq-1028]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1028 +[sq-1034]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1034 +[sq-1036]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1036 +[sq-1049]: https://github.com/squizlabs/PHP_CodeSniffer/pull/1049 +[sq-1051]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1051 +[sq-1056]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1056 +[pear-21050]: https://pear.php.net/bugs/bug.php?id=21050 + +## [2.6.1] - 2016-05-31 + +### Changed +- The PHP-supplied T_COALESCE token has been replicated for PHP versions before 7.0 +- Function return types of self, parent and callable are now tokenized as T_RETURN_TYPE + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- The default_standard config setting now allows multiple standards to be listed, like on the command line + - Thanks to [Michael Mayer][@schnittstabil] for the patch +- Installations done via composer now only include the composer autoloader for PHP 5.3.2+ (request [#942][sq-942]) +- Added a rollbackChangeset() method to the Fixer class to purposely rollback the active changeset + +### Fixed +- Fixed bug [#940][sq-940] : Auto-fixing issue encountered with inconsistent use of braces +- Fixed bug [#943][sq-943] : Squiz.PHP.InnerFunctions.NotAllowed reported in anonymous classes +- Fixed bug [#944][sq-944] : PHP warning when running the latest phar +- Fixed bug [#951][sq-951] : InlineIfDeclaration: invalid error produced with UTF-8 string +- Fixed bug [#957][sq-957] : Operator spacing sniff errors when plus is used as part of a number + - Thanks to [Klaus Purer][@klausi] for the patch +- Fixed bug [#959][sq-959] : Call-time pass-by-reference false positive if there is a square bracket before the ampersand + - Thanks to [Konstantin Leboev][@realmfoo] for the patch +- Fixed bug [#962][sq-962] : Null coalescing operator (??) not detected as a token + - Thanks to [Joel Posti][@joelposti] for the patch +- Fixed bug [#973][sq-973] : Anonymous class declaration and PSR1.Files.SideEffects.FoundWithSymbols +- Fixed bug [#974][sq-974] : Error when file ends with "function" +- Fixed bug [#979][sq-979] : Anonymous function with return type hint is not refactored as expected +- Fixed bug [#983][sq-983] : Squiz.WhiteSpace.MemberVarSpacing.AfterComment fails to fix error when comment is not a docblock +- Fixed bug [#1010][sq-1010] : Squiz NonExecutableCode sniff does not detect boolean OR + - Thanks to [Derek Henderson][@2shediac] for the patch +- Fixed bug [#1015][sq-1015] : The Squiz.Commenting.FunctionComment sniff doesn't allow description in @return tag + - Thanks to [Alexander Obuhovich][@aik099] for the patch +- Fixed bug [#1022][sq-1022] : Duplicate spaces after opening bracket error with PSR2 standard +- Fixed bug [#1025][sq-1025] : Syntax error in JS file can cause undefined index for parenthesis_closer + +[sq-940]: https://github.com/squizlabs/PHP_CodeSniffer/issues/940 +[sq-942]: https://github.com/squizlabs/PHP_CodeSniffer/issues/942 +[sq-943]: https://github.com/squizlabs/PHP_CodeSniffer/issues/943 +[sq-944]: https://github.com/squizlabs/PHP_CodeSniffer/issues/944 +[sq-951]: https://github.com/squizlabs/PHP_CodeSniffer/issues/951 +[sq-957]: https://github.com/squizlabs/PHP_CodeSniffer/pull/957 +[sq-959]: https://github.com/squizlabs/PHP_CodeSniffer/issues/959 +[sq-962]: https://github.com/squizlabs/PHP_CodeSniffer/issues/962 +[sq-973]: https://github.com/squizlabs/PHP_CodeSniffer/issues/973 +[sq-974]: https://github.com/squizlabs/PHP_CodeSniffer/issues/974 +[sq-979]: https://github.com/squizlabs/PHP_CodeSniffer/issues/979 +[sq-983]: https://github.com/squizlabs/PHP_CodeSniffer/issues/983 +[sq-1010]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1010 +[sq-1015]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1015 +[sq-1022]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1022 +[sq-1025]: https://github.com/squizlabs/PHP_CodeSniffer/issues/1025 + +## [2.6.0] - 2016-04-04 + +### Changed +- Paths used when setting CLI arguments inside ruleset.xml files are now relative to the ruleset location (request [#847][sq-847]) + - This change only applies to paths within ARG tags, used to set CLI arguments + - Previously, the paths were relative to the directory PHPCS was being run from + - Absolute paths are still allowed and work the same way they always have + - This change allows ruleset.xml files to be more portable +- Content passed via STDIN will now be processed even if files are specified on the command line or in a ruleset +- When passing content via STDIN, you can now specify the file path to use on the command line (request [#934][sq-934]) + - This allows sniffs that check file paths to work correctly + - This is the same functionality provided by the phpcs_input_file line, except it is available on the command line +- Files processed with custom tokenizers will no longer be skipped if they appear minified (request [#877][sq-877]) + - If the custom tokenizer wants minified files skipped, it can set a $skipMinified member var to TRUE + - See the included JS and CSS tokenizers for an example +- Config vars set in ruleset.xml files are now processed earlier, allowing them to be used during sniff registration + - Among other things, this allows the installed_paths config var to be set in ruleset.xml files + - Thanks to [Pieter Frenssen][@pfrenssen] for the patch +- Improved detection of regular expressions in the JS tokenizer +- Generic PHP Syntax sniff now uses PHP_BINARY (if available) to determine the path to PHP if no other path is available + - You can still manually set `php_path` to use a specific binary for testing + - Thanks to [Andrew Berry][@deviantintegral] for the patch +- The PHP-supplied T_POW_EQUAL token has been replicated for PHP versions before 5.6 +- Added support for PHP7 use group declarations (request [#878][sq-878]) + - New tokens T_OPEN_USE_GROUP and T_CLOSE_USE_GROUP are assigned to the open and close curly braces +- Generic ScopeIndent sniff now reports errors for every line that needs the indent changed (request [#903][sq-903]) + - Previously, it ignored lines that were indented correctly in the context of their block + - This change produces more technically accurate error messages, but is much more verbose +- The PSR2 and Squiz standards now allow multi-line default values in function declarations (request [#542][sq-542]) + - Previously, these would automatically make the function a multi-line declaration +- Squiz InlineCommentSniff now allows docblocks on require(_once) and include(_once) statements + - Thanks to [Gary Jones][@GaryJones] for the patch +- Squiz and PEAR Class and File sniffs no longer assume the first comment in a file is always a file comment + - phpDocumentor assigns the comment to the file only if it is not followed by a structural element + - These sniffs now follow this same rule +- Squiz ClassCommentSniff no longer checks for blank lines before class comments + - Removes the error Squiz.Commenting.ClassComment.SpaceBefore +- Renamed Squiz.CSS.Opacity.SpacingAfterPoint to Squiz.CSS.Opacity.DecimalPrecision + - Please update your ruleset if you are referencing this error code directly +- Fixed PHP tokenizer problem that caused an infinite loop when checking a comment with specific content +- Generic Disallow Space and Tab indent sniffs now detect and fix indents inside embedded HTML chunks (request [#882][sq-882]) +- Squiz CSS IndentationSniff no longer assumes the class opening brace is at the end of a line +- Squiz FunctionCommentThrowTagSniff now ignores non-docblock comments +- Squiz ComparisonOperatorUsageSniff now allows conditions like while(true) +- PEAR FunctionCallSignatureSniff (and the Squiz and PSR2 sniffs that use it) now correctly check the first argument + - Further fix for bug [#698][sq-698] + +### Fixed +- Fixed bug [#791][sq-791] : codingStandardsChangeSetting settings not working with namespaces +- Fixed bug [#872][sq-872] : Incorrect detection of blank lines between CSS class names +- Fixed bug [#879][sq-879] : Generic InlineControlStructureSniff can create parse error when case/if/elseif/else have mixed brace and braceless definitions +- Fixed bug [#883][sq-883] : PSR2 is not checking for blank lines at the start and end of control structures +- Fixed bug [#884][sq-884] : Incorrect indentation notice for anonymous classes +- Fixed bug [#887][sq-887] : Using curly braces for a shared CASE/DEFAULT statement can generate an error in PSR2 SwitchDeclaration +- Fixed bug [#889][sq-889] : Closure inside catch/else/elseif causes indentation error +- Fixed bug [#890][sq-890] : Function call inside returned short array value can cause indentation error inside CASE statements +- Fixed bug [#897][sq-897] : Generic.Functions.CallTimePassByReference.NotAllowed false positive when short array syntax +- Fixed bug [#900][sq-900] : Squiz.Functions.FunctionDeclarationArgumentSpacing bug when no space between type hint and argument +- Fixed bug [#902][sq-902] : T_OR_EQUAL and T_POW_EQUAL are not seen as assignment tokens +- Fixed bug [#910][sq-910] : Unrecognized "extends" and indentation on anonymous classes +- Fixed bug [#915][sq-915] : JS Tokenizer generates errors when processing some decimals +- Fixed bug [#928][sq-928] : Endless loop when sniffing a PHP file with a git merge conflict inside a function +- Fixed bug [#937][sq-937] : Shebang can cause PSR1 SideEffects warning + - Thanks to [Clay Loveless][@claylo] for the patch +- Fixed bug [#938][sq-938] : CallTimePassByReferenceSniff ignores functions with return value + +[sq-542]: https://github.com/squizlabs/PHP_CodeSniffer/issues/542 +[sq-791]: https://github.com/squizlabs/PHP_CodeSniffer/issues/791 +[sq-847]: https://github.com/squizlabs/PHP_CodeSniffer/issues/847 +[sq-872]: https://github.com/squizlabs/PHP_CodeSniffer/issues/872 +[sq-877]: https://github.com/squizlabs/PHP_CodeSniffer/issues/877 +[sq-878]: https://github.com/squizlabs/PHP_CodeSniffer/issues/878 +[sq-879]: https://github.com/squizlabs/PHP_CodeSniffer/issues/879 +[sq-882]: https://github.com/squizlabs/PHP_CodeSniffer/issues/882 +[sq-883]: https://github.com/squizlabs/PHP_CodeSniffer/issues/883 +[sq-884]: https://github.com/squizlabs/PHP_CodeSniffer/issues/884 +[sq-887]: https://github.com/squizlabs/PHP_CodeSniffer/issues/887 +[sq-889]: https://github.com/squizlabs/PHP_CodeSniffer/issues/889 +[sq-890]: https://github.com/squizlabs/PHP_CodeSniffer/issues/890 +[sq-897]: https://github.com/squizlabs/PHP_CodeSniffer/issues/897 +[sq-900]: https://github.com/squizlabs/PHP_CodeSniffer/issues/900 +[sq-902]: https://github.com/squizlabs/PHP_CodeSniffer/issues/902 +[sq-903]: https://github.com/squizlabs/PHP_CodeSniffer/issues/903 +[sq-910]: https://github.com/squizlabs/PHP_CodeSniffer/issues/910 +[sq-915]: https://github.com/squizlabs/PHP_CodeSniffer/issues/915 +[sq-928]: https://github.com/squizlabs/PHP_CodeSniffer/issues/928 +[sq-934]: https://github.com/squizlabs/PHP_CodeSniffer/issues/934 +[sq-937]: https://github.com/squizlabs/PHP_CodeSniffer/pull/937 +[sq-938]: https://github.com/squizlabs/PHP_CodeSniffer/issues/938 + +## [2.5.1] - 2016-01-20 + +### Changed +- The PHP-supplied T_SPACESHIP token has been replicated for PHP versions before 7.0 +- T_SPACESHIP is now correctly identified as an operator + - Thanks to [Alexander Obuhovich][@aik099] for the patch +- Generic LowerCaseKeyword now ensures array type hints are lowercase as well + - Thanks to [Mathieu Rochette][@mathroc] for the patch +- Squiz ComparisonOperatorUsageSniff no longer hangs on JS FOR loops that don't use semicolons +- PHP_CodesSniffer now includes the composer `autoload.php` file, if there is one + - Thanks to [Klaus Purer][@klausi] for the patch +- Added error Squiz.Commenting.FunctionComment.ScalarTypeHintMissing for PHP7 only (request [#858][sq-858]) + - These errors were previously reported as Squiz.Commenting.FunctionComment.TypeHintMissing on PHP7 + - Disable this error message in a ruleset.xml file if your code needs to run on both PHP5 and PHP7 +- The PHP 5.6 __debugInfo magic method no longer produces naming convention errors + - Thanks to [Michael Nowack][@syranez] for the patch +- PEAR and Squiz FunctionComment sniffs now support variadic functions (request [#841][sq-841]) + +### Fixed +- Fixed bug [#622][sq-622] : Wrong detection of Squiz.CSS.DuplicateStyleDefinition with media queries +- Fixed bug [#752][sq-752] : The missing exception error is reported in first found DocBlock +- Fixed bug [#794][sq-794] : PSR2 MultiLineFunctionDeclaration forbids comments after opening parenthesis of a multiline call +- Fixed bug [#820][sq-820] : PEAR/PSR2 FunctionCallSignature sniffs suggest wrong indent when there are multiple arguments on a line +- Fixed bug [#822][sq-822] : Ruleset hard-coded file paths are not used if not running from the same directory as the ruleset +- Fixed bug [#825][sq-825] : FunctionCallArgumentSpacing sniff complains about more than one space before comment in multi-line function call +- Fixed bug [#828][sq-828] : Null classname is tokenized as T_NULL instead of T_STRING +- Fixed bug [#829][sq-829] : Short array argument not fixed correctly when multiple function arguments are on the same line +- Fixed bug [#831][sq-831] : PHPCS freezes in an infinite loop under Windows if no standard is passed +- Fixed bug [#832][sq-832] : Tokenizer does not support context sensitive parsing + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#835][sq-835] : PEAR.Functions.FunctionCallSignature broken when closure uses return types +- Fixed bug [#838][sq-838] : CSS indentation fixer changes color codes + - Thanks to [Klaus Purer][@klausi] for the patch +- Fixed bug [#839][sq-839] : "__()" method is marked as not camel caps + - Thanks to [Tim Bezhashvyly][@tim-bezhashvyly] for the patch +- Fixed bug [#852][sq-852] : Generic.Commenting.DocComment not finding errors when long description is omitted +- Fixed bug [#854][sq-854] : Return typehints in interfaces are not reported as T_RETURN_TYPE + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#855][sq-855] : Capital letter detection for multibyte strings doesn't work correctly +- Fixed bug [#857][sq-857] : PSR2.ControlStructure.SwitchDeclaration shouldn't check indent of curly brace closers +- Fixed bug [#859][sq-859] : Switch statement indention issue when returning function call with closure +- Fixed bug [#861][sq-861] : Single-line arrays and function calls can generate incorrect indentation errors +- Fixed bug [#867][sq-867] : Squiz.Strings.DoubleQuoteUsage broken for some escape codes + - Thanks to [Jack Blower][@ElvenSpellmaker] for the help with the fix +- Fixed bug [#21005][pear-21005] : Incorrect indent detection when multiple properties are initialized to arrays +- Fixed bug [#21010][pear-21010] : Incorrect missing colon detection in CSS when first style is not on new line +- Fixed bug [#21011][pear-21011] : Incorrect error message text when newline found after opening brace + +[sq-622]: https://github.com/squizlabs/PHP_CodeSniffer/issues/622 +[sq-752]: https://github.com/squizlabs/PHP_CodeSniffer/issues/752 +[sq-794]: https://github.com/squizlabs/PHP_CodeSniffer/issues/794 +[sq-820]: https://github.com/squizlabs/PHP_CodeSniffer/issues/820 +[sq-822]: https://github.com/squizlabs/PHP_CodeSniffer/issues/822 +[sq-825]: https://github.com/squizlabs/PHP_CodeSniffer/issues/825 +[sq-828]: https://github.com/squizlabs/PHP_CodeSniffer/issues/828 +[sq-829]: https://github.com/squizlabs/PHP_CodeSniffer/issues/829 +[sq-831]: https://github.com/squizlabs/PHP_CodeSniffer/issues/831 +[sq-832]: https://github.com/squizlabs/PHP_CodeSniffer/issues/832 +[sq-835]: https://github.com/squizlabs/PHP_CodeSniffer/issues/835 +[sq-838]: https://github.com/squizlabs/PHP_CodeSniffer/pull/838 +[sq-839]: https://github.com/squizlabs/PHP_CodeSniffer/issues/839 +[sq-841]: https://github.com/squizlabs/PHP_CodeSniffer/issues/841 +[sq-852]: https://github.com/squizlabs/PHP_CodeSniffer/issues/852 +[sq-854]: https://github.com/squizlabs/PHP_CodeSniffer/issues/854 +[sq-855]: https://github.com/squizlabs/PHP_CodeSniffer/pull/855 +[sq-857]: https://github.com/squizlabs/PHP_CodeSniffer/issues/857 +[sq-858]: https://github.com/squizlabs/PHP_CodeSniffer/issues/858 +[sq-859]: https://github.com/squizlabs/PHP_CodeSniffer/issues/859 +[sq-861]: https://github.com/squizlabs/PHP_CodeSniffer/issues/861 +[sq-867]: https://github.com/squizlabs/PHP_CodeSniffer/issues/867 +[pear-21005]: https://pear.php.net/bugs/bug.php?id=21005 +[pear-21010]: https://pear.php.net/bugs/bug.php?id=21010 +[pear-21011]: https://pear.php.net/bugs/bug.php?id=21011 + +## [2.5.0] - 2015-12-11 + +### Changed +- PHPCS will now look for a phpcs.xml file in parent directories as well as the current directory (request [#626][sq-626]) +- PHPCS will now use a phpcs.xml file even if files are specified on the command line + - This file is still only used if no standard is specified on the command line +- Added support for a phpcs.xml.dist file (request [#583][sq-583]) + - If both a phpcs.xml and phpcs.xml.dist file are present, the phpcs.xml file will be used +- Added support for setting PHP ini values in ruleset.xml files (request [#560][sq-560]) + - Setting the value of the new ini tags to name="memory_limit" value="32M" is the same as -d memory_limit=32M +- Added support for one or more bootstrap files to be run before processing begins + - Use the --bootstrap=file,file,file command line argument to include bootstrap files + - Useful if you want to override some of the high-level settings of PHPCS or PHPCBF + - Thanks to [John Maguire][@johnmaguire] for the patch +- Added additional verbose output for CSS tokenizing +- Squiz ComparisonOperatorUsageSniff now checks FOR, WHILE and DO-WHILE statements + - Thanks to [Arnout Boks][@aboks] for the patch + +### Fixed +- Fixed bug [#660][sq-660] : Syntax checks can fail on Windows with PHP5.6 +- Fixed bug [#784][sq-784] : $this->trait is seen as a T_TRAIT token +- Fixed bug [#786][sq-786] : Switch indent issue with short array notation +- Fixed bug [#787][sq-787] : SpacingAfterDefaultBreak confused by multi-line statements +- Fixed bug [#797][sq-797] : Parsing CSS url() value breaks further parsing +- Fixed bug [#805][sq-805] : Squiz.Commenting.FunctionComment.InvalidTypeHint on Scalar types on PHP7 +- Fixed bug [#807][sq-807] : Cannot fix line endings when open PHP tag is not on the first line +- Fixed bug [#808][sq-808] : JS tokenizer incorrectly setting some function and class names to control structure tokens +- Fixed bug [#809][sq-809] : PHPCBF can break a require_once statement with a space before the open parenthesis +- Fixed bug [#813][sq-813] : PEAR FunctionCallSignature checks wrong indent when first token on line is part of a multi-line string + +[sq-560]: https://github.com/squizlabs/PHP_CodeSniffer/issues/560 +[sq-583]: https://github.com/squizlabs/PHP_CodeSniffer/issues/583 +[sq-626]: https://github.com/squizlabs/PHP_CodeSniffer/issues/626 +[sq-660]: https://github.com/squizlabs/PHP_CodeSniffer/pull/660 +[sq-784]: https://github.com/squizlabs/PHP_CodeSniffer/issues/784 +[sq-786]: https://github.com/squizlabs/PHP_CodeSniffer/issues/786 +[sq-787]: https://github.com/squizlabs/PHP_CodeSniffer/issues/787 +[sq-797]: https://github.com/squizlabs/PHP_CodeSniffer/issues/797 +[sq-805]: https://github.com/squizlabs/PHP_CodeSniffer/issues/805 +[sq-807]: https://github.com/squizlabs/PHP_CodeSniffer/issues/807 +[sq-808]: https://github.com/squizlabs/PHP_CodeSniffer/issues/808 +[sq-809]: https://github.com/squizlabs/PHP_CodeSniffer/issues/809 +[sq-813]: https://github.com/squizlabs/PHP_CodeSniffer/issues/813 + +## [2.4.0] - 2015-11-24 + +### Changed +- Added support for PHP 7 anonymous classes + - Anonymous classes are now tokenized as T_ANON_CLASS and ignored by normal class sniffs +- Added support for PHP 7 function return type declarations + - Return types are now tokenized as T_RETURN_TYPE +- Fixed tokenizing of the XOR operator, which was incorrectly identified as a power operator (bug [#765][sq-765]) + - The T_POWER token has been removed and replaced by the T_BITWISE_XOR token + - The PHP-supplied T_POW token has been replicated for PHP versions before 5.6 +- Traits are now tokenized in PHP versions before 5.4 to make testing easier +- Improved regular expression detection in JS files +- PEAR FunctionCallSignatureSniff now properly detects indents in more mixed HTML/PHP code blocks +- Full report now properly indents lines when newlines are found inside error messages +- Generating documentation without specifying a standard now uses the default standard instead + - Thanks to [Ken Guest][@kenguest] for the patch +- Generic InlineControlStructureSniff now supports braceless do/while loops in JS + - Thanks to [Pieter Frenssen][@pfrenssen] for the patch +- Added more guard code for function declarations with syntax errors + - Thanks to Yun Young-jin for the patch +- Added more guard code for foreach declarations with syntax errors + - Thanks to [Johan de Ruijter][@johanderuijter] for the patch +- Added more guard code for class declarations with syntax errors +- Squiz ArrayDeclarationSniff now has guard code for arrays with syntax errors +- Generic InlineControlStructureSniff now correctly fixes ELSEIF statements + +### Fixed +- Fixed bug [#601][sq-601] : Expected type hint int[]; found array in Squiz FunctionCommentSniff + - Thanks to [Scato Eggen][@scato] for the patch +- Fixed bug [#625][sq-625] : Consider working around T_HASHBANG in HHVM 3.5.x and 3.6.x + - Thanks to [Kunal Mehta][@legoktm] for the patch +- Fixed bug [#692][sq-692] : Comment tokenizer can break when using mbstring function overloading +- Fixed bug [#694][sq-694] : Long sniff codes can cause PHP warnings in source report when showing error codes +- Fixed bug [#698][sq-698] : PSR2.Methods.FunctionCallSignature.Indent forces exact indent of ternary operator parameters +- Fixed bug [#704][sq-704] : ScopeIndent can fail when an opening parenthesis is on a line by itself +- Fixed bug [#707][sq-707] : Squiz MethodScopeSniff doesn't handle nested functions +- Fixed bug [#709][sq-709] : Squiz.Sniffs.Whitespace.ScopeClosingBraceSniff marking indented endif in mixed inline HTML blocks +- Fixed bug [#711][sq-711] : Sniffing from STDIN shows Generic.Files.LowercasedFilename.NotFound error +- Fixed bug [#714][sq-714] : Fixes suppression of errors using docblocks + - Thanks to [Andrzej Karmazyn][@akarmazyn] for the patch +- Fixed bug [#716][sq-716] : JSON report is invalid when messages contain newlines or tabs + - Thanks to [Pieter Frenssen][@pfrenssen] for the patch +- Fixed bug [#723][sq-723] : ScopeIndent can fail when multiple array closers are on the same line +- Fixed bug [#730][sq-730] : ScopeIndent can fail when a short array opening square bracket is on a line by itself +- Fixed bug [#732][sq-732] : PHP Notice if @package name is made up of all invalid characters + - Adds new error code PEAR.Commenting.FileComment.InvalidPackageValue +- Fixed bug [#748][sq-748] : Auto fix for Squiz.Commenting.BlockComment.WrongEnd is incorrect + - Thanks to [J.D. Grimes][@JDGrimes] for the patch +- Fixed bug [#753][sq-753] : PSR2 standard shouldn't require space after USE block when next code is a closing tag +- Fixed bug [#768][sq-768] : PEAR FunctionCallSignature sniff forbids comments after opening parenthesis of a multiline call +- Fixed bug [#769][sq-769] : Incorrect detection of variable reference operator when used with short array syntax + - Thanks to [Klaus Purer][@klausi] for the patch +- Fixed bug [#772][sq-772] : Syntax error when using PHPCBF on alternative style foreach loops +- Fixed bug [#773][sq-773] : Syntax error when stripping trailing PHP close tag and previous statement has no semicolon +- Fixed bug [#778][sq-778] : PHPCBF creates invalid PHP for inline FOREACH containing multiple control structures +- Fixed bug [#781][sq-781] : Incorrect checking for PHP7 return types on multi-line function declarations +- Fixed bug [#782][sq-782] : Conditional function declarations cause fixing conflicts in Squiz standard + - Squiz.ControlStructures.ControlSignature no longer enforces a single newline after open brace + - Squiz.WhiteSpace.ControlStructureSpacing can be used to check spacing at the start/end of control structures + +[sq-601]: https://github.com/squizlabs/PHP_CodeSniffer/issues/601 +[sq-625]: https://github.com/squizlabs/PHP_CodeSniffer/issues/625 +[sq-692]: https://github.com/squizlabs/PHP_CodeSniffer/pull/692 +[sq-694]: https://github.com/squizlabs/PHP_CodeSniffer/issues/694 +[sq-698]: https://github.com/squizlabs/PHP_CodeSniffer/issues/698 +[sq-704]: https://github.com/squizlabs/PHP_CodeSniffer/issues/704 +[sq-707]: https://github.com/squizlabs/PHP_CodeSniffer/pull/707 +[sq-709]: https://github.com/squizlabs/PHP_CodeSniffer/issues/709 +[sq-711]: https://github.com/squizlabs/PHP_CodeSniffer/issues/711 +[sq-714]: https://github.com/squizlabs/PHP_CodeSniffer/pull/714 +[sq-716]: https://github.com/squizlabs/PHP_CodeSniffer/pull/716 +[sq-723]: https://github.com/squizlabs/PHP_CodeSniffer/issues/723 +[sq-730]: https://github.com/squizlabs/PHP_CodeSniffer/pull/730 +[sq-732]: https://github.com/squizlabs/PHP_CodeSniffer/pull/732 +[sq-748]: https://github.com/squizlabs/PHP_CodeSniffer/pull/748 +[sq-753]: https://github.com/squizlabs/PHP_CodeSniffer/issues/753 +[sq-765]: https://github.com/squizlabs/PHP_CodeSniffer/issues/765 +[sq-768]: https://github.com/squizlabs/PHP_CodeSniffer/issues/768 +[sq-769]: https://github.com/squizlabs/PHP_CodeSniffer/pull/769 +[sq-772]: https://github.com/squizlabs/PHP_CodeSniffer/issues/772 +[sq-773]: https://github.com/squizlabs/PHP_CodeSniffer/issues/773 +[sq-778]: https://github.com/squizlabs/PHP_CodeSniffer/issues/778 +[sq-781]: https://github.com/squizlabs/PHP_CodeSniffer/issues/781 +[sq-782]: https://github.com/squizlabs/PHP_CodeSniffer/issues/782 + +## [2.3.4] - 2015-09-09 + +### Changed +- JSON report format now includes the fixable status for each error message and the total number of fixable errors +- Added more guard code for function declarations with syntax errors +- Added tokenizer support for the PHP declare construct + - Thanks to [Andy Blyler][@ablyler] for the patch +- Generic UnnecessaryStringConcatSniff can now allow strings concatenated over multiple lines + - Set the allowMultiline property to TRUE (default is FALSE) in your ruleset.xml file to enable this + - By default, concat used only for getting around line length limits still generates an error + - Thanks to [Stefan Lenselink][@stefanlenselink] for the contribution +- Invalid byte sequences no longer throw iconv_strlen() errors (request [#639][sq-639]) + - Thanks to [Willem Stuursma][@willemstuursma] for the patch +- Generic TodoSniff and FixmeSniff are now better at processing strings with invalid characters +- PEAR FunctionCallSignatureSniff now ignores indentation of inline HTML content +- Squiz ControlSignatureSniff now supports control structures with only inline HTML content + +### Fixed +- Fixed bug [#636][sq-636] : Some class names cause CSS tokenizer to hang +- Fixed bug [#638][sq-638] : VCS blame reports output error content from the blame commands for files not under VC +- Fixed bug [#642][sq-642] : Method params incorrectly detected when default value uses short array syntax + - Thanks to [Josh Davis][@joshdavis11] for the patch +- Fixed bug [#644][sq-644] : PEAR ScopeClosingBrace sniff does not work with mixed HTML/PHP +- Fixed bug [#645][sq-645] : FunctionSignature and ScopeIndent sniffs don't detect indents correctly when PHP open tag is not on a line by itself +- Fixed bug [#648][sq-648] : Namespace not tokenized correctly when followed by multiple use statements +- Fixed bug [#654][sq-654] : Comments affect indent check for BSDAllman brace style +- Fixed bug [#658][sq-658] : Squiz.Functions.FunctionDeclarationSpacing error for multi-line declarations with required spaces greater than zero + - Thanks to [J.D. Grimes][@JDGrimes] for the patch +- Fixed bug [#663][sq-663] : No space after class name generates: Class name "" is not in camel caps format +- Fixed bug [#667][sq-667] : Scope indent check can go into infinite loop due to some parse errors +- Fixed bug [#670][sq-670] : Endless loop in PSR1 SideEffects sniffer if no semicolon after last statement + - Thanks to [Thomas Jarosch][@thomasjfox] for the patch +- Fixed bug [#672][sq-672] : Call-time pass-by-reference false positive +- Fixed bug [#683][sq-683] : Comments are incorrectly reported by PSR2.ControlStructures.SwitchDeclaration sniff +- Fixed bug [#687][sq-687] : ScopeIndent does not check indent correctly for method prefixes like public and abstract +- Fixed bug [#689][sq-689] : False error on some comments after class closing brace + +[sq-636]: https://github.com/squizlabs/PHP_CodeSniffer/issues/636 +[sq-638]: https://github.com/squizlabs/PHP_CodeSniffer/issues/638 +[sq-639]: https://github.com/squizlabs/PHP_CodeSniffer/pull/639 +[sq-642]: https://github.com/squizlabs/PHP_CodeSniffer/pull/642 +[sq-644]: https://github.com/squizlabs/PHP_CodeSniffer/issues/644 +[sq-645]: https://github.com/squizlabs/PHP_CodeSniffer/issues/645 +[sq-648]: https://github.com/squizlabs/PHP_CodeSniffer/issues/648 +[sq-654]: https://github.com/squizlabs/PHP_CodeSniffer/issues/654 +[sq-658]: https://github.com/squizlabs/PHP_CodeSniffer/pull/658 +[sq-663]: https://github.com/squizlabs/PHP_CodeSniffer/issues/663 +[sq-667]: https://github.com/squizlabs/PHP_CodeSniffer/issues/667 +[sq-670]: https://github.com/squizlabs/PHP_CodeSniffer/pull/670 +[sq-672]: https://github.com/squizlabs/PHP_CodeSniffer/issues/672 +[sq-683]: https://github.com/squizlabs/PHP_CodeSniffer/issues/683 +[sq-687]: https://github.com/squizlabs/PHP_CodeSniffer/issues/687 +[sq-689]: https://github.com/squizlabs/PHP_CodeSniffer/issues/689 + +## [2.3.3] - 2015-06-24 + +### Changed +- Improved the performance of the CSS tokenizer, especially on very large CSS files (thousands of lines) + - Thanks to [Klaus Purer][@klausi] for the patch +- Defined tokens for lower PHP versions are now phpcs-specific strings instead of ints + - Stops conflict with other projects, like PHP_CodeCoverage +- Added more guard code for syntax errors to various sniffs +- Improved support for older HHVM versions + - Thanks to [Kunal Mehta][@legoktm] for the patch +- Squiz ValidLogicalOperatorsSniff now ignores XOR as type casting is different when using the ^ operator (request [#567][sq-567]) +- Squiz CommentedOutCodeSniff is now better at ignoring URLs inside comments +- Squiz ControlSignatureSniff is now better at checking embedded PHP code +- Squiz ScopeClosingBraceSniff is now better at checking embedded PHP code + +### Fixed +- Fixed bug [#584][sq-584] : Squiz.Arrays.ArrayDeclaration sniff gives incorrect NoComma error for multiline string values +- Fixed bug [#589][sq-589] : PEAR.Functions.FunctionCallSignature sniff not checking all function calls +- Fixed bug [#592][sq-592] : USE statement tokenizing can sometimes result in mismatched scopes +- Fixed bug [#594][sq-594] : Tokenizer issue on closure that returns by reference +- Fixed bug [#595][sq-595] : Colons in CSS selectors within media queries throw false positives + - Thanks to [Klaus Purer][@klausi] for the patch +- Fixed bug [#598][sq-598] : PHPCBF can break function/use closure brace placement +- Fixed bug [#603][sq-603] : Squiz ControlSignatureSniff hard-codes opener type while fixing +- Fixed bug [#605][sq-605] : Auto report-width specified in ruleset.xml ignored +- Fixed bug [#611][sq-611] : Invalid numeric literal on CSS files under PHP7 +- Fixed bug [#612][sq-612] : Multi-file diff generating incorrectly if files do not end with EOL char +- Fixed bug [#615][sq-615] : Squiz OperatorBracketSniff incorrectly reports and fixes operations using self:: +- Fixed bug [#616][sq-616] : Squiz DisallowComparisonAssignmentSniff inconsistent errors with inline IF statements +- Fixed bug [#617][sq-617] : Space after switch keyword in PSR-2 is not being enforced +- Fixed bug [#621][sq-621] : PSR2 SwitchDeclaration sniff doesn't detect, or correctly fix, case body on same line as statement + +[sq-567]: https://github.com/squizlabs/PHP_CodeSniffer/issues/567 +[sq-584]: https://github.com/squizlabs/PHP_CodeSniffer/issues/584 +[sq-589]: https://github.com/squizlabs/PHP_CodeSniffer/issues/589 +[sq-592]: https://github.com/squizlabs/PHP_CodeSniffer/issues/592 +[sq-594]: https://github.com/squizlabs/PHP_CodeSniffer/issues/594 +[sq-595]: https://github.com/squizlabs/PHP_CodeSniffer/pull/595 +[sq-598]: https://github.com/squizlabs/PHP_CodeSniffer/issues/598 +[sq-603]: https://github.com/squizlabs/PHP_CodeSniffer/issues/603 +[sq-605]: https://github.com/squizlabs/PHP_CodeSniffer/issues/605 +[sq-611]: https://github.com/squizlabs/PHP_CodeSniffer/issues/611 +[sq-612]: https://github.com/squizlabs/PHP_CodeSniffer/issues/612 +[sq-615]: https://github.com/squizlabs/PHP_CodeSniffer/issues/615 +[sq-616]: https://github.com/squizlabs/PHP_CodeSniffer/issues/616 +[sq-617]: https://github.com/squizlabs/PHP_CodeSniffer/issues/617 +[sq-621]: https://github.com/squizlabs/PHP_CodeSniffer/issues/621 + +## [2.3.2] - 2015-04-29 + +### Changed +- The error message for PSR2.ControlStructures.SwitchDeclaration.WrongOpenercase is now clearer (request [#579][sq-579]) + +### Fixed +- Fixed bug [#545][sq-545] : Long list of CASE statements can cause tokenizer to reach a depth limit +- Fixed bug [#565][sq-565] : Squiz.WhiteSpace.OperatorSpacing reports negative number in short array + - Thanks to [Vašek Purchart][@VasekPurchart] for the patch + - Same fix also applied to Squiz.Formatting.OperatorBracket +- Fixed bug [#569][sq-569] : Generic ScopeIndentSniff throws PHP notices in JS files +- Fixed bug [#570][sq-570] : Phar class fatals in PHP less than 5.3 + +[sq-545]: https://github.com/squizlabs/PHP_CodeSniffer/issues/545 +[sq-565]: https://github.com/squizlabs/PHP_CodeSniffer/pull/565 +[sq-569]: https://github.com/squizlabs/PHP_CodeSniffer/pull/569 +[sq-570]: https://github.com/squizlabs/PHP_CodeSniffer/issues/570 +[sq-579]: https://github.com/squizlabs/PHP_CodeSniffer/issues/579 + +## [2.3.1] - 2015-04-23 + +### Changed +- PHPCS can now exit with 0 even if errors are found + - Set the ignore_errors_on_exit config variable to 1 to set this behaviour + - Use with the ignore_warnings_on_exit config variable to never return a non-zero exit code +- Added Generic DisallowLongArraySyntaxSniff to enforce the use of the PHP short array syntax (request [#483][sq-483]) + - Thanks to [Xaver Loppenstedt][@xalopp] for helping with tests +- Added Generic DisallowShortArraySyntaxSniff to ban the use of the PHP short array syntax (request [#483][sq-483]) + - Thanks to [Xaver Loppenstedt][@xalopp] for helping with tests +- Generic ScopeIndentSniff no longer does exact checking for content inside parenthesis (request [#528][sq-528]) + - Only applies to custom coding standards that set the "exact" flag to TRUE +- Squiz ConcatenationSpacingSniff now has a setting to ignore newline characters around operators (request [#511][sq-511]) + - Default remains FALSE, so newlines are not allowed + - Override the "ignoreNewlines" setting in a ruleset.xml file to change +- Squiz InlineCommentSniff no longer checks the last char of a comment if the first char is not a letter (request [#505][sq-505]) +- The Squiz standard has increased the max padding for statement alignment from 12 to 20 + +### Fixed +- Fixed bug [#479][sq-479] : Yielded values are not recognised as returned values in Squiz FunctionComment sniff +- Fixed bug [#512][sq-512] : Endless loop whilst parsing mixture of control structure styles +- Fixed bug [#515][sq-515] : Spaces in JS block incorrectly flagged as indentation error +- Fixed bug [#523][sq-523] : Generic ScopeIndent errors for IF in FINALLY +- Fixed bug [#527][sq-527] : Closure inside IF statement is not tokenized correctly +- Fixed bug [#529][sq-529] : Squiz.Strings.EchoedStrings gives false positive when echoing using an inline condition +- Fixed bug [#537][sq-537] : Using --config-set is breaking phpcs.phar +- Fixed bug [#543][sq-543] : SWITCH with closure in condition generates inline control structure error +- Fixed bug [#551][sq-551] : Multiple catch blocks not checked in Squiz.ControlStructures.ControlSignature sniff +- Fixed bug [#554][sq-554] : ScopeIndentSniff causes errors when encountering an unmatched parenthesis +- Fixed bug [#558][sq-558] : PHPCBF adds brace for ELSE IF split over multiple lines +- Fixed bug [#564][sq-564] : Generic MultipleStatementAlignment sniff reports incorrect errors for multiple assignments on a single line + +[sq-479]: https://github.com/squizlabs/PHP_CodeSniffer/issues/479 +[sq-483]: https://github.com/squizlabs/PHP_CodeSniffer/issues/483 +[sq-505]: https://github.com/squizlabs/PHP_CodeSniffer/issues/505 +[sq-511]: https://github.com/squizlabs/PHP_CodeSniffer/issues/511 +[sq-512]: https://github.com/squizlabs/PHP_CodeSniffer/issues/512 +[sq-515]: https://github.com/squizlabs/PHP_CodeSniffer/issues/515 +[sq-523]: https://github.com/squizlabs/PHP_CodeSniffer/issues/523 +[sq-527]: https://github.com/squizlabs/PHP_CodeSniffer/issues/527 +[sq-528]: https://github.com/squizlabs/PHP_CodeSniffer/issues/528 +[sq-529]: https://github.com/squizlabs/PHP_CodeSniffer/issues/529 +[sq-537]: https://github.com/squizlabs/PHP_CodeSniffer/issues/537 +[sq-543]: https://github.com/squizlabs/PHP_CodeSniffer/issues/543 +[sq-551]: https://github.com/squizlabs/PHP_CodeSniffer/issues/551 +[sq-554]: https://github.com/squizlabs/PHP_CodeSniffer/issues/554 +[sq-558]: https://github.com/squizlabs/PHP_CodeSniffer/issues/558 +[sq-564]: https://github.com/squizlabs/PHP_CodeSniffer/issues/564 + +## [2.3.0] - 2015-03-04 + +### Changed +- The existence of the main config file is now cached to reduce is_file() calls when it doesn't exist (request [#486][sq-486]) +- Abstract classes inside the Sniffs directory are now ignored even if they are named `[Name]Sniff.php` (request [#476][sq-476]) + - Thanks to [David Vernet][@Decave] for the patch +- PEAR and Squiz FileComment sniffs no longer have @ in their error codes + - e.g., PEAR.Commenting.FileComment.Duplicate@categoryTag becomes PEAR.Commenting.FileComment.DuplicateCategoryTag + - e.g., Squiz.Commenting.FileComment.Missing@categoryTag becomes Squiz.Commenting.FileComment.MissingCategoryTag +- PEAR MultiLineConditionSniff now allows comment lines inside multi-line IF statement conditions + - Thanks to [Klaus Purer][@klausi] for the patch +- Generic ForbiddenFunctionsSniff now supports setting null replacements in ruleset files (request [#263][sq-263]) +- Generic opening function brace sniffs now support checking of closures + - Set the checkClosures property to TRUE (default is FALSE) in your ruleset.xml file to enable this + - Can also set the checkFunctions property to FALSE (default is TRUE) in your ruleset.xml file to only check closures + - Affects OpeningFunctionBraceBsdAllmanSniff and OpeningFunctionBraceKernighanRitchieSniff +- Generic OpeningFunctionBraceKernighanRitchieSniff can now fix all the errors it finds +- Generic OpeningFunctionBraceKernighanRitchieSniff now allows empty functions with braces next to each other +- Generic OpeningFunctionBraceBsdAllmanSniff now allows empty functions with braces next to each other +- Improved auto report width for the "full" report +- Improved conflict detection during auto fixing +- Generic ScopeIndentSniff is no longer confused by empty closures +- Squiz ControlSignatureSniff now always ignores comments (fixes bug [#490][sq-490]) + - Include the Squiz.Commenting.PostStatementComment sniff in your ruleset.xml to ban these comments again +- Squiz OperatorSpacingSniff no longer throws errors for code in the form ($foo || -1 === $bar) +- Fixed errors tokenizing T_ELSEIF tokens on HHVM 3.5 +- Squiz ArrayDeclarationSniff is no longer tricked by comments after array values +- PEAR IncludingFileSniff no longer produces invalid code when removing parenthesis from require/include statements + +### Fixed +- Fixed bug [#415][sq-415] : The @codingStandardsIgnoreStart has no effect during fixing +- Fixed bug [#432][sq-432] : Properties of custom sniffs cannot be configured +- Fixed bug [#453][sq-453] : PSR2 standard does not allow closing tag for mixed PHP/HTML files +- Fixed bug [#457][sq-457] : FunctionCallSignature sniffs do not support here/nowdoc syntax and can cause syntax error when fixing +- Fixed bug [#466][sq-466] : PropertyLabelSpacing JS fixer issue when there is no space after colon +- Fixed bug [#473][sq-473] : Writing a report for an empty folder to existing file includes the existing contents +- Fixed bug [#485][sq-485] : PHP notice in Squiz.Commenting.FunctionComment when checking malformed @throws comment +- Fixed bug [#491][sq-491] : Generic InlineControlStructureSniff can correct with missing semicolon + - Thanks to [Jesse Donat][@donatj] for the patch +- Fixed bug [#492][sq-492] : Use statements don't increase the scope indent +- Fixed bug [#493][sq-493] : PSR1_Sniffs_Methods_CamelCapsMethodNameSniff false positives for some magic method detection + - Thanks to [Andreas Möller][@localheinz] for the patch +- Fixed bug [#496][sq-496] : Closures in PSR2 are not checked for a space after the function keyword +- Fixed bug [#497][sq-497] : Generic InlineControlStructureSniff does not support alternative SWITCH syntax +- Fixed bug [#500][sq-500] : Functions not supported as values in Squiz ArrayDeclaration sniff +- Fixed bug [#501][sq-501] : ScopeClosingBrace and ScopeIndent conflict with closures used as array values + - Generic ScopeIndentSniff may now report fewer errors for closures, but perform the same fixes +- Fixed bug [#502][sq-502] : PSR1 SideEffectsSniff sees declare() statements as side effects + +[sq-415]: https://github.com/squizlabs/PHP_CodeSniffer/issues/415 +[sq-432]: https://github.com/squizlabs/PHP_CodeSniffer/issues/432 +[sq-453]: https://github.com/squizlabs/PHP_CodeSniffer/issues/453 +[sq-457]: https://github.com/squizlabs/PHP_CodeSniffer/issues/457 +[sq-466]: https://github.com/squizlabs/PHP_CodeSniffer/issues/466 +[sq-473]: https://github.com/squizlabs/PHP_CodeSniffer/issues/473 +[sq-476]: https://github.com/squizlabs/PHP_CodeSniffer/issues/476 +[sq-485]: https://github.com/squizlabs/PHP_CodeSniffer/issues/485 +[sq-486]: https://github.com/squizlabs/PHP_CodeSniffer/issues/486 +[sq-490]: https://github.com/squizlabs/PHP_CodeSniffer/issues/490 +[sq-491]: https://github.com/squizlabs/PHP_CodeSniffer/pull/491 +[sq-492]: https://github.com/squizlabs/PHP_CodeSniffer/pull/492 +[sq-493]: https://github.com/squizlabs/PHP_CodeSniffer/pull/493 +[sq-496]: https://github.com/squizlabs/PHP_CodeSniffer/issues/496 +[sq-497]: https://github.com/squizlabs/PHP_CodeSniffer/issues/497 +[sq-500]: https://github.com/squizlabs/PHP_CodeSniffer/issues/500 +[sq-501]: https://github.com/squizlabs/PHP_CodeSniffer/issues/501 +[sq-502]: https://github.com/squizlabs/PHP_CodeSniffer/issues/502 + +## [2.2.0] - 2015-01-22 + +### Changed +- Added (hopefully) tastefully used colors to report and progress output for the phpcs command + - Use the --colors command line argument to use colors in output + - Use the command "phpcs --config-set colors true" to turn colors on by default + - Use the --no-colors command line argument to turn colors off when the config value is set +- Added support for using the full terminal width for report output + - Use the --report-width=auto command line argument to auto-size the reports + - Use the command "phpcs --config-set report_width auto" to use auto-sizing by default +- Reports will now size to fit inside the report width setting instead of always using padding to fill the space +- If no files or standards are specified, PHPCS will now look for a phpcs.xml file in the current directory + - This file has the same format as a standard ruleset.xml file + - The phpcs.xml file should specify (at least) files to process and a standard/sniffs to use + - Useful for running the phpcs and phpcbf commands without any arguments at the top of a repository +- Default file paths can now be specified in a ruleset.xml file using the "file" tag + - File paths are only processed if no files were specified on the command line +- Extensions specified on the CLI are now merged with those set in ruleset.xml files + - Previously, the ruleset.xml file setting replaced the CLI setting completely +- Squiz coding standard now requires lowercase PHP constants (true, false and null) + - Removed Squiz.NamingConventions.ConstantCase sniff as the rule is now consistent across PHP and JS files +- Squiz FunctionOpeningBraceSpaceSniff no longer does additional checks for JS functions + - PHP and JS functions and closures are now treated the same way +- Squiz MultiLineFunctionDeclarationSniff now supports JS files +- Interactive mode no longer breaks if you also specify a report type on the command line +- PEAR InlineCommentSniff now fixes the Perl-style comments that it finds (request [#375][sq-375]) +- PSR2 standard no longer fixes the placement of docblock open tags as comments are excluded from this standard +- PSR2 standard now sets a default tab width of 4 spaces +- Generic DocCommentSniff now only disallows lowercase letters at the start of a long/short comment (request [#377][sq-377]) + - All non-letter characters are now allowed, including markdown special characters and numbers +- Generic DisallowMultipleStatementsSniff now allows multiple open/close tags on the same line (request [#423][sq-423]) +- Generic CharacterBeforePHPOpeningTagSniff now only checks the first PHP tag it finds (request [#423][sq-423]) +- Generic CharacterBeforePHPOpeningTagSniff now allows a shebang line at the start of the file (request [#20481][pear-20481]) +- Generic InlineHTMLUnitTest now allows a shebang line at the start of the file (request [#20481][pear-20481]) +- PEAR ObjectOperatorIndentSniff now only checks object operators at the start of a line +- PEAR FileComment and ClassComment sniffs no longer have @ in their error codes + - E.g., PEAR.Commenting.FileComment.Missing@categoryTag becomes PEAR.Commenting.FileComment.MissingCategoryTag + - Thanks to [Grzegorz Rygielski][@grzr] for the patch +- Squiz ControlStructureSpacingSniff no longer enforces a blank line before CATCH statements +- Squiz FunctionCommentSniff now fixes the return type in the @return tag (request [#392][sq-392]) +- Squiz BlockCommentSniff now only disallows lowercase letters at the start of the comment +- Squiz InlineCommentSniff now only disallows lowercase letters at the start of the comment +- Squiz OperatorSpacingSniff now has a setting to ignore newline characters around operators (request [#348][sq-348]) + - Default remains FALSE, so newlines are not allowed + - Override the "ignoreNewlines" setting in a ruleset.xml file to change +- PSR2 ControlStructureSpacingSniff now checks for, and fixes, newlines after the opening parenthesis +- Added a markdown document generator (--generator=markdown to use) + - Thanks to [Stefano Kowalke][@Konafets] for the contribution + +### Fixed +- Fixed bug [#379][sq-379] : Squiz.Arrays.ArrayDeclaration.NoCommaAfterLast incorrectly detects comments +- Fixed bug [#382][sq-382] : JS tokenizer incorrect for inline conditionally created immediately invoked anon function +- Fixed bug [#383][sq-383] : Squiz.Arrays.ArrayDeclaration.ValueNoNewline incorrectly detects nested arrays +- Fixed bug [#386][sq-386] : Undefined offset in Squiz.FunctionComment sniff when param has no comment +- Fixed bug [#390][sq-390] : Indentation of non-control structures isn't adjusted when containing structure is fixed +- Fixed bug [#400][sq-400] : InlineControlStructureSniff fails to fix when statement has no semicolon +- Fixed bug [#401][sq-401] : PHPCBF no-patch option shows an error when there are no fixable violations in a file +- Fixed bug [#405][sq-405] : The "Squiz.WhiteSpace.FunctionSpacing" sniff removes class "}" during fixing +- Fixed bug [#407][sq-407] : PEAR.ControlStructures.MultiLineCondition doesn't account for comments at the end of lines +- Fixed bug [#410][sq-410] : The "Squiz.WhiteSpace.MemberVarSpacing" not respecting "var" +- Fixed bug [#411][sq-411] : Generic.WhiteSpace.ScopeIndent.Incorrect - false positive with multiple arrays in argument list +- Fixed bug [#412][sq-412] : PSR2 multi-line detection doesn't work for inline IF and string concats +- Fixed bug [#414][sq-414] : Squiz.WhiteSpace.MemberVarSpacing - inconsistent checking of member vars with comment +- Fixed bug [#433][sq-433] : Wrong detection of Squiz.Arrays.ArrayDeclaration.KeyNotAligned when key contains space +- Fixed bug [#434][sq-434] : False positive for spacing around "=>" in inline array within foreach +- Fixed bug [#452][sq-452] : Ruleset exclude-pattern for specific sniff code ignored when using CLI --ignore option +- Fixed bug [#20482][pear-20482] : Scope indent sniff can get into infinite loop when processing a parse error + +[sq-348]: https://github.com/squizlabs/PHP_CodeSniffer/issues/348 +[sq-375]: https://github.com/squizlabs/PHP_CodeSniffer/issues/375 +[sq-377]: https://github.com/squizlabs/PHP_CodeSniffer/issues/377 +[sq-379]: https://github.com/squizlabs/PHP_CodeSniffer/issues/379 +[sq-382]: https://github.com/squizlabs/PHP_CodeSniffer/issues/382 +[sq-383]: https://github.com/squizlabs/PHP_CodeSniffer/issues/383 +[sq-386]: https://github.com/squizlabs/PHP_CodeSniffer/issues/386 +[sq-390]: https://github.com/squizlabs/PHP_CodeSniffer/issues/390 +[sq-392]: https://github.com/squizlabs/PHP_CodeSniffer/issues/392 +[sq-400]: https://github.com/squizlabs/PHP_CodeSniffer/issues/400 +[sq-401]: https://github.com/squizlabs/PHP_CodeSniffer/issues/401 +[sq-405]: https://github.com/squizlabs/PHP_CodeSniffer/issues/405 +[sq-407]: https://github.com/squizlabs/PHP_CodeSniffer/issues/407 +[sq-410]: https://github.com/squizlabs/PHP_CodeSniffer/issues/410 +[sq-411]: https://github.com/squizlabs/PHP_CodeSniffer/issues/411 +[sq-412]: https://github.com/squizlabs/PHP_CodeSniffer/issues/412 +[sq-414]: https://github.com/squizlabs/PHP_CodeSniffer/issues/414 +[sq-423]: https://github.com/squizlabs/PHP_CodeSniffer/issues/423 +[sq-433]: https://github.com/squizlabs/PHP_CodeSniffer/issues/433 +[sq-434]: https://github.com/squizlabs/PHP_CodeSniffer/issues/434 +[sq-452]: https://github.com/squizlabs/PHP_CodeSniffer/issues/452 +[pear-20481]: https://pear.php.net/bugs/bug.php?id=20481 +[pear-20482]: https://pear.php.net/bugs/bug.php?id=20482 + +## [2.1.0] - 2014-12-18 + +### Changed +- Time and memory output is now shown if progress information is also shown (request [#335][sq-335]) +- A tilde can now be used to reference a user's home directory in a path to a standard (request [#353][sq-353]) +- Added PHP_CodeSniffer_File::findStartOfStatement() to find the first non-whitespace token in a statement + - Possible alternative for code using PHP_CodeSniffer_File::findPrevious() with the local flag set +- Added PHP_CodeSniffer_File::findEndOfStatement() to find the last non-whitespace token in a statement + - Possible alternative for code using PHP_CodeSniffer_File::findNext() with the local flag set +- Generic opening function brace sniffs now ensure the opening brace is the last content on the line + - Affects OpeningFunctionBraceBsdAllmanSniff and OpeningFunctionBraceKernighanRitchieSniff + - Also enforced in PEAR FunctionDeclarationSniff and Squiz MultiLineFunctionDeclarationSniff +- Generic DisallowTabIndentSniff now replaces tabs everywhere it finds them, except in strings and here/now docs +- Generic EmptyStatementSniff error codes now contain the type of empty statement detected (request [#314][sq-314]) + - All messages generated by this sniff are now errors (empty CATCH was previously a warning) + - Message code `Generic.CodeAnalysis.EmptyStatement.NotAllowed` has been removed + - Message code `Generic.CodeAnalysis.EmptyStatement.NotAllowedWarning` has been removed + - New message codes have the format `Generic.CodeAnalysis.EmptyStatement.Detected[TYPE]` + - Example code is `Generic.CodeAnalysis.EmptyStatement.DetectedCATCH` + - You can now use a custom ruleset to change messages to warnings and to exclude them +- PEAR and Squiz FunctionCommentSniffs no longer ban `@return` tags for constructors and destructors + - Removed message PEAR.Commenting.FunctionComment.ReturnNotRequired + - Removed message Squiz.Commenting.FunctionComment.ReturnNotRequired + - Change initiated by request [#324][sq-324] and request [#369][sq-369] +- Squiz EmptyStatementSniff has been removed + - Squiz standard now includes Generic EmptyStatementSniff and turns off the empty CATCH error +- Squiz ControlSignatureSniff fixes now retain comments between the closing parenthesis and open brace +- Squiz SuperfluousWhitespaceSniff now checks for extra blank lines inside closures + - Thanks to [Sertan Danis][@sertand] for the patch +- Squiz ArrayDeclarationSniff now skips function calls while checking multi-line arrays + +### Fixed +- Fixed bug [#337][sq-337] : False positive with anonymous functions in Generic_Sniffs_WhiteSpace_ScopeIndentSniff +- Fixed bug [#339][sq-339] : reformatting brace location can result in broken code +- Fixed bug [#342][sq-342] : Nested ternary operators not tokenized correctly +- Fixed bug [#345][sq-345] : Javascript regex not tokenized when inside array +- Fixed bug [#346][sq-346] : PHP path can't be determined in some cases in "phpcs.bat" (on Windows XP) +- Fixed bug [#358][sq-358] : False positives for Generic_Sniffs_WhiteSpace_ScopeIndentSniff +- Fixed bug [#361][sq-361] : Sniff-specific exclude patterns don't work for Windows +- Fixed bug [#364][sq-364] : Don't interpret "use function" as declaration +- Fixed bug [#366][sq-366] : phpcbf with PSR2 errors on control structure alternative syntax +- Fixed bug [#367][sq-367] : Nested Anonymous Functions Causing False Negative +- Fixed bug [#371][sq-371] : Shorthand binary cast causes tokenizer errors + - New token T_BINARY_CAST added for the b"string" cast format (the 'b' is the T_BINARY_CAST token) +- Fixed bug [#372][sq-372] : phpcbf parse problem, wrong brace placement for inline IF +- Fixed bug [#373][sq-373] : Double quote usage fix removing too many double quotes +- Fixed bug [#20196][pear-20196] : 1.5.2 breaks scope_closer position + +[sq-314]: https://github.com/squizlabs/PHP_CodeSniffer/issues/314 +[sq-324]: https://github.com/squizlabs/PHP_CodeSniffer/issues/324 +[sq-335]: https://github.com/squizlabs/PHP_CodeSniffer/issues/335 +[sq-337]: https://github.com/squizlabs/PHP_CodeSniffer/issues/337 +[sq-339]: https://github.com/squizlabs/PHP_CodeSniffer/issues/339 +[sq-342]: https://github.com/squizlabs/PHP_CodeSniffer/issues/342 +[sq-345]: https://github.com/squizlabs/PHP_CodeSniffer/issues/345 +[sq-346]: https://github.com/squizlabs/PHP_CodeSniffer/issues/346 +[sq-353]: https://github.com/squizlabs/PHP_CodeSniffer/issues/353 +[sq-358]: https://github.com/squizlabs/PHP_CodeSniffer/issues/358 +[sq-361]: https://github.com/squizlabs/PHP_CodeSniffer/issues/361 +[sq-364]: https://github.com/squizlabs/PHP_CodeSniffer/pull/364 +[sq-366]: https://github.com/squizlabs/PHP_CodeSniffer/issues/366 +[sq-367]: https://github.com/squizlabs/PHP_CodeSniffer/issues/367 +[sq-369]: https://github.com/squizlabs/PHP_CodeSniffer/issues/369 +[sq-371]: https://github.com/squizlabs/PHP_CodeSniffer/issues/371 +[sq-372]: https://github.com/squizlabs/PHP_CodeSniffer/issues/372 +[sq-373]: https://github.com/squizlabs/PHP_CodeSniffer/issues/373 +[pear-20196]: https://pear.php.net/bugs/bug.php?id=20196 + +## [2.0.0] - 2014-12-05 + +### Changed +- JS tokenizer now sets functions as T_CLOSUREs if the function is anonymous +- JS tokenizer now sets all objects to T_OBJECT + - Object end braces are set to a new token T_CLOSE_OBJECT + - T_OBJECT tokens no longer act like scopes; i.e., they have no condition/opener/closer + - T_PROPERTY tokens no longer act like scopes; i.e., they have no condition/opener/closer + - T_OBJECT tokens have a bracket_closer instead, which can be used to find the ending + - T_CLOSE_OBJECT tokens have a bracket_opener +- Improved regular expression detection in the JS tokenizer +- You can now get PHP_CodeSniffer to ignore a single line by putting @codingStandardsIgnoreLine in a comment + - When the comment is found, the comment line and the following line will be ignored + - Thanks to [Andy Bulford][@abulford] for the contribution +- PHPCBF now prints output when it is changing into directories +- Improved conflict detection during auto fixing +- The -vvv command line argument will now output the current file content for each loop during fixing +- Generic ScopeIndentSniff now checks that open/close PHP tags are aligned to the correct column +- PEAR FunctionCallSignatureSniff now checks indent of closing parenthesis even if it is not on a line by itself +- PEAR FunctionCallSignatureSniff now supports JS files +- PEAR MultiLineConditionSniff now supports JS files +- Squiz DocCommentAlignmentSniff now supports JS files +- Fixed a problem correcting the closing brace line in Squiz ArrayDeclarationSniff +- Fixed a problem auto-fixing the Squiz.WhiteSpace.FunctionClosingBraceSpace.SpacingBeforeNestedClose error +- Squiz EmbeddedPhpSniff no longer reports incorrect alignment of tags when they are not on new lines +- Squiz EmbeddedPhpSniff now aligns open tags correctly when moving them onto a new line +- Improved fixing of arrays with multiple values in Squiz ArrayDeclarationSniff +- Improved detection of function comments in Squiz FunctionCommentSpacingSniff +- Improved fixing of lines after cases statements in Squiz SwitchDeclarationSniff + +### Fixed +- Fixed bug [#311][sq-311] : Suppression of function prototype breaks checking of lines within function +- Fixed bug [#320][sq-320] : Code sniffer indentation issue +- Fixed bug [#333][sq-333] : Nested ternary operators causing problems + +[sq-320]: https://github.com/squizlabs/PHP_CodeSniffer/issues/320 +[sq-333]: https://github.com/squizlabs/PHP_CodeSniffer/issues/333 + +## [1.5.6] - 2014-12-05 + +### Changed +- JS tokenizer now detects xor statements correctly +- The --config-show command now pretty-prints the config values + - Thanks to [Ken Guest][@kenguest] for the patch +- Setting and removing config values now catches exceptions if the config file is not writable + - Thanks to [Ken Guest][@kenguest] for the patch +- Setting and removing config values now prints a message to confirm the action and show old values +- You can now get PHP_CodeSniffer to ignore a single line by putting @codingStandardsIgnoreLine in a comment + - When the comment is found, the comment line and the following line will be ignored + - Thanks to [Andy Bulford][@abulford] for the contribution +- Generic ConstructorNameSniff no longer errors for PHP4 style constructors when __construct() is present + - Thanks to [Thibaud Fabre][@fabre-thibaud] for the patch + +### Fixed +- Fixed bug [#280][sq-280] : The --config-show option generates error when there is no config file +- Fixed bug [#306][sq-306] : File containing only a namespace declaration raises undefined index notice +- Fixed bug [#308][sq-308] : Squiz InlineIfDeclarationSniff fails on ternary operators inside closure +- Fixed bug [#310][sq-310] : Variadics not recognized by tokenizer +- Fixed bug [#311][sq-311] : Suppression of function prototype breaks checking of lines within function + +[sq-311]: https://github.com/squizlabs/PHP_CodeSniffer/issues/311 + +## [2.0.0RC4] - 2014-11-07 + +### Changed +- JS tokenizer now detects xor statements correctly +- Improved detection of properties and objects in the JS tokenizer +- Generic ScopeIndentSniff can now fix indents using tabs instead of spaces + - Set the tabIndent property to TRUE in your ruleset.xml file to enable this + - It is important to also set a tab-width setting, either in the ruleset or on the command line, for accuracy +- Generic ScopeIndentSniff now checks and auto-fixes JS files +- Generic DisallowSpaceIndentSniff is now able to replace space indents with tab indents during fixing +- Support for phpcs-only and phpcbf-only attributes has been added to all ruleset.xml elements + - Allows parts of the ruleset to only apply when using a specific tool + - Useful for doing things like excluding indent fixes but still reporting indent errors +- Unit tests can now set command line arguments during a test run + - Override getCliValues() and pass an array of CLI arguments for each file being tested +- File-wide sniff properties can now be set using T_INLINE_HTML content during unit test runs + - Sniffs that start checking at the open tag can only, normally, have properties set using a ruleset +- Generic ConstructorNameSniff no longer errors for PHP4 style constructors when __construct() is present + - Thanks to [Thibaud Fabre][@fabre-thibaud] for the patch +- Generic DocCommentSniff now checks that the end comment tag is on a new line +- Generic MultipleStatementAlignmentSniff no longer skips assignments for closures +- Squiz DocCommentAlignment sniff now has better checking for single line doc block +- Running unit tests with the -v CLI argument no longer generates PHP errors + +### Fixed +- Fixed bug [#295][sq-295] : ScopeIndentSniff hangs when processing nested closures +- Fixed bug [#298][sq-298] : False positive in ScopeIndentSniff when anonymous functions are used with method chaining +- Fixed bug [#302][sq-302] : Fixing code in Squiz InlineComment sniff can remove some comment text +- Fixed bug [#303][sq-303] : Open and close tag on same line can cause a PHP notice checking scope indent +- Fixed bug [#306][sq-306] : File containing only a namespace declaration raises undefined index notice +- Fixed bug [#307][sq-307] : Conditional breaks in case statements get incorrect indentations +- Fixed bug [#308][sq-308] : Squiz InlineIfDeclarationSniff fails on ternary operators inside closure +- Fixed bug [#310][sq-310] : Variadics not recognized by tokenizer + +[sq-295]: https://github.com/squizlabs/PHP_CodeSniffer/issues/295 +[sq-298]: https://github.com/squizlabs/PHP_CodeSniffer/issues/298 +[sq-302]: https://github.com/squizlabs/PHP_CodeSniffer/issues/302 +[sq-303]: https://github.com/squizlabs/PHP_CodeSniffer/issues/303 +[sq-306]: https://github.com/squizlabs/PHP_CodeSniffer/issues/306 +[sq-307]: https://github.com/squizlabs/PHP_CodeSniffer/issues/307 +[sq-308]: https://github.com/squizlabs/PHP_CodeSniffer/issues/308 +[sq-310]: https://github.com/squizlabs/PHP_CodeSniffer/issues/310 + +## [2.0.0RC3] - 2014-10-16 + +### Changed +- Improved default output for PHPCBF and removed the options to print verbose and progress output +- If a .fixed file is supplied for a unit test file, the auto fixes will be checked against it during testing + - See Generic ScopeIndentUnitTest.inc and ScopeIndentUnitTest.inc.fixed for an example +- Fixer token replacement methods now return TRUE if the change was accepted and FALSE if rejected +- The --config-show command now pretty-prints the config values + - Thanks to [Ken Guest][@kenguest] for the patch +- Setting and removing config values now catches exceptions if the config file is not writable + - Thanks to [Ken Guest][@kenguest] for the patch +- Setting and removing config values now prints a message to confirm the action and show old values +- Generic ScopeIndentSniff has been completely rewritten to improve fixing and embedded PHP detection +- Generic DisallowTabIndent and DisallowSpaceIndent sniffs now detect indents at the start of block comments +- Generic DisallowTabIndent and DisallowSpaceIndent sniffs now detect indents inside multi-line strings +- Generic DisallowTabIndentSniff now replaces tabs inside doc block comments +- Squiz ControlStructureSpacingSniff error codes have been corrected; they were reversed +- Squiz EmbeddedPhpSniff now checks open and close tag indents and fixes some errors +- Squiz FileCommentSniff no longer throws incorrect blank line before comment errors in JS files +- Squiz ClassDeclarationSniff now has better checking for blank lines after a closing brace +- Removed error Squiz.Classes.ClassDeclaration.NoNewlineAfterCloseBrace (request [#285][sq-285]) + - Already handled by Squiz.Classes.ClassDeclaration.CloseBraceSameLine + +### Fixed +- Fixed bug [#280][sq-280] : The --config-show option generates error when there is no config file + +[sq-280]: https://github.com/squizlabs/PHP_CodeSniffer/issues/280 +[sq-285]: https://github.com/squizlabs/PHP_CodeSniffer/issues/285 + +## [2.0.0RC2] - 2014-09-26 + +### Changed +- Minified JS and CSS files are now detected and skipped (fixes bug [#252][sq-252] and bug [#19899][pear-19899]) + - A warning will be added to the file so it can be found in the report and ignored in the future +- Fixed incorrect length of JS object operator tokens +- PHP tokenizer no longer converts class/function names to special tokens types + - Class/function names such as parent and true would become special tokens such as T_PARENT and T_TRUE +- PHPCS can now exit with 0 if only warnings were found (request [#262][sq-262]) + - Set the ignore_warnings_on_exit config variable to 1 to set this behaviour + - Default remains at exiting with 0 only if no errors and no warnings were found + - Also changes return value of PHP_CodeSniffer_Reporting::printReport() +- Rulesets can now set associative array properties + - property `name="[property]" type="array" value="foo=>bar,baz=>qux"` +- Generic ForbiddenFunctionsSniff now has a public property called forbiddenFunctions (request [#263][sq-263]) + - Override the property in a ruleset.xml file to define forbidden functions and their replacements + - A replacement of NULL indicates that no replacement is available + - e.g., value="delete=>unset,print=>echo,create_function=>null" + - Custom sniffs overriding this one will need to change the visibility of their member var +- Improved closure support in Generic ScopeIndentSniff +- Improved indented PHP tag support in Generic ScopeIndentSniff +- Improved fixing of mixed line indents in Generic ScopeIndentSniff +- Added conflict detection to the file fixer + - If 2 sniffs look to be conflicting, one change will be ignored to allow a fix to occur +- Generic CamelCapsFunctionNameSniff now ignores a single leading underscore + - Thanks to [Alex Slobodiskiy][@xt99] for the patch +- Standards can now be located within hidden directories (further fix for bug [#20323][pear-20323]) + - Thanks to [Klaus Purer][@klausi] for the patch +- Sniff ignore patterns now replace Win dir separators like file ignore patterns already did +- Exclude patterns now use backtick delimiters, allowing all special characters to work correctly again + - Thanks to [Jeremy Edgell][@jedgell] for the patch +- Errors converted to warnings in a ruleset (and vice versa) now retain their fixable status + - Thanks to [Alexander Obuhovich][@aik099] for the patch +- Squiz ConcatenationSpacingSniff now has a setting to specify how many spaces there should be around concat operators + - Default remains at 0 + - Override the "spacing" setting in a ruleset.xml file to change +- Added auto-fixes for Squiz InlineCommentSniff +- Generic DocCommentSniff now correctly fixes additional blank lines at the end of a comment +- Squiz OperatorBracketSniff now correctly fixes operations that include arrays +- Zend ClosingTagSniff fix now correctly leaves closing tags when followed by HTML +- Added Generic SyntaxSniff to check for syntax errors in PHP files + - Thanks to [Blaine Schmeisser][@bayleedev] for the contribution +- Added Generic OneTraitPerFileSniff to check that only one trait is defined in each file + - Thanks to [Alexander Obuhovich][@aik099] for the contribution +- Squiz DiscouragedFunctionsSniff now warns about var_dump() +- PEAR ValidFunctionNameSniff no longer throws an error for _() +- Squiz and PEAR FunctionCommentSniffs now support _() +- Generic DisallowTabIndentSniff now checks for, and fixes, mixed indents again +- Generic UpperCaseConstantSniff and LowerCaseConstantSniff now ignore function names + +### Fixed +- Fixed bug [#243][sq-243] : Missing DocBlock not detected +- Fixed bug [#248][sq-248] : FunctionCommentSniff expects ampersand on param name +- Fixed bug [#265][sq-265] : False positives with type hints in ForbiddenFunctionsSniff +- Fixed bug [#20373][pear-20373] : Inline comment sniff tab handling way +- Fixed bug [#20377][pear-20377] : Error when trying to execute phpcs with report=json +- Fixed bug [#20378][pear-20378] : Report appended to existing file if no errors found in run +- Fixed bug [#20381][pear-20381] : Invalid "Comment closer must be on a new line" + - Thanks to [Brad Kent][@bkdotcom] for the patch +- Fixed bug [#20402][pear-20402] : SVN pre-commit hook fails due to unknown argument error + +[sq-243]: https://github.com/squizlabs/PHP_CodeSniffer/issues/243 +[sq-252]: https://github.com/squizlabs/PHP_CodeSniffer/issues/252 +[sq-262]: https://github.com/squizlabs/PHP_CodeSniffer/issues/262 +[sq-263]: https://github.com/squizlabs/PHP_CodeSniffer/issues/263 +[pear-19899]: https://pear.php.net/bugs/bug.php?id=19899 +[pear-20377]: https://pear.php.net/bugs/bug.php?id=20377 +[pear-20402]: https://pear.php.net/bugs/bug.php?id=20402 + +## [1.5.5] - 2014-09-25 + +### Changed +- PHP tokenizer no longer converts class/function names to special tokens types + - Class/function names such as parent and true would become special tokens such as T_PARENT and T_TRUE +- Improved closure support in Generic ScopeIndentSniff +- Improved indented PHP tag support in Generic ScopeIndentSniff +- Generic CamelCapsFunctionNameSniff now ignores a single leading underscore + - Thanks to [Alex Slobodiskiy][@xt99] for the patch +- Standards can now be located within hidden directories (further fix for bug [#20323][pear-20323]) + - Thanks to [Klaus Purer][@klausi] for the patch +- Added Generic SyntaxSniff to check for syntax errors in PHP files + - Thanks to [Blaine Schmeisser][@bayleedev] for the contribution +- Squiz DiscouragedFunctionsSniff now warns about var_dump() +- PEAR ValidFunctionNameSniff no longer throws an error for _() +- Squiz and PEAR FunctionCommentSnif now support _() +- Generic UpperCaseConstantSniff and LowerCaseConstantSniff now ignore function names + +### Fixed +- Fixed bug [#248][sq-248] : FunctionCommentSniff expects ampersand on param name +- Fixed bug [#265][sq-265] : False positives with type hints in ForbiddenFunctionsSniff +- Fixed bug [#20373][pear-20373] : Inline comment sniff tab handling way +- Fixed bug [#20378][pear-20378] : Report appended to existing file if no errors found in run +- Fixed bug [#20381][pear-20381] : Invalid "Comment closer must be on a new line" + - Thanks to [Brad Kent][@bkdotcom] for the patch +- Fixed bug [#20386][pear-20386] : Squiz.Commenting.ClassComment.SpacingBefore thrown if first block comment + +[sq-248]: https://github.com/squizlabs/PHP_CodeSniffer/issues/248 +[sq-265]: https://github.com/squizlabs/PHP_CodeSniffer/pull/265 +[pear-20373]: https://pear.php.net/bugs/bug.php?id=20373 +[pear-20378]: https://pear.php.net/bugs/bug.php?id=20378 +[pear-20381]: https://pear.php.net/bugs/bug.php?id=20381 +[pear-20386]: https://pear.php.net/bugs/bug.php?id=20386 + +## [2.0.0RC1] - 2014-08-06 + +### Changed +- PHPCBF will now fix incorrect newline characters in a file +- PHPCBF now exits cleanly when there are no errors to fix +- Added phpcbf.bat file for Windows +- Verbose option no longer errors when using a phar file with a space in the path +- Fixed a reporting error when using HHVM + - Thanks to [Martins Sipenko][@martinssipenko] for the patch +- addFixableError() and addFixableWarning() now only return true if the fixer is enabled + - Saves checking ($phpcsFile->fixer->enabled === true) before every fix +- Added addErrorOnLine() and addWarningOnLine() to add a non-fixable violation to a line at column 1 + - Useful if you are generating errors using an external tool or parser and only know line numbers + - Thanks to [Ondřej Mirtes][@ondrejmirtes] for the patch +- CSS tokenizer now identifies embedded PHP code using the new T_EMBEDDED_PHP token type + - The entire string of PHP is contained in a single token +- PHP tokenizer contains better detection of short array syntax +- Unit test runner now also test any standards installed under the installed_paths config var +- Exclude patterns now use {} delimiters, allowing the | special character to work correctly again +- The filtering component of the --extensions argument is now ignored again when passing filenames + - Can still be used to specify a custom tokenizer for each extension when passing filenames + - If no tokenizer is specified, default values will be used for common file extensions +- Diff report now produces relative paths on Windows, where possible (further fix for bug [#20234][pear-20234]) +- If a token's content has been modified by the tab-width setting, it will now have an orig_content in the tokens array +- Generic DisallowSpaceIndent and DisallowTabIndent sniffs now check original indent content even when tab-width is set + - Previously, setting --tab-width would force both to check the indent as spaces +- Fixed a problem where PHPCBF could replace tabs with too many spaces when changing indents +- Fixed a problem that could occur with line numbers when using HHVM to check files with Windows newline characters +- Removed use of sys_get_temp_dir() as this is not supported by the min PHP version +- Squiz ArrayDeclarationSniff now supports short array syntax +- Squiz ControlSignatureSniff no longer uses the Abstract Pattern sniff + - If you are extending this sniff, you'll need to rewrite your code + - The rewrite allows this sniff to fix all control structure formatting issues it finds +- The installed_paths config var now accepts relative paths + - The paths are relative to the PHP_CodeSniffer install directory + - Thanks to [Weston Ruter][@westonruter] for the patch +- Generic ScopeIndentSniff now accounts for different open tag indents +- PEAR FunctionDeclarationSniff now ignores short arrays when checking indent + - Thanks to [Daniel Tschinder][@danez] for the patch +- PSR2 FunctionCallSignatureSniff now treats multi-line strings as a single-line argument, like arrays and closures + - Thanks to [Dawid Nowak][@MacDada] for the patch +- PSR2 UseDeclarationSniff now checks for a single space after the USE keyword +- Generic ForbiddenFunctionsSniff now detects calls to functions in the global namespace + - Thanks to [Ole Martin Handeland][@olemartinorg] for the patch +- Generic LowerCaseConstantSniff and UpperCaseConstantSniff now ignore namespaces beginning with TRUE/FALSE/NULL + - Thanks to [Renan Gonçalves][@renan] for the patch +- Squiz InlineCommentSniff no longer requires a blank line after post-statement comments (request [#20299][pear-20299]) +- Squiz SelfMemberReferenceSniff now works correctly with namespaces +- Squiz FunctionCommentSniff is now more relaxed when checking namespaced type hints +- Tab characters are now encoded in abstract pattern error messages + - Thanks to [Blaine Schmeisser][@bayleedev] for the patch +- Invalid sniff codes passed to --sniffs now show a friendly error message (request [#20313][pear-20313]) +- Generic LineLengthSniff now shows a warning if the iconv module is disabled (request [#20314][pear-20314]) +- Source report no longer shows errors if category or sniff names ends in an uppercase error + - Thanks to [Jonathan Marcil][@jmarcil] for the patch + +### Fixed +- Fixed bug [#20261][pear-20261] : phpcbf has an endless fixing loop +- Fixed bug [#20268][pear-20268] : Incorrect documentation titles in PEAR documentation +- Fixed bug [#20296][pear-20296] : new array notion in function comma check fails +- Fixed bug [#20297][pear-20297] : phar does not work when renamed it to phpcs +- Fixed bug [#20307][pear-20307] : PHP_CodeSniffer_Standards_AbstractVariableSniff analyze traits +- Fixed bug [#20308][pear-20308] : Squiz.ValidVariableNameSniff - wrong variable usage +- Fixed bug [#20309][pear-20309] : Use "member variable" term in sniff "processMemberVar" method +- Fixed bug [#20310][pear-20310] : PSR2 does not check for space after function name +- Fixed bug [#20322][pear-20322] : Display rules set to type=error even when suppressing warnings +- Fixed bug [#20323][pear-20323] : PHPCS tries to load sniffs from hidden directories +- Fixed bug [#20346][pear-20346] : Fixer endless loop with Squiz.CSS sniffs +- Fixed bug [#20355][pear-20355] : No sniffs are registered with PHAR on Windows + +[pear-20261]: https://pear.php.net/bugs/bug.php?id=20261 +[pear-20297]: https://pear.php.net/bugs/bug.php?id=20297 +[pear-20346]: https://pear.php.net/bugs/bug.php?id=20346 +[pear-20355]: https://pear.php.net/bugs/bug.php?id=20355 + +## [1.5.4] - 2014-08-06 + +### Changed +- Removed use of sys_get_temp_dir() as this is not supported by the min PHP version +- The installed_paths config var now accepts relative paths + - The paths are relative to the PHP_CodeSniffer install directory + - Thanks to [Weston Ruter][@westonruter] for the patch +- Generic ScopeIndentSniff now accounts for different open tag indents +- PEAR FunctionDeclarationSniff now ignores short arrays when checking indent + - Thanks to [Daniel Tschinder][@danez] for the patch +- PSR2 FunctionCallSignatureSniff now treats multi-line strings as a single-line argument, like arrays and closures + - Thanks to [Dawid Nowak][@MacDada] for the patch +- Generic ForbiddenFunctionsSniff now detects calls to functions in the global namespace + - Thanks to [Ole Martin Handeland][@olemartinorg] for the patch +- Generic LowerCaseConstantSniff and UpperCaseConstantSniff now ignore namespaces beginning with TRUE/FALSE/NULL + - Thanks to [Renan Gonçalves][@renan] for the patch +- Squiz InlineCommentSniff no longer requires a blank line after post-statement comments (request [#20299][pear-20299]) +- Squiz SelfMemberReferenceSniff now works correctly with namespaces +- Tab characters are now encoded in abstract pattern error messages + - Thanks to [Blaine Schmeisser][@bayleedev] for the patch +- Invalid sniff codes passed to --sniffs now show a friendly error message (request [#20313][pear-20313]) +- Generic LineLengthSniff now shows a warning if the iconv module is disabled (request [#20314][pear-20314]) +- Source report no longer shows errors if category or sniff names ends in an uppercase error + - Thanks to [Jonathan Marcil][@jmarcil] for the patch + +### Fixed +- Fixed bug [#20268][pear-20268] : Incorrect documentation titles in PEAR documentation +- Fixed bug [#20296][pear-20296] : new array notion in function comma check fails +- Fixed bug [#20307][pear-20307] : PHP_CodeSniffer_Standards_AbstractVariableSniff analyze traits +- Fixed bug [#20308][pear-20308] : Squiz.ValidVariableNameSniff - wrong variable usage +- Fixed bug [#20309][pear-20309] : Use "member variable" term in sniff "processMemberVar" method +- Fixed bug [#20310][pear-20310] : PSR2 does not check for space after function name +- Fixed bug [#20322][pear-20322] : Display rules set to type=error even when suppressing warnings +- Fixed bug [#20323][pear-20323] : PHPCS tries to load sniffs from hidden directories + +[pear-20268]: https://pear.php.net/bugs/bug.php?id=20268 +[pear-20296]: https://pear.php.net/bugs/bug.php?id=20296 +[pear-20299]: https://pear.php.net/bugs/bug.php?id=20299 +[pear-20307]: https://pear.php.net/bugs/bug.php?id=20307 +[pear-20308]: https://pear.php.net/bugs/bug.php?id=20308 +[pear-20309]: https://pear.php.net/bugs/bug.php?id=20309 +[pear-20310]: https://pear.php.net/bugs/bug.php?id=20310 +[pear-20313]: https://pear.php.net/bugs/bug.php?id=20313 +[pear-20314]: https://pear.php.net/bugs/bug.php?id=20314 +[pear-20322]: https://pear.php.net/bugs/bug.php?id=20322 +[pear-20323]: https://pear.php.net/bugs/bug.php?id=20323 + +## [2.0.0a2] - 2014-05-01 + +### Changed +- Added report type --report=info to show information about the checked code to make building a standard easier + - Checks a number of things, such as what line length you use, and spacing are brackets, but not everything + - Still highly experimental +- Generic LineLengthSniff now shows warnings for long lines referring to licence and VCS information + - It previously ignored these lines, but at the expense of performance +- Generic DisallowTabIndent and DisallowSpaceIndent sniffs no longer error when detecting mixed indent types + - Only the first type of indent found on a line (space or indent) is considered +- Lots of little performance improvements that can add up to a substantial saving over large code bases + - Added a "length" array index to tokens so you don't need to call strlen() of them, or deal with encoding + - Can now use isset() to find tokens inside the PHP_CodeSniffer_Tokens static vars instead of in_array() +- Custom reports can now specify a $recordErrors member var; this previously only worked for built-in reports + - When set to FALSE, error messages will not be recorded and only totals will be returned + - This can save significant memory while processing a large code base +- Removed dependence on PHP_Timer +- PHP tokenizer now supports DEFAULT statements opened with a T_SEMICOLON +- The Squiz and PHPCS standards have increased the max padding for statement alignment from 8 to 12 +- Squiz EchoedStringsSniff now supports statements without a semicolon, such as PHP embedded in HTML +- Squiz DoubleQuoteUsageSniff now properly replaces escaped double quotes when fixing a doubled quoted string +- Improved detection of nested IF statements that use the alternate IF/ENDIF syntax +- PSR1 CamelCapsMethodNameSniff now ignores magic methods + - Thanks to [Eser Ozvataf][@eser] for the patch +- PSR1 SideEffectsSniff now ignores methods named define() +- PSR1 and PEAR ClassDeclarationSniffs now support traits (request [#20208][pear-20208]) +- PSR2 ControlStructureSpacingSniff now allows newlines before/after parentheses + - Thanks to [Maurus Cuelenaere][@mcuelenaere] for the patch +- PSR2 ControlStructureSpacingSniff now checks TRY and CATCH statements +- Squiz SuperfluousWhitespaceSniff now detects whitespace at the end of block comment lines + - Thanks to [Klaus Purer][@klausi] for the patch +- Squiz LowercasePHPFunctionsSniff no longer reports errors for namespaced functions + - Thanks to [Max Galbusera][@maxgalbu] for the patch +- Squiz SwitchDeclarationSniff now allows exit() as a breaking statement for case/default +- Squiz ValidVariableNameSniff and Zend ValidVariableNameSniff now ignore additional PHP reserved vars + - Thanks to Mikuláš Dítě and Adrian Crepaz for the patch +- Sniff code Squiz.WhiteSpace.MemberVarSpacing.After changed to Squiz.WhiteSpace.MemberVarSpacing.Incorrect (request [#20241][pear-20241]) + +### Fixed +- Fixed bug [#20200][pear-20200] : Invalid JSON produced with specific error message +- Fixed bug [#20204][pear-20204] : Ruleset exclude checks are case sensitive +- Fixed bug [#20213][pear-20213] : Invalid error, Inline IF must be declared on single line +- Fixed bug [#20225][pear-20225] : array_merge() that takes more than one line generates error +- Fixed bug [#20230][pear-20230] : Squiz ControlStructureSpacing sniff assumes specific condition formatting +- Fixed bug [#20234][pear-20234] : phpcbf patch command absolute paths +- Fixed bug [#20240][pear-20240] : Squiz block comment sniff fails when newline present +- Fixed bug [#20247][pear-20247] : The Squiz.WhiteSpace.ControlStructureSpacing sniff and do-while + - Thanks to [Alexander Obuhovich][@aik099] for the patch +- Fixed bug [#20248][pear-20248] : The Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff sniff and empty scope +- Fixed bug [#20252][pear-20252] : Unitialized string offset when package name starts with underscore + +[pear-20234]: https://pear.php.net/bugs/bug.php?id=20234 + +## [1.5.3] - 2014-05-01 + +### Changed +- Improved detection of nested IF statements that use the alternate IF/ENDIF syntax +- PHP tokenizer now supports DEFAULT statements opened with a T_SEMICOLON +- PSR1 CamelCapsMethodNameSniff now ignores magic methods + - Thanks to [Eser Ozvataf][@eser] for the patch +- PSR1 SideEffectsSniff now ignores methods named define() +- PSR1 and PEAR ClassDeclarationSniffs now support traits (request [#20208][pear-20208]) +- PSR2 ControlStructureSpacingSniff now allows newlines before/after parentheses + - Thanks to [Maurus Cuelenaere][@mcuelenaere] for the patch +- Squiz LowercasePHPFunctionsSniff no longer reports errors for namespaced functions + - Thanks to [Max Galbusera][@maxgalbu] for the patch +- Squiz SwitchDeclarationSniff now allows exit() as a breaking statement for case/default +- Squiz ValidVariableNameSniff and Zend ValidVariableNameSniff now ignore additional PHP reserved vars + - Thanks to Mikuláš Dítě and Adrian Crepaz for the patch +- Sniff code Squiz.WhiteSpace.MemberVarSpacing.After changed to Squiz.WhiteSpace.MemberVarSpacing.Incorrect (request [#20241][pear-20241]) + +### Fixed +- Fixed bug [#20200][pear-20200] : Invalid JSON produced with specific error message +- Fixed bug [#20204][pear-20204] : Ruleset exclude checks are case sensitive +- Fixed bug [#20213][pear-20213] : Invalid error, Inline IF must be declared on single line +- Fixed bug [#20225][pear-20225] : array_merge() that takes more than one line generates error +- Fixed bug [#20230][pear-20230] : Squiz ControlStructureSpacing sniff assumes specific condition formatting +- Fixed bug [#20240][pear-20240] : Squiz block comment sniff fails when newline present +- Fixed bug [#20247][pear-20247] : The Squiz.WhiteSpace.ControlStructureSpacing sniff and do-while + - Thanks to [Alexander Obuhovich][@aik099] for the patch +- Fixed bug [#20248][pear-20248] : The Squiz_Sniffs_WhiteSpace_ControlStructureSpacingSniff sniff and empty scope +- Fixed bug [#20252][pear-20252] : Uninitialized string offset when package name starts with underscore + +[pear-20200]: https://pear.php.net/bugs/bug.php?id=20200 +[pear-20204]: https://pear.php.net/bugs/bug.php?id=20204 +[pear-20208]: https://pear.php.net/bugs/bug.php?id=20208 +[pear-20213]: https://pear.php.net/bugs/bug.php?id=20213 +[pear-20225]: https://pear.php.net/bugs/bug.php?id=20225 +[pear-20230]: https://pear.php.net/bugs/bug.php?id=20230 +[pear-20240]: https://pear.php.net/bugs/bug.php?id=20240 +[pear-20241]: https://pear.php.net/bugs/bug.php?id=20241 +[pear-20247]: https://pear.php.net/bugs/bug.php?id=20247 +[pear-20248]: https://pear.php.net/bugs/bug.php?id=20248 +[pear-20252]: https://pear.php.net/bugs/bug.php?id=20252 + +## [2.0.0a1] - 2014-02-05 + +### Changed +- Added the phpcbf script to automatically fix many errors found by the phpcs script +- Added report type --report=diff to show suggested changes to fix coding standard violations +- The --report argument now allows for custom reports to be used + - Use the full path to your custom report class as the report name +- The --extensions argument is now respected when passing filenames; not just with directories +- The --extensions argument now allows you to specify the tokenizer for each extension + - e.g., `--extensions=module/php,es/js` +- Command line arguments can now be set in ruleset files + - e.g., `arg name="report" value="summary"` (print summary report; same as `--report=summary`) + - e.g., `arg value="sp"` (print source and progress information; same as `-sp`) + - The `-vvv`, `--sniffs`, `--standard` and `-l` command line arguments cannot be set in this way +- Sniff process() methods can now optionally return a token to ignore up to + - If returned, the sniff will not be executed again until the passed token is reached in the file + - Useful if you are looking for tokens like T_OPEN_TAG but only want to process the first one +- Removed the comment parser classes and replaced it with a simple comment tokenizer + - T_DOC_COMMENT tokens are now tokenized into T_DOC_COMMENT_* tokens so they can be used more easily + - This change requires a significant rewrite of sniffs that use the comment parser + - This change requires minor changes to sniffs that listen for T_DOC_COMMENT tokens directly +- Added Generic DocCommentSniff to check generic doc block formatting + - Removed doc block formatting checks from PEAR ClassCommentSniff + - Removed doc block formatting checks from PEAR FileCommentSniff + - Removed doc block formatting checks from PEAR FunctionCommentSniff + - Removed doc block formatting checks from Squiz ClassCommentSniff + - Removed doc block formatting checks from Squiz FileCommentSniff + - Removed doc block formatting checks from Squiz FunctionCommentSniff + - Removed doc block formatting checks from Squiz VariableCommentSniff +- Squiz DocCommentAlignmentSniff has had its error codes changed + - NoSpaceBeforeTag becomes NoSpaceAfterStar + - SpaceBeforeTag becomes SpaceAfterStar + - SpaceBeforeAsterisk becomes SpaceBeforeStar +- Generic MultipleStatementAlignment now aligns assignments within a block so they fit within their max padding setting + - The sniff previously requested the padding as 1 space if max padding was exceeded + - It now aligns the assignment with surrounding assignments if it can + - Removed property ignoreMultiline as multi-line assignments are now handled correctly and should not be ignored +- Squiz FunctionClosingBraceSpaceSniff now requires a blank line before the brace in all cases except function args +- Added error Squiz.Commenting.ClassComment.SpacingAfter to ensure there are no blank lines after a class comment +- Added error Squiz.WhiteSpace.MemberVarSpacing.AfterComment to ensure there are no blank lines after a member var comment + - Fixes have also been corrected to not strip the member var comment or indent under some circumstances + - Thanks to [Mark Scherer][@dereuromark] for help with this fix +- Added error Squiz.Commenting.FunctionCommentThrowTag.Missing to ensure a throw is documented +- Removed error Squiz.Commenting.FunctionCommentThrowTag.WrongType +- Content passed via STDIN can now specify the filename to use so that sniffs can run the correct filename checks + - Ensure the first line of the content is: phpcs_input_file: /path/to/file +- Squiz coding standard now enforces no closing PHP tag at the end of a pure PHP file +- Squiz coding standard now enforces a single newline character at the end of the file +- Squiz ClassDeclarationSniff no longer checks for a PHP ending tag after a class definition +- Squiz ControlStructureSpacingSniff now checks TRY and CATCH statements as well +- Removed MySource ChannelExceptionSniff + +## [1.5.2] - 2014-02-05 + +### Changed +- Improved support for the PHP 5.5. classname::class syntax + - PSR2 SwitchDeclarationSniff no longer throws errors when this syntax is used in CASE conditions +- Improved support for negative checks of instanceOf in Squiz ComparisonOperatorUsageSniff + - Thanks to [Martin Winkel][@storeman] for the patch +- Generic FunctionCallArgumentSpacingSniff now longer complains about space before comma when using here/nowdocs + - Thanks to [Richard van Velzen][@rvanvelzen] for the patch +- Generic LowerCaseConstantSniff and UpperCaseConstantSniff now ignore class constants + - Thanks to [Kristopher Wilson][@mrkrstphr] for the patch +- PEAR FunctionCallSignatureSniff now has settings to specify how many spaces should appear before/after parentheses + - Override the 'requiredSpacesAfterOpen' and 'requiredSpacesBeforeClose' settings in a ruleset.xml file to change + - Default remains at 0 for both + - Thanks to [Astinus Eberhard][@Astinus-Eberhard] for the patch +- PSR2 ControlStructureSpacingSniff now has settings to specify how many spaces should appear before/after parentheses + - Override the 'requiredSpacesAfterOpen' and 'requiredSpacesBeforeClose' settings in a ruleset.xml file to change + - Default remains at 0 for both + - Thanks to [Astinus Eberhard][@Astinus-Eberhard] for the patch +- Squiz ForEachLoopDeclarationSniff now has settings to specify how many spaces should appear before/after parentheses + - Override the 'requiredSpacesAfterOpen' and 'requiredSpacesBeforeClose' settings in a ruleset.xml file to change + - Default remains at 0 for both + - Thanks to [Astinus Eberhard][@Astinus-Eberhard] for the patch +- Squiz ForLoopDeclarationSniff now has settings to specify how many spaces should appear before/after parentheses + - Override the 'requiredSpacesAfterOpen' and 'requiredSpacesBeforeClose' settings in a ruleset.xml file to change + - Default remains at 0 for both + - Thanks to [Astinus Eberhard][@Astinus-Eberhard] for the patch +- Squiz FunctionDeclarationArgumentSpacingSniff now has settings to specify how many spaces should appear before/after parentheses + - Override the 'requiredSpacesAfterOpen' and 'requiredSpacesBeforeClose' settings in a ruleset.xml file to change + - Default remains at 0 for both + - Thanks to [Astinus Eberhard][@Astinus-Eberhard] for the patch +- Removed UnusedFunctionParameter, CyclomaticComplexity and NestingLevel from the Squiz standard +- Generic FixmeSniff and TodoSniff now work correctly with accented characters + +### Fixed +- Fixed bug [#20145][pear-20145] : Custom ruleset preferences directory over installed standard +- Fixed bug [#20147][pear-20147] : phpcs-svn-pre-commit - no more default error report +- Fixed bug [#20151][pear-20151] : Problem handling "if(): ... else: ... endif;" syntax +- Fixed bug [#20190][pear-20190] : Invalid regex in Squiz_Sniffs_WhiteSpace_SuperfluousWhitespaceSniff + +[pear-20145]: https://pear.php.net/bugs/bug.php?id=20145 +[pear-20147]: https://pear.php.net/bugs/bug.php?id=20147 +[pear-20151]: https://pear.php.net/bugs/bug.php?id=20151 +[pear-20190]: https://pear.php.net/bugs/bug.php?id=20190 + +## [1.5.1] - 2013-12-12 + +### Changed +- Config values can now be set at runtime using the command line argument `--runtime-set key value` + - Runtime values are the same as config values, but are not written to the main config file + - Thanks to [Wim Godden][@wimg] for the patch +- Config values can now be set in ruleset files + - e.g., config name="zend_ca_path" value="/path/to/ZendCodeAnalyzer" + - Can not be used to set config values that override command line values, such as show_warnings + - Thanks to [Jonathan Marcil][@jmarcil] for helping with the patch +- Added a new installed_paths config value to allow for the setting of directories that contain standards + - By default, standards have to be installed into the CodeSniffer/Standards directory to be considered installed + - New config value allows a list of paths to be set in addition to this internal path + - Installed standards appear when using the -i arg, and can be referenced in rulesets using only their name + - Set paths by running: phpcs --config-set installed_paths /path/one,/path/two,... +- PSR2 ClassDeclarationSniff now allows a list of extended interfaces to be split across multiple lines +- Squiz DoubleQuoteUsageSniff now allows \b in double quoted strings +- Generic ForbiddenFunctionsSniff now ignores object creation + - This is a further fix for bug [#20100][pear-20100] : incorrect Function mysql() has been deprecated report + +### Fixed +- Fixed bug [#20136][pear-20136] : Squiz_Sniffs_WhiteSpace_ScopeKeywordSpacingSniff and Traits +- Fixed bug [#20138][pear-20138] : Protected property underscore and camel caps issue (in trait with Zend) + - Thanks to [Gaetan Rousseau][@Naelyth] for the patch +- Fixed bug [#20139][pear-20139] : No report file generated on success + +[pear-20136]: https://pear.php.net/bugs/bug.php?id=20136 +[pear-20138]: https://pear.php.net/bugs/bug.php?id=20138 +[pear-20139]: https://pear.php.net/bugs/bug.php?id=20139 + +## [1.5.0] - 2013-11-28 + +### Changed +- Doc generation is now working again for installed standards + - Includes a fix for limiting the docs to specific sniffs +- Generic ScopeIndentSniff now allows for ignored tokens to be set via ruleset.xml files + - E.g., to ignore comments, override a property using: + - name="ignoreIndentationTokens" type="array" value="T_COMMENT,T_DOC_COMMENT" +- PSR2 standard now ignores comments when checking indentation rules +- Generic UpperCaseConstantNameSniff no longer reports errors where constants are used (request [#20090][pear-20090]) + - It still reports errors where constants are defined +- Individual messages can now be excluded in ruleset.xml files using the exclude tag (request [#20091][pear-20091]) + - Setting message severity to 0 continues to be supported +- Squiz OperatorSpacingSniff no longer throws errors for the ?: short ternary operator + - Thanks to [Antoine Musso][@hashar] for the patch +- Comment parser now supports non-English characters when splitting comment lines into words + - Thanks to [Nik Sun][@CandySunPlus] for the patch +- Exit statements are now recognised as valid closers for CASE and DEFAULT blocks + - Thanks to [Maksim Kochkin][@ksimka] for the patch +- PHP_CodeSniffer_CLI::process() can now be passed an incomplete array of CLI values + - Missing values will be set to the CLI defaults + - Thanks to [Maksim Kochkin][@ksimka] for the patch + +### Fixed +- Fixed bug [#20093][pear-20093] : Bug with ternary operator token +- Fixed bug [#20097][pear-20097] : `CLI.php` throws error in PHP 5.2 +- Fixed bug [#20100][pear-20100] : incorrect Function mysql() has been deprecated report +- Fixed bug [#20119][pear-20119] : PHP warning: invalid argument to str_repeat() in SVN blame report with -s +- Fixed bug [#20123][pear-20123] : PSR2 complains about an empty second statement in for-loop +- Fixed bug [#20131][pear-20131] : PHP errors in svnblame report, if there are files not under version control +- Fixed bug [#20133][pear-20133] : Allow "HG: hg_id" as value for @version tag + +[pear-20090]: https://pear.php.net/bugs/bug.php?id=20090 +[pear-20091]: https://pear.php.net/bugs/bug.php?id=20091 +[pear-20093]: https://pear.php.net/bugs/bug.php?id=20093 + +## [1.4.8] - 2013-11-26 + +### Changed +- Generic ScopeIndentSniff now allows for ignored tokens to be set via ruleset.xml files + - E.g., to ignore comments, override a property using: + - name="ignoreIndentationTokens" type="array" value="T_COMMENT,T_DOC_COMMENT" +- PSR2 standard now ignores comments when checking indentation rules +- Squiz OperatorSpacingSniff no longer throws errors for the ?: short ternary operator + - Thanks to [Antoine Musso][@hashar] for the patch +- Comment parser now supports non-English characters when splitting comment lines into words + - Thanks to [Nik Sun][@CandySunPlus] for the patch +- Exit statements are now recognised as valid closers for CASE and DEFAULT blocks + - Thanks to [Maksim Kochkin][@ksimka] for the patch +- PHP_CodeSniffer_CLI::process() can now be passed an incomplete array of CLI values + - Missing values will be set to the CLI defaults + - Thanks to [Maksim Kochkin][@ksimka] for the patch + +### Fixed +- Fixed bug [#20097][pear-20097] : `CLI.php` throws error in PHP 5.2 +- Fixed bug [#20100][pear-20100] : incorrect Function mysql() has been deprecated report +- Fixed bug [#20119][pear-20119] : PHP warning: invalid argument to str_repeat() in SVN blame report with -s +- Fixed bug [#20123][pear-20123] : PSR2 complains about an empty second statement in for-loop +- Fixed bug [#20131][pear-20131] : PHP errors in svnblame report, if there are files not under version control +- Fixed bug [#20133][pear-20133] : Allow "HG: hg_id" as value for @version tag + +[pear-20097]: https://pear.php.net/bugs/bug.php?id=20097 +[pear-20100]: https://pear.php.net/bugs/bug.php?id=20100 +[pear-20119]: https://pear.php.net/bugs/bug.php?id=20119 +[pear-20123]: https://pear.php.net/bugs/bug.php?id=20123 +[pear-20131]: https://pear.php.net/bugs/bug.php?id=20131 +[pear-20133]: https://pear.php.net/bugs/bug.php?id=20133 + +## [1.5.0RC4] - 2013-09-26 + +### Changed +- You can now restrict violations to individual sniff codes using the --sniffs command line argument + - Previously, this only restricted violations to an entire sniff and not individual messages + - If you have scripts calling PHP_CodeSniffer::process() or creating PHP_CodeSniffer_File objects, you must update your code + - The array of restrictions passed to PHP_CodeSniffer::process() must now be an array of sniff codes instead of class names + - The PHP_CodeSniffer_File::__construct() method now requires an array of restrictions to be passed +- Doc generation is now working again +- Progress information now shows the percentage complete at the end of each line +- Added report type --report=junit to show the error list in a JUnit compatible format + - Thanks to [Oleg Lobach][@bladeofsteel] for the contribution +- Added support for the PHP 5.4 callable type hint +- Fixed problem where some file content could be ignored when checking STDIN +- Version information is now printed when installed via composer or run from a Git clone (request [#20050][pear-20050]) +- Added Squiz DisallowBooleanStatementSniff to ban boolean operators outside of control structure conditions +- The CSS tokenizer is now more reliable when encountering 'list' and 'break' strings +- Coding standard ignore comments can now appear instead doc blocks as well as inline comments + - Thanks to [Stuart Langley][@sjlangley] for the patch +- Generic LineLengthSniff now ignores SVN URL and Head URL comments + - Thanks to [Karl DeBisschop][@kdebisschop] for the patch +- PEAR MultiLineConditionSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- PEAR MultiLineAssignmentSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- PEAR FunctionDeclarationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- Squiz SwitchDeclarationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- Squiz CSS IndentationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Hugo Fonseca][@fonsecas72] for the patch +- Squiz and MySource File and Function comment sniffs now allow all tags and don't require a particular licence +- Squiz standard now allows lines to be 120 characters long before warning; up from 85 +- Squiz LowercaseStyleDefinitionSniff no longer throws errors for class names in nested style definitions +- Squiz ClassFileNameSniff no longer throws errors when checking STDIN +- Squiz CSS sniffs no longer generate errors for IE filters +- Squiz CSS IndentationSniff no longer sees comments as blank lines +- Squiz LogicalOperatorSpacingSniff now ignores whitespace at the end of a line +- Squiz.Scope.MethodScope.Missing error message now mentions 'visibility' instead of 'scope modifier' + - Thanks to [Renat Akhmedyanov][@r3nat] for the patch +- Added support for the PSR2 multi-line arguments errata +- The PSR2 standard no longer throws errors for additional spacing after a type hint +- PSR UseDeclarationSniff no longer throws errors for USE statements inside TRAITs + +### Fixed +- Fixed cases where code was incorrectly assigned the T_GOTO_LABEL token when used in a complex CASE condition +- Fixed bug [#20026][pear-20026] : Check for multi-line arrays that should be single-line is slightly wrong + - Adds new error message for single-line arrays that end with a comma +- Fixed bug [#20029][pear-20029] : ForbiddenFunction sniff incorrectly recognizes methods in USE clauses +- Fixed bug [#20043][pear-20043] : Mis-interpretation of Foo::class +- Fixed bug [#20044][pear-20044] : PSR1 camelCase check does not ignore leading underscores +- Fixed bug [#20045][pear-20045] : Errors about indentation for closures with multi-line 'use' in functions +- Fixed bug [#20051][pear-20051] : Undefined index: scope_opener / scope_closer + - Thanks to [Anthon Pang][@robocoder] for the patch + +[pear-20051]: https://pear.php.net/bugs/bug.php?id=20051 + +## [1.4.7] - 2013-09-26 + +### Changed +- Added report type --report=junit to show the error list in a JUnit compatible format + - Thanks to [Oleg Lobach][@bladeofsteel] for the contribution +- Added support for the PHP 5.4 callable type hint +- Fixed problem where some file content could be ignored when checking STDIN +- Version information is now printed when installed via composer or run from a Git clone (request [#20050][pear-20050]) +- The CSS tokenizer is now more reliable when encountering 'list' and 'break' strings +- Coding standard ignore comments can now appear instead doc blocks as well as inline comments + - Thanks to [Stuart Langley][@sjlangley] for the patch +- Generic LineLengthSniff now ignores SVN URL and Head URL comments + - Thanks to [Karl DeBisschop][@kdebisschop] for the patch +- PEAR MultiLineConditionSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- PEAR MultiLineAssignmentSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- PEAR FunctionDeclarationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- Squiz SwitchDeclarationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Szabolcs Sulik][@blerou] for the patch +- Squiz CSS IndentationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the 'indent' setting in a ruleset.xml file to change + - Thanks to [Hugo Fonseca][@fonsecas72] for the patch +- Squiz and MySource File and Function comment sniffs now allow all tags and don't require a particular licence +- Squiz LowercaseStyleDefinitionSniff no longer throws errors for class names in nested style definitions +- Squiz ClassFileNameSniff no longer throws errors when checking STDIN +- Squiz CSS sniffs no longer generate errors for IE filters +- Squiz CSS IndentationSniff no longer sees comments as blank lines +- Squiz LogicalOperatorSpacingSniff now ignores whitespace at the end of a line +- Squiz.Scope.MethodScope.Missing error message now mentions 'visibility' instead of 'scope modifier' + - Thanks to [Renat Akhmedyanov][@r3nat] for the patch +- Added support for the PSR2 multi-line arguments errata +- The PSR2 standard no longer throws errors for additional spacing after a type hint +- PSR UseDeclarationSniff no longer throws errors for USE statements inside TRAITs + +### Fixed +- Fixed bug [#20026][pear-20026] : Check for multi-line arrays that should be single-line is slightly wrong + - Adds new error message for single-line arrays that end with a comma +- Fixed bug [#20029][pear-20029] : ForbiddenFunction sniff incorrectly recognizes methods in USE clauses +- Fixed bug [#20043][pear-20043] : Mis-interpretation of Foo::class +- Fixed bug [#20044][pear-20044] : PSR1 camelCase check does not ignore leading underscores +- Fixed bug [#20045][pear-20045] : Errors about indentation for closures with multi-line 'use' in functions + +[pear-20026]: https://pear.php.net/bugs/bug.php?id=20026 +[pear-20029]: https://pear.php.net/bugs/bug.php?id=20029 +[pear-20043]: https://pear.php.net/bugs/bug.php?id=20043 +[pear-20044]: https://pear.php.net/bugs/bug.php?id=20044 +[pear-20045]: https://pear.php.net/bugs/bug.php?id=20045 +[pear-20050]: https://pear.php.net/bugs/bug.php?id=20050 + +## [1.5.0RC3] - 2013-07-25 + +### Changed +- Added report type --report=json to show the error list and total counts for all checked files + - Thanks to [Jeffrey Fisher][@jeffslofish] for the contribution +- PHP_CodeSniffer::isCamelCaps now allows for acronyms at the start of a string if the strict flag is FALSE + - acronyms are defined as at least 2 uppercase characters in a row + - e.g., the following is now valid camel caps with strict set to FALSE: XMLParser +- The PHP tokenizer now tokenizes goto labels as T_GOTO_LABEL instead of T_STRING followed by T_COLON +- The JS tokenizer now has support for the T_THROW token +- Symlinked directories inside CodeSniffer/Standards and in ruleset.xml files are now supported + - Only available since PHP 5.2.11 and 5.3.1 + - Thanks to [Maik Penz][@goatherd] for the patch +- The JS tokenizer now correctly identifies T_INLINE_ELSE tokens instead of leaving them as T_COLON + - Thanks to [Arnout Boks][@aboks] for the patch +- Explaining a standard (phpcs -e) that uses namespaces now works correctly +- Restricting a check to specific sniffs (phpcs --sniffs=...) now works correctly with namespaced sniffs + - Thanks to [Maik Penz][@goatherd] for the patch +- Docs added for the entire Generic standard, and many sniffs from other standards are now documented as well + - Thanks to [Spencer Rinehart][@nubs] for the contribution +- Clearer error message for when the sniff class name does not match the directory structure +- Generated HTML docs now correctly show the open PHP tag in code comparison blocks +- Added Generic InlineHTMLSniff to ensure a file only contains PHP code +- Added Squiz ShorthandSizeSniff to check that CSS sizes are using shorthand notation only when 1 or 2 values are used +- Added Squiz ForbiddenStylesSniff to ban the use of some deprecated browser-specific styles +- Added Squiz NamedColoursSniff to ban the use of colour names +- PSR2 standard no longer enforces no whitespace between the closing parenthesis of a function call and the semicolon +- PSR2 ClassDeclarationSniff now ignores empty classes when checking the end brace position +- PSR2 SwitchDeclarationSniff no longer reports errors for empty lines between CASE statements +- PEAR ObjectOperatorIndentSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the indent setting in a ruleset.xml file to change + - Thanks to [Andrey Mindubaev][@covex-nn] for the patch +- Squiz FileExtensionSniff now supports traits + - Thanks to [Lucas Green][@mythril] for the patch +- Squiz ArrayDeclarationSniff no longer reports errors for no comma at the end of a line that contains a function call +- Squiz SwitchDeclarationSniff now supports T_CONTINUE and T_THROW as valid case/default breaking statements +- Squiz CommentedOutCodeSniff is now better at ignoring commented out HTML, XML and regular expressions +- Squiz DisallowComparisonAssignmentSniff no longer throws errors for the third expression in a FOR statement +- Squiz ColourDefinitionSniff no longer throws errors for some CSS class names +- Squiz ControlStructureSpacingSniff now supports all types of CASE/DEFAULT breaking statements +- Generic CallTimePassByReferenceSniff now reports errors for functions called using a variable + - Thanks to [Maik Penz][@goatherd] for the patch +- Generic ConstructorNameSniff no longer throws a notice for abstract constructors inside abstract classes + - Thanks to [Spencer Rinehart][@nubs] for the patch +- Squiz ComparisonOperatorUsageSniff now checks inside elseif statements + - Thanks to [Arnout Boks][@aboks] for the patch +- Squiz OperatorSpacingSniff now reports errors for no spacing around inline then and else tokens + - Thanks to [Arnout Boks][@aboks] for the patch + +### Fixed +- Fixed bug [#19811][pear-19811] : Comments not ignored in all cases in AbstractPatternSniff + - Thanks to [Erik Wiffin][@erikwiffin] for the patch +- Fixed bug [#19892][pear-19892] : ELSE with no braces causes incorrect SWITCH break statement indentation error +- Fixed bug [#19897][pear-19897] : Indenting warnings in templates not consistent +- Fixed bug [#19908][pear-19908] : PEAR MultiLineCondition Does Not Apply elseif +- Fixed bug [#19930][pear-19930] : option --report-file generate an empty file +- Fixed bug [#19935][pear-19935] : notify-send reports do not vanish in gnome-shell + - Thanks to [Christian Weiske][@cweiske] for the patch +- Fixed bug [#19944][pear-19944] : docblock squiz sniff "return void" trips over return in lambda function +- Fixed bug [#19953][pear-19953] : PSR2 - Spaces before interface name for abstract class +- Fixed bug [#19956][pear-19956] : phpcs warns for Type Hint missing Resource +- Fixed bug [#19957][pear-19957] : Does not understand trait method aliasing +- Fixed bug [#19968][pear-19968] : Permission denied on excluded directory +- Fixed bug [#19969][pear-19969] : Sniffs with namespace not recognized in reports +- Fixed bug [#19997][pear-19997] : Class names incorrectly detected as constants + +[pear-19930]: https://pear.php.net/bugs/bug.php?id=19930 + +## [1.4.6] - 2013-07-25 + +### Changed +- Added report type --report=json to show the error list and total counts for all checked files + - Thanks to [Jeffrey Fisher][@jeffslofish] for the contribution +- The JS tokenizer now has support for the T_THROW token +- Symlinked directories inside CodeSniffer/Standards and in ruleset.xml files are now supported + - Only available since PHP 5.2.11 and 5.3.1 + - Thanks to [Maik Penz][@goatherd] for the patch +- The JS tokenizer now correctly identifies T_INLINE_ELSE tokens instead of leaving them as T_COLON + - Thanks to [Arnout Boks][@aboks] for the patch +- Explaining a standard (phpcs -e) that uses namespaces now works correctly +- Restricting a check to specific sniffs (phpcs --sniffs=...) now works correctly with namespaced sniffs + - Thanks to [Maik Penz][@goatherd] for the patch +- Docs added for the entire Generic standard, and many sniffs from other standards are now documented as well + - Thanks to [Spencer Rinehart][@nubs] for the contribution +- Clearer error message for when the sniff class name does not match the directory structure +- Generated HTML docs now correctly show the open PHP tag in code comparison blocks +- Added Generic InlineHTMLSniff to ensure a file only contains PHP code +- Added Squiz ShorthandSizeSniff to check that CSS sizes are using shorthand notation only when 1 or 2 values are used +- Added Squiz ForbiddenStylesSniff to ban the use of some deprecated browser-specific styles +- Added Squiz NamedColoursSniff to ban the use of colour names +- PSR2 standard no longer enforces no whitespace between the closing parenthesis of a function call and the semicolon +- PSR2 ClassDeclarationSniff now ignores empty classes when checking the end brace position +- PSR2 SwitchDeclarationSniff no longer reports errors for empty lines between CASE statements +- PEAR ObjectOperatorIndentSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the indent setting in a ruleset.xml file to change + - Thanks to [Andrey Mindubaev][@covex-nn] for the patch +- Squiz FileExtensionSniff now supports traits + - Thanks to [Lucas Green][@mythril] for the patch +- Squiz ArrayDeclarationSniff no longer reports errors for no comma at the end of a line that contains a function call +- Squiz SwitchDeclarationSniff now supports T_CONTINUE and T_THROW as valid case/default breaking statements +- Squiz CommentedOutCodeSniff is now better at ignoring commented out HTML, XML and regular expressions +- Squiz DisallowComparisonAssignmentSniff no longer throws errors for the third expression in a FOR statement +- Squiz ColourDefinitionSniff no longer throws errors for some CSS class names +- Squiz ControlStructureSpacingSniff now supports all types of CASE/DEFAULT breaking statements +- Generic CallTimePassByReferenceSniff now reports errors for functions called using a variable + - Thanks to [Maik Penz][@goatherd] for the patch +- Generic ConstructorNameSniff no longer throws a notice for abstract constructors inside abstract classes + - Thanks to [Spencer Rinehart][@nubs] for the patch +- Squiz ComparisonOperatorUsageSniff now checks inside elseif statements + - Thanks to [Arnout Boks][@aboks] for the patch +- Squiz OperatorSpacingSniff now reports errors for no spacing around inline then and else tokens + - Thanks to [Arnout Boks][@aboks] for the patch + +### Fixed +- Fixed bug [#19811][pear-19811] : Comments not ignored in all cases in AbstractPatternSniff + - Thanks to [Erik Wiffin][@erikwiffin] for the patch +- Fixed bug [#19892][pear-19892] : ELSE with no braces causes incorrect SWITCH break statement indentation error +- Fixed bug [#19897][pear-19897] : Indenting warnings in templates not consistent +- Fixed bug [#19908][pear-19908] : PEAR MultiLineCondition Does Not Apply elseif +- Fixed bug [#19913][pear-19913] : Running phpcs in interactive mode causes warnings + - Thanks to [Harald Franndorfer][pear-gemineye] for the patch +- Fixed bug [#19935][pear-19935] : notify-send reports do not vanish in gnome-shell + - Thanks to [Christian Weiske][@cweiske] for the patch +- Fixed bug [#19944][pear-19944] : docblock squiz sniff "return void" trips over return in lambda function +- Fixed bug [#19953][pear-19953] : PSR2 - Spaces before interface name for abstract class +- Fixed bug [#19956][pear-19956] : phpcs warns for Type Hint missing Resource +- Fixed bug [#19957][pear-19957] : Does not understand trait method aliasing +- Fixed bug [#19968][pear-19968] : Permission denied on excluded directory +- Fixed bug [#19969][pear-19969] : Sniffs with namespace not recognized in reports +- Fixed bug [#19997][pear-19997] : Class names incorrectly detected as constants + +[pear-19811]: https://pear.php.net/bugs/bug.php?id=19811 +[pear-19892]: https://pear.php.net/bugs/bug.php?id=19892 +[pear-19897]: https://pear.php.net/bugs/bug.php?id=19897 +[pear-19908]: https://pear.php.net/bugs/bug.php?id=19908 +[pear-19913]: https://pear.php.net/bugs/bug.php?id=19913 +[pear-19935]: https://pear.php.net/bugs/bug.php?id=19935 +[pear-19944]: https://pear.php.net/bugs/bug.php?id=19944 +[pear-19953]: https://pear.php.net/bugs/bug.php?id=19953 +[pear-19956]: https://pear.php.net/bugs/bug.php?id=19956 +[pear-19957]: https://pear.php.net/bugs/bug.php?id=19957 +[pear-19968]: https://pear.php.net/bugs/bug.php?id=19968 +[pear-19969]: https://pear.php.net/bugs/bug.php?id=19969 +[pear-19997]: https://pear.php.net/bugs/bug.php?id=19997 + +## [1.5.0RC2] - 2013-04-04 + +### Changed +- Ruleset processing has been rewritten to be more predictable + - Provides much better support for relative paths inside ruleset files + - May mean that sniffs that were previously ignored are now being included when importing external rulesets + - Ruleset processing output can be seen by using the -vv command line argument + - Internal sniff registering functions have all changed, so please review custom scripts +- You can now pass multiple coding standards on the command line, comma separated (request [#19144][pear-19144]) + - Works with built-in or custom standards and rulesets, or a mix of both +- You can now exclude directories or whole standards in a ruleset XML file (request [#19731][pear-19731]) + - e.g., exclude "Generic.Commenting" or just "Generic" + - You can also pass in a path to a directory instead, if you know it +- Added Generic LowerCaseKeywordSniff to ensure all PHP keywords are defined in lowercase + - The PSR2 and Squiz standards now use this sniff +- Added Generic SAPIUsageSniff to ensure the `PHP_SAPI` constant is used instead of `php_sapi_name()` (request [#19863][pear-19863]) +- Squiz FunctionSpacingSniff now has a setting to specify how many lines there should between functions (request [#19843][pear-19843]) + - Default remains at 2 + - Override the "spacing" setting in a ruleset.xml file to change +- Squiz LowercasePHPFunctionSniff no longer throws errors for the limited set of PHP keywords it was checking + - Add a rule for Generic.PHP.LowerCaseKeyword to your ruleset to replicate this functionality +- Added support for the PHP 5.4 T_CALLABLE token so it can be used in lower PHP versions +- Generic EndFileNoNewlineSniff now supports checking of CSS and JS files +- PSR2 SwitchDeclarationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the indent setting in a ruleset.xml file to change + - Thanks to [Asher Snyder][@asnyder] for the patch +- Generic ScopeIndentSniff now has a setting to specify a list of tokens that should be ignored + - The first token on the line is checked and the whole line is ignored if the token is in the array + - Thanks to [Eloy Lafuente][@stronk7] for the patch +- Squiz LowercaseClassKeywordsSniff now checks for the TRAIT keyword + - Thanks to [Anthon Pang][@robocoder] for the patch +- If you create your own PHP_CodeSniffer object, PHPCS will no longer exit when an unknown argument is found + - This allows you to create wrapper scripts for PHPCS more easily +- PSR2 MethodDeclarationSniff no longer generates a notice for methods named "_" + - Thanks to [Bart S][@zBart] for the patch +- Squiz BlockCommentSniff no longer reports that a blank line between a scope closer and block comment is invalid +- Generic DuplicateClassNameSniff no longer reports an invalid error if multiple PHP open tags exist in a file +- Generic DuplicateClassNameSniff no longer reports duplicate errors if multiple PHP open tags exist in a file + +### Fixed +- Fixed bug [#19819][pear-19819] : Freeze with syntax error in use statement +- Fixed bug [#19820][pear-19820] : Wrong message level in Generic_Sniffs_CodeAnalysis_EmptyStatementSniff +- Fixed bug [#19859][pear-19859] : CodeSniffer::setIgnorePatterns API changed +- Fixed bug [#19871][pear-19871] : findExtendedClassName doesn't return FQCN on namespaced classes +- Fixed bug [#19879][pear-19879] : bitwise and operator interpreted as reference by value + +[pear-19144]: https://pear.php.net/bugs/bug.php?id=19144 +[pear-19731]: https://pear.php.net/bugs/bug.php?id=19731 + +## [1.4.5] - 2013-04-04 + +### Changed +- Added Generic LowerCaseKeywordSniff to ensure all PHP keywords are defined in lowercase + - The PSR2 and Squiz standards now use this sniff +- Added Generic SAPIUsageSniff to ensure the `PHP_SAPI` constant is used instead of `php_sapi_name()` (request [#19863][pear-19863]) +- Squiz FunctionSpacingSniff now has a setting to specify how many lines there should between functions (request [#19843][pear-19843]) + - Default remains at 2 + - Override the "spacing" setting in a ruleset.xml file to change +- Squiz LowercasePHPFunctionSniff no longer throws errors for the limited set of PHP keywords it was checking + - Add a rule for Generic.PHP.LowerCaseKeyword to your ruleset to replicate this functionality +- Added support for the PHP 5.4 T_CALLABLE token so it can be used in lower PHP versions +- Generic EndFileNoNewlineSniff now supports checking of CSS and JS files +- PSR2 SwitchDeclarationSniff now has a setting to specify how many spaces code should be indented + - Default remains at 4; override the indent setting in a ruleset.xml file to change + - Thanks to [Asher Snyder][@asnyder] for the patch +- Generic ScopeIndentSniff now has a setting to specify a list of tokens that should be ignored + - The first token on the line is checked and the whole line is ignored if the token is in the array + - Thanks to [Eloy Lafuente][@stronk7] for the patch +- Squiz LowercaseClassKeywordsSniff now checks for the TRAIT keyword + - Thanks to [Anthon Pang][@robocoder] for the patch +- If you create your own PHP_CodeSniffer object, PHPCS will no longer exit when an unknown argument is found + - This allows you to create wrapper scripts for PHPCS more easily +- PSR2 MethodDeclarationSniff no longer generates a notice for methods named "_" + - Thanks to [Bart S][@zBart] for the patch +- Squiz BlockCommentSniff no longer reports that a blank line between a scope closer and block comment is invalid +- Generic DuplicateClassNameSniff no longer reports an invalid error if multiple PHP open tags exist in a file +- Generic DuplicateClassNameSniff no longer reports duplicate errors if multiple PHP open tags exist in a file + +### Fixed +- Fixed bug [#19819][pear-19819] : Freeze with syntax error in use statement +- Fixed bug [#19820][pear-19820] : Wrong message level in Generic_Sniffs_CodeAnalysis_EmptyStatementSniff +- Fixed bug [#19859][pear-19859] : CodeSniffer::setIgnorePatterns API changed +- Fixed bug [#19871][pear-19871] : findExtendedClassName doesn't return FQCN on namespaced classes +- Fixed bug [#19879][pear-19879] : bitwise and operator interpreted as reference by value + +[pear-19819]: https://pear.php.net/bugs/bug.php?id=19819 +[pear-19820]: https://pear.php.net/bugs/bug.php?id=19820 +[pear-19843]: https://pear.php.net/bugs/bug.php?id=19843 +[pear-19859]: https://pear.php.net/bugs/bug.php?id=19859 +[pear-19863]: https://pear.php.net/bugs/bug.php?id=19863 +[pear-19871]: https://pear.php.net/bugs/bug.php?id=19871 +[pear-19879]: https://pear.php.net/bugs/bug.php?id=19879 + +## [1.5.0RC1] - 2013-02-08 + +### Changed +- Reports have been completely rewritten to consume far less memory + - Each report is incrementally written to the file system during a run and then printed out when the run ends + - There is no longer a need to keep the list of errors and warnings in memory during a run +- Multi-file sniff support has been removed because they are too memory intensive + - If you have a custom multi-file sniff, you can convert it into a standard sniff quite easily + - See `CodeSniffer/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php` for an example + +## [1.4.4] - 2013-02-07 + +### Changed +- Ignored lines no longer cause the summary report to show incorrect error and warning counts + - Thanks to [Bert Van Hauwaert][@becoded] for the patch +- Added Generic CSSLintSniff to run CSSLint over a CSS file and report warnings + - Set full command to run CSSLint using phpcs --config-set csslint_path /path/to/csslint + - Thanks to [Roman Levishchenko][@index0h] for the contribution +- Added PSR2 ControlStructureSpacingSniff to ensure there are no spaces before and after parenthesis in control structures + - Fixes bug [#19732][pear-19732] : PSR2: some control structures errors not reported +- Squiz commenting sniffs now support non-English characters when checking for capital letters + - Thanks to [Roman Levishchenko][@index0h] for the patch +- Generic EndFileNewlineSniff now supports JS and CSS files + - Thanks to [Denis Ryabkov][@dryabkov] for the patch +- PSR1 SideEffectsSniff no longer reports constant declarations as side effects +- Notifysend report now supports notify-send versions before 0.7.3 + - Thanks to [Ken Guest][@kenguest] for the patch +- PEAR and Squiz FunctionCommentSniffs no longer report errors for misaligned argument comments when they are blank + - Thanks to [Thomas Peterson][@boonkerz] for the patch +- Squiz FunctionDeclarationArgumentSpacingSniff now works correctly for equalsSpacing values greater than 0 + - Thanks to [Klaus Purer][@klausi] for the patch +- Squiz SuperfluousWhitespaceSniff no longer throws errors for CSS files with no newline at the end +- Squiz SuperfluousWhitespaceSniff now allows a single newline at the end of JS and CSS files + +### Fixed +- Fixed bug [#19755][pear-19755] : Token of T_CLASS type has no scope_opener and scope_closer keys +- Fixed bug [#19759][pear-19759] : Squiz.PHP.NonExecutableCode fails for return function()... +- Fixed bug [#19763][pear-19763] : Use statements for traits not recognised correctly for PSR2 code style +- Fixed bug [#19764][pear-19764] : Instead of for traits throws uppercase constant name errors +- Fixed bug [#19772][pear-19772] : PSR2_Sniffs_Namespaces_UseDeclarationSniff does not properly recognize last use +- Fixed bug [#19775][pear-19775] : False positive in NonExecutableCode sniff when not using curly braces +- Fixed bug [#19782][pear-19782] : Invalid found size functions in loop when using object operator +- Fixed bug [#19799][pear-19799] : config folder is not created automatically +- Fixed bug [#19804][pear-19804] : JS Tokenizer wrong /**/ parsing + +[pear-19732]: https://pear.php.net/bugs/bug.php?id=19732 +[pear-19755]: https://pear.php.net/bugs/bug.php?id=19755 +[pear-19759]: https://pear.php.net/bugs/bug.php?id=19759 +[pear-19763]: https://pear.php.net/bugs/bug.php?id=19763 +[pear-19764]: https://pear.php.net/bugs/bug.php?id=19764 +[pear-19772]: https://pear.php.net/bugs/bug.php?id=19772 +[pear-19775]: https://pear.php.net/bugs/bug.php?id=19775 +[pear-19782]: https://pear.php.net/bugs/bug.php?id=19782 +[pear-19799]: https://pear.php.net/bugs/bug.php?id=19799 +[pear-19804]: https://pear.php.net/bugs/bug.php?id=19804 + +## [1.4.3] - 2012-12-04 + +### Changed +- Added support for the PHP 5.5 T_FINALLY token to detect try/catch/finally statements +- Added empty CodeSniffer.conf to enable config settings for Composer installs +- Added Generic EndFileNoNewlineSniff to ensure there is no newline at the end of a file +- Autoloader can now load PSR-0 compliant classes + - Thanks to [Maik Penz][@goatherd] for the patch +- Squiz NonExecutableCodeSniff no longer throws error for multi-line RETURNs inside CASE statements + - Thanks to [Marc Ypes][@ceeram] for the patch +- Squiz OperatorSpacingSniff no longer reports errors for negative numbers inside inline THEN statements + - Thanks to [Klaus Purer][@klausi] for the patch +- Squiz OperatorSpacingSniff no longer reports errors for the assignment of operations involving negative numbers +- Squiz SelfMemberReferenceSniff can no longer get into an infinite loop when checking a static call with a namespace + - Thanks to [Andy Grunwald][@andygrunwald] for the patch + +### Fixed +- Fixed bug [#19699][pear-19699] : Generic.Files.LineLength giving false positives when tab-width is used +- Fixed bug [#19726][pear-19726] : Wrong number of spaces expected after instanceof static +- Fixed bug [#19727][pear-19727] : PSR2: no error reported when using } elseif { + +[pear-19699]: https://pear.php.net/bugs/bug.php?id=19699 +[pear-19726]: https://pear.php.net/bugs/bug.php?id=19726 +[pear-19727]: https://pear.php.net/bugs/bug.php?id=19727 + +## [1.4.2] - 2012-11-09 + +### Changed +- PHP_CodeSniffer can now be installed using Composer + - Require `squizlabs/php_codesniffer` in your `composer.json` file + - Thanks to [Rob Bast][@alcohol], [Stephen Rees-Carter][@valorin], [Stefano Kowalke][@Konafets] and [Ivan Habunek][@ihabunek] for help with this +- Squiz BlockCommentSniff and InlineCommentSniff no longer report errors for trait block comments +- Squiz SelfMemberReferenceSniff now supports namespaces + - Thanks to [Andy Grunwald][@andygrunwald] for the patch +- Squiz FileCommentSniff now uses tag names inside the error codes for many messages + - This allows you to exclude specific missing, out of order etc., tags +- Squiz SuperfluousWhitespaceSniff now has an option to ignore blank lines + - This will stop errors being reported for lines that contain only whitespace + - Set the ignoreBlankLines property to TRUE in your ruleset.xml file to enable this +- PSR2 no longer reports errors for whitespace at the end of blank lines + +### Fixed +- Fixed gitblame report not working on Windows + - Thanks to [Rogerio Prado de Jesus][@rogeriopradoj] +- Fixed an incorrect error in Squiz OperatorSpacingSniff for default values inside a closure definition +- Fixed bug [#19691][pear-19691] : SubversionPropertiesSniff fails to find missing properties + - Thanks to [Kevin Winahradsky][pear-kwinahradsky] for the patch +- Fixed bug [#19692][pear-19692] : DisallowMultipleAssignments is triggered by a closure +- Fixed bug [#19693][pear-19693] : exclude-patterns no longer work on specific messages +- Fixed bug [#19694][pear-19694] : Squiz.PHP.LowercasePHPFunctions incorrectly matches return by ref functions + +[pear-19691]: https://pear.php.net/bugs/bug.php?id=19691 +[pear-19692]: https://pear.php.net/bugs/bug.php?id=19692 +[pear-19693]: https://pear.php.net/bugs/bug.php?id=19693 +[pear-19694]: https://pear.php.net/bugs/bug.php?id=19694 + +## [1.4.1] - 2012-11-02 + +### Changed +- All ignore patterns have been reverted to being checked against the absolute path of a file + - Patterns can be specified to be relative in a ruleset.xml file, but nowhere else + - e.g., `<exclude-pattern type="relative">^tests/*</exclude-pattern>` +- Added support for PHP tokenizing of T_INLINE_ELSE colons, so this token type is now available + - Custom sniffs that rely on looking for T_COLON tokens inside inline if statements must be changed to use the new token + - Fixes bug [#19666][pear-19666] : PSR1.Files.SideEffects throws a notice Undefined index: scope_closer +- Messages can now be changed from errors to warnings (and vice versa) inside ruleset.xml files + - As you would with "message" and "severity", specify a "type" tag under a "rule" tag and set the value to "error" or "warning" +- PHP_CodeSniffer will now generate a warning on files that it detects have mixed line endings + - This warning has the code Internal.LineEndings.Mixed and can be overridden in a ruleset.xml file + - Thanks to [Vit Brunner][@tasuki] for help with this +- Sniffs inside PHP 5.3 namespaces are now supported, along with the existing underscore-style emulated namespaces + - For example: namespace MyStandard\Sniffs\Arrays; class ArrayDeclarationSniff implements \PHP_CodeSniffer_Sniff { ... + - Thanks to [Till Klampaeckel][@till] for the patch +- Generic DuplicateClassNameSniff is no longer a multi-file sniff, so it won't max out your memory + - Multi-file sniff support should be considered deprecated as standard sniffs can now do the same thing +- Added Generic DisallowSpaceIndent to check that files are indented using tabs +- Added Generic OneClassPerFileSniff to check that only one class is defined in each file + - Thanks to [Andy Grunwald][@andygrunwald] for the contribution +- Added Generic OneInterfacePerFileSniff to check that only one interface is defined in each file + - Thanks to [Andy Grunwald][@andygrunwald] for the contribution +- Added Generic LowercasedFilenameSniff to check that filenames are lowercase + - Thanks to [Andy Grunwald][@andygrunwald] for the contribution +- Added Generic ClosingPHPTagSniff to check that each open PHP tag has a corresponding close tag + - Thanks to [Andy Grunwald][@andygrunwald] for the contribution +- Added Generic CharacterBeforePHPOpeningTagSniff to check that the open PHP tag is the first content in a file + - Thanks to [Andy Grunwald][@andygrunwald] for the contribution +- Fixed incorrect errors in Squiz OperatorBracketSniff and OperatorSpacingSniff for negative numbers in CASE statements + - Thanks to [Arnout Boks][@aboks] for the patch +- Generic CamelCapsFunctionNameSniff no longer enforces exact case matching for PHP magic methods +- Generic CamelCapsFunctionNameSniff no longer throws errors for overridden SOAPClient methods prefixed with double underscores + - Thanks to [Dorian Villet][@gnutix] for the patch +- PEAR ValidFunctionNameSniff now supports traits +- PSR1 ClassDeclarationSniff no longer throws an error for non-namespaced code if PHP version is less than 5.3.0 + +### Fixed +- Fixed bug [#19616][pear-19616] : Nested switches cause false error in PSR2 +- Fixed bug [#19629][pear-19629] : PSR2 error for inline comments on multi-line argument lists +- Fixed bug [#19644][pear-19644] : Alternative syntax, e.g. if/endif triggers Inline Control Structure error +- Fixed bug [#19655][pear-19655] : Closures reporting as multi-line when they are not +- Fixed bug [#19675][pear-19675] : Improper indent of nested anonymous function bodies in a call +- Fixed bug [#19685][pear-19685] : PSR2 catch-22 with empty third statement in for loop +- Fixed bug [#19687][pear-19687] : Anonymous functions inside arrays marked as indented incorrectly in PSR2 + +[pear-19616]: https://pear.php.net/bugs/bug.php?id=19616 +[pear-19629]: https://pear.php.net/bugs/bug.php?id=19629 +[pear-19644]: https://pear.php.net/bugs/bug.php?id=19644 +[pear-19655]: https://pear.php.net/bugs/bug.php?id=19655 +[pear-19666]: https://pear.php.net/bugs/bug.php?id=19666 +[pear-19675]: https://pear.php.net/bugs/bug.php?id=19675 +[pear-19685]: https://pear.php.net/bugs/bug.php?id=19685 +[pear-19687]: https://pear.php.net/bugs/bug.php?id=19687 + +## [1.4.0] - 2012-09-26 + +### Changed +- Added PSR1 and PSR2 coding standards that can be used to check your code against these guidelines +- PHP 5.4 short array syntax is now detected and tokens are assigned to the open and close characters + - New tokens are T_OPEN_SHORT_ARRAY and T_CLOSE_SHORT_ARRAY as PHP does not define its own +- Added the ability to explain a coding standard by listing the sniffs that it includes + - The sniff list includes all imported and native sniffs + - Explain a standard by using the `-e` and `--standard=[standard]` command line arguments + - E.g., `phpcs -e --standard=Squiz` + - Thanks to [Ben Selby][@benmatselby] for the idea +- Added report to show results using notify-send + - Use --report=notifysend to generate the report + - Thanks to [Christian Weiske][@cweiske] for the contribution +- The JS tokenizer now recognises RETURN as a valid closer for CASE and DEFAULT inside switch statements +- AbstractPatternSniff now sets the ignoreComments option using a public var rather than through the constructor + - This allows the setting to be overwritten in ruleset.xml files + - Old method remains for backwards compatibility +- Generic LowerCaseConstantSniff and UpperCaseConstantSniff no longer report errors on classes named True, False or Null +- PEAR ValidFunctionNameSniff no longer enforces exact case matching for PHP magic methods +- Squiz SwitchDeclarationSniff now allows RETURN statements to close a CASE or DEFAULT statement +- Squiz BlockCommentSniff now correctly reports an error for blank lines before blocks at the start of a control structure + +### Fixed +- Fixed a PHP notice generated when loading custom array settings from a ruleset.xml file +- Fixed bug [#17908][pear-17908] : CodeSniffer does not recognise optional @params + - Thanks to [Pete Walker][pear-pete] for the patch +- Fixed bug [#19538][pear-19538] : Function indentation code sniffer checks inside short arrays +- Fixed bug [#19565][pear-19565] : Non-Executable Code Sniff Broken for Case Statements with both return and break +- Fixed bug [#19612][pear-19612] : Invalid @package suggestion + +[pear-17908]: https://pear.php.net/bugs/bug.php?id=17908 +[pear-19538]: https://pear.php.net/bugs/bug.php?id=19538 +[pear-19565]: https://pear.php.net/bugs/bug.php?id=19565 +[pear-19612]: https://pear.php.net/bugs/bug.php?id=19612 + +## [1.3.6] - 2012-08-08 + +### Changed +- Memory usage has been dramatically reduced when using the summary report + - Reduced memory is only available when displaying a single summary report to the screen + - PHP_CodeSniffer will not generate any messages in this case, storing only error counts instead + - Impact is most notable with very high error and warning counts +- Significantly improved the performance of Squiz NonExecutableCodeSniff +- Ignore patterns now check the relative path of a file based on the dir being checked + - Allows ignore patterns to become more generic as the path to the code is no longer included when checking + - Thanks to [Kristof Coomans][@kristofser] for the patch +- Sniff settings can now be changed by specifying a special comment format inside a file + - e.g., // @codingStandardsChangeSetting PEAR.Functions.FunctionCallSignature allowMultipleArguments false + - If you change a setting, don't forget to change it back +- Added Generic EndFileNewlineSniff to ensure PHP files end with a newline character +- PEAR FunctionCallSignatureSniff now includes a setting to force one argument per line in multi-line calls + - Set allowMultipleArguments to false +- Squiz standard now enforces one argument per line in multi-line function calls +- Squiz FunctionDeclarationArgumentSpacingSniff now supports closures +- Squiz OperatorSpacingSniff no longer throws an error for negative values inside an inline THEN statement + - Thanks to [Klaus Purer][@klausi] for the patch +- Squiz FunctionCommentSniff now throws an error for not closing a comment with */ + - Thanks to [Klaus Purer][@klausi] for the patch +- Summary report no longer shows two lines of PHP_Timer output when showing sources + +### Fixed +- Fixed undefined variable error in PEAR FunctionCallSignatureSniff for lines with no indent +- Fixed bug [#19502][pear-19502] : Generic.Files.LineEndingsSniff fails if no new-lines in file +- Fixed bug [#19508][pear-19508] : switch+return: Closing brace indented incorrectly +- Fixed bug [#19532][pear-19532] : The PSR-2 standard don't recognize Null in class names +- Fixed bug [#19546][pear-19546] : Error thrown for __call() method in traits + +[pear-19502]: https://pear.php.net/bugs/bug.php?id=19502 +[pear-19508]: https://pear.php.net/bugs/bug.php?id=19508 +[pear-19532]: https://pear.php.net/bugs/bug.php?id=19532 +[pear-19546]: https://pear.php.net/bugs/bug.php?id=19546 + +## [1.3.5] - 2012-07-12 + +### Changed +- Added Generic CamelCapsFunctionNameSniff to just check if function and method names use camel caps + - Does not allow underscore prefixes for private/protected methods + - Defaults to strict checking, where two uppercase characters can not be next to each other + - Strict checking can be disabled in a ruleset.xml file +- Squiz FunctionDeclarationArgumentSpacing now has a setting to specify how many spaces should surround equals signs + - Default remains at 0 + - Override the equalsSpacing setting in a ruleset.xml file to change +- Squiz ClassDeclarationSniff now throws errors for > 1 space before extends/implements class name with ns separator +- Squiz standard now warns about deprecated functions using Generic DeprecatedFunctionsSniff +- PEAR FunctionDeclarationSniff now reports an error for multiple spaces after the FUNCTION keyword and around USE +- PEAR FunctionDeclarationSniff now supports closures +- Squiz MultiLineFunctionDeclarationSniff now supports closures +- Exclude rules written for Unix systems will now work correctly on Windows + - Thanks to [Walter Tamboer][@waltertamboer] for the patch +- The PHP tokenizer now recognises T_RETURN as a valid closer for T_CASE and T_DEFAULT inside switch statements + +### Fixed +- Fixed duplicate message codes in Generic OpeningFunctionBraceKernighanRitchieSniff +- Fixed bug [#18651][pear-18651] : PHPUnit Test cases for custom standards are not working on Windows +- Fixed bug [#19416][pear-19416] : Shorthand arrays cause bracket spacing errors +- Fixed bug [#19421][pear-19421] : phpcs doesn't recognize ${x} as equivalent to $x +- Fixed bug [#19428][pear-19428] : PHPCS Report "hgblame" doesn't support windows paths + - Thanks to [Justin Rovang][@rovangju] for the patch +- Fixed bug [#19448][pear-19448] : Problem with detecting remote standards +- Fixed bug [#19463][pear-19463] : Anonymous functions incorrectly being flagged by NonExecutableCodeSniff +- Fixed bug [#19469][pear-19469] : PHP_CodeSniffer_File::getMemberProperties() sets wrong scope +- Fixed bug [#19471][pear-19471] : phpcs on Windows, when using Zend standard, doesn't catch problems + - Thanks to [Ivan Habunek][@ihabunek] for the patch +- Fixed bug [#19478][pear-19478] : Incorrect indent detection in PEAR standard + - Thanks to [Shane Auckland][@shanethehat] for the patch +- Fixed bug [#19483][pear-19483] : Blame Reports fail with space in directory name + +[pear-18651]: https://pear.php.net/bugs/bug.php?id=18651 +[pear-19416]: https://pear.php.net/bugs/bug.php?id=19416 +[pear-19421]: https://pear.php.net/bugs/bug.php?id=19421 +[pear-19428]: https://pear.php.net/bugs/bug.php?id=19428 +[pear-19448]: https://pear.php.net/bugs/bug.php?id=19448 +[pear-19463]: https://pear.php.net/bugs/bug.php?id=19463 +[pear-19469]: https://pear.php.net/bugs/bug.php?id=19469 +[pear-19471]: https://pear.php.net/bugs/bug.php?id=19471 +[pear-19478]: https://pear.php.net/bugs/bug.php?id=19478 +[pear-19483]: https://pear.php.net/bugs/bug.php?id=19483 + +## [1.3.4] - 2012-05-17 + +### Changed +- Added missing package.xml entries for new Generic FixmeSniff + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Expected indents for PEAR ScopeClosingBraceSniff and FunctionCallSignatureSniff can now be set in ruleset files + - Both sniffs use a variable called "indent" + - Thanks to [Thomas Despoix][pear-tomdesp] for the patch +- Standards designed to be installed in the PHPCS Standards dir will now work outside this dir as well + - In particular, allows the Drupal CS to work without needing to symlink it into the PHPCS install + - Thanks to [Peter Philipp][@das-peter] for the patch +- Rule references for standards, directories and specific sniffs can now be relative in ruleset.xml files + - For example: `ref="../MyStandard/Sniffs/Commenting/DisallowHashCommentsSniff.php"` +- Symlinked standards now work correctly, allowing aliasing of installed standards (request [#19417][pear-19417]) + - Thanks to [Tom Klingenberg][@ktomk] for the patch +- Squiz ObjectInstantiationSniff now allows objects to be returned without assigning them to a variable +- Added Squiz.Commenting.FileComment.MissingShort error message for file comments that only contains tags + - Also stops undefined index errors being generated for these comments +- Debug option -vv now shows tokenizer status for CSS files +- Added support for new gjslint error formats + - Thanks to [Meck][@yesmeck] for the patch +- Generic ScopeIndentSniff now allows comment indents to not be exact even if the exact flag is set + - The start of the comment is still checked for exact indentation as normal +- Fixed an issue in AbstractPatternSniff where comments were not being ignored in some cases +- Fixed an issue in Zend ClosingTagSniff where the closing tag was not always being detected correctly + - Thanks to [Jonathan Robson][@jnrbsn] for the patch +- Fixed an issue in Generic FunctionCallArgumentSpacingSniff where closures could cause incorrect errors +- Fixed an issue in Generic UpperCaseConstantNameSniff where errors were incorrectly reported on goto statements + - Thanks to [Tom Klingenberg][@ktomk] for the patch +- PEAR FileCommentSniff and ClassCommentSniff now support author emails with a single character in the local part + - E.g., `a@me.com` + - Thanks to Denis Shapkin for the patch + +### Fixed +- Fixed bug [#19290][pear-19290] : Generic indent sniffer fails for anonymous functions +- Fixed bug [#19324][pear-19324] : Setting show_warnings configuration option does not work +- Fixed bug [#19354][pear-19354] : Not recognizing references passed to method +- Fixed bug [#19361][pear-19361] : CSS tokenizer generates errors when PHP embedded in CSS file +- Fixed bug [#19374][pear-19374] : HEREDOC/NOWDOC Indentation problems +- Fixed bug [#19381][pear-19381] : traits and indentations in traits are not handled properly +- Fixed bug [#19394][pear-19394] : Notice in NonExecutableCodeSniff +- Fixed bug [#19402][pear-19402] : Syntax error when executing phpcs on Windows with parens in PHP path + - Thanks to [Tom Klingenberg][@ktomk] for the patch +- Fixed bug [#19411][pear-19411] : magic method error on __construct() + - The fix required a rewrite of AbstractScopeSniff, so please test any sniffs that extend this class +- Fixed bug [#19412][pear-19412] : Incorrect error about assigning objects to variables when inside inline IF +- Fixed bug [#19413][pear-19413] : PHP_CodeSniffer thinks I haven't used a parameter when I have +- Fixed bug [#19414][pear-19414] : PHP_CodeSniffer seems to not track variables correctly in heredocs + +[pear-19290]: https://pear.php.net/bugs/bug.php?id=19290 +[pear-19324]: https://pear.php.net/bugs/bug.php?id=19324 +[pear-19354]: https://pear.php.net/bugs/bug.php?id=19354 +[pear-19361]: https://pear.php.net/bugs/bug.php?id=19361 +[pear-19374]: https://pear.php.net/bugs/bug.php?id=19374 +[pear-19381]: https://pear.php.net/bugs/bug.php?id=19381 +[pear-19394]: https://pear.php.net/bugs/bug.php?id=19394 +[pear-19402]: https://pear.php.net/bugs/bug.php?id=19402 +[pear-19411]: https://pear.php.net/bugs/bug.php?id=19411 +[pear-19412]: https://pear.php.net/bugs/bug.php?id=19412 +[pear-19413]: https://pear.php.net/bugs/bug.php?id=19413 +[pear-19414]: https://pear.php.net/bugs/bug.php?id=19414 +[pear-19417]: https://pear.php.net/bugs/bug.php?id=19417 + +## [1.3.3] - 2012-02-07 + +### Changed +- Added new Generic FixmeSniff that shows error messages for all FIXME comments left in your code + - Thanks to [Sam Graham][@illusori] for the contribution +- The maxPercentage setting in the Squiz CommentedOutCodeSniff can now be overridden in a ruleset.xml file + - Thanks to [Volker Dusch][@edorian] for the patch +- The Checkstyle and XML reports now use XMLWriter + - Only change in output is that empty file tags are no longer produced for files with no violations + - Thanks to [Sebastian Bergmann][@sebastianbergmann] for the patch +- Added PHP_CodeSniffer_Tokens::$bracketTokens to give sniff writers fast access to open and close bracket tokens +- Fixed an issue in AbstractPatternSniff where EOL tokens were not being correctly checked in some cases +- PHP_CodeSniffer_File::getTokensAsString() now detects incorrect length value (request [#19313][pear-19313]) + +### Fixed +- Fixed bug [#19114][pear-19114] : CodeSniffer checks extension even for single file +- Fixed bug [#19171][pear-19171] : Show sniff codes option is ignored by some report types + - Thanks to [Dominic Scheirlinck][@dominics] for the patch +- Fixed bug [#19188][pear-19188] : Lots of PHP Notices when analyzing the Symfony framework + - First issue was list-style.. lines in CSS files not properly adjusting open/close bracket positions + - Second issue was notices caused by bug [#19137][pear-19137] +- Fixed bug [#19208][pear-19208] : UpperCaseConstantName reports class members + - Was also a problem with LowerCaseConstantName as well +- Fixed bug [#19256][pear-19256] : T_DOC_COMMENT in CSS files breaks ClassDefinitionNameSpacingSniff + - Thanks to [Klaus Purer][@klausi] for the patch +- Fixed bug [#19264][pear-19264] : Squiz.PHP.NonExecutableCode does not handle RETURN in CASE without BREAK +- Fixed bug [#19270][pear-19270] : DuplicateClassName does not handle namespaces correctly +- Fixed bug [#19283][pear-19283] : CSS @media rules cause false positives + - Thanks to [Klaus Purer][@klausi] for the patch + +[pear-19114]: https://pear.php.net/bugs/bug.php?id=19114 +[pear-19137]: https://pear.php.net/bugs/bug.php?id=19137 +[pear-19171]: https://pear.php.net/bugs/bug.php?id=19171 +[pear-19188]: https://pear.php.net/bugs/bug.php?id=19188 +[pear-19208]: https://pear.php.net/bugs/bug.php?id=19208 +[pear-19256]: https://pear.php.net/bugs/bug.php?id=19256 +[pear-19264]: https://pear.php.net/bugs/bug.php?id=19264 +[pear-19270]: https://pear.php.net/bugs/bug.php?id=19270 +[pear-19283]: https://pear.php.net/bugs/bug.php?id=19283 +[pear-19313]: https://pear.php.net/bugs/bug.php?id=19313 + +## [1.3.2] - 2011-12-01 + +### Changed +- Added Generic JSHintSniff to run jshint.js over a JS file and report warnings + - Set jshint path using phpcs --config-set jshint_path /path/to/jshint-rhino.js + - Set rhino path using phpcs --config-set rhino_path /path/to/rhino + - Thanks to Alexander Weiß for the contribution +- Nowdocs are now tokenized using PHP_CodeSniffer specific T_NOWDOC tokens for easier identification +- Generic UpperCaseConstantNameSniff no longer throws errors for namespaces + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Squiz NonExecutableCodeSniff now detects code after thrown exceptions + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Squiz OperatorSpacingSniff now ignores references + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Squiz FunctionCommentSniff now reports a missing function comment if it finds a standard code comment instead +- Squiz FunctionCommentThrownTagSniff no longer reports errors if it can't find a function comment + +### Fixed +- Fixed unit tests not running under Windows + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#18964][pear-18964] : "$stackPtr must be of type T_VARIABLE" on heredocs and nowdocs +- Fixed bug [#18973][pear-18973] : phpcs is looking for variables in a nowdoc +- Fixed bug [#18974][pear-18974] : Blank line causes "Multi-line function call not indented correctly" + - Adds new error message to ban empty lines in multi-line function calls +- Fixed bug [#18975][pear-18975] : "Closing parenthesis must be on a line by itself" also causes indentation error + +[pear-18964]: https://pear.php.net/bugs/bug.php?id=18964 +[pear-18973]: https://pear.php.net/bugs/bug.php?id=18973 +[pear-18974]: https://pear.php.net/bugs/bug.php?id=18974 +[pear-18975]: https://pear.php.net/bugs/bug.php?id=18975 + +## 1.3.1 - 2011-11-03 + +### Changed +- All report file command line arguments now work with relative paths (request [#17240][pear-17240]) +- The extensions command line argument now supports multi-part file extensions (request [#17227][pear-17227]) +- Added report type --report=hgblame to show number of errors/warnings committed by authors in a Mercurial repository + - Has the same functionality as the svnblame report + - Thanks to [Ben Selby][@benmatselby] for the patch +- Added T_BACKTICK token type to make detection of backticks easier (request [#18799][pear-18799]) +- Added pattern matching support to Generic ForbiddenFunctionsSniff + - If you are extending it and overriding register() or addError() you will need to review your sniff +- Namespaces are now recognised as scope openers, although they do not require braces (request [#18043][pear-18043]) +- Added new ByteOrderMarkSniff to Generic standard (request [#18194][pear-18194]) + - Throws an error if a byte order mark is found in any PHP file + - Thanks to [Piotr Karas][pear-ryba] for the contribution +- PHP_Timer output is no longer included in reports when being written to a file (request [#18252][pear-18252]) + - Also now shown for all report types if nothing is being printed to the screen +- Generic DeprecatedFunctionSniff now reports functions as deprecated and not simply forbidden (request [#18288][pear-18288]) +- PHPCS now accepts file contents from STDIN (request [#18447][pear-18447]) + - Example usage: `cat temp.php | phpcs [options]` -OR- `phpcs [options] < temp.php` + - Not every sniff will work correctly due to the lack of a valid file path +- PHP_CodeSniffer_Exception no longer extends PEAR_Exception (request [#18483][pear-18483]) + - PEAR_Exception added a requirement that PEAR had to be installed + - PHP_CodeSniffer is not used as a library, so unlikely to have any impact +- PEAR FileCommentSniff now allows GIT IDs in the version tag (request [#14874][pear-14874]) +- AbstractVariableSniff now supports heredocs + - Also includes some variable detection fixes + - Thanks to [Sam Graham][@illusori] for the patch +- Squiz FileCommentSniff now enforces rule that package names cannot start with the word Squiz +- MySource AssignThisSniff now allows "this" to be assigned to the private var _self +- PEAR ClassDeclaration sniff now supports indentation checks when using the alternate namespace syntax + - PEAR.Classes.ClassDeclaration.SpaceBeforeBrace message now contains 2 variables instead of 1 + - Sniff allows overriding of the default indent level, which is set to 4 + - Fixes bug [#18933][pear-18933] : Alternative namespace declaration syntax confuses scope sniffs + +### Fixed +- Fixed issue in Squiz FileCommentSniff where suggested package name was the same as the incorrect package name +- Fixed some issues with Squiz ArrayDeclarationSniff when using function calls in array values +- Fixed doc generation so it actually works again + - Also now works when being run from an SVN checkout as well as when installed as a PEAR package + - Should fix bug [#18949][pear-18949] : Call to private method from static +- Fixed bug [#18465][pear-18465] : "self::" does not work in lambda functions + - Also corrects conversion of T_FUNCTION tokens to T_CLOSURE, which was not fixing token condition arrays +- Fixed bug [#18543][pear-18543] : CSS Tokenizer deletes too many # +- Fixed bug [#18624][pear-18624] : @throws namespace problem + - Thanks to [Gavin Davies][pear-boxgav] for the patch +- Fixed bug [#18628][pear-18628] : Generic.Files.LineLength gives incorrect results with Windows line-endings +- Fixed bug [#18633][pear-18633] : CSS Tokenizer doesn't replace T_LIST tokens inside some styles +- Fixed bug [#18657][pear-18657] : anonymous functions wrongly indented +- Fixed bug [#18670][pear-18670] : UpperCaseConstantNameSniff fails on dynamic retrieval of class constant +- Fixed bug [#18709][pear-18709] : Code sniffer sniffs file even if it's in --ignore + - Thanks to [Artem Lopata][@biozshock] for the patch +- Fixed bug [#18762][pear-18762] : Incorrect handling of define and constant in UpperCaseConstantNameSniff + - Thanks to [Thomas Baker][pear-bakert] for the patch +- Fixed bug [#18769][pear-18769] : CSS Tokenizer doesn't replace T_BREAK tokens inside some styles +- Fixed bug [#18835][pear-18835] : Unreachable errors of inline returns of closure functions + - Thanks to [Patrick Schmidt][pear-woellchen] for the patch +- Fixed bug [#18839][pear-18839] : Fix miscount of warnings in `AbstractSniffUnitTest.php` + - Thanks to [Sam Graham][@illusori] for the patch +- Fixed bug [#18844][pear-18844] : Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff with empty body + - Thanks to [Dmitri Medvedev][pear-dvino] for the patch +- Fixed bug [#18847][pear-18847] : Running Squiz_Sniffs_Classes_ClassDeclarationSniff results in PHP notice +- Fixed bug [#18868][pear-18868] : jslint+rhino: errors/warnings not detected + - Thanks to [Christian Weiske][@cweiske] for the patch +- Fixed bug [#18879][pear-18879] : phpcs-svn-pre-commit requires escapeshellarg + - Thanks to [Bjorn Katuin][pear-bjorn] for the patch +- Fixed bug [#18951][pear-18951] : weird behaviour with closures and multi-line use () params + +[pear-14874]: https://pear.php.net/bugs/bug.php?id=14874 +[pear-17227]: https://pear.php.net/bugs/bug.php?id=17227 +[pear-17240]: https://pear.php.net/bugs/bug.php?id=17240 +[pear-18043]: https://pear.php.net/bugs/bug.php?id=18043 +[pear-18194]: https://pear.php.net/bugs/bug.php?id=18194 +[pear-18252]: https://pear.php.net/bugs/bug.php?id=18252 +[pear-18288]: https://pear.php.net/bugs/bug.php?id=18288 +[pear-18447]: https://pear.php.net/bugs/bug.php?id=18447 +[pear-18465]: https://pear.php.net/bugs/bug.php?id=18465 +[pear-18483]: https://pear.php.net/bugs/bug.php?id=18483 +[pear-18543]: https://pear.php.net/bugs/bug.php?id=18543 +[pear-18624]: https://pear.php.net/bugs/bug.php?id=18624 +[pear-18628]: https://pear.php.net/bugs/bug.php?id=18628 +[pear-18633]: https://pear.php.net/bugs/bug.php?id=18633 +[pear-18657]: https://pear.php.net/bugs/bug.php?id=18657 +[pear-18670]: https://pear.php.net/bugs/bug.php?id=18670 +[pear-18709]: https://pear.php.net/bugs/bug.php?id=18709 +[pear-18762]: https://pear.php.net/bugs/bug.php?id=18762 +[pear-18769]: https://pear.php.net/bugs/bug.php?id=18769 +[pear-18799]: https://pear.php.net/bugs/bug.php?id=18799 +[pear-18835]: https://pear.php.net/bugs/bug.php?id=18835 +[pear-18839]: https://pear.php.net/bugs/bug.php?id=18839 +[pear-18844]: https://pear.php.net/bugs/bug.php?id=18844 +[pear-18847]: https://pear.php.net/bugs/bug.php?id=18847 +[pear-18868]: https://pear.php.net/bugs/bug.php?id=18868 +[pear-18879]: https://pear.php.net/bugs/bug.php?id=18879 +[pear-18933]: https://pear.php.net/bugs/bug.php?id=18933 +[pear-18949]: https://pear.php.net/bugs/bug.php?id=18949 +[pear-18951]: https://pear.php.net/bugs/bug.php?id=18951 + +## 1.3.0 - 2011-03-17 + +### Changed +- Add a new token T_CLOSURE that replaces T_FUNCTION if the function keyword is anonymous +- Many Squiz sniffs no longer report errors when checking closures; they are now ignored +- Fixed some error messages in PEAR MultiLineConditionSniff that were not using placeholders for message data +- AbstractVariableSniff now correctly finds variable names wrapped with curly braces inside double quoted strings +- PEAR FunctionDeclarationSniff now ignores arrays in argument default values when checking multi-line declarations + +### Fixed +- Fixed bug [#18200][pear-18200] : Using custom named ruleset file as standard no longer works +- Fixed bug [#18196][pear-18196] : PEAR MultiLineCondition.SpaceBeforeOpenBrace not consistent with newline chars +- Fixed bug [#18204][pear-18204] : FunctionCommentThrowTag picks wrong exception type when throwing function call +- Fixed bug [#18222][pear-18222] : Add __invoke method to PEAR standard +- Fixed bug [#18235][pear-18235] : Invalid error generation in Squiz.Commenting.FunctionCommentThrowTag +- Fixed bug [#18250][pear-18250] : --standard with relative path skips Standards' "implicit" sniffs +- Fixed bug [#18274][pear-18274] : Multi-line IF and function call indent rules conflict +- Fixed bug [#18282][pear-18282] : Squiz doesn't handle final keyword before function comments + - Thanks to [Dave Perrett][pear-recurser] for the patch +- Fixed bug [#18336][pear-18336] : Function isUnderscoreName gives PHP notices + +[pear-18196]: https://pear.php.net/bugs/bug.php?id=18196 +[pear-18200]: https://pear.php.net/bugs/bug.php?id=18200 +[pear-18204]: https://pear.php.net/bugs/bug.php?id=18204 +[pear-18222]: https://pear.php.net/bugs/bug.php?id=18222 +[pear-18235]: https://pear.php.net/bugs/bug.php?id=18235 +[pear-18250]: https://pear.php.net/bugs/bug.php?id=18250 +[pear-18274]: https://pear.php.net/bugs/bug.php?id=18274 +[pear-18282]: https://pear.php.net/bugs/bug.php?id=18282 +[pear-18336]: https://pear.php.net/bugs/bug.php?id=18336 + +## 1.3.0RC2 - 2011-01-14 + +### Changed +- You can now print multiple reports for each run and print each to the screen or a file (request [#12434][pear-12434]) + - Format is `--report-[report][=file]` (e.g., `--report-xml=out.xml`) + - Printing to screen is done by leaving `[file]` empty (e.g., `--report-xml`) + - Multiple reports can be specified in this way (e.g., `--report-summary --report-xml=out.xml`) + - The standard `--report` and `--report-file` command line arguments are unchanged +- Added `-d` command line argument to set `php.ini` settings while running (request [#17244][pear-17244]) + - Usage is: `phpcs -d memory_limit=32M -d ...` + - Thanks to [Ben Selby][@benmatselby] for the patch +- Added -p command line argument to show progress during a run + - Dot means pass, E means errors found, W means only warnings found and S means skipped file + - Particularly good for runs where you are checking more than 100 files + - Enable by default with --config-set show_progress 1 + - Will not print anything if you are already printing verbose output + - This has caused a big change in the way PHP_CodeSniffer processes files (API changes around processing) +- You can now add exclude rules for individual sniffs or error messages (request [#17903][pear-17903]) + - Only available when using a ruleset.xml file to specify rules + - Uses the same exclude-pattern tags as normal but allows them inside rule tags +- Using the -vvv option will now print a list of sniffs executed for each file and how long they took to process +- Added Generic ClosureLinterSniff to run Google's gjslint over your JS files +- The XML and CSV reports now include the severity of the error (request [#18165][pear-18165]) + - The Severity column in the CSV report has been renamed to Type, and a new Severity column added for this +- Fixed issue with Squiz FunctionCommentSniff reporting incorrect type hint when default value uses namespace + - Thanks to Anti Veeranna for the patch +- Generic FileLengthSniff now uses iconv_strlen to check line length if an encoding is specified (request [#14237][pear-14237]) +- Generic UnnecessaryStringConcatSniff now allows strings to be combined to form a PHP open or close tag +- Squiz SwitchDeclarationSniff no longer reports indentation errors for BREAK statements inside IF conditions +- Interactive mode now always prints the full error report (ignores command line) +- Improved regular expression detection in JavaScript files + - Added new T_TYPEOF token that can be used to target the typeof JS operator + - Fixes bug [#17611][pear-17611] : Regular expression tokens not recognised +- Squiz ScopeIndentSniff removed + - Squiz standard no longer requires additional indents between ob_* methods + - Also removed Squiz OutputBufferingIndentSniff that was checking the same thing +- PHP_CodeSniffer_File::getMemberProperties() performance improved significantly + - Improves performance of Squiz ValidVariableNameSniff significantly +- Squiz OperatorSpacingSniff performance improved significantly +- Squiz NonExecutableCodeSniff performance improved significantly + - Will throw duplicate errors in some cases now, but these should be rare +- MySource IncludeSystemSniff performance improved significantly +- MySource JoinStringsSniff no longer reports an error when using join() on a named JS array +- Warnings are now reported for each file when they cannot be opened instead of stopping the script + - Hide warnings with the -n command line argument + - Can override the warnings using the code Internal.DetectLineEndings + +### Fixed +- Fixed bug [#17693][pear-17693] : issue with pre-commit hook script with filenames that start with v +- Fixed bug [#17860][pear-17860] : isReference function fails with references in array + - Thanks to [Lincoln Maskey][pear-ljmaskey] for the patch +- Fixed bug [#17902][pear-17902] : Cannot run tests when tests are symlinked into tests dir + - Thanks to [Matt Button][@BRMatt] for the patch +- Fixed bug [#17928][pear-17928] : Improve error message for Generic_Sniffs_PHP_UpperCaseConstantSniff + - Thanks to [Stefano Kowalke][@Konafets] for the patch +- Fixed bug [#18039][pear-18039] : JS Tokenizer crash when ] is last character in file +- Fixed bug [#18047][pear-18047] : Incorrect handling of namespace aliases as constants + - Thanks to [Dmitri Medvedev][pear-dvino] for the patch +- Fixed bug [#18072][pear-18072] : Impossible to exclude path from processing when symlinked +- Fixed bug [#18073][pear-18073] : Squiz.PHP.NonExecutableCode fault +- Fixed bug [#18117][pear-18117] : PEAR coding standard: Method constructor not sniffed as a function +- Fixed bug [#18135][pear-18135] : Generic FunctionCallArgumentSpacingSniff reports function declaration errors +- Fixed bug [#18140][pear-18140] : Generic scope indent in exact mode: strange expected/found values for switch +- Fixed bug [#18145][pear-18145] : Sniffs are not loaded for custom ruleset file + - Thanks to [Scott McCammon][pear-mccammos] for the patch +- Fixed bug [#18152][pear-18152] : While and do-while with AbstractPatternSniff +- Fixed bug [#18191][pear-18191] : Squiz.PHP.LowercasePHPFunctions does not work with new Date() +- Fixed bug [#18193][pear-18193] : CodeSniffer doesn't reconize CR (\r) line endings + +[pear-12434]: https://pear.php.net/bugs/bug.php?id=12434 +[pear-14237]: https://pear.php.net/bugs/bug.php?id=14237 +[pear-17244]: https://pear.php.net/bugs/bug.php?id=17244 +[pear-17611]: https://pear.php.net/bugs/bug.php?id=17611 +[pear-17693]: https://pear.php.net/bugs/bug.php?id=17693 +[pear-17860]: https://pear.php.net/bugs/bug.php?id=17860 +[pear-17902]: https://pear.php.net/bugs/bug.php?id=17902 +[pear-17903]: https://pear.php.net/bugs/bug.php?id=17903 +[pear-17928]: https://pear.php.net/bugs/bug.php?id=17928 +[pear-18039]: https://pear.php.net/bugs/bug.php?id=18039 +[pear-18047]: https://pear.php.net/bugs/bug.php?id=18047 +[pear-18072]: https://pear.php.net/bugs/bug.php?id=18072 +[pear-18073]: https://pear.php.net/bugs/bug.php?id=18073 +[pear-18117]: https://pear.php.net/bugs/bug.php?id=18117 +[pear-18135]: https://pear.php.net/bugs/bug.php?id=18135 +[pear-18140]: https://pear.php.net/bugs/bug.php?id=18140 +[pear-18145]: https://pear.php.net/bugs/bug.php?id=18145 +[pear-18152]: https://pear.php.net/bugs/bug.php?id=18152 +[pear-18165]: https://pear.php.net/bugs/bug.php?id=18165 +[pear-18191]: https://pear.php.net/bugs/bug.php?id=18191 +[pear-18193]: https://pear.php.net/bugs/bug.php?id=18193 + +## 1.3.0RC1 - 2010-09-03 + +### Changed +- Added exclude pattern support to ruleset.xml file so you can specify ignore patterns in a standard (request [#17683][pear-17683]) + - Use new exclude-pattern tags to include the ignore rules into your ruleset.xml file + - See CodeSniffer/Standards/PHPCS/ruleset.xml for an example +- Added new --encoding command line argument to specify the encoding of the files being checked + - When set to utf-8, stops the XML-based reports from double-encoding + - When set to something else, helps the XML-based reports encode to utf-8 + - Default value is iso-8859-1 but can be changed with `--config-set encoding [value]` +- The report is no longer printed to screen when using the --report-file command line option (request [#17467][pear-17467]) + - If you want to print it to screen as well, use the -v command line argument +- The SVN and GIT blame reports now also show percentage of reported errors per author (request [#17606][pear-17606]) + - Thanks to [Ben Selby][@benmatselby] for the patch +- Updated the SVN pre-commit hook to work with the new severity levels feature +- Generic SubversionPropertiesSniff now allows properties to have NULL values (request [#17682][pear-17682]) + - A null value indicates that the property should exist but the value should not be checked +- Generic UpperCaseConstantName Sniff now longer complains about the PHPUnit_MAIN_METHOD constant (request [#17798][pear-17798]) +- Squiz FileComment sniff now checks JS files as well as PHP files +- Squiz FunctionCommentSniff now supports namespaces in type hints + +### Fixed +- Fixed a problem in Squiz OutputBufferingIndentSniff where block comments were reported as not indented +- Fixed bug [#17092][pear-17092] : Problems with utf8_encode and htmlspecialchars with non-ascii chars + - Use the new --encoding=utf-8 command line argument if your files are utf-8 encoded +- Fixed bug [#17629][pear-17629] : PHP_CodeSniffer_Tokens::$booleanOperators missing T_LOGICAL_XOR + - Thanks to [Matthew Turland][@elazar] for the patch +- Fixed bug [#17699][pear-17699] : Fatal error generating code coverage with PHPUnit 5.3.0RC1 +- Fixed bug [#17718][pear-17718] : Namespace 'use' statement: used global class name is recognized as constant +- Fixed bug [#17734][pear-17734] : Generic SubversionPropertiesSniff complains on non SVN files +- Fixed bug [#17742][pear-17742] : EmbeddedPhpSniff reacts negatively to file without closing PHP tag +- Fixed bug [#17823][pear-17823] : Notice: Please no longer include `PHPUnit/Framework.php` + +[pear-17092]: https://pear.php.net/bugs/bug.php?id=17092 +[pear-17467]: https://pear.php.net/bugs/bug.php?id=17467 +[pear-17606]: https://pear.php.net/bugs/bug.php?id=17606 +[pear-17629]: https://pear.php.net/bugs/bug.php?id=17629 +[pear-17682]: https://pear.php.net/bugs/bug.php?id=17682 +[pear-17683]: https://pear.php.net/bugs/bug.php?id=17683 +[pear-17699]: https://pear.php.net/bugs/bug.php?id=17699 +[pear-17718]: https://pear.php.net/bugs/bug.php?id=17718 +[pear-17734]: https://pear.php.net/bugs/bug.php?id=17734 +[pear-17742]: https://pear.php.net/bugs/bug.php?id=17742 +[pear-17798]: https://pear.php.net/bugs/bug.php?id=17798 +[pear-17823]: https://pear.php.net/bugs/bug.php?id=17823 + +## 1.3.0a1 - 2010-07-15 + +### Changed +- All `CodingStandard.php` files have been replaced by `ruleset.xml` files + - Custom standards will need to be converted over to this new format to continue working +- You can specify a path to your own custom ruleset.xml file by using the --standard command line arg + - e.g., phpcs --standard=/path/to/my/ruleset.xml +- Added a new report type --report=gitblame to show how many errors and warnings were committed by each author + - Has the same functionality as the svnblame report + - Thanks to [Ben Selby][@benmatselby] for the patch +- A new token type T_DOLLAR has been added to allow you to sniff for variable variables (feature request [#17095][pear-17095]) + - Thanks to [Ian Young][pear-youngian] for the patch +- JS tokenizer now supports T_POWER (^) and T_MOD_EQUAL (%=) tokens (feature request [#17441][pear-17441]) +- If you have PHP_Timer installed, you'll now get a time/memory summary at the end of a script run + - Only happens when printing reports that are designed to be read on the command line +- Added Generic DeprecatedFunctionsSniff to warn about the use of deprecated functions (feature request [#16694][pear-16694]) + - Thanks to [Sebastian Bergmann][@sebastianbergmann] for the patch +- Added Squiz LogicalOperatorSniff to ensure that logical operators are surrounded by single spaces +- Added MySource ChannelExceptionSniff to ensure action files only throw ChannelException +- Added new method getClassProperties() for sniffs to use to determine if a class is abstract and/or final + - Thanks to [Christian Kaps][@akkie] for the patch +- Generic UpperCaseConstantSniff no longer throws errors about namespaces + - Thanks to [Christian Kaps][@akkie] for the patch +- Squiz OperatorBracketSniff now correctly checks value assignments in arrays +- Squiz LongConditionClosingCommentSniff now requires a comment for long CASE statements that use curly braces +- Squiz LongConditionClosingCommentSniff now requires an exact comment match on the brace +- MySource IncludeSystemSniff now ignores DOMDocument usage +- MySource IncludeSystemSniff no longer requires inclusion of systems that are being implemented +- Removed found and expected messages from Squiz ConcatenationSpacingSniff because they were messy and not helpful + +### Fixed +- Fixed a problem where Generic CodeAnalysisSniff could show warnings if checking multi-line strings +- Fixed error messages in Squiz ArrayDeclarationSniff reporting incorrect number of found and expected spaces +- Fixed bug [#17048][pear-17048] : False positive in Squiz_WhiteSpace_ScopeKeywordSpacingSniff +- Fixed bug [#17054][pear-17054] : phpcs more strict than PEAR CS regarding function parameter spacing +- Fixed bug [#17096][pear-17096] : Notice: Undefined index: `scope_condition` in `ScopeClosingBraceSniff.php` + - Moved PEAR.Functions.FunctionCallArgumentSpacing to Generic.Functions.FunctionCallArgumentSpacing +- Fixed bug [#17144][pear-17144] : Deprecated: Function eregi() is deprecated +- Fixed bug [#17236][pear-17236] : PHP Warning due to token_get_all() in DoubleQuoteUsageSniff +- Fixed bug [#17243][pear-17243] : Alternate Switch Syntax causes endless loop of Notices in SwitchDeclaration +- Fixed bug [#17313][pear-17313] : Bug with switch case structure +- Fixed bug [#17331][pear-17331] : Possible parse error: interfaces may not include member vars +- Fixed bug [#17337][pear-17337] : CSS tokenizer fails on quotes urls +- Fixed bug [#17420][pear-17420] : Uncaught exception when comment before function brace +- Fixed bug [#17503][pear-17503] : closures formatting is not supported + +[pear-16694]: https://pear.php.net/bugs/bug.php?id=16694 +[pear-17048]: https://pear.php.net/bugs/bug.php?id=17048 +[pear-17054]: https://pear.php.net/bugs/bug.php?id=17054 +[pear-17095]: https://pear.php.net/bugs/bug.php?id=17095 +[pear-17096]: https://pear.php.net/bugs/bug.php?id=17096 +[pear-17144]: https://pear.php.net/bugs/bug.php?id=17144 +[pear-17236]: https://pear.php.net/bugs/bug.php?id=17236 +[pear-17243]: https://pear.php.net/bugs/bug.php?id=17243 +[pear-17313]: https://pear.php.net/bugs/bug.php?id=17313 +[pear-17331]: https://pear.php.net/bugs/bug.php?id=17331 +[pear-17337]: https://pear.php.net/bugs/bug.php?id=17337 +[pear-17420]: https://pear.php.net/bugs/bug.php?id=17420 +[pear-17441]: https://pear.php.net/bugs/bug.php?id=17441 +[pear-17503]: https://pear.php.net/bugs/bug.php?id=17503 + +## 1.2.2 - 2010-01-27 + +### Changed +- The core PHP_CodeSniffer_File methods now understand the concept of closures (feature request [#16866][pear-16866]) + - Thanks to [Christian Kaps][@akkie] for the sample code +- Sniffs can now specify violation codes for each error and warning they add + - Future versions will allow you to override messages and severities using these codes + - Specifying a code is optional, but will be required if you wish to support overriding +- All reports have been broken into separate classes + - Command line usage and report output remains the same + - Thanks to Gabriele Santini for the patch +- Added an interactive mode that can be enabled using the -a command line argument + - Scans files and stops when it finds a file with errors + - Waits for user input to recheck the file (hopefully you fixed the errors) or skip the file + - Useful for very large code bases where full rechecks take a while +- The reports now show the correct number of errors and warnings found +- The isCamelCaps method now allows numbers in class names +- The JS tokenizer now correctly identifies boolean and bitwise AND and OR tokens +- The JS tokenizer now correctly identifies regular expressions used in conditions +- PEAR ValidFunctionNameSniff now ignores closures +- Squiz standard now uses the PEAR setting of 85 chars for LineLengthSniff +- Squiz ControlStructureSpacingSniff now ensure there are no spaces around parentheses +- Squiz LongConditionClosingCommentSniff now checks for comments at the end of try/catch statements +- Squiz LongConditionClosingCommentSniff now checks validity of comments for short structures if they exist +- Squiz IncrementDecrementUsageSniff now has better checking to ensure it only looks at simple variable assignments +- Squiz PostStatementCommentSniff no longer throws errors for end function comments +- Squiz InlineCommentSniff no longer throws errors for end function comments +- Squiz OperatorBracketSniff now allows simple arithmetic operations in SWITCH conditions +- Squiz ValidFunctionNameSniff now ignores closures +- Squiz MethodScopeSniff now ignores closures +- Squiz ClosingDeclarationCommentSniff now ignores closures +- Squiz GlobalFunctionSniff now ignores closures +- Squiz DisallowComparisonAssignmentSniff now ignores the assigning of arrays +- Squiz DisallowObjectStringIndexSniff now allows indexes that contain dots and reserved words +- Squiz standard now throws nesting level and cyclomatic complexity errors at much higher levels +- Squiz CommentedOutCodeSniff now ignores common comment framing characters +- Squiz ClassCommentSniff now ensures the open comment tag is the only content on the first line +- Squiz FileCommentSniff now ensures the open comment tag is the only content on the first line +- Squiz FunctionCommentSniff now ensures the open comment tag is the only content on the first line +- Squiz VariableCommentSniff now ensures the open comment tag is the only content on the first line +- Squiz NonExecutableCodeSniff now warns about empty return statements that are not required +- Removed ForbiddenStylesSniff from Squiz standard + - It is now in the MySource standard as BrowserSpecificStylesSniff + - New BrowserSpecificStylesSniff ignores files with browser-specific suffixes +- MySource IncludeSystemSniff no longer throws errors when extending the Exception class +- MySource IncludeSystemSniff no longer throws errors for the abstract widget class +- MySource IncludeSystemSniff and UnusedSystemSniff now allow includes inside IF statements +- MySource IncludeSystemSniff no longer throws errors for included widgets inside methods +- MySource GetRequestDataSniff now throws errors for using $_FILES +- MySource CreateWidgetTypeCallbackSniff now allows return statements in nested functions +- MySource DisallowSelfActionsSniff now ignores abstract classes + +### Fixed +- Fixed a problem with the SVN pre-commit hook for PHP versions without vertical whitespace regex support +- Fixed bug [#16740][pear-16740] : False positives for heredoc strings and unused parameter sniff +- Fixed bug [#16794][pear-16794] : ValidLogicalOperatorsSniff doesn't report operators not in lowercase +- Fixed bug [#16804][pear-16804] : Report filename is shortened too much +- Fixed bug [#16821][pear-16821] : Bug in Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#16836][pear-16836] : Notice raised when using semicolon to open case +- Fixed bug [#16855][pear-16855] : Generic standard sniffs incorrectly for define() method +- Fixed bug [#16865][pear-16865] : Two bugs in Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#16902][pear-16902] : Inline If Declaration bug +- Fixed bug [#16960][pear-16960] : False positive for late static binding in Squiz/ScopeKeywordSpacingSniff + - Thanks to [Jakub Tománek][pear-thezero] for the patch +- Fixed bug [#16976][pear-16976] : The phpcs attempts to process symbolic links that don't resolve to files +- Fixed bug [#17017][pear-17017] : Including one file in the files sniffed alters errors reported for another file + +[pear-16740]: https://pear.php.net/bugs/bug.php?id=16740 +[pear-16794]: https://pear.php.net/bugs/bug.php?id=16794 +[pear-16804]: https://pear.php.net/bugs/bug.php?id=16804 +[pear-16821]: https://pear.php.net/bugs/bug.php?id=16821 +[pear-16836]: https://pear.php.net/bugs/bug.php?id=16836 +[pear-16855]: https://pear.php.net/bugs/bug.php?id=16855 +[pear-16865]: https://pear.php.net/bugs/bug.php?id=16865 +[pear-16866]: https://pear.php.net/bugs/bug.php?id=16866 +[pear-16902]: https://pear.php.net/bugs/bug.php?id=16902 +[pear-16960]: https://pear.php.net/bugs/bug.php?id=16960 +[pear-16976]: https://pear.php.net/bugs/bug.php?id=16976 +[pear-17017]: https://pear.php.net/bugs/bug.php?id=17017 + +## 1.2.1 - 2009-11-17 + +### Changed +- Added a new report type --report=svnblame to show how many errors and warnings were committed by each author + - Also shows the percentage of their code that are errors and warnings + - Requires you to have the SVN command in your path + - Make sure SVN is storing usernames and passwords (if required) or you will need to enter them for each file + - You can also use the -s command line argument to see the different types of errors authors are committing + - You can use the -v command line argument to see all authors, even if they have no errors or warnings +- Added a new command line argument --report-width to allow you to set the column width of screen reports + - Reports won't accept values less than 70 or else they get too small + - Can also be set via a config var: phpcs --config-set report_width 100 +- You can now get PHP_CodeSniffer to ignore a whole file by adding @codingStandardsIgnoreFile in the content + - If you put it in the first two lines the file won't even be tokenized, so it will be much quicker +- Reports now print their file lists in alphabetical order +- PEAR FunctionDeclarationSniff now reports error for incorrect closing bracket placement in multi-line definitions +- Added Generic CallTimePassByReferenceSniff to prohibit the passing of variables into functions by reference + - Thanks to Florian Grandel for the contribution +- Added Squiz DisallowComparisonAssignmentSniff to ban the assignment of comparison values to a variable +- Added Squiz DuplicateStyleDefinitionSniff to check for duplicate CSS styles in a single class block +- Squiz ArrayDeclarationSniff no longer checks the case of array indexes because that is not its job +- Squiz PostStatementCommentSniff now allows end comments for class member functions +- Squiz InlineCommentSniff now supports the checking of JS files +- MySource CreateWidgetTypeCallbackSniff now allows the callback to be passed to another function +- MySource CreateWidgetTypeCallbackSniff now correctly ignores callbacks used inside conditions +- Generic MultipleStatementAlignmentSniff now enforces a single space before equals sign if max padding is reached +- Fixed a problem in the JS tokenizer where regular expressions containing \// were not converted correctly +- Fixed a problem tokenizing CSS files where multiple ID targets on a line would look like comments +- Fixed a problem tokenizing CSS files where class names containing a colon looked like style definitions +- Fixed a problem tokenizing CSS files when style statements had empty url() calls +- Fixed a problem tokenizing CSS colours with the letter E in first half of the code +- Squiz ColonSpacingSniff now ensures it is only checking style definitions in CSS files and not class names +- Squiz DisallowComparisonAssignmentSniff no longer reports errors when assigning the return value of a function +- CSS tokenizer now correctly supports multi-line comments +- When only the case of var names differ for function comments, the error now indicates the case is different + +### Fixed +- Fixed an issue with Generic UnnecessaryStringConcatSniff where it incorrectly suggested removing a concat +- Fixed bug [#16530][pear-16530] : ScopeIndentSniff reports false positive +- Fixed bug [#16533][pear-16533] : Duplicate errors and warnings +- Fixed bug [#16563][pear-16563] : Check file extensions problem in phpcs-svn-pre-commit + - Thanks to [Kaijung Chen][pear-et3w503] for the patch +- Fixed bug [#16592][pear-16592] : Object operator indentation incorrect when first operator is on a new line +- Fixed bug [#16641][pear-16641] : Notice output +- Fixed bug [#16682][pear-16682] : Squiz_Sniffs_Strings_DoubleQuoteUsageSniff reports string "\0" as invalid +- Fixed bug [#16683][pear-16683] : Typing error in PHP_CodeSniffer_CommentParser_AbstractParser +- Fixed bug [#16684][pear-16684] : Bug in Squiz_Sniffs_PHP_NonExecutableCodeSniff +- Fixed bug [#16692][pear-16692] : Spaces in paths in Squiz_Sniffs_Debug_JavaScriptLintSniff + - Thanks to [Jaroslav Hanslík][@kukulich] for the patch +- Fixed bug [#16696][pear-16696] : Spelling error in MultiLineConditionSniff +- Fixed bug [#16697][pear-16697] : MultiLineConditionSniff incorrect result with inline IF +- Fixed bug [#16698][pear-16698] : Notice in JavaScript Tokenizer +- Fixed bug [#16736][pear-16736] : Multi-files sniffs aren't processed when FILE is a single directory + - Thanks to [Alexey Shein][pear-conf] for the patch +- Fixed bug [#16792][pear-16792] : Bug in Generic_Sniffs_PHP_ForbiddenFunctionsSniff + +[pear-16530]: https://pear.php.net/bugs/bug.php?id=16530 +[pear-16533]: https://pear.php.net/bugs/bug.php?id=16533 +[pear-16563]: https://pear.php.net/bugs/bug.php?id=16563 +[pear-16592]: https://pear.php.net/bugs/bug.php?id=16592 +[pear-16641]: https://pear.php.net/bugs/bug.php?id=16641 +[pear-16682]: https://pear.php.net/bugs/bug.php?id=16682 +[pear-16683]: https://pear.php.net/bugs/bug.php?id=16683 +[pear-16684]: https://pear.php.net/bugs/bug.php?id=16684 +[pear-16692]: https://pear.php.net/bugs/bug.php?id=16692 +[pear-16696]: https://pear.php.net/bugs/bug.php?id=16696 +[pear-16697]: https://pear.php.net/bugs/bug.php?id=16697 +[pear-16698]: https://pear.php.net/bugs/bug.php?id=16698 +[pear-16736]: https://pear.php.net/bugs/bug.php?id=16736 +[pear-16792]: https://pear.php.net/bugs/bug.php?id=16792 + +## 1.2.0 - 2009-08-17 + +### Changed +- Installed standards are now favoured over custom standards when using the cmd line arg with relative paths +- Unit tests now use a lot less memory while running +- Squiz standard now uses Generic EmptyStatementSniff but throws errors instead of warnings +- Squiz standard now uses Generic UnusedFunctionParameterSniff +- Removed unused ValidArrayIndexNameSniff from the Squiz standard + +### Fixed +- Fixed bug [#16424][pear-16424] : SubversionPropertiesSniff print PHP Warning +- Fixed bug [#16450][pear-16450] : Constant `PHP_CODESNIFFER_VERBOSITY` already defined (unit tests) +- Fixed bug [#16453][pear-16453] : function declaration long line splitted error +- Fixed bug [#16482][pear-16482] : phpcs-svn-pre-commit ignores extensions parameter + +[pear-16424]: https://pear.php.net/bugs/bug.php?id=16424 +[pear-16450]: https://pear.php.net/bugs/bug.php?id=16450 +[pear-16453]: https://pear.php.net/bugs/bug.php?id=16453 +[pear-16482]: https://pear.php.net/bugs/bug.php?id=16482 + +## 1.2.0RC3 - 2009-07-07 + +### Changed +- You can now use @codingStandardsIgnoreStart and @...End comments to suppress messages (feature request [#14002][pear-14002]) +- A warning is now included for files without any code when short_open_tag is set to Off (feature request [#12952][pear-12952]) +- You can now use relative paths to your custom standards with the --standard cmd line arg (feature request [#14967][pear-14967]) +- You can now override magic methods and functions in PEAR ValidFunctionNameSniff (feature request [#15830][pear-15830]) +- MySource IncludeSystemSniff now recognises widget action classes +- MySource IncludeSystemSniff now knows about unit test classes and changes rules accordingly + +[pear-12952]: https://pear.php.net/bugs/bug.php?id=12952 +[pear-14002]: https://pear.php.net/bugs/bug.php?id=14002 +[pear-14967]: https://pear.php.net/bugs/bug.php?id=14967 +[pear-15830]: https://pear.php.net/bugs/bug.php?id=15830 + +## 1.2.0RC2 - 2009-05-25 + +### Changed +- Test suite can now be run using the full path to `AllTests.php` (feature request [#16179][pear-16179]) + +### Fixed +- Fixed bug [#15980][pear-15980] : PHP_CodeSniffer change PHP current directory + - Thanks to [Dolly Aswin Harahap][pear-dollyaswin] for the patch +- Fixed bug [#16001][pear-16001] : Notice triggered +- Fixed bug [#16054][pear-16054] : phpcs-svn-pre-commit not showing any errors +- Fixed bug [#16071][pear-16071] : Fatal error: Uncaught PHP_CodeSniffer_Exception +- Fixed bug [#16170][pear-16170] : Undefined Offset -1 in `MultiLineConditionSniff.php` on line 68 +- Fixed bug [#16175][pear-16175] : Bug in Squiz-IncrementDecrementUsageSniff + +[pear-15980]: https://pear.php.net/bugs/bug.php?id=15980 +[pear-16001]: https://pear.php.net/bugs/bug.php?id=16001 +[pear-16054]: https://pear.php.net/bugs/bug.php?id=16054 +[pear-16071]: https://pear.php.net/bugs/bug.php?id=16071 +[pear-16170]: https://pear.php.net/bugs/bug.php?id=16170 +[pear-16175]: https://pear.php.net/bugs/bug.php?id=16175 +[pear-16179]: https://pear.php.net/bugs/bug.php?id=16179 + +## 1.2.0RC1 - 2009-03-09 + +### Changed +- Reports that are output to a file now include a trailing newline at the end of the file +- Fixed sniff names not shown in -vvv token processing output +- Added Generic SubversionPropertiesSniff to check that specific svn props are set for files + - Thanks to Jack Bates for the contribution +- The PHP version check can now be overridden in classes that extend PEAR FileCommentSniff + - Thanks to [Helgi Þormar Þorbjörnsson][@helgi] for the suggestion +- Added Generic ConstructorNameSniff to check for PHP4 constructor name usage + - Thanks to Leif Wickland for the contribution +- Squiz standard now supports multi-line function and condition sniffs from PEAR standard +- Squiz standard now uses Generic ConstructorNameSniff +- Added MySource GetRequestDataSniff to ensure REQUEST, GET and POST are not accessed directly +- Squiz OperatorBracketSniff now allows square brackets in simple unbracketed operations + +### Fixed +- Fixed the incorrect tokenizing of multi-line block comments in CSS files +- Fixed bug [#15383][pear-15383] : Uncaught PHP_CodeSniffer_Exception +- Fixed bug [#15408][pear-15408] : An unexpected exception has been caught: Undefined offset: 2 +- Fixed bug [#15519][pear-15519] : Uncaught PHP_CodeSniffer_Exception +- Fixed bug [#15624][pear-15624] : Pre-commit hook fails with PHP errors +- Fixed bug [#15661][pear-15661] : Uncaught PHP_CodeSniffer_Exception +- Fixed bug [#15722][pear-15722] : "declare(encoding = 'utf-8');" leads to "Missing file doc comment" +- Fixed bug [#15910][pear-15910] : Object operator indention not calculated correctly + +[pear-15383]: https://pear.php.net/bugs/bug.php?id=15383 +[pear-15408]: https://pear.php.net/bugs/bug.php?id=15408 +[pear-15519]: https://pear.php.net/bugs/bug.php?id=15519 +[pear-15624]: https://pear.php.net/bugs/bug.php?id=15624 +[pear-15661]: https://pear.php.net/bugs/bug.php?id=15661 +[pear-15722]: https://pear.php.net/bugs/bug.php?id=15722 +[pear-15910]: https://pear.php.net/bugs/bug.php?id=15910 + +## 1.2.0a1 - 2008-12-18 + +### Changed +- PHP_CodeSniffer now has a CSS tokenizer for checking CSS files +- Added support for a new multi-file sniff that sniffs all processed files at once +- Added new output format --report=emacs to output errors using the emacs standard compile output format + - Thanks to Len Trigg for the contribution +- Reports can now be written to a file using the --report-file command line argument (feature request [#14953][pear-14953]) + - The report is also written to screen when using this argument +- The CheckStyle, CSV and XML reports now include a source for each error and warning (feature request [#13242][pear-13242]) + - A new report type --report=source can be used to show you the most common errors in your files +- Added new command line argument -s to show error sources in all reports +- Added new command line argument --sniffs to specify a list of sniffs to restrict checking to + - Uses the sniff source codes that are optionally displayed in reports +- Changed the max width of error lines from 80 to 79 chars to stop blank lines in the default windows cmd window +- PHP_CodeSniffer now has a token for an asperand (@ symbol) so sniffs can listen for them + - Thanks to Andy Brockhurst for the patch +- Added Generic DuplicateClassNameSniff that will warn if the same class name is used in multiple files + - Not currently used by any standard; more of a multi-file sniff sample than anything useful +- Added Generic NoSilencedErrorsSniff that warns if PHP errors are being silenced using the @ symbol + - Thanks to Andy Brockhurst for the contribution +- Added Generic UnnecessaryStringConcatSniff that checks for two strings being concatenated +- Added PEAR FunctionDeclarationSniff to enforce the new multi-line function declaration PEAR standard +- Added PEAR MultiLineAssignmentSniff to enforce the correct indentation of multi-line assignments +- Added PEAR MultiLineConditionSniff to enforce the new multi-line condition PEAR standard +- Added PEAR ObjectOperatorIndentSniff to enforce the new chained function call PEAR standard +- Added MySource DisallowSelfActionSniff to ban the use of self::method() calls in Action classes +- Added MySource DebugCodeSniff to ban the use of Debug::method() calls +- Added MySource CreateWidgetTypeCallback sniff to check callback usage in widget type create methods +- Added Squiz DisallowObjectStringIndexSniff that forces object dot notation in JavaScript files + - Thanks to [Sertan Danis][@sertand] for the contribution +- Added Squiz DiscouragedFunctionsSniff to warn when using debug functions +- Added Squiz PropertyLabelSniff to check whitespace around colons in JS property and label declarations +- Added Squiz DuplicatePropertySniff to check for duplicate property names in JS classes +- Added Squiz ColonSpacingSniff to check for spacing around colons in CSS style definitions +- Added Squiz SemicolonSpacingSniff to check for spacing around semicolons in CSS style definitions +- Added Squiz IndentationSniff to check for correct indentation of CSS files +- Added Squiz ColourDefinitionSniff to check that CSS colours are defined in uppercase and using shorthand +- Added Squiz EmptyStyleDefinitionSniff to check for CSS style definitions without content +- Added Squiz EmptyClassDefinitionSniff to check for CSS class definitions without content +- Added Squiz ClassDefinitionOpeningBraceSpaceSniff to check for spaces around opening brace of CSS class definitions +- Added Squiz ClassDefinitionClosingBraceSpaceSniff to check for a single blank line after CSS class definitions +- Added Squiz ClassDefinitionNameSpacingSniff to check for a blank lines inside CSS class definition names +- Added Squiz DisallowMultipleStyleDefinitionsSniff to check for multiple style definitions on a single line +- Added Squiz DuplicateClassDefinitionSniff to check for duplicate CSS class blocks that can be merged +- Added Squiz ForbiddenStylesSniff to check for usage of browser specific styles +- Added Squiz OpacitySniff to check for incorrect opacity values in CSS +- Added Squiz LowercaseStyleDefinitionSniff to check for styles that are not defined in lowercase +- Added Squiz MissingColonSniff to check for style definitions where the colon has been forgotten +- Added Squiz MultiLineFunctionDeclarationSniff to check that multi-line declarations contain one param per line +- Added Squiz JSLintSniff to check for JS errors using the jslint.js script through Rhino + - Set jslint path using phpcs --config-set jslint_path /path/to/jslint.js + - Set rhino path using phpcs --config-set rhino_path /path/to/rhino +- Added Generic TodoSniff that warns about comments that contain the word TODO +- Removed MultipleStatementAlignmentSniff from the PEAR standard as alignment is now optional +- Generic ForbiddenFunctionsSniff now has protected member var to specify if it should use errors or warnings +- Generic MultipleStatementAlignmentSniff now has correct error message if assignment is on a new line +- Generic MultipleStatementAlignmentSniff now has protected member var to allow it to ignore multi-line assignments +- Generic LineEndingsSniff now supports checking of JS files +- Generic LineEndingsSniff now supports checking of CSS files +- Generic DisallowTabIndentSniff now supports checking of CSS files +- Squiz DoubleQuoteUsageSniff now bans the use of variables in double quoted strings in favour of concatenation +- Squiz SuperfluousWhitespaceSniff now supports checking of JS files +- Squiz SuperfluousWhitespaceSniff now supports checking of CSS files +- Squiz DisallowInlineIfSniff now supports checking of JS files +- Squiz SemicolonSpacingSniff now supports checking of JS files +- Squiz PostStatementCommentSniff now supports checking of JS files +- Squiz FunctionOpeningBraceSpacingSniff now supports checking of JS files +- Squiz FunctionClosingBraceSpacingSniff now supports checking of JS files + - Empty JS functions must have their opening and closing braces next to each other +- Squiz ControlStructureSpacingSniff now supports checking of JS files +- Squiz LongConditionClosingCommentSniff now supports checking of JS files +- Squiz OperatorSpacingSniff now supports checking of JS files +- Squiz SwitchDeclarationSniff now supports checking of JS files +- Squiz CommentedOutCodeSniff now supports checking of CSS files +- Squiz DisallowSizeFunctionsInLoopsSniff now supports checking of JS files for the use of object.length +- Squiz DisallowSizeFunctionsInLoopsSniff no longer complains about size functions outside of the FOR condition +- Squiz ControlStructureSpacingSniff now bans blank lines at the end of a control structure +- Squiz ForLoopDeclarationSniff no longer throws errors for JS FOR loops without semicolons +- Squiz MultipleStatementAlignmentSniff no longer throws errors if a statement would take more than 8 spaces to align +- Squiz standard now uses Generic TodoSniff +- Squiz standard now uses Generic UnnecessaryStringConcatSniff +- Squiz standard now uses PEAR MultiLineAssignmentSniff +- Squiz standard now uses PEAR MultiLineConditionSniff +- Zend standard now uses OpeningFunctionBraceBsdAllmanSniff (feature request [#14647][pear-14647]) +- MySource JoinStringsSniff now bans the use of inline array joins and suggests the + operator +- Fixed incorrect errors that can be generated from abstract scope sniffs when moving to a new file +- Core tokenizer now matches orphaned curly braces in the same way as square brackets +- Whitespace tokens at the end of JS files are now added to the token stack +- JavaScript tokenizer now identifies properties and labels as new token types +- JavaScript tokenizer now identifies object definitions as a new token type and matches curly braces for them +- JavaScript tokenizer now identifies DIV_EQUAL and MUL_EQUAL tokens +- Improved regular expression detection in the JavaScript tokenizer +- Improve AbstractPatternSniff support so it can listen for any token type, not just weighted tokens + +### Fixed +- Fixed Squiz DoubleQuoteUsageSniff so it works correctly with short_open_tag=Off +- Fixed bug [#14409][pear-14409] : Output of warnings to log file +- Fixed bug [#14520][pear-14520] : Notice: Undefined offset: 1 in `CodeSniffer/File.php` on line +- Fixed bug [#14637][pear-14637] : Call to processUnknownArguments() misses second parameter $pos + - Thanks to [Peter Buri][pear-burci] for the patch +- Fixed bug [#14889][pear-14889] : Lack of clarity: licence or license +- Fixed bug [#15008][pear-15008] : Nested Parentheses in Control Structure Sniffs +- Fixed bug [#15091][pear-15091] : pre-commit hook attempts to sniff folders + - Thanks to [Bruce Weirdan][pear-weirdan] for the patch +- Fixed bug [#15124][pear-15124] : `AbstractParser.php` uses deprecated `split()` function + - Thanks to [Sebastian Bergmann][@sebastianbergmann] for the patch +- Fixed bug [#15188][pear-15188] : PHPCS vs HEREDOC strings +- Fixed bug [#15231][pear-15231] : Notice: Uninitialized string offset: 0 in `FileCommentSniff.php` on line 555 +- Fixed bug [#15336][pear-15336] : Notice: Undefined offset: 2 in `CodeSniffer/File.php` on line + +[pear-13242]: https://pear.php.net/bugs/bug.php?id=13242 +[pear-14409]: https://pear.php.net/bugs/bug.php?id=14409 +[pear-14520]: https://pear.php.net/bugs/bug.php?id=14520 +[pear-14637]: https://pear.php.net/bugs/bug.php?id=14637 +[pear-14647]: https://pear.php.net/bugs/bug.php?id=14647 +[pear-14889]: https://pear.php.net/bugs/bug.php?id=14889 +[pear-14953]: https://pear.php.net/bugs/bug.php?id=14953 +[pear-15008]: https://pear.php.net/bugs/bug.php?id=15008 +[pear-15091]: https://pear.php.net/bugs/bug.php?id=15091 +[pear-15124]: https://pear.php.net/bugs/bug.php?id=15124 +[pear-15188]: https://pear.php.net/bugs/bug.php?id=15188 +[pear-15231]: https://pear.php.net/bugs/bug.php?id=15231 +[pear-15336]: https://pear.php.net/bugs/bug.php?id=15336 + +## 1.1.0 - 2008-07-14 + +### Changed +- PEAR FileCommentSniff now allows tag orders to be overridden in child classes + - Thanks to Jeff Hodsdon for the patch +- Added Generic DisallowMultipleStatementsSniff to ensure there is only one statement per line +- Squiz standard now uses DisallowMultipleStatementsSniff + +### Fixed +- Fixed error in Zend ValidVariableNameSniff when checking vars in form: $class->{$var} +- Fixed bug [#14077][pear-14077] : Fatal error: Uncaught PHP_CodeSniffer_Exception: $stackPtr is not a class member +- Fixed bug [#14168][pear-14168] : Global Function -> Static Method and __autoload() +- Fixed bug [#14238][pear-14238] : Line length not checked at last line of a file +- Fixed bug [#14249][pear-14249] : wrong detection of scope_opener +- Fixed bug [#14250][pear-14250] : ArrayDeclarationSniff emit warnings at malformed array +- Fixed bug [#14251][pear-14251] : --extensions option doesn't work + +## 1.1.0RC3 - 2008-07-03 + +### Changed +- PEAR FileCommentSniff now allows tag orders to be overridden in child classes + - Thanks to Jeff Hodsdon for the patch +- Added Generic DisallowMultipleStatementsSniff to ensure there is only one statement per line +- Squiz standard now uses DisallowMultipleStatementsSniff + +### Fixed +- Fixed error in Zend ValidVariableNameSniff when checking vars in form: $class->{$var} +- Fixed bug [#14077][pear-14077] : Fatal error: Uncaught PHP_CodeSniffer_Exception: $stackPtr is not a class member +- Fixed bug [#14168][pear-14168] : Global Function -> Static Method and __autoload() +- Fixed bug [#14238][pear-14238] : Line length not checked at last line of a file +- Fixed bug [#14249][pear-14249] : wrong detection of scope_opener +- Fixed bug [#14250][pear-14250] : ArrayDeclarationSniff emit warnings at malformed array +- Fixed bug [#14251][pear-14251] : --extensions option doesn't work + +[pear-14077]: https://pear.php.net/bugs/bug.php?id=14077 +[pear-14168]: https://pear.php.net/bugs/bug.php?id=14168 +[pear-14238]: https://pear.php.net/bugs/bug.php?id=14238 +[pear-14249]: https://pear.php.net/bugs/bug.php?id=14249 +[pear-14250]: https://pear.php.net/bugs/bug.php?id=14250 +[pear-14251]: https://pear.php.net/bugs/bug.php?id=14251 + +## 1.1.0RC2 - 2008-06-13 + +### Changed +- Permission denied errors now stop script execution but still display current errors (feature request [#14076][pear-14076]) +- Added Squiz ValidArrayIndexNameSniff to ensure array indexes do not use camel case +- Squiz ArrayDeclarationSniff now ensures arrays are not declared with camel case index values +- PEAR ValidVariableNameSniff now alerts about a possible parse error for member vars inside an interface + +### Fixed +- Fixed bug [#13921][pear-13921] : js parsing fails for comments on last line of file +- Fixed bug [#13922][pear-13922] : crash in case of malformed (but tokenized) PHP file + - PEAR and Squiz ClassDeclarationSniff now throw warnings for possible parse errors + - Squiz ValidClassNameSniff now throws warning for possible parse errors + - Squiz ClosingDeclarationCommentSniff now throws additional warnings for parse errors + +[pear-13921]: https://pear.php.net/bugs/bug.php?id=13921 +[pear-13922]: https://pear.php.net/bugs/bug.php?id=13922 +[pear-14076]: https://pear.php.net/bugs/bug.php?id=14076 + +## 1.1.0RC1 - 2008-05-13 + +### Changed +- Added support for multiple tokenizers so PHP_CodeSniffer can check more than just PHP files + - PHP_CodeSniffer now has a JS tokenizer for checking JavaScript files + - Sniffs need to be updated to work with additional tokenizers, or new sniffs written for them +- phpcs now exits with status 2 if the tokenizer extension has been disabled (feature request [#13269][pear-13269]) +- Added scripts/phpcs-svn-pre-commit that can be used as an SVN pre-commit hook + - Also reworked the way the phpcs script works to make it easier to wrap it with other functionality + - Thanks to Jack Bates for the contribution +- Fixed error in phpcs error message when a supplied file does not exist +- Fixed a cosmetic error in AbstractPatternSniff where the "found" string was missing some content +- Added sniffs that implement part of the PMD rule catalog to the Generic standard + - Thanks to [Manuel Pichler][@manuelpichler] for the contribution of all these sniffs. +- Squiz FunctionCommentThrowTagSniff no longer throws errors for function that only throw variables +- Generic ScopeIndentSniff now has private member to enforce exact indent matching +- Replaced Squiz DisallowCountInLoopsSniff with Squiz DisallowSizeFunctionsInLoopsSniff + - Thanks to Jan Miczaika for the sniff +- Squiz BlockCommentSniff now checks inline doc block comments +- Squiz InlineCommentSniff now checks inline doc block comments +- Squiz BlockCommentSniff now checks for no blank line before first comment in a function +- Squiz DocCommentAlignmentSniff now ignores inline doc block comments +- Squiz ControlStructureSpacingSniff now ensures no blank lines at the start of control structures +- Squiz ControlStructureSpacingSniff now ensures no blank lines between control structure closing braces +- Squiz IncrementDecrementUsageSniff now ensures inc/dec ops are bracketed in string concats +- Squiz IncrementDecrementUsageSniff now ensures inc/dec ops are not used in arithmetic operations +- Squiz FunctionCommentSniff no longer throws errors if return value is mixed but function returns void somewhere +- Squiz OperatorBracketSniff no allows function call brackets to count as operator brackets +- Squiz DoubleQuoteUsageSniff now supports \x \f and \v (feature request [#13365][pear-13365]) +- Squiz ComparisonOperatorUsageSniff now supports JS files +- Squiz ControlSignatureSniff now supports JS files +- Squiz ForLoopDeclarationSniff now supports JS files +- Squiz OperatorBracketSniff now supports JS files +- Squiz InlineControlStructureSniff now supports JS files +- Generic LowerCaseConstantSniff now supports JS files +- Generic DisallowTabIndentSniff now supports JS files +- Generic MultipleStatementAlignmentSniff now supports JS files +- Added Squiz ObjectMemberCommaSniff to ensure the last member of a JS object is not followed by a comma +- Added Squiz ConstantCaseSniff to ensure the PHP constants are uppercase and JS lowercase +- Added Squiz JavaScriptLintSniff to check JS files with JSL + - Set path using phpcs --config-set jsl_path /path/to/jsl +- Added MySource FirebugConsoleSniff to ban the use of "console" for JS variable and function names +- Added MySource JoinStringsSniff to enforce the use of join() to concatenate JS strings +- Added MySource AssignThisSniff to ensure this is only assigned to a var called self +- Added MySource DisallowNewWidgetSniff to ban manual creation of widget objects +- Removed warning shown in Zend CodeAnalyzerSniff when the ZCA path is not set + +### Fixed +- Fixed error in Squiz ValidVariableNameSniff when checking vars in the form $obj->$var +- Fixed error in Squiz DisallowMultipleAssignmentsSniff when checking vars in the form $obj->$var +- Fixed error in Squiz InlineCommentSniff where comments for class constants were seen as inline +- Fixed error in Squiz BlockCommentSniff where comments for class constants were not ignored +- Fixed error in Squiz OperatorBracketSniff where negative numbers were ignored during comparisons +- Fixed error in Squiz FunctionSpacingSniff where functions after member vars reported incorrect spacing +- Fixed bug [#13062][pear-13062] : Interface comments aren't handled in PEAR standard + - Thanks to [Manuel Pichler][@manuelpichler] for the path +- Fixed bug [#13119][pear-13119] : PHP minimum requirement need to be fix +- Fixed bug [#13156][pear-13156] : Bug in Squiz_Sniffs_PHP_NonExecutableCodeSniff +- Fixed bug [#13158][pear-13158] : Strange behaviour in AbstractPatternSniff +- Fixed bug [#13169][pear-13169] : Undefined variables +- Fixed bug [#13178][pear-13178] : Catch exception in `File.php` +- Fixed bug [#13254][pear-13254] : Notices output in checkstyle report causes XML issues +- Fixed bug [#13446][pear-13446] : crash with src of phpMyAdmin + - Thanks to [Manuel Pichler][@manuelpichler] for the path + +[pear-13062]: https://pear.php.net/bugs/bug.php?id=13062 +[pear-13119]: https://pear.php.net/bugs/bug.php?id=13119 +[pear-13156]: https://pear.php.net/bugs/bug.php?id=13156 +[pear-13158]: https://pear.php.net/bugs/bug.php?id=13158 +[pear-13169]: https://pear.php.net/bugs/bug.php?id=13169 +[pear-13178]: https://pear.php.net/bugs/bug.php?id=13178 +[pear-13254]: https://pear.php.net/bugs/bug.php?id=13254 +[pear-13269]: https://pear.php.net/bugs/bug.php?id=13269 +[pear-13365]: https://pear.php.net/bugs/bug.php?id=13365 +[pear-13446]: https://pear.php.net/bugs/bug.php?id=13446 + +## 1.0.1a1 - 2008-04-21 + +### Changed +- Fixed error in PEAR ValidClassNameSniff when checking class names with double underscores +- Moved Squiz InlineControlStructureSniff into Generic standard +- PEAR standard now throws warnings for inline control structures +- Squiz OutputBufferingIndentSniff now ignores the indentation of inline HTML +- MySource IncludeSystemSniff now ignores usage of ZipArchive +- Removed "function" from error messages for Generic function brace sniffs (feature request [#13820][pear-13820]) +- Generic UpperCaseConstantSniff no longer throws errors for declare(ticks = ...) + - Thanks to Josh Snyder for the patch +- Squiz ClosingDeclarationCommentSniff and AbstractVariableSniff now throw warnings for possible parse errors + +### Fixed +- Fixed bug [#13827][pear-13827] : AbstractVariableSniff throws "undefined index" +- Fixed bug [#13846][pear-13846] : Bug in Squiz.NonExecutableCodeSniff +- Fixed bug [#13849][pear-13849] : infinite loop in PHP_CodeSniffer_File::findNext() + +[pear-13820]: https://pear.php.net/bugs/bug.php?id=13820 +[pear-13827]: https://pear.php.net/bugs/bug.php?id=13827 +[pear-13846]: https://pear.php.net/bugs/bug.php?id=13846 +[pear-13849]: https://pear.php.net/bugs/bug.php?id=13849 + +## 1.0.1 - 2008-02-04 + +### Changed +- Squiz ArrayDeclarationSniff now throws error if the array keyword is followed by a space +- Squiz ArrayDeclarationSniff now throws error for empty multi-line arrays +- Squiz ArrayDeclarationSniff now throws error for multi-line arrays with a single value +- Squiz DocCommentAlignmentSniff now checks for a single space before tags inside docblocks +- Squiz ForbiddenFunctionsSniff now disallows is_null() to force use of (=== NULL) instead +- Squiz VariableCommentSniff now continues throwing errors after the first one is found +- Squiz SuperfluousWhitespaceSniff now throws errors for multiple blank lines inside functions +- MySource IncludedSystemSniff now checks extended class names +- MySource UnusedSystemSniff now checks extended and implemented class names +- MySource IncludedSystemSniff now supports includeWidget() +- MySource UnusedSystemSniff now supports includeWidget() +- Added PEAR ValidVariableNameSniff to check that only private member vars are prefixed with an underscore +- Added Squiz DisallowCountInLoopsSniff to check for the use of count() in FOR and WHILE loop conditions +- Added MySource UnusedSystemSniff to check for included classes that are never used + +### Fixed +- Fixed a problem that caused the parentheses map to sometimes contain incorrect values +- Fixed bug [#12767][pear-12767] : Cant run phpcs from dir with PEAR subdir +- Fixed bug [#12773][pear-12773] : Reserved variables are not detected in strings + - Thanks to [Wilfried Loche][pear-wloche] for the patch +- Fixed bug [#12832][pear-12832] : Tab to space conversion does not work +- Fixed bug [#12888][pear-12888] : extra space indentation = Notice: Uninitialized string offset... +- Fixed bug [#12909][pear-12909] : Default generateDocs function does not work under linux + - Thanks to [Paul Smith][pear-thing2b] for the patch +- Fixed bug [#12957][pear-12957] : PHP 5.3 magic method __callStatic + - Thanks to [Manuel Pichler][@manuelpichler] for the patch + +[pear-12767]: https://pear.php.net/bugs/bug.php?id=12767 +[pear-12773]: https://pear.php.net/bugs/bug.php?id=12773 +[pear-12832]: https://pear.php.net/bugs/bug.php?id=12832 +[pear-12888]: https://pear.php.net/bugs/bug.php?id=12888 +[pear-12909]: https://pear.php.net/bugs/bug.php?id=12909 +[pear-12957]: https://pear.php.net/bugs/bug.php?id=12957 + +## 1.0.0 - 2007-12-21 + +### Changed +- You can now specify the full path to a coding standard on the command line (feature request [#11886][pear-11886]) + - This allows you to use standards that are stored outside of PHP_CodeSniffer's own Standard dir + - You can also specify full paths in the `CodingStandard.php` include and exclude methods + - Classes, dirs and files need to be names as if the standard was part of PHP_CodeSniffer + - Thanks to Dirk Thomas for the doc generator patch and testing +- Modified the scope map to keep checking after 3 lines for some tokens (feature request [#12561][pear-12561]) + - Those tokens that must have an opener (like T_CLASS) now keep looking until EOF + - Other tokens (like T_FUNCTION) still stop after 3 lines for performance +- You can now escape commas in ignore patterns so they can be matched in file names + - Thanks to [Carsten Wiedmann][pear-cwiedmann] for the patch +- Config data is now cached in a global var so the file system is not hit so often + - You can also set config data temporarily for the script if you are using your own external script + - Pass TRUE as the third argument to PHP_CodeSniffer::setConfigData() +- PEAR ClassDeclarationSniff no longer throws errors for multi-line class declarations +- Squiz ClassDeclarationSniff now ensures there is one blank line after a class closing brace +- Squiz ClassDeclarationSniff now throws errors for a missing end PHP tag after the end class tag +- Squiz IncrementDecrementUsageSniff no longer throws errors when -= and += are being used with vars +- Squiz SwitchDeclarationSniff now throws errors for switch statements that do not contain a case statement + - Thanks to [Sertan Danis][@sertand] for the patch +- MySource IncludeSystemSniff no longer throws errors for the Util package + +### Fixed +- Fixed bug [#12621][pear-12621] : "space after AS" check is wrong + - Thanks to [Satoshi Oikawa][pear-renoiv] for the patch +- Fixed bug [#12645][pear-12645] : error message is wrong + - Thanks to [Satoshi Oikawa][pear-renoiv] for the patch +- Fixed bug [#12651][pear-12651] : Increment/Decrement Operators Usage at -1 + +[pear-11886]: https://pear.php.net/bugs/bug.php?id=11886 +[pear-12561]: https://pear.php.net/bugs/bug.php?id=12561 +[pear-12621]: https://pear.php.net/bugs/bug.php?id=12621 +[pear-12645]: https://pear.php.net/bugs/bug.php?id=12645 +[pear-12651]: https://pear.php.net/bugs/bug.php?id=12651 + +## 1.0.0RC3 - 2007-11-30 + +### Changed +- Added new command line argument --tab-width that will convert tabs to spaces before testing + - This allows you to use the existing sniffs that check for spaces even when you use tabs + - Can also be set via a config var: phpcs --config-set tab_width 4 + - A value of zero (the default) tells PHP_CodeSniffer not to replace tabs with spaces +- You can now change the default report format from "full" to something else + - Run: phpcs `--config-set report_format [format]` +- Improved performance by optimising the way the scope map is created during tokenizing +- Added new Squiz DisallowInlineIfSniff to disallow the usage of inline IF statements +- Fixed incorrect errors being thrown for nested switches in Squiz SwitchDeclarationSniff +- PEAR FunctionCommentSniff no longer complains about missing comments for @throws tags +- PEAR FunctionCommentSniff now throws error for missing exception class name for @throws tags +- PHP_CodeSniffer_File::isReference() now correctly returns for functions that return references +- Generic LineLengthSniff no longer warns about @version lines with CVS or SVN id tags +- Generic LineLengthSniff no longer warns about @license lines with long URLs +- Squiz FunctionCommentThrowTagSniff no longer complains about throwing variables +- Squiz ComparisonOperatorUsageSniff no longer throws incorrect errors for inline IF statements +- Squiz DisallowMultipleAssignmentsSniff no longer throws errors for assignments in inline IF statements + +### Fixed +- Fixed bug [#12455][pear-12455] : CodeSniffer treats content inside heredoc as PHP code +- Fixed bug [#12471][pear-12471] : Checkstyle report is broken +- Fixed bug [#12476][pear-12476] : PHP4 destructors are reported as error +- Fixed bug [#12513][pear-12513] : Checkstyle XML messages need to be utf8_encode()d + - Thanks to [Sebastian Bergmann][@sebastianbergmann] for the patch. +- Fixed bug [#12517][pear-12517] : getNewlineAfter() and dos files + +[pear-12455]: https://pear.php.net/bugs/bug.php?id=12455 +[pear-12471]: https://pear.php.net/bugs/bug.php?id=12471 +[pear-12476]: https://pear.php.net/bugs/bug.php?id=12476 +[pear-12513]: https://pear.php.net/bugs/bug.php?id=12513 +[pear-12517]: https://pear.php.net/bugs/bug.php?id=12517 + +## 1.0.0RC2 - 2007-11-14 + +### Changed +- Added a new Checkstyle report format + - Like the current XML format but modified to look like Checkstyle output + - Thanks to [Manuel Pichler][@manuelpichler] for helping get the format correct +- You can now hide warnings by default + - Run: phpcs --config-set show_warnings 0 + - If warnings are hidden by default, use the new -w command line argument to override +- Added new command line argument --config-delete to delete a config value and revert to the default +- Improved overall performance by optimising tokenizing and next/prev methods (feature request [#12421][pear-12421]) + - Thanks to [Christian Weiske][@cweiske] for the patch +- Added FunctionCallSignatureSniff to Squiz standard +- Added @subpackage support to file and class comment sniffs in PEAR standard (feature request [#12382][pear-12382]) + - Thanks to [Carsten Wiedmann][pear-cwiedmann] for the patch +- An error is now displayed if you use a PHP version less than 5.1.0 (feature request [#12380][pear-12380]) + - Thanks to [Carsten Wiedmann][pear-cwiedmann] for the patch +- phpcs now exits with status 2 if it receives invalid input (feature request [#12380][pear-12380]) + - This is distinct from status 1, which indicates errors or warnings were found +- Added new Squiz LanguageConstructSpacingSniff to throw errors for additional whitespace after echo etc. +- Removed Squiz ValidInterfaceNameSniff +- PEAR FunctionCommentSniff no longer complains about unknown tags + +### Fixed +- Fixed incorrect errors about missing function comments in PEAR FunctionCommentSniff +- Fixed incorrect function docblock detection in Squiz FunctionCommentSniff +- Fixed incorrect errors for list() in Squiz DisallowMultipleAssignmentsSniff +- Errors no longer thrown if control structure is followed by a CASE's BREAK in Squiz ControlStructureSpacingSniff +- Fixed bug [#12368][pear-12368] : Autoloader cannot be found due to include_path override + - Thanks to [Richard Quadling][pear-rquadling] for the patch +- Fixed bug [#12378][pear-12378] : equal sign alignments problem with while() + +[pear-12368]: https://pear.php.net/bugs/bug.php?id=12368 +[pear-12378]: https://pear.php.net/bugs/bug.php?id=12378 +[pear-12380]: https://pear.php.net/bugs/bug.php?id=12380 +[pear-12382]: https://pear.php.net/bugs/bug.php?id=12382 +[pear-12421]: https://pear.php.net/bugs/bug.php?id=12421 + +## 1.0.0RC1 - 2007-11-01 + +### Changed +- Main phpcs script can now be run from a CVS checkout without installing the package +- Added a new CSV report format + - Header row indicates what position each element is in + - Always use the header row to determine positions rather than assuming the format, as it may change +- XML and CSV report formats now contain information about which column the error occurred at + - Useful if you want to highlight the token that caused the error in a custom application +- Square bracket tokens now have bracket_opener and bracket_closer set +- Added new Squiz SemicolonSpacingSniff to throw errors if whitespace is found before a semicolon +- Added new Squiz ArrayBracketSpacingSniff to throw errors if whitespace is found around square brackets +- Added new Squiz ObjectOperatorSpacingSniff to throw errors if whitespace is found around object operators +- Added new Squiz DisallowMultipleAssignmentsSniff to throw errors if multiple assignments are on the same line +- Added new Squiz ScopeKeywordSpacingSniff to throw errors if there is not a single space after a scope modifier +- Added new Squiz ObjectInstantiationSniff to throw errors if new objects are not assigned to a variable +- Added new Squiz FunctionDuplicateArgumentSniff to throw errors if argument is declared multiple times in a function +- Added new Squiz FunctionOpeningBraceSpaceSniff to ensure there are no blank lines after a function open brace +- Added new Squiz CommentedOutCodeSniff to warn about comments that looks like they are commented out code blocks +- Added CyclomaticComplexitySniff to Squiz standard +- Added NestingLevelSniff to Squiz standard +- Squiz ForbiddenFunctionsSniff now recommends echo() instead of print() +- Squiz ValidLogicalOperatorsSniff now recommends ^ instead of xor +- Squiz SwitchDeclarationSniff now contains more checks + - A single space is required after the case keyword + - No space is allowed before the colon in a case or default statement + - All switch statements now require a default case + - Default case must contain a break statement + - Empty default case must contain a comment describing why the default is ignored + - Empty case statements are not allowed + - Case and default statements must not be followed by a blank line + - Break statements must be followed by a blank line or the closing brace + - There must be no blank line before a break statement +- Squiz standard is now using the PEAR IncludingFileSniff +- PEAR ClassCommentSniff no longer complains about unknown tags +- PEAR FileCommentSniff no longer complains about unknown tags +- PEAR FileCommentSniff now accepts multiple @copyright tags +- Squiz BlockCommentSniff now checks that comment starts with a capital letter +- Squiz InlineCommentSniff now has better checking to ensure comment starts with a capital letter +- Squiz ClassCommentSniff now checks that short and long comments start with a capital letter +- Squiz FunctionCommentSniff now checks that short, long and param comments start with a capital letter +- Squiz VariableCommentSniff now checks that short and long comments start with a capital letter + +### Fixed +- Fixed error with multi-token array indexes in Squiz ArrayDeclarationSniff +- Fixed error with checking shorthand IF statements without a semicolon in Squiz InlineIfDeclarationSniff +- Fixed error where constants used as default values in function declarations were seen as type hints +- Fixed bug [#12316][pear-12316] : PEAR is no longer the default standard +- Fixed bug [#12321][pear-12321] : wrong detection of missing function docblock + +[pear-12316]: https://pear.php.net/bugs/bug.php?id=12316 +[pear-12321]: https://pear.php.net/bugs/bug.php?id=12321 + +## 0.9.0 - 2007-09-24 + +### Changed +- Added a config system for setting config data across phpcs runs +- You can now change the default coding standard from PEAR to something else + - Run: phpcs `--config-set default_standard [standard]` +- Added new Zend coding standard to check code against the Zend Framework standards + - The complete standard is not yet implemented + - Specify --standard=Zend to use + - Thanks to Johann-Peter Hartmann for the contribution of some sniffs + - Thanks to Holger Kral for the Code Analyzer sniff + +## 0.8.0 - 2007-08-08 + +### Changed +- Added new XML report format; --report=xml (feature request [#11535][pear-11535]) + - Thanks to [Brett Bieber][@saltybeagle] for the patch +- Added new command line argument --ignore to specify a list of files to skip (feature request [#11556][pear-11556]) +- Added PHPCS and MySource coding standards into the core install +- Scope map no longer gets confused by curly braces that act as string offsets +- Removed `CodeSniffer/SniffException.php` as it is no longer used +- Unit tests can now be run directly from a CVS checkout +- Made private vars and functions protected in PHP_CodeSniffer class so this package can be overridden +- Added new Metrics category to Generic coding standard + - Contains Cyclomatic Complexity and Nesting Level sniffs + - Thanks to Johann-Peter Hartmann for the contribution +- Added new Generic DisallowTabIndentSniff to throw errors if tabs are used for indentation (feature request [#11738][pear-11738]) + - PEAR and Squiz standards use this new sniff to throw more specific indentation errors +- Generic MultipleStatementAlignmentSniff has new private var to set a padding size limit (feature request [#11555][pear-11555]) +- Generic MultipleStatementAlignmentSniff can now handle assignments that span multiple lines (feature request [#11561][pear-11561]) +- Generic LineLengthSniff now has a max line length after which errors are thrown instead of warnings + - BC BREAK: Override the protected member var absoluteLineLimit and set it to zero in custom LineLength sniffs + - Thanks to Johann-Peter Hartmann for the contribution +- Comment sniff errors about incorrect tag orders are now more descriptive (feature request [#11693][pear-11693]) + +### Fixed +- Fixed bug [#11473][pear-11473] : Invalid CamelCaps name when numbers used in names + +[pear-11473]: https://pear.php.net/bugs/bug.php?id=11473 +[pear-11535]: https://pear.php.net/bugs/bug.php?id=11535 +[pear-11555]: https://pear.php.net/bugs/bug.php?id=11555 +[pear-11556]: https://pear.php.net/bugs/bug.php?id=11556 +[pear-11561]: https://pear.php.net/bugs/bug.php?id=11561 +[pear-11693]: https://pear.php.net/bugs/bug.php?id=11693 +[pear-11738]: https://pear.php.net/bugs/bug.php?id=11738 + +## 0.7.0 - 2007-07-02 + +### Changed +- BC BREAK: EOL character is now auto-detected and used instead of hard-coded \n + - Pattern sniffs must now specify "EOL" instead of "\n" or "\r\n" to use auto-detection + - Please use $phpcsFile->eolChar to check for newlines instead of hard-coding "\n" or "\r\n" + - Comment parser classes now require you to pass $phpcsFile as an additional argument +- BC BREAK: Included and excluded sniffs now require `.php` extension + - Please update your coding standard classes and add `.php` to all sniff entries + - See `CodeSniffer/Standards/PEAR/PEARCodingStandard.php` for an example +- Fixed error where including a directory of sniffs in a coding standard class did not work +- Coding standard classes can now specify a list of sniffs to exclude as well as include (feature request [#11056][pear-11056]) +- Two uppercase characters can now be placed side-by-side in class names in Squiz ValidClassNameSniff +- SVN tags now allowed in PEAR file doc blocks (feature request [#11038][pear-11038]) + - Thanks to [Torsten Roehr][pear-troehr] for the patch +- Private methods in commenting sniffs and comment parser are now protected (feature request [#11087][pear-11087]) +- Added Generic LineEndingsSniff to check the EOL character of a file +- PEAR standard now only throws one error per file for incorrect line endings (eg. /r/n) +- Command line arg -v now shows number of registered sniffs +- Command line arg -vvv now shows list of registered sniffs +- Squiz ControlStructureSpacingSniff no longer throws errors if the control structure is at the end of the script +- Squiz FunctionCommentSniff now throws error for "return void" if function has return statement +- Squiz FunctionCommentSniff now throws error for functions that return void but specify something else +- Squiz ValidVariableNameSniff now allows multiple uppercase letters in a row +- Squiz ForEachLoopDeclarationSniff now throws error for AS keyword not being lowercase +- Squiz SwitchDeclarationSniff now throws errors for CASE/DEFAULT/BREAK keywords not being lowercase +- Squiz ArrayDeclarationSniff now handles multi-token array values when checking alignment +- Squiz standard now enforces a space after cast tokens +- Generic MultipleStatementAlignmentSniff no longer gets confused by assignments inside FOR conditions +- Generic MultipleStatementAlignmentSniff no longer gets confused by the use of list() +- Added Generic SpaceAfterCastSniff to ensure there is a single space after a cast token +- Added Generic NoSpaceAfterCastSniff to ensure there is no whitespace after a cast token +- Added PEAR ClassDeclarationSniff to ensure the opening brace of a class is on the line after the keyword +- Added Squiz ScopeClosingBraceSniff to ensure closing braces are aligned correctly +- Added Squiz EvalSniff to discourage the use of eval() +- Added Squiz LowercaseDeclarationSniff to ensure all declaration keywords are lowercase +- Added Squiz LowercaseClassKeywordsSniff to ensure all class declaration keywords are lowercase +- Added Squiz LowercaseFunctionKeywordsSniff to ensure all function declaration keywords are lowercase +- Added Squiz LowercasePHPFunctionsSniff to ensure all calls to inbuilt PHP functions are lowercase +- Added Squiz CastSpacingSniff to ensure cast statements don't contain whitespace +- Errors no longer thrown when checking 0 length files with verbosity on + +### Fixed +- Fixed bug [#11105][pear-11105] : getIncludedSniffs() not working anymore + - Thanks to [Blair Robertson][pear-adviva] for the patch +- Fixed bug [#11120][pear-11120] : Uninitialized string offset in `AbstractParser.php` on line 200 + +[pear-11038]: https://pear.php.net/bugs/bug.php?id=11038 +[pear-11056]: https://pear.php.net/bugs/bug.php?id=11056 +[pear-11087]: https://pear.php.net/bugs/bug.php?id=11087 +[pear-11105]: https://pear.php.net/bugs/bug.php?id=11105 +[pear-11120]: https://pear.php.net/bugs/bug.php?id=11120 + +## 0.6.0 - 2007-05-15 + +### Changed +- The number of errors and warnings found is now shown for each file while checking the file if verbosity is enabled +- Now using PHP_EOL instead of hard-coded \n so output looks good on Windows (feature request [#10761][pear-10761]) + - Thanks to [Carsten Wiedmann][pear-cwiedmann] for the patch. +- phpcs now exits with status 0 (no errors) or 1 (errors found) (feature request [#10348][pear-10348]) +- Added new -l command line argument to stop recursion into directories (feature request [#10979][pear-10979]) + +### Fixed +- Fixed variable name error causing incorrect error message in Squiz ValidVariableNameSniff +- Fixed bug [#10757][pear-10757] : Error in ControlSignatureSniff +- Fixed bugs [#10751][pear-10751], [#10777][pear-10777] : Sniffer class paths handled incorrectly in Windows + - Thanks to [Carsten Wiedmann][pear-cwiedmann] for the patch. +- Fixed bug [#10961][pear-10961] : Error "Last parameter comment requires a blank newline after it" thrown +- Fixed bug [#10983][pear-10983] : phpcs outputs notices when checking invalid PHP +- Fixed bug [#10980][pear-10980] : Incorrect warnings for equals sign + +[pear-10348]: https://pear.php.net/bugs/bug.php?id=10348 +[pear-10751]: https://pear.php.net/bugs/bug.php?id=10751 +[pear-10757]: https://pear.php.net/bugs/bug.php?id=10757 +[pear-10761]: https://pear.php.net/bugs/bug.php?id=10761 +[pear-10777]: https://pear.php.net/bugs/bug.php?id=10777 +[pear-10961]: https://pear.php.net/bugs/bug.php?id=10961 +[pear-10979]: https://pear.php.net/bugs/bug.php?id=10979 +[pear-10980]: https://pear.php.net/bugs/bug.php?id=10980 +[pear-10983]: https://pear.php.net/bugs/bug.php?id=10983 + +## 0.5.0 - 2007-04-17 + +### Changed +- BC BREAK: Coding standards now require a class to be added so PHP_CodeSniffer can get information from them + - Please read the end user docs for info about the new class required for all coding standards +- Coding standards can now include sniffs from other standards, or whole standards, without writing new sniff files +- PHP_CodeSniffer_File::isReference() now correctly returns for references in function declarations +- PHP_CodeSniffer_File::isReference() now returns false if you don't pass it a T_BITWISE_AND token +- PHP_CodeSniffer_File now stores the absolute path to the file so sniffs can check file locations correctly +- Fixed undefined index error in AbstractVariableSniff for variables inside an interface function definition +- Added MemberVarSpacingSniff to Squiz standard to enforce one-line spacing between member vars +- Add FunctionCommentThrowTagSniff to Squiz standard to check that @throws tags are correct + +### Fixed +- Fixed problems caused by references and type hints in Squiz FunctionDeclarationArgumentSpacingSniff +- Fixed problems with errors not being thrown for some misaligned @param comments in Squiz FunctionCommentSniff +- Fixed badly spaced comma error being thrown for "extends" class in Squiz ClassDeclarationSniff +- Errors no longer thrown for class method names in Generic ForbiddenFunctionsSniff +- Errors no longer thrown for type hints in front of references in Generic UpperCaseConstantNameSniff +- Errors no longer thrown for correctly indented buffered lines in Squiz ScopeIndexSniff +- Errors no longer thrown for user-defined functions named as forbidden functions in Generic ForbiddenFunctionsSniff +- Errors no longer thrown on __autoload functions in PEAR ValidFunctionNameSniff +- Errors now thrown for __autoload methods in PEAR ValidFunctionNameSniff +- Errors now thrown if constructors or destructors have @return tags in Squiz FunctionCommentSniff +- Errors now thrown if @throws tags don't start with a capital and end with a full stop in Squiz FunctionCommentSniff +- Errors now thrown for invalid @var tag values in Squiz VariableCommentSniff +- Errors now thrown for missing doc comment in Squiz VariableCommentSniff +- Errors now thrown for unspaced operators in FOR loop declarations in Squiz OperatorSpacingSniff +- Errors now thrown for using ob_get_clean/flush functions to end buffers in Squiz OutputBufferingIndentSniff +- Errors now thrown for all missing member variable comments in Squiz VariableCommentSniff + +## 0.4.0 - 2007-02-19 + +### Changed +- Standard name specified with --standard command line argument is no longer case sensitive +- Long error and warning messages are now wrapped to 80 characters in the full error report (thanks Endre Czirbesz) +- Shortened a lot of error and warning messages so they don't take up so much room +- Squiz FunctionCommentSniff now checks that param comments start with a capital letter and end with a full stop +- Squiz FunctionSpacingSniff now reports incorrect lines below function on closing brace, not function keyword +- Squiz FileCommentSniff now checks that there are no blank lines between the open PHP tag and the comment +- PHP_CodeSniffer_File::isReference() now returns correctly when checking refs on right side of => + +### Fixed +- Fixed incorrect error with switch closing brace in Squiz SwitchDeclarationSniff +- Fixed missing error when multiple statements are not aligned correctly with object operators +- Fixed incorrect errors for some PHP special variables in Squiz ValidVariableNameSniff +- Fixed incorrect errors for arrays that only contain other arrays in Squiz ArrayDeclarationSniff +- Fixed bug [#9844][pear-9844] : throw new Exception(\n accidentally reported as error but it ain't + +[pear-9844]: https://pear.php.net/bugs/bug.php?id=9844 + +## 0.3.0 - 2007-01-11 + +### Changed +- Updated package.xml to version 2 +- Specifying coding standard on command line is now optional, even if you have multiple standards installed + - PHP_CodeSniffer uses the PEAR coding standard by default if no standard is specified +- New command line option, --extensions, to specify a comma separated list of file extensions to check +- Converted all unit tests to PHPUnit 3 format +- Added new coding standard, Squiz, that can be used as an alternative to PEAR + - also contains more examples of sniffs + - some may be moved into the Generic coding standard if required +- Added MultipleStatementAlignmentSniff to Generic standard +- Added ScopeIndentSniff to Generic standard +- Added ForbiddenFunctionsSniff to Generic standard +- Added FileCommentSniff to PEAR standard +- Added ClassCommentSniff to PEAR standard +- Added FunctionCommentSniff to PEAR standard +- Change MultipleStatementSniff to MultipleStatementAlignmentSniff in PEAR standard +- Replaced Methods directory with Functions directory in Generic and PEAR standards + - also renamed some of the sniffs in those directories +- Updated file, class and method comments for all files + +### Fixed +- Fixed bug [#9274][pear-9274] : nested_parenthesis element not set for open and close parenthesis tokens +- Fixed bug [#9411][pear-9411] : too few pattern characters cause incorrect error report + +[pear-9411]: https://pear.php.net/bugs/bug.php?id=9411 + +## 0.2.1 - 2006-11-09 + +### Fixed +- Fixed bug [#9274][pear-9274] : nested_parenthesis element not set for open and close parenthesis tokens + +[pear-9274]: https://pear.php.net/bugs/bug.php?id=9274 + +## 0.2.0 - 2006-10-13 + +### Changed +- Added a generic standards package that will contain generic sniffs to be used in specific coding standards + - thanks to Frederic Poeydomenge for the idea +- Changed PEAR standard to use generic sniffs where available +- Added LowerCaseConstantSniff to Generic standard +- Added UpperCaseConstantSniff to Generic standard +- Added DisallowShortOpenTagSniff to Generic standard +- Added LineLengthSniff to Generic standard +- Added UpperCaseConstantNameSniff to Generic standard +- Added OpeningMethodBraceBsdAllmanSniff to Generic standard (contrib by Frederic Poeydomenge) +- Added OpeningMethodBraceKernighanRitchieSniff to Generic standard (contrib by Frederic Poeydomenge) +- Added framework for core PHP_CodeSniffer unit tests +- Added unit test for PHP_CodeSniffer:isCamelCaps method +- ScopeClosingBraceSniff now checks indentation of BREAK statements +- Added new command line arg (-vv) to show developer debug output + +### Fixed +- Fixed some coding standard errors +- Fixed bug [#8834][pear-8834] : Massive memory consumption +- Fixed bug [#8836][pear-8836] : path case issues in package.xml +- Fixed bug [#8843][pear-8843] : confusion on nested switch() +- Fixed bug [#8841][pear-8841] : comments taken as whitespace +- Fixed bug [#8884][pear-8884] : another problem with nested switch() statements + +[pear-8834]: https://pear.php.net/bugs/bug.php?id=8834 +[pear-8836]: https://pear.php.net/bugs/bug.php?id=8836 +[pear-8841]: https://pear.php.net/bugs/bug.php?id=8841 +[pear-8843]: https://pear.php.net/bugs/bug.php?id=8843 +[pear-8884]: https://pear.php.net/bugs/bug.php?id=8884 + +## 0.1.1 - 2006-09-25 + +### Changed +- Added unit tests for all PEAR sniffs +- Exception class now extends from PEAR_Exception + +### Fixed +- Fixed summary report so files without errors but with warnings are not shown when warnings are hidden + +## 0.1.0 - 2006-09-19 + +### Changed +- Reorganised package contents to conform to PEAR standards +- Changed version numbering to conform to PEAR standards +- Removed duplicate `require_once()` of `Exception.php` from `CodeSniffer.php` + +## 0.0.5 - 2006-09-18 + +### Fixed +- Fixed `.bat` file for situation where `php.ini` cannot be found so `include_path` is not set + +## 0.0.4 - 2006-08-28 + +### Changed +- Added .bat file for easier running of PHP_CodeSniffer on Windows +- Sniff that checks method names now works for PHP4 style code where there is no scope keyword +- Sniff that checks method names now works for PHP4 style constructors +- Sniff that checks method names no longer incorrectly reports error with magic methods +- Sniff that checks method names now reports errors with non-magic methods prefixed with __ +- Sniff that checks for constant names no longer incorrectly reports errors with heredoc strings +- Sniff that checks for constant names no longer incorrectly reports errors with created objects +- Sniff that checks indentation no longer incorrectly reports errors with heredoc strings +- Sniff that checks indentation now correctly reports errors with improperly indented multi-line strings +- Sniff that checks function declarations now checks for spaces before and after an equals sign for default values +- Sniff that checks function declarations no longer incorrectly reports errors with multi-line declarations +- Sniff that checks included code no longer incorrectly reports errors when return value is used conditionally +- Sniff that checks opening brace of function no longer incorrectly reports errors with multi-line declarations +- Sniff that checks spacing after commas in function calls no longer reports too many errors for some code +- Sniff that checks control structure declarations now gives more descriptive error message + +## 0.0.3 - 2006-08-22 + +### Changed +- Added sniff to check for invalid class and interface names +- Added sniff to check for invalid function and method names +- Added sniff to warn if line is greater than 85 characters +- Added sniff to check that function calls are in the correct format +- Added command line arg to print current version (--version) + +### Fixed +- Fixed error where comments were not allowed on the same line as a control structure declaration + +## 0.0.2 - 2006-07-25 + +### Changed +- Removed the including of checked files to stop errors caused by parsing them +- Removed the use of reflection so checked files do not have to be included +- Memory usage has been greatly reduced +- Much faster tokenizing and checking times +- Reworked the PEAR coding standard sniffs (much faster now) +- Fix some bugs with the PEAR scope indentation standard +- Better checking for installed coding standards +- Can now accept multiple files and dirs on the command line +- Added an option to list installed coding standards +- Added an option to print a summary report (number of errors and warnings shown for each file) +- Added an option to hide warnings from reports +- Added an option to print verbose output (so you know what is going on) +- Reordered command line args to put switches first (although order is not enforced) +- Switches can now be specified together (e.g. `phpcs -nv`) as well as separately (`phpcs -n -v`) + +## 0.0.1 - 2006-07-19 + +### Added +- Initial preview release + +<!-- +=== Link list for release links ==== +--> + +[Unreleased]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/master...HEAD +[3.10.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.0...3.10.1 +[3.10.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.2...3.10.0 +[3.9.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.1...3.9.2 +[3.9.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.0...3.9.1 +[3.9.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.1...3.9.0 +[3.8.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.0...3.8.1 +[3.8.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.2...3.8.0 +[3.7.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.1...3.7.2 +[3.7.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.0...3.7.1 +[3.7.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.6.2...3.7.0 +[3.6.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.6.1...3.6.2 +[3.6.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.6.0...3.6.1 +[3.6.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.8...3.6.0 +[3.5.8]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.7...3.5.8 +[3.5.7]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.6...3.5.7 +[3.5.6]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.5...3.5.6 +[3.5.5]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.4...3.5.5 +[3.5.4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.3...3.5.4 +[3.5.3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.2...3.5.3 +[3.5.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.1...3.5.2 +[3.5.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.5.0...3.5.1 +[3.5.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.4.2...3.5.0 +[3.4.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.4.1...3.4.2 +[3.4.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.4.0...3.4.1 +[3.4.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.3.2...3.4.0 +[3.3.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.3.1...3.3.2 +[3.3.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.3.0...3.3.1 +[3.3.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.2.3...3.3.0 +[3.2.3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.2.2...3.2.3 +[3.2.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.2.1...3.2.2 +[3.2.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.2.0...3.2.1 +[3.2.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.1.1...3.2.0 +[3.1.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.1.0...3.1.1 +[3.1.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.2...3.1.0 +[3.0.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.1...3.0.2 +[3.0.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.0...3.0.1 +[3.0.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.0RC4...3.0.0 +[3.0.0RC4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.0RC3...3.0.0RC4 +[3.0.0RC3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.0RC2...3.0.0RC3 +[3.0.0RC2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.0RC1...3.0.0RC2 +[3.0.0RC1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.0.0a1...3.0.0RC1 +[3.0.0a1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.9.2...3.0.0a1 +[2.9.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.9.1...2.9.2 +[2.9.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.9.0...2.9.1 +[2.9.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.8.1...2.9.0 +[2.8.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.8.0...2.8.1 +[2.8.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.7.1...2.8.0 +[2.7.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.7.0...2.7.1 +[2.7.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.6.2...2.7.0 +[2.6.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.6.1...2.6.2 +[2.6.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.6.0...2.6.1 +[2.6.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.5.1...2.6.0 +[2.5.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.5.0...2.5.1 +[2.5.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.4.0...2.5.0 +[2.4.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.3.4...2.4.0 +[2.3.4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.3.3...2.3.4 +[2.3.3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.3.2...2.3.3 +[2.3.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.3.1...2.3.2 +[2.3.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.3.0...2.3.1 +[2.3.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.2.0...2.3.0 +[2.2.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.1.0...2.2.0 +[2.1.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0...2.1.0 +[2.0.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0RC4...2.0.0 +[2.0.0RC4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0RC3...2.0.0RC4 +[2.0.0RC3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0RC2...2.0.0RC3 +[2.0.0RC2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0RC1...2.0.0RC2 +[2.0.0RC1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0a2...2.0.0RC1 +[2.0.0a2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/2.0.0a1...2.0.0a2 +[2.0.0a1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.6...2.0.0a1 +[1.5.6]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.5...1.5.6 +[1.5.5]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.4...1.5.5 +[1.5.4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.3...1.5.4 +[1.5.3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.2...1.5.3 +[1.5.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.1...1.5.2 +[1.5.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.0...1.5.1 +[1.5.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.0RC4...1.5.0 +[1.5.0RC4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.0RC3...1.5.0RC4 +[1.5.0RC3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.0RC2...1.5.0RC3 +[1.5.0RC2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.5.0RC1...1.5.0RC2 +[1.5.0RC1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.8...1.5.0RC1 +[1.4.8]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.7...1.4.8 +[1.4.7]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.6...1.4.7 +[1.4.6]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.5...1.4.6 +[1.4.5]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.4...1.4.5 +[1.4.4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.3...1.4.4 +[1.4.3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.2...1.4.3 +[1.4.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.1...1.4.2 +[1.4.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.4.0...1.4.1 +[1.4.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.3.6...1.4.0 +[1.3.6]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.3.5...1.3.6 +[1.3.5]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.3.4...1.3.5 +[1.3.4]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.3.3...1.3.4 +[1.3.3]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.3.2...1.3.3 +[1.3.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/1.3.1...1.3.2 + +<!-- +=== Link list for contributor profiles ==== +--> + +[@2shediac]: https://github.com/2shediac +[@ablyler]: https://github.com/ablyler +[@aboks]: https://github.com/aboks +[@abulford]: https://github.com/abulford +[@afilina]: https://github.com/afilina +[@aik099]: https://github.com/aik099 +[@akarmazyn]: https://github.com/akarmazyn +[@akkie]: https://github.com/akkie +[@alcohol]: https://github.com/alcohol +[@alekitto]: https://github.com/alekitto +[@AlexHowansky]: https://github.com/AlexHowansky +[@anbuc]: https://github.com/anbuc +[@andrei-propertyguru]: https://github.com/andrei-propertyguru +[@AndrewDawes]: https://github.com/AndrewDawes +[@andygrunwald]: https://github.com/andygrunwald +[@andypost]: https://github.com/andypost +[@annechko]: https://github.com/annechko +[@anomiex]: https://github.com/anomiex +[@arnested]: https://github.com/arnested +[@asnyder]: https://github.com/asnyder +[@Astinus-Eberhard]: https://github.com/Astinus-Eberhard +[@axlon]: https://github.com/axlon +[@bayleedev]: https://github.com/bayleedev +[@becoded]: https://github.com/becoded +[@Benjamin-Loison]: https://github.com/Benjamin-Loison +[@benmatselby]: https://github.com/benmatselby +[@Billz95]: https://github.com/Billz95 +[@biozshock]: https://github.com/biozshock +[@bkdotcom]: https://github.com/bkdotcom +[@bladeofsteel]: https://github.com/bladeofsteel +[@blerou]: https://github.com/blerou +[@blue32a]: https://github.com/blue32a +[@bondas83]: https://github.com/bondas83 +[@boonkerz]: https://github.com/boonkerz +[@BRMatt]: https://github.com/BRMatt +[@CandySunPlus]: https://github.com/CandySunPlus +[@ceeram]: https://github.com/ceeram +[@cixtor]: https://github.com/cixtor +[@claylo]: https://github.com/claylo +[@codebymikey]: https://github.com/codebymikey +[@costdev]: https://github.com/costdev +[@covex-nn]: https://github.com/covex-nn +[@cweiske]: https://github.com/cweiske +[@Daimona]: https://github.com/Daimona +[@danez]: https://github.com/danez +[@DannyvdSluijs]: https://github.com/DannyvdSluijs +[@das-peter]: https://github.com/das-peter +[@datengraben]: https://github.com/datengraben +[@david-binda]: https://github.com/david-binda +[@Decave]: https://github.com/Decave +[@dereuromark]: https://github.com/dereuromark +[@derrabus]: https://github.com/derrabus +[@deviantintegral]: https://github.com/deviantintegral +[@dhensby]: https://github.com/dhensby +[@dingo-d]: https://github.com/dingo-d +[@dominics]: https://github.com/dominics +[@donatj]: https://github.com/donatj +[@dryabkov]: https://github.com/dryabkov +[@dschniepp]: https://github.com/dschniepp +[@duncan3dc]: https://github.com/duncan3dc +[@edorian]: https://github.com/edorian +[@elazar]: https://github.com/elazar +[@ElvenSpellmaker]: https://github.com/ElvenSpellmaker +[@emil-nasso]: https://github.com/emil-nasso +[@enl]: https://github.com/enl +[@erikwiffin]: https://github.com/erikwiffin +[@eser]: https://github.com/eser +[@exussum12]: https://github.com/exussum12 +[@fabacino]: https://github.com/fabacino +[@fabre-thibaud]: https://github.com/fabre-thibaud +[@fcool]: https://github.com/fcool +[@filips123]: https://github.com/filips123 +[@Fischer-Bjoern]: https://github.com/Fischer-Bjoern +[@fonsecas72]: https://github.com/fonsecas72 +[@fredden]: https://github.com/fredden +[@GaryJones]: https://github.com/GaryJones +[@ghostal]: https://github.com/ghostal +[@ghunti]: https://github.com/ghunti +[@gmponos]: https://github.com/gmponos +[@gnutix]: https://github.com/gnutix +[@goatherd]: https://github.com/goatherd +[@grongor]: https://github.com/grongor +[@grzr]: https://github.com/grzr +[@gwharton]: https://github.com/gwharton +[@hashar]: https://github.com/hashar +[@helgi]: https://github.com/helgi +[@hernst42]: https://github.com/hernst42 +[@iammattcoleman]: https://github.com/iammattcoleman +[@ihabunek]: https://github.com/ihabunek +[@illusori]: https://github.com/illusori +[@index0h]: https://github.com/index0h +[@ivuorinen]: https://github.com/ivuorinen +[@jasonmccreary]: https://github.com/jasonmccreary +[@javer]: https://github.com/javer +[@JDGrimes]: https://github.com/JDGrimes +[@jedgell]: https://github.com/jedgell +[@jeffslofish]: https://github.com/jeffslofish +[@jmarcil]: https://github.com/jmarcil +[@jnrbsn]: https://github.com/jnrbsn +[@joachim-n]: https://github.com/joachim-n +[@joelposti]: https://github.com/joelposti +[@johanderuijter]: https://github.com/johanderuijter +[@johnmaguire]: https://github.com/johnmaguire +[@johnpbloch]: https://github.com/johnpbloch +[@jonmcp]: https://github.com/jonmcp +[@JorisDebonnet]: https://github.com/JorisDebonnet +[@josephzidell]: https://github.com/josephzidell +[@joshdavis11]: https://github.com/joshdavis11 +[@jpoliveira08]: https://github.com/jpoliveira08 +[@jpuck]: https://github.com/jpuck +[@jrfnl]: https://github.com/jrfnl +[@kdebisschop]: https://github.com/kdebisschop +[@kenguest]: https://github.com/kenguest +[@klausi]: https://github.com/klausi +[@Konafets]: https://github.com/Konafets +[@kristofser]: https://github.com/kristofser +[@ksimka]: https://github.com/ksimka +[@ktomk]: https://github.com/ktomk +[@kukulich]: https://github.com/kukulich +[@legoktm]: https://github.com/legoktm +[@lmanzke]: https://github.com/lmanzke +[@localheinz]: https://github.com/localheinz +[@lucc]: https://github.com/lucc +[@MacDada]: https://github.com/MacDada +[@Majkl578]: https://github.com/Majkl578 +[@manuelpichler]: https://github.com/manuelpichler +[@marcospassos]: https://github.com/marcospassos +[@MarkBaker]: https://github.com/MarkBaker +[@MarkMaldaba]: https://github.com/MarkMaldaba +[@martinssipenko]: https://github.com/martinssipenko +[@marvasDE]: https://github.com/marvasDE +[@MasterOdin]: https://github.com/MasterOdin +[@mathroc]: https://github.com/mathroc +[@maxgalbu]: https://github.com/maxgalbu +[@mcuelenaere]: https://github.com/mcuelenaere +[@mhujer]: https://github.com/mhujer +[@michaelbutler]: https://github.com/michaelbutler +[@michalbundyra]: https://github.com/michalbundyra +[@Morerice]: https://github.com/Morerice +[@mbomb007]: https://github.com/mbomb007 +[@morozov]: https://github.com/morozov +[@mrkrstphr]: https://github.com/mrkrstphr +[@mythril]: https://github.com/mythril +[@Naelyth]: https://github.com/Naelyth +[@ndm2]: https://github.com/ndm2 +[@nicholascus]: https://github.com/nicholascus +[@NickDickinsonWilde]: https://github.com/NickDickinsonWilde +[@nkovacs]: https://github.com/nkovacs +[@nubs]: https://github.com/nubs +[@o5]: https://github.com/o5 +[@ofbeaton]: https://github.com/ofbeaton +[@olemartinorg]: https://github.com/olemartinorg +[@ondrejmirtes]: https://github.com/ondrejmirtes +[@orx0r]: https://github.com/orx0r +[@ostrolucky]: https://github.com/ostrolucky +[@pfrenssen]: https://github.com/pfrenssen +[@phil-davis]: https://github.com/phil-davis +[@photodude]: https://github.com/photodude +[@przemekhernik]: https://github.com/przemekhernik +[@r3nat]: https://github.com/r3nat +[@raul338]: https://github.com/raul338 +[@realmfoo]: https://github.com/realmfoo +[@remicollet]: https://github.com/remicollet +[@renaatdemuynck]: https://github.com/renaatdemuynck +[@renan]: https://github.com/renan +[@rhorber]: https://github.com/rhorber +[@rmccue]: https://github.com/rmccue +[@robocoder]: https://github.com/robocoder +[@rodrigoprimo]: https://github.com/rodrigoprimo +[@rogeriopradoj]: https://github.com/rogeriopradoj +[@rovangju]: https://github.com/rovangju +[@rvanvelzen]: https://github.com/rvanvelzen +[@saltybeagle]: https://github.com/saltybeagle +[@samlev]: https://github.com/samlev +[@scato]: https://github.com/scato +[@schlessera]: https://github.com/schlessera +[@schnittstabil]: https://github.com/schnittstabil +[@sebastianbergmann]: https://github.com/sebastianbergmann +[@sertand]: https://github.com/sertand +[@shanethehat]: https://github.com/shanethehat +[@shivammathur]: https://github.com/shivammathur +[@simonsan]: https://github.com/simonsan +[@sjlangley]: https://github.com/sjlangley +[@sserbin]: https://github.com/sserbin +[@stefanlenselink]: https://github.com/stefanlenselink +[@SteveTalbot]: https://github.com/SteveTalbot +[@storeman]: https://github.com/storeman +[@stronk7]: https://github.com/stronk7 +[@svycka]: https://github.com/svycka +[@syranez]: https://github.com/syranez +[@tasuki]: https://github.com/tasuki +[@tim-bezhashvyly]: https://github.com/tim-bezhashvyly +[@TomHAnderson]: https://github.com/TomHAnderson +[@thewilkybarkid]: https://github.com/thewilkybarkid +[@thiemowmde]: https://github.com/thiemowmde +[@thomasjfox]: https://github.com/thomasjfox +[@till]: https://github.com/till +[@timoschinkel]: https://github.com/timoschinkel +[@TimWolla]: https://github.com/TimWolla +[@uniquexor]: https://github.com/uniquexor +[@valorin]: https://github.com/valorin +[@VasekPurchart]: https://github.com/VasekPurchart +[@VincentLanglet]: https://github.com/VincentLanglet +[@waltertamboer]: https://github.com/waltertamboer +[@westonruter]: https://github.com/westonruter +[@willemstuursma]: https://github.com/willemstuursma +[@wimg]: https://github.com/wimg +[@wvega]: https://github.com/wvega +[@xalopp]: https://github.com/xalopp +[@xjm]: https://github.com/xjm +[@xt99]: https://github.com/xt99 +[@yesmeck]: https://github.com/yesmeck +[@zBart]: https://github.com/zBart +[pear-adviva]: https://pear.php.net/user/adviva +[pear-bakert]: https://pear.php.net/user/bakert +[pear-bjorn]: https://pear.php.net/user/bjorn +[pear-boxgav]: https://pear.php.net/user/boxgav +[pear-burci]: https://pear.php.net/user/burci +[pear-conf]: https://pear.php.net/user/conf +[pear-cwiedmann]: https://pear.php.net/user/cwiedmann +[pear-dollyaswin]: https://pear.php.net/user/dollyaswin +[pear-dvino]: https://pear.php.net/user/dvino +[pear-et3w503]: https://pear.php.net/user/et3w503 +[pear-gemineye]: https://pear.php.net/user/gemineye +[pear-kwinahradsky]: https://pear.php.net/user/kwinahradsky +[pear-ljmaskey]: https://pear.php.net/user/ljmaskey +[pear-mccammos]: https://pear.php.net/user/mccammos +[pear-pete]: https://pear.php.net/user/pete +[pear-recurser]: https://pear.php.net/user/recurser +[pear-renoiv]: https://pear.php.net/user/renoiv +[pear-rquadling]: https://pear.php.net/user/rquadling +[pear-ryba]: https://pear.php.net/user/ryba +[pear-thezero]: https://pear.php.net/user/thezero +[pear-thing2b]: https://pear.php.net/user/thing2b +[pear-tomdesp]: https://pear.php.net/user/tomdesp +[pear-troehr]: https://pear.php.net/user/troehr +[pear-weirdan]: https://pear.php.net/user/weirdan +[pear-wloche]: https://pear.php.net/user/wloche +[pear-woellchen]: https://pear.php.net/user/woellchen +[pear-youngian]: https://pear.php.net/user/youngian + diff --git a/api/vendor/squizlabs/php_codesniffer/CONTRIBUTING.md b/api/vendor/squizlabs/php_codesniffer/CONTRIBUTING.md deleted file mode 100644 index 5cc736353..000000000 --- a/api/vendor/squizlabs/php_codesniffer/CONTRIBUTING.md +++ /dev/null @@ -1,13 +0,0 @@ -Contributing -------------- - -Before you contribute code to PHP\_CodeSniffer, please make sure it conforms to the PHPCS coding standard and that the PHP\_CodeSniffer unit tests still pass. The easiest way to contribute is to work on a checkout of the repository, or your own fork, rather than an installed PEAR version. If you do this, you can run the following commands to check if everything is ready to submit: - - cd PHP_CodeSniffer - php bin/phpcs - -Which should display no coding standard errors. And then: - - phpunit - -Which should give you no failures or errors. You can ignore any skipped tests as these are for external tools. diff --git a/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf b/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf index 93a91404f..d0252f3f8 100644 --- a/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf +++ b/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf @@ -1,5 +1,5 @@ <?php $phpCodeSnifferConfig = array ( 'installed_paths' => '../../slevomat/coding-standard', -) +); ?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf.dist b/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf.dist index 62dc395cf..f95058faa 100644 --- a/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf.dist +++ b/api/vendor/squizlabs/php_codesniffer/CodeSniffer.conf.dist @@ -5,5 +5,5 @@ 'show_warnings' => '0', 'show_progress' => '1', 'report_width' => '120', -) +); ?> diff --git a/api/vendor/squizlabs/php_codesniffer/README.md b/api/vendor/squizlabs/php_codesniffer/README.md index c0ea8e391..0e9cde36d 100644 --- a/api/vendor/squizlabs/php_codesniffer/README.md +++ b/api/vendor/squizlabs/php_codesniffer/README.md @@ -1,41 +1,60 @@ +# PHP_CodeSniffer + +<div aria-hidden="true"> + +[![Latest Stable Version](http://poser.pugx.org/phpcsstandards/php_codesniffer/v)](https://github.com/PHPCSStandards/PHP_CodeSniffer/releases) +[![Validate](https://github.com/PHPCSStandards/PHP_CodeSniffer/actions/workflows/validate.yml/badge.svg?branch=master)](https://github.com/PHPCSStandards/PHP_CodeSniffer/actions/workflows/validate.yml) +[![Test](https://github.com/PHPCSStandards/PHP_CodeSniffer/actions/workflows/test.yml/badge.svg?branch=master)][GHA-test] +[![Coverage Status](https://coveralls.io/repos/github/PHPCSStandards/PHP_CodeSniffer/badge.svg?branch=master)](https://coveralls.io/github/PHPCSStandards/PHP_CodeSniffer?branch=master) +[![License](http://poser.pugx.org/phpcsstandards/php_codesniffer/license)](https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt) + +![Minimum PHP Version](https://img.shields.io/packagist/php-v/squizlabs/php_codesniffer.svg?maxAge=3600) +[![Tested on PHP 5.4 to 8.3](https://img.shields.io/badge/tested%20on-PHP%205.4%20|%205.5%20|%205.6%20|%207.0%20|%207.1%20|%207.2%20|%207.3%20|%207.4%20|%208.0%20|%208.1%20|%208.2%20|%208.3-brightgreen.svg?maxAge=2419200)][GHA-test] + +[GHA-test]: https://github.com/PHPCSStandards/PHP_CodeSniffer/actions/workflows/test.yml + +</div> + +> [!NOTE] +> This package is the official continuation of the now abandoned [PHP_CodeSniffer package which was created by Squizlabs](https://github.com/squizlabs/PHP_CodeSniffer). + ## About PHP_CodeSniffer is a set of two PHP scripts; the main `phpcs` script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second `phpcbf` script to automatically correct coding standard violations. PHP_CodeSniffer is an essential development tool that ensures your code remains clean and consistent. -[![Build Status](https://github.com/squizlabs/PHP_CodeSniffer/workflows/Validate/badge.svg?branch=master)](https://github.com/squizlabs/PHP_CodeSniffer/actions) -[![Build Status](https://github.com/squizlabs/PHP_CodeSniffer/workflows/Test/badge.svg?branch=master)](https://github.com/squizlabs/PHP_CodeSniffer/actions) -[![Code consistency](http://squizlabs.github.io/PHP_CodeSniffer/analysis/squizlabs/PHP_CodeSniffer/grade.svg)](http://squizlabs.github.io/PHP_CodeSniffer/analysis/squizlabs/PHP_CodeSniffer) -[![Join the chat at https://gitter.im/squizlabs/PHP_CodeSniffer](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/squizlabs/PHP_CodeSniffer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ## Requirements -PHP_CodeSniffer requires PHP version 5.4.0 or greater, although individual sniffs may have additional requirements such as external applications and scripts. See the [Configuration Options manual page](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Configuration-Options) for a list of these requirements. +PHP_CodeSniffer requires PHP version 5.4.0 or greater, although individual sniffs may have additional requirements such as external applications and scripts. See the [Configuration Options manual page](https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Configuration-Options) for a list of these requirements. -If you're using PHP_CodeSniffer as part of a team, or you're running it on a [CI](https://en.wikipedia.org/wiki/Continuous_integration) server, you may want to configure your project's settings [using a configuration file](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file). +If you're using PHP_CodeSniffer as part of a team, or you're running it on a [CI](https://en.wikipedia.org/wiki/Continuous_integration) server, you may want to configure your project's settings [using a configuration file](https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file). ## Installation The easiest way to get started with PHP_CodeSniffer is to download the Phar files for each of the commands: -``` +```bash # Download using curl -curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar -curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar +curl -OL https://phars.phpcodesniffer.com/phpcs.phar +curl -OL https://phars.phpcodesniffer.com/phpcbf.phar # Or download using wget -wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar -wget https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar +wget https://phars.phpcodesniffer.com/phpcs.phar +wget https://phars.phpcodesniffer.com/phpcbf.phar # Then test the downloaded PHARs php phpcs.phar -h php phpcbf.phar -h ``` +These Phars are signed with the official Release key for PHPCS with the +fingerprint `689D AD77 8FF0 8760 E046 228B A978 2203 05CD 5C32`. + ### Composer If you use Composer, you can install PHP_CodeSniffer system-wide with the following command: - - composer global require "squizlabs/php_codesniffer=*" - +```bash +composer global require "squizlabs/php_codesniffer=*" +``` Make sure you have the composer bin dir in your PATH. The default value is `~/.composer/vendor/bin/`, but you can check the value that you need to use by running `composer global config bin-dir --absolute`. Or alternatively, include a dependency for `squizlabs/php_codesniffer` in your `composer.json` file. For example: @@ -43,69 +62,68 @@ Or alternatively, include a dependency for `squizlabs/php_codesniffer` in your ` ```json { "require-dev": { - "squizlabs/php_codesniffer": "3.*" + "squizlabs/php_codesniffer": "^3.0" } } ``` You will then be able to run PHP_CodeSniffer from the vendor bin directory: - - ./vendor/bin/phpcs -h - ./vendor/bin/phpcbf -h +```bash +./vendor/bin/phpcs -h +./vendor/bin/phpcbf -h +``` ### Phive If you use Phive, you can install PHP_CodeSniffer as a project tool using the following commands: - - phive install phpcs - phive install phpcbf - -You will then be able to run PHP_CodeSniffer from the tools directory: - - ./tools/phpcs -h - ./tools/phpcbf -h - -### PEAR -If you use PEAR, you can install PHP_CodeSniffer using the PEAR installer. This will make the `phpcs` and `phpcbf` commands immediately available for use. To install PHP_CodeSniffer using the PEAR installer, first ensure you have [installed PEAR](http://pear.php.net/manual/en/installation.getting.php) and then run the following command: - - pear install PHP_CodeSniffer +```bash +phive install --trust-gpg-keys 689DAD778FF08760E046228BA978220305CD5C32 phpcs +phive install --trust-gpg-keys 689DAD778FF08760E046228BA978220305CD5C32 phpcbf +``` +You will then be able to run PHP_CodeSniffer from the `tools` directory: +```bash +./tools/phpcs -h +./tools/phpcbf -h +``` ### Git Clone You can also download the PHP_CodeSniffer source and run the `phpcs` and `phpcbf` commands directly from the Git clone: - - git clone https://github.com/squizlabs/PHP_CodeSniffer.git - cd PHP_CodeSniffer - php bin/phpcs -h - php bin/phpcbf -h +```bash +git clone https://github.com/PHPCSStandards/PHP_CodeSniffer.git +cd PHP_CodeSniffer +php bin/phpcs -h +php bin/phpcbf -h +``` ## Getting Started The default coding standard used by PHP_CodeSniffer is the PEAR coding standard. To check a file against the PEAR coding standard, simply specify the file's location: - - $ phpcs /path/to/code/myfile.php - +```bash +phpcs /path/to/code/myfile.php +``` Or if you wish to check an entire directory you can specify the directory location instead of a file. - - $ phpcs /path/to/code-directory - +```bash +phpcs /path/to/code-directory +``` If you wish to check your code against the PSR-12 coding standard, use the `--standard` command line argument: - - $ phpcs --standard=PSR12 /path/to/code-directory +```bash +phpcs --standard=PSR12 /path/to/code-directory +``` If PHP_CodeSniffer finds any coding standard errors, a report will be shown after running the command. -Full usage information and example reports are available on the [usage page](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage). +Full usage information and example reports are available on the [usage page](https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Usage). ## Documentation -The documentation for PHP_CodeSniffer is available on the [Github wiki](https://github.com/squizlabs/PHP_CodeSniffer/wiki). +The documentation for PHP_CodeSniffer is available on the [GitHub wiki](https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki). ## Issues -Bug reports and feature requests can be submitted on the [Github Issue Tracker](https://github.com/squizlabs/PHP_CodeSniffer/issues). +Bug reports and feature requests can be submitted on the [GitHub Issue Tracker](https://github.com/PHPCSStandards/PHP_CodeSniffer/issues). ## Contributing -See [CONTRIBUTING.md](CONTRIBUTING.md) for information. +See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for information. ## Versioning diff --git a/api/vendor/squizlabs/php_codesniffer/autoload.php b/api/vendor/squizlabs/php_codesniffer/autoload.php index 0dcf1b4c8..5dd138732 100644 --- a/api/vendor/squizlabs/php_codesniffer/autoload.php +++ b/api/vendor/squizlabs/php_codesniffer/autoload.php @@ -11,11 +11,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer; +use Composer\Autoload\ClassLoader; +use Exception; + if (class_exists('PHP_CodeSniffer\Autoload', false) === false) { class Autoload { @@ -70,14 +73,14 @@ public static function load($class) // Make sure we don't try to load any of Composer's classes // while the autoloader is being setup. if (strpos($class, 'Composer\\') === 0) { - return; + return false; } if (strpos(__DIR__, 'phar://') !== 0 && @file_exists(__DIR__.'/../../autoload.php') === true ) { self::$composerAutoloader = include __DIR__.'/../../autoload.php'; - if (self::$composerAutoloader instanceof \Composer\Autoload\ClassLoader) { + if (self::$composerAutoloader instanceof ClassLoader) { self::$composerAutoloader->unregister(); self::$composerAutoloader->register(); } else { @@ -282,7 +285,7 @@ public static function getSearchPaths() public static function getLoadedClassName($path) { if (isset(self::$loadedClasses[$path]) === false) { - throw new \Exception("Cannot get class name for $path; file has not been included"); + throw new Exception("Cannot get class name for $path; file has not been included"); } return self::$loadedClasses[$path]; @@ -295,13 +298,13 @@ public static function getLoadedClassName($path) * * @param string $class The name of the class. * - * @throws \Exception If the class name has not been loaded + * @throws \Exception If the class name has not been loaded. * @return string */ public static function getLoadedFileName($class) { if (isset(self::$loadedFiles[$class]) === false) { - throw new \Exception("Cannot get file name for $class; class has not been included"); + throw new Exception("Cannot get file name for $class; class has not been included"); } return self::$loadedFiles[$class]; diff --git a/api/vendor/squizlabs/php_codesniffer/bin/phpcbf b/api/vendor/squizlabs/php_codesniffer/bin/phpcbf index 45b43f432..c804bdf10 100644 --- a/api/vendor/squizlabs/php_codesniffer/bin/phpcbf +++ b/api/vendor/squizlabs/php_codesniffer/bin/phpcbf @@ -5,14 +5,10 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ -if (is_file(__DIR__.'/../autoload.php') === true) { - include_once __DIR__.'/../autoload.php'; -} else { - include_once 'PHP/CodeSniffer/autoload.php'; -} +require_once __DIR__.'/../autoload.php'; $runner = new PHP_CodeSniffer\Runner(); $exitCode = $runner->runPHPCBF(); diff --git a/api/vendor/squizlabs/php_codesniffer/bin/phpcbf.bat b/api/vendor/squizlabs/php_codesniffer/bin/phpcbf.bat index 5b07a7d92..da3b0401a 100644 --- a/api/vendor/squizlabs/php_codesniffer/bin/phpcbf.bat +++ b/api/vendor/squizlabs/php_codesniffer/bin/phpcbf.bat @@ -3,10 +3,8 @@ REM PHP Code Beautifier and Fixer fixes violations of a defined coding standard. REM REM @author Greg Sherwood <gsherwood@squiz.net> REM @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) -REM @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence +REM @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence -if "%PHP_PEAR_PHP_BIN%" neq "" ( - set PHPBIN=%PHP_PEAR_PHP_BIN% -) else set PHPBIN=php +set PHPBIN=php "%PHPBIN%" "%~dp0\phpcbf" %* diff --git a/api/vendor/squizlabs/php_codesniffer/bin/phpcs b/api/vendor/squizlabs/php_codesniffer/bin/phpcs index 52d28cdf1..d098bf878 100644 --- a/api/vendor/squizlabs/php_codesniffer/bin/phpcs +++ b/api/vendor/squizlabs/php_codesniffer/bin/phpcs @@ -5,14 +5,10 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ -if (is_file(__DIR__.'/../autoload.php') === true) { - include_once __DIR__.'/../autoload.php'; -} else { - include_once 'PHP/CodeSniffer/autoload.php'; -} +require_once __DIR__.'/../autoload.php'; $runner = new PHP_CodeSniffer\Runner(); $exitCode = $runner->runPHPCS(); diff --git a/api/vendor/squizlabs/php_codesniffer/bin/phpcs.bat b/api/vendor/squizlabs/php_codesniffer/bin/phpcs.bat index 9f9be7203..a95722b4e 100644 --- a/api/vendor/squizlabs/php_codesniffer/bin/phpcs.bat +++ b/api/vendor/squizlabs/php_codesniffer/bin/phpcs.bat @@ -3,10 +3,8 @@ REM PHP_CodeSniffer detects violations of a defined coding standard. REM REM @author Greg Sherwood <gsherwood@squiz.net> REM @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) -REM @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence +REM @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence -if "%PHP_PEAR_PHP_BIN%" neq "" ( - set PHPBIN=%PHP_PEAR_PHP_BIN% -) else set PHPBIN=php +set PHPBIN=php "%PHPBIN%" "%~dp0\phpcs" %* diff --git a/api/vendor/squizlabs/php_codesniffer/composer.json b/api/vendor/squizlabs/php_codesniffer/composer.json index 7605a5df9..28cdb07b7 100644 --- a/api/vendor/squizlabs/php_codesniffer/composer.json +++ b/api/vendor/squizlabs/php_codesniffer/composer.json @@ -1,40 +1,90 @@ { "name": "squizlabs/php_codesniffer", "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "license": "BSD-3-Clause", "type": "library", "keywords": [ "phpcs", - "standards" + "standards", + "static analysis" ], - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "license": "BSD-3-Clause", "authors": [ { "name": "Greg Sherwood", - "role": "lead" + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki", - "source": "https://github.com/squizlabs/PHP_CodeSniffer" - }, - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy" }, "require": { "php": ">=5.4.0", + "ext-simplexml": "*", "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "ext-simplexml": "*" + "ext-xmlwriter": "*" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" - ] + "bin/phpcbf", + "bin/phpcs" + ], + "config": { + "lock": false + }, + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "scripts": { + "cs": [ + "@php ./bin/phpcs" + ], + "cbf": [ + "@php ./bin/phpcbf" + ], + "test": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit tests/AllTests.php --no-coverage" + ], + "coverage": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit tests/AllTests.php -d max_execution_time=0" + ], + "coverage-local": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit tests/AllTests.php --coverage-html ./build/coverage-html -d max_execution_time=0" + ], + "build": [ + "Composer\\Config::disableProcessTimeout", + "@php -d phar.readonly=0 -f ./scripts/build-phar.php" + ], + "check-all": [ + "@cs", + "@test" + ] + }, + "scripts-descriptions": { + "cs": "Check for code style violations.", + "cbf": "Fix code style violations.", + "test": "Run the unit tests without code coverage.", + "coverage": "Run the unit tests with code coverage.", + "coverage-local": "Run the unit tests with code coverage and generate an HTML report in a 'build' directory.", + "build": "Create PHAR files for PHPCS and PHPCBF.", + "check-all": "Run all checks (phpcs, tests)." + } } diff --git a/api/vendor/squizlabs/php_codesniffer/licence.txt b/api/vendor/squizlabs/php_codesniffer/licence.txt index f95432c87..9f95b6771 100644 --- a/api/vendor/squizlabs/php_codesniffer/licence.txt +++ b/api/vendor/squizlabs/php_codesniffer/licence.txt @@ -8,7 +8,7 @@ modification, are permitted provided that the following conditions are met: * 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 Squiz Pty Ltd nor the + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Config.php b/api/vendor/squizlabs/php_codesniffer/src/Config.php index 22b204921..7dc0b8185 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Config.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Config.php @@ -7,56 +7,62 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer; +use Exception; +use Phar; use PHP_CodeSniffer\Exceptions\DeepExitException; use PHP_CodeSniffer\Exceptions\RuntimeException; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Help; +use PHP_CodeSniffer\Util\Standards; /** * Stores the configuration used to run PHPCS and PHPCBF. * - * @property string[] $files The files and directories to check. - * @property string[] $standards The standards being used for checking. - * @property int $verbosity How verbose the output should be. - * 0: no unnecessary output - * 1: basic output for files being checked - * 2: ruleset and file parsing output - * 3: sniff execution output - * @property bool $interactive Enable interactive checking mode. - * @property bool $parallel Check files in parallel. - * @property bool $cache Enable the use of the file cache. - * @property bool $cacheFile A file where the cache data should be written - * @property bool $colors Display colours in output. - * @property bool $explain Explain the coding standards. - * @property bool $local Process local files in directories only (no recursion). - * @property bool $showSources Show sniff source codes in report output. - * @property bool $showProgress Show basic progress information while running. - * @property bool $quiet Quiet mode; disables progress and verbose output. - * @property bool $annotations Process phpcs: annotations. - * @property int $tabWidth How many spaces each tab is worth. - * @property string $encoding The encoding of the files being checked. - * @property string[] $sniffs The sniffs that should be used for checking. - * If empty, all sniffs in the supplied standards will be used. - * @property string[] $exclude The sniffs that should be excluded from checking. - * If empty, all sniffs in the supplied standards will be used. - * @property string[] $ignored Regular expressions used to ignore files and folders during checking. - * @property string $reportFile A file where the report output should be written. - * @property string $generator The documentation generator to use. - * @property string $filter The filter to use for the run. - * @property string[] $bootstrap One of more files to include before the run begins. - * @property int $reportWidth The maximum number of columns that reports should use for output. - * Set to "auto" for have this value changed to the width of the terminal. - * @property int $errorSeverity The minimum severity an error must have to be displayed. - * @property int $warningSeverity The minimum severity a warning must have to be displayed. - * @property bool $recordErrors Record the content of error messages as well as error counts. - * @property string $suffix A suffix to add to fixed files. - * @property string $basepath A file system location to strip from the paths of files shown in reports. - * @property bool $stdin Read content from STDIN instead of supplied files. - * @property string $stdinContent Content passed directly to PHPCS on STDIN. - * @property string $stdinPath The path to use for content passed on STDIN. + * @property string[] $files The files and directories to check. + * @property string[] $standards The standards being used for checking. + * @property int $verbosity How verbose the output should be. + * 0: no unnecessary output + * 1: basic output for files being checked + * 2: ruleset and file parsing output + * 3: sniff execution output + * @property bool $interactive Enable interactive checking mode. + * @property int $parallel Check files in parallel. + * @property bool $cache Enable the use of the file cache. + * @property string $cacheFile Path to the file where the cache data should be written + * @property bool $colors Display colours in output. + * @property bool $explain Explain the coding standards. + * @property bool $local Process local files in directories only (no recursion). + * @property bool $showSources Show sniff source codes in report output. + * @property bool $showProgress Show basic progress information while running. + * @property bool $quiet Quiet mode; disables progress and verbose output. + * @property bool $annotations Process phpcs: annotations. + * @property int $tabWidth How many spaces each tab is worth. + * @property string $encoding The encoding of the files being checked. + * @property string[] $sniffs The sniffs that should be used for checking. + * If empty, all sniffs in the supplied standards will be used. + * @property string[] $exclude The sniffs that should be excluded from checking. + * If empty, all sniffs in the supplied standards will be used. + * @property string[] $ignored Regular expressions used to ignore files and folders during checking. + * @property string $reportFile A file where the report output should be written. + * @property string $generator The documentation generator to use. + * @property string $filter The filter to use for the run. + * @property string[] $bootstrap One of more files to include before the run begins. + * @property int|string $reportWidth The maximum number of columns that reports should use for output. + * Set to "auto" for have this value changed to the width of the terminal. + * @property int $errorSeverity The minimum severity an error must have to be displayed. + * @property int $warningSeverity The minimum severity a warning must have to be displayed. + * @property bool $recordErrors Record the content of error messages as well as error counts. + * @property string $suffix A suffix to add to fixed files. + * @property string $basepath A file system location to strip from the paths of files shown in reports. + * @property bool $stdin Read content from STDIN instead of supplied files. + * @property string $stdinContent Content passed directly to PHPCS on STDIN. + * @property string $stdinPath The path to use for content passed on STDIN. + * @property bool $trackTime Whether or not to track sniff run time. * * @property array<string, string> $extensions File extensions that should be checked, and what tokenizer to use. * E.g., array('inc' => 'PHP'); @@ -79,7 +85,7 @@ class Config * * @var string */ - const VERSION = '3.6.0'; + const VERSION = '3.10.1'; /** * Package stability; either stable, beta or alpha. @@ -88,6 +94,13 @@ class Config */ const STABILITY = 'stable'; + /** + * Default report width when no report width is provided and 'auto' does not yield a valid width. + * + * @var int + */ + const DEFAULT_REPORT_WIDTH = 80; + /** * An array of settings that PHPCS and PHPCBF accept. * @@ -135,6 +148,7 @@ class Config 'stdin' => null, 'stdinContent' => null, 'stdinPath' => null, + 'trackTime' => null, 'unknown' => null, ]; @@ -159,7 +173,7 @@ class Config /** * Command line values that the user has supplied directly. * - * @var array<string, TRUE> + * @var array<string, true|array<string, true>> */ private static $overriddenDefaults = []; @@ -199,6 +213,22 @@ public function __get($name) throw new RuntimeException("ERROR: unable to get value of property \"$name\""); } + // Figure out what the terminal width needs to be for "auto". + if ($name === 'reportWidth' && $this->settings[$name] === 'auto') { + if (function_exists('shell_exec') === true) { + $dimensions = shell_exec('stty size 2>&1'); + if (is_string($dimensions) === true && preg_match('|\d+ (\d+)|', $dimensions, $matches) === 1) { + $this->settings[$name] = (int) $matches[1]; + } + } + + if ($this->settings[$name] === 'auto') { + // If shell_exec wasn't available or didn't yield a usable value, set to the default. + // This will prevent subsequent retrievals of the reportWidth from making another call to stty. + $this->settings[$name] = self::DEFAULT_REPORT_WIDTH; + } + } + return $this->settings[$name]; }//end __get() @@ -221,21 +251,25 @@ public function __set($name, $value) switch ($name) { case 'reportWidth' : - // Support auto terminal width. - if ($value === 'auto' - && function_exists('shell_exec') === true - && preg_match('|\d+ (\d+)|', shell_exec('stty size 2>&1'), $matches) === 1 - ) { - $value = (int) $matches[1]; - } else { + if (is_string($value) === true && $value === 'auto') { + // Nothing to do. Leave at 'auto'. + break; + } + + if (is_int($value) === true) { + $value = abs($value); + } else if (is_string($value) === true && preg_match('`^\d+$`', $value) === 1) { $value = (int) $value; + } else { + $value = self::DEFAULT_REPORT_WIDTH; } break; + case 'standards' : $cleaned = []; // Check if the standard name is valid, or if the case is invalid. - $installedStandards = Util\Standards::getInstalledStandards(); + $installedStandards = Standards::getInstalledStandards(); foreach ($value as $standard) { foreach ($installedStandards as $validStandard) { if (strtolower($standard) === strtolower($validStandard)) { @@ -249,6 +283,20 @@ public function __set($name, $value) $value = $cleaned; break; + + // Only track time when explicitly needed. + case 'verbosity': + if ($value > 2) { + $this->settings['trackTime'] = true; + } + break; + case 'reports': + $reports = array_change_key_case($value, CASE_LOWER); + if (array_key_exists('performance', $reports) === true) { + $this->settings['trackTime'] = true; + } + break; + default : // No validation required. break; @@ -363,11 +411,11 @@ public function __construct(array $cliArgs=[], $dieOnUnknownArg=true) $lastDir = $currentDir; $currentDir = dirname($currentDir); - } while ($currentDir !== '.' && $currentDir !== $lastDir && @is_readable($currentDir) === true); + } while ($currentDir !== '.' && $currentDir !== $lastDir && Common::isReadable($currentDir) === true); }//end if if (defined('STDIN') === false - || strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' + || stripos(PHP_OS, 'WIN') === 0 ) { return; } @@ -376,7 +424,7 @@ public function __construct(array $cliArgs=[], $dieOnUnknownArg=true) // Check for content on STDIN. if ($this->stdin === true - || (Util\Common::isStdinATTY() === false + || (Common::isStdinATTY() === false && feof($handle) === false) ) { $readStreams = [$handle]; @@ -459,7 +507,7 @@ public function setCommandLineValues($args) /** * Restore default values for all possible command line arguments. * - * @return array + * @return void */ public function restoreDefaults() { @@ -502,6 +550,7 @@ public function restoreDefaults() $this->stdin = false; $this->stdinContent = null; $this->stdinPath = null; + $this->trackTime = false; $this->unknown = []; $standard = self::getConfigData('default_standard'); @@ -604,7 +653,7 @@ public function processShortArgument($arg, $pos) throw new DeepExitException($output, 0); case 'i' : ob_start(); - Util\Standards::printInstalledStandards(); + Standards::printInstalledStandards(); $output = ob_get_contents(); ob_end_clean(); throw new DeepExitException($output, 0); @@ -689,7 +738,7 @@ public function processShortArgument($arg, $pos) /** - * Processes a long (--example) command line argument. + * Processes a long (--example) command-line argument. * * @param string $arg The command line argument. * @param int $pos The position of the argument on the command line. @@ -708,7 +757,7 @@ public function processLongArgument($arg, $pos) throw new DeepExitException($output, 0); case 'version': $output = 'PHP_CodeSniffer version '.self::VERSION.' ('.self::STABILITY.') '; - $output .= 'by Squiz (http://www.squiz.net)'.PHP_EOL; + $output .= 'by Squiz and PHPCSStandards'.PHP_EOL; throw new DeepExitException($output, 0); case 'colors': if (isset(self::$overriddenDefaults['colors']) === true) { @@ -767,7 +816,7 @@ public function processLongArgument($arg, $pos) try { $this->setConfigData($key, $value); - } catch (\Exception $e) { + } catch (Exception $e) { throw new DeepExitException($e->getMessage().PHP_EOL, 3); } @@ -795,7 +844,7 @@ public function processLongArgument($arg, $pos) } else { try { $this->setConfigData($key, null); - } catch (\Exception $e) { + } catch (Exception $e) { throw new DeepExitException($e->getMessage().PHP_EOL, 3); } @@ -877,7 +926,7 @@ public function processLongArgument($arg, $pos) $this->cache = true; self::$overriddenDefaults['cache'] = true; - $this->cacheFile = Util\Common::realpath(substr($arg, 6)); + $this->cacheFile = Common::realpath(substr($arg, 6)); // It may not exist and return false instead. if ($this->cacheFile === false) { @@ -896,9 +945,9 @@ public function processLongArgument($arg, $pos) } else { if ($dir[0] === '/') { // An absolute path. - $dir = Util\Common::realpath($dir); + $dir = Common::realpath($dir); } else { - $dir = Util\Common::realpath(getcwd().'/'.$dir); + $dir = Common::realpath(getcwd().'/'.$dir); } if ($dir !== false) { @@ -919,7 +968,7 @@ public function processLongArgument($arg, $pos) $files = explode(',', substr($arg, 10)); $bootstrap = []; foreach ($files as $file) { - $path = Util\Common::realpath($file); + $path = Common::realpath($file); if ($path === false) { $error = 'ERROR: The specified bootstrap file "'.$file.'" does not exist'.PHP_EOL.PHP_EOL; $error .= $this->printShortUsage(true); @@ -933,7 +982,7 @@ public function processLongArgument($arg, $pos) self::$overriddenDefaults['bootstrap'] = true; } else if (substr($arg, 0, 10) === 'file-list=') { $fileList = substr($arg, 10); - $path = Util\Common::realpath($fileList); + $path = Common::realpath($fileList); if ($path === false) { $error = 'ERROR: The specified file list "'.$fileList.'" does not exist'.PHP_EOL.PHP_EOL; $error .= $this->printShortUsage(true); @@ -956,7 +1005,7 @@ public function processLongArgument($arg, $pos) break; } - $this->stdinPath = Util\Common::realpath(substr($arg, 11)); + $this->stdinPath = Common::realpath(substr($arg, 11)); // It may not exist and return false instead, so use whatever they gave us. if ($this->stdinPath === false) { @@ -969,13 +1018,13 @@ public function processLongArgument($arg, $pos) break; } - $this->reportFile = Util\Common::realpath(substr($arg, 12)); + $this->reportFile = Common::realpath(substr($arg, 12)); // It may not exist and return false instead. if ($this->reportFile === false) { $this->reportFile = substr($arg, 12); - $dir = Util\Common::realpath(dirname($this->reportFile)); + $dir = Common::realpath(dirname($this->reportFile)); if (is_dir($dir) === false) { $error = 'ERROR: The specified report file path "'.$this->reportFile.'" points to a non-existent directory'.PHP_EOL.PHP_EOL; $error .= $this->printShortUsage(true); @@ -1011,7 +1060,7 @@ public function processLongArgument($arg, $pos) break; } - $this->basepath = Util\Common::realpath(substr($arg, 9)); + $this->basepath = Common::realpath(substr($arg, 9)); // It may not exist and return false instead. if ($this->basepath === false) { @@ -1038,7 +1087,7 @@ public function processLongArgument($arg, $pos) if ($output === false) { $output = null; } else { - $dir = Util\Common::realpath(dirname($output)); + $dir = Common::realpath(dirname($output)); if (is_dir($dir) === false) { $error = 'ERROR: The specified '.$report.' report file path "'.$output.'" points to a non-existent directory'.PHP_EOL.PHP_EOL; $error .= $this->printShortUsage(true); @@ -1204,13 +1253,17 @@ public function processLongArgument($arg, $pos) if ($this->dieOnUnknownArg === false) { $eqPos = strpos($arg, '='); try { + $unknown = $this->unknown; + if ($eqPos === false) { - $this->values[$arg] = $arg; + $unknown[$arg] = $arg; } else { - $value = substr($arg, ($eqPos + 1)); - $arg = substr($arg, 0, $eqPos); - $this->values[$arg] = $value; + $value = substr($arg, ($eqPos + 1)); + $arg = substr($arg, 0, $eqPos); + $unknown[$arg] = $value; } + + $this->unknown = $unknown; } catch (RuntimeException $e) { // Value is not valid, so just ignore it. } @@ -1268,7 +1321,7 @@ public function processFilePath($path) return; } - $file = Util\Common::realpath($path); + $file = Common::realpath($path); if (file_exists($file) === false) { if ($this->dieOnUnknownArg === false) { return; @@ -1343,71 +1396,21 @@ public function printShortUsage($return=false) */ public function printPHPCSUsage() { - echo 'Usage: phpcs [-nwlsaepqvi] [-d key[=value]] [--colors] [--no-colors]'.PHP_EOL; - echo ' [--cache[=<cacheFile>]] [--no-cache] [--tab-width=<tabWidth>]'.PHP_EOL; - echo ' [--report=<report>] [--report-file=<reportFile>] [--report-<report>=<reportFile>]'.PHP_EOL; - echo ' [--report-width=<reportWidth>] [--basepath=<basepath>] [--bootstrap=<bootstrap>]'.PHP_EOL; - echo ' [--severity=<severity>] [--error-severity=<severity>] [--warning-severity=<severity>]'.PHP_EOL; - echo ' [--runtime-set key value] [--config-set key value] [--config-delete key] [--config-show]'.PHP_EOL; - echo ' [--standard=<standard>] [--sniffs=<sniffs>] [--exclude=<sniffs>]'.PHP_EOL; - echo ' [--encoding=<encoding>] [--parallel=<processes>] [--generator=<generator>]'.PHP_EOL; - echo ' [--extensions=<extensions>] [--ignore=<patterns>] [--ignore-annotations]'.PHP_EOL; - echo ' [--stdin-path=<stdinPath>] [--file-list=<fileList>] [--filter=<filter>] <file> - ...'.PHP_EOL; - echo PHP_EOL; - echo ' - Check STDIN instead of local files and directories'.PHP_EOL; - echo ' -n Do not print warnings (shortcut for --warning-severity=0)'.PHP_EOL; - echo ' -w Print both warnings and errors (this is the default)'.PHP_EOL; - echo ' -l Local directory only, no recursion'.PHP_EOL; - echo ' -s Show sniff codes in all reports'.PHP_EOL; - echo ' -a Run interactively'.PHP_EOL; - echo ' -e Explain a standard by showing the sniffs it includes'.PHP_EOL; - echo ' -p Show progress of the run'.PHP_EOL; - echo ' -q Quiet mode; disables progress and verbose output'.PHP_EOL; - echo ' -m Stop error messages from being recorded'.PHP_EOL; - echo ' (saves a lot of memory, but stops many reports from being used)'.PHP_EOL; - echo ' -v Print processed files'.PHP_EOL; - echo ' -vv Print ruleset and token output'.PHP_EOL; - echo ' -vvv Print sniff processing information'.PHP_EOL; - echo ' -i Show a list of installed coding standards'.PHP_EOL; - echo ' -d Set the [key] php.ini value to [value] or [true] if value is omitted'.PHP_EOL; - echo PHP_EOL; - echo ' --help Print this help message'.PHP_EOL; - echo ' --version Print version information'.PHP_EOL; - echo ' --colors Use colors in output'.PHP_EOL; - echo ' --no-colors Do not use colors in output (this is the default)'.PHP_EOL; - echo ' --cache Cache results between runs'.PHP_EOL; - echo ' --no-cache Do not cache results between runs (this is the default)'.PHP_EOL; - echo ' --ignore-annotations Ignore all phpcs: annotations in code comments'.PHP_EOL; - echo PHP_EOL; - echo ' <cacheFile> Use a specific file for caching (uses a temporary file by default)'.PHP_EOL; - echo ' <basepath> A path to strip from the front of file paths inside reports'.PHP_EOL; - echo ' <bootstrap> A comma separated list of files to run before processing begins'.PHP_EOL; - echo ' <encoding> The encoding of the files being checked (default is utf-8)'.PHP_EOL; - echo ' <extensions> A comma separated list of file extensions to check'.PHP_EOL; - echo ' The type of the file can be specified using: ext/type'.PHP_EOL; - echo ' e.g., module/php,es/js'.PHP_EOL; - echo ' <file> One or more files and/or directories to check'.PHP_EOL; - echo ' <fileList> A file containing a list of files and/or directories to check (one per line)'.PHP_EOL; - echo ' <filter> Use either the "gitmodified" or "gitstaged" filter,'.PHP_EOL; - echo ' or specify the path to a custom filter class'.PHP_EOL; - echo ' <generator> Use either the "HTML", "Markdown" or "Text" generator'.PHP_EOL; - echo ' (forces documentation generation instead of checking)'.PHP_EOL; - echo ' <patterns> A comma separated list of patterns to ignore files and directories'.PHP_EOL; - echo ' <processes> How many files should be checked simultaneously (default is 1)'.PHP_EOL; - echo ' <report> Print either the "full", "xml", "checkstyle", "csv"'.PHP_EOL; - echo ' "json", "junit", "emacs", "source", "summary", "diff"'.PHP_EOL; - echo ' "svnblame", "gitblame", "hgblame" or "notifysend" report,'.PHP_EOL; - echo ' or specify the path to a custom report class'.PHP_EOL; - echo ' (the "full" report is printed by default)'.PHP_EOL; - echo ' <reportFile> Write the report to the specified file path'.PHP_EOL; - echo ' <reportWidth> How many columns wide screen reports should be printed'.PHP_EOL; - echo ' or set to "auto" to use current screen width, where supported'.PHP_EOL; - echo ' <severity> The minimum severity required to display an error or warning'.PHP_EOL; - echo ' <sniffs> A comma separated list of sniff codes to include or exclude from checking'.PHP_EOL; - echo ' (all sniffs must be part of the specified standard)'.PHP_EOL; - echo ' <standard> The name or path of the coding standard to use'.PHP_EOL; - echo ' <stdinPath> If processing STDIN, the file path that STDIN will be processed as'.PHP_EOL; - echo ' <tabWidth> The number of spaces each tab represents'.PHP_EOL; + $longOptions = explode(',', Help::DEFAULT_LONG_OPTIONS); + $longOptions[] = 'cache'; + $longOptions[] = 'no-cache'; + $longOptions[] = 'report'; + $longOptions[] = 'report-file'; + $longOptions[] = 'report-report'; + $longOptions[] = 'config-explain'; + $longOptions[] = 'config-set'; + $longOptions[] = 'config-delete'; + $longOptions[] = 'config-show'; + $longOptions[] = 'generator'; + + $shortOptions = Help::DEFAULT_SHORT_OPTIONS.'aems'; + + (new Help($this, $longOptions, $shortOptions))->display(); }//end printPHPCSUsage() @@ -1419,49 +1422,11 @@ public function printPHPCSUsage() */ public function printPHPCBFUsage() { - echo 'Usage: phpcbf [-nwli] [-d key[=value]] [--ignore-annotations] [--bootstrap=<bootstrap>]'.PHP_EOL; - echo ' [--standard=<standard>] [--sniffs=<sniffs>] [--exclude=<sniffs>] [--suffix=<suffix>]'.PHP_EOL; - echo ' [--severity=<severity>] [--error-severity=<severity>] [--warning-severity=<severity>]'.PHP_EOL; - echo ' [--tab-width=<tabWidth>] [--encoding=<encoding>] [--parallel=<processes>]'.PHP_EOL; - echo ' [--basepath=<basepath>] [--extensions=<extensions>] [--ignore=<patterns>]'.PHP_EOL; - echo ' [--stdin-path=<stdinPath>] [--file-list=<fileList>] [--filter=<filter>] <file> - ...'.PHP_EOL; - echo PHP_EOL; - echo ' - Fix STDIN instead of local files and directories'.PHP_EOL; - echo ' -n Do not fix warnings (shortcut for --warning-severity=0)'.PHP_EOL; - echo ' -w Fix both warnings and errors (on by default)'.PHP_EOL; - echo ' -l Local directory only, no recursion'.PHP_EOL; - echo ' -p Show progress of the run'.PHP_EOL; - echo ' -q Quiet mode; disables progress and verbose output'.PHP_EOL; - echo ' -v Print processed files'.PHP_EOL; - echo ' -vv Print ruleset and token output'.PHP_EOL; - echo ' -vvv Print sniff processing information'.PHP_EOL; - echo ' -i Show a list of installed coding standards'.PHP_EOL; - echo ' -d Set the [key] php.ini value to [value] or [true] if value is omitted'.PHP_EOL; - echo PHP_EOL; - echo ' --help Print this help message'.PHP_EOL; - echo ' --version Print version information'.PHP_EOL; - echo ' --ignore-annotations Ignore all phpcs: annotations in code comments'.PHP_EOL; - echo PHP_EOL; - echo ' <basepath> A path to strip from the front of file paths inside reports'.PHP_EOL; - echo ' <bootstrap> A comma separated list of files to run before processing begins'.PHP_EOL; - echo ' <encoding> The encoding of the files being fixed (default is utf-8)'.PHP_EOL; - echo ' <extensions> A comma separated list of file extensions to fix'.PHP_EOL; - echo ' The type of the file can be specified using: ext/type'.PHP_EOL; - echo ' e.g., module/php,es/js'.PHP_EOL; - echo ' <file> One or more files and/or directories to fix'.PHP_EOL; - echo ' <fileList> A file containing a list of files and/or directories to fix (one per line)'.PHP_EOL; - echo ' <filter> Use either the "gitmodified" or "gitstaged" filter,'.PHP_EOL; - echo ' or specify the path to a custom filter class'.PHP_EOL; - echo ' <patterns> A comma separated list of patterns to ignore files and directories'.PHP_EOL; - echo ' <processes> How many files should be fixed simultaneously (default is 1)'.PHP_EOL; - echo ' <severity> The minimum severity required to fix an error or warning'.PHP_EOL; - echo ' <sniffs> A comma separated list of sniff codes to include or exclude from fixing'.PHP_EOL; - echo ' (all sniffs must be part of the specified standard)'.PHP_EOL; - echo ' <standard> The name or path of the coding standard to use'.PHP_EOL; - echo ' <stdinPath> If processing STDIN, the file path that STDIN will be processed as'.PHP_EOL; - echo ' <suffix> Write modified files to a filename using this suffix'.PHP_EOL; - echo ' ("diff" and "patch" are not used in this mode)'.PHP_EOL; - echo ' <tabWidth> The number of spaces each tab represents'.PHP_EOL; + $longOptions = explode(',', Help::DEFAULT_LONG_OPTIONS); + $longOptions[] = 'suffix'; + $shortOptions = Help::DEFAULT_SHORT_OPTIONS; + + (new Help($this, $longOptions, $shortOptions))->display(); }//end printPHPCBFUsage() @@ -1516,7 +1481,7 @@ public static function getExecutablePath($name) return self::$executablePaths[$name]; } - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + if (stripos(PHP_OS, 'WIN') === 0) { $cmd = 'where '.escapeshellarg($name).' 2> nul'; } else { $cmd = 'which '.escapeshellarg($name).' 2> /dev/null'; @@ -1559,20 +1524,13 @@ public static function setConfigData($key, $value, $temp=false) if ($temp === false) { $path = ''; if (is_callable('\Phar::running') === true) { - $path = \Phar::running(false); + $path = Phar::running(false); } if ($path !== '') { $configFile = dirname($path).DIRECTORY_SEPARATOR.'CodeSniffer.conf'; } else { $configFile = dirname(__DIR__).DIRECTORY_SEPARATOR.'CodeSniffer.conf'; - if (is_file($configFile) === false - && strpos('@data_dir@', '@data_dir') === false - ) { - // If data_dir was replaced, this is a PEAR install and we can - // use the PEAR data dir to store the conf file. - $configFile = '@data_dir@/PHP_CodeSniffer/CodeSniffer.conf'; - } } if (is_file($configFile) === true @@ -1596,7 +1554,7 @@ public static function setConfigData($key, $value, $temp=false) if ($temp === false) { $output = '<'.'?php'."\n".' $phpCodeSnifferConfig = '; $output .= var_export($phpCodeSnifferConfig, true); - $output .= "\n?".'>'; + $output .= ";\n?".'>'; if (file_put_contents($configFile, $output) === false) { $error = 'ERROR: Config file '.$configFile.' could not be written'.PHP_EOL.PHP_EOL; @@ -1611,7 +1569,7 @@ public static function setConfigData($key, $value, $temp=false) // If the installed paths are being set, make sure all known // standards paths are added to the autoloader. if ($key === 'installed_paths') { - $installedStandards = Util\Standards::getInstalledStandardDetails(); + $installedStandards = Standards::getInstalledStandardDetails(); foreach ($installedStandards as $name => $details) { Autoload::addSearchPath($details['path'], $details['namespace']); } @@ -1637,7 +1595,7 @@ public static function getAllConfigData() $path = ''; if (is_callable('\Phar::running') === true) { - $path = \Phar::running(false); + $path = Phar::running(false); } if ($path !== '') { @@ -1656,7 +1614,7 @@ public static function getAllConfigData() return []; } - if (is_readable($configFile) === false) { + if (Common::isReadable($configFile) === false) { $error = 'ERROR: Config file '.$configFile.' is not readable'.PHP_EOL.PHP_EOL; throw new DeepExitException($error, 3); } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Exceptions/DeepExitException.php b/api/vendor/squizlabs/php_codesniffer/src/Exceptions/DeepExitException.php index b1440944a..6943e033e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Exceptions/DeepExitException.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Exceptions/DeepExitException.php @@ -7,12 +7,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Exceptions; -class DeepExitException extends \Exception +use Exception; + +class DeepExitException extends Exception { }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Exceptions/RuntimeException.php b/api/vendor/squizlabs/php_codesniffer/src/Exceptions/RuntimeException.php index 093bf13d4..25eacd0b1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Exceptions/RuntimeException.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Exceptions/RuntimeException.php @@ -4,12 +4,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Exceptions; -class RuntimeException extends \RuntimeException +use RuntimeException as PHPRuntimeException; + +class RuntimeException extends PHPRuntimeException { }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Exceptions/TokenizerException.php b/api/vendor/squizlabs/php_codesniffer/src/Exceptions/TokenizerException.php index ceba00ccd..1cf53d623 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Exceptions/TokenizerException.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Exceptions/TokenizerException.php @@ -4,12 +4,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Exceptions; -class TokenizerException extends \Exception +use Exception; + +class TokenizerException extends Exception { }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Files/DummyFile.php b/api/vendor/squizlabs/php_codesniffer/src/Files/DummyFile.php index 3275bf092..f5dc7cc7a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Files/DummyFile.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Files/DummyFile.php @@ -9,13 +9,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Files; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Config; +use PHP_CodeSniffer\Ruleset; class DummyFile extends File { @@ -38,7 +38,7 @@ public function __construct($content, Ruleset $ruleset, Config $config) // This is done by including: phpcs_input_file: [file path] // as the first line of content. $path = 'STDIN'; - if ($content !== null) { + if ($content !== '') { if (substr($content, 0, 17) === 'phpcs_input_file:') { $eolPos = strpos($content, $this->eolChar); $filename = trim(substr($content, 17, ($eolPos - 17))); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Files/File.php b/api/vendor/squizlabs/php_codesniffer/src/Files/File.php index aef4fbf27..3e1409c58 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Files/File.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Files/File.php @@ -4,17 +4,18 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Files; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Config; -use PHP_CodeSniffer\Fixer; -use PHP_CodeSniffer\Util; use PHP_CodeSniffer\Exceptions\RuntimeException; use PHP_CodeSniffer\Exceptions\TokenizerException; +use PHP_CodeSniffer\Fixer; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Tokens; class File { @@ -209,6 +210,7 @@ class File * An array of sniffs being processed and how long they took. * * @var array + * @see getListenerTimes() */ protected $listenerTimes = []; @@ -253,6 +255,7 @@ public function __construct($path, Ruleset $ruleset, Config $config) $this->configCache['errorSeverity'] = $this->config->errorSeverity; $this->configCache['warningSeverity'] = $this->config->warningSeverity; $this->configCache['recordErrors'] = $this->config->recordErrors; + $this->configCache['trackTime'] = $this->config->trackTime; $this->configCache['ignorePatterns'] = $this->ruleset->ignorePatterns; $this->configCache['includePatterns'] = $this->ruleset->includePatterns; @@ -274,7 +277,7 @@ public function setContent($content) $this->tokens = []; try { - $this->eolChar = Util\Common::detectLineEndings($content); + $this->eolChar = Common::detectLineEndings($content); } catch (RuntimeException $e) { $this->addWarningOnLine($e->getMessage(), 1, 'Internal.DetectLineEndings'); return; @@ -343,6 +346,7 @@ public function process() $listenerIgnoreTo = []; $inTests = defined('PHP_CODESNIFFER_IN_TESTS'); $checkAnnotations = $this->config->annotations; + $annotationErrors = []; // Foreach of the listeners that have registered to listen for this // token, get them to process it. @@ -356,7 +360,7 @@ public function process() || $token['code'] === T_DOC_COMMENT_TAG || ($inTests === true && $token['code'] === T_INLINE_HTML)) ) { - $commentText = ltrim($this->tokens[$stackPtr]['content'], ' /*'); + $commentText = ltrim($this->tokens[$stackPtr]['content'], " \t/*#"); $commentTextLower = strtolower($commentText); if (strpos($commentText, '@codingStandards') !== false) { if (strpos($commentText, '@codingStandardsIgnoreFile') !== false) { @@ -379,9 +383,12 @@ public function process() if (isset($this->ruleset->sniffCodes[$parts[0]]) === true) { $listenerCode = array_shift($parts); $propertyCode = array_shift($parts); - $propertyValue = rtrim(implode(' ', $parts), " */\r\n"); + $settings = [ + 'value' => rtrim(implode(' ', $parts), " */\r\n"), + 'scope' => 'sniff', + ]; $listenerClass = $this->ruleset->sniffCodes[$listenerCode]; - $this->ruleset->setSniffProperty($listenerClass, $propertyCode, $propertyValue); + $this->ruleset->setSniffProperty($listenerClass, $propertyCode, $settings); } } } @@ -403,9 +410,20 @@ public function process() $listenerCode = $token['sniffCode']; if (isset($this->ruleset->sniffCodes[$listenerCode]) === true) { $propertyCode = $token['sniffProperty']; - $propertyValue = $token['sniffPropertyValue']; + $settings = [ + 'value' => $token['sniffPropertyValue'], + 'scope' => 'sniff', + ]; $listenerClass = $this->ruleset->sniffCodes[$listenerCode]; - $this->ruleset->setSniffProperty($listenerClass, $propertyCode, $propertyValue); + try { + $this->ruleset->setSniffProperty($listenerClass, $propertyCode, $settings); + } catch (RuntimeException $e) { + // Non-existant property being set via an inline annotation. + // This is typically a PHPCS test case file, but we can't throw an error on the annotation + // line as it would get ignored. We also don't want this error to block + // the scan of the current file, so collect these and throw later. + $annotationErrors[] = 'Line '.$token['line'].': '.str_replace('Ruleset invalid. ', '', $e->getMessage()); + } } } }//end if @@ -413,7 +431,7 @@ public function process() if (PHP_CODESNIFFER_VERBOSITY > 2) { $type = $token['type']; - $content = Util\Common::prepareForOutput($token['content']); + $content = Common::prepareForOutput($token['content']); echo "\t\tProcess token $stackPtr: $type => $content".PHP_EOL; } @@ -490,8 +508,11 @@ public function process() $this->activeListener = $class; - if (PHP_CODESNIFFER_VERBOSITY > 2) { + if ($this->configCache['trackTime'] === true) { $startTime = microtime(true); + } + + if (PHP_CODESNIFFER_VERBOSITY > 2) { echo "\t\t\tProcessing ".$this->activeListener.'... '; } @@ -500,14 +521,16 @@ public function process() $listenerIgnoreTo[$this->activeListener] = $ignoreTo; } - if (PHP_CODESNIFFER_VERBOSITY > 2) { + if ($this->configCache['trackTime'] === true) { $timeTaken = (microtime(true) - $startTime); if (isset($this->listenerTimes[$this->activeListener]) === false) { $this->listenerTimes[$this->activeListener] = 0; } $this->listenerTimes[$this->activeListener] += $timeTaken; + } + if (PHP_CODESNIFFER_VERBOSITY > 2) { $timeTaken = round(($timeTaken), 4); echo "DONE in $timeTaken seconds".PHP_EOL; } @@ -530,12 +553,18 @@ public function process() } } + if ($annotationErrors !== []) { + $error = 'Encountered invalid inline phpcs:set annotations. Found:'.PHP_EOL; + $error .= implode(PHP_EOL, $annotationErrors); + + $this->addWarning($error, null, 'Internal.PropertyDoesNotExist'); + } + if (PHP_CODESNIFFER_VERBOSITY > 2) { echo "\t*** END TOKEN PROCESSING ***".PHP_EOL; echo "\t*** START SNIFF PROCESSING REPORT ***".PHP_EOL; - asort($this->listenerTimes, SORT_NUMERIC); - $this->listenerTimes = array_reverse($this->listenerTimes, true); + arsort($this->listenerTimes, SORT_NUMERIC); foreach ($this->listenerTimes as $listener => $timeTaken) { echo "\t$listener: ".round(($timeTaken), 4).' secs'.PHP_EOL; } @@ -733,7 +762,7 @@ public function addErrorOnLine( /** - * Records a warning against a specific token in the file. + * Records a warning against a specific line in the file. * * @param string $warning The error message. * @param int $line The line on which the warning occurred. @@ -844,7 +873,7 @@ protected function addMessage($error, $message, $line, $column, $code, $data, $s $parts = explode('.', $code); if ($parts[0] === 'Internal') { // An internal message. - $listenerCode = Util\Common::getSniffCode($this->activeListener); + $listenerCode = Common::getSniffCode($this->activeListener); $sniffCode = $code; $checkCodes = [$sniffCode]; } else { @@ -853,7 +882,7 @@ protected function addMessage($error, $message, $line, $column, $code, $data, $s $sniffCode = $code; $listenerCode = substr($sniffCode, 0, strrpos($sniffCode, '.')); } else { - $listenerCode = Util\Common::getSniffCode($this->activeListener); + $listenerCode = Common::getSniffCode($this->activeListener); $sniffCode = $listenerCode.'.'.$code; $parts = explode('.', $sniffCode); } @@ -876,7 +905,7 @@ protected function addMessage($error, $message, $line, $column, $code, $data, $s } } - // If it is ignored, make sure it's not whitelisted. + // If it is ignored, make sure there is no exception in place. if ($ignored === true && isset($this->tokenizer->ignoredLines[$line]['.except']) === true ) { @@ -1210,6 +1239,18 @@ public function getMetrics() }//end getMetrics() + /** + * Returns the time taken processing this file for each invoked sniff. + * + * @return array + */ + public function getListenerTimes() + { + return $this->listenerTimes; + + }//end getListenerTimes() + + /** * Returns the absolute filename of this file. * @@ -1223,7 +1264,7 @@ public function getFilename() /** - * Returns the declaration names for classes, interfaces, traits, and functions. + * Returns the declaration name for classes, interfaces, traits, enums, and functions. * * @param int $stackPtr The position of the declaration token which * declared the class, interface, trait, or function. @@ -1232,7 +1273,7 @@ public function getFilename() * or NULL if the function or class is anonymous. * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If the specified token is not of type * T_FUNCTION, T_CLASS, T_ANON_CLASS, - * T_CLOSURE, T_TRAIT, or T_INTERFACE. + * T_CLOSURE, T_TRAIT, T_ENUM, or T_INTERFACE. */ public function getDeclarationName($stackPtr) { @@ -1246,8 +1287,9 @@ public function getDeclarationName($stackPtr) && $tokenCode !== T_CLASS && $tokenCode !== T_INTERFACE && $tokenCode !== T_TRAIT + && $tokenCode !== T_ENUM ) { - throw new RuntimeException('Token type "'.$this->tokens[$stackPtr]['type'].'" is not T_FUNCTION, T_CLASS, T_INTERFACE or T_TRAIT'); + throw new RuntimeException('Token type "'.$this->tokens[$stackPtr]['type'].'" is not T_FUNCTION, T_CLASS, T_INTERFACE, T_TRAIT or T_ENUM'); } if ($tokenCode === T_FUNCTION @@ -1280,24 +1322,25 @@ public function getDeclarationName($stackPtr) * * <code> * 0 => array( - * 'name' => '$var', // The variable name. - * 'token' => integer, // The stack pointer to the variable name. - * 'content' => string, // The full content of the variable definition. - * 'pass_by_reference' => boolean, // Is the variable passed by reference? - * 'reference_token' => integer, // The stack pointer to the reference operator - * // or FALSE if the param is not passed by reference. - * 'variable_length' => boolean, // Is the param of variable length through use of `...` ? - * 'variadic_token' => integer, // The stack pointer to the ... operator - * // or FALSE if the param is not variable length. - * 'type_hint' => string, // The type hint for the variable. - * 'type_hint_token' => integer, // The stack pointer to the start of the type hint - * // or FALSE if there is no type hint. - * 'type_hint_end_token' => integer, // The stack pointer to the end of the type hint - * // or FALSE if there is no type hint. - * 'nullable_type' => boolean, // TRUE if the type is preceded by the nullability - * // operator. - * 'comma_token' => integer, // The stack pointer to the comma after the param - * // or FALSE if this is the last param. + * 'name' => string, // The variable name. + * 'token' => integer, // The stack pointer to the variable name. + * 'content' => string, // The full content of the variable definition. + * 'has_attributes' => boolean, // Does the parameter have one or more attributes attached ? + * 'pass_by_reference' => boolean, // Is the variable passed by reference? + * 'reference_token' => integer|false, // The stack pointer to the reference operator + * // or FALSE if the param is not passed by reference. + * 'variable_length' => boolean, // Is the param of variable length through use of `...` ? + * 'variadic_token' => integer|false, // The stack pointer to the ... operator + * // or FALSE if the param is not variable length. + * 'type_hint' => string, // The type hint for the variable. + * 'type_hint_token' => integer|false, // The stack pointer to the start of the type hint + * // or FALSE if there is no type hint. + * 'type_hint_end_token' => integer|false, // The stack pointer to the end of the type hint + * // or FALSE if there is no type hint. + * 'nullable_type' => boolean, // TRUE if the type is preceded by the nullability + * // operator. + * 'comma_token' => integer|false, // The stack pointer to the comma after the param + * // or FALSE if this is the last param. * ) * </code> * @@ -1307,8 +1350,12 @@ public function getDeclarationName($stackPtr) * 'default_equal_token' => integer, // The stack pointer to the equals sign. * * Parameters declared using PHP 8 constructor property promotion, have these additional array indexes: - * 'property_visibility' => string, // The property visibility as declared. - * 'visibility_token' => integer, // The stack pointer to the visibility modifier token. + * 'property_visibility' => string, // The property visibility as declared. + * 'visibility_token' => integer|false, // The stack pointer to the visibility modifier token + * // or FALSE if the visibility is not explicitly declared. + * 'property_readonly' => boolean, // TRUE if the readonly keyword was found. + * 'readonly_token' => integer, // The stack pointer to the readonly modifier token. + * // This index will only be set if the property is readonly. * * @param int $stackPtr The position in the stack of the function token * to acquire the parameters for. @@ -1355,6 +1402,7 @@ public function getMethodParameters($stackPtr) $defaultStart = null; $equalToken = null; $paramCount = 0; + $hasAttributes = false; $passByReference = false; $referenceToken = false; $variableLength = false; @@ -1364,27 +1412,37 @@ public function getMethodParameters($stackPtr) $typeHintEndToken = false; $nullableType = false; $visibilityToken = null; + $readonlyToken = null; for ($i = $paramStart; $i <= $closer; $i++) { // Check to see if this token has a parenthesis or bracket opener. If it does // it's likely to be an array which might have arguments in it. This // could cause problems in our parsing below, so lets just skip to the // end of it. - if (isset($this->tokens[$i]['parenthesis_opener']) === true) { + if ($this->tokens[$i]['code'] !== T_TYPE_OPEN_PARENTHESIS + && isset($this->tokens[$i]['parenthesis_opener']) === true + ) { // Don't do this if it's the close parenthesis for the method. if ($i !== $this->tokens[$i]['parenthesis_closer']) { - $i = ($this->tokens[$i]['parenthesis_closer'] + 1); + $i = $this->tokens[$i]['parenthesis_closer']; + continue; } } if (isset($this->tokens[$i]['bracket_opener']) === true) { - // Don't do this if it's the close parenthesis for the method. if ($i !== $this->tokens[$i]['bracket_closer']) { - $i = ($this->tokens[$i]['bracket_closer'] + 1); + $i = $this->tokens[$i]['bracket_closer']; + continue; } } switch ($this->tokens[$i]['code']) { + case T_ATTRIBUTE: + $hasAttributes = true; + + // Skip to the end of the attribute. + $i = $this->tokens[$i]['attribute_closer']; + break; case T_BITWISE_AND: if ($defaultStart === null) { $passByReference = true; @@ -1456,7 +1514,11 @@ public function getMethodParameters($stackPtr) case T_NAMESPACE: case T_NS_SEPARATOR: case T_TYPE_UNION: + case T_TYPE_INTERSECTION: + case T_TYPE_OPEN_PARENTHESIS: + case T_TYPE_CLOSE_PARENTHESIS: case T_FALSE: + case T_TRUE: case T_NULL: // Part of a type hint or default value. if ($defaultStart === null) { @@ -1482,6 +1544,11 @@ public function getMethodParameters($stackPtr) $visibilityToken = $i; } break; + case T_READONLY: + if ($defaultStart === null) { + $readonlyToken = $i; + } + break; case T_CLOSE_PARENTHESIS: case T_COMMA: // If it's null, then there must be no parameters for this @@ -1501,6 +1568,7 @@ public function getMethodParameters($stackPtr) $vars[$paramCount]['default_equal_token'] = $equalToken; } + $vars[$paramCount]['has_attributes'] = $hasAttributes; $vars[$paramCount]['pass_by_reference'] = $passByReference; $vars[$paramCount]['reference_token'] = $referenceToken; $vars[$paramCount]['variable_length'] = $variableLength; @@ -1510,9 +1578,20 @@ public function getMethodParameters($stackPtr) $vars[$paramCount]['type_hint_end_token'] = $typeHintEndToken; $vars[$paramCount]['nullable_type'] = $nullableType; - if ($visibilityToken !== null) { - $vars[$paramCount]['property_visibility'] = $this->tokens[$visibilityToken]['content']; - $vars[$paramCount]['visibility_token'] = $visibilityToken; + if ($visibilityToken !== null || $readonlyToken !== null) { + $vars[$paramCount]['property_visibility'] = 'public'; + $vars[$paramCount]['visibility_token'] = false; + $vars[$paramCount]['property_readonly'] = false; + + if ($visibilityToken !== null) { + $vars[$paramCount]['property_visibility'] = $this->tokens[$visibilityToken]['content']; + $vars[$paramCount]['visibility_token'] = $visibilityToken; + } + + if ($readonlyToken !== null) { + $vars[$paramCount]['property_readonly'] = true; + $vars[$paramCount]['readonly_token'] = $readonlyToken; + } } if ($this->tokens[$i]['code'] === T_COMMA) { @@ -1526,6 +1605,7 @@ public function getMethodParameters($stackPtr) $paramStart = ($i + 1); $defaultStart = null; $equalToken = null; + $hasAttributes = false; $passByReference = false; $referenceToken = false; $variableLength = false; @@ -1535,11 +1615,12 @@ public function getMethodParameters($stackPtr) $typeHintEndToken = false; $nullableType = false; $visibilityToken = null; + $readonlyToken = null; $paramCount++; break; case T_EQUAL: - $defaultStart = $this->findNext(Util\Tokens::$emptyTokens, ($i + 1), null, true); + $defaultStart = $this->findNext(Tokens::$emptyTokens, ($i + 1), null, true); $equalToken = $i; break; }//end switch @@ -1556,19 +1637,19 @@ public function getMethodParameters($stackPtr) * The format of the return value is: * <code> * array( - * 'scope' => 'public', // Public, private, or protected - * 'scope_specified' => true, // TRUE if the scope keyword was found. - * 'return_type' => '', // The return type of the method. - * 'return_type_token' => integer, // The stack pointer to the start of the return type - * // or FALSE if there is no return type. - * 'return_type_end_token' => integer, // The stack pointer to the end of the return type - * // or FALSE if there is no return type. - * 'nullable_return_type' => false, // TRUE if the return type is preceded by the - * // nullability operator. - * 'is_abstract' => false, // TRUE if the abstract keyword was found. - * 'is_final' => false, // TRUE if the final keyword was found. - * 'is_static' => false, // TRUE if the static keyword was found. - * 'has_body' => false, // TRUE if the method has a body + * 'scope' => string, // Public, private, or protected + * 'scope_specified' => boolean, // TRUE if the scope keyword was found. + * 'return_type' => string, // The return type of the method. + * 'return_type_token' => integer|false, // The stack pointer to the start of the return type + * // or FALSE if there is no return type. + * 'return_type_end_token' => integer|false, // The stack pointer to the end of the return type + * // or FALSE if there is no return type. + * 'nullable_return_type' => boolean, // TRUE if the return type is preceded by the + * // nullability operator. + * 'is_abstract' => boolean, // TRUE if the abstract keyword was found. + * 'is_final' => boolean, // TRUE if the final keyword was found. + * 'is_static' => boolean, // TRUE if the static keyword was found. + * 'has_body' => boolean, // TRUE if the method has a body * ); * </code> * @@ -1658,16 +1739,20 @@ public function getMethodProperties($stackPtr) } $valid = [ - T_STRING => T_STRING, - T_CALLABLE => T_CALLABLE, - T_SELF => T_SELF, - T_PARENT => T_PARENT, - T_STATIC => T_STATIC, - T_FALSE => T_FALSE, - T_NULL => T_NULL, - T_NAMESPACE => T_NAMESPACE, - T_NS_SEPARATOR => T_NS_SEPARATOR, - T_TYPE_UNION => T_TYPE_UNION, + T_STRING => T_STRING, + T_CALLABLE => T_CALLABLE, + T_SELF => T_SELF, + T_PARENT => T_PARENT, + T_STATIC => T_STATIC, + T_FALSE => T_FALSE, + T_TRUE => T_TRUE, + T_NULL => T_NULL, + T_NAMESPACE => T_NAMESPACE, + T_NS_SEPARATOR => T_NS_SEPARATOR, + T_TYPE_UNION => T_TYPE_UNION, + T_TYPE_INTERSECTION => T_TYPE_INTERSECTION, + T_TYPE_OPEN_PARENTHESIS => T_TYPE_OPEN_PARENTHESIS, + T_TYPE_CLOSE_PARENTHESIS => T_TYPE_CLOSE_PARENTHESIS, ]; for ($i = $this->tokens[$stackPtr]['parenthesis_closer']; $i < $this->numTokens; $i++) { @@ -1678,6 +1763,20 @@ public function getMethodProperties($stackPtr) break; } + if ($this->tokens[$i]['code'] === T_USE) { + // Skip over closure use statements. + for ($j = ($i + 1); $j < $this->numTokens && isset(Tokens::$emptyTokens[$this->tokens[$j]['code']]) === true; $j++); + if ($this->tokens[$j]['code'] === T_OPEN_PARENTHESIS) { + if (isset($this->tokens[$j]['parenthesis_closer']) === false) { + // Live coding/parse error, stop parsing. + break; + } + + $i = $this->tokens[$j]['parenthesis_closer']; + continue; + } + } + if ($this->tokens[$i]['code'] === T_NULLABLE) { $nullableReturnType = true; } @@ -1729,16 +1828,17 @@ public function getMethodProperties($stackPtr) * * <code> * array( - * 'scope' => string, // Public, private, or protected. - * 'scope_specified' => boolean, // TRUE if the scope was explicitly specified. - * 'is_static' => boolean, // TRUE if the static keyword was found. - * 'type' => string, // The type of the var (empty if no type specified). - * 'type_token' => integer, // The stack pointer to the start of the type - * // or FALSE if there is no type. - * 'type_end_token' => integer, // The stack pointer to the end of the type - * // or FALSE if there is no type. - * 'nullable_type' => boolean, // TRUE if the type is preceded by the nullability - * // operator. + * 'scope' => string, // Public, private, or protected. + * 'scope_specified' => boolean, // TRUE if the scope was explicitly specified. + * 'is_static' => boolean, // TRUE if the static keyword was found. + * 'is_readonly' => boolean, // TRUE if the readonly keyword was found. + * 'type' => string, // The type of the var (empty if no type specified). + * 'type_token' => integer|false, // The stack pointer to the start of the type + * // or FALSE if there is no type. + * 'type_end_token' => integer|false, // The stack pointer to the end of the type + * // or FALSE if there is no type. + * 'nullable_type' => boolean, // TRUE if the type is preceded by the nullability + * // operator. * ); * </code> * @@ -1764,23 +1864,26 @@ public function getMemberProperties($stackPtr) && $this->tokens[$ptr]['code'] !== T_TRAIT) ) { if (isset($this->tokens[$ptr]) === true - && $this->tokens[$ptr]['code'] === T_INTERFACE + && ($this->tokens[$ptr]['code'] === T_INTERFACE + || $this->tokens[$ptr]['code'] === T_ENUM) ) { - // T_VARIABLEs in interfaces can actually be method arguments - // but they wont be seen as being inside the method because there + // T_VARIABLEs in interfaces/enums can actually be method arguments + // but they won't be seen as being inside the method because there // are no scope openers and closers for abstract methods. If it is in // parentheses, we can be pretty sure it is a method argument. if (isset($this->tokens[$stackPtr]['nested_parenthesis']) === false || empty($this->tokens[$stackPtr]['nested_parenthesis']) === true ) { - $error = 'Possible parse error: interfaces may not include member vars'; - $this->addWarning($error, $stackPtr, 'Internal.ParseError.InterfaceHasMemberVar'); + $error = 'Possible parse error: %ss may not include member vars'; + $code = sprintf('Internal.ParseError.%sHasMemberVar', ucfirst($this->tokens[$ptr]['content'])); + $data = [strtolower($this->tokens[$ptr]['content'])]; + $this->addWarning($error, $stackPtr, $code, $data); return []; } } else { throw new RuntimeException('$stackPtr is not a class member var'); } - } + }//end if // Make sure it's not a method parameter. if (empty($this->tokens[$stackPtr]['nested_parenthesis']) === false) { @@ -1800,13 +1903,15 @@ public function getMemberProperties($stackPtr) T_PROTECTED => T_PROTECTED, T_STATIC => T_STATIC, T_VAR => T_VAR, + T_READONLY => T_READONLY, ]; - $valid += Util\Tokens::$emptyTokens; + $valid += Tokens::$emptyTokens; $scope = 'public'; $scopeSpecified = false; $isStatic = false; + $isReadonly = false; $startOfStatement = $this->findPrevious( [ @@ -1839,6 +1944,9 @@ public function getMemberProperties($stackPtr) case T_STATIC: $isStatic = true; break; + case T_READONLY: + $isReadonly = true; + break; } }//end for @@ -1850,15 +1958,19 @@ public function getMemberProperties($stackPtr) if ($i < $stackPtr) { // We've found a type. $valid = [ - T_STRING => T_STRING, - T_CALLABLE => T_CALLABLE, - T_SELF => T_SELF, - T_PARENT => T_PARENT, - T_FALSE => T_FALSE, - T_NULL => T_NULL, - T_NAMESPACE => T_NAMESPACE, - T_NS_SEPARATOR => T_NS_SEPARATOR, - T_TYPE_UNION => T_TYPE_UNION, + T_STRING => T_STRING, + T_CALLABLE => T_CALLABLE, + T_SELF => T_SELF, + T_PARENT => T_PARENT, + T_FALSE => T_FALSE, + T_TRUE => T_TRUE, + T_NULL => T_NULL, + T_NAMESPACE => T_NAMESPACE, + T_NS_SEPARATOR => T_NS_SEPARATOR, + T_TYPE_UNION => T_TYPE_UNION, + T_TYPE_INTERSECTION => T_TYPE_INTERSECTION, + T_TYPE_OPEN_PARENTHESIS => T_TYPE_OPEN_PARENTHESIS, + T_TYPE_CLOSE_PARENTHESIS => T_TYPE_CLOSE_PARENTHESIS, ]; for ($i; $i < $stackPtr; $i++) { @@ -1890,6 +2002,7 @@ public function getMemberProperties($stackPtr) 'scope' => $scope, 'scope_specified' => $scopeSpecified, 'is_static' => $isStatic, + 'is_readonly' => $isReadonly, 'type' => $type, 'type_token' => $typeToken, 'type_end_token' => $typeEndToken, @@ -1905,8 +2018,9 @@ public function getMemberProperties($stackPtr) * The format of the return value is: * <code> * array( - * 'is_abstract' => false, // true if the abstract keyword was found. - * 'is_final' => false, // true if the final keyword was found. + * 'is_abstract' => boolean, // TRUE if the abstract keyword was found. + * 'is_final' => boolean, // TRUE if the final keyword was found. + * 'is_readonly' => boolean, // TRUE if the readonly keyword was found. * ); * </code> * @@ -1926,6 +2040,7 @@ public function getClassProperties($stackPtr) $valid = [ T_FINAL => T_FINAL, T_ABSTRACT => T_ABSTRACT, + T_READONLY => T_READONLY, T_WHITESPACE => T_WHITESPACE, T_COMMENT => T_COMMENT, T_DOC_COMMENT => T_DOC_COMMENT, @@ -1933,6 +2048,7 @@ public function getClassProperties($stackPtr) $isAbstract = false; $isFinal = false; + $isReadonly = false; for ($i = ($stackPtr - 1); $i > 0; $i--) { if (isset($valid[$this->tokens[$i]['code']]) === false) { @@ -1947,12 +2063,17 @@ public function getClassProperties($stackPtr) case T_FINAL: $isFinal = true; break; + + case T_READONLY: + $isReadonly = true; + break; } }//end for return [ 'is_abstract' => $isAbstract, 'is_final' => $isFinal, + 'is_readonly' => $isReadonly, ]; }//end getClassProperties() @@ -1975,7 +2096,7 @@ public function isReference($stackPtr) } $tokenBefore = $this->findPrevious( - Util\Tokens::$emptyTokens, + Tokens::$emptyTokens, ($stackPtr - 1), null, true @@ -1999,14 +2120,14 @@ public function isReference($stackPtr) return true; } - if (isset(Util\Tokens::$assignmentTokens[$this->tokens[$tokenBefore]['code']]) === true) { + if (isset(Tokens::$assignmentTokens[$this->tokens[$tokenBefore]['code']]) === true) { // This is directly after an assignment. It's a reference. Even if // it is part of an operation, the other tests will handle it. return true; } $tokenAfter = $this->findNext( - Util\Tokens::$emptyTokens, + Tokens::$emptyTokens, ($stackPtr + 1), null, true @@ -2057,7 +2178,7 @@ public function isReference($stackPtr) if ($this->tokens[$tokenAfter]['code'] === T_VARIABLE) { return true; } else { - $skip = Util\Tokens::$emptyTokens; + $skip = Tokens::$emptyTokens; $skip[] = T_NS_SEPARATOR; $skip[] = T_SELF; $skip[] = T_PARENT; @@ -2147,7 +2268,7 @@ public function getTokensAsString($start, $length, $origContent=false) * be returned. * @param bool $local If true, tokens outside the current statement * will not be checked. IE. checking will stop - * at the previous semi-colon found. + * at the previous semicolon found. * * @return int|false * @see findNext() @@ -2228,7 +2349,7 @@ public function findPrevious( * be returned. * @param bool $local If true, tokens outside the current statement * will not be checked. i.e., checking will stop - * at the next semi-colon found. + * at the next semicolon found. * * @return int|false * @see findPrevious() @@ -2284,9 +2405,10 @@ public function findNext( */ public function findStartOfStatement($start, $ignore=null) { - $startTokens = Util\Tokens::$blockOpeners; - $startTokens[T_OPEN_SHORT_ARRAY] = true; - $startTokens[T_OPEN_TAG] = true; + $startTokens = Tokens::$blockOpeners; + $startTokens[T_OPEN_SHORT_ARRAY] = true; + $startTokens[T_OPEN_TAG] = true; + $startTokens[T_OPEN_TAG_WITH_ECHO] = true; $endTokens = [ T_CLOSE_TAG => true, @@ -2313,51 +2435,88 @@ public function findStartOfStatement($start, $ignore=null) // If the start token is inside the case part of a match expression, // find the start of the condition. If it's in the statement part, find // the token that comes after the match arrow. - $matchExpression = $this->getCondition($start, T_MATCH); - if ($matchExpression !== false) { - for ($prevMatch = $start; $prevMatch > $this->tokens[$matchExpression]['scope_opener']; $prevMatch--) { - if ($prevMatch !== $start - && ($this->tokens[$prevMatch]['code'] === T_MATCH_ARROW - || $this->tokens[$prevMatch]['code'] === T_COMMA) - ) { - break; - } + if (empty($this->tokens[$start]['conditions']) === false) { + $conditions = $this->tokens[$start]['conditions']; + $lastConditionOwner = end($conditions); + $matchExpression = key($conditions); + + if ($lastConditionOwner === T_MATCH + // Check if the $start token is at the same parentheses nesting level as the match token. + && ((empty($this->tokens[$matchExpression]['nested_parenthesis']) === true + && empty($this->tokens[$start]['nested_parenthesis']) === true) + || ((empty($this->tokens[$matchExpression]['nested_parenthesis']) === false + && empty($this->tokens[$start]['nested_parenthesis']) === false) + && $this->tokens[$matchExpression]['nested_parenthesis'] === $this->tokens[$start]['nested_parenthesis'])) + ) { + // Walk back to the previous match arrow (if it exists). + $lastComma = null; + $inNestedExpression = false; + for ($prevMatch = $start; $prevMatch > $this->tokens[$matchExpression]['scope_opener']; $prevMatch--) { + if ($prevMatch !== $start && $this->tokens[$prevMatch]['code'] === T_MATCH_ARROW) { + break; + } - // Skip nested statements. - if (isset($this->tokens[$prevMatch]['bracket_opener']) === true - && $prevMatch === $this->tokens[$prevMatch]['bracket_closer'] - ) { - $prevMatch = $this->tokens[$prevMatch]['bracket_opener']; - } else if (isset($this->tokens[$prevMatch]['parenthesis_opener']) === true - && $prevMatch === $this->tokens[$prevMatch]['parenthesis_closer'] - ) { - $prevMatch = $this->tokens[$prevMatch]['parenthesis_opener']; - } - } + if ($prevMatch !== $start && $this->tokens[$prevMatch]['code'] === T_COMMA) { + $lastComma = $prevMatch; + continue; + } - if ($prevMatch <= $this->tokens[$matchExpression]['scope_opener']) { - // We're before the arrow in the first case. - $next = $this->findNext(Util\Tokens::$emptyTokens, ($this->tokens[$matchExpression]['scope_opener'] + 1), null, true); - if ($next === false) { - return $start; - } + // Skip nested statements. + if (isset($this->tokens[$prevMatch]['bracket_opener']) === true + && $prevMatch === $this->tokens[$prevMatch]['bracket_closer'] + ) { + $prevMatch = $this->tokens[$prevMatch]['bracket_opener']; + continue; + } - return $next; - } + if (isset($this->tokens[$prevMatch]['parenthesis_opener']) === true + && $prevMatch === $this->tokens[$prevMatch]['parenthesis_closer'] + ) { + $prevMatch = $this->tokens[$prevMatch]['parenthesis_opener']; + continue; + } - if ($this->tokens[$prevMatch]['code'] === T_COMMA) { - // We're before the arrow, but not in the first case. - $prevMatchArrow = $this->findPrevious(T_MATCH_ARROW, ($prevMatch - 1), $this->tokens[$matchExpression]['scope_opener']); - if ($prevMatchArrow === false) { - // We're before the arrow in the first case. - $next = $this->findNext(Util\Tokens::$emptyTokens, ($this->tokens[$matchExpression]['scope_opener'] + 1), null, true); - return $next; - } + // Stop if we're _within_ a nested short array statement, which may contain comma's too. + // No need to deal with parentheses, those are handled above via the `nested_parenthesis` checks. + if (isset($this->tokens[$prevMatch]['bracket_opener']) === true + && $this->tokens[$prevMatch]['bracket_closer'] > $start + ) { + $inNestedExpression = true; + break; + } + }//end for + + if ($inNestedExpression === false) { + // $prevMatch will now either be the scope opener or a match arrow. + // If it is the scope opener, go the first non-empty token after. $start will have been part of the first condition. + if ($prevMatch <= $this->tokens[$matchExpression]['scope_opener']) { + // We're before the arrow in the first case. + $next = $this->findNext(Tokens::$emptyTokens, ($this->tokens[$matchExpression]['scope_opener'] + 1), null, true); + if ($next === false) { + // Shouldn't be possible. + return $start; + } - $end = $this->findEndOfStatement($prevMatchArrow); - $next = $this->findNext(Util\Tokens::$emptyTokens, ($end + 1), null, true); - return $next; - } + return $next; + } + + // Okay, so we found a match arrow. + // If $start was part of the "next" condition, the last comma will be set. + // Otherwise, $start must have been part of a return expression. + if (isset($lastComma) === true && $lastComma > $prevMatch) { + $prevMatch = $lastComma; + } + + // In both cases, go to the first non-empty token after. + $next = $this->findNext(Tokens::$emptyTokens, ($prevMatch + 1), null, true); + if ($next === false) { + // Shouldn't be possible. + return $start; + } + + return $next; + }//end if + }//end if }//end if $lastNotEmpty = $start; @@ -2416,7 +2575,7 @@ public function findStartOfStatement($start, $ignore=null) } }//end if - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$i]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$i]['code']]) === false) { $lastNotEmpty = $i; } }//end for @@ -2511,7 +2670,7 @@ public function findEndOfStatement($start, $ignore=null) continue; } - if ($i === $start && isset(Util\Tokens::$scopeOpeners[$this->tokens[$i]['code']]) === true) { + if ($i === $start && isset(Tokens::$scopeOpeners[$this->tokens[$i]['code']]) === true) { return $this->tokens[$i]['scope_closer']; } @@ -2531,7 +2690,7 @@ public function findEndOfStatement($start, $ignore=null) } }//end if - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$i]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$i]['code']]) === false) { $lastNotEmpty = $i; } }//end for @@ -2548,15 +2707,18 @@ public function findEndOfStatement($start, $ignore=null) * * @param int|string|array $types The type(s) of tokens to search for. * @param int $start The position to start searching from in the - * token stack. The first token matching on - * this line before this token will be returned. + * token stack. * @param bool $exclude If true, find the token that is NOT of * the types specified in $types. * @param string $value The value that the token must be equal to. * If value is omitted, tokens with any value will * be returned. * - * @return int|false + * @return int|false The first token which matches on the line containing the start + * token, between the start of the line and the start token. + * Note: The first token matching might be the start token. + * FALSE when no matching token could be found between the start of + * the line and the start token. */ public function findFirstOnLine($types, $start, $exclude=false, $value=null) { @@ -2616,7 +2778,7 @@ public function hasCondition($stackPtr, $types) } // Make sure the token has conditions. - if (isset($this->tokens[$stackPtr]['conditions']) === false) { + if (empty($this->tokens[$stackPtr]['conditions']) === true) { return false; } @@ -2657,7 +2819,7 @@ public function getCondition($stackPtr, $type, $first=true) } // Make sure the token has conditions. - if (isset($this->tokens[$stackPtr]['conditions']) === false) { + if (empty($this->tokens[$stackPtr]['conditions']) === true) { return false; } @@ -2731,11 +2893,11 @@ public function findExtendedClassName($stackPtr) /** - * Returns the names of the interfaces that the specified class implements. + * Returns the names of the interfaces that the specified class or enum implements. * * Returns FALSE on error or if there are no implemented interface names. * - * @param int $stackPtr The stack position of the class. + * @param int $stackPtr The stack position of the class or enum token. * * @return array|false */ @@ -2748,6 +2910,7 @@ public function findImplementedInterfaceNames($stackPtr) if ($this->tokens[$stackPtr]['code'] !== T_CLASS && $this->tokens[$stackPtr]['code'] !== T_ANON_CLASS + && $this->tokens[$stackPtr]['code'] !== T_ENUM ) { return false; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Files/FileList.php b/api/vendor/squizlabs/php_codesniffer/src/Files/FileList.php index e889fc3d7..ab52e3388 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Files/FileList.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Files/FileList.php @@ -6,18 +6,25 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Files; +use Countable; +use FilesystemIterator; +use Iterator; use PHP_CodeSniffer\Autoload; -use PHP_CodeSniffer\Util; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Exceptions\DeepExitException; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Util\Common; +use RecursiveArrayIterator; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use ReturnTypeWillChange; -class FileList implements \Iterator, \Countable +class FileList implements Iterator, Countable { /** @@ -71,7 +78,7 @@ public function __construct(Config $config, Ruleset $ruleset) $paths = $config->files; foreach ($paths as $path) { - $isPharFile = Util\Common::isPharFile($path); + $isPharFile = Common::isPharFile($path); if (is_dir($path) === true || $isPharFile === true) { if ($isPharFile === true) { $path = 'phar://'.$path; @@ -79,9 +86,9 @@ public function __construct(Config $config, Ruleset $ruleset) $filterClass = $this->getFilterClass(); - $di = new \RecursiveDirectoryIterator($path, (\RecursiveDirectoryIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS)); + $di = new RecursiveDirectoryIterator($path, (RecursiveDirectoryIterator::SKIP_DOTS | FilesystemIterator::FOLLOW_SYMLINKS)); $filter = new $filterClass($di, $path, $config, $ruleset); - $iterator = new \RecursiveIteratorIterator($filter); + $iterator = new RecursiveIteratorIterator($filter); foreach ($iterator as $file) { $this->files[$file->getPathname()] = null; @@ -120,9 +127,9 @@ public function addFile($path, $file=null) $filterClass = $this->getFilterClass(); - $di = new \RecursiveArrayIterator([$path]); + $di = new RecursiveArrayIterator([$path]); $filter = new $filterClass($di, $path, $this->config, $this->ruleset); - $iterator = new \RecursiveIteratorIterator($filter); + $iterator = new RecursiveIteratorIterator($filter); foreach ($iterator as $path) { $this->files[$path] = $file; @@ -169,6 +176,7 @@ private function getFilterClass() * * @return void */ + #[ReturnTypeWillChange] public function rewind() { reset($this->files); @@ -181,6 +189,7 @@ public function rewind() * * @return \PHP_CodeSniffer\Files\File */ + #[ReturnTypeWillChange] public function current() { $path = key($this->files); @@ -196,8 +205,9 @@ public function current() /** * Return the file path of the current file being processed. * - * @return void + * @return string|null Path name or `null` when the end of the iterator has been reached. */ + #[ReturnTypeWillChange] public function key() { return key($this->files); @@ -210,6 +220,7 @@ public function key() * * @return void */ + #[ReturnTypeWillChange] public function next() { next($this->files); @@ -222,6 +233,7 @@ public function next() * * @return boolean */ + #[ReturnTypeWillChange] public function valid() { if (current($this->files) === false) { @@ -238,6 +250,7 @@ public function valid() * * @return integer */ + #[ReturnTypeWillChange] public function count() { return $this->numFiles; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Files/LocalFile.php b/api/vendor/squizlabs/php_codesniffer/src/Files/LocalFile.php index ca2e74ad3..babfe69c3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Files/LocalFile.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Files/LocalFile.php @@ -4,13 +4,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Files; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Config; +use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Util\Cache; use PHP_CodeSniffer\Util\Common; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Filters/ExactMatch.php b/api/vendor/squizlabs/php_codesniffer/src/Filters/ExactMatch.php index 13af8ff22..89517b838 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Filters/ExactMatch.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Filters/ExactMatch.php @@ -2,16 +2,16 @@ /** * An abstract filter class for checking files and folders against exact matches. * - * Supports both whitelists and blacklists. + * Supports both allowed files and disallowed files. * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Filters; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; abstract class ExactMatch extends Filter { @@ -21,22 +21,22 @@ abstract class ExactMatch extends Filter * * @var array */ - private $blacklist = null; + private $disallowedFiles = null; /** * A list of files to include. * - * If the whitelist is empty, only files in the blacklist will be excluded. + * If the allowed files list is empty, only files in the disallowed files list will be excluded. * * @var array */ - private $whitelist = null; + private $allowedFiles = null; /** * Check whether the current element of the iterator is acceptable. * - * If a file is both blacklisted and whitelisted, it will be deemed unacceptable. + * If a file is both disallowed and allowed, it will be deemed unacceptable. * * @return bool */ @@ -46,27 +46,37 @@ public function accept() return false; } - if ($this->blacklist === null) { - $this->blacklist = $this->getblacklist(); + if ($this->disallowedFiles === null) { + $this->disallowedFiles = $this->getDisallowedFiles(); + + // BC-layer. + if ($this->disallowedFiles === null) { + $this->disallowedFiles = $this->getBlacklist(); + } } - if ($this->whitelist === null) { - $this->whitelist = $this->getwhitelist(); + if ($this->allowedFiles === null) { + $this->allowedFiles = $this->getAllowedFiles(); + + // BC-layer. + if ($this->allowedFiles === null) { + $this->allowedFiles = $this->getWhitelist(); + } } - $filePath = Util\Common::realpath($this->current()); + $filePath = Common::realpath($this->current()); - // If file is both blacklisted and whitelisted, the blacklist takes precedence. - if (isset($this->blacklist[$filePath]) === true) { + // If a file is both disallowed and allowed, the disallowed files list takes precedence. + if (isset($this->disallowedFiles[$filePath]) === true) { return false; } - if (empty($this->whitelist) === true && empty($this->blacklist) === false) { - // We are only checking a blacklist, so everything else should be whitelisted. + if (empty($this->allowedFiles) === true && empty($this->disallowedFiles) === false) { + // We are only checking the disallowed files list, so everything else should be allowed. return true; } - return isset($this->whitelist[$filePath]); + return isset($this->allowedFiles[$filePath]); }//end accept() @@ -74,23 +84,28 @@ public function accept() /** * Returns an iterator for the current entry. * - * Ensures that the blacklist and whitelist are preserved so they don't have + * Ensures that the disallowed files list and the allowed files list are preserved so they don't have * to be generated each time. * * @return \RecursiveIterator */ public function getChildren() { - $children = parent::getChildren(); - $children->blacklist = $this->blacklist; - $children->whitelist = $this->whitelist; + $children = parent::getChildren(); + $children->disallowedFiles = $this->disallowedFiles; + $children->allowedFiles = $this->allowedFiles; return $children; }//end getChildren() /** - * Get a list of blacklisted file paths. + * Get a list of file paths to exclude. + * + * @deprecated 3.9.0 Implement the `getDisallowedFiles()` method instead. + * The `getDisallowedFiles()` method will be made abstract and therefore required + * in v4.0 and this method will be removed. + * If both methods are implemented, the new `getDisallowedFiles()` method will take precedence. * * @return array */ @@ -98,11 +113,44 @@ abstract protected function getBlacklist(); /** - * Get a list of whitelisted file paths. + * Get a list of file paths to include. + * + * @deprecated 3.9.0 Implement the `getAllowedFiles()` method instead. + * The `getAllowedFiles()` method will be made abstract and therefore required + * in v4.0 and this method will be removed. + * If both methods are implemented, the new `getAllowedFiles()` method will take precedence. * * @return array */ abstract protected function getWhitelist(); + /** + * Get a list of file paths to exclude. + * + * @since 3.9.0 Replaces the deprecated `getBlacklist()` method. + * + * @return array|null + */ + protected function getDisallowedFiles() + { + return null; + + }//end getDisallowedFiles() + + + /** + * Get a list of file paths to include. + * + * @since 3.9.0 Replaces the deprecated `getWhitelist()` method. + * + * @return array|null + */ + protected function getAllowedFiles() + { + return null; + + }//end getAllowedFiles() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Filters/Filter.php b/api/vendor/squizlabs/php_codesniffer/src/Filters/Filter.php index 5bed499b2..349fd6dbc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Filters/Filter.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Filters/Filter.php @@ -4,16 +4,20 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Filters; -use PHP_CodeSniffer\Util; -use PHP_CodeSniffer\Ruleset; +use FilesystemIterator; use PHP_CodeSniffer\Config; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Util\Common; +use RecursiveDirectoryIterator; +use RecursiveFilterIterator; +use ReturnTypeWillChange; -class Filter extends \RecursiveFilterIterator +class Filter extends RecursiveFilterIterator { /** @@ -89,10 +93,11 @@ public function __construct($iterator, $basedir, Config $config, Ruleset $rulese * * @return bool */ + #[ReturnTypeWillChange] public function accept() { $filePath = $this->current(); - $realPath = Util\Common::realpath($filePath); + $realPath = Common::realpath($filePath); if ($realPath !== false) { // It's a real path somewhere, so record it @@ -130,11 +135,12 @@ public function accept() * * @return \RecursiveIterator */ + #[ReturnTypeWillChange] public function getChildren() { $filterClass = get_called_class(); $children = new $filterClass( - new \RecursiveDirectoryIterator($this->current(), (\RecursiveDirectoryIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS)), + new RecursiveDirectoryIterator($this->current(), (RecursiveDirectoryIterator::SKIP_DOTS | FilesystemIterator::FOLLOW_SYMLINKS)), $this->basedir, $this->config, $this->ruleset diff --git a/api/vendor/squizlabs/php_codesniffer/src/Filters/GitModified.php b/api/vendor/squizlabs/php_codesniffer/src/Filters/GitModified.php index 4b6ef3fc5..3337287b9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Filters/GitModified.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Filters/GitModified.php @@ -4,41 +4,60 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Filters; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; class GitModified extends ExactMatch { /** - * Get a list of blacklisted file paths. + * Get a list of file paths to exclude. + * + * @since 3.9.0 * * @return array */ - protected function getBlacklist() + protected function getDisallowedFiles() { return []; + }//end getDisallowedFiles() + + + /** + * Get a list of file paths to exclude. + * + * @deprecated 3.9.0 Overload the `getDisallowedFiles()` method instead. + * + * @codeCoverageIgnore + * + * @return array + */ + protected function getBlacklist() + { + return $this->getDisallowedFiles(); + }//end getBlacklist() /** - * Get a list of whitelisted file paths. + * Get a list of file paths to include. + * + * @since 3.9.0 * * @return array */ - protected function getWhitelist() + protected function getAllowedFiles() { $modified = []; $cmd = 'git ls-files -o -m --exclude-standard -- '.escapeshellarg($this->basedir); - $output = []; - exec($cmd, $output); + $output = $this->exec($cmd); $basedir = $this->basedir; if (is_dir($basedir) === false) { @@ -46,7 +65,7 @@ protected function getWhitelist() } foreach ($output as $path) { - $path = Util\Common::realpath($path); + $path = Common::realpath($path); if ($path === false) { continue; @@ -60,7 +79,46 @@ protected function getWhitelist() return $modified; + }//end getAllowedFiles() + + + /** + * Get a list of file paths to include. + * + * @deprecated 3.9.0 Overload the `getAllowedFiles()` method instead. + * + * @codeCoverageIgnore + * + * @return array + */ + protected function getWhitelist() + { + return $this->getAllowedFiles(); + }//end getWhitelist() + /** + * Execute an external command. + * + * {@internal This method is only needed to allow for mocking the return value + * to test the class logic.} + * + * @param string $cmd Command. + * + * @return array + */ + protected function exec($cmd) + { + $output = []; + $lastLine = exec($cmd, $output); + if ($lastLine === false) { + return []; + } + + return $output; + + }//end exec() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Filters/GitStaged.php b/api/vendor/squizlabs/php_codesniffer/src/Filters/GitStaged.php index fcb92c3d9..7a764314a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Filters/GitStaged.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Filters/GitStaged.php @@ -6,41 +6,60 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2018 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Filters; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; class GitStaged extends ExactMatch { /** - * Get a list of blacklisted file paths. + * Get a list of file paths to exclude. + * + * @since 3.9.0 * * @return array */ - protected function getBlacklist() + protected function getDisallowedFiles() { return []; + }//end getDisallowedFiles() + + + /** + * Get a list of file paths to exclude. + * + * @deprecated 3.9.0 Overload the `getDisallowedFiles()` method instead. + * + * @codeCoverageIgnore + * + * @return array + */ + protected function getBlacklist() + { + return $this->getDisallowedFiles(); + }//end getBlacklist() /** - * Get a list of whitelisted file paths. + * Get a list of file paths to include. + * + * @since 3.9.0 * * @return array */ - protected function getWhitelist() + protected function getAllowedFiles() { $modified = []; $cmd = 'git diff --cached --name-only -- '.escapeshellarg($this->basedir); - $output = []; - exec($cmd, $output); + $output = $this->exec($cmd); $basedir = $this->basedir; if (is_dir($basedir) === false) { @@ -48,7 +67,7 @@ protected function getWhitelist() } foreach ($output as $path) { - $path = Util\Common::realpath($path); + $path = Common::realpath($path); if ($path === false) { // Skip deleted files. continue; @@ -62,7 +81,46 @@ protected function getWhitelist() return $modified; + }//end getAllowedFiles() + + + /** + * Get a list of file paths to include. + * + * @deprecated 3.9.0 Overload the `getAllowedFiles()` method instead. + * + * @codeCoverageIgnore + * + * @return array + */ + protected function getWhitelist() + { + return $this->getAllowedFiles(); + }//end getWhitelist() + /** + * Execute an external command. + * + * {@internal This method is only needed to allow for mocking the return value + * to test the class logic.} + * + * @param string $cmd Command. + * + * @return array + */ + protected function exec($cmd) + { + $output = []; + $lastLine = exec($cmd, $output); + if ($lastLine === false) { + return []; + } + + return $output; + + }//end exec() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Fixer.php b/api/vendor/squizlabs/php_codesniffer/src/Fixer.php index ed6adb15d..b429825f0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Fixer.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Fixer.php @@ -7,11 +7,12 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer; +use PHP_CodeSniffer\Exceptions\RuntimeException; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Util\Common; @@ -70,7 +71,7 @@ class Fixer * If a token is being "fixed" back to its last value, the fix is * probably conflicting with another. * - * @var array<int, string> + * @var array<int, array<string, mixed>> */ private $oldTokenValues = []; @@ -184,6 +185,9 @@ public function fixFile() } echo ']... '; + if (PHP_CODESNIFFER_VERBOSITY > 1) { + echo PHP_EOL; + } } if ($this->numFixes === 0 && $this->inConflict === false) { @@ -223,6 +227,8 @@ public function fixFile() * @param boolean $colors Print coloured output or not. * * @return string + * + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException When the diff command fails. */ public function generateDiff($filePath=null, $colors=true) { @@ -243,19 +249,56 @@ public function generateDiff($filePath=null, $colors=true) $fixedFile = fopen($tempName, 'w'); fwrite($fixedFile, $contents); - // We must use something like shell_exec() because whitespace at the end + // We must use something like shell_exec() or proc_open() because whitespace at the end // of lines is critical to diff files. + // Using proc_open() instead of shell_exec improves performance on Windows significantly, + // while the results are the same (though more code is needed to get the results). + // This is specifically due to proc_open allowing to set the "bypass_shell" option. $filename = escapeshellarg($filename); $cmd = "diff -u -L$filename -LPHP_CodeSniffer $filename \"$tempName\""; - $diff = shell_exec($cmd); + // Stream 0 = STDIN, 1 = STDOUT, 2 = STDERR. + $descriptorspec = [ + 0 => [ + 'pipe', + 'r', + ], + 1 => [ + 'pipe', + 'w', + ], + 2 => [ + 'pipe', + 'w', + ], + ]; + + $options = null; + if (stripos(PHP_OS, 'WIN') === 0) { + $options = ['bypass_shell' => true]; + } + + $process = proc_open($cmd, $descriptorspec, $pipes, $cwd, null, $options); + if (is_resource($process) === false) { + throw new RuntimeException('Could not obtain a resource to execute the diff command.'); + } + + // We don't need these. + fclose($pipes[0]); + fclose($pipes[2]); + + // Stdout will contain the actual diff. + $diff = stream_get_contents($pipes[1]); + fclose($pipes[1]); + + proc_close($process); fclose($fixedFile); if (is_file($tempName) === true) { unlink($tempName); } - if ($diff === null) { + if ($diff === false || $diff === '') { return ''; } @@ -346,7 +389,7 @@ public function getTokenContent($stackPtr) /** * Start recording actions for a changeset. * - * @return void + * @return void|false */ public function beginChangeset() { @@ -359,7 +402,7 @@ public function beginChangeset() if ($bt[1]['class'] === __CLASS__) { $sniff = 'Fixer'; } else { - $sniff = Util\Common::getSniffCode($bt[1]['class']); + $sniff = Common::getSniffCode($bt[1]['class']); } $line = $bt[0]['line']; @@ -418,6 +461,7 @@ public function endChangeset() } $this->changeset = []; + return true; }//end endChangeset() @@ -443,7 +487,7 @@ public function rollbackChangeset() $line = $bt[0]['line']; } - $sniff = Util\Common::getSniffCode($sniff); + $sniff = Common::getSniffCode($sniff); $numChanges = count($this->changeset); @@ -500,7 +544,7 @@ public function replaceToken($stackPtr, $content) $line = $bt[0]['line']; } - $sniff = Util\Common::getSniffCode($sniff); + $sniff = Common::getSniffCode($sniff); $tokens = $this->currentFile->getTokens(); $type = $tokens[$stackPtr]['type']; @@ -615,7 +659,7 @@ public function revertToken($stackPtr) $line = $bt[0]['line']; } - $sniff = Util\Common::getSniffCode($sniff); + $sniff = Common::getSniffCode($sniff); $tokens = $this->currentFile->getTokens(); $type = $tokens[$stackPtr]['type']; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Generators/Generator.php b/api/vendor/squizlabs/php_codesniffer/src/Generators/Generator.php index 56049768b..af0e0f5c4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Generators/Generator.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Generators/Generator.php @@ -7,13 +7,15 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Generators; -use PHP_CodeSniffer\Ruleset; +use DOMDocument; +use DOMNode; use PHP_CodeSniffer\Autoload; +use PHP_CodeSniffer\Ruleset; abstract class Generator { @@ -70,7 +72,7 @@ public function __construct(Ruleset $ruleset) * * @return string */ - protected function getTitle(\DOMNode $doc) + protected function getTitle(DOMNode $doc) { return $doc->getAttribute('title'); @@ -90,7 +92,7 @@ protected function getTitle(\DOMNode $doc) public function generate() { foreach ($this->docFiles as $file) { - $doc = new \DOMDocument(); + $doc = new DOMDocument(); $doc->load($file); $documentation = $doc->getElementsByTagName('documentation')->item(0); $this->processSniff($documentation); @@ -111,7 +113,7 @@ public function generate() * @return void * @see generate() */ - abstract protected function processSniff(\DOMNode $doc); + abstract protected function processSniff(DOMNode $doc); }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Generators/HTML.php b/api/vendor/squizlabs/php_codesniffer/src/Generators/HTML.php index db2646843..a042f36be 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Generators/HTML.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Generators/HTML.php @@ -8,11 +8,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Generators; +use DOMDocument; +use DOMNode; use PHP_CodeSniffer\Config; class HTML extends Generator @@ -32,7 +34,7 @@ public function generate() $this->printToc(); foreach ($this->docFiles as $file) { - $doc = new \DOMDocument(); + $doc = new DOMDocument(); $doc->load($file); $documentation = $doc->getElementsByTagName('documentation')->item(0); $this->processSniff($documentation); @@ -145,7 +147,7 @@ protected function printToc() echo ' <ul class="toc">'.PHP_EOL; foreach ($this->docFiles as $file) { - $doc = new \DOMDocument(); + $doc = new DOMDocument(); $doc->load($file); $documentation = $doc->getElementsByTagName('documentation')->item(0); $title = $this->getTitle($documentation); @@ -169,7 +171,7 @@ protected function printFooter() $errorLevel = error_reporting(0); echo ' <div class="tag-line">'; echo 'Documentation generated on '.date('r'); - echo ' by <a href="https://github.com/squizlabs/PHP_CodeSniffer">PHP_CodeSniffer '.Config::VERSION.'</a>'; + echo ' by <a href="https://github.com/PHPCSStandards/PHP_CodeSniffer">PHP_CodeSniffer '.Config::VERSION.'</a>'; echo '</div>'.PHP_EOL; error_reporting($errorLevel); @@ -188,7 +190,7 @@ protected function printFooter() * * @return void */ - public function processSniff(\DOMNode $doc) + public function processSniff(DOMNode $doc) { $title = $this->getTitle($doc); echo ' <a name="'.str_replace(' ', '-', $title).'" />'.PHP_EOL; @@ -212,7 +214,7 @@ public function processSniff(\DOMNode $doc) * * @return void */ - protected function printTextBlock(\DOMNode $node) + protected function printTextBlock(DOMNode $node) { $content = trim($node->nodeValue); $content = htmlspecialchars($content); @@ -233,7 +235,7 @@ protected function printTextBlock(\DOMNode $node) * * @return void */ - protected function printCodeComparisonBlock(\DOMNode $node) + protected function printCodeComparisonBlock(DOMNode $node) { $codeBlocks = $node->getElementsByTagName('code'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Generators/Markdown.php b/api/vendor/squizlabs/php_codesniffer/src/Generators/Markdown.php index 9756bcf14..a9839a81a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Generators/Markdown.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Generators/Markdown.php @@ -4,11 +4,13 @@ * * @author Stefano Kowalke <blueduck@gmx.net> * @copyright 2014 Arroba IT - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Generators; +use DOMDocument; +use DOMNode; use PHP_CodeSniffer\Config; class Markdown extends Generator @@ -27,7 +29,7 @@ public function generate() $this->printHeader(); foreach ($this->docFiles as $file) { - $doc = new \DOMDocument(); + $doc = new DOMDocument(); $doc->load($file); $documentation = $doc->getElementsByTagName('documentation')->item(0); $this->processSniff($documentation); @@ -67,7 +69,7 @@ protected function printFooter() // don't have their timezone set. error_reporting(0); echo 'Documentation generated on '.date('r'); - echo ' by [PHP_CodeSniffer '.Config::VERSION.'](https://github.com/squizlabs/PHP_CodeSniffer)'.PHP_EOL; + echo ' by [PHP_CodeSniffer '.Config::VERSION.'](https://github.com/PHPCSStandards/PHP_CodeSniffer)'.PHP_EOL; }//end printFooter() @@ -81,7 +83,7 @@ protected function printFooter() * * @return void */ - protected function processSniff(\DOMNode $doc) + protected function processSniff(DOMNode $doc) { $title = $this->getTitle($doc); echo PHP_EOL."## $title".PHP_EOL; @@ -104,7 +106,7 @@ protected function processSniff(\DOMNode $doc) * * @return void */ - protected function printTextBlock(\DOMNode $node) + protected function printTextBlock(DOMNode $node) { $content = trim($node->nodeValue); $content = htmlspecialchars($content); @@ -124,7 +126,7 @@ protected function printTextBlock(\DOMNode $node) * * @return void */ - protected function printCodeComparisonBlock(\DOMNode $node) + protected function printCodeComparisonBlock(DOMNode $node) { $codeBlocks = $node->getElementsByTagName('code'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Generators/Text.php b/api/vendor/squizlabs/php_codesniffer/src/Generators/Text.php index ffff206aa..ce419ba11 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Generators/Text.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Generators/Text.php @@ -6,11 +6,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Generators; +use DOMNode; + class Text extends Generator { @@ -24,7 +26,7 @@ class Text extends Generator * * @return void */ - public function processSniff(\DOMNode $doc) + public function processSniff(DOMNode $doc) { $this->printTitle($doc); @@ -48,7 +50,7 @@ public function processSniff(\DOMNode $doc) * * @return void */ - protected function printTitle(\DOMNode $doc) + protected function printTitle(DOMNode $doc) { $title = $this->getTitle($doc); $standard = $this->ruleset->name; @@ -69,7 +71,7 @@ protected function printTitle(\DOMNode $doc) * * @return void */ - protected function printTextBlock(\DOMNode $node) + protected function printTextBlock(DOMNode $node) { $text = trim($node->nodeValue); $text = str_replace('<em>', '*', $text); @@ -123,7 +125,7 @@ protected function printTextBlock(\DOMNode $node) * * @return void */ - protected function printCodeComparisonBlock(\DOMNode $node) + protected function printCodeComparisonBlock(DOMNode $node) { $codeBlocks = $node->getElementsByTagName('code'); $first = trim($codeBlocks->item(0)->nodeValue); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reporter.php b/api/vendor/squizlabs/php_codesniffer/src/Reporter.php index e89a20edf..288a78e61 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reporter.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reporter.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer; @@ -236,7 +236,7 @@ public function printReport($report) ob_end_clean(); if ($this->config->colors !== true || $reportFile !== null) { - $generatedReport = preg_replace('`\033\[[0-9;]+m`', '', $generatedReport); + $generatedReport = Common::stripColors($generatedReport); } if ($reportFile !== null) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Cbf.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Cbf.php index 25249e858..b0be0ae12 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Cbf.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Cbf.php @@ -8,14 +8,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; use PHP_CodeSniffer\Exceptions\DeepExitException; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Timing; class Cbf implements Report { @@ -28,10 +28,10 @@ class Cbf implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool * @throws \PHP_CodeSniffer\Exceptions\DeepExitException @@ -44,6 +44,9 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, ob_end_clean(); $startTime = microtime(true); echo "\t=> Fixing file: $errors/$errors violations remaining"; + if (PHP_CODESNIFFER_VERBOSITY > 1) { + echo PHP_EOL; + } } $fixed = $phpcsFile->fixer->fixFile(); @@ -241,7 +244,7 @@ public function generate( echo PHP_EOL.str_repeat('-', $width).PHP_EOL.PHP_EOL; if ($toScreen === true && $interactive === false) { - Util\Timing::printRunTime(); + Timing::printRunTime(); } }//end generate() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Checkstyle.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Checkstyle.php index 06a78e19f..d7d486230 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Checkstyle.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Checkstyle.php @@ -4,13 +4,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Files\File; +use XMLWriter; class Checkstyle implements Report { @@ -23,16 +24,16 @@ class Checkstyle implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ public function generateFileReport($report, File $phpcsFile, $showSources=false, $width=80) { - $out = new \XMLWriter; + $out = new XMLWriter; $out->openMemory(); $out->setIndent(true); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Code.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Code.php index c54c1e1a4..50f4f028c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Code.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Code.php @@ -4,13 +4,15 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; +use Exception; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Timing; class Code implements Report { @@ -23,10 +25,10 @@ class Code implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ @@ -52,7 +54,7 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, try { $phpcsFile->parse(); - } catch (\Exception $e) { + } catch (Exception $e) { // This is a second parse, so ignore exceptions. // They would have been added to the file's error list already. } @@ -225,7 +227,7 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, if (strpos($tokenContent, "\t") !== false) { $token = $tokens[$i]; $token['content'] = $tokenContent; - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + if (stripos(PHP_OS, 'WIN') === 0) { $tab = "\000"; } else { $tab = "\033[30;1m»\033[0m"; @@ -235,7 +237,7 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, $tokenContent = $token['content']; } - $tokenContent = Util\Common::prepareForOutput($tokenContent, ["\r", "\n", "\t"]); + $tokenContent = Common::prepareForOutput($tokenContent, ["\r", "\n", "\t"]); $tokenContent = str_replace("\000", ' ', $tokenContent); $underline = false; @@ -353,7 +355,7 @@ public function generate( echo $cachedData; if ($toScreen === true && $interactive === false) { - Util\Timing::printRunTime(); + Timing::printRunTime(); } }//end generate() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Csv.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Csv.php index 6db7ecfc1..aef7d7e37 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Csv.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Csv.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -22,10 +22,10 @@ class Csv implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Diff.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Diff.php index ce4b31fc0..03f7bf20d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Diff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Diff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -22,10 +22,10 @@ class Diff implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Emacs.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Emacs.php index 3555f5541..3f0036576 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Emacs.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Emacs.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -22,10 +22,10 @@ class Emacs implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Full.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Full.php index 084bc8aa5..4f338c8ce 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Full.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Full.php @@ -4,13 +4,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Timing; class Full implements Report { @@ -23,10 +23,10 @@ class Full implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ @@ -64,15 +64,28 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, foreach ($report['messages'] as $line => $lineErrors) { foreach ($lineErrors as $column => $colErrors) { foreach ($colErrors as $error) { - $length = strlen($error['message']); + // Start with the presumption of a single line error message. + $length = strlen($error['message']); + $srcLength = (strlen($error['source']) + 3); if ($showSources === true) { - $length += (strlen($error['source']) + 3); + $length += $srcLength; + } + + // ... but also handle multi-line messages correctly. + if (strpos($error['message'], "\n") !== false) { + $errorLines = explode("\n", $error['message']); + $length = max(array_map('strlen', $errorLines)); + + if ($showSources === true) { + $lastLine = array_pop($errorLines); + $length = max($length, (strlen($lastLine) + $srcLength)); + } } $maxErrorLength = max($maxErrorLength, ($length + 1)); - } - } - } + }//end foreach + }//end foreach + }//end foreach $file = $report['filename']; $fileLength = strlen($file); @@ -115,36 +128,51 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, // The maximum amount of space an error message can use. $maxErrorSpace = ($width - $paddingLength - 1); + $beforeMsg = ''; + $afterMsg = ''; + if ($showSources === true) { + $beforeMsg = "\033[1m"; + $afterMsg = "\033[0m"; + } + + $beforeAfterLength = strlen($beforeMsg.$afterMsg); + foreach ($report['messages'] as $line => $lineErrors) { foreach ($lineErrors as $column => $colErrors) { foreach ($colErrors as $error) { - $message = $error['message']; - $msgLines = [$message]; - if (strpos($message, "\n") !== false) { - $msgLines = explode("\n", $message); - } + $errorMsg = wordwrap( + $error['message'], + $maxErrorSpace + ); - $errorMsg = ''; - $lastLine = (count($msgLines) - 1); - foreach ($msgLines as $k => $msgLine) { - if ($k === 0) { - if ($showSources === true) { - $errorMsg .= "\033[1m"; - } - } else { - $errorMsg .= PHP_EOL.$paddingLine2; - } + // Add the padding _after_ the wordwrap as the message itself may contain line breaks + // and those lines will also need to receive padding. + $errorMsg = str_replace("\n", $afterMsg.PHP_EOL.$paddingLine2.$beforeMsg, $errorMsg); + $errorMsg = $beforeMsg.$errorMsg.$afterMsg; - if ($k === $lastLine && $showSources === true) { - $msgLine .= "\033[0m".' ('.$error['source'].')'; + if ($showSources === true) { + $lastMsg = $errorMsg; + $startPosLastLine = strrpos($errorMsg, PHP_EOL.$paddingLine2.$beforeMsg); + if ($startPosLastLine !== false) { + // Message is multiline. Grab the text of last line of the message, including the color codes. + $lastMsg = substr($errorMsg, ($startPosLastLine + strlen(PHP_EOL.$paddingLine2))); } - $errorMsg .= wordwrap( - $msgLine, - $maxErrorSpace, - PHP_EOL.$paddingLine2 - ); - } + // When show sources is used, the message itself will be bolded, so we need to correct the length. + $sourceSuffix = '('.$error['source'].')'; + + $lastMsgPlusSourceLength = strlen($lastMsg); + // Add space + source suffix length. + $lastMsgPlusSourceLength += (1 + strlen($sourceSuffix)); + // Correct for the color codes. + $lastMsgPlusSourceLength -= $beforeAfterLength; + + if ($lastMsgPlusSourceLength > $maxErrorSpace) { + $errorMsg .= PHP_EOL.$paddingLine2.$sourceSuffix; + } else { + $errorMsg .= ' '.$sourceSuffix; + } + }//end if // The padding that goes on the front of the line. $padding = ($maxLineNumLength - strlen($line)); @@ -222,7 +250,7 @@ public function generate( echo $cachedData; if ($toScreen === true && $interactive === false) { - Util\Timing::printRunTime(); + Timing::printRunTime(); } }//end generate() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Gitblame.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Gitblame.php index 947f3d80b..3beb34524 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Gitblame.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Gitblame.php @@ -5,7 +5,7 @@ * @author Ben Selby <benmatselby@gmail.com> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -70,7 +70,7 @@ protected function getBlameContent($filename) $cwd = getcwd(); chdir(dirname($filename)); - $command = 'git blame --date=short "'.$filename.'" 2>&1'; + $command = 'git blame --date=short "'.basename($filename).'" 2>&1'; $handle = popen($command, 'r'); if ($handle === false) { $error = 'ERROR: Could not execute "'.$command.'"'.PHP_EOL.PHP_EOL; @@ -78,7 +78,7 @@ protected function getBlameContent($filename) } $rawContent = stream_get_contents($handle); - fclose($handle); + pclose($handle); $blames = explode("\n", $rawContent); chdir($cwd); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Hgblame.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Hgblame.php index b0af6643f..2d98c46db 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Hgblame.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Hgblame.php @@ -5,7 +5,7 @@ * @author Ben Selby <benmatselby@gmail.com> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -28,7 +28,7 @@ class Hgblame extends VersionControl * * @param string $line Line to parse. * - * @return mixed string or false if impossible to recover. + * @return string|false String or FALSE if impossible to recover. */ protected function getAuthor($line) { @@ -97,7 +97,7 @@ protected function getBlameContent($filename) } $rawContent = stream_get_contents($handle); - fclose($handle); + pclose($handle); $blames = explode("\n", $rawContent); chdir($cwd); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Info.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Info.php index 3181bcc54..403905616 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Info.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Info.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -23,10 +23,10 @@ class Info implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ @@ -45,7 +45,7 @@ public function generateFileReport($report, File $phpcsFile, $showSources=false, /** - * Prints the source of all errors and warnings. + * Prints the recorded metrics. * * @param string $cachedData Any partial report data that was returned from * generateFileReport during the run. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Json.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Json.php index 59d8f305e..0b9ad34fa 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Json.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Json.php @@ -5,7 +5,7 @@ * @author Jeffrey Fisher <jeffslofish@gmail.com> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -23,10 +23,10 @@ class Json implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Junit.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Junit.php index d3ede61d4..cdbb1d67e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Junit.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Junit.php @@ -5,13 +5,14 @@ * @author Oleg Lobach <oleg@lobach.info> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Files\File; +use XMLWriter; class Junit implements Report { @@ -24,16 +25,16 @@ class Junit implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ public function generateFileReport($report, File $phpcsFile, $showSources=false, $width=80) { - $out = new \XMLWriter; + $out = new XMLWriter; $out->openMemory(); $out->setIndent(true); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Notifysend.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Notifysend.php index 084166223..1c296958c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Notifysend.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Notifysend.php @@ -11,7 +11,7 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2012-2014 Christian Weiske * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -88,10 +88,10 @@ public function __construct() * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ @@ -154,7 +154,7 @@ public function generate( * @param int $totalErrors Total number of errors found during the run. * @param int $totalWarnings Total number of warnings found during the run. * - * @return string Error message or NULL if no error/warning found. + * @return string|null Error message or NULL if no error/warning found. */ protected function generateMessage($checkedFiles, $totalErrors, $totalWarnings) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Performance.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Performance.php new file mode 100644 index 000000000..ea90d0a84 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Performance.php @@ -0,0 +1,160 @@ +<?php +/** + * Performance report for PHP_CodeSniffer. + * + * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> + * @copyright 2023 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Reports; + +use PHP_CodeSniffer\Files\File; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Timing; + +class Performance implements Report +{ + + + /** + * Generate a partial report for a single processed file. + * + * Function should return TRUE if it printed or stored data about the file + * and FALSE if it ignored the file. Returning TRUE indicates that the file and + * its data should be counted in the grand totals. + * + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. + * + * @return bool + */ + public function generateFileReport($report, File $phpcsFile, $showSources=false, $width=80) + { + $times = $phpcsFile->getListenerTimes(); + foreach ($times as $sniff => $time) { + echo "$sniff>>$time".PHP_EOL; + } + + return true; + + }//end generateFileReport() + + + /** + * Prints the sniff performance report. + * + * @param string $cachedData Any partial report data that was returned from + * generateFileReport during the run. + * @param int $totalFiles Total number of files processed during the run. + * @param int $totalErrors Total number of errors found during the run. + * @param int $totalWarnings Total number of warnings found during the run. + * @param int $totalFixable Total number of problems that can be fixed. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. + * @param bool $interactive Are we running in interactive mode? + * @param bool $toScreen Is the report being printed to screen? + * + * @return void + */ + public function generate( + $cachedData, + $totalFiles, + $totalErrors, + $totalWarnings, + $totalFixable, + $showSources=false, + $width=80, + $interactive=false, + $toScreen=true + ) { + $lines = explode(PHP_EOL, $cachedData); + array_pop($lines); + + if (empty($lines) === true) { + return; + } + + // First collect the accumulated timings. + $timings = []; + $totalSniffTime = 0; + foreach ($lines as $line) { + $parts = explode('>>', $line); + $sniffClass = $parts[0]; + $time = $parts[1]; + + if (isset($timings[$sniffClass]) === false) { + $timings[$sniffClass] = 0; + } + + $timings[$sniffClass] += $time; + $totalSniffTime += $time; + } + + // Next, tidy up the sniff names and determine max needed column width. + $totalTimes = []; + $maxNameWidth = 0; + foreach ($timings as $sniffClass => $secs) { + $sniffCode = Common::getSniffCode($sniffClass); + $maxNameWidth = max($maxNameWidth, strlen($sniffCode)); + $totalTimes[$sniffCode] = $secs; + } + + // Leading space + up to 12 chars for the number. + $maxTimeWidth = 13; + // Leading space, open parenthesis, up to 5 chars for the number, space + % and close parenthesis. + $maxPercWidth = 10; + // Calculate the maximum width available for the sniff name. + $maxNameWidth = min(($width - $maxTimeWidth - $maxPercWidth), max(($width - $maxTimeWidth - $maxPercWidth), $maxNameWidth)); + + arsort($totalTimes); + + echo PHP_EOL."\033[1m".'PHP CODE SNIFFER SNIFF PERFORMANCE REPORT'."\033[0m".PHP_EOL; + echo str_repeat('-', $width).PHP_EOL; + echo "\033[1m".'SNIFF'.str_repeat(' ', ($width - 31)).'TIME TAKEN (SECS) (%)'."\033[0m".PHP_EOL; + echo str_repeat('-', $width).PHP_EOL; + + // Mark sniffs which take more than twice as long as the average processing time per sniff + // in orange and when they take more than three times as long as the average, + // mark them in red. + $avgSniffTime = ($totalSniffTime / count($totalTimes)); + $doubleAvgSniffTime = (2 * $avgSniffTime); + $tripleAvgSniffTime = (3 * $avgSniffTime); + + $format = "%- {$maxNameWidth}.{$maxNameWidth}s % 12.6f (% 5.1f %%)".PHP_EOL; + $formatBold = "\033[1m%- {$maxNameWidth}.{$maxNameWidth}s % 12.6f (% 5.1f %%)\033[0m".PHP_EOL; + $formatWarning = "%- {$maxNameWidth}.{$maxNameWidth}s \033[33m% 12.6f (% 5.1f %%)\033[0m".PHP_EOL; + $formatError = "%- {$maxNameWidth}.{$maxNameWidth}s \033[31m% 12.6f (% 5.1f %%)\033[0m".PHP_EOL; + + foreach ($totalTimes as $sniff => $time) { + $percent = round((($time / $totalSniffTime) * 100), 1); + + if ($time > $tripleAvgSniffTime) { + printf($formatError, $sniff, $time, $percent); + } else if ($time > $doubleAvgSniffTime) { + printf($formatWarning, $sniff, $time, $percent); + } else { + printf($format, $sniff, $time, $percent); + } + } + + echo str_repeat('-', $width).PHP_EOL; + printf($formatBold, 'TOTAL SNIFF PROCESSING TIME', $totalSniffTime, 100); + + $runTime = (Timing::getDuration() / 1000); + $phpcsTime = ($runTime - $totalSniffTime); + + echo PHP_EOL.str_repeat('-', $width).PHP_EOL; + printf($format, 'Time taken by sniffs', $totalSniffTime, round((($totalSniffTime / $runTime) * 100), 1)); + printf($format, 'Time taken by PHPCS runner', $phpcsTime, round((($phpcsTime / $runTime) * 100), 1)); + + echo str_repeat('-', $width).PHP_EOL; + printf($formatBold, 'TOTAL RUN TIME', $runTime, 100); + echo str_repeat('-', $width).PHP_EOL; + + }//end generate() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Report.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Report.php index 38f8a6298..eec5eb1d0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Report.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Report.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -22,10 +22,10 @@ interface Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Source.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Source.php index ce8c3cfec..6aa891a4b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Source.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Source.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -23,10 +23,10 @@ class Source implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Summary.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Summary.php index 8fe18e764..3f1eb94ef 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Summary.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Summary.php @@ -4,13 +4,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Timing; class Summary implements Report { @@ -23,10 +23,10 @@ class Summary implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ @@ -174,7 +174,7 @@ function ($keyA, $keyB) { echo PHP_EOL.str_repeat('-', $width).PHP_EOL.PHP_EOL; if ($toScreen === true && $interactive === false) { - Util\Timing::printRunTime(); + Timing::printRunTime(); } }//end generate() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Svnblame.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Svnblame.php index f4719fe5d..b44e83d62 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Svnblame.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Svnblame.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -61,7 +61,7 @@ protected function getBlameContent($filename) } $rawContent = stream_get_contents($handle); - fclose($handle); + pclose($handle); $blames = explode("\n", $rawContent); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/VersionControl.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/VersionControl.php index 0f414567d..e3ad74b84 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/VersionControl.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/VersionControl.php @@ -5,7 +5,7 @@ * @author Ben Selby <benmatselby@gmail.com> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; @@ -31,16 +31,16 @@ abstract class VersionControl implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ public function generateFileReport($report, File $phpcsFile, $showSources=false, $width=80) { - $blames = $this->getBlameContent($report['filename']); + $blames = $this->getBlameContent($phpcsFile->getFilename()); $authorCache = []; $praiseCache = []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Reports/Xml.php b/api/vendor/squizlabs/php_codesniffer/src/Reports/Xml.php index 066383deb..07f7d0b9f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Reports/Xml.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Reports/Xml.php @@ -4,13 +4,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Reports; use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Files\File; +use XMLWriter; class Xml implements Report { @@ -23,16 +24,16 @@ class Xml implements Report * and FALSE if it ignored the file. Returning TRUE indicates that the file and * its data should be counted in the grand totals. * - * @param array $report Prepared report data. - * @param \PHP_CodeSniffer\File $phpcsFile The file being reported on. - * @param bool $showSources Show sources? - * @param int $width Maximum allowed line width. + * @param array $report Prepared report data. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being reported on. + * @param bool $showSources Show sources? + * @param int $width Maximum allowed line width. * * @return bool */ public function generateFileReport($report, File $phpcsFile, $showSources=false, $width=80) { - $out = new \XMLWriter; + $out = new XMLWriter; $out->openMemory(); $out->setIndent(true); $out->setIndentString(' '); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Ruleset.php b/api/vendor/squizlabs/php_codesniffer/src/Ruleset.php index 7e659706c..baa0f32c7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Ruleset.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Ruleset.php @@ -6,13 +6,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer; use PHP_CodeSniffer\Exceptions\RuntimeException; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Sniffs\DeprecatedSniff; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Standards; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use ReflectionClass; +use stdClass; class Ruleset { @@ -46,7 +52,7 @@ class Ruleset * The key is the regular expression and the value is the type * of ignore pattern (absolute or relative). * - * @var array<string, string> + * @var array<string, array> */ public $ignorePatterns = []; @@ -87,7 +93,7 @@ class Ruleset * The key is the token name being listened for and the value * is the sniff object. * - * @var array<int, \PHP_CodeSniffer\Sniffs\Sniff> + * @var array<int, array<string, array<string, mixed>>> */ public $tokenListeners = []; @@ -115,6 +121,16 @@ class Ruleset */ private $config = null; + /** + * An array of the names of sniffs which have been marked as deprecated. + * + * The key is the sniff code and the value + * is the fully qualified name of the sniff class. + * + * @var array<string, string> + */ + private $deprecatedSniffs = []; + /** * Initialise the ruleset that the run will use. @@ -133,13 +149,13 @@ public function __construct(Config $config) $standardPaths = []; foreach ($config->standards as $standard) { - $installed = Util\Standards::getInstalledStandardPath($standard); + $installed = Standards::getInstalledStandardPath($standard); if ($installed === null) { - $standard = Util\Common::realpath($standard); + $standard = Common::realpath($standard); if (is_dir($standard) === true - && is_file(Util\Common::realpath($standard.DIRECTORY_SEPARATOR.'ruleset.xml')) === true + && is_file(Common::realpath($standard.DIRECTORY_SEPARATOR.'ruleset.xml')) === true ) { - $standard = Util\Common::realpath($standard.DIRECTORY_SEPARATOR.'ruleset.xml'); + $standard = Common::realpath($standard.DIRECTORY_SEPARATOR.'ruleset.xml'); } } else { $standard = $installed; @@ -237,21 +253,24 @@ public function __construct(Config $config) public function explain() { $sniffs = array_keys($this->sniffCodes); - sort($sniffs); - - ob_start(); + sort($sniffs, (SORT_NATURAL | SORT_FLAG_CASE)); - $lastStandard = null; - $lastCount = ''; - $sniffCount = count($sniffs); + $sniffCount = count($sniffs); - // Add a dummy entry to the end so we loop - // one last time and clear the output buffer. + // Add a dummy entry to the end so we loop one last time + // and echo out the collected info about the last standard. $sniffs[] = ''; - echo PHP_EOL."The $this->name standard contains $sniffCount sniffs".PHP_EOL; + $summaryLine = PHP_EOL."The $this->name standard contains 1 sniff".PHP_EOL; + if ($sniffCount !== 1) { + $summaryLine = str_replace('1 sniff', "$sniffCount sniffs", $summaryLine); + } + + echo $summaryLine; - ob_start(); + $lastStandard = null; + $lastCount = 0; + $sniffsInStandard = []; foreach ($sniffs as $i => $sniff) { if ($i === $sniffCount) { @@ -263,37 +282,185 @@ public function explain() } } + // Reached the first item in the next standard. + // Echo out the info collected from the previous standard. if ($currentStandard !== $lastStandard) { - $sniffList = ob_get_contents(); - ob_end_clean(); - - echo PHP_EOL.$lastStandard.' ('.$lastCount.' sniff'; + $subTitle = $lastStandard.' ('.$lastCount.' sniff'; if ($lastCount > 1) { - echo 's'; + $subTitle .= 's'; } - echo ')'.PHP_EOL; - echo str_repeat('-', (strlen($lastStandard.$lastCount) + 10)); - echo PHP_EOL; - echo $sniffList; + $subTitle .= ')'; - $lastStandard = $currentStandard; - $lastCount = 0; + echo PHP_EOL.$subTitle.PHP_EOL; + echo str_repeat('-', strlen($subTitle)).PHP_EOL; + echo ' '.implode(PHP_EOL.' ', $sniffsInStandard).PHP_EOL; + + $lastStandard = $currentStandard; + $lastCount = 0; + $sniffsInStandard = []; if ($currentStandard === null) { break; } - - ob_start(); }//end if - echo ' '.$sniff.PHP_EOL; - $lastCount++; + if (isset($this->deprecatedSniffs[$sniff]) === true) { + $sniff .= ' *'; + } + + $sniffsInStandard[] = $sniff; + ++$lastCount; }//end foreach + if (count($this->deprecatedSniffs) > 0) { + echo PHP_EOL.'* Sniffs marked with an asterix are deprecated.'.PHP_EOL; + } + }//end explain() + /** + * Checks whether any deprecated sniffs were registered via the ruleset. + * + * @return bool + */ + public function hasSniffDeprecations() + { + return (count($this->deprecatedSniffs) > 0); + + }//end hasSniffDeprecations() + + + /** + * Prints an information block about deprecated sniffs being used. + * + * @return void + * + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException When the interface implementation is faulty. + */ + public function showSniffDeprecations() + { + if ($this->hasSniffDeprecations() === false) { + return; + } + + // Don't show deprecation notices in quiet mode, in explain mode + // or when the documentation is being shown. + // Documentation and explain will mark a sniff as deprecated natively + // and also call the Ruleset multiple times which would lead to duplicate + // display of the deprecation messages. + if ($this->config->quiet === true + || $this->config->explain === true + || $this->config->generator !== null + ) { + return; + } + + $reportWidth = $this->config->reportWidth; + // Message takes report width minus the leading dash + two spaces, minus a one space gutter at the end. + $maxMessageWidth = ($reportWidth - 4); + $maxActualWidth = 0; + + ksort($this->deprecatedSniffs, (SORT_NATURAL | SORT_FLAG_CASE)); + + $messages = []; + $messageTemplate = 'This sniff has been deprecated since %s and will be removed in %s. %s'; + $errorTemplate = 'The %s::%s() method must return a %sstring, received %s'; + + foreach ($this->deprecatedSniffs as $sniffCode => $className) { + if (isset($this->sniffs[$className]) === false) { + // Should only be possible in test situations, but some extra defensive coding is never a bad thing. + continue; + } + + // Verify the interface was implemented correctly. + // Unfortunately can't be safeguarded via type declarations yet. + $deprecatedSince = $this->sniffs[$className]->getDeprecationVersion(); + if (is_string($deprecatedSince) === false) { + throw new RuntimeException( + sprintf($errorTemplate, $className, 'getDeprecationVersion', 'non-empty ', gettype($deprecatedSince)) + ); + } + + if ($deprecatedSince === '') { + throw new RuntimeException( + sprintf($errorTemplate, $className, 'getDeprecationVersion', 'non-empty ', '""') + ); + } + + $removedIn = $this->sniffs[$className]->getRemovalVersion(); + if (is_string($removedIn) === false) { + throw new RuntimeException( + sprintf($errorTemplate, $className, 'getRemovalVersion', 'non-empty ', gettype($removedIn)) + ); + } + + if ($removedIn === '') { + throw new RuntimeException( + sprintf($errorTemplate, $className, 'getRemovalVersion', 'non-empty ', '""') + ); + } + + $customMessage = $this->sniffs[$className]->getDeprecationMessage(); + if (is_string($customMessage) === false) { + throw new RuntimeException( + sprintf($errorTemplate, $className, 'getDeprecationMessage', '', gettype($customMessage)) + ); + } + + // Truncate the error code if there is not enough report width. + if (strlen($sniffCode) > $maxMessageWidth) { + $sniffCode = substr($sniffCode, 0, ($maxMessageWidth - 3)).'...'; + } + + $message = '- '."\033[36m".$sniffCode."\033[0m".PHP_EOL; + $maxActualWidth = max($maxActualWidth, strlen($sniffCode)); + + // Normalize new line characters in custom message. + $customMessage = preg_replace('`\R`', PHP_EOL, $customMessage); + + $notice = trim(sprintf($messageTemplate, $deprecatedSince, $removedIn, $customMessage)); + $maxActualWidth = max($maxActualWidth, min(strlen($notice), $maxMessageWidth)); + $wrapped = wordwrap($notice, $maxMessageWidth, PHP_EOL); + $message .= ' '.implode(PHP_EOL.' ', explode(PHP_EOL, $wrapped)); + + $messages[] = $message; + }//end foreach + + if (count($messages) === 0) { + return; + } + + $summaryLine = "WARNING: The $this->name standard uses 1 deprecated sniff"; + $sniffCount = count($messages); + if ($sniffCount !== 1) { + $summaryLine = str_replace('1 deprecated sniff', "$sniffCount deprecated sniffs", $summaryLine); + } + + $maxActualWidth = max($maxActualWidth, min(strlen($summaryLine), $maxMessageWidth)); + + $summaryLine = wordwrap($summaryLine, $reportWidth, PHP_EOL); + if ($this->config->colors === true) { + echo "\033[33m".$summaryLine."\033[0m".PHP_EOL; + } else { + echo $summaryLine.PHP_EOL; + } + + $messages = implode(PHP_EOL, $messages); + if ($this->config->colors === false) { + $messages = Common::stripColors($messages); + } + + echo str_repeat('-', min(($maxActualWidth + 4), $reportWidth)).PHP_EOL; + echo $messages; + + $closer = wordwrap('Deprecated sniffs are still run, but will stop working at some point in the future.', $reportWidth, PHP_EOL); + echo PHP_EOL.PHP_EOL.$closer.PHP_EOL.PHP_EOL; + + }//end showSniffDeprecations() + + /** * Processes a single ruleset and returns a list of the sniffs it represents. * @@ -310,10 +477,10 @@ public function explain() */ public function processRuleset($rulesetPath, $depth=0) { - $rulesetPath = Util\Common::realpath($rulesetPath); + $rulesetPath = Common::realpath($rulesetPath); if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo 'Processing ruleset '.Util\Common::stripBasepath($rulesetPath, $this->config->basepath).PHP_EOL; + echo 'Processing ruleset '.Common::stripBasepath($rulesetPath, $this->config->basepath).PHP_EOL; } libxml_use_internal_errors(true); @@ -343,7 +510,7 @@ public function processRuleset($rulesetPath, $depth=0) if (is_dir($sniffDir) === true) { if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo "\tAdding sniff files from ".Util\Common::stripBasepath($sniffDir, $this->config->basepath).' directory'.PHP_EOL; + echo "\tAdding sniff files from ".Common::stripBasepath($sniffDir, $this->config->basepath).' directory'.PHP_EOL; } $ownSniffs = $this->expandSniffDirectory($sniffDir, $depth); @@ -358,7 +525,7 @@ public function processRuleset($rulesetPath, $depth=0) $autoloadPath = (string) $autoload; // Try relative autoload paths first. - $relativePath = Util\Common::realPath(dirname($rulesetPath).DIRECTORY_SEPARATOR.$autoloadPath); + $relativePath = Common::realPath(dirname($rulesetPath).DIRECTORY_SEPARATOR.$autoloadPath); if ($relativePath !== false && is_file($relativePath) === true) { $autoloadPath = $relativePath; @@ -548,7 +715,7 @@ public function processRuleset($rulesetPath, $depth=0) // Change the directory so all relative paths are worked // out based on the location of the ruleset instead of // the location of the user. - $inPhar = Util\Common::isPharFile($rulesetDir); + $inPhar = Common::isPharFile($rulesetDir); if ($inPhar === false) { $currentDir = getcwd(); chdir($rulesetDir); @@ -595,7 +762,7 @@ public function processRuleset($rulesetPath, $depth=0) if (in_array($sniff, $excludedSniffs, true) === true) { continue; } else { - $files[] = Util\Common::realpath($sniff); + $files[] = Common::realpath($sniff); } } @@ -617,8 +784,8 @@ private function expandSniffDirectory($directory, $depth=0) { $sniffs = []; - $rdi = new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS); - $di = new \RecursiveIteratorIterator($rdi, 0, \RecursiveIteratorIterator::CATCH_GET_CHILD); + $rdi = new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::FOLLOW_SYMLINKS); + $di = new RecursiveIteratorIterator($rdi, 0, RecursiveIteratorIterator::CATCH_GET_CHILD); $dirLen = strlen($directory); @@ -653,7 +820,7 @@ private function expandSniffDirectory($directory, $depth=0) if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo "\t\t=> ".Util\Common::stripBasepath($path, $this->config->basepath).PHP_EOL; + echo "\t\t=> ".Common::stripBasepath($path, $this->config->basepath).PHP_EOL; } $sniffs[] = $path; @@ -694,12 +861,12 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) // to absolute paths. If this fails, let the reference run through // the normal checks and have it fail as normal. if (substr($ref, 0, 1) === '.') { - $realpath = Util\Common::realpath($rulesetDir.'/'.$ref); + $realpath = Common::realpath($rulesetDir.'/'.$ref); if ($realpath !== false) { $ref = $realpath; if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo "\t\t=> ".Util\Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; + echo "\t\t=> ".Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; } } } @@ -707,12 +874,12 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) // As sniffs can't begin with a tilde, assume references in // this format are relative to the user's home directory. if (substr($ref, 0, 2) === '~/') { - $realpath = Util\Common::realpath($ref); + $realpath = Common::realpath($ref); if ($realpath !== false) { $ref = $realpath; if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo "\t\t=> ".Util\Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; + echo "\t\t=> ".Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; } } } @@ -725,8 +892,8 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) } } else { // See if this is a whole standard being referenced. - $path = Util\Standards::getInstalledStandardPath($ref); - if ($path !== null && Util\Common::isPharFile($path) === true && strpos($path, 'ruleset.xml') === false) { + $path = Standards::getInstalledStandardPath($ref); + if ($path !== null && Common::isPharFile($path) === true && strpos($path, 'ruleset.xml') === false) { // If the ruleset exists inside the phar file, use it. if (file_exists($path.DIRECTORY_SEPARATOR.'ruleset.xml') === true) { $path .= DIRECTORY_SEPARATOR.'ruleset.xml'; @@ -739,7 +906,7 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) $ref = $path; if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo "\t\t=> ".Util\Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; + echo "\t\t=> ".Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; } } else if (is_dir($ref) === false) { // Work out the sniff path. @@ -763,16 +930,16 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) } $newRef = false; - $stdPath = Util\Standards::getInstalledStandardPath($stdName); + $stdPath = Standards::getInstalledStandardPath($stdName); if ($stdPath !== null && $path !== '') { - if (Util\Common::isPharFile($stdPath) === true + if (Common::isPharFile($stdPath) === true && strpos($stdPath, 'ruleset.xml') === false ) { // Phar files can only return the directory, // since ruleset can be omitted if building one standard. - $newRef = Util\Common::realpath($stdPath.$path); + $newRef = Common::realpath($stdPath.$path); } else { - $newRef = Util\Common::realpath(dirname($stdPath).$path); + $newRef = Common::realpath(dirname($stdPath).$path); } } @@ -787,7 +954,7 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) continue; } - $newRef = Util\Common::realpath($dir.$path); + $newRef = Common::realpath($dir.$path); if ($newRef !== false) { $ref = $newRef; @@ -799,7 +966,7 @@ private function expandRulesetReference($ref, $rulesetDir, $depth=0) if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); - echo "\t\t=> ".Util\Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; + echo "\t\t=> ".Common::stripBasepath($ref, $this->config->basepath).PHP_EOL; } }//end if }//end if @@ -955,6 +1122,11 @@ private function processRule($rule, $newSniffs, $depth=0) if (isset($rule->properties) === true && $this->shouldProcessElement($rule->properties) === true ) { + $propertyScope = 'standard'; + if ($code === $ref || substr($ref, -9) === 'Sniff.php') { + $propertyScope = 'sniff'; + } + foreach ($rule->properties->property as $prop) { if ($this->shouldProcessElement($prop) === false) { continue; @@ -975,9 +1147,9 @@ private function processRule($rule, $newSniffs, $depth=0) $values = []; if (isset($prop['extend']) === true && (string) $prop['extend'] === 'true' - && isset($this->ruleset[$code]['properties'][$name]) === true + && isset($this->ruleset[$code]['properties'][$name]['value']) === true ) { - $values = $this->ruleset[$code]['properties'][$name]; + $values = $this->ruleset[$code]['properties'][$name]['value']; } if (isset($prop->element) === true) { @@ -1012,7 +1184,10 @@ private function processRule($rule, $newSniffs, $depth=0) } }//end if - $this->ruleset[$code]['properties'][$name] = $values; + $this->ruleset[$code]['properties'][$name] = [ + 'value' => $values, + 'scope' => $propertyScope, + ]; if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); echo "\t\t=> array property \"$name\" set to \"$printValue\""; @@ -1023,7 +1198,10 @@ private function processRule($rule, $newSniffs, $depth=0) echo PHP_EOL; } } else { - $this->ruleset[$code]['properties'][$name] = (string) $prop['value']; + $this->ruleset[$code]['properties'][$name] = [ + 'value' => (string) $prop['value'], + 'scope' => $propertyScope, + ]; if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", $depth); echo "\t\t=> property \"$name\" set to \"".(string) $prop['value'].'"'; @@ -1157,7 +1335,7 @@ public function registerSniffs($files, $restrictions, $exclusions) } $className = Autoload::loadFile($file); - $compareName = Util\Common::cleanSniffClass($className); + $compareName = Common::cleanSniffClass($className); // If they have specified a list of sniffs to restrict to, check // to see if this sniff is allowed. @@ -1176,7 +1354,7 @@ public function registerSniffs($files, $restrictions, $exclusions) } // Skip abstract classes. - $reflection = new \ReflectionClass($className); + $reflection = new ReflectionClass($className); if ($reflection->isAbstract() === true) { continue; } @@ -1208,13 +1386,17 @@ public function populateTokenListeners() $this->sniffs[$sniffClass] = null; $this->sniffs[$sniffClass] = new $sniffClass(); - $sniffCode = Util\Common::getSniffCode($sniffClass); + $sniffCode = Common::getSniffCode($sniffClass); $this->sniffCodes[$sniffCode] = $sniffClass; + if ($this->sniffs[$sniffClass] instanceof DeprecatedSniff) { + $this->deprecatedSniffs[$sniffCode] = $sniffClass; + } + // Set custom properties. if (isset($this->ruleset[$sniffCode]['properties']) === true) { - foreach ($this->ruleset[$sniffCode]['properties'] as $name => $value) { - $this->setSniffProperty($sniffClass, $name, $value); + foreach ($this->ruleset[$sniffCode]['properties'] as $name => $settings) { + $this->setSniffProperty($sniffClass, $name, $settings); } } @@ -1281,18 +1463,76 @@ public function populateTokenListeners() * * @param string $sniffClass The class name of the sniff. * @param string $name The name of the property to change. - * @param string $value The new value of the property. + * @param array $settings Array with the new value of the property and the scope of the property being set. * * @return void + * + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException When attempting to set a non-existent property on a sniff + * which doesn't declare the property or explicitly supports + * dynamic properties. */ - public function setSniffProperty($sniffClass, $name, $value) + public function setSniffProperty($sniffClass, $name, $settings) { // Setting a property for a sniff we are not using. if (isset($this->sniffs[$sniffClass]) === false) { return; } - $name = trim($name); + $name = trim($name); + $propertyName = $name; + if (substr($propertyName, -2) === '[]') { + $propertyName = substr($propertyName, 0, -2); + } + + /* + * BC-compatibility layer for $settings using the pre-PHPCS 3.8.0 format. + * + * Prior to PHPCS 3.8.0, `$settings` was expected to only contain the new _value_ + * for the property (which could be an array). + * Since PHPCS 3.8.0, `$settings` is expected to be an array with two keys: 'scope' + * and 'value', where 'scope' indicates whether the property should be set to the given 'value' + * for one individual sniff or for all sniffs in a standard. + * + * This BC-layer is only for integrations with PHPCS which may call this method directly + * and will be removed in PHPCS 4.0.0. + */ + + if (is_array($settings) === false + || isset($settings['scope'], $settings['value']) === false + ) { + // This will be an "old" format value. + $settings = [ + 'value' => $settings, + 'scope' => 'standard', + ]; + + trigger_error( + __FUNCTION__.': the format of the $settings parameter has changed from (mixed) $value to array(\'scope\' => \'sniff|standard\', \'value\' => $value). Please update your integration code. See PR #3629 for more information.', + E_USER_DEPRECATED + ); + } + + $isSettable = false; + $sniffObject = $this->sniffs[$sniffClass]; + if (property_exists($sniffObject, $propertyName) === true + || ($sniffObject instanceof stdClass) === true + || method_exists($sniffObject, '__set') === true + ) { + $isSettable = true; + } + + if ($isSettable === false) { + if ($settings['scope'] === 'sniff') { + $notice = "Ruleset invalid. Property \"$propertyName\" does not exist on sniff "; + $notice .= array_search($sniffClass, $this->sniffCodes, true); + throw new RuntimeException($notice); + } + + return; + } + + $value = $settings['value']; + if (is_string($value) === true) { $value = trim($value); } @@ -1307,7 +1547,7 @@ public function setSniffProperty($sniffClass, $name, $value) } else if ($value === 'false') { $value = false; } else if (substr($name, -2) === '[]') { - $name = substr($name, 0, -2); + $name = $propertyName; $values = []; if ($value !== null) { foreach (explode(',', $value) as $val) { @@ -1323,7 +1563,7 @@ public function setSniffProperty($sniffClass, $name, $value) $value = $values; } - $this->sniffs[$sniffClass]->$name = $value; + $sniffObject->$name = $value; }//end setSniffProperty() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Runner.php b/api/vendor/squizlabs/php_codesniffer/src/Runner.php index 320a8f20a..b5afa71d0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Runner.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Runner.php @@ -7,11 +7,12 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer; +use Exception; use PHP_CodeSniffer\Exceptions\DeepExitException; use PHP_CodeSniffer\Exceptions\RuntimeException; use PHP_CodeSniffer\Files\DummyFile; @@ -20,6 +21,8 @@ use PHP_CodeSniffer\Util\Cache; use PHP_CodeSniffer\Util\Common; use PHP_CodeSniffer\Util\Standards; +use PHP_CodeSniffer\Util\Timing; +use PHP_CodeSniffer\Util\Tokens; class Runner { @@ -49,12 +52,14 @@ class Runner /** * Run the PHPCS script. * - * @return array + * @return int */ public function runPHPCS() { + $this->registerOutOfMemoryShutdownMessage('phpcs'); + try { - Util\Timing::startTiming(); + Timing::startTiming(); Runner::checkRequirements(); if (defined('PHP_CODESNIFFER_CBF') === false) { @@ -125,7 +130,7 @@ public function runPHPCS() && ($toScreen === false || (($this->reporter->totalErrors + $this->reporter->totalWarnings) === 0 && $this->config->showProgress === true)) ) { - Util\Timing::printRunTime(); + Timing::printRunTime(); } } catch (DeepExitException $e) { echo $e->getMessage(); @@ -149,16 +154,18 @@ public function runPHPCS() /** * Run the PHPCBF script. * - * @return array + * @return int */ public function runPHPCBF() { + $this->registerOutOfMemoryShutdownMessage('phpcbf'); + if (defined('PHP_CODESNIFFER_CBF') === false) { define('PHP_CODESNIFFER_CBF', true); } try { - Util\Timing::startTiming(); + Timing::startTiming(); Runner::checkRequirements(); // Creating the Config object populates it with all required settings @@ -190,7 +197,15 @@ public function runPHPCBF() $this->config->showSources = false; $this->config->recordErrors = false; $this->config->reportFile = null; - $this->config->reports = ['cbf' => null]; + + // Only use the "Cbf" report, but allow for the Performance report as well. + $originalReports = array_change_key_case($this->config->reports, CASE_LOWER); + $newReports = ['cbf' => null]; + if (array_key_exists('performance', $originalReports) === true) { + $newReports['performance'] = $originalReports['performance']; + } + + $this->config->reports = $newReports; // If a standard tries to set command line arguments itself, some // may be blocked because PHPCBF is running, so stop the script @@ -201,7 +216,7 @@ public function runPHPCBF() $this->reporter->printReports(); echo PHP_EOL; - Util\Timing::printRunTime(); + Timing::printRunTime(); } catch (DeepExitException $e) { echo $e->getMessage(); return $e->getCode(); @@ -232,7 +247,7 @@ public function runPHPCBF() /** * Exits if the minimum requirements of PHP_CodeSniffer are not met. * - * @return array + * @return void * @throws \PHP_CodeSniffer\Exceptions\DeepExitException If the requirements are not met. */ public function checkRequirements() @@ -291,19 +306,19 @@ public function init() // Ensure this option is enabled or else line endings will not always // be detected properly for files created on a Mac with the /r line ending. - ini_set('auto_detect_line_endings', true); + @ini_set('auto_detect_line_endings', true); // Disable the PCRE JIT as this caused issues with parallel running. ini_set('pcre.jit', false); // Check that the standards are valid. foreach ($this->config->standards as $standard) { - if (Util\Standards::isInstalledStandard($standard) === false) { + if (Standards::isInstalledStandard($standard) === false) { // They didn't select a valid coding standard, so help them // out by letting them know which standards are installed. $error = 'ERROR: the "'.$standard.'" coding standard is not installed. '; ob_start(); - Util\Standards::printInstalledStandards(); + Standards::printInstalledStandards(); $error .= ob_get_contents(); ob_end_clean(); throw new DeepExitException($error, 3); @@ -318,7 +333,7 @@ public function init() // Create this class so it is autoloaded and sets up a bunch // of PHP_CodeSniffer-specific token type constants. - $tokens = new Util\Tokens(); + $tokens = new Tokens(); // Allow autoloading of custom files inside installed standards. $installedStandards = Standards::getInstalledStandardDetails(); @@ -330,6 +345,10 @@ public function init() // should be checked and/or fixed. try { $this->ruleset = new Ruleset($this->config); + + if ($this->ruleset->hasSniffDeprecations() === true) { + $this->ruleset->showSniffDeprecations(); + } } catch (RuntimeException $e) { $error = 'ERROR: '.$e->getMessage().PHP_EOL.PHP_EOL; $error .= $this->config->printShortUsage(true); @@ -460,10 +479,7 @@ private function run() if ($pid === -1) { throw new RuntimeException('Failed to create child process'); } else if ($pid !== 0) { - $childProcs[] = [ - 'pid' => $pid, - 'out' => $childOutFilename, - ]; + $childProcs[$pid] = $childOutFilename; } else { // Move forward to the start of the batch. $todo->rewind(); @@ -487,6 +503,7 @@ private function run() $file = $todo->current(); if ($file->ignored === true) { + $todo->next(); continue; } @@ -535,7 +552,7 @@ private function run() $output .= ";\n?".'>'; file_put_contents($childOutFilename, $output); - exit($pid); + exit(); }//end if }//end for @@ -593,7 +610,7 @@ private function run() * @param string $file The path of the file that raised the error. * @param int $line The line number the error was raised at. * - * @return void + * @return bool * @throws \PHP_CodeSniffer\Exceptions\RuntimeException */ public function handleErrors($code, $message, $file, $line) @@ -648,12 +665,45 @@ public function processFile($file) echo " ($errors errors, $warnings warnings)".PHP_EOL; } } - } catch (\Exception $e) { + } catch (Exception $e) { $error = 'An error occurred during processing; checking has been aborted. The error message was: '.$e->getMessage(); + + // Determine which sniff caused the error. + $sniffStack = null; + $nextStack = null; + foreach ($e->getTrace() as $step) { + if (isset($step['file']) === false) { + continue; + } + + if (empty($sniffStack) === false) { + $nextStack = $step; + break; + } + + if (substr($step['file'], -9) === 'Sniff.php') { + $sniffStack = $step; + continue; + } + } + + if (empty($sniffStack) === false) { + if (empty($nextStack) === false + && isset($nextStack['class']) === true + && substr($nextStack['class'], -5) === 'Sniff' + ) { + $sniffCode = Common::getSniffCode($nextStack['class']); + } else { + $sniffCode = substr(strrchr(str_replace('\\', '/', $sniffStack['file']), '/'), 1); + } + + $error .= sprintf(PHP_EOL.'The error originated in the %s sniff on line %s.', $sniffCode, $sniffStack['line']); + } + $file->addErrorOnLine($error, 1, 'Internal.Exception'); }//end try - $this->reporter->cacheFileReport($file, $this->config); + $this->reporter->cacheFileReport($file); if ($this->config->interactive === true) { /* @@ -688,7 +738,7 @@ public function processFile($file) $file->ruleset->populateTokenListeners(); $file->reloadContent(); $file->process(); - $this->reporter->cacheFileReport($file, $this->config); + $this->reporter->cacheFileReport($file); break; } }//end while @@ -718,54 +768,61 @@ private function processChildProcs($childProcs) $success = true; while (count($childProcs) > 0) { - foreach ($childProcs as $key => $procData) { - $res = pcntl_waitpid($procData['pid'], $status, WNOHANG); - if ($res === $procData['pid']) { - if (file_exists($procData['out']) === true) { - include $procData['out']; - - unlink($procData['out']); - unset($childProcs[$key]); - - $numProcessed++; - - if (isset($childOutput) === false) { - // The child process died, so the run has failed. - $file = new DummyFile(null, $this->ruleset, $this->config); - $file->setErrorCounts(1, 0, 0, 0); - $this->printProgress($file, $totalBatches, $numProcessed); - $success = false; - continue; - } + $pid = pcntl_waitpid(0, $status); + if ($pid <= 0) { + continue; + } - $this->reporter->totalFiles += $childOutput['totalFiles']; - $this->reporter->totalErrors += $childOutput['totalErrors']; - $this->reporter->totalWarnings += $childOutput['totalWarnings']; - $this->reporter->totalFixable += $childOutput['totalFixable']; - $this->reporter->totalFixed += $childOutput['totalFixed']; + $childProcessStatus = pcntl_wexitstatus($status); + if ($childProcessStatus !== 0) { + $success = false; + } - if (isset($debugOutput) === true) { - echo $debugOutput; - } + $out = $childProcs[$pid]; + unset($childProcs[$pid]); + if (file_exists($out) === false) { + continue; + } - if (isset($childCache) === true) { - foreach ($childCache as $path => $cache) { - Cache::set($path, $cache); - } - } + include $out; + unlink($out); - // Fake a processed file so we can print progress output for the batch. - $file = new DummyFile(null, $this->ruleset, $this->config); - $file->setErrorCounts( - $childOutput['totalErrors'], - $childOutput['totalWarnings'], - $childOutput['totalFixable'], - $childOutput['totalFixed'] - ); - $this->printProgress($file, $totalBatches, $numProcessed); - }//end if - }//end if - }//end foreach + $numProcessed++; + + if (isset($childOutput) === false) { + // The child process died, so the run has failed. + $file = new DummyFile('', $this->ruleset, $this->config); + $file->setErrorCounts(1, 0, 0, 0); + $this->printProgress($file, $totalBatches, $numProcessed); + $success = false; + continue; + } + + $this->reporter->totalFiles += $childOutput['totalFiles']; + $this->reporter->totalErrors += $childOutput['totalErrors']; + $this->reporter->totalWarnings += $childOutput['totalWarnings']; + $this->reporter->totalFixable += $childOutput['totalFixable']; + $this->reporter->totalFixed += $childOutput['totalFixed']; + + if (isset($debugOutput) === true) { + echo $debugOutput; + } + + if (isset($childCache) === true) { + foreach ($childCache as $path => $cache) { + Cache::set($path, $cache); + } + } + + // Fake a processed file so we can print progress output for the batch. + $file = new DummyFile('', $this->ruleset, $this->config); + $file->setErrorCounts( + $childOutput['totalErrors'], + $childOutput['totalWarnings'], + $childOutput['totalFixable'], + $childOutput['totalFixed'] + ); + $this->printProgress($file, $totalBatches, $numProcessed); }//end while return $success; @@ -886,4 +943,42 @@ public function printProgress(File $file, $numFiles, $numProcessed) }//end printProgress() + /** + * Registers a PHP shutdown function to provide a more informative out of memory error. + * + * @param string $command The command which was used to initiate the PHPCS run. + * + * @return void + */ + private function registerOutOfMemoryShutdownMessage($command) + { + // Allocate all needed memory beforehand as much as possible. + $errorMsg = PHP_EOL.'The PHP_CodeSniffer "%1$s" command ran out of memory.'.PHP_EOL; + $errorMsg .= 'Either raise the "memory_limit" of PHP in the php.ini file or raise the memory limit at runtime'.PHP_EOL; + $errorMsg .= 'using `%1$s -d memory_limit=512M` (replace 512M with the desired memory limit).'.PHP_EOL; + $errorMsg = sprintf($errorMsg, $command); + $memoryError = 'Allowed memory size of'; + $errorArray = [ + 'type' => 42, + 'message' => 'Some random dummy string to take up memory and take up some more memory and some more', + 'file' => 'Another random string, which would be a filename this time. Should be relatively long to allow for deeply nested files', + 'line' => 31427, + ]; + + register_shutdown_function( + static function () use ( + $errorMsg, + $memoryError, + $errorArray + ) { + $errorArray = error_get_last(); + if (is_array($errorArray) === true && strpos($errorArray['message'], $memoryError) !== false) { + echo $errorMsg; + } + } + ); + + }//end registerOutOfMemoryShutdownMessage() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractArraySniff.php b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractArraySniff.php index 141b9a133..95a0a0908 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractArraySniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractArraySniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Sniffs; @@ -19,7 +19,7 @@ abstract class AbstractArraySniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ final public function register() { @@ -104,9 +104,9 @@ public function process(File $phpcsFile, $stackPtr) /** * Find next separator in array - either: comma or double arrow. * - * @param File $phpcsFile The current file being checked. - * @param int $ptr The position of current token. - * @param int $arrayEnd The token that ends the array definition. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being checked. + * @param int $ptr The position of current token. + * @param int $arrayEnd The token that ends the array definition. * * @return int */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractPatternSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractPatternSniff.php index 66bc2f524..e89536568 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractPatternSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractPatternSniff.php @@ -4,15 +4,15 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Sniffs; +use PHP_CodeSniffer\Exceptions\RuntimeException; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Util\Tokens; use PHP_CodeSniffer\Tokenizers\PHP; -use PHP_CodeSniffer\Exceptions\RuntimeException; +use PHP_CodeSniffer\Util\Tokens; abstract class AbstractPatternSniff implements Sniff { @@ -78,7 +78,7 @@ public function __construct($ignoreComments=null) * Classes extending <i>AbstractPatternTest</i> should implement the * <i>getPatterns()</i> method to register the patterns they wish to test. * - * @return int[] + * @return array<int|string> * @see process() */ final public function register() @@ -250,7 +250,7 @@ final public function process(File $phpcsFile, $stackPtr) * @param int $stackPtr The position in the tokens stack where * the listening token type was found. * - * @return array + * @return array|false */ protected function processPattern($patternInfo, File $phpcsFile, $stackPtr) { @@ -850,7 +850,7 @@ private function parse($pattern) * Creates a skip pattern. * * @param string $pattern The pattern being parsed. - * @param string $from The token content that the skip pattern starts from. + * @param int $from The token position that the skip pattern starts from. * * @return array The pattern step. * @see createTokenPattern() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractScopeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractScopeSniff.php index 70d8720a1..d2b6979d5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractScopeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractScopeSniff.php @@ -21,13 +21,13 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Sniffs; -use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Exceptions\RuntimeException; +use PHP_CodeSniffer\Files\File; abstract class AbstractScopeSniff implements Sniff { @@ -42,7 +42,7 @@ abstract class AbstractScopeSniff implements Sniff /** * The type of scope opener tokens that this test wishes to listen to. * - * @var string + * @var array<int|string> */ private $scopeTokens = []; @@ -104,7 +104,7 @@ public function __construct( * DO NOT OVERRIDE THIS METHOD. Use the constructor of this class to register * for the desired tokens and scope. * - * @return int[] + * @return array<int|string> * @see __constructor() */ final public function register() @@ -123,7 +123,7 @@ final public function register() * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. * @see processTokenWithinScope() */ @@ -148,8 +148,6 @@ final public function process(File $phpcsFile, $stackPtr) return min($skipTokens); } - return; - }//end process() @@ -166,7 +164,7 @@ final public function process(File $phpcsFile, $stackPtr) * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ abstract protected function processTokenWithinScope(File $phpcsFile, $stackPtr, $currScope); @@ -182,7 +180,7 @@ abstract protected function processTokenWithinScope(File $phpcsFile, $stackPtr, * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return (count($tokens) + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ abstract protected function processTokenOutsideScope(File $phpcsFile, $stackPtr); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractVariableSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractVariableSniff.php index 5dc8ba556..34a3b43aa 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractVariableSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/AbstractVariableSniff.php @@ -10,7 +10,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Sniffs; @@ -72,7 +72,7 @@ public function __construct() * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ final protected function processTokenWithinScope(File $phpcsFile, $stackPtr, $currScope) @@ -156,7 +156,7 @@ final protected function processTokenWithinScope(File $phpcsFile, $stackPtr, $cu * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ final protected function processTokenOutsideScope(File $phpcsFile, $stackPtr) @@ -187,7 +187,7 @@ final protected function processTokenOutsideScope(File $phpcsFile, $stackPtr) * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ abstract protected function processMemberVar(File $phpcsFile, $stackPtr); @@ -202,7 +202,7 @@ abstract protected function processMemberVar(File $phpcsFile, $stackPtr); * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ abstract protected function processVariable(File $phpcsFile, $stackPtr); @@ -221,7 +221,7 @@ abstract protected function processVariable(File $phpcsFile, $stackPtr); * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return ($phpcsFile->numTokens + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ abstract protected function processVariableInString(File $phpcsFile, $stackPtr); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/DeprecatedSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/DeprecatedSniff.php new file mode 100644 index 000000000..4f4d9fc02 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/DeprecatedSniff.php @@ -0,0 +1,63 @@ +<?php +/** + * Marks a sniff as deprecated. + * + * Implementing this interface allows for marking a sniff as deprecated and + * displaying information about the deprecation to the end-user. + * + * A sniff will still need to implement the `PHP_CodeSniffer\Sniffs\Sniff` interface + * as well, or extend an abstract sniff which does, to be recognized as a valid sniff. + * + * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> + * @copyright 2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Sniffs; + +interface DeprecatedSniff +{ + + + /** + * Provide the version number in which the sniff was deprecated. + * + * Recommended format for PHPCS native sniffs: "v3.3.0". + * Recommended format for external sniffs: "StandardName v3.3.0". + * + * @return string + */ + public function getDeprecationVersion(); + + + /** + * Provide the version number in which the sniff will be removed. + * + * Recommended format for PHPCS native sniffs: "v3.3.0". + * Recommended format for external sniffs: "StandardName v3.3.0". + * + * If the removal version is not yet known, it is recommended to set + * this to: "a future version". + * + * @return string + */ + public function getRemovalVersion(); + + + /** + * Optionally provide an arbitrary custom message to display with the deprecation. + * + * Typically intended to allow for displaying information about what to + * replace the deprecated sniff with. + * Example: "Use the Stnd.Cat.SniffName sniff instead." + * Multi-line messages (containing new line characters) are supported. + * + * An empty string can be returned if there is no replacement/no need + * for a custom message. + * + * @return string + */ + public function getDeprecationMessage(); + + +}//end interface diff --git a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/Sniff.php b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/Sniff.php index c9d7daea8..e0f7cfe9c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Sniffs/Sniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Sniffs/Sniff.php @@ -9,7 +9,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Sniffs; @@ -28,13 +28,13 @@ interface Sniff * * <code> * return array( - * T_WHITESPACE, - * T_DOC_COMMENT, - * T_COMMENT, - * ); + * T_WHITESPACE, + * T_DOC_COMMENT, + * T_COMMENT, + * ); * </code> * - * @return mixed[] + * @return array<int|string> * @see Tokens.php */ public function register(); @@ -45,7 +45,7 @@ public function register(); * is found. * * The stackPtr variable indicates where in the stack the token was found. - * A sniff can acquire information this token, along with all the other + * A sniff can acquire information about this token, along with all the other * tokens within the stack by first acquiring the token stack: * * <code> @@ -71,7 +71,7 @@ public function register(); * * @return void|int Optionally returns a stack pointer. The sniff will not be * called again on the current file until the returned stack - * pointer is reached. Return (count($tokens) + 1) to skip + * pointer is reached. Return `$phpcsFile->numTokens` to skip * the rest of the file. */ public function process(File $phpcsFile, $stackPtr); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Classes/OpeningBraceSameLineStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Classes/OpeningBraceSameLineStandard.xml index 6226a3fff..6fa08be7a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Classes/OpeningBraceSameLineStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Classes/OpeningBraceSameLineStandard.xml @@ -15,6 +15,14 @@ class Foo <em>{</em> <![CDATA[ class Foo <em>{</em> +} + ]]> + </code> + </code_comparison> + <code_comparison> + <code title="Valid: Opening brace is the last thing on the line."> + <![CDATA[ +class Foo <em>{</em> } ]]> </code> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/CodeAnalysis/EmptyPHPStatementStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/CodeAnalysis/EmptyPHPStatementStandard.xml new file mode 100644 index 000000000..6b96c825a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/CodeAnalysis/EmptyPHPStatementStandard.xml @@ -0,0 +1,44 @@ +<documentation title="Empty PHP Statement"> + <standard> + <![CDATA[ + Empty PHP tags are not allowed. + ]]> + </standard> + <code_comparison> + <code title="Valid: There is at least one statement inside the PHP tag pair."> + <![CDATA[ +<?php <em>echo 'Hello World';</em> ?> +<?= <em>'Hello World';</em> ?> + ]]> + </code> + <code title="Invalid: There is no statement inside the PHP tag pair."> + <![CDATA[ +<?php <em>;</em> ?> +<?= <em></em> ?> + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + Superfluous semicolons are not allowed. + ]]> + </standard> + <code_comparison> + <code title="Valid: There is no superfluous semicolon after a PHP statement."> + <![CDATA[ +function_call()<em>;</em> +if (true) { + echo 'Hello World'<em>;</em> +} + ]]> + </code> + <code title="Invalid: There are one or more superfluous semicolons after a PHP statement."> + <![CDATA[ +function_call()<em>;;;</em> +if (true) { + echo 'Hello World'; +}<em>;</em> + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceStandard.xml new file mode 100644 index 000000000..006dbff44 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceStandard.xml @@ -0,0 +1,44 @@ +<documentation title="Require Explicit Boolean Operator Precedence" + > + <standard> + <![CDATA[ + Forbids mixing different binary boolean operators (&&, ||, and, or, xor) within a single expression without making precedence clear using parentheses. + ]]> + </standard> + <code_comparison> + <code title="Valid: Making precedence clear with parentheses."> + <![CDATA[ +$one = false; +$two = false; +$three = true; + +$result = <em>($one && $two) || $three</em>; +$result2 = <em>$one && ($two || $three)</em>; +$result3 = <em>($one && !$two) xor $three</em>; +$result4 = <em>$one && (!$two xor $three)</em>; + +if ( + <em>($result && !$result3) + || (!$result && $result3)</em> +) {} + ]]> + </code> + <code title="Invalid: Not using parentheses."> + <![CDATA[ +$one = false; +$two = false; +$three = true; + +$result = <em>$one && $two || $three</em>; + +$result3 = <em>$one && !$two xor $three</em>; + + +if ( + <em>$result && !$result3 + || !$result && $result3</em> +) {} + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Commenting/DocCommentStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Commenting/DocCommentStandard.xml new file mode 100644 index 000000000..bbeb4f69a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Commenting/DocCommentStandard.xml @@ -0,0 +1,269 @@ +<documentation title="Doc Comment"> + <standard> + <![CDATA[ + Enforces rules related to the formatting of DocBlocks ("Doc Comments") in PHP code. + + DocBlocks are a special type of comment that can provide information about a structural element. In the context of DocBlocks, the following are considered structural elements: + class, interface, trait, enum, function, property, constant, variable declarations and require/include[_once] statements. + + DocBlocks start with a `/**` marker and end on `*/`. This sniff will check the formatting of all DocBlocks, independently of whether or not they are attached to a structural element. + ]]> + </standard> + <standard> + <![CDATA[ + A DocBlock must not be empty. + ]]> + </standard> + <code_comparison> + <code title="Valid: DocBlock with some content."> + <![CDATA[ +/** + * <em>Some content.</em> + */ + ]]> + </code> + <code title="Invalid: Empty DocBlock."> + <![CDATA[ +/** + * <em></em> + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + The opening and closing DocBlock tags must be the only content on the line. + ]]> + </standard> + <code_comparison> + <code title="Valid: The opening and closing DocBlock tags have to be on a line by themselves."> + <![CDATA[ +<em>/**</em> + * Short description. + <em>*/</em> + ]]> + </code> + <code title="Invalid: The opening and closing DocBlock tags are not on a line by themselves."> + <![CDATA[ +<em>/** Short description. */</em> + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + The DocBlock must have a short description, and it must be on the first line. + ]]> + </standard> + <code_comparison> + <code title="Valid: DocBlock with a short description on the first line."> + <![CDATA[ +/** + * <em>Short description.</em> + */ + ]]> + </code> + <code title="Invalid: DocBlock without a short description or short description not on the first line."> + <![CDATA[ +/** + * <em></em>@return int + */ + +/** +<em> *</em> + * Short description. + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + Both the short description, as well as the long description, must start with a capital letter. + ]]> + </standard> + <code_comparison> + <code title="Valid: Both the short and long description start with a capital letter."> + <![CDATA[ +/** + * <em>S</em>hort description. + * + * <em>L</em>ong description. + */ + ]]> + </code> + <code title="Invalid: Neither short nor long description starts with a capital letter."> + <![CDATA[ +/** + * <em>s</em>hort description. + * + * <em>l</em>ong description. + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + There must be exactly one blank line separating the short description, the long description and tag groups. + ]]> + </standard> + <code_comparison> + <code title="Valid: One blank line separating the short description, the long description and tag groups."> + <![CDATA[ +/** + * Short description. +<em> *<em> + * Long description. +<em> *</em> + * @param int $foo + */ + ]]> + </code> + <code title="Invalid: More than one or no blank line separating the short description, the long description and tag groups."> + <![CDATA[ +/** + * Short description. +<em> * + * +</em> + * Long description.<em> +</em> * @param int $foo + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + Parameter tags must be grouped together. + ]]> + </standard> + <code_comparison> + <code title="Valid: Parameter tags grouped together."> + <![CDATA[ +/** + * Short description. + * +<em> * @param int $foo + * @param string $bar</em> + */ + ]]> + </code> + <code title="Invalid: Parameter tags not grouped together."> + <![CDATA[ +/** + * Short description. + * + * @param int $foo +<em> *</em> + * @param string $bar + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + Parameter tags must not be grouped together with other tags. + ]]> + </standard> + <code_comparison> + <code title="Valid: Parameter tags are not grouped together with other tags."> + <![CDATA[ +/** + * Short description. + * +<em> * @param int $foo</em> + * + * @since 3.4.8 + * @deprecated 6.0.0 + */ + ]]> + </code> + <code title="Invalid: Parameter tags grouped together with other tags."> + <![CDATA[ +/** + * Short description. + * +<em> * @param int $foo + * @since 3.4.8 + * @deprecated 6.0.0</em> + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + Tag values for different tags in the same group must be aligned with each other. + ]]> + </standard> + <code_comparison> + <code title="Valid: Tag values for different tags in the same tag group are aligned with each other."> + <![CDATA[ +/** + * Short description. + * + * @since<em> 0.5.0</em> + * @deprecated<em> 1.0.0</em> + */ + ]]> + </code> + <code title="Invalid: Tag values for different tags in the same tag group are not aligned with each other."> + <![CDATA[ +/** + * Short description. + * + * @since<em> 0.5.0</em> + * @deprecated<em> 1.0.0</em> + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + Parameter tags must be defined before other tags in a DocBlock. + ]]> + </standard> + <code_comparison> + <code title="Valid: Parameter tags are defined first."> + <![CDATA[ +/** + * Short description. + * + * <em>@param string $foo</em> + * + * @return void + */ + ]]> + </code> + <code title="Invalid: Parameter tags are not defined first."> + <![CDATA[ +/** + * Short description. + * + * @return void + * + * <em>@param string $bar</em> + */ + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + There must be no additional blank (comment) lines before the closing DocBlock tag. + ]]> + </standard> + <code_comparison> + <code title="Valid: No additional blank lines before the closing DocBlock tag."> + <![CDATA[ +/** + * Short description.<em> +</em> */ + ]]> + </code> + <code title="Invalid: Additional blank lines before the closing DocBlock tag."> + <![CDATA[ +/** + * Short description. +<em> *</em> + */ + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/NoSpaceAfterCastStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/NoSpaceAfterCastStandard.xml index 042e4f803..80b932d27 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/NoSpaceAfterCastStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/NoSpaceAfterCastStandard.xml @@ -1,4 +1,4 @@ -<documentation title="Space After Casts"> +<documentation title="No Space After Cast"> <standard> <![CDATA[ Spaces are not allowed after casting operators. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterCastStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterCastStandard.xml index 75eba77cb..0563bb261 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterCastStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterCastStandard.xml @@ -1,4 +1,4 @@ -<documentation title="Space After Casts"> +<documentation title="Space After Cast"> <standard> <![CDATA[ Exactly one space is allowed after a cast. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterNotStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterNotStandard.xml index dd3e77311..aea863695 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterNotStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceAfterNotStandard.xml @@ -10,13 +10,10 @@ if (!<em> </em>$someVar || !<em> </em>$x instanceOf stdClass) {}; ]]> </code> - <code title="Invalid: A NOT operator not followed by whitespace."> + <code title="Invalid: A NOT operator not followed by whitespace or followed by too much whitespace."> <![CDATA[ if (!<em></em>$someVar || !<em></em>$x instanceOf stdClass) {}; - ]]> - </code> - <code title="Invalid: A NOT operator followed by a new line or more than one space."> - <![CDATA[ + if (!<em> </em>$someVar || !<em> </em>$x instanceOf stdClass) {}; ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceBeforeCastStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceBeforeCastStandard.xml new file mode 100644 index 000000000..09fbc189f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/Formatting/SpaceBeforeCastStandard.xml @@ -0,0 +1,21 @@ +<documentation title="Space Before Cast"> + <standard> + <![CDATA[ + There should be exactly one space before a cast operator. + ]]> + </standard> + <code_comparison> + <code title="Valid: Single space before a cast operator."> + <![CDATA[ +$integer =<em> </em>(int) $string; +$c = $a .<em> </em>(string) $b; + ]]> + </code> + <code title="Invalid: No space or multiple spaces before a cast operator."> + <![CDATA[ +$integer =<em></em>(int) $string; +$c = $a .<em> </em>(string) $b; + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/DisallowRequestSuperglobalStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/DisallowRequestSuperglobalStandard.xml index f94769427..519d7f5c8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/DisallowRequestSuperglobalStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/DisallowRequestSuperglobalStandard.xml @@ -1,6 +1,6 @@ <documentation title="$_REQUEST Superglobal"> <standard> - <![CDATA[ + <![CDATA[ $_REQUEST should never be used due to the ambiguity created as to where the data is coming from. Use $_POST, $_GET, or $_COOKIE instead. ]]> </standard> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/RequireStrictTypesStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/RequireStrictTypesStandard.xml new file mode 100644 index 000000000..701cb484e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/RequireStrictTypesStandard.xml @@ -0,0 +1,38 @@ +<documentation title="Require Strict Types"> + <standard> + <![CDATA[ + The strict_types declaration must be present. + ]]> + </standard> + <code_comparison> + <code title="Valid: strict_types declaration is present."> + <![CDATA[ +declare(<em>strict_types=1</em>); + +declare(encoding='UTF-8', <em>strict_types=0</em>); + ]]> + </code> + <code title="Invalid: Missing strict_types declaration."> + <![CDATA[ +declare(encoding='ISO-8859-1'<em></em>); + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + The strict_types declaration must be enabled. + ]]> + </standard> + <code_comparison> + <code title="Valid: strict_types declaration is enabled."> + <![CDATA[ +declare(strict_types=<em>1</em>); + ]]> + </code> + <code title="Invalid: strict_types declaration is disabled."> + <![CDATA[ +declare(strict_types=<em>0</em>); + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/SyntaxStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/SyntaxStandard.xml new file mode 100644 index 000000000..1c2457df0 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/PHP/SyntaxStandard.xml @@ -0,0 +1,21 @@ +<documentation title="PHP Syntax"> + <standard> + <![CDATA[ + The code should use valid PHP syntax. + ]]> + </standard> + <code_comparison> + <code title="Valid: No PHP syntax errors."> + <![CDATA[ +<em>echo "Hello!";</em> +<em>$array = [1, 2, 3];</em> + ]]> + </code> + <code title="Invalid: Code contains PHP syntax errors."> + <![CDATA[ +echo "Hello!"<em></em> // Missing semicolon. +$array = [1, 2, 3<em></em>; // Missing closing bracket. + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/ArbitraryParenthesesSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/ArbitraryParenthesesSpacingStandard.xml index 30e0def93..338c83893 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/ArbitraryParenthesesSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/ArbitraryParenthesesSpacingStandard.xml @@ -10,13 +10,10 @@ $a = (null !== $extra); ]]> </code> - <code title="Invalid: spaces on the inside of a set of arbitrary parentheses."> + <code title="Invalid: spaces or new lines on the inside of a set of arbitrary parentheses."> <![CDATA[ $a = ( null !== $extra ); - ]]> - </code> - <code title="Invalid: new lines on the inside of a set of arbitrary parentheses."> - <![CDATA[ + $a = ( null !== $extra ); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/IncrementDecrementSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/IncrementDecrementSpacingStandard.xml new file mode 100644 index 000000000..92532fc68 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/IncrementDecrementSpacingStandard.xml @@ -0,0 +1,26 @@ +<documentation title="Increment Decrement Spacing"> + <standard> + <![CDATA[ + There should be no whitespace between variables and increment/decrement operators. + ]]> + </standard> + <code_comparison> + <code title="Valid: No whitespace between variables and increment/decrement operators."> + <![CDATA[ +++<em></em>$i; +--<em></em>$i['key']['id']; +ClassName::$prop<em></em>++; +$obj->prop<em></em>--; + ]]> + </code> + <code title="Invalid: Whitespace between variables and increment/decrement operators."> + <![CDATA[ +++<em> </em>$i; +--<em> </em>$i['key']['id']; +ClassName::$prop<em> </em>++; +$obj->prop<em> +</em>--; + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml new file mode 100644 index 000000000..a9cd5a65c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml @@ -0,0 +1,44 @@ +<documentation title="Language Construct Spacing"> + <standard> + <![CDATA[ + Language constructs that can be used without parentheses, must have a single space between the language construct keyword and its content. + ]]> + </standard> + <code_comparison> + <code title="Valid: Single space after language construct."> + <![CDATA[ +echo<em> </em>'Hello, World!'; +throw<em> </em>new<em> </em>Exception(); +return<em> </em>$newLine; + ]]> + </code> + <code title="Invalid: No space, more than one space or newline after language construct."> + <![CDATA[ +echo<em></em>'Hello, World!'; +throw<em> </em>new<em> </em>Exception(); +return<em></em> +$newLine; + ]]> + </code> + </code_comparison> + <standard> + <![CDATA[ + A single space must be used between the "yield" and "from" keywords for a "yield from" expression. + ]]> + </standard> + <code_comparison> + <code title="Valid: Single space between yield and from."> + <![CDATA[ +yield<em> </em>from [1, 2, 3]; + ]]> + </code> + <code title="Invalid: No space, more than one space or newline between yield and from."> + <![CDATA[ +yield<em></em>from [1, 2, 3]; +yield<em> </em>from [1, 2, 3]; +yield<em></em> +from [1, 2, 3]; + ]]> + </code> + </code_comparison> +</documentation> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/ArrayIndentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/ArrayIndentSniff.php index adb74ec8c..b6e3d37d7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/ArrayIndentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/ArrayIndentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays; @@ -62,7 +62,6 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array // Determine how far indented the entire array declaration should be. $ignore = Tokens::$emptyTokens; $ignore[] = T_DOUBLE_ARROW; - $ignore[] = T_COMMA; $prev = $phpcsFile->findPrevious($ignore, ($stackPtr - 1), null, true); $start = $phpcsFile->findStartOfStatement($prev); $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $start, true); @@ -76,9 +75,15 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array // check indent levels because it's not valid. But we don't enforce exactly // how far indented it should be. if ($startIndent < $baseIndent) { - $error = 'Array open brace not indented correctly; expected at least %s spaces but found %s'; + $pluralizeSpace = 's'; + if ($baseIndent === 1) { + $pluralizeSpace = ''; + } + + $error = 'Array open brace not indented correctly; expected at least %s space%s but found %s'; $data = [ $baseIndent, + $pluralizeSpace, $startIndent, ]; $fix = $phpcsFile->addFixableError($error, $stackPtr, 'OpenBraceIncorrect', $data); @@ -117,9 +122,15 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array continue; } - $error = 'Array key not indented correctly; expected %s spaces but found %s'; + $pluralizeSpace = 's'; + if ($expectedIndent === 1) { + $pluralizeSpace = ''; + } + + $error = 'Array key not indented correctly; expected %s space%s but found %s'; $data = [ $expectedIndent, + $pluralizeSpace, $foundIndent, ]; $fix = $phpcsFile->addFixableError($error, $first, 'KeyIncorrect', $data); @@ -140,7 +151,7 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array $error = 'Closing brace of array declaration must be on a new line'; $fix = $phpcsFile->addFixableError($error, $arrayEnd, 'CloseBraceNotNewLine'); if ($fix === true) { - $padding = $phpcsFile->eolChar.str_repeat(' ', $expectedIndent); + $padding = $phpcsFile->eolChar.str_repeat(' ', $startIndent); $phpcsFile->fixer->addContentBefore($arrayEnd, $padding); } @@ -148,15 +159,20 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array } // The close brace must be indented one stop less. - $expectedIndent -= $this->indent; - $foundIndent = ($tokens[$arrayEnd]['column'] - 1); - if ($foundIndent === $expectedIndent) { + $foundIndent = ($tokens[$arrayEnd]['column'] - 1); + if ($foundIndent === $startIndent) { return; } - $error = 'Array close brace not indented correctly; expected %s spaces but found %s'; + $pluralizeSpace = 's'; + if ($startIndent === 1) { + $pluralizeSpace = ''; + } + + $error = 'Array close brace not indented correctly; expected %s space%s but found %s'; $data = [ - $expectedIndent, + $startIndent, + $pluralizeSpace, $foundIndent, ]; $fix = $phpcsFile->addFixableError($error, $arrayEnd, 'CloseBraceIncorrect', $data); @@ -164,7 +180,7 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array return; } - $padding = str_repeat(' ', $expectedIndent); + $padding = str_repeat(' ', $startIndent); if ($foundIndent === 0) { $phpcsFile->fixer->addContentBefore($arrayEnd, $padding); } else { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php index bf7f3ed1c..6854945ad 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowLongArraySyntaxSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays; @@ -19,7 +19,7 @@ class DisallowLongArraySyntaxSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -45,9 +45,7 @@ public function process(File $phpcsFile, $stackPtr) $error = 'Short array syntax must be used to define arrays'; - if (isset($tokens[$stackPtr]['parenthesis_opener']) === false - || isset($tokens[$stackPtr]['parenthesis_closer']) === false - ) { + if (isset($tokens[$stackPtr]['parenthesis_opener'], $tokens[$stackPtr]['parenthesis_closer']) === false) { // Live coding/parse error, just show the error, don't try and fix it. $phpcsFile->addError($error, $stackPtr, 'Found'); return; @@ -61,13 +59,9 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->fixer->beginChangeset(); - if ($opener === null) { - $phpcsFile->fixer->replaceToken($stackPtr, '[]'); - } else { - $phpcsFile->fixer->replaceToken($stackPtr, ''); - $phpcsFile->fixer->replaceToken($opener, '['); - $phpcsFile->fixer->replaceToken($closer, ']'); - } + $phpcsFile->fixer->replaceToken($stackPtr, ''); + $phpcsFile->fixer->replaceToken($opener, '['); + $phpcsFile->fixer->replaceToken($closer, ']'); $phpcsFile->fixer->endChangeset(); } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php index 2ba42d673..f98277116 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays; @@ -19,7 +19,7 @@ class DisallowShortArraySyntaxSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php index 8374bfd53..19ff1edf6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Classes; @@ -26,7 +26,7 @@ class DuplicateClassNameSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -53,6 +53,7 @@ public function process(File $phpcsFile, $stackPtr) T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, T_NAMESPACE, T_CLOSE_TAG, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php index fb92d82c0..40291ea47 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Classes/OpeningBraceSameLineSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Classes; @@ -19,7 +19,7 @@ class OpeningBraceSameLineSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/AssignmentInConditionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/AssignmentInConditionSniff.php index 8788a912e..fecd16a75 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/AssignmentInConditionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/AssignmentInConditionSniff.php @@ -8,7 +8,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -40,7 +40,7 @@ class AssignmentInConditionSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyPHPStatementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyPHPStatementSniff.php index 1c9e40001..4ecf63037 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyPHPStatementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyPHPStatementSniff.php @@ -2,12 +2,12 @@ /** * Checks against empty PHP statements. * - * - Check against two semi-colons with no executable code in between. + * - Check against two semicolons with no executable code in between. * - Check against an empty PHP open - close tag combination. * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -23,7 +23,7 @@ class EmptyPHPStatementSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -76,7 +76,7 @@ public function process(File $phpcsFile, $stackPtr) return; } - // Else, it's something like `if (foo) {};` and the semi-colon is not needed. + // Else, it's something like `if (foo) {};` and the semicolon is not needed. } if (isset($tokens[$stackPtr]['nested_parenthesis']) === true) { @@ -91,7 +91,7 @@ public function process(File $phpcsFile, $stackPtr) } $fix = $phpcsFile->addFixableWarning( - 'Empty PHP statement detected: superfluous semi-colon.', + 'Empty PHP statement detected: superfluous semicolon.', $stackPtr, 'SemicolonWithoutCodeDetected' ); @@ -101,7 +101,7 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$prevNonEmpty]['code'] === T_OPEN_TAG || $tokens[$prevNonEmpty]['code'] === T_OPEN_TAG_WITH_ECHO ) { - // Check for superfluous whitespace after the semi-colon which will be + // Check for superfluous whitespace after the semicolon which will be // removed as the `<?php ` open tag token already contains whitespace, // either a space or a new line. if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php index 574bb0ba5..ded042a9a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php @@ -18,7 +18,7 @@ * @author Manuel Pichler <mapi@manuel-pichler.de> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -34,7 +34,7 @@ class EmptyStatementSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php index f583e9389..726b32c55 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php @@ -17,7 +17,7 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -33,7 +33,7 @@ class ForLoopShouldBeWhileLoopSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -57,7 +57,7 @@ public function process(File $phpcsFile, $stackPtr) $token = $tokens[$stackPtr]; // Skip invalid statement. - if (isset($token['parenthesis_opener']) === false) { + if (isset($token['parenthesis_opener'], $token['parenthesis_closer']) === false) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php index 62a07b26a..0374a8f75 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php @@ -21,7 +21,7 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -37,7 +37,7 @@ class ForLoopWithTestFunctionCallSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -61,7 +61,7 @@ public function process(File $phpcsFile, $stackPtr) $token = $tokens[$stackPtr]; // Skip invalid statement. - if (isset($token['parenthesis_opener']) === false) { + if (isset($token['parenthesis_opener'], $token['parenthesis_closer']) === false) { return; } @@ -84,7 +84,7 @@ public function process(File $phpcsFile, $stackPtr) continue; } - // Find next non empty token, if it is a open curly brace we have a + // Find next non empty token, if it is a open parenthesis we have a // function call. $index = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php index 364658db6..8174d6653 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php @@ -24,7 +24,7 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -39,7 +39,7 @@ class JumbledIncrementerSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -67,7 +67,7 @@ public function process(File $phpcsFile, $stackPtr) return; } - // Find incrementors for outer loop. + // Find incrementers for outer loop. $outer = $this->findIncrementers($tokens, $token); // Skip if empty. @@ -88,8 +88,8 @@ public function process(File $phpcsFile, $stackPtr) $diff = array_intersect($outer, $inner); if (count($diff) !== 0) { - $error = 'Loop incrementor (%s) jumbling with inner loop'; - $data = [join(', ', $diff)]; + $error = 'Loop incrementer (%s) jumbling with inner loop'; + $data = [implode(', ', $diff)]; $phpcsFile->addWarning($error, $stackPtr, 'Found', $data); } } @@ -100,15 +100,15 @@ public function process(File $phpcsFile, $stackPtr) /** * Get all used variables in the incrementer part of a for statement. * - * @param array(integer=>array) $tokens Array with all code sniffer tokens. - * @param array(string=>mixed) $token Current for loop token + * @param array<int, array> $tokens Array with all code sniffer tokens. + * @param array<string, mixed> $token Current for loop token. * * @return string[] List of all found incrementer variables. */ protected function findIncrementers(array $tokens, array $token) { // Skip invalid statement. - if (isset($token['parenthesis_opener']) === false) { + if (isset($token['parenthesis_opener'], $token['parenthesis_closer']) === false) { return []; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceSniff.php new file mode 100644 index 000000000..93afe2e35 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceSniff.php @@ -0,0 +1,119 @@ +<?php +/** + * Forbid mixing different binary boolean operators within a single expression without making precedence + * clear using parentheses. + * + * <code> + * $one = false; + * $two = false; + * $three = true; + * + * $result = $one && $two || $three; + * $result3 = $one && !$two xor $three; + * </code> + * + * {@internal The unary `!` operator is not handled, because its high precedence matches its visuals of + * applying only to the sub-expression right next to it, making it unlikely that someone would + * misinterpret its precedence. Requiring parentheses around it would reduce the readability of + * expressions due to the additional characters, especially if multiple subexpressions / variables + * need to be negated.} + * + * Sister-sniff to the `Squiz.ControlStructures.InlineIfDeclaration` and + * `Squiz.Formatting.OperatorBracket.MissingBrackets` sniffs. + * + * @author Tim Duesterhus <duesterhus@woltlab.com> + * @copyright 2021-2023 WoltLab GmbH. + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; + +use PHP_CodeSniffer\Files\File; +use PHP_CodeSniffer\Sniffs\Sniff; +use PHP_CodeSniffer\Util\Tokens; + +class RequireExplicitBooleanOperatorPrecedenceSniff implements Sniff +{ + + /** + * Array of tokens this test searches for to find either a boolean + * operator or the start of the current (sub-)expression. Used for + * performance optimization purposes. + * + * @var array<int|string> + */ + private $searchTargets = []; + + + /** + * Returns an array of tokens this test wants to listen for. + * + * @return array<int|string> + */ + public function register() + { + $this->searchTargets = Tokens::$booleanOperators; + $this->searchTargets += Tokens::$blockOpeners; + $this->searchTargets[T_INLINE_THEN] = T_INLINE_THEN; + $this->searchTargets[T_INLINE_ELSE] = T_INLINE_ELSE; + + return Tokens::$booleanOperators; + + }//end register() + + + /** + * Processes this test, when one of its tokens is encountered. + * + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token + * in the stack passed in $tokens. + * + * @return void + */ + public function process(File $phpcsFile, $stackPtr) + { + $tokens = $phpcsFile->getTokens(); + + $start = $phpcsFile->findStartOfStatement($stackPtr); + + $previous = $phpcsFile->findPrevious( + $this->searchTargets, + ($stackPtr - 1), + $start, + false, + null, + true + ); + + if ($previous === false) { + // No token found. + return; + } + + if ($tokens[$previous]['code'] === $tokens[$stackPtr]['code']) { + // Identical operator found. + return; + } + + if (in_array($tokens[$previous]['code'], [T_INLINE_THEN, T_INLINE_ELSE], true) === true) { + // Beginning of the expression found for the ternary conditional operator. + return; + } + + if (isset(Tokens::$blockOpeners[$tokens[$previous]['code']]) === true) { + // Beginning of the expression found for a block opener. Needed to + // correctly handle match arms. + return; + } + + // We found a mismatching operator, thus we must report the error. + $error = 'Mixing different binary boolean operators within an expression'; + $error .= ' without using parentheses to clarify precedence is not allowed.'; + $phpcsFile->addError($error, $stackPtr, 'MissingParentheses'); + + }//end process() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php index cc9958c58..db71a9676 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php @@ -21,7 +21,7 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -37,7 +37,7 @@ class UnconditionalIfStatementSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -64,7 +64,7 @@ public function process(File $phpcsFile, $stackPtr) $token = $tokens[$stackPtr]; // Skip if statement without body. - if (isset($token['parenthesis_opener']) === false) { + if (isset($token['parenthesis_opener'], $token['parenthesis_closer']) === false) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php index bed67c93c..2f4faa891 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php @@ -17,14 +17,13 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; -use PHP_CodeSniffer\Util\Tokens; class UnnecessaryFinalModifierSniff implements Sniff { @@ -33,7 +32,7 @@ class UnnecessaryFinalModifierSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -56,16 +55,13 @@ public function process(File $phpcsFile, $stackPtr) $tokens = $phpcsFile->getTokens(); $token = $tokens[$stackPtr]; - // Skip for-statements without body. + // Skip for statements without body. if (isset($token['scope_opener']) === false) { return; } - // Fetch previous token. - $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); - - // Skip for non final class. - if ($prev === false || $tokens[$prev]['code'] !== T_FINAL) { + if ($phpcsFile->getClassProperties($stackPtr)['is_final'] === false) { + // This class is not final so we don't need to check it. return; } @@ -77,6 +73,13 @@ public function process(File $phpcsFile, $stackPtr) $error = 'Unnecessary FINAL modifier in FINAL class'; $phpcsFile->addWarning($error, $next, 'Found'); } + + // Skip over the contents of functions as those can't contain the `final` keyword anyway. + if ($tokens[$next]['code'] === T_FUNCTION + && isset($tokens[$next]['scope_closer']) === true + ) { + $next = $tokens[$next]['scope_closer']; + } } }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php index 58aa29fe8..e076b83dc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php @@ -11,7 +11,7 @@ * @author Manuel Pichler <mapi@manuel-pichler.de> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -30,11 +30,37 @@ class UnusedFunctionParameterSniff implements Sniff */ public $ignoreTypeHints = []; + /** + * A list of all PHP magic methods with fixed method signatures. + * + * Note: `__construct()` and `__invoke()` are excluded on purpose + * as their method signature is not fixed. + * + * @var array + */ + private $magicMethods = [ + '__destruct' => true, + '__call' => true, + '__callstatic' => true, + '__get' => true, + '__set' => true, + '__isset' => true, + '__unset' => true, + '__sleep' => true, + '__wakeup' => true, + '__serialize' => true, + '__unserialize' => true, + '__tostring' => true, + '__set_state' => true, + '__clone' => true, + '__debuginfo' => true, + ]; + /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -68,17 +94,29 @@ public function process(File $phpcsFile, $stackPtr) $errorCode = 'Found'; $implements = false; - $extends = false; - $classPtr = $phpcsFile->getCondition($stackPtr, T_CLASS); - if ($classPtr !== false) { - $implements = $phpcsFile->findImplementedInterfaceNames($classPtr); - $extends = $phpcsFile->findExtendedClassName($classPtr); - if ($extends !== false) { - $errorCode .= 'InExtendedClass'; - } else if ($implements !== false) { - $errorCode .= 'InImplementedInterface'; + + if ($token['code'] === T_FUNCTION) { + $classPtr = $phpcsFile->getCondition($stackPtr, T_CLASS); + if ($classPtr !== false) { + // Check for magic methods and ignore these as the method signature cannot be changed. + $methodName = $phpcsFile->getDeclarationName($stackPtr); + if (empty($methodName) === false) { + $methodNameLc = strtolower($methodName); + if (isset($this->magicMethods[$methodNameLc]) === true) { + return; + } + } + + // Check for extends/implements and adjust the error code when found. + $implements = $phpcsFile->findImplementedInterfaceNames($classPtr); + $extends = $phpcsFile->findExtendedClassName($classPtr); + if ($extends !== false) { + $errorCode .= 'InExtendedClass'; + } else if ($implements !== false) { + $errorCode .= 'InImplementedInterface'; + } } - } + }//end if $params = []; $methodParams = $phpcsFile->getMethodParameters($stackPtr); @@ -135,18 +173,22 @@ public function process(File $phpcsFile, $stackPtr) // A return statement as the first content indicates an interface method. if ($code === T_RETURN) { - $tmp = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); - if ($tmp === false && $implements !== false) { - return; - } - - // There is a return. - if ($tokens[$tmp]['code'] === T_SEMICOLON && $implements !== false) { + $firstNonEmptyTokenAfterReturn = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); + if ($tokens[$firstNonEmptyTokenAfterReturn]['code'] === T_SEMICOLON && $implements !== false) { return; } - $tmp = $phpcsFile->findNext(Tokens::$emptyTokens, ($tmp + 1), null, true); - if ($tmp !== false && $tokens[$tmp]['code'] === T_SEMICOLON && $implements !== false) { + $secondNonEmptyTokenAfterReturn = $phpcsFile->findNext( + Tokens::$emptyTokens, + ($firstNonEmptyTokenAfterReturn + 1), + null, + true + ); + + if ($secondNonEmptyTokenAfterReturn !== false + && $tokens[$secondNonEmptyTokenAfterReturn]['code'] === T_SEMICOLON + && $implements !== false + ) { // There is a return <token>. return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php index fded92953..4c984a16b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php @@ -16,7 +16,7 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis; @@ -28,11 +28,22 @@ class UselessOverridingMethodSniff implements Sniff { + /** + * Object-Oriented scopes in which a call to parent::method() can exist. + * + * @var array<int|string, bool> Keys are the token constants, value is irrelevant. + */ + private $validOOScopes = [ + T_CLASS => true, + T_ANON_CLASS => true, + T_TRAIT => true, + ]; + /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -56,7 +67,15 @@ public function process(File $phpcsFile, $stackPtr) $token = $tokens[$stackPtr]; // Skip function without body. - if (isset($token['scope_opener']) === false) { + if (isset($token['scope_opener'], $token['scope_closer']) === false) { + return; + } + + $conditions = $token['conditions']; + $lastCondition = end($conditions); + + // Skip functions that are not a method part of a class, anon class or trait. + if (isset($this->validOOScopes[$lastCondition]) === false) { return; } @@ -93,15 +112,15 @@ public function process(File $phpcsFile, $stackPtr) $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); // Skip for invalid code. - if ($next === false || $tokens[$next]['code'] !== T_DOUBLE_COLON) { + if ($tokens[$next]['code'] !== T_DOUBLE_COLON) { return; } - // Find next non empty token index, should be the function name. + // Find next non empty token index, should be the name of the method being called. $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); // Skip for invalid code or other method. - if ($next === false || $tokens[$next]['content'] !== $methodName) { + if (strcasecmp($tokens[$next]['content'], $methodName) !== 0) { return; } @@ -109,14 +128,13 @@ public function process(File $phpcsFile, $stackPtr) $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); // Skip for invalid code. - if ($next === false || $tokens[$next]['code'] !== T_OPEN_PARENTHESIS) { + if ($tokens[$next]['code'] !== T_OPEN_PARENTHESIS || isset($tokens[$next]['parenthesis_closer']) === false) { return; } $parameters = ['']; $parenthesisCount = 1; - $count = count($tokens); - for (++$next; $next < $count; ++$next) { + for (++$next; $next < $phpcsFile->numTokens; ++$next) { $code = $tokens[$next]['code']; if ($code === T_OPEN_PARENTHESIS) { @@ -135,7 +153,7 @@ public function process(File $phpcsFile, $stackPtr) }//end for $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); - if ($next === false || $tokens[$next]['code'] !== T_SEMICOLON) { + if ($tokens[$next]['code'] !== T_SEMICOLON) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php index 545319be5..f34ffc2b9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php @@ -4,13 +4,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Commenting; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; +use PHP_CodeSniffer\Util\Tokens; class DocCommentSniff implements Sniff { @@ -29,7 +30,7 @@ class DocCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -280,9 +281,12 @@ public function process(File $phpcsFile, $stackPtr) } // Check that there was single blank line after the tag block - // but account for a multi-line tag comments. + // but account for multi-line tag comments. + $find = Tokens::$phpcsCommentTokens; + $find[T_DOC_COMMENT_TAG] = T_DOC_COMMENT_TAG; + $lastTag = $group[$pos]; - $next = $phpcsFile->findNext(T_DOC_COMMENT_TAG, ($lastTag + 3), $commentEnd); + $next = $phpcsFile->findNext($find, ($lastTag + 3), $commentEnd); if ($next !== false) { $prev = $phpcsFile->findPrevious([T_DOC_COMMENT_TAG, T_DOC_COMMENT_STRING], ($next - 1), $commentStart); if ($tokens[$next]['line'] !== ($tokens[$prev]['line'] + 2)) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/FixmeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/FixmeSniff.php index 84385221e..b78a6595e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/FixmeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/FixmeSniff.php @@ -5,7 +5,7 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Sam Graham <php-codesniffer@illusori.co.uk> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Commenting; @@ -31,7 +31,7 @@ class FixmeSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/TodoSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/TodoSniff.php index 639680461..d24111cbd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/TodoSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Commenting/TodoSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Commenting; @@ -30,7 +30,7 @@ class TodoSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/DisallowYodaConditionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/DisallowYodaConditionsSniff.php index f760fa1c6..3dc7795b3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/DisallowYodaConditionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/DisallowYodaConditionsSniff.php @@ -5,7 +5,7 @@ * @author Mponos George <gmponos@gmail.com> * @author Mark Scherer <username@example.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures; @@ -21,11 +21,14 @@ class DisallowYodaConditionsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return Tokens::$comparisonTokens; + $tokens = Tokens::$comparisonTokens; + unset($tokens[T_COALESCE]); + + return $tokens; }//end register() @@ -54,9 +57,7 @@ public function process(File $phpcsFile, $stackPtr) T_CONSTANT_ENCAPSED_STRING, ]; - if ($previousIndex === false - || in_array($tokens[$previousIndex]['code'], $relevantTokens, true) === false - ) { + if (in_array($tokens[$previousIndex]['code'], $relevantTokens, true) === false) { return; } @@ -68,9 +69,6 @@ public function process(File $phpcsFile, $stackPtr) } $prevIndex = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($previousIndex - 1), null, true); - if ($prevIndex === false) { - return; - } if (in_array($tokens[$prevIndex]['code'], Tokens::$arithmeticTokens, true) === true) { return; @@ -82,16 +80,15 @@ public function process(File $phpcsFile, $stackPtr) // Is it a parenthesis. if ($tokens[$previousIndex]['code'] === T_CLOSE_PARENTHESIS) { - // Check what exists inside the parenthesis. - $closeParenthesisIndex = $phpcsFile->findPrevious( + $beforeOpeningParenthesisIndex = $phpcsFile->findPrevious( Tokens::$emptyTokens, ($tokens[$previousIndex]['parenthesis_opener'] - 1), null, true ); - if ($closeParenthesisIndex === false || $tokens[$closeParenthesisIndex]['code'] !== T_ARRAY) { - if ($tokens[$closeParenthesisIndex]['code'] === T_STRING) { + if ($beforeOpeningParenthesisIndex === false || $tokens[$beforeOpeningParenthesisIndex]['code'] !== T_ARRAY) { + if ($tokens[$beforeOpeningParenthesisIndex]['code'] === T_STRING) { return; } @@ -107,14 +104,14 @@ public function process(File $phpcsFile, $stackPtr) return; } - // If there is nothing inside the parenthesis, it it not a Yoda. + // If there is nothing inside the parenthesis, it is not a Yoda condition. $opener = $tokens[$previousIndex]['parenthesis_opener']; $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($previousIndex - 1), ($opener + 1), true); if ($prev === false) { return; } - } else if ($tokens[$closeParenthesisIndex]['code'] === T_ARRAY - && $this->isArrayStatic($phpcsFile, $closeParenthesisIndex) === false + } else if ($tokens[$beforeOpeningParenthesisIndex]['code'] === T_ARRAY + && $this->isArrayStatic($phpcsFile, $beforeOpeningParenthesisIndex) === false ) { return; }//end if @@ -141,7 +138,6 @@ public function isArrayStatic(File $phpcsFile, $arrayToken) { $tokens = $phpcsFile->getTokens(); - $arrayEnd = null; if ($tokens[$arrayToken]['code'] === T_OPEN_SHORT_ARRAY) { $start = $arrayToken; $end = $tokens[$arrayToken]['bracket_closer']; @@ -149,6 +145,7 @@ public function isArrayStatic(File $phpcsFile, $arrayToken) $start = $tokens[$arrayToken]['parenthesis_opener']; $end = $tokens[$arrayToken]['parenthesis_closer']; } else { + // Shouldn't be possible but may happen if external sniffs are using this method. return true; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php index 19a58833b..bc4a916d2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures; @@ -37,7 +37,7 @@ class InlineControlStructureSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -62,7 +62,7 @@ public function register() * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * - * @return void + * @return void|int */ public function process(File $phpcsFile, $stackPtr) { @@ -75,7 +75,7 @@ public function process(File $phpcsFile, $stackPtr) // Ignore the ELSE in ELSE IF. We'll process the IF part later. if ($tokens[$stackPtr]['code'] === T_ELSE) { - $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($tokens[$next]['code'] === T_IF) { return; } @@ -150,7 +150,7 @@ public function process(File $phpcsFile, $stackPtr) // tag in short open tags and scan run with short_open_tag=Off. // Bow out completely as any further detection will be unreliable // and create incorrect fixes or cause fixer conflicts. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } unset($nextNonEmpty, $start); @@ -210,7 +210,10 @@ public function process(File $phpcsFile, $stackPtr) if (isset($tokens[$end]['scope_opener']) === true) { $type = $tokens[$end]['code']; $end = $tokens[$end]['scope_closer']; - if ($type === T_DO || $type === T_IF || $type === T_ELSEIF || $type === T_TRY) { + if ($type === T_DO + || $type === T_IF || $type === T_ELSEIF + || $type === T_TRY || $type === T_CATCH || $type === T_FINALLY + ) { $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($end + 1), null, true); if ($next === false) { break; @@ -227,15 +230,20 @@ public function process(File $phpcsFile, $stackPtr) continue; } + // Account for TRY... CATCH/FINALLY statements. + if (($type === T_TRY + || $type === T_CATCH + || $type === T_FINALLY) + && ($nextType === T_CATCH + || $nextType === T_FINALLY) + ) { + continue; + } + // Account for DO... WHILE conditions. if ($type === T_DO && $nextType === T_WHILE) { $end = $phpcsFile->findNext(T_SEMICOLON, ($next + 1)); } - - // Account for TRY... CATCH statements. - if ($type === T_TRY && $nextType === T_CATCH) { - $end = $tokens[$next]['scope_closer']; - } } else if ($type === T_CLOSURE) { // There should be a semicolon after the closing brace. $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($end + 1), null, true); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/CSSLintSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/CSSLintSniff.php index 81284787a..6df4c1ffb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/CSSLintSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/CSSLintSniff.php @@ -4,7 +4,9 @@ * * @author Roman Levishchenko <index.0h@gmail.com> * @copyright 2013-2014 Roman Levishchenko - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Debug; @@ -28,7 +30,7 @@ class CSSLintSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -44,13 +46,13 @@ public function register() * @param int $stackPtr The position in the stack where * the token was found. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { $csslintPath = Config::getExecutablePath('csslint'); if ($csslintPath === null) { - return; + return $phpcsFile->numTokens; } $fileName = $phpcsFile->getFilename(); @@ -59,7 +61,7 @@ public function process(File $phpcsFile, $stackPtr) exec($cmd, $output, $retval); if (is_array($output) === false) { - return; + return $phpcsFile->numTokens; } $count = count($output); @@ -88,7 +90,7 @@ public function process(File $phpcsFile, $stackPtr) }//end for // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php index 19204718b..637bf41ea 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Debug; @@ -22,14 +24,14 @@ class ClosureLinterSniff implements Sniff * * All other error codes will show warnings. * - * @var integer + * @var array */ public $errorCodes = []; /** * A list of error codes to ignore. * - * @var integer + * @var array */ public $ignoreCodes = []; @@ -44,7 +46,7 @@ class ClosureLinterSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -60,14 +62,14 @@ public function register() * @param int $stackPtr The position in the stack where * the token was found. * - * @return void - * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jslint.js could not be run + * @return int + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jslint.js could not be run. */ public function process(File $phpcsFile, $stackPtr) { $lintPath = Config::getExecutablePath('gjslint'); if ($lintPath === null) { - return; + return $phpcsFile->numTokens; } $fileName = $phpcsFile->getFilename(); @@ -77,7 +79,7 @@ public function process(File $phpcsFile, $stackPtr) exec($cmd, $output, $retval); if (is_array($output) === false) { - return; + return $phpcsFile->numTokens; } foreach ($output as $finding) { @@ -109,7 +111,7 @@ public function process(File $phpcsFile, $stackPtr) }//end foreach // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ESLintSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ESLintSniff.php index d11d34705..1c6b0e3f3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ESLintSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/ESLintSniff.php @@ -4,7 +4,9 @@ * * @author Ryan McCue <ryan+gh@hmn.md> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Debug; @@ -35,7 +37,7 @@ class ESLintSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -51,14 +53,14 @@ public function register() * @param int $stackPtr The position in the stack where * the token was found. * - * @return void - * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jshint.js could not be run + * @return int + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jshint.js could not be run. */ public function process(File $phpcsFile, $stackPtr) { $eslintPath = Config::getExecutablePath('eslint'); if ($eslintPath === null) { - return; + return $phpcsFile->numTokens; } $filename = $phpcsFile->getFilename(); @@ -84,13 +86,13 @@ public function process(File $phpcsFile, $stackPtr) if ($code <= 0) { // No errors, continue. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } $data = json_decode(implode("\n", $stdout)); if (json_last_error() !== JSON_ERROR_NONE) { // Ignore any errors. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } // Data is a list of files, but we only pass a single one. @@ -105,7 +107,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/JSHintSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/JSHintSniff.php index 06de35940..ae8264ebb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/JSHintSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/JSHintSniff.php @@ -5,7 +5,9 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Alexander Wei§ <aweisswa@gmx.de> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Debug; @@ -29,7 +31,7 @@ class JSHintSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -45,15 +47,15 @@ public function register() * @param int $stackPtr The position in the stack where * the token was found. * - * @return void - * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jshint.js could not be run + * @return int + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jshint.js could not be run. */ public function process(File $phpcsFile, $stackPtr) { $rhinoPath = Config::getExecutablePath('rhino'); $jshintPath = Config::getExecutablePath('jshint'); - if ($rhinoPath === null && $jshintPath === null) { - return; + if ($jshintPath === null) { + return $phpcsFile->numTokens; } $fileName = $phpcsFile->getFilename(); @@ -87,7 +89,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php index cee8ecc5f..5a1fde6f3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php @@ -5,7 +5,7 @@ * @author Piotr Karas <office@mediaself.pl> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2010-2014 mediaSELF Sp. z o.o. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -33,7 +33,7 @@ class ByteOrderMarkSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -49,13 +49,13 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { // The BOM will be the very first token in the file. if ($stackPtr !== 0) { - return; + return $phpcsFile->numTokens; } $tokens = $phpcsFile->getTokens(); @@ -68,12 +68,14 @@ public function process(File $phpcsFile, $stackPtr) $error = 'File contains %s byte order mark, which may corrupt your application'; $phpcsFile->addError($error, $stackPtr, 'Found', $errorData); $phpcsFile->recordMetric($stackPtr, 'Using byte order mark', 'yes'); - return; + return $phpcsFile->numTokens; } } $phpcsFile->recordMetric($stackPtr, 'Using byte order mark', 'no'); + return $phpcsFile->numTokens; + }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php index ee52a1b97..71bcabbb7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -30,11 +30,14 @@ class EndFileNewlineSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -73,7 +76,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php index 2c7fcd35b..3f7660756 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -30,11 +30,14 @@ class EndFileNoNewlineSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -80,7 +83,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ExecutableFileSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ExecutableFileSniff.php index 51534bf37..8f597dfdf 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ExecutableFileSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/ExecutableFileSniff.php @@ -4,7 +4,7 @@ * * @author Matthew Peveler <matt.peveler@gmail.com> * @copyright 2019 Matthew Peveler - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -19,11 +19,14 @@ class ExecutableFileSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -51,7 +54,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php index eb01da87b..1d79a0ea7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -32,7 +32,7 @@ class InlineHTMLSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -48,7 +48,7 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return int|null + * @return int|void */ public function process(File $phpcsFile, $stackPtr) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineEndingsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineEndingsSniff.php index 763e7863c..1814b5555 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineEndingsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineEndingsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -37,11 +37,14 @@ class LineEndingsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -65,7 +68,7 @@ public function process(File $phpcsFile, $stackPtr) if ($found === $this->eolChar) { // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } // Check for single line files without an EOL. This is a very special @@ -76,7 +79,7 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$lastToken]['line'] === 1 && $tokens[$lastToken]['content'] !== "\n" ) { - return; + return $phpcsFile->numTokens; } } @@ -137,7 +140,7 @@ public function process(File $phpcsFile, $stackPtr) }//end if // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineLengthSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineLengthSniff.php index 5aa45ea0e..a65baf76b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineLengthSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LineLengthSniff.php @@ -8,7 +8,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -50,7 +50,7 @@ class LineLengthSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -80,7 +80,7 @@ public function process(File $phpcsFile, $stackPtr) $this->checkLineLength($phpcsFile, $tokens, $i); // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php index 2f442b112..1773cb8a6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php @@ -4,7 +4,7 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -19,11 +19,14 @@ class LowercasedFilenameSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -41,7 +44,7 @@ public function process(File $phpcsFile, $stackPtr) { $filename = $phpcsFile->getFilename(); if ($filename === 'STDIN') { - return; + return $phpcsFile->numTokens; } $filename = basename($filename); @@ -59,7 +62,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php index 9bcc00c1c..e328e7443 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php @@ -4,7 +4,7 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -19,7 +19,7 @@ class OneClassPerFileSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -39,7 +39,13 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $nextClass = $phpcsFile->findNext($this->register(), ($stackPtr + 1)); + $tokens = $phpcsFile->getTokens(); + $start = ($stackPtr + 1); + if (isset($tokens[$stackPtr]['scope_closer']) === true) { + $start = ($tokens[$stackPtr]['scope_closer'] + 1); + } + + $nextClass = $phpcsFile->findNext($this->register(), $start); if ($nextClass !== false) { $error = 'Only one class is allowed in a file'; $phpcsFile->addError($error, $nextClass, 'MultipleFound'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php index f7cfa8d30..34211f2f3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php @@ -4,7 +4,7 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -19,7 +19,7 @@ class OneInterfacePerFileSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -39,7 +39,13 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $nextInterface = $phpcsFile->findNext($this->register(), ($stackPtr + 1)); + $tokens = $phpcsFile->getTokens(); + $start = ($stackPtr + 1); + if (isset($tokens[$stackPtr]['scope_closer']) === true) { + $start = ($tokens[$stackPtr]['scope_closer'] + 1); + } + + $nextInterface = $phpcsFile->findNext($this->register(), $start); if ($nextInterface !== false) { $error = 'Only one interface is allowed in a file'; $phpcsFile->addError($error, $nextInterface, 'MultipleFound'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneObjectStructurePerFileSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneObjectStructurePerFileSniff.php index d9d71b699..459c5d1aa 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneObjectStructurePerFileSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneObjectStructurePerFileSniff.php @@ -4,7 +4,7 @@ * * @author Mponos George <gmponos@gmail.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -19,7 +19,7 @@ class OneObjectStructurePerFileSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() @@ -43,7 +44,13 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $nextClass = $phpcsFile->findNext($this->register(), ($stackPtr + 1)); + $tokens = $phpcsFile->getTokens(); + $start = ($stackPtr + 1); + if (isset($tokens[$stackPtr]['scope_closer']) === true) { + $start = ($tokens[$stackPtr]['scope_closer'] + 1); + } + + $nextClass = $phpcsFile->findNext($this->register(), $start); if ($nextClass !== false) { $error = 'Only one object structure is allowed in a file'; $phpcsFile->addError($error, $nextClass, 'MultipleFound'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php index dd97da85b..309383fcd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Files/OneTraitPerFileSniff.php @@ -4,7 +4,7 @@ * * @author Alexander Obuhovich <aik.bold@gmail.com> * @copyright 2010-2014 Alexander Obuhovich - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Files; @@ -19,7 +19,7 @@ class OneTraitPerFileSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -39,7 +39,13 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $nextClass = $phpcsFile->findNext($this->register(), ($stackPtr + 1)); + $tokens = $phpcsFile->getTokens(); + $start = ($stackPtr + 1); + if (isset($tokens[$stackPtr]['scope_closer']) === true) { + $start = ($tokens[$stackPtr]['scope_closer'] + 1); + } + + $nextClass = $phpcsFile->findNext($this->register(), $start); if ($nextClass !== false) { $error = 'Only one trait is allowed in a file'; $phpcsFile->addError($error, $nextClass, 'MultipleFound'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php index 6f9ff9f91..750fdabc5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting; @@ -19,7 +19,7 @@ class DisallowMultipleStatementsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php index b1b3cc64e..8916659a9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php @@ -7,7 +7,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting; @@ -58,7 +58,7 @@ class MultipleStatementAlignmentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -80,25 +80,6 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $tokens = $phpcsFile->getTokens(); - - // Ignore assignments used in a condition, like an IF or FOR. - if (isset($tokens[$stackPtr]['nested_parenthesis']) === true) { - // If the parenthesis is on the same line as the assignment, - // then it should be ignored as it is specifically being grouped. - $parens = $tokens[$stackPtr]['nested_parenthesis']; - $lastParen = array_pop($parens); - if ($tokens[$lastParen]['line'] === $tokens[$stackPtr]['line']) { - return; - } - - foreach ($tokens[$stackPtr]['nested_parenthesis'] as $start => $end) { - if (isset($tokens[$start]['parenthesis_owner']) === true) { - return; - } - } - } - $lastAssign = $this->checkAlignment($phpcsFile, $stackPtr); return ($lastAssign + 1); @@ -120,6 +101,23 @@ public function checkAlignment($phpcsFile, $stackPtr, $end=null) { $tokens = $phpcsFile->getTokens(); + // Ignore assignments used in a condition, like an IF or FOR or closure param defaults. + if (isset($tokens[$stackPtr]['nested_parenthesis']) === true) { + // If the parenthesis is on the same line as the assignment, + // then it should be ignored as it is specifically being grouped. + $parens = $tokens[$stackPtr]['nested_parenthesis']; + $lastParen = array_pop($parens); + if ($tokens[$lastParen]['line'] === $tokens[$stackPtr]['line']) { + return $stackPtr; + } + + foreach ($tokens[$stackPtr]['nested_parenthesis'] as $start => $end) { + if (isset($tokens[$start]['parenthesis_owner']) === true) { + return $stackPtr; + } + } + } + $assignments = []; $prevAssign = null; $lastLine = $tokens[$stackPtr]['line']; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php index f6a37dafd..f7644df03 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence * * @deprecated 3.4.0 Use the Generic.Formatting.SpaceAfterCast sniff with * the $spacing property set to 0 instead. @@ -23,7 +23,7 @@ class NoSpaceAfterCastSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php index f19489e8e..d831ea7d0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting; @@ -34,7 +34,7 @@ class SpaceAfterCastSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -54,8 +54,12 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $tokens = $phpcsFile->getTokens(); - $this->spacing = (int) $this->spacing; + $tokens = $phpcsFile->getTokens(); + $this->spacing = (int) $this->spacing; + $pluralizeSpace = 's'; + if ($this->spacing === 1) { + $pluralizeSpace = ''; + } if ($tokens[$stackPtr]['code'] === T_BINARY_CAST && $tokens[$stackPtr]['content'] === 'b' @@ -83,8 +87,11 @@ public function process(File $phpcsFile, $stackPtr) $nextNonWhitespace = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); if ($nextNonEmpty !== $nextNonWhitespace) { - $error = 'Expected %s space(s) after cast statement; comment found'; - $data = [$this->spacing]; + $error = 'Expected %s space%s after cast statement; comment found'; + $data = [ + $this->spacing, + $pluralizeSpace, + ]; $phpcsFile->addError($error, $stackPtr, 'CommentFound', $data); if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { @@ -109,9 +116,10 @@ public function process(File $phpcsFile, $stackPtr) return; } - $error = 'Expected %s space(s) after cast statement; %s found'; + $error = 'Expected %s space%s after cast statement; %s found'; $data = [ $this->spacing, + $pluralizeSpace, $found, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php index b74ca80ed..a1a6d0936 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceAfterNotSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting; @@ -44,7 +44,7 @@ class SpaceAfterNotSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -64,8 +64,12 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $tokens = $phpcsFile->getTokens(); - $this->spacing = (int) $this->spacing; + $tokens = $phpcsFile->getTokens(); + $this->spacing = (int) $this->spacing; + $pluralizeSpace = 's'; + if ($this->spacing === 1) { + $pluralizeSpace = ''; + } $nextNonEmpty = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($nextNonEmpty === false) { @@ -84,8 +88,11 @@ public function process(File $phpcsFile, $stackPtr) $nextNonWhitespace = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); if ($nextNonEmpty !== $nextNonWhitespace) { - $error = 'Expected %s space(s) after NOT operator; comment found'; - $data = [$this->spacing]; + $error = 'Expected %s space%s after NOT operator; comment found'; + $data = [ + $this->spacing, + $pluralizeSpace, + ]; $phpcsFile->addError($error, $stackPtr, 'CommentFound', $data); return; } @@ -101,9 +108,10 @@ public function process(File $phpcsFile, $stackPtr) return; } - $error = 'Expected %s space(s) after NOT operator; %s found'; + $error = 'Expected %s space%s after NOT operator; %s found'; $data = [ $this->spacing, + $pluralizeSpace, $found, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceBeforeCastSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceBeforeCastSniff.php index a4f85aeb6..96082e3fe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceBeforeCastSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Formatting/SpaceBeforeCastSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting; @@ -20,7 +20,7 @@ class SpaceBeforeCastSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php index 425748cee..76c4a6306 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php @@ -4,7 +4,7 @@ * * @author Florian Grandel <jerico.dev@gmail.com> * @copyright 2009-2014 Florian Grandel - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Functions; @@ -20,13 +20,17 @@ class CallTimePassByReferenceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { return [ T_STRING, T_VARIABLE, + T_ANON_CLASS, + T_PARENT, + T_SELF, + T_STATIC, ]; }//end register() @@ -50,12 +54,12 @@ public function process(File $phpcsFile, $stackPtr) $prev = $phpcsFile->findPrevious($findTokens, ($stackPtr - 1), null, true); - // Skip tokens that are the names of functions or classes + // Skip tokens that are the names of functions // within their definitions. For example: function myFunction... // "myFunction" is T_STRING but we should skip because it is not a // function or method *call*. $prevCode = $tokens[$prev]['code']; - if ($prevCode === T_FUNCTION || $prevCode === T_CLASS) { + if ($prevCode === T_FUNCTION) { return; } @@ -69,7 +73,7 @@ public function process(File $phpcsFile, $stackPtr) true ); - if ($tokens[$openBracket]['code'] !== T_OPEN_PARENTHESIS) { + if ($openBracket === false || $tokens[$openBracket]['code'] !== T_OPEN_PARENTHESIS) { return; } @@ -86,10 +90,6 @@ public function process(File $phpcsFile, $stackPtr) ]; while (($nextSeparator = $phpcsFile->findNext($find, ($nextSeparator + 1), $closeBracket)) !== false) { - if (isset($tokens[$nextSeparator]['nested_parenthesis']) === false) { - continue; - } - if ($tokens[$nextSeparator]['code'] === T_OPEN_SHORT_ARRAY) { $nextSeparator = $tokens[$nextSeparator]['bracket_closer']; continue; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php index ca9223814..1ae482256 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Functions; @@ -20,7 +20,7 @@ class FunctionCallArgumentSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -30,6 +30,7 @@ public function register() T_UNSET, T_SELF, T_STATIC, + T_PARENT, T_VARIABLE, T_CLOSE_CURLY_BRACKET, T_CLOSE_PARENTHESIS, @@ -155,10 +156,13 @@ public function checkSpacing(File $phpcsFile, $stackPtr, $openBracket) }//end if if ($tokens[($nextSeparator + 1)]['code'] !== T_WHITESPACE) { - $error = 'No space found after comma in argument list'; - $fix = $phpcsFile->addFixableError($error, $nextSeparator, 'NoSpaceAfterComma'); - if ($fix === true) { - $phpcsFile->fixer->addContent($nextSeparator, ' '); + // Ignore trailing comma's after last argument as that's outside the scope of this sniff. + if (($nextSeparator + 1) !== $closeBracket) { + $error = 'No space found after comma in argument list'; + $fix = $phpcsFile->addFixableError($error, $nextSeparator, 'NoSpaceAfterComma'); + if ($fix === true) { + $phpcsFile->fixer->addContent($nextSeparator, ' '); + } } } else { // If there is a newline in the space, then they must be formatting diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php index be1464d7c..be96f5858 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Functions; @@ -34,7 +34,7 @@ class OpeningFunctionBraceBsdAllmanSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { @@ -139,32 +139,44 @@ public function process(File $phpcsFile, $stackPtr) } else if ($lineDifference > 1) { $error = 'Opening brace should be on the line after the declaration; found %s blank line(s)'; $data = [($lineDifference - 1)]; - $fix = $phpcsFile->addFixableError($error, $openingBrace, 'BraceSpacing', $data); - if ($fix === true) { - for ($i = ($tokens[$stackPtr]['parenthesis_closer'] + 1); $i < $openingBrace; $i++) { - if ($tokens[$i]['line'] === $braceLine) { - $phpcsFile->fixer->addNewLineBefore($i); - break; + + $prevNonWs = $phpcsFile->findPrevious(T_WHITESPACE, ($openingBrace - 1), $closeBracket, true); + if ($prevNonWs !== $prev) { + // There must be a comment between the end of the function declaration and the open brace. + // Report, but don't fix. + $phpcsFile->addError($error, $openingBrace, 'BraceSpacing', $data); + } else { + $fix = $phpcsFile->addFixableError($error, $openingBrace, 'BraceSpacing', $data); + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); + for ($i = $openingBrace; $i > $prev; $i--) { + if ($tokens[$i]['line'] === $tokens[$openingBrace]['line']) { + if ($tokens[$i]['column'] === 1) { + $phpcsFile->fixer->addNewLineBefore($i); + } + + continue; + } + + $phpcsFile->fixer->replaceToken($i, ''); } - $phpcsFile->fixer->replaceToken($i, ''); + $phpcsFile->fixer->endChangeset(); } - } + }//end if }//end if $ignore = Tokens::$phpcsCommentTokens; $ignore[] = T_WHITESPACE; $next = $phpcsFile->findNext($ignore, ($openingBrace + 1), null, true); if ($tokens[$next]['line'] === $tokens[$openingBrace]['line']) { - if ($next === $tokens[$stackPtr]['scope_closer']) { - // Ignore empty functions. - return; - } - - $error = 'Opening brace must be the last content on the line'; - $fix = $phpcsFile->addFixableError($error, $openingBrace, 'ContentAfterBrace'); - if ($fix === true) { - $phpcsFile->fixer->addNewline($openingBrace); + // Only throw this error when this is not an empty function. + if ($next !== $tokens[$stackPtr]['scope_closer']) { + $error = 'Opening brace must be the last content on the line'; + $fix = $phpcsFile->addFixableError($error, $openingBrace, 'ContentAfterBrace'); + if ($fix === true) { + $phpcsFile->fixer->addNewline($openingBrace); + } } } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php index 62eafc120..ca259854e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Functions; @@ -34,7 +34,7 @@ class OpeningFunctionBraceKernighanRitchieSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return void + * @return array<int|string> */ public function register() { @@ -130,17 +130,15 @@ public function process(File $phpcsFile, $stackPtr) $ignore[] = T_WHITESPACE; $next = $phpcsFile->findNext($ignore, ($openingBrace + 1), null, true); if ($tokens[$next]['line'] === $tokens[$openingBrace]['line']) { - if ($next === $tokens[$stackPtr]['scope_closer'] - || $tokens[$next]['code'] === T_CLOSE_TAG + // Only throw this error when this is not an empty function. + if ($next !== $tokens[$stackPtr]['scope_closer'] + && $tokens[$next]['code'] !== T_CLOSE_TAG ) { - // Ignore empty functions. - return; - } - - $error = 'Opening brace must be the last content on the line'; - $fix = $phpcsFile->addFixableError($error, $openingBrace, 'ContentAfterBrace'); - if ($fix === true) { - $phpcsFile->fixer->addNewline($openingBrace); + $error = 'Opening brace must be the last content on the line'; + $fix = $phpcsFile->addFixableError($error, $openingBrace, 'ContentAfterBrace'); + if ($fix === true) { + $phpcsFile->fixer->addNewline($openingBrace); + } } } @@ -168,7 +166,7 @@ public function process(File $phpcsFile, $stackPtr) if ($length !== 1) { $error = 'Expected 1 space before opening brace; found %s'; $data = [$length]; - $fix = $phpcsFile->addFixableError($error, $closeBracket, 'SpaceBeforeBrace', $data); + $fix = $phpcsFile->addFixableError($error, $openingBrace, 'SpaceBeforeBrace', $data); if ($fix === true) { if ($length === 0 || $length === '\t') { $phpcsFile->fixer->addContentBefore($openingBrace, ' '); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php index df70df221..8cba81daf 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php @@ -9,7 +9,7 @@ * @author Johann-Peter Hartmann <hartmann@mayflower.de> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2007-2014 Mayflower GmbH - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics; @@ -38,7 +38,7 @@ class CyclomaticComplexitySniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -71,15 +71,19 @@ public function process(File $phpcsFile, $stackPtr) // Predicate nodes for PHP. $find = [ - T_CASE => true, - T_DEFAULT => true, - T_CATCH => true, - T_IF => true, - T_FOR => true, - T_FOREACH => true, - T_WHILE => true, - T_DO => true, - T_ELSEIF => true, + T_CASE => true, + T_DEFAULT => true, + T_CATCH => true, + T_IF => true, + T_FOR => true, + T_FOREACH => true, + T_WHILE => true, + T_ELSEIF => true, + T_INLINE_THEN => true, + T_COALESCE => true, + T_COALESCE_EQUAL => true, + T_MATCH_ARROW => true, + T_NULLSAFE_OBJECT_OPERATOR => true, ]; $complexity = 1; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php index d001dedad..3c086c7fe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php @@ -5,7 +5,7 @@ * @author Johann-Peter Hartmann <hartmann@mayflower.de> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2007-2014 Mayflower GmbH - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics; @@ -34,7 +34,7 @@ class NestingLevelSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/AbstractClassNamePrefixSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/AbstractClassNamePrefixSniff.php index 3e3af830d..145dddf74 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/AbstractClassNamePrefixSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/AbstractClassNamePrefixSniff.php @@ -3,7 +3,7 @@ * Checks that abstract classes are prefixed by Abstract. * * @author Anna Borzenko <annnechko@gmail.com> - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions; @@ -18,7 +18,7 @@ class AbstractClassNamePrefixSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php index b45112034..ec1cfd002 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php index b7f5427a2..75fbd2264 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php @@ -8,7 +8,7 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Leif Wickland <lwickland@rightnow.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions; @@ -66,7 +66,12 @@ protected function processTokenWithinScope(File $phpcsFile, $stackPtr, $currScop return; } - $className = strtolower($phpcsFile->getDeclarationName($currScope)); + $className = $phpcsFile->getDeclarationName($currScope); + if (empty($className) === false) { + // Not an anonymous class. + $className = strtolower($className); + } + if ($className !== $this->currentClass) { $this->loadFunctionNamesInScope($phpcsFile, $currScope); $this->currentClass = $className; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php index c5dc34d48..637e036f1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/InterfaceNameSuffixSniff.php @@ -3,7 +3,7 @@ * Checks that interfaces are suffixed by Interface. * * @author Anna Borzenko <annnechko@gmail.com> - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions; @@ -18,7 +18,7 @@ class InterfaceNameSuffixSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/TraitNameSuffixSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/TraitNameSuffixSniff.php index 4e3b211df..cbd9651dd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/TraitNameSuffixSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/TraitNameSuffixSniff.php @@ -3,7 +3,7 @@ * Checks that traits are suffixed by Trait. * * @author Anna Borzenko <annnechko@gmail.com> - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions; @@ -18,7 +18,7 @@ class TraitNameSuffixSniff implements Sniff /** * Registers the tokens that this sniff wants to listen for. * - * @return int[] + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php index db50eb56b..f62cfe94b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions; @@ -20,7 +20,7 @@ class UpperCaseConstantNameSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -46,8 +46,16 @@ public function process(File $phpcsFile, $stackPtr) $tokens = $phpcsFile->getTokens(); if ($tokens[$stackPtr]['code'] === T_CONST) { - // This is a class constant. - $constant = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); + // This is a constant declared with the "const" keyword. + // This may be an OO constant, in which case it could be typed, so we need to + // jump over a potential type to get to the name. + $assignmentOperator = $phpcsFile->findNext([T_EQUAL, T_SEMICOLON], ($stackPtr + 1)); + if ($assignmentOperator === false || $tokens[$assignmentOperator]['code'] !== T_EQUAL) { + // Parse error/live coding. Nothing to do. Rest of loop is moot. + return; + } + + $constant = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($assignmentOperator - 1), ($stackPtr + 1), true); if ($constant === false) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php index d455845b5..f3c56b588 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/BacktickOperatorSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -19,7 +19,7 @@ class BacktickOperatorSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php index f52180dd3..66f73860e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php @@ -4,7 +4,7 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -32,7 +32,7 @@ class CharacterBeforePHPOpeningTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php index e59ed5ffa..23dd2b6b2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php @@ -4,7 +4,7 @@ * * @author Stefano Kowalke <blueduck@gmx.net> * @copyright 2010-2014 Stefano Kowalke - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -19,11 +19,14 @@ class ClosingPHPTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php index 42eaa40f4..44efd53af 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php @@ -5,11 +5,13 @@ * @author Sebastian Bergmann <sb@sebastian-bergmann.de> * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; +use ReflectionFunction; + class DeprecatedFunctionsSniff extends ForbiddenFunctionsSniff { @@ -34,7 +36,7 @@ public function __construct() $functions = get_defined_functions(); foreach ($functions['internal'] as $functionName) { - $function = new \ReflectionFunction($functionName); + $function = new ReflectionFunction($functionName); if ($function->isDeprecated() === true) { $this->forbiddenFunctions[$functionName] = null; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php index 433750adf..a2cf1b931 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowAlternativePHPTagsSniff.php @@ -6,7 +6,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -28,7 +28,7 @@ class DisallowAlternativePHPTagsSniff implements Sniff /** * The current PHP version. * - * @var integer + * @var integer|string|null */ private $phpVersion = null; @@ -36,7 +36,7 @@ class DisallowAlternativePHPTagsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowRequestSuperglobalSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowRequestSuperglobalSniff.php index d5c7ddb72..acab6e3f9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowRequestSuperglobalSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowRequestSuperglobalSniff.php @@ -4,7 +4,7 @@ * * @author Jeantwan Teuma <jeant.m24@gmail.com> * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -19,7 +19,7 @@ class DisallowRequestSuperglobalSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -31,8 +31,9 @@ public function register() /** * Processes this sniff, when one of its tokens is encountered. * - * @param File $phpcsFile The file being scanned. - * @param int $stackPtr The position of the current token in the stack passed in $tokens. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token in the stack + * passed in $tokens. * * @return void */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php index 3f3fdbe62..7d68ac9e5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -20,7 +20,7 @@ class DisallowShortOpenTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -46,7 +46,7 @@ public function register() * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * - * @return void + * @return void|int */ public function process(File $phpcsFile, $stackPtr) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DiscourageGotoSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DiscourageGotoSniff.php index 6389846d8..063489a72 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DiscourageGotoSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/DiscourageGotoSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2017 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -19,7 +19,7 @@ class DiscourageGotoSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php index 1a10b1532..6f5abf8de 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php @@ -7,7 +7,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -56,7 +56,7 @@ class ForbiddenFunctionsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -163,6 +163,11 @@ public function process(File $phpcsFile, $stackPtr) return; } + if (empty($tokens[$stackPtr]['nested_attributes']) === false) { + // Class instantiation in attribute, not function call. + return; + } + $function = strtolower($tokens[$stackPtr]['content']); $pattern = null; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php index 8b8c76e92..4447f4630 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php @@ -4,13 +4,14 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; +use PHP_CodeSniffer\Util\Tokens; class LowerCaseConstantSniff implements Sniff { @@ -25,19 +26,65 @@ class LowerCaseConstantSniff implements Sniff 'JS', ]; + /** + * The tokens this sniff is targetting. + * + * @var array + */ + private $targets = [ + T_TRUE => T_TRUE, + T_FALSE => T_FALSE, + T_NULL => T_NULL, + ]; + + /** + * Token types which can be encountered in a property type declaration. + * + * @var array<int|string, int|string> + */ + private $propertyTypeTokens = [ + T_CALLABLE => T_CALLABLE, + T_SELF => T_SELF, + T_PARENT => T_PARENT, + T_FALSE => T_FALSE, + T_TRUE => T_TRUE, + T_NULL => T_NULL, + T_STRING => T_STRING, + T_NAME_QUALIFIED => T_NAME_QUALIFIED, + T_NAME_FULLY_QUALIFIED => T_NAME_FULLY_QUALIFIED, + T_NAME_RELATIVE => T_NAME_RELATIVE, + T_NS_SEPARATOR => T_NS_SEPARATOR, + T_NAMESPACE => T_NAMESPACE, + T_TYPE_UNION => T_TYPE_UNION, + T_TYPE_INTERSECTION => T_TYPE_INTERSECTION, + T_NULLABLE => T_NULLABLE, + ]; + /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [ - T_TRUE, - T_FALSE, - T_NULL, - ]; + $targets = $this->targets; + + // Register scope modifiers to filter out property type declarations. + $targets += Tokens::$scopeModifiers; + $targets[] = T_VAR; + $targets[] = T_STATIC; + $targets[] = T_READONLY; + + // Register function keywords to filter out param/return type declarations. + $targets[] = T_FUNCTION; + $targets[] = T_CLOSURE; + $targets[] = T_FN; + + // Register constant keyword to filter out type declarations. + $targets[] = T_CONST; + + return $targets; }//end register() @@ -49,13 +96,127 @@ public function register() * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * - * @return void + * @return void|int Optionally returns a stack pointer. The sniff will not be + * called again on the current file until the returned stack + * pointer is reached. */ public function process(File $phpcsFile, $stackPtr) + { + $tokens = $phpcsFile->getTokens(); + + // Skip over potential type declarations for constants. + if ($tokens[$stackPtr]['code'] === T_CONST) { + // Constant must always have a value assigned to it, so we can just look for the assignment + // operator. Anything between the const keyword and the assignment can be safely ignored. + $skipTo = $phpcsFile->findNext(T_EQUAL, ($stackPtr + 1)); + if ($skipTo !== false) { + return $skipTo; + } + + // If we're at the end of the file, just return. + return; + } + + /* + * Skip over type declarations for properties. + * + * Note: for other uses of the visibility modifiers (functions, constants, trait use), + * nothing relevant will be skipped as the next non-empty token will be an "non-skippable" + * one. + * Functions are handled separately below (and then skip to their scope opener), so + * this should also not cause any confusion for constructor property promotion. + * + * For other uses of the "static" keyword, it also shouldn't be problematic as the only + * time the next non-empty token will be a "skippable" token will be in return type + * declarations, in which case, it is correct to skip over them. + */ + + if (isset(Tokens::$scopeModifiers[$tokens[$stackPtr]['code']]) === true + || $tokens[$stackPtr]['code'] === T_VAR + || $tokens[$stackPtr]['code'] === T_STATIC + || $tokens[$stackPtr]['code'] === T_READONLY + ) { + $skipOver = (Tokens::$emptyTokens + $this->propertyTypeTokens); + $skipTo = $phpcsFile->findNext($skipOver, ($stackPtr + 1), null, true); + if ($skipTo !== false) { + return $skipTo; + } + + // If we're at the end of the file, just return. + return; + } + + // Handle function declarations separately as they may contain the keywords in type declarations. + if ($tokens[$stackPtr]['code'] === T_FUNCTION + || $tokens[$stackPtr]['code'] === T_CLOSURE + || $tokens[$stackPtr]['code'] === T_FN + ) { + if (isset($tokens[$stackPtr]['parenthesis_closer']) === false) { + return; + } + + // Make sure to skip over return type declarations. + $end = $tokens[$stackPtr]['parenthesis_closer']; + if (isset($tokens[$stackPtr]['scope_opener']) === true) { + $end = $tokens[$stackPtr]['scope_opener']; + } else { + $skipTo = $phpcsFile->findNext([T_SEMICOLON, T_OPEN_CURLY_BRACKET], ($end + 1), null, false, null, true); + if ($skipTo !== false) { + $end = $skipTo; + } + } + + // Do a quick check if any of the targets exist in the declaration. + $found = $phpcsFile->findNext($this->targets, $tokens[$stackPtr]['parenthesis_opener'], $end); + if ($found === false) { + // Skip forward, no need to examine these tokens again. + return $end; + } + + // Handle the whole function declaration in one go. + $params = $phpcsFile->getMethodParameters($stackPtr); + foreach ($params as $param) { + if (isset($param['default_token']) === false) { + continue; + } + + $paramEnd = $param['comma_token']; + if ($param['comma_token'] === false) { + $paramEnd = $tokens[$stackPtr]['parenthesis_closer']; + } + + for ($i = $param['default_token']; $i < $paramEnd; $i++) { + if (isset($this->targets[$tokens[$i]['code']]) === true) { + $this->processConstant($phpcsFile, $i); + } + } + } + + // Skip over return type declarations. + return $end; + }//end if + + // Handle everything else. + $this->processConstant($phpcsFile, $stackPtr); + + }//end process() + + + /** + * Processes a non-type declaration constant. + * + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token in the + * stack passed in $tokens. + * + * @return void + */ + protected function processConstant(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $keyword = $tokens[$stackPtr]['content']; $expected = strtolower($keyword); + if ($keyword !== $expected) { if ($keyword === strtoupper($keyword)) { $phpcsFile->recordMetric($stackPtr, 'PHP constant case', 'upper'); @@ -77,7 +238,7 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->recordMetric($stackPtr, 'PHP constant case', 'lower'); } - }//end process() + }//end processConstant() }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php index e10047b64..1a3691717 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php @@ -4,14 +4,15 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Tokens; class LowerCaseKeywordSniff implements Sniff { @@ -20,85 +21,25 @@ class LowerCaseKeywordSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [ - T_ABSTRACT, - T_ARRAY, - T_AS, - T_BREAK, - T_CALLABLE, - T_CASE, - T_CATCH, - T_CLASS, - T_CLONE, - T_CLOSURE, - T_CONST, - T_CONTINUE, - T_DECLARE, - T_DEFAULT, - T_DO, - T_ECHO, - T_ELSE, - T_ELSEIF, - T_EMPTY, - T_ENDDECLARE, - T_ENDFOR, - T_ENDFOREACH, - T_ENDIF, - T_ENDSWITCH, - T_ENDWHILE, - T_EVAL, - T_EXIT, - T_EXTENDS, - T_FINAL, - T_FINALLY, - T_FN, - T_FOR, - T_FOREACH, - T_FUNCTION, - T_GLOBAL, - T_GOTO, - T_IF, - T_IMPLEMENTS, - T_INCLUDE, - T_INCLUDE_ONCE, - T_INSTANCEOF, - T_INSTEADOF, - T_INTERFACE, - T_ISSET, - T_LIST, - T_LOGICAL_AND, - T_LOGICAL_OR, - T_LOGICAL_XOR, - T_MATCH, - T_MATCH_DEFAULT, - T_NAMESPACE, - T_NEW, - T_PARENT, - T_PRINT, - T_PRIVATE, - T_PROTECTED, - T_PUBLIC, - T_REQUIRE, - T_REQUIRE_ONCE, - T_RETURN, - T_SELF, - T_STATIC, - T_SWITCH, - T_THROW, - T_TRAIT, - T_TRY, - T_UNSET, - T_USE, - T_VAR, - T_WHILE, - T_YIELD, - T_YIELD_FROM, + $targets = Tokens::$contextSensitiveKeywords; + $targets += [ + T_CLOSURE => T_CLOSURE, + T_EMPTY => T_EMPTY, + T_ENUM_CASE => T_ENUM_CASE, + T_EVAL => T_EVAL, + T_ISSET => T_ISSET, + T_MATCH_DEFAULT => T_MATCH_DEFAULT, + T_PARENT => T_PARENT, + T_SELF => T_SELF, + T_UNSET => T_UNSET, ]; + return $targets; + }//end register() @@ -122,7 +63,7 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->recordMetric($stackPtr, 'PHP keyword case', 'mixed'); } - $messageKeyword = Util\Common::prepareForOutput($keyword); + $messageKeyword = Common::prepareForOutput($keyword); $error = 'PHP keywords must be lowercase; expected "%s" but found "%s"'; $data = [ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseTypeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseTypeSniff.php index a738c30d6..1b085853e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseTypeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/LowerCaseTypeSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -37,21 +37,24 @@ class LowerCaseTypeSniff implements Sniff 'mixed' => true, 'static' => true, 'false' => true, + 'true' => true, 'null' => true, + 'never' => true, ]; /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { $tokens = Tokens::$castTokens; + $tokens += Tokens::$ooScopeTokens; $tokens[] = T_FUNCTION; $tokens[] = T_CLOSURE; - $tokens[] = T_VARIABLE; + $tokens[] = T_FN; return $tokens; }//end register() @@ -84,36 +87,111 @@ public function process(File $phpcsFile, $stackPtr) } /* - * Check property types. + * Check OO constant and property types. */ - if ($tokens[$stackPtr]['code'] === T_VARIABLE) { - try { - $props = $phpcsFile->getMemberProperties($stackPtr); - } catch (RuntimeException $e) { - // Not an OO property. + if (isset(Tokens::$ooScopeTokens[$tokens[$stackPtr]['code']]) === true) { + if (isset($tokens[$stackPtr]['scope_opener'], $tokens[$stackPtr]['scope_closer']) === false) { return; } - // Strip off potential nullable indication. - $type = ltrim($props['type'], '?'); + for ($i = ($tokens[$stackPtr]['scope_opener'] + 1); $i < $tokens[$stackPtr]['scope_closer']; $i++) { + // Skip over potentially large docblocks. + if ($tokens[$i]['code'] === T_DOC_COMMENT_OPEN_TAG + && isset($tokens[$i]['comment_closer']) === true + ) { + $i = $tokens[$i]['comment_closer']; + continue; + } - if ($type !== '') { - $error = 'PHP property type declarations must be lowercase; expected "%s" but found "%s"'; - $errorCode = 'PropertyTypeFound'; + // Skip over function declarations and everything nested within. + if ($tokens[$i]['code'] === T_FUNCTION + && isset($tokens[$i]['scope_closer']) === true + ) { + $i = $tokens[$i]['scope_closer']; + continue; + } - if (strpos($type, '|') !== false) { - $this->processUnionType( - $phpcsFile, - $props['type_token'], - $props['type_end_token'], - $error, - $errorCode - ); - } else if (isset($this->phpTypes[strtolower($type)]) === true) { - $this->processType($phpcsFile, $props['type_token'], $type, $error, $errorCode); + if ($tokens[$i]['code'] === T_CONST) { + $ignore = Tokens::$emptyTokens; + $ignore[T_NULLABLE] = T_NULLABLE; + + $startOfType = $phpcsFile->findNext($ignore, ($i + 1), null, true); + if ($startOfType === false) { + // Parse error/live coding. Nothing to do. Rest of loop is moot. + return; + } + + $assignmentOperator = $phpcsFile->findNext([T_EQUAL, T_SEMICOLON], ($startOfType + 1)); + if ($assignmentOperator === false || $tokens[$assignmentOperator]['code'] !== T_EQUAL) { + // Parse error/live coding. Nothing to do. Rest of loop is moot. + return; + } + + $constName = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($assignmentOperator - 1), null, true); + if ($startOfType !== $constName) { + $endOfType = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($constName - 1), null, true); + + $error = 'PHP constant type declarations must be lowercase; expected "%s" but found "%s"'; + $errorCode = 'ConstantTypeFound'; + + if ($startOfType !== $endOfType) { + // Multi-token type. + $this->processUnionType( + $phpcsFile, + $startOfType, + $endOfType, + $error, + $errorCode + ); + } else { + $type = $tokens[$startOfType]['content']; + if (isset($this->phpTypes[strtolower($type)]) === true) { + $this->processType($phpcsFile, $startOfType, $type, $error, $errorCode); + } + } + }//end if + + continue; + }//end if + + if ($tokens[$i]['code'] !== T_VARIABLE) { + continue; } - } + + try { + $props = $phpcsFile->getMemberProperties($i); + } catch (RuntimeException $e) { + // Not an OO property. + continue; + } + + if (empty($props) === true) { + // Parse error - property in interface or enum. Ignore. + return; + } + + // Strip off potential nullable indication. + $type = ltrim($props['type'], '?'); + + if ($type !== '') { + $error = 'PHP property type declarations must be lowercase; expected "%s" but found "%s"'; + $errorCode = 'PropertyTypeFound'; + + if ($props['type_token'] !== $props['type_end_token']) { + // Multi-token type. + $this->processUnionType( + $phpcsFile, + $props['type_token'], + $props['type_end_token'], + $error, + $errorCode + ); + } else if (isset($this->phpTypes[strtolower($type)]) === true) { + $this->processType($phpcsFile, $props['type_token'], $type, $error, $errorCode); + } + } + }//end for return; }//end if @@ -131,7 +209,8 @@ public function process(File $phpcsFile, $stackPtr) $error = 'PHP return type declarations must be lowercase; expected "%s" but found "%s"'; $errorCode = 'ReturnTypeFound'; - if (strpos($returnType, '|') !== false) { + if ($props['return_type_token'] !== $props['return_type_end_token']) { + // Multi-token type. $this->processUnionType( $phpcsFile, $props['return_type_token'], @@ -161,7 +240,8 @@ public function process(File $phpcsFile, $stackPtr) $error = 'PHP parameter type declarations must be lowercase; expected "%s" but found "%s"'; $errorCode = 'ParamTypeFound'; - if (strpos($typeHint, '|') !== false) { + if ($param['type_hint_token'] !== $param['type_hint_end_token']) { + // Multi-token type. $this->processUnionType( $phpcsFile, $param['type_hint_token'], @@ -179,7 +259,9 @@ public function process(File $phpcsFile, $stackPtr) /** - * Processes a union type declaration. + * Processes a multi-token type declaration. + * + * {@internal The method name is superseded by the reality, but changing it would be a BC-break.} * * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. * @param int $typeDeclStart The position of the start of the type token. @@ -191,37 +273,51 @@ public function process(File $phpcsFile, $stackPtr) */ protected function processUnionType(File $phpcsFile, $typeDeclStart, $typeDeclEnd, $error, $errorCode) { - $tokens = $phpcsFile->getTokens(); - $current = $typeDeclStart; - - do { - $endOfType = $phpcsFile->findNext(T_TYPE_UNION, $current, $typeDeclEnd); - if ($endOfType === false) { - // This must be the last type in the union. - $endOfType = ($typeDeclEnd + 1); - } + $tokens = $phpcsFile->getTokens(); + $typeTokenCount = 0; + $typeStart = null; + $type = ''; - $hasNsSep = $phpcsFile->findNext(T_NS_SEPARATOR, $current, $endOfType); - if ($hasNsSep !== false) { - // Multi-token class based type. Ignore. - $current = ($endOfType + 1); + for ($i = $typeDeclStart; $i <= $typeDeclEnd; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { continue; } - // Type consisting of a single token. - $startOfType = $phpcsFile->findNext(Tokens::$emptyTokens, $current, $endOfType, true); - if ($startOfType === false) { - // Parse error. - return; + if ($tokens[$i]['code'] === T_TYPE_UNION + || $tokens[$i]['code'] === T_TYPE_INTERSECTION + || $tokens[$i]['code'] === T_TYPE_OPEN_PARENTHESIS + || $tokens[$i]['code'] === T_TYPE_CLOSE_PARENTHESIS + ) { + if ($typeTokenCount === 1 + && $type !== '' + && isset($this->phpTypes[strtolower($type)]) === true + ) { + $this->processType($phpcsFile, $typeStart, $type, $error, $errorCode); + } + + // Reset for the next type in the type string. + $typeTokenCount = 0; + $typeStart = null; + $type = ''; + + continue; } - $type = $tokens[$startOfType]['content']; - if (isset($this->phpTypes[strtolower($type)]) === true) { - $this->processType($phpcsFile, $startOfType, $type, $error, $errorCode); + if (isset($typeStart) === false) { + $typeStart = $i; } - $current = ($endOfType + 1); - } while ($current <= $typeDeclEnd); + ++$typeTokenCount; + $type .= $tokens[$i]['content']; + }//end for + + // Handle type at end of type string. + if ($typeTokenCount === 1 + && $type !== '' + && isset($this->phpTypes[strtolower($type)]) === true + ) { + $this->processType($phpcsFile, $typeStart, $type, $error, $errorCode); + } }//end processUnionType() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php index 14dfaa721..87bf11c41 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php @@ -11,7 +11,7 @@ * * @author Andy Brockhurst <abrock@yahoo-inc.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -33,7 +33,7 @@ class NoSilencedErrorsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/RequireStrictTypesSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/RequireStrictTypesSniff.php index bffe7439c..8e6ef33ed 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/RequireStrictTypesSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/RequireStrictTypesSniff.php @@ -4,13 +4,14 @@ * * @author Sertan Danis <sdanis@squiz.net> * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; +use PHP_CodeSniffer\Util\Tokens; class RequireStrictTypesSniff implements Sniff { @@ -19,7 +20,7 @@ class RequireStrictTypesSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -40,23 +41,61 @@ public function register() public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); - $declare = $phpcsFile->findNext(T_DECLARE, $stackPtr); - $found = false; + $declare = $phpcsFile->findNext(T_DECLARE, ($stackPtr + 1)); + + $found = false; if ($declare !== false) { - $nextString = $phpcsFile->findNext(T_STRING, $declare); + if (isset($tokens[$declare]['parenthesis_opener'], $tokens[$declare]['parenthesis_closer']) === false) { + // Live coding, ignore for now. + return $phpcsFile->numTokens; + } + + $next = $tokens[$declare]['parenthesis_opener']; + + do { + $next = $phpcsFile->findNext( + Tokens::$emptyTokens, + ($next + 1), + $tokens[$declare]['parenthesis_closer'], + true + ); - if ($nextString !== false) { - if (strtolower($tokens[$nextString]['content']) === 'strict_types') { + if ($next !== false + && $tokens[$next]['code'] === T_STRING + && strtolower($tokens[$next]['content']) === 'strict_types' + ) { // There is a strict types declaration. $found = true; + break; } - } - } + + $next = $phpcsFile->findNext(T_COMMA, ($next + 1), $tokens[$declare]['parenthesis_closer']); + } while ($next !== false && $next < $tokens[$declare]['parenthesis_closer']); + }//end if if ($found === false) { $error = 'Missing required strict_types declaration'; $phpcsFile->addError($error, $stackPtr, 'MissingDeclaration'); + + return $phpcsFile->numTokens; + } + + // Strict types declaration found, make sure strict types is enabled. + $skip = Tokens::$emptyTokens; + $skip[] = T_EQUAL; + $valuePtr = $phpcsFile->findNext($skip, ($next + 1), null, true); + + if ($valuePtr !== false + && $tokens[$valuePtr]['code'] === T_LNUMBER + && $tokens[$valuePtr]['content'] === '0' + ) { + $error = 'Required strict_types declaration found, but strict types is disabled. Set the value to 1 to enable'; + $fix = $phpcsFile->addFixableWarning($error, $valuePtr, 'Disabled'); + + if ($fix === true) { + $phpcsFile->fixer->replaceToken($valuePtr, '1'); + } } // Skip the rest of the file so we don't pick up additional diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php index 19d58572c..54b6e69ee 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -19,7 +19,7 @@ class SAPIUsageSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SyntaxSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SyntaxSniff.php index 1519aa137..7297ebc13 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SyntaxSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/SyntaxSniff.php @@ -5,7 +5,7 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Blaine Schmeisser <blainesch@gmail.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; @@ -29,11 +29,14 @@ class SyntaxSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -45,7 +48,7 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -64,7 +67,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php index 54aa07f22..1a65f3c34 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php @@ -4,36 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\PHP; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Sniffs\Sniff; -class UpperCaseConstantSniff implements Sniff +class UpperCaseConstantSniff extends LowerCaseConstantSniff { /** - * Returns an array of tokens this test wants to listen for. - * - * @return array - */ - public function register() - { - return [ - T_TRUE, - T_FALSE, - T_NULL, - ]; - - }//end register() - - - /** - * Processes this sniff, when one of its tokens is encountered. + * Processes a non-type declaration constant. * * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the @@ -41,11 +24,12 @@ public function register() * * @return void */ - public function process(File $phpcsFile, $stackPtr) + protected function processConstant(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $keyword = $tokens[$stackPtr]['content']; $expected = strtoupper($keyword); + if ($keyword !== $expected) { if ($keyword === strtolower($keyword)) { $phpcsFile->recordMetric($stackPtr, 'PHP constant case', 'lower'); @@ -67,7 +51,7 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->recordMetric($stackPtr, 'PHP constant case', 'upper'); } - }//end process() + }//end processConstant() }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php index 82dae8fb0..ffaa1db12 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\Strings; @@ -47,7 +47,7 @@ class UnnecessaryStringConcatSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/GitMergeConflictSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/GitMergeConflictSniff.php index e25d556b8..67ca59ae9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/GitMergeConflictSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/GitMergeConflictSniff.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\VersionControl; @@ -30,11 +30,14 @@ class GitMergeConflictSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -46,7 +49,7 @@ public function register() * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -217,7 +220,7 @@ public function process(File $phpcsFile, $stackPtr) }//end for // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php index 3c3829a69..3e6c5fe1f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php @@ -4,7 +4,7 @@ * * @author Jack Bates <ms419@freezone.co.uk> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\VersionControl; @@ -34,7 +34,7 @@ class SubversionPropertiesSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -50,7 +50,7 @@ public function register() * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -58,7 +58,7 @@ public function process(File $phpcsFile, $stackPtr) $properties = $this->getProperties($path); if ($properties === null) { // Not under version control. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } $allProperties = ($properties + $this->properties); @@ -101,7 +101,7 @@ public function process(File $phpcsFile, $stackPtr) }//end foreach // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() @@ -113,7 +113,7 @@ public function process(File $phpcsFile, $stackPtr) * * @param string $path The path to return Subversion properties on. * - * @return array + * @return array|null * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If Subversion properties file could * not be opened. */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ArbitraryParenthesesSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ArbitraryParenthesesSpacingSniff.php index 09aea5436..0963cdf52 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ArbitraryParenthesesSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ArbitraryParenthesesSpacingSniff.php @@ -7,7 +7,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -45,7 +45,7 @@ class ArbitraryParenthesesSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -78,7 +78,7 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return void|int */ public function process(File $phpcsFile, $stackPtr) { @@ -103,7 +103,8 @@ public function process(File $phpcsFile, $stackPtr) $preOpener = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($opener - 1), null, true); if ($preOpener !== false && isset($this->ignoreTokens[$tokens[$preOpener]['code']]) === true - && isset($tokens[$preOpener]['scope_condition']) === false + && ($tokens[$preOpener]['code'] !== T_CLOSE_CURLY_BRACKET + || isset($tokens[$preOpener]['scope_condition']) === false ) ) { // Function or language construct call. return; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php index 4fe89e767..ca2daafca 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -37,11 +37,14 @@ class DisallowSpaceIndentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -53,7 +56,7 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -209,7 +212,7 @@ public function process(File $phpcsFile, $stackPtr) }//end for // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php index a50e9f92b..e230916ca 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -37,11 +37,14 @@ class DisallowTabIndentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -53,7 +56,7 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -73,6 +76,8 @@ public function process(File $phpcsFile, $stackPtr) T_DOC_COMMENT_WHITESPACE => true, T_DOC_COMMENT_STRING => true, T_COMMENT => true, + T_END_HEREDOC => true, + T_END_NOWDOC => true, ]; for ($i = 0; $i < $phpcsFile->numTokens; $i++) { @@ -179,7 +184,7 @@ public function process(File $phpcsFile, $stackPtr) }//end for // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/IncrementDecrementSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/IncrementDecrementSpacingSniff.php index 0ff30f444..25ba00153 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/IncrementDecrementSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/IncrementDecrementSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2018 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -30,7 +30,7 @@ class IncrementDecrementSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -63,7 +63,8 @@ public function process(File $phpcsFile, $stackPtr) // Is this a pre-increment/decrement ? $nextNonEmpty = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($nextNonEmpty !== false - && (($phpcsFile->tokenizerType === 'PHP' && $tokens[$nextNonEmpty]['code'] === T_VARIABLE) + && (($phpcsFile->tokenizerType === 'PHP' + && ($tokens[$nextNonEmpty]['code'] === T_VARIABLE || $tokens[$nextNonEmpty]['code'] === T_STRING)) || ($phpcsFile->tokenizerType === 'JS' && $tokens[$nextNonEmpty]['code'] === T_STRING)) ) { if ($nextNonEmpty === ($stackPtr + 1)) { @@ -116,7 +117,10 @@ public function process(File $phpcsFile, $stackPtr) // Is this a post-increment/decrement ? $prevNonEmpty = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); if ($prevNonEmpty !== false - && (($phpcsFile->tokenizerType === 'PHP' && $tokens[$prevNonEmpty]['code'] === T_VARIABLE) + && (($phpcsFile->tokenizerType === 'PHP' + && ($tokens[$prevNonEmpty]['code'] === T_VARIABLE + || $tokens[$prevNonEmpty]['code'] === T_STRING + || $tokens[$prevNonEmpty]['code'] === T_CLOSE_SQUARE_BRACKET)) || ($phpcsFile->tokenizerType === 'JS' && $tokens[$prevNonEmpty]['code'] === T_STRING)) ) { if ($prevNonEmpty === ($stackPtr - 1)) { @@ -131,7 +135,7 @@ public function process(File $phpcsFile, $stackPtr) $fixable = false; $spaces = 'comment'; } else { - if ($tokens[$stackPtr]['line'] !== $tokens[$nextNonEmpty]['line']) { + if ($tokens[$stackPtr]['line'] !== $tokens[$prevNonEmpty]['line']) { $spaces = 'newline'; } else { $spaces = $tokens[($stackPtr - 1)]['length']; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php index 068a4e7f2..462027d3d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2017 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -21,7 +21,7 @@ class LanguageConstructSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php index a01449197..151cb7d5c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -80,7 +80,7 @@ class ScopeIndentSniff implements Sniff * This is a cached copy of the public version of this var, which * can be set in a ruleset file, and some core ignored tokens. * - * @var int[] + * @var array<int|string, bool> */ private $ignoreIndentation = []; @@ -102,7 +102,7 @@ class ScopeIndentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -142,12 +142,13 @@ public function process(File $phpcsFile, $stackPtr) } } - $lastOpenTag = $stackPtr; - $lastCloseTag = null; - $openScopes = []; - $adjustments = []; - $setIndents = []; - $disableExactEnd = 0; + $lastOpenTag = $stackPtr; + $lastCloseTag = null; + $openScopes = []; + $adjustments = []; + $setIndents = []; + $disableExactStack = []; + $disableExactEnd = 0; $tokens = $phpcsFile->getTokens(); $first = $phpcsFile->findFirstOnLine(T_INLINE_HTML, $stackPtr); @@ -232,6 +233,7 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$i]['code'] === T_OPEN_PARENTHESIS && isset($tokens[$i]['parenthesis_closer']) === true ) { + $disableExactStack[$tokens[$i]['parenthesis_closer']] = $tokens[$i]['parenthesis_closer']; $disableExactEnd = max($disableExactEnd, $tokens[$i]['parenthesis_closer']); if ($this->debug === true) { $line = $tokens[$i]['line']; @@ -616,11 +618,11 @@ public function process(File $phpcsFile, $stackPtr) // Scope closers reset the required indent to the same level as the opening condition. if (($checkToken !== null - && isset($openScopes[$checkToken]) === true + && (isset($openScopes[$checkToken]) === true || (isset($tokens[$checkToken]['scope_condition']) === true && isset($tokens[$checkToken]['scope_closer']) === true && $tokens[$checkToken]['scope_closer'] === $checkToken - && $tokens[$checkToken]['line'] !== $tokens[$tokens[$checkToken]['scope_opener']]['line'])) + && $tokens[$checkToken]['line'] !== $tokens[$tokens[$checkToken]['scope_opener']]['line']))) || ($checkToken === null && isset($openScopes[$i]) === true) ) { @@ -802,9 +804,17 @@ public function process(File $phpcsFile, $stackPtr) && isset($tokens[$checkToken]['scope_opener']) === true ) { $exact = true; + if ($disableExactEnd > $checkToken) { - if ($tokens[$checkToken]['conditions'] === $tokens[$disableExactEnd]['conditions']) { - $exact = false; + foreach ($disableExactStack as $disableExactStackEnd) { + if ($disableExactStackEnd < $checkToken) { + continue; + } + + if ($tokens[$checkToken]['conditions'] === $tokens[$disableExactStackEnd]['conditions']) { + $exact = false; + break; + } } } @@ -1035,6 +1045,7 @@ public function process(File $phpcsFile, $stackPtr) // Don't check indents exactly between arrays as they tend to have custom rules. if ($tokens[$i]['code'] === T_OPEN_SHORT_ARRAY) { + $disableExactStack[$tokens[$i]['bracket_closer']] = $tokens[$i]['bracket_closer']; $disableExactEnd = max($disableExactEnd, $tokens[$i]['bracket_closer']); if ($this->debug === true) { $line = $tokens[$i]['line']; @@ -1056,7 +1067,6 @@ public function process(File $phpcsFile, $stackPtr) ) { if ($this->debug === true) { $line = $tokens[$i]['line']; - $type = $tokens[$disableExactEnd]['type']; echo "Here/nowdoc found on line $line".PHP_EOL; } @@ -1080,8 +1090,11 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$i]['code'] === T_CONSTANT_ENCAPSED_STRING || $tokens[$i]['code'] === T_DOUBLE_QUOTED_STRING ) { - $i = $phpcsFile->findNext($tokens[$i]['code'], ($i + 1), null, true); - $i--; + $nextNonTextString = $phpcsFile->findNext($tokens[$i]['code'], ($i + 1), null, true); + if ($nextNonTextString !== false) { + $i = ($nextNonTextString - 1); + } + continue; } @@ -1325,11 +1338,14 @@ public function process(File $phpcsFile, $stackPtr) continue; }//end if - // Closing an anon class or function. + // Closing an anon class, closure, or match. + // Each may be returned, which can confuse control structures that + // use return as a closer, like CASE statements. if (isset($tokens[$i]['scope_condition']) === true && $tokens[$i]['scope_closer'] === $i && ($tokens[$tokens[$i]['scope_condition']]['code'] === T_CLOSURE - || $tokens[$tokens[$i]['scope_condition']]['code'] === T_ANON_CLASS) + || $tokens[$tokens[$i]['scope_condition']]['code'] === T_ANON_CLASS + || $tokens[$tokens[$i]['scope_condition']]['code'] === T_MATCH) ) { if ($this->debug === true) { $type = str_replace('_', ' ', strtolower(substr($tokens[$tokens[$i]['scope_condition']]['type'], 2))); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/SpreadOperatorSpacingAfterSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/SpreadOperatorSpacingAfterSniff.php index 3146717e8..17708686a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/SpreadOperatorSpacingAfterSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/WhiteSpace/SpreadOperatorSpacingAfterSniff.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace; @@ -34,7 +34,7 @@ class SpreadOperatorSpacingAfterSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array<int|string> */ public function register() { @@ -54,14 +54,23 @@ public function register() */ public function process(File $phpcsFile, $stackPtr) { - $tokens = $phpcsFile->getTokens(); - $this->spacing = (int) $this->spacing; + $tokens = $phpcsFile->getTokens(); + $this->spacing = (int) $this->spacing; + $pluralizeSpace = 's'; + if ($this->spacing === 1) { + $pluralizeSpace = ''; + } $nextNonEmpty = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($nextNonEmpty === false) { return; } + if ($tokens[$nextNonEmpty]['code'] === T_CLOSE_PARENTHESIS) { + // Ignore PHP 8.1 first class callable syntax. + return; + } + if ($this->ignoreNewlines === true && $tokens[$stackPtr]['line'] !== $tokens[$nextNonEmpty]['line'] ) { @@ -76,8 +85,11 @@ public function process(File $phpcsFile, $stackPtr) $nextNonWhitespace = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); if ($nextNonEmpty !== $nextNonWhitespace) { - $error = 'Expected %s space(s) after the spread operator; comment found'; - $data = [$this->spacing]; + $error = 'Expected %s space%s after the spread operator; comment found'; + $data = [ + $this->spacing, + $pluralizeSpace, + ]; $phpcsFile->addError($error, $stackPtr, 'CommentFound', $data); if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { @@ -102,9 +114,10 @@ public function process(File $phpcsFile, $stackPtr) return; } - $error = 'Expected %s space(s) after the spread operator; %s found'; + $error = 'Expected %s space%s after the spread operator; %s found'; $data = [ $this->spacing, + $pluralizeSpace, $found, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc index af56fd497..06ebca78f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc @@ -98,3 +98,57 @@ $array = [ match ($test) { 1 => 'a', 2 => 'b' } => 'dynamic keys, woho!', ]; + +// Ensure that PHP 8.0 named parameters don't affect the sniff. +$array = [ + functionCall( + name: $value + ), +]; + +$array = [ + functionCall( + name: $value + ), +]; + +// phpcs:set Generic.Arrays.ArrayIndent indent 1 + +// Testing pluralization of indent text - open brace indent. + $var = +[ + 1 => 'one', +]; + +// Testing pluralization of indent text - array item indent. +$var = [ + 1 => 'one', + 2 => 'two', + /* three */ 3 => 'three', +]; + +// Testing pluralization of indent text - close brace indent. + $var = [ + 1 => 'one', + ]; + +// phpcs:set Generic.Arrays.ArrayIndent indent 0 + +// No test for open brace indent as that is _minimum_ and any actual value will be 0 or more, so with indent 0, this will never yield an error. + +// Testing pluralization of indent text - array item indent. +$var = [ + 1 => 'one', + 2 => 'two', + /* three */ 3 => 'three', +]; + +// Testing pluralization of indent text - close brace indent. +$var = [ +1 => 'one', + ]; + +// phpcs:set Generic.Arrays.ArrayIndent indent 4 + +$array = [1, +]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc.fixed index 495145956..03f508dbe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.inc.fixed @@ -99,3 +99,57 @@ $array = [ match ($test) { 1 => 'a', 2 => 'b' } => 'dynamic keys, woho!', ]; + +// Ensure that PHP 8.0 named parameters don't affect the sniff. +$array = [ + functionCall( + name: $value + ), +]; + +$array = [ + functionCall( + name: $value + ), +]; + +// phpcs:set Generic.Arrays.ArrayIndent indent 1 + +// Testing pluralization of indent text - open brace indent. + $var = + [ + 1 => 'one', + ]; + +// Testing pluralization of indent text - array item indent. +$var = [ + 1 => 'one', + 2 => 'two', + /* three */ 3 => 'three', +]; + +// Testing pluralization of indent text - close brace indent. + $var = [ + 1 => 'one', + ]; + +// phpcs:set Generic.Arrays.ArrayIndent indent 0 + +// No test for open brace indent as that is _minimum_ and any actual value will be 0 or more, so with indent 0, this will never yield an error. + +// Testing pluralization of indent text - array item indent. +$var = [ +1 => 'one', +2 => 'two', +/* three */ 3 => 'three', +]; + +// Testing pluralization of indent text - close brace indent. +$var = [ +1 => 'one', +]; + +// phpcs:set Generic.Arrays.ArrayIndent indent 4 + +$array = [1, +]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.php index 0b99f2d68..2c0f68de7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/ArrayIndentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Arrays; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ArrayIndentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ArrayIndent sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays\ArrayIndentSniff + */ +final class ArrayIndentUnitTest extends AbstractSniffUnitTest { @@ -26,24 +31,33 @@ class ArrayIndentUnitTest extends AbstractSniffUnitTest public function getErrorList() { return [ - 14 => 1, - 15 => 1, - 17 => 1, - 30 => 1, - 31 => 1, - 33 => 1, - 41 => 1, - 62 => 1, - 63 => 1, - 69 => 1, - 77 => 1, - 78 => 1, - 79 => 1, - 85 => 1, - 86 => 1, - 87 => 1, - 88 => 1, - 98 => 1, + 14 => 1, + 15 => 1, + 17 => 1, + 30 => 1, + 31 => 1, + 33 => 1, + 41 => 1, + 62 => 1, + 63 => 1, + 69 => 1, + 77 => 1, + 78 => 1, + 79 => 1, + 85 => 1, + 86 => 1, + 87 => 1, + 88 => 1, + 98 => 1, + 110 => 1, + 119 => 1, + 126 => 1, + 127 => 1, + 133 => 1, + 141 => 1, + 142 => 1, + 143 => 1, + 149 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc index 60c2ef96f..6855f02cb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc @@ -3,14 +3,13 @@ $var = array(); $var = [1,2,3]; $var = array(1,2,3); echo $var[1]; -$foo = array($var[1],$var[2]); +$foo = ARRAY($var[1],$var[2]); $foo = array( 1, 2, 3 ); $var = array/*comment*/(1,2,3); -$var = array; function foo(array $array) {} @@ -26,3 +25,9 @@ array_map( static fn (array $value): array => array_filter($value), [] ); + +class Foo { + function array() {} +} + +$obj->array( 1, 2, 3 ); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc.fixed index e37971f23..5e9930684 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.1.inc.fixed @@ -10,7 +10,6 @@ $foo = [ 3 ]; $var = /*comment*/[1,2,3]; -$var = array; function foo(array $array) {} @@ -26,3 +25,9 @@ array_map( static fn (array $value): array => array_filter($value), [] ); + +class Foo { + function array() {} +} + +$obj->array( 1, 2, 3 ); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.3.inc new file mode 100644 index 000000000..68020bdca --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.3.inc @@ -0,0 +1,7 @@ +<?php + +// Intentional parse error (long array syntax missing parentheses). +// This should be the only test in this file. +// Testing that the sniff is *not* triggered. + +$var = array diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.php index 029768106..18f12fe7d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowLongArraySyntaxUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Arrays; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowLongArraySyntaxUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowLongArraySyntax sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays\DisallowLongArraySyntaxSniff + */ +final class DisallowLongArraySyntaxUnitTest extends AbstractSniffUnitTest { @@ -35,13 +40,16 @@ public function getErrorList($testFile='') 6 => 1, 7 => 1, 12 => 1, - 13 => 1, ]; case 'DisallowLongArraySyntaxUnitTest.2.inc': return [ 2 => 1, 9 => 1, ]; + case 'DisallowLongArraySyntaxUnitTest.3.inc': + return [ + 7 => 1, + ]; default: return []; }//end switch diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowShortArraySyntaxUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowShortArraySyntaxUnitTest.php index 25c9666eb..af361f8b2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowShortArraySyntaxUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Arrays/DisallowShortArraySyntaxUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Arrays; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowShortArraySyntaxUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowShortArraySyntax sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays\DisallowShortArraySyntaxSniff + */ +final class DisallowShortArraySyntaxUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc index d0c136cbf..91ab9d397 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc @@ -5,7 +5,10 @@ interface MyInterface {} interface YourInterface {} trait MyTrait {} trait YourTrait {} +enum MyEnum {} +enum YourEnum {} class MyClass {} interface MyInterface {} trait MyTrait {} -?> \ No newline at end of file +enum MyEnum {} +?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.2.inc index e6f92eb13..6829748a5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.2.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.2.inc @@ -2,4 +2,5 @@ class MyClass {} interface MyInterface {} trait MyTrait {} +enum MyEnum {} ?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.php index b3b3edb50..48ebdb8e9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DuplicateClassNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DuplicateClassName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Classes\DuplicateClassNameSniff + */ +final class DuplicateClassNameUnitTest extends AbstractSniffUnitTest { @@ -45,30 +50,31 @@ public function getWarningList($testFile='') switch ($testFile) { case 'DuplicateClassNameUnitTest.1.inc': return [ - 8 => 1, - 9 => 1, 10 => 1, + 11 => 1, + 12 => 1, + 13 => 1, ]; - break; + case 'DuplicateClassNameUnitTest.2.inc': return [ 2 => 1, 3 => 1, 4 => 1, + 5 => 1, ]; - break; + case 'DuplicateClassNameUnitTest.5.inc': return [ 3 => 1, 7 => 1, ]; - break; + case 'DuplicateClassNameUnitTest.6.inc': return [10 => 1]; - break; + default: return []; - break; }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc index 8147b4c73..ce9a69f8d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc @@ -89,3 +89,12 @@ class Test_Class_Bad_G /*some comment*/ { } + +enum Test_Enum +{ +} + +class Test_Class_Good_D {} + +class Test_Class_Bad_H +{} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc.fixed index 406eb230f..0d5f6b63f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.inc.fixed @@ -89,3 +89,12 @@ class Test_Class_Bad_G /*some comment*/ { } + +enum Test_Enum { + +} + +class Test_Class_Good_D {} + +class Test_Class_Bad_H { +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.php index 61cd4c9e8..451af9b24 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Classes/OpeningBraceSameLineUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OpeningBraceSameLineUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OpeningBraceSameLine sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Classes\OpeningBraceSameLineSniff + */ +final class OpeningBraceSameLineUnitTest extends AbstractSniffUnitTest { @@ -27,17 +32,19 @@ public function getErrorList() { return [ - 19 => 2, - 23 => 1, - 28 => 2, - 34 => 1, - 38 => 1, - 41 => 1, - 44 => 1, - 47 => 1, - 70 => 1, - 79 => 1, - 90 => 1, + 19 => 2, + 23 => 1, + 28 => 2, + 34 => 1, + 38 => 1, + 41 => 1, + 44 => 1, + 47 => 1, + 70 => 1, + 79 => 1, + 90 => 1, + 94 => 1, + 100 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.2.inc new file mode 100644 index 000000000..123d7f3e9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.2.inc @@ -0,0 +1,4 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +if ($a == 123 diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.3.inc new file mode 100644 index 000000000..2349441f5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.3.inc @@ -0,0 +1,4 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +for ($i = 0; $i == 100; $i++ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.4.inc new file mode 100644 index 000000000..47d6ee64b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.4.inc @@ -0,0 +1,6 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +for ($i = 0) { + echo 'foo'; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.5.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.5.inc new file mode 100644 index 000000000..d45f40a67 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.5.inc @@ -0,0 +1,6 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +for ($i = 0; $i == 100) { + echo 'foo'; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.6.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.6.inc new file mode 100644 index 000000000..98d547fcc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.6.inc @@ -0,0 +1,5 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +switch ( true ) { + case $sample == 'something' diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.php index 3ed57d220..c7f23b524 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/AssignmentInConditionUnitTest.php @@ -4,14 +4,19 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class AssignmentInConditionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the AssignmentInCondition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\AssignmentInConditionSniff + */ +final class AssignmentInConditionUnitTest extends AbstractSniffUnitTest { @@ -36,46 +41,54 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 46 => 1, - 47 => 1, - 48 => 1, - 49 => 1, - 50 => 1, - 51 => 1, - 52 => 1, - 53 => 1, - 54 => 1, - 55 => 1, - 56 => 1, - 57 => 1, - 58 => 1, - 59 => 1, - 60 => 1, - 61 => 2, - 63 => 1, - 64 => 1, - 67 => 1, - 68 => 1, - 69 => 1, - 70 => 1, - 71 => 1, - 72 => 1, - 73 => 1, - 75 => 1, - 77 => 1, - 80 => 2, - 84 => 1, - 85 => 2, - 88 => 1, - 90 => 1, - 92 => 1, - 95 => 1, - ]; + switch ($testFile) { + case 'AssignmentInConditionUnitTest.1.inc': + return [ + 46 => 1, + 47 => 1, + 48 => 1, + 49 => 1, + 50 => 1, + 51 => 1, + 52 => 1, + 53 => 1, + 54 => 1, + 55 => 1, + 56 => 1, + 57 => 1, + 58 => 1, + 59 => 1, + 60 => 1, + 61 => 2, + 63 => 1, + 64 => 1, + 67 => 1, + 68 => 1, + 69 => 1, + 70 => 1, + 71 => 1, + 72 => 1, + 73 => 1, + 75 => 1, + 77 => 1, + 80 => 2, + 84 => 1, + 85 => 2, + 88 => 1, + 90 => 1, + 92 => 1, + 95 => 1, + ]; + + default: + return []; + }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc index 464b0e3d8..080dda938 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc @@ -1,7 +1,7 @@ <?php /* - * Test empty statement: two consecutive semi-colons without executable code between them. + * Test empty statement: two consecutive semicolons without executable code between them. */ function_call(); // OK. @@ -50,10 +50,10 @@ function_call(); <input name="<?= ; ?>" /> <!-- Bad. --> <?php -// Guard against false positives for two consecutive semi-colons in a for statement. +// Guard against false positives for two consecutive semicolons in a for statement. for ( $i = 0; ; $i++ ) {} -// Test for useless semi-colons +// Test for useless semicolons for ( $i = 0; ; $i++ ) {}; if (true) {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc.fixed index cc0f85e06..7f1674228 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.inc.fixed @@ -1,7 +1,7 @@ <?php /* - * Test empty statement: two consecutive semi-colons without executable code between them. + * Test empty statement: two consecutive semicolons without executable code between them. */ function_call(); // OK. @@ -45,10 +45,10 @@ function_call(); <input name="" /> <!-- Bad. --> <?php -// Guard against false positives for two consecutive semi-colons in a for statement. +// Guard against false positives for two consecutive semicolons in a for statement. for ( $i = 0; ; $i++ ) {} -// Test for useless semi-colons +// Test for useless semicolons for ( $i = 0; ; $i++ ) {} if (true) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.php index 23b3ec8fb..1b31b5f28 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyPHPStatementUnitTest.php @@ -1,17 +1,22 @@ <?php /** - * Unit test class for the EmptyStatement sniff. + * Unit test class for the EmptyPHPStatement sniff. * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EmptyPHPStatementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EmptyPHPStatement sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\EmptyPHPStatementSniff + */ +final class EmptyPHPStatementUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyStatementUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyStatementUnitTest.php index 4e00ada1c..8122aa2a5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyStatementUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/EmptyStatementUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EmptyStatementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EmptyStatement sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\EmptyStatementSniff + */ +final class EmptyStatementUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.1.inc new file mode 100644 index 000000000..3b47942a9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.1.inc @@ -0,0 +1,37 @@ +<?php +for ($i = 0; $i < 10; $i++) { + // Everything is fine +} + +for (; $it->valid();) { + $it->next(); +} + +for (;(($it1->valid() && $foo) || (!$it2->value && ($bar || false)));/*Could be ignored*/) { + $it1->next(); + $it2->next(); +} + +for ($i = 0, $j = 10; $i < $j; $i++, $j--) { + echo "i: $i, j: $j\n"; +} + +for (;;) { + if ($i >= 10) { + break; + } + echo $i++; +} + +for ($i = 0; $i < 10; $i++): ?> + <p><?php echo $i; ?></p> +<?php endfor; + +for ($i = 0, $len = count($array); $i < $len; $i++): + echo $array[$i]; +endfor; + +for (; $i < 10;): + echo $i; + $i++; +endfor; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.2.inc new file mode 100644 index 000000000..7735d1faf --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.2.inc @@ -0,0 +1,4 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +for diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.3.inc new file mode 100644 index 000000000..5502b6143 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.3.inc @@ -0,0 +1,6 @@ +<?php + +// Issue PHPCSStandards/PHP_CodeSniffer#226 +// Intentional parse error (missing close parenthesis). Testing that the sniff is *not* triggered +// in this case and that no PHP 8.3+ deprecation notice is thrown. +for ($i = 0; $i < 10; $i++ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.inc deleted file mode 100644 index cc69c6796..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.inc +++ /dev/null @@ -1,13 +0,0 @@ -<?php -for ($i = 0; $i < 10; $i++) { - // Everything is fine -} - -for (; $it->valid();) { - $it->next(); -} - -for (;(($it1->valid() && $foo) || (!$it2->value && ($bar || false)));/*Could be ignored*/) { - $it1->next(); - $it2->next(); -} \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.php index 1d9eddaa6..c118e3c7a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ForLoopShouldBeWhileLoopUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ForLoopShouldBeWhileLoop sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\ForLoopShouldBeWhileLoopSniff + */ +final class ForLoopShouldBeWhileLoopUnitTest extends AbstractSniffUnitTest { @@ -36,14 +41,22 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the test file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 6 => 1, - 10 => 1, - ]; + switch ($testFile) { + case 'ForLoopShouldBeWhileLoopUnitTest.1.inc': + return [ + 6 => 1, + 10 => 1, + 34 => 1, + ]; + default: + return []; + } }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.1.inc new file mode 100644 index 000000000..31f1a6419 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.1.inc @@ -0,0 +1,95 @@ +<?php + +$a = array(1, 2, 3, 4); +for ($i = 0; $i < count($a); $i++) { + $a[$i] *= $i; +} + +for ($i = 0, $c = sizeof($a); $i < $c; ++$i) { + $a[$i] *= $i; +} + +$it = new ArrayIterator($a); +for ($it->rewind(); $it->valid(); $it->next()) { + echo $it->current(); +} + +for ($i = 0; MyClass::staticMethod($value); $i++) { + echo $i; +} + +for ($i = 0; $countFunction($value); $i++) { + echo $i; +} + +$a = array(1, 2, 3, 4); +for ($i = 0; $i < count($a); $i++): + $a[$i] *= $i; +endfor; + +for ($i = 0, $c = sizeof($a); $i < $c; ++$i): + $a[$i] *= $i; +endfor; + +$it = new ArrayIterator($a); +for ($it->rewind(); $it->valid(); $it->next()): + echo $it->current(); +endfor; + +for ($i = 0; MyClass::staticMethod($value); $i++) : + echo $i; +endfor; + +for ($i = 0; $countFunction($value); $i++): + echo $i; +endfor; + +for ($i = 0; (new MyClass)->method(); $i++) { +} + +for (; $i < 10; ++$i) {} + +for (; count($a); ++$i) {} + +for ($i = 0;; ++$i) {} + +for ($i = 0; $i < 10;) {} + +for ($i = 0; count($a);) {} + +for (;; $i++) {} + +for ($i = 0;;) {} + +for (;;) {} + +for ($i = 0; (new MyClass)->method(); $i++): +endfor; + +for (; $i < 10; ++$i) : +endfor; + +for (; count($a); ++$i) : +endfor; + +for ($i = 0;; ++$i) : +endfor; + +for ($i = 0; $i < 10;) : +endfor; + +for ($i = 0; count($a);) : +endfor; + +for (;; $i++) : +endfor; + +for ($i = 0;;) : +endfor; + +for (;;) : +endfor; + +for ($i = 0; $i < 10; $i = increment($i)) {} + +for ($i = initialValue(); $i < 10; $i = increment($i)) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.2.inc new file mode 100644 index 000000000..54ef0a522 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.2.inc @@ -0,0 +1,5 @@ +<?php + +// Intentional parse error (missing open parenthesis). Testing that the sniff is *not* triggered +// in this case. +for diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.3.inc new file mode 100644 index 000000000..8bc6904e3 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.3.inc @@ -0,0 +1,6 @@ +<?php + +// Similar to issue PHPCSStandards/PHP_CodeSniffer#226 +// Intentional parse error (missing close parenthesis). Testing that the sniff is *not* triggered +// in this case and that no PHP 8.3+ deprecation notice is thrown. +for ($i = 0; $i < count($a); $i++ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.inc deleted file mode 100644 index ef51b5a1e..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.inc +++ /dev/null @@ -1,15 +0,0 @@ -<?php - -$a = array(1, 2, 3, 4); -for ($i = 0; $i < count($a); $i++) { - $a[$i] *= $i; -} - -for ($i = 0, $c = sizeof($a); $i < $c; ++$i) { - $a[$i] *= $i; -} - -$it = new ArrayIterator($a); -for ($it->rewind(); $it->valid(); $it->next()) { - echo $it->current(); -} \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.php index 60f00b5d9..04490c91f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ForLoopWithTestFunctionCallUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ForLoopWithTestFunctionCall sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\ForLoopWithTestFunctionCallSniff + */ +final class ForLoopWithTestFunctionCallUnitTest extends AbstractSniffUnitTest { @@ -36,14 +41,33 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the test file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 4 => 1, - 13 => 1, - ]; + switch ($testFile) { + case 'ForLoopWithTestFunctionCallUnitTest.1.inc': + return [ + 4 => 1, + 13 => 1, + 17 => 1, + 21 => 1, + 26 => 1, + 35 => 1, + 39 => 1, + 43 => 1, + 47 => 1, + 52 => 1, + 58 => 1, + 66 => 1, + 72 => 1, + 81 => 1, + ]; + default: + return []; + }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.1.inc new file mode 100644 index 000000000..966818420 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.1.inc @@ -0,0 +1,89 @@ +<?php + +for ($same = 0; $same < 20; $same++) { + for ($j = 0; $j < 5; $same += 2) { + for ($k = 0; $k > 3; $same++) { + + } + } +} + +for ($i = 0; $i < 20; $i++) { + for ($j = 0; $j < 5; $j += 2) { + for ($k = 0; $k > 3; $k++) { + + } + } +} + +for ($i = 0; $i < 20; $i++) { + for ($same = 0; $same < 5; $same += 2) { + for ($k = 0; $k > 3; $same++) { + + } + } +} + +for (; $i < 10; $i++) { + for ($j = 0;; $j++) { + if ($j > 5) { + break; + } + for (;; $k++) { + if ($k > 5) { + break; + } + } + } +} + +for (; $same < 10; $same++) { + for ($j = 0;; $same++) { + if ($j > 5) { + break; + } + for (;; $same++) { + if ($k > 5) { + break; + } + } + } +} + +for ($i = 0; $i < 20; $i++) : + for ($j = 0; $j < 5; $j += 2) : + endfor; +endfor; + +for ($same = 0; $same < 20; $same++) : + for ($j = 0; $j < 5; $same += 2) : + endfor; +endfor; + +// Sniff bails early when there is no incrementor in the third expression of the outer for loop. +for ($same = 0; $same < 10;) { + ++$same; + for ($j = 0; $j < 5; $same++) {} +} + +for ($i = 1, $same = 0; $i <= 10; $i++, $same++) { + for ($same = 0, $k = 0; $k < 5; $same++, $k++) {} +} + +for ($i = 20; $i > 0; $i--) { + for ($j = 5; $j > 0; $j -= 2) { + for ($k = 3; $k > 0; $k--) {} + } +} + +for ($same = 20; $same > 0; $same--) { + for ($j = 5; $j > 0; $same -= 2) { + for ($k = 3; $k > 0; $same--) {} + } +} + +for ($i = 0; $i < 20; $i++); + +for ($same = 0; $same < 20; $same++) { + for ($j = 0; $j < 20; $same++); +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.2.inc new file mode 100644 index 000000000..2324427bb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.2.inc @@ -0,0 +1,8 @@ +<?php + +// Intentional parse error (inner for loop missing closing parenthesis). +// This should be the only test in this file. +// Testing that the sniff is *not* triggered. +for ($i = 0; $i < 20; $i++) { + for ($i = 0; $i < 20; $i++ +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.3.inc new file mode 100644 index 000000000..80d4550c5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.3.inc @@ -0,0 +1,6 @@ +<?php + +// Intentional parse error (missing for conditions). +// This should be the only test in this file. +// Testing that the sniff is *not* triggered. +for diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.4.inc new file mode 100644 index 000000000..3e449f05e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.4.inc @@ -0,0 +1,8 @@ +<?php + +// Intentional parse error (inner for loop missing opening parenthesis). +// This should be the only test in this file. +// Testing that the sniff is *not* triggered. +for ($i = 0; $i < 20; $i++) { + for +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.inc deleted file mode 100644 index dc7b88e05..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.inc +++ /dev/null @@ -1,25 +0,0 @@ -<?php - -for ($i = 0; $i < 20; $i++) { - for ($j = 0; $j < 5; $i += 2) { - for ($k = 0; $k > 3; $i++) { - - } - } -} - -for ($i = 0; $i < 20; $i++) { - for ($j = 0; $j < 5; $j += 2) { - for ($k = 0; $k > 3; $k++) { - - } - } -} - -for ($i = 0; $i < 20; $i++) { - for ($j = 0; $j < 5; $j += 2) { - for ($k = 0; $k > 3; $j++) { - - } - } -} \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.php index d6f0e3d4a..0060efe62 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class JumbledIncrementerUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the JumbledIncrementer sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\JumbledIncrementerSniff + */ +final class JumbledIncrementerUnitTest extends AbstractSniffUnitTest { @@ -36,15 +41,30 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 3 => 2, - 4 => 1, - 20 => 1, - ]; + switch ($testFile) { + case 'JumbledIncrementerUnitTest.1.inc': + return [ + 3 => 2, + 4 => 1, + 20 => 1, + 40 => 2, + 41 => 1, + 58 => 1, + 69 => 1, + 79 => 2, + 80 => 1, + 87 => 1, + ]; + + default: + return []; + } }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceUnitTest.inc new file mode 100644 index 000000000..f46ab9081 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceUnitTest.inc @@ -0,0 +1,131 @@ +<?php + +if (true && true || true); // Not OK. +if ((true && true) || true); +if (true && (true || true)); + +$var = true && true || true; // Not OK. +$var = (true && true) || true; +$var = true && (true || true); + +$complex = true && (true || true) && true; +$complex = true && (true || true) || true; // Not OK. + +if ( + true + && true + || true // Not OK. +); + +if ( + true + && ( + true + || true + ) +); + +if (true && foo(true || true)); +if (true && foo(true && true || true)); // Not OK. +if (true && $foo[true || true]); +if (true && $foo[true && true || true]); // Not OK. + +if (true && foo(true) || true); // Not OK. +if (true && $foo[true] || true); // Not OK. +if (true && foo($foo[true]) || true); // Not OK. + +$foo[] = true && true || false; // Not OK. + +foo([true && true || false]); // Not OK. + +if (true && true || true && true); // Not OK. + +$foo = false || true && (#[\Attr(true && true || true)] function (#[\SensitiveParameter] $p) { // Not OK. + echo true || true && true; // Not OK. + + return true; +})('dummy') || false; // Not OK. + +$foo = false || (true && (#[\Attr((true && true) || true)] function (#[\SensitiveParameter] $p) { + echo (true || true) && true; + + return true; +})('dummy')) || false; + +$foo = true || true || (#[\Attr(true && true && true)] function (#[\SensitiveParameter] $p) { + echo true && true && true; + + return true; +})('dummy') || false; + +if (true && [true, callMe(), ${true || true}] || true); // Not OK. +if (true && [true, callMe(), ${true || true}] && true); + +for (true || true || true; true && true && true; true || true || true); +for (true || true && true; true && true || true; true || true && true); // Not OK. + +for ($a = true || true || true, $b = true && true && true; $a; $b); +for ($a = true || true && true, $b = true || true && true; $a; $b); // Not OK. + +$foo = true || true || true ? true && true && true : true || true || true; +$foo = true && true || true // Not OK. + ? true || true && true // Not OK. + : true || true && true; // Not OK. + +for(true || true || true, true && true && true); +for(true && true || true, true && true || true); // Not OK. + +(true && true and true); // Not OK. +(true && true or true); // Not OK. +(true and true or true); // Not OK. +(true and true xor true and true); // Not OK. + +if (true || true && true && true && true); // Not OK. + +match (true) { + // OK. + $a || ($b && $c) => true, +}; + +match (true) { + // Not OK. + $a || $b && $c => true, +}; + +match (true) { + // OK. + $a || $b => true, + $a && $b => true, +}; + +match (true) { + // Debatable. + $a || $b, $a && $b => true, +}; + +// OK. +$foo = fn ($a, $b, $c) => $a && ($b || $c); + +// Not OK. +$foo = fn ($a, $b, $c) => $a && $b || $c; + +// OK. +$foo = $a && (fn ($a, $b, $c) => $a || $b); + +// Debatable. +$foo = $a && fn ($a, $b, $c) => $a || $b; + +// OK. +\array_map( + fn ($a, $b, $c) => $a || $b, + $a && $b +); + +match (true) { + // Not OK. + $a || ($b && $c) && $d => true, + // Not OK. + $b && $c['a'] || $d => true, + // Not OK. + $b && ${$var} || $d => true, +}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceUnitTest.php new file mode 100644 index 000000000..db6642e32 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/RequireExplicitBooleanOperatorPrecedenceUnitTest.php @@ -0,0 +1,91 @@ +<?php +/** + * Unit test class for the RequireExplicitBooleanOperatorPrecedence sniff. + * + * @author Tim Duesterhus <duesterhus@woltlab.com> + * @copyright 2021-2023 WoltLab GmbH. + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; + +use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; + +/** + * Unit test class for the RequireExplicitBooleanOperatorPrecedence sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\RequireExplicitBooleanOperatorPrecedenceSniff + */ +final class RequireExplicitBooleanOperatorPrecedenceUnitTest extends AbstractSniffUnitTest +{ + + + /** + * Returns the lines where errors should occur. + * + * The key of the array should represent the line number and the value + * should represent the number of errors that should occur on that line. + * + * @return array<int, int> + */ + public function getErrorList() + { + return [ + 3 => 1, + 7 => 1, + 12 => 1, + 17 => 1, + 29 => 1, + 31 => 1, + 33 => 1, + 34 => 1, + 35 => 1, + 37 => 1, + 39 => 1, + 41 => 2, + 43 => 2, + 44 => 1, + 47 => 1, + 61 => 1, + 65 => 3, + 68 => 2, + 71 => 1, + 72 => 1, + 73 => 1, + 76 => 2, + 78 => 1, + 79 => 1, + 80 => 1, + 81 => 2, + 83 => 1, + 92 => 1, + 110 => 1, + 126 => 1, + 128 => 1, + 130 => 1, + + // Debatable. + 103 => 1, + 116 => 1, + ]; + + }//end getErrorList() + + + /** + * Returns the lines where warnings should occur. + * + * The key of the array should represent the line number and the value + * should represent the number of warnings that should occur on that line. + * + * @return array<int, int> + */ + public function getWarningList() + { + return []; + + }//end getWarningList() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.inc index 1d980ae26..0d220c96e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.inc @@ -10,4 +10,8 @@ if (true) { if (file_exists(__FILE__) === true) { -} \ No newline at end of file +} + +// Intentional parse error/live coding. +// This needs to be the last test in the file. +if(true diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.php index a99fdd8dd..b6e242d31 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UnconditionalIfStatementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UnconditionalIfStatement sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\UnconditionalIfStatementSniff + */ +final class UnconditionalIfStatementUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.1.inc new file mode 100644 index 000000000..d217d0736 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.1.inc @@ -0,0 +1,56 @@ +<?php + +class Foo { + public final function fooBar() {} + protected final function fool() {} + private final function Bar() {} +} + +final class Foo_Bar { + public $foobar; + public final $FOOBAR = 23; // Parse error, but that's not the concern of this sniff, so report it. + public final function fooBar() {} + + protected function foo() {} + protected final function fool() {} + + private function Bar() {} + private final function Bard() {} +} + +final class Bar_Foo { + public $foobar; + protected $foo; + private $bar; + + public function fooBar() {} + protected function foo() {} + private function Bar() {} +} + +final readonly class Foo_Bar { + public final function fooBar() {} + final protected function fool() {} +} + +final class Final_Class_Final_Constants { + final public const FINAL_PUBLIC_CONST = 23; + protected final const FINAL_PROTECTED_CONST = 'foo'; +} + +final class Final_Class_Regular_Constants { + public const PUBLIC_CONST = 23; + protected const PROTECTED_CONST = 'foo'; + private const PRIVATE_CONST = true; +} + +class Regular_Class_Final_Constants { + public final const FINAL_PUBLIC_CONST = 23; + final protected const FINAL_PROTECTED_CONST = 'foo'; +} + +class Regular_Class_Regular_Constants { + public const PUBLIC_CONST = 23; + protected const PROTECTED_CONST = 'foo'; + private const PRIVATE_CONST = true; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.2.inc new file mode 100644 index 000000000..d3636f480 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.2.inc @@ -0,0 +1,5 @@ +<?php + +// Intentional parse error (class without body). Testing that the sniff is *not* triggered +// in this case. +final class Missing_Body diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.inc deleted file mode 100644 index 0ba5df778..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.inc +++ /dev/null @@ -1,29 +0,0 @@ -<?php - -class Foo { - public final function fooBar() {} - protected final function fool() {} - private final function Bar() {} -} - -final class Foo_Bar { - public $foobar; - public final $FOOBAR = 23; // Parse error, but that's not the concern of this sniff, so report it. - public final function fooBar() {} - - protected function foo() {} - protected final function fool() {} - - private function Bar() {} - private final function Bard() {} -} - -final class Bar_Foo { - public $foobar; - protected $foo; - private $bar; - - public function fooBar() {} - protected function foo() {} - private function Bar() {} -} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.php index 732f30318..6557db434 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UnnecessaryFinalModifierUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UnnecessaryFinalModifier sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\UnnecessaryFinalModifierSniff + */ +final class UnnecessaryFinalModifierUnitTest extends AbstractSniffUnitTest { @@ -36,16 +41,27 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the test file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 11 => 1, - 12 => 1, - 15 => 1, - 18 => 1, - ]; + switch ($testFile) { + case 'UnnecessaryFinalModifierUnitTest.1.inc': + return [ + 11 => 1, + 12 => 1, + 15 => 1, + 18 => 1, + 32 => 1, + 33 => 1, + 37 => 1, + 38 => 1, + ]; + default: + return []; + } }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.1.inc new file mode 100644 index 000000000..f13253d30 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.1.inc @@ -0,0 +1,274 @@ +<?php + +function foo($a, $b) { + return $a * 2; +} + +function baz($a, $b) { + echo "baz({$a});"; +} + +function bar($a, $b) { + $x = $b; + for ($i = 0; $i <$a; $i++) { + $x += $a * $i; + } + return $x; +} + +function foobar($a, &$b) { + return (preg_match('/foo/', $a, $b) !== 0); +} + +class Foo implements Bar { + function barfoo($a, $b) { + // Empty body means interface method in many cases. + } + + function fooBar($a, $b) { + return; + } +} + +function foo($bar) +{ + print <<<BAZ + $bar +BAZ; +} + +function foo( $parameter ) { + $wango = <<<HERE +1 Must be a HEREdoc of at least one line +HERE; + $x = $parameter; // This line must be immediately after the HERE; with no intervening blank lines. + $tango = <<<HERE +1 Must be a HEREdoc +2 +3 +4 +5 +6 +7 +8 +9 at least 9 lines long +HERE; +} + +function foo( $parameter ) { + return <<<HTML +<?xml version="1.0"?> +<value>$parameter</value> +HTML; +} + +print foo( 'PARAMETER' ); +print "\n"; + +function foo($bar) +{ + print "${bar} things\n"; +} + +function bar($x) +{ + return 2 * ${x}; +} + +$foo = function ($a, $b) { + return $a * 2; +}; + +function foobar() { + return; +} + + +/* + * The function signature of methods in extended classes and implemented + * interfaces has to mirror the parent class/interface. + * The overloaded method may not use all params. + */ + +class MyClass { + public function something($a, $b) { + return $a * 2; + } +} + +class MyExtendedClass extends SomeClass { + public function something($a, $b) { + return $a * 2; + } +} + +class MyExtendedClass implements SomeInterface { + public function something($a, $b) { + return $a * 2; + } +} + + +/* + * Functions may not use all params passed to them. + * Report different violations for params *before* and *after* the last param used. + */ + +function something($a) { + return 'foobar'; +} + +function myCallback($a, $b, $c, $d) { + return $a * $c; +} + +fn ($a, $b, $c) => $b; + +// phpcs:set Generic.CodeAnalysis.UnusedFunctionParameter ignoreTypeHints[] Exception + +function oneParam(Exception $foo) { + return 'foobar'; +} + +function moreParamFirst(Exception $foo, LogicException $bar) { + return 'foobar' . $bar; +} + +function moreParamSecond(LogicException $bar, Exception $foo) { + return 'foobar' . $bar; +} +// phpcs:set Generic.CodeAnalysis.UnusedFunctionParameter ignoreTypeHints[] + +class ConstructorPropertyPromotionNoContentInMethod { + public function __construct(protected int $id) {} +} + +class ConstructorPropertyPromotionWithContentInMethod { + public function __construct(protected int $id, $toggle = true) { + if ($toggle === true) { + doSomething(); + } + } +} + +$found = in_array_cb($needle, $haystack, fn($array, $needle) => $array[2] === $needle); + + +/* + * Don't adjust the error code for closures and arrow functions in extended classes/classes implementing interfaces. + */ +class MyExtendedClass extends SomeClass { + public function something($a, $b) { + $c = $a + $b; + $closure = function ($c, $d) { + return $c * 2; + }; + } +} + +class MyExtendedClass implements SomeInterface { + public function something($a, $b) { + $c = $a + $b; + $fn = fn($c, $d) => $c[2]; + } +} + + +/** + * Magic methods must match the function signature dictated by PHP. + * Flagging unused parameters leads to notices which cannot be solved. + */ +class MagicMethodsWithParams { + public function __set(string $name, mixed $value) { + // Forbid dynamic properties & overloading inaccessible properties. + throw new RuntimeException('Forbidden'); + } + + public function __get(string $name) { + throw new RuntimeException('Forbidden'); + } + + public function __isset(string $name) { + throw new RuntimeException('Forbidden'); + } + + public function __unset(string $name) { + throw new RuntimeException('Forbidden'); + } + + public function __unserialize( array $data ) { + // Prevent unserializing from a stored representation of the object for security reasons. + $this->instance = new self(); + } + + public static function __set_state(array $properties) { + return new self(); + } + + public function __call(string $name, array $arguments) { + if (method_exists($this, $name)) { + // None of the methods which can be called in this class take arguments, so not passing them. + return $this->$name(); + } + } + + public static function __callStatic(string $name, array $arguments) { + if (method_exists($this, $name)) { + // None of the methods which can be called in this class take arguments, so not passing them. + return self::$name(); + } + } +} + +/** + * Unused parameters in magic methods which have flexible function signatures should still be flagged. + */ +class MagicMethodsWithParamsNotDictatedByPHP { + public $foo; + public function __construct($foo, $bar, $baz) { + $this->foo = $foo; + } + + public function __invoke($foo, $bar, $baz) { + $this->foo = $foo; + } +} + +/** + * Unused parameters in magic methods which have flexible function signatures + * where the method potentially overloads a parent method should still be flagged, + * but should use the `FoundInExtendedClassAfterLastUsed` error code. + */ +class MagicMethodsWithParamsNotDictatedByPHPInChildClass extends SomeParent{ + public $foo; + public function __construct($foo, $bar, $baz) { + $this->foo = $foo; + } + + public function __invoke($foo, $bar, $baz) { + $this->foo = $foo; + } +} + +/** + * Methods that throw an exception or return on the first line and are part + * of a class that implements an interface should not trigger the sniff. + */ +class InterfaceMethodNotImplement implements SomeInterface { + public function notImplemented($param) { + throw new Exception('Not implemented.'); + } + + public function notImplemented2($param) { + return 'Not implemented.'; + } +} + +/** + * Should trigger the sniff as this method is not part of an interface. + */ +class MethodThrowsException { + public function throwsException($param) { + throw new Exception(); + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.2.inc new file mode 100644 index 000000000..d39eefe30 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.2.inc @@ -0,0 +1,5 @@ +<?php + +// Intentional parse error (missing opening parenthesis). Testing that the sniff is *not* triggered +// in this case. +function syntaxError diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.3.inc new file mode 100644 index 000000000..a7dd9103d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.3.inc @@ -0,0 +1,5 @@ +<?php + +// Intentional parse error (missing opening bracket). Testing that the sniff is *not* triggered +// in this case. +function syntaxError() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.inc deleted file mode 100644 index d800d690f..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.inc +++ /dev/null @@ -1,154 +0,0 @@ -<?php - -function foo($a, $b) { - return $a * 2; -} - -function baz($a, $b) { - echo "baz({$a});"; -} - -function bar($a, $b) { - $x = $b; - for ($i = 0; $i <$a; $i++) { - $x += $a * $i; - } - return $x; -} - -function foobar($a, &$b) { - return (preg_match('/foo/', $a, $b) !== 0); -} - -class Foo implements Bar { - function barfoo($a, $b) { - // Empty body means interface method in many cases. - } - - function fooBar($a, $b) { - return; - } -} - -function foo($bar) -{ - print <<<BAZ - $bar -BAZ; -} - -function foo( $parameter ) { - $wango = <<<HERE -1 Must be a HEREdoc of at least one line -HERE; - $x = $parameter; // This line must be immediately after the HERE; with no intervening blank lines. - $tango = <<<HERE -1 Must be a HEREdoc -2 -3 -4 -5 -6 -7 -8 -9 at least 9 lines long -HERE; -} - -function foo( $parameter ) { - return <<<HTML -<?xml version="1.0"?> -<value>$parameter</value> -HTML; -} - -print foo( 'PARAMETER' ); -print "\n"; - -function foo($bar) -{ - print "${bar} things\n"; -} - -function bar($x) -{ - return 2 * ${x}; -} - -$foo = function ($a, $b) { - return $a * 2; -}; - -function foobar() { - return; -} - - -/* - * The function signature of methods in extended classes and implemented - * interfaces has to mirror the parent class/interface. - * The overloaded method may not use all params. - */ - -class MyClass { - public function something($a, $b) { - return $a * 2; - } -} - -class MyExtendedClass extends SomeClass { - public function something($a, $b) { - return $a * 2; - } -} - -class MyExtendedClass implements SomeInterface { - public function something($a, $b) { - return $a * 2; - } -} - - -/* - * Functions may not use all params passed to them. - * Report different violations for params *before* and *after* the last param used. - */ - -function something($a) { - return 'foobar'; -} - -function myCallback($a, $b, $c, $d) { - return $a * $c; -} - -fn ($a, $b, $c) => $b; - -// phpcs:set Generic.CodeAnalysis.UnusedFunctionParameter ignoreTypeHints[] Exception - -function oneParam(Exception $foo) { - return 'foobar'; -} - -function moreParamFirst(Exception $foo, LogicException $bar) { - return 'foobar' . $bar; -} - -function moreParamSecond(LogicException $bar, Exception $foo) { - return 'foobar' . $bar; -} -// phpcs:set Generic.CodeAnalysis.UnusedFunctionParameter ignoreTypeHints[] - -class ConstructorPropertyPromotionNoContentInMethod { - public function __construct(protected int $id) {} -} - -class ConstructorPropertyPromotionWithContentInMethod { - public function __construct(protected int $id, $toggle = true) { - if ($toggle === true) { - doSomething(); - } - } -} - -$found = in_array_cb($needle, $haystack, fn($array, $needle) => $array[2] === $needle); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.php index 063c72073..cb74345b4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UnusedFunctionParameterUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UnusedFunctionParameter sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\UnusedFunctionParameterSniff + */ +final class UnusedFunctionParameterUnitTest extends AbstractSniffUnitTest { @@ -36,21 +41,36 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 3 => 1, - 7 => 1, - 78 => 1, - 94 => 1, - 100 => 1, - 106 => 1, - 117 => 1, - 121 => 2, - 125 => 2, - ]; + switch ($testFile) { + case 'UnusedFunctionParameterUnitTest.1.inc': + return [ + 3 => 1, + 7 => 1, + 78 => 1, + 94 => 1, + 100 => 1, + 106 => 1, + 117 => 1, + 121 => 2, + 125 => 2, + 163 => 1, + 172 => 1, + 228 => 2, + 232 => 2, + 244 => 2, + 248 => 2, + 271 => 1, + ]; + + default: + return []; + }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.1.inc new file mode 100644 index 000000000..8cdd04d32 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.1.inc @@ -0,0 +1,150 @@ +<?php + +class FooBar { + public function __construct($a, $b) { + parent::__construct($a, $b); + } +} + +class BarFoo { + public function __construct($a, $b) { + parent::__construct($a, 'XML', $b); + } +} + +class Foo { + public function export($a, $b = null) { + return parent::export($a, $b); + } +} + +class Bar { + public function export($a, $b = null) { + return parent::export($a); + } + + public function ignoreNoParent($a, $b) { + return $a + $b; + } + + public function differentParentMethod($a, $b) { + return parent::anotherMethod($a, $b); + } + + public function methodCallWithExpression($a, $b) { + return parent::methodCallWithExpression(($a + $b), ($b)); + } + + public function uselessMethodCallWithExpression($a, $b) { + return parent::uselessMethodCallWithExpression(($a), ($b)); + } + + public function contentAfterCallingParent() { + parent::contentAfterCallingParent(); + + return 1; + } + + public function ignoreNoParentVoidMethod($a, $b) { + $c = $a + $b; + } + + public function modifiesParentReturnValue($a, $b) { + return parent::modifiesParentReturnValue($a, $b) + $b; + } + + public function uselessMethodCallTrailingComma($a) { + return parent::uselessMethodCallTrailingComma($a,); + } + + public function differentParameterOrder($a, $b) { + return parent::differentParameterOrder($b, $a); + } + + public function sameNumberDifferentParameters($a, $b) { + return parent::sameNumberDifferentParameters($this->prop[$a], $this->{$b}); + } + + public function differentCase() { + return parent::DIFFERENTcase(); + } + + public function differentCaseSameNonAnsiiCharáctêrs() { + // This should be flagged, only ASCII chars have changed case. + return parent::DIFFERENTcaseSameNonAnsiiCharáctêrs(); + } + + public function differentCaseDifferentNonAnsiiCharáctêrs() { + // This should not be flagged as non-ASCII chars have changed case, making this a different method name. + return parent::DIFFERENTcaseDifferentNonAnsiiCharÁctÊrs(); + } + + public function nestedFunctionShouldBailEarly() { + function nestedFunctionShouldBailEarly() { + // Invalid code needed to ensure an error is NOT triggered and the sniff bails early when handling nested function. + parent::nestedFunctionShouldBailEarly(); + } + } +} + +abstract class AbstractFoo { + abstract public function sniffShouldBailEarly(); + + public function uselessMethodInAbstractClass() { + parent::uselessMethodInAbstractClass(); + } + + public function usefulMethodInAbstractClass() { + $a = 1; + parent::usefulMethodInAbstractClass($a); + } +} + +interface InterfaceFoo { + public function sniffShouldBailEarly(); +} + +trait TraitFoo { + abstract public function sniffShouldBailEarly(); + + public function usefulMethodInTrait() { + parent::usefulMethodInTrait(); + + return 1; + } + + public function uselessMethodInTrait() { + return parent::uselessMethodInTrait(); + } +} + +enum EnumFoo { + public function sniffShouldBailEarly() { + // Invalid code needed to ensure an error is NOT triggered and the sniff bails early when handling an enum method. + parent::sniffShouldBailEarly(); + } +} + +function shouldBailEarly() { + // Invalid code needed to ensure an error is NOT triggered and the sniff bails early when handling a regular function. + parent::shouldBailEarly(); +} + +$anon = new class extends ParentClass { + public function uselessOverridingMethod() { + parent::uselessOverridingMethod(); + } + + public function usefulOverridingMethod() { + $a = 10; + parent::usefulOverridingMethod($a); + } +}; + +function foo() { + $anon = new class extends ParentClass { + public function uselessOverridingMethod() { + parent::uselessOverridingMethod(); + } + }; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.2.inc new file mode 100644 index 000000000..a1e82df7a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.2.inc @@ -0,0 +1,7 @@ +<?php + +// Intentional parse error (missing opening bracket). Testing that the sniff is *not* triggered +// in this case. + +class FooBar { + public function __construct() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.3.inc new file mode 100644 index 000000000..5f320a779 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.3.inc @@ -0,0 +1,10 @@ +<?php + +// Intentional parse error (missing double colon after parent keyword). Testing that the sniff is *not* triggered +// in this case. + +class FooBar { + public function __construct() { + parent + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.4.inc new file mode 100644 index 000000000..33cdcbe7c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.4.inc @@ -0,0 +1,10 @@ +<?php + +// Intentional parse error (missing parent method opening parenthesis). +// Testing that the sniff is *not* triggered in this case. + +class FooBar { + public function __construct() { + parent::__construct + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.5.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.5.inc new file mode 100644 index 000000000..c8b90862a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.5.inc @@ -0,0 +1,10 @@ +<?php + +// Intentional parse error (missing semicolon). +// Testing that the sniff is *not* triggered in this case. + +class FooBar { + public function __construct() { + parent::__construct() + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.6.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.6.inc new file mode 100644 index 000000000..186d4ae30 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.6.inc @@ -0,0 +1,10 @@ +<?php + +// Intentional parse error (missing closing parenthesis in parent method call). +// Testing that the sniff is *not* triggered in this case. + +class FooBar { + public function __construct() { + parent::__construct( + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.inc deleted file mode 100644 index f9fe67ca5..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.inc +++ /dev/null @@ -1,25 +0,0 @@ -<?php - -class FooBar { - public function __construct($a, $b) { - parent::__construct($a, $b); - } -} - -class BarFoo { - public function __construct($a, $b) { - parent::__construct($a, 'XML', $b); - } -} - -class Foo { - public function export($a, $b = null) { - return parent::export($a, $b); - } -} - -class Bar { - public function export($a, $b = null) { - return parent::export($a); - } -} \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.php index d6ea1d03b..2740a4018 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.php @@ -4,14 +4,19 @@ * * @author Manuel Pichler <mapi@manuel-pichler.de> * @copyright 2007-2014 Manuel Pichler. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\CodeAnalysis; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UselessOverridingMethodUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UselessOverridingMethod sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\UselessOverridingMethodSniff + */ +final class UselessOverridingMethodUnitTest extends AbstractSniffUnitTest { @@ -36,14 +41,29 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 4 => 1, - 16 => 1, - ]; + switch ($testFile) { + case 'UselessOverridingMethodUnitTest.1.inc': + return [ + 4 => 1, + 16 => 1, + 38 => 1, + 56 => 1, + 68 => 1, + 72 => 1, + 93 => 1, + 116 => 1, + 134 => 1, + 146 => 1, + ]; + default: + return []; + } }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.inc new file mode 100644 index 000000000..543dd2d6d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.inc @@ -0,0 +1,270 @@ +<?php +/** + * Short description. + * + * Long description + * over multiple lines. + * + * @tag1 one + * @tag2 two + * @tag3 three + */ + +/** + * short description + * + * long description + * over multiple lines. + * @tag1 one + */ + +/** + * + * Short description + * + * + * Long description + * over multiple lines + * + * + * @tag1 one + * + */ + +/* + This is not a doc block. + */ + +/** Short description. + * + * @tag one + * @tag2 two + * @tagThree three + * @tagFour four + */ + +/** + * Short description. + * + * @tag one + * + * @param + * @param + * + */ + +/** + * Short description. + * @param + * @param + * @tag one + */ + +/** + * Short description. + * + * + * @param + * + * @param + * + * + * @tag one + */ + +/** + * Short description. + * + * @param + * + * @tag one + * @param + */ + +/** + * Short description. + * + * @groupOne one + * @groupOne two + * + * @group2 one + * @group2 two + * + * + * @g3 + * @g3 two + */ + +/** + * Short description + * over multiple lines. + * + * Long description. + * + * @param + * + * @tag one + */ + +/** + * Short description. + * + * @tag1 one some comment across + * multiple lines + * @tag1 two some comment across + * multiple lines + * @tag1 three some comment across + * multiple lines + */ + +/** + * Returns true if the specified string is in the camel caps format. + * + * @param boolean $classFormat If true, check to see if the string is in the + * class format. Class format strings must start + * with a capital letter and contain no + * underscores. + * @param boolean $strict If true, the string must not have two capital + * letters next to each other. If false, a + * relaxed camel caps policy is used to allow + * for acronyms. + * + * @return boolean + */ + +/** + * Verifies that a @throws tag exists for a function that throws exceptions. + * Verifies the number of @throws tags and the number of throw tokens matches. + * Verifies the exception type. + * + * PHP version 5 + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Comment + * + * @one + * @two + * @one + * + * @two something + * here + * @two foo + * @three something + * here + * @three bar + */ + +/** + * @ var Comment + */ + +/** @var Database $mockedDatabase */ +/** @var Container $mockedContainer */ + +/** + * 这是一条测试评论. + */ + +/** + * I'm a function short-description + * @return boolean + */ + +/** + * this is a test + * @author test + * @param boolean $foo blah + * @return boolean + * @param boolean $bar Blah. + */ + +/** + * Short description. + * + * @tag one + * @param int $number + * @param string $text + * @return something + */ + +/** + * + * @param int $number + * @param string $text + * @return something + */ + +/** + * @param int $number + */ + +/** + * étude des ... + */ + +/**doc comment */ + + /** + * Document behaviour with missing blank lines with indented docblocks. + * @param + * @param + * @tag one + * + */ + + /** Indented doc comment */ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is "correctly" aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is incorrectly aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Do something. + * + * @codeCoverageIgnore + * + * @phpcs:disable Stnd.Cat.SniffName + * + * @return void + */ + +// Tests to check handling empty doc comments. +/** + */ + +/** + * + * + * + */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.inc.fixed new file mode 100644 index 000000000..6728780a0 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.inc.fixed @@ -0,0 +1,275 @@ +<?php +/** + * Short description. + * + * Long description + * over multiple lines. + * + * @tag1 one + * @tag2 two + * @tag3 three + */ + +/** + * short description + * + * long description + * over multiple lines. + * + * @tag1 one + */ + +/** + * Short description + * + * Long description + * over multiple lines + * + * @tag1 one + */ + +/* + This is not a doc block. + */ + +/** + * Short description. + * + * @tag one + * @tag2 two + * @tagThree three + * @tagFour four + */ + +/** + * Short description. + * + * @tag one + * + * @param + * @param + */ + +/** + * Short description. + * + * @param + * @param + * @tag one + */ + +/** + * Short description. + * + * @param + * + * @param + * + * @tag one + */ + +/** + * Short description. + * + * @param + * + * @tag one + * @param + */ + +/** + * Short description. + * + * @groupOne one + * @groupOne two + * + * @group2 one + * @group2 two + * + * @g3 + * @g3 two + */ + +/** + * Short description + * over multiple lines. + * + * Long description. + * + * @param + * + * @tag one + */ + +/** + * Short description. + * + * @tag1 one some comment across + * multiple lines + * @tag1 two some comment across + * multiple lines + * @tag1 three some comment across + * multiple lines + */ + +/** + * Returns true if the specified string is in the camel caps format. + * + * @param boolean $classFormat If true, check to see if the string is in the + * class format. Class format strings must start + * with a capital letter and contain no + * underscores. + * @param boolean $strict If true, the string must not have two capital + * letters next to each other. If false, a + * relaxed camel caps policy is used to allow + * for acronyms. + * + * @return boolean + */ + +/** + * Verifies that a @throws tag exists for a function that throws exceptions. + * Verifies the number of @throws tags and the number of throw tokens matches. + * Verifies the exception type. + * + * PHP version 5 + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Comment + * + * @one + * @two + * @one + * + * @two something + * here + * @two foo + * @three something + * here + * @three bar + */ + +/** + * @ var Comment + */ + +/** + * @var Database $mockedDatabase +*/ +/** + * @var Container $mockedContainer +*/ + +/** + * 这是一条测试评论. + */ + +/** + * I'm a function short-description + * + * @return boolean + */ + +/** + * this is a test + * + * @author test + * @param boolean $foo blah + * @return boolean + * @param boolean $bar Blah. + */ + +/** + * Short description. + * + * @tag one + * @param int $number + * @param string $text + * @return something + */ + +/** + * + * @param int $number + * @param string $text + * @return something + */ + +/** + * @param int $number + */ + +/** + * étude des ... + */ + +/** +* doc comment +*/ + + /** + * Document behaviour with missing blank lines with indented docblocks. + * + * @param + * @param + * @tag one + */ + + /** + * Indented doc comment +*/ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is "correctly" aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is incorrectly aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Do something. + * + * @codeCoverageIgnore + * + * @phpcs:disable Stnd.Cat.SniffName + * + * @return void + */ + +// Tests to check handling empty doc comments. +/** + */ + +/** + * + * + * + */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.js b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.js new file mode 100644 index 000000000..bf914411a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.js @@ -0,0 +1,270 @@ + +/** + * Short description. + * + * Long description + * over multiple lines. + * + * @tag1 one + * @tag2 two + * @tag3 three + */ + +/** + * short description + * + * long description + * over multiple lines. + * @tag1 one + */ + +/** + * + * Short description + * + * + * Long description + * over multiple lines + * + * + * @tag1 one + * + */ + +/* + This is not a doc block. + */ + +/** Short description. + * + * @tag one + * @tag2 two + * @tagThree three + * @tagFour four + */ + +/** + * Short description. + * + * @tag one + * + * @param + * @param + * + */ + +/** + * Short description. + * @param + * @param + * @tag one + */ + +/** + * Short description. + * + * + * @param + * + * @param + * + * + * @tag one + */ + + /** + * Short description. + * + * @param + * + * @tag one + * @param + */ + +/** + * Short description. + * + * @groupOne one + * @groupOne two + * + * @group2 one + * @group2 two + * + * + * @g3 + * @g3 two + */ + + /** + * Short description + * over multiple lines. + * + * Long description. + * + * @param + * + * @tag one + */ + +/** + * Short description. + * + * @tag1 one some comment across + * multiple lines + * @tag1 two some comment across + * multiple lines + * @tag1 three some comment across + * multiple lines + */ + + /** + * Returns true if the specified string is in the camel caps format. + * + * @param boolean $classFormat If true, check to see if the string is in the + * class format. Class format strings must start + * with a capital letter and contain no + * underscores. + * @param boolean $strict If true, the string must not have two capital + * letters next to each other. If false, a + * relaxed camel caps policy is used to allow + * for acronyms. + * + * @return boolean + */ + + /** + * Verifies that a @throws tag exists for a function that throws exceptions. + * Verifies the number of @throws tags and the number of throw tokens matches. + * Verifies the exception type. + * + * PHP version 5 + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + + /** + * Comment + * + * @one + * @two + * @one + * + * @two something + * here + * @two foo + * @three something + * here + * @three bar + */ + + /** + * @ var Comment + */ + +/** @var Database $mockedDatabase */ +/** @var Container $mockedContainer */ + +/** + * 这是一条测试评论. + */ + +/** + * I'm a function short-description + * @return boolean + */ + +/** + * this is a test + * @author test + * @param boolean $foo blah + * @return boolean + * @param boolean $bar Blah. + */ + +/** + * Short description. + * + * @tag one + * @param int $number + * @param string $text + * @return something + */ + +/** + * + * @param int $number + * @param string $text + * @return something + */ + +/** + * @param int $number + */ + +/** + * étude des ... + */ + +/**doc comment */ + + /** + * Document behaviour with missing blank lines with indented docblocks. + * @param + * @param + * @tag one + * + */ + + /** Indented doc comment */ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is "correctly" aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is incorrectly aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Do something. + * + * @codeCoverageIgnore + * + * @phpcs:disable Stnd.Cat.SniffName + * + * @return void + */ + +// Tests to check handling empty doc comments. +/** + */ + +/** + * + * + * + */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.js.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.js.fixed new file mode 100644 index 000000000..133b67d3f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.1.js.fixed @@ -0,0 +1,275 @@ + +/** + * Short description. + * + * Long description + * over multiple lines. + * + * @tag1 one + * @tag2 two + * @tag3 three + */ + +/** + * short description + * + * long description + * over multiple lines. + * + * @tag1 one + */ + +/** + * Short description + * + * Long description + * over multiple lines + * + * @tag1 one + */ + +/* + This is not a doc block. + */ + +/** + * Short description. + * + * @tag one + * @tag2 two + * @tagThree three + * @tagFour four + */ + +/** + * Short description. + * + * @tag one + * + * @param + * @param + */ + +/** + * Short description. + * + * @param + * @param + * @tag one + */ + +/** + * Short description. + * + * @param + * + * @param + * + * @tag one + */ + + /** + * Short description. + * + * @param + * + * @tag one + * @param + */ + +/** + * Short description. + * + * @groupOne one + * @groupOne two + * + * @group2 one + * @group2 two + * + * @g3 + * @g3 two + */ + + /** + * Short description + * over multiple lines. + * + * Long description. + * + * @param + * + * @tag one + */ + +/** + * Short description. + * + * @tag1 one some comment across + * multiple lines + * @tag1 two some comment across + * multiple lines + * @tag1 three some comment across + * multiple lines + */ + + /** + * Returns true if the specified string is in the camel caps format. + * + * @param boolean $classFormat If true, check to see if the string is in the + * class format. Class format strings must start + * with a capital letter and contain no + * underscores. + * @param boolean $strict If true, the string must not have two capital + * letters next to each other. If false, a + * relaxed camel caps policy is used to allow + * for acronyms. + * + * @return boolean + */ + + /** + * Verifies that a @throws tag exists for a function that throws exceptions. + * Verifies the number of @throws tags and the number of throw tokens matches. + * Verifies the exception type. + * + * PHP version 5 + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + + /** + * Comment + * + * @one + * @two + * @one + * + * @two something + * here + * @two foo + * @three something + * here + * @three bar + */ + + /** + * @ var Comment + */ + +/** + * @var Database $mockedDatabase +*/ +/** + * @var Container $mockedContainer +*/ + +/** + * 这是一条测试评论. + */ + +/** + * I'm a function short-description + * + * @return boolean + */ + +/** + * this is a test + * + * @author test + * @param boolean $foo blah + * @return boolean + * @param boolean $bar Blah. + */ + +/** + * Short description. + * + * @tag one + * @param int $number + * @param string $text + * @return something + */ + +/** + * + * @param int $number + * @param string $text + * @return something + */ + +/** + * @param int $number + */ + +/** + * étude des ... + */ + +/** +* doc comment +*/ + + /** + * Document behaviour with missing blank lines with indented docblocks. + * + * @param + * @param + * @tag one + */ + + /** + * Indented doc comment +*/ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is "correctly" aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. + * The below is incorrectly aligned. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood <gsherwood@squiz.net> + * @author Marc McIntyre <mmcintyre@squiz.net> + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +/** + * Do something. + * + * @codeCoverageIgnore + * + * @phpcs:disable Stnd.Cat.SniffName + * + * @return void + */ + +// Tests to check handling empty doc comments. +/** + */ + +/** + * + * + * + */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.2.inc new file mode 100644 index 000000000..fc0698fa1 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.2.inc @@ -0,0 +1,6 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered +// in this case + +/** No docblock close tag. Must be last test without new line. \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.2.js b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.2.js new file mode 100644 index 000000000..0eaa135fb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.2.js @@ -0,0 +1,4 @@ +// Intentional parse error. Testing that the sniff is *not* triggered +// in this case + +/** No docblock close tag. Must be last test without new line. \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc deleted file mode 100644 index 81366272c..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc +++ /dev/null @@ -1,252 +0,0 @@ -<?php -/** - * Short description. - * - * Long description - * over multiple lines. - * - * @tag1 one - * @tag2 two - * @tag3 three - */ - -/** - * short description - * - * long description - * over multiple lines. - * @tag1 one - */ - -/** - * - * Short description - * - * - * Long description - * over multiple lines - * - * - * @tag1 one - * - */ - -/* - This is not a doc block. - */ - -/** Short description. - * - * @tag one - * @tag2 two - * @tagThree three - * @tagFour four - */ - -/** - * Short description. - * - * @tag one - * - * @param - * @param - * - */ - -/** - * Short description. - * @param - * @param - * @tag one - */ - -/** - * Short description. - * - * - * @param - * - * @param - * - * - * @tag one - */ - -/** - * Short description. - * - * @param - * - * @tag one - * @param - */ - -/** - * Short description. - * - * @groupOne one - * @groupOne two - * - * @group2 one - * @group2 two - * - * - * @g3 - * @g3 two - */ - -/** - * Short description - * over multiple lines. - * - * Long description. - * - * @param - * - * @tag one - */ - -/** - * Short description. - * - * @tag1 one some comment across - * multiple lines - * @tag1 two some comment across - * multiple lines - * @tag1 three some comment across - * multiple lines - */ - -/** - * Returns true if the specified string is in the camel caps format. - * - * @param boolean $classFormat If true, check to see if the string is in the - * class format. Class format strings must start - * with a capital letter and contain no - * underscores. - * @param boolean $strict If true, the string must not have two capital - * letters next to each other. If false, a - * relaxed camel caps policy is used to allow - * for acronyms. - * - * @return boolean - */ - -/** - * Verifies that a @throws tag exists for a function that throws exceptions. - * Verifies the number of @throws tags and the number of throw tokens matches. - * Verifies the exception type. - * - * PHP version 5 - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** - * Comment - * - * @one - * @two - * @one - * - * @two something - * here - * @two foo - * @three something - * here - * @three bar - */ - -/** - * @ var Comment - */ - -/** @var Database $mockedDatabase */ -/** @var Container $mockedContainer */ - -/** - * 这是一条测试评论. - */ - -/** - * I'm a function short-description - * @return boolean - */ - -/** - * this is a test - * @author test - * @param boolean $foo blah - * @return boolean - * @param boolean $bar Blah. - */ - -/** - * Short description. - * - * @tag one - * @param int $number - * @param string $text - * @return something - */ - -/** - * - * @param int $number - * @param string $text - * @return something - */ - -/** - * @param int $number - */ - -/** - * étude des ... - */ - -/**doc comment */ - - /** - * Document behaviour with missing blank lines with indented docblocks. - * @param - * @param - * @tag one - * - */ - - /** Indented doc comment */ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is "correctly" aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is incorrectly aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** No docblock close tag. Must be last test without new line. \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc.fixed deleted file mode 100644 index 43ce064a5..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc.fixed +++ /dev/null @@ -1,257 +0,0 @@ -<?php -/** - * Short description. - * - * Long description - * over multiple lines. - * - * @tag1 one - * @tag2 two - * @tag3 three - */ - -/** - * short description - * - * long description - * over multiple lines. - * - * @tag1 one - */ - -/** - * Short description - * - * Long description - * over multiple lines - * - * @tag1 one - */ - -/* - This is not a doc block. - */ - -/** - * Short description. - * - * @tag one - * @tag2 two - * @tagThree three - * @tagFour four - */ - -/** - * Short description. - * - * @tag one - * - * @param - * @param - */ - -/** - * Short description. - * - * @param - * @param - * @tag one - */ - -/** - * Short description. - * - * @param - * - * @param - * - * @tag one - */ - -/** - * Short description. - * - * @param - * - * @tag one - * @param - */ - -/** - * Short description. - * - * @groupOne one - * @groupOne two - * - * @group2 one - * @group2 two - * - * @g3 - * @g3 two - */ - -/** - * Short description - * over multiple lines. - * - * Long description. - * - * @param - * - * @tag one - */ - -/** - * Short description. - * - * @tag1 one some comment across - * multiple lines - * @tag1 two some comment across - * multiple lines - * @tag1 three some comment across - * multiple lines - */ - -/** - * Returns true if the specified string is in the camel caps format. - * - * @param boolean $classFormat If true, check to see if the string is in the - * class format. Class format strings must start - * with a capital letter and contain no - * underscores. - * @param boolean $strict If true, the string must not have two capital - * letters next to each other. If false, a - * relaxed camel caps policy is used to allow - * for acronyms. - * - * @return boolean - */ - -/** - * Verifies that a @throws tag exists for a function that throws exceptions. - * Verifies the number of @throws tags and the number of throw tokens matches. - * Verifies the exception type. - * - * PHP version 5 - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** - * Comment - * - * @one - * @two - * @one - * - * @two something - * here - * @two foo - * @three something - * here - * @three bar - */ - -/** - * @ var Comment - */ - -/** - * @var Database $mockedDatabase -*/ -/** - * @var Container $mockedContainer -*/ - -/** - * 这是一条测试评论. - */ - -/** - * I'm a function short-description - * - * @return boolean - */ - -/** - * this is a test - * - * @author test - * @param boolean $foo blah - * @return boolean - * @param boolean $bar Blah. - */ - -/** - * Short description. - * - * @tag one - * @param int $number - * @param string $text - * @return something - */ - -/** - * - * @param int $number - * @param string $text - * @return something - */ - -/** - * @param int $number - */ - -/** - * étude des ... - */ - -/** -* doc comment -*/ - - /** - * Document behaviour with missing blank lines with indented docblocks. - * - * @param - * @param - * @tag one - */ - - /** - * Indented doc comment -*/ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is "correctly" aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is incorrectly aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** No docblock close tag. Must be last test without new line. \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.js b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.js deleted file mode 100644 index b3283f785..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.js +++ /dev/null @@ -1,250 +0,0 @@ - -/** - * Short description. - * - * Long description - * over multiple lines. - * - * @tag1 one - * @tag2 two - * @tag3 three - */ - -/** - * short description - * - * long description - * over multiple lines. - * @tag1 one - */ - -/** - * - * Short description - * - * - * Long description - * over multiple lines - * - * - * @tag1 one - * - */ - -/* - This is not a doc block. - */ - -/** Short description. - * - * @tag one - * @tag2 two - * @tagThree three - * @tagFour four - */ - -/** - * Short description. - * - * @tag one - * - * @param - * @param - * - */ - -/** - * Short description. - * @param - * @param - * @tag one - */ - -/** - * Short description. - * - * - * @param - * - * @param - * - * - * @tag one - */ - - /** - * Short description. - * - * @param - * - * @tag one - * @param - */ - -/** - * Short description. - * - * @groupOne one - * @groupOne two - * - * @group2 one - * @group2 two - * - * - * @g3 - * @g3 two - */ - - /** - * Short description - * over multiple lines. - * - * Long description. - * - * @param - * - * @tag one - */ - -/** - * Short description. - * - * @tag1 one some comment across - * multiple lines - * @tag1 two some comment across - * multiple lines - * @tag1 three some comment across - * multiple lines - */ - - /** - * Returns true if the specified string is in the camel caps format. - * - * @param boolean $classFormat If true, check to see if the string is in the - * class format. Class format strings must start - * with a capital letter and contain no - * underscores. - * @param boolean $strict If true, the string must not have two capital - * letters next to each other. If false, a - * relaxed camel caps policy is used to allow - * for acronyms. - * - * @return boolean - */ - - /** - * Verifies that a @throws tag exists for a function that throws exceptions. - * Verifies the number of @throws tags and the number of throw tokens matches. - * Verifies the exception type. - * - * PHP version 5 - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - - /** - * Comment - * - * @one - * @two - * @one - * - * @two something - * here - * @two foo - * @three something - * here - * @three bar - */ - - /** - * @ var Comment - */ - -/** @var Database $mockedDatabase */ -/** @var Container $mockedContainer */ - -/** - * 这是一条测试评论. - */ - -/** - * I'm a function short-description - * @return boolean - */ - -/** - * this is a test - * @author test - * @param boolean $foo blah - * @return boolean - * @param boolean $bar Blah. - */ - -/** - * Short description. - * - * @tag one - * @param int $number - * @param string $text - * @return something - */ - -/** - * - * @param int $number - * @param string $text - * @return something - */ - -/** - * @param int $number - */ - -/** - * étude des ... - */ - -/**doc comment */ - - /** - * Document behaviour with missing blank lines with indented docblocks. - * @param - * @param - * @tag one - * - */ - - /** Indented doc comment */ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is "correctly" aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is incorrectly aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.js.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.js.fixed deleted file mode 100644 index 0df0687a2..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.js.fixed +++ /dev/null @@ -1,255 +0,0 @@ - -/** - * Short description. - * - * Long description - * over multiple lines. - * - * @tag1 one - * @tag2 two - * @tag3 three - */ - -/** - * short description - * - * long description - * over multiple lines. - * - * @tag1 one - */ - -/** - * Short description - * - * Long description - * over multiple lines - * - * @tag1 one - */ - -/* - This is not a doc block. - */ - -/** - * Short description. - * - * @tag one - * @tag2 two - * @tagThree three - * @tagFour four - */ - -/** - * Short description. - * - * @tag one - * - * @param - * @param - */ - -/** - * Short description. - * - * @param - * @param - * @tag one - */ - -/** - * Short description. - * - * @param - * - * @param - * - * @tag one - */ - - /** - * Short description. - * - * @param - * - * @tag one - * @param - */ - -/** - * Short description. - * - * @groupOne one - * @groupOne two - * - * @group2 one - * @group2 two - * - * @g3 - * @g3 two - */ - - /** - * Short description - * over multiple lines. - * - * Long description. - * - * @param - * - * @tag one - */ - -/** - * Short description. - * - * @tag1 one some comment across - * multiple lines - * @tag1 two some comment across - * multiple lines - * @tag1 three some comment across - * multiple lines - */ - - /** - * Returns true if the specified string is in the camel caps format. - * - * @param boolean $classFormat If true, check to see if the string is in the - * class format. Class format strings must start - * with a capital letter and contain no - * underscores. - * @param boolean $strict If true, the string must not have two capital - * letters next to each other. If false, a - * relaxed camel caps policy is used to allow - * for acronyms. - * - * @return boolean - */ - - /** - * Verifies that a @throws tag exists for a function that throws exceptions. - * Verifies the number of @throws tags and the number of throw tokens matches. - * Verifies the exception type. - * - * PHP version 5 - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - - /** - * Comment - * - * @one - * @two - * @one - * - * @two something - * here - * @two foo - * @three something - * here - * @three bar - */ - - /** - * @ var Comment - */ - -/** - * @var Database $mockedDatabase -*/ -/** - * @var Container $mockedContainer -*/ - -/** - * 这是一条测试评论. - */ - -/** - * I'm a function short-description - * - * @return boolean - */ - -/** - * this is a test - * - * @author test - * @param boolean $foo blah - * @return boolean - * @param boolean $bar Blah. - */ - -/** - * Short description. - * - * @tag one - * @param int $number - * @param string $text - * @return something - */ - -/** - * - * @param int $number - * @param string $text - * @return something - */ - -/** - * @param int $number - */ - -/** - * étude des ... - */ - -/** -* doc comment -*/ - - /** - * Document behaviour with missing blank lines with indented docblocks. - * - * @param - * @param - * @tag one - */ - - /** - * Indented doc comment -*/ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is "correctly" aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ - -/** - * Verify and document sniff behaviour when the "tag value" is indented with a mix of tabs and spaces. - * The below is incorrectly aligned. - * - * @category PHP - * @package PHP_CodeSniffer - * @author Greg Sherwood <gsherwood@squiz.net> - * @author Marc McIntyre <mmcintyre@squiz.net> - * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - * @link http://pear.php.net/package/PHP_CodeSniffer - */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.php index 57937581b..78fdf44bc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DocCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DocCommentSniff sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Commenting\DocCommentSniff + */ +final class DocCommentUnitTest extends AbstractSniffUnitTest { @@ -36,59 +41,70 @@ public function setCliValues($testFile, $config) * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array(int => int) */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 14 => 1, - 16 => 1, - 18 => 1, - 23 => 1, - 26 => 1, - 30 => 1, - 32 => 1, - 38 => 2, - 40 => 1, - 41 => 1, - 51 => 1, - 54 => 1, - 58 => 1, - 60 => 2, - 67 => 1, - 69 => 2, - 80 => 1, - 81 => 2, - 88 => 1, - 91 => 1, - 95 => 1, - 156 => 1, - 158 => 1, - 170 => 3, - 171 => 3, - 179 => 1, - 183 => 1, - 184 => 2, - 185 => 1, - 186 => 1, - 187 => 2, - 193 => 1, - 196 => 1, - 199 => 1, - 203 => 1, - 206 => 1, - 211 => 1, - 214 => 4, - 218 => 1, - 220 => 2, - 222 => 1, - 224 => 3, - 243 => 1, - 244 => 1, - 246 => 1, - 248 => 1, - 249 => 1, - ]; + switch ($testFile) { + case 'DocCommentUnitTest.1.inc': + case 'DocCommentUnitTest.1.js': + return [ + 14 => 1, + 16 => 1, + 18 => 1, + 23 => 1, + 26 => 1, + 30 => 1, + 32 => 1, + 38 => 2, + 40 => 1, + 41 => 1, + 51 => 1, + 54 => 1, + 58 => 1, + 60 => 2, + 67 => 1, + 69 => 2, + 80 => 1, + 81 => 2, + 88 => 1, + 91 => 1, + 95 => 1, + 156 => 1, + 158 => 1, + 170 => 3, + 171 => 3, + 179 => 1, + 183 => 1, + 184 => 2, + 185 => 1, + 186 => 1, + 187 => 2, + 193 => 1, + 196 => 1, + 199 => 1, + 203 => 1, + 206 => 1, + 211 => 1, + 214 => 4, + 218 => 1, + 220 => 2, + 222 => 1, + 224 => 3, + 243 => 1, + 244 => 1, + 246 => 1, + 248 => 1, + 249 => 1, + 263 => 1, + 266 => 1, + ]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/FixmeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/FixmeUnitTest.php index e14ab316c..3b6cff531 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/FixmeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/FixmeUnitTest.php @@ -5,14 +5,19 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Sam Graham <php-codesniffer@illusori.co.uk> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FixmeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Fixme sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Commenting\FixmeSniff + */ +final class FixmeUnitTest extends AbstractSniffUnitTest { @@ -22,11 +27,9 @@ class FixmeUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * - * @param string $testFile The name of the file being tested. - * * @return array<int, int> */ - public function getErrorList($testFile='FixmeUnitTest.inc') + public function getErrorList() { return [ 3 => 1, @@ -48,11 +51,9 @@ public function getErrorList($testFile='FixmeUnitTest.inc') * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * - * @param string $testFile The name of the file being tested. - * * @return array<int, int> */ - public function getWarningList($testFile='FixmeUnitTest.inc') + public function getWarningList() { return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/TodoUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/TodoUnitTest.php index 4864b9373..e617aff92 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/TodoUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Commenting/TodoUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class TodoUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Todo sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Commenting\TodoSniff + */ +final class TodoUnitTest extends AbstractSniffUnitTest { @@ -21,11 +26,9 @@ class TodoUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * - * @param string $testFile The name of the file being tested. - * * @return array<int, int> */ - public function getErrorList($testFile='TodoUnitTest.inc') + public function getErrorList() { return []; @@ -38,11 +41,9 @@ public function getErrorList($testFile='TodoUnitTest.inc') * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * - * @param string $testFile The name of the file being tested. - * * @return array<int, int> */ - public function getWarningList($testFile='TodoUnitTest.inc') + public function getWarningList() { return [ 3 => 1, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.inc index ce458d842..27053c4d6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.inc @@ -173,3 +173,15 @@ echo match ($text) { 'foo' => 10 === $y, 10 === $y => 'bar', }; + +1 ?? $nullCoalescingShouldNotTriggerSniff; + +1 + 2 === $sniffBailsArithmeticToken; + +'string' . 'concat' === $sniffBailsStringConcatToken; + +1 != $value; +1 <> $value; +1 >= $value; +1 <= $value; +1 <=> $value; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.php index c558ae8f6..64a487d51 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/DisallowYodaConditionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowYodaConditionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowYodaConditions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures\DisallowYodaConditionsSniff + */ +final class DisallowYodaConditionsUnitTest extends AbstractSniffUnitTest { @@ -62,6 +67,11 @@ public function getErrorList() 167 => 1, 173 => 1, 174 => 1, + 183 => 1, + 184 => 1, + 185 => 1, + 186 => 1, + 187 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc index 1a6ab6900..739ba40a6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc @@ -253,3 +253,26 @@ for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); if ($this->valid(fn(): bool => 2 > 1)) { } + +// Issue 3345. +function testMultiCatch() +{ + if (true) + try { + } catch (\LogicException $e) { + } catch (\Exception $e) { + } +} + +function testFinally() +{ + if (true) + try { + } catch (\LogicException $e) { + } finally { + } +} + +if ($something) { + echo 'hello'; +} else /* comment */ if ($somethingElse) echo 'hi'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc.fixed index 4cd8ee4d6..9a89b0e38 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.1.inc.fixed @@ -286,3 +286,29 @@ for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); if ($this->valid(fn(): bool => 2 > 1)) { } + +// Issue 3345. +function testMultiCatch() +{ + if (true) { + try { + } catch (\LogicException $e) { + } catch (\Exception $e) { + } + } +} + +function testFinally() +{ + if (true) { + try { + } catch (\LogicException $e) { + } finally { + } + } +} + +if ($something) { + echo 'hello'; +} else /* comment */ if ($somethingElse) { echo 'hi'; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js index 4d3b1e8aa..ca6dae13a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js @@ -29,3 +29,7 @@ if ($("#myid").rotationDegrees()=='90') if ($("#myid").rotationDegrees()=='90') $foo = {'transform': 'rotate(90deg)'}; + +if (something) { + alert('hello'); +} else /* comment */ if (somethingElse) alert('hi'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js.fixed index 8f0c413e7..d410cfb12 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js.fixed @@ -37,3 +37,8 @@ if ($("#myid").rotationDegrees()=='90') { if ($("#myid").rotationDegrees()=='90') { $foo = {'transform': 'rotate(90deg)'}; } + +if (something) { + alert('hello'); +} else /* comment */ if (somethingElse) { alert('hi'); +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.php index 92888b858..5d42d1122 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InlineControlStructureUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InlineControlStructure sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures\InlineControlStructureSniff + */ +final class InlineControlStructureUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class InlineControlStructureUnitTest extends AbstractSniffUnitTest * * @return array<int, int> */ - public function getErrorList($testFile='InlineControlStructureUnitTest.1.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'InlineControlStructureUnitTest.1.inc': @@ -71,6 +76,9 @@ public function getErrorList($testFile='InlineControlStructureUnitTest.1.inc') 236 => 1, 238 => 1, 242 => 1, + 260 => 1, + 269 => 1, + 278 => 1, ]; case 'InlineControlStructureUnitTest.js': @@ -83,6 +91,7 @@ public function getErrorList($testFile='InlineControlStructureUnitTest.1.inc') 21 => 1, 27 => 1, 30 => 1, + 35 => 1, ]; default: diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/CSSLintUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/CSSLintUnitTest.php index 2b86facc1..83f875cb0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/CSSLintUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/CSSLintUnitTest.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Debug; @@ -12,14 +12,19 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class CSSLintUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CSSLint sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Debug\CSSLintSniff + */ +final class CSSLintUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ClosureLinterUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ClosureLinterUnitTest.php index 2d960f32d..6577f69df 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ClosureLinterUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ClosureLinterUnitTest.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Debug; @@ -12,14 +12,19 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class ClosureLinterUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClosureLinter sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Debug\ClosureLinterSniff + */ +final class ClosureLinterUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ESLintUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ESLintUnitTest.php index 0a079d148..e035c2088 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ESLintUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/ESLintUnitTest.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Debug; @@ -12,7 +12,12 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class ESLintUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ESLint sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Debug\ESLintSniff + */ +final class ESLintUnitTest extends AbstractSniffUnitTest { /** @@ -36,37 +41,41 @@ class ESLintUnitTest extends AbstractSniffUnitTest /** * Sets up this unit test. * + * @before + * * @return void */ - protected function setUp() + protected function setUpPrerequisites() { - parent::setUp(); + parent::setUpPrerequisites(); $cwd = getcwd(); file_put_contents($cwd.'/.eslintrc.json', self::ESLINT_CONFIG); - }//end setUp() + putenv('ESLINT_USE_FLAT_CONFIG=false'); + + }//end setUpPrerequisites() /** * Remove artifact. * + * @after + * * @return void */ - protected function tearDown() + protected function resetProperties() { - parent::tearDown(); - $cwd = getcwd(); unlink($cwd.'/.eslintrc.json'); - }//end tearDown() + }//end resetProperties() /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/JSHintUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/JSHintUnitTest.php index 618465a91..19c0473a8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/JSHintUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Debug/JSHintUnitTest.php @@ -4,7 +4,7 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Debug; @@ -12,20 +12,25 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class JSHintUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the JSHint sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Debug\JSHintSniff + */ +final class JSHintUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { $rhinoPath = Config::getExecutablePath('rhino'); $jshintPath = Config::getExecutablePath('jshint'); - if ($rhinoPath === null && $jshintPath === null) { + if ($jshintPath === null) { return true; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.1.inc new file mode 100644 index 000000000..e19cd7ec4 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.1.inc @@ -0,0 +1,4 @@ +<?php +// File in UTF-8 encoding with byte order mark (BOM) character before the opening PHP tag. +echo 'foo'; +?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.2.inc new file mode 100644 index 000000000..6d61f0e1e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.2.inc @@ -0,0 +1,3 @@ +<?php // File in UTF-8 encoding without a byte order mark (BOM) character before the opening PHP tag. ?> + +<p>Some HTML</p> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.3.inc new file mode 100644 index 000000000..ff1e2bf7d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.3.inc @@ -0,0 +1 @@ +<p>Some HTML at the beginning of an ANSI/iso-8859-1 encoded file without a byte order mark (BOM) character</p> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.4.inc new file mode 100644 index 000000000..312974a82 Binary files /dev/null and b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.4.inc differ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.5.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.5.inc new file mode 100644 index 000000000..7aea9550d Binary files /dev/null and b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.5.inc differ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.inc deleted file mode 100644 index dc3bf5967..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.inc +++ /dev/null @@ -1,3 +0,0 @@ -<?php -echo 'foo'; -?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.php index a95331d72..c1c3e292e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ByteOrderMarkUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ByteOrderMark sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\ByteOrderMarkSniff + */ +final class ByteOrderMarkUnitTest extends AbstractSniffUnitTest { @@ -21,11 +26,21 @@ class ByteOrderMarkUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='') { - return [1 => 1]; + switch ($testFile) { + case 'ByteOrderMarkUnitTest.1.inc': + case 'ByteOrderMarkUnitTest.4.inc': + case 'ByteOrderMarkUnitTest.5.inc': + return [1 => 1]; + + default: + return []; + } }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.6.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.6.inc new file mode 100644 index 000000000..4f2e47af9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.6.inc @@ -0,0 +1 @@ +<?= 'foo'; \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.6.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.6.inc.fixed new file mode 100644 index 000000000..1f8760929 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.6.inc.fixed @@ -0,0 +1 @@ +<?= 'foo'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.7.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.7.inc new file mode 100644 index 000000000..db6d1b893 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.7.inc @@ -0,0 +1 @@ +<?= 'foo' ?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.7.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.7.inc.fixed new file mode 100644 index 000000000..d3c19feeb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.7.inc.fixed @@ -0,0 +1 @@ +<?= 'foo' ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.8.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.8.inc new file mode 100644 index 000000000..d3c19feeb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.8.inc @@ -0,0 +1 @@ +<?= 'foo' ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.php index b97e8ab29..2db35a195 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EndFileNewlineUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EndFileNewline sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\EndFileNewlineSniff + */ +final class EndFileNewlineUnitTest extends AbstractSniffUnitTest { @@ -33,6 +38,9 @@ public function getErrorList($testFile='') case 'EndFileNewlineUnitTest.3.css': case 'EndFileNewlineUnitTest.4.inc': return [2 => 1]; + case 'EndFileNewlineUnitTest.6.inc': + case 'EndFileNewlineUnitTest.7.inc': + return [1 => 1]; default: return []; }//end switch diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.10.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.10.inc new file mode 100644 index 000000000..884aad1b3 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.10.inc @@ -0,0 +1 @@ +<?= 'foo'; ?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.8.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.8.inc new file mode 100644 index 000000000..1f8760929 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.8.inc @@ -0,0 +1 @@ +<?= 'foo'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.8.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.8.inc.fixed new file mode 100644 index 000000000..4f2e47af9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.8.inc.fixed @@ -0,0 +1 @@ +<?= 'foo'; \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.9.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.9.inc new file mode 100644 index 000000000..95de52c99 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.9.inc @@ -0,0 +1 @@ +<?= 'foo'; ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.9.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.9.inc.fixed new file mode 100644 index 000000000..884aad1b3 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.9.inc.fixed @@ -0,0 +1 @@ +<?= 'foo'; ?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.php index 23c9980b4..e41aa51bc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EndFileNoNewlineUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EndFileNoNewline sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\EndFileNoNewlineSniff + */ +final class EndFileNoNewlineUnitTest extends AbstractSniffUnitTest { @@ -37,6 +42,9 @@ public function getErrorList($testFile='') case 'EndFileNoNewlineUnitTest.2.js': case 'EndFileNoNewlineUnitTest.6.inc': return [2 => 1]; + case 'EndFileNoNewlineUnitTest.8.inc': + case 'EndFileNoNewlineUnitTest.9.inc': + return [1 => 1]; default: return []; }//end switch diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.3.inc new file mode 100644 index 000000000..ee44f5118 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.3.inc @@ -0,0 +1 @@ +<?= 'text' ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.4.inc new file mode 100644 index 000000000..ee44f5118 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.4.inc @@ -0,0 +1 @@ +<?= 'text' ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.php index f47fef6d3..86767a73b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/ExecutableFileUnitTest.php @@ -4,28 +4,31 @@ * * @author Matthew Peveler <matt.peveler@gmail.com> * @copyright 2019 Matthew Peveler - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ExecutableFileUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ExecutableFile sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\ExecutableFileSniff + */ +final class ExecutableFileUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { - // PEAR doesn't preserve the executable flag, so skip - // tests when running in a PEAR install. - // Also skip on Windows which doesn't have the concept of executable files. - return ($GLOBALS['PHP_CODESNIFFER_PEAR'] || (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')); + // Skip on Windows which doesn't have the concept of executable files. + return (stripos(PHP_OS, 'WIN') === 0); }//end shouldSkipTest() @@ -44,6 +47,7 @@ public function getErrorList($testFile='') { switch ($testFile) { case 'ExecutableFileUnitTest.2.inc': + case 'ExecutableFileUnitTest.4.inc': return [1 => 1]; default: return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.6.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.6.inc index db62c6231..16a044b80 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.6.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.6.inc @@ -1,2 +1,2 @@ <?php -echo 'foo'; +echo 'This file has a UTF-8 Byte order mark'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.7.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.7.inc index da779fd50..200f70bff 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.7.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.7.inc @@ -1,2 +1,2 @@ foo<?php -echo 'foo'; +echo 'This file has a UTF-8 Byte order mark and inline HTML before the open tag'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.php index 4403e5d52..3e716061d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/InlineHTMLUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InlineHTMLUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InlineHTML sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\InlineHTMLSniff + */ +final class InlineHTMLUnitTest extends AbstractSniffUnitTest { @@ -30,16 +35,15 @@ public function getErrorList($testFile='') switch ($testFile) { case 'InlineHTMLUnitTest.3.inc': return [4 => 1]; - break; + case 'InlineHTMLUnitTest.4.inc': return [1 => 1]; - break; + case 'InlineHTMLUnitTest.7.inc': return [1 => 1]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.1.inc.fixed similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.inc.fixed rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.1.inc.fixed diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.2.inc new file mode 100644 index 000000000..260d7fd2f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.2.inc @@ -0,0 +1,5 @@ + +<?= 'hi'; ?> + +<div>...more HTML...</div> +<?= 'hi'; ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.2.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.2.inc.fixed new file mode 100644 index 000000000..260d7fd2f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.2.inc.fixed @@ -0,0 +1,5 @@ + +<?= 'hi'; ?> + +<div>...more HTML...</div> +<?= 'hi'; ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.php index 772d4c4a5..ca20a7848 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineEndingsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LineEndingsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LineEndings sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineEndingsSniff + */ +final class LineEndingsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineLengthUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineLengthUnitTest.php index 4414753a1..4b86d4601 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineLengthUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LineLengthUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LineLengthUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LineLength sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff + */ +final class LineLengthUnitTest extends AbstractSniffUnitTest { @@ -50,14 +55,13 @@ public function getErrorList($testFile='') 45 => 1, 82 => 1, ]; - break; + case 'LineLengthUnitTest.2.inc': case 'LineLengthUnitTest.3.inc': return [7 => 1]; - break; + default: return []; - break; }//end switch }//end getErrorList() @@ -89,20 +93,19 @@ public function getWarningList($testFile='') 75 => 1, 84 => 1, ]; - break; + case 'LineLengthUnitTest.2.inc': case 'LineLengthUnitTest.3.inc': return [6 => 1]; - break; + case 'LineLengthUnitTest.4.inc': return [ 10 => 1, 14 => 1, ]; - break; + default: return []; - break; }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.2.inc new file mode 100644 index 000000000..708d19c6d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.2.inc @@ -0,0 +1,7 @@ +<?= + +?> + +<?= + +?> \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.php index 4b4bc9742..894a86dfe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.php @@ -4,14 +4,19 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowercasedFilenameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowercasedFilename sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LowercasedFilenameSniff + */ +final class LowercasedFilenameUnitTest extends AbstractSniffUnitTest { @@ -21,11 +26,19 @@ class LowercasedFilenameUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='') { - return [1 => 1]; + switch ($testFile) { + case 'LowercasedFilenameUnitTest.1.inc': + case 'LowercasedFilenameUnitTest.2.inc': + return [1 => 1]; + default: + return []; + } }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneClassPerFileUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneClassPerFileUnitTest.php index 42a962284..eb3cf4975 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneClassPerFileUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneClassPerFileUnitTest.php @@ -4,14 +4,19 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OneClassPerFileUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OneClassPerFile sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneClassPerFileSniff + */ +final class OneClassPerFileUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneInterfacePerFileUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneInterfacePerFileUnitTest.php index f08317879..b6a62b18c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneInterfacePerFileUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneInterfacePerFileUnitTest.php @@ -4,14 +4,19 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OneInterfacePerFileUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OneInterfacePerFile sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneInterfacePerFileSniff + */ +final class OneInterfacePerFileUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.inc index 94cebb4ee..9f76d5d8d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.inc @@ -12,10 +12,15 @@ class baz { } trait barTrait { - + } interface barInterface { } -?> \ No newline at end of file + +enum barEnum { + +} + +?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.php index f429f9809..d0e618a82 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneObjectStructurePerFileUnitTest.php @@ -4,14 +4,19 @@ * * @author Mponos George <gmponos@gmail.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OneObjectStructurePerFileUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OneInterfacePerFile sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneObjectStructurePerFileSniff + */ +final class OneObjectStructurePerFileUnitTest extends AbstractSniffUnitTest { @@ -30,6 +35,7 @@ public function getErrorList() 10 => 1, 14 => 1, 18 => 1, + 22 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneTraitPerFileUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneTraitPerFileUnitTest.php index 5519309ee..38f50a47c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneTraitPerFileUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Files/OneTraitPerFileUnitTest.php @@ -4,14 +4,19 @@ * * @author Alexander Obuhovich <aik.bold@gmail.com> * @copyright 2010-2014 Alexander Obuhovich - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OneTraitPerFileUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OneTraitPerFile sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Files\OneTraitPerFileSniff + */ +final class OneTraitPerFileUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/DisallowMultipleStatementsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/DisallowMultipleStatementsUnitTest.php index 84044d58d..d9c32f83a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/DisallowMultipleStatementsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/DisallowMultipleStatementsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowMultipleStatementsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowMultipleStatements sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\DisallowMultipleStatementsSniff + */ +final class DisallowMultipleStatementsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc index 286fdf1e7..ec71d4b67 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc @@ -468,3 +468,37 @@ $resource = new class() { $one <<= 8; $onetwothree = 3; + +// Issue 3326. +class Test +{ + public const DEFAULT = 'default'; + public const SOS = 'sos'; + public const HELP = 'help'; + + protected static $thisIsAReallyLongVariableName = []; +} + +// Issue #3460. +function issue3460_invalid() { + $a = static function ($variables = false) use ($foo) { + return $variables; + }; + $b = $a; +} + +function issue3460_valid() { + $a = static function ($variables = false) use ($foo) { + return $variables; + }; + $b = $a; +} + +function makeSureThatAssignmentWithinClosureAreStillHandled() { + $a = static function ($variables = []) use ($temp) { + $a = 'foo'; + $bar = 'bar'; + $longer = 'longer'; + return $variables; + }; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc.fixed index f08312ddf..137a8ef9a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc.fixed @@ -468,3 +468,37 @@ $resource = new class() { $one <<= 8; $onetwothree = 3; + +// Issue 3326. +class Test +{ + public const DEFAULT = 'default'; + public const SOS = 'sos'; + public const HELP = 'help'; + + protected static $thisIsAReallyLongVariableName = []; +} + +// Issue #3460. +function issue3460_invalid() { + $a = static function ($variables = false) use ($foo) { + return $variables; + }; + $b = $a; +} + +function issue3460_valid() { + $a = static function ($variables = false) use ($foo) { + return $variables; + }; + $b = $a; +} + +function makeSureThatAssignmentWithinClosureAreStillHandled() { + $a = static function ($variables = []) use ($temp) { + $a = 'foo'; + $bar = 'bar'; + $longer = 'longer'; + return $variables; + }; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.php index eef66a5d0..e2b5e0c5d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MultipleStatementAlignmentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MultipleStatementAlignment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\MultipleStatementAlignmentSniff + */ +final class MultipleStatementAlignmentUnitTest extends AbstractSniffUnitTest { @@ -40,7 +45,7 @@ public function getErrorList() * * @return array<int, int> */ - public function getWarningList($testFile='MultipleStatementAlignmentUnitTest.inc') + public function getWarningList($testFile='') { switch ($testFile) { case 'MultipleStatementAlignmentUnitTest.inc': @@ -118,8 +123,11 @@ public function getWarningList($testFile='MultipleStatementAlignmentUnitTest.inc 442 => 1, 443 => 1, 454 => 1, + 487 => 1, + 499 => 1, + 500 => 1, ]; - break; + case 'MultipleStatementAlignmentUnitTest.js': return [ 11 => 1, @@ -151,10 +159,9 @@ public function getWarningList($testFile='MultipleStatementAlignmentUnitTest.inc 114 => 1, 117 => 1, ]; - break; + default: return []; - break; }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/NoSpaceAfterCastUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/NoSpaceAfterCastUnitTest.php index 58627615f..e449811eb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/NoSpaceAfterCastUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/NoSpaceAfterCastUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NoSpaceAfterCastUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NoSpaceAfterCast sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\NoSpaceAfterCastSniff + */ +final class NoSpaceAfterCastUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.1.inc new file mode 100644 index 000000000..a4b0a07f9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.1.inc @@ -0,0 +1,100 @@ +<?php + +$var = (int) $var2; +$var = (int)$var2; +$var = (int) $var2; + +$var = (integer) $var2; +$var = (integer)$var2; +$var = (integer) $var2; + +$var = (string) $var2; +$var = (string)$var2; +$var = (string) $var2; + +$var = (float) $var2; +$var = (float)$var2; +$var = (float) $var2; + +$var = (double) $var2; +$var = (double)$var2; +$var = (double) $var2; + +$var = (real) $var2; +$var = (real)$var2; +$var = (real) $var2; + +$var = (array) $var2; +$var = (array)$var2; +$var = (array) $var2; + +$var = (bool) $var2; +$var = (bool)$var2; +$var = (bool) $var2; + +$var = (boolean) $var2; +$var = (boolean)$var2; +$var = (boolean) $var2; + +$var = (object) $var2; +$var = (object)$var2; +$var = (object) $var2; + +$var = (unset) $var2; +$var = (unset)$var2; +$var = (unset) $var2; + +$var = b"binary $foo"; +$var = b"binary string"; +$var = b'binary string'; +$var = (binary) $string; +$var = (binary)$string; + +$var = (boolean) /* comment */ $var2; + +$var = (int) + $var2; + +if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. + $x === 'test' +) {} + +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true +$var = (int) + $var1 + (bool) $var2; + +if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. + $x === 'test' +) {} +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false + +// phpcs:set Generic.Formatting.SpaceAfterCast spacing 2 +$var = (int) $var2; +$var = (string)$var2; +$var = (array) $var2; +$var = (unset) $var2; +$var = (boolean) /* comment */ $var2; + +$var = (integer) + $var2; + +// phpcs:set Generic.Formatting.SpaceAfterCast spacing 0 +$var = (int) $var2; +$var = (string)$var2; +$var = (array) $var2; +$var = (unset) $var2; +$var = (boolean) /* comment */ $var2; + +$var = (integer) + $var2; + +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true +$var = (int) + $var1 + (bool) $var2; +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false +// phpcs:set Generic.Formatting.SpaceAfterCast spacing 1 + +$var = (boolean)/* comment */ $var2; + +$var = ( int )$spacesInsideParenthesis; +$var = ( int )$tabsInsideParenthesis; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.1.inc.fixed new file mode 100644 index 000000000..fd2b920dc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.1.inc.fixed @@ -0,0 +1,97 @@ +<?php + +$var = (int) $var2; +$var = (int) $var2; +$var = (int) $var2; + +$var = (integer) $var2; +$var = (integer) $var2; +$var = (integer) $var2; + +$var = (string) $var2; +$var = (string) $var2; +$var = (string) $var2; + +$var = (float) $var2; +$var = (float) $var2; +$var = (float) $var2; + +$var = (double) $var2; +$var = (double) $var2; +$var = (double) $var2; + +$var = (real) $var2; +$var = (real) $var2; +$var = (real) $var2; + +$var = (array) $var2; +$var = (array) $var2; +$var = (array) $var2; + +$var = (bool) $var2; +$var = (bool) $var2; +$var = (bool) $var2; + +$var = (boolean) $var2; +$var = (boolean) $var2; +$var = (boolean) $var2; + +$var = (object) $var2; +$var = (object) $var2; +$var = (object) $var2; + +$var = (unset) $var2; +$var = (unset) $var2; +$var = (unset) $var2; + +$var = b"binary $foo"; +$var = b"binary string"; +$var = b'binary string'; +$var = (binary) $string; +$var = (binary) $string; + +$var = (boolean) /* comment */ $var2; + +$var = (int) $var2; + +if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. + $x === 'test' +) {} + +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true +$var = (int) + $var1 + (bool) $var2; + +if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. + $x === 'test' +) {} +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false + +// phpcs:set Generic.Formatting.SpaceAfterCast spacing 2 +$var = (int) $var2; +$var = (string) $var2; +$var = (array) $var2; +$var = (unset) $var2; +$var = (boolean) /* comment */ $var2; + +$var = (integer) $var2; + +// phpcs:set Generic.Formatting.SpaceAfterCast spacing 0 +$var = (int)$var2; +$var = (string)$var2; +$var = (array)$var2; +$var = (unset)$var2; +$var = (boolean) /* comment */ $var2; + +$var = (integer)$var2; + +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true +$var = (int) + $var1 + (bool)$var2; +// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false +// phpcs:set Generic.Formatting.SpaceAfterCast spacing 1 + +$var = (boolean)/* comment */ $var2; + +$var = ( int ) $spacesInsideParenthesis; +$var = ( int ) $tabsInsideParenthesis; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.2.inc new file mode 100644 index 000000000..7e947a264 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.2.inc @@ -0,0 +1,3 @@ +<?php + +$var = (int) diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc deleted file mode 100644 index 70ecd98a1..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -$var = (int) $var2; -$var = (int)$var2; -$var = (int) $var2; - -$var = (integer) $var2; -$var = (integer)$var2; -$var = (integer) $var2; - -$var = (string) $var2; -$var = (string)$var2; -$var = (string) $var2; - -$var = (float) $var2; -$var = (float)$var2; -$var = (float) $var2; - -$var = (double) $var2; -$var = (double)$var2; -$var = (double) $var2; - -$var = (real) $var2; -$var = (real)$var2; -$var = (real) $var2; - -$var = (array) $var2; -$var = (array)$var2; -$var = (array) $var2; - -$var = (bool) $var2; -$var = (bool)$var2; -$var = (bool) $var2; - -$var = (boolean) $var2; -$var = (boolean)$var2; -$var = (boolean) $var2; - -$var = (object) $var2; -$var = (object)$var2; -$var = (object) $var2; - -$var = (unset) $var2; -$var = (unset)$var2; -$var = (unset) $var2; - -$var = b"binary $foo"; -$var = b"binary string"; -$var = b'binary string'; -$var = (binary) $string; -$var = (binary)$string; - -$var = (boolean) /* comment */ $var2; - -$var = (int) - $var2; - -if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. - $x === 'test' -) {} - -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true -$var = (int) - $var1 + (bool) $var2; - -if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. - $x === 'test' -) {} -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false - -// phpcs:set Generic.Formatting.SpaceAfterCast spacing 2 -$var = (int) $var2; -$var = (string)$var2; -$var = (array) $var2; -$var = (unset) $var2; -$var = (boolean) /* comment */ $var2; - -$var = (integer) - $var2; - -// phpcs:set Generic.Formatting.SpaceAfterCast spacing 0 -$var = (int) $var2; -$var = (string)$var2; -$var = (array) $var2; -$var = (unset) $var2; -$var = (boolean) /* comment */ $var2; - -$var = (integer) - $var2; - -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true -$var = (int) - $var1 + (bool) $var2; -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false -// phpcs:set Generic.Formatting.SpaceAfterCast spacing 1 diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc.fixed deleted file mode 100644 index f9b2a592a..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc.fixed +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -$var = (int) $var2; -$var = (int) $var2; -$var = (int) $var2; - -$var = (integer) $var2; -$var = (integer) $var2; -$var = (integer) $var2; - -$var = (string) $var2; -$var = (string) $var2; -$var = (string) $var2; - -$var = (float) $var2; -$var = (float) $var2; -$var = (float) $var2; - -$var = (double) $var2; -$var = (double) $var2; -$var = (double) $var2; - -$var = (real) $var2; -$var = (real) $var2; -$var = (real) $var2; - -$var = (array) $var2; -$var = (array) $var2; -$var = (array) $var2; - -$var = (bool) $var2; -$var = (bool) $var2; -$var = (bool) $var2; - -$var = (boolean) $var2; -$var = (boolean) $var2; -$var = (boolean) $var2; - -$var = (object) $var2; -$var = (object) $var2; -$var = (object) $var2; - -$var = (unset) $var2; -$var = (unset) $var2; -$var = (unset) $var2; - -$var = b"binary $foo"; -$var = b"binary string"; -$var = b'binary string'; -$var = (binary) $string; -$var = (binary) $string; - -$var = (boolean) /* comment */ $var2; - -$var = (int) $var2; - -if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. - $x === 'test' -) {} - -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true -$var = (int) - $var1 + (bool) $var2; - -if ( (string) // phpcs:ignore Standard.Cat.SniffName -- for reasons. - $x === 'test' -) {} -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false - -// phpcs:set Generic.Formatting.SpaceAfterCast spacing 2 -$var = (int) $var2; -$var = (string) $var2; -$var = (array) $var2; -$var = (unset) $var2; -$var = (boolean) /* comment */ $var2; - -$var = (integer) $var2; - -// phpcs:set Generic.Formatting.SpaceAfterCast spacing 0 -$var = (int)$var2; -$var = (string)$var2; -$var = (array)$var2; -$var = (unset)$var2; -$var = (boolean) /* comment */ $var2; - -$var = (integer)$var2; - -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines true -$var = (int) - $var1 + (bool)$var2; -// phpcs:set Generic.Formatting.SpaceAfterCast ignoreNewlines false -// phpcs:set Generic.Formatting.SpaceAfterCast spacing 1 diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.php index 505ded6c5..8f26eda25 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SpaceAfterCastUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SpaceAfterCast sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\SpaceAfterCastSniff + */ +final class SpaceAfterCastUnitTest extends AbstractSniffUnitTest { @@ -21,50 +26,61 @@ class SpaceAfterCastUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the test file to run. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 4 => 1, - 5 => 1, - 8 => 1, - 9 => 1, - 12 => 1, - 13 => 1, - 16 => 1, - 17 => 1, - 20 => 1, - 21 => 1, - 24 => 1, - 25 => 1, - 28 => 1, - 29 => 1, - 32 => 1, - 33 => 1, - 36 => 1, - 37 => 1, - 40 => 1, - 41 => 1, - 44 => 1, - 45 => 1, - 51 => 1, - 53 => 1, - 55 => 1, - 58 => 1, - 64 => 1, - 72 => 1, - 73 => 1, - 75 => 1, - 76 => 1, - 78 => 1, - 82 => 1, - 84 => 1, - 85 => 1, - 86 => 1, - 88 => 1, - 93 => 1, - ]; + switch ($testFile) { + case 'SpaceAfterCastUnitTest.1.inc': + return [ + 4 => 1, + 5 => 1, + 8 => 1, + 9 => 1, + 12 => 1, + 13 => 1, + 16 => 1, + 17 => 1, + 20 => 1, + 21 => 1, + 24 => 1, + 25 => 1, + 28 => 1, + 29 => 1, + 32 => 1, + 33 => 1, + 36 => 1, + 37 => 1, + 40 => 1, + 41 => 1, + 44 => 1, + 45 => 1, + 51 => 1, + 53 => 1, + 55 => 1, + 58 => 1, + 64 => 1, + 72 => 1, + 73 => 1, + 75 => 1, + 76 => 1, + 78 => 1, + 82 => 1, + 84 => 1, + 85 => 1, + 86 => 1, + 88 => 1, + 93 => 1, + 97 => 1, + 99 => 1, + 100 => 1, + ]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.1.inc.fixed similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.inc.fixed rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.1.inc.fixed diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.2.inc new file mode 100644 index 000000000..2d6fa80a8 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.2.inc @@ -0,0 +1,7 @@ +<?php + +// Intentional parse error. +// This should be the only test in this file. +// Testing that the sniff is *not* triggered. + +if (! diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.php index 9019bb49d..a439517ad 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceAfterNotUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SpaceAfterNotUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SpaceAfterNot sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\SpaceAfterNotSniff + */ +final class SpaceAfterNotUnitTest extends AbstractSniffUnitTest { @@ -28,7 +33,7 @@ class SpaceAfterNotUnitTest extends AbstractSniffUnitTest public function getErrorList($testFile='') { switch ($testFile) { - case 'SpaceAfterNotUnitTest.inc': + case 'SpaceAfterNotUnitTest.1.inc': return [ 3 => 2, 4 => 2, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceBeforeCastUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceBeforeCastUnitTest.php index aed6b32ae..5165409d5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceBeforeCastUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Formatting/SpaceBeforeCastUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SpaceBeforeCastUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SpaceBeforeCast sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\SpaceBeforeCastSniff + */ +final class SpaceBeforeCastUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.1.inc new file mode 100644 index 000000000..9360680ce --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.1.inc @@ -0,0 +1,66 @@ +<?php +class myclass extends yourclass implements someint { + function myfunc($var) { + echo $var; + } +} + +$myvar = true; +myfunc(&$myvar); +myfunc($myvar); + +$this->myfunc(&$myvar); +$this->myfunc($myvar); + +myclass::myfunc(&$myvar); +myclass::myfunc($myvar); + +while(testfunc($var1, &$var2, $var3, &$var4) === false) { +} + +sprintf("0%o", 0777 & $p); + +$foo(&$myvar); + +if (is_array($foo = &$this->bar())) { +} + +Hooks::run( 'SecondaryDataUpdates', [ $title, $old, $recursive, $parserOutput, &$updates ] ); + +$foo = Bar(&$fooBar); + +myfunc($myvar&$myvar); +myfunc($myvar[0]&$myvar); + +myfunc(myclass::MY_CONST&$myvar); +myfunc(MY_CONST&$myvar); + +efg( true == &$b ); +efg( true === &$b ); + +foo($a, bar(&$b)); +foo($a, array(&$b)); + +enum Foo {} +interface Foo {} +trait Foo {} + +$instance = new $var($a); +$instance = new MyClass($a); +$instance = new $var(&$a); +$instance = new MyClass(&$a); + +$anon = new class($a) {}; +$anon = new class(&$a) {}; + +class Foo extends Bar { + function myMethod() { + $a = new static($var); + $b = new self($var); + $c = new parent($var); + + $d = new static(&$var); + $e = new self(&$var); + $f = new parent(&$var); + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.2.inc new file mode 100644 index 000000000..769c5d61b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.2.inc @@ -0,0 +1,7 @@ +<?php + +// Intentional parse error. +// This should be the only test in this file. +// Testing that the sniff is *not* triggered when there are only empty tokens after a variable and nothing else. + +$var diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.3.inc new file mode 100644 index 000000000..26f467bd7 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.3.inc @@ -0,0 +1,7 @@ +<?php + +// Intentional parse error (missing closing parenthesis). +// This should be the only test in this file. +// Testing that the sniff is *not* triggered. + +foo( diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.inc deleted file mode 100644 index 3fa33649e..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.inc +++ /dev/null @@ -1,39 +0,0 @@ -<?php -class myclass extends yourclass implements someint { - function myfunc($var) { - echo $var; - } -} - -$myvar = true; -myfunc(&$myvar); -myfunc($myvar); - -$this->myfunc(&$myvar); -$this->myfunc($myvar); - -myclass::myfunc(&$myvar); -myclass::myfunc($myvar); - -while(testfunc($var1, &$var2, $var3, &$var4) === false) { -} - -sprintf("0%o", 0777 & $p); - -$foo(&$myvar); - -if (is_array($foo = &$this->bar())) { -} - -Hooks::run( 'SecondaryDataUpdates', [ $title, $old, $recursive, $parserOutput, &$updates ] ); - -$foo = Bar(&$fooBar); - -myfunc($myvar&$myvar); -myfunc($myvar[0]&$myvar); - -myfunc(myclass::MY_CONST&$myvar); -myfunc(MY_CONST&$myvar); - -efg( true == &$b ); -efg( true === &$b ); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.php index 1c10c99fa..b0819dac2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CallTimePassByReferenceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CallTimePassByReference sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\CallTimePassByReferenceSniff + */ +final class CallTimePassByReferenceUnitTest extends AbstractSniffUnitTest { @@ -21,18 +26,33 @@ class CallTimePassByReferenceUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the test file to process. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='CallTimePassByReferenceUnitTest.1.inc') { - return [ - 9 => 1, - 12 => 1, - 15 => 1, - 18 => 2, - 23 => 1, - 30 => 1, - ]; + switch ($testFile) { + case 'CallTimePassByReferenceUnitTest.1.inc': + return [ + 9 => 1, + 12 => 1, + 15 => 1, + 18 => 2, + 23 => 1, + 30 => 1, + 41 => 1, + 50 => 1, + 51 => 1, + 54 => 1, + 62 => 1, + 63 => 1, + 64 => 1, + ]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc index c46517df0..8bd067b3f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc @@ -153,3 +153,22 @@ $foobar = functionCallAnonClassParam( $result = myFunction(param1: $arg1, param2: $arg2); $result = myFunction(param1: $arg1 , param2:$arg2); $result = myFunction(param1: $arg1, param2:$arg2, param3: $arg3,param4:$arg4, param5:$arg5); + +class Testing extends Bar +{ + public static function baz($foo, $bar) + { + $a = new parent($foo, $bar); + $a = new parent($foo ,$bar); + } +} + +// Ignore spacing after PHP 7.3+ trailing comma in single-line function calls to prevent fixer conflicts. +// This is something which should be decided by a sniff dealing with the function call parentheses. +$foo = new MyClass($obj, 'getMethod',); +$foo = new MyClass($obj, 'getMethod', ); +$foo = new MyClass($obj, 'getMethod', ); +$foo = new MyClass( + $obj, + 'getMethod', +); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc.fixed index 1b51933eb..69676524d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc.fixed @@ -153,3 +153,22 @@ $foobar = functionCallAnonClassParam( $result = myFunction(param1: $arg1, param2: $arg2); $result = myFunction(param1: $arg1, param2:$arg2); $result = myFunction(param1: $arg1, param2:$arg2, param3: $arg3, param4:$arg4, param5:$arg5); + +class Testing extends Bar +{ + public static function baz($foo, $bar) + { + $a = new parent($foo, $bar); + $a = new parent($foo, $bar); + } +} + +// Ignore spacing after PHP 7.3+ trailing comma in single-line function calls to prevent fixer conflicts. +// This is something which should be decided by a sniff dealing with the function call parentheses. +$foo = new MyClass($obj, 'getMethod',); +$foo = new MyClass($obj, 'getMethod', ); +$foo = new MyClass($obj, 'getMethod', ); +$foo = new MyClass( + $obj, + 'getMethod', +); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.php index 9f83fc9b7..f630965f3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCallArgumentSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionCallArgumentSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\FunctionCallArgumentSpacingSniff + */ +final class FunctionCallArgumentSpacingUnitTest extends AbstractSniffUnitTest { @@ -54,6 +59,8 @@ public function getErrorList() 134 => 1, 154 => 2, 155 => 1, + 162 => 2, + 170 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc index 854c38886..146f9cf6d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc @@ -236,3 +236,35 @@ function myFunction($a, $lot, $of, $params) : array /* comment */ { return null; } + +class Issue3357 +{ + public function extraLine(string: $a): void + + { + // code here. + } +} + +function issue3357WithoutIndent(string: $a): void + + +{ + // code here. +} + +class Issue3357WithComment +{ + public function extraLine(string: $a): void + // Comment. + { + // code here. + } +} + + function myFunction() + {} + function myFunction() + {} // Too many spaces indent with an empty function. + function myFunction() +{} // Too little spaces indent with an empty function. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc.fixed index c1f904b21..ac4929d7d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc.fixed @@ -256,3 +256,32 @@ function myFunction($a, $lot, $of, $params) { return null; } + +class Issue3357 +{ + public function extraLine(string: $a): void + { + // code here. + } +} + +function issue3357WithoutIndent(string: $a): void +{ + // code here. +} + +class Issue3357WithComment +{ + public function extraLine(string: $a): void + // Comment. + { + // code here. + } +} + + function myFunction() + {} + function myFunction() + {} // Too many spaces indent with an empty function. + function myFunction() + {} // Too little spaces indent with an empty function. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.php index 27eaa4fd7..0c6c4af1e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OpeningFunctionBraceBsdAllmanUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OpeningFunctionBraceBsdAllman sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\OpeningFunctionBraceBsdAllmanSniff + */ +final class OpeningFunctionBraceBsdAllmanUnitTest extends AbstractSniffUnitTest { @@ -58,6 +63,11 @@ public function getErrorList() 220 => 1, 231 => 1, 236 => 1, + 244 => 1, + 252 => 1, + 260 => 1, + 268 => 1, + 270 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc index f7b3c922e..6c937a823 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc @@ -208,3 +208,7 @@ function myFunction($a, $lot, $of, $params) : array { // phpcs:ignore Standard.Category.Sniff -- for reasons. return null; } + +function myFunction() {} +function myFunction() {} // Too many spaces with an empty function. +function myFunction() {} // Too many spaces (tab) with an empty function. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc.fixed index 533fb567d..bfb228384 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc.fixed @@ -196,3 +196,7 @@ function myFunction($a, $lot, $of, $params) : array { // phpcs:ignore Standard.Category.Sniff -- for reasons. return null; } + +function myFunction() {} +function myFunction() {} // Too many spaces with an empty function. +function myFunction() {} // Too many spaces (tab) with an empty function. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.php index aee774f79..f98430768 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OpeningFunctionBraceKernighanRitchieUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OpeningFunctionBraceKernighanRitchie sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\OpeningFunctionBraceKernighanRitchieSniff + */ +final class OpeningFunctionBraceKernighanRitchieUnitTest extends AbstractSniffUnitTest { @@ -52,6 +57,8 @@ public function getErrorList() 191 => 1, 197 => 1, 203 => 1, + 213 => 1, + 214 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.inc index 151ffed6a..494dcc769 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.inc @@ -79,9 +79,11 @@ function complexityTwenty() switch ($condition) { case '1': - if ($condition) { - } else if ($cond) { - } + do { + if ($condition) { + } else if ($cond) { + } + } while ($cond); break; case '2': while ($cond) { @@ -116,9 +118,11 @@ function complexityTwenty() function complexityTwentyOne() { while ($condition === true) { - if ($condition) { - } else if ($cond) { - } + do { + if ($condition) { + } else if ($cond) { + } + } while ($cond); } switch ($condition) { @@ -157,4 +161,294 @@ function complexityTwentyOne() } } + +function complexityTenWithTernaries() +{ + $value1 = (empty($condition1)) ? $value1A : $value1B; + $value2 = (empty($condition2)) ? $value2A : $value2B; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityElevenWithTernaries() +{ + $value1 = (empty($condition1)) ? $value1A : $value1B; + $value2 = (empty($condition2)) ? $value2A : $value2B; + $value3 = (empty($condition3)) ? $value3A : $value3B; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityTenWithNestedTernaries() +{ + $value1 = true ? $value1A : false ? $value1B : $value1C; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityElevenWithNestedTernaries() +{ + $value1 = (empty($condition1)) ? $value1A : $value1B; + $value2 = true ? $value2A : false ? $value2B : $value2C; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityTenWithNullCoalescence() +{ + $value1 = $value1A ?? $value1B; + $value2 = $value2A ?? $value2B; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityElevenWithNullCoalescence() +{ + $value1 = $value1A ?? $value1B; + $value2 = $value2A ?? $value2B; + $value3 = $value3A ?? $value3B; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityTenWithNestedNullCoalescence() +{ + $value1 = $value1A ?? $value1B ?? $value1C; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityElevenWithNestedNullCoalescence() +{ + $value1 = $value1A ?? $value1B; + $value2 = $value2A ?? $value2B ?? $value2C; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityTenWithNullCoalescenceAssignment() +{ + $value1 ??= $default1; + $value2 ??= $default2; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityElevenWithNullCoalescenceAssignment() +{ + $value1 ??= $default1; + $value2 ??= $default2; + $value3 ??= $default3; + + switch ($condition) { + case '1': + if ($condition) { + } else if ($cond) { + } + break; + case '2': + while ($cond) { + echo 'hi'; + } + break; + case '3': + break; + default: + break; + } +} + + +function complexityFiveWithMatch() +{ + return match(strtolower(substr($monthName, 0, 3))){ + 'apr', 'jun', 'sep', 'nov' => 30, + 'jan', 'mar', 'may', 'jul', 'aug', 'oct', 'dec' => 31, + 'feb' => is_leap_year($year) ? 29 : 28, + default => throw new InvalidArgumentException("Invalid month"), + } +} + + +function complexityFourteenWithMatch() +{ + return match(strtolower(substr($monthName, 0, 3))) { + 'jan' => 31, + 'feb' => is_leap_year($year) ? 29 : 28, + 'mar' => 31, + 'apr' => 30, + 'may' => 31, + 'jun' => 30, + 'jul' => 31, + 'aug' => 31, + 'sep' => 30, + 'oct' => 31, + 'nov' => 30, + 'dec' => 31, + default => throw new InvalidArgumentException("Invalid month"), + }; +} + + +function complexitySevenWithNullSafeOperator() +{ + $foo = $object1->getX()?->getY()?->getZ(); + $bar = $object2->getX()?->getY()?->getZ(); + $baz = $object3->getX()?->getY()?->getZ(); +} + + +function complexityElevenWithNullSafeOperator() +{ + $foo = $object1->getX()?->getY()?->getZ(); + $bar = $object2->getX()?->getY()?->getZ(); + $baz = $object3->getX()?->getY()?->getZ(); + $bacon = $object4->getX()?->getY()?->getZ(); + $bits = $object5->getX()?->getY()?->getZ(); +} + ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.php index e8099317c..950ba3eec 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Metrics; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CyclomaticComplexityUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CyclomaticComplexity sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\CyclomaticComplexitySniff + */ +final class CyclomaticComplexityUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class CyclomaticComplexityUnitTest extends AbstractSniffUnitTest */ public function getErrorList() { - return [116 => 1]; + return [118 => 1]; }//end getErrorList() @@ -41,8 +46,15 @@ public function getErrorList() public function getWarningList() { return [ - 45 => 1, - 72 => 1, + 45 => 1, + 72 => 1, + 189 => 1, + 237 => 1, + 285 => 1, + 333 => 1, + 381 => 1, + 417 => 1, + 445 => 1, ]; }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/NestingLevelUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/NestingLevelUnitTest.php index ccd755076..fda8d461c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/NestingLevelUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Metrics/NestingLevelUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Metrics; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NestingLevelUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NestingLevel sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\NestingLevelSniff + */ +final class NestingLevelUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/AbstractClassNamePrefixUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/AbstractClassNamePrefixUnitTest.php index 7be4e8f88..0f7ef0939 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/AbstractClassNamePrefixUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/AbstractClassNamePrefixUnitTest.php @@ -3,14 +3,19 @@ * Unit test class for the AbstractClassNamePrefix sniff. * * @author Anna Borzenko <annnechko@gmail.com> - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class AbstractClassNamePrefixUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the AbstractClassNamePrefix sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\AbstractClassNamePrefixSniff + */ +final class AbstractClassNamePrefixUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.inc index 9bda11472..8441060d2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.inc @@ -165,3 +165,21 @@ abstract class My_Class { public function my_class() {} public function _MY_CLASS() {} } + +enum Suit: string implements Colorful, CardGame { + // Magic methods. + function __call($name, $args) {} + static function __callStatic($name, $args) {} + function __invoke() {} + + // Valid Method Name. + public function getSomeValue() {} + + // Double underscore non-magic methods not allowed. + function __myFunction() {} + function __my_function() {} + + // Non-camelcase. + public function parseMyDSN() {} + public function get_some_value() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.php index 502498d8b..777d81c71 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CamelCapsFunctionNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CamelCapsFunctionName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff + */ +final class CamelCapsFunctionNameUnitTest extends AbstractSniffUnitTest { @@ -63,6 +68,10 @@ public function getErrorList() 147 => 2, 158 => 1, 159 => 1, + 179 => 1, + 180 => 2, + 183 => 1, + 184 => 1, ]; return $errors; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/ConstructorNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/ConstructorNameUnitTest.php index e6c6df3f2..616f65134 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/ConstructorNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/ConstructorNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ConstructorNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ConstructorName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\ConstructorNameSniff + */ +final class ConstructorNameUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php index b4d9696f9..e5a4c3c59 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/InterfaceNameSuffixUnitTest.php @@ -3,14 +3,19 @@ * Unit test class for the InterfaceNameSuffix sniff. * * @author Anna Borzenko <annnechko@gmail.com> - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InterfaceSuffixNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InterfaceNameSuffix sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\InterfaceNameSuffixSniff + */ +final class InterfaceNameSuffixUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/TraitNameSuffixUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/TraitNameSuffixUnitTest.php index 742fdd1ab..efef8df6e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/TraitNameSuffixUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/TraitNameSuffixUnitTest.php @@ -3,14 +3,19 @@ * Unit test class for the TraitNameSuffix sniff. * * @author Anna Borzenko <annnechko@gmail.com> - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class TraitNameSuffixUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the TraitNameSuffix sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\TraitNameSuffixSniff + */ +final class TraitNameSuffixUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.inc index 6bf96f251..20bbf90e2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.inc @@ -31,3 +31,13 @@ class ClassConstBowOutTest { } $foo->getBar()?->define('foo'); + +// PHP 8.3 introduces typed constants. +class TypedConstants { + const MISSING_VALUE; // Parse error. + const MyClass MYCONST = new MyClass; + const int VALID_NAME = 0; + const INT invalid_name = 0; + const FALSE false = false; // Yes, false can be used as a constant name, don't ask. + const array ARRAY = array(); // Same goes for array. +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.php index 8db68c8aa..afe362558 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UpperCaseConstantNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidConstantName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\UpperCaseConstantNameSniff + */ +final class UpperCaseConstantNameUnitTest extends AbstractSniffUnitTest { @@ -33,6 +38,8 @@ public function getErrorList() 19 => 1, 28 => 1, 30 => 1, + 40 => 1, + 41 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.inc index 3355c2d32..e2ca72d1f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.inc @@ -1,2 +1,9 @@ <?php $output = `ls -al`; + +// Testing an invalid phpcs:set annotations. +// This test is unrelated to this sniff, but the issue needs a sniff to be tested. +// phpcs:set Generic.PHP.BacktickOperator unknown 10 + +// Make sure errors after an incorrect annotation are still being thrown. +$output = `ls -al`; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php index a2541851d..b2d3c8239 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class BacktickOperatorUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the BacktickOperator sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\BacktickOperatorSniff + */ +final class BacktickOperatorUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,10 @@ class BacktickOperatorUnitTest extends AbstractSniffUnitTest */ public function getErrorList() { - return [2 => 2]; + return [ + 2 => 2, + 9 => 2, + ]; }//end getErrorList() @@ -40,6 +48,7 @@ public function getErrorList() */ public function getWarningList() { + // Warning about incorrect annotation will be shown on line 1 once PR #3915 would be merged. return []; }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.3.inc index c9f4f10e6..c05758620 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.3.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.3.inc @@ -1,3 +1,3 @@ <?php -//some code \ No newline at end of file +// This file has a UTF-8 Byte order mark. \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.php index 11f4f14da..8fce995ab 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CharacterBeforePHPOpeningTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CharacterBeforePHPOpeningTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\CharacterBeforePHPOpeningTagSniff + */ +final class CharacterBeforePHPOpeningTagUnitTest extends AbstractSniffUnitTest { @@ -30,10 +35,9 @@ public function getErrorList($testFile='') switch ($testFile) { case 'CharacterBeforePHPOpeningTagUnitTest.1.inc': return [2 => 1]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.2.inc new file mode 100644 index 000000000..fc896ed19 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.2.inc @@ -0,0 +1,5 @@ +<?= 'foo'; ?> +<b>Bold text</b> +<?= 'bar'; ?> +<i>Italic text</i> +<?= 'baz'; \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.php index bcadc3865..35df704b6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Andy Grunwald <andygrunwald@gmail.com> * @copyright 2010-2014 Andy Grunwald - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClosingPHPTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClosingPHPTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\ClosingPHPTagSniff + */ +final class ClosingPHPTagUnitTest extends AbstractSniffUnitTest { @@ -21,11 +26,22 @@ class ClosingPHPTagUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='') { - return [9 => 1]; + switch ($testFile) { + case 'ClosingPHPTagUnitTest.1.inc': + return [9 => 1]; + + case 'ClosingPHPTagUnitTest.2.inc': + return [5 => 1]; + + default: + return []; + } }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DeprecatedFunctionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DeprecatedFunctionsUnitTest.php index d2f7cb803..4b6f6ef54 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DeprecatedFunctionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DeprecatedFunctionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DeprecatedFunctionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DeprecatedFunctions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DeprecatedFunctionsSniff + */ +final class DeprecatedFunctionsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php index 953e8ad9b..8dd6deb97 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowAlternativePHPTagsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowAlternativePHPTags sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DisallowAlternativePHPTagsSniff + */ +final class DisallowAlternativePHPTagsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowRequestSuperglobalUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowRequestSuperglobalUnitTest.php index 7ece55120..15510a691 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowRequestSuperglobalUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowRequestSuperglobalUnitTest.php @@ -4,13 +4,18 @@ * * @author Jeantwan Teuma <jeant.m24@gmail.com> * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowRequestSuperglobalUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowRequestSuperglobal sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DisallowRequestSuperglobalSniff + */ +final class DisallowRequestSuperglobalUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php index b79572ce6..a8955d699 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowShortOpenTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowShortOpenTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DisallowShortOpenTagSniff + */ +final class DisallowShortOpenTagUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DiscourageGotoUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DiscourageGotoUnitTest.php index c1f82d61b..36db20dbc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DiscourageGotoUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/DiscourageGotoUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2017 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DiscourageGotoUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DiscourageGoto sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DiscourageGotoSniff + */ +final class DiscourageGotoUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.inc index b30f0dde9..060da6128 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.inc @@ -55,3 +55,6 @@ function mymodule_form_callback(SizeOf $sizeof) { } $size = $class?->sizeof($array); + +#[SizeOf(10)] +function doSomething() {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.php index 760e80786..cb0931312 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ForbiddenFunctionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ForbiddenFunctions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\ForbiddenFunctionsSniff + */ +final class ForbiddenFunctionsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc index 63aea5187..07e54e258 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc @@ -81,3 +81,77 @@ var_dump(MyClass::TRUE); function tRUE() {} $input->getFilterChain()->attachByName('Null', ['type' => Null::TYPE_STRING]); + +// Issue #3332 - ignore type declarations, but not default values. +class TypedThings { + const MYCONST = FALSE; + + public int|FALSE $int = FALSE; + public Type|NULL $int = new MyObj(NULL); + + private function typed(int|FALSE $param = NULL, Type|NULL $obj = new MyObj(FALSE)) : string|FALSE|NULL + { + if (TRUE === FALSE) { + return NULL; + } + } +} + +$cl = function (int|FALSE $param = NULL, Type|NULL $obj = new MyObj(FALSE)) : string|FALSE|NULL {}; + +// Adding some extra tests to safeguard that function declarations which don't create scope are handled correctly. +interface InterfaceMethodsWithReturnTypeNoScopeOpener { + private function typed($param = TRUE) : string|FALSE|NULL; +} + +abstract class ClassMethodsWithReturnTypeNoScopeOpener { + abstract public function typed($param = FALSE) : TRUE; +} + +// Additional tests to safeguard improved property type skip logic. +readonly class Properties { + use SomeTrait { + sayHello as private myPrivateHello; + } + + public Type|FALSE|NULL $propertyA = array( + 'itemA' => TRUE, + 'itemB' => FALSE, + 'itemC' => NULL, + ), $propertyB = FALSE; + + protected \FullyQualified&Partially\Qualified&namespace\Relative $propertyC; + var ?TRUE $propertyD; + static array|callable|FALSE|self|parent $propertyE = TRUE; + private + // phpcs:ignore Stnd.Cat.Sniff -- for reasons. + TRUE /*comment*/ + $propertyF = TRUE; + + public function __construct( + public FALSE|NULL $promotedPropA, + readonly callable|TRUE $promotedPropB, + ) { + static $var; + echo static::class; + static::foo(); + $var = $var instanceof static; + $obj = new static(); + } + + public static function foo(): static|self|FALSE { + $callable = static function() {}; + } +} + +// PHP 8.3 introduces typed constants. +class TypedConstants { + const MyClass|NULL|TRUE|FALSE MYCONST = FALSE; +} + +// Global constants can not be typed. +const MYCONST = TRUE; + +// Last coding/parse error. +// This has to be the last test in the file. +function UnclosedCurly (): FALSE { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc.fixed index b3c3d8a13..723a7221e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc.fixed @@ -81,3 +81,77 @@ var_dump(MyClass::TRUE); function tRUE() {} $input->getFilterChain()->attachByName('Null', ['type' => Null::TYPE_STRING]); + +// Issue #3332 - ignore type declarations, but not default values. +class TypedThings { + const MYCONST = false; + + public int|FALSE $int = false; + public Type|NULL $int = new MyObj(null); + + private function typed(int|FALSE $param = null, Type|NULL $obj = new MyObj(false)) : string|FALSE|NULL + { + if (true === false) { + return null; + } + } +} + +$cl = function (int|FALSE $param = null, Type|NULL $obj = new MyObj(false)) : string|FALSE|NULL {}; + +// Adding some extra tests to safeguard that function declarations which don't create scope are handled correctly. +interface InterfaceMethodsWithReturnTypeNoScopeOpener { + private function typed($param = true) : string|FALSE|NULL; +} + +abstract class ClassMethodsWithReturnTypeNoScopeOpener { + abstract public function typed($param = false) : TRUE; +} + +// Additional tests to safeguard improved property type skip logic. +readonly class Properties { + use SomeTrait { + sayHello as private myPrivateHello; + } + + public Type|FALSE|NULL $propertyA = array( + 'itemA' => true, + 'itemB' => false, + 'itemC' => null, + ), $propertyB = false; + + protected \FullyQualified&Partially\Qualified&namespace\Relative $propertyC; + var ?TRUE $propertyD; + static array|callable|FALSE|self|parent $propertyE = true; + private + // phpcs:ignore Stnd.Cat.Sniff -- for reasons. + TRUE /*comment*/ + $propertyF = true; + + public function __construct( + public FALSE|NULL $promotedPropA, + readonly callable|TRUE $promotedPropB, + ) { + static $var; + echo static::class; + static::foo(); + $var = $var instanceof static; + $obj = new static(); + } + + public static function foo(): static|self|FALSE { + $callable = static function() {}; + } +} + +// PHP 8.3 introduces typed constants. +class TypedConstants { + const MyClass|NULL|TRUE|FALSE MYCONST = false; +} + +// Global constants can not be typed. +const MYCONST = true; + +// Last coding/parse error. +// This has to be the last test in the file. +function UnclosedCurly (): FALSE { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.php index 85e8f7011..f15626334 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowerCaseConstantUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowerCaseConstant sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\LowerCaseConstantSniff + */ +final class LowerCaseConstantUnitTest extends AbstractSniffUnitTest { @@ -25,27 +30,44 @@ class LowerCaseConstantUnitTest extends AbstractSniffUnitTest * * @return array<int, int> */ - public function getErrorList($testFile='LowerCaseConstantUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'LowerCaseConstantUnitTest.inc': return [ - 7 => 1, - 10 => 1, - 15 => 1, - 16 => 1, - 23 => 1, - 26 => 1, - 31 => 1, - 32 => 1, - 39 => 1, - 42 => 1, - 47 => 1, - 48 => 1, - 70 => 1, - 71 => 1, + 7 => 1, + 10 => 1, + 15 => 1, + 16 => 1, + 23 => 1, + 26 => 1, + 31 => 1, + 32 => 1, + 39 => 1, + 42 => 1, + 47 => 1, + 48 => 1, + 70 => 1, + 71 => 1, + 87 => 1, + 89 => 1, + 90 => 1, + 92 => 2, + 94 => 2, + 95 => 1, + 100 => 2, + 104 => 1, + 108 => 1, + 118 => 1, + 119 => 1, + 120 => 1, + 121 => 1, + 125 => 1, + 129 => 1, + 149 => 1, + 153 => 1, ]; - break; + case 'LowerCaseConstantUnitTest.js': return [ 2 => 1, @@ -57,10 +79,9 @@ public function getErrorList($testFile='LowerCaseConstantUnitTest.inc') 13 => 1, 14 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc index 8d003c3bc..37579d321 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc @@ -35,5 +35,14 @@ $r = Match ($x) { DEFAULT, => 3, }; +class Reading { + Public READOnly int $var; +} + +EnuM ENUM: string +{ + Case HEARTS; +} + __HALT_COMPILER(); // An exception due to phar support. function diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc.fixed index bbe76b9e1..7063327ae 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc.fixed @@ -35,5 +35,14 @@ $r = match ($x) { default, => 3, }; +class Reading { + public readonly int $var; +} + +enum ENUM: string +{ + case HEARTS; +} + __HALT_COMPILER(); // An exception due to phar support. function diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.php index b272196b8..17f0e25d3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowerCaseKeywordUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowerCaseKeyword sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\LowerCaseKeywordSniff + */ +final class LowerCaseKeywordUnitTest extends AbstractSniffUnitTest { @@ -40,6 +45,9 @@ public function getErrorList() 31 => 1, 32 => 1, 35 => 1, + 39 => 2, + 42 => 1, + 44 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc index 8e2dca17e..fb5b1fd5a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc @@ -81,3 +81,65 @@ class ConstructorPropertyPromotionWithTypes { class ConstructorPropertyPromotionAndNormalParams { public function __construct(public Int $promotedProp, ?Int $normalArg) {} } + +function (): NeVeR { + exit; +}; + +function intersectionParamTypes (\Package\ClassName&\Package\Other_Class $var) {} + +function intersectionReturnTypes ($var): \Package\ClassName&\Package\Other_Class {} + +$arrow = fn (int $a, string $b, bool $c, array $d, Foo\Bar $e) : int => $a * $b; +$arrow = fn (Int $a, String $b, BOOL $c, Array $d, Foo\Bar $e) : Float => $a * $b; + +$cl = function (False $a, TRUE $b, Null $c): ?True {}; + +class TypedClassConstants +{ + const UNTYPED = null; + const FLOAT = 'Reserved keyword as name is valid and should not be changed'; + const OBJECT = 'Reserved keyword as name is valid and should not be changed'; + + const ClassName FIRST = null; + public const Int SECOND = 0; + private const ?BOOL THIRD = false; + public const Self FOURTH = null; +} +interface TypedInterfaceConstants +{ + protected const PaRenT FIRST = null; + private const ARRAY SECOND = []; + public const Float THIRD = 2.5; + final const ?STRING FOURTH = 'fourth'; +} +trait TypedTraitConstants { + const IterablE FIRST = null; + const Object SECOND = null; + const Mixed THIRD = 'third'; +} +enum TypedEnumConstants { + public const Iterable|FALSE|NULL FIRST = null; + protected const SELF|Parent /* comment */ |\Fully\Qualified\ClassName|UnQualifiedClass SECOND = null; + private const ClassName|/*comment*/Float|STRING|False THIRD = 'third'; + public const sTRing | aRRaY | FaLSe FOURTH = 'fourth'; +} + +class DNFTypes { + const (Parent&Something)|Float CONST_NAME = 1.5; + + public readonly TRUE|(\A&B) $prop; + + function DNFParamTypes ( + null|(\Package\ClassName&\Package\Other_Class)|INT $DNFinMiddle, + (\Package\ClassName&\Package\Other_Class)|ARRAY $parensAtStart, + False|(\Package\ClassName&\Package\Other_Class) $parentAtEnd, + ) {} + + function DNFReturnTypes ($var): object|(Self&\Package\Other_Class)|sTRINg|false {} +} + +// Intentional error, should be ignored by the sniff. +interface PropertiesNotAllowed { + public $notAllowed; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc.fixed index 6e03f7c2d..10be06b0b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.inc.fixed @@ -81,3 +81,65 @@ class ConstructorPropertyPromotionWithTypes { class ConstructorPropertyPromotionAndNormalParams { public function __construct(public int $promotedProp, ?int $normalArg) {} } + +function (): never { + exit; +}; + +function intersectionParamTypes (\Package\ClassName&\Package\Other_Class $var) {} + +function intersectionReturnTypes ($var): \Package\ClassName&\Package\Other_Class {} + +$arrow = fn (int $a, string $b, bool $c, array $d, Foo\Bar $e) : int => $a * $b; +$arrow = fn (int $a, string $b, bool $c, array $d, Foo\Bar $e) : float => $a * $b; + +$cl = function (false $a, true $b, null $c): ?true {}; + +class TypedClassConstants +{ + const UNTYPED = null; + const FLOAT = 'Reserved keyword as name is valid and should not be changed'; + const OBJECT = 'Reserved keyword as name is valid and should not be changed'; + + const ClassName FIRST = null; + public const int SECOND = 0; + private const ?bool THIRD = false; + public const self FOURTH = null; +} +interface TypedInterfaceConstants +{ + protected const parent FIRST = null; + private const array SECOND = []; + public const float THIRD = 2.5; + final const ?string FOURTH = 'fourth'; +} +trait TypedTraitConstants { + const iterable FIRST = null; + const object SECOND = null; + const mixed THIRD = 'third'; +} +enum TypedEnumConstants { + public const iterable|false|null FIRST = null; + protected const self|parent /* comment */ |\Fully\Qualified\ClassName|UnQualifiedClass SECOND = null; + private const ClassName|/*comment*/float|string|false THIRD = 'third'; + public const string | array | false FOURTH = 'fourth'; +} + +class DNFTypes { + const (parent&Something)|float CONST_NAME = 1.5; + + public readonly true|(\A&B) $prop; + + function DNFParamTypes ( + null|(\Package\ClassName&\Package\Other_Class)|int $DNFinMiddle, + (\Package\ClassName&\Package\Other_Class)|array $parensAtStart, + false|(\Package\ClassName&\Package\Other_Class) $parentAtEnd, + ) {} + + function DNFReturnTypes ($var): object|(self&\Package\Other_Class)|string|false {} +} + +// Intentional error, should be ignored by the sniff. +interface PropertiesNotAllowed { + public $notAllowed; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.php index d447e8f47..262193285 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/LowerCaseTypeUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowerCaseTypeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowerCaseType sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\LowerCaseTypeSniff + */ +final class LowerCaseTypeUnitTest extends AbstractSniffUnitTest { @@ -26,45 +31,68 @@ class LowerCaseTypeUnitTest extends AbstractSniffUnitTest public function getErrorList() { return [ - 14 => 1, - 15 => 1, - 16 => 1, - 17 => 1, - 18 => 1, - 21 => 4, - 22 => 3, - 23 => 3, - 25 => 1, - 26 => 2, - 27 => 2, - 32 => 4, - 36 => 1, - 37 => 1, - 38 => 1, - 39 => 1, - 43 => 2, - 44 => 1, - 46 => 1, - 49 => 1, - 51 => 2, - 53 => 1, - 55 => 2, - 60 => 1, - 61 => 1, - 62 => 1, - 63 => 1, - 64 => 1, - 65 => 1, - 66 => 1, - 67 => 1, - 68 => 1, - 69 => 1, - 71 => 3, - 72 => 2, - 73 => 3, - 74 => 3, - 78 => 3, - 82 => 2, + 14 => 1, + 15 => 1, + 16 => 1, + 17 => 1, + 18 => 1, + 21 => 4, + 22 => 3, + 23 => 3, + 25 => 1, + 26 => 2, + 27 => 2, + 32 => 4, + 36 => 1, + 37 => 1, + 38 => 1, + 39 => 1, + 43 => 2, + 44 => 1, + 46 => 1, + 49 => 1, + 51 => 2, + 53 => 1, + 55 => 2, + 60 => 1, + 61 => 1, + 62 => 1, + 63 => 1, + 64 => 1, + 65 => 1, + 66 => 1, + 67 => 1, + 68 => 1, + 69 => 1, + 71 => 3, + 72 => 2, + 73 => 3, + 74 => 3, + 78 => 3, + 82 => 2, + 85 => 1, + 94 => 5, + 96 => 4, + 105 => 1, + 106 => 1, + 107 => 1, + 111 => 1, + 112 => 1, + 113 => 1, + 114 => 1, + 117 => 1, + 118 => 1, + 119 => 1, + 122 => 3, + 123 => 2, + 124 => 3, + 125 => 3, + 129 => 2, + 131 => 1, + 134 => 1, + 135 => 1, + 136 => 1, + 139 => 2, ]; }//end getErrorList() @@ -80,7 +108,8 @@ public function getErrorList() */ public function getWarningList() { - return []; + // Warning from getMemberProperties() about parse error. + return [144 => 1]; }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.inc index 72bffe2c4..98159b472 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.inc @@ -8,3 +8,9 @@ if (@in_array($array, $needle)) } $hasValue = @in_array(haystack: $array, needle: $needle); + +// phpcs:set Generic.PHP.NoSilencedErrors error true +$fileContent = @file_get_contents('non_existent_file.txt'); +// phpcs:set Generic.PHP.NoSilencedErrors error false + +echo @$undefinedVariable; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.php index 0e7a4eaa4..b4e383c36 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NoSilencedErrorsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NoSilencedErrors sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\NoSilencedErrorsSniff + */ +final class NoSilencedErrorsUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class NoSilencedErrorsUnitTest extends AbstractSniffUnitTest */ public function getErrorList() { - return []; + return [13 => 1]; }//end getErrorList() @@ -43,6 +48,7 @@ public function getWarningList() return [ 5 => 1, 10 => 1, + 16 => 1, ]; }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.10.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.10.inc new file mode 100644 index 000000000..1d12ccbf8 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.10.inc @@ -0,0 +1,5 @@ +<?php + +declare(encoding='utf-8', ticks=1); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.11.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.11.inc new file mode 100644 index 000000000..67e21ba0e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.11.inc @@ -0,0 +1,5 @@ +<?php + +declare(strict_types=0); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.11.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.11.inc.fixed new file mode 100644 index 000000000..a88aaa97f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.11.inc.fixed @@ -0,0 +1,5 @@ +<?php + +declare(strict_types=1); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.12.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.12.inc new file mode 100644 index 000000000..da8080482 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.12.inc @@ -0,0 +1,5 @@ +<?php + +declare( strict_types = /*comment*/ 0 ); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.12.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.12.inc.fixed new file mode 100644 index 000000000..8894e58cc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.12.inc.fixed @@ -0,0 +1,5 @@ +<?php + +declare( strict_types = /*comment*/ 1 ); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.13.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.13.inc new file mode 100644 index 000000000..01c3a016d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.13.inc @@ -0,0 +1,3 @@ +<?php +// Safeguard sniff handles parse error/live coding correctly. +declare(strict_types= diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.14.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.14.inc new file mode 100644 index 000000000..022c27c85 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.14.inc @@ -0,0 +1,5 @@ +<?php + +declare( strict_types = 0, encoding='utf-8' ); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.14.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.14.inc.fixed new file mode 100644 index 000000000..53593ec87 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.14.inc.fixed @@ -0,0 +1,5 @@ +<?php + +declare( strict_types = 1, encoding='utf-8' ); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.15.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.15.inc new file mode 100644 index 000000000..100d909c7 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.15.inc @@ -0,0 +1,5 @@ +<?php + +declare(encoding='utf-8', strict_types=0); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.15.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.15.inc.fixed new file mode 100644 index 000000000..9f8a41f69 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.15.inc.fixed @@ -0,0 +1,5 @@ +<?php + +declare(encoding='utf-8', strict_types=1); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.3.inc new file mode 100644 index 000000000..ac5fc1d5b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.3.inc @@ -0,0 +1,5 @@ +<?php + +declare( Strict_Types = 1 ); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.4.inc new file mode 100644 index 000000000..04afffd75 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.4.inc @@ -0,0 +1,10 @@ +<?php +/** + * Very + * Long + * Docblock + */ + +declare(strict_types=1); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.5.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.5.inc new file mode 100644 index 000000000..b57a4a147 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.5.inc @@ -0,0 +1,6 @@ +<?php + +// This is a parse error, but the sniff should still handle this correctly. +declare($something = $value); + +const STRICT_TYPES = 1; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.6.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.6.inc new file mode 100644 index 000000000..4d8f92eaf --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.6.inc @@ -0,0 +1,4 @@ +<?php + +// This is a parse error, but the sniff should still handle this correctly. +declare($something = STRICT_TYPES); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.7.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.7.inc new file mode 100644 index 000000000..22e0b7fec --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.7.inc @@ -0,0 +1,4 @@ +<?php + +// Live coding. This should be ignored. +declare( diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.8.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.8.inc new file mode 100644 index 000000000..344a6bbbc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.8.inc @@ -0,0 +1,5 @@ +<?php + +declare(strict_types=1, encoding='utf-8'); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.9.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.9.inc new file mode 100644 index 000000000..9f8a41f69 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.9.inc @@ -0,0 +1,5 @@ +<?php + +declare(encoding='utf-8', strict_types=1); + +// some code diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.php index 4ab417cd0..9ef6ad8c4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/RequireStrictTypesUnitTest.php @@ -4,14 +4,19 @@ * * @author Sertan Danis <sdanis@squiz.net> * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class RequireStrictTypesUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the RequireStrictType sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\RequireStrictTypesSniff + */ +final class RequireStrictTypesUnitTest extends AbstractSniffUnitTest { @@ -28,27 +33,38 @@ class RequireStrictTypesUnitTest extends AbstractSniffUnitTest public function getErrorList($testFile='') { switch ($testFile) { - case 'RequireStrictTypesUnitTest.1.inc': + case 'RequireStrictTypesUnitTest.2.inc': + case 'RequireStrictTypesUnitTest.5.inc': + case 'RequireStrictTypesUnitTest.6.inc': + case 'RequireStrictTypesUnitTest.10.inc': + return [1 => 1]; + + default: return []; - break; } - return [1 => 1]; - }//end getErrorList() /** * Returns the lines where warnings should occur. * - * The key of the array should represent the line number and the value - * should represent the number of warnings that should occur on that line. + * @param string $testFile The name of the file being tested. * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return []; + switch ($testFile) { + case 'RequireStrictTypesUnitTest.11.inc': + case 'RequireStrictTypesUnitTest.12.inc': + case 'RequireStrictTypesUnitTest.14.inc': + case 'RequireStrictTypesUnitTest.15.inc': + return [3 => 1]; + + default: + return []; + } }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SAPIUsageUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SAPIUsageUnitTest.php index 08c0ccdcf..9ee274b6f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SAPIUsageUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SAPIUsageUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SAPIUsageUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SAPIUsage sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\SAPIUsageSniff + */ +final class SAPIUsageUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.2.inc new file mode 100644 index 000000000..11f8a5898 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.2.inc @@ -0,0 +1,3 @@ +<?= 'text' ?> +<div>text</div> +<?= if($x) { $y = 'text'; } ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.php index d8cd7efaa..58433eb1d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/SyntaxUnitTest.php @@ -5,14 +5,19 @@ * @author Greg Sherwood <gsherwood@squiz.net> * @author Blaine Schmeisser <blainesch@gmail.com> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SyntaxUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Syntax sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\SyntaxSniff + */ +final class SyntaxUnitTest extends AbstractSniffUnitTest { @@ -22,11 +27,20 @@ class SyntaxUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='') { - return [3 => 1]; + switch ($testFile) { + case 'SyntaxUnitTest.1.inc': + case 'SyntaxUnitTest.2.inc': + return [3 => 1]; + + default: + return []; + } }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc index 965bf3b51..30c6d2980 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc @@ -78,4 +78,21 @@ class MyClass var_dump(MyClass::true); -function true() {} \ No newline at end of file +function true() {} + +// Issue #3332 - ignore type declarations, but not default values. +class TypedThings { + const MYCONST = false; + + public int|false $int = false; + public Type|null $int = new MyObj(null); + + private function typed(int|false $param = null, Type|null $obj = new MyObj(false)) : string|false|null + { + if (true === false) { + return null; + } + } +} + +$cl = function (int|false $param = null, Type|null $obj = new MyObj(false)) : string|false|null {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc.fixed index ae83dc91d..7705198c8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc.fixed @@ -78,4 +78,21 @@ class MyClass var_dump(MyClass::true); -function true() {} \ No newline at end of file +function true() {} + +// Issue #3332 - ignore type declarations, but not default values. +class TypedThings { + const MYCONST = FALSE; + + public int|false $int = FALSE; + public Type|null $int = new MyObj(NULL); + + private function typed(int|false $param = NULL, Type|null $obj = new MyObj(FALSE)) : string|false|null + { + if (TRUE === FALSE) { + return NULL; + } + } +} + +$cl = function (int|false $param = NULL, Type|null $obj = new MyObj(FALSE)) : string|false|null {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.php index 0bdafe6a4..481c4ab1c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UpperCaseConstantUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UpperCaseConstant sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\UpperCaseConstantSniff + */ +final class UpperCaseConstantUnitTest extends AbstractSniffUnitTest { @@ -40,6 +45,13 @@ public function getErrorList() 48 => 1, 70 => 1, 71 => 1, + 85 => 1, + 87 => 1, + 88 => 1, + 90 => 2, + 92 => 2, + 93 => 1, + 98 => 2, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.php index 6a9284822..c08918d15 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\Strings; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UnnecessaryStringConcatUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UnnecessaryStringConcat sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\Strings\UnnecessaryStringConcatSniff + */ +final class UnnecessaryStringConcatUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class UnnecessaryStringConcatUnitTest extends AbstractSniffUnitTest * * @return array<int, int> */ - public function getErrorList($testFile='UnnecessaryStringConcatUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'UnnecessaryStringConcatUnitTest.inc': @@ -37,7 +42,7 @@ public function getErrorList($testFile='UnnecessaryStringConcatUnitTest.inc') 19 => 1, 20 => 1, ]; - break; + case 'UnnecessaryStringConcatUnitTest.js': return [ 1 => 1, @@ -46,10 +51,9 @@ public function getErrorList($testFile='UnnecessaryStringConcatUnitTest.inc') 14 => 1, 15 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.7.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.7.inc new file mode 100644 index 000000000..85cae1fdc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.7.inc @@ -0,0 +1,19 @@ +<!-- Test detecting merge conflicts in inline HTML. --> +<div class="abc"> +<<<<<<< HEAD + <p id="test-this">Testing a merge conflict.</p> +======= + <p id="test-that">Another text string.</p> +>>>>>>> ref/heads/feature-branch +</div> + +<!-- Test detecting merge conflicts in inline HTML. --> +<div class="abc"> +<<<<<<< HEAD + <p id="test-this"><?= 'Testing a merge conflict.'; ?></p> +======= + <p id="test-that"><?= 'Another text string.'; ?></p> +>>>>>>> ref/heads/feature-branch +</div> + +<?= $text; ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.php index a36caafbd..bc9663849 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/GitMergeConflictUnitTest.php @@ -4,14 +4,19 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2017 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\VersionControl; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class GitMergeConflictUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the GitMergeConflict sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\VersionControl\GitMergeConflictSniff + */ +final class GitMergeConflictUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class GitMergeConflictUnitTest extends AbstractSniffUnitTest * * @return array<int, int> */ - public function getErrorList($testFile='GitMergeConflictUnitTest.1.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'GitMergeConflictUnitTest.1.inc': @@ -99,6 +104,16 @@ public function getErrorList($testFile='GitMergeConflictUnitTest.1.inc') 32 => 1, ]; + case 'GitMergeConflictUnitTest.7.inc': + return [ + 3 => 1, + 5 => 1, + 7 => 1, + 12 => 1, + 14 => 1, + 16 => 1, + ]; + case 'GitMergeConflictUnitTest.1.css': return [ 3 => 1, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/SubversionPropertiesUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/SubversionPropertiesUnitTest.php index d108974ab..7be9cc0ed 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/SubversionPropertiesUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/VersionControl/SubversionPropertiesUnitTest.php @@ -4,21 +4,26 @@ * * @author Juliette Reinders Folmer <phpcs_nospam@adviesenzo.nl> * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\VersionControl; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SubversionPropertiesUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SubversionProperties sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\VersionControl\SubversionPropertiesSniff + */ +final class SubversionPropertiesUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.1.inc new file mode 100644 index 000000000..4ce050840 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.1.inc @@ -0,0 +1,192 @@ +<?php + +/* + * Make sure the sniff does not act on structures it shouldn't act on. + * All parentheses have extra spacing around it to test this properly. + */ +$b = functioncall( $something ) ; +$b = function( $something ) {}; +$c = myFunction( $arg1 , $arg2 = array( ) ); + +function something( $param ) {} + +$d = new MyClass( ); +$e = new class( ) {}; + +try { +} catch( Exception $e ) { +} + +include( PATH . 'file.php' ); + +if ( in_array( $arg1, array( 'foo','bar' ) ) ) {} +isset( $abc ); +unset( $abc ); +empty( $abc ); +eval( $abc ); +exit( $abc ); +clone( $_date1 <= $_date2 ? $_date1 : $_date2 ); +declare( ticks=1 ); +list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $q ); +throw( $e ); +yield from ( function(){} ); + +$obj->{$var}( $foo,$bar ); + +$bar(function( $a, $b ) { + return function( $c, $d ) use ( $a, $b ) { + echo $a, $b, $c, $d; + }; +})( 'a','b' )( 'c','d' ); + +$closure( $foo,$bar ); +$var = $closure() + $closure( $foo,$bar ) + self::$closure( $foo,$bar ); + +class Test { + public static function baz( $foo, $bar ) { + $a = new self( $foo,$bar ); + $b = new static( $foo,$bar ); + } +} + +/* + * Test warning for empty parentheses. + */ +$a = 4 + (); // Warning. +$a = 4 + ( ); // Warning. +$a = 4 + (/* Not empty */); + +/* + * Test the actual sniff. + */ +if ((null !== $extra) && ($row->extra !== $extra)) {} + +if (( null !== $extra ) && ( $row->extra !== $extra )) {} // Bad x 4. + +if (( null !== $extra // Bad x 1. + && is_int($extra)) + && ( $row->extra !== $extra // Bad x 1. + || $something ) // Bad x 1. +) {} + +if (( null !== $extra ) // Bad x 2. + && ( $row->extra !== $extra ) // Bad x 2. +) {} + +$a = (null !== $extra); +$a = ( null !== $extra ); // Bad x 2. + +$sx = $vert ? ($w - 1) : 0; + +$this->is_overloaded = ( ( ini_get("mbstring.func_overload") & 2 ) != 0 ) && function_exists('mb_substr'); // Bad x 4. + +$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 ); + +if ( $success && ('nothumb' == $target || 'all' == $target) ) {} + +$directory = ('/' == $file[ strlen($file)-1 ]); + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 +if ((null !== $extra) && ($row->extra !== $extra)) {} // Bad x 4. + +if (( null !== $extra ) && ( $row->extra !== $extra )) {} + +if (( null !== $extra // Bad x 1. + && is_int($extra)) // Bad x 1. + && ( $row->extra !== $extra + || $something ) // Bad x 1. +) {} + +if ((null !== $extra) // Bad x 2. + && ($row->extra !== $extra) // Bad x 2. +) {} + +$a = (null !== $extra); // Bad x 2. +$a = ( null !== $extra ); + +$sx = $vert ? ($w - 1) : 0; // Bad x 2. + +$this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr'); // Bad x 4. + +$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 ); // Bad x 4. + +if ( $success && ('nothumb' == $target || 'all' == $target) ) {} // Bad x 2. + +$directory = ('/' == $file[ strlen($file)-1 ]); // Bad x 2. + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 + +/* + * Test handling of ignoreNewlines. + */ +if ( + ( + null !== $extra + ) && ( + $row->extra !== $extra + ) +) {} // Bad x 4, 1 x line 123, 2 x line 125, 1 x line 127. + + +$a = ( + null !== $extra +); // Bad x 2, 1 x line 131, 1 x line 133. + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 +if ( + ( + null !== $extra + ) && ( + $row->extra !== $extra + ) +) {} // Bad x 4, 1 x line 137, 2 x line 139, 1 x line 141. + +$a = ( + null !== $extra +); // Bad x 2, 1 x line 144, 1 x line 146. +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines true +if ( + ( + null !== $extra + ) && ( + $row->extra !== $extra + ) +) {} + +$a = ( + null !== $extra +); +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines false + +if (true) {} ( 1+2) === 3 ? $a = 1 : $a = 2; +class A {} ( 1+2) === 3 ? $a = 1 : $a = 2; +function foo() {} ( 1+2) === 3 ? $a = 1 : $a = 2; + +// Issue #3618. +class NonArbitraryParenthesesWithKeywords { + public static function baz( $foo, $bar ) { + $a = new self(); + $b = new parent(); + $c = new static(); + + // self/static are already tested above, round line 45. + $d = new parent( $foo,$bar ); + } +} + +// Test that the match expression does not trigger the sniff. +$b = match ( $a ) { + 1 => true, +}; + +// Parentheses after die/exit in a switch case should be ignored. +switch ( $type ) { + case A: + exit( 1 ); + case B: + die(); + default: + break; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.1.inc.fixed new file mode 100644 index 000000000..a00228081 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.1.inc.fixed @@ -0,0 +1,180 @@ +<?php + +/* + * Make sure the sniff does not act on structures it shouldn't act on. + * All parentheses have extra spacing around it to test this properly. + */ +$b = functioncall( $something ) ; +$b = function( $something ) {}; +$c = myFunction( $arg1 , $arg2 = array( ) ); + +function something( $param ) {} + +$d = new MyClass( ); +$e = new class( ) {}; + +try { +} catch( Exception $e ) { +} + +include( PATH . 'file.php' ); + +if ( in_array( $arg1, array( 'foo','bar' ) ) ) {} +isset( $abc ); +unset( $abc ); +empty( $abc ); +eval( $abc ); +exit( $abc ); +clone( $_date1 <= $_date2 ? $_date1 : $_date2 ); +declare( ticks=1 ); +list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $q ); +throw( $e ); +yield from ( function(){} ); + +$obj->{$var}( $foo,$bar ); + +$bar(function( $a, $b ) { + return function( $c, $d ) use ( $a, $b ) { + echo $a, $b, $c, $d; + }; +})( 'a','b' )( 'c','d' ); + +$closure( $foo,$bar ); +$var = $closure() + $closure( $foo,$bar ) + self::$closure( $foo,$bar ); + +class Test { + public static function baz( $foo, $bar ) { + $a = new self( $foo,$bar ); + $b = new static( $foo,$bar ); + } +} + +/* + * Test warning for empty parentheses. + */ +$a = 4 + (); // Warning. +$a = 4 + ( ); // Warning. +$a = 4 + (/* Not empty */); + +/* + * Test the actual sniff. + */ +if ((null !== $extra) && ($row->extra !== $extra)) {} + +if ((null !== $extra) && ($row->extra !== $extra)) {} // Bad x 4. + +if ((null !== $extra // Bad x 1. + && is_int($extra)) + && ($row->extra !== $extra // Bad x 1. + || $something) // Bad x 1. +) {} + +if ((null !== $extra) // Bad x 2. + && ($row->extra !== $extra) // Bad x 2. +) {} + +$a = (null !== $extra); +$a = (null !== $extra); // Bad x 2. + +$sx = $vert ? ($w - 1) : 0; + +$this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr'); // Bad x 4. + +$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 ); + +if ( $success && ('nothumb' == $target || 'all' == $target) ) {} + +$directory = ('/' == $file[ strlen($file)-1 ]); + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 +if (( null !== $extra ) && ( $row->extra !== $extra )) {} // Bad x 4. + +if (( null !== $extra ) && ( $row->extra !== $extra )) {} + +if (( null !== $extra // Bad x 1. + && is_int($extra) ) // Bad x 1. + && ( $row->extra !== $extra + || $something ) // Bad x 1. +) {} + +if (( null !== $extra ) // Bad x 2. + && ( $row->extra !== $extra ) // Bad x 2. +) {} + +$a = ( null !== $extra ); // Bad x 2. +$a = ( null !== $extra ); + +$sx = $vert ? ( $w - 1 ) : 0; // Bad x 2. + +$this->is_overloaded = ( ( ini_get("mbstring.func_overload") & 2 ) != 0 ) && function_exists('mb_substr'); // Bad x 4. + +$image->flip( ( $operation->axis & 1 ) != 0, ( $operation->axis & 2 ) != 0 ); // Bad x 4. + +if ( $success && ( 'nothumb' == $target || 'all' == $target ) ) {} // Bad x 2. + +$directory = ( '/' == $file[ strlen($file)-1 ] ); // Bad x 2. + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 + +/* + * Test handling of ignoreNewlines. + */ +if ( + (null !== $extra) && ($row->extra !== $extra) +) {} // Bad x 4, 1 x line 123, 2 x line 125, 1 x line 127. + + +$a = (null !== $extra); // Bad x 2, 1 x line 131, 1 x line 133. + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 +if ( + ( null !== $extra ) && ( $row->extra !== $extra ) +) {} // Bad x 4, 1 x line 137, 2 x line 139, 1 x line 141. + +$a = ( null !== $extra ); // Bad x 2, 1 x line 144, 1 x line 146. +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 + +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines true +if ( + ( + null !== $extra + ) && ( + $row->extra !== $extra + ) +) {} + +$a = ( + null !== $extra +); +// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines false + +if (true) {} (1+2) === 3 ? $a = 1 : $a = 2; +class A {} (1+2) === 3 ? $a = 1 : $a = 2; +function foo() {} (1+2) === 3 ? $a = 1 : $a = 2; + +// Issue #3618. +class NonArbitraryParenthesesWithKeywords { + public static function baz( $foo, $bar ) { + $a = new self(); + $b = new parent(); + $c = new static(); + + // self/static are already tested above, round line 45. + $d = new parent( $foo,$bar ); + } +} + +// Test that the match expression does not trigger the sniff. +$b = match ( $a ) { + 1 => true, +}; + +// Parentheses after die/exit in a switch case should be ignored. +switch ( $type ) { + case A: + exit( 1 ); + case B: + die(); + default: + break; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.2.inc new file mode 100644 index 000000000..3d5bcd0a5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.2.inc @@ -0,0 +1,4 @@ +<?php + +// Intentional parse error. Testing that the sniff is *not* triggered in this case. +function something $param ) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.inc deleted file mode 100644 index bad3998f9..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.inc +++ /dev/null @@ -1,165 +0,0 @@ -<?php - -/* - * Make sure the sniff does not act on structures it shouldn't act on. - * All parentheses have extra spacing around it to test this properly. - */ -$b = functioncall( $something ) ; -$b = function( $something ) {}; -$c = myFunction( $arg1 , $arg2 = array( ) ); - -function something( $param ) {} - -$d = new MyClass( ); -$e = new class( ) {}; - -try { -} catch( Exception $e ) { -} - -include( PATH . 'file.php' ); - -if ( in_array( $arg1, array( 'foo','bar' ) ) ) {} -isset( $abc ); -unset( $abc ); -empty( $abc ); -eval( $abc ); -exit( $abc ); -clone( $_date1 <= $_date2 ? $_date1 : $_date2 ); -declare( ticks=1 ); -list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $q ); -throw( $e ); -yield from ( function(){} ); - -$obj->{$var}( $foo,$bar ); - -$bar(function( $a, $b ) { - return function( $c, $d ) use ( $a, $b ) { - echo $a, $b, $c, $d; - }; -})( 'a','b' )( 'c','d' ); - -$closure( $foo,$bar ); -$var = $closure() + $closure( $foo,$bar ) + self::$closure( $foo,$bar ); - -class Test { - public static function baz( $foo, $bar ) { - $a = new self( $foo,$bar ); - $b = new static( $foo,$bar ); - } -} - -/* - * Test warning for empty parentheses. - */ -$a = 4 + (); // Warning. -$a = 4 + ( ); // Warning. -$a = 4 + (/* Not empty */); - -/* - * Test the actual sniff. - */ -if ((null !== $extra) && ($row->extra !== $extra)) {} - -if (( null !== $extra ) && ( $row->extra !== $extra )) {} // Bad x 4. - -if (( null !== $extra // Bad x 1. - && is_int($extra)) - && ( $row->extra !== $extra // Bad x 1. - || $something ) // Bad x 1. -) {} - -if (( null !== $extra ) // Bad x 2. - && ( $row->extra !== $extra ) // Bad x 2. -) {} - -$a = (null !== $extra); -$a = ( null !== $extra ); // Bad x 2. - -$sx = $vert ? ($w - 1) : 0; - -$this->is_overloaded = ( ( ini_get("mbstring.func_overload") & 2 ) != 0 ) && function_exists('mb_substr'); // Bad x 4. - -$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 ); - -if ( $success && ('nothumb' == $target || 'all' == $target) ) {} - -$directory = ('/' == $file[ strlen($file)-1 ]); - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 -if ((null !== $extra) && ($row->extra !== $extra)) {} // Bad x 4. - -if (( null !== $extra ) && ( $row->extra !== $extra )) {} - -if (( null !== $extra // Bad x 1. - && is_int($extra)) // Bad x 1. - && ( $row->extra !== $extra - || $something ) // Bad x 1. -) {} - -if ((null !== $extra) // Bad x 2. - && ($row->extra !== $extra) // Bad x 2. -) {} - -$a = (null !== $extra); // Bad x 2. -$a = ( null !== $extra ); - -$sx = $vert ? ($w - 1) : 0; // Bad x 2. - -$this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr'); // Bad x 4. - -$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 ); // Bad x 4. - -if ( $success && ('nothumb' == $target || 'all' == $target) ) {} // Bad x 2. - -$directory = ('/' == $file[ strlen($file)-1 ]); // Bad x 2. - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 - -/* - * Test handling of ignoreNewlines. - */ -if ( - ( - null !== $extra - ) && ( - $row->extra !== $extra - ) -) {} // Bad x 4, 1 x line 123, 2 x line 125, 1 x line 127. - - -$a = ( - null !== $extra -); // Bad x 2, 1 x line 131, 1 x line 133. - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 -if ( - ( - null !== $extra - ) && ( - $row->extra !== $extra - ) -) {} // Bad x 4, 1 x line 137, 2 x line 139, 1 x line 141. - -$a = ( - null !== $extra -); // Bad x 2, 1 x line 144, 1 x line 146. -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines true -if ( - ( - null !== $extra - ) && ( - $row->extra !== $extra - ) -) {} - -$a = ( - null !== $extra -); -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines false - -if (true) {} ( 1+2) === 3 ? $a = 1 : $a = 2; -class A {} ( 1+2) === 3 ? $a = 1 : $a = 2; -function foo() {} ( 1+2) === 3 ? $a = 1 : $a = 2; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.inc.fixed deleted file mode 100644 index 08fcd6244..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.inc.fixed +++ /dev/null @@ -1,153 +0,0 @@ -<?php - -/* - * Make sure the sniff does not act on structures it shouldn't act on. - * All parentheses have extra spacing around it to test this properly. - */ -$b = functioncall( $something ) ; -$b = function( $something ) {}; -$c = myFunction( $arg1 , $arg2 = array( ) ); - -function something( $param ) {} - -$d = new MyClass( ); -$e = new class( ) {}; - -try { -} catch( Exception $e ) { -} - -include( PATH . 'file.php' ); - -if ( in_array( $arg1, array( 'foo','bar' ) ) ) {} -isset( $abc ); -unset( $abc ); -empty( $abc ); -eval( $abc ); -exit( $abc ); -clone( $_date1 <= $_date2 ? $_date1 : $_date2 ); -declare( ticks=1 ); -list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $q ); -throw( $e ); -yield from ( function(){} ); - -$obj->{$var}( $foo,$bar ); - -$bar(function( $a, $b ) { - return function( $c, $d ) use ( $a, $b ) { - echo $a, $b, $c, $d; - }; -})( 'a','b' )( 'c','d' ); - -$closure( $foo,$bar ); -$var = $closure() + $closure( $foo,$bar ) + self::$closure( $foo,$bar ); - -class Test { - public static function baz( $foo, $bar ) { - $a = new self( $foo,$bar ); - $b = new static( $foo,$bar ); - } -} - -/* - * Test warning for empty parentheses. - */ -$a = 4 + (); // Warning. -$a = 4 + ( ); // Warning. -$a = 4 + (/* Not empty */); - -/* - * Test the actual sniff. - */ -if ((null !== $extra) && ($row->extra !== $extra)) {} - -if ((null !== $extra) && ($row->extra !== $extra)) {} // Bad x 4. - -if ((null !== $extra // Bad x 1. - && is_int($extra)) - && ($row->extra !== $extra // Bad x 1. - || $something) // Bad x 1. -) {} - -if ((null !== $extra) // Bad x 2. - && ($row->extra !== $extra) // Bad x 2. -) {} - -$a = (null !== $extra); -$a = (null !== $extra); // Bad x 2. - -$sx = $vert ? ($w - 1) : 0; - -$this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr'); // Bad x 4. - -$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 ); - -if ( $success && ('nothumb' == $target || 'all' == $target) ) {} - -$directory = ('/' == $file[ strlen($file)-1 ]); - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 -if (( null !== $extra ) && ( $row->extra !== $extra )) {} // Bad x 4. - -if (( null !== $extra ) && ( $row->extra !== $extra )) {} - -if (( null !== $extra // Bad x 1. - && is_int($extra) ) // Bad x 1. - && ( $row->extra !== $extra - || $something ) // Bad x 1. -) {} - -if (( null !== $extra ) // Bad x 2. - && ( $row->extra !== $extra ) // Bad x 2. -) {} - -$a = ( null !== $extra ); // Bad x 2. -$a = ( null !== $extra ); - -$sx = $vert ? ( $w - 1 ) : 0; // Bad x 2. - -$this->is_overloaded = ( ( ini_get("mbstring.func_overload") & 2 ) != 0 ) && function_exists('mb_substr'); // Bad x 4. - -$image->flip( ( $operation->axis & 1 ) != 0, ( $operation->axis & 2 ) != 0 ); // Bad x 4. - -if ( $success && ( 'nothumb' == $target || 'all' == $target ) ) {} // Bad x 2. - -$directory = ( '/' == $file[ strlen($file)-1 ] ); // Bad x 2. - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 - -/* - * Test handling of ignoreNewlines. - */ -if ( - (null !== $extra) && ($row->extra !== $extra) -) {} // Bad x 4, 1 x line 123, 2 x line 125, 1 x line 127. - - -$a = (null !== $extra); // Bad x 2, 1 x line 131, 1 x line 133. - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 1 -if ( - ( null !== $extra ) && ( $row->extra !== $extra ) -) {} // Bad x 4, 1 x line 137, 2 x line 139, 1 x line 141. - -$a = ( null !== $extra ); // Bad x 2, 1 x line 144, 1 x line 146. -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing spacing 0 - -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines true -if ( - ( - null !== $extra - ) && ( - $row->extra !== $extra - ) -) {} - -$a = ( - null !== $extra -); -// phpcs:set Generic.WhiteSpace.ArbitraryParenthesesSpacing ignoreNewlines false - -if (true) {} (1+2) === 3 ? $a = 1 : $a = 2; -class A {} (1+2) === 3 ? $a = 1 : $a = 2; -function foo() {} (1+2) === 3 ? $a = 1 : $a = 2; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.php index 0f70e287a..64ca21a93 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ArbitraryParenthesesSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2017 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ArbitraryParenthesesSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ArbitraryParenthesesSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ArbitraryParenthesesSpacingSniff + */ +final class ArbitraryParenthesesSpacingUnitTest extends AbstractSniffUnitTest { @@ -21,45 +26,53 @@ class ArbitraryParenthesesSpacingUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 64 => 4, - 66 => 1, - 68 => 1, - 69 => 1, - 72 => 2, - 73 => 2, - 77 => 2, - 81 => 4, - 90 => 4, - 94 => 1, - 95 => 1, - 97 => 1, - 100 => 2, - 101 => 2, - 104 => 2, - 107 => 2, - 109 => 4, - 111 => 4, - 113 => 2, - 115 => 2, - 123 => 1, - 125 => 2, - 127 => 1, - 131 => 1, - 133 => 1, - 137 => 1, - 139 => 2, - 141 => 1, - 144 => 1, - 146 => 1, - 163 => 1, - 164 => 1, - 165 => 1, - ]; + switch ($testFile) { + case 'ArbitraryParenthesesSpacingUnitTest.1.inc': + return [ + 64 => 4, + 66 => 1, + 68 => 1, + 69 => 1, + 72 => 2, + 73 => 2, + 77 => 2, + 81 => 4, + 90 => 4, + 94 => 1, + 95 => 1, + 97 => 1, + 100 => 2, + 101 => 2, + 104 => 2, + 107 => 2, + 109 => 4, + 111 => 4, + 113 => 2, + 115 => 2, + 123 => 1, + 125 => 2, + 127 => 1, + 131 => 1, + 133 => 1, + 137 => 1, + 139 => 2, + 141 => 1, + 144 => 1, + 146 => 1, + 163 => 1, + 164 => 1, + 165 => 1, + ]; + + default: + return []; + }//end switch }//end getErrorList() @@ -70,14 +83,22 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array<int, int> */ - public function getWarningList() + public function getWarningList($testFile='') { - return [ - 55 => 1, - 56 => 1, - ]; + switch ($testFile) { + case 'ArbitraryParenthesesSpacingUnitTest.1.inc': + return [ + 55 => 1, + 56 => 1, + ]; + + default: + return []; + }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.3.inc new file mode 100644 index 000000000..4df731a3c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.3.inc @@ -0,0 +1,19 @@ +<?= + "$hello $there"; +?> +<html> + <head> + <title>Foo + + +
+
+
+
+
+
+ + + + + + + Foo + + +
+
+
+
+
+
+ + + + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowSpaceIndentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowSpaceIndent sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\DisallowSpaceIndentSniff + */ +final class DisallowSpaceIndentUnitTest extends AbstractSniffUnitTest { @@ -44,7 +49,7 @@ public function setCliValues($testFile, $config) * * @return array */ - public function getErrorList($testFile='DisallowSpaceIndentUnitTest.1.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'DisallowSpaceIndentUnitTest.1.inc': @@ -85,16 +90,26 @@ public function getErrorList($testFile='DisallowSpaceIndentUnitTest.1.inc') 117 => 1, 118 => 1, ]; - break; + + case 'DisallowSpaceIndentUnitTest.3.inc': + return [ + 2 => 1, + 5 => 1, + 10 => 1, + 12 => 1, + 13 => 1, + 14 => 1, + 15 => 1, + ]; + case 'DisallowSpaceIndentUnitTest.js': return [3 => 1]; - break; + case 'DisallowSpaceIndentUnitTest.css': return [2 => 1]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.1.inc.fixed similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.inc.fixed rename to api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.1.inc.fixed diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.2.inc new file mode 100644 index 000000000..4df731a3c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.2.inc @@ -0,0 +1,19 @@ + + + + Foo + + +
+
+
+
+
+
+ + + + + + + Foo + + +
+
+
+
+
+
+ + + + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowTabIndentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowTabIndent sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\DisallowTabIndentSniff + */ +final class DisallowTabIndentUnitTest extends AbstractSniffUnitTest { @@ -40,10 +45,10 @@ public function setCliValues($testFile, $config) * * @return array */ - public function getErrorList($testFile='DisallowTabIndentUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { - case 'DisallowTabIndentUnitTest.inc': + case 'DisallowTabIndentUnitTest.1.inc': return [ 5 => 2, 9 => 1, @@ -83,23 +88,46 @@ public function getErrorList($testFile='DisallowTabIndentUnitTest.inc') 92 => 1, 93 => 1, ]; - break; + + case 'DisallowTabIndentUnitTest.2.inc': + return [ + 6 => 1, + 7 => 1, + 8 => 1, + 9 => 1, + 10 => 1, + 11 => 1, + 12 => 1, + 13 => 1, + 19 => 1, + ]; + + case 'DisallowTabIndentUnitTest.3.inc': + if (PHP_VERSION_ID >= 70300) { + return [ + 7 => 1, + 13 => 1, + ]; + } + + // PHP 7.2 or lower: PHP version which doesn't support flexible heredocs/nowdocs yet. + return []; + case 'DisallowTabIndentUnitTest.js': return [ 3 => 1, 5 => 1, 6 => 1, ]; - break; + case 'DisallowTabIndentUnitTest.css': return [ 1 => 1, 2 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc index 22c611be9..535053b0d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc @@ -15,3 +15,29 @@ $i /*comment*/ --; $i++; $i ++; $i /*comment*/ ++; + +// Handle properties and array access too. +$i['key']++; +$i['key'] ++; +$i['key']['id']++; +$i['key']['id'] ++; + +$obj->prop++; +$obj->prop ++; +$obj?->prop ++; + +$obj->obj->prop++; +$obj->obj->prop ++; +$obj?->obj->prop ++; + +$obj->prop['key']++; +$obj->prop['key'] ++; + +--ClassName::$prop; +-- ClassName::$prop; + +getObject()->count +++; +getObject()->count++; +++ getObject()->count; +++getObject()->count; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc.fixed index 7cf0ab81e..c30332b25 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.inc.fixed @@ -14,3 +14,28 @@ $i /*comment*/ --; $i++; $i++; $i /*comment*/ ++; + +// Handle properties and array access too. +$i['key']++; +$i['key']++; +$i['key']['id']++; +$i['key']['id']++; + +$obj->prop++; +$obj->prop++; +$obj?->prop++; + +$obj->obj->prop++; +$obj->obj->prop++; +$obj?->obj->prop++; + +$obj->prop['key']++; +$obj->prop['key']++; + +--ClassName::$prop; +--ClassName::$prop; + +getObject()->count++; +getObject()->count++; +++getObject()->count; +++getObject()->count; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.php index 0959d673e..91e349338 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/IncrementDecrementSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Juliette Reinders Folmer * @copyright 2018 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class IncrementDecrementSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the IncrementDecrementSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\IncrementDecrementSpacingSniff + */ +final class IncrementDecrementSpacingUnitTest extends AbstractSniffUnitTest { @@ -25,21 +30,36 @@ class IncrementDecrementSpacingUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='IncrementDecrementSpacingUnitTest.inc') + public function getErrorList($testFile='') { + $errors = [ + 5 => 1, + 6 => 1, + 8 => 1, + 10 => 1, + 13 => 1, + 14 => 1, + 16 => 1, + 17 => 1, + ]; + switch ($testFile) { case 'IncrementDecrementSpacingUnitTest.inc': + $errors[21] = 1; + $errors[23] = 1; + $errors[26] = 1; + $errors[27] = 1; + $errors[30] = 1; + $errors[31] = 1; + $errors[34] = 1; + $errors[37] = 1; + $errors[40] = 1; + $errors[42] = 1; + + return $errors; + case 'IncrementDecrementSpacingUnitTest.js': - return [ - 5 => 1, - 6 => 1, - 8 => 1, - 10 => 1, - 13 => 1, - 14 => 1, - 16 => 1, - 17 => 1, - ]; + return $errors; default: return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.1.inc new file mode 100644 index 000000000..1847778d0 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.1.inc @@ -0,0 +1,91 @@ + * @copyright 2006-2017 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LanguageConstructSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LanguageConstructSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\LanguageConstructSpacingSniff + */ +final class LanguageConstructSpacingUnitTest extends AbstractSniffUnitTest { @@ -21,37 +26,56 @@ class LanguageConstructSpacingUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 3 => 1, - 7 => 1, - 11 => 1, - 15 => 1, - 19 => 1, - 23 => 1, - 27 => 1, - 30 => 1, - 33 => 1, - 34 => 1, - 35 => 1, - 36 => 1, - 38 => 1, - 44 => 1, - 45 => 1, - 46 => 2, - 49 => 1, - 51 => 1, - 59 => 1, - 61 => 1, - 63 => 1, - 67 => 1, - 70 => 1, - 71 => 1, - 75 => 1, - ]; + switch ($testFile) { + case 'LanguageConstructSpacingUnitTest.1.inc': + return [ + 3 => 1, + 5 => 1, + 8 => 1, + 10 => 1, + 13 => 1, + 15 => 1, + 18 => 1, + 20 => 1, + 23 => 1, + 25 => 1, + 28 => 1, + 30 => 1, + 33 => 1, + 36 => 1, + 39 => 1, + 40 => 1, + 43 => 1, + 44 => 1, + 45 => 1, + 46 => 1, + 48 => 1, + 52 => 1, + 55 => 1, + 56 => 1, + 57 => 2, + 60 => 1, + 63 => 1, + 65 => 1, + 73 => 1, + 75 => 1, + 77 => 1, + 81 => 1, + 83 => 1, + 85 => 1, + 86 => 1, + 90 => 1, + ]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ScopeIndentUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ScopeIndentUnitTest.1.inc index 6d63a64a3..bab866e00 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ScopeIndentUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/ScopeIndentUnitTest.1.inc @@ -1547,6 +1547,73 @@ $foo = match ($type) { ], }; +$a = [ + 'a' => [ + 'a' => fn () => foo() + ], + 'a' => [ + 'a' => 'a', + ] +]; + +switch ($foo) { + case 'a': + $foo = match ($foo) { + 'bar' => 'custom_1', + default => 'a' + }; + return $foo; + case 'b': + return match ($foo) { + 'bar' => 'custom_1', + default => 'b' + }; + default: + return 'default'; +} + +foo(function ($foo) { + return [ + match ($foo) { + } + ]; +}); + +// Issue #110. +echo match (1) { + 0 => match (2) { + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, + 1 => match (2) { + 1 => match (3) { + 3 => 3, + default => -1, + }, + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, +}; + +// Issue #437. +match (true) { + default => [ + 'unrelated' => '', + 'example' => array_filter( + array_map( + function () { + return null; + }, + [] + ) + ) + ] +}; + /* ADD NEW TESTS ABOVE THIS LINE AND MAKE SURE THAT THE 1 (space-based) AND 2 (tab-based) FILES ARE IN SYNC! */ ?> @@ -1555,7 +1622,7 @@ $foo = match ($type) { [ + 'a' => fn () => foo() + ], + 'a' => [ + 'a' => 'a', + ] +]; + +switch ($foo) { + case 'a': + $foo = match ($foo) { + 'bar' => 'custom_1', + default => 'a' + }; + return $foo; + case 'b': + return match ($foo) { + 'bar' => 'custom_1', + default => 'b' + }; + default: + return 'default'; +} + +foo(function ($foo) { + return [ + match ($foo) { + } + ]; +}); + +// Issue #110. +echo match (1) { + 0 => match (2) { + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, + 1 => match (2) { + 1 => match (3) { + 3 => 3, + default => -1, + }, + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, +}; + +// Issue #437. +match (true) { + default => [ + 'unrelated' => '', + 'example' => array_filter( + array_map( + function () { + return null; + }, + [] + ) + ) + ] +}; + /* ADD NEW TESTS ABOVE THIS LINE AND MAKE SURE THAT THE 1 (space-based) AND 2 (tab-based) FILES ARE IN SYNC! */ ?> @@ -1555,7 +1622,7 @@ $foo = match ($type) { [ + 'a' => fn () => foo() + ], + 'a' => [ + 'a' => 'a', + ] +]; + +switch ($foo) { + case 'a': + $foo = match ($foo) { + 'bar' => 'custom_1', + default => 'a' + }; + return $foo; + case 'b': + return match ($foo) { + 'bar' => 'custom_1', + default => 'b' + }; + default: + return 'default'; +} + +foo(function ($foo) { + return [ + match ($foo) { + } + ]; +}); + +// Issue #110. +echo match (1) { + 0 => match (2) { + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, + 1 => match (2) { + 1 => match (3) { + 3 => 3, + default => -1, + }, + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, +}; + +// Issue #437. +match (true) { + default => [ + 'unrelated' => '', + 'example' => array_filter( + array_map( + function () { + return null; + }, + [] + ) + ) + ] +}; + /* ADD NEW TESTS ABOVE THIS LINE AND MAKE SURE THAT THE 1 (space-based) AND 2 (tab-based) FILES ARE IN SYNC! */ ?> @@ -1555,7 +1622,7 @@ $foo = match ($type) { [ + 'a' => fn () => foo() + ], + 'a' => [ + 'a' => 'a', + ] +]; + +switch ($foo) { + case 'a': + $foo = match ($foo) { + 'bar' => 'custom_1', + default => 'a' + }; + return $foo; + case 'b': + return match ($foo) { + 'bar' => 'custom_1', + default => 'b' + }; + default: + return 'default'; +} + +foo(function ($foo) { + return [ + match ($foo) { + } + ]; +}); + +// Issue #110. +echo match (1) { + 0 => match (2) { + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, + 1 => match (2) { + 1 => match (3) { + 3 => 3, + default => -1, + }, + 2 => match (3) { + 3 => 3, + default => -1, + }, + }, +}; + +// Issue #437. +match (true) { + default => [ + 'unrelated' => '', + 'example' => array_filter( + array_map( + function () { + return null; + }, + [] + ) + ) + ] +}; + /* ADD NEW TESTS ABOVE THIS LINE AND MAKE SURE THAT THE 1 (space-based) AND 2 (tab-based) FILES ARE IN SYNC! */ ?> @@ -1555,7 +1622,7 @@ $foo = match ($type) { * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ScopeIndentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ScopeIndent sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ScopeIndentSniff + */ +final class ScopeIndentUnitTest extends AbstractSniffUnitTest { @@ -45,7 +50,7 @@ public function setCliValues($testFile, $config) * * @return array */ - public function getErrorList($testFile='ScopeIndentUnitTest.inc') + public function getErrorList($testFile='') { if ($testFile === 'ScopeIndentUnitTest.1.js') { return [ @@ -187,10 +192,10 @@ public function getErrorList($testFile='ScopeIndentUnitTest.inc') 1527 => 1, 1529 => 1, 1530 => 1, - 1558 => 1, - 1559 => 1, - 1560 => 1, - 1561 => 1, + 1625 => 1, + 1626 => 1, + 1627 => 1, + 1628 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc index edce4dcc6..fb5c18142 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc @@ -67,7 +67,13 @@ function bar( & ... $spread ) { ); } +// Ignore PHP 8.1 first class callable declarations. +$map = array_map(strtolower(...), $map); + // phpcs:set Generic.WhiteSpace.SpreadOperatorSpacingAfter spacing 0 +// Ignore PHP 8.1 first class callable declarations. +$map = array_map(strtolower( ... ), $map); + // Intentional parse error. This has to be the last test in the file. function bar( ... diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc.fixed index efec7ac15..9388acfc6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.inc.fixed @@ -62,7 +62,13 @@ function bar( & ... $spread ) { ); } +// Ignore PHP 8.1 first class callable declarations. +$map = array_map(strtolower(...), $map); + // phpcs:set Generic.WhiteSpace.SpreadOperatorSpacingAfter spacing 0 +// Ignore PHP 8.1 first class callable declarations. +$map = array_map(strtolower( ... ), $map); + // Intentional parse error. This has to be the last test in the file. function bar( ... diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.php index 07bf328ce..90842320e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Generic/Tests/WhiteSpace/SpreadOperatorSpacingAfterUnitTest.php @@ -4,14 +4,19 @@ * * @author Juliette Reinders Folmer * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Generic\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SpreadOperatorSpacingAfterUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SpreadOperatorSpacingAfter sniff. + * + * @covers \PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\SpreadOperatorSpacingAfterSniff + */ +final class SpreadOperatorSpacingAfterUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php index 9575398aa..904769e12 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\CSS; @@ -43,7 +45,7 @@ class BrowserSpecificStylesSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php index 81b7f1b69..91004a84d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Channels; @@ -20,7 +22,7 @@ class DisallowSelfActionsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php index 2d56261cf..83bb5ff31 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Channels; @@ -19,7 +21,7 @@ class IncludeOwnSystemSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -82,7 +84,7 @@ public function process(File $phpcsFile, $stackPtr) * @param int $stackPtr The position in the tokens array of the * potentially included class. * - * @return string + * @return bool */ protected function getIncludedClassFromToken( $phpcsFile, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php index 8bbd91e82..063dab4a8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Channels; @@ -19,7 +21,7 @@ class IncludeSystemSniff extends AbstractScopeSniff /** * A list of classes that don't need to be included. * - * @var string[] + * @var array */ private $ignore = [ 'self' => true, @@ -286,7 +288,7 @@ protected function processTokenOutsideScope(File $phpcsFile, $stackPtr) * @param int $stackPtr The position in the tokens array of the * potentially included class. * - * @return string + * @return string|false */ protected function getIncludedClassFromToken(File $phpcsFile, array $tokens, $stackPtr) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php index 6b10cd3ed..0f20f70b9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Channels; @@ -19,7 +21,7 @@ class UnusedSystemSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php index fd75bcb22..da00c903f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php @@ -6,7 +6,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Commenting; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php index eccf6fe4b..d40e064e8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Debug; @@ -19,7 +21,7 @@ class DebugCodeSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php index 3115bac4e..1f56a0e28 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Debug; @@ -26,7 +28,7 @@ class FirebugConsoleSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/AssignThisSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/AssignThisSniff.php index 0a3c9cf21..97732872c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/AssignThisSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/AssignThisSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Objects; @@ -26,7 +28,7 @@ class AssignThisSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php index 8fb893760..5d8dc9968 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Objects; @@ -27,7 +29,7 @@ class CreateWidgetTypeCallbackSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php index cae7c08d9..693a03714 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Objects; @@ -19,7 +21,7 @@ class DisallowNewWidgetSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php index 3914b7b8e..06c251271 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php @@ -7,7 +7,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\PHP; @@ -22,7 +24,7 @@ class AjaxNullComparisonSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php index 67b35723f..6684691f3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\PHP; @@ -20,7 +22,7 @@ class EvalObjectFactorySniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php index 82419fcb8..a07677968 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\PHP; @@ -19,7 +21,7 @@ class GetRequestDataSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php index 9b2029af4..697e91dc7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\PHP; @@ -19,7 +21,7 @@ class ReturnFunctionValueSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php index 311cf684f..ee527b41b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\MySource\Sniffs\Strings; @@ -27,7 +29,7 @@ class JoinStringsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/CSS/BrowserSpecificStylesUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/CSS/BrowserSpecificStylesUnitTest.php index 213534998..7f10457c4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/CSS/BrowserSpecificStylesUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/CSS/BrowserSpecificStylesUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class BrowserSpecificStylesUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the BrowserSpecificStyles sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\CSS\BrowserSpecificStylesSniff + */ +final class BrowserSpecificStylesUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/DisallowSelfActionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/DisallowSelfActionsUnitTest.php index d29bf5c6c..30a62d136 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/DisallowSelfActionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/DisallowSelfActionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Channels; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowSelfActionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowSelfActions sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Channels\DisallowSelfActionsSniff + */ +final class DisallowSelfActionsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/IncludeSystemUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/IncludeSystemUnitTest.php index 0320038ec..635054d3f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/IncludeSystemUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/IncludeSystemUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Channels; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class IncludeSystemUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the IncludeSystem sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Channels\IncludeSystemSniff + */ +final class IncludeSystemUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/UnusedSystemUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/UnusedSystemUnitTest.php index fbc0ac70b..05359a482 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/UnusedSystemUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Channels/UnusedSystemUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Channels; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UnusedSystemUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UnusedSystem sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Channels\UnusedSystemSniff + */ +final class UnusedSystemUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Commenting/FunctionCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Commenting/FunctionCommentUnitTest.php index 5cc43b644..07c62a956 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Commenting/FunctionCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Commenting/FunctionCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionComment sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Commenting\FunctionCommentSniff + */ +final class FunctionCommentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/DebugCodeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/DebugCodeUnitTest.php index 78da9c94f..1f85b23e5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/DebugCodeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/DebugCodeUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Debug; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DebugCodeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DebugCode sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Debug\DebugCodeSniff + */ +final class DebugCodeUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/FirebugConsoleUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/FirebugConsoleUnitTest.php index 3a9c23584..8b9d60435 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/FirebugConsoleUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Debug/FirebugConsoleUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Debug; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FirebugConsoleUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FirebugConsole sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Debug\FirebugConsoleSniff + */ +final class FirebugConsoleUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class FirebugConsoleUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FirebugConsoleUnitTest.js') + public function getErrorList($testFile='') { if ($testFile !== 'FirebugConsoleUnitTest.js') { return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/AssignThisUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/AssignThisUnitTest.php index f28dff191..7e44a8578 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/AssignThisUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/AssignThisUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Objects; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class AssignThisUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the AssignThis sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Objects\AssignThisSniff + */ +final class AssignThisUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class AssignThisUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='AssignThisUnitTest.js') + public function getErrorList($testFile='') { if ($testFile !== 'AssignThisUnitTest.js') { return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/CreateWidgetTypeCallbackUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/CreateWidgetTypeCallbackUnitTest.php index a3c55bf36..5c9ca8e51 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/CreateWidgetTypeCallbackUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/CreateWidgetTypeCallbackUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Objects; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CreateWidgetTypeCallbackUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CreateWidgetTypeCallback sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Objects\CreateWidgetTypeCallbackSniff + */ +final class CreateWidgetTypeCallbackUnitTest extends AbstractSniffUnitTest { @@ -21,11 +26,9 @@ class CreateWidgetTypeCallbackUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * - * @param string $testFile The name of the file being tested. - * * @return array */ - public function getErrorList($testFile='CreateWidgetTypeCallbackUnitTest.js') + public function getErrorList() { return [ 18 => 1, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/DisallowNewWidgetUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/DisallowNewWidgetUnitTest.php index 333952f6c..049356048 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/DisallowNewWidgetUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Objects/DisallowNewWidgetUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Objects; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowNewWidgetUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowNewWidget sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Objects\DisallowNewWidgetSniff + */ +final class DisallowNewWidgetUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/AjaxNullComparisonUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/AjaxNullComparisonUnitTest.php index 315808bd9..fa39de07e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/AjaxNullComparisonUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/AjaxNullComparisonUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class AjaxNullComparisonUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the AjaxNullComparison sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\PHP\AjaxNullComparisonSniff + */ +final class AjaxNullComparisonUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/EvalObjectFactoryUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/EvalObjectFactoryUnitTest.php index 423f242d9..e98ee2857 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/EvalObjectFactoryUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/EvalObjectFactoryUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EvalObjectFactoryUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EvalObjectFactory sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\PHP\EvalObjectFactorySniff + */ +final class EvalObjectFactoryUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/GetRequestDataUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/GetRequestDataUnitTest.php index 16e4cfb27..f079325b0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/GetRequestDataUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/GetRequestDataUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class GetRequestDataUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the GetRequestData sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\PHP\GetRequestDataSniff + */ +final class GetRequestDataUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/ReturnFunctionValueUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/ReturnFunctionValueUnitTest.php index 323637868..ce8604610 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/ReturnFunctionValueUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/PHP/ReturnFunctionValueUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ReturnFunctionValueUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ReturnFunctionValue sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\PHP\ReturnFunctionValueSniff + */ +final class ReturnFunctionValueUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Strings/JoinStringsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Strings/JoinStringsUnitTest.php index ecd490a43..b33922330 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Strings/JoinStringsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/MySource/Tests/Strings/JoinStringsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\MySource\Tests\Strings; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class JoinStringsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the JoinStrings sniff. + * + * @covers PHP_CodeSniffer\Standards\MySource\Sniffs\Strings\JoinStringsSniff + */ +final class JoinStringsUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class JoinStringsUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='JoinStringsUnitTest.js') + public function getErrorList($testFile='') { if ($testFile !== 'JoinStringsUnitTest.js') { return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php index a5b07a9e4..893dc9a8d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Classes; @@ -19,7 +19,7 @@ class ClassDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php index ac3351e02..8fa6bfba7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php @@ -4,13 +4,12 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting; use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Util\Tokens; class ClassCommentSniff extends FileCommentSniff { @@ -19,7 +18,7 @@ class ClassCommentSniff extends FileCommentSniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -27,6 +26,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() @@ -47,8 +47,12 @@ public function process(File $phpcsFile, $stackPtr) $type = strtolower($tokens[$stackPtr]['content']); $errorData = [$type]; - $find = Tokens::$methodPrefixes; - $find[T_WHITESPACE] = T_WHITESPACE; + $find = [ + T_ABSTRACT => T_ABSTRACT, + T_FINAL => T_FINAL, + T_READONLY => T_READONLY, + T_WHITESPACE => T_WHITESPACE, + ]; for ($commentEnd = ($stackPtr - 1); $commentEnd >= 0; $commentEnd--) { if (isset($find[$tokens[$commentEnd]['code']]) === true) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php index e0672ffe3..c47466a0d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting; @@ -72,7 +72,7 @@ class FileCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -88,7 +88,7 @@ public function register() * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * - * @return int + * @return int|void */ public function process(File $phpcsFile, $stackPtr) { @@ -122,18 +122,18 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$commentStart]['code'] === T_CLOSE_TAG) { // We are only interested if this is the first open tag. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } else if ($tokens[$commentStart]['code'] === T_COMMENT) { $error = 'You must use "/**" style comments for a file comment'; $phpcsFile->addError($error, $errorToken, 'WrongStyle'); $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'yes'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } else if ($commentStart === false || $tokens[$commentStart]['code'] !== T_DOC_COMMENT_OPEN_TAG ) { $phpcsFile->addError('Missing file doc comment', $errorToken, 'Missing'); $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'no'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } $commentEnd = $tokens[$commentStart]['comment_closer']; @@ -161,6 +161,7 @@ public function process(File $phpcsFile, $stackPtr) T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, T_FUNCTION, T_CLOSURE, T_PUBLIC, @@ -169,6 +170,7 @@ public function process(File $phpcsFile, $stackPtr) T_FINAL, T_STATIC, T_ABSTRACT, + T_READONLY, T_CONST, T_PROPERTY, ]; @@ -176,7 +178,7 @@ public function process(File $phpcsFile, $stackPtr) if (in_array($tokens[$nextToken]['code'], $ignore, true) === true) { $phpcsFile->addError('Missing file doc comment', $stackPtr, 'Missing'); $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'no'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'yes'); @@ -203,7 +205,7 @@ public function process(File $phpcsFile, $stackPtr) $this->processTags($phpcsFile, $stackPtr, $commentStart); // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php index 3c3dbfc40..ee242cf6e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting; @@ -39,7 +39,7 @@ class FunctionCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -60,19 +60,33 @@ public function register() public function process(File $phpcsFile, $stackPtr) { $scopeModifier = $phpcsFile->getMethodProperties($stackPtr)['scope']; - if ($scopeModifier === 'protected' - && $this->minimumVisibility === 'public' - || $scopeModifier === 'private' - && ($this->minimumVisibility === 'public' || $this->minimumVisibility === 'protected') + if (($scopeModifier === 'protected' + && $this->minimumVisibility === 'public') + || ($scopeModifier === 'private' + && ($this->minimumVisibility === 'public' || $this->minimumVisibility === 'protected')) ) { return; } - $tokens = $phpcsFile->getTokens(); - $ignore = Tokens::$methodPrefixes; - $ignore[] = T_WHITESPACE; + $tokens = $phpcsFile->getTokens(); + $ignore = Tokens::$methodPrefixes; + $ignore[T_WHITESPACE] = T_WHITESPACE; + + for ($commentEnd = ($stackPtr - 1); $commentEnd >= 0; $commentEnd--) { + if (isset($ignore[$tokens[$commentEnd]['code']]) === true) { + continue; + } + + if ($tokens[$commentEnd]['code'] === T_ATTRIBUTE_END + && isset($tokens[$commentEnd]['attribute_opener']) === true + ) { + $commentEnd = $tokens[$commentEnd]['attribute_opener']; + continue; + } + + break; + } - $commentEnd = $phpcsFile->findPrevious($ignore, ($stackPtr - 1), null, true); if ($tokens[$commentEnd]['code'] === T_COMMENT) { // Inline comments might just be closing comments for // control structures or functions instead of function comments @@ -106,9 +120,34 @@ public function process(File $phpcsFile, $stackPtr) } if ($tokens[$commentEnd]['line'] !== ($tokens[$stackPtr]['line'] - 1)) { - $error = 'There must be no blank lines after the function comment'; - $phpcsFile->addError($error, $commentEnd, 'SpacingAfter'); - } + for ($i = ($commentEnd + 1); $i < $stackPtr; $i++) { + if ($tokens[$i]['column'] !== 1) { + continue; + } + + if ($tokens[$i]['code'] === T_WHITESPACE + && $tokens[$i]['line'] !== $tokens[($i + 1)]['line'] + ) { + $error = 'There must be no blank lines after the function comment'; + $fix = $phpcsFile->addFixableError($error, $commentEnd, 'SpacingAfter'); + + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); + + while ($i < $stackPtr + && $tokens[$i]['code'] === T_WHITESPACE + && $tokens[$i]['line'] !== $tokens[($i + 1)]['line'] + ) { + $phpcsFile->fixer->replaceToken($i++, ''); + } + + $phpcsFile->fixer->endChangeset(); + } + + break; + } + }//end for + }//end if $commentStart = $tokens[$commentEnd]['comment_opener']; foreach ($tokens[$commentStart]['comment_tags'] as $tag) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php index aa9f37537..71c11808d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting; @@ -19,7 +19,7 @@ class InlineCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php index edd2d6beb..4ca5451b3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\ControlStructures; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php index fff62bb1e..08752edaa 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\ControlStructures; @@ -37,7 +37,7 @@ class MultiLineConditionSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php index 04f208dee..e0ed0fb1b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php @@ -6,7 +6,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Files; @@ -22,7 +22,7 @@ class IncludingFileSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php index 0a7ff7db1..0f18710df 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Formatting; @@ -26,7 +26,7 @@ class MultiLineAssignmentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php index 3a339abe4..772ab6b8c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions; @@ -58,7 +58,7 @@ class FunctionCallSignatureSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -340,7 +340,8 @@ public function processMultiLineCall(File $phpcsFile, $stackPtr, $openBracket, $ // call itself is, so we can work out how far to // indent the arguments. $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr, true); - if ($tokens[$first]['code'] === T_CONSTANT_ENCAPSED_STRING + if ($first !== false + && $tokens[$first]['code'] === T_CONSTANT_ENCAPSED_STRING && $tokens[($first - 1)]['code'] === T_CONSTANT_ENCAPSED_STRING ) { // We are in a multi-line string, so find the start and use @@ -386,15 +387,20 @@ public function processMultiLineCall(File $phpcsFile, $stackPtr, $openBracket, $ $fix = $phpcsFile->addFixableError($error, $first, 'OpeningIndent', $data); if ($fix === true) { + // Set adjustment for use later to determine whether argument indentation is correct when fixing. $adjustment = ($functionIndent - $foundFunctionIndent); - $padding = str_repeat(' ', $functionIndent); + + $padding = str_repeat(' ', $functionIndent); if ($foundFunctionIndent === 0) { $phpcsFile->fixer->addContentBefore($first, $padding); + } else if ($tokens[$first]['code'] === T_INLINE_HTML) { + $newContent = $padding.ltrim($tokens[$first]['content']); + $phpcsFile->fixer->replaceToken($first, $newContent); } else { $phpcsFile->fixer->replaceToken(($first - 1), $padding); } } - } + }//end if $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($openBracket + 1), null, true); if ($tokens[$next]['line'] === $tokens[$openBracket]['line']) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php index 984362945..1d0745b98 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions; @@ -39,7 +39,7 @@ class FunctionDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -104,8 +104,9 @@ public function process(File $phpcsFile, $stackPtr) // and the opening parenthesis. // Unfinished closures are tokenized as T_FUNCTION however, and can be excluded // by checking for the scope_opener. + $methodProps = $phpcsFile->getMethodProperties($stackPtr); if ($tokens[$stackPtr]['code'] === T_FUNCTION - && (isset($tokens[$stackPtr]['scope_opener']) === true || $phpcsFile->getMethodProperties($stackPtr)['has_body'] === false) + && (isset($tokens[$stackPtr]['scope_opener']) === true || $methodProps['has_body'] === false) ) { if ($tokens[($openBracket - 1)]['content'] === $phpcsFile->eolChar) { $spaces = 'newline'; @@ -125,25 +126,27 @@ public function process(File $phpcsFile, $stackPtr) } // Must be no space before semicolon in abstract/interface methods. - if ($phpcsFile->getMethodProperties($stackPtr)['has_body'] === false) { + if ($methodProps['has_body'] === false) { $end = $phpcsFile->findNext(T_SEMICOLON, $closeBracket); - if ($tokens[($end - 1)]['content'] === $phpcsFile->eolChar) { - $spaces = 'newline'; - } else if ($tokens[($end - 1)]['code'] === T_WHITESPACE) { - $spaces = $tokens[($end - 1)]['length']; - } else { - $spaces = 0; - } + if ($end !== false) { + if ($tokens[($end - 1)]['content'] === $phpcsFile->eolChar) { + $spaces = 'newline'; + } else if ($tokens[($end - 1)]['code'] === T_WHITESPACE) { + $spaces = $tokens[($end - 1)]['length']; + } else { + $spaces = 0; + } - if ($spaces !== 0) { - $error = 'Expected 0 spaces before semicolon; %s found'; - $data = [$spaces]; - $fix = $phpcsFile->addFixableError($error, $end, 'SpaceBeforeSemicolon', $data); - if ($fix === true) { - $phpcsFile->fixer->replaceToken(($end - 1), ''); + if ($spaces !== 0) { + $error = 'Expected 0 spaces before semicolon; %s found'; + $data = [$spaces]; + $fix = $phpcsFile->addFixableError($error, $end, 'SpaceBeforeSemicolon', $data); + if ($fix === true) { + $phpcsFile->fixer->replaceToken(($end - 1), ''); + } } } - } + }//end if }//end if // Must be one space before and after USE keyword for closures. @@ -297,63 +300,74 @@ public function processMultiLineDeclaration($phpcsFile, $stackPtr, $tokens) return; } - // The opening brace needs to be one space away from the closing parenthesis. + // The opening brace needs to be on the same line as the closing parenthesis. + // There should only be one space between the closing parenthesis - or the end of the + // return type - and the opening brace. $opener = $tokens[$stackPtr]['scope_opener']; if ($tokens[$opener]['line'] !== $tokens[$closeBracket]['line']) { $error = 'The closing parenthesis and the opening brace of a multi-line function declaration must be on the same line'; - $fix = $phpcsFile->addFixableError($error, $opener, 'NewlineBeforeOpenBrace'); - if ($fix === true) { - $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($opener - 1), $closeBracket, true); - $phpcsFile->fixer->beginChangeset(); - $phpcsFile->fixer->addContent($prev, ' {'); - - // If the opener is on a line by itself, removing it will create - // an empty line, so just remove the entire line instead. - $prev = $phpcsFile->findPrevious(T_WHITESPACE, ($opener - 1), $closeBracket, true); - $next = $phpcsFile->findNext(T_WHITESPACE, ($opener + 1), null, true); - - if ($tokens[$prev]['line'] < $tokens[$opener]['line'] - && $tokens[$next]['line'] > $tokens[$opener]['line'] - ) { - // Clear the whole line. - for ($i = ($prev + 1); $i < $next; $i++) { - if ($tokens[$i]['line'] === $tokens[$opener]['line']) { - $phpcsFile->fixer->replaceToken($i, ''); - } - } - } else { - // Just remove the opener. - $phpcsFile->fixer->replaceToken($opener, ''); - if ($tokens[$next]['line'] === $tokens[$opener]['line']) { - $phpcsFile->fixer->replaceToken(($opener + 1), ''); - } - } + $code = 'NewlineBeforeOpenBrace'; - $phpcsFile->fixer->endChangeset(); - }//end if - } else { - $prev = $tokens[($opener - 1)]; - if ($prev['code'] !== T_WHITESPACE) { - $length = 0; + $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($opener - 1), $closeBracket, true); + if ($tokens[$prev]['line'] === $tokens[$opener]['line']) { + // End of the return type is not on the same line as the close parenthesis. + $phpcsFile->addError($error, $opener, $code); } else { - $length = strlen($prev['content']); - } - - if ($length !== 1) { - $error = 'There must be a single space between the closing parenthesis and the opening brace of a multi-line function declaration; found %s spaces'; - $fix = $phpcsFile->addFixableError($error, ($opener - 1), 'SpaceBeforeOpenBrace', [$length]); + $fix = $phpcsFile->addFixableError($error, $opener, $code); if ($fix === true) { - if ($length === 0) { - $phpcsFile->fixer->addContentBefore($opener, ' '); + $phpcsFile->fixer->beginChangeset(); + $phpcsFile->fixer->addContent($prev, ' {'); + + // If the opener is on a line by itself, removing it will create + // an empty line, so remove the entire line instead. + $prev = $phpcsFile->findPrevious(T_WHITESPACE, ($opener - 1), $closeBracket, true); + $next = $phpcsFile->findNext(T_WHITESPACE, ($opener + 1), null, true); + + if ($tokens[$prev]['line'] < $tokens[$opener]['line'] + && $tokens[$next]['line'] > $tokens[$opener]['line'] + ) { + // Clear the whole line. + for ($i = ($prev + 1); $i < $next; $i++) { + if ($tokens[$i]['line'] === $tokens[$opener]['line']) { + $phpcsFile->fixer->replaceToken($i, ''); + } + } } else { - $phpcsFile->fixer->replaceToken(($opener - 1), ' '); + // Just remove the opener. + $phpcsFile->fixer->replaceToken($opener, ''); + if ($tokens[$next]['line'] === $tokens[$opener]['line'] + && ($opener + 1) !== $next + ) { + $phpcsFile->fixer->replaceToken(($opener + 1), ''); + } } - } + + $phpcsFile->fixer->endChangeset(); + }//end if return; }//end if }//end if + $prev = $tokens[($opener - 1)]; + if ($prev['code'] !== T_WHITESPACE) { + $length = 0; + } else { + $length = strlen($prev['content']); + } + + if ($length !== 1) { + $error = 'There must be a single space between the closing parenthesis/return type and the opening brace of a multi-line function declaration; found %s spaces'; + $fix = $phpcsFile->addFixableError($error, ($opener - 1), 'SpaceBeforeOpenBrace', [$length]); + if ($fix === true) { + if ($length === 0) { + $phpcsFile->fixer->addContentBefore($opener, ' '); + } else { + $phpcsFile->fixer->replaceToken(($opener - 1), ' '); + } + } + } + }//end processMultiLineDeclaration() @@ -456,19 +470,23 @@ public function processArgumentList($phpcsFile, $stackPtr, $indent, $type='funct } // We changed lines, so this should be a whitespace indent token. - if ($tokens[$i]['code'] !== T_WHITESPACE) { - $foundIndent = 0; - } else if ($tokens[$i]['line'] !== $tokens[($i + 1)]['line']) { - // This is an empty line, so don't check the indent. - $foundIndent = $expectedIndent; - + $foundIndent = 0; + if ($tokens[$i]['code'] === T_WHITESPACE + && $tokens[$i]['line'] !== $tokens[($i + 1)]['line'] + ) { $error = 'Blank lines are not allowed in a multi-line '.$type.' declaration'; $fix = $phpcsFile->addFixableError($error, $i, 'EmptyLine'); if ($fix === true) { $phpcsFile->fixer->replaceToken($i, ''); } - } else { + + // This is an empty line, so don't check the indent. + continue; + } else if ($tokens[$i]['code'] === T_WHITESPACE) { + $foundIndent = $tokens[$i]['length']; + } else if ($tokens[$i]['code'] === T_DOC_COMMENT_WHITESPACE) { $foundIndent = $tokens[$i]['length']; + ++$expectedIndent; } if ($expectedIndent !== $foundIndent) { @@ -492,6 +510,19 @@ public function processArgumentList($phpcsFile, $stackPtr, $indent, $type='funct $lastLine = $tokens[$i]['line']; }//end if + if ($tokens[$i]['code'] === T_OPEN_PARENTHESIS + && isset($tokens[$i]['parenthesis_closer']) === true + ) { + $prevNonEmpty = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($i - 1), null, true); + if ($tokens[$prevNonEmpty]['code'] !== T_USE) { + // Since PHP 8.1, a default value can contain a class instantiation. + // Skip over these "function calls" as they have their own indentation rules. + $i = $tokens[$i]['parenthesis_closer']; + $lastLine = $tokens[$i]['line']; + continue; + } + } + if ($tokens[$i]['code'] === T_ARRAY || $tokens[$i]['code'] === T_OPEN_SHORT_ARRAY) { // Skip arrays as they have their own indentation rules. if ($tokens[$i]['code'] === T_OPEN_SHORT_ARRAY) { @@ -503,6 +534,13 @@ public function processArgumentList($phpcsFile, $stackPtr, $indent, $type='funct $lastLine = $tokens[$i]['line']; continue; } + + if ($tokens[$i]['code'] === T_ATTRIBUTE) { + // Skip attributes as they have their own indentation rules. + $i = $tokens[$i]['attribute_closer']; + $lastLine = $tokens[$i]['line']; + continue; + } }//end for }//end processArgumentList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php index f13470789..9952daa44 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions; @@ -19,7 +19,7 @@ class ValidDefaultValueSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php index 34ca2830b..c2ed80ac6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\NamingConventions; @@ -19,7 +19,7 @@ class ValidClassNameSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php index e7f87d44d..b1521aa68 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\NamingConventions; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php index 89af5df8e..48674b1e8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\NamingConventions; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php index fb1b79a32..9c64c328a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\WhiteSpace; @@ -43,7 +43,7 @@ class ObjectOperatorIndentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php index 097754e57..cb8e46d52 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\WhiteSpace; @@ -24,11 +24,11 @@ class ScopeClosingBraceSniff implements Sniff public $indent = 4; - /** - * Returns an array of tokens this test wants to listen for. - * - * @return int[] - */ + /** + * Returns an array of tokens this test wants to listen for. + * + * @return array + */ public function register() { return Tokens::$scopeOpeners; @@ -93,16 +93,19 @@ public function process(File $phpcsFile, $stackPtr) } // Check that the closing brace is on it's own line. - $lastContent = $phpcsFile->findPrevious( - [ - T_WHITESPACE, - T_INLINE_HTML, - T_OPEN_TAG, - ], - ($scopeEnd - 1), - $scopeStart, - true - ); + for ($lastContent = ($scopeEnd - 1); $lastContent > $scopeStart; $lastContent--) { + if ($tokens[$lastContent]['code'] === T_WHITESPACE || $tokens[$lastContent]['code'] === T_OPEN_TAG) { + continue; + } + + if ($tokens[$lastContent]['code'] === T_INLINE_HTML + && ltrim($tokens[$lastContent]['content']) === '' + ) { + continue; + } + + break; + } if ($tokens[$lastContent]['line'] === $tokens[$scopeEnd]['line']) { $error = 'Closing brace must be on a line by itself'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php index 2620d20f2..e95dc8bda 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Sniffs\WhiteSpace; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc index d97ef4d29..6942944b5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc @@ -110,3 +110,5 @@ if (!class_exists('ClassOpeningBraceTooMuchIndentation')) { { } } + +enum IncorrectBracePlacement {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc.fixed index 5b0a2f93f..26688b152 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.1.inc.fixed @@ -119,3 +119,7 @@ if (!class_exists('ClassOpeningBraceTooMuchIndentation')) { { } } + +enum IncorrectBracePlacement +{ +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.php index 1514a7037..12648cc0a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Classes\ClassDeclarationSniff + */ +final class ClassDeclarationUnitTest extends AbstractSniffUnitTest { @@ -61,6 +66,7 @@ public function getErrorList($testFile='') 99 => 1, 104 => 1, 110 => 1, + 114 => 1, ]; default: diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.inc index 8414efbed..bd7d06180 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.inc @@ -31,7 +31,7 @@ class Invalid_Comment_Style1 * @package PHP_CodeSniffer * @author Greg Sherwood * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence * @version Release: 1.0 * @link http://pear.php.net/package/PHP_CodeSniffer */ @@ -47,7 +47,7 @@ class Extra_Description_Newlines * @package PHP_CodeSniffer * @author Greg Sherwood * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence * @version * @link http://pear.php.net/package/PHP_CodeSniffer */ @@ -120,16 +120,44 @@ trait Empty_Trait_Doc }//end trait +/** + * + * + */ +enum Empty_Enum_Doc +{ + +}//end enum + + /** * Sample class comment * * @category PHP * @package PHP_CodeSniffer * @author Greg Sherwood - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence * @link http://pear.php.net/package/PHP_CodeSniffer */ #[Authenticate('admin_logged_in')] class TodoController extends AbstractController implements MustBeLoggedInInterface { } + +/** + * Docblock + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +abstract readonly class AbstractReadonlyWithDocblock {} + +/* + * Docblock + */ +readonly class ReadonlyWrongStyle {} + +readonly final class ReadonlyFinalWithoutDocblock {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.php index 9a4bcf7dd..d60c0fe83 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting\ClassCommentSniff + */ +final class ClassCommentUnitTest extends AbstractSniffUnitTest { @@ -44,6 +49,9 @@ public function getErrorList() 96 => 5, 106 => 5, 116 => 5, + 126 => 5, + 161 => 1, + 163 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FileCommentUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FileCommentUnitTest.3.inc new file mode 100644 index 000000000..c076fd457 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FileCommentUnitTest.3.inc @@ -0,0 +1,8 @@ + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FileCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FileComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting\FileCommentSniff + */ +final class FileCommentUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class FileCommentUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FileCommentUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'FileCommentUnitTest.1.inc': @@ -48,6 +53,8 @@ public function getErrorList($testFile='FileCommentUnitTest.inc') ]; case 'FileCommentUnitTest.2.inc': + case 'FileCommentUnitTest.3.inc': + case 'FileCommentUnitTest.4.inc': return [1 => 1]; default: @@ -67,7 +74,7 @@ public function getErrorList($testFile='FileCommentUnitTest.inc') * * @return array */ - public function getWarningList($testFile='FileCommentUnitTest.inc') + public function getWarningList($testFile='') { switch ($testFile) { case 'FileCommentUnitTest.1.inc': diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc index 0e935eadf..a20ba3a72 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc @@ -429,3 +429,84 @@ public function ignored() { } // phpcs:set PEAR.Commenting.FunctionComment specialMethods[] __construct,__destruct + +class Something implements JsonSerializable { + /** + * Single attribute. + * + * @return mixed + */ + #[ReturnTypeWillChange] + public function jsonSerialize() {} + + /** + * Multiple attributes. + * + * @return Something + */ + #[AttributeA] + #[AttributeB] + public function methodName() {} + + /** + * Blank line between docblock and attribute. + * + * @return mixed + */ + + #[ReturnTypeWillChange] + public function blankLineDetectionA() {} + + /** + * Blank line between attribute and function declaration. + * + * @return mixed + */ + #[ReturnTypeWillChange] + + public function blankLineDetectionB() {} + + /** + * Blank line between both docblock and attribute and attribute and function declaration. + * + * @return mixed + */ + + #[ReturnTypeWillChange] + + public function blankLineDetectionC() {} +} + +class SpacingAfter { + /** + * There are multiple blank lines between this comment and the next function. + * + * @return void + */ + + + + + + + + + public function multipleBlankLines() {} + + /** + * There are multiple blank lines, and some "empty" lines with only + * spaces/tabs between this comment and the next function. + * + * @return void + */ + + + + + + + + + + public function multipleLinesSomeEmpty() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc.fixed index 29588134d..fc6d4f7e7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc.fixed @@ -429,3 +429,63 @@ public function ignored() { } // phpcs:set PEAR.Commenting.FunctionComment specialMethods[] __construct,__destruct + +class Something implements JsonSerializable { + /** + * Single attribute. + * + * @return mixed + */ + #[ReturnTypeWillChange] + public function jsonSerialize() {} + + /** + * Multiple attributes. + * + * @return Something + */ + #[AttributeA] + #[AttributeB] + public function methodName() {} + + /** + * Blank line between docblock and attribute. + * + * @return mixed + */ + #[ReturnTypeWillChange] + public function blankLineDetectionA() {} + + /** + * Blank line between attribute and function declaration. + * + * @return mixed + */ + #[ReturnTypeWillChange] + public function blankLineDetectionB() {} + + /** + * Blank line between both docblock and attribute and attribute and function declaration. + * + * @return mixed + */ + #[ReturnTypeWillChange] + public function blankLineDetectionC() {} +} + +class SpacingAfter { + /** + * There are multiple blank lines between this comment and the next function. + * + * @return void + */ + public function multipleBlankLines() {} + + /** + * There are multiple blank lines, and some "empty" lines with only + * spaces/tabs between this comment and the next function. + * + * @return void + */ + public function multipleLinesSomeEmpty() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.php index a7b35e60a..62863be62 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting\FunctionCommentSniff + */ +final class FunctionCommentUnitTest extends AbstractSniffUnitTest { @@ -70,6 +75,11 @@ public function getErrorList() 364 => 1, 406 => 1, 417 => 1, + 455 => 1, + 464 => 1, + 473 => 1, + 485 => 1, + 501 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/InlineCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/InlineCommentUnitTest.php index 6cc5cd3b5..457b5d896 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/InlineCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Commenting/InlineCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InlineCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InlineComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Commenting\InlineCommentSniff + */ +final class InlineCommentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/ControlSignatureUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/ControlSignatureUnitTest.php index 98c3463b7..b387a93e1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/ControlSignatureUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/ControlSignatureUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ControlSignatureUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ControlSignature sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\ControlStructures\ControlSignatureSniff + */ +final class ControlSignatureUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/MultiLineConditionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/MultiLineConditionUnitTest.php index f78b4e3f3..263906d18 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/MultiLineConditionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/ControlStructures/MultiLineConditionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MultiLineConditionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MultiLineCondition sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\ControlStructures\MultiLineConditionSniff + */ +final class MultiLineConditionUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class MultiLineConditionUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='MultiLineConditionUnitTest.inc') + public function getErrorList($testFile='') { $errors = [ 21 => 1, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Files/IncludingFileUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Files/IncludingFileUnitTest.php index ab3ea8ace..70d63ec42 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Files/IncludingFileUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Files/IncludingFileUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class IncludingFileUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the IncludingFile sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Files\IncludingFileSniff + */ +final class IncludingFileUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Formatting/MultiLineAssignmentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Formatting/MultiLineAssignmentUnitTest.php index 734d4fce8..1be3296c5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Formatting/MultiLineAssignmentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Formatting/MultiLineAssignmentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MultiLineAssignmentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MultiLineAssignment sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Formatting\MultiLineAssignmentSniff + */ +final class MultiLineAssignmentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc index ed3d2c43e..fddd3cba1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc @@ -548,3 +548,29 @@ array_fill_keys( ), value: true, ); // phpcs:set PEAR.Functions.FunctionCallSignature allowMultipleArguments true + +?> +
+

+
+
+

+
+ +content +

+ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc.fixed index 8d02e7467..1c5252307 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc.fixed @@ -563,3 +563,29 @@ array_fill_keys( value: true, ); // phpcs:set PEAR.Functions.FunctionCallSignature allowMultipleArguments true + +?> +
+

+
+
+

+
+ +content +

+ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.php index 1dd59188f..5884bd8f7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCallSignatureUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionCallSignature sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\FunctionCallSignatureSniff + */ +final class FunctionCallSignatureUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class FunctionCallSignatureUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FunctionCallSignatureUnitTest.inc') + public function getErrorList($testFile='') { if ($testFile === 'FunctionCallSignatureUnitTest.js') { return [ @@ -131,6 +136,11 @@ public function getErrorList($testFile='FunctionCallSignatureUnitTest.inc') 546 => 1, 547 => 1, 548 => 1, + 559 => 1, + 567 => 1, + 568 => 1, + 573 => 1, + 574 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionDeclarationUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionDeclarationUnitTest.1.inc new file mode 100644 index 000000000..6ba3bd9f6 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/FunctionDeclarationUnitTest.1.inc @@ -0,0 +1,490 @@ + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\FunctionDeclarationSniff + */ +final class FunctionDeclarationUnitTest extends AbstractSniffUnitTest { @@ -25,10 +30,11 @@ class FunctionDeclarationUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FunctionDeclarationUnitTest.inc') + public function getErrorList($testFile='') { - if ($testFile === 'FunctionDeclarationUnitTest.inc') { - $errors = [ + switch ($testFile) { + case 'FunctionDeclarationUnitTest.1.inc': + return [ 3 => 1, 4 => 1, 5 => 1, @@ -82,9 +88,30 @@ public function getErrorList($testFile='FunctionDeclarationUnitTest.inc') 309 => 1, 313 => 1, 314 => 1, + 350 => 1, + 351 => 1, + 352 => 1, + 353 => 1, + 361 => 1, + 362 => 1, + 363 => 1, + 364 => 1, + 365 => 1, + 366 => 1, + 367 => 1, + 368 => 1, + 369 => 1, + 370 => 1, + 371 => 1, + 402 => 1, + 406 => 1, + 475 => 1, + 483 => 1, + 490 => 2, ]; - } else { - $errors = [ + + case 'FunctionDeclarationUnitTest.js': + return [ 3 => 1, 4 => 1, 5 => 1, @@ -96,9 +123,10 @@ public function getErrorList($testFile='FunctionDeclarationUnitTest.inc') 41 => 1, 48 => 1, ]; - }//end if - return $errors; + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/ValidDefaultValueUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/ValidDefaultValueUnitTest.php index 60d261cbb..c91e2dc69 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/ValidDefaultValueUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/Functions/ValidDefaultValueUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidDefaultValueUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidDefaultValue sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\ValidDefaultValueSniff + */ +final class ValidDefaultValueUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.inc index c6d15df7f..053a4fee2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.inc @@ -66,3 +66,25 @@ trait _Invalid_Name {} trait ___ {} trait Invalid__Name {} + +enum Valid_Name: string {} + +enum invalid_Name : String {} + +enum invalid_name {} + +enum Invalid_name: Int {} + +enum VALID_Name {} + +enum VALID_NAME {} + +enum VALID_Name : int {} + +enum ValidName {} + +enum _Invalid_Name {} + +enum ___ {} + +enum Invalid__Name {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.php index 8ff9c674b..504e8d666 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidClassNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidClassName sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\NamingConventions\ValidClassNameSniff + */ +final class ValidClassNameUnitTest extends AbstractSniffUnitTest { @@ -44,6 +49,12 @@ public function getErrorList() 64 => 1, 66 => 2, 68 => 1, + 72 => 1, + 74 => 2, + 76 => 1, + 86 => 1, + 88 => 2, + 90 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.inc index 78280cdd9..18b1a4817 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.inc @@ -220,3 +220,24 @@ abstract class My_Class { public function my_class() {} public function _MY_CLASS() {} } + +enum Suit: string implements Colorful, CardGame { + // Magic methods. + function __call($name, $args) {} + static function __callStatic($name, $args) {} + function __invoke() {} + + // Valid Method Name. + public function parseMyDSN() {} + private function _getAnotherValue() {} + + // Double underscore non-magic methods not allowed. + function __myFunction() {} + function __my_function() {} + + // Non-camelcase. + public function get_some_value() {} + + // Private without underscore prefix. + private function getMe() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.php index 9bb6de0d8..80a40d484 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidFunctionNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidFunctionName sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\NamingConventions\ValidFunctionNameSniff + */ +final class ValidFunctionNameUnitTest extends AbstractSniffUnitTest { @@ -122,6 +127,10 @@ public function getErrorList() 212 => 1, 213 => 1, 214 => 1, + 235 => 1, + 236 => 2, + 239 => 1, + 242 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidVariableNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidVariableNameUnitTest.php index 834852c33..c98af3bc5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidVariableNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/NamingConventions/ValidVariableNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidVariableNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidVariableName sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\NamingConventions\ValidVariableNameSniff + */ +final class ValidVariableNameUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ObjectOperatorIndentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ObjectOperatorIndentUnitTest.php index 0cad3efc1..9beb77fea 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ObjectOperatorIndentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ObjectOperatorIndentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ObjectOperatorIndentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ObjectOperatorIndent sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\WhiteSpace\ObjectOperatorIndentSniff + */ +final class ObjectOperatorIndentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc index c52023781..a97aca760 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc @@ -152,3 +152,19 @@ $match = match ($test) { 1 => 'a', 2 => 'b' }; + +enum Enum +{ +} + +enum Suits {} + +enum Cards +{ + } + +?> + + +
+
'a', 2 => 'b' }; + +enum Enum +{ +} + +enum Suits { +} + +enum Cards +{ +} + +?> + + +
+
* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ScopeClosingBraceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ScopeClosingBrace sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\WhiteSpace\ScopeClosingBraceSniff + */ +final class ScopeClosingBraceUnitTest extends AbstractSniffUnitTest { @@ -42,6 +47,9 @@ public function getErrorList() 146 => 1, 149 => 1, 154 => 1, + 160 => 1, + 164 => 1, + 170 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeIndentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeIndentUnitTest.inc.fixed new file mode 100644 index 000000000..c6b827e7a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PEAR/Tests/WhiteSpace/ScopeIndentUnitTest.inc.fixed @@ -0,0 +1,314 @@ +hello(); // error here + } + + function hello() // error here + { // no error here as brackets can be put anywhere in the pear standard + echo 'hello'; + } + + function hello2() + { + if (TRUE) { // error here + echo 'hello'; // no error here as its more than 4 spaces. + } else { + echo 'bye'; // error here + } + + while (TRUE) { + echo 'hello'; // error here + } + + do { // error here + echo 'hello'; // error here + } while (TRUE); + } + + function hello3() + { + switch ($hello) { + case 'hello': + break; + } + } + +} + +?> +
+
+
+validate()) {
+    $safe = $form->getSubmitValues();
+}
+?>
+
+open(); // error here + } + + public function open() + { + // Some inline stuff that shouldn't error + if (TRUE) echo 'hello'; + foreach ($tokens as $token) echo $token; + } + + /** + * This is a comment 1. + * This is a comment 2. + * This is a comment 3. + * This is a comment 4. + */ + public function close() + { + // All ok. + if (TRUE) { + if (TRUE) { + } else if (FALSE) { + foreach ($tokens as $token) { + switch ($token) { + case '1': + case '2': + if (true) { + if (false) { + if (false) { + if (false) { + echo 'hello'; + } + } + } + } + break; + case '5': + break; + } + do { + while (true) { + foreach ($tokens as $token) { + for ($i = 0; $i < $token; $i++) { + echo 'hello'; + } + } + } + } while (true); + } + } + } + } + + /* + This is another c style comment 1. + This is another c style comment 2. + This is another c style comment 3. + This is another c style comment 4. + This is another c style comment 5. + */ + + /* + * + * + * + */ + + /** + */ + + /* + This comment has a newline in it. + + */ + + public function read() + { + echo 'hello'; + + // no errors below. + $array = array( + 'this', + 'that' => array( + 'hello', + 'hello again' => array( + 'hello', + ), + ), + ); + } +} + +abstract class Test3 +{ + public function parse() + { + + foreach ($t as $ndx => $token) { + if (is_array($token)) { + echo 'here'; + } else { + $ts[] = array("token" => $token, "value" => ''); + + $last = count($ts) - 1; + + switch ($token) { + case '(': + + if ($last >= 3 && + $ts[0]['token'] != T_CLASS && + $ts[$last - 2]['token'] == T_OBJECT_OPERATOR && + $ts[$last - 3]['token'] == T_VARIABLE ) { + + + if (true) { + echo 'hello'; + } + } + array_push($braces, $token); + break; + } + } + } + } +} + +function test() +{ + $o = << * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PEAR\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ScopeIndentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ScopeIndent sniff. + * + * @covers \PHP_CodeSniffer\Standards\PEAR\Sniffs\WhiteSpace\ScopeIndentSniff + */ +final class ScopeIndentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php index ac6407d6f..e3f626b3c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes; @@ -19,7 +19,7 @@ class ClassDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() @@ -50,7 +51,7 @@ public function process(File $phpcsFile, $stackPtr) $errorData = [strtolower($tokens[$stackPtr]['content'])]; - $nextClass = $phpcsFile->findNext([T_CLASS, T_INTERFACE, T_TRAIT], ($tokens[$stackPtr]['scope_closer'] + 1)); + $nextClass = $phpcsFile->findNext([T_CLASS, T_INTERFACE, T_TRAIT, T_ENUM], ($tokens[$stackPtr]['scope_closer'] + 1)); if ($nextClass !== false) { $error = 'Each %s must be in a file by itself'; $phpcsFile->addError($error, $nextClass, 'MultipleClasses', $errorData); @@ -59,7 +60,7 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->recordMetric($stackPtr, 'One class per file', 'yes'); } - $namespace = $phpcsFile->findNext([T_NAMESPACE, T_CLASS, T_INTERFACE, T_TRAIT], 0); + $namespace = $phpcsFile->findNext([T_NAMESPACE, T_CLASS, T_INTERFACE, T_TRAIT, T_ENUM], 0); if ($tokens[$namespace]['code'] !== T_NAMESPACE) { $error = 'Each %s must be in a namespace of at least one level (a top-level vendor name)'; $phpcsFile->addError($error, $stackPtr, 'MissingNamespace', $errorData); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php index 27454cc1d..68a18d8c7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR1\Sniffs\Files; @@ -20,7 +20,7 @@ class SideEffectsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -36,7 +36,7 @@ public function register() * @param int $stackPtr The position of the current token in * the token stack. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -56,7 +56,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() @@ -82,6 +82,7 @@ private function searchForConflict($phpcsFile, $start, $end, $tokens) T_CLASS => T_CLASS, T_INTERFACE => T_INTERFACE, T_TRAIT => T_TRAIT, + T_ENUM => T_ENUM, T_FUNCTION => T_FUNCTION, ]; @@ -102,7 +103,8 @@ private function searchForConflict($phpcsFile, $start, $end, $tokens) && (empty($tokens[$i]['sniffCodes']) === true || isset($tokens[$i]['sniffCodes']['PSR1']) === true || isset($tokens[$i]['sniffCodes']['PSR1.Files']) === true - || isset($tokens[$i]['sniffCodes']['PSR1.Files.SideEffects']) === true) + || isset($tokens[$i]['sniffCodes']['PSR1.Files.SideEffects']) === true + || isset($tokens[$i]['sniffCodes']['PSR1.Files.SideEffects.FoundWithSymbols']) === true) ) { do { $i = $phpcsFile->findNext(T_PHPCS_ENABLE, ($i + 1)); @@ -110,7 +112,8 @@ private function searchForConflict($phpcsFile, $start, $end, $tokens) && empty($tokens[$i]['sniffCodes']) === false && isset($tokens[$i]['sniffCodes']['PSR1']) === false && isset($tokens[$i]['sniffCodes']['PSR1.Files']) === false - && isset($tokens[$i]['sniffCodes']['PSR1.Files.SideEffects']) === false); + && isset($tokens[$i]['sniffCodes']['PSR1.Files.SideEffects']) === false + && isset($tokens[$i]['sniffCodes']['PSR1.Files.SideEffects.FoundWithSymbols']) === false); if ($i === false) { // The entire rest of the file is disabled, @@ -168,7 +171,9 @@ private function searchForConflict($phpcsFile, $start, $end, $tokens) } // Ignore function/class prefixes. - if (isset(Tokens::$methodPrefixes[$tokens[$i]['code']]) === true) { + if (isset(Tokens::$methodPrefixes[$tokens[$i]['code']]) === true + || $tokens[$i]['code'] === T_READONLY + ) { continue; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php index 2d1381462..0cf1022f0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR1\Sniffs\Methods; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Classes/ClassDeclarationUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Classes/ClassDeclarationUnitTest.3.inc new file mode 100644 index 000000000..302908eb1 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Classes/ClassDeclarationUnitTest.3.inc @@ -0,0 +1,3 @@ + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR1\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes\ClassDeclarationSniff + */ +final class ClassDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc index 596d6cf9b..b7e1dc9a0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc @@ -6,6 +6,7 @@ const CONSTANT2 = 2; use Something; use SomethingElse; +use function interface_exists; declare(ticks=1); @@ -63,6 +64,11 @@ if (!interface_exists('MyInterface')) { interface MyInterface {} } +if (!interface_exists('MyEnum')) { + // Define an enum. + enum MyEnum {} +} + #[\Attribute] namespace { class A {} @@ -70,4 +76,12 @@ namespace { defined('APP_BASE_URL') or define('APP_BASE_URL', '/'); +readonly class Foo { + public function __construct( + private string $foo, + private string $bar, + ) { + } +} + ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.17.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.17.inc new file mode 100644 index 000000000..ec81bfeda --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.17.inc @@ -0,0 +1,8 @@ + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR1\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SideEffectsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SideEffects sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR1\Sniffs\Files\SideEffectsSniff + */ +final class SideEffectsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Methods/CamelCapsMethodNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Methods/CamelCapsMethodNameUnitTest.php index 0b1ef7132..ffbbb36b8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Methods/CamelCapsMethodNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR1/Tests/Methods/CamelCapsMethodNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR1\Tests\Methods; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CamelCapsMethodNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CamelCapsMethodName sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR1\Sniffs\Methods\CamelCapsMethodNameSniff + */ +final class CamelCapsMethodNameUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Classes/ClosingBraceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Classes/ClosingBraceStandard.xml new file mode 100644 index 000000000..b59d734fe --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Classes/ClosingBraceStandard.xml @@ -0,0 +1,35 @@ + + + + + + + + +function bar() +{ + // Function content. +} + ]]> + + + echo 'Hello!'; + +function bar() +{ + // Function content. +} //end bar() + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Classes/OpeningBraceSpaceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Classes/OpeningBraceSpaceStandard.xml new file mode 100644 index 000000000..818bbe83a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Classes/OpeningBraceSpaceStandard.xml @@ -0,0 +1,32 @@ + + + + + + + + public function bar() + { + // Method content. + } +} + ]]> + + + + public function bar() + { + // Method content. + } +} + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/ControlStructures/BooleanOperatorPlacementStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/ControlStructures/BooleanOperatorPlacementStandard.xml new file mode 100644 index 000000000..805e15c66 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/ControlStructures/BooleanOperatorPlacementStandard.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/ControlStructures/ControlStructureSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/ControlStructures/ControlStructureSpacingStandard.xml new file mode 100644 index 000000000..db4fe8028 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/ControlStructures/ControlStructureSpacingStandard.xml @@ -0,0 +1,124 @@ + + + + + + + ($expr) { +} + ]]> + + + ( $expr) { +} + ]]> + + + + + ($expr) { +} + ]]> + + + ) { +} + ]]> + + + + + + + + $expr1 + && $expr2 +) { +} + ]]> + + + ($expr1 + && $expr2 +) { +} + ]]> + + + + + $expr1 + && $expr2 +) { +} + ]]> + + + $expr1 + && $expr2 + && $expr3 +) { +} + ]]> + + + + + + + + ) { +} + ]]> + + + && $expr2) { +} + ]]> + + + + + ) { +} + ]]> + + + ) { +} + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Files/ImportStatementStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Files/ImportStatementStandard.xml new file mode 100644 index 000000000..66b58de0c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Files/ImportStatementStandard.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \Vendor\Package\ClassA as A; + +class FooBar extends A +{ + // Class content. +} + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Files/OpenTagStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Files/OpenTagStandard.xml new file mode 100644 index 000000000..20db18b21 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Files/OpenTagStandard.xml @@ -0,0 +1,40 @@ + + + + + + + + +echo 'hi'; + ]]> + + + echo 'hi'; + ]]> + + + + + + + + + + + ]]> + + + + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Functions/NullableTypeDeclarationStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Functions/NullableTypeDeclarationStandard.xml index 2032c9a62..ac411ffbe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Functions/NullableTypeDeclarationStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Functions/NullableTypeDeclarationStandard.xml @@ -1,12 +1,12 @@ - - - - + + + + + + string { + // Closure body. +}; + ]]> + + + string { + // Closure body. +}; + ]]> + + + + + : string { + // Function body. +}; + ]]> + + + : string { + // Function body. +}; + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Properties/ConstantVisibilityStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Properties/ConstantVisibilityStandard.xml new file mode 100644 index 000000000..da9b60a40 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Docs/Properties/ConstantVisibilityStandard.xml @@ -0,0 +1,27 @@ + + + + + + + private const BAR = 'bar'; +} + ]]> + + + const BAR = 'bar'; +} + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/AnonClassDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/AnonClassDeclarationSniff.php index 7a33bd947..552bfea46 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/AnonClassDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/AnonClassDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes; @@ -21,14 +21,14 @@ class AnonClassDeclarationSniff extends ClassDeclarationSniff /** * The PSR2 MultiLineFunctionDeclarations sniff. * - * @var MultiLineFunctionDeclarationSniff + * @var \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\MultiLineFunctionDeclarationSniff */ private $multiLineSniff = null; /** * The Generic FunctionCallArgumentSpacing sniff. * - * @var FunctionCallArgumentSpacingSniff + * @var \PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\FunctionCallArgumentSpacingSniff */ private $functionCallSniff = null; @@ -36,7 +36,7 @@ class AnonClassDeclarationSniff extends ClassDeclarationSniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -97,7 +97,11 @@ public function process(File $phpcsFile, $stackPtr) $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr, true); $indent = str_repeat(' ', ($tokens[$first]['column'] - 1)); $phpcsFile->fixer->beginChangeset(); - $phpcsFile->fixer->replaceToken(($prev + 1), ''); + + if ($tokens[($prev + 1)]['code'] === T_WHITESPACE) { + $phpcsFile->fixer->replaceToken(($prev + 1), ''); + } + $phpcsFile->fixer->addNewline($prev); $phpcsFile->fixer->addContentBefore($opener, $indent); $phpcsFile->fixer->endChangeset(); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClassInstantiationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClassInstantiationSniff.php index 804ecfe1c..048cb60cc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClassInstantiationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClassInstantiationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes; @@ -20,7 +20,7 @@ class ClassInstantiationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -48,6 +48,7 @@ public function process(File $phpcsFile, $stackPtr) T_NS_SEPARATOR => T_NS_SEPARATOR, T_SELF => T_SELF, T_STATIC => T_STATIC, + T_PARENT => T_PARENT, T_VARIABLE => T_VARIABLE, T_DOLLAR => T_DOLLAR, T_OBJECT_OPERATOR => T_OBJECT_OPERATOR, @@ -63,6 +64,16 @@ public function process(File $phpcsFile, $stackPtr) continue; } + // Bow out when this is an anonymous class. + // Anonymous classes are the only situation which would allow for an attribute + // or for the readonly keyword between "new" and the class "name". + if ($tokens[$i]['code'] === T_ATTRIBUTE + || $tokens[$i]['code'] === T_READONLY + || $tokens[$i]['code'] === T_ANON_CLASS + ) { + return; + } + if ($tokens[$i]['code'] === T_OPEN_SQUARE_BRACKET || $tokens[$i]['code'] === T_OPEN_CURLY_BRACKET ) { @@ -72,19 +83,19 @@ public function process(File $phpcsFile, $stackPtr) $classNameEnd = $i; break; - } + }//end for if ($classNameEnd === null) { return; } - if ($tokens[$classNameEnd]['code'] === T_ANON_CLASS) { - // Ignore anon classes. + if ($tokens[$classNameEnd]['code'] === T_OPEN_PARENTHESIS) { + // Using parenthesis. return; } - if ($tokens[$classNameEnd]['code'] === T_OPEN_PARENTHESIS) { - // Using parenthesis. + if ($classNameEnd === $stackPtr) { + // Failed to find the class name. return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClosingBraceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClosingBraceSniff.php index 0f9752b1f..82f215f6e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClosingBraceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/ClosingBraceSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes; @@ -19,7 +19,7 @@ class ClosingBraceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, T_FUNCTION, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/OpeningBraceSpaceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/OpeningBraceSpaceSniff.php new file mode 100644 index 000000000..261f7022d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Classes/OpeningBraceSpaceSniff.php @@ -0,0 +1,80 @@ + + * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes; + +use PHP_CodeSniffer\Files\File; +use PHP_CodeSniffer\Sniffs\Sniff; +use PHP_CodeSniffer\Util\Tokens; + +class OpeningBraceSpaceSniff implements Sniff +{ + + + /** + * Returns an array of tokens this test wants to listen for. + * + * @return array + */ + public function register() + { + return Tokens::$ooScopeTokens; + + }//end register() + + + /** + * Processes this test, when one of its tokens is encountered. + * + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token in the + * stack passed in $tokens. + * + * @return void + */ + public function process(File $phpcsFile, $stackPtr) + { + $tokens = $phpcsFile->getTokens(); + if (isset($tokens[$stackPtr]['scope_opener']) === false) { + return; + } + + $opener = $tokens[$stackPtr]['scope_opener']; + $next = $phpcsFile->findNext(T_WHITESPACE, ($opener + 1), null, true); + if ($next === false + || $tokens[$next]['line'] <= ($tokens[$opener]['line'] + 1) + ) { + return; + } + + $error = 'Opening brace must not be followed by a blank line'; + $fix = $phpcsFile->addFixableError($error, $opener, 'Found'); + if ($fix === false) { + return; + } + + $phpcsFile->fixer->beginChangeset(); + for ($i = ($opener + 1); $i < $next; $i++) { + if ($tokens[$i]['line'] === $tokens[$opener]['line']) { + continue; + } + + if ($tokens[$i]['line'] === $tokens[$next]['line']) { + break; + } + + $phpcsFile->fixer->replaceToken($i, ''); + } + + $phpcsFile->fixer->endChangeset(); + + }//end process() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/BooleanOperatorPlacementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/BooleanOperatorPlacementSniff.php index b87c33918..dabb3187b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/BooleanOperatorPlacementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/BooleanOperatorPlacementSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\ControlStructures; @@ -28,7 +28,7 @@ class BooleanOperatorPlacementSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/ControlStructureSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/ControlStructureSpacingSniff.php index 3d29c4ace..9a200aa81 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/ControlStructureSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/ControlStructures/ControlStructureSpacingSniff.php @@ -4,14 +4,14 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\ControlStructures; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; -use PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ControlStructureSpacingSniff as PSR2Spacing; +use PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ControlStructureSpacingSniff as PSR2ControlStructureSpacing; use PHP_CodeSniffer\Util\Tokens; class ControlStructureSpacingSniff implements Sniff @@ -24,11 +24,28 @@ class ControlStructureSpacingSniff implements Sniff */ public $indent = 4; + /** + * Instance of the PSR2 ControlStructureSpacingSniff sniff. + * + * @var \PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ControlStructureSpacingSniff + */ + private $psr2ControlStructureSpacing; + + + /** + * Constructor. + */ + public function __construct() + { + $this->psr2ControlStructureSpacing = new PSR2ControlStructureSpacing(); + + }//end __construct() + /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -38,7 +55,6 @@ public function register() T_FOREACH, T_FOR, T_SWITCH, - T_ELSE, T_ELSEIF, T_CATCH, T_MATCH, @@ -71,8 +87,7 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$parenOpener]['line'] === $tokens[$parenCloser]['line']) { // Conditions are all on the same line, so follow PSR2. - $sniff = new PSR2Spacing(); - return $sniff->process($phpcsFile, $stackPtr); + return $this->psr2ControlStructureSpacing->process($phpcsFile, $stackPtr); } $next = $phpcsFile->findNext(T_WHITESPACE, ($parenOpener + 1), $parenCloser, true); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/DeclareStatementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/DeclareStatementSniff.php index 67776c33d..d9615f9a4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/DeclareStatementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/DeclareStatementSniff.php @@ -4,7 +4,7 @@ * * @author Sertan Danis * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Files; @@ -20,7 +20,7 @@ class DeclareStatementSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -110,6 +110,12 @@ public function process(File $phpcsFile, $stackPtr) // There should be no space between equal sign and directive value. $value = $phpcsFile->findNext(T_WHITESPACE, ($equals + 1), null, true); + + if ($value === false) { + // Live coding / parse error. + return; + } + if ($equals !== false) { if ($tokens[($equals + 1)]['type'] !== 'T_LNUMBER') { $error = 'Expected no space between equal sign and the directive value in a declare statement'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/FileHeaderSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/FileHeaderSniff.php index 8a8255cf4..f06357d43 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/FileHeaderSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/FileHeaderSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Files; @@ -20,7 +20,7 @@ class FileHeaderSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -36,7 +36,7 @@ public function register() * @param int $stackPtr The position of the current * token in the stack. * - * @return int|null + * @return int|void */ public function process(File $phpcsFile, $stackPtr) { @@ -188,6 +188,7 @@ public function getHeaderLines(File $phpcsFile, $stackPtr) if (isset($commentOpeners[$tokens[$docToken]['code']]) === false && isset(Tokens::$methodPrefixes[$tokens[$docToken]['code']]) === false + && $tokens[$docToken]['code'] !== T_READONLY ) { // Check for an @var annotation. $annotation = false; @@ -283,7 +284,7 @@ public function getHeaderLines(File $phpcsFile, $stackPtr) * @param array $headerLines Header information, as sourced * from getHeaderLines(). * - * @return int|null + * @return void */ public function processHeaderLines(File $phpcsFile, $headerLines) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/ImportStatementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/ImportStatementSniff.php index 176aef006..65198e861 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/ImportStatementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/ImportStatementSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Files; @@ -20,7 +20,7 @@ class ImportStatementSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/OpenTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/OpenTagSniff.php index 4371bee19..d0ac5d363 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/OpenTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Files/OpenTagSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Files; @@ -19,7 +19,7 @@ class OpenTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -44,25 +44,28 @@ public function process(File $phpcsFile, $stackPtr) return $phpcsFile->numTokens; } - $next = $phpcsFile->findNext(T_INLINE_HTML, 0); - if ($next !== false) { - // This rule only applies to PHP-only files. - return $phpcsFile->numTokens; - } - $tokens = $phpcsFile->getTokens(); $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); if ($next === false) { // Empty file. - return; + return $phpcsFile->numTokens; + } + + if ($tokens[$next]['line'] !== $tokens[$stackPtr]['line']) { + // Tag is on a line by itself. + return $phpcsFile->numTokens; + } + + $next = $phpcsFile->findNext(T_INLINE_HTML, 0); + if ($next !== false) { + // This rule only applies to PHP-only files. + return $phpcsFile->numTokens; } - if ($tokens[$next]['line'] === $tokens[$stackPtr]['line']) { - $error = 'Opening PHP tag must be on a line by itself'; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NotAlone'); - if ($fix === true) { - $phpcsFile->fixer->addNewline($stackPtr); - } + $error = 'Opening PHP tag must be on a line by itself'; + $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NotAlone'); + if ($fix === true) { + $phpcsFile->fixer->addNewline($stackPtr); } return $phpcsFile->numTokens; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/NullableTypeDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/NullableTypeDeclarationSniff.php index 8d9073431..4314194d4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/NullableTypeDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/NullableTypeDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2018 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Functions; @@ -27,13 +27,16 @@ class NullableTypeDeclarationSniff implements Sniff T_SELF => true, T_PARENT => true, T_STATIC => true, + T_NULL => true, + T_FALSE => true, + T_TRUE => true, ]; /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/ReturnTypeDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/ReturnTypeDeclarationSniff.php index 14d91e2ea..cf1afc560 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/ReturnTypeDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Functions/ReturnTypeDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Functions; @@ -19,7 +19,7 @@ class ReturnTypeDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Keywords/ShortFormTypeKeywordsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Keywords/ShortFormTypeKeywordsSniff.php index adf04d908..65d39eb91 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Keywords/ShortFormTypeKeywordsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Keywords/ShortFormTypeKeywordsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Keywords; @@ -19,7 +19,7 @@ class ShortFormTypeKeywordsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Namespaces/CompoundNamespaceDepthSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Namespaces/CompoundNamespaceDepthSniff.php index 725fbde31..34e7f461a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Namespaces/CompoundNamespaceDepthSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Namespaces/CompoundNamespaceDepthSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Namespaces; @@ -26,7 +26,7 @@ class CompoundNamespaceDepthSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Operators/OperatorSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Operators/OperatorSpacingSniff.php index 8757e05a3..41628ce3a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Operators/OperatorSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Operators/OperatorSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Operators; @@ -20,7 +20,7 @@ class OperatorSpacingSniff extends SquizOperatorSpacingSniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -35,6 +35,9 @@ public function register() $targets[] = T_STRING_CONCAT; $targets[] = T_INSTANCEOF; + // Also register the contexts we want to specifically skip over. + $targets[] = T_DECLARE; + return $targets; }//end register() @@ -47,12 +50,25 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return void|int Optionally returns a stack pointer. The sniff will not be + * called again on the current file until the returned stack + * pointer is reached. Return `$phpcsFile->numTokens` to skip + * the rest of the file. */ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); + // Skip over declare statements as those should be handled by different sniffs. + if ($tokens[$stackPtr]['code'] === T_DECLARE) { + if (isset($tokens[$stackPtr]['parenthesis_closer']) === false) { + // Parse error / live coding. + return $phpcsFile->numTokens; + } + + return $tokens[$stackPtr]['parenthesis_closer']; + } + if ($this->isOperator($phpcsFile, $stackPtr) === false) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Properties/ConstantVisibilitySniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Properties/ConstantVisibilitySniff.php index 8a1000f72..8bcf0d568 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Properties/ConstantVisibilitySniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Properties/ConstantVisibilitySniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Properties; @@ -20,7 +20,7 @@ class ConstantVisibilitySniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -47,7 +47,10 @@ public function process(File $phpcsFile, $stackPtr) return; } - $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); + $ignore = Tokens::$emptyTokens; + $ignore[] = T_FINAL; + + $prev = $phpcsFile->findPrevious($ignore, ($stackPtr - 1), null, true); if (isset(Tokens::$scopeModifiers[$tokens[$prev]['code']]) === true) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Traits/UseDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Traits/UseDeclarationSniff.php index 113e8b9f8..70e99d764 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Traits/UseDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Sniffs/Traits/UseDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Sniffs\Traits; @@ -20,7 +20,7 @@ class UseDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -36,7 +36,7 @@ public function register() * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * - * @return void + * @return void|int */ public function process(File $phpcsFile, $stackPtr) { @@ -177,6 +177,38 @@ public function process(File $phpcsFile, $stackPtr) }//end if }//end if + $error = 'Expected 1 space after USE in trait import statement; %s found'; + if ($tokens[($useToken + 1)]['code'] !== T_WHITESPACE) { + $data = ['0']; + $fix = $phpcsFile->addFixableError($error, $useToken, 'SpaceAfterUse', $data); + if ($fix === true) { + $phpcsFile->fixer->addContent($useToken, ' '); + } + } else if ($tokens[($useToken + 1)]['content'] !== ' ') { + $next = $phpcsFile->findNext(T_WHITESPACE, ($useToken + 1), null, true); + if ($tokens[$next]['line'] !== $tokens[$useToken]['line']) { + $found = 'newline'; + } else { + $found = $tokens[($useToken + 1)]['length']; + } + + $data = [$found]; + $fix = $phpcsFile->addFixableError($error, $useToken, 'SpaceAfterUse', $data); + if ($fix === true) { + if ($found === 'newline') { + $phpcsFile->fixer->beginChangeset(); + for ($x = ($useToken + 1); $x < $next; $x++) { + $phpcsFile->fixer->replaceToken($x, ''); + } + + $phpcsFile->fixer->addContent($useToken, ' '); + $phpcsFile->fixer->endChangeset(); + } else { + $phpcsFile->fixer->replaceToken(($useToken + 1), ' '); + } + } + }//end if + // Check the formatting of the statement. if (isset($tokens[$useToken]['scope_opener']) === true) { $this->processUseGroup($phpcsFile, $useToken); @@ -652,38 +684,6 @@ protected function processUseStatement(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); - $error = 'Expected 1 space after USE in trait import statement; %s found'; - if ($tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) { - $data = ['0']; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceAfterAs', $data); - if ($fix === true) { - $phpcsFile->fixer->addContent($stackPtr, ' '); - } - } else if ($tokens[($stackPtr + 1)]['content'] !== ' ') { - $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); - if ($tokens[$next]['line'] !== $tokens[$stackPtr]['line']) { - $found = 'newline'; - } else { - $found = $tokens[($stackPtr + 1)]['length']; - } - - $data = [$found]; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceAfterAs', $data); - if ($fix === true) { - if ($found === 'newline') { - $phpcsFile->fixer->beginChangeset(); - for ($x = ($stackPtr + 1); $x < $next; $x++) { - $phpcsFile->fixer->replaceToken($x, ''); - } - - $phpcsFile->fixer->addContent($stackPtr, ' '); - $phpcsFile->fixer->endChangeset(); - } else { - $phpcsFile->fixer->replaceToken(($stackPtr + 1), ' '); - } - } - }//end if - $next = $phpcsFile->findNext([T_COMMA, T_SEMICOLON], ($stackPtr + 1)); if ($next !== false && $tokens[$next]['code'] === T_COMMA) { $error = 'Each imported trait must have its own "use" import statement'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc index e132b54df..386b12c22 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc @@ -82,3 +82,15 @@ $foo->bar( foo(new class { }); + +// Issue #3790: OpenBraceSameLine fixer should not remove open brace. +$instance = new class() extends SomeClass implements + SomeInterface{ + public function __construct() {} +}; + +// PHP 8.3 readonly anonymous classes. +$anon = new readonly class {}; +$anon = new readonly class {}; +$anon = new readonly + class {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc.fixed index 921dcc02d..28b38f708 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.inc.fixed @@ -84,3 +84,15 @@ $foo->bar( foo(new class { }); + +// Issue #3790: OpenBraceSameLine fixer should not remove open brace. +$instance = new class () extends SomeClass implements + SomeInterface +{ + public function __construct() {} +}; + +// PHP 8.3 readonly anonymous classes. +$anon = new readonly class {}; +$anon = new readonly class {}; +$anon = new readonly class {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.php index 3f65602e6..240352704 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/AnonClassDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class AnonClassDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the AnonClassDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes\AnonClassDeclarationSniff + */ +final class AnonClassDeclarationUnitTest extends AbstractSniffUnitTest { @@ -32,7 +37,7 @@ public function getErrorList() 32 => 1, 33 => 1, 34 => 1, - 35 => 2, + 35 => 1, 36 => 1, 37 => 3, 39 => 1, @@ -48,6 +53,10 @@ public function getErrorList() 56 => 2, 63 => 1, 75 => 1, + 87 => 1, + 88 => 1, + 94 => 1, + 96 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc index ca0dc3614..264116779 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc @@ -36,3 +36,16 @@ $a = new ${$varHoldingClassName}; $class = new $obj?->classname(); $class = new $obj?->classname; $class = new ${$obj?->classname}; + +// Issue 3456. +// Anon classes should be skipped, even when there is an attribute between the new and the class keywords. +$anonWithAttribute = new #[SomeAttribute('summary')] class { + public const SOME_STUFF = 'foo'; +}; + +$foo = new parent(); +$foo = new parent; + +// PHP 8.3: safeguard that the sniff ignores anonymous classes, even when declared as readonly. +$anon = new readonly class {}; +$anon = new #[MyAttribute] readonly class {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc.fixed index a4d209cc1..1e580f45d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.inc.fixed @@ -36,3 +36,16 @@ $a = new ${$varHoldingClassName}(); $class = new $obj?->classname(); $class = new $obj?->classname(); $class = new ${$obj?->classname}(); + +// Issue 3456. +// Anon classes should be skipped, even when there is an attribute between the new and the class keywords. +$anonWithAttribute = new #[SomeAttribute('summary')] class { + public const SOME_STUFF = 'foo'; +}; + +$foo = new parent(); +$foo = new parent(); + +// PHP 8.3: safeguard that the sniff ignores anonymous classes, even when declared as readonly. +$anon = new readonly class {}; +$anon = new #[MyAttribute] readonly class {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.php index 3fb1ab992..103569211 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClassInstantiationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassInstantiationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassInstantiation sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes\ClassInstantiationSniff + */ +final class ClassInstantiationUnitTest extends AbstractSniffUnitTest { @@ -43,6 +48,7 @@ public function getErrorList() 34 => 1, 37 => 1, 38 => 1, + 47 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.inc index 1d2e92c97..2562d26c0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.inc @@ -45,3 +45,8 @@ $instance = new class extends \Foo implements \HandleableInterface { $app->get('/hello/{name}', function ($name) use ($app) { return 'Hello ' . $app->escape($name); }); + +enum Foo4 +{ + +}//end diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.php index 1deac1cdf..196de8f5f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/ClosingBraceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClosingBraceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClosingBrace sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes\ClosingBraceSniff + */ +final class ClosingBraceUnitTest extends AbstractSniffUnitTest { @@ -31,6 +36,7 @@ public function getErrorList() 19 => 1, 24 => 1, 31 => 1, + 52 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/OpeningBraceSpaceUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/OpeningBraceSpaceUnitTest.inc new file mode 100644 index 000000000..2c41bde99 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Classes/OpeningBraceSpaceUnitTest.inc @@ -0,0 +1,57 @@ + + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Standards\PSR12\Tests\Classes; + +use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; + +/** + * Unit test class for the OpeningBraceSpace sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Classes\OpeningBraceSpaceSniff + */ +final class OpeningBraceSpaceUnitTest extends AbstractSniffUnitTest +{ + + + /** + * Returns the lines where errors should occur. + * + * The key of the array should represent the line number and the value + * should represent the number of errors that should occur on that line. + * + * @return array + */ + public function getErrorList() + { + return [ + 10 => 1, + 18 => 1, + 24 => 1, + 34 => 1, + 41 => 1, + 55 => 1, + ]; + + }//end getErrorList() + + + /** + * Returns the lines where warnings should occur. + * + * The key of the array should represent the line number and the value + * should represent the number of warnings that should occur on that line. + * + * @return array + */ + public function getWarningList() + { + return []; + + }//end getWarningList() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/BooleanOperatorPlacementUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/BooleanOperatorPlacementUnitTest.php index 3eeaeebc4..957ea546d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/BooleanOperatorPlacementUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/BooleanOperatorPlacementUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class BooleanOperatorPlacementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the BooleanOperatorPlacement sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\ControlStructures\BooleanOperatorPlacementSniff + */ +final class BooleanOperatorPlacementUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.php index 6ee076f2e..69ef8b7c3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/ControlStructures/ControlStructureSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ControlStructureSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\ControlStructures\ControlStructureSpacingSniff + */ +final class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.1.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.inc rename to api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.1.inc diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.1.inc.fixed similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.inc.fixed rename to api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.1.inc.fixed diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.2.inc new file mode 100644 index 000000000..01c3a016d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/DeclareStatementUnitTest.2.inc @@ -0,0 +1,3 @@ + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DeclareStatementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DeclareStatement sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Files\DeclareStatementSniff + */ +final class DeclareStatementUnitTest extends AbstractSniffUnitTest { @@ -21,35 +26,42 @@ class DeclareStatementUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 2 => 1, - 3 => 1, - 4 => 1, - 5 => 2, - 6 => 1, - 7 => 1, - 9 => 2, - 10 => 1, - 11 => 3, - 12 => 2, - 13 => 1, - 14 => 2, - 16 => 3, - 19 => 3, - 22 => 1, - 24 => 1, - 26 => 3, - 28 => 3, - 34 => 2, - 43 => 1, - 46 => 1, - 47 => 1, - 49 => 1, - ]; + switch ($testFile) { + case 'DeclareStatementUnitTest.1.inc': + return [ + 2 => 1, + 3 => 1, + 4 => 1, + 5 => 2, + 6 => 1, + 7 => 1, + 9 => 2, + 10 => 1, + 11 => 3, + 12 => 2, + 13 => 1, + 14 => 2, + 16 => 3, + 19 => 3, + 22 => 1, + 24 => 1, + 26 => 3, + 28 => 3, + 34 => 2, + 43 => 1, + 46 => 1, + 47 => 1, + 49 => 1, + ]; + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/FileHeaderUnitTest.18.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/FileHeaderUnitTest.18.inc new file mode 100644 index 000000000..be7c11ac9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/FileHeaderUnitTest.18.inc @@ -0,0 +1,16 @@ + * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FileHeaderUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FileHeader sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Files\FileHeaderSniff + */ +final class FileHeaderUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc index 904e3f408..6d024eaa9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc @@ -17,3 +17,10 @@ class ClassName3 } $foo = function() use($bar) {}; + +enum SomeEnum +{ + use \FirstTrait; + use SecondTrait; + use ThirdTrait; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc.fixed index d5b3f67ee..dfed46fc1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.inc.fixed @@ -17,3 +17,10 @@ class ClassName3 } $foo = function() use($bar) {}; + +enum SomeEnum +{ + use \FirstTrait; + use SecondTrait; + use ThirdTrait; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.php index 04590b97a..86bca2d0c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/ImportStatementUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ImportStatementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ImportStatement sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Files\ImportStatementSniff + */ +final class ImportStatementUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/OpenTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/OpenTagUnitTest.php index b94043a31..898334e44 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/OpenTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Files/OpenTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OpenTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OpenTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Files\OpenTagSniff + */ +final class OpenTagUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc index e3a5a775f..056d74c3f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc @@ -85,3 +85,11 @@ class testInstanceOf() { // PHP 8.0: static return type. function testStatic() : ? static {} + +// PHP 8.2: nullable true/false. +function fooG(): ? true {} +function fooH(): ? + false {} + +// Fatal error: null cannot be marked as nullable, but that's not the concern of this sniff. +function fooI(): ? null {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc.fixed index 6225d1b33..6cc418d07 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.inc.fixed @@ -83,3 +83,10 @@ class testInstanceOf() { // PHP 8.0: static return type. function testStatic() : ?static {} + +// PHP 8.2: nullable true/false. +function fooG(): ?true {} +function fooH(): ?false {} + +// Fatal error: null cannot be marked as nullable, but that's not the concern of this sniff. +function fooI(): ?null {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.php index 2344b6d97..828ec4d8c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/NullableTypeDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2018 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NullableTypeDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NullableWhitespace sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Functions\NullableTypeDeclarationSniff + */ +final class NullableTypeDeclarationUnitTest extends AbstractSniffUnitTest { @@ -41,6 +46,9 @@ protected function getErrorList() 58 => 2, 59 => 2, 87 => 1, + 90 => 1, + 91 => 1, + 95 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/ReturnTypeDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/ReturnTypeDeclarationUnitTest.php index fc6b5e19c..d2962e8d1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/ReturnTypeDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Functions/ReturnTypeDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2018 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ReturnTypeDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ReturnTypeDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Functions\ReturnTypeDeclarationSniff + */ +final class ReturnTypeDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Keywords/ShortFormTypeKeywordsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Keywords/ShortFormTypeKeywordsUnitTest.php index 460cd55f5..e0fc38f47 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Keywords/ShortFormTypeKeywordsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Keywords/ShortFormTypeKeywordsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Keywords; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ShortFormTypeKeywordsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ShortFormTypeKeywords sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Keywords\ShortFormTypeKeywordsSniff + */ +final class ShortFormTypeKeywordsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Namespaces/CompoundNamespaceDepthUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Namespaces/CompoundNamespaceDepthUnitTest.php index 41e9db774..4ad77882e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Namespaces/CompoundNamespaceDepthUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Namespaces/CompoundNamespaceDepthUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Namespaces; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CompoundNamespaceDepthUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CompoundNamespaceDepth sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Namespaces\CompoundNamespaceDepthSniff + */ +final class CompoundNamespaceDepthUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.1.inc new file mode 100644 index 000000000..14cf8e9df --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.1.inc @@ -0,0 +1,79 @@ + $b) { + $variable =$foo ? 'foo' :'bar'; + $variable.='text'.'text'; +} + +$foo+= $a&$b; +$foo = $a|$b; +$foo =$a^$b; +$foo = ~$a; +$foo *=$a<<$b; +$foo = $a>>$b; + +function foo(&$a,& $b) {} + +$foo = $a and$b; +$foo = $a or $b; +$foo = $a xor$b; +$foo = !$a; +$foo = $a&&$b; +$foo = $a||$b; + +$foo = $a instanceof Foo; +$foo = $a instanceof$b; + +$foo .= 'hi' + .= 'there'; + +$foo .= 'hi' +.= 'there'; + +$foo .= 'hi' // comment +.= 'there'; + +$foo/*comment*/=/*comment*/$a/*comment*/and/*comment*/$b; + +$foo .=//comment +'string' .=/*comment*/ +'string'; + +$foo = $foo ?: 'bar'; +$foo = $foo?:'bar'; + +try { +} catch (ExceptionType1|ExceptionType2 $e) { +} + +if (strpos($tokenContent, 'b"') === 0 && substr($tokenContent, -1) === '"') {} + +$oldConstructorPos = +1; +return -$content; + +function name($a = -1) {} + +$a =& $ref; +$a = [ 'a' => &$something ]; + +$fn = fn(array &$one) => 1; +$fn = fn(array & $one) => 1; + +$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); + +function issue3267(string|int ...$values) {} + +function setDefault(#[ImportValue( + constraints: [ + [ + Assert\Type::class, + ['type' => 'bool'], + ], + ] + )] ?bool $value = null): void + { + // Do something + } + +declare(strict_types=1); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.1.inc.fixed new file mode 100644 index 000000000..0f52f1cf7 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.1.inc.fixed @@ -0,0 +1,79 @@ + $b) { + $variable = $foo ? 'foo' : 'bar'; + $variable .= 'text' . 'text'; +} + +$foo += $a & $b; +$foo = $a | $b; +$foo = $a ^ $b; +$foo = ~$a; +$foo *= $a << $b; +$foo = $a >> $b; + +function foo(&$a,& $b) {} + +$foo = $a and $b; +$foo = $a or $b; +$foo = $a xor $b; +$foo = !$a; +$foo = $a && $b; +$foo = $a || $b; + +$foo = $a instanceof Foo; +$foo = $a instanceof $b; + +$foo .= 'hi' + .= 'there'; + +$foo .= 'hi' +.= 'there'; + +$foo .= 'hi' // comment +.= 'there'; + +$foo/*comment*/ = /*comment*/$a/*comment*/ and /*comment*/$b; + +$foo .= //comment +'string' .= /*comment*/ +'string'; + +$foo = $foo ?: 'bar'; +$foo = $foo ?: 'bar'; + +try { +} catch (ExceptionType1 | ExceptionType2 $e) { +} + +if (strpos($tokenContent, 'b"') === 0 && substr($tokenContent, -1) === '"') {} + +$oldConstructorPos = +1; +return -$content; + +function name($a = -1) {} + +$a =& $ref; +$a = [ 'a' => &$something ]; + +$fn = fn(array &$one) => 1; +$fn = fn(array & $one) => 1; + +$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); + +function issue3267(string|int ...$values) {} + +function setDefault(#[ImportValue( + constraints: [ + [ + Assert\Type::class, + ['type' => 'bool'], + ], + ] + )] ?bool $value = null): void + { + // Do something + } + +declare(strict_types=1); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.2.inc new file mode 100644 index 000000000..3a0dbac3e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.2.inc @@ -0,0 +1,3 @@ + $b) { - $variable =$foo ? 'foo' :'bar'; - $variable.='text'.'text'; -} - -$foo+= $a&$b; -$foo = $a|$b; -$foo =$a^$b; -$foo = ~$a; -$foo *=$a<<$b; -$foo = $a>>$b; - -function foo(&$a,& $b) {} - -$foo = $a and$b; -$foo = $a or $b; -$foo = $a xor$b; -$foo = !$a; -$foo = $a&&$b; -$foo = $a||$b; - -$foo = $a instanceof Foo; -$foo = $a instanceof$b; - -$foo .= 'hi' - .= 'there'; - -$foo .= 'hi' -.= 'there'; - -$foo .= 'hi' // comment -.= 'there'; - -$foo/*comment*/=/*comment*/$a/*comment*/and/*comment*/$b; - -$foo .=//comment -'string' .=/*comment*/ -'string'; - -$foo = $foo ?: 'bar'; -$foo = $foo?:'bar'; - -try { -} catch (ExceptionType1|ExceptionType2 $e) { -} - -if (strpos($tokenContent, 'b"') === 0 && substr($tokenContent, -1) === '"') {} - -$oldConstructorPos = +1; -return -$content; - -function name($a = -1) {} - -$a =& $ref; -$a = [ 'a' => &$something ]; - -$fn = fn(array &$one) => 1; -$fn = fn(array & $one) => 1; - -$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); - -function issue3267(string|int ...$values) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.inc.fixed deleted file mode 100644 index 504ae43e5..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.inc.fixed +++ /dev/null @@ -1,65 +0,0 @@ - $b) { - $variable = $foo ? 'foo' : 'bar'; - $variable .= 'text' . 'text'; -} - -$foo += $a & $b; -$foo = $a | $b; -$foo = $a ^ $b; -$foo = ~$a; -$foo *= $a << $b; -$foo = $a >> $b; - -function foo(&$a,& $b) {} - -$foo = $a and $b; -$foo = $a or $b; -$foo = $a xor $b; -$foo = !$a; -$foo = $a && $b; -$foo = $a || $b; - -$foo = $a instanceof Foo; -$foo = $a instanceof $b; - -$foo .= 'hi' - .= 'there'; - -$foo .= 'hi' -.= 'there'; - -$foo .= 'hi' // comment -.= 'there'; - -$foo/*comment*/ = /*comment*/$a/*comment*/ and /*comment*/$b; - -$foo .= //comment -'string' .= /*comment*/ -'string'; - -$foo = $foo ?: 'bar'; -$foo = $foo ?: 'bar'; - -try { -} catch (ExceptionType1 | ExceptionType2 $e) { -} - -if (strpos($tokenContent, 'b"') === 0 && substr($tokenContent, -1) === '"') {} - -$oldConstructorPos = +1; -return -$content; - -function name($a = -1) {} - -$a =& $ref; -$a = [ 'a' => &$something ]; - -$fn = fn(array &$one) => 1; -$fn = fn(array & $one) => 1; - -$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); - -function issue3267(string|int ...$values) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.php index e23fd968b..4affd51c5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Operators/OperatorSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Operators; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OperatorSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OperatorSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Operators\OperatorSpacingSniff + */ +final class OperatorSpacingUnitTest extends AbstractSniffUnitTest { @@ -21,32 +26,39 @@ class OperatorSpacingUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 2 => 1, - 3 => 2, - 4 => 1, - 5 => 2, - 6 => 4, - 9 => 3, - 10 => 2, - 11 => 3, - 13 => 3, - 14 => 2, - 18 => 1, - 20 => 1, - 22 => 2, - 23 => 2, - 26 => 1, - 37 => 4, - 39 => 1, - 40 => 1, - 44 => 2, - 47 => 2, - ]; + switch ($testFile) { + case 'OperatorSpacingUnitTest.1.inc': + return [ + 2 => 1, + 3 => 2, + 4 => 1, + 5 => 2, + 6 => 4, + 9 => 3, + 10 => 2, + 11 => 3, + 13 => 3, + 14 => 2, + 18 => 1, + 20 => 1, + 22 => 2, + 23 => 2, + 26 => 1, + 37 => 4, + 39 => 1, + 40 => 1, + 44 => 2, + 47 => 2, + ]; + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.inc index c07b1b91e..84ea24b2e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.inc @@ -5,3 +5,18 @@ class Foo { } const APPLICATION_ENV = 'development'; + +// Issue 3526, PHP 8.1 final constants. +class SampleEnum +{ + final const FOO = 'SAMPLE'; + + public final const BAR = 'SAMPLE'; + + final private const BAZ = 'SAMPLE'; +} + +enum SomeEnum { + public const BAR = 'bar'; + const BAZ = 'baz'; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.php index 3917eb682..6c39e7cc6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Properties/ConstantVisibilityUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Properties; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ConstantVisibilityUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ConstantVisibility sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Properties\ConstantVisibilitySniff + */ +final class ConstantVisibilityUnitTest extends AbstractSniffUnitTest { @@ -40,7 +45,11 @@ public function getErrorList() */ public function getWarningList() { - return [4 => 1]; + return [ + 4 => 1, + 12 => 1, + 21 => 1, + ]; }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc index e62489fe0..152121cf1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc @@ -54,7 +54,7 @@ class ClassName7 class ClassName8 { - use A , B, + use A , B, C { @@ -207,3 +207,15 @@ class Foo implements Bar */ use Baz; } + +enum SomeEnum1 +{ + use FirstTrait; +} + +enum SomeEnum2 +{ + + use FirstTrait; + +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc.fixed index 0090b4e93..1c5d8185c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.inc.fixed @@ -201,3 +201,13 @@ class Foo implements Bar */ use Baz; } + +enum SomeEnum1 +{ + use FirstTrait; +} + +enum SomeEnum2 +{ + use FirstTrait; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.php index c406805a9..383d59c81 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/Tests/Traits/UseDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR12\Tests\Traits; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UseDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UseDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR12\Sniffs\Traits\UseDeclarationSniff + */ +final class UseDeclarationUnitTest extends AbstractSniffUnitTest { @@ -30,7 +35,7 @@ public function getErrorList() 29 => 2, 30 => 1, 42 => 1, - 57 => 3, + 57 => 4, 59 => 3, 61 => 1, 63 => 5, @@ -47,6 +52,7 @@ public function getErrorList() 165 => 1, 170 => 1, 208 => 1, + 219 => 3, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/ruleset.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/ruleset.xml index 146700435..2f9ae0a47 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/ruleset.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR12/ruleset.xml @@ -96,6 +96,7 @@ + @@ -104,7 +105,7 @@ - + @@ -123,6 +124,7 @@ + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Files/ClosingTagStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Files/ClosingTagStandard.xml new file mode 100644 index 000000000..60d5e7fba --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Files/ClosingTagStandard.xml @@ -0,0 +1,23 @@ + + + + + + + + ]]> + + + ?> + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/FunctionCallSignatureStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/FunctionCallSignatureStandard.xml new file mode 100644 index 000000000..257bcab0b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/FunctionCallSignatureStandard.xml @@ -0,0 +1,107 @@ + + + + + + + ($bar, $baz); + ]]> + + + ( $bar, $baz ); + ]]> + + + + + $bar, + $baz +); + ]]> + + + $bar, + $baz +); + ]]> + + + + + ); + ]]> + + + ); + ]]> + + + + + $bar, + $baz +); + ]]> + + + $bar, + $baz +); + ]]> + + + + + $baz +); + ]]> + + + $baz +); + ]]> + + + + + + + + + $baz +); + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/FunctionClosingBraceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/FunctionClosingBraceStandard.xml new file mode 100644 index 000000000..3b1b6555e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Docs/Methods/FunctionClosingBraceStandard.xml @@ -0,0 +1,26 @@ + + + + + + + } + ]]> + + + +} + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php index f96b00490..3325459ae 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes; @@ -65,41 +65,51 @@ public function processOpen(File $phpcsFile, $stackPtr) $stackPtrType = strtolower($tokens[$stackPtr]['content']); // Check alignment of the keyword and braces. - if ($tokens[($stackPtr - 1)]['code'] === T_WHITESPACE) { - $prevContent = $tokens[($stackPtr - 1)]['content']; - if ($prevContent !== $phpcsFile->eolChar) { - $blankSpace = substr($prevContent, strpos($prevContent, $phpcsFile->eolChar)); - $spaces = strlen($blankSpace); - - if (in_array($tokens[($stackPtr - 2)]['code'], [T_ABSTRACT, T_FINAL], true) === true - && $spaces !== 1 - ) { - $prevContent = strtolower($tokens[($stackPtr - 2)]['content']); - $error = 'Expected 1 space between %s and %s keywords; %s found'; - $data = [ - $prevContent, - $stackPtrType, - $spaces, - ]; - - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceBeforeKeyword', $data); - if ($fix === true) { - $phpcsFile->fixer->replaceToken(($stackPtr - 1), ' '); - } - } - } else if ($tokens[($stackPtr - 2)]['code'] === T_ABSTRACT - || $tokens[($stackPtr - 2)]['code'] === T_FINAL - ) { - $prevContent = strtolower($tokens[($stackPtr - 2)]['content']); - $error = 'Expected 1 space between %s and %s keywords; newline found'; - $data = [ - $prevContent, + $classModifiers = [ + T_ABSTRACT => T_ABSTRACT, + T_FINAL => T_FINAL, + T_READONLY => T_READONLY, + ]; + + $prevNonSpace = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + $prevNonEmpty = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); + + if (isset($classModifiers[$tokens[$prevNonEmpty]['code']]) === true) { + $spaces = 0; + $errorCode = 'SpaceBeforeKeyword'; + if ($tokens[$prevNonEmpty]['line'] !== $tokens[$stackPtr]['line']) { + $spaces = 'newline'; + $errorCode = 'NewlineBeforeKeyword'; + } else if ($tokens[($stackPtr - 1)]['code'] === T_WHITESPACE) { + $spaces = $tokens[($stackPtr - 1)]['length']; + } + + if ($spaces !== 1) { + $error = 'Expected 1 space between %s and %s keywords; %s found'; + $data = [ + strtolower($tokens[$prevNonEmpty]['content']), $stackPtrType, + $spaces, ]; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NewlineBeforeKeyword', $data); - if ($fix === true) { - $phpcsFile->fixer->replaceToken(($stackPtr - 1), ' '); + if ($prevNonSpace !== $prevNonEmpty) { + // Comment found between modifier and class keyword. Do not auto-fix. + $phpcsFile->addError($error, $stackPtr, $errorCode, $data); + } else { + $fix = $phpcsFile->addFixableError($error, $stackPtr, $errorCode, $data); + if ($fix === true) { + if ($spaces === 0) { + $phpcsFile->fixer->addContentBefore($stackPtr, ' '); + } else { + $phpcsFile->fixer->beginChangeset(); + $phpcsFile->fixer->replaceToken(($stackPtr - 1), ' '); + for ($i = ($stackPtr - 2); $i > $prevNonSpace; $i--) { + $phpcsFile->fixer->replaceToken($i, ' '); + } + + $phpcsFile->fixer->endChangeset(); + } + } } }//end if }//end if @@ -304,7 +314,8 @@ public function processOpen(File $phpcsFile, $stackPtr) if ($checkingImplements === true && $multiLineImplements === true && ($tokens[($className - 1)]['code'] !== T_NS_SEPARATOR - || $tokens[($className - 2)]['code'] !== T_STRING) + || ($tokens[($className - 2)]['code'] !== T_STRING + && $tokens[($className - 2)]['code'] !== T_NAMESPACE)) ) { $prev = $phpcsFile->findPrevious( [ @@ -338,7 +349,10 @@ public function processOpen(File $phpcsFile, $stackPtr) $phpcsFile->fixer->addNewline($prev); $phpcsFile->fixer->endChangeset(); } - } else if ($tokens[$prev]['line'] !== ($tokens[$className]['line'] - 1)) { + } else if ((isset(Tokens::$commentTokens[$tokens[$prev]['code']]) === false + && $tokens[$prev]['line'] !== ($tokens[$className]['line'] - 1)) + || $tokens[$prev]['line'] === $tokens[$className]['line'] + ) { if ($keywordTokenType === T_EXTENDS) { $error = 'Only one interface may be specified per line in a multi-line extends declaration'; $fix = $phpcsFile->addFixableError($error, $className, 'ExtendsInterfaceSameLine'); @@ -387,9 +401,10 @@ public function processOpen(File $phpcsFile, $stackPtr) } }//end if } else if ($tokens[($className - 1)]['code'] !== T_NS_SEPARATOR - || $tokens[($className - 2)]['code'] !== T_STRING + || ($tokens[($className - 2)]['code'] !== T_STRING + && $tokens[($className - 2)]['code'] !== T_NAMESPACE) ) { - // Not part of a longer fully qualified class name. + // Not part of a longer fully qualified or namespace relative class name. if ($tokens[($className - 1)]['code'] === T_COMMA || ($tokens[($className - 1)]['code'] === T_NS_SEPARATOR && $tokens[($className - 2)]['code'] === T_COMMA) @@ -491,12 +506,12 @@ public function processClose(File $phpcsFile, $stackPtr) if ($fix === true) { $phpcsFile->fixer->beginChangeset(); - for ($i = ($prevContent + 1); $i < $closeBrace; $i++) { + for ($i = ($prevContent + 1); $tokens[$i]['line'] !== $tokens[$closeBrace]['line']; $i++) { $phpcsFile->fixer->replaceToken($i, ''); } if (strpos($tokens[$prevContent]['content'], $phpcsFile->eolChar) === false) { - $phpcsFile->fixer->replaceToken($closeBrace, $phpcsFile->eolChar.$tokens[$closeBrace]['content']); + $phpcsFile->fixer->addNewline($prevContent); } $phpcsFile->fixer->endChangeset(); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php index 8a158d966..29d7023ea 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php @@ -4,11 +4,12 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes; +use Exception; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\AbstractVariableSniff; use PHP_CodeSniffer\Util\Tokens; @@ -41,6 +42,7 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) $find = Tokens::$scopeModifiers; $find[] = T_VARIABLE; $find[] = T_VAR; + $find[] = T_READONLY; $find[] = T_SEMICOLON; $find[] = T_OPEN_CURLY_BRACKET; @@ -65,7 +67,7 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) if (empty($propertyInfo) === true) { return; } - } catch (\Exception $e) { + } catch (Exception $e) { // Turns out not to be a property after all. return; } @@ -117,30 +119,70 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) $phpcsFile->addError($error, $stackPtr, 'ScopeMissing', $data); } + /* + * Note: per PSR-PER section 4.6, the order should be: + * - Inheritance modifier: `abstract` or `final`. + * - Visibility modifier: `public`, `protected`, or `private`. + * - Scope modifier: `static`. + * - Mutation modifier: `readonly`. + * - Type declaration. + * - Name. + * + * Ref: https://www.php-fig.org/per/coding-style/#46-modifier-keywords + * + * At this time (PHP 8.2), inheritance modifiers cannot be applied to properties and + * the `static` and `readonly` modifiers are mutually exclusive and cannot be used together. + * + * Based on that, the below modifier keyword order checks are sufficient (for now). + */ + if ($propertyInfo['scope_specified'] === true && $propertyInfo['is_static'] === true) { $scopePtr = $phpcsFile->findPrevious(Tokens::$scopeModifiers, ($stackPtr - 1)); $staticPtr = $phpcsFile->findPrevious(T_STATIC, ($stackPtr - 1)); - if ($scopePtr < $staticPtr) { - return; - } + if ($scopePtr > $staticPtr) { + $error = 'The static declaration must come after the visibility declaration'; + $fix = $phpcsFile->addFixableError($error, $stackPtr, 'StaticBeforeVisibility'); + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); - $error = 'The static declaration must come after the visibility declaration'; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'StaticBeforeVisibility'); - if ($fix === true) { - $phpcsFile->fixer->beginChangeset(); + for ($i = ($scopePtr + 1); $scopePtr < $stackPtr; $i++) { + if ($tokens[$i]['code'] !== T_WHITESPACE) { + break; + } - for ($i = ($scopePtr + 1); $scopePtr < $stackPtr; $i++) { - if ($tokens[$i]['code'] !== T_WHITESPACE) { - break; + $phpcsFile->fixer->replaceToken($i, ''); } - $phpcsFile->fixer->replaceToken($i, ''); + $phpcsFile->fixer->replaceToken($scopePtr, ''); + $phpcsFile->fixer->addContentBefore($staticPtr, $propertyInfo['scope'].' '); + + $phpcsFile->fixer->endChangeset(); } + } + }//end if + + if ($propertyInfo['scope_specified'] === true && $propertyInfo['is_readonly'] === true) { + $scopePtr = $phpcsFile->findPrevious(Tokens::$scopeModifiers, ($stackPtr - 1)); + $readonlyPtr = $phpcsFile->findPrevious(T_READONLY, ($stackPtr - 1)); + if ($scopePtr > $readonlyPtr) { + $error = 'The readonly declaration must come after the visibility declaration'; + $fix = $phpcsFile->addFixableError($error, $stackPtr, 'ReadonlyBeforeVisibility'); + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); + + for ($i = ($scopePtr + 1); $scopePtr < $stackPtr; $i++) { + if ($tokens[$i]['code'] !== T_WHITESPACE) { + break; + } + + $phpcsFile->fixer->replaceToken($i, ''); + } - $phpcsFile->fixer->replaceToken($scopePtr, ''); - $phpcsFile->fixer->addContentBefore($staticPtr, $propertyInfo['scope'].' '); + $phpcsFile->fixer->replaceToken($scopePtr, ''); + $phpcsFile->fixer->addContentBefore($readonlyPtr, $propertyInfo['scope'].' '); - $phpcsFile->fixer->endChangeset(); + $phpcsFile->fixer->endChangeset(); + } } }//end if diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php index 09d2c14a0..d855dbd63 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures; @@ -34,7 +34,7 @@ class ControlStructureSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -44,7 +44,6 @@ public function register() T_FOREACH, T_FOR, T_SWITCH, - T_ELSE, T_ELSEIF, T_CATCH, T_MATCH, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php index 9f97684a9..7f5e97c18 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures; @@ -19,7 +19,7 @@ class ElseIfDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php index faac9dcbb..4b3b5ad2b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures; @@ -27,7 +27,7 @@ class SwitchDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -107,13 +107,13 @@ public function process(File $phpcsFile, $stackPtr) } } - $next = $phpcsFile->findNext(T_WHITESPACE, ($opener + 1), null, true); - if ($tokens[$next]['line'] === $tokens[$opener]['line'] - && ($tokens[$next]['code'] === T_COMMENT - || isset(Tokens::$phpcsCommentTokens[$tokens[$next]['code']]) === true) - ) { - // Skip comments on the same line. - $next = $phpcsFile->findNext(T_WHITESPACE, ($next + 1), null, true); + for ($next = ($opener + 1); $next < $nextCloser; $next++) { + if (isset(Tokens::$emptyTokens[$tokens[$next]['code']]) === false + || (isset(Tokens::$commentTokens[$tokens[$next]['code']]) === true + && $tokens[$next]['line'] !== $tokens[$opener]['line']) + ) { + break; + } } if ($tokens[$next]['line'] !== ($tokens[$opener]['line'] + 1)) { @@ -126,6 +126,11 @@ public function process(File $phpcsFile, $stackPtr) } else { $phpcsFile->fixer->beginChangeset(); for ($i = ($opener + 1); $i < $next; $i++) { + if ($tokens[$i]['line'] === $tokens[$opener]['line']) { + // Ignore trailing comments. + continue; + } + if ($tokens[$i]['line'] === $tokens[$next]['line']) { break; } @@ -133,10 +138,9 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->fixer->replaceToken($i, ''); } - $phpcsFile->fixer->addNewLineBefore($i); $phpcsFile->fixer->endChangeset(); } - } + }//end if }//end if if ($tokens[$nextCloser]['scope_condition'] === $nextCase) { @@ -186,7 +190,7 @@ public function process(File $phpcsFile, $stackPtr) $nextCode = $this->findNextCase($phpcsFile, ($opener + 1), $nextCloser); if ($nextCode !== false) { $prevCode = $phpcsFile->findPrevious(T_WHITESPACE, ($nextCode - 1), $nextCase, true); - if ($tokens[$prevCode]['code'] !== T_COMMENT + if (isset(Tokens::$commentTokens[$tokens[$prevCode]['code']]) === false && $this->findNestedTerminator($phpcsFile, ($opener + 1), $nextCode) === false ) { $error = 'There must be a comment when fall-through is intentional in a non-empty case body'; @@ -237,35 +241,38 @@ private function findNextCase($phpcsFile, $stackPtr, $end) * @param int $stackPtr The position to start looking at. * @param int $end The position to stop looking at. * - * @return int|false + * @return int|bool */ private function findNestedTerminator($phpcsFile, $stackPtr, $end) { $tokens = $phpcsFile->getTokens(); - $lastToken = $phpcsFile->findPrevious(T_WHITESPACE, ($end - 1), $stackPtr, true); + $lastToken = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($end - 1), $stackPtr, true); if ($lastToken === false) { return false; } if ($tokens[$lastToken]['code'] === T_CLOSE_CURLY_BRACKET) { // We found a closing curly bracket and want to check if its block - // belongs to a SWITCH, IF, ELSEIF or ELSE clause. If yes, we - // continue searching for a terminating statement within that + // belongs to a SWITCH, IF, ELSEIF or ELSE, TRY, CATCH OR FINALLY clause. + // If yes, we continue searching for a terminating statement within that // block. Note that we have to make sure that every block of // the entire if/else/switch statement has a terminating statement. + // For a try/catch/finally statement, either the finally block has + // to have a terminating statement or every try/catch block has to have one. $currentCloser = $lastToken; $hasElseBlock = false; + $hasCatchWithoutTerminator = false; do { $scopeOpener = $tokens[$currentCloser]['scope_opener']; $scopeCloser = $tokens[$currentCloser]['scope_closer']; - $prevToken = $phpcsFile->findPrevious(T_WHITESPACE, ($scopeOpener - 1), $stackPtr, true); + $prevToken = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($scopeOpener - 1), $stackPtr, true); if ($prevToken === false) { return false; } - // SWITCH, IF and ELSEIF clauses possess a condition we have to account for. + // SWITCH, IF, ELSEIF, CATCH clauses possess a condition we have to account for. if ($tokens[$prevToken]['code'] === T_CLOSE_PARENTHESIS) { $prevToken = $tokens[$prevToken]['parenthesis_owner']; } @@ -288,10 +295,39 @@ private function findNestedTerminator($phpcsFile, $stackPtr, $end) return false; } - $currentCloser = $phpcsFile->findPrevious(T_WHITESPACE, ($prevToken - 1), $stackPtr, true); + $currentCloser = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($prevToken - 1), $stackPtr, true); if ($tokens[$prevToken]['code'] === T_ELSE) { $hasElseBlock = true; } + } else if ($tokens[$prevToken]['code'] === T_FINALLY) { + // If we find a terminating statement within this block, + // the whole try/catch/finally statement is covered. + $hasTerminator = $this->findNestedTerminator($phpcsFile, ($scopeOpener + 1), $scopeCloser); + if ($hasTerminator !== false) { + return $hasTerminator; + } + + // Otherwise, we continue with the previous TRY or CATCH clause. + $currentCloser = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($prevToken - 1), $stackPtr, true); + } else if ($tokens[$prevToken]['code'] === T_TRY) { + // If we've seen CATCH blocks without terminator statement and + // have not seen a FINALLY *with* a terminator statement, we + // don't even need to bother checking the TRY. + if ($hasCatchWithoutTerminator === true) { + return false; + } + + return $this->findNestedTerminator($phpcsFile, ($scopeOpener + 1), $scopeCloser); + } else if ($tokens[$prevToken]['code'] === T_CATCH) { + // Keep track of seen catch statements without terminating statement, + // but don't bow out yet as there may still be a FINALLY clause + // with a terminating statement before the CATCH. + $hasTerminator = $this->findNestedTerminator($phpcsFile, ($scopeOpener + 1), $scopeCloser); + if ($hasTerminator === false) { + $hasCatchWithoutTerminator = true; + } + + $currentCloser = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($prevToken - 1), $stackPtr, true); } else if ($tokens[$prevToken]['code'] === T_SWITCH) { $hasDefaultBlock = false; $endOfSwitch = $tokens[$prevToken]['scope_closer']; @@ -305,7 +341,7 @@ private function findNestedTerminator($phpcsFile, $stackPtr, $end) $opener = $tokens[$nextCase]['scope_opener']; - $nextCode = $phpcsFile->findNext(T_WHITESPACE, ($opener + 1), $endOfSwitch, true); + $nextCode = $phpcsFile->findNext(Tokens::$emptyTokens, ($opener + 1), $endOfSwitch, true); if ($tokens[$nextCode]['code'] === T_CASE || $tokens[$nextCode]['code'] === T_DEFAULT) { // This case statement has no content, so skip it. continue; @@ -339,15 +375,15 @@ private function findNestedTerminator($phpcsFile, $stackPtr, $end) // We found the last statement of the CASE. Now we want to // check whether it is a terminating one. $terminators = [ - T_RETURN, - T_BREAK, - T_CONTINUE, - T_THROW, - T_EXIT, + T_RETURN => T_RETURN, + T_BREAK => T_BREAK, + T_CONTINUE => T_CONTINUE, + T_THROW => T_THROW, + T_EXIT => T_EXIT, ]; $terminator = $phpcsFile->findStartOfStatement(($lastToken - 1)); - if (in_array($tokens[$terminator]['code'], $terminators, true) === true) { + if (isset($terminators[$tokens[$terminator]['code']]) === true) { return $terminator; } }//end if diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php index 39834b386..1cb637447 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/ClosingTagSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Files; @@ -20,7 +20,7 @@ class ClosingTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php index 241fa5a8f..5b2d2817b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Files; @@ -19,11 +19,14 @@ class EndFileNewlineSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -35,12 +38,12 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { if ($phpcsFile->findNext(T_INLINE_HTML, ($stackPtr + 1)) !== false) { - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } // Skip to the end of the file. @@ -61,7 +64,7 @@ public function process(File $phpcsFile, $stackPtr) } $phpcsFile->recordMetric($stackPtr, 'Number of newlines at EOF', '0'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } // Go looking for the last non-empty line. @@ -96,7 +99,7 @@ public function process(File $phpcsFile, $stackPtr) } // Skip the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php index 406f27948..cee18cacd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods; @@ -35,7 +35,7 @@ class FunctionCallSignatureSniff extends PEARFunctionCallSignatureSniff * @param array $tokens The stack of tokens that make up * the file. * - * @return void + * @return bool */ public function isMultiLineCall(File $phpcsFile, $stackPtr, $openBracket, $tokens) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php index 1e11f02f2..c4f1a6f4f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/FunctionClosingBraceSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods; @@ -19,7 +19,7 @@ class FunctionClosingBraceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php index d23b8bee2..6500d0468 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php index bf37af09b..7b1dad199 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Namespaces; @@ -20,7 +20,7 @@ class NamespaceDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php index 21a9dbe9a..39c69c8b0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Sniffs\Namespaces; @@ -20,7 +20,7 @@ class UseDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -152,10 +152,10 @@ public function process(File $phpcsFile, $stackPtr) } } while ($next !== false); - // Remove closing curly,semi-colon and any whitespace between last child and closing curly. + // Remove closing curly, semicolon and any whitespace between last child and closing curly. $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($closingCurly + 1), null, true); if ($next === false || $tokens[$next]['code'] !== T_SEMICOLON) { - // Parse error, forgotten semi-colon. + // Parse error, forgotten semicolon. $next = $closingCurly; } @@ -285,7 +285,7 @@ private function shouldIgnoreUse($phpcsFile, $stackPtr) } // Ignore USE keywords for traits. - if ($phpcsFile->hasCondition($stackPtr, [T_CLASS, T_TRAIT]) === true) { + if ($phpcsFile->hasCondition($stackPtr, [T_CLASS, T_TRAIT, T_ENUM]) === true) { return true; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc index 13e596e17..144eef8fe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc @@ -239,3 +239,80 @@ C8 foo(new class { }); + +readonly +class Test +{ +} + +readonly class Test +{ +} + +if (!class_exists('IndentedDeclaration')) { + class IndentedDeclaration + { + function foo() {} + + + } +} + +// Space between modifier and class keyword would not be flagged nor fixed if newline + indentation. +final + class FinalClassWithIndentation + { + } + +readonly + class ReadonlyClassWithIndentation + { + } + +// And would also not be flagged if there was a comment between (not auto-fixable). +final/*comment*/class FinalClassWithComment +{ +} +abstract /*comment*/ class AbstractClassWithComment +{ +} + +readonly + // comment + class ReadonlyClassWithComment + { + } + +// Safeguard against fixer conflict when there are namespace relative interface names in extends. +interface FooBar extends namespace\BarFoo +{ +} + +// Safeguard against fixer conflict when there are namespace relative interface names in a multi-line implements. +class BarFoo implements + namespace\BarFoo +{ +} + +// Safeguard that the sniff ignores comments between interface names in a multiline implements. +class ClassWithMultiLineImplementsAndIgnoreAnnotation implements + SomeInterface, + // phpcs:disable Stnd.Cat.Sniff -- For reasons. + + \AnotherInterface +{ +} + +class ClassWithMultiLineImplementsAndComment implements + SomeInterface, + // Comment. + +AnotherInterface +{ +} + +class ClassWithMultiLineImplementsAndCommentOnSameLineAsInterfaceName implements + SomeInterface, + /* Comment. */ AnotherInterface +{ +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc.fixed index 3ee394e78..84123ca50 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc.fixed @@ -232,3 +232,76 @@ class C8 foo(new class { }); + +readonly class Test +{ +} + +readonly class Test +{ +} + +if (!class_exists('IndentedDeclaration')) { + class IndentedDeclaration + { + function foo() {} + } +} + +// Space between modifier and class keyword would not be flagged nor fixed if newline + indentation. +final class FinalClassWithIndentation +{ + } + +readonly class ReadonlyClassWithIndentation +{ + } + +// And would also not be flagged if there was a comment between (not auto-fixable). +final/*comment*/class FinalClassWithComment +{ +} +abstract /*comment*/ class AbstractClassWithComment +{ +} + +readonly + // comment + class ReadonlyClassWithComment + { + } + +// Safeguard against fixer conflict when there are namespace relative interface names in extends. +interface FooBar extends namespace\BarFoo +{ +} + +// Safeguard against fixer conflict when there are namespace relative interface names in a multi-line implements. +class BarFoo implements + namespace\BarFoo +{ +} + +// Safeguard that the sniff ignores comments between interface names in a multiline implements. +class ClassWithMultiLineImplementsAndIgnoreAnnotation implements + SomeInterface, + // phpcs:disable Stnd.Cat.Sniff -- For reasons. + + \AnotherInterface +{ +} + +class ClassWithMultiLineImplementsAndComment implements + SomeInterface, + // Comment. + + AnotherInterface +{ +} + +class ClassWithMultiLineImplementsAndCommentOnSameLineAsInterfaceName implements + SomeInterface, + /* Comment. */ + AnotherInterface +{ +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.php index 635ac710b..ef97be460 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\ClassDeclarationSniff + */ +final class ClassDeclarationUnitTest extends AbstractSniffUnitTest { @@ -63,6 +68,16 @@ public function getErrorList() 216 => 1, 231 => 2, 235 => 1, + 244 => 1, + 248 => 1, + 258 => 1, + 263 => 1, + 268 => 1, + 273 => 1, + 276 => 1, + 282 => 1, + 310 => 1, + 316 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc index 031d2a837..3e086c6f2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc @@ -71,3 +71,17 @@ class MyClass public int $var = null; public static int/*comment*/$var = null; } + +class ReadOnlyProp { + public readonly int $foo, + $bar, + $var = null; + + protected readonly ?string $foo; + + readonly array $foo; + + readonly public int $wrongOrder1; + + readonly protected ?string $wrongOrder2; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc.fixed index aca7c2fcc..c4e22fc18 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc.fixed @@ -68,3 +68,17 @@ class MyClass public int $var = null; public static int /*comment*/$var = null; } + +class ReadOnlyProp { + public readonly int $foo, + $bar, + $var = null; + + protected readonly ?string $foo; + + readonly array $foo; + + public readonly int $wrongOrder1; + + protected readonly ?string $wrongOrder2; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.php index 20da24d97..bf7dc29a3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class PropertyDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the PropertyDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\PropertyDeclarationSniff + */ +final class PropertyDeclarationUnitTest extends AbstractSniffUnitTest { @@ -46,6 +51,11 @@ public function getErrorList() 69 => 1, 71 => 1, 72 => 1, + 76 => 1, + 80 => 1, + 82 => 1, + 84 => 1, + 86 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ControlStructureSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ControlStructureSpacingUnitTest.php index 35d5e5150..a8ab73e1a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ControlStructureSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ControlStructureSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ControlStructureSpacingSniff + */ +final class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ElseIfDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ElseIfDeclarationUnitTest.php index 935205b40..79d46542f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ElseIfDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/ElseIfDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ElseIfDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ElseIfDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ElseIfDeclarationSniff + */ +final class ElseIfDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc index 8050b636f..2ca60a93e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc @@ -331,3 +331,268 @@ switch ($foo) { case 2: return 2; } + +switch ($foo) { + case 1: + // phpcs:ignore + case 2: + return 1; + case 3: + return 2; +} + +// Issue 3352. +switch ( $test ) { + case 2: // comment followed by empty line + + break; + + case 3: /* phpcs:ignore Stnd.Cat.SniffName -- Verify correct handling of ignore comments. */ + + + + break; + + case 4: /** inline docblock */ + + + + break; + + case 5: /* checking how it handles */ /* two trailing comments */ + + break; + + case 6: + // Comment as first content of the body. + + break; + + case 7: + /* phpcs:ignore Stnd.Cat.SniffName -- Verify correct handling of ignore comments at start of body. */ + + break; + + case 8: + /** inline docblock */ + + break; +} + +// Handle comments correctly. +switch ($foo) { + case 1: + if ($bar > 0) { + doSomething(); + } + // Comment + else { + return 1; + } + case 2: + return 2; +} + +switch ($foo) { + case 1: + if ($bar > 0) /*comment*/ { + return doSomething(); + } + else { + return 1; + } + case 2: + return 2; +} + +// Issue #3297. +// Okay - finally will always be executed, so all branches are covered by the `return` in finally. +switch ( $a ) { + case 1: + try { + doSomething(); + } catch (Exception $e) { + doSomething(); + } catch (AnotherException $e) { + doSomething(); + } finally { + return true; + } + default: + $other = $code; + break; +} + +// Okay - all - non-finally - branches have a terminating statement. +switch ( $a ) { + case 1: + try { + return false; + } catch (Exception $e) /*comment*/ { + return true; + } + // Comment + catch (AnotherException $e) { + return true; + } finally { + doSomething(); + } + default: + $other = $code; + break; +} + +// Okay - finally will always be executed, so all branches are covered by the `return` in finally. +// Non-standard structure order. +switch ( $a ) { + case 1: + try { + doSomething(); + } catch (Exception $e) { + doSomething(); + } finally { + return true; + } catch (AnotherException $e) { + doSomething(); + } + default: + $other = $code; + break; +} + +// Okay - all - non-finally - branches have a terminating statement. +// Non-standard structure order. +switch ( $a ) { + case 1: + try { + return false; + } finally { + doSomething(); + } catch (MyException $e) { + return true; + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// All okay, no finally. Any exception still uncaught will terminate the case anyhow, so we're good. +switch ( $a ) { + case 1: + try { + return false; + } catch (MyException $e) { + return true; + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// All okay, no catch +switch ( $a ) { + case 1: + try { + return true; + } finally { + doSomething(); + } + case 2: + $other = $code; + break; +} + +// All okay, try-catch nested in if. +switch ( $a ) { + case 1: + if ($a) { + try { + return true; // Comment. + } catch (MyException $e) { + throw new Exception($e->getMessage()); + } + } else { + return true; + } + case 2: + $other = $code; + break; +} + +// Missing fall-through comment. +switch ( $a ) { + case 1: + try { + doSomething(); + } finally { + doSomething(); + } + case 2: + $other = $code; + break; +} + +// Missing fall-through comment. One of the catches does not have a terminating statement. +switch ( $a ) { + case 1: + try { + return false; + } catch (Exception $e) { + doSomething(); + } catch (AnotherException $e) { + return true; + } finally { + doSomething(); + } + default: + $other = $code; + break; +} + +// Missing fall-through comment. Try does not have a terminating statement. +switch ( $a ) { + case 1: + try { + doSomething(); + } finally { + doSomething(); + } catch (Exception $e) { + return true; + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// Missing fall-through comment. One of the catches does not have a terminating statement. +switch ( $a ) { + case 1: + try { + return false; + } catch (Exception $e) { + doSomething(); + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// Issue 3550 - comment after terminating statement. +switch (rand()) { + case 1: + if (rand() === 1) { + break; + } else { + break; // comment + } + default: + break; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc.fixed index bebc66619..bbc8b7c48 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc.fixed @@ -334,3 +334,260 @@ switch ($foo) { case 2: return 2; } + +switch ($foo) { + case 1: + // phpcs:ignore + case 2: + return 1; + case 3: + return 2; +} + +// Issue 3352. +switch ( $test ) { + case 2: // comment followed by empty line + break; + + case 3: /* phpcs:ignore Stnd.Cat.SniffName -- Verify correct handling of ignore comments. */ + break; + + case 4: /** inline docblock */ + break; + + case 5: /* checking how it handles */ /* two trailing comments */ + break; + + case 6: + // Comment as first content of the body. + + break; + + case 7: + /* phpcs:ignore Stnd.Cat.SniffName -- Verify correct handling of ignore comments at start of body. */ + + break; + + case 8: + /** inline docblock */ + + break; +} + +// Handle comments correctly. +switch ($foo) { + case 1: + if ($bar > 0) { + doSomething(); + } + // Comment + else { + return 1; + } + case 2: + return 2; +} + +switch ($foo) { + case 1: + if ($bar > 0) /*comment*/ { + return doSomething(); + } + else { + return 1; + } + case 2: + return 2; +} + +// Issue #3297. +// Okay - finally will always be executed, so all branches are covered by the `return` in finally. +switch ( $a ) { + case 1: + try { + doSomething(); + } catch (Exception $e) { + doSomething(); + } catch (AnotherException $e) { + doSomething(); + } finally { + return true; + } + default: + $other = $code; + break; +} + +// Okay - all - non-finally - branches have a terminating statement. +switch ( $a ) { + case 1: + try { + return false; + } catch (Exception $e) /*comment*/ { + return true; + } + // Comment + catch (AnotherException $e) { + return true; + } finally { + doSomething(); + } + default: + $other = $code; + break; +} + +// Okay - finally will always be executed, so all branches are covered by the `return` in finally. +// Non-standard structure order. +switch ( $a ) { + case 1: + try { + doSomething(); + } catch (Exception $e) { + doSomething(); + } finally { + return true; + } catch (AnotherException $e) { + doSomething(); + } + default: + $other = $code; + break; +} + +// Okay - all - non-finally - branches have a terminating statement. +// Non-standard structure order. +switch ( $a ) { + case 1: + try { + return false; + } finally { + doSomething(); + } catch (MyException $e) { + return true; + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// All okay, no finally. Any exception still uncaught will terminate the case anyhow, so we're good. +switch ( $a ) { + case 1: + try { + return false; + } catch (MyException $e) { + return true; + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// All okay, no catch +switch ( $a ) { + case 1: + try { + return true; + } finally { + doSomething(); + } + case 2: + $other = $code; + break; +} + +// All okay, try-catch nested in if. +switch ( $a ) { + case 1: + if ($a) { + try { + return true; // Comment. + } catch (MyException $e) { + throw new Exception($e->getMessage()); + } + } else { + return true; + } + case 2: + $other = $code; + break; +} + +// Missing fall-through comment. +switch ( $a ) { + case 1: + try { + doSomething(); + } finally { + doSomething(); + } + case 2: + $other = $code; + break; +} + +// Missing fall-through comment. One of the catches does not have a terminating statement. +switch ( $a ) { + case 1: + try { + return false; + } catch (Exception $e) { + doSomething(); + } catch (AnotherException $e) { + return true; + } finally { + doSomething(); + } + default: + $other = $code; + break; +} + +// Missing fall-through comment. Try does not have a terminating statement. +switch ( $a ) { + case 1: + try { + doSomething(); + } finally { + doSomething(); + } catch (Exception $e) { + return true; + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// Missing fall-through comment. One of the catches does not have a terminating statement. +switch ( $a ) { + case 1: + try { + return false; + } catch (Exception $e) { + doSomething(); + } catch (AnotherException $e) { + return true; + } + default: + $other = $code; + break; +} + +// Issue 3550 - comment after terminating statement. +switch (rand()) { + case 1: + if (rand() === 1) { + break; + } else { + break; // comment + } + default: + break; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.php index 97a68704f..a292503dc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SwitchDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SwitchDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\SwitchDeclarationSniff + */ +final class SwitchDeclarationUnitTest extends AbstractSniffUnitTest { @@ -49,6 +54,15 @@ public function getErrorList() 260 => 1, 300 => 1, 311 => 1, + 346 => 1, + 350 => 1, + 356 => 1, + 362 => 1, + 384 => 1, + 528 => 1, + 541 => 1, + 558 => 1, + 575 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/ClosingTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/ClosingTagUnitTest.php index 619f02491..85ba6e34b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/ClosingTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/ClosingTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClosingTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClosingTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Files\ClosingTagSniff + */ +final class ClosingTagUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.11.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.11.inc new file mode 100644 index 000000000..4f2e47af9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.11.inc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.12.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.12.inc.fixed new file mode 100644 index 000000000..d3c19feeb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.12.inc.fixed @@ -0,0 +1 @@ + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.13.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.13.inc new file mode 100644 index 000000000..fa2f476a9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.13.inc @@ -0,0 +1,5 @@ + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.php index a80c16dbe..9a983e800 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EndFileNewlineUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EndFileNewline sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Files\EndFileNewlineSniff + */ +final class EndFileNewlineUnitTest extends AbstractSniffUnitTest { @@ -35,6 +40,10 @@ public function getErrorList($testFile='') case 'EndFileNewlineUnitTest.9.inc': case 'EndFileNewlineUnitTest.10.inc': return [2 => 1]; + case 'EndFileNewlineUnitTest.11.inc': + case 'EndFileNewlineUnitTest.12.inc': + case 'EndFileNewlineUnitTest.13.inc': + return [1 => 1]; default: return []; }//end switch diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionCallSignatureUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionCallSignatureUnitTest.php index 1d8782589..52cda1746 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionCallSignatureUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionCallSignatureUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Methods; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCallSignatureUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionCallSignature sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionCallSignatureSniff + */ +final class FunctionCallSignatureUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionClosingBraceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionClosingBraceUnitTest.php index 2497f35bb..d6886ac95 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionClosingBraceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/FunctionClosingBraceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Methods; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionClosingBraceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionClosingBrace sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionClosingBraceSniff + */ +final class FunctionClosingBraceUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc index 21c03119d..096b44bc8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc @@ -64,3 +64,12 @@ class Nested_Function { }; } } + +enum MyEnum +{ + function _myFunction() {} + function __myFunction() {} + public static function myFunction() {} + static public function myFunction() {} + public function _() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc.fixed index 5fb88613e..eae8d28f5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc.fixed @@ -64,3 +64,12 @@ class Nested_Function { }; } } + +enum MyEnum +{ + function _myFunction() {} + function __myFunction() {} + public static function myFunction() {} + public static function myFunction() {} + public function _() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.php index 2d508d4c6..3654a0f64 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Methods; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MethodDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MethodDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\MethodDeclarationSniff + */ +final class MethodDeclarationUnitTest extends AbstractSniffUnitTest { @@ -40,6 +45,7 @@ public function getErrorList() 54 => 1, 56 => 3, 63 => 2, + 73 => 1, ]; }//end getErrorList() @@ -61,6 +67,7 @@ public function getWarningList() 30 => 1, 46 => 1, 63 => 1, + 70 => 1, ]; }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/NamespaceDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/NamespaceDeclarationUnitTest.php index 71f7bec1a..e42822622 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/NamespaceDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/NamespaceDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Namespaces; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NamespaceDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NamespaceDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Namespaces\NamespaceDeclarationSniff + */ +final class NamespaceDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.1.inc index c4e83da44..61befc9e7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.1.inc @@ -30,9 +30,14 @@ trait HelloWorld use Hello, World; } +enum SomeEnum +{ + use Hello, World; +} + $x = $foo ? function ($foo) use /* comment */ ($bar): int { return 1; } : $bar; // Testcase must be on last line in the file. -use \ No newline at end of file +use diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.17.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.17.inc index f0f664ad7..5bc9618d8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.17.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.17.inc @@ -1,3 +1,3 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\PSR2\Tests\Namespaces; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class UseDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the UseDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\PSR2\Sniffs\Namespaces\UseDeclarationSniff + */ +final class UseDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Arrays/ArrayBracketSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Arrays/ArrayBracketSpacingStandard.xml index fc6ccbd6a..d91fec901 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Arrays/ArrayBracketSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Arrays/ArrayBracketSpacingStandard.xml @@ -8,12 +8,12 @@ ['bar']; -]]> + ]]> [ 'bar' ]; -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/LowercaseClassKeywordsStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/LowercaseClassKeywordsStandard.xml index 89fcb5de8..6d38c5a89 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/LowercaseClassKeywordsStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/LowercaseClassKeywordsStandard.xml @@ -10,14 +10,14 @@ final class Foo extends Bar { } -]]> + ]]> Final Class Foo Extends Bar { } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/SelfMemberReferenceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/SelfMemberReferenceStandard.xml index 59d193ffd..4f982fa4e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/SelfMemberReferenceStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Classes/SelfMemberReferenceStandard.xml @@ -8,24 +8,24 @@ self::foo(); -]]> + ]]> SELF::foo(); -]]> + ]]> ::foo(); -]]> + ]]> :: foo(); -]]> + ]]> @@ -42,7 +42,7 @@ class Foo self::bar(); } } -]]> + ]]> Foo Foo::bar(); } } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/DocCommentAlignmentStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/DocCommentAlignmentStandard.xml index 414b89a34..17fed42cf 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/DocCommentAlignmentStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/DocCommentAlignmentStandard.xml @@ -10,14 +10,14 @@ /** * @see foo() */ -]]> + ]]>
* @see foo() */ -]]> + ]]> @@ -26,14 +26,14 @@ /** * @see foo() */ -]]> + ]]>
@see foo() */ -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/FunctionCommentThrowTagStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/FunctionCommentThrowTagStandard.xml index 81df2e3fd..e3638a49c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/FunctionCommentThrowTagStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Commenting/FunctionCommentThrowTagStandard.xml @@ -15,7 +15,7 @@ function foo() { throw new Exception('Danger!'); } -]]> + ]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForEachLoopDeclarationStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForEachLoopDeclarationStandard.xml index 87c618137..42fa6f439 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForEachLoopDeclarationStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForEachLoopDeclarationStandard.xml @@ -10,14 +10,14 @@ foreach ($foo as $bar => $baz) { echo $baz; } -]]> + ]]> $foo as $bar=>$baz ) { echo $baz; } -]]> + ]]> @@ -26,14 +26,14 @@ foreach ( $foo as $bar=>$baz foreach ($foo as $bar => $baz) { echo $baz; } -]]> + ]]> AS $bar => $baz) { echo $baz; } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForLoopDeclarationStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForLoopDeclarationStandard.xml index bbc439230..37caaded0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForLoopDeclarationStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/ForLoopDeclarationStandard.xml @@ -10,14 +10,14 @@ for ($i = 0; $i < 10; $i++) { echo $i; } -]]> + ]]> $i = 0; $i < 10; $i++ ) { echo $i; } -]]> + ]]> @@ -26,14 +26,14 @@ for ( $i = 0; $i < 10; $i++ ) { for ($i = 0; $i < 10; $i++) { echo $i; } -]]> + ]]> ; $i < 10 ; $i++) { echo $i; } -]]> + ]]> @@ -42,14 +42,14 @@ for ($i = 0 ; $i < 10 ; $i++) { for ($i = 0; $i < 10; $i++) { echo $i; } -]]> + ]]> $i < 10;$i++) { echo $i; } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/LowercaseDeclarationStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/LowercaseDeclarationStandard.xml index 699f1f092..08017b752 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/LowercaseDeclarationStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/ControlStructures/LowercaseDeclarationStandard.xml @@ -10,14 +10,14 @@ if ($foo) { $bar = true; } -]]> + ]]> IF ($foo) { $bar = true; } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/FunctionDuplicateArgumentStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/FunctionDuplicateArgumentStandard.xml index a890aba68..8a0e47eab 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/FunctionDuplicateArgumentStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/FunctionDuplicateArgumentStandard.xml @@ -10,14 +10,14 @@ if (isset($foo)) { echo $foo; } -]]> + ]]> isSet($foo)) { echo $foo; } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/LowercaseFunctionKeywordsStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/LowercaseFunctionKeywordsStandard.xml index 46e8a8f32..b97e80733 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/LowercaseFunctionKeywordsStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Functions/LowercaseFunctionKeywordsStandard.xml @@ -11,7 +11,7 @@ { return true; } -]]> + ]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Scope/StaticThisUsageStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Scope/StaticThisUsageStandard.xml index 3c97f54e6..0145657d3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Scope/StaticThisUsageStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Scope/StaticThisUsageStandard.xml @@ -14,7 +14,7 @@ class Foo return self::$staticMember; } } -]]> + ]]> $this->$staticMember; } } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Strings/EchoedStringsStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Strings/EchoedStringsStandard.xml index 030f2a68c..2bc536ebb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Strings/EchoedStringsStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/Strings/EchoedStringsStandard.xml @@ -8,12 +8,12 @@ "Hello"; -]]> + ]]> ("Hello"); -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/CastSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/CastSpacingStandard.xml index 0fb195cb6..9529b1fda 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/CastSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/CastSpacingStandard.xml @@ -8,12 +8,12 @@ int)'42'; -]]> + ]]> int )'42'; -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionClosingBraceSpaceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionClosingBraceSpaceStandard.xml new file mode 100644 index 000000000..ccbdfa214 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionClosingBraceSpaceStandard.xml @@ -0,0 +1,73 @@ + + + + + + + { + +} +]]> + + + {} +]]> + + + + + + + + + { + } + +} +]]> + + + {} + +} +]]> + + + + + + + + + { + } + +} +]]> + + + { + + } + +} +]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionOpeningBraceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionOpeningBraceStandard.xml index d2bc26479..28fa712f8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionOpeningBraceStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/FunctionOpeningBraceStandard.xml @@ -10,13 +10,13 @@ function foo() { } -]]> + ]]> { } -]]> + ]]> @@ -26,7 +26,7 @@ function foo() { return 42; } -]]> + ]]> return 42; } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml index 608bed0b4..aceb88675 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml @@ -8,12 +8,12 @@ "hi"; -]]> + ]]> "hi"; -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/MemberVarSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/MemberVarSpacingStandard.xml new file mode 100644 index 000000000..a551af8a9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/MemberVarSpacingStandard.xml @@ -0,0 +1,91 @@ + + + + + + + + + protected $var1 = 'value'; +} + ]]> + + + + protected $var1 = 'value'; +} + ]]> + + + + + + + + + + public $var2 = 'value2'; + + public $var3 = 'value3'; +} + ]]> + + + + + + public $var2 = 'value2'; + public $var3 = 'value3'; +} + ]]> + + + + + + + + + public $actions = array(); +}; + ]]> + + + + + public $actions = array(); +}; + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml index c6194d71f..44edc7b5d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml @@ -8,12 +8,12 @@ ->bar(); -]]> + ]]> -> bar(); -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeClosingBraceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeClosingBraceStandard.xml new file mode 100644 index 000000000..3284df973 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeClosingBraceStandard.xml @@ -0,0 +1,59 @@ + + + + + + + } + +if (!class_exists('Foo')) { + class Foo { + } +} + + + some output + ?> + ]]> + + + } + +if (!class_exists('Foo')) { + class Foo { +} + } + + + some output + ?> + ]]> + + + + + + + + } + ]]> + + + } + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeKeywordSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeKeywordSpacingStandard.xml index 8cadf6692..4394ea27a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeKeywordSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/ScopeKeywordSpacingStandard.xml @@ -10,14 +10,14 @@ public static function foo() { } -]]> + ]]> static function foo() { } -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SemicolonSpacingStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SemicolonSpacingStandard.xml index 7b2279529..bb9bf8f0c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SemicolonSpacingStandard.xml +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SemicolonSpacingStandard.xml @@ -8,12 +8,12 @@ ; -]]> + ]]> ; -]]> + ]]> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SuperfluousWhitespaceStandard.xml b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SuperfluousWhitespaceStandard.xml new file mode 100644 index 000000000..b4ad03d0b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Docs/WhiteSpace/SuperfluousWhitespaceStandard.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + echo 'code here'; +} + ]]> + + + + + + + + + + ]]> + + + + + + ]]> + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php index ee63dead1..b6bb31de6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Arrays; @@ -19,7 +19,7 @@ class ArrayBracketSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php index 17991bd79..89cd7bd57 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Arrays; @@ -20,7 +20,7 @@ class ArrayDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -330,11 +330,17 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array } } else if ($tokens[$arrayEnd]['column'] !== $keywordStart) { // Check the closing bracket is lined up under the "a" in array. - $expected = ($keywordStart - 1); - $found = ($tokens[$arrayEnd]['column'] - 1); - $error = 'Closing parenthesis not aligned correctly; expected %s space(s) but found %s'; - $data = [ + $expected = ($keywordStart - 1); + $found = ($tokens[$arrayEnd]['column'] - 1); + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + + $error = 'Closing parenthesis not aligned correctly; expected %s space%s but found %s'; + $data = [ $expected, + $pluralizeSpace, $found, ]; @@ -374,6 +380,7 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array || $tokens[$nextToken]['code'] === T_OPEN_SHORT_ARRAY || $tokens[$nextToken]['code'] === T_CLOSURE || $tokens[$nextToken]['code'] === T_FN + || $tokens[$nextToken]['code'] === T_MATCH ) { // Let subsequent calls of this test handle nested arrays. if ($tokens[$lastToken]['code'] !== T_DOUBLE_ARROW) { @@ -429,9 +436,13 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array } if ($keyUsed === true && $tokens[$lastToken]['code'] === T_COMMA) { - $error = 'No key specified for array entry; first entry specifies key'; - $phpcsFile->addError($error, $nextToken, 'NoKeySpecified'); - return; + $nextToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($lastToken + 1), null, true); + // Allow for PHP 7.4+ array unpacking within an array declaration. + if ($tokens[$nextToken]['code'] !== T_ELLIPSIS) { + $error = 'No key specified for array entry; first entry specifies key'; + $phpcsFile->addError($error, $nextToken, 'NoKeySpecified'); + return; + } } if ($keyUsed === false) { @@ -469,8 +480,17 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array true ); - $indices[] = ['value' => $valueContent]; - $singleUsed = true; + $indices[] = ['value' => $valueContent]; + $usesArrayUnpacking = $phpcsFile->findPrevious( + Tokens::$emptyTokens, + ($nextToken - 2), + null, + true + ); + if ($tokens[$usesArrayUnpacking]['code'] !== T_ELLIPSIS) { + // Don't decide if an array is key => value indexed or not when PHP 7.4+ array unpacking is used. + $singleUsed = true; + } }//end if $lastToken = $nextToken; @@ -634,7 +654,11 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array if ($tokens[$valuePointer]['code'] === T_CLOSURE || $tokens[$valuePointer]['code'] === T_FN ) { - $ignoreTokens += [T_STATIC => T_STATIC]; + // Check if the closure is static, if it is, override the value pointer as indices before skip static. + $staticPointer = $phpcsFile->findPrevious($ignoreTokens, ($valuePointer - 1), ($arrayStart + 1), true); + if ($staticPointer !== false && $tokens[$staticPointer]['code'] === T_STATIC) { + $valuePointer = $staticPointer; + } } $previous = $phpcsFile->findPrevious($ignoreTokens, ($valuePointer - 1), ($arrayStart + 1), true); @@ -660,12 +684,18 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array } else if ($previousIsWhitespace === true) { $expected = $keywordStart; - $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $valuePointer, true); - $found = ($tokens[$first]['column'] - 1); + $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $valuePointer, true); + $found = ($tokens[$first]['column'] - 1); + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + if ($found !== $expected) { - $error = 'Array value not aligned correctly; expected %s spaces but found %s'; + $error = 'Array value not aligned correctly; expected %s space%s but found %s'; $data = [ $expected, + $pluralizeSpace, $found, ]; @@ -749,11 +779,17 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array } if ($tokens[$indexPointer]['column'] !== $indicesStart && ($indexPointer - 1) !== $arrayStart) { - $expected = ($indicesStart - 1); - $found = ($tokens[$indexPointer]['column'] - 1); - $error = 'Array key not aligned correctly; expected %s spaces but found %s'; - $data = [ + $expected = ($indicesStart - 1); + $found = ($tokens[$indexPointer]['column'] - 1); + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + + $error = 'Array key not aligned correctly; expected %s space%s but found %s'; + $data = [ $expected, + $pluralizeSpace, $found, ]; @@ -765,15 +801,21 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array $phpcsFile->fixer->replaceToken(($indexPointer - 1), str_repeat(' ', $expected)); } } - } + }//end if $arrowStart = ($tokens[$indexPointer]['column'] + $maxLength + 1); if ($tokens[$index['arrow']]['column'] !== $arrowStart) { - $expected = ($arrowStart - ($index['index_length'] + $tokens[$indexPointer]['column'])); - $found = ($tokens[$index['arrow']]['column'] - ($index['index_length'] + $tokens[$indexPointer]['column'])); - $error = 'Array double arrow not aligned correctly; expected %s space(s) but found %s'; - $data = [ + $expected = ($arrowStart - ($index['index_length'] + $tokens[$indexPointer]['column'])); + $found = ($tokens[$index['arrow']]['column'] - ($index['index_length'] + $tokens[$indexPointer]['column'])); + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + + $error = 'Array double arrow not aligned correctly; expected %s space%s but found %s'; + $data = [ $expected, + $pluralizeSpace, $found, ]; @@ -787,7 +829,7 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array } continue; - } + }//end if $valueStart = ($arrowStart + 3); if ($tokens[$valuePointer]['column'] !== $valueStart) { @@ -797,9 +839,15 @@ public function processMultiLineArray($phpcsFile, $stackPtr, $arrayStart, $array $found = 'newline'; } - $error = 'Array value not aligned correctly; expected %s space(s) but found %s'; + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + + $error = 'Array value not aligned correctly; expected %s space%s but found %s'; $data = [ $expected, + $pluralizeSpace, $found, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php index a9a55fa86..384a8f2b8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class ClassDefinitionClosingBraceSpaceSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php index 4b7efd99a..796bbbaa1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class ClassDefinitionNameSpacingSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php index e56dad730..7750fa1de 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class ClassDefinitionOpeningBraceSpaceSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php index 8548a7218..6459e035c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class ColonSpacingSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php index 6b071ea7c..5114a0cb0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -26,7 +28,7 @@ class ColourDefinitionSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php index def95c1ef..72448a30b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -18,7 +20,7 @@ class DisallowMultipleStyleDefinitionsSniff implements Sniff /** * A list of tokenizers this sniff supports. * - * @var array + * @var string[] */ public $supportedTokenizers = ['CSS']; @@ -26,7 +28,7 @@ class DisallowMultipleStyleDefinitionsSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php index d489cb1ba..82a974c8a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class DuplicateClassDefinitionSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php index c74797597..e9221470e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -26,7 +28,7 @@ class DuplicateStyleDefinitionSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php index d3bb9696c..b7671d3e4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class EmptyClassDefinitionSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php index 05f2e5159..cc3007f2e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class EmptyStyleDefinitionSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php index d8585dc86..982f46970 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -66,7 +68,7 @@ class ForbiddenStylesSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/IndentationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/IndentationSniff.php index 5e35f4e9f..56406ccb3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/IndentationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/IndentationSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -34,7 +36,7 @@ class IndentationSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php index c80a639c8..c8393c51c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -26,7 +28,7 @@ class LowercaseStyleDefinitionSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php index dbf7d6c95..83f2a6c82 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -26,7 +28,7 @@ class MissingColonSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php index 0a51f501b..586b4730a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -53,7 +55,7 @@ class NamedColoursSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/OpacitySniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/OpacitySniff.php index 1dfbcf676..0c1c553a5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/OpacitySniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/OpacitySniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class OpacitySniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php index fdc168e24..9030468b8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php @@ -1,10 +1,12 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -27,7 +29,7 @@ class SemicolonSpacingSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { @@ -71,7 +73,7 @@ public function process(File $phpcsFile, $stackPtr) return; } - // There is a semi-colon, so now find the last token in the statement. + // There is a semicolon, so now find the last token in the statement. $prevNonEmpty = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($endOfThisStatement - 1), null, true); $found = $tokens[($endOfThisStatement - 1)]['length']; if ($tokens[$prevNonEmpty]['line'] !== $tokens[$endOfThisStatement]['line']) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php index 8f2d9aa8c..76e7330c7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS; @@ -41,7 +43,7 @@ class ShorthandSizeSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php index 3d2c4db1a..3f5e1fbc7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes; @@ -65,6 +65,7 @@ public function processOpen(File $phpcsFile, $stackPtr) if ($tokens[($stackPtr - 2)]['code'] !== T_ABSTRACT && $tokens[($stackPtr - 2)]['code'] !== T_FINAL + && $tokens[($stackPtr - 2)]['code'] !== T_READONLY ) { if ($spaces !== 0) { $type = strtolower($tokens[$stackPtr]['content']); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php index afbec4fa7..fc3ec0473 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes; @@ -19,7 +19,7 @@ class ClassFileNameSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -27,6 +27,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php index a632f81e9..12d8a2456 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes; @@ -26,7 +28,7 @@ class DuplicatePropertySniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php index 5f4f78c0a..b9d71db00 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes; @@ -20,7 +20,7 @@ class LowercaseClassKeywordsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -29,6 +29,7 @@ public function register() $targets[] = T_IMPLEMENTS; $targets[] = T_ABSTRACT; $targets[] = T_FINAL; + $targets[] = T_READONLY; $targets[] = T_VAR; $targets[] = T_CONST; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php index d17ca44ce..ff1cd830e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php @@ -9,7 +9,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes; @@ -182,7 +182,7 @@ protected function processTokenOutsideScope(File $phpcsFile, $stackPtr) /** * Returns the declaration names for classes/interfaces/functions with a namespace. * - * @param array $tokens Token stack for this file + * @param array $tokens Token stack for this file. * @param int $stackPtr The position where the namespace building will start. * * @return string diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php index 10de719dc..a8975353f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes; @@ -20,7 +20,7 @@ class ValidClassNameSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -28,6 +28,7 @@ public function register() T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, ]; }//end register() @@ -58,7 +59,7 @@ public function process(File $phpcsFile, $stackPtr) // starting with the number will be multiple tokens. $opener = $tokens[$stackPtr]['scope_opener']; $nameStart = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), $opener, true); - $nameEnd = $phpcsFile->findNext(T_WHITESPACE, $nameStart, $opener); + $nameEnd = $phpcsFile->findNext([T_WHITESPACE, T_COLON], $nameStart, $opener); if ($nameEnd === false) { $name = $tokens[$nameStart]['content']; } else { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php index ae9db7944..9a565123b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -27,7 +27,7 @@ class BlockCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -69,11 +69,22 @@ public function process(File $phpcsFile, $stackPtr) // If this is a function/class/interface doc block comment, skip it. // We are only interested in inline doc block comments. if ($tokens[$stackPtr]['code'] === T_DOC_COMMENT_OPEN_TAG) { - $nextToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); - $ignore = [ + $nextToken = $stackPtr; + do { + $nextToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($nextToken + 1), null, true); + if ($tokens[$nextToken]['code'] === T_ATTRIBUTE) { + $nextToken = $tokens[$nextToken]['attribute_closer']; + continue; + } + + break; + } while (true); + + $ignore = [ T_CLASS => true, T_INTERFACE => true, T_TRAIT => true, + T_ENUM => true, T_FUNCTION => true, T_PUBLIC => true, T_PRIVATE => true, @@ -83,6 +94,7 @@ public function process(File $phpcsFile, $stackPtr) T_ABSTRACT => true, T_CONST => true, T_VAR => true, + T_READONLY => true, ]; if (isset($ignore[$tokens[$nextToken]['code']]) === true) { return; @@ -363,6 +375,7 @@ public function process(File $phpcsFile, $stackPtr) if ((isset($tokens[$contentBefore]['scope_closer']) === true && $tokens[$contentBefore]['scope_opener'] === $contentBefore) || $tokens[$contentBefore]['code'] === T_OPEN_TAG + || $tokens[$contentBefore]['code'] === T_OPEN_TAG_WITH_ECHO ) { if (($tokens[$stackPtr]['line'] - $tokens[$contentBefore]['line']) !== 1) { $error = 'Empty line not required before block comment'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php index 0da4ef245..60d553fc2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php @@ -12,14 +12,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; -use PHP_CodeSniffer\Util\Tokens; class ClassCommentSniff implements Sniff { @@ -28,7 +27,7 @@ class ClassCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -49,8 +48,12 @@ public function register() public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); - $find = Tokens::$methodPrefixes; - $find[T_WHITESPACE] = T_WHITESPACE; + $find = [ + T_ABSTRACT => T_ABSTRACT, + T_FINAL => T_FINAL, + T_READONLY => T_READONLY, + T_WHITESPACE => T_WHITESPACE, + ]; $previousContent = null; for ($commentEnd = ($stackPtr - 1); $commentEnd >= 0; $commentEnd--) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php index 6ab6280f6..44bd4388d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php @@ -1,10 +1,10 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -19,14 +19,16 @@ class ClosingDeclarationCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { return [ - T_FUNCTION, T_CLASS, + T_ENUM, + T_FUNCTION, T_INTERFACE, + T_TRAIT, ]; }//end register() @@ -69,8 +71,12 @@ public function process(File $phpcsFile, $stackPtr) $comment = '//end '.$decName.'()'; } else if ($tokens[$stackPtr]['code'] === T_CLASS) { $comment = '//end class'; - } else { + } else if ($tokens[$stackPtr]['code'] === T_INTERFACE) { $comment = '//end interface'; + } else if ($tokens[$stackPtr]['code'] === T_TRAIT) { + $comment = '//end trait'; + } else { + $comment = '//end enum'; }//end if if (isset($tokens[$stackPtr]['scope_closer']) === false) { @@ -82,15 +88,10 @@ public function process(File $phpcsFile, $stackPtr) $closingBracket = $tokens[$stackPtr]['scope_closer']; - if ($closingBracket === null) { - // Possible inline structure. Other tests will handle it. - return; - } - $data = [$comment]; if (isset($tokens[($closingBracket + 1)]) === false || $tokens[($closingBracket + 1)]['code'] !== T_COMMENT) { $next = $phpcsFile->findNext(T_WHITESPACE, ($closingBracket + 1), null, true); - if (rtrim($tokens[$next]['content']) === $comment) { + if ($next !== false && rtrim($tokens[$next]['content']) === $comment) { // The comment isn't really missing; it is just in the wrong place. $fix = $phpcsFile->addFixableError('Expected %s directly after closing brace', $closingBracket, 'Misplaced', $data); if ($fix === true) { @@ -107,7 +108,7 @@ public function process(File $phpcsFile, $stackPtr) } else { $fix = $phpcsFile->addFixableError('Expected %s', $closingBracket, 'Missing', $data); if ($fix === true) { - $phpcsFile->fixer->replaceToken($closingBracket, '}'.$comment.$phpcsFile->eolChar); + $phpcsFile->fixer->replaceToken($closingBracket, '}'.$comment); } } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php index 2624bc224..453ff89c1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -30,7 +30,7 @@ class DocCommentAlignmentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -64,6 +64,8 @@ public function process(File $phpcsFile, $stackPtr) $ignore = [ T_CLASS => true, T_INTERFACE => true, + T_ENUM => true, + T_ENUM_CASE => true, T_FUNCTION => true, T_PUBLIC => true, T_PRIVATE => true, @@ -74,6 +76,7 @@ public function process(File $phpcsFile, $stackPtr) T_OBJECT => true, T_PROTOTYPE => true, T_VAR => true, + T_READONLY => true, ]; if ($nextToken === false || isset($ignore[$tokens[$nextToken]['code']]) === false) { @@ -109,9 +112,15 @@ public function process(File $phpcsFile, $stackPtr) } if ($tokens[$i]['column'] !== $requiredColumn) { - $error = 'Expected %s space(s) before asterisk; %s found'; + $pluralizeSpace = 's'; + if (($requiredColumn - 1) === 1) { + $pluralizeSpace = ''; + } + + $error = 'Expected %s space%s before asterisk; %s found'; $data = [ ($requiredColumn - 1), + $pluralizeSpace, ($tokens[$i]['column'] - 1), ]; $fix = $phpcsFile->addFixableError($error, $i, 'SpaceBeforeStar', $data); @@ -123,7 +132,7 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->fixer->replaceToken(($i - 1), $padding); } } - } + }//end if if ($tokens[$i]['code'] !== T_DOC_COMMENT_STAR) { continue; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php index 4fc252197..301537fe7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -19,7 +19,7 @@ class EmptyCatchCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php index 73eb31b71..cfff91fc6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -29,7 +29,7 @@ class FileCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -55,11 +55,11 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[$commentStart]['code'] === T_COMMENT) { $phpcsFile->addError('You must use "/**" style comments for a file comment', $commentStart, 'WrongStyle'); $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'yes'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } else if ($commentStart === false || $tokens[$commentStart]['code'] !== T_DOC_COMMENT_OPEN_TAG) { $phpcsFile->addError('Missing file doc comment', $stackPtr, 'Missing'); $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'no'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } if (isset($tokens[$commentStart]['comment_closer']) === false @@ -67,7 +67,7 @@ public function process(File $phpcsFile, $stackPtr) && $tokens[$commentStart]['comment_closer'] === ($phpcsFile->numTokens - 1)) ) { // Don't process an unfinished file comment during live coding. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } $commentEnd = $tokens[$commentStart]['comment_closer']; @@ -95,6 +95,7 @@ public function process(File $phpcsFile, $stackPtr) T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, T_FUNCTION, T_CLOSURE, T_PUBLIC, @@ -103,6 +104,7 @@ public function process(File $phpcsFile, $stackPtr) T_FINAL, T_STATIC, T_ABSTRACT, + T_READONLY, T_CONST, T_PROPERTY, T_INCLUDE, @@ -114,7 +116,7 @@ public function process(File $phpcsFile, $stackPtr) if (in_array($tokens[$nextToken]['code'], $ignore, true) === true) { $phpcsFile->addError('Missing file doc comment', $stackPtr, 'Missing'); $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'no'); - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; } $phpcsFile->recordMetric($stackPtr, 'File has doc comment', 'yes'); @@ -127,7 +129,7 @@ public function process(File $phpcsFile, $stackPtr) // Exactly one blank line after the file comment. $next = $phpcsFile->findNext(T_WHITESPACE, ($commentEnd + 1), null, true); - if ($tokens[$next]['line'] !== ($tokens[$commentEnd]['line'] + 2)) { + if ($next !== false && $tokens[$next]['line'] !== ($tokens[$commentEnd]['line'] + 2)) { $error = 'There must be exactly one blank line after the file comment'; $phpcsFile->addError($error, $commentEnd, 'SpacingAfterComment'); } @@ -218,7 +220,7 @@ public function process(File $phpcsFile, $stackPtr) }//end foreach // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php index eeed38295..672818337 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -27,7 +27,7 @@ class FunctionCommentSniff extends PEARFunctionCommentSniff /** * The current PHP version. * - * @var integer + * @var integer|string|null */ private $phpVersion = null; @@ -143,9 +143,12 @@ protected function processReturn(File $phpcsFile, $stackPtr, $commentStart) } } }//end if - } else if ($returnType !== 'mixed' && in_array('void', $typeNames, true) === false) { - // If return type is not void, there needs to be a return statement - // somewhere in the function that returns something. + } else if ($returnType !== 'mixed' + && $returnType !== 'never' + && in_array('void', $typeNames, true) === false + ) { + // If return type is not void, never, or mixed, there needs to be a + // return statement somewhere in the function that returns something. if (isset($tokens[$stackPtr]['scope_closer']) === true) { $endToken = $tokens[$stackPtr]['scope_closer']; for ($returnToken = $stackPtr; $returnToken < $endToken; $returnToken++) { @@ -245,6 +248,8 @@ protected function processThrows(File $phpcsFile, $stackPtr, $commentStart) } } + $comment = trim($comment); + // Starts with a capital letter and ends with a fullstop. $firstChar = $comment[0]; if (strtoupper($firstChar) !== $firstChar) { @@ -361,6 +366,9 @@ protected function processParams(File $phpcsFile, $stackPtr, $commentStart) $phpcsFile->addError($error, $tag, 'MissingParamComment'); $commentLines[] = ['comment' => '']; }//end if + } else if ($tokens[($tag + 2)]['content'][0] === '$') { + $error = 'Missing parameter type'; + $phpcsFile->addError($error, $tag, 'MissingParamType'); } else { $error = 'Missing parameter name'; $phpcsFile->addError($error, $tag, 'MissingParamName'); @@ -403,6 +411,10 @@ protected function processParams(File $phpcsFile, $stackPtr, $commentStart) $suggestedTypeNames = []; foreach ($typeNames as $typeName) { + if ($typeName === '') { + continue; + } + // Strip nullable operator. if ($typeName[0] === '?') { $typeName = substr($typeName, 1); @@ -451,7 +463,7 @@ protected function processParams(File $phpcsFile, $stackPtr, $commentStart) } } - if ($suggestedTypeHint !== '' && isset($realParams[$pos]) === true) { + if ($suggestedTypeHint !== '' && isset($realParams[$pos]) === true && $param['var'] !== '') { $typeHint = $realParams[$pos]['type_hint']; // Remove namespace prefixes when comparing. @@ -549,16 +561,38 @@ protected function processParams(File $phpcsFile, $stackPtr, $commentStart) // Make sure the param name is correct. if (isset($realParams[$pos]) === true) { - $realName = $realParams[$pos]['name']; - if ($realName !== $param['var']) { + $realName = $realParams[$pos]['name']; + $paramVarName = $param['var']; + + if ($param['var'][0] === '&') { + // Even when passed by reference, the variable name in $realParams does not have + // a leading '&'. This sniff will accept both '&$var' and '$var' in these cases. + $paramVarName = substr($param['var'], 1); + + // This makes sure that the 'MissingParamTag' check won't throw a false positive. + $foundParams[(count($foundParams) - 1)] = $paramVarName; + + if ($realParams[$pos]['pass_by_reference'] !== true && $realName === $paramVarName) { + // Don't complain about this unless the param name is otherwise correct. + $error = 'Doc comment for parameter %s is prefixed with "&" but parameter is not passed by reference'; + $code = 'ParamNameUnexpectedAmpersandPrefix'; + $data = [$paramVarName]; + + // We're not offering an auto-fix here because we can't tell if the docblock + // is wrong, or the parameter should be passed by reference. + $phpcsFile->addError($error, $param['tag'], $code, $data); + } + } + + if ($realName !== $paramVarName) { $code = 'ParamNameNoMatch'; $data = [ - $param['var'], + $paramVarName, $realName, ]; $error = 'Doc comment for parameter %s does not match '; - if (strtolower($param['var']) === strtolower($realName)) { + if (strtolower($paramVarName) === strtolower($realName)) { $error .= 'case of '; $code = 'ParamNameNoCaseMatch'; } @@ -566,7 +600,7 @@ protected function processParams(File $phpcsFile, $stackPtr, $commentStart) $error .= 'actual variable name %s'; $phpcsFile->addError($error, $param['tag'], $code, $data); - } + }//end if } else if (substr($param['var'], -4) !== ',...') { // We must have an extra parameter comment. $error = 'Superfluous parameter comment'; @@ -758,6 +792,8 @@ protected function checkInheritdoc(File $phpcsFile, $stackPtr, $commentStart) } } + return false; + }//end checkInheritdoc() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php index a168bfe6c..4fb332cf4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -20,7 +20,7 @@ class FunctionCommentThrowTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php index 09b4ee252..3c1ead70a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -30,7 +30,7 @@ class InlineCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -49,7 +49,7 @@ public function register() * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * - * @return void + * @return void|int */ public function process(File $phpcsFile, $stackPtr) { @@ -59,17 +59,22 @@ public function process(File $phpcsFile, $stackPtr) // We are only interested in inline doc block comments, which are // not allowed. if ($tokens[$stackPtr]['code'] === T_DOC_COMMENT_OPEN_TAG) { - $nextToken = $phpcsFile->findNext( - Tokens::$emptyTokens, - ($stackPtr + 1), - null, - true - ); + $nextToken = $stackPtr; + do { + $nextToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($nextToken + 1), null, true); + if ($tokens[$nextToken]['code'] === T_ATTRIBUTE) { + $nextToken = $tokens[$nextToken]['attribute_closer']; + continue; + } + + break; + } while (true); $ignore = [ T_CLASS, T_INTERFACE, T_TRAIT, + T_ENUM, T_FUNCTION, T_CLOSURE, T_PUBLIC, @@ -78,6 +83,7 @@ public function process(File $phpcsFile, $stackPtr) T_FINAL, T_STATIC, T_ABSTRACT, + T_READONLY, T_CONST, T_PROPERTY, T_INCLUDE, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php index 103d90ffb..7c06e4294 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -62,7 +62,7 @@ class LongConditionClosingCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -156,7 +156,7 @@ public function process(File $phpcsFile, $stackPtr) } if ($startCondition['code'] === T_MATCH) { - // Move the stackPtr to after the semi-colon/comma if there is one. + // Move the stackPtr to after the semicolon/comma if there is one. $nextToken = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); if ($nextToken !== false && ($tokens[$nextToken]['code'] === T_SEMICOLON diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php index ce19d5c1d..9b36abe76 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -47,7 +47,7 @@ class PostStatementCommentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php index 7b9fc933a..76fbc6dca 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting; @@ -30,18 +30,41 @@ public function processMemberVar(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $ignore = [ - T_PUBLIC, - T_PRIVATE, - T_PROTECTED, - T_VAR, - T_STATIC, - T_WHITESPACE, - T_STRING, - T_NS_SEPARATOR, - T_NULLABLE, + T_PUBLIC => T_PUBLIC, + T_PRIVATE => T_PRIVATE, + T_PROTECTED => T_PROTECTED, + T_VAR => T_VAR, + T_STATIC => T_STATIC, + T_READONLY => T_READONLY, + T_WHITESPACE => T_WHITESPACE, + T_STRING => T_STRING, + T_NS_SEPARATOR => T_NS_SEPARATOR, + T_NAMESPACE => T_NAMESPACE, + T_NULLABLE => T_NULLABLE, + T_TYPE_UNION => T_TYPE_UNION, + T_TYPE_INTERSECTION => T_TYPE_INTERSECTION, + T_NULL => T_NULL, + T_TRUE => T_TRUE, + T_FALSE => T_FALSE, + T_SELF => T_SELF, + T_PARENT => T_PARENT, ]; - $commentEnd = $phpcsFile->findPrevious($ignore, ($stackPtr - 1), null, true); + for ($commentEnd = ($stackPtr - 1); $commentEnd >= 0; $commentEnd--) { + if (isset($ignore[$tokens[$commentEnd]['code']]) === true) { + continue; + } + + if ($tokens[$commentEnd]['code'] === T_ATTRIBUTE_END + && isset($tokens[$commentEnd]['attribute_opener']) === true + ) { + $commentEnd = $tokens[$commentEnd]['attribute_opener']; + continue; + } + + break; + } + if ($commentEnd === false || ($tokens[$commentEnd]['code'] !== T_DOC_COMMENT_CLOSE_TAG && $tokens[$commentEnd]['code'] !== T_COMMENT) diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php index 8a56b23fc..06fd3edcc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -37,7 +37,7 @@ class ControlSignatureSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return int[] + * @return array */ public function register() { @@ -105,9 +105,15 @@ public function process(File $phpcsFile, $stackPtr) } if ($found !== $expected) { - $error = 'Expected %s space(s) after %s keyword; %s found'; + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + + $error = 'Expected %s space%s after %s keyword; %s found'; $data = [ $expected, + $pluralizeSpace, strtoupper($tokens[$stackPtr]['content']), $found, ]; @@ -120,7 +126,7 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->fixer->replaceToken(($stackPtr + 1), str_repeat(' ', $expected)); } } - } + }//end if // Single space after closing parenthesis. if (isset($tokens[$stackPtr]['parenthesis_closer']) === true @@ -146,9 +152,15 @@ public function process(File $phpcsFile, $stackPtr) } if ($found !== $expected) { - $error = 'Expected %s space(s) after closing parenthesis; found %s'; + $pluralizeSpace = 's'; + if ($expected === 1) { + $pluralizeSpace = ''; + } + + $error = 'Expected %s space%s after closing parenthesis; found %s'; $data = [ $expected, + $pluralizeSpace, $found, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php index 8abb8fb3c..3cdb901d5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -19,7 +19,7 @@ class ElseIfDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php index c5f22e23b..bd51b265f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -33,7 +33,7 @@ class ForEachLoopDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php index 6803f9abb..38313e166 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -51,7 +51,7 @@ class ForLoopDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -76,8 +76,8 @@ public function process(File $phpcsFile, $stackPtr) $tokens = $phpcsFile->getTokens(); $openingBracket = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr); - if ($openingBracket === false) { - $error = 'Possible parse error: no opening parenthesis for FOR keyword'; + if ($openingBracket === false || isset($tokens[$openingBracket]['parenthesis_closer']) === false) { + $error = 'Possible parse error: no opening/closing parenthesis for FOR keyword'; $phpcsFile->addWarning($error, $stackPtr, 'NoOpenBracket'); return; } @@ -222,7 +222,7 @@ public function process(File $phpcsFile, $stackPtr) $semicolon = $openingBracket; $targetNestinglevel = 0; if (isset($tokens[$openingBracket]['conditions']) === true) { - $targetNestinglevel += count($tokens[$openingBracket]['conditions']); + $targetNestinglevel = count($tokens[$openingBracket]['conditions']); } do { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php index 28443794a..ff39c847f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -19,7 +19,7 @@ class InlineIfDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php index cba076840..068563c03 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -19,7 +19,7 @@ class LowercaseDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php index a5f3769db..be46aed55 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures; @@ -37,7 +37,7 @@ class SwitchDeclarationSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JSLintSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JSLintSniff.php index 49dfc2c42..652391f11 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JSLintSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JSLintSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Debug; @@ -28,7 +30,7 @@ class JSLintSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { @@ -44,15 +46,15 @@ public function register() * @param int $stackPtr The position in the stack where * the token was found. * - * @return void - * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jslint.js could not be run + * @return int + * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If jslint.js could not be run. */ public function process(File $phpcsFile, $stackPtr) { $rhinoPath = Config::getExecutablePath('rhino'); $jslintPath = Config::getExecutablePath('jslint'); if ($rhinoPath === null || $jslintPath === null) { - return; + return $phpcsFile->numTokens; } $fileName = $phpcsFile->getFilename(); @@ -78,7 +80,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php index 30dca6722..031b2e39a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Debug; @@ -29,7 +31,7 @@ class JavaScriptLintSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { @@ -45,14 +47,14 @@ public function register() * @param int $stackPtr The position in the stack where * the token was found. * - * @return void + * @return int * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If Javascript Lint ran into trouble. */ public function process(File $phpcsFile, $stackPtr) { $jslPath = Config::getExecutablePath('jsl'); if ($jslPath === null) { - return; + return $phpcsFile->numTokens; } $fileName = $phpcsFile->getFilename(); @@ -65,7 +67,7 @@ public function process(File $phpcsFile, $stackPtr) // provide useful error reporting. if ($retval === 2 || $retval === 4) { if (is_array($output) === true) { - $msg = join('\n', $output); + $msg = implode('\n', $output); } throw new RuntimeException("Failed invoking JavaScript Lint, retval was [$retval], output was [$msg]"); @@ -81,7 +83,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php index bae882146..aceecffd3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Files; @@ -19,7 +19,7 @@ class FileExtensionSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -42,7 +42,7 @@ public function process(File $phpcsFile, $stackPtr) $tokens = $phpcsFile->getTokens(); $fileName = $phpcsFile->getFilename(); $extension = substr($fileName, strrpos($fileName, '.')); - $nextClass = $phpcsFile->findNext([T_CLASS, T_INTERFACE, T_TRAIT], $stackPtr); + $nextClass = $phpcsFile->findNext([T_CLASS, T_INTERFACE, T_TRAIT, T_ENUM], $stackPtr); if ($nextClass !== false) { $phpcsFile->recordMetric($stackPtr, 'File extension for class files', $extension); @@ -60,7 +60,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php index 60b113d3a..b79e6b3ec 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Formatting; @@ -30,7 +30,7 @@ class OperatorBracketSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -109,6 +109,7 @@ public function process(File $phpcsFile, $stackPtr) T_OPEN_SHORT_ARRAY => true, T_CASE => true, T_EXIT => true, + T_MATCH_ARROW => true, ]; if (isset($invalidTokens[$tokens[$previousToken]['code']]) === true) { @@ -141,6 +142,7 @@ public function process(File $phpcsFile, $stackPtr) T_THIS, T_SELF, T_STATIC, + T_PARENT, T_OBJECT_OPERATOR, T_NULLSAFE_OBJECT_OPERATOR, T_DOUBLE_COLON, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php index e696d8001..7357a507e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions; @@ -41,7 +41,7 @@ class FunctionDeclarationArgumentSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php index 4b6a6acfd..fdb391c28 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php index f6fc383ae..5eafbfdbb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions; @@ -19,7 +19,7 @@ class FunctionDuplicateArgumentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php index 24588a912..af3d902ec 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions; @@ -19,7 +19,7 @@ class GlobalFunctionSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php index 2357960c2..401b840c5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions; @@ -20,7 +20,7 @@ class LowercaseFunctionKeywordsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php index a4ea79cfb..626b330f1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions; @@ -37,7 +37,7 @@ class MultiLineFunctionDeclarationSniff extends PEARFunctionDeclarationSniff * @param array $tokens The stack of tokens that make up * the file. * - * @return void + * @return bool */ public function isMultiLineDeclaration($phpcsFile, $stackPtr, $openBracket, $tokens) { @@ -200,7 +200,7 @@ public function processBracket($phpcsFile, $openBracket, $tokens, $type='functio // The open bracket should be the last thing on the line. if ($tokens[$openBracket]['line'] !== $tokens[$closeBracket]['line']) { $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($openBracket + 1), null, true); - if ($tokens[$next]['line'] !== ($tokens[$openBracket]['line'] + 1)) { + if ($tokens[$next]['line'] === $tokens[$openBracket]['line']) { $error = 'The first parameter of a multi-line '.$type.' declaration must be on the line after the opening bracket'; $fix = $phpcsFile->addFixableError($error, $next, $errorPrefix.'FirstParamSpacing'); if ($fix === true) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php index 878035e67..2450ba7fd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\NamingConventions; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php index 5c3a74930..79f9c4b23 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\NamingConventions; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php index c324e2058..b619924e8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php @@ -4,7 +4,9 @@ * * @author Sertan Danis * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Objects; @@ -26,7 +28,7 @@ class DisallowObjectStringIndexSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php index ea4970dbf..d408a07cc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Objects; @@ -20,7 +20,7 @@ class ObjectInstantiationSniff implements Sniff /** * Registers the token types that this sniff wishes to listen to. * - * @return array + * @return array */ public function register() { @@ -48,21 +48,37 @@ public function process(File $phpcsFile, $stackPtr) $prev = $phpcsFile->findPrevious($allowedTokens, ($stackPtr - 1), null, true); $allowedTokens = [ - T_EQUAL => true, - T_DOUBLE_ARROW => true, - T_FN_ARROW => true, - T_MATCH_ARROW => true, - T_THROW => true, - T_RETURN => true, - T_INLINE_THEN => true, - T_INLINE_ELSE => true, + T_EQUAL => T_EQUAL, + T_COALESCE_EQUAL => T_COALESCE_EQUAL, + T_DOUBLE_ARROW => T_DOUBLE_ARROW, + T_FN_ARROW => T_FN_ARROW, + T_MATCH_ARROW => T_MATCH_ARROW, + T_THROW => T_THROW, + T_RETURN => T_RETURN, ]; - if (isset($allowedTokens[$tokens[$prev]['code']]) === false) { - $error = 'New objects must be assigned to a variable'; - $phpcsFile->addError($error, $stackPtr, 'NotAssigned'); + if (isset($allowedTokens[$tokens[$prev]['code']]) === true) { + return; } + $ternaryLikeTokens = [ + T_COALESCE => true, + T_INLINE_THEN => true, + T_INLINE_ELSE => true, + ]; + + // For ternary like tokens, walk a little further back to see if it is preceded by + // one of the allowed tokens (within the same statement). + if (isset($ternaryLikeTokens[$tokens[$prev]['code']]) === true) { + $hasAllowedBefore = $phpcsFile->findPrevious($allowedTokens, ($prev - 1), null, false, null, true); + if ($hasAllowedBefore !== false) { + return; + } + } + + $error = 'New objects must be assigned to a variable'; + $phpcsFile->addError($error, $stackPtr, 'NotAssigned'); + }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php index 787d3fc82..dbbc1b842 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Objects; @@ -27,7 +29,7 @@ class ObjectMemberCommaSniff implements Sniff /** * Registers the token types that this sniff wishes to listen to. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php index 85e9825f8..e9b41d691 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Operators; @@ -44,7 +44,7 @@ class ComparisonOperatorUsageSniff implements Sniff /** * A list of invalid operators with their alternatives. * - * @var array + * @var array> */ private static $invalidOps = [ 'PHP' => [ @@ -62,7 +62,7 @@ class ComparisonOperatorUsageSniff implements Sniff /** * Registers the token types that this sniff wishes to listen to. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php index cb3778453..a39e44e12 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Operators; @@ -20,7 +20,7 @@ class IncrementDecrementUsageSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -120,7 +120,7 @@ protected function processAssignment($phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); - $assignedVar = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + $assignedVar = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); // Not an assignment, return. if ($tokens[$assignedVar]['code'] !== T_VARIABLE) { return; @@ -129,8 +129,14 @@ protected function processAssignment($phpcsFile, $stackPtr) $statementEnd = $phpcsFile->findNext([T_SEMICOLON, T_CLOSE_PARENTHESIS, T_CLOSE_SQUARE_BRACKET, T_CLOSE_CURLY_BRACKET], $stackPtr); // If there is anything other than variables, numbers, spaces or operators we need to return. - $noiseTokens = $phpcsFile->findNext([T_LNUMBER, T_VARIABLE, T_WHITESPACE, T_PLUS, T_MINUS, T_OPEN_PARENTHESIS], ($stackPtr + 1), $statementEnd, true); - + $find = Tokens::$emptyTokens; + $find[] = T_LNUMBER; + $find[] = T_VARIABLE; + $find[] = T_PLUS; + $find[] = T_MINUS; + $find[] = T_OPEN_PARENTHESIS; + + $noiseTokens = $phpcsFile->findNext($find, ($stackPtr + 1), $statementEnd, true); if ($noiseTokens !== false) { return; } @@ -145,8 +151,8 @@ protected function processAssignment($phpcsFile, $stackPtr) } if ($tokens[$stackPtr]['code'] === T_EQUAL) { - $nextVar = ($stackPtr + 1); - $previousVariable = ($stackPtr + 1); + $nextVar = $stackPtr; + $previousVariable = $stackPtr; $variableCount = 0; while (($nextVar = $phpcsFile->findNext(T_VARIABLE, ($nextVar + 1), $statementEnd)) !== false) { $previousVariable = $nextVar; @@ -165,8 +171,8 @@ protected function processAssignment($phpcsFile, $stackPtr) // We have only one variable, and it's the same as what is being assigned, // so we need to check what is being added or subtracted. - $nextNumber = ($stackPtr + 1); - $previousNumber = ($stackPtr + 1); + $nextNumber = $stackPtr; + $previousNumber = $stackPtr; $numberCount = 0; while (($nextNumber = $phpcsFile->findNext([T_LNUMBER], ($nextNumber + 1), $statementEnd, false)) !== false) { $previousNumber = $nextNumber; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php index f9ea62020..720e4724a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Operators; @@ -19,7 +19,7 @@ class ValidLogicalOperatorsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php index 04d063387..59e91f07c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -38,7 +38,7 @@ class CommentedOutCodeSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php index 9d8077f59..24dc1370d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -20,7 +20,7 @@ class DisallowBooleanStatementSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php index 7c7e2246f..57dabbf12 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -20,7 +20,7 @@ class DisallowComparisonAssignmentSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -52,17 +52,18 @@ public function process(File $phpcsFile, $stackPtr) } } - // Ignore values in array definitions. - $array = $phpcsFile->findNext( - T_ARRAY, + // Ignore values in array definitions or match structures. + $nextNonEmpty = $phpcsFile->findNext( + Tokens::$emptyTokens, ($stackPtr + 1), null, - false, - null, true ); - if ($array !== false) { + if ($nextNonEmpty !== false + && ($tokens[$nextNonEmpty]['code'] === T_ARRAY + || $tokens[$nextNonEmpty]['code'] === T_MATCH) + ) { return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php index 60b0c370a..f2620c7d7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -29,7 +29,7 @@ class DisallowInlineIfSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php index 4448d2445..06df65204 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -20,7 +20,7 @@ class DisallowMultipleAssignmentsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php index a0f1161c6..5d71c3ec6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -43,7 +43,7 @@ class DisallowSizeFunctionsInLoopsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php index 9f86a1798..56fce551d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php index ef11aa6c4..0be6118e4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -20,11 +20,14 @@ class EmbeddedPhpSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { - return [T_OPEN_TAG]; + return [ + T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, + ]; }//end register() @@ -46,9 +49,9 @@ public function process(File $phpcsFile, $stackPtr) // then we have an inline embedded PHP block. $closeTag = $phpcsFile->findNext(T_CLOSE_TAG, $stackPtr); if ($closeTag === false || $tokens[$stackPtr]['line'] !== $tokens[$closeTag]['line']) { - $this->validateMultilineEmbeddedPhp($phpcsFile, $stackPtr); + $this->validateMultilineEmbeddedPhp($phpcsFile, $stackPtr, $closeTag); } else { - $this->validateInlineEmbeddedPhp($phpcsFile, $stackPtr); + $this->validateInlineEmbeddedPhp($phpcsFile, $stackPtr, $closeTag); } }//end process() @@ -57,44 +60,40 @@ public function process(File $phpcsFile, $stackPtr) /** * Validates embedded PHP that exists on multiple lines. * - * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. - * @param int $stackPtr The position of the current token in the - * stack passed in $tokens. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token in the + * stack passed in $tokens. + * @param int|false $closingTag The position of the PHP close tag in the + * stack passed in $tokens. * * @return void */ - private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) + private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr, $closingTag) { $tokens = $phpcsFile->getTokens(); - $prevTag = $phpcsFile->findPrevious(T_OPEN_TAG, ($stackPtr - 1)); + $prevTag = $phpcsFile->findPrevious($this->register(), ($stackPtr - 1)); if ($prevTag === false) { // This is the first open tag. return; } $firstContent = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); - $closingTag = $phpcsFile->findNext(T_CLOSE_TAG, $stackPtr); + if ($firstContent === false) { + // Unclosed PHP open tag at the end of a file. Nothing to do. + return; + } + if ($closingTag !== false) { - $nextContent = $phpcsFile->findNext(T_WHITESPACE, ($closingTag + 1), $phpcsFile->numTokens, true); - if ($nextContent === false) { + $firstContentAfterBlock = $phpcsFile->findNext(T_WHITESPACE, ($closingTag + 1), $phpcsFile->numTokens, true); + if ($firstContentAfterBlock === false) { // Final closing tag. It will be handled elsewhere. return; } // We have an opening and a closing tag, that lie within other content. if ($firstContent === $closingTag) { - $error = 'Empty embedded PHP tag found'; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'Empty'); - if ($fix === true) { - $phpcsFile->fixer->beginChangeset(); - for ($i = $stackPtr; $i <= $closingTag; $i++) { - $phpcsFile->fixer->replaceToken($i, ''); - } - - $phpcsFile->fixer->endChangeset(); - } - + $this->reportEmptyTagSet($phpcsFile, $stackPtr, $closingTag); return; } }//end if @@ -105,9 +104,16 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) if ($fix === true) { $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr, true); $padding = (strlen($tokens[$first]['content']) - strlen(ltrim($tokens[$first]['content']))); + $phpcsFile->fixer->beginChangeset(); + $phpcsFile->fixer->replaceToken($stackPtr, rtrim($tokens[$stackPtr]['content'])); $phpcsFile->fixer->addNewline($stackPtr); $phpcsFile->fixer->addContent($stackPtr, str_repeat(' ', $padding)); + + if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { + $phpcsFile->fixer->replaceToken(($stackPtr + 1), ''); + } + $phpcsFile->fixer->endChangeset(); } } else { @@ -141,10 +147,13 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) } }//end if - $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr); + $indent = 0; + $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr); if ($first === false) { - $first = $phpcsFile->findFirstOnLine(T_INLINE_HTML, $stackPtr); - $indent = (strlen($tokens[$first]['content']) - strlen(ltrim($tokens[$first]['content']))); + $first = $phpcsFile->findFirstOnLine(T_INLINE_HTML, $stackPtr); + if ($first !== false) { + $indent = (strlen($tokens[$first]['content']) - strlen(ltrim($tokens[$first]['content']))); + } } else { $indent = ($tokens[($first + 1)]['column'] - 1); } @@ -169,17 +178,20 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) }//end if }//end if - $lastContent = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); - if ($tokens[$lastContent]['line'] === $tokens[$stackPtr]['line'] - && trim($tokens[$lastContent]['content']) !== '' + $lastContentBeforeBlock = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + if ($tokens[$lastContentBeforeBlock]['line'] === $tokens[$stackPtr]['line'] + && trim($tokens[$lastContentBeforeBlock]['content']) !== '' ) { $error = 'Opening PHP tag must be on a line by itself'; $fix = $phpcsFile->addFixableError($error, $stackPtr, 'ContentBeforeOpen'); if ($fix === true) { - $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr); + $padding = 0; + $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $stackPtr); if ($first === false) { - $first = $phpcsFile->findFirstOnLine(T_INLINE_HTML, $stackPtr); - $padding = (strlen($tokens[$first]['content']) - strlen(ltrim($tokens[$first]['content']))); + $first = $phpcsFile->findFirstOnLine(T_INLINE_HTML, $stackPtr); + if ($first !== false) { + $padding = (strlen($tokens[$first]['content']) - strlen(ltrim($tokens[$first]['content']))); + } } else { $padding = ($tokens[($first + 1)]['column'] - 1); } @@ -188,11 +200,19 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) } } else { // Find the first token on the first non-empty line we find. - for ($first = ($stackPtr - 1); $first > 0; $first--) { + for ($first = ($lastContentBeforeBlock - 1); $first > 0; $first--) { if ($tokens[$first]['line'] === $tokens[$stackPtr]['line']) { continue; } else if (trim($tokens[$first]['content']) !== '') { $first = $phpcsFile->findFirstOnLine([], $first, true); + if ($tokens[$first]['code'] === T_COMMENT + && $tokens[$first]['content'] !== ltrim($tokens[$first]['content']) + ) { + // This is a subsequent line in a star-slash comment containing leading indent. + // We'll need the first line of the comment to correctly determine the indent. + continue; + } + break; } } @@ -225,20 +245,48 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) return; } - $lastContent = $phpcsFile->findPrevious(T_WHITESPACE, ($closingTag - 1), ($stackPtr + 1), true); - $nextContent = $phpcsFile->findNext(T_WHITESPACE, ($closingTag + 1), null, true); + $lastContent = $phpcsFile->findPrevious(T_WHITESPACE, ($closingTag - 1), ($stackPtr + 1), true); + $firstContentAfterBlock = $phpcsFile->findNext(T_WHITESPACE, ($closingTag + 1), null, true); if ($tokens[$lastContent]['line'] === $tokens[$closingTag]['line']) { $error = 'Closing PHP tag must be on a line by itself'; $fix = $phpcsFile->addFixableError($error, $closingTag, 'ContentBeforeEnd'); if ($fix === true) { - $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $closingTag, true); + // Calculate the indent for the close tag. + // If the close tag is on the same line as the first content, re-use the indent + // calculated for the first content line to prevent the indent being based on an + // "old" indent, not the _new_ (fixed) indent. + if ($tokens[$firstContent]['line'] === $tokens[$lastContent]['line'] + && isset($indent) === true + ) { + $closerIndent = $indent; + } else { + $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, $closingTag, true); + + while ($tokens[$first]['code'] === T_COMMENT + && $tokens[$first]['content'] !== ltrim($tokens[$first]['content']) + ) { + // This is a subsequent line in a star-slash comment containing leading indent. + // We'll need the first line of the comment to correctly determine the indent. + $first = $phpcsFile->findFirstOnLine(T_WHITESPACE, ($first - 1), true); + } + + $closerIndent = ($tokens[$first]['column'] - 1); + } + $phpcsFile->fixer->beginChangeset(); - $phpcsFile->fixer->addContentBefore($closingTag, str_repeat(' ', ($tokens[$first]['column'] - 1))); + + if ($tokens[($closingTag - 1)]['code'] === T_WHITESPACE) { + $phpcsFile->fixer->replaceToken(($closingTag - 1), ''); + } + + $phpcsFile->fixer->addContentBefore($closingTag, str_repeat(' ', $closerIndent)); $phpcsFile->fixer->addNewlineBefore($closingTag); $phpcsFile->fixer->endChangeset(); - } - } else if ($tokens[$nextContent]['line'] === $tokens[$closingTag]['line']) { + }//end if + } else if ($firstContentAfterBlock !== false + && $tokens[$firstContentAfterBlock]['line'] === $tokens[$closingTag]['line'] + ) { $error = 'Closing PHP tag must be on a line by itself'; $fix = $phpcsFile->addFixableError($error, $closingTag, 'ContentAfterEnd'); if ($fix === true) { @@ -246,11 +294,32 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) $phpcsFile->fixer->beginChangeset(); $phpcsFile->fixer->addNewline($closingTag); $phpcsFile->fixer->addContent($closingTag, str_repeat(' ', ($tokens[$first]['column'] - 1))); + + if ($tokens[$firstContentAfterBlock]['code'] === T_INLINE_HTML) { + $trimmedHtmlContent = ltrim($tokens[$firstContentAfterBlock]['content']); + if ($trimmedHtmlContent === '') { + // HTML token contains only whitespace and the next token after is PHP, not HTML, so remove the whitespace. + $phpcsFile->fixer->replaceToken($firstContentAfterBlock, ''); + } else { + // The HTML token has content, so remove leading whitespace in favour of the indent. + $phpcsFile->fixer->replaceToken($firstContentAfterBlock, $trimmedHtmlContent); + } + } + + if ($tokens[$firstContentAfterBlock]['code'] === T_OPEN_TAG + || $tokens[$firstContentAfterBlock]['code'] === T_OPEN_TAG_WITH_ECHO + ) { + // Next token is a PHP open tag which will also have thrown an error. + // Prevent both fixers running in the same loop by making sure the token is "touched" during this loop. + // This prevents a stray new line being added between the close and open tags. + $phpcsFile->fixer->replaceToken($firstContentAfterBlock, $tokens[$firstContentAfterBlock]['content']); + } + $phpcsFile->fixer->endChangeset(); - } + }//end if }//end if - $next = $phpcsFile->findNext(T_OPEN_TAG, ($closingTag + 1)); + $next = $phpcsFile->findNext($this->register(), ($closingTag + 1)); if ($next === false) { return; } @@ -293,42 +362,31 @@ private function validateMultilineEmbeddedPhp($phpcsFile, $stackPtr) * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. + * @param int $closeTag The position of the PHP close tag in the + * stack passed in $tokens. * * @return void */ - private function validateInlineEmbeddedPhp($phpcsFile, $stackPtr) + private function validateInlineEmbeddedPhp($phpcsFile, $stackPtr, $closeTag) { $tokens = $phpcsFile->getTokens(); - // We only want one line PHP sections, so return if the closing tag is - // on the next line. - $closeTag = $phpcsFile->findNext(T_CLOSE_TAG, $stackPtr, null, false); - if ($tokens[$stackPtr]['line'] !== $tokens[$closeTag]['line']) { - return; - } - - // Check that there is one, and only one space at the start of the statement. $firstContent = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), $closeTag, true); if ($firstContent === false) { - $error = 'Empty embedded PHP tag found'; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'Empty'); - if ($fix === true) { - $phpcsFile->fixer->beginChangeset(); - for ($i = $stackPtr; $i <= $closeTag; $i++) { - $phpcsFile->fixer->replaceToken($i, ''); - } - - $phpcsFile->fixer->endChangeset(); - } - + $this->reportEmptyTagSet($phpcsFile, $stackPtr, $closeTag); return; } - // The open tag token always contains a single space after it. - $leadingSpace = 1; + // Check that there is one, and only one space at the start of the statement. + $leadingSpace = 0; + if ($tokens[$stackPtr]['code'] === T_OPEN_TAG) { + // The long open tag token in a single line tag set always contains a single space after it. + $leadingSpace = 1; + } + if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { - $leadingSpace = ($tokens[($stackPtr + 1)]['length'] + 1); + $leadingSpace += $tokens[($stackPtr + 1)]['length']; } if ($leadingSpace !== 1) { @@ -336,7 +394,15 @@ private function validateInlineEmbeddedPhp($phpcsFile, $stackPtr) $data = [$leadingSpace]; $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingAfterOpen', $data); if ($fix === true) { - $phpcsFile->fixer->replaceToken(($stackPtr + 1), ''); + if ($tokens[$stackPtr]['code'] === T_OPEN_TAG) { + $phpcsFile->fixer->replaceToken(($stackPtr + 1), ''); + } else if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { + // Short open tag with too much whitespace. + $phpcsFile->fixer->replaceToken(($stackPtr + 1), ' '); + } else { + // Short open tag without whitespace. + $phpcsFile->fixer->addContent($stackPtr, ' '); + } } } @@ -349,7 +415,12 @@ private function validateInlineEmbeddedPhp($phpcsFile, $stackPtr) && $tokens[$prev]['code'] !== T_SEMICOLON ) { $error = 'Inline PHP statement must end with a semicolon'; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NoSemicolon'); + $code = 'NoSemicolon'; + if ($tokens[$stackPtr]['code'] === T_OPEN_TAG_WITH_ECHO) { + $code = 'ShortOpenEchoNoSemicolon'; + } + + $fix = $phpcsFile->addFixableError($error, $stackPtr, $code); if ($fix === true) { $phpcsFile->fixer->addContent($prev, ';'); } @@ -366,7 +437,7 @@ private function validateInlineEmbeddedPhp($phpcsFile, $stackPtr) $data = [$statementCount]; $phpcsFile->addError($error, $stackPtr, 'MultipleStatements', $data); } - } + }//end if }//end if $trailingSpace = 0; @@ -399,4 +470,43 @@ private function validateInlineEmbeddedPhp($phpcsFile, $stackPtr) }//end validateInlineEmbeddedPhp() + /** + * Report and fix an set of empty PHP tags. + * + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token in the + * stack passed in $tokens. + * @param int $closeTag The position of the PHP close tag in the + * stack passed in $tokens. + * + * @return void + */ + private function reportEmptyTagSet(File $phpcsFile, $stackPtr, $closeTag) + { + $tokens = $phpcsFile->getTokens(); + $error = 'Empty embedded PHP tag found'; + $fix = $phpcsFile->addFixableError($error, $stackPtr, 'Empty'); + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); + for ($i = $stackPtr; $i <= $closeTag; $i++) { + $phpcsFile->fixer->replaceToken($i, ''); + } + + // Prevent leaving indentation whitespace behind when the empty tag set is the only thing on the affected lines. + if (isset($tokens[($closeTag + 1)]) === true + && $tokens[($closeTag + 1)]['line'] !== $tokens[$closeTag]['line'] + && $tokens[($stackPtr - 1)]['code'] === T_INLINE_HTML + && $tokens[($stackPtr - 1)]['line'] === $tokens[$stackPtr]['line'] + && $tokens[($stackPtr - 1)]['column'] === 1 + && trim($tokens[($stackPtr - 1)]['content']) === '' + ) { + $phpcsFile->fixer->replaceToken(($stackPtr - 1), ''); + } + + $phpcsFile->fixer->endChangeset(); + } + + }//end reportEmptyTagSet() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EvalSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EvalSniff.php index 3162c14b1..102bd7c3f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EvalSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/EvalSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -19,7 +19,7 @@ class EvalSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php index 024eff8ac..fec3ec821 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -19,7 +19,7 @@ class GlobalKeywordSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/HeredocSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/HeredocSniff.php index 67369cb22..a3ab8e5a6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/HeredocSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/HeredocSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -19,7 +19,7 @@ class HeredocSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php index 4e3ee2152..1bc369a2a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php @@ -4,13 +4,14 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; +use PHP_CodeSniffer\Util\Tokens; class InnerFunctionsSniff implements Sniff { @@ -19,7 +20,7 @@ class InnerFunctionsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -41,21 +42,28 @@ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); - $function = $phpcsFile->getCondition($stackPtr, T_FUNCTION); - if ($function === false) { - // Not a nested function. + if (isset($tokens[$stackPtr]['conditions']) === false) { return; } - $class = $phpcsFile->getCondition($stackPtr, T_ANON_CLASS, false); - if ($class !== false && $class > $function) { - // Ignore methods in anon classes. - return; + $conditions = $tokens[$stackPtr]['conditions']; + $reversedConditions = array_reverse($conditions, true); + + $outerFuncToken = null; + foreach ($reversedConditions as $condToken => $condition) { + if ($condition === T_FUNCTION || $condition === T_CLOSURE) { + $outerFuncToken = $condToken; + break; + } + + if (array_key_exists($condition, Tokens::$ooScopeTokens) === true) { + // Ignore methods in OOP structures defined within functions. + return; + } } - $prev = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); - if ($tokens[$prev]['code'] === T_EQUAL) { - // Ignore closures. + if ($outerFuncToken === null) { + // Not a nested function. return; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php index 519b7f6cc..0b671d629 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -39,7 +39,7 @@ public function __construct() /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -75,6 +75,11 @@ public function process(File $phpcsFile, $stackPtr) } // Make sure this is a function call or a use statement. + if (empty($tokens[$stackPtr]['nested_attributes']) === false) { + // Class instantiation in attribute, not function call. + return; + } + $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($next === false) { // Not a function call. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php index 343d9b29e..4c0d6bcb7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP; @@ -16,11 +16,27 @@ class NonExecutableCodeSniff implements Sniff { + /** + * Tokens for terminating expressions, which can be used inline. + * + * This is in contrast to terminating statements, which cannot be used inline + * and would result in a parse error (which is not the concern of this sniff). + * + * `throw` can be used as an expression since PHP 8.0. + * {@link https://wiki.php.net/rfc/throw_expression} + * + * @var array + */ + private $expressionTokens = [ + T_EXIT => T_EXIT, + T_THROW => T_THROW, + ]; + /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -49,42 +65,58 @@ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); - // If this token is preceded with an "or", it only relates to one line - // and should be ignored. For example: fopen() or die(). $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); - if ($tokens[$prev]['code'] === T_LOGICAL_OR || $tokens[$prev]['code'] === T_BOOLEAN_OR) { - return; - } - // Check if this token is actually part of a one-line IF or ELSE statement. - for ($i = ($stackPtr - 1); $i > 0; $i--) { - if ($tokens[$i]['code'] === T_CLOSE_PARENTHESIS) { - $i = $tokens[$i]['parenthesis_opener']; - continue; - } else if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { - continue; + // Tokens which can be used in inline expressions need special handling. + if (isset($this->expressionTokens[$tokens[$stackPtr]['code']]) === true) { + // If this token is preceded by a logical operator, it only relates to one line + // and should be ignored. For example: fopen() or die(). + // Note: There is one exception: throw expressions can not be used with xor. + if (isset(Tokens::$booleanOperators[$tokens[$prev]['code']]) === true + && ($tokens[$stackPtr]['code'] === T_THROW && $tokens[$prev]['code'] === T_LOGICAL_XOR) === false + ) { + return; } - break; - } + // Expressions are allowed in the `else` clause of ternaries. + if ($tokens[$prev]['code'] === T_INLINE_THEN || $tokens[$prev]['code'] === T_INLINE_ELSE) { + return; + } + + // Expressions are allowed with PHP 7.0+ null coalesce and PHP 7.4+ null coalesce equals. + if ($tokens[$prev]['code'] === T_COALESCE || $tokens[$prev]['code'] === T_COALESCE_EQUAL) { + return; + } - if ($tokens[$i]['code'] === T_IF - || $tokens[$i]['code'] === T_ELSE - || $tokens[$i]['code'] === T_ELSEIF + // Expressions are allowed in arrow functions. + if ($tokens[$prev]['code'] === T_FN_ARROW) { + return; + } + }//end if + + // This token may be part of an inline condition. + // If we find a closing parenthesis that belongs to a condition, + // or an "else", we should ignore this token. + if ($tokens[$prev]['code'] === T_ELSE + || (isset($tokens[$prev]['parenthesis_owner']) === true + && ($tokens[$tokens[$prev]['parenthesis_owner']]['code'] === T_IF + || $tokens[$tokens[$prev]['parenthesis_owner']]['code'] === T_ELSEIF)) ) { return; } if ($tokens[$stackPtr]['code'] === T_RETURN) { - $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true); if ($tokens[$next]['code'] === T_SEMICOLON) { - $next = $phpcsFile->findNext(T_WHITESPACE, ($next + 1), null, true); + $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), null, true); if ($tokens[$next]['code'] === T_CLOSE_CURLY_BRACKET) { // If this is the closing brace of a function // then this return statement doesn't return anything // and is not required anyway. $owner = $tokens[$next]['scope_condition']; - if ($tokens[$owner]['code'] === T_FUNCTION) { + if ($tokens[$owner]['code'] === T_FUNCTION + || $tokens[$owner]['code'] === T_CLOSURE + ) { $warning = 'Empty return statement not required here'; $phpcsFile->addWarning($warning, $stackPtr, 'ReturnNotRequired'); return; @@ -136,22 +168,6 @@ public function process(File $phpcsFile, $stackPtr) }//end if }//end if - // This token may be part of an inline condition. - // If we find a closing parenthesis that belongs to a condition - // we should ignore this token. - $prev = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 1), null, true); - if (isset($tokens[$prev]['parenthesis_owner']) === true) { - $owner = $tokens[$prev]['parenthesis_owner']; - $ignore = [ - T_IF => true, - T_ELSE => true, - T_ELSEIF => true, - ]; - if (isset($ignore[$tokens[$owner]['code']]) === true) { - return; - } - } - $ourConditions = array_keys($tokens[$stackPtr]['conditions']); if (empty($ourConditions) === false) { @@ -204,8 +220,8 @@ public function process(File $phpcsFile, $stackPtr) $end = ($phpcsFile->numTokens - 1); }//end if - // Find the semicolon that ends this statement, skipping - // nested statements like FOR loops and closures. + // Find the semicolon or closing PHP tag that ends this statement, + // skipping nested statements like FOR loops and closures. for ($start = ($stackPtr + 1); $start < $phpcsFile->numTokens; $start++) { if ($start === $end) { break; @@ -225,7 +241,7 @@ public function process(File $phpcsFile, $stackPtr) continue; } - if ($tokens[$start]['code'] === T_SEMICOLON) { + if ($tokens[$start]['code'] === T_SEMICOLON || $tokens[$start]['code'] === T_CLOSE_TAG) { break; } }//end for @@ -258,6 +274,16 @@ public function process(File $phpcsFile, $stackPtr) continue; } + // Skip HTML whitespace. + if ($tokens[$i]['code'] === T_INLINE_HTML && trim($tokens[$i]['content']) === '') { + continue; + } + + // Skip PHP re-open tag (eg, after inline HTML). + if ($tokens[$i]['code'] === T_OPEN_TAG) { + continue; + } + $line = $tokens[$i]['line']; if ($line > $lastLine) { $type = substr($tokens[$stackPtr]['type'], 2); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php index 5239b644e..3d1c83f01 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php index 8c60208c6..39ed5b0dd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope; @@ -54,17 +54,8 @@ protected function processTokenWithinScope(File $phpcsFile, $stackPtr, $currScop return; } - $modifier = null; - for ($i = ($stackPtr - 1); $i > 0; $i--) { - if ($tokens[$i]['line'] < $tokens[$stackPtr]['line']) { - break; - } else if (isset(Tokens::$scopeModifiers[$tokens[$i]['code']]) === true) { - $modifier = $i; - break; - } - } - - if ($modifier === null) { + $properties = $phpcsFile->getMethodProperties($stackPtr); + if ($properties['scope_specified'] === false) { $error = 'Visibility must be declared on method "%s"'; $data = [$methodName]; $phpcsFile->addError($error, $stackPtr, 'Missing', $data); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php index 0bafbf4db..aab5bdb7a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope; @@ -22,7 +22,7 @@ class StaticThisUsageSniff extends AbstractScopeSniff */ public function __construct() { - parent::__construct([T_CLASS, T_TRAIT, T_ANON_CLASS], [T_FUNCTION]); + parent::__construct([T_CLASS, T_TRAIT, T_ENUM, T_ANON_CLASS], [T_FUNCTION]); }//end __construct() @@ -76,9 +76,9 @@ public function processTokenWithinScope(File $phpcsFile, $stackPtr, $currScope) /** * Check for $this variable usage between $next and $end tokens. * - * @param File $phpcsFile The current file being scanned. - * @param int $next The position of the next token to check. - * @param int $end The position of the last token to check. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The current file being scanned. + * @param int $next The position of the next token to check. + * @param int $end The position of the last token to check. * * @return void */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php index 9d32e54a0..66c324548 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Strings; @@ -34,7 +34,7 @@ class ConcatenationSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php index 1ff99b9ca..fb3b626f0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Strings; @@ -19,7 +19,7 @@ class DoubleQuoteUsageSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -38,7 +38,7 @@ public function register() * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php index 512d878a4..ec516a99a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Strings; @@ -20,7 +20,7 @@ class EchoedStringsSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -51,7 +51,7 @@ public function process(File $phpcsFile, $stackPtr) $end = $phpcsFile->findNext([T_SEMICOLON, T_CLOSE_TAG], $stackPtr, null, false); - // If the token before the semi-colon is not a closing parenthesis, then we are not concerned. + // If the token before the semicolon is not a closing parenthesis, then we are not concerned. $prev = $phpcsFile->findPrevious(T_WHITESPACE, ($end - 1), null, true); if ($tokens[$prev]['code'] !== T_CLOSE_PARENTHESIS) { $phpcsFile->recordMetric($stackPtr, 'Brackets around echoed strings', 'no'); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php index 95f95ed6b..2ae782cef 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -20,7 +20,7 @@ class CastSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php index f38fd0e89..eb6e5b2ae 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -30,7 +30,7 @@ class ControlStructureSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -145,6 +145,7 @@ public function process(File $phpcsFile, $stackPtr) T_CLASS => true, T_INTERFACE => true, T_TRAIT => true, + T_ENUM => true, T_DOC_COMMENT_OPEN_TAG => true, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php index 68871990b..54b9ca927 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -29,7 +29,7 @@ class FunctionClosingBraceSpaceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php index 09c5a48a5..3eff4e0ff 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -29,7 +29,7 @@ class FunctionOpeningBraceSpaceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php index 1f4704b91..01cbd647f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -48,7 +48,7 @@ class FunctionSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -262,22 +262,21 @@ public function process(File $phpcsFile, $stackPtr) $prevContent = $phpcsFile->findPrevious(T_WHITESPACE, ($tokens[$prevContent]['comment_opener'] - 1), null, true); } - $prevLineToken = $prevContent; - // Before we throw an error, check that we are not throwing an error // for another function. We don't want to error for no blank lines after // the previous function and no blank lines before this one as well. - $prevLine = ($tokens[$prevContent]['line'] - 1); - $i = ($stackPtr - 1); - $foundLines = 0; - $stopAt = 0; - if (isset($tokens[$stackPtr]['conditions']) === true) { - $conditions = $tokens[$stackPtr]['conditions']; + if (isset($tokens[$prevLineToken]['conditions']) === true) { + $conditions = $tokens[$prevLineToken]['conditions']; $conditions = array_keys($conditions); $stopAt = array_pop($conditions); } + $prevLineToken = $prevContent; + $prevLine = ($tokens[$prevContent]['line'] - 1); + $i = ($stackPtr - 1); + $foundLines = 0; + while ($currentLine !== $prevLine && $currentLine > 1 && $i > $stopAt) { if ($tokens[$i]['code'] === T_FUNCTION) { // Found another interface or abstract function. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php index c1492bf7b..c4faf158b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.3.0 Use the Generic.WhiteSpace.LanguageConstructSpacing sniff instead. */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -20,7 +22,7 @@ class LanguageConstructSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php index a89a02a94..d0f4c80c2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -30,7 +30,7 @@ class LogicalOperatorSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php index f0c84fb8e..773d25d4f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -55,11 +55,26 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) $endOfStatement = $phpcsFile->findNext(T_SEMICOLON, ($stackPtr + 1), null, false, null, true); - $ignore = $validPrefixes; - $ignore[] = T_WHITESPACE; + $ignore = $validPrefixes; + $ignore[T_WHITESPACE] = T_WHITESPACE; $start = $startOfStatement; - $prev = $phpcsFile->findPrevious($ignore, ($startOfStatement - 1), null, true); + for ($prev = ($startOfStatement - 1); $prev >= 0; $prev--) { + if (isset($ignore[$tokens[$prev]['code']]) === true) { + continue; + } + + if ($tokens[$prev]['code'] === T_ATTRIBUTE_END + && isset($tokens[$prev]['attribute_opener']) === true + ) { + $prev = $tokens[$prev]['attribute_opener']; + $start = $prev; + continue; + } + + break; + } + if (isset(Tokens::$commentTokens[$tokens[$prev]['code']]) === true) { // Assume the comment belongs to the member var if it is on a line by itself. $prevContent = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($prev - 1), null, true); @@ -67,28 +82,48 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) // Check the spacing, but then skip it. $foundLines = ($tokens[$startOfStatement]['line'] - $tokens[$prev]['line'] - 1); if ($foundLines > 0) { - $error = 'Expected 0 blank lines after member var comment; %s found'; - $data = [$foundLines]; - $fix = $phpcsFile->addFixableError($error, $prev, 'AfterComment', $data); - if ($fix === true) { - $phpcsFile->fixer->beginChangeset(); - // Inline comments have the newline included in the content but - // docblock do not. - if ($tokens[$prev]['code'] === T_COMMENT) { - $phpcsFile->fixer->replaceToken($prev, rtrim($tokens[$prev]['content'])); - } - - for ($i = ($prev + 1); $i <= $startOfStatement; $i++) { - if ($tokens[$i]['line'] === $tokens[$startOfStatement]['line']) { - break; - } - - $phpcsFile->fixer->replaceToken($i, ''); + for ($i = ($prev + 1); $i < $startOfStatement; $i++) { + if ($tokens[$i]['column'] !== 1) { + continue; } - $phpcsFile->fixer->addNewline($prev); - $phpcsFile->fixer->endChangeset(); - } + if ($tokens[$i]['code'] === T_WHITESPACE + && $tokens[$i]['line'] !== $tokens[($i + 1)]['line'] + ) { + $error = 'Expected 0 blank lines after member var comment; %s found'; + $data = [$foundLines]; + $fix = $phpcsFile->addFixableError($error, $prev, 'AfterComment', $data); + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); + // Inline comments have the newline included in the content but + // docblocks do not. + if ($tokens[$prev]['code'] === T_COMMENT) { + $phpcsFile->fixer->replaceToken($prev, rtrim($tokens[$prev]['content'])); + } + + for ($i = ($prev + 1); $i <= $startOfStatement; $i++) { + if ($tokens[$i]['line'] === $tokens[$startOfStatement]['line']) { + break; + } + + // Remove the newline after the docblock, and any entirely + // empty lines before the member var. + if (($tokens[$i]['code'] === T_WHITESPACE + && $tokens[$i]['line'] === $tokens[$prev]['line']) + || ($tokens[$i]['column'] === 1 + && $tokens[$i]['line'] !== $tokens[($i + 1)]['line']) + ) { + $phpcsFile->fixer->replaceToken($i, ''); + } + } + + $phpcsFile->fixer->addNewline($prev); + $phpcsFile->fixer->endChangeset(); + }//end if + + break; + }//end if + }//end for }//end if $start = $prev; @@ -106,7 +141,7 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) $first = $tokens[$start]['comment_opener']; } else { $first = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($start - 1), null, true); - $first = $phpcsFile->findNext(Tokens::$commentTokens, ($first + 1)); + $first = $phpcsFile->findNext(array_merge(Tokens::$commentTokens, [T_ATTRIBUTE]), ($first + 1)); } // Determine if this is the first member var. @@ -177,8 +212,6 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) return $endOfStatement; } - return; - }//end processMemberVar() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php index cc5db1644..1c27be7a3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -26,7 +26,7 @@ class ObjectOperatorSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php index 2627d10d9..2a87978a0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -53,7 +53,7 @@ class OperatorSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -77,12 +77,13 @@ public function register() // Returning/printing a negative value; eg. (return -1). $this->nonOperandTokens += [ - T_RETURN => T_RETURN, - T_ECHO => T_ECHO, - T_EXIT => T_EXIT, - T_PRINT => T_PRINT, - T_YIELD => T_YIELD, - T_FN_ARROW => T_FN_ARROW, + T_RETURN => T_RETURN, + T_ECHO => T_ECHO, + T_EXIT => T_EXIT, + T_PRINT => T_PRINT, + T_YIELD => T_YIELD, + T_FN_ARROW => T_FN_ARROW, + T_MATCH_ARROW => T_MATCH_ARROW, ]; // Trying to use a negative value; eg. myFunction($var, -2). @@ -113,6 +114,9 @@ public function register() $targets[] = T_INLINE_ELSE; $targets[] = T_INSTANCEOF; + // Also register the contexts we want to specifically skip over. + $targets[] = T_DECLARE; + return $targets; }//end register() @@ -125,12 +129,25 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return void|int Optionally returns a stack pointer. The sniff will not be + * called again on the current file until the returned stack + * pointer is reached. Return `$phpcsFile->numTokens` to skip + * the rest of the file. */ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); + // Skip over declare statements as those should be handled by different sniffs. + if ($tokens[$stackPtr]['code'] === T_DECLARE) { + if (isset($tokens[$stackPtr]['parenthesis_closer']) === false) { + // Parse error / live coding. + return $phpcsFile->numTokens; + } + + return $tokens[$stackPtr]['parenthesis_closer']; + } + if ($this->isOperator($phpcsFile, $stackPtr) === false) { return; } @@ -221,7 +238,8 @@ public function process(File $phpcsFile, $stackPtr) ) { // Throw an error for assignments only if enabled using the sniff property // because other standards allow multiple spaces to align assignments. - if ($tokens[($stackPtr - 2)]['line'] !== $tokens[$stackPtr]['line']) { + $prevNonWhitespace = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + if ($tokens[$prevNonWhitespace]['line'] !== $tokens[$stackPtr]['line']) { $found = 'newline'; } else { $found = $tokens[($stackPtr - 1)]['length']; @@ -236,20 +254,29 @@ public function process(File $phpcsFile, $stackPtr) $operator, $found, ]; - $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingBefore', $data); - if ($fix === true) { - $phpcsFile->fixer->beginChangeset(); - if ($found === 'newline') { - $i = ($stackPtr - 2); - while ($tokens[$i]['code'] === T_WHITESPACE) { - $phpcsFile->fixer->replaceToken($i, ''); - $i--; + + if (isset(Tokens::$commentTokens[$tokens[$prevNonWhitespace]['code']]) === true) { + // Throw a non-fixable error if the token on the previous line is a comment token, + // as in that case it's not for the sniff to decide where the comment should be moved to + // and it would get us into unfixable situations as the new line char is included + // in the contents of the comment token. + $phpcsFile->addError($error, $stackPtr, 'SpacingBefore', $data); + } else { + $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingBefore', $data); + if ($fix === true) { + $phpcsFile->fixer->beginChangeset(); + if ($found === 'newline') { + $i = ($stackPtr - 2); + while ($tokens[$i]['code'] === T_WHITESPACE) { + $phpcsFile->fixer->replaceToken($i, ''); + $i--; + } } - } - $phpcsFile->fixer->replaceToken(($stackPtr - 1), ' '); - $phpcsFile->fixer->endChangeset(); - } + $phpcsFile->fixer->replaceToken(($stackPtr - 1), ' '); + $phpcsFile->fixer->endChangeset(); + } + }//end if }//end if }//end if @@ -326,11 +353,13 @@ protected function isOperator(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); + if ($tokens[$stackPtr]['code'] === T_DECLARE) { + return false; + } + // Skip default values in function declarations. // Skip declare statements. - if ($tokens[$stackPtr]['code'] === T_EQUAL - || $tokens[$stackPtr]['code'] === T_MINUS - ) { + if ($tokens[$stackPtr]['code'] === T_EQUAL) { if (isset($tokens[$stackPtr]['nested_parenthesis']) === true) { $parenthesis = array_keys($tokens[$stackPtr]['nested_parenthesis']); $bracket = array_pop($parenthesis); @@ -339,7 +368,6 @@ protected function isOperator(File $phpcsFile, $stackPtr) if ($tokens[$function]['code'] === T_FUNCTION || $tokens[$function]['code'] === T_CLOSURE || $tokens[$function]['code'] === T_FN - || $tokens[$function]['code'] === T_DECLARE ) { return false; } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php index 198460dfc..ec8218fef 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php @@ -4,7 +4,9 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -26,7 +28,7 @@ class PropertyLabelSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php index f68613932..852759e58 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -20,7 +20,7 @@ class ScopeClosingBraceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -65,11 +65,20 @@ public function process(File $phpcsFile, $stackPtr) // Check that the closing brace is on it's own line. $lastContent = $phpcsFile->findPrevious([T_INLINE_HTML, T_WHITESPACE, T_OPEN_TAG], ($scopeEnd - 1), $scopeStart, true); - if ($tokens[$lastContent]['line'] === $tokens[$scopeEnd]['line']) { + for ($lineStart = $scopeEnd; $tokens[$lineStart]['column'] > 1; $lineStart--); + + if ($tokens[$lastContent]['line'] === $tokens[$scopeEnd]['line'] + || ($tokens[$lineStart]['code'] === T_INLINE_HTML + && trim($tokens[$lineStart]['content']) !== '') + ) { $error = 'Closing brace must be on a line by itself'; $fix = $phpcsFile->addFixableError($error, $scopeEnd, 'ContentBefore'); if ($fix === true) { - $phpcsFile->fixer->addNewlineBefore($scopeEnd); + if ($tokens[$lastContent]['line'] === $tokens[$scopeEnd]['line']) { + $phpcsFile->fixer->addNewlineBefore($scopeEnd); + } else { + $phpcsFile->fixer->addNewlineBefore(($lineStart + 1)); + } } return; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php index ad995dc45..65cc13f91 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -20,12 +20,13 @@ class ScopeKeywordSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { $register = Tokens::$scopeModifiers; $register[] = T_STATIC; + $register[] = T_READONLY; return $register; }//end register() @@ -126,6 +127,9 @@ public function process(File $phpcsFile, $stackPtr) if ($tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) { $spacing = 0; + } else if (isset($tokens[($stackPtr + 2)]) === false) { + // Parse error/live coding. Bow out. + return; } else { if ($tokens[($stackPtr + 2)]['line'] !== $tokens[$stackPtr]['line']) { $spacing = 'newline'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php index bdcf9a5dd..dbf719d20 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -30,7 +30,7 @@ class SemicolonSpacingSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -59,7 +59,7 @@ public function process(File $phpcsFile, $stackPtr) $nonSpace = $phpcsFile->findPrevious(Tokens::$emptyTokens, ($stackPtr - 2), null, true); - // Detect whether this is a semi-colon for a condition in a `for()` control structure. + // Detect whether this is a semicolon for a condition in a `for()` control structure. $forCondition = false; if (isset($tokens[$stackPtr]['nested_parenthesis']) === true) { $nestedParens = $tokens[$stackPtr]['nested_parenthesis']; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php index 831e83276..f13baba9f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php @@ -8,7 +8,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace; @@ -43,12 +43,13 @@ class SuperfluousWhitespaceSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { return [ T_OPEN_TAG, + T_OPEN_TAG_WITH_ECHO, T_CLOSE_TAG, T_WHITESPACE, T_COMMENT, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayBracketSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayBracketSpacingUnitTest.php index 304a0d424..0e687b800 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayBracketSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayBracketSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Arrays; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ArrayBracketSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ArrayBracketSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Arrays\ArrayBracketSpacingSniff + */ +final class ArrayBracketSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc index 750aaebcc..cdbfff6c3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc @@ -475,7 +475,75 @@ yield array( static fn () : string => '', ); +$foo = array( + 'foo' => match ($anything) { + 'foo' => 'bar', + default => null, + }, + ); + // Intentional syntax error. $a = array( 'a' => ); + +// Safeguard correct errors for key/no key when PHP 7.4+ array unpacking is encountered. +$x = array( + ...$a, + 'foo' => 'bar', + ); + +$x = array( + 'foo' => 'bar', + ...$a, + ); + +$x = array( + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + ); + +$x = array( + ...$a, + 'foo' => 'bar', // OK. + 'bar', // NoKeySpecified Error (based on second entry). + ); + +$x = array( + ...$a, + 'bar', // OK. + 'foo' => 'bar', // KeySpecified Error (based on second entry). + ); + +$x = array( + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + 'bar', // NoKeySpecified Error (based on first entry). + ); + +$x = array( + 'bar', + ...$a, + 'bar', + 'baz' => 'bar', // KeySpecified (based on first entry). + ); + + $x = + array( + 'a', + 'b', + ); + +$x = array( + 1, static fn (float $item): float => match ($item) { + 2.0 => 3.0, + default => $item + }, + ); + +$x = array( + 1, static::helloWorld(), $class instanceof static, + 2, + ); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed index 3ecc091da..6f8fe216a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.1.inc.fixed @@ -511,7 +511,78 @@ yield array( static fn () : string => '', ); +$foo = array( + 'foo' => match ($anything) { + 'foo' => 'bar', + default => null, + }, + ); + // Intentional syntax error. $a = array( 'a' => ); + +// Safeguard correct errors for key/no key when PHP 7.4+ array unpacking is encountered. +$x = array( + ...$a, + 'foo' => 'bar', + ); + +$x = array( + 'foo' => 'bar', + ...$a, + ); + +$x = array( + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + ); + +$x = array( + ...$a, + 'foo' => 'bar', // OK. + 'bar', // NoKeySpecified Error (based on second entry). + ); + +$x = array( + ...$a, + 'bar', // OK. + 'foo' => 'bar', // KeySpecified Error (based on second entry). + ); + +$x = array( + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + 'bar', // NoKeySpecified Error (based on first entry). + ); + +$x = array( + 'bar', + ...$a, + 'bar', + 'baz' => 'bar', // KeySpecified (based on first entry). + ); + + $x = + array( + 'a', + 'b', + ); + +$x = array( + 1, + static fn (float $item): float => match ($item) { + 2.0 => 3.0, + default => $item + }, + ); + +$x = array( + 1, + static::helloWorld(), + $class instanceof static, + 2, + ); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc index 621970fa1..90b026f02 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc @@ -464,7 +464,75 @@ yield [ static fn () : string => '', ]; +$foo = [ + 'foo' => match ($anything) { + 'foo' => 'bar', + default => null, + }, + ]; + // Intentional syntax error. $a = [ 'a' => ]; + +// Safeguard correct errors for key/no key when PHP 7.4+ array unpacking is encountered. +$x = [ + ...$a, + 'foo' => 'bar', + ]; + +$x = [ + 'foo' => 'bar', + ...$a, + ]; + +$x = [ + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + ]; + +$x = [ + ...$a, + 'foo' => 'bar', // OK. + 'bar', // NoKeySpecified Error (based on second entry). + ]; + +$x = [ + ...$a, + 'bar', // OK. + 'foo' => 'bar', // KeySpecified Error (based on second entry). + ]; + +$x = [ + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + 'bar', // NoKeySpecified Error (based on first entry). + ]; + +$x = [ + 'bar', + ...$a, + 'bar', + 'baz' => 'bar', // KeySpecified (based on first entry). + ]; + + $x = + [ + 'a', + 'b', + ]; + +$x = [ + 1, static fn (float $item): float => match ($item) { + 2.0 => 3.0, + default => $item + }, + ]; + +$x = [ + 1, static::helloWorld(), $class instanceof static, + 2, + ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed index efe4c450e..533be16a6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.2.inc.fixed @@ -498,7 +498,78 @@ yield [ static fn () : string => '', ]; +$foo = [ + 'foo' => match ($anything) { + 'foo' => 'bar', + default => null, + }, + ]; + // Intentional syntax error. $a = [ 'a' => ]; + +// Safeguard correct errors for key/no key when PHP 7.4+ array unpacking is encountered. +$x = [ + ...$a, + 'foo' => 'bar', + ]; + +$x = [ + 'foo' => 'bar', + ...$a, + ]; + +$x = [ + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + ]; + +$x = [ + ...$a, + 'foo' => 'bar', // OK. + 'bar', // NoKeySpecified Error (based on second entry). + ]; + +$x = [ + ...$a, + 'bar', // OK. + 'foo' => 'bar', // KeySpecified Error (based on second entry). + ]; + +$x = [ + 'foo' => 'bar', + ...$a, + 'baz' => 'bar', + 'bar', // NoKeySpecified Error (based on first entry). + ]; + +$x = [ + 'bar', + ...$a, + 'bar', + 'baz' => 'bar', // KeySpecified (based on first entry). + ]; + + $x = + [ + 'a', + 'b', + ]; + +$x = [ + 1, + static fn (float $item): float => match ($item) { + 2.0 => 3.0, + default => $item + }, + ]; + +$x = [ + 1, + static::helloWorld(), + $class instanceof static, + 2, + ]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php index 15ce0746e..b34044b2d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Arrays; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ArrayDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ArrayDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Arrays\ArrayDeclarationSniff + */ +final class ArrayDeclarationUnitTest extends AbstractSniffUnitTest { @@ -124,6 +129,13 @@ public function getErrorList($testFile='') 467 => 1, 471 => 1, 472 => 1, + 510 => 1, + 516 => 1, + 523 => 1, + 530 => 1, + 537 => 1, + 540 => 1, + 547 => 2, ]; case 'ArrayDeclarationUnitTest.2.inc': return [ @@ -210,6 +222,13 @@ public function getErrorList($testFile='') 456 => 1, 460 => 1, 461 => 1, + 499 => 1, + 505 => 1, + 512 => 1, + 519 => 1, + 526 => 1, + 529 => 1, + 536 => 2, ]; default: return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionClosingBraceSpaceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionClosingBraceSpaceUnitTest.php index 528fcfd6f..c9770cc16 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionClosingBraceSpaceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionClosingBraceSpaceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDefinitionClosingBraceSpaceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDefinitionClosingBraceSpace sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ClassDefinitionClosingBraceSpaceSniff + */ +final class ClassDefinitionClosingBraceSpaceUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionNameSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionNameSpacingUnitTest.php index 41202bc8d..5320047c0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionNameSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionNameSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDefinitionNameSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDefinitionNameSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ClassDefinitionNameSpacingSniff + */ +final class ClassDefinitionNameSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionOpeningBraceSpaceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionOpeningBraceSpaceUnitTest.php index d1e44219c..3d5f37bb6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionOpeningBraceSpaceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ClassDefinitionOpeningBraceSpaceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDefinitionOpeningBraceSpaceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDefinitionOpeningBraceSpace sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ClassDefinitionOpeningBraceSpaceSniff + */ +final class ClassDefinitionOpeningBraceSpaceUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColonSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColonSpacingUnitTest.php index 9b8aa1030..222bbe4e1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColonSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColonSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ColonSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ColonSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ColonSpacingSniff + */ +final class ColonSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColourDefinitionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColourDefinitionUnitTest.php index d535fdc2e..44a2d64f7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColourDefinitionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ColourDefinitionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ColourDefinitionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ColourDefinition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ColourDefinitionSniff + */ +final class ColourDefinitionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DisallowMultipleStyleDefinitionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DisallowMultipleStyleDefinitionsUnitTest.php index 8e3b48738..18abf1a5c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DisallowMultipleStyleDefinitionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DisallowMultipleStyleDefinitionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowMultipleStyleDefinitionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowMultipleStyleDefinitions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\DisallowMultipleStyleDefinitionsSniff + */ +final class DisallowMultipleStyleDefinitionsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateClassDefinitionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateClassDefinitionUnitTest.php index 2a95971b0..70bc5b105 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateClassDefinitionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateClassDefinitionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DuplicateClassDefinitionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DuplicateClassDefinition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\DuplicateClassDefinitionSniff + */ +final class DuplicateClassDefinitionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateStyleDefinitionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateStyleDefinitionUnitTest.php index c555461b1..f7e9e95f0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateStyleDefinitionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/DuplicateStyleDefinitionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DuplicateStyleDefinitionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DuplicateStyleDefinition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\DuplicateStyleDefinitionSniff + */ +final class DuplicateStyleDefinitionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyClassDefinitionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyClassDefinitionUnitTest.php index b3fd318c9..b75873002 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyClassDefinitionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyClassDefinitionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EmptyClassDefinitionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EmptyClassDefinition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\EmptyClassDefinitionSniff + */ +final class EmptyClassDefinitionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyStyleDefinitionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyStyleDefinitionUnitTest.php index f5bc858d0..55ec5331e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyStyleDefinitionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/EmptyStyleDefinitionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EmptyStyleDefinitionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EmptyStyleDefinition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\EmptyStyleDefinitionSniff + */ +final class EmptyStyleDefinitionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ForbiddenStylesUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ForbiddenStylesUnitTest.php index 28aa8ec30..f5cdae436 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ForbiddenStylesUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ForbiddenStylesUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ForbiddenStylesUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ForbiddenStyles sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ForbiddenStylesSniff + */ +final class ForbiddenStylesUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/IndentationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/IndentationUnitTest.php index 9413b4ffb..fe79ffb3e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/IndentationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/IndentationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class IndentationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Indentation sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\IndentationSniff + */ +final class IndentationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/LowercaseStyleDefinitionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/LowercaseStyleDefinitionUnitTest.php index 1a25aaac8..c47455a14 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/LowercaseStyleDefinitionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/LowercaseStyleDefinitionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowercaseStyleDefinitionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowercaseStyleDefinition sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\LowercaseStyleDefinitionSniff + */ +final class LowercaseStyleDefinitionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/MissingColonUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/MissingColonUnitTest.php index dc0809e26..29e39848b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/MissingColonUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/MissingColonUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MissingColonUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MissingColon sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\MissingColonSniff + */ +final class MissingColonUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/NamedColoursUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/NamedColoursUnitTest.php index a8032fad3..90744d358 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/NamedColoursUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/NamedColoursUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NamedColoursUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NamedColours sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\NamedColoursSniff + */ +final class NamedColoursUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/OpacityUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/OpacityUnitTest.php index 9fe839da5..d323477b2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/OpacityUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/OpacityUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OpacityUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Opacity sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\OpacitySniff + */ +final class OpacityUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/SemicolonSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/SemicolonSpacingUnitTest.php index 897df65ec..ab2c839be 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/SemicolonSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/SemicolonSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SemicolonSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SemicolonSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\SemicolonSpacingSniff + */ +final class SemicolonSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ShorthandSizeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ShorthandSizeUnitTest.php index 3d0baaade..91ba7fb09 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ShorthandSizeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/CSS/ShorthandSizeUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\CSS; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ShorthandSizeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ShorthandSize sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS\ShorthandSizeSniff + */ +final class ShorthandSizeUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc index 43ef6c9cd..2af42d372 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc @@ -119,3 +119,12 @@ class IncorrectCodeBeforeClosingBrace { echo phpinfo();} + +readonly +class Test +{ +} + +readonly class Test +{ +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc.fixed index 9083633fa..5d01b68e0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc.fixed @@ -130,3 +130,11 @@ class IncorrectCodeBeforeClosingBrace echo phpinfo(); } + +readonly class Test +{ +} + +readonly class Test +{ +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.php index 914e6c87e..635fd5d10 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ClassDeclarationSniff + */ +final class ClassDeclarationUnitTest extends AbstractSniffUnitTest { @@ -61,6 +66,8 @@ public function getErrorList() 116 => 1, 118 => 1, 121 => 1, + 124 => 2, + 128 => 2, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.inc index a346a00f2..8b5a5aa70 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.inc @@ -5,7 +5,8 @@ class ClassFileNameUnitTest {} interface ClassFileNameUnitTest {} trait ClassFileNameUnitTest {} - +enum ClassFileNameUnitTest {} +enum ClassFileNameUnitTest: int {} // Invalid filename matching class name (case sensitive). class classFileNameUnitTest {} @@ -17,6 +18,9 @@ interface CLASSFILENAMEUNITTEST {} trait classFileNameUnitTest {} trait classfilenameunittest {} trait CLASSFILENAMEUNITTEST {} +enum classFileNameUnitTest {} +enum classfilenameunittest {} +enum CLASSFILENAMEUNITTEST {} // Invalid non-filename matching class names. @@ -32,6 +36,10 @@ trait CompletelyWrongClassName {} trait ClassFileNameUnitTestExtra {} trait ClassFileNameUnitTestInc {} trait ExtraClassFileNameUnitTest {} +enum CompletelyWrongClassName {} +enum ClassFileNameUnitTestExtra {} +enum ClassFileNameUnitTestInc {} +enum ExtraClassFileNameUnitTest {} -?> \ No newline at end of file +?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.php index b229a2fc3..7a01e9c09 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassFileNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassFileName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ClassFileNameSniff + */ +final class ClassFileNameUnitTest extends AbstractSniffUnitTest { @@ -26,7 +31,6 @@ class ClassFileNameUnitTest extends AbstractSniffUnitTest public function getErrorList() { return [ - 11 => 1, 12 => 1, 13 => 1, 14 => 1, @@ -35,10 +39,10 @@ public function getErrorList() 17 => 1, 18 => 1, 19 => 1, + 20 => 1, + 21 => 1, + 22 => 1, 23 => 1, - 24 => 1, - 25 => 1, - 26 => 1, 27 => 1, 28 => 1, 29 => 1, @@ -47,6 +51,14 @@ public function getErrorList() 32 => 1, 33 => 1, 34 => 1, + 35 => 1, + 36 => 1, + 37 => 1, + 38 => 1, + 39 => 1, + 40 => 1, + 41 => 1, + 42 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/DuplicatePropertyUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/DuplicatePropertyUnitTest.php index 1b71eb2c6..567a89cc2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/DuplicatePropertyUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/DuplicatePropertyUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DuplicatePropertyUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DuplicateProperty sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\DuplicatePropertySniff + */ +final class DuplicatePropertyUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc index 511bbe471..da47fa179 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc @@ -3,11 +3,14 @@ Abstract Class MyClass Extends MyClass {} Final Class MyClass Implements MyInterface {} Interface MyInterface {} Trait MyTrait {} +Enum MyEnum IMPLEMENTS Colorful {} -class MyClass +ReadOnly class MyClass { Var $myVar = null; Const myConst = true; } $a = new CLASS() {}; + +$anon = new ReadOnly class() {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc.fixed index 859d0d2db..0c18bc86b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc.fixed @@ -3,11 +3,14 @@ abstract class MyClass extends MyClass {} final class MyClass implements MyInterface {} interface MyInterface {} trait MyTrait {} +enum MyEnum implements Colorful {} -class MyClass +readonly class MyClass { var $myVar = null; const myConst = true; } $a = new class() {}; + +$anon = new readonly class() {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.php index f2fc20b43..7fc45e786 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowercaseClassKeywordsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowercaseClassKeywords sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\LowercaseClassKeywordsSniff + */ +final class LowercaseClassKeywordsUnitTest extends AbstractSniffUnitTest { @@ -30,9 +35,12 @@ public function getErrorList() 3 => 3, 4 => 1, 5 => 1, - 9 => 1, + 6 => 2, + 8 => 1, 10 => 1, - 13 => 1, + 11 => 1, + 14 => 1, + 16 => 1, ]; return $errors; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.php index ea493d3cb..72760a5e9 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SelfMemberReferenceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SelfMemberReference sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\SelfMemberReferenceSniff + */ +final class SelfMemberReferenceUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.inc index aadbab5b8..3fe39435b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.inc @@ -137,6 +137,50 @@ trait Base } } +// Valid enum name. +enum ValidCamelCaseClass: string {} + + +// Incorrect usage of camel case. +enum invalidCamelCaseClass {} +enum Invalid_Camel_Case_Class_With_Underscores {} + + +// All lowercase. +enum invalidlowercaseclass: INT {} +enum invalid_lowercase_class_with_underscores {} + + +// All uppercase. +enum VALIDUPPERCASECLASS: int {} +enum INVALID_UPPERCASE_CLASS_WITH_UNDERSCORES {} + + +// Mix camel case with uppercase. +enum ValidCamelCaseClassWithUPPERCASE : string {} + + +// Usage of numeric characters. +enum ValidCamelCaseClassWith1Number {} +enum ValidCamelCaseClassWith12345Numbers : string {} +enum ValidCamelCaseClassEndingWithNumber5 {} + +enum Testing{} + +enum Base +{ + public function __construct() + { + $this->anonymous = new class extends ArrayObject + { + public function __construct() + { + parent::__construct(['a' => 1, 'b' => 2]); + } + }; + } +} + if ( class_exists( Test :: class ) ) {} if ( class_exists( Test2 ::class ) ) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.php index 70777c541..8e505a418 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Classes; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidClassNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidClassName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ValidClassNameSniff + */ +final class ValidClassNameUnitTest extends AbstractSniffUnitTest { @@ -47,6 +52,11 @@ public function getErrorList() 108 => 1, 118 => 1, 120 => 1, + 145 => 1, + 146 => 1, + 150 => 1, + 151 => 1, + 156 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/BlockCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/BlockCommentUnitTest.inc index 877bca648..7cd04a211 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/BlockCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/BlockCommentUnitTest.inc @@ -256,3 +256,54 @@ $y = 10 + /* test */ -2; /* * No blank line allowed above the comment if it's the first non-empty token after a PHP open tag. */ + +?> + + + + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class BlockCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the BlockComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\BlockCommentSniff + */ +final class BlockCommentUnitTest extends AbstractSniffUnitTest { @@ -77,6 +82,8 @@ public function getErrorList() 232 => 1, 233 => 1, 256 => 1, + 271 => 1, + 273 => 1, ]; return $errors; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.inc index 28aff226b..8de3d0a70 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.inc @@ -131,3 +131,15 @@ class Space_At_end class AllGood { } + +/** + * Docblock + */ +abstract readonly class AbstractReadonlyWithDocblock {} + +/* + * Docblock + */ +readonly class ReadonlyWrongStyle {} + +readonly final class ReadonlyFinalWithoutDocblock {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.php index 80a404be0..05f9e8a0f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClassCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClassComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\ClassCommentSniff + */ +final class ClassCommentUnitTest extends AbstractSniffUnitTest { @@ -26,10 +31,12 @@ class ClassCommentUnitTest extends AbstractSniffUnitTest public function getErrorList() { return [ - 2 => 1, - 15 => 1, - 31 => 1, - 54 => 1, + 2 => 1, + 15 => 1, + 31 => 1, + 54 => 1, + 143 => 1, + 145 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.1.inc new file mode 100644 index 000000000..560370bfb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.1.inc @@ -0,0 +1,124 @@ + $a; + +trait TestTrait { +}//end trait + +trait TestTrait { +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.1.inc.fixed new file mode 100644 index 000000000..8c6901452 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.1.inc.fixed @@ -0,0 +1,117 @@ + $a; + +trait TestTrait { +}//end trait + +trait TestTrait { +}//end trait diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.2.inc new file mode 100644 index 000000000..25913dd8f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.2.inc @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.php index cdc89ba67..fcbb02642 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClosingDeclarationCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClosingDeclarationComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\ClosingDeclarationCommentSniff + */ +final class ClosingDeclarationCommentUnitTest extends AbstractSniffUnitTest { @@ -21,20 +26,42 @@ class ClosingDeclarationCommentUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the test file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 13 => 1, - 17 => 1, - 31 => 1, - 41 => 1, - 59 => 1, - 63 => 1, - 67 => 1, - 79 => 1, - ]; + switch ($testFile) { + case 'ClosingDeclarationCommentUnitTest.1.inc': + return [ + 13 => 1, + 17 => 1, + 31 => 1, + 41 => 1, + 59 => 1, + 63 => 1, + 67 => 1, + 79 => 1, + 83 => 1, + 89 => 1, + 92 => 1, + 98 => 1, + 101 => 1, + 106 => 1, + 110 => 1, + 124 => 1, + ]; + + case 'ClosingDeclarationCommentUnitTest.4.inc': + return [8 => 1]; + + case 'ClosingDeclarationCommentUnitTest.5.inc': + return [11 => 1]; + + default: + return []; + }//end switch }//end getErrorList() @@ -45,11 +72,23 @@ public function getErrorList() * The key of the array should represent the line number and the value * should represent the number of warnings that should occur on that line. * + * @param string $testFile The name of the test file being tested. + * * @return array */ - public function getWarningList() + public function getWarningList($testFile='') { - return [71 => 1]; + switch ($testFile) { + case 'ClosingDeclarationCommentUnitTest.1.inc': + return [71 => 1]; + + case 'ClosingDeclarationCommentUnitTest.2.inc': + case 'ClosingDeclarationCommentUnitTest.3.inc': + return [7 => 1]; + + default: + return []; + } }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc index e7d880d68..d95acd2ce 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc @@ -31,7 +31,7 @@ class MyClass * Some info about the class here * */ -class MyClass +readonly class MyClass { /** * Some info about the function here. @@ -77,6 +77,26 @@ class MyClass2 var $x; } +abstract class MyClass +{ + /** +* Property comment + */ + readonly public string $prop; +} + +/** + * Some info about the enum here + * +*/ +enum Suits: string +{ + /** + * Some info about the case here. + */ + case HEARTS; +} + /** ************************************************************************ * Example with no errors. **************************************************************************/ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed index 4d8cb3927..ea6488a02 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed @@ -31,7 +31,7 @@ class MyClass * Some info about the class here * */ -class MyClass +readonly class MyClass { /** * Some info about the function here. @@ -77,6 +77,26 @@ class MyClass2 var $x; } +abstract class MyClass +{ + /** + * Property comment + */ + readonly public string $prop; +} + +/** + * Some info about the enum here + * + */ +enum Suits: string +{ + /** + * Some info about the case here. + */ + case HEARTS; +} + /** ************************************************************************ * Example with no errors. **************************************************************************/ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php index 974951ce4..a1ab9c327 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DocCommentAlignmentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DocCommentAlignment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\DocCommentAlignmentSniff + */ +final class DocCommentAlignmentUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class DocCommentAlignmentUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='DocCommentAlignmentUnitTest.inc') + public function getErrorList($testFile='') { $errors = [ 3 => 1, @@ -45,6 +50,12 @@ public function getErrorList($testFile='DocCommentAlignmentUnitTest.inc') if ($testFile === 'DocCommentAlignmentUnitTest.inc') { $errors[75] = 1; + $errors[83] = 1; + $errors[84] = 1; + $errors[90] = 1; + $errors[91] = 1; + $errors[95] = 1; + $errors[96] = 1; } return $errors; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/EmptyCatchCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/EmptyCatchCommentUnitTest.php index 3c1668e44..06c308e01 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/EmptyCatchCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/EmptyCatchCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EmptyCatchCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EmptyCatchComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\EmptyCatchCommentSniff + */ +final class EmptyCatchCommentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.inc.fixed index 5cc476420..f584c5527 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.inc.fixed @@ -25,7 +25,7 @@ * @author * @copyright 1997 Squiz Pty Ltd (ABN 77 084 670 600) * @copyright 1994-1997 Squiz Pty Ltd (ABN 77 084 670 600) -* @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) +* @copyright 2024 Squiz Pty Ltd (ABN 77 084 670 600) * @license http://www.php.net/license/3_0.txt * @summary An unknown summary tag * diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.js.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.js.fixed index b2b071f48..c7f54ffdf 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.js.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.1.js.fixed @@ -25,7 +25,7 @@ * @author * @copyright 1997 Squiz Pty Ltd (ABN 77 084 670 600) * @copyright 1994-1997 Squiz Pty Ltd (ABN 77 084 670 600) -* @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) +* @copyright 2024 Squiz Pty Ltd (ABN 77 084 670 600) * @license http://www.php.net/license/3_0.txt * @summary An unknown summary tag * diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.10.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.10.inc new file mode 100644 index 000000000..1f82abfea --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.10.inc @@ -0,0 +1,12 @@ + + * @copyright 2010-2014 Squiz Pty Ltd (ABN 77 084 670 600) + */ + +readonly class Foo { +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.8.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.8.inc new file mode 100644 index 000000000..5ef90f2ad --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.8.inc @@ -0,0 +1,9 @@ + + * @copyright 2010-2014 Squiz Pty Ltd (ABN 77 084 670 600) + */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.9.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.9.inc new file mode 100644 index 000000000..f6c9d9968 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.9.inc @@ -0,0 +1,12 @@ + + * @copyright 2010-2014 Squiz Pty Ltd (ABN 77 084 670 600) + */ + +enum Foo { +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.php index 080df3aaf..d5816bff4 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FileCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FileComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\FileCommentSniff + */ +final class FileCommentUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class FileCommentUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FileCommentUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'FileCommentUnitTest.1.inc': @@ -45,6 +50,8 @@ public function getErrorList($testFile='FileCommentUnitTest.inc') case 'FileCommentUnitTest.4.inc': case 'FileCommentUnitTest.6.inc': case 'FileCommentUnitTest.7.inc': + case 'FileCommentUnitTest.9.inc': + case 'FileCommentUnitTest.10.inc': return [1 => 1]; case 'FileCommentUnitTest.5.inc': diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentThrowTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentThrowTagUnitTest.php index 1e2d07faf..178b85a26 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentThrowTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentThrowTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCommentThrowTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionCommentThrowTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\FunctionCommentThrowTagSniff + */ +final class FunctionCommentThrowTagUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc index deaa966ea..4fcbb6dbe 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc @@ -1041,3 +1041,120 @@ public function ignored() { } // phpcs:set Squiz.Commenting.FunctionComment specialMethods[] __construct,__destruct + +/** + * @return void + * @throws Exception If any other error occurs. */ +function throwCommentOneLine() {} + +/** + * When two adjacent pipe symbols are used (by mistake), the sniff should not throw a PHP Fatal error + * + * @param stdClass||null $object While invalid, this should not throw a PHP Fatal error. + * @return void + */ +function doublePipeFatalError(?stdClass $object) {} + +/** + * Test for passing variables by reference + * + * This sniff treats the '&' as optional for parameters passed by reference, but + * forbidden for parameters which are not passed by reference. + * + * Because mismatches may be in either direction, we cannot auto-fix these. + * + * @param string $foo A string passed in by reference. + * @param string &$bar A string passed in by reference. + * @param string $baz A string NOT passed in by reference. + * @param string &$qux A string NOT passed in by reference. + * @param string &$case1 A string passed in by reference with a case mismatch. + * @param string &$CASE2 A string NOT passed in by reference, also with a case mismatch. + * + * @return void + */ +public function variablesPassedByReference(&$foo, &$bar, $baz, $qux, &$CASE1, $case2) +{ + return; +} + +/** + * Test for param tag containing ref, but param in declaration not being by ref. + * + * @param string &$foo This should be flagged as (only) ParamNameUnexpectedAmpersandPrefix. + * @param string &$bar This should be flagged as (only) ParamNameNoMatch. + * @param string &$baz This should be flagged as (only) ParamNameNoCaseMatch. + * + * @return void + */ +function passedByRefMismatch($foo, $bra, $BAZ) { + return; +} + +/** + * Test variable case + * + * @param string $foo This parameter is lowercase. + * @param string $BAR This parameter is UPPERCASE. + * @param string $BazQux This parameter is TitleCase. + * @param string $corgeGrault This parameter is camelCase. + * @param string $GARPLY This parameter should be in lowercase. + * @param string $waldo This parameter should be in TitleCase. + * @param string $freD This parameter should be in UPPERCASE. + * @param string $PLUGH This parameter should be in TitleCase. + * + * @return void + */ +public function variableCaseTest( + $foo, + $BAR, + $BazQux, + $corgeGrault, + $garply, + $Waldo, + $FRED, + $PluGh +) { + return; +} + +/** + * Test variable order mismatch + * + * @param string $foo This is the third parameter. + * @param string $bar This is the first parameter. + * @param string $baz This is the second parameter. + * + * @return void + */ +public function variableOrderMismatch($bar, $baz, $foo) { + return; +} + +/** + * @return never + */ +function foo() {} + +/** + * @param $noTypeNoComment + * @return void + */ +function paramVariation1($noTypeNoComment): void {} + +/** + * @param $noTypeWithComment This parameter has no type specified. + * @return void + */ +function paramVariation2($noTypeWithComment): void {} + +/** + * @param integer $hasTypeNoComment + * @return void + */ +function paramVariation3($hasTypeNoComment): void {} + +/** + * @param integer $hasTypehasComment This parameter has type. + * @return void + */ +function paramVariation4($hasTypehasComment): void {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc.fixed index b46df26b5..817630b5b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc.fixed @@ -1041,3 +1041,120 @@ public function ignored() { } // phpcs:set Squiz.Commenting.FunctionComment specialMethods[] __construct,__destruct + +/** + * @return void + * @throws Exception If any other error occurs. */ +function throwCommentOneLine() {} + +/** + * When two adjacent pipe symbols are used (by mistake), the sniff should not throw a PHP Fatal error + * + * @param stdClass|null $object While invalid, this should not throw a PHP Fatal error. + * @return void + */ +function doublePipeFatalError(?stdClass $object) {} + +/** + * Test for passing variables by reference + * + * This sniff treats the '&' as optional for parameters passed by reference, but + * forbidden for parameters which are not passed by reference. + * + * Because mismatches may be in either direction, we cannot auto-fix these. + * + * @param string $foo A string passed in by reference. + * @param string &$bar A string passed in by reference. + * @param string $baz A string NOT passed in by reference. + * @param string &$qux A string NOT passed in by reference. + * @param string &$case1 A string passed in by reference with a case mismatch. + * @param string &$CASE2 A string NOT passed in by reference, also with a case mismatch. + * + * @return void + */ +public function variablesPassedByReference(&$foo, &$bar, $baz, $qux, &$CASE1, $case2) +{ + return; +} + +/** + * Test for param tag containing ref, but param in declaration not being by ref. + * + * @param string &$foo This should be flagged as (only) ParamNameUnexpectedAmpersandPrefix. + * @param string &$bar This should be flagged as (only) ParamNameNoMatch. + * @param string &$baz This should be flagged as (only) ParamNameNoCaseMatch. + * + * @return void + */ +function passedByRefMismatch($foo, $bra, $BAZ) { + return; +} + +/** + * Test variable case + * + * @param string $foo This parameter is lowercase. + * @param string $BAR This parameter is UPPERCASE. + * @param string $BazQux This parameter is TitleCase. + * @param string $corgeGrault This parameter is camelCase. + * @param string $GARPLY This parameter should be in lowercase. + * @param string $waldo This parameter should be in TitleCase. + * @param string $freD This parameter should be in UPPERCASE. + * @param string $PLUGH This parameter should be in TitleCase. + * + * @return void + */ +public function variableCaseTest( + $foo, + $BAR, + $BazQux, + $corgeGrault, + $garply, + $Waldo, + $FRED, + $PluGh +) { + return; +} + +/** + * Test variable order mismatch + * + * @param string $foo This is the third parameter. + * @param string $bar This is the first parameter. + * @param string $baz This is the second parameter. + * + * @return void + */ +public function variableOrderMismatch($bar, $baz, $foo) { + return; +} + +/** + * @return never + */ +function foo() {} + +/** + * @param $noTypeNoComment + * @return void + */ +function paramVariation1($noTypeNoComment): void {} + +/** + * @param $noTypeWithComment This parameter has no type specified. + * @return void + */ +function paramVariation2($noTypeWithComment): void {} + +/** + * @param integer $hasTypeNoComment + * @return void + */ +function paramVariation3($hasTypeNoComment): void {} + +/** + * @param integer $hasTypehasComment This parameter has type. + * @return void + */ +function paramVariation4($hasTypehasComment): void {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.php index 632b7c51b..036bdc622 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\FunctionCommentSniff + */ +final class FunctionCommentUnitTest extends AbstractSniffUnitTest { @@ -48,8 +53,7 @@ public function getErrorList() 138 => 4, 139 => 4, 143 => 2, - 152 => 1, - 155 => 2, + 155 => 1, 159 => 1, 166 => 1, 173 => 1, @@ -103,7 +107,6 @@ public function getErrorList() 792 => 1, 794 => 1, 797 => 1, - 801 => 1, 828 => 1, 840 => 1, 852 => 1, @@ -116,6 +119,28 @@ public function getErrorList() 1004 => 2, 1006 => 1, 1029 => 1, + 1053 => 1, + 1058 => 2, + 1069 => 1, + 1070 => 1, + 1071 => 1, + 1080 => 2, + 1083 => 1, + 1084 => 1, + 1085 => 1, + 1093 => 4, + 1100 => 1, + 1101 => 1, + 1102 => 1, + 1103 => 1, + 1123 => 1, + 1124 => 1, + 1125 => 1, + 1138 => 1, + 1139 => 1, + 1144 => 1, + 1145 => 1, + 1151 => 1, ]; // Scalar type hints only work from PHP 7 onwards. @@ -131,12 +156,18 @@ public function getErrorList() $errors[575] = 2; $errors[627] = 1; $errors[1002] = 1; + $errors[1075] = 6; + $errors[1089] = 3; + $errors[1107] = 8; + $errors[1129] = 3; + $errors[1154] = 1; + $errors[1160] = 1; } else { $errors[729] = 4; $errors[740] = 2; $errors[752] = 2; $errors[982] = 1; - } + }//end if // Object type hints only work from PHP 7.2 onwards. if (PHP_VERSION_ID >= 70200) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc index 377db023d..024876842 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc @@ -149,6 +149,43 @@ if ($foo) { // another comment here. $foo++; +/** + * Comment should be ignored, even though there is an attribute between the docblock and the class declaration. + */ + +#[AttributeA] + +final class MyClass +{ + /** + * Comment should be ignored, even though there is an attribute between the docblock and the function declaration + */ + #[AttributeA] + #[AttributeB] + final public function test() {} +} + +/** + * Comment should be ignored. + * + */ +enum MyEnum { + +} + +/** + * Comment should be ignored. + * + */ +readonly class MyClass +{ + /** + * Comment should be ignored. + * + */ + readonly $property = 10; +} + /* * N.B.: The below test line must be the last test in the file. * Testing that a new line after an inline comment when it's the last non-whitespace diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc.fixed index 975143f2c..949a9ff94 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc.fixed @@ -142,6 +142,43 @@ if ($foo) { // another comment here. $foo++; +/** + * Comment should be ignored, even though there is an attribute between the docblock and the class declaration. + */ + +#[AttributeA] + +final class MyClass +{ + /** + * Comment should be ignored, even though there is an attribute between the docblock and the function declaration + */ + #[AttributeA] + #[AttributeB] + final public function test() {} +} + +/** + * Comment should be ignored. + * + */ +enum MyEnum { + +} + +/** + * Comment should be ignored. + * + */ +readonly class MyClass +{ + /** + * Comment should be ignored. + * + */ + readonly $property = 10; +} + /* * N.B.: The below test line must be the last test in the file. * Testing that a new line after an inline comment when it's the last non-whitespace diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.php index e4a5298bf..c559c5ae6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InlineCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InlineComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\InlineCommentSniff + */ +final class InlineCommentUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class InlineCommentUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='InlineCommentUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'InlineCommentUnitTest.inc': diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.php index 5b61612c5..e2a0f7b00 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LongConditionClosingCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LongConditionClosingComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\LongConditionClosingCommentSniff + */ +final class LongConditionClosingCommentUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class LongConditionClosingCommentUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='LongConditionClosingCommentUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'LongConditionClosingCommentUnitTest.inc': @@ -60,7 +65,7 @@ public function getErrorList($testFile='LongConditionClosingCommentUnitTest.inc' 1008 => 1, 1032 => 1, ]; - break; + case 'LongConditionClosingCommentUnitTest.js': return [ 47 => 1, @@ -76,10 +81,9 @@ public function getErrorList($testFile='LongConditionClosingCommentUnitTest.inc' 439 => 1, 444 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.php index a04426f15..b9751f614 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class PostStatementCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the PostStatementComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\PostStatementCommentSniff + */ +final class PostStatementCommentUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class PostStatementCommentUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='PostStatementCommentUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'PostStatementCommentUnitTest.inc': diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc index 65f4389bd..54ef5d2d3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc @@ -363,3 +363,94 @@ class Foo var int $noComment = 1; } + +class HasAttributes +{ + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\Id]#[ORM\Column("integer")] + private $id; + + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\GeneratedValue] + #[ORM\Column(ORM\Column::T_INTEGER)] + protected $height; +} + +class ReadOnlyProps +{ + /** + * Short description of the member variable. + * + * @var array + */ + public readonly array $variableName = array(); + + /** + * Short description of the member variable. + * + * @var + */ + readonly protected ?int $variableName = 10; + + private readonly string $variable; +} + +class UnionTypes +{ + /** + * @var array|boolean + */ + private array|bool $variableName = array(); +} + +class IntersectionTypes +{ + /** + * @var \Iterator|\Countable + */ + private \Iterator&\Countable $variableName; +} + +class StandaloneNullTrueFalseTypes +{ + /** + * @var null + */ + public null $variableName = null; + + /** + * @var true + */ + protected true $variableName = true; + + /** + * @var false + */ + private false $variableName = false; +} + +class MoreMissingButSupportedTypes +{ + /** + * @var parent + */ + public parent $variableName; + + /** + * @var self + */ + protected self $variableName; + + /** + * @var SomeClass + */ + private namespace\SomeClass $variableName; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed index ca0b052e3..a292b6de1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed @@ -363,3 +363,94 @@ class Foo var int $noComment = 1; } + +class HasAttributes +{ + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\Id]#[ORM\Column("integer")] + private $id; + + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\GeneratedValue] + #[ORM\Column(ORM\Column::T_INTEGER)] + protected $height; +} + +class ReadOnlyProps +{ + /** + * Short description of the member variable. + * + * @var array + */ + public readonly array $variableName = array(); + + /** + * Short description of the member variable. + * + * @var + */ + readonly protected ?int $variableName = 10; + + private readonly string $variable; +} + +class UnionTypes +{ + /** + * @var array|boolean + */ + private array|bool $variableName = array(); +} + +class IntersectionTypes +{ + /** + * @var \Iterator|\Countable + */ + private \Iterator&\Countable $variableName; +} + +class StandaloneNullTrueFalseTypes +{ + /** + * @var null + */ + public null $variableName = null; + + /** + * @var true + */ + protected true $variableName = true; + + /** + * @var false + */ + private false $variableName = false; +} + +class MoreMissingButSupportedTypes +{ + /** + * @var parent + */ + public parent $variableName; + + /** + * @var self + */ + protected self $variableName; + + /** + * @var SomeClass + */ + private namespace\SomeClass $variableName; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.php index f3ee3c76d..965e3c031 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Commenting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class VariableCommentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the VariableComment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Commenting\VariableCommentSniff + */ +final class VariableCommentUnitTest extends AbstractSniffUnitTest { @@ -58,6 +63,8 @@ public function getErrorList() 336 => 1, 361 => 1, 364 => 1, + 399 => 1, + 403 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc index 8eaf1b037..6496f7fb3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc @@ -212,7 +212,7 @@ else : echo 'not 1'; endif; -// @codingStandardsChangeSetting Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 0 +// phpcs:set Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 0 if ($a == 5): echo "a equals 5"; @@ -305,6 +305,20 @@ $r = match ($x) { $r = match($x){1 => 1}; +// phpcs:set Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 2 +if ($a == 5): + echo "a equals 5"; + echo "..."; +elseif ($a == 6) : + echo "a equals 6"; + echo "!!!"; +else : + echo "a is neither 5 nor 6"; +endif; + +// Reset property. +// phpcs:set Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 1 + // Intentional parse error. This should be the last test in the file. foreach // Some unrelated comment. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc.fixed index dc5233d91..c8834a3dd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc.fixed @@ -215,7 +215,7 @@ else : echo 'not 1'; endif; -// @codingStandardsChangeSetting Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 0 +// phpcs:set Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 0 if ($a == 5): echo "a equals 5"; @@ -309,6 +309,20 @@ $r = match ($x) { $r = match ($x) { 1 => 1}; +// phpcs:set Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 2 +if ($a == 5) : + echo "a equals 5"; + echo "..."; +elseif ($a == 6) : + echo "a equals 6"; + echo "!!!"; +else : + echo "a is neither 5 nor 6"; +endif; + +// Reset property. +// phpcs:set Squiz.ControlStructures.ControlSignature requiredSpacesBeforeColon 1 + // Intentional parse error. This should be the last test in the file. foreach // Some unrelated comment. diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.php index 92427f0da..f20666d97 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ControlSignatureUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ControlSignature sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ControlSignatureSniff + */ +final class ControlSignatureUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class ControlSignatureUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='ControlSignatureUnitTest.inc') + public function getErrorList($testFile='') { $errors = [ 7 => 1, @@ -77,6 +82,8 @@ public function getErrorList($testFile='ControlSignatureUnitTest.inc') $errors[279] = 1; $errors[283] = 1; $errors[306] = 3; + $errors[309] = 1; + $errors[315] = 1; }//end if return $errors; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ElseIfDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ElseIfDeclarationUnitTest.php index f0d9210f3..469a942eb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ElseIfDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ElseIfDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ElseIfDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ElseIfDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ElseIfDeclarationSniff + */ +final class ElseIfDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForEachLoopDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForEachLoopDeclarationUnitTest.php index 6957ff678..5e70703ed 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForEachLoopDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForEachLoopDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ForEachLoopDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ForEachLoopDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ForEachLoopDeclarationSniff + */ +final class ForEachLoopDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc new file mode 100644 index 000000000..d10bd9800 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc @@ -0,0 +1,126 @@ +i ; }; $i < function() { return $this->max; }; $i++) {} +for ($i = function() { return $this->i; }; $i < function() { return $this->max; } ; $i++) {} + +// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines true +for ( + $i = 0; + $i < 5; + $i++ +) { + // body here +} +// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines false diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc.fixed new file mode 100644 index 000000000..85214c03e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.1.inc.fixed @@ -0,0 +1,92 @@ +i ; }; $i < function() { return $this->max; }; $i++) {} +for ($i = function() { return $this->i; }; $i < function() { return $this->max; }; $i++) {} + +// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines true +for ( + $i = 0; + $i < 5; + $i++ +) { + // body here +} +// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines false diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.2.inc new file mode 100644 index 000000000..a327ccedd --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.2.inc @@ -0,0 +1,6 @@ +i ; }; $i < function() { return $this->max; }; $i++) {} -for ($i = function() { return $this->i; }; $i < function() { return $this->max; } ; $i++) {} - -// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines true -for ( - $i = 0; - $i < 5; - $i++ -) { - // body here -} -// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines false - -// This test has to be the last one in the file! Intentional parse error check. -for diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.inc.fixed deleted file mode 100644 index 6a1e7634b..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.inc.fixed +++ /dev/null @@ -1,95 +0,0 @@ -i ; }; $i < function() { return $this->max; }; $i++) {} -for ($i = function() { return $this->i; }; $i < function() { return $this->max; }; $i++) {} - -// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines true -for ( - $i = 0; - $i < 5; - $i++ -) { - // body here -} -// phpcs:set Squiz.ControlStructures.ForLoopDeclaration ignoreNewlines false - -// This test has to be the last one in the file! Intentional parse error check. -for diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js index cfda6c12f..3023a644f 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js @@ -117,7 +117,7 @@ for ( // phpcs:set Squiz.ControlStructures.ForLoopDeclaration requiredSpacesAfterOpen 0 // phpcs:set Squiz.ControlStructures.ForLoopDeclaration requiredSpacesBeforeClose 0 -// Test with semi-colon not belonging to for. +// Test with semicolon not belonging to for. for (i = function() {self.widgetLoaded(widget.id) ; }; i < function() {self.widgetLoaded(widget.id);}; i++) {} for (i = function() {self.widgetLoaded(widget.id);}; i < function() {self.widgetLoaded(widget.id);} ; i++) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js.fixed index 00ced6437..dcfd03bdc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js.fixed @@ -83,7 +83,7 @@ for ( i = 0; i < 10; i++ ) {} // phpcs:set Squiz.ControlStructures.ForLoopDeclaration requiredSpacesAfterOpen 0 // phpcs:set Squiz.ControlStructures.ForLoopDeclaration requiredSpacesBeforeClose 0 -// Test with semi-colon not belonging to for. +// Test with semicolon not belonging to for. for (i = function() {self.widgetLoaded(widget.id) ; }; i < function() {self.widgetLoaded(widget.id);}; i++) {} for (i = function() {self.widgetLoaded(widget.id);}; i < function() {self.widgetLoaded(widget.id);}; i++) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.php index 51638866e..82c653957 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ForLoopDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ForLoopDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ForLoopDeclarationSniff + */ +final class ForLoopDeclarationUnitTest extends AbstractSniffUnitTest { @@ -25,10 +30,10 @@ class ForLoopDeclarationUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='ForLoopDeclarationUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { - case 'ForLoopDeclarationUnitTest.inc': + case 'ForLoopDeclarationUnitTest.1.inc': return [ 8 => 2, 11 => 2, @@ -113,11 +118,12 @@ public function getErrorList($testFile='ForLoopDeclarationUnitTest.inc') * * @return array */ - public function getWarningList($testFile='ForLoopDeclarationUnitTest.inc') + public function getWarningList($testFile='') { switch ($testFile) { - case 'ForLoopDeclarationUnitTest.inc': - return [129 => 1]; + case 'ForLoopDeclarationUnitTest.2.inc': + case 'ForLoopDeclarationUnitTest.3.inc': + return [6 => 1]; case 'ForLoopDeclarationUnitTest.js': return [125 => 1]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/InlineIfDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/InlineIfDeclarationUnitTest.php index 97212dbaf..dc4738e0a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/InlineIfDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/InlineIfDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InlineIfDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InlineIfDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\InlineIfDeclarationSniff + */ +final class InlineIfDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/LowercaseDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/LowercaseDeclarationUnitTest.php index dc8a3ac6c..1b30f4fbd 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/LowercaseDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/LowercaseDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowercaseDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowercaseDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\LowercaseDeclarationSniff + */ +final class LowercaseDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.php index c94c8333a..a7f0e3afa 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\ControlStructures; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SwitchDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SwitchDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\SwitchDeclarationSniff + */ +final class SwitchDeclarationUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class SwitchDeclarationUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='SwitchDeclarationUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'SwitchDeclarationUnitTest.inc': @@ -138,7 +143,7 @@ public function getErrorList($testFile='SwitchDeclarationUnitTest.inc') * * @return array */ - public function getWarningList($testFile='SwitchDeclarationUnitTest.inc') + public function getWarningList($testFile='') { if ($testFile === 'SwitchDeclarationUnitTest.js') { return [273 => 1]; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JSLintUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JSLintUnitTest.php index 7ccfe1a31..c4b14dc2e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JSLintUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JSLintUnitTest.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Debug; @@ -12,14 +12,19 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class JSLintUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the JSLint sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Debug\JSLintSniff + */ +final class JSLintUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JavaScriptLintUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JavaScriptLintUnitTest.php index 1e83f1f40..96a68d7c8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JavaScriptLintUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Debug/JavaScriptLintUnitTest.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Debug; @@ -12,14 +12,19 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class JavaScriptLintUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the JavaScriptLint sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Debug\JavaScriptLintSniff + */ +final class JavaScriptLintUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.5.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.5.inc new file mode 100644 index 000000000..d777aff6b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.5.inc @@ -0,0 +1,3 @@ + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.php index 7e613b330..065922547 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Files/FileExtensionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FileExtensionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FileExtension sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Files\FileExtensionSniff + */ +final class FileExtensionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc index 2a480bb92..8e6289638 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc @@ -193,3 +193,11 @@ $expr = match (true) { if ($pos === count(value: $this->tokens) - 1) { $file = '...'.substr(string: $file, offset: $padding * -1 + 3); } + +match ($a) { + 'a' => -1, + 'b', 'c', 'd' => -2, + default => -3, +}; + +$cntPages = ceil(count($items) / parent::ON_PAGE); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc.fixed index 669b16b2b..9fa0216cb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc.fixed @@ -193,3 +193,11 @@ $expr = match (true) { if ($pos === (count(value: $this->tokens) - 1)) { $file = '...'.substr(string: $file, offset: ($padding * -1 + 3)); } + +match ($a) { + 'a' => -1, + 'b', 'c', 'd' => -2, + default => -3, +}; + +$cntPages = ceil(count($items) / parent::ON_PAGE); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.php index 4f04a6ebd..0da136242 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Formatting; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OperatorBracketUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OperatorBracket sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Formatting\OperatorBracketSniff + */ +final class OperatorBracketUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class OperatorBracketUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='OperatorBracketUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'OperatorBracketUnitTest.inc': @@ -73,7 +78,7 @@ public function getErrorList($testFile='OperatorBracketUnitTest.inc') 193 => 1, 194 => 2, ]; - break; + case 'OperatorBracketUnitTest.js': return [ 5 => 1, @@ -90,10 +95,9 @@ public function getErrorList($testFile='OperatorBracketUnitTest.inc') 63 => 1, 108 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationArgumentSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationArgumentSpacingUnitTest.php index 65e987dda..62ccfef2e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationArgumentSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationArgumentSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionDeclarationArgumentSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionDeclarationArgumentSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDeclarationArgumentSpacingSniff + */ +final class FunctionDeclarationArgumentSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.php index a939a9051..021ebe71d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDeclarationSniff + */ +final class FunctionDeclarationUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDuplicateArgumentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDuplicateArgumentUnitTest.php index da09cef34..f29f80900 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDuplicateArgumentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/FunctionDuplicateArgumentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionDuplicateArgumentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionDuplicateArgument sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDuplicateArgumentSniff + */ +final class FunctionDuplicateArgumentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/GlobalFunctionUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/GlobalFunctionUnitTest.php index 7be76488e..1a0779156 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/GlobalFunctionUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/GlobalFunctionUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class GlobalFunctionUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the GlobalFunction sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\GlobalFunctionSniff + */ +final class GlobalFunctionUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/LowercaseFunctionKeywordsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/LowercaseFunctionKeywordsUnitTest.php index 1e1537b7d..c91c3008c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/LowercaseFunctionKeywordsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/LowercaseFunctionKeywordsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowercaseFunctionKeywordsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowercaseFunctionKeywords sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\LowercaseFunctionKeywordsSniff + */ +final class LowercaseFunctionKeywordsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc index 3076104a2..811c56ec1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc @@ -197,3 +197,108 @@ function foo( $bar ) { } + +class ConstructorPropertyPromotionSingleLineDocblockIndentOK +{ + public function __construct( + /** @var string */ + public string $public, + /** @var string */ + private string $private, + ) { + } +} + +class ConstructorPropertyPromotionMultiLineDocblockAndAttributeIndentOK +{ + public function __construct( + /** + * @var string + * @Assert\NotBlank() + */ + public string $public, + /** + * @var string + * @Assert\NotBlank() + */ + #[NotBlank] + private string $private, + ) { + } +} + +class ConstructorPropertyPromotionSingleLineDocblockIncorrectIndent +{ + public function __construct( + /** @var string */ + public string $public, + /** @var string */ + private string $private, + ) { + } +} + +class ConstructorPropertyPromotionMultiLineDocblockAndAttributeIncorrectIndent +{ + public function __construct( + /** + * @var string + * @Assert\NotBlank() + */ + public string $public, +/** + * @var string + * @Assert\NotBlank() + */ +#[NotBlank] +private string $private, + ) { + } +} + +// PHP 8.1: new in initializers means that class instantiations with parameters can occur in a function declaration. +function usingNewInInitializersCallParamsIndented( + int $paramA, + string $paramB, + object $paramC = new SomeClass( + new InjectedDependencyA(), + new InjectedDependencyB + ) +) {} + +function usingNewInInitializersCallParamsNotIndented( + int $paramA, + string $paramB, + object $paramC = new SomeClass( + new InjectedDependencyA, + new InjectedDependencyB() + ) +) {} + +function usingNewInInitializersCallParamsIncorrectlyIndentedShouldNotBeFlaggedNorFixed( + int $paramA, + string $paramB, + object $paramC = new SomeClass( +new InjectedDependencyA(), new InjectedDependencyB() +) +) {} + +class UsingNewInInitializers { + public function doSomething( + object $paramA, + stdClass $paramB = new stdClass(), + Exception $paramC = new Exception( + new ExceptionMessage(), + new ExceptionCode(), + ), + ) { + } + + public function callParamsIncorrectlyIndentedShouldNotBeFlaggedNorFixed( + Exception $param = new Exception( +new ExceptionMessage(), + new ExceptionCode(), + ), + ) { + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc.fixed index 4965f237c..c38e3ecc0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc.fixed @@ -209,3 +209,108 @@ function foo( $bar ) { } + +class ConstructorPropertyPromotionSingleLineDocblockIndentOK +{ + public function __construct( + /** @var string */ + public string $public, + /** @var string */ + private string $private, + ) { + } +} + +class ConstructorPropertyPromotionMultiLineDocblockAndAttributeIndentOK +{ + public function __construct( + /** + * @var string + * @Assert\NotBlank() + */ + public string $public, + /** + * @var string + * @Assert\NotBlank() + */ + #[NotBlank] + private string $private, + ) { + } +} + +class ConstructorPropertyPromotionSingleLineDocblockIncorrectIndent +{ + public function __construct( + /** @var string */ + public string $public, + /** @var string */ + private string $private, + ) { + } +} + +class ConstructorPropertyPromotionMultiLineDocblockAndAttributeIncorrectIndent +{ + public function __construct( + /** + * @var string + * @Assert\NotBlank() + */ + public string $public, + /** + * @var string + * @Assert\NotBlank() + */ + #[NotBlank] + private string $private, + ) { + } +} + +// PHP 8.1: new in initializers means that class instantiations with parameters can occur in a function declaration. +function usingNewInInitializersCallParamsIndented( + int $paramA, + string $paramB, + object $paramC = new SomeClass( + new InjectedDependencyA(), + new InjectedDependencyB + ) +) {} + +function usingNewInInitializersCallParamsNotIndented( + int $paramA, + string $paramB, + object $paramC = new SomeClass( + new InjectedDependencyA, + new InjectedDependencyB() + ) +) {} + +function usingNewInInitializersCallParamsIncorrectlyIndentedShouldNotBeFlaggedNorFixed( + int $paramA, + string $paramB, + object $paramC = new SomeClass( +new InjectedDependencyA(), new InjectedDependencyB() +) +) {} + +class UsingNewInInitializers { + public function doSomething( + object $paramA, + stdClass $paramB = new stdClass(), + Exception $paramC = new Exception( + new ExceptionMessage(), + new ExceptionCode(), + ), + ) { + } + + public function callParamsIncorrectlyIndentedShouldNotBeFlaggedNorFixed( + Exception $param = new Exception( +new ExceptionMessage(), + new ExceptionCode(), + ), + ) { + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.php index caf14d1de..30490345d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Functions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MultiLineFunctionDeclarationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MultiLineFunctionDeclaration sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\MultiLineFunctionDeclarationSniff + */ +final class MultiLineFunctionDeclarationUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class MultiLineFunctionDeclarationUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='MultiLineFunctionDeclarationUnitTest.inc') + public function getErrorList($testFile='') { if ($testFile === 'MultiLineFunctionDeclarationUnitTest.inc') { $errors = [ @@ -55,7 +60,21 @@ public function getErrorList($testFile='MultiLineFunctionDeclarationUnitTest.inc 190 => 2, 194 => 1, 195 => 1, - 196 => 1, + 233 => 1, + 234 => 1, + 235 => 1, + 236 => 1, + 244 => 1, + 245 => 1, + 246 => 1, + 247 => 1, + 248 => 1, + 249 => 1, + 250 => 1, + 251 => 1, + 252 => 1, + 253 => 1, + 254 => 1, ]; } else { $errors = [ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php index 77f13bb25..7b9692e7a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidFunctionNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidFunctionName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\NamingConventions\ValidFunctionNameSniff + */ +final class ValidFunctionNameUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.inc index c7b8a2b6b..87c3bdf2e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.inc @@ -146,3 +146,12 @@ echo $obj?->varName; echo $obj?->var_name; echo $obj?->varname; echo $obj?->_varName; + +enum SomeEnum +{ + public function foo($foo, $_foo, $foo_bar) { + $bar = 1; + $_bar = 2; + $bar_foo = 3; + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.php index aaa9d099a..d8d8695c6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidVariableNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidVariableName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\NamingConventions\ValidVariableNameSniff + */ +final class ValidVariableNameUnitTest extends AbstractSniffUnitTest { @@ -61,6 +66,8 @@ public function getErrorList() 138 => 1, 141 => 1, 146 => 1, + 152 => 1, + 155 => 1, ]; return $errors; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/DisallowObjectStringIndexUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/DisallowObjectStringIndexUnitTest.php index cb2d58e54..36880a9a5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/DisallowObjectStringIndexUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/DisallowObjectStringIndexUnitTest.php @@ -4,14 +4,19 @@ * * @author Sertan Danis * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Objects; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowObjectStringIndexUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowObjectStringIndex sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Objects\DisallowObjectStringIndexSniff + */ +final class DisallowObjectStringIndexUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class DisallowObjectStringIndexUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='DisallowObjectStringIndexUnitTest.js') + public function getErrorList($testFile='') { if ($testFile !== 'DisallowObjectStringIndexUnitTest.js') { return []; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.inc index f58af275c..725c60ed6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.inc @@ -23,6 +23,31 @@ function returnMatch() { } } +// Issue 3333. +$time2 ??= new \DateTime(); +$time3 = $time1 ?? new \DateTime(); +$time3 = $time1 ?? $time2 ?? new \DateTime(); + +function_call($time1 ?? new \DateTime()); +$return = function_call($time1 ?? new \DateTime()); // False negative depending on interpretation of the sniff. + +function returnViaTernary() { + return ($y == false ) ? ($x === true ? new Foo : new Bar) : new FooBar; +} + +function nonAssignmentTernary() { + if (($x ? new Foo() : new Bar) instanceof FooBar) { + // Do something. + } +} + +// Test for tokenizer issue #3789. +$a = $b !== null + ? match ($c) { + default => 5, + } + : new Foo; + // Intentional parse error. This must be the last test in the file. function new ?> diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.php index fa32521c8..bfd4bef29 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Objects; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ObjectInstantiationUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ObjectInstantiation sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Objects\ObjectInstantiationSniff + */ +final class ObjectInstantiationUnitTest extends AbstractSniffUnitTest { @@ -26,8 +31,10 @@ class ObjectInstantiationUnitTest extends AbstractSniffUnitTest public function getErrorList() { return [ - 5 => 1, - 8 => 1, + 5 => 1, + 8 => 1, + 31 => 1, + 39 => 2, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectMemberCommaUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectMemberCommaUnitTest.php index ab1cf8108..0ac826f3a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectMemberCommaUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Objects/ObjectMemberCommaUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Objects; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ObjectMemberCommaUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ObjectMemberComma sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Objects\ObjectMemberCommaSniff + */ +final class ObjectMemberCommaUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.php index 5618a7fc0..1189725bc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Operators; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ComparisonOperatorUsageUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ComparisonOperatorUsage sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Operators\ComparisonOperatorUsageSniff + */ +final class ComparisonOperatorUsageUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class ComparisonOperatorUsageUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='ComparisonOperatorUsageUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'ComparisonOperatorUsageUnitTest.inc': @@ -59,7 +64,7 @@ public function getErrorList($testFile='ComparisonOperatorUsageUnitTest.inc') 131 => 1, 135 => 1, ]; - break; + case 'ComparisonOperatorUsageUnitTest.js': return [ 5 => 1, @@ -74,10 +79,9 @@ public function getErrorList($testFile='ComparisonOperatorUsageUnitTest.inc') 67 => 1, 71 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.inc index a4f82d1a8..266695970 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.inc @@ -40,3 +40,17 @@ $expected[($i + 1)]['sort_order'] = ($i + 1); $id = $id.($obj->i++).$id; $id = $obj?->i++.$id; $id = $obj?->i++*10; + +$var+=1; +$var-=1; + +$var=$var+1; +$var=$var-1; + +$var /*comment*/ +=1; +$var + // phpcs:ignore Something + -=1; + +$var += /*comment*/ 1; +$var = ( $var /*comment*/ - 1 /*comment*/); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.php index 3846905da..e27e196b1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Operators; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class IncrementDecrementUsageUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the IncrementDecrementUsage sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Operators\IncrementDecrementUsageSniff + */ +final class IncrementDecrementUsageUnitTest extends AbstractSniffUnitTest { @@ -37,6 +42,14 @@ public function getErrorList() 31 => 1, 41 => 1, 42 => 1, + 44 => 1, + 45 => 1, + 47 => 1, + 48 => 1, + 50 => 1, + 53 => 1, + 55 => 1, + 56 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ValidLogicalOperatorsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ValidLogicalOperatorsUnitTest.php index fc3513198..d7ce889e3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ValidLogicalOperatorsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Operators/ValidLogicalOperatorsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Operators; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidLogicalOperatorsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidLogicalOperators sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Operators\ValidLogicalOperatorsSniff + */ +final class ValidLogicalOperatorsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.php index d51f23ca3..99d8f01ac 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CommentedOutCodeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CommentedOutCode sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\CommentedOutCodeSniff + */ +final class CommentedOutCodeUnitTest extends AbstractSniffUnitTest { @@ -40,7 +45,7 @@ public function getErrorList() * * @return array */ - public function getWarningList($testFile='CommentedOutCodeUnitTest.inc') + public function getWarningList($testFile='') { switch ($testFile) { case 'CommentedOutCodeUnitTest.inc': @@ -49,7 +54,6 @@ public function getWarningList($testFile='CommentedOutCodeUnitTest.inc') 8 => 1, 15 => 1, 19 => 1, - 35 => 1, 87 => 1, 91 => 1, 97 => 1, @@ -59,16 +63,15 @@ public function getWarningList($testFile='CommentedOutCodeUnitTest.inc') 147 => 1, 158 => 1, ]; - break; + case 'CommentedOutCodeUnitTest.css': return [ 7 => 1, 16 => 1, ]; - break; + default: return []; - break; }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.php index 6439b6323..8c3afa4de 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowBooleanStatementUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowBooleanStatement sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\DisallowBooleanStatementSniff + */ +final class DisallowBooleanStatementUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.inc index 022aca739..a07047b19 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.inc @@ -71,3 +71,13 @@ $callback = function ($value) { return false; } }; + +function issue3616() { + $food = 'cake'; + + $returnValue = match (true) { + $food === 'apple' => 'This food is an apple', + $food === 'bar' => 'This food is a bar', + $food === 'cake' => 'This food is a cake', + }; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.php index c8d8b0b87..9c0f7e336 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowComparisonAssignmentUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowComparisonAssignment sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\DisallowComparisonAssignmentSniff + */ +final class DisallowComparisonAssignmentUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.php index 27083ce2c..14f79c87e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowInlineIfUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowObEndFlush sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\DisallowInlineIfSniff + */ +final class DisallowInlineIfUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class DisallowInlineIfUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='DisallowInlineIfUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'DisallowInlineIfUnitTest.inc': @@ -33,13 +38,12 @@ public function getErrorList($testFile='DisallowInlineIfUnitTest.inc') 8 => 1, 18 => 1, ]; - break; + case 'DisallowInlineIfUnitTest.js': return [1 => 1]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.php index 618d76efa..6da39a5bc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowMultipleAssignmentsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowMultipleAssignments sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\DisallowMultipleAssignmentsSniff + */ +final class DisallowMultipleAssignmentsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.php index 21260ad71..3f923ad6b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DisallowSizeFunctionsInLoopsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DisallowSizeFunctionsInLoops sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\DisallowSizeFunctionsInLoopsSniff + */ +final class DisallowSizeFunctionsInLoopsUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class DisallowSizeFunctionsInLoopsUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='DisallowSizeFunctionsInLoopsUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'DisallowSizeFunctionsInLoopsUnitTest.inc': @@ -43,13 +48,12 @@ public function getErrorList($testFile='DisallowSizeFunctionsInLoopsUnitTest.inc 44 => 1, 46 => 1, ]; - break; + case 'DisallowSizeFunctionsInLoopsUnitTest.js': return [1 => 1]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.inc index ca457a2e9..3c875d098 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.inc @@ -2,4 +2,6 @@ error_log('test'); print_r($array); var_dump($array); -?> + +#[Var_Dump(10)] +function debugMe() {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.php index 2b2ff5b4a..7351b2b45 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DiscouragedFunctionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DiscouragedFunctions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\DiscouragedFunctionsSniff + */ +final class DiscouragedFunctionsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.1.inc new file mode 100644 index 000000000..f28c55989 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.1.inc @@ -0,0 +1,271 @@ + + + +<?php echo $title ?> + + + + + hello + + + + + + + + + + + + + + + + + + + + + +section as $section) { + ?> + + + + + + section as $section) { + ?> +
+ + + + + + + + +?> + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + +<?php echo $title; ?> + + + + + hello + + + + + + + + + + + + + + + + + + + +section as $section) { + ?> +
+ + + + + section as $section) { + ?> +
+ + + + + + + + + + + + +?> + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.15.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.15.inc new file mode 100644 index 000000000..d8f051277 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.15.inc @@ -0,0 +1,9 @@ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.16.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.16.inc new file mode 100644 index 000000000..754c241b8 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.16.inc @@ -0,0 +1,8 @@ + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.17.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.17.inc new file mode 100644 index 000000000..71de17bfb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.17.inc @@ -0,0 +1,8 @@ + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.18.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.18.inc new file mode 100644 index 000000000..3d61d4859 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.18.inc @@ -0,0 +1,15 @@ + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.18.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.18.inc.fixed new file mode 100644 index 000000000..8c906d40c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.18.inc.fixed @@ -0,0 +1,13 @@ + + +
+ +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.19.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.19.inc new file mode 100644 index 000000000..34db64d60 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.19.inc @@ -0,0 +1,17 @@ + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.19.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.19.inc.fixed new file mode 100644 index 000000000..b1738db57 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.19.inc.fixed @@ -0,0 +1,15 @@ + + +
+ +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.2.inc new file mode 100644 index 000000000..755fd355b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.2.inc @@ -0,0 +1,7 @@ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.2.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.2.inc.fixed new file mode 100644 index 000000000..e9073da91 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.2.inc.fixed @@ -0,0 +1,7 @@ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.20.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.20.inc new file mode 100644 index 000000000..28cdbdaf7 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.20.inc @@ -0,0 +1,15 @@ + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.20.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.20.inc.fixed new file mode 100644 index 000000000..fcc24a278 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.20.inc.fixed @@ -0,0 +1,16 @@ + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.21.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.21.inc new file mode 100644 index 000000000..1da67a2ea --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.21.inc @@ -0,0 +1,15 @@ + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.21.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.21.inc.fixed new file mode 100644 index 000000000..d7487b507 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.21.inc.fixed @@ -0,0 +1,16 @@ + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.22.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.22.inc new file mode 100644 index 000000000..5196a3b45 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.22.inc @@ -0,0 +1,30 @@ +
Inline HTML with indent to demonstrate the bug in the indent calculation.
+ + + + + + + + +Inline HTML with indent to demonstrate the bug in the indent calculation.
+ + + + + + + + + + + +
+ + +
+

Some more content after the last PHP tag block.

diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.3.inc new file mode 100644 index 000000000..2d608490a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.3.inc @@ -0,0 +1,123 @@ + + + +<?= $title ?> + + + + + hello + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +// Safeguard fixing when there is no whitespace between the close tag and the contents. + + + + + + + + + +<?= $title; ?> + + + + + hello + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// Safeguard fixing when there is no whitespace between the close tag and the contents. + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.4.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.4.inc.fixed new file mode 100644 index 000000000..b7985cc50 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.4.inc.fixed @@ -0,0 +1,7 @@ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.5.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.5.inc new file mode 100644 index 000000000..f4d8d8a0c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.5.inc @@ -0,0 +1,48 @@ + + + + + + + +
+ + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + - - -<?php echo $title ?> - - - - - hello - - - - - - - - - - - - - - - - - - - - - -section as $section) { - ?> -
- - - - - section as $section) { - ?> -
- - - - - - - - -?> - - - - - - - - - - - - - - - diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.inc.fixed deleted file mode 100644 index 5b43d8493..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.inc.fixed +++ /dev/null @@ -1,119 +0,0 @@ - - - -<?php echo $title; ?> - - - - - hello - - - - - - - - - - - - - - - - - - - -section as $section) { - ?> -
- - - - - section as $section) { - ?> -
- - - - - - - - - - - - -?> - - - - - - - - - - - - - - - diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.php index f8cf4cc79..29111c873 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EmbeddedPhpUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EmbeddedPhp sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\EmbeddedPhpSniff + */ +final class EmbeddedPhpUnitTest extends AbstractSniffUnitTest { @@ -21,41 +26,173 @@ class EmbeddedPhpUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 7 => 1, - 12 => 1, - 18 => 1, - 19 => 2, - 20 => 1, - 21 => 1, - 22 => 3, - 24 => 1, - 26 => 1, - 29 => 1, - 30 => 1, - 31 => 1, - 34 => 1, - 36 => 1, - 40 => 1, - 41 => 1, - 44 => 1, - 45 => 1, - 49 => 1, - 59 => 1, - 63 => 1, - 93 => 1, - 94 => 2, - 100 => 1, - 102 => 1, - 112 => 1, - 113 => 1, - 116 => 1, - 117 => 1, - ]; + switch ($testFile) { + case 'EmbeddedPhpUnitTest.1.inc': + return [ + 7 => 1, + 12 => 1, + 18 => 1, + 19 => 2, + 20 => 1, + 21 => 1, + 22 => 3, + 24 => 1, + 26 => 1, + 29 => 1, + 30 => 1, + 31 => 1, + 34 => 1, + 36 => 1, + 40 => 1, + 41 => 1, + 44 => 1, + 45 => 1, + 49 => 1, + 59 => 1, + 63 => 1, + 93 => 1, + 94 => 2, + 100 => 1, + 102 => 1, + 112 => 1, + 113 => 1, + 116 => 1, + 117 => 1, + 120 => 1, + 121 => 1, + 128 => 1, + 129 => 1, + 132 => 1, + 134 => 1, + 136 => 1, + 138 => 1, + 142 => 1, + 145 => 1, + 151 => 1, + 158 => 1, + 165 => 1, + 169 => 1, + 175 => 1, + 176 => 2, + 178 => 1, + 179 => 1, + 180 => 2, + 181 => 1, + 189 => 1, + 212 => 1, + 214 => 2, + 219 => 1, + 223 => 1, + 225 => 1, + 226 => 1, + 227 => 2, + 228 => 1, + 235 => 1, + 241 => 1, + 248 => 1, + 253 => 1, + 258 => 1, + 263 => 1, + 264 => 1, + ]; + + case 'EmbeddedPhpUnitTest.2.inc': + case 'EmbeddedPhpUnitTest.4.inc': + return [ + 5 => 2, + 6 => 2, + 7 => 2, + ]; + + case 'EmbeddedPhpUnitTest.3.inc': + return [ + 10 => 1, + 15 => 1, + 21 => 1, + 22 => 2, + 23 => 1, + 24 => 1, + 25 => 3, + 28 => 1, + 29 => 1, + 30 => 1, + 33 => 1, + 35 => 1, + 39 => 1, + 40 => 1, + 43 => 1, + 44 => 1, + 48 => 1, + 53 => 1, + 55 => 1, + 61 => 1, + 62 => 1, + 65 => 2, + 66 => 2, + 69 => 1, + 70 => 1, + 75 => 1, + 82 => 1, + 89 => 1, + 93 => 1, + 98 => 2, + 99 => 1, + 103 => 2, + 105 => 1, + 111 => 1, + 112 => 2, + 114 => 1, + 115 => 1, + 116 => 2, + 117 => 1, + ]; + + case 'EmbeddedPhpUnitTest.5.inc': + return [ + 16 => 1, + 18 => 1, + 25 => 1, + 26 => 1, + 29 => 1, + 31 => 1, + 33 => 1, + 35 => 1, + 39 => 1, + 42 => 1, + ]; + + case 'EmbeddedPhpUnitTest.12.inc': + case 'EmbeddedPhpUnitTest.13.inc': + return [ + 10 => 1, + 12 => 1, + ]; + + case 'EmbeddedPhpUnitTest.18.inc': + return [11 => 1]; + + case 'EmbeddedPhpUnitTest.19.inc': + return [13 => 1]; + + case 'EmbeddedPhpUnitTest.20.inc': + case 'EmbeddedPhpUnitTest.21.inc': + return [12 => 2]; + + case 'EmbeddedPhpUnitTest.22.inc': + return [ + 14 => 1, + 22 => 2, + ]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EvalUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EvalUnitTest.php index adee78826..db0af7f04 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EvalUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/EvalUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EvalUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Eval sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\EvalSniff + */ +final class EvalUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/GlobalKeywordUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/GlobalKeywordUnitTest.php index 52f6a00a5..c0c79baa6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/GlobalKeywordUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/GlobalKeywordUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class GlobalKeywordUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the GlobalKeyword sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\GlobalKeywordSniff + */ +final class GlobalKeywordUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.1.inc new file mode 100644 index 000000000..d1863c076 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.1.inc @@ -0,0 +1,12 @@ +foo. +Now, I am printing some {$foo->bar[1]}. +This should not print a capital 'A': \x41 +EOT; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.2.inc new file mode 100644 index 000000000..eb0062f08 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.2.inc @@ -0,0 +1,17 @@ + 'a' +<<<<<<< HEAD + 'b' => 'b' +======= + 'c' => 'c' +>>>>>>> master + ); + } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.inc deleted file mode 100644 index 56f4393ae..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.inc +++ /dev/null @@ -1,27 +0,0 @@ -foo. -Now, I am printing some {$foo->bar[1]}. -This should not print a capital 'A': \x41 -EOT; - -// The following function has a simulated git conflict for testing. -// This is not a merge conflict - it is a valid test case. -// Please do not remove. -function test() - { - $arr = array( - 'a' => 'a' -<<<<<<< HEAD - 'b' => 'b' -======= - 'c' => 'c' ->>>>>>> master - ); - } diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.php index 2f06f0b08..5d78d8938 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/HeredocUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class HeredocUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the Heredoc sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\HeredocSniff + */ +final class HeredocUnitTest extends AbstractSniffUnitTest { @@ -21,14 +26,22 @@ class HeredocUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 2 => 1, - 8 => 1, - ]; + switch ($testFile) { + case 'HeredocUnitTest.1.inc': + return [ + 2 => 1, + 8 => 1, + ]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.inc index dd851461b..d16c7f2eb 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.inc @@ -48,3 +48,40 @@ new class { } } }; + +$outerClosure = function () +{ + // Functions inside closures are not allowed. + function innerFunction() { + } +}; + +// Allow methods in classes/traits/interfaces defined inside functions +function foo() { + if (class_exists('MyClass') === false) { + class MyClass { + function foo() {} + } + } + + if (trait_exists('MyTrait') === false) { + trait MyTrait { + function foo() {} + } + } + + if (interface_exists('MyInterface') === false) { + interface MyInterface { + function foo(); + } + } + + // But disallow functions nested inside those methods + if (class_exists('NestedFunctionInMethod') === false) { + class NestedFunctionInMethod { + function foo() { + function innerFunction() {} + } + } + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.php index 3c9ad07bd..fff8871e6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class InnerFunctionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the InnerFunctions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\InnerFunctionsSniff + */ +final class InnerFunctionsUnitTest extends AbstractSniffUnitTest { @@ -28,6 +33,8 @@ public function getErrorList() return [ 5 => 1, 46 => 1, + 55 => 1, + 83 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc index c67381ad8..702b13de0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc @@ -41,3 +41,10 @@ $callToNamespacedFunction = namespace\STR_REPEAT($a, 2); // Could potentially be $filePath = new \File($path); $count = $object?->Count(); + +class AttributesShouldBeIgnored +{ + #[Putenv('FOO', 'foo')] + public function foo(): void + {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc.fixed index 40507c040..281425c59 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc.fixed @@ -41,3 +41,10 @@ $callToNamespacedFunction = namespace\STR_REPEAT($a, 2); // Could potentially be $filePath = new \File($path); $count = $object?->Count(); + +class AttributesShouldBeIgnored +{ + #[Putenv('FOO', 'foo')] + public function foo(): void + {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.php index 708d01ef0..5feb363f6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LowercasePHPFunctionsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LowercasePHPFunctions sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\LowercasePHPFunctionsSniff + */ +final class LowercasePHPFunctionsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.1.inc index ed7f01151..4b1d1ca65 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.1.inc @@ -297,5 +297,124 @@ class TestAlternativeControlStructures { $var_after_class_in_global_space = 1; do_something_else(); -// Intentional syntax error. -return array_map( +// These are parse errors, but that's not the concern of the sniff. +function parseError1() { + defined('FOO') or return 'foo'; + echo 'unreachable'; +} + +function parseError2() { + defined('FOO') || continue; + echo 'unreachable'; +} + +// All logical operators are allowed with inline expressions (but this was not correctly handled by the sniff). +function exitExpressionsWithLogicalOperators() { + $condition = false; + $condition || exit(); + $condition or die(); + + $condition = true; + $condition && die(); + $condition and exit; + + $condition xor die(); + + echo 'still executable as exit, in all of the above cases, is used as part of an expression'; +} + +// Inline expressions are allowed in ternaries. +function exitExpressionsInTernary() { + $value = $myValue ? $myValue : exit(); + $value = $myValue ?: exit(); + $value = $var == 'foo' ? 'bar' : die( 'world' ); + + $value = (!$myValue ) ? exit() : $myValue; + $value = $var != 'foo' ? die( 'world' ) : 'bar'; + + echo 'still executable'; +} + +// Inline expressions are allowed with null coalesce and null coalesce equals. +function exitExpressionsWithNullCoalesce() { + $value = $nullableValue ?? exit(); + $value ??= die(); + echo 'still executable'; +} + +// Inline expressions are allowed in arrow functions. +function exitExpressionsInArrowFunction() { + $callable = fn() => die(); + echo 'still executable'; +} + +// PHP 8.0+: throw expressions which don't stop execution. +function nonStoppingThrowExpressions() { + $callable = fn() => throw new Exception(); + + $value = $myValue ? 'something' : throw new Exception(); + $value = $myValue ?: throw new Exception(); + $value = $myValue ? throw new Exception() : 'something'; + + $value = $nullableValue ?? throw new Exception(); + $value ??= throw new Exception(); + + $condition && throw new Exception(); + $condition || throw new Exception(); + $condition and throw new Exception(); + $condition or throw new Exception(); + + echo 'still executable as throw, in all of the above cases, is used as part of an expression'; + + throw new Exception(); + echo 'non-executable'; +} + +// PHP 8.0+: throw expressions which do stop execution. +function executionStoppingThrowExpressionsA() { + $condition xor throw new Exception(); + echo 'non-executable'; +} + +function executionStoppingThrowExpressionsB() { + throw $userIsAuthorized ? new ForbiddenException() : new UnauthorizedException(); + echo 'non-executable'; +} + +function executionStoppingThrowExpressionsC() { + throw $condition1 && $condition2 ? new Exception1() : new Exception2(); + echo 'non-executable'; +} + +function executionStoppingThrowExpressionsD() { + throw $exception ??= new Exception(); + echo 'non-executable'; +} + +function executionStoppingThrowExpressionsE() { + throw $maybeNullException ?? new Exception(); + echo 'non-executable'; +} + +function returnNotRequiredIgnoreCommentsA() +{ + if ($something === TRUE) { + return /*comment*/; + } + + echo 'foo'; + return /*comment*/; +} + +function returnNotRequiredIgnoreCommentsB() +{ + echo 'foo'; + return; + /*comment*/ +} + +$closure = function () +{ + echo 'foo'; + return; // This return should be flagged as not required. +}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.2.inc index 407c4740b..9b7a22bcc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.2.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.2.inc @@ -45,6 +45,12 @@ trait Something { } } +enum Something { + function getReturnType() { + echo 'no error'; + } +} + $a = new class { public function log($msg) { @@ -52,4 +58,16 @@ $a = new class { } }; +// Multiple statements are still one line of unreachable code, so should get +// only one complaint from this sniff. (Well, technically two here since there +// are two 'exit()' statements above, so one complaint from each of those. So, +// two here, but not six.) +echo 'one'; echo 'two'; echo 'three'; + +// A single statement split across multiple lines. Here we get complaints for +// each line, even though they're all part of one statement. +echo 'one' . 'two' + . 'three' . 'four' + . 'five' . 'six'; + interface MyInterface { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.3.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.3.inc new file mode 100644 index 000000000..6fe5c16c6 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.3.inc @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
non-executable
+ + + + + + + + +
non-executable
+ + + + + + + + +
non-executable
+ + + + + + + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.4.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.4.inc new file mode 100644 index 000000000..189466b4d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.4.inc @@ -0,0 +1,6 @@ + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\PHP; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class NonExecutableCodeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the NonExecutableCode sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\PHP\NonExecutableCodeSniff + */ +final class NonExecutableCodeUnitTest extends AbstractSniffUnitTest { @@ -74,8 +79,19 @@ public function getWarningList($testFile='') 252 => 1, 253 => 1, 254 => 2, + 303 => 1, + 308 => 1, + 370 => 1, + 376 => 1, + 381 => 1, + 386 => 1, + 391 => 1, + 396 => 1, + 406 => 1, + 412 => 1, + 419 => 1, ]; - break; + case 'NonExecutableCodeUnitTest.2.inc': return [ 7 => 1, @@ -83,12 +99,23 @@ public function getWarningList($testFile='') 9 => 1, 10 => 2, 14 => 1, - 48 => 2, + 54 => 2, + 65 => 2, + 69 => 2, + 70 => 2, + 71 => 2, + ]; + + case 'NonExecutableCodeUnitTest.3.inc': + return [ + 27 => 1, + 36 => 1, + 45 => 1, + 54 => 1, + 62 => 1, ]; - break; default: return []; - break; }//end switch }//end getWarningList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php index 59e49910d..e17f9ae7b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Scope; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MemberVarScopeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MemberVarScope sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope\MemberVarScopeSniff + */ +final class MemberVarScopeUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.inc index cec0355c4..3cc617d75 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.inc @@ -40,3 +40,18 @@ class Nested { }; } } + +enum SomeEnum +{ + function func1() {} + public function func1() {} + private function func1() {} + protected function func1() {} +} + +class UnconventionalSpacing { + public + static + function + myFunction() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.php index 7fdab23b7..d57ce9d9b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Scope; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MethodScopeUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MethodScope sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope\MethodScopeSniff + */ +final class MethodScopeUnitTest extends AbstractSniffUnitTest { @@ -29,6 +34,7 @@ public function getErrorList() 6 => 1, 30 => 1, 39 => 1, + 46 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.inc index 38b443f2f..dd6530e80 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.inc @@ -115,3 +115,13 @@ $b = new class() return $This; } } + +enum MyEnum { + private function notStatic () { + $this->doSomething(); + } + + public static function myFunc() { + $this->doSomething(); + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.php index 2935241b4..543b56973 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Scope; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class StaticThisUsageUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the StaticThisUsage sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope\StaticThisUsageSniff + */ +final class StaticThisUsageUnitTest extends AbstractSniffUnitTest { @@ -26,18 +31,19 @@ class StaticThisUsageUnitTest extends AbstractSniffUnitTest public function getErrorList() { return [ - 7 => 1, - 8 => 1, - 9 => 1, - 14 => 1, - 20 => 1, - 41 => 1, - 61 => 1, - 69 => 1, - 76 => 1, - 80 => 1, - 84 => 1, - 99 => 1, + 7 => 1, + 8 => 1, + 9 => 1, + 14 => 1, + 20 => 1, + 41 => 1, + 61 => 1, + 69 => 1, + 76 => 1, + 80 => 1, + 84 => 1, + 99 => 1, + 125 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/ConcatenationSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/ConcatenationSpacingUnitTest.php index 862af7d20..e59da3c6e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/ConcatenationSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/ConcatenationSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Strings; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ConcatenationSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ConcatenationSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Strings\ConcatenationSpacingSniff + */ +final class ConcatenationSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/DoubleQuoteUsageUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/DoubleQuoteUsageUnitTest.php index a95d1888b..df50beee1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/DoubleQuoteUsageUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/DoubleQuoteUsageUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Strings; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class DoubleQuoteUsageUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the DoubleQuoteUsage sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Strings\DoubleQuoteUsageSniff + */ +final class DoubleQuoteUsageUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/EchoedStringsUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/EchoedStringsUnitTest.php index 0d9af1e93..dd8ead06a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/EchoedStringsUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/Strings/EchoedStringsUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\Strings; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class EchoedStringsUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the EchoedStrings sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\Strings\EchoedStringsSniff + */ +final class EchoedStringsUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/CastSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/CastSpacingUnitTest.php index 48bc841fd..38dba6d42 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/CastSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/CastSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class CastSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CastSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\CastSpacingSniff + */ +final class CastSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc index 0371ce49b..70abae434 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc @@ -261,3 +261,9 @@ $expr = match( $foo ){ }; echo $expr; + +if($true) { + + enum SomeEnum {} + +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc.fixed index ad4505c3e..c64de25e1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc.fixed @@ -253,3 +253,9 @@ $expr = match($foo){ }; echo $expr; + +if($true) { + + enum SomeEnum {} + +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.php index ac3f5d6ff..c5567cb72 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ControlStructureSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ControlStructureSpacingSniff + */ +final class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class ControlStructureSpacingUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='ControlStructureSpacingUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'ControlStructureSpacingUnitTest.inc': @@ -61,7 +66,7 @@ public function getErrorList($testFile='ControlStructureSpacingUnitTest.inc') 261 => 1, 262 => 1, ]; - break; + case 'ControlStructureSpacingUnitTest.js': return [ 3 => 1, @@ -76,10 +81,9 @@ public function getErrorList($testFile='ControlStructureSpacingUnitTest.inc') 74 => 2, 75 => 2, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.php index 2e18f875b..cb5cf061d 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionClosingBraceSpaceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionClosingBraceSpace sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\FunctionClosingBraceSpaceSniff + */ +final class FunctionClosingBraceSpaceUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class FunctionClosingBraceSpaceUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FunctionClosingBraceSpaceUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'FunctionClosingBraceSpaceUnitTest.inc': @@ -37,7 +42,7 @@ public function getErrorList($testFile='FunctionClosingBraceSpaceUnitTest.inc') 31 => 1, 39 => 1, ]; - break; + case 'FunctionClosingBraceSpaceUnitTest.js': return [ 13 => 1, @@ -49,10 +54,9 @@ public function getErrorList($testFile='FunctionClosingBraceSpaceUnitTest.inc') 84 => 1, 128 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.php index 438263ebe..dcfb3dd17 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionOpeningBraceSpaceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionOpeningBraceSpace sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\FunctionOpeningBraceSpaceSniff + */ +final class FunctionOpeningBraceSpaceUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class FunctionOpeningBraceSpaceUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='FunctionOpeningBraceSpaceUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'FunctionOpeningBraceSpaceUnitTest.inc': diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc index 36a287f07..b03a0ed82 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc @@ -574,3 +574,11 @@ class ClassWithAttributes { // phpcs:set Squiz.WhiteSpace.FunctionSpacing spacing 2 // phpcs:set Squiz.WhiteSpace.FunctionSpacing spacingBeforeFirst 2 // phpcs:set Squiz.WhiteSpace.FunctionSpacing spacingAfterLast 2 + +// Issue #3904. +echo 'this line belongs with the #3904 test'; +class Person {public function __construct($name){}} +echo 'this line belongs with the #3904 test'; + +function Foo() {} function bar($name){} +echo 'this line belongs with the #3904 test'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc.fixed index ac2df1cb7..443824ca1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.1.inc.fixed @@ -656,3 +656,18 @@ class ClassWithAttributes { // phpcs:set Squiz.WhiteSpace.FunctionSpacing spacing 2 // phpcs:set Squiz.WhiteSpace.FunctionSpacing spacingBeforeFirst 2 // phpcs:set Squiz.WhiteSpace.FunctionSpacing spacingAfterLast 2 + +// Issue #3904. +echo 'this line belongs with the #3904 test'; + + +class Person {public function __construct($name){}} + + +echo 'this line belongs with the #3904 test'; + + +function Foo() {} function bar($name){} + + +echo 'this line belongs with the #3904 test'; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.php index fabb6adb9..cc6d96d25 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class FunctionSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the FunctionSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\FunctionSpacingSniff + */ +final class FunctionSpacingUnitTest extends AbstractSniffUnitTest { @@ -95,6 +100,8 @@ public function getErrorList($testFile='') 553 => 1, 560 => 1, 566 => 1, + 580 => 2, + 583 => 3, ]; case 'FunctionSpacingUnitTest.2.inc': diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.php index 46b0d858f..f5d6c61f7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LanguageConstructSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LanguageConstructSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LanguageConstructSpacingSniff + */ +final class LanguageConstructSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.php index 62b74e369..31158fd27 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class LogicalOperatorSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the LogicalOperatorSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LogicalOperatorSpacingSniff + */ +final class LogicalOperatorSpacingUnitTest extends AbstractSniffUnitTest { @@ -21,11 +26,9 @@ class LogicalOperatorSpacingUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * - * @param string $testFile The name of the file being tested. - * * @return array */ - public function getErrorList($testFile='LogicalOperatorSpacingUnitTest.inc') + public function getErrorList() { return [ 4 => 2, diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc index fd7c6e34f..12b55176c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc @@ -332,3 +332,43 @@ class CommentedOutCodeAtStartOfClassNoBlankLine { */ public $property = true; } + +class HasAttributes +{ + /** + * Short description of the member variable. + * + * @var array + */ + + #[ORM\Id]#[ORM\Column("integer")] + + private $id; + + + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\GeneratedValue] + + #[ORM\Column(ORM\Column::T_INTEGER)] + protected $height; + + #[SingleAttribute] + protected $propertySingle; + + #[FirstAttribute] + #[SecondAttribute] + protected $propertyDouble; + #[ThirdAttribute] + protected $propertyWithoutSpacing; +} + +enum SomeEnum +{ + // Enum cannot have properties + + case ONE = 'one'; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc.fixed index b6ebcc9ab..d683eaadf 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc.fixed @@ -319,3 +319,41 @@ class CommentedOutCodeAtStartOfClassNoBlankLine { */ public $property = true; } + +class HasAttributes +{ + + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\Id]#[ORM\Column("integer")] + private $id; + + /** + * Short description of the member variable. + * + * @var array + */ + #[ORM\GeneratedValue] + #[ORM\Column(ORM\Column::T_INTEGER)] + protected $height; + + #[SingleAttribute] + protected $propertySingle; + + #[FirstAttribute] + #[SecondAttribute] + protected $propertyDouble; + + #[ThirdAttribute] + protected $propertyWithoutSpacing; +} + +enum SomeEnum +{ + // Enum cannot have properties + + case ONE = 'one'; +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.php index 08a11bca4..548ee3baa 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class MemberVarSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the MemberVarSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\MemberVarSpacingSniff + */ +final class MemberVarSpacingUnitTest extends AbstractSniffUnitTest { @@ -57,6 +62,11 @@ public function getErrorList() 288 => 1, 292 => 1, 333 => 1, + 342 => 1, + 346 => 1, + 353 => 1, + 357 => 1, + 366 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ObjectOperatorSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ObjectOperatorSpacingUnitTest.php index 82a4056f7..c1ef24a42 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ObjectOperatorSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ObjectOperatorSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ObjectOperatorSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ObjectOperatorSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ObjectOperatorSpacingSniff + */ +final class ObjectOperatorSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc new file mode 100644 index 000000000..29acf308a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc @@ -0,0 +1,510 @@ + $j && $k< $l && $m>= $n && $o<= $p && $q<> $r; + +$a ==$b && $c !=$d && $e ===$f && $g !==$h; +$i >$j && $k <$l && $m >=$n && $o <=$p && $q <>$r; + +function myFunction($variable=0, $var2='string') {} + +if (index > -1) { +} + +array_walk_recursive($array, function(&$item) use (&$something) { +}); + +$var = saveFile(&$model, &$foo); + +// This is all valid. +$boo = -$foo; +function foo($boo = -1) {} +$foo = array('boo' => -1); +$x = $test ? -1 : 1; +$y = $test ? 1 : -1; +$z = $test ?: false; + +$closureWithDefaultParameter = function (array $testArray=array()) {}; + +switch ($foo) { + case -1: + break; +} + +$y = 1 * -1; +$y = -1 * 1; +$y = -1 * $var; +$y = 10 / -2; +$y = -10 / 2; +$y = (-10 / 2); +$y = (-10 / $var); +$y = 10 + -2; +$y = -10 + 2; + +$a = $x?$y:$z; +$a = $x ? $y : $z; + +$y = 1 + + 2 + - 3; + +$y = 1 + + 2 - + 3; + +$y = 1 ++ 2 +- 3; + +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines true +$y = 1 + + 2 + - 3; + +$y = 1 + + 2 - + 3; + +$y = 1 ++ 2 +- 3; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines false + +if (true || -1 == $b) { +} + +$var = array(-1); +$var = [-1]; +$var = [0, -1, -2]; + +$y = array(&$x); +$y = [&$x]; +$y = array(&$a, &$b, &$c); +$y = [&$a, &$b, &$c]; +$y = array(&$a => 1, 2 => &$b, &$c); +$y = [&$a => 1, 2 => &$b, &$c]; + +if ($a <=> $b) { +} + +if ($a <=>$b) { +} + +$a |= $b; +$a **= $b; +$a ??= $b; + +$a = +1; + +function bar($boo = +1) {} + +$username = $_GET['user']??'nobody'; + +function foo(string $bar, array $baz, ?MyClass $object) : MyClass {} + +declare(strict_types=1); + +function foo($c = ((BAR)?10:100)) {} + +$res = $a ?: $b; +$res = $a ?: $b; +$res = $a ?: $b; +$res = $a ?: $b; + +$res = $a ? : $b; +$res = $a ? : $b; +$res = $a ? : $b; +$res = $a ? : $b; + +function foo(string $a = '', ?string $b = ''): ?string {} + +// Issue #1605. +$text = preg_replace_callback( + self::CHAR_REFS_REGEX, + [ 'Sanitizer', 'decodeCharReferencesCallback' ], + $text, /* limit */ -1, $count ); + +if (true || /* test */ -1 == $b) {} +$y = 10 + /* test */ -2; + +// Issue #1604. +Hooks::run( 'ParserOptionsRegister', [ + &self::$defaults, + &self::$inCacheKey, + &self::$lazyOptions, +] ); + +$x = $foo ? function (): int { + return 1; +} : $bar; + +$x = $foo ? function ($foo) + // comment + : int { + return 1; +} : $bar; + +$x = $foo ? function ($foo) use /* comment */ ($bar): int { + return 1; +} : $bar; + +$x = !$foo ? $bar : function (): int { + return 1; +}; + +$a = + // Comment. + [ + 'a', + 'b', + ]; + +$a = +// phpcs:ignore Standard.Category.Sniff -- for reasons. +[ + 'a', + 'b', +]; + +$foo = is_array($bar) ? array_map( + function () {}, + $bar + ) : $bar; + +function bar(): array {} + +if ($line{-1} === ':') { + $line = substr($line, 0, -1); +} + +$a = $a instanceof $b; +$a = $a instanceof $b; +$a = ($a)instanceof$b; + +fn&($x) => $x; + +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments false +$a = 3; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments true +yield -1; +echo -1; +$a = -1; +func(-1); +$a = [-1]; +return -1; +print -1; +$a &= -1; +switch ($a) { + case -1: +} +$a = $a ?? -1; +$a .= -1; +$a /= -1; +$a = [1 => -1]; +$a = $a == -1; +$a = $a >= -1; +$a = $a === -1; +$a = $a != -1; +$a = $a !== -1; +$a = $a <= -1; +$a = $a <=> -1; +$a = $a and -1; +$a = $a or -1; +$a = $a xor -1; +$a -= -1; +$a %= -1; +$a *= -1; +$a |= -1; +$a += -1; +$a = $a ** -1; +$a **= -1; +$a = $a << -1; +$a <<= -1; +$a = $a >> -1; +$a >>= -1; +$a = (string) -1; +$a = (array) -1; +$a = (bool) -1; +$a = (object) -1; +$a = (unset) -1; +$a = (float) -1; +$a = (int) -1; +$a ^= -1; +$a = [$a, -1]; +$a = $a[-1]; +$a = $a ? -1 : -1; + +yield - 1; +echo - 1; +$a = - 1; +func(- 1); +$a = [- 1]; +return - 1; +print - 1; +$a &= - 1; +switch ($a) { + case - 1: +} +$a = $a ?? - 1; +$a .= - 1; +$a /= - 1; +$a = [1 => - 1]; +$a = $a == - 1; +$a = $a >= - 1; +$a = $a === - 1; +$a = $a != - 1; +$a = $a !== - 1; +$a = $a <= - 1; +$a = $a <=> - 1; +$a = $a and - 1; +$a = $a or - 1; +$a = $a xor - 1; +$a -= - 1; +$a %= - 1; +$a *= - 1; +$a |= - 1; +$a += - 1; +$a = $a ** - 1; +$a **= - 1; +$a = $a << - 1; +$a <<= - 1; +$a = $a >> - 1; +$a >>= - 1; +$a = (string) - 1; +$a = (array) - 1; +$a = (bool) - 1; +$a = (object) - 1; +$a = (unset) - 1; +$a = (float) - 1; +$a = (int) - 1; +$a ^= - 1; +$a = [$a, - 1]; +$a = $a[- 1]; +$a = $a ? - 1 : - 1; + + +yield -$b; +echo -$b; +$a = -$b; +func(-$b); +$a = [-$b]; +return -$b; +print -$b; +$a &= -$b; +switch ($a) { + case -$b: +} +$a = $a ?? -$b; +$a .= -$b; +$a /= -$b; +$a = [1 => -$b]; +$a = $a == -$b; +$a = $a >= -$b; +$a = $a === -$b; +$a = $a != -$b; +$a = $a !== -$b; +$a = $a <= -$b; +$a = $a <=> -$b; +$a = $a and -$b; +$a = $a or -$b; +$a = $a xor -$b; +$a -= -$b; +$a %= -$b; +$a *= -$b; +$a |= -$b; +$a += -$b; +$a = $a ** -$b; +$a **= -$b; +$a = $a << -$b; +$a <<= -$b; +$a = $a >> -$b; +$a >>= -$b; +$a = (string) -$b; +$a = (array) -$b; +$a = (bool) -$b; +$a = (object) -$b; +$a = (unset) -$b; +$a = (float) -$b; +$a = (int) -$b; +$a ^= -$b; +$a = [$a, -$b]; +$a = $a[-$b]; +$a = $a ? -$b : -$b; + +yield - $b; +echo - $b; +$a = - $b; +func(- $b); +$a = [- $b]; +return - $b; +print - $b; +$a &= - $b; +switch ($a) { + case - $b: +} +$a = $a ?? - $b; +$a .= - $b; +$a /= - $b; +$a = [1 => - $b]; +$a = $a == - $b; +$a = $a >= - $b; +$a = $a === - $b; +$a = $a != - $b; +$a = $a !== - $b; +$a = $a <= - $b; +$a = $a <=> - $b; +$a = $a and - $b; +$a = $a or - $b; +$a = $a xor - $b; +$a -= - $b; +$a %= - $b; +$a *= - $b; +$a |= - $b; +$a += - $b; +$a = $a ** - $b; +$a **= - $b; +$a = $a << - $b; +$a <<= - $b; +$a = $a >> - $b; +$a >>= - $b; +$a = (string) - $b; +$a = (array) - $b; +$a = (bool) - $b; +$a = (object) - $b; +$a = (unset) - $b; +$a = (float) - $b; +$a = (int) - $b; +$a ^= - $b; +$a = [$a, - $b]; +$a = $a[- $b]; +$a = $a ? - $b : - $b; + +exit -1; + +$cl = function ($boo =-1) {}; +$cl = function ($boo =+1) {}; +$fn = fn ($boo =-1) => $boo; +$fn = fn ($boo =+1) => $boo; + +$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); + +$a = 'a '.-MY_CONSTANT; +$a = 'a '.-$b; +$a = 'a '.- MY_CONSTANT; +$a = 'a '.- $b; + +match ($a) { + 'a' => -1, + 'b', 'c', 'd' => -2, + default => -3, +}; + +$foo = $var + ? 10 + : true; + +// Safeguard that a non-fixable error is thrown when there is a new line before the operator, +// but the last non-whitespace token before the operator is a comment token. +$foo = $var // Comment + ? false /* Comment */ + : true; + +$foo = $var // phpcs: ignore Stnd.Cat.Sniff -- for reasons. + + + ? $something /** + * Don't ask, but someone might have a docblock between the lines. It's valid PHP after all. + */ + + + : true; + +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines true +$foo = $var // Comment + ? false // Comment + : true; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines false diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc.fixed new file mode 100644 index 000000000..5c94e3658 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc.fixed @@ -0,0 +1,502 @@ + $j && $k < $l && $m >= $n && $o <= $p && $q <> $r; + +$a == $b && $c != $d && $e === $f && $g !== $h; +$i > $j && $k < $l && $m >= $n && $o <= $p && $q <> $r; + +function myFunction($variable=0, $var2='string') {} + +if (index > -1) { +} + +array_walk_recursive($array, function(&$item) use (&$something) { +}); + +$var = saveFile(&$model, &$foo); + +// This is all valid. +$boo = -$foo; +function foo($boo = -1) {} +$foo = array('boo' => -1); +$x = $test ? -1 : 1; +$y = $test ? 1 : -1; +$z = $test ?: false; + +$closureWithDefaultParameter = function (array $testArray=array()) {}; + +switch ($foo) { + case -1: + break; +} + +$y = 1 * -1; +$y = -1 * 1; +$y = -1 * $var; +$y = 10 / -2; +$y = -10 / 2; +$y = (-10 / 2); +$y = (-10 / $var); +$y = 10 + -2; +$y = -10 + 2; + +$a = $x ? $y : $z; +$a = $x ? $y : $z; + +$y = 1 + 2 - 3; + +$y = 1 + 2 - 3; + +$y = 1 + 2 - 3; + +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines true +$y = 1 + + 2 + - 3; + +$y = 1 + + 2 - + 3; + +$y = 1 ++ 2 +- 3; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines false + +if (true || -1 == $b) { +} + +$var = array(-1); +$var = [-1]; +$var = [0, -1, -2]; + +$y = array(&$x); +$y = [&$x]; +$y = array(&$a, &$b, &$c); +$y = [&$a, &$b, &$c]; +$y = array(&$a => 1, 2 => &$b, &$c); +$y = [&$a => 1, 2 => &$b, &$c]; + +if ($a <=> $b) { +} + +if ($a <=> $b) { +} + +$a |= $b; +$a **= $b; +$a ??= $b; + +$a = +1; + +function bar($boo = +1) {} + +$username = $_GET['user'] ?? 'nobody'; + +function foo(string $bar, array $baz, ?MyClass $object) : MyClass {} + +declare(strict_types=1); + +function foo($c = ((BAR) ? 10 : 100)) {} + +$res = $a ?: $b; +$res = $a ?: $b; +$res = $a ?: $b; +$res = $a ?: $b; + +$res = $a ? : $b; +$res = $a ? : $b; +$res = $a ? : $b; +$res = $a ? : $b; + +function foo(string $a = '', ?string $b = ''): ?string {} + +// Issue #1605. +$text = preg_replace_callback( + self::CHAR_REFS_REGEX, + [ 'Sanitizer', 'decodeCharReferencesCallback' ], + $text, /* limit */ -1, $count ); + +if (true || /* test */ -1 == $b) {} +$y = 10 + /* test */ -2; + +// Issue #1604. +Hooks::run( 'ParserOptionsRegister', [ + &self::$defaults, + &self::$inCacheKey, + &self::$lazyOptions, +] ); + +$x = $foo ? function (): int { + return 1; +} : $bar; + +$x = $foo ? function ($foo) + // comment + : int { + return 1; +} : $bar; + +$x = $foo ? function ($foo) use /* comment */ ($bar): int { + return 1; +} : $bar; + +$x = !$foo ? $bar : function (): int { + return 1; +}; + +$a = + // Comment. + [ + 'a', + 'b', + ]; + +$a = +// phpcs:ignore Standard.Category.Sniff -- for reasons. +[ + 'a', + 'b', +]; + +$foo = is_array($bar) ? array_map( + function () {}, + $bar + ) : $bar; + +function bar(): array {} + +if ($line{-1} === ':') { + $line = substr($line, 0, -1); +} + +$a = $a instanceof $b; +$a = $a instanceof $b; +$a = ($a) instanceof $b; + +fn&($x) => $x; + +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments false +$a = 3; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments true +yield -1; +echo -1; +$a = -1; +func(-1); +$a = [-1]; +return -1; +print -1; +$a &= -1; +switch ($a) { + case -1: +} +$a = $a ?? -1; +$a .= -1; +$a /= -1; +$a = [1 => -1]; +$a = $a == -1; +$a = $a >= -1; +$a = $a === -1; +$a = $a != -1; +$a = $a !== -1; +$a = $a <= -1; +$a = $a <=> -1; +$a = $a and -1; +$a = $a or -1; +$a = $a xor -1; +$a -= -1; +$a %= -1; +$a *= -1; +$a |= -1; +$a += -1; +$a = $a ** -1; +$a **= -1; +$a = $a << -1; +$a <<= -1; +$a = $a >> -1; +$a >>= -1; +$a = (string) -1; +$a = (array) -1; +$a = (bool) -1; +$a = (object) -1; +$a = (unset) -1; +$a = (float) -1; +$a = (int) -1; +$a ^= -1; +$a = [$a, -1]; +$a = $a[-1]; +$a = $a ? -1 : -1; + +yield - 1; +echo - 1; +$a = - 1; +func(- 1); +$a = [- 1]; +return - 1; +print - 1; +$a &= - 1; +switch ($a) { + case - 1: +} +$a = $a ?? - 1; +$a .= - 1; +$a /= - 1; +$a = [1 => - 1]; +$a = $a == - 1; +$a = $a >= - 1; +$a = $a === - 1; +$a = $a != - 1; +$a = $a !== - 1; +$a = $a <= - 1; +$a = $a <=> - 1; +$a = $a and - 1; +$a = $a or - 1; +$a = $a xor - 1; +$a -= - 1; +$a %= - 1; +$a *= - 1; +$a |= - 1; +$a += - 1; +$a = $a ** - 1; +$a **= - 1; +$a = $a << - 1; +$a <<= - 1; +$a = $a >> - 1; +$a >>= - 1; +$a = (string) - 1; +$a = (array) - 1; +$a = (bool) - 1; +$a = (object) - 1; +$a = (unset) - 1; +$a = (float) - 1; +$a = (int) - 1; +$a ^= - 1; +$a = [$a, - 1]; +$a = $a[- 1]; +$a = $a ? - 1 : - 1; + + +yield -$b; +echo -$b; +$a = -$b; +func(-$b); +$a = [-$b]; +return -$b; +print -$b; +$a &= -$b; +switch ($a) { + case -$b: +} +$a = $a ?? -$b; +$a .= -$b; +$a /= -$b; +$a = [1 => -$b]; +$a = $a == -$b; +$a = $a >= -$b; +$a = $a === -$b; +$a = $a != -$b; +$a = $a !== -$b; +$a = $a <= -$b; +$a = $a <=> -$b; +$a = $a and -$b; +$a = $a or -$b; +$a = $a xor -$b; +$a -= -$b; +$a %= -$b; +$a *= -$b; +$a |= -$b; +$a += -$b; +$a = $a ** -$b; +$a **= -$b; +$a = $a << -$b; +$a <<= -$b; +$a = $a >> -$b; +$a >>= -$b; +$a = (string) -$b; +$a = (array) -$b; +$a = (bool) -$b; +$a = (object) -$b; +$a = (unset) -$b; +$a = (float) -$b; +$a = (int) -$b; +$a ^= -$b; +$a = [$a, -$b]; +$a = $a[-$b]; +$a = $a ? -$b : -$b; + +yield - $b; +echo - $b; +$a = - $b; +func(- $b); +$a = [- $b]; +return - $b; +print - $b; +$a &= - $b; +switch ($a) { + case - $b: +} +$a = $a ?? - $b; +$a .= - $b; +$a /= - $b; +$a = [1 => - $b]; +$a = $a == - $b; +$a = $a >= - $b; +$a = $a === - $b; +$a = $a != - $b; +$a = $a !== - $b; +$a = $a <= - $b; +$a = $a <=> - $b; +$a = $a and - $b; +$a = $a or - $b; +$a = $a xor - $b; +$a -= - $b; +$a %= - $b; +$a *= - $b; +$a |= - $b; +$a += - $b; +$a = $a ** - $b; +$a **= - $b; +$a = $a << - $b; +$a <<= - $b; +$a = $a >> - $b; +$a >>= - $b; +$a = (string) - $b; +$a = (array) - $b; +$a = (bool) - $b; +$a = (object) - $b; +$a = (unset) - $b; +$a = (float) - $b; +$a = (int) - $b; +$a ^= - $b; +$a = [$a, - $b]; +$a = $a[- $b]; +$a = $a ? - $b : - $b; + +exit -1; + +$cl = function ($boo =-1) {}; +$cl = function ($boo =+1) {}; +$fn = fn ($boo =-1) => $boo; +$fn = fn ($boo =+1) => $boo; + +$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); + +$a = 'a '.-MY_CONSTANT; +$a = 'a '.-$b; +$a = 'a '.- MY_CONSTANT; +$a = 'a '.- $b; + +match ($a) { + 'a' => -1, + 'b', 'c', 'd' => -2, + default => -3, +}; + +$foo = $var ? 10 : true; + +// Safeguard that a non-fixable error is thrown when there is a new line before the operator, +// but the last non-whitespace token before the operator is a comment token. +$foo = $var // Comment + ? false /* Comment */ + : true; + +$foo = $var // phpcs: ignore Stnd.Cat.Sniff -- for reasons. + + + ? $something /** + * Don't ask, but someone might have a docblock between the lines. It's valid PHP after all. + */ + + + : true; + +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines true +$foo = $var // Comment + ? false // Comment + : true; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines false diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.2.inc new file mode 100644 index 000000000..3a0dbac3e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.2.inc @@ -0,0 +1,3 @@ + $j && $k< $l && $m>= $n && $o<= $p && $q<> $r; - -$a ==$b && $c !=$d && $e ===$f && $g !==$h; -$i >$j && $k <$l && $m >=$n && $o <=$p && $q <>$r; - -function myFunction($variable=0, $var2='string') {} - -if (index > -1) { -} - -array_walk_recursive($array, function(&$item) use (&$something) { -}); - -$var = saveFile(&$model, &$foo); - -// This is all valid. -$boo = -$foo; -function foo($boo = -1) {} -$foo = array('boo' => -1); -$x = $test ? -1 : 1; -$y = $test ? 1 : -1; -$z = $test ?: false; - -$closureWithDefaultParameter = function (array $testArray=array()) {}; - -switch ($foo) { - case -1: - break; -} - -$y = 1 * -1; -$y = -1 * 1; -$y = -1 * $var; -$y = 10 / -2; -$y = -10 / 2; -$y = (-10 / 2); -$y = (-10 / $var); -$y = 10 + -2; -$y = -10 + 2; - -$a = $x?$y:$z; -$a = $x ? $y : $z; - -$y = 1 - + 2 - - 3; - -$y = 1 + - 2 - - 3; - -$y = 1 -+ 2 -- 3; - -// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines true -$y = 1 - + 2 - - 3; - -$y = 1 + - 2 - - 3; - -$y = 1 -+ 2 -- 3; -// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines false - -if (true || -1 == $b) { -} - -$var = array(-1); -$var = [-1]; -$var = [0, -1, -2]; - -$y = array(&$x); -$y = [&$x]; -$y = array(&$a, &$b, &$c); -$y = [&$a, &$b, &$c]; -$y = array(&$a => 1, 2 => &$b, &$c); -$y = [&$a => 1, 2 => &$b, &$c]; - -if ($a <=> $b) { -} - -if ($a <=>$b) { -} - -$a |= $b; -$a **= $b; -$a ??= $b; - -$a = +1; - -function bar($boo = +1) {} - -$username = $_GET['user']??'nobody'; - -function foo(string $bar, array $baz, ?MyClass $object) : MyClass {} - -declare(strict_types=1); - -function foo($c = ((BAR)?10:100)) {} - -$res = $a ?: $b; -$res = $a ?: $b; -$res = $a ?: $b; -$res = $a ?: $b; - -$res = $a ? : $b; -$res = $a ? : $b; -$res = $a ? : $b; -$res = $a ? : $b; - -function foo(string $a = '', ?string $b = ''): ?string {} - -// Issue #1605. -$text = preg_replace_callback( - self::CHAR_REFS_REGEX, - [ 'Sanitizer', 'decodeCharReferencesCallback' ], - $text, /* limit */ -1, $count ); - -if (true || /* test */ -1 == $b) {} -$y = 10 + /* test */ -2; - -// Issue #1604. -Hooks::run( 'ParserOptionsRegister', [ - &self::$defaults, - &self::$inCacheKey, - &self::$lazyOptions, -] ); - -$x = $foo ? function (): int { - return 1; -} : $bar; - -$x = $foo ? function ($foo) - // comment - : int { - return 1; -} : $bar; - -$x = $foo ? function ($foo) use /* comment */ ($bar): int { - return 1; -} : $bar; - -$x = !$foo ? $bar : function (): int { - return 1; -}; - -$a = - // Comment. - [ - 'a', - 'b', - ]; - -$a = -// phpcs:ignore Standard.Category.Sniff -- for reasons. -[ - 'a', - 'b', -]; - -$foo = is_array($bar) ? array_map( - function () {}, - $bar - ) : $bar; - -function bar(): array {} - -if ($line{-1} === ':') { - $line = substr($line, 0, -1); -} - -$a = $a instanceof $b; -$a = $a instanceof $b; -$a = ($a)instanceof$b; - -fn&($x) => $x; - -// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments false -$a = 3; - -yield -1; -echo -1; -$a = -1; -func(-1); -$a = [-1]; -return -1; -print -1; -$a &= -1; -switch ($a) { - case -1: -} -$a = $a ?? -1; -$a .= -1; -$a /= -1; -$a = [1 => -1]; -$a = $a == -1; -$a = $a >= -1; -$a = $a === -1; -$a = $a != -1; -$a = $a !== -1; -$a = $a <= -1; -$a = $a <=> -1; -$a = $a and -1; -$a = $a or -1; -$a = $a xor -1; -$a -= -1; -$a %= -1; -$a *= -1; -$a |= -1; -$a += -1; -$a = $a ** -1; -$a **= -1; -$a = $a << -1; -$a <<= -1; -$a = $a >> -1; -$a >>= -1; -$a = (string) -1; -$a = (array) -1; -$a = (bool) -1; -$a = (object) -1; -$a = (unset) -1; -$a = (float) -1; -$a = (int) -1; -$a ^= -1; -$a = [$a, -1]; -$a = $a[-1]; -$a = $a ? -1 : -1; - -yield - 1; -echo - 1; -$a = - 1; -func(- 1); -$a = [- 1]; -return - 1; -print - 1; -$a &= - 1; -switch ($a) { - case - 1: -} -$a = $a ?? - 1; -$a .= - 1; -$a /= - 1; -$a = [1 => - 1]; -$a = $a == - 1; -$a = $a >= - 1; -$a = $a === - 1; -$a = $a != - 1; -$a = $a !== - 1; -$a = $a <= - 1; -$a = $a <=> - 1; -$a = $a and - 1; -$a = $a or - 1; -$a = $a xor - 1; -$a -= - 1; -$a %= - 1; -$a *= - 1; -$a |= - 1; -$a += - 1; -$a = $a ** - 1; -$a **= - 1; -$a = $a << - 1; -$a <<= - 1; -$a = $a >> - 1; -$a >>= - 1; -$a = (string) - 1; -$a = (array) - 1; -$a = (bool) - 1; -$a = (object) - 1; -$a = (unset) - 1; -$a = (float) - 1; -$a = (int) - 1; -$a ^= - 1; -$a = [$a, - 1]; -$a = $a[- 1]; -$a = $a ? - 1 : - 1; - - -yield -$b; -echo -$b; -$a = -$b; -func(-$b); -$a = [-$b]; -return -$b; -print -$b; -$a &= -$b; -switch ($a) { - case -$b: -} -$a = $a ?? -$b; -$a .= -$b; -$a /= -$b; -$a = [1 => -$b]; -$a = $a == -$b; -$a = $a >= -$b; -$a = $a === -$b; -$a = $a != -$b; -$a = $a !== -$b; -$a = $a <= -$b; -$a = $a <=> -$b; -$a = $a and -$b; -$a = $a or -$b; -$a = $a xor -$b; -$a -= -$b; -$a %= -$b; -$a *= -$b; -$a |= -$b; -$a += -$b; -$a = $a ** -$b; -$a **= -$b; -$a = $a << -$b; -$a <<= -$b; -$a = $a >> -$b; -$a >>= -$b; -$a = (string) -$b; -$a = (array) -$b; -$a = (bool) -$b; -$a = (object) -$b; -$a = (unset) -$b; -$a = (float) -$b; -$a = (int) -$b; -$a ^= -$b; -$a = [$a, -$b]; -$a = $a[-$b]; -$a = $a ? -$b : -$b; - -yield - $b; -echo - $b; -$a = - $b; -func(- $b); -$a = [- $b]; -return - $b; -print - $b; -$a &= - $b; -switch ($a) { - case - $b: -} -$a = $a ?? - $b; -$a .= - $b; -$a /= - $b; -$a = [1 => - $b]; -$a = $a == - $b; -$a = $a >= - $b; -$a = $a === - $b; -$a = $a != - $b; -$a = $a !== - $b; -$a = $a <= - $b; -$a = $a <=> - $b; -$a = $a and - $b; -$a = $a or - $b; -$a = $a xor - $b; -$a -= - $b; -$a %= - $b; -$a *= - $b; -$a |= - $b; -$a += - $b; -$a = $a ** - $b; -$a **= - $b; -$a = $a << - $b; -$a <<= - $b; -$a = $a >> - $b; -$a >>= - $b; -$a = (string) - $b; -$a = (array) - $b; -$a = (bool) - $b; -$a = (object) - $b; -$a = (unset) - $b; -$a = (float) - $b; -$a = (int) - $b; -$a ^= - $b; -$a = [$a, - $b]; -$a = $a[- $b]; -$a = $a ? - $b : - $b; - -exit -1; - -$cl = function ($boo =-1) {}; -$cl = function ($boo =+1) {}; -$fn = fn ($boo =-1) => $boo; -$fn = fn ($boo =+1) => $boo; - -$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); - -$a = 'a '.-MY_CONSTANT; -$a = 'a '.-$b; -$a = 'a '.- MY_CONSTANT; -$a = 'a '.- $b; - -/* Intentional parse error. This has to be the last test in the file. */ -$a = 10 + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.inc.fixed deleted file mode 100644 index 138616e75..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.inc.fixed +++ /dev/null @@ -1,475 +0,0 @@ - $j && $k < $l && $m >= $n && $o <= $p && $q <> $r; - -$a == $b && $c != $d && $e === $f && $g !== $h; -$i > $j && $k < $l && $m >= $n && $o <= $p && $q <> $r; - -function myFunction($variable=0, $var2='string') {} - -if (index > -1) { -} - -array_walk_recursive($array, function(&$item) use (&$something) { -}); - -$var = saveFile(&$model, &$foo); - -// This is all valid. -$boo = -$foo; -function foo($boo = -1) {} -$foo = array('boo' => -1); -$x = $test ? -1 : 1; -$y = $test ? 1 : -1; -$z = $test ?: false; - -$closureWithDefaultParameter = function (array $testArray=array()) {}; - -switch ($foo) { - case -1: - break; -} - -$y = 1 * -1; -$y = -1 * 1; -$y = -1 * $var; -$y = 10 / -2; -$y = -10 / 2; -$y = (-10 / 2); -$y = (-10 / $var); -$y = 10 + -2; -$y = -10 + 2; - -$a = $x ? $y : $z; -$a = $x ? $y : $z; - -$y = 1 + 2 - 3; - -$y = 1 + 2 - 3; - -$y = 1 + 2 - 3; - -// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines true -$y = 1 - + 2 - - 3; - -$y = 1 + - 2 - - 3; - -$y = 1 -+ 2 -- 3; -// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreNewlines false - -if (true || -1 == $b) { -} - -$var = array(-1); -$var = [-1]; -$var = [0, -1, -2]; - -$y = array(&$x); -$y = [&$x]; -$y = array(&$a, &$b, &$c); -$y = [&$a, &$b, &$c]; -$y = array(&$a => 1, 2 => &$b, &$c); -$y = [&$a => 1, 2 => &$b, &$c]; - -if ($a <=> $b) { -} - -if ($a <=> $b) { -} - -$a |= $b; -$a **= $b; -$a ??= $b; - -$a = +1; - -function bar($boo = +1) {} - -$username = $_GET['user'] ?? 'nobody'; - -function foo(string $bar, array $baz, ?MyClass $object) : MyClass {} - -declare(strict_types=1); - -function foo($c = ((BAR) ? 10 : 100)) {} - -$res = $a ?: $b; -$res = $a ?: $b; -$res = $a ?: $b; -$res = $a ?: $b; - -$res = $a ? : $b; -$res = $a ? : $b; -$res = $a ? : $b; -$res = $a ? : $b; - -function foo(string $a = '', ?string $b = ''): ?string {} - -// Issue #1605. -$text = preg_replace_callback( - self::CHAR_REFS_REGEX, - [ 'Sanitizer', 'decodeCharReferencesCallback' ], - $text, /* limit */ -1, $count ); - -if (true || /* test */ -1 == $b) {} -$y = 10 + /* test */ -2; - -// Issue #1604. -Hooks::run( 'ParserOptionsRegister', [ - &self::$defaults, - &self::$inCacheKey, - &self::$lazyOptions, -] ); - -$x = $foo ? function (): int { - return 1; -} : $bar; - -$x = $foo ? function ($foo) - // comment - : int { - return 1; -} : $bar; - -$x = $foo ? function ($foo) use /* comment */ ($bar): int { - return 1; -} : $bar; - -$x = !$foo ? $bar : function (): int { - return 1; -}; - -$a = - // Comment. - [ - 'a', - 'b', - ]; - -$a = -// phpcs:ignore Standard.Category.Sniff -- for reasons. -[ - 'a', - 'b', -]; - -$foo = is_array($bar) ? array_map( - function () {}, - $bar - ) : $bar; - -function bar(): array {} - -if ($line{-1} === ':') { - $line = substr($line, 0, -1); -} - -$a = $a instanceof $b; -$a = $a instanceof $b; -$a = ($a) instanceof $b; - -fn&($x) => $x; - -// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments false -$a = 3; - -yield -1; -echo -1; -$a = -1; -func(-1); -$a = [-1]; -return -1; -print -1; -$a &= -1; -switch ($a) { - case -1: -} -$a = $a ?? -1; -$a .= -1; -$a /= -1; -$a = [1 => -1]; -$a = $a == -1; -$a = $a >= -1; -$a = $a === -1; -$a = $a != -1; -$a = $a !== -1; -$a = $a <= -1; -$a = $a <=> -1; -$a = $a and -1; -$a = $a or -1; -$a = $a xor -1; -$a -= -1; -$a %= -1; -$a *= -1; -$a |= -1; -$a += -1; -$a = $a ** -1; -$a **= -1; -$a = $a << -1; -$a <<= -1; -$a = $a >> -1; -$a >>= -1; -$a = (string) -1; -$a = (array) -1; -$a = (bool) -1; -$a = (object) -1; -$a = (unset) -1; -$a = (float) -1; -$a = (int) -1; -$a ^= -1; -$a = [$a, -1]; -$a = $a[-1]; -$a = $a ? -1 : -1; - -yield - 1; -echo - 1; -$a = - 1; -func(- 1); -$a = [- 1]; -return - 1; -print - 1; -$a &= - 1; -switch ($a) { - case - 1: -} -$a = $a ?? - 1; -$a .= - 1; -$a /= - 1; -$a = [1 => - 1]; -$a = $a == - 1; -$a = $a >= - 1; -$a = $a === - 1; -$a = $a != - 1; -$a = $a !== - 1; -$a = $a <= - 1; -$a = $a <=> - 1; -$a = $a and - 1; -$a = $a or - 1; -$a = $a xor - 1; -$a -= - 1; -$a %= - 1; -$a *= - 1; -$a |= - 1; -$a += - 1; -$a = $a ** - 1; -$a **= - 1; -$a = $a << - 1; -$a <<= - 1; -$a = $a >> - 1; -$a >>= - 1; -$a = (string) - 1; -$a = (array) - 1; -$a = (bool) - 1; -$a = (object) - 1; -$a = (unset) - 1; -$a = (float) - 1; -$a = (int) - 1; -$a ^= - 1; -$a = [$a, - 1]; -$a = $a[- 1]; -$a = $a ? - 1 : - 1; - - -yield -$b; -echo -$b; -$a = -$b; -func(-$b); -$a = [-$b]; -return -$b; -print -$b; -$a &= -$b; -switch ($a) { - case -$b: -} -$a = $a ?? -$b; -$a .= -$b; -$a /= -$b; -$a = [1 => -$b]; -$a = $a == -$b; -$a = $a >= -$b; -$a = $a === -$b; -$a = $a != -$b; -$a = $a !== -$b; -$a = $a <= -$b; -$a = $a <=> -$b; -$a = $a and -$b; -$a = $a or -$b; -$a = $a xor -$b; -$a -= -$b; -$a %= -$b; -$a *= -$b; -$a |= -$b; -$a += -$b; -$a = $a ** -$b; -$a **= -$b; -$a = $a << -$b; -$a <<= -$b; -$a = $a >> -$b; -$a >>= -$b; -$a = (string) -$b; -$a = (array) -$b; -$a = (bool) -$b; -$a = (object) -$b; -$a = (unset) -$b; -$a = (float) -$b; -$a = (int) -$b; -$a ^= -$b; -$a = [$a, -$b]; -$a = $a[-$b]; -$a = $a ? -$b : -$b; - -yield - $b; -echo - $b; -$a = - $b; -func(- $b); -$a = [- $b]; -return - $b; -print - $b; -$a &= - $b; -switch ($a) { - case - $b: -} -$a = $a ?? - $b; -$a .= - $b; -$a /= - $b; -$a = [1 => - $b]; -$a = $a == - $b; -$a = $a >= - $b; -$a = $a === - $b; -$a = $a != - $b; -$a = $a !== - $b; -$a = $a <= - $b; -$a = $a <=> - $b; -$a = $a and - $b; -$a = $a or - $b; -$a = $a xor - $b; -$a -= - $b; -$a %= - $b; -$a *= - $b; -$a |= - $b; -$a += - $b; -$a = $a ** - $b; -$a **= - $b; -$a = $a << - $b; -$a <<= - $b; -$a = $a >> - $b; -$a >>= - $b; -$a = (string) - $b; -$a = (array) - $b; -$a = (bool) - $b; -$a = (object) - $b; -$a = (unset) - $b; -$a = (float) - $b; -$a = (int) - $b; -$a ^= - $b; -$a = [$a, - $b]; -$a = $a[- $b]; -$a = $a ? - $b : - $b; - -exit -1; - -$cl = function ($boo =-1) {}; -$cl = function ($boo =+1) {}; -$fn = fn ($boo =-1) => $boo; -$fn = fn ($boo =+1) => $boo; - -$fn = static fn(DateTime $a, DateTime $b): int => -($a->getTimestamp() <=> $b->getTimestamp()); - -$a = 'a '.-MY_CONSTANT; -$a = 'a '.-$b; -$a = 'a '.- MY_CONSTANT; -$a = 'a '.- $b; - -/* Intentional parse error. This has to be the last test in the file. */ -$a = 10 + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js index 16eb130f5..f37df9d86 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js @@ -101,3 +101,4 @@ var foo = bar.map(baz=> baz.length); // phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments false a = 3; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments true diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed index 877db4678..47c89302b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed @@ -95,3 +95,4 @@ var foo = bar.map(baz => baz.length); // phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments false a = 3; +// phpcs:set Squiz.WhiteSpace.OperatorSpacing ignoreSpacingBeforeAssignments true diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php index 8e8ad98d0..e34a2ec4a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class OperatorSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the OperatorSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\OperatorSpacingSniff + */ +final class OperatorSpacingUnitTest extends AbstractSniffUnitTest { @@ -25,10 +30,10 @@ class OperatorSpacingUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='OperatorSpacingUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { - case 'OperatorSpacingUnitTest.inc': + case 'OperatorSpacingUnitTest.1.inc': return [ 4 => 1, 5 => 2, @@ -99,8 +104,14 @@ public function getErrorList($testFile='OperatorSpacingUnitTest.inc') 265 => 2, 266 => 2, 271 => 2, + 487 => 1, + 488 => 1, + 493 => 1, + 494 => 1, + 499 => 1, + 504 => 1, ]; - break; + case 'OperatorSpacingUnitTest.js': return [ 4 => 1, @@ -143,10 +154,9 @@ public function getErrorList($testFile='OperatorSpacingUnitTest.inc') 100 => 1, 103 => 2, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/PropertyLabelSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/PropertyLabelSpacingUnitTest.php index e80f93670..5c20b0010 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/PropertyLabelSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/PropertyLabelSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class PropertyLabelSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the PropertyLabel sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\PropertyLabelSpacingSniff + */ +final class PropertyLabelSpacingUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc index b71c0be72..ecae5c6d5 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc @@ -114,3 +114,21 @@ $match = match ($test) { 1 => 'a', 2 => 'b' }; + +?> + +
+ +
+ + 'a', 2 => 'b' }; + +?> + +
+ +
+ + + * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ScopeClosingBraceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ScopeClosingBrace sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ScopeClosingBraceSniff + */ +final class ScopeClosingBraceUnitTest extends AbstractSniffUnitTest { @@ -33,6 +38,9 @@ public function getErrorList() 102 => 1, 111 => 1, 116 => 1, + 122 => 1, + 130 => 1, + 134 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc new file mode 100644 index 000000000..1d3ccebc9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc @@ -0,0 +1,149 @@ + 'a', 'b' => 'b' ), + $varQ = 'string', + $varR = 123; + + // Intentionally missing a semicolon for testing. + public + $varS, + $varT +} + +// Issue #3188 - static as return type. +public static function fCreate($attributes = []): static +{ + return static::factory()->create($attributes); +} + +public static function fCreate($attributes = []): ?static +{ + return static::factory()->create($attributes); +} + +// Also account for static used within union types. +public function staticLast($attributes = []): object|static {} +public function staticMiddle(): string|static|object {} +public function staticFirst(): static|object {} + +// Ensure that static as a scope keyword when preceeded by a colon which is not for a type declaration is still handled. +$callback = $cond ? get_fn_name() : static function ($a) { return $a * 10; }; + +class TypedProperties { + public + int $var; + + protected string $stringA, $stringB; + + private bool + $boolA, + $boolB; +} + +// PHP 8.0 constructor property promotion. +class ConstructorPropertyPromotionTest { + public function __construct( + public $x = 0.0, + protected $y = '', + private $z = null, + $normalParam, + ) {} +} + +class ConstructorPropertyPromotionWithTypesTest { + public function __construct(protected float|int $x, public?string &$y = 'test', private mixed $z) {} +} + +// PHP 8.1 readonly keywords. +class ReadonlyTest { + public readonly int $publicReadonlyProperty; + + protected readonly int $protectedReadonlyProperty; + + readonly protected int $protectedReadonlyProperty; + + readonly private int $privateReadonlyProperty; + + public function __construct(readonly protected float|int $x, public readonly?string &$y = 'test') {} +} + +// PHP 8.2 readonly classes. +readonly class ReadonlyClassTest {} +readonly class ReadonlyClassTest {} + +// PHP 8.3 readonly anonymous classes. +$anon = new readonly class {}; +$anon = new readonly class {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc.fixed new file mode 100644 index 000000000..d4e8a39e1 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc.fixed @@ -0,0 +1,143 @@ + 'a', 'b' => 'b' ), + $varQ = 'string', + $varR = 123; + + // Intentionally missing a semicolon for testing. + public + $varS, + $varT +} + +// Issue #3188 - static as return type. +public static function fCreate($attributes = []): static +{ + return static::factory()->create($attributes); +} + +public static function fCreate($attributes = []): ?static +{ + return static::factory()->create($attributes); +} + +// Also account for static used within union types. +public function staticLast($attributes = []): object|static {} +public function staticMiddle(): string|static|object {} +public function staticFirst(): static|object {} + +// Ensure that static as a scope keyword when preceeded by a colon which is not for a type declaration is still handled. +$callback = $cond ? get_fn_name() : static function ($a) { return $a * 10; }; + +class TypedProperties { + public int $var; + + protected string $stringA, $stringB; + + private bool + $boolA, + $boolB; +} + +// PHP 8.0 constructor property promotion. +class ConstructorPropertyPromotionTest { + public function __construct( + public $x = 0.0, + protected $y = '', + private $z = null, + $normalParam, + ) {} +} + +class ConstructorPropertyPromotionWithTypesTest { + public function __construct(protected float|int $x, public ?string &$y = 'test', private mixed $z) {} +} + +// PHP 8.1 readonly keywords. +class ReadonlyTest { + public readonly int $publicReadonlyProperty; + + protected readonly int $protectedReadonlyProperty; + + readonly protected int $protectedReadonlyProperty; + + readonly private int $privateReadonlyProperty; + + public function __construct(readonly protected float|int $x, public readonly ?string &$y = 'test') {} +} + +// PHP 8.2 readonly classes. +readonly class ReadonlyClassTest {} +readonly class ReadonlyClassTest {} + +// PHP 8.3 readonly anonymous classes. +$anon = new readonly class {}; +$anon = new readonly class {}; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.2.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.2.inc new file mode 100644 index 000000000..45cfb5343 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.2.inc @@ -0,0 +1,6 @@ + 'a', 'b' => 'b' ), - $varQ = 'string', - $varR = 123; - - // Intentionally missing a semi-colon for testing. - public - $varS, - $varT -} - -// Issue #3188 - static as return type. -public static function fCreate($attributes = []): static -{ - return static::factory()->create($attributes); -} - -public static function fCreate($attributes = []): ?static -{ - return static::factory()->create($attributes); -} - -// Also account for static used within union types. -public function fCreate($attributes = []): object|static -{ -} - -// Ensure that static as a scope keyword when preceeded by a colon which is not for a type declaration is still handled. -$callback = $cond ? get_fn_name() : static function ($a) { return $a * 10; }; - -class TypedProperties { - public - int $var; - - protected string $stringA, $stringB; - - private bool - $boolA, - $boolB; -} - -// PHP 8.0 constructor property promotion. -class ConstructorPropertyPromotionTest { - public function __construct( - public $x = 0.0, - protected $y = '', - private $z = null, - $normalParam, - ) {} -} - -class ConstructorPropertyPromotionWithTypesTest { - public function __construct(protected float|int $x, public?string &$y = 'test', private mixed $z) {} -} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.inc.fixed deleted file mode 100644 index e642f0c7b..000000000 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.inc.fixed +++ /dev/null @@ -1,122 +0,0 @@ - 'a', 'b' => 'b' ), - $varQ = 'string', - $varR = 123; - - // Intentionally missing a semi-colon for testing. - public - $varS, - $varT -} - -// Issue #3188 - static as return type. -public static function fCreate($attributes = []): static -{ - return static::factory()->create($attributes); -} - -public static function fCreate($attributes = []): ?static -{ - return static::factory()->create($attributes); -} - -// Also account for static used within union types. -public function fCreate($attributes = []): object|static -{ -} - -// Ensure that static as a scope keyword when preceeded by a colon which is not for a type declaration is still handled. -$callback = $cond ? get_fn_name() : static function ($a) { return $a * 10; }; - -class TypedProperties { - public int $var; - - protected string $stringA, $stringB; - - private bool - $boolA, - $boolB; -} - -// PHP 8.0 constructor property promotion. -class ConstructorPropertyPromotionTest { - public function __construct( - public $x = 0.0, - protected $y = '', - private $z = null, - $normalParam, - ) {} -} - -class ConstructorPropertyPromotionWithTypesTest { - public function __construct(protected float|int $x, public ?string &$y = 'test', private mixed $z) {} -} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.php index de4697c0c..cc58d4e79 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ScopeKeywordSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ScopeKeywordSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ScopeKeywordSpacingSniff + */ +final class ScopeKeywordSpacingUnitTest extends AbstractSniffUnitTest { @@ -21,30 +26,46 @@ class ScopeKeywordSpacingUnitTest extends AbstractSniffUnitTest * The key of the array should represent the line number and the value * should represent the number of errors that should occur on that line. * + * @param string $testFile The name of the file being tested. + * * @return array */ - public function getErrorList() + public function getErrorList($testFile='') { - return [ - 7 => 2, - 8 => 1, - 13 => 1, - 14 => 1, - 15 => 1, - 17 => 2, - 26 => 1, - 28 => 1, - 29 => 1, - 64 => 1, - 67 => 1, - 71 => 1, - 103 => 1, - 106 => 1, - 111 => 1, - 119 => 1, - 121 => 1, - 127 => 2, - ]; + switch ($testFile) { + case 'ScopeKeywordSpacingUnitTest.1.inc': + return [ + 7 => 2, + 8 => 1, + 13 => 1, + 14 => 1, + 15 => 1, + 17 => 2, + 26 => 1, + 28 => 1, + 29 => 1, + 64 => 1, + 67 => 1, + 71 => 1, + 103 => 1, + 106 => 1, + 111 => 1, + 119 => 1, + 121 => 1, + 127 => 2, + 134 => 2, + 138 => 2, + 140 => 3, + 145 => 1, + 149 => 1, + ]; + + case 'ScopeKeywordSpacingUnitTest.3.inc': + return [6 => 1]; + + default: + return []; + }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc index 393f48454..60f87e5bc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc @@ -18,14 +18,14 @@ $sum = $a /* + $b + $c */ ; /* - * Test that the sniff does *not* throw incorrect errors for semi-colons in + * Test that the sniff does *not* throw incorrect errors for semicolons in * "empty" parts of a `for` control structure. */ for ($i = 1; ; $i++) {} for ( ; $ptr >= 0; $ptr-- ) {} for ( ; ; ) {} -// But it should when the semi-colon in a `for` follows a comment (but shouldn't move the semi-colon). +// But it should when the semicolon in a `for` follows a comment (but shouldn't move the semicolon). for ( /* Deliberately left empty. */ ; $ptr >= 0; $ptr-- ) {} for ( $i = 1 ; /* Deliberately left empty. */ ; $i++ ) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc.fixed index 0d06324de..b4dc0f13e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc.fixed @@ -18,14 +18,14 @@ $sum = $a; /* + $b + $c */ /* - * Test that the sniff does *not* throw incorrect errors for semi-colons in + * Test that the sniff does *not* throw incorrect errors for semicolons in * "empty" parts of a `for` control structure. */ for ($i = 1; ; $i++) {} for ( ; $ptr >= 0; $ptr-- ) {} for ( ; ; ) {} -// But it should when the semi-colon in a `for` follows a comment (but shouldn't move the semi-colon). +// But it should when the semicolon in a `for` follows a comment (but shouldn't move the semicolon). for ( /* Deliberately left empty. */; $ptr >= 0; $ptr-- ) {} for ( $i = 1; /* Deliberately left empty. */; $i++ ) {} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.php index 72196f8e7..218666dc0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SemicolonSpacingUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SemicolonSpacing sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SemicolonSpacingSniff + */ +final class SemicolonSpacingUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class SemicolonSpacingUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='SemicolonSpacingUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'SemicolonSpacingUnitTest.inc': @@ -43,7 +48,7 @@ public function getErrorList($testFile='SemicolonSpacingUnitTest.inc') 30 => 2, 36 => 1, ]; - break; + case 'SemicolonSpacingUnitTest.js': return [ 3 => 1, @@ -56,10 +61,9 @@ public function getErrorList($testFile='SemicolonSpacingUnitTest.inc') 22 => 1, 25 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css index 1dd1b6e6b..e3f3f0291 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css @@ -23,3 +23,10 @@ } /* phpcs:set Squiz.WhiteSpace.SuperfluousWhitespace ignoreBlankLines false */ +// /** +// * This text is in two types of comment: each line is commented out +// * individually, and the whole block is in what looks like a +// * docblock-comment. This sniff should ignore all this text as there +// * is no superfluous white-space here. +// */ + diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css.fixed b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css.fixed index 59ddddb08..11be21d5c 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css.fixed +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css.fixed @@ -21,3 +21,10 @@ float: left; } /* phpcs:set Squiz.WhiteSpace.SuperfluousWhitespace ignoreBlankLines false */ + +// /** +// * This text is in two types of comment: each line is commented out +// * individually, and the whole block is in what looks like a +// * docblock-comment. This sniff should ignore all this text as there +// * is no superfluous white-space here. +// */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.php index b9ff96fbc..4f7c7cdbc 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Squiz\Tests\WhiteSpace; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class SuperfluousWhitespaceUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the SuperfluousWhitespace sniff. + * + * @covers \PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff + */ +final class SuperfluousWhitespaceUnitTest extends AbstractSniffUnitTest { @@ -25,7 +30,7 @@ class SuperfluousWhitespaceUnitTest extends AbstractSniffUnitTest * * @return array */ - public function getErrorList($testFile='SuperfluousWhitespaceUnitTest.inc') + public function getErrorList($testFile='') { switch ($testFile) { case 'SuperfluousWhitespaceUnitTest.1.inc': @@ -44,26 +49,26 @@ public function getErrorList($testFile='SuperfluousWhitespaceUnitTest.inc') 65 => 1, 73 => 1, ]; - break; + case 'SuperfluousWhitespaceUnitTest.2.inc': return [ 2 => 1, 8 => 1, ]; - break; + case 'SuperfluousWhitespaceUnitTest.3.inc': return [ 6 => 1, 10 => 1, ]; - break; + case 'SuperfluousWhitespaceUnitTest.4.inc': case 'SuperfluousWhitespaceUnitTest.5.inc': return [ 1 => 1, 4 => 1, ]; - break; + case 'SuperfluousWhitespaceUnitTest.1.js': return [ 1 => 1, @@ -77,19 +82,18 @@ public function getErrorList($testFile='SuperfluousWhitespaceUnitTest.inc') 38 => 1, 56 => 1, ]; - break; + case 'SuperfluousWhitespaceUnitTest.1.css': return [ 1 => 1, 8 => 1, 9 => 1, 11 => 1, - 25 => 1, + 32 => 1, ]; - break; + default: return []; - break; }//end switch }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php index 5df4b0fc2..454f665a7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php @@ -5,7 +5,9 @@ * @author Holger Kral * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * + * @deprecated 3.9.0 */ namespace PHP_CodeSniffer\Standards\Zend\Sniffs\Debug; @@ -23,7 +25,7 @@ class CodeAnalyzerSniff implements Sniff /** * Returns the token types that this sniff is interested in. * - * @return int[] + * @return array */ public function register() { @@ -46,7 +48,7 @@ public function process(File $phpcsFile, $stackPtr) { $analyzerPath = Config::getExecutablePath('zend_ca'); if ($analyzerPath === null) { - return; + return $phpcsFile->numTokens; } $fileName = $phpcsFile->getFilename(); @@ -67,7 +69,7 @@ public function process(File $phpcsFile, $stackPtr) // provide useful error reporting. if (is_numeric($exitCode) === true && $exitCode > 0) { if (is_array($output) === true) { - $msg = join('\n', $output); + $msg = implode('\n', $output); } throw new RuntimeException("Failed invoking ZendCodeAnalyzer, exitcode was [$exitCode], retval was [$retval], output was [$msg]"); @@ -90,7 +92,7 @@ public function process(File $phpcsFile, $stackPtr) } // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Files/ClosingTagSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Files/ClosingTagSniff.php index 0ed34d13c..7b547bfd8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Files/ClosingTagSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/Files/ClosingTagSniff.php @@ -4,13 +4,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Zend\Sniffs\Files; -use PHP_CodeSniffer\Sniffs\Sniff; use PHP_CodeSniffer\Files\File; +use PHP_CodeSniffer\Sniffs\Sniff; use PHP_CodeSniffer\Util\Tokens; class ClosingTagSniff implements Sniff @@ -20,7 +20,7 @@ class ClosingTagSniff implements Sniff /** * Returns an array of tokens this test wants to listen for. * - * @return array + * @return array */ public function register() { @@ -36,7 +36,7 @@ public function register() * @param int $stackPtr The position of the current token in * the stack passed in $tokens. * - * @return void + * @return int */ public function process(File $phpcsFile, $stackPtr) { @@ -71,7 +71,7 @@ public function process(File $phpcsFile, $stackPtr) }//end if // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); + return $phpcsFile->numTokens; }//end process() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php index 267cd0ad6..41b194810 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php @@ -4,14 +4,14 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Zend\Sniffs\NamingConventions; +use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\AbstractVariableSniff; use PHP_CodeSniffer\Util\Common; -use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Util\Tokens; class ValidVariableNameSniff extends AbstractVariableSniff diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php index efd3b900e..82781a7d6 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Zend\Tests\Debug; @@ -12,14 +12,19 @@ use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; use PHP_CodeSniffer\Config; -class CodeAnalyzerUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the CodeAnalyzer sniff. + * + * @covers \PHP_CodeSniffer\Standards\Zend\Sniffs\Debug\CodeAnalyzerSniff + */ +final class CodeAnalyzerUnitTest extends AbstractSniffUnitTest { /** * Should this test be skipped for some reason. * - * @return void + * @return bool */ protected function shouldSkipTest() { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Files/ClosingTagUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Files/ClosingTagUnitTest.php index 4a42cde09..0a031486b 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Files/ClosingTagUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/Files/ClosingTagUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Zend\Tests\Files; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ClosingTagUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ClosingTag sniff. + * + * @covers \PHP_CodeSniffer\Standards\Zend\Sniffs\Files\ClosingTagSniff + */ +final class ClosingTagUnitTest extends AbstractSniffUnitTest { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.inc b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.inc index 8ed8509d2..3325e1152 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.inc @@ -120,3 +120,12 @@ $anonClass = new class() { echo $obj?->varName; echo $obj?->var_name; echo $obj?->varName; + +enum SomeEnum +{ + public function foo($foo, $_foo, $foo_bar) { + $bar = 1; + $_bar = 2; + $bar_foo = 3; + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.php b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.php index 916b334f1..94316dad1 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Standards\Zend\Tests\NamingConventions; use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -class ValidVariableNameUnitTest extends AbstractSniffUnitTest +/** + * Unit test class for the ValidVariableName sniff. + * + * @covers \PHP_CodeSniffer\Standards\Zend\Sniffs\NamingConventions\ValidVariableNameSniff + */ +final class ValidVariableNameUnitTest extends AbstractSniffUnitTest { @@ -54,6 +59,8 @@ public function getErrorList() 113 => 1, 116 => 1, 121 => 1, + 126 => 1, + 129 => 1, ]; }//end getErrorList() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/CSS.php b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/CSS.php index b7c2018bc..36631ddc3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/CSS.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/CSS.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tokenizers; @@ -22,7 +22,7 @@ class CSS extends PHP * * Pre-checks the content to see if it looks minified. * - * @param string $content The content to tokenize, + * @param string $content The content to tokenize. * @param \PHP_CodeSniffer\Config $config The config data for the run. * @param string $eolChar The EOL char used in the content. * @@ -196,7 +196,11 @@ public function tokenize($string) // The first and last tokens are the open/close tags. array_shift($commentTokens); - array_pop($commentTokens); + $closeTag = array_pop($commentTokens); + + while ($closeTag['content'] !== '?'.'>') { + $closeTag = array_pop($commentTokens); + } if ($leadingZero === true) { $commentTokens[0]['content'] = substr($commentTokens[0]['content'], 1); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Comment.php b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Comment.php index beba53c2b..b7c6e3745 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Comment.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Comment.php @@ -4,12 +4,12 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tokenizers; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; class Comment { @@ -25,7 +25,7 @@ class Comment * @param string $eolChar The EOL character to use for splitting strings. * @param int $stackPtr The position of the first token in the file. * - * @return array + * @return array>> */ public function tokenizeString($string, $eolChar, $stackPtr) { @@ -41,9 +41,16 @@ public function tokenizeString($string, $eolChar, $stackPtr) extra star when they are used for function and class comments. */ - $char = ($numChars - strlen(ltrim($string, '/*'))); - $openTag = substr($string, 0, $char); - $string = ltrim($string, '/*'); + $char = ($numChars - strlen(ltrim($string, '/*'))); + $lastChars = substr($string, -2); + if ($char === $numChars && $lastChars === '*/') { + // Edge case: docblock without whitespace or contents. + $openTag = substr($string, 0, -2); + $string = $lastChars; + } else { + $openTag = substr($string, 0, $char); + $string = ltrim($string, '/*'); + } $tokens[$stackPtr] = [ 'content' => $openTag, @@ -56,7 +63,7 @@ public function tokenizeString($string, $eolChar, $stackPtr) $stackPtr++; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $content = Util\Common::prepareForOutput($openTag); + $content = Common::prepareForOutput($openTag); echo "\t\tCreate comment token: T_DOC_COMMENT_OPEN_TAG => $content".PHP_EOL; } @@ -74,6 +81,7 @@ public function tokenizeString($string, $eolChar, $stackPtr) ]; if ($closeTag['content'] === false) { + // In PHP < 8.0 substr() can return `false` instead of always returning a string. $closeTag['content'] = ''; } @@ -99,7 +107,7 @@ public function tokenizeString($string, $eolChar, $stackPtr) $tokens[$stackPtr] = $space; $stackPtr++; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $content = Util\Common::prepareForOutput($space['content']); + $content = Common::prepareForOutput($space['content']); echo "\t\tCreate comment token: T_DOC_COMMENT_WHITESPACE => $content".PHP_EOL; } @@ -134,7 +142,7 @@ public function tokenizeString($string, $eolChar, $stackPtr) foreach ($lineTokens as $lineToken) { $tokens[$stackPtr] = $lineToken; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $content = Util\Common::prepareForOutput($lineToken['content']); + $content = Common::prepareForOutput($lineToken['content']); $type = $lineToken['type']; echo "\t\tCreate comment token: $type => $content".PHP_EOL; } @@ -150,7 +158,7 @@ public function tokenizeString($string, $eolChar, $stackPtr) $tokens[$stackPtr] = $closeTag; $tokens[$openPtr]['comment_closer'] = $stackPtr; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $content = Util\Common::prepareForOutput($closeTag['content']); + $content = Common::prepareForOutput($closeTag['content']); echo "\t\tCreate comment token: T_DOC_COMMENT_CLOSE_TAG => $content".PHP_EOL; } @@ -171,7 +179,7 @@ public function tokenizeString($string, $eolChar, $stackPtr) * @param int $start The position in the string to start processing. * @param int $end The position in the string to end processing. * - * @return array + * @return array> */ private function processLine($string, $eolChar, $start, $end) { @@ -246,7 +254,7 @@ private function processLine($string, $eolChar, $start, $end) * @param int $start The position in the string to start processing. * @param int $end The position in the string to end processing. * - * @return array|null + * @return array|null */ private function collectWhitespace($string, $start, $end) { @@ -263,14 +271,12 @@ private function collectWhitespace($string, $start, $end) return null; } - $token = [ + return [ 'content' => $space, 'code' => T_DOC_COMMENT_WHITESPACE, 'type' => 'T_DOC_COMMENT_WHITESPACE', ]; - return $token; - }//end collectWhitespace() diff --git a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/JS.php b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/JS.php index ee2f84294..3d1162eb3 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/JS.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/JS.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tokenizers; @@ -251,7 +251,7 @@ class JS extends Tokenizer * * Pre-checks the content to see if it looks minified. * - * @param string $content The content to tokenize, + * @param string $content The content to tokenize. * @param \PHP_CodeSniffer\Config $config The config data for the run. * @param string $eolChar The EOL char used in the content. * @@ -905,10 +905,10 @@ public function tokenize($string) * * If a regular expression is not found, NULL is returned. * - * @param string $char The index of the possible regex start character. + * @param int $char The index of the possible regex start character. * @param string $string The complete content of the string being tokenized. - * @param string $chars An array of characters being tokenized. - * @param string $tokens The current array of tokens found in the string. + * @param array $chars An array of characters being tokenized. + * @param array $tokens The current array of tokens found in the string. * * @return array|null */ diff --git a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/PHP.php b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/PHP.php index 1924cf074..a773ddfa0 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/PHP.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/PHP.php @@ -4,12 +4,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tokenizers; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Tokens; class PHP extends Tokenizer { @@ -152,6 +153,13 @@ class PHP extends Tokenizer 'shared' => false, 'with' => [], ], + T_ENUM => [ + 'start' => [T_OPEN_CURLY_BRACKET => T_OPEN_CURLY_BRACKET], + 'end' => [T_CLOSE_CURLY_BRACKET => T_CLOSE_CURLY_BRACKET], + 'strict' => true, + 'shared' => false, + 'with' => [], + ], T_USE => [ 'start' => [T_OPEN_CURLY_BRACKET => T_OPEN_CURLY_BRACKET], 'end' => [T_CLOSE_CURLY_BRACKET => T_CLOSE_CURLY_BRACKET], @@ -299,7 +307,7 @@ class PHP extends Tokenizer /** * Known lengths of tokens. * - * @var array + * @var array */ public $knownLengths = [ T_ABSTRACT => 8, @@ -339,6 +347,8 @@ class PHP extends Tokenizer T_ENDIF => 5, T_ENDSWITCH => 9, T_ENDWHILE => 8, + T_ENUM => 4, + T_ENUM_CASE => 4, T_EVAL => 4, T_EXTENDS => 7, T_FILE => 8, @@ -393,6 +403,7 @@ class PHP extends Tokenizer T_PRIVATE => 7, T_PUBLIC => 6, T_PROTECTED => 9, + T_READONLY => 8, T_REQUIRE => 7, T_REQUIRE_ONCE => 12, T_RETURN => 6, @@ -452,6 +463,34 @@ class PHP extends Tokenizer T_OPEN_SHORT_ARRAY => 1, T_CLOSE_SHORT_ARRAY => 1, T_TYPE_UNION => 1, + T_TYPE_INTERSECTION => 1, + T_TYPE_OPEN_PARENTHESIS => 1, + T_TYPE_CLOSE_PARENTHESIS => 1, + ]; + + /** + * Contexts in which keywords should always be tokenized as T_STRING. + * + * @var array + */ + protected $tstringContexts = [ + T_OBJECT_OPERATOR => true, + T_NULLSAFE_OBJECT_OPERATOR => true, + T_FUNCTION => true, + T_CLASS => true, + T_INTERFACE => true, + T_TRAIT => true, + T_ENUM => true, + T_ENUM_CASE => true, + T_EXTENDS => true, + T_IMPLEMENTS => true, + T_ATTRIBUTE => true, + T_NEW => true, + T_CONST => true, + T_NS_SEPARATOR => true, + T_USE => true, + T_NAMESPACE => true, + T_PAAMAYIM_NEKUDOTAYIM => true, ]; /** @@ -478,7 +517,7 @@ protected function tokenize($string) if (PHP_CODESNIFFER_VERBOSITY > 1) { echo "\t*** START PHP TOKENIZING ***".PHP_EOL; $isWin = false; - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + if (stripos(PHP_OS, 'WIN') === 0) { $isWin = true; } } @@ -490,8 +529,9 @@ protected function tokenize($string) $numTokens = count($tokens); $lastNotEmptyToken = 0; - $insideInlineIf = []; - $insideUseGroup = false; + $insideInlineIf = []; + $insideUseGroup = false; + $insideConstDeclaration = false; $commentTokenizer = new Comment(); @@ -506,12 +546,12 @@ protected function tokenize($string) if (PHP_CODESNIFFER_VERBOSITY > 1) { if ($tokenIsArray === true) { - $type = Util\Tokens::tokenName($token[0]); - $content = Util\Common::prepareForOutput($token[1]); + $type = Tokens::tokenName($token[0]); + $content = Common::prepareForOutput($token[1]); } else { $newToken = self::resolveSimpleToken($token[0]); $type = $newToken['type']; - $content = Util\Common::prepareForOutput($token[0]); + $content = Common::prepareForOutput($token[0]); } echo "\tProcess token "; @@ -525,7 +565,7 @@ protected function tokenize($string) }//end if if ($newStackPtr > 0 - && isset(Util\Tokens::$emptyTokens[$finalTokens[($newStackPtr - 1)]['code']]) === false + && isset(Tokens::$emptyTokens[$finalTokens[($newStackPtr - 1)]['code']]) === false ) { $lastNotEmptyToken = ($newStackPtr - 1); } @@ -565,13 +605,188 @@ protected function tokenize($string) echo PHP_EOL; } + /* + Tokenize context sensitive keyword as string when it should be string. + */ + + if ($tokenIsArray === true + && isset(Tokens::$contextSensitiveKeywords[$token[0]]) === true + && (isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === true + || $finalTokens[$lastNotEmptyToken]['content'] === '&' + || $insideConstDeclaration === true) + ) { + if (isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === true) { + $preserveKeyword = false; + + // `new class`, and `new static` should be preserved. + if ($finalTokens[$lastNotEmptyToken]['code'] === T_NEW + && ($token[0] === T_CLASS + || $token[0] === T_STATIC) + ) { + $preserveKeyword = true; + } + + // `new readonly class` should be preserved. + if ($finalTokens[$lastNotEmptyToken]['code'] === T_NEW + && strtolower($token[1]) === 'readonly' + ) { + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === false + || isset(Tokens::$emptyTokens[$tokens[$i][0]]) === false + ) { + break; + } + } + + if (is_array($tokens[$i]) === true && $tokens[$i][0] === T_CLASS) { + $preserveKeyword = true; + } + } + + // `new class extends` `new class implements` should be preserved + if (($token[0] === T_EXTENDS || $token[0] === T_IMPLEMENTS) + && $finalTokens[$lastNotEmptyToken]['code'] === T_CLASS + ) { + $preserveKeyword = true; + } + + // `namespace\` should be preserved + if ($token[0] === T_NAMESPACE) { + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === false) { + break; + } + + if (isset(Tokens::$emptyTokens[$tokens[$i][0]]) === true) { + continue; + } + + if ($tokens[$i][0] === T_NS_SEPARATOR) { + $preserveKeyword = true; + } + + break; + } + } + }//end if + + // Types in typed constants should not be touched, but the constant name should be. + if ((isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === true + && $finalTokens[$lastNotEmptyToken]['code'] === T_CONST) + || $insideConstDeclaration === true + ) { + $preserveKeyword = true; + + // Find the next non-empty token. + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === true + && isset(Tokens::$emptyTokens[$tokens[$i][0]]) === true + ) { + continue; + } + + break; + } + + if ($tokens[$i] === '=' || $tokens[$i] === ';') { + $preserveKeyword = false; + $insideConstDeclaration = false; + } + }//end if + + if ($finalTokens[$lastNotEmptyToken]['content'] === '&') { + $preserveKeyword = true; + + for ($i = ($lastNotEmptyToken - 1); $i >= 0; $i--) { + if (isset(Tokens::$emptyTokens[$finalTokens[$i]['code']]) === true) { + continue; + } + + if ($finalTokens[$i]['code'] === T_FUNCTION) { + $preserveKeyword = false; + } + + break; + } + } + + if ($preserveKeyword === false) { + if (PHP_CODESNIFFER_VERBOSITY > 1) { + $type = Tokens::tokenName($token[0]); + echo "\t\t* token $stackPtr changed from $type to T_STRING".PHP_EOL; + } + + $finalTokens[$newStackPtr] = [ + 'code' => T_STRING, + 'type' => 'T_STRING', + 'content' => $token[1], + ]; + + $newStackPtr++; + continue; + } + }//end if + + /* + Mark the start of a constant declaration to allow for handling keyword to T_STRING + convertion for constant names using reserved keywords. + */ + + if ($tokenIsArray === true && $token[0] === T_CONST) { + $insideConstDeclaration = true; + } + + /* + Close an open "inside constant declaration" marker when no keyword convertion was needed. + */ + + if ($insideConstDeclaration === true + && $tokenIsArray === false + && ($token[0] === '=' || $token[0] === ';') + ) { + $insideConstDeclaration = false; + } + + /* + Special case for `static` used as a function name, i.e. `static()`. + + Note: this may incorrectly change the static keyword directly before a DNF property type. + If so, this will be caught and corrected for in the additional processing. + */ + + if ($tokenIsArray === true + && $token[0] === T_STATIC + && $finalTokens[$lastNotEmptyToken]['code'] !== T_NEW + ) { + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === true + && isset(Tokens::$emptyTokens[$tokens[$i][0]]) === true + ) { + continue; + } + + if ($tokens[$i][0] === '(') { + $finalTokens[$newStackPtr] = [ + 'code' => T_STRING, + 'type' => 'T_STRING', + 'content' => $token[1], + ]; + + $newStackPtr++; + continue 2; + } + + break; + } + }//end if + /* Parse doc blocks into something that can be easily iterated over. */ if ($tokenIsArray === true && ($token[0] === T_DOC_COMMENT - || ($token[0] === T_COMMENT && strpos($token[1], '/**') === 0)) + || ($token[0] === T_COMMENT && strpos($token[1], '/**') === 0 && $token[1] !== '/**/')) ) { $commentTokens = $commentTokenizer->tokenizeString($token[1], $this->eolChar, $newStackPtr); foreach ($commentTokens as $commentToken) { @@ -623,6 +838,66 @@ protected function tokenize($string) }//end if }//end if + /* + For Explicit Octal Notation prior to PHP 8.1 we need to combine the + T_LNUMBER and T_STRING token values into a single token value, and + then ignore the T_STRING token. + */ + + if (PHP_VERSION_ID < 80100 + && $tokenIsArray === true && $token[1] === '0' + && (isset($tokens[($stackPtr + 1)]) === true + && is_array($tokens[($stackPtr + 1)]) === true + && $tokens[($stackPtr + 1)][0] === T_STRING + && isset($tokens[($stackPtr + 1)][1][0], $tokens[($stackPtr + 1)][1][1]) === true + && strtolower($tokens[($stackPtr + 1)][1][0]) === 'o' + && $tokens[($stackPtr + 1)][1][1] !== '_') + && preg_match('`^(o[0-7]+(?:_[0-7]+)?)([0-9_]*)$`i', $tokens[($stackPtr + 1)][1], $matches) === 1 + ) { + $finalTokens[$newStackPtr] = [ + 'code' => T_LNUMBER, + 'type' => 'T_LNUMBER', + 'content' => $token[1] .= $matches[1], + ]; + $newStackPtr++; + + if (isset($matches[2]) === true && $matches[2] !== '') { + $type = 'T_LNUMBER'; + if ($matches[2][0] === '_') { + $type = 'T_STRING'; + } + + $finalTokens[$newStackPtr] = [ + 'code' => constant($type), + 'type' => $type, + 'content' => $matches[2], + ]; + $newStackPtr++; + } + + $stackPtr++; + continue; + }//end if + + /* + PHP 8.1 introduced two dedicated tokens for the & character. + Retokenizing both of these to T_BITWISE_AND, which is the + token PHPCS already tokenized them as. + */ + + if ($tokenIsArray === true + && ($token[0] === T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG + || $token[0] === T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG) + ) { + $finalTokens[$newStackPtr] = [ + 'code' => T_BITWISE_AND, + 'type' => 'T_BITWISE_AND', + 'content' => $token[1], + ]; + $newStackPtr++; + continue; + } + /* If this is a double quoted string, PHP will tokenize the whole thing which causes problems with the scope map when braces are @@ -649,7 +924,8 @@ protected function tokenize($string) if ($subTokenIsArray === true) { $tokenContent .= $subToken[1]; - if ($subToken[1] === '{' + if (($subToken[1] === '{' + || $subToken[1] === '${') && $subToken[0] !== T_ENCAPSED_AND_WHITESPACE ) { $nestedVars[] = $i; @@ -828,6 +1104,104 @@ protected function tokenize($string) continue; }//end if + /* + Enum keyword for PHP < 8.1 + */ + + if ($tokenIsArray === true + && $token[0] === T_STRING + && strtolower($token[1]) === 'enum' + ) { + // Get the next non-empty token. + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === false + || isset(Tokens::$emptyTokens[$tokens[$i][0]]) === false + ) { + break; + } + } + + if (isset($tokens[$i]) === true + && is_array($tokens[$i]) === true + && $tokens[$i][0] === T_STRING + ) { + // Modify $tokens directly so we can use it later when converting enum "case". + $tokens[$stackPtr][0] = T_ENUM; + + $newToken = []; + $newToken['code'] = T_ENUM; + $newToken['type'] = 'T_ENUM'; + $newToken['content'] = $token[1]; + $finalTokens[$newStackPtr] = $newToken; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + echo "\t\t* token $stackPtr changed from T_STRING to T_ENUM".PHP_EOL; + } + + $newStackPtr++; + continue; + } + }//end if + + /* + Convert enum "case" to T_ENUM_CASE + */ + + if ($tokenIsArray === true + && $token[0] === T_CASE + && isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === false + ) { + $isEnumCase = false; + $scope = 1; + + for ($i = ($stackPtr - 1); $i > 0; $i--) { + if ($tokens[$i] === '}') { + $scope++; + continue; + } + + if ($tokens[$i] === '{') { + $scope--; + continue; + } + + if (is_array($tokens[$i]) === false) { + continue; + } + + if ($scope !== 0) { + continue; + } + + if ($tokens[$i][0] === T_SWITCH) { + break; + } + + if ($tokens[$i][0] === T_ENUM || $tokens[$i][0] === T_ENUM_CASE) { + $isEnumCase = true; + break; + } + }//end for + + if ($isEnumCase === true) { + // Modify $tokens directly so we can use it as optimisation for other enum "case". + $tokens[$stackPtr][0] = T_ENUM_CASE; + + $newToken = []; + $newToken['code'] = T_ENUM_CASE; + $newToken['type'] = 'T_ENUM_CASE'; + $newToken['content'] = $token[1]; + $finalTokens[$newStackPtr] = $newToken; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + echo "\t\t* token $stackPtr changed from T_CASE to T_ENUM_CASE".PHP_EOL; + } + + $newStackPtr++; + continue; + } + }//end if + /* As of PHP 8.0 fully qualified, partially qualified and namespace relative identifier names are tokenized differently. @@ -895,8 +1269,8 @@ protected function tokenize($string) } if (PHP_CODESNIFFER_VERBOSITY > 1) { - $type = Util\Tokens::tokenName($token[0]); - $content = Util\Common::prepareForOutput($token[1]); + $type = Tokens::tokenName($token[0]); + $content = Common::prepareForOutput($token[1]); echo "\t\t* token $stackPtr split into individual tokens; was: $type => $content".PHP_EOL; } @@ -949,7 +1323,7 @@ protected function tokenize($string) /* Tokenize the parameter labels for PHP 8.0 named parameters as a special T_PARAM_NAME - token and ensure that the colon after it is always T_COLON. + token and ensures that the colon after it is always T_COLON. */ if ($tokenIsArray === true @@ -959,7 +1333,7 @@ protected function tokenize($string) // Get the next non-empty token. for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { if (is_array($tokens[$i]) === false - || isset(Util\Tokens::$emptyTokens[$tokens[$i][0]]) === false + || isset(Tokens::$emptyTokens[$tokens[$i][0]]) === false ) { break; } @@ -972,7 +1346,7 @@ protected function tokenize($string) // Get the previous non-empty token. for ($j = ($stackPtr - 1); $j > 0; $j--) { if (is_array($tokens[$j]) === false - || isset(Util\Tokens::$emptyTokens[$tokens[$j][0]]) === false + || isset(Tokens::$emptyTokens[$tokens[$j][0]]) === false ) { break; } @@ -995,7 +1369,7 @@ protected function tokenize($string) $tokens[$stackPtr][0] = T_PARAM_NAME; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $type = Util\Tokens::tokenName($token[0]); + $type = Tokens::tokenName($token[0]); echo "\t\t* token $stackPtr changed from $type to T_PARAM_NAME".PHP_EOL; } @@ -1004,6 +1378,120 @@ protected function tokenize($string) }//end if }//end if + /* + "readonly" keyword for PHP < 8.1 + */ + + if ($tokenIsArray === true + && strtolower($token[1]) === 'readonly' + && (isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === false + || $finalTokens[$lastNotEmptyToken]['code'] === T_NEW) + ) { + // Get the next non-whitespace token. + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === false + || isset(Tokens::$emptyTokens[$tokens[$i][0]]) === false + ) { + break; + } + } + + $isReadonlyKeyword = false; + + if (isset($tokens[$i]) === false + || $tokens[$i] !== '(' + ) { + $isReadonlyKeyword = true; + } else if ($tokens[$i] === '(') { + /* + * Skip over tokens which can be used in type declarations. + * At this point, the only token types which need to be taken into consideration + * as potential type declarations are identifier names, T_ARRAY, T_CALLABLE and T_NS_SEPARATOR + * and the union/intersection/dnf parentheses. + */ + + $foundDNFParens = 1; + $foundDNFPipe = 0; + + for (++$i; $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === true) { + $tokenType = $tokens[$i][0]; + } else { + $tokenType = $tokens[$i]; + } + + if (isset(Tokens::$emptyTokens[$tokenType]) === true) { + continue; + } + + if ($tokenType === '|') { + ++$foundDNFPipe; + continue; + } + + if ($tokenType === ')') { + ++$foundDNFParens; + continue; + } + + if ($tokenType === '(') { + ++$foundDNFParens; + continue; + } + + if ($tokenType === T_STRING + || $tokenType === T_NAME_FULLY_QUALIFIED + || $tokenType === T_NAME_RELATIVE + || $tokenType === T_NAME_QUALIFIED + || $tokenType === T_ARRAY + || $tokenType === T_NAMESPACE + || $tokenType === T_NS_SEPARATOR + || $tokenType === T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG // PHP 8.0+. + || $tokenType === '&' // PHP < 8.0. + ) { + continue; + } + + // Reached the next token after. + if (($foundDNFParens % 2) === 0 + && $foundDNFPipe >= 1 + && ($tokenType === T_VARIABLE + || $tokenType === T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG) + ) { + $isReadonlyKeyword = true; + } + + break; + }//end for + }//end if + + if ($isReadonlyKeyword === true) { + $finalTokens[$newStackPtr] = [ + 'code' => T_READONLY, + 'type' => 'T_READONLY', + 'content' => $token[1], + ]; + $newStackPtr++; + + if (PHP_CODESNIFFER_VERBOSITY > 1 && $type !== T_READONLY) { + echo "\t\t* token $stackPtr changed from $type to T_READONLY".PHP_EOL; + } + } else { + $finalTokens[$newStackPtr] = [ + 'code' => T_STRING, + 'type' => 'T_STRING', + 'content' => $token[1], + ]; + $newStackPtr++; + + if (PHP_CODESNIFFER_VERBOSITY > 1 && $type !== T_STRING) { + echo "\t\t* token $stackPtr changed from $type to T_STRING".PHP_EOL; + } + }//end if + + continue; + }//end if + /* Before PHP 7.0, the "yield from" was tokenized as T_YIELD, T_WHITESPACE and T_STRING. So look for @@ -1026,8 +1514,8 @@ protected function tokenize($string) if (PHP_CODESNIFFER_VERBOSITY > 1) { for ($i = ($stackPtr + 1); $i <= ($stackPtr + 2); $i++) { - $type = Util\Tokens::tokenName($tokens[$i][0]); - $content = Util\Common::prepareForOutput($tokens[$i][1]); + $type = Tokens::tokenName($tokens[$i][0]); + $content = Common::prepareForOutput($tokens[$i][1]); echo "\t\t* token $i merged into T_YIELD_FROM; was: $type => $content".PHP_EOL; } } @@ -1047,6 +1535,7 @@ protected function tokenize($string) && $tokenIsArray === true && $token[0] === T_STRING && strtolower($token[1]) === 'yield' + && isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === false ) { if (isset($tokens[($stackPtr + 1)]) === true && isset($tokens[($stackPtr + 2)]) === true @@ -1060,8 +1549,8 @@ protected function tokenize($string) if (PHP_CODESNIFFER_VERBOSITY > 1) { for ($i = ($stackPtr + 1); $i <= ($stackPtr + 2); $i++) { - $type = Util\Tokens::tokenName($tokens[$i][0]); - $content = Util\Common::prepareForOutput($tokens[$i][1]); + $type = Tokens::tokenName($tokens[$i][0]); + $content = Common::prepareForOutput($tokens[$i][1]); echo "\t\t* token $i merged into T_YIELD_FROM; was: $type => $content".PHP_EOL; } } @@ -1288,8 +1777,9 @@ protected function tokenize($string) if ($newType === T_LNUMBER && ((stripos($newContent, '0x') === 0 && hexdec(str_replace('_', '', $newContent)) > PHP_INT_MAX) || (stripos($newContent, '0b') === 0 && bindec(str_replace('_', '', $newContent)) > PHP_INT_MAX) + || (stripos($newContent, '0o') === 0 && octdec(str_replace('_', '', $newContent)) > PHP_INT_MAX) || (stripos($newContent, '0x') !== 0 - && stripos($newContent, 'e') !== false || strpos($newContent, '.') !== false) + && (stripos($newContent, 'e') !== false || strpos($newContent, '.') !== false)) || (strpos($newContent, '0') === 0 && stripos($newContent, '0x') !== 0 && stripos($newContent, '0b') !== 0 && octdec(str_replace('_', '', $newContent)) > PHP_INT_MAX) || (strpos($newContent, '0') !== 0 && str_replace('_', '', $newContent) > PHP_INT_MAX)) @@ -1299,7 +1789,7 @@ protected function tokenize($string) $newToken = []; $newToken['code'] = $newType; - $newToken['type'] = Util\Tokens::tokenName($newType); + $newToken['type'] = Tokens::tokenName($newType); $newToken['content'] = $newContent; $finalTokens[$newStackPtr] = $newToken; @@ -1323,7 +1813,7 @@ protected function tokenize($string) ) { $isMatch = false; for ($x = ($stackPtr + 1); $x < $numTokens; $x++) { - if (isset($tokens[$x][0], Util\Tokens::$emptyTokens[$tokens[$x][0]]) === true) { + if (isset($tokens[$x][0], Tokens::$emptyTokens[$tokens[$x][0]]) === true) { continue; } @@ -1332,16 +1822,7 @@ protected function tokenize($string) break; } - $notMatchContext = [ - T_PAAMAYIM_NEKUDOTAYIM => true, - T_OBJECT_OPERATOR => true, - T_NULLSAFE_OBJECT_OPERATOR => true, - T_NS_SEPARATOR => true, - T_NEW => true, - T_FUNCTION => true, - ]; - - if (isset($notMatchContext[$finalTokens[$lastNotEmptyToken]['code']]) === true) { + if (isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === true) { // Also not a match expression. break; } @@ -1388,64 +1869,42 @@ protected function tokenize($string) if ($tokenIsArray === true && $token[0] === T_DEFAULT + && isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === false ) { - $ignoreContext = [ - T_OBJECT_OPERATOR => true, - T_NULLSAFE_OBJECT_OPERATOR => true, - T_NS_SEPARATOR => true, - T_PAAMAYIM_NEKUDOTAYIM => true, - ]; - - if (isset($ignoreContext[$finalTokens[$lastNotEmptyToken]['code']]) === false) { - for ($x = ($stackPtr + 1); $x < $numTokens; $x++) { - if ($tokens[$x] === ',') { - // Skip over potential trailing comma (supported in PHP). - continue; - } - - if (is_array($tokens[$x]) === false - || isset(Util\Tokens::$emptyTokens[$tokens[$x][0]]) === false - ) { - // Non-empty, non-comma content. - break; - } + for ($x = ($stackPtr + 1); $x < $numTokens; $x++) { + if ($tokens[$x] === ',') { + // Skip over potential trailing comma (supported in PHP). + continue; } - if (isset($tokens[$x]) === true - && is_array($tokens[$x]) === true - && $tokens[$x][0] === T_DOUBLE_ARROW + if (is_array($tokens[$x]) === false + || isset(Tokens::$emptyTokens[$tokens[$x][0]]) === false ) { - // Modify the original token stack for the double arrow so that - // future checks can disregard the double arrow token more easily. - // For match expression "case" statements, this is handled - // in PHP::processAdditional(). - $tokens[$x][0] = T_MATCH_ARROW; - if (PHP_CODESNIFFER_VERBOSITY > 1) { - echo "\t\t* token $x changed from T_DOUBLE_ARROW to T_MATCH_ARROW".PHP_EOL; - } - - $newToken = []; - $newToken['code'] = T_MATCH_DEFAULT; - $newToken['type'] = 'T_MATCH_DEFAULT'; - $newToken['content'] = $token[1]; + // Non-empty, non-comma content. + break; + } + } - if (PHP_CODESNIFFER_VERBOSITY > 1) { - echo "\t\t* token $stackPtr changed from T_DEFAULT to T_MATCH_DEFAULT".PHP_EOL; - } + if (isset($tokens[$x]) === true + && is_array($tokens[$x]) === true + && $tokens[$x][0] === T_DOUBLE_ARROW + ) { + // Modify the original token stack for the double arrow so that + // future checks can disregard the double arrow token more easily. + // For match expression "case" statements, this is handled + // in PHP::processAdditional(). + $tokens[$x][0] = T_MATCH_ARROW; + if (PHP_CODESNIFFER_VERBOSITY > 1) { + echo "\t\t* token $x changed from T_DOUBLE_ARROW to T_MATCH_ARROW".PHP_EOL; + } - $finalTokens[$newStackPtr] = $newToken; - $newStackPtr++; - continue; - }//end if - } else { - // Definitely not the "default" keyword. $newToken = []; - $newToken['code'] = T_STRING; - $newToken['type'] = 'T_STRING'; + $newToken['code'] = T_MATCH_DEFAULT; + $newToken['type'] = 'T_MATCH_DEFAULT'; $newToken['content'] = $token[1]; if (PHP_CODESNIFFER_VERBOSITY > 1) { - echo "\t\t* token $stackPtr changed from T_DEFAULT to T_STRING".PHP_EOL; + echo "\t\t* token $stackPtr changed from T_DEFAULT to T_MATCH_DEFAULT".PHP_EOL; } $finalTokens[$newStackPtr] = $newToken; @@ -1462,6 +1921,20 @@ protected function tokenize($string) $newToken = []; $newToken['content'] = '?'; + // For typed constants, we only need to check the token before the ? to be sure. + if ($finalTokens[$lastNotEmptyToken]['code'] === T_CONST) { + $newToken['code'] = T_NULLABLE; + $newToken['type'] = 'T_NULLABLE'; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + echo "\t\t* token $stackPtr changed from ? to T_NULLABLE".PHP_EOL; + } + + $finalTokens[$newStackPtr] = $newToken; + $newStackPtr++; + continue; + } + /* * Check if the next non-empty token is one of the tokens which can be used * in type declarations. If not, it's definitely a ternary. @@ -1478,7 +1951,7 @@ protected function tokenize($string) $tokenType = $tokens[$i]; } - if (isset(Util\Tokens::$emptyTokens[$tokenType]) === true) { + if (isset(Tokens::$emptyTokens[$tokenType]) === true) { continue; } @@ -1547,10 +2020,10 @@ protected function tokenize($string) } if ($prevNonEmpty === null - && isset(Util\Tokens::$emptyTokens[$tokenType]) === false + && isset(Tokens::$emptyTokens[$tokenType]) === false ) { // Found the previous non-empty token. - if ($tokenType === ':' || $tokenType === ',') { + if ($tokenType === ':' || $tokenType === ',' || $tokenType === T_ATTRIBUTE_END) { $newToken['code'] = T_NULLABLE; $newToken['type'] = 'T_NULLABLE'; @@ -1566,7 +2039,7 @@ protected function tokenize($string) if ($tokenType === T_FUNCTION || $tokenType === T_FN - || isset(Util\Tokens::$methodPrefixes[$tokenType]) === true + || isset(Tokens::$methodPrefixes[$tokenType]) === true || $tokenType === T_VAR ) { if (PHP_CODESNIFFER_VERBOSITY > 1) { @@ -1588,7 +2061,7 @@ protected function tokenize($string) break; } - if (isset(Util\Tokens::$emptyTokens[$tokenType]) === false) { + if (isset(Tokens::$emptyTokens[$tokenType]) === false) { $lastSeenNonEmpty = $tokenType; } }//end for @@ -1611,7 +2084,7 @@ protected function tokenize($string) && $token[0] !== T_STRING && $token[0] !== T_VARIABLE && $token[0] !== T_DOLLAR - && isset(Util\Tokens::$emptyTokens[$token[0]]) === false + && isset(Tokens::$emptyTokens[$token[0]]) === false ) { $newToken = []; $newToken['code'] = T_STRING; @@ -1642,14 +2115,9 @@ protected function tokenize($string) } /* - The string-like token after a function keyword should always be - tokenized as T_STRING even if it appears to be a different token, - such as when writing code like: function default(): foo - so go forward and change the token type before it is processed. - - Note: this should not be done for `function Level\Name` within a - group use statement for the PHP 8 identifier name tokens as it - would interfere with the re-tokenization of those. + This is a special condition for T_ARRAY tokens used for + function return types. We want to keep the parenthesis map clean, + so let's tag these tokens as T_STRING. */ if ($tokenIsArray === true @@ -1657,36 +2125,6 @@ protected function tokenize($string) || $token[0] === T_FN) && $finalTokens[$lastNotEmptyToken]['code'] !== T_USE ) { - if ($token[0] === T_FUNCTION) { - for ($x = ($stackPtr + 1); $x < $numTokens; $x++) { - if (is_array($tokens[$x]) === false - || isset(Util\Tokens::$emptyTokens[$tokens[$x][0]]) === false - ) { - // Non-empty content. - break; - } - } - - if ($x < $numTokens - && is_array($tokens[$x]) === true - && $tokens[$x][0] !== T_STRING - && $tokens[$x][0] !== T_NAME_QUALIFIED - ) { - if (PHP_CODESNIFFER_VERBOSITY > 1) { - $oldType = Util\Tokens::tokenName($tokens[$x][0]); - echo "\t\t* token $x changed from $oldType to T_STRING".PHP_EOL; - } - - $tokens[$x][0] = T_STRING; - } - }//end if - - /* - This is a special condition for T_ARRAY tokens used for - function return types. We want to keep the parenthesis map clean, - so let's tag these tokens as T_STRING. - */ - // Go looking for the colon to start the return type hint. // Start by finding the closing parenthesis of the function. $parenthesisStack = []; @@ -1706,7 +2144,7 @@ function return types. We want to keep the parenthesis map clean, if ($parenthesisCloser !== false) { for ($x = ($parenthesisCloser + 1); $x < $numTokens; $x++) { if (is_array($tokens[$x]) === false - || isset(Util\Tokens::$emptyTokens[$tokens[$x][0]]) === false + || isset(Tokens::$emptyTokens[$tokens[$x][0]]) === false ) { // Non-empty content. if (is_array($tokens[$x]) === true && $tokens[$x][0] === T_USE) { @@ -1726,26 +2164,10 @@ function return types. We want to keep the parenthesis map clean, && is_array($tokens[$x]) === false && $tokens[$x] === ':' ) { - $allowed = [ - T_STRING => T_STRING, - T_NAME_FULLY_QUALIFIED => T_NAME_FULLY_QUALIFIED, - T_NAME_RELATIVE => T_NAME_RELATIVE, - T_NAME_QUALIFIED => T_NAME_QUALIFIED, - T_ARRAY => T_ARRAY, - T_CALLABLE => T_CALLABLE, - T_SELF => T_SELF, - T_PARENT => T_PARENT, - T_NAMESPACE => T_NAMESPACE, - T_STATIC => T_STATIC, - T_NS_SEPARATOR => T_NS_SEPARATOR, - ]; - - $allowed += Util\Tokens::$emptyTokens; - // Find the start of the return type. for ($x += 1; $x < $numTokens; $x++) { if (is_array($tokens[$x]) === true - && isset(Util\Tokens::$emptyTokens[$tokens[$x][0]]) === true + && isset(Tokens::$emptyTokens[$tokens[$x][0]]) === true ) { // Whitespace or comments before the return type. continue; @@ -1769,23 +2191,6 @@ function return types. We want to keep the parenthesis map clean, break; }//end for - - // Any T_ARRAY tokens we find between here and the next - // token that can't be part of the return type, need to be - // converted to T_STRING tokens. - for ($x; $x < $numTokens; $x++) { - if ((is_array($tokens[$x]) === false && $tokens[$x] !== '|') - || (is_array($tokens[$x]) === true && isset($allowed[$tokens[$x][0]]) === false) - ) { - break; - } else if (is_array($tokens[$x]) === true && $tokens[$x][0] === T_ARRAY) { - $tokens[$x][0] = T_STRING; - - if (PHP_CODESNIFFER_VERBOSITY > 1) { - echo "\t\t* token $x changed from T_ARRAY to T_STRING".PHP_EOL; - } - } - } }//end if }//end if }//end if @@ -1833,6 +2238,7 @@ function return types. We want to keep the parenthesis map clean, T_OPEN_TAG => true, T_OPEN_CURLY_BRACKET => true, T_INLINE_THEN => true, + T_ENUM => true, ]; for ($x = ($newStackPtr - 1); $x > 0; $x--) { @@ -1843,6 +2249,7 @@ function return types. We want to keep the parenthesis map clean, if ($finalTokens[$x]['code'] !== T_CASE && $finalTokens[$x]['code'] !== T_INLINE_THEN + && $finalTokens[$x]['code'] !== T_ENUM ) { $finalTokens[$newStackPtr] = [ 'content' => $token[1].':', @@ -1872,7 +2279,7 @@ function return types. We want to keep the parenthesis map clean, $tokenLines = explode($this->eolChar, $token[1]); $numLines = count($tokenLines); $newToken = [ - 'type' => Util\Tokens::tokenName($token[0]), + 'type' => Tokens::tokenName($token[0]), 'code' => $token[0], 'content' => '', ]; @@ -1891,47 +2298,84 @@ function return types. We want to keep the parenthesis map clean, $newStackPtr++; } } else { + // Some T_STRING tokens should remain that way due to their context. if ($tokenIsArray === true && $token[0] === T_STRING) { - // Some T_STRING tokens should remain that way - // due to their context. - $context = [ - T_OBJECT_OPERATOR => true, - T_NULLSAFE_OBJECT_OPERATOR => true, - T_FUNCTION => true, - T_CLASS => true, - T_EXTENDS => true, - T_IMPLEMENTS => true, - T_ATTRIBUTE => true, - T_NEW => true, - T_CONST => true, - T_NS_SEPARATOR => true, - T_USE => true, - T_NAMESPACE => true, - T_PAAMAYIM_NEKUDOTAYIM => true, - ]; + $preserveTstring = false; + + // True/false/parent/self/static in typed constants should be fixed to their own token, + // but the constant name should not be. + if ((isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === true + && $finalTokens[$lastNotEmptyToken]['code'] === T_CONST) + || $insideConstDeclaration === true + ) { + // Find the next non-empty token. + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === true + && isset(Tokens::$emptyTokens[$tokens[$i][0]]) === true + ) { + continue; + } + + break; + } - if (isset($context[$finalTokens[$lastNotEmptyToken]['code']]) === true) { - // Special case for syntax like: return new self - // where self should not be a string. + if ($tokens[$i] === '=') { + $preserveTstring = true; + $insideConstDeclaration = false; + } + } else if (isset($this->tstringContexts[$finalTokens[$lastNotEmptyToken]['code']]) === true + && $finalTokens[$lastNotEmptyToken]['code'] !== T_CONST + ) { + $preserveTstring = true; + + // Special case for syntax like: return new self/new parent + // where self/parent should not be a string. + $tokenContentLower = strtolower($token[1]); if ($finalTokens[$lastNotEmptyToken]['code'] === T_NEW - && strtolower($token[1]) === 'self' + && ($tokenContentLower === 'self' || $tokenContentLower === 'parent') ) { - $finalTokens[$newStackPtr] = [ - 'content' => $token[1], - 'code' => T_SELF, - 'type' => 'T_SELF', - ]; - } else { - $finalTokens[$newStackPtr] = [ - 'content' => $token[1], - 'code' => T_STRING, - 'type' => 'T_STRING', - ]; + $preserveTstring = false; + } + } else if ($finalTokens[$lastNotEmptyToken]['content'] === '&') { + // Function names for functions declared to return by reference. + for ($i = ($lastNotEmptyToken - 1); $i >= 0; $i--) { + if (isset(Tokens::$emptyTokens[$finalTokens[$i]['code']]) === true) { + continue; + } + + if ($finalTokens[$i]['code'] === T_FUNCTION) { + $preserveTstring = true; + } + + break; + } + } else { + // Keywords with special PHPCS token when used as a function call. + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === true + && isset(Tokens::$emptyTokens[$tokens[$i][0]]) === true + ) { + continue; + } + + if ($tokens[$i][0] === '(') { + $preserveTstring = true; + } + + break; } + }//end if + + if ($preserveTstring === true) { + $finalTokens[$newStackPtr] = [ + 'code' => T_STRING, + 'type' => 'T_STRING', + 'content' => $token[1], + ]; $newStackPtr++; continue; - }//end if + } }//end if $newToken = null; @@ -1966,7 +2410,7 @@ function return types. We want to keep the parenthesis map clean, // Get the previous non-empty token. for ($i = ($stackPtr - 1); $i > 0; $i--) { if (is_array($tokens[$i]) === false - || isset(Util\Tokens::$emptyTokens[$tokens[$i][0]]) === false + || isset(Tokens::$emptyTokens[$tokens[$i][0]]) === false ) { break; } @@ -2046,11 +2490,12 @@ function return types. We want to keep the parenthesis map clean, if (is_array($tokens[$i]) === false && ($tokens[$i] === ';' - || $tokens[$i] === '{') + || $tokens[$i] === '{' + || $tokens[$i] === '}') ) { break; } - } + }//end for }//end if if ($isInlineIf === true) { @@ -2064,41 +2509,37 @@ function return types. We want to keep the parenthesis map clean, } }//end if - // This is a special condition for T_ARRAY tokens used for - // type hinting function arguments as being arrays. We want to keep - // the parenthesis map clean, so let's tag these tokens as + // This is a special condition for T_ARRAY tokens used for anything else + // but array declarations, like type hinting function arguments as + // being arrays. + // We want to keep the parenthesis map clean, so let's tag these tokens as // T_STRING. if ($newToken['code'] === T_ARRAY) { - for ($i = $stackPtr; $i < $numTokens; $i++) { - if ($tokens[$i] === '(') { - break; - } else if ($tokens[$i][0] === T_VARIABLE) { - $newToken['code'] = T_STRING; - $newToken['type'] = 'T_STRING'; + for ($i = ($stackPtr + 1); $i < $numTokens; $i++) { + if (is_array($tokens[$i]) === false + || isset(Tokens::$emptyTokens[$tokens[$i][0]]) === false + ) { + // Non-empty content. break; } } + + if ($i !== $numTokens && $tokens[$i] !== '(') { + $newToken['code'] = T_STRING; + $newToken['type'] = 'T_STRING'; + } } // This is a special case when checking PHP 5.5+ code in PHP < 5.5 // where "finally" should be T_FINALLY instead of T_STRING. if ($newToken['code'] === T_STRING && strtolower($newToken['content']) === 'finally' + && $finalTokens[$lastNotEmptyToken]['code'] === T_CLOSE_CURLY_BRACKET ) { $newToken['code'] = T_FINALLY; $newToken['type'] = 'T_FINALLY'; } - // This is a special case for the PHP 5.5 classname::class syntax - // where "class" should be T_STRING instead of T_CLASS. - if (($newToken['code'] === T_CLASS - || $newToken['code'] === T_FUNCTION) - && $finalTokens[$lastNotEmptyToken]['code'] === T_DOUBLE_COLON - ) { - $newToken['code'] = T_STRING; - $newToken['type'] = 'T_STRING'; - } - // This is a special case for PHP 5.6 use function and use const // where "function" and "const" should be T_STRING instead of T_FUNCTION // and T_CONST. @@ -2161,7 +2602,9 @@ protected function processAdditional() $this->createAttributesNestingMap(); - $numTokens = count($this->tokens); + $numTokens = count($this->tokens); + $lastSeenTypeToken = $numTokens; + for ($i = ($numTokens - 1); $i >= 0; $i--) { // Check for any unset scope conditions due to alternate IF/ENDIF syntax. if (isset($this->tokens[$i]['scope_opener']) === true @@ -2178,7 +2621,7 @@ protected function processAdditional() if (isset($this->tokens[$i]['scope_opener']) === true) { for ($x = ($i + 1); $x < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false && $this->tokens[$x]['code'] !== T_BITWISE_AND ) { break; @@ -2214,7 +2657,7 @@ protected function processAdditional() */ for ($x = ($i + 1); $x < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { break; } } @@ -2265,7 +2708,7 @@ protected function processAdditional() } else if ($this->tokens[$i]['code'] === T_FN && isset($this->tokens[($i + 1)]) === true) { // Possible arrow function. for ($x = ($i + 1); $x < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false && $this->tokens[$x]['code'] !== T_BITWISE_AND ) { // Non-whitespace content. @@ -2274,19 +2717,25 @@ protected function processAdditional() } if (isset($this->tokens[$x]) === true && $this->tokens[$x]['code'] === T_OPEN_PARENTHESIS) { - $ignore = Util\Tokens::$emptyTokens; + $ignore = Tokens::$emptyTokens; $ignore += [ - T_STRING => T_STRING, - T_ARRAY => T_ARRAY, - T_COLON => T_COLON, - T_NAMESPACE => T_NAMESPACE, - T_NS_SEPARATOR => T_NS_SEPARATOR, - T_NULLABLE => T_NULLABLE, - T_CALLABLE => T_CALLABLE, - T_PARENT => T_PARENT, - T_SELF => T_SELF, - T_STATIC => T_STATIC, - T_TYPE_UNION => T_TYPE_UNION, + T_ARRAY => T_ARRAY, + T_CALLABLE => T_CALLABLE, + T_COLON => T_COLON, + T_NAMESPACE => T_NAMESPACE, + T_NS_SEPARATOR => T_NS_SEPARATOR, + T_NULL => T_NULL, + T_TRUE => T_TRUE, + T_FALSE => T_FALSE, + T_NULLABLE => T_NULLABLE, + T_PARENT => T_PARENT, + T_SELF => T_SELF, + T_STATIC => T_STATIC, + T_STRING => T_STRING, + T_TYPE_UNION => T_TYPE_UNION, + T_TYPE_INTERSECTION => T_TYPE_INTERSECTION, + T_TYPE_OPEN_PARENTHESIS => T_TYPE_OPEN_PARENTHESIS, + T_TYPE_CLOSE_PARENTHESIS => T_TYPE_CLOSE_PARENTHESIS, ]; $closer = $this->tokens[$x]['parenthesis_closer']; @@ -2331,7 +2780,7 @@ protected function processAdditional() } for ($lastNonEmpty = ($scopeCloser - 1); $lastNonEmpty > $arrow; $lastNonEmpty--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$lastNonEmpty]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$lastNonEmpty]['code']]) === false) { $scopeCloser = $lastNonEmpty; break 2; } @@ -2340,11 +2789,13 @@ protected function processAdditional() if (isset($endTokens[$this->tokens[$scopeCloser]['code']]) === true) { if ($lastEndToken !== null - && $this->tokens[$scopeCloser]['code'] === T_CLOSE_PARENTHESIS - && $this->tokens[$scopeCloser]['parenthesis_opener'] < $arrow + && ((isset($this->tokens[$scopeCloser]['parenthesis_opener']) === true + && $this->tokens[$scopeCloser]['parenthesis_opener'] < $arrow) + || (isset($this->tokens[$scopeCloser]['bracket_opener']) === true + && $this->tokens[$scopeCloser]['bracket_opener'] < $arrow)) ) { for ($lastNonEmpty = ($scopeCloser - 1); $lastNonEmpty > $arrow; $lastNonEmpty--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$lastNonEmpty]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$lastNonEmpty]['code']]) === false) { $scopeCloser = $lastNonEmpty; break; } @@ -2354,6 +2805,16 @@ protected function processAdditional() break; } + if ($inTernary === false + && isset($this->tokens[$scopeCloser]['scope_closer'], $this->tokens[$scopeCloser]['scope_condition']) === true + && $scopeCloser === $this->tokens[$scopeCloser]['scope_closer'] + && $this->tokens[$this->tokens[$scopeCloser]['scope_condition']]['code'] === T_FN + ) { + // Found a nested arrow function that already has the closer set and is in + // the same scope as us, so we can use its closer. + break; + } + if (isset($this->tokens[$scopeCloser]['scope_closer']) === true && $this->tokens[$scopeCloser]['code'] !== T_INLINE_ELSE && $this->tokens[$scopeCloser]['code'] !== T_END_HEREDOC @@ -2463,7 +2924,7 @@ protected function processAdditional() T_CONSTANT_ENCAPSED_STRING => T_CONSTANT_ENCAPSED_STRING, T_DOUBLE_QUOTED_STRING => T_DOUBLE_QUOTED_STRING, ]; - $allowed += Util\Tokens::$magicConstants; + $allowed += Tokens::$magicConstants; for ($x = ($i - 1); $x >= 0; $x--) { // If we hit a scope opener, the statement has ended @@ -2474,14 +2935,19 @@ protected function processAdditional() break; } - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { - if (isset($allowed[$this->tokens[$x]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { + // Allow for control structures without braces. + if (($this->tokens[$x]['code'] === T_CLOSE_PARENTHESIS + && isset($this->tokens[$x]['parenthesis_owner']) === true + && isset(Tokens::$scopeOpeners[$this->tokens[$this->tokens[$x]['parenthesis_owner']]['code']]) === true) + || isset($allowed[$this->tokens[$x]['code']]) === false + ) { $isShortArray = true; } break; } - } + }//end for if ($isShortArray === true) { $this->tokens[$i]['code'] = T_OPEN_SHORT_ARRAY; @@ -2535,7 +3001,7 @@ protected function processAdditional() T_OPEN_SHORT_ARRAY => T_OPEN_SHORT_ARRAY, T_DOUBLE_ARROW => T_DOUBLE_ARROW, ]; - $searchFor += Util\Tokens::$scopeOpeners; + $searchFor += Tokens::$scopeOpeners; for ($x = ($this->tokens[$i]['scope_opener'] + 1); $x < $this->tokens[$i]['scope_closer']; $x++) { if (isset($searchFor[$this->tokens[$x]['code']]) === false) { @@ -2570,9 +3036,22 @@ protected function processAdditional() }//end if continue; - } else if ($this->tokens[$i]['code'] === T_BITWISE_OR) { + } else if ($this->tokens[$i]['code'] === T_BITWISE_OR + || $this->tokens[$i]['code'] === T_BITWISE_AND + || $this->tokens[$i]['code'] === T_CLOSE_PARENTHESIS + ) { + if ($lastSeenTypeToken < $i) { + // We've already examined this code to check if it is a type declaration and concluded it wasn't. + // No need to do it again. + continue; + } + /* Convert "|" to T_TYPE_UNION or leave as T_BITWISE_OR. + Convert "&" to T_TYPE_INTERSECTION or leave as T_BITWISE_AND. + Convert "(" and ")" to T_TYPE_(OPEN|CLOSE)_PARENTHESIS or leave as T_(OPEN|CLOSE)_PARENTHESIS. + + All type related tokens will be converted in one go as soon as this section is hit. */ $allowed = [ @@ -2582,24 +3061,28 @@ protected function processAdditional() T_PARENT => T_PARENT, T_STATIC => T_STATIC, T_FALSE => T_FALSE, + T_TRUE => T_TRUE, T_NULL => T_NULL, + T_NAMESPACE => T_NAMESPACE, T_NS_SEPARATOR => T_NS_SEPARATOR, ]; - $suspectedType = null; - $typeTokenCount = 0; + $suspectedType = null; + $typeTokenCountAfter = 0; for ($x = ($i + 1); $x < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { continue; } if (isset($allowed[$this->tokens[$x]['code']]) === true) { - ++$typeTokenCount; + ++$typeTokenCountAfter; continue; } - if ($typeTokenCount > 0 + if (($typeTokenCountAfter > 0 + || ($this->tokens[$i]['code'] === T_CLOSE_PARENTHESIS + && isset($this->tokens[$i]['parenthesis_owner']) === false)) && ($this->tokens[$x]['code'] === T_BITWISE_AND || $this->tokens[$x]['code'] === T_ELLIPSIS) ) { @@ -2630,48 +3113,143 @@ protected function processAdditional() && $this->tokens[$this->tokens[$x]['scope_condition']]['code'] === T_FUNCTION ) { $suspectedType = 'return'; + break; + } + + if ($this->tokens[$x]['code'] === T_EQUAL) { + // Possible constant declaration, the `T_STRING` name will have been skipped over already. + $suspectedType = 'constant'; + break; } break; }//end for - if ($typeTokenCount === 0 || isset($suspectedType) === false) { - // Definitely not a union type, move on. + if (($typeTokenCountAfter === 0 + && ($this->tokens[$i]['code'] !== T_CLOSE_PARENTHESIS + || isset($this->tokens[$i]['parenthesis_owner']) === true)) + || isset($suspectedType) === false + ) { + // Definitely not a union, intersection or DNF type, move on. continue; } - $typeTokenCount = 0; - $unionOperators = [$i]; - $confirmed = false; + if ($suspectedType === 'property or parameter') { + unset($allowed[T_STATIC]); + } + + $typeTokenCountBefore = 0; + $typeOperators = [$i]; + $parenthesesCount = 0; + $confirmed = false; + $maybeNullable = null; + + if ($this->tokens[$i]['code'] === T_OPEN_PARENTHESIS || $this->tokens[$i]['code'] === T_CLOSE_PARENTHESIS) { + ++$parenthesesCount; + } for ($x = ($i - 1); $x >= 0; $x--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { continue; } + if ($suspectedType === 'property or parameter' + && $this->tokens[$x]['code'] === T_STRING + && strtolower($this->tokens[$x]['content']) === 'static' + ) { + // Static keyword followed directly by an open parenthesis for a DNF type. + // This token should be T_STATIC and was incorrectly identified as a function call before. + $this->tokens[$x]['code'] = T_STATIC; + $this->tokens[$x]['type'] = 'T_STATIC'; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + $line = $this->tokens[$x]['line']; + echo "\t* token $x on line $line changed back from T_STRING to T_STATIC".PHP_EOL; + } + } + + if ($suspectedType === 'property or parameter' + && $this->tokens[$x]['code'] === T_OPEN_PARENTHESIS + ) { + // We need to prevent the open parenthesis for a function/fn declaration from being retokenized + // to T_TYPE_OPEN_PARENTHESIS if this is the first parameter in the declaration. + if (isset($this->tokens[$x]['parenthesis_owner']) === true + && $this->tokens[$this->tokens[$x]['parenthesis_owner']]['code'] === T_FUNCTION + ) { + $confirmed = true; + break; + } else { + // This may still be an arrow function which hasn't been handled yet. + for ($y = ($x - 1); $y > 0; $y--) { + if (isset(Tokens::$emptyTokens[$this->tokens[$y]['code']]) === false + && $this->tokens[$y]['code'] !== T_BITWISE_AND + ) { + // Non-whitespace content. + break; + } + } + + if ($this->tokens[$y]['code'] === T_FN) { + $confirmed = true; + break; + } + } + }//end if + if (isset($allowed[$this->tokens[$x]['code']]) === true) { - ++$typeTokenCount; + ++$typeTokenCountBefore; continue; } - // Union types can't use the nullable operator, but be tolerant to parse errors. - if ($typeTokenCount > 0 && $this->tokens[$x]['code'] === T_NULLABLE) { + // Union, intersection and DNF types can't use the nullable operator, but be tolerant to parse errors. + if (($typeTokenCountBefore > 0 + || ($this->tokens[$x]['code'] === T_OPEN_PARENTHESIS && isset($this->tokens[$x]['parenthesis_owner']) === false)) + && ($this->tokens[$x]['code'] === T_NULLABLE + || $this->tokens[$x]['code'] === T_INLINE_THEN) + ) { + if ($this->tokens[$x]['code'] === T_INLINE_THEN) { + $maybeNullable = $x; + } + continue; } - if ($this->tokens[$x]['code'] === T_BITWISE_OR) { - $unionOperators[] = $x; + if ($this->tokens[$x]['code'] === T_BITWISE_OR || $this->tokens[$x]['code'] === T_BITWISE_AND) { + $typeOperators[] = $x; + continue; + } + + if ($this->tokens[$x]['code'] === T_OPEN_PARENTHESIS || $this->tokens[$x]['code'] === T_CLOSE_PARENTHESIS) { + ++$parenthesesCount; + $typeOperators[] = $x; continue; } if ($suspectedType === 'return' && $this->tokens[$x]['code'] === T_COLON) { + // Make sure this is not the colon from a parameter name. + for ($y = ($x - 1); $y > 0; $y--) { + if (isset(Tokens::$emptyTokens[$this->tokens[$y]['code']]) === false) { + break; + } + } + + if ($this->tokens[$y]['code'] !== T_PARAM_NAME) { + $confirmed = true; + } + + break; + } + + if ($suspectedType === 'constant' && $this->tokens[$x]['code'] === T_CONST) { $confirmed = true; break; } if ($suspectedType === 'property or parameter' - && (isset(Util\Tokens::$scopeModifiers[$this->tokens[$x]['code']]) === true - || $this->tokens[$x]['code'] === T_VAR) + && (isset(Tokens::$scopeModifiers[$this->tokens[$x]['code']]) === true + || $this->tokens[$x]['code'] === T_VAR + || $this->tokens[$x]['code'] === T_STATIC + || $this->tokens[$x]['code'] === T_READONLY) ) { // This will also confirm constructor property promotion parameters, but that's fine. $confirmed = true; @@ -2680,6 +3258,9 @@ protected function processAdditional() break; }//end for + // Remember the last token we examined as part of the (non-)"type declaration". + $lastSeenTypeToken = $x; + if ($confirmed === false && $suspectedType === 'property or parameter' && isset($this->tokens[$i]['nested_parenthesis']) === true @@ -2696,7 +3277,7 @@ protected function processAdditional() // had additional processing done. if (isset($this->tokens[$last]['parenthesis_opener']) === true) { for ($x = ($this->tokens[$last]['parenthesis_opener'] - 1); $x >= 0; $x--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { continue; } @@ -2705,7 +3286,7 @@ protected function processAdditional() if ($this->tokens[$x]['code'] === T_FN) { for (--$x; $x >= 0; $x--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true || $this->tokens[$x]['code'] === T_BITWISE_AND ) { continue; @@ -2724,25 +3305,61 @@ protected function processAdditional() unset($parens, $last); }//end if - if ($confirmed === false) { - // Not a union type after all, move on. + if ($confirmed === false || ($parenthesesCount % 2) !== 0) { + // Not a (valid) union, intersection or DNF type after all, move on. continue; } - foreach ($unionOperators as $x) { - $this->tokens[$x]['code'] = T_TYPE_UNION; - $this->tokens[$x]['type'] = 'T_TYPE_UNION'; + foreach ($typeOperators as $x) { + if ($this->tokens[$x]['code'] === T_BITWISE_OR) { + $this->tokens[$x]['code'] = T_TYPE_UNION; + $this->tokens[$x]['type'] = 'T_TYPE_UNION'; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + $line = $this->tokens[$x]['line']; + echo "\t* token $x on line $line changed from T_BITWISE_OR to T_TYPE_UNION".PHP_EOL; + } + } else if ($this->tokens[$x]['code'] === T_BITWISE_AND) { + $this->tokens[$x]['code'] = T_TYPE_INTERSECTION; + $this->tokens[$x]['type'] = 'T_TYPE_INTERSECTION'; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + $line = $this->tokens[$x]['line']; + echo "\t* token $x on line $line changed from T_BITWISE_AND to T_TYPE_INTERSECTION".PHP_EOL; + } + } else if ($this->tokens[$x]['code'] === T_OPEN_PARENTHESIS) { + $this->tokens[$x]['code'] = T_TYPE_OPEN_PARENTHESIS; + $this->tokens[$x]['type'] = 'T_TYPE_OPEN_PARENTHESIS'; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + $line = $this->tokens[$x]['line']; + echo "\t* token $x on line $line changed from T_OPEN_PARENTHESIS to T_TYPE_OPEN_PARENTHESIS".PHP_EOL; + } + } else if ($this->tokens[$x]['code'] === T_CLOSE_PARENTHESIS) { + $this->tokens[$x]['code'] = T_TYPE_CLOSE_PARENTHESIS; + $this->tokens[$x]['type'] = 'T_TYPE_CLOSE_PARENTHESIS'; + + if (PHP_CODESNIFFER_VERBOSITY > 1) { + $line = $this->tokens[$x]['line']; + echo "\t* token $x on line $line changed from T_CLOSE_PARENTHESIS to T_TYPE_CLOSE_PARENTHESIS".PHP_EOL; + } + }//end if + }//end foreach + + if (isset($maybeNullable) === true) { + $this->tokens[$maybeNullable]['code'] = T_NULLABLE; + $this->tokens[$maybeNullable]['type'] = 'T_NULLABLE'; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $line = $this->tokens[$x]['line']; - echo "\t* token $x on line $line changed from T_BITWISE_OR to T_TYPE_UNION".PHP_EOL; + $line = $this->tokens[$maybeNullable]['line']; + echo "\t* token $maybeNullable on line $line changed from T_INLINE_THEN to T_NULLABLE".PHP_EOL; } } continue; } else if ($this->tokens[$i]['code'] === T_STATIC) { for ($x = ($i - 1); $x > 0; $x--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { break; } } @@ -2762,20 +3379,16 @@ protected function processAdditional() || $this->tokens[$i]['code'] === T_FALSE || $this->tokens[$i]['code'] === T_NULL ) { - for ($x = ($i + 1); $i < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { + for ($x = ($i + 1); $x < $numTokens; $x++) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { // Non-whitespace content. break; } } - $context = [ - T_OBJECT_OPERATOR => true, - T_NULLSAFE_OBJECT_OPERATOR => true, - T_NS_SEPARATOR => true, - T_PAAMAYIM_NEKUDOTAYIM => true, - ]; - if (isset($context[$this->tokens[$x]['code']]) === true) { + if ($x !== $numTokens + && isset($this->tstringContexts[$this->tokens[$x]['code']]) === true + ) { if (PHP_CODESNIFFER_VERBOSITY > 1) { $line = $this->tokens[$i]['line']; $type = $this->tokens[$i]['type']; @@ -2785,25 +3398,6 @@ protected function processAdditional() $this->tokens[$i]['code'] = T_STRING; $this->tokens[$i]['type'] = 'T_STRING'; } - } else if ($this->tokens[$i]['code'] === T_CONST) { - // Context sensitive keywords support. - for ($x = ($i + 1); $i < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { - // Non-whitespace content. - break; - } - } - - if ($this->tokens[$x]['code'] !== T_STRING) { - if (PHP_CODESNIFFER_VERBOSITY > 1) { - $line = $this->tokens[$x]['line']; - $type = $this->tokens[$x]['type']; - echo "\t* token $x on line $line changed from $type to T_STRING".PHP_EOL; - } - - $this->tokens[$x]['code'] = T_STRING; - $this->tokens[$x]['type'] = 'T_STRING'; - } }//end if if (($this->tokens[$i]['code'] !== T_CASE @@ -2822,7 +3416,7 @@ protected function processAdditional() // opening this case statement and the opener and closer are // probably set incorrectly. for ($x = ($scopeOpener + 1); $x < $numTokens; $x++) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === false) { // Non-whitespace content. break; } @@ -2926,14 +3520,14 @@ protected function processAdditional() $type = $this->tokens[$x]['type']; $oldConds = ''; foreach ($oldConditions as $condition) { - $oldConds .= Util\Tokens::tokenName($condition).','; + $oldConds .= Tokens::tokenName($condition).','; } $oldConds = rtrim($oldConds, ','); $newConds = ''; foreach ($this->tokens[$x]['conditions'] as $condition) { - $newConds .= Util\Tokens::tokenName($condition).','; + $newConds .= Tokens::tokenName($condition).','; } $newConds = rtrim($newConds, ','); @@ -3021,7 +3615,7 @@ public static function standardiseToken($token) } else { $newToken = [ 'code' => $token[0], - 'type' => Util\Tokens::tokenName($token[0]), + 'type' => Tokens::tokenName($token[0]), ]; self::$resolveTokenCache[$token[0]] = $newToken; @@ -3145,10 +3739,10 @@ public static function resolveSimpleToken($token) * Finds a "closer" token (closing parenthesis or square bracket for example) * Handle parenthesis balancing while searching for closing token * - * @param array $tokens The list of tokens to iterate searching the closing token (as returned by token_get_all) - * @param int $start The starting position - * @param string|string[] $openerTokens The opening character - * @param string $closerChar The closing character + * @param array $tokens The list of tokens to iterate searching the closing token (as returned by token_get_all). + * @param int $start The starting position. + * @param string|string[] $openerTokens The opening character. + * @param string $closerChar The closing character. * * @return int|null The position of the closing token, if found. NULL otherwise. */ @@ -3182,8 +3776,8 @@ private function findCloser(array &$tokens, $start, $openerTokens, $closerChar) * PHP 8 attributes parser for PHP < 8 * Handles single-line and multiline attributes. * - * @param array $tokens The original array of tokens (as returned by token_get_all) - * @param int $stackPtr The current position in token array + * @param array $tokens The original array of tokens (as returned by token_get_all). + * @param int $stackPtr The current position in token array. * * @return array|null The array of parsed attribute tokens */ @@ -3213,14 +3807,27 @@ private function parsePhpAttribute(array &$tokens, $stackPtr) // Go looking for the close bracket. $bracketCloser = $this->findCloser($subTokens, 1, '[', ']'); - if ($bracketCloser === null) { - $bracketCloser = $this->findCloser($tokens, $stackPtr, '[', ']'); - if ($bracketCloser === null) { - return null; + if (PHP_VERSION_ID < 80000 && $bracketCloser === null) { + foreach (array_slice($tokens, ($stackPtr + 1)) as $token) { + if (is_array($token) === true) { + $commentBody .= $token[1]; + } else { + $commentBody .= $token; + } } - $subTokens = array_merge($subTokens, array_slice($tokens, ($stackPtr + 1), ($bracketCloser - $stackPtr))); - array_splice($tokens, ($stackPtr + 1), ($bracketCloser - $stackPtr)); + $subTokens = @token_get_all('findCloser($subTokens, 1, '[', ']'); + if ($bracketCloser !== null) { + array_splice($tokens, ($stackPtr + 1), count($tokens), array_slice($subTokens, ($bracketCloser + 1))); + $subTokens = array_slice($subTokens, 0, ($bracketCloser + 1)); + } + } + + if ($bracketCloser === null) { + return null; } return $subTokens; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Tokenizer.php b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Tokenizer.php index a229d6979..ba41f8da8 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Tokenizer.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Tokenizers/Tokenizer.php @@ -4,13 +4,14 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tokenizers; use PHP_CodeSniffer\Exceptions\TokenizerException; -use PHP_CodeSniffer\Util; +use PHP_CodeSniffer\Util\Common; +use PHP_CodeSniffer\Util\Tokens; abstract class Tokenizer { @@ -27,7 +28,7 @@ abstract class Tokenizer * * @var string */ - protected $eolChar = []; + protected $eolChar = ''; /** * A token-based representation of the content. @@ -60,7 +61,7 @@ abstract class Tokenizer /** * Known lengths of tokens. * - * @var array + * @var array */ public $knownLengths = []; @@ -75,7 +76,7 @@ abstract class Tokenizer /** * Initialise and run the tokenizer. * - * @param string $content The content to tokenize, + * @param string $content The content to tokenize. * @param \PHP_CodeSniffer\Config | null $config The config data for the run. * @param string $eolChar The EOL char used in the content. * @@ -194,6 +195,8 @@ private function createPositionMap() T_DOUBLE_QUOTED_STRING => true, T_HEREDOC => true, T_NOWDOC => true, + T_END_HEREDOC => true, + T_END_NOWDOC => true, T_INLINE_HTML => true, ]; @@ -250,7 +253,7 @@ private function createPositionMap() || $this->tokens[$i]['code'] === T_DOC_COMMENT_TAG || ($inTests === true && $this->tokens[$i]['code'] === T_INLINE_HTML) ) { - $commentText = ltrim($this->tokens[$i]['content'], " \t/*"); + $commentText = ltrim($this->tokens[$i]['content'], " \t/*#"); $commentText = rtrim($commentText, " */\t\r\n"); $commentTextLower = strtolower($commentText); if (strpos($commentText, '@codingStandards') !== false) { @@ -638,25 +641,13 @@ public function replaceTabsInToken(&$token, $prefix=' ', $padding=' ', $tabWidth } // Process the tab that comes after the content. - $lastCurrColumn = $currColumn; $tabNum++; // Move the pointer to the next tab stop. - if (($currColumn % $tabWidth) === 0) { - // This is the first tab, and we are already at a - // tab stop, so this tab counts as a single space. - $currColumn++; - } else { - $currColumn++; - while (($currColumn % $tabWidth) !== 0) { - $currColumn++; - } - - $currColumn++; - } - - $length += ($currColumn - $lastCurrColumn); - $newContent .= $prefix.str_repeat($padding, ($currColumn - $lastCurrColumn - 1)); + $pad = ($tabWidth - ($currColumn + $tabWidth - 1) % $tabWidth); + $currColumn += $pad; + $length += $pad; + $newContent .= $prefix.str_repeat($padding, ($pad - 1)); }//end foreach }//end if @@ -690,7 +681,7 @@ private function createTokenMap() Parenthesis mapping. */ - if (isset(Util\Tokens::$parenthesisOpeners[$this->tokens[$i]['code']]) === true) { + if (isset(Tokens::$parenthesisOpeners[$this->tokens[$i]['code']]) === true) { $this->tokens[$i]['parenthesis_opener'] = null; $this->tokens[$i]['parenthesis_closer'] = null; $this->tokens[$i]['parenthesis_owner'] = $i; @@ -906,7 +897,7 @@ private function createScopeMap() if (isset($this->scopeOpeners[$this->tokens[$i]['code']]) === true) { if (PHP_CODESNIFFER_VERBOSITY > 1) { $type = $this->tokens[$i]['type']; - $content = Util\Common::prepareForOutput($this->tokens[$i]['content']); + $content = Common::prepareForOutput($this->tokens[$i]['content']); echo "\tStart scope map at $i:$type => $content".PHP_EOL; } @@ -968,7 +959,7 @@ private function recurseScopeMap($stackPtr, $depth=1, &$ignore=0) if (PHP_CODESNIFFER_VERBOSITY > 1) { $type = $this->tokens[$i]['type']; $line = $this->tokens[$i]['line']; - $content = Util\Common::prepareForOutput($this->tokens[$i]['content']); + $content = Common::prepareForOutput($this->tokens[$i]['content']); echo str_repeat("\t", $depth); echo "Process token $i on line $line ["; @@ -1324,13 +1315,13 @@ private function recurseScopeMap($stackPtr, $depth=1, &$ignore=0) // Make sure this is actually an opener and not a // string offset (e.g., $var{0}). for ($x = ($i - 1); $x > 0; $x--) { - if (isset(Util\Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { + if (isset(Tokens::$emptyTokens[$this->tokens[$x]['code']]) === true) { continue; } else { // If the first non-whitespace/comment token looks like this // brace is a string offset, or this brace is mid-way through // a new statement, it isn't a scope opener. - $disallowed = Util\Tokens::$assignmentTokens; + $disallowed = Tokens::$assignmentTokens; $disallowed += [ T_DOLLAR => true, T_VARIABLE => true, @@ -1398,7 +1389,7 @@ private function recurseScopeMap($stackPtr, $depth=1, &$ignore=0) } else if ($tokenType === T_OPEN_PARENTHESIS) { if (isset($this->tokens[$i]['parenthesis_owner']) === true) { $owner = $this->tokens[$i]['parenthesis_owner']; - if (isset(Util\Tokens::$scopeOpeners[$this->tokens[$owner]['code']]) === true + if (isset(Tokens::$scopeOpeners[$this->tokens[$owner]['code']]) === true && isset($this->tokens[$i]['parenthesis_closer']) === true ) { // If we get into here, then we opened a parenthesis for @@ -1437,7 +1428,7 @@ private function recurseScopeMap($stackPtr, $depth=1, &$ignore=0) // token was empty (in which case we'll just confirm there is // more code in this file and not just a big comment). if ($this->tokens[$i]['line'] >= ($startLine + 30) - && isset(Util\Tokens::$emptyTokens[$this->tokens[($i - 1)]['code']]) === false + && isset(Tokens::$emptyTokens[$this->tokens[($i - 1)]['code']]) === false ) { if ($this->scopeOpeners[$currType]['strict'] === true) { if (PHP_CODESNIFFER_VERBOSITY > 1) { @@ -1526,14 +1517,14 @@ private function createLevelMap() $len = $this->tokens[$i]['length']; $col = $this->tokens[$i]['column']; - $content = Util\Common::prepareForOutput($this->tokens[$i]['content']); + $content = Common::prepareForOutput($this->tokens[$i]['content']); echo str_repeat("\t", ($level + 1)); echo "Process token $i on line $line [col:$col;len:$len;lvl:$level;"; if (empty($conditions) !== true) { $conditionString = 'conds;'; foreach ($conditions as $condition) { - $conditionString .= Util\Tokens::tokenName($condition).','; + $conditionString .= Tokens::tokenName($condition).','; } echo rtrim($conditionString, ',').';'; @@ -1594,14 +1585,14 @@ private function createLevelMap() $type = $this->tokens[$x]['type']; $oldConds = ''; foreach ($oldConditions as $condition) { - $oldConds .= Util\Tokens::tokenName($condition).','; + $oldConds .= Tokens::tokenName($condition).','; } $oldConds = rtrim($oldConds, ','); $newConds = ''; foreach ($this->tokens[$x]['conditions'] as $condition) { - $newConds .= Util\Tokens::tokenName($condition).','; + $newConds .= Tokens::tokenName($condition).','; } $newConds = rtrim($newConds, ','); @@ -1670,7 +1661,7 @@ private function createLevelMap() $oldCondition = array_pop($conditions); if (PHP_CODESNIFFER_VERBOSITY > 1) { echo str_repeat("\t", ($level + 1)); - echo '* token '.Util\Tokens::tokenName($oldCondition).' removed from conditions array *'.PHP_EOL; + echo '* token '.Tokens::tokenName($oldCondition).' removed from conditions array *'.PHP_EOL; } // Make sure this closer actually belongs to us. @@ -1682,7 +1673,7 @@ private function createLevelMap() $badToken = $this->tokens[$oldOpener]['scope_condition']; if (PHP_CODESNIFFER_VERBOSITY > 1) { - $type = Util\Tokens::tokenName($oldCondition); + $type = Tokens::tokenName($oldCondition); echo str_repeat("\t", ($level + 1)); echo "* scope closer was bad, cleaning up $badToken:$type *".PHP_EOL; } @@ -1696,14 +1687,14 @@ private function createLevelMap() $type = $this->tokens[$x]['type']; $oldConds = ''; foreach ($oldConditions as $condition) { - $oldConds .= Util\Tokens::tokenName($condition).','; + $oldConds .= Tokens::tokenName($condition).','; } $oldConds = rtrim($oldConds, ','); $newConds = ''; foreach ($this->tokens[$x]['conditions'] as $condition) { - $newConds .= Util\Tokens::tokenName($condition).','; + $newConds .= Tokens::tokenName($condition).','; } $newConds = rtrim($newConds, ','); diff --git a/api/vendor/squizlabs/php_codesniffer/src/Util/Cache.php b/api/vendor/squizlabs/php_codesniffer/src/Util/Cache.php index 68abef59c..408de96e7 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Util/Cache.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Util/Cache.php @@ -4,14 +4,18 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Util; +use FilesystemIterator; use PHP_CodeSniffer\Autoload; use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Ruleset; +use RecursiveCallbackFilterIterator; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; class Cache { @@ -19,7 +23,7 @@ class Cache /** * The filesystem location of the cache file. * - * @var void + * @var string */ private static $path = ''; @@ -95,11 +99,11 @@ public static function load(Ruleset $ruleset, Config $config) // hash. This ensures that core PHPCS changes will also invalidate the cache. // Note that we ignore sniffs here, and any files that don't affect // the outcome of the run. - $di = new \RecursiveDirectoryIterator( + $di = new RecursiveDirectoryIterator( $installDir, - (\FilesystemIterator::KEY_AS_PATHNAME | \FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::SKIP_DOTS) + (FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS) ); - $filter = new \RecursiveCallbackFilterIterator( + $filter = new RecursiveCallbackFilterIterator( $di, function ($file, $key, $iterator) { // Skip non-php files. @@ -126,7 +130,7 @@ function ($file, $key, $iterator) { } ); - $iterator = new \RecursiveIteratorIterator($filter); + $iterator = new RecursiveIteratorIterator($filter); foreach ($iterator as $file) { if (PHP_CODESNIFFER_VERBOSITY > 1) { echo "\t\t=> core file: $file".PHP_EOL; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Util/Common.php b/api/vendor/squizlabs/php_codesniffer/src/Util/Common.php index e60eec1df..63a76ce23 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Util/Common.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Util/Common.php @@ -4,11 +4,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Util; +use Phar; + class Common { @@ -35,7 +37,7 @@ class Common * * @param string $path The path to use. * - * @return mixed + * @return bool */ public static function isPharFile($path) { @@ -60,11 +62,11 @@ public static function isPharFile($path) */ public static function isReadable($path) { - if (is_readable($path) === true) { + if (@is_readable($path) === true) { return true; } - if (file_exists($path) === true && is_file($path) === true) { + if (@file_exists($path) === true && @is_file($path) === true) { $f = @fopen($path, 'rb'); if (fclose($f) === true) { return true; @@ -83,7 +85,7 @@ public static function isReadable($path) * * @param string $path The path to use. * - * @return mixed + * @return string|false */ public static function realpath($path) { @@ -112,7 +114,7 @@ public static function realpath($path) return $path; } - $phar = \Phar::running(false); + $phar = Phar::running(false); $extra = str_replace('phar://'.$phar, '', $path); $path = realpath($phar); if ($path === false) { @@ -250,7 +252,7 @@ public static function escapeshellcmd($cmd) { $cmd = escapeshellcmd($cmd); - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + if (stripos(PHP_OS, 'WIN') === 0) { // Spaces are not escaped by escapeshellcmd on Windows, but need to be // for the command to be able to execute. $cmd = preg_replace('`(?= 48 && $ascii <= 57) { - // The character is a number, so it cant be a capital. + // The character is a number, so it can't be a capital. $isCaps = false; } else { if (strtoupper($string[$i]) === $string[$i]) { diff --git a/api/vendor/squizlabs/php_codesniffer/src/Util/Help.php b/api/vendor/squizlabs/php_codesniffer/src/Util/Help.php new file mode 100644 index 000000000..a7602b7d9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/src/Util/Help.php @@ -0,0 +1,626 @@ + + * @copyright 2024 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Util; + +use InvalidArgumentException; +use PHP_CodeSniffer\Config; +use PHP_CodeSniffer\Util\Common; + +final class Help +{ + + + /** + * Short options which are available for both the `phpcs` as well as the `phpcbf` command. + * + * @var string + */ + const DEFAULT_SHORT_OPTIONS = '-hilnpqvw'; + + /** + * Long options which are available for both the `phpcs` as well as the `phpcbf` command. + * + * {@internal This should be a constant array, but those aren't supported until PHP 5.6.} + * + * @var string Comma-separated list of the option names. + */ + const DEFAULT_LONG_OPTIONS = 'basepath,bootstrap,colors,encoding,error-severity,exclude,extensions,file,file-list,filter,ignore,ignore-annotations,no-colors,parallel,php-ini,report-width,runtime-set,severity,sniffs,standard,stdin-path,tab-width,version,vv,vvv,warning-severity'; + + /** + * Minimum screen width. + * + * The help info needs room to display, so this is the minimum acceptable width. + * + * @var integer + */ + const MIN_WIDTH = 60; + + /** + * Indent option lines. + * + * @var string + */ + const INDENT = ' '; + + /** + * Gutter spacing for between the option argument info and the option description. + * + * @var string + */ + const GUTTER = ' '; + + /** + * The current PHPCS Configuration. + * + * @var \PHP_CodeSniffer\Config + */ + private $config; + + /** + * The options which should be shown for this help screen. + * + * @var array + */ + private $requestedOptions = []; + + /** + * Active options per category (after filtering). + * + * @var array>> + */ + private $activeOptions = []; + + /** + * Width of the indent for option lines. + * + * @var integer + */ + private $indentWidth = 0; + + /** + * Width of the gutter spacing. + * + * @var integer + */ + private $gutterWidth = 0; + + /** + * Width of longest option argument info entry. + * + * @var integer + */ + private $maxOptionNameLength = 0; + + + /** + * Constructor. + * + * @param \PHP_CodeSniffer\Config $config Configuration object. + * @param array $longOptions The long options which should be shown. + * @param string $shortOptions The short options which should be shown. + * + * @throws \InvalidArgumentException When $shortOptions is not a string. + */ + public function __construct(Config $config, array $longOptions, $shortOptions='') + { + if (is_string($shortOptions) === false) { + throw new InvalidArgumentException('The $shortOptions parameter must be a string'); + } + + $this->config = $config; + $this->requestedOptions = array_merge($longOptions, str_split($shortOptions)); + + $this->filterOptions(); + + $this->indentWidth = strlen(self::INDENT); + $this->gutterWidth = strlen(self::GUTTER); + + $this->setMaxOptionNameLength(); + + }//end __construct() + + + /** + * Display the help info. + * + * @return void + */ + public function display() + { + $this->printUsage(); + $this->printCategories(); + + }//end display() + + + /** + * Filter the available options based on the requested options. + * + * @return void + */ + private function filterOptions() + { + $filteredOptions = $this->getAllOptions(); + + foreach ($filteredOptions as $category => $options) { + // Initial state set to "true" to prevent a spacer at the start of an array. + $lastWasSpacer = true; + $spacerCount = 0; + + foreach ($options as $name => $option) { + if ($lastWasSpacer !== true && strpos($name, 'blank-line') === 0) { + ++$spacerCount; + $lastWasSpacer = true; + continue; + } + + if (in_array($name, $this->requestedOptions, true) === false) { + unset($filteredOptions[$category][$name]); + continue; + } + + $lastWasSpacer = false; + } + + // Make sure the final array doesn't contain a spacer at the end. + if (empty($filteredOptions[$category]) === false) { + end($filteredOptions[$category]); + $key = key($filteredOptions[$category]); + if (strpos($key, 'blank-line') === 0) { + unset($filteredOptions[$category][$key]); + --$spacerCount; + } + } + + // Remove categories now left empty. + if (empty($filteredOptions[$category]) === true || count($filteredOptions[$category]) === $spacerCount) { + unset($filteredOptions[$category]); + } + }//end foreach + + $this->activeOptions = $filteredOptions; + + }//end filterOptions() + + + /** + * Determine the length of the longest option argument and store it. + * + * @return void + */ + private function setMaxOptionNameLength() + { + $lengths = []; + foreach ($this->activeOptions as $category => $options) { + foreach ($options as $option) { + if (isset($option['argument']) === false) { + continue; + } + + $lengths[] = strlen($option['argument']); + } + } + + if (empty($lengths) === false) { + $this->maxOptionNameLength = max($lengths); + } + + }//end setMaxOptionNameLength() + + + /** + * Get the maximum width which can be used to display the help info. + * + * Independently of user preference/auto-determined width of the current screen, + * a minimum width is needed to display information, so don't allow this to get too low. + * + * @return int + */ + private function getMaxWidth() + { + return max(self::MIN_WIDTH, $this->config->reportWidth); + + }//end getMaxWidth() + + + /** + * Get the maximum width for the text in the option description column. + * + * @return int + */ + private function getDescriptionColumnWidth() + { + return ($this->getMaxWidth() - $this->maxOptionNameLength - $this->indentWidth - $this->gutterWidth); + + }//end getDescriptionColumnWidth() + + + /** + * Get the length of the indentation needed for follow up lines when the description does not fit on one line. + * + * @return int + */ + private function getDescriptionFollowupLineIndentLength() + { + return ($this->maxOptionNameLength + $this->indentWidth + $this->gutterWidth); + + }//end getDescriptionFollowupLineIndentLength() + + + /** + * Print basic usage information to the screen. + * + * @return void + */ + private function printUsage() + { + $command = 'phpcs'; + if (defined('PHP_CODESNIFFER_CBF') === true && PHP_CODESNIFFER_CBF === true) { + // @codeCoverageIgnore + $command = 'phpcbf'; + } + + $this->printCategoryHeader('Usage'); + + echo self::INDENT.$command.' [options] '.PHP_EOL; + + }//end printUsage() + + + /** + * Print details of all the requested options to the screen, sorted by category. + * + * @return void + */ + private function printCategories() + { + foreach ($this->activeOptions as $category => $options) { + $this->printCategoryHeader($category); + $this->printCategoryOptions($options); + } + + }//end printCategories() + + + /** + * Print a category header. + * + * @param string $header The header text. + * + * @return void + */ + private function printCategoryHeader($header) + { + $header .= ':'; + if ($this->config->colors === true) { + $header = "\033[33m{$header}\033[0m"; + } + + echo PHP_EOL.$header.PHP_EOL; + + }//end printCategoryHeader() + + + /** + * Print the options for a category. + * + * @param array> $options The options to display. + * + * @return void + */ + private function printCategoryOptions(array $options) + { + $maxDescriptionWidth = $this->getDescriptionColumnWidth(); + $maxTextWidth = ($this->getMaxWidth() - $this->indentWidth); + $secondLineIndent = str_repeat(' ', $this->getDescriptionFollowupLineIndentLength()); + + $output = ''; + foreach ($options as $option) { + if (isset($option['spacer']) === true) { + $output .= PHP_EOL; + } + + if (isset($option['text']) === true) { + $text = wordwrap($option['text'], $maxTextWidth, "\n"); + $output .= self::INDENT.implode(PHP_EOL.self::INDENT, explode("\n", $text)).PHP_EOL; + } + + if (isset($option['argument'], $option['description']) === true) { + $argument = str_pad($option['argument'], $this->maxOptionNameLength); + $argument = $this->colorizeVariableInput($argument); + $output .= self::INDENT."\033[32m{$argument}\033[0m"; + $output .= self::GUTTER; + + $description = wordwrap($option['description'], $maxDescriptionWidth, "\n"); + $output .= implode(PHP_EOL.$secondLineIndent, explode("\n", $description)).PHP_EOL; + } + } + + if ($this->config->colors === false) { + $output = Common::stripColors($output); + } + + echo $output; + + }//end printCategoryOptions() + + + /** + * Colorize "variable" input in the option argument info. + * + * For the purposes of this method, "variable" input is text between <> brackets. + * The regex allows for multiple tags and nested tags. + * + * @param string $text The text to process. + * + * @return string + */ + private function colorizeVariableInput($text) + { + return preg_replace('`(<(?:(?>[^<>]+)|(?R))*>)`', "\033[36m".'$1'."\033[32m", $text); + + }//end colorizeVariableInput() + + + /** + * Retrieve the help details for all supported CLI arguments per category. + * + * @return array>> + */ + private function getAllOptions() + { + $options = []; + + // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- Readability is more important. + $options['Scan targets'] = [ + 'file' => [ + 'argument' => '', + 'description' => 'One or more files and/or directories to check, space separated.', + ], + '-' => [ + 'argument' => '-', + 'description' => 'Check STDIN instead of local files and directories.', + ], + 'stdin-path' => [ + 'argument' => '--stdin-path=', + 'description' => 'If processing STDIN, the file path that STDIN will be processed as.', + ], + 'file-list' => [ + 'argument' => '--file-list=', + 'description' => 'Check the files and/or directories which are defined in the file to which the path is provided (one per line).', + ], + 'filter' => [ + 'argument' => '--filter=', + 'description' => 'Check based on a predefined file filter. Use either the "GitModified" or "GitStaged" filter, or specify the path to a custom filter class.', + ], + 'ignore' => [ + 'argument' => '--ignore=', + 'description' => 'Ignore files based on a comma-separated list of patterns matching files and/or directories.', + ], + 'extensions' => [ + 'argument' => '--extensions=', + 'description' => 'Check files with the specified file extensions (comma-separated list). Defaults to php,inc/php,js,css.'."\n" + .'The type of the file can be specified using: ext/type; e.g. module/php,es/js.', + ], + 'l' => [ + 'argument' => '-l', + 'description' => 'Check local directory only, no recursion.', + ], + ]; + + $options['Rule Selection Options'] = [ + 'standard' => [ + 'argument' => '--standard=', + 'description' => 'The name of, or the path to, the coding standard to use. Can be a comma-separated list specifying multiple standards. If no standard is specified, PHP_CodeSniffer will look for a [.]phpcs.xml[.dist] custom ruleset file in the current directory and those above it.', + ], + 'sniffs' => [ + 'argument' => '--sniffs=', + 'description' => 'A comma-separated list of sniff codes to limit the scan to. All sniffs must be part of the standard in use.', + ], + 'exclude' => [ + 'argument' => '--exclude=', + 'description' => 'A comma-separated list of sniff codes to exclude from the scan. All sniffs must be part of the standard in use.', + ], + 'blank-line' => ['spacer' => ''], + + 'i' => [ + 'argument' => '-i', + 'description' => 'Show a list of installed coding standards.', + ], + 'e' => [ + 'argument' => '-e', + 'description' => 'Explain a standard by showing the names of all the sniffs it includes.', + ], + 'generator' => [ + 'argument' => '--generator=', + 'description' => 'Show documentation for a standard. Use either the "HTML", "Markdown" or "Text" generator.', + ], + ]; + + $options['Run Options'] = [ + 'a' => [ + 'argument' => '-a', + 'description' => 'Run in interactive mode, pausing after each file.', + ], + 'bootstrap' => [ + 'argument' => '--bootstrap=', + 'description' => 'Run the specified file(s) before processing begins. A list of files can be provided, separated by commas.', + ], + 'cache' => [ + 'argument' => '--cache[=]', + 'description' => 'Cache results between runs. Optionally, can be provided to use a specific file for caching. Otherwise, a temporary file is used.', + ], + 'no-cache' => [ + 'argument' => '--no-cache', + 'description' => 'Do not cache results between runs (default).', + ], + 'parallel' => [ + 'argument' => '--parallel=', + 'description' => 'The number of files to be checked simultaneously. Defaults to 1 (no parallel processing).'."\n" + .'If enabled, this option only takes effect if the PHP PCNTL (Process Control) extension is available.', + ], + 'suffix' => [ + 'argument' => '--suffix=', + 'description' => 'Write modified files to a filename using this suffix ("diff" and "patch" are not used in this mode).', + ], + 'blank-line' => ['spacer' => ''], + + 'php-ini' => [ + 'argument' => '-d ', + 'description' => 'Set the [key] php.ini value to [value] or set to [true] if value is omitted.'."\n" + .'Note: only php.ini settings which can be changed at runtime are supported.', + ], + ]; + + $options['Reporting Options'] = [ + 'report' => [ + 'argument' => '--report=', + 'description' => 'Print either the "full", "xml", "checkstyle", "csv", "json", "junit", "emacs", "source", "summary", "diff", "svnblame", "gitblame", "hgblame", "notifysend" or "performance" report or specify the path to a custom report class. By default, the "full" report is displayed.', + ], + 'report-file' => [ + 'argument' => '--report-file=', + 'description' => 'Write the report to the specified file path.', + ], + 'report-report' => [ + 'argument' => '--report-=', + 'description' => 'Write the report specified in to the specified file path.', + ], + 'report-width' => [ + 'argument' => '--report-width=', + 'description' => 'How many columns wide screen reports should be. Set to "auto" to use current screen width, where supported.', + ], + 'basepath' => [ + 'argument' => '--basepath=', + 'description' => 'Strip a path from the front of file paths inside reports.', + ], + 'blank-line-1' => ['spacer' => ''], + + 'w' => [ + 'argument' => '-w', + 'description' => 'Include both warnings and errors (default).', + ], + 'n' => [ + 'argument' => '-n', + 'description' => 'Do not include warnings. Shortcut for "--warning-severity=0".', + ], + 'severity' => [ + 'argument' => '--severity=', + 'description' => 'The minimum severity required to display an error or warning. Defaults to 5.', + ], + 'error-severity' => [ + 'argument' => '--error-severity=', + 'description' => 'The minimum severity required to display an error. Defaults to 5.', + ], + 'warning-severity' => [ + 'argument' => '--warning-severity=', + 'description' => 'The minimum severity required to display a warning. Defaults to 5.', + ], + 'blank-line-2' => ['spacer' => ''], + + 's' => [ + 'argument' => '-s', + 'description' => 'Show sniff error codes in all reports.', + ], + 'ignore-annotations' => [ + 'argument' => '--ignore-annotations', + 'description' => 'Ignore all "phpcs:..." annotations in code comments.', + ], + 'colors' => [ + 'argument' => '--colors', + 'description' => 'Use colors in screen output.', + ], + 'no-colors' => [ + 'argument' => '--no-colors', + 'description' => 'Do not use colors in screen output (default).', + ], + 'p' => [ + 'argument' => '-p', + 'description' => 'Show progress of the run.', + ], + 'q' => [ + 'argument' => '-q', + 'description' => 'Quiet mode; disables progress and verbose output.', + ], + 'm' => [ + 'argument' => '-m', + 'description' => 'Stop error messages from being recorded. This saves a lot of memory but stops many reports from being used.', + ], + ]; + + $options['Configuration Options'] = [ + 'encoding' => [ + 'argument' => '--encoding=', + 'description' => 'The encoding of the files being checked. Defaults to "utf-8".', + ], + 'tab-width' => [ + 'argument' => '--tab-width=', + 'description' => 'The number of spaces each tab represents.', + ], + 'blank-line' => ['spacer' => ''], + + 'config-explain' => [ + 'text' => 'Default values for a selection of options can be stored in a user-specific CodeSniffer.conf configuration file.'."\n" + .'This applies to the following options: "default_standard", "report_format", "tab_width", "encoding", "severity", "error_severity", "warning_severity", "show_warnings", "report_width", "show_progress", "quiet", "colors", "cache", "parallel".', + ], + 'config-show' => [ + 'argument' => '--config-show', + 'description' => 'Show the configuration options which are currently stored in the applicable CodeSniffer.conf file.', + ], + 'config-set' => [ + 'argument' => '--config-set ', + 'description' => 'Save a configuration option to the CodeSniffer.conf file.', + ], + 'config-delete' => [ + 'argument' => '--config-delete ', + 'description' => 'Delete a configuration option from the CodeSniffer.conf file.', + ], + 'runtime-set' => [ + 'argument' => '--runtime-set ', + 'description' => 'Set a configuration option to be applied to the current scan run only.', + ], + ]; + + $options['Miscellaneous Options'] = [ + 'h' => [ + 'argument' => '-h, -?, --help', + 'description' => 'Print this help message.', + ], + 'version' => [ + 'argument' => '--version', + 'description' => 'Print version information.', + ], + 'v' => [ + 'argument' => '-v', + 'description' => 'Verbose output: Print processed files.', + ], + 'vv' => [ + 'argument' => '-vv', + 'description' => 'Verbose output: Print ruleset and token output.', + ], + 'vvv' => [ + 'argument' => '-vvv', + 'description' => 'Verbose output: Print sniff processing information.', + ], + ]; + // phpcs:enable + + return $options; + + }//end getAllOptions() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/src/Util/Standards.php b/api/vendor/squizlabs/php_codesniffer/src/Util/Standards.php index 50f58f029..f7217a72e 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Util/Standards.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Util/Standards.php @@ -4,11 +4,12 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Util; +use DirectoryIterator; use PHP_CodeSniffer\Config; class Standards @@ -99,7 +100,7 @@ public static function getInstalledStandardDetails( continue; } - $di = new \DirectoryIterator($standardsDir); + $di = new DirectoryIterator($standardsDir); foreach ($di as $file) { if ($file->isDir() === true && $file->isDot() === false) { $filename = $file->getFilename(); @@ -180,7 +181,8 @@ public static function getInstalledStandards( // Check if the installed dir is actually a standard itself. $csFile = $standardsDir.'/ruleset.xml'; if (is_file($csFile) === true) { - $installedStandards[] = basename($standardsDir); + $basename = basename($standardsDir); + $installedStandards[$basename] = $basename; continue; } @@ -189,7 +191,8 @@ public static function getInstalledStandards( continue; } - $di = new \DirectoryIterator($standardsDir); + $di = new DirectoryIterator($standardsDir); + $standardsInDir = []; foreach ($di as $file) { if ($file->isDir() === true && $file->isDot() === false) { $filename = $file->getFilename(); @@ -202,10 +205,13 @@ public static function getInstalledStandards( // Valid coding standard dirs include a ruleset. $csFile = $file->getPathname().'/ruleset.xml'; if (is_file($csFile) === true) { - $installedStandards[] = $filename; + $standardsInDir[$filename] = $filename; } } } + + natsort($standardsInDir); + $installedStandards += $standardsInDir; }//end foreach return $installedStandards; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Util/Timing.php b/api/vendor/squizlabs/php_codesniffer/src/Util/Timing.php index cf27dcfe3..57470c77a 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Util/Timing.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Util/Timing.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Util; @@ -40,6 +40,51 @@ public static function startTiming() }//end startTiming() + /** + * Get the duration of the run up to "now". + * + * @return float Duration in microseconds. + */ + public static function getDuration() + { + if (self::$startTime === null) { + // Timing was never started. + return 0; + } + + return ((microtime(true) - self::$startTime) * 1000); + + }//end getDuration() + + + /** + * Convert a duration in microseconds to a human readable duration string. + * + * @param float $duration Duration in microseconds. + * + * @return string + */ + public static function getHumanReadableDuration($duration) + { + $timeString = ''; + if ($duration > 60000) { + $mins = floor($duration / 60000); + $secs = round((fmod($duration, 60000) / 1000), 2); + $timeString = $mins.' mins'; + if ($secs !== 0) { + $timeString .= ", $secs secs"; + } + } else if ($duration > 1000) { + $timeString = round(($duration / 1000), 2).' secs'; + } else { + $timeString = round($duration).'ms'; + } + + return $timeString; + + }//end getHumanReadableDuration() + + /** * Print information about the run. * @@ -60,23 +105,11 @@ public static function printRunTime($force=false) return; } - $time = ((microtime(true) - self::$startTime) * 1000); - - if ($time > 60000) { - $mins = floor($time / 60000); - $secs = round((($time % 60000) / 1000), 2); - $time = $mins.' mins'; - if ($secs !== 0) { - $time .= ", $secs secs"; - } - } else if ($time > 1000) { - $time = round(($time / 1000), 2).' secs'; - } else { - $time = round($time).'ms'; - } + $duration = self::getDuration(); + $duration = self::getHumanReadableDuration($duration); $mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB'; - echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL; + echo "Time: $duration; Memory: $mem".PHP_EOL.PHP_EOL; self::$printed = true; diff --git a/api/vendor/squizlabs/php_codesniffer/src/Util/Tokens.php b/api/vendor/squizlabs/php_codesniffer/src/Util/Tokens.php index 56afd2791..5ec913df2 100644 --- a/api/vendor/squizlabs/php_codesniffer/src/Util/Tokens.php +++ b/api/vendor/squizlabs/php_codesniffer/src/Util/Tokens.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Util; @@ -80,6 +80,10 @@ define('T_MATCH_ARROW', 'PHPCS_T_MATCH_ARROW'); define('T_MATCH_DEFAULT', 'PHPCS_T_MATCH_DEFAULT'); define('T_ATTRIBUTE_END', 'PHPCS_T_ATTRIBUTE_END'); +define('T_ENUM_CASE', 'PHPCS_T_ENUM_CASE'); +define('T_TYPE_INTERSECTION', 'PHPCS_T_TYPE_INTERSECTION'); +define('T_TYPE_OPEN_PARENTHESIS', 'PHPCS_T_TYPE_OPEN_PARENTHESIS'); +define('T_TYPE_CLOSE_PARENTHESIS', 'PHPCS_T_TYPE_CLOSE_PARENTHESIS'); // Some PHP 5.5 tokens, replicated for lower versions. if (defined('T_FINALLY') === false) { @@ -154,6 +158,23 @@ define('T_ATTRIBUTE', 'PHPCS_T_ATTRIBUTE'); } +// Some PHP 8.1 tokens, replicated for lower versions. +if (defined('T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG') === false) { + define('T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG', 'PHPCS_T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG'); +} + +if (defined('T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG') === false) { + define('T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG', 'PHPCS_T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG'); +} + +if (defined('T_READONLY') === false) { + define('T_READONLY', 'PHPCS_T_READONLY'); +} + +if (defined('T_ENUM') === false) { + define('T_ENUM', 'PHPCS_T_ENUM'); +} + // Tokens used for parsing doc blocks. define('T_DOC_COMMENT_STAR', 'PHPCS_T_DOC_COMMENT_STAR'); define('T_DOC_COMMENT_WHITESPACE', 'PHPCS_T_DOC_COMMENT_WHITESPACE'); @@ -181,6 +202,7 @@ final class Tokens T_CLASS => 1000, T_INTERFACE => 1000, T_TRAIT => 1000, + T_ENUM => 1000, T_NAMESPACE => 1000, T_FUNCTION => 100, T_CLOSURE => 100, @@ -406,6 +428,7 @@ final class Tokens T_ANON_CLASS => T_ANON_CLASS, T_INTERFACE => T_INTERFACE, T_TRAIT => T_TRAIT, + T_ENUM => T_ENUM, T_NAMESPACE => T_NAMESPACE, T_FUNCTION => T_FUNCTION, T_CLOSURE => T_CLOSURE, @@ -607,6 +630,7 @@ final class Tokens T_UNSET => T_UNSET, T_EMPTY => T_EMPTY, T_SELF => T_SELF, + T_PARENT => T_PARENT, T_STATIC => T_STATIC, ]; @@ -620,6 +644,7 @@ final class Tokens T_ANON_CLASS => T_ANON_CLASS, T_INTERFACE => T_INTERFACE, T_TRAIT => T_TRAIT, + T_ENUM => T_ENUM, ]; /** @@ -640,6 +665,86 @@ final class Tokens T_TRAIT_C => T_TRAIT_C, ]; + /** + * Tokens representing context sensitive keywords in PHP. + * + * @var array + * + * https://wiki.php.net/rfc/context_sensitive_lexer + */ + public static $contextSensitiveKeywords = [ + T_ABSTRACT => T_ABSTRACT, + T_ARRAY => T_ARRAY, + T_AS => T_AS, + T_BREAK => T_BREAK, + T_CALLABLE => T_CALLABLE, + T_CASE => T_CASE, + T_CATCH => T_CATCH, + T_CLASS => T_CLASS, + T_CLONE => T_CLONE, + T_CONST => T_CONST, + T_CONTINUE => T_CONTINUE, + T_DECLARE => T_DECLARE, + T_DEFAULT => T_DEFAULT, + T_DO => T_DO, + T_ECHO => T_ECHO, + T_ELSE => T_ELSE, + T_ELSEIF => T_ELSEIF, + T_EMPTY => T_EMPTY, + T_ENDDECLARE => T_ENDDECLARE, + T_ENDFOR => T_ENDFOR, + T_ENDFOREACH => T_ENDFOREACH, + T_ENDIF => T_ENDIF, + T_ENDSWITCH => T_ENDSWITCH, + T_ENDWHILE => T_ENDWHILE, + T_ENUM => T_ENUM, + T_EVAL => T_EVAL, + T_EXIT => T_EXIT, + T_EXTENDS => T_EXTENDS, + T_FINAL => T_FINAL, + T_FINALLY => T_FINALLY, + T_FN => T_FN, + T_FOR => T_FOR, + T_FOREACH => T_FOREACH, + T_FUNCTION => T_FUNCTION, + T_GLOBAL => T_GLOBAL, + T_GOTO => T_GOTO, + T_IF => T_IF, + T_IMPLEMENTS => T_IMPLEMENTS, + T_INCLUDE => T_INCLUDE, + T_INCLUDE_ONCE => T_INCLUDE_ONCE, + T_INSTANCEOF => T_INSTANCEOF, + T_INSTEADOF => T_INSTEADOF, + T_INTERFACE => T_INTERFACE, + T_ISSET => T_ISSET, + T_LIST => T_LIST, + T_LOGICAL_AND => T_LOGICAL_AND, + T_LOGICAL_OR => T_LOGICAL_OR, + T_LOGICAL_XOR => T_LOGICAL_XOR, + T_MATCH => T_MATCH, + T_NAMESPACE => T_NAMESPACE, + T_NEW => T_NEW, + T_PRINT => T_PRINT, + T_PRIVATE => T_PRIVATE, + T_PROTECTED => T_PROTECTED, + T_PUBLIC => T_PUBLIC, + T_READONLY => T_READONLY, + T_REQUIRE => T_REQUIRE, + T_REQUIRE_ONCE => T_REQUIRE_ONCE, + T_RETURN => T_RETURN, + T_STATIC => T_STATIC, + T_SWITCH => T_SWITCH, + T_THROW => T_THROW, + T_TRAIT => T_TRAIT, + T_TRY => T_TRY, + T_UNSET => T_UNSET, + T_USE => T_USE, + T_VAR => T_VAR, + T_WHILE => T_WHILE, + T_YIELD => T_YIELD, + T_YIELD_FROM => T_YIELD_FROM, + ]; + /** * Given a token, returns the name of the token. diff --git a/api/vendor/squizlabs/php_codesniffer/tests/AllTests.php b/api/vendor/squizlabs/php_codesniffer/tests/AllTests.php index 9d099c1e3..4fa41d9d9 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/AllTests.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/AllTests.php @@ -4,19 +4,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests; -if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === false) { - include_once 'Core/AllTests.php'; - include_once 'Standards/AllSniffs.php'; -} else { - include_once 'CodeSniffer/Core/AllTests.php'; - include_once 'CodeSniffer/Standards/AllSniffs.php'; - include_once 'FileList.php'; -} +require_once 'Core/AllTests.php'; +require_once 'Standards/AllSniffs.php'; // PHPUnit 7 made the TestSuite run() method incompatible with // older PHPUnit versions due to return type hints, so maintain @@ -24,7 +18,7 @@ $phpunit7 = false; if (class_exists('\PHPUnit\Runner\Version') === true) { $version = \PHPUnit\Runner\Version::id(); - if ($version[0] === '7') { + if (version_compare($version, '7.0', '>=') === true) { $phpunit7 = true; } } diff --git a/api/vendor/squizlabs/php_codesniffer/tests/ConfigDouble.php b/api/vendor/squizlabs/php_codesniffer/tests/ConfigDouble.php new file mode 100644 index 000000000..190f75ece --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/ConfigDouble.php @@ -0,0 +1,196 @@ + + * @copyright 2024 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests; + +use PHP_CodeSniffer\Config; +use ReflectionProperty; + +final class ConfigDouble extends Config +{ + + /** + * Whether or not the setting of a standard should be skipped. + * + * @var boolean + */ + private $skipSettingStandard = false; + + + /** + * Creates a clean Config object and populates it with command line values. + * + * @param array $cliArgs An array of values gathered from CLI args. + * @param bool $skipSettingStandard Whether to skip setting a standard to prevent + * the Config class trying to auto-discover a ruleset file. + * Should only be set to `true` for tests which actually test + * the ruleset auto-discovery. + * Note: there is no need to set this to `true` when a standard + * is being passed via the `$cliArgs`. Those settings will always + * respected. + * Defaults to `false`. Will result in the standard being set + * to "PSR1" if not provided via `$cliArgs`. + * @param bool $skipSettingReportWidth Whether to skip setting a report-width to prevent + * the Config class trying to auto-discover the screen width. + * Should only be set to `true` for tests which actually test + * the screen width auto-discovery. + * Note: there is no need to set this to `true` when a report-width + * is being passed via the `$cliArgs`. Those settings will always + * respected. + * Defaults to `false`. Will result in the reportWidth being set + * to "80" if not provided via `$cliArgs`. + * + * @return void + */ + public function __construct(array $cliArgs=[], $skipSettingStandard=false, $skipSettingReportWidth=false) + { + $this->skipSettingStandard = $skipSettingStandard; + + $this->resetSelectProperties(); + $this->preventReadingCodeSnifferConfFile(); + + parent::__construct($cliArgs); + + if ($skipSettingReportWidth !== true) { + $this->preventAutoDiscoveryScreenWidth(); + } + + }//end __construct() + + + /** + * Sets the command line values and optionally prevents a file system search for a custom ruleset. + * + * @param array $args An array of command line arguments to set. + * + * @return void + */ + public function setCommandLineValues($args) + { + parent::setCommandLineValues($args); + + if ($this->skipSettingStandard !== true) { + $this->preventSearchingForRuleset(); + } + + }//end setCommandLineValues() + + + /** + * Reset a few properties on the Config class to their default values. + * + * @return void + */ + private function resetSelectProperties() + { + $this->setStaticConfigProperty('overriddenDefaults', []); + $this->setStaticConfigProperty('executablePaths', []); + + }//end resetSelectProperties() + + + /** + * Prevent the values in a potentially available user-specific `CodeSniffer.conf` file + * from influencing the tests. + * + * This also prevents some file system calls which can influence the test runtime. + * + * @return void + */ + private function preventReadingCodeSnifferConfFile() + { + $this->setStaticConfigProperty('configData', []); + $this->setStaticConfigProperty('configDataFile', ''); + + }//end preventReadingCodeSnifferConfFile() + + + /** + * Prevent searching for a custom ruleset by setting a standard, but only if the test + * being run doesn't set a standard itself. + * + * This also prevents some file system calls which can influence the test runtime. + * + * The standard being set is the smallest one available so the ruleset initialization + * will be the fastest possible. + * + * @return void + */ + private function preventSearchingForRuleset() + { + $overriddenDefaults = $this->getStaticConfigProperty('overriddenDefaults'); + if (isset($overriddenDefaults['standards']) === false) { + $this->standards = ['PSR1']; + $overriddenDefaults['standards'] = true; + } + + self::setStaticConfigProperty('overriddenDefaults', $overriddenDefaults); + + }//end preventSearchingForRuleset() + + + /** + * Prevent a call to stty to figure out the screen width, but only if the test being run + * doesn't set a report width itself. + * + * @return void + */ + private function preventAutoDiscoveryScreenWidth() + { + $settings = $this->getSettings(); + if ($settings['reportWidth'] === 'auto') { + $this->reportWidth = self::DEFAULT_REPORT_WIDTH; + } + + }//end preventAutoDiscoveryScreenWidth() + + + /** + * Helper function to retrieve the value of a private static property on the Config class. + * + * @param string $name The name of the property to retrieve. + * + * @return mixed + */ + private function getStaticConfigProperty($name) + { + $property = new ReflectionProperty('PHP_CodeSniffer\Config', $name); + $property->setAccessible(true); + return $property->getValue(); + + }//end getStaticConfigProperty() + + + /** + * Helper function to set the value of a private static property on the Config class. + * + * @param string $name The name of the property to set. + * @param mixed $value The value to set the property to. + * + * @return void + */ + private function setStaticConfigProperty($name, $value) + { + $property = new ReflectionProperty('PHP_CodeSniffer\Config', $name); + $property->setAccessible(true); + $property->setValue(null, $value); + $property->setAccessible(false); + + }//end setStaticConfigProperty() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/AbstractMethodUnitTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/AbstractMethodUnitTest.php index 4d4f54699..b933be17b 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/AbstractMethodUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/AbstractMethodUnitTest.php @@ -4,14 +4,15 @@ * * @author Juliette Reinders Folmer * @copyright 2018-2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core; -use PHP_CodeSniffer\Config; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Files\DummyFile; +use PHP_CodeSniffer\Files\File; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; use PHPUnit\Framework\TestCase; abstract class AbstractMethodUnitTest extends TestCase @@ -27,6 +28,15 @@ abstract class AbstractMethodUnitTest extends TestCase */ protected static $fileExtension = 'inc'; + /** + * The tab width setting to use when tokenizing the file. + * + * This allows for test case files to use a different tab width than the default. + * + * @var integer + */ + protected static $tabWidth = 4; + /** * The \PHP_CodeSniffer\Files\File object containing the parsed contents of the test case file. * @@ -41,12 +51,16 @@ abstract class AbstractMethodUnitTest extends TestCase * The test case file for a unit test class has to be in the same directory * directory and use the same file name as the test class, using the .inc extension. * + * @beforeClass + * * @return void */ - public static function setUpBeforeClass() + public static function initializeFile() { - $config = new Config(); - $config->standards = ['PSR1']; + $_SERVER['argv'] = []; + $config = new ConfigDouble(); + // Also set a tab-width to enable testing tab-replaced vs `orig_content`. + $config->tabWidth = static::$tabWidth; $ruleset = new Ruleset($config); @@ -60,21 +74,28 @@ public static function setUpBeforeClass() $contents .= file_get_contents($pathToTestFile); self::$phpcsFile = new DummyFile($contents, $ruleset, $config); - self::$phpcsFile->process(); + self::$phpcsFile->parse(); - }//end setUpBeforeClass() + }//end initializeFile() /** - * Clean up after finished test. + * Get the token pointer for a target token based on a specific comment found on the line before. * - * @return void + * Note: the test delimiter comment MUST start with "/* test" to allow this function to + * distinguish between comments used *in* a test and test delimiters. + * + * @param string $commentString The delimiter comment to look for. + * @param int|string|array $tokenType The type of token(s) to look for. + * @param string $tokenContent Optional. The token content for the target token. + * + * @return int */ - public static function tearDownAfterClass() + public function getTargetToken($commentString, $tokenType, $tokenContent=null) { - self::$phpcsFile = null; + return self::getTargetTokenFromFile(self::$phpcsFile, $commentString, $tokenType, $tokenContent); - }//end tearDownAfterClass() + }//end getTargetToken() /** @@ -83,16 +104,17 @@ public static function tearDownAfterClass() * Note: the test delimiter comment MUST start with "/* test" to allow this function to * distinguish between comments used *in* a test and test delimiters. * - * @param string $commentString The delimiter comment to look for. - * @param int|string|array $tokenType The type of token(s) to look for. - * @param string $tokenContent Optional. The token content for the target token. + * @param \PHP_CodeSniffer\Files\File $phpcsFile The file to find the token in. + * @param string $commentString The delimiter comment to look for. + * @param int|string|array $tokenType The type of token(s) to look for. + * @param string $tokenContent Optional. The token content for the target token. * * @return int */ - public function getTargetToken($commentString, $tokenType, $tokenContent=null) + public static function getTargetTokenFromFile(File $phpcsFile, $commentString, $tokenType, $tokenContent=null) { - $start = (self::$phpcsFile->numTokens - 1); - $comment = self::$phpcsFile->findPrevious( + $start = ($phpcsFile->numTokens - 1); + $comment = $phpcsFile->findPrevious( T_COMMENT, $start, null, @@ -100,7 +122,7 @@ public function getTargetToken($commentString, $tokenType, $tokenContent=null) $commentString ); - $tokens = self::$phpcsFile->getTokens(); + $tokens = $phpcsFile->getTokens(); $end = ($start + 1); // Limit the token finding to between this and the next delimiter comment. @@ -115,7 +137,7 @@ public function getTargetToken($commentString, $tokenType, $tokenContent=null) } } - $target = self::$phpcsFile->findNext( + $target = $phpcsFile->findNext( $tokenType, ($comment + 1), $end, @@ -129,12 +151,36 @@ public function getTargetToken($commentString, $tokenType, $tokenContent=null) $msg .= ' With token content: '.$tokenContent; } - $this->assertFalse(true, $msg); + self::assertFalse(true, $msg); } return $target; - }//end getTargetToken() + }//end getTargetTokenFromFile() + + + /** + * Helper method to tell PHPUnit to expect a PHPCS RuntimeException in a PHPUnit cross-version + * compatible manner. + * + * @param string $message The expected exception message. + * + * @return void + */ + public function expectRunTimeException($message) + { + $exception = 'PHP_CodeSniffer\Exceptions\RuntimeException'; + + if (method_exists($this, 'expectException') === true) { + // PHPUnit 5+. + $this->expectException($exception); + $this->expectExceptionMessage($message); + } else { + // PHPUnit 4. + $this->setExpectedException($exception, $message); + } + + }//end expectRunTimeException() }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/AllTests.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/AllTests.php index 304690eff..a5465f987 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/AllTests.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/AllTests.php @@ -5,14 +5,14 @@ * @author Greg Sherwood * @author Juliette Reinders Folmer * @copyright 2006-2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core; use PHP_CodeSniffer\Tests\FileList; -use PHPUnit\TextUI\TestRunner; use PHPUnit\Framework\TestSuite; +use PHPUnit\TextUI\TestRunner; class AllTests { diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Autoloader/DetermineLoadedClassTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Autoloader/DetermineLoadedClassTest.php index 65542b670..ea40a5402 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Autoloader/DetermineLoadedClassTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Autoloader/DetermineLoadedClassTest.php @@ -1,30 +1,38 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Autoloader; +use PHP_CodeSniffer\Autoload; use PHPUnit\Framework\TestCase; -class DetermineLoadedClassTest extends TestCase +/** + * Tests for the \PHP_CodeSniffer\Autoload::determineLoadedClass method. + * + * @covers \PHP_CodeSniffer\Autoload::determineLoadedClass + */ +final class DetermineLoadedClassTest extends TestCase { /** * Load the test files. * + * @beforeClass + * * @return void */ - public static function setUpBeforeClass() + public static function includeFixture() { include __DIR__.'/TestFiles/Sub/C.inc'; - }//end setUpBeforeClass() + }//end includeFixture() /** @@ -51,7 +59,7 @@ public function testOrdered() 'traits' => [], ]; - $className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); + $className = Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); $this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className); }//end testOrdered() @@ -81,7 +89,7 @@ public function testUnordered() 'traits' => [], ]; - $className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); + $className = Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); $this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className); $classesAfterLoad = [ @@ -95,7 +103,7 @@ public function testUnordered() 'traits' => [], ]; - $className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); + $className = Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); $this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className); $classesAfterLoad = [ @@ -109,7 +117,7 @@ public function testUnordered() 'traits' => [], ]; - $className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); + $className = Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad); $this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className); }//end testUnordered() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Config/ReportWidthTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Config/ReportWidthTest.php new file mode 100644 index 000000000..d10e7a07d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Config/ReportWidthTest.php @@ -0,0 +1,332 @@ + + * @copyright 2006-2023 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Config; + +use PHP_CodeSniffer\Config; +use PHPUnit\Framework\TestCase; +use ReflectionProperty; + +/** + * Tests for the \PHP_CodeSniffer\Config reportWidth value. + * + * @covers \PHP_CodeSniffer\Config::__get + */ +final class ReportWidthTest extends TestCase +{ + + + /** + * Set static properties in the Config class to prevent tests influencing each other. + * + * @before + * + * @return void + */ + public static function cleanConfig() + { + // Set to the property's default value to clear out potentially set values from other tests. + self::setStaticProperty('executablePaths', []); + + // Set to a usable value to circumvent Config trying to find a phpcs.xml config file. + self::setStaticProperty('overriddenDefaults', ['standards' => ['PSR1']]); + + // Set to values which prevent the test-runner user's `CodeSniffer.conf` file + // from being read and influencing the tests. + self::setStaticProperty('configData', []); + self::setStaticProperty('configDataFile', ''); + + }//end cleanConfig() + + + /** + * Clean up after each finished test. + * + * @after + * + * @return void + */ + public function resetConfig() + { + $_SERVER['argv'] = []; + + }//end resetConfig() + + + /** + * Reset the static properties in the Config class to their true defaults to prevent this class + * from influencing other tests. + * + * @afterClass + * + * @return void + */ + public static function resetConfigToDefaults() + { + self::setStaticProperty('overriddenDefaults', []); + self::setStaticProperty('executablePaths', []); + self::setStaticProperty('configData', null); + self::setStaticProperty('configDataFile', null); + $_SERVER['argv'] = []; + + }//end resetConfigToDefaults() + + + /** + * Test that report width without overrules will always be set to a non-0 positive integer. + * + * @covers \PHP_CodeSniffer\Config::__set + * @covers \PHP_CodeSniffer\Config::restoreDefaults + * + * @return void + */ + public function testReportWidthDefault() + { + $config = new Config(); + + // Can't test the exact value as "auto" will resolve differently depending on the machine running the tests. + $this->assertTrue(is_int($config->reportWidth), 'Report width is not an integer'); + $this->assertGreaterThan(0, $config->reportWidth, 'Report width is not greater than 0'); + + }//end testReportWidthDefault() + + + /** + * Test that the report width will be set to a non-0 positive integer when not found in the CodeSniffer.conf file. + * + * @covers \PHP_CodeSniffer\Config::__set + * @covers \PHP_CodeSniffer\Config::restoreDefaults + * + * @return void + */ + public function testReportWidthWillBeSetFromAutoWhenNotFoundInConfFile() + { + $phpCodeSnifferConfig = [ + 'default_standard' => 'PSR2', + 'show_warnings' => '0', + ]; + + $this->setStaticProperty('configData', $phpCodeSnifferConfig); + + $config = new Config(); + + // Can't test the exact value as "auto" will resolve differently depending on the machine running the tests. + $this->assertTrue(is_int($config->reportWidth), 'Report width is not an integer'); + $this->assertGreaterThan(0, $config->reportWidth, 'Report width is not greater than 0'); + + }//end testReportWidthWillBeSetFromAutoWhenNotFoundInConfFile() + + + /** + * Test that the report width will be set correctly when found in the CodeSniffer.conf file. + * + * @covers \PHP_CodeSniffer\Config::__set + * @covers \PHP_CodeSniffer\Config::getConfigData + * @covers \PHP_CodeSniffer\Config::restoreDefaults + * + * @return void + */ + public function testReportWidthCanBeSetFromConfFile() + { + $phpCodeSnifferConfig = [ + 'default_standard' => 'PSR2', + 'report_width' => '120', + ]; + + $this->setStaticProperty('configData', $phpCodeSnifferConfig); + + $config = new Config(); + $this->assertSame(120, $config->reportWidth); + + }//end testReportWidthCanBeSetFromConfFile() + + + /** + * Test that the report width will be set correctly when passed as a CLI argument. + * + * @covers \PHP_CodeSniffer\Config::__set + * @covers \PHP_CodeSniffer\Config::processLongArgument + * + * @return void + */ + public function testReportWidthCanBeSetFromCLI() + { + $_SERVER['argv'] = [ + 'phpcs', + '--report-width=100', + ]; + + $config = new Config(); + $this->assertSame(100, $config->reportWidth); + + }//end testReportWidthCanBeSetFromCLI() + + + /** + * Test that the report width will be set correctly when multiple report widths are passed on the CLI. + * + * @covers \PHP_CodeSniffer\Config::__set + * @covers \PHP_CodeSniffer\Config::processLongArgument + * + * @return void + */ + public function testReportWidthWhenSetFromCLIFirstValuePrevails() + { + $_SERVER['argv'] = [ + 'phpcs', + '--report-width=100', + '--report-width=200', + ]; + + $config = new Config(); + $this->assertSame(100, $config->reportWidth); + + }//end testReportWidthWhenSetFromCLIFirstValuePrevails() + + + /** + * Test that a report width passed as a CLI argument will overrule a report width set in a CodeSniffer.conf file. + * + * @covers \PHP_CodeSniffer\Config::__set + * @covers \PHP_CodeSniffer\Config::processLongArgument + * @covers \PHP_CodeSniffer\Config::getConfigData + * + * @return void + */ + public function testReportWidthSetFromCLIOverrulesConfFile() + { + $phpCodeSnifferConfig = [ + 'default_standard' => 'PSR2', + 'report_format' => 'summary', + 'show_warnings' => '0', + 'show_progress' => '1', + 'report_width' => '120', + ]; + + $this->setStaticProperty('configData', $phpCodeSnifferConfig); + + $cliArgs = [ + 'phpcs', + '--report-width=180', + ]; + + $config = new Config($cliArgs); + $this->assertSame(180, $config->reportWidth); + + }//end testReportWidthSetFromCLIOverrulesConfFile() + + + /** + * Test that the report width will be set to a non-0 positive integer when set to "auto". + * + * @covers \PHP_CodeSniffer\Config::__set + * + * @return void + */ + public function testReportWidthInputHandlingForAuto() + { + $config = new Config(); + $config->reportWidth = 'auto'; + + // Can't test the exact value as "auto" will resolve differently depending on the machine running the tests. + $this->assertTrue(is_int($config->reportWidth), 'Report width is not an integer'); + $this->assertGreaterThan(0, $config->reportWidth, 'Report width is not greater than 0'); + + }//end testReportWidthInputHandlingForAuto() + + + /** + * Test that the report width will be set correctly for various types of input. + * + * @param mixed $value Input value received. + * @param int $expected Expected report width. + * + * @dataProvider dataReportWidthInputHandling + * @covers \PHP_CodeSniffer\Config::__set + * + * @return void + */ + public function testReportWidthInputHandling($value, $expected) + { + $config = new Config(); + $config->reportWidth = $value; + + $this->assertSame($expected, $config->reportWidth); + + }//end testReportWidthInputHandling() + + + /** + * Data provider. + * + * @return array> + */ + public static function dataReportWidthInputHandling() + { + return [ + 'No value (empty string)' => [ + 'value' => '', + 'expected' => Config::DEFAULT_REPORT_WIDTH, + ], + 'Value: invalid input type null' => [ + 'value' => null, + 'expected' => Config::DEFAULT_REPORT_WIDTH, + ], + 'Value: invalid input type false' => [ + 'value' => false, + 'expected' => Config::DEFAULT_REPORT_WIDTH, + ], + 'Value: invalid input type float' => [ + 'value' => 100.50, + 'expected' => Config::DEFAULT_REPORT_WIDTH, + ], + 'Value: invalid string value "invalid"' => [ + 'value' => 'invalid', + 'expected' => Config::DEFAULT_REPORT_WIDTH, + ], + 'Value: invalid string value, non-integer string "50.25"' => [ + 'value' => '50.25', + 'expected' => Config::DEFAULT_REPORT_WIDTH, + ], + 'Value: valid numeric string value' => [ + 'value' => '250', + 'expected' => 250, + ], + 'Value: valid int value' => [ + 'value' => 220, + 'expected' => 220, + ], + 'Value: negative int value becomes positive int' => [ + 'value' => -180, + 'expected' => 180, + ], + ]; + + }//end dataReportWidthInputHandling() + + + /** + * Helper function to set a static property on the Config class. + * + * @param string $name The name of the property to set. + * @param mixed $value The value to set the property to. + * + * @return void + */ + public static function setStaticProperty($name, $value) + { + $property = new ReflectionProperty('PHP_CodeSniffer\Config', $name); + $property->setAccessible(true); + $property->setValue(null, $value); + $property->setAccessible(false); + + }//end setStaticProperty() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Config/SniffsExcludeArgsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Config/SniffsExcludeArgsTest.php new file mode 100644 index 000000000..4eedb624e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Config/SniffsExcludeArgsTest.php @@ -0,0 +1,200 @@ + + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Config; + +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHPUnit\Framework\TestCase; + +/** + * Tests for the \PHP_CodeSniffer\Config --sniffs and --exclude arguments. + * + * @covers \PHP_CodeSniffer\Config::processLongArgument + */ +final class SniffsExcludeArgsTest extends TestCase +{ + + + /** + * Ensure that the expected error message is returned for invalid arguments. + * + * @param string $argument 'sniffs' or 'exclude'. + * @param string $value List of sniffs to include / exclude. + * @param string $message Expected error message text. + * + * @return void + * @dataProvider dataInvalidSniffs + */ + public function testInvalid($argument, $value, $message) + { + $exception = 'PHP_CodeSniffer\Exceptions\DeepExitException'; + + if (method_exists($this, 'expectException') === true) { + // PHPUnit 5+. + $this->expectException($exception); + $this->expectExceptionMessage($message); + } else { + // PHPUnit 4. + $this->setExpectedException($exception, $message); + } + + new ConfigDouble(["--$argument=$value"]); + + }//end testInvalid() + + + /** + * Data provider for testInvalid(). + * + * @see self::testInvalid() + * @return array> + */ + public static function dataInvalidSniffs() + { + $arguments = [ + 'sniffs', + 'exclude', + ]; + $data = []; + + $messageTemplate = 'ERROR: The specified sniff code "%s" is invalid'.PHP_EOL.PHP_EOL; + + foreach ($arguments as $argument) { + // An empty string is not a valid sniff. + $data[$argument.'; empty string'] = [ + 'argument' => $argument, + 'value' => '', + 'message' => sprintf($messageTemplate, ''), + ]; + + // A standard is not a valid sniff. + $data[$argument.'; standard'] = [ + 'argument' => $argument, + 'value' => 'Standard', + 'message' => sprintf($messageTemplate, 'Standard'), + ]; + + // A category is not a valid sniff. + $data[$argument.'; category'] = [ + 'argument' => $argument, + 'value' => 'Standard.Category', + 'message' => sprintf($messageTemplate, 'Standard.Category'), + ]; + + // An error-code is not a valid sniff. + $data[$argument.'; error-code'] = [ + 'argument' => $argument, + 'value' => 'Standard.Category', + 'message' => sprintf($messageTemplate, 'Standard.Category'), + ]; + + // Only the first error is reported. + $data[$argument.'; two errors'] = [ + 'argument' => $argument, + 'value' => 'StandardOne,StandardTwo', + 'message' => sprintf($messageTemplate, 'StandardOne'), + ]; + $data[$argument.'; valid followed by invalid'] = [ + 'argument' => $argument, + 'value' => 'StandardOne.Category.Sniff,StandardTwo.Category', + 'message' => sprintf($messageTemplate, 'StandardTwo.Category'), + ]; + }//end foreach + + return $data; + + }//end dataInvalidSniffs() + + + /** + * Ensure that the valid data does not throw an exception, and the value is stored. + * + * @param string $argument 'sniffs' or 'exclude'. + * @param string $value List of sniffs to include or exclude. + * + * @return void + * @dataProvider dataValidSniffs + */ + public function testValid($argument, $value) + { + $config = new ConfigDouble(["--$argument=$value"]); + + $this->assertSame(explode(',', $value), $config->$argument); + + }//end testValid() + + + /** + * Data provider for testValid(). + * + * @see self::testValid() + * @return array> + */ + public static function dataValidSniffs() + { + $arguments = [ + 'sniffs', + 'exclude', + ]; + $data = []; + + foreach ($arguments as $argument) { + $data[$argument.'; one valid sniff'] = [ + 'argument' => $argument, + 'value' => 'Standard.Category.Sniff', + ]; + $data[$argument.'; two valid sniffs'] = [ + 'argument' => $argument, + 'value' => 'StandardOne.Category.Sniff,StandardTwo.Category.Sniff', + ]; + } + + return $data; + + }//end dataValidSniffs() + + + /** + * Ensure that only the first argument is processed and others are ignored. + * + * @param string $argument 'sniffs' or 'exclude'. + * + * @return void + * @dataProvider dataOnlySetOnce + */ + public function testOnlySetOnce($argument) + { + $config = new ConfigDouble( + [ + "--$argument=StandardOne.Category.Sniff", + "--$argument=StandardTwo.Category.Sniff", + "--$argument=Standard.AnotherCategory.Sniff", + ] + ); + + $this->assertSame(['StandardOne.Category.Sniff'], $config->$argument); + + }//end testOnlySetOnce() + + + /** + * Data provider for testOnlySetOnce(). + * + * @return array> + */ + public static function dataOnlySetOnce() + { + return [ + 'sniffs' => ['sniffs'], + 'exclude' => ['exclude'], + ]; + + }//end dataOnlySetOnce() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/ErrorSuppressionTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/ErrorSuppressionTest.php index f031b334b..ccd9f479e 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/ErrorSuppressionTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/ErrorSuppressionTest.php @@ -4,1262 +4,1275 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core; -use PHP_CodeSniffer\Config; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Files\DummyFile; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; use PHPUnit\Framework\TestCase; -class ErrorSuppressionTest extends TestCase +/** + * Tests for PHP_CodeSniffer error suppression tags. + * + * @covers PHP_CodeSniffer\Files\File::addMessage + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createPositionMap + */ +final class ErrorSuppressionTest extends TestCase { /** * Test suppressing a single error. * + * @param string $before Annotation to place before the code. + * @param string $after Annotation to place after the code. + * @param int $expectedErrors Optional. Number of errors expected. + * Defaults to 0. + * + * @dataProvider dataSuppressError + * * @return void */ - public function testSuppressError() + public function testSuppressError($before, $after, $expectedErrors=0) { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = ['Generic.PHP.LowerCaseConstant']; + static $config, $ruleset; - $ruleset = new Ruleset($config); - - // Process without suppression. - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = ['Generic.PHP.LowerCaseConstant']; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); + $ruleset = new Ruleset($config); + } - // Process with inline comment suppression. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - // Process with multi-line inline comment suppression, tab-indented. - $content = 'process(); + }//end testSuppressError() - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - // Process with inline @ comment suppression. - $content = 'process(); + /** + * Data provider. + * + * @see testSuppressError() + * + * @return array> + */ + public static function dataSuppressError() + { + return [ + 'no suppression' => [ + 'before' => '', + 'after' => '', + 'expectedErrors' => 1, + ], + + // Inline slash comments. + 'disable/enable: slash comment' => [ + 'before' => '// phpcs:disable'.PHP_EOL, + 'after' => '// phpcs:enable', + ], + 'disable/enable: multi-line slash comment, tab indented' => [ + 'before' => "\t".'// For reasons'.PHP_EOL."\t".'// phpcs:disable'.PHP_EOL."\t", + 'after' => "\t".'// phpcs:enable', + ], + 'disable/enable: slash comment, with @' => [ + 'before' => '// @phpcs:disable'.PHP_EOL, + 'after' => '// @phpcs:enable', + ], + 'disable/enable: slash comment, mixed case' => [ + 'before' => '// PHPCS:Disable'.PHP_EOL, + 'after' => '// pHPcs:enabLE', + ], + + // Inline hash comments. + 'disable/enable: hash comment' => [ + 'before' => '# phpcs:disable'.PHP_EOL, + 'after' => '# phpcs:enable', + ], + 'disable/enable: multi-line hash comment, tab indented' => [ + 'before' => "\t".'# For reasons'.PHP_EOL."\t".'# phpcs:disable'.PHP_EOL."\t", + 'after' => "\t".'# phpcs:enable', + ], + 'disable/enable: hash comment, with @' => [ + 'before' => '# @phpcs:disable'.PHP_EOL, + 'after' => '# @phpcs:enable', + ], + 'disable/enable: hash comment, mixed case' => [ + 'before' => '# PHPCS:Disable'.PHP_EOL, + 'after' => '# pHPcs:enabLE', + ], + + // Inline star (block) comments. + 'disable/enable: star comment' => [ + 'before' => '/* phpcs:disable */'.PHP_EOL, + 'after' => '/* phpcs:enable */', + ], + 'disable/enable: multi-line star comment' => [ + 'before' => '/*'.PHP_EOL.' phpcs:disable'.PHP_EOL.' */'.PHP_EOL, + 'after' => '/*'.PHP_EOL.' phpcs:enable'.PHP_EOL.' */', + ], + 'disable/enable: multi-line star comment, each line starred' => [ + 'before' => '/*'.PHP_EOL.' * phpcs:disable'.PHP_EOL.' */'.PHP_EOL, + 'after' => '/*'.PHP_EOL.' * phpcs:enable'.PHP_EOL.' */', + ], + 'disable/enable: multi-line star comment, each line starred, tab indented' => [ + 'before' => "\t".'/*'.PHP_EOL."\t".' * phpcs:disable'.PHP_EOL."\t".' */'.PHP_EOL."\t", + 'after' => "\t".'/*'.PHP_EOL.' * phpcs:enable'.PHP_EOL.' */', + ], + + // Docblock comments. + 'disable/enable: single line docblock comment' => [ + 'before' => '/** phpcs:disable */'.PHP_EOL, + 'after' => '/** phpcs:enable */', + ], + + // Deprecated syntax. + 'old style: slash comment' => [ + 'before' => '// @codingStandardsIgnoreStart'.PHP_EOL, + 'after' => '// @codingStandardsIgnoreEnd', + ], + 'old style: star comment' => [ + 'before' => '/* @codingStandardsIgnoreStart */'.PHP_EOL, + 'after' => '/* @codingStandardsIgnoreEnd */', + ], + 'old style: multi-line star comment' => [ + 'before' => '/*'.PHP_EOL.' @codingStandardsIgnoreStart'.PHP_EOL.' */'.PHP_EOL, + 'after' => '/*'.PHP_EOL.' @codingStandardsIgnoreEnd'.PHP_EOL.' */', + ], + 'old style: single line docblock comment' => [ + 'before' => '/** @codingStandardsIgnoreStart */'.PHP_EOL, + 'after' => '/** @codingStandardsIgnoreEnd */', + ], + ]; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + }//end dataSuppressError() - // Process with inline comment suppression mixed case. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + /** + * Test suppressing 1 out of 2 errors. + * + * @param string $before Annotation to place before the code. + * @param string $between Annotation to place between the code. + * @param int $expectedErrors Optional. Number of errors expected. + * Defaults to 1. + * + * @dataProvider dataSuppressSomeErrors + * + * @return void + */ + public function testSuppressSomeErrors($before, $between, $expectedErrors=1) + { + static $config, $ruleset; - // Process with inline comment suppression (deprecated syntax). - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = ['Generic.PHP.LowerCaseConstant']; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $ruleset = new Ruleset($config); + } - // Process with block comment suppression. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - // Process with multi-line block comment suppression. - $content = 'process(); + }//end testSuppressSomeErrors() - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - // Process with multi-line block comment suppression, each line starred. - $content = 'process(); + /** + * Data provider. + * + * @see testSuppressSomeErrors() + * + * @return array> + */ + public static function dataSuppressSomeErrors() + { + return [ + 'no suppression' => [ + 'before' => '', + 'between' => '', + 'expectedErrors' => 2, + ], + + // With suppression. + 'disable/enable: slash comment' => [ + 'before' => '// phpcs:disable', + 'between' => '// phpcs:enable', + ], + 'disable/enable: slash comment, with @' => [ + 'before' => '// @phpcs:disable', + 'between' => '// @phpcs:enable', + ], + 'disable/enable: hash comment' => [ + 'before' => '# phpcs:disable', + 'between' => '# phpcs:enable', + ], + 'disable/enable: hash comment, with @' => [ + 'before' => '# @phpcs:disable', + 'between' => '# @phpcs:enable', + ], + 'disable/enable: single line docblock comment' => [ + 'before' => '/** phpcs:disable */', + 'between' => '/** phpcs:enable */', + ], + + // Deprecated syntax. + 'old style: slash comment' => [ + 'before' => '// @codingStandardsIgnoreStart', + 'between' => '// @codingStandardsIgnoreEnd', + ], + 'old style: single line docblock comment' => [ + 'before' => '/** @codingStandardsIgnoreStart */', + 'between' => '/** @codingStandardsIgnoreEnd */', + ], + ]; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + }//end dataSuppressSomeErrors() - // Process with multi-line block comment suppression, tab-indented. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + /** + * Test suppressing a single warning. + * + * @param string $before Annotation to place before the code. + * @param string $after Annotation to place after the code. + * @param int $expectedWarnings Optional. Number of warnings expected. + * Defaults to 0. + * + * @dataProvider dataSuppressWarning + * + * @return void + */ + public function testSuppressWarning($before, $after, $expectedWarnings=0) + { + static $config, $ruleset; - // Process with block comment suppression (deprecated syntax). - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = ['Generic.Commenting.Todo']; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $ruleset = new Ruleset($config); + } - // Process with multi-line block comment suppression (deprecated syntax). - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - - // Process with a docblock suppression. - $content = 'process(); + $this->assertSame($expectedWarnings, $file->getWarningCount()); + $this->assertCount($expectedWarnings, $file->getWarnings()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + }//end testSuppressWarning() - // Process with a docblock suppression (deprecated syntax). - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + /** + * Data provider. + * + * @see testSuppressWarning() + * + * @return array> + */ + public static function dataSuppressWarning() + { + return [ + 'no suppression' => [ + 'before' => '', + 'after' => '', + 'expectedWarnings' => 1, + ], + + // With suppression. + 'disable/enable: slash comment' => [ + 'before' => '// phpcs:disable', + 'after' => '// phpcs:enable', + ], + 'disable/enable: slash comment, with @' => [ + 'before' => '// @phpcs:disable', + 'after' => '// @phpcs:enable', + ], + 'disable/enable: single line docblock comment' => [ + 'before' => '/** phpcs:disable */', + 'after' => '/** phpcs:enable */', + ], + + // Deprecated syntax. + 'old style: slash comment' => [ + 'before' => '// @codingStandardsIgnoreStart', + 'after' => '// @codingStandardsIgnoreEnd', + ], + 'old style: single line docblock comment' => [ + 'before' => '/** @codingStandardsIgnoreStart */', + 'after' => '/** @codingStandardsIgnoreEnd */', + ], + ]; - }//end testSuppressError() + }//end dataSuppressWarning() /** - * Test suppressing 1 out of 2 errors. + * Test suppressing a single error using a single line ignore. + * + * @param string $before Annotation to place before the code. + * @param string $after Optional. Annotation to place after the code. + * Defaults to an empty string. + * @param int $expectedErrors Optional. Number of errors expected. + * Defaults to 1. + * + * @dataProvider dataSuppressLine * * @return void */ - public function testSuppressSomeErrors() + public function testSuppressLine($before, $after='', $expectedErrors=1) { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = ['Generic.PHP.LowerCaseConstant']; + static $config, $ruleset; - $ruleset = new Ruleset($config); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = ['Generic.PHP.LowerCaseConstant']; - // Process without suppression. - $content = 'process(); + $ruleset = new Ruleset($config); + } - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - - // Process with suppression. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with @ suppression. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with suppression (deprecated syntax). - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with a PHPDoc block suppression. - $content = 'process(); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); + }//end testSuppressLine() - // Process with a PHPDoc block suppression (deprecated syntax). - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); + /** + * Data provider. + * + * @see testSuppressLine() + * + * @return array> + */ + public static function dataSuppressLine() + { + return [ + 'no suppression' => [ + 'before' => '', + 'after' => '', + 'expectedErrors' => 2, + ], + + // With suppression on line before. + 'ignore: line before, slash comment' => [ + 'before' => '// phpcs:ignore', + ], + 'ignore: line before, slash comment, with @' => [ + 'before' => '// @phpcs:ignore', + ], + 'ignore: line before, hash comment' => [ + 'before' => '# phpcs:ignore', + ], + 'ignore: line before, hash comment, with @' => [ + 'before' => '# @phpcs:ignore', + ], + 'ignore: line before, star comment' => [ + 'before' => '/* phpcs:ignore */', + ], + 'ignore: line before, star comment, with @' => [ + 'before' => '/* @phpcs:ignore */', + ], + + // With suppression as trailing comment on code line. + 'ignore: end of line, slash comment' => [ + 'before' => '', + 'after' => ' // phpcs:ignore', + ], + 'ignore: end of line, slash comment, with @' => [ + 'before' => '', + 'after' => ' // @phpcs:ignore', + ], + 'ignore: end of line, hash comment' => [ + 'before' => '', + 'after' => ' # phpcs:ignore', + ], + 'ignore: end of line, hash comment, with @' => [ + 'before' => '', + 'after' => ' # @phpcs:ignore', + ], + + // Deprecated syntax. + 'old style: line before, slash comment' => [ + 'before' => '// @codingStandardsIgnoreLine', + ], + 'old style: end of line, slash comment' => [ + 'before' => '', + 'after' => ' // @codingStandardsIgnoreLine', + ], + ]; - }//end testSuppressSomeErrors() + }//end dataSuppressLine() /** - * Test suppressing a single warning. + * Test suppressing a single error using a single line ignore in the middle of a line. * * @return void */ - public function testSuppressWarning() + public function testSuppressLineMidLine() { - $config = new Config(); + $config = new ConfigDouble(); $config->standards = ['Generic']; - $config->sniffs = ['Generic.Commenting.Todo']; + $config->sniffs = ['Generic.PHP.LowerCaseConstant']; $ruleset = new Ruleset($config); - // Process without suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Process with suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with @ suppression. - $content = 'process(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); + $this->assertSame(0, $file->getErrorCount()); + $this->assertCount(0, $file->getErrors()); - // Process with suppression (deprecated syntax). - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with a docblock suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with a docblock suppression (deprecated syntax). - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - }//end testSuppressWarning() + }//end testSuppressLineMidLine() /** - * Test suppressing a single error using a single line ignore. + * Test suppressing a single error using a single line ignore within a docblock. * * @return void */ - public function testSuppressLine() + public function testSuppressLineWithinDocblock() { - $config = new Config(); + $config = new ConfigDouble(); $config->standards = ['Generic']; - $config->sniffs = [ - 'Generic.PHP.LowerCaseConstant', - 'Generic.Files.LineLength', - ]; + $config->sniffs = ['Generic.Files.LineLength']; $ruleset = new Ruleset($config); - // Process without suppression. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - - // Process with suppression on line before. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with @ suppression on line before. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with suppression on line before. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with @ suppression on line before. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with suppression on line before (deprecated syntax). - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - // Process with @ suppression on line before inside docblock. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - - // Process with suppression on same line. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with @ suppression on same line. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - - // Process with suppression on same line (deprecated syntax). - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); + $this->assertSame(0, $file->getErrorCount()); + $this->assertCount(0, $file->getErrors()); - }//end testSuppressLine() + }//end testSuppressLineWithinDocblock() /** * Test that using a single line ignore does not interfere with other suppressions. * + * @param string $before Annotation to place before the code. + * @param string $after Annotation to place after the code. + * + * @dataProvider dataNestedSuppressLine + * * @return void */ - public function testNestedSuppressLine() + public function testNestedSuppressLine($before, $after) { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = ['Generic.PHP.LowerCaseConstant']; - - $ruleset = new Ruleset($config); + static $config, $ruleset; - // Process with disable/enable suppression and no single line suppression. - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = ['Generic.PHP.LowerCaseConstant']; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $ruleset = new Ruleset($config); + } - // Process with disable/enable @ suppression and no single line suppression. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - - // Process with disable/enable suppression and no single line suppression (deprecated syntax). - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - - // Process with line suppression nested within disable/enable suppression. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $this->assertSame(0, $file->getErrorCount()); + $this->assertCount(0, $file->getErrors()); - // Process with line @ suppression nested within disable/enable @ suppression. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + }//end testNestedSuppressLine() - // Process with line suppression nested within disable/enable suppression (deprecated syntax). - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + /** + * Data provider. + * + * @see testNestedSuppressLine() + * + * @return array> + */ + public static function dataNestedSuppressLine() + { + return [ + // Process with disable/enable suppression and no single line suppression. + 'disable/enable: slash comment, no single line suppression' => [ + 'before' => '// phpcs:disable', + 'after' => '// phpcs:enable', + ], + 'disable/enable: slash comment, with @, no single line suppression' => [ + 'before' => '// @phpcs:disable', + 'after' => '// @phpcs:enable', + ], + 'disable/enable: hash comment, no single line suppression' => [ + 'before' => '# phpcs:disable', + 'after' => '# phpcs:enable', + ], + 'old style: slash comment, no single line suppression' => [ + 'before' => '// @codingStandardsIgnoreStart', + 'after' => '// @codingStandardsIgnoreEnd', + ], + + // Process with line suppression nested within disable/enable suppression. + 'disable/enable: slash comment, next line nested single line suppression' => [ + 'before' => '// phpcs:disable'.PHP_EOL.'// phpcs:ignore', + 'after' => '// phpcs:enable', + ], + 'disable/enable: slash comment, with @, next line nested single line suppression' => [ + 'before' => '// @phpcs:disable'.PHP_EOL.'// @phpcs:ignore', + 'after' => '// @phpcs:enable', + ], + 'disable/enable: hash comment, next line nested single line suppression' => [ + 'before' => '# @phpcs:disable'.PHP_EOL.'# @phpcs:ignore', + 'after' => '# @phpcs:enable', + ], + 'old style: slash comment, next line nested single line suppression' => [ + 'before' => '// @codingStandardsIgnoreStart'.PHP_EOL.'// @codingStandardsIgnoreLine', + 'after' => '// @codingStandardsIgnoreEnd', + ], + ]; - }//end testNestedSuppressLine() + }//end dataNestedSuppressLine() /** * Test suppressing a scope opener. * + * @param string $before Annotation to place before the scope opener. + * @param string $after Annotation to place after the scope opener. + * @param int $expectedErrors Optional. Number of errors expected. + * Defaults to 0. + * + * @dataProvider dataSuppressScope + * * @return void */ - public function testSuppressScope() + public function testSuppressScope($before, $after, $expectedErrors=0) { - $config = new Config(); - $config->standards = ['PEAR']; - $config->sniffs = ['PEAR.NamingConventions.ValidVariableName']; - - $ruleset = new Ruleset($config); - - // Process without suppression. - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; - $file = new DummyFile($content, $ruleset, $config); - $file->process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + static $config, $ruleset; - // Process with suppression. - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; - $file = new DummyFile($content, $ruleset, $config); - $file->process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - - // Process with suppression. - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; - $file = new DummyFile($content, $ruleset, $config); - $file->process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['PEAR']; + $config->sniffs = ['PEAR.Functions.FunctionDeclaration']; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $ruleset = new Ruleset($config); + } - // Process with suppression (deprecated syntax). - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; + $content = 'foo(); + } +} +EOD; $file = new DummyFile($content, $ruleset, $config); $file->process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - - // Process with a docblock suppression. - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; - $file = new DummyFile($content, $ruleset, $config); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - // Process with a docblock @ suppression. - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; - $file = new DummyFile($content, $ruleset, $config); + }//end testSuppressScope() - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - // Process with a docblock suppression (deprecated syntax). - $content = 'foo();'.PHP_EOL.'}'.PHP_EOL.'}'; - $file = new DummyFile($content, $ruleset, $config); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); + /** + * Data provider. + * + * @see testSuppressScope() + * + * @return array> + */ + public static function dataSuppressScope() + { + return [ + 'no suppression' => [ + 'before' => '', + 'after' => '', + 'expectedErrors' => 1, + ], + + // Process with suppression. + 'disable/enable: slash comment' => [ + 'before' => '//phpcs:disable', + 'after' => '//phpcs:enable', + ], + 'disable/enable: slash comment, with @' => [ + 'before' => '//@phpcs:disable', + 'after' => '//@phpcs:enable', + ], + 'disable/enable: hash comment' => [ + 'before' => '#phpcs:disable', + 'after' => '#phpcs:enable', + ], + 'disable/enable: single line docblock comment' => [ + 'before' => '/** phpcs:disable */', + 'after' => '/** phpcs:enable */', + ], + 'disable/enable: single line docblock comment, with @' => [ + 'before' => '/** @phpcs:disable */', + 'after' => '/** @phpcs:enable */', + ], + + // Deprecated syntax. + 'old style: start/end, slash comment' => [ + 'before' => '//@codingStandardsIgnoreStart', + 'after' => '//@codingStandardsIgnoreEnd', + ], + 'old style: start/end, single line docblock comment' => [ + 'before' => '/** @codingStandardsIgnoreStart */', + 'after' => '/** @codingStandardsIgnoreEnd */', + ], + ]; - }//end testSuppressScope() + }//end dataSuppressScope() /** * Test suppressing a whole file. * + * @param string $before Annotation to place before the code. + * @param string $after Optional. Annotation to place after the code. + * Defaults to an empty string. + * @param int $expectedWarnings Optional. Number of warnings expected. + * Defaults to 0. + * + * @dataProvider dataSuppressFile + * * @return void */ - public function testSuppressFile() + public function testSuppressFile($before, $after='', $expectedWarnings=0) { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = ['Generic.Commenting.Todo']; - - $ruleset = new Ruleset($config); + static $config, $ruleset; - // Process without suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Process with suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with @ suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with suppression (deprecated syntax). - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process mixed case. - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = ['Generic.Commenting.Todo']; - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); + $ruleset = new Ruleset($config); + } - // Process late comment. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process late comment (deprecated syntax). - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with a block comment suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with a multi-line block comment suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with a block comment suppression (deprecated syntax). - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with a multi-line block comment suppression (deprecated syntax). - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with docblock suppression. - $content = 'process(); - - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Process with docblock suppression (deprecated syntax). - $content = 'process(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); + $this->assertSame($expectedWarnings, $file->getWarningCount()); + $this->assertCount($expectedWarnings, $file->getWarnings()); }//end testSuppressFile() /** - * Test disabling specific sniffs. + * Data provider. * - * @return void + * @see testSuppressFile() + * + * @return array> */ - public function testDisableSelected() + public static function dataSuppressFile() { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = [ - 'Generic.PHP.LowerCaseConstant', - 'Generic.Commenting.Todo', + return [ + 'no suppression' => [ + 'before' => '', + 'after' => '', + 'expectedWarnings' => 1, + ], + + // Process with suppression. + 'ignoreFile: start of file, slash comment' => [ + 'before' => '// phpcs:ignoreFile', + ], + 'ignoreFile: start of file, slash comment, with @' => [ + 'before' => '// @phpcs:ignoreFile', + ], + 'ignoreFile: start of file, slash comment, mixed case' => [ + 'before' => '// PHPCS:Ignorefile', + ], + 'ignoreFile: start of file, hash comment' => [ + 'before' => '# phpcs:ignoreFile', + ], + 'ignoreFile: start of file, hash comment, with @' => [ + 'before' => '# @phpcs:ignoreFile', + ], + 'ignoreFile: start of file, single-line star comment' => [ + 'before' => '/* phpcs:ignoreFile */', + ], + 'ignoreFile: start of file, multi-line star comment' => [ + 'before' => '/*'.PHP_EOL.' phpcs:ignoreFile'.PHP_EOL.' */', + ], + 'ignoreFile: start of file, single-line docblock comment' => [ + 'before' => '/** phpcs:ignoreFile */', + ], + + // Process late comment. + 'ignoreFile: late comment, slash comment' => [ + 'before' => '', + 'after' => '// phpcs:ignoreFile', + ], + + // Deprecated syntax. + 'old style: start of file, slash comment' => [ + 'before' => '// @codingStandardsIgnoreFile', + ], + 'old style: start of file, single-line star comment' => [ + 'before' => '/* @codingStandardsIgnoreFile */', + ], + 'old style: start of file, multi-line star comment' => [ + 'before' => '/*'.PHP_EOL.' @codingStandardsIgnoreFile'.PHP_EOL.' */', + ], + 'old style: start of file, single-line docblock comment' => [ + 'before' => '/** @codingStandardsIgnoreFile */', + ], + + // Deprecated syntax, late comment. + 'old style: late comment, slash comment' => [ + 'before' => '', + 'after' => '// @codingStandardsIgnoreFile', + ], ]; - $ruleset = new Ruleset($config); + }//end dataSuppressFile() - // Suppress a single sniff. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress multiple sniffs. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress adding sniffs. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress a category of sniffs. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress a whole standard. - $content = 'process(); + /** + * Test disabling specific sniffs. + * + * @param string $before Annotation to place before the code. + * @param int $expectedErrors Optional. Number of errors expected. + * Defaults to 0. + * @param int $expectedWarnings Optional. Number of warnings expected. + * Defaults to 0. + * + * @dataProvider dataDisableSelected + * + * @return void + */ + public function testDisableSelected($before, $expectedErrors=0, $expectedWarnings=0) + { + static $config, $ruleset; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress using docblocks. - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = [ + 'Generic.PHP.LowerCaseConstant', + 'Generic.Commenting.Todo', + ]; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - $content = 'process(); + $ruleset = new Ruleset($config); + } - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress wrong category using docblocks. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - $content = 'process(); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); + $this->assertSame($expectedWarnings, $file->getWarningCount()); + $this->assertCount($expectedWarnings, $file->getWarnings()); }//end testDisableSelected() /** - * Test re-enabling specific sniffs that have been disabled. + * Data provider. * - * @return void + * @see testDisableSelected() + * + * @return array> */ - public function testEnableSelected() + public static function dataDisableSelected() { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = [ - 'Generic.PHP.LowerCaseConstant', - 'Generic.Commenting.Todo', + return [ + // Single sniff. + 'disable: single sniff' => [ + 'before' => '// phpcs:disable Generic.Commenting.Todo', + 'expectedErrors' => 1, + ], + 'disable: single sniff with reason' => [ + 'before' => '# phpcs:disable Generic.Commenting.Todo -- for reasons', + 'expectedErrors' => 1, + ], + 'disable: single sniff, docblock' => [ + 'before' => '/**'.PHP_EOL.' * phpcs:disable Generic.Commenting.Todo'.PHP_EOL.' */ ', + 'expectedErrors' => 1, + ], + 'disable: single sniff, docblock, with @' => [ + 'before' => '/**'.PHP_EOL.' * @phpcs:disable Generic.Commenting.Todo'.PHP_EOL.' */ ', + 'expectedErrors' => 1, + ], + + // Multiple sniffs. + 'disable: multiple sniffs in one comment' => [ + 'before' => '// phpcs:disable Generic.Commenting.Todo,Generic.PHP.LowerCaseConstant', + ], + 'disable: multiple sniff in multiple comments' => [ + 'before' => '// phpcs:disable Generic.Commenting.Todo'.PHP_EOL.'// phpcs:disable Generic.PHP.LowerCaseConstant', + ], + + // Selectiveness variations. + 'disable: complete category' => [ + 'before' => '// phpcs:disable Generic.Commenting', + 'expectedErrors' => 1, + ], + 'disable: whole standard' => [ + 'before' => '// phpcs:disable Generic', + ], + 'disable: single errorcode' => [ + 'before' => '# @phpcs:disable Generic.Commenting.Todo.TaskFound', + 'expectedErrors' => 1, + ], + 'disable: single errorcode and a category' => [ + 'before' => '// phpcs:disable Generic.PHP.LowerCaseConstant.Found,Generic.Commenting', + ], + + // Wrong category/sniff/code. + 'disable: wrong error code and category' => [ + 'before' => '/**'.PHP_EOL.' * phpcs:disable Generic.PHP.LowerCaseConstant.Upper,Generic.Comments'.PHP_EOL.' */ ', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: wrong category, docblock' => [ + 'before' => '/**'.PHP_EOL.' * phpcs:disable Generic.Files'.PHP_EOL.' */ ', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: wrong category, docblock, with @' => [ + 'before' => '/**'.PHP_EOL.' * @phpcs:disable Generic.Files'.PHP_EOL.' */ ', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], ]; - $ruleset = new Ruleset($config); + }//end dataDisableSelected() - // Suppress a single sniff and re-enable. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress multiple sniffs and re-enable. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress multiple sniffs and re-enable one. - $content = 'process(); - - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a category of sniffs and re-enable. - $content = 'process(); + /** + * Test re-enabling specific sniffs that have been disabled. + * + * @param string $code Code pattern to check. + * @param int $expectedErrors Number of errors expected. + * @param int $expectedWarnings Number of warnings expected. + * + * @dataProvider dataEnableSelected + * + * @return void + */ + public function testEnableSelected($code, $expectedErrors, $expectedWarnings) + { + static $config, $ruleset; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a whole standard and re-enable. - $content = 'process(); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = [ + 'Generic.PHP.LowerCaseConstant', + 'Generic.Commenting.Todo', + ]; - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a whole standard and re-enable a category. - $content = 'process(); + $ruleset = new Ruleset($config); + } - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a category and re-enable a whole standard. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a sniff and re-enable a category. - $content = 'process(); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a whole standard and re-enable a sniff. - $content = 'process(); + $this->assertSame($expectedWarnings, $file->getWarningCount()); + $this->assertCount($expectedWarnings, $file->getWarnings()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a whole standard and re-enable and re-disable a sniff. - $content = 'process(); + }//end testEnableSelected() - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(2, $numWarnings); - $this->assertCount(2, $warnings); - - // Suppress a whole standard and re-enable 2 specific sniffs independently. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(2, $numWarnings); - $this->assertCount(2, $warnings); + /** + * Data provider. + * + * @see testEnableSelected() + * + * @return array> + */ + public static function dataEnableSelected() + { + return [ + 'disable/enable: a single sniff' => [ + 'code' => ' + // phpcs:disable Generic.Commenting.Todo + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting.Todo + //TODO: write some code', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable/enable: multiple sniffs' => [ + 'code' => ' + // phpcs:disable Generic.Commenting.Todo,Generic.PHP.LowerCaseConstant + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting.Todo,Generic.PHP.LowerCaseConstant + //TODO: write some code + $var = FALSE;', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: multiple sniffs; enable: one' => [ + 'code' => ' + # phpcs:disable Generic.Commenting.Todo,Generic.PHP.LowerCaseConstant + $var = FALSE; + //TODO: write some code + # phpcs:enable Generic.Commenting.Todo + //TODO: write some code + $var = FALSE;', + 'expectedErrors' => 0, + 'expectedWarnings' => 1, + ], + 'disable/enable: complete category' => [ + 'code' => ' + // phpcs:disable Generic.Commenting + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting + //TODO: write some code', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable/enable: whole standard' => [ + 'code' => ' + // phpcs:disable Generic + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic + //TODO: write some code', + 'expectedErrors' => 0, + 'expectedWarnings' => 1, + ], + 'disable: whole standard; enable: category from the standard' => [ + 'code' => ' + // phpcs:disable Generic + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting + //TODO: write some code', + 'expectedErrors' => 0, + 'expectedWarnings' => 1, + ], + 'disable: a category; enable: the whole standard containing the category' => [ + 'code' => ' + # phpcs:disable Generic.Commenting + $var = FALSE; + //TODO: write some code + # phpcs:enable Generic + //TODO: write some code', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: single sniff; enable: the category containing the sniff' => [ + 'code' => ' + // phpcs:disable Generic.Commenting.Todo + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting + //TODO: write some code', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: whole standard; enable: single sniff from the standard' => [ + 'code' => ' + // phpcs:disable Generic + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting.Todo + //TODO: write some code', + 'expectedErrors' => 0, + 'expectedWarnings' => 1, + ], + 'disable: whole standard; enable: single sniff from the standard; disable: that same sniff; enable: everything' => [ + 'code' => ' + // phpcs:disable Generic + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting.Todo + //TODO: write some code + // phpcs:disable Generic.Commenting.Todo + //TODO: write some code + // phpcs:enable + //TODO: write some code', + 'expectedErrors' => 0, + 'expectedWarnings' => 2, + ], + 'disable: whole standard; enable: single sniff from the standard; enable: other sniff from the standard' => [ + 'code' => ' + // phpcs:disable Generic + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting.Todo + //TODO: write some code + $var = FALSE; + // phpcs:enable Generic.PHP.LowerCaseConstant + //TODO: write some code + $var = FALSE;', + 'expectedErrors' => 1, + 'expectedWarnings' => 2, + ], + ]; - }//end testEnableSelected() + }//end dataEnableSelected() /** * Test ignoring specific sniffs. * + * @param string $before Annotation to place before the code. + * @param int $expectedErrors Number of errors expected. + * @param int $expectedWarnings Number of warnings expected. + * + * @dataProvider dataIgnoreSelected + * * @return void */ - public function testIgnoreSelected() + public function testIgnoreSelected($before, $expectedErrors, $expectedWarnings) { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = [ - 'Generic.PHP.LowerCaseConstant', - 'Generic.Commenting.Todo', - ]; + static $config, $ruleset; - $ruleset = new Ruleset($config); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = [ + 'Generic.PHP.LowerCaseConstant', + 'Generic.Commenting.Todo', + ]; - // No suppression. - $content = 'process(); + $ruleset = new Ruleset($config); + } - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - $this->assertEquals(2, $numWarnings); - $this->assertCount(2, $warnings); - - // Suppress a single sniff. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress multiple sniffs. - $content = 'process(); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Add to suppression. - $content = 'process(); + $this->assertSame($expectedWarnings, $file->getWarningCount()); + $this->assertCount($expectedWarnings, $file->getWarnings()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress a category of sniffs. - $content = 'process(); + }//end testIgnoreSelected() - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a whole standard. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); + /** + * Data provider. + * + * @see testIgnoreSelected() + * + * @return array> + */ + public static function dataIgnoreSelected() + { + return [ + 'no suppression' => [ + 'before' => '', + 'expectedErrors' => 2, + 'expectedWarnings' => 2, + ], + + // With suppression. + 'ignore: single sniff' => [ + 'before' => '// phpcs:ignore Generic.Commenting.Todo', + 'expectedErrors' => 2, + 'expectedWarnings' => 1, + ], + 'ignore: multiple sniffs' => [ + 'before' => '// phpcs:ignore Generic.Commenting.Todo,Generic.PHP.LowerCaseConstant', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: single sniff; ignore: single sniff' => [ + 'before' => '// phpcs:disable Generic.Commenting.Todo'.PHP_EOL.'// phpcs:ignore Generic.PHP.LowerCaseConstant', + 'expectedErrors' => 1, + 'expectedWarnings' => 0, + ], + 'ignore: category of sniffs' => [ + 'before' => '# phpcs:ignore Generic.Commenting', + 'expectedErrors' => 2, + 'expectedWarnings' => 1, + ], + 'ignore: whole standard' => [ + 'before' => '// phpcs:ignore Generic', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + ]; - }//end testIgnoreSelected() + }//end dataIgnoreSelected() /** * Test ignoring specific sniffs. * + * @param string $code Code pattern to check. + * @param int $expectedErrors Number of errors expected. + * @param int $expectedWarnings Number of warnings expected. + * + * @dataProvider dataCommenting + * * @return void */ - public function testCommenting() + public function testCommenting($code, $expectedErrors, $expectedWarnings) { - $config = new Config(); - $config->standards = ['Generic']; - $config->sniffs = [ - 'Generic.PHP.LowerCaseConstant', - 'Generic.Commenting.Todo', - ]; + static $config, $ruleset; - $ruleset = new Ruleset($config); + if (isset($config, $ruleset) === false) { + $config = new ConfigDouble(); + $config->standards = ['Generic']; + $config->sniffs = [ + 'Generic.PHP.LowerCaseConstant', + 'Generic.Commenting.Todo', + ]; - // Suppress a single sniff. - $content = 'process(); + $ruleset = new Ruleset($config); + } - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a single sniff and re-enable. - $content = 'process(); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Suppress a single sniff using block comments. - $content = 'process(); + $this->assertSame($expectedErrors, $file->getErrorCount()); + $this->assertCount($expectedErrors, $file->getErrors()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(1, $numErrors); - $this->assertCount(1, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - - // Suppress a single sniff with a multi-line comment. - $content = 'process(); + $this->assertSame($expectedWarnings, $file->getWarningCount()); + $this->assertCount($expectedWarnings, $file->getWarnings()); - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(2, $numErrors); - $this->assertCount(2, $errors); - $this->assertEquals(1, $numWarnings); - $this->assertCount(1, $warnings); - - // Ignore an enable before a disable. - $content = 'process(); + }//end testCommenting() - $errors = $file->getErrors(); - $numErrors = $file->getErrorCount(); - $warnings = $file->getWarnings(); - $numWarnings = $file->getWarningCount(); - $this->assertEquals(0, $numErrors); - $this->assertCount(0, $errors); - $this->assertEquals(0, $numWarnings); - $this->assertCount(0, $warnings); - }//end testCommenting() + /** + * Data provider. + * + * @see testCommenting() + * + * @return array> + */ + public static function dataCommenting() + { + return [ + 'ignore: single sniff' => [ + 'code' => ' + // phpcs:ignore Generic.Commenting.Todo -- Because reasons + $var = FALSE; //TODO: write some code + $var = FALSE; //TODO: write some code', + 'expectedErrors' => 2, + 'expectedWarnings' => 1, + ], + 'disable: single sniff; enable: same sniff - test whitespace handling around reason delimiter' => [ + 'code' => ' + // phpcs:disable Generic.Commenting.Todo --Because reasons + $var = FALSE; + //TODO: write some code + // phpcs:enable Generic.Commenting.Todo -- Because reasons + //TODO: write some code', + 'expectedErrors' => 1, + 'expectedWarnings' => 1, + ], + 'disable: single sniff, multi-line comment' => [ + 'code' => ' + /* + Disable some checks + phpcs:disable Generic.Commenting.Todo + */ + $var = FALSE; + //TODO: write some code', + 'expectedErrors' => 1, + 'expectedWarnings' => 0, + ], + 'ignore: single sniff, multi-line slash comment' => [ + 'code' => ' + // Turn off a check for the next line of code. + // phpcs:ignore Generic.Commenting.Todo + $var = FALSE; //TODO: write some code + $var = FALSE; //TODO: write some code', + 'expectedErrors' => 2, + 'expectedWarnings' => 1, + ], + 'enable before disable, sniff not in standard' => [ + 'code' => ' + // phpcs:enable Generic.PHP.NoSilencedErrors -- Because reasons + $var = @delete( $filename ); + ', + 'expectedErrors' => 0, + 'expectedWarnings' => 0, + ], + ]; + + }//end dataCommenting() }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.inc index 6dfd0a280..835167989 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.inc @@ -39,6 +39,8 @@ $a = [ /* testStaticArrowFunction */ static fn ($a) => $a; +return 0; + /* testArrowFunctionReturnValue */ fn(): array => [a($a, $b)]; @@ -101,5 +103,3 @@ $result = match ($key) { 2 => 'one', }, }; - -return 0; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.php index 7bff26b56..be8f458ae 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindEndOfStatementTest.php @@ -1,20 +1,62 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHP_CodeSniffer\Util\Tokens; -class FindEndOfStatementTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::findEndOfStatement method. + * + * @covers \PHP_CodeSniffer\Files\File::findEndOfStatement + */ +final class FindEndOfStatementTest extends AbstractMethodUnitTest { + /** + * Test that end of statement is NEVER before the "current" token. + * + * @return void + */ + public function testEndIsNeverLessThanCurrentToken() + { + $tokens = self::$phpcsFile->getTokens(); + $errors = []; + + for ($i = 0; $i < self::$phpcsFile->numTokens; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { + continue; + } + + $end = self::$phpcsFile->findEndOfStatement($i); + + // Collect all the errors. + if ($end < $i) { + $errors[] = sprintf( + 'End of statement for token %1$d (%2$s: %3$s) on line %4$d is %5$d (%6$s), which is less than %1$d', + $i, + $tokens[$i]['type'], + $tokens[$i]['content'], + $tokens[$i]['line'], + $end, + $tokens[$end]['type'] + ); + } + } + + $this->assertSame([], $errors); + + }//end testEndIsNeverLessThanCurrentToken() + + /** * Test a simple assignment. * diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindExtendedClassNameTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindExtendedClassNameTest.inc index aead06cd9..dae2cd969 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindExtendedClassNameTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindExtendedClassNameTest.inc @@ -1,27 +1,32 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class FindExtendedClassNameTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::findExtendedClassName method. + * + * @covers \PHP_CodeSniffer\Files\File::findExtendedClassName + */ +final class FindExtendedClassNameTest extends AbstractMethodUnitTest { + /** + * Test getting a `false` result when a non-existent token is passed. + * + * @return void + */ + public function testNonExistentToken() + { + $result = self::$phpcsFile->findExtendedClassName(100000); + $this->assertFalse($result); + + }//end testNonExistentToken() + + + /** + * Test getting a `false` result when a token other than one of the supported tokens is passed. + * + * @return void + */ + public function testNotAClass() + { + $token = $this->getTargetToken('/* testNotAClass */', [T_FUNCTION]); + $result = self::$phpcsFile->findExtendedClassName($token); + $this->assertFalse($result); + + }//end testNotAClass() + + /** * Test retrieving the name of the class being extended by another class * (or interface). * - * @param string $identifier Comment which precedes the test case. - * @param bool $expected Expected function output. + * @param string $identifier Comment which precedes the test case. + * @param string|false $expected Expected function output. * * @dataProvider dataExtendedClass * @@ -40,50 +72,70 @@ public function testFindExtendedClassName($identifier, $expected) * * @see testFindExtendedClassName() * - * @return array + * @return array> */ - public function dataExtendedClass() + public static function dataExtendedClass() { return [ - [ - '/* testExtendedClass */', - 'testFECNClass', + 'class does not extend' => [ + 'identifier' => '/* testNonExtendedClass */', + 'expected' => false, + ], + 'class extends unqualified class' => [ + 'identifier' => '/* testExtendsUnqualifiedClass */', + 'expected' => 'testFECNClass', + ], + 'class extends fully qualified class' => [ + 'identifier' => '/* testExtendsFullyQualifiedClass */', + 'expected' => '\PHP_CodeSniffer\Tests\Core\File\testFECNClass', + ], + 'class extends partially qualified class' => [ + 'identifier' => '/* testExtendsPartiallyQualifiedClass */', + 'expected' => 'Core\File\RelativeClass', + ], + 'interface does not extend' => [ + 'identifier' => '/* testNonExtendedInterface */', + 'expected' => false, + ], + 'interface extends unqualified interface' => [ + 'identifier' => '/* testInterfaceExtendsUnqualifiedInterface */', + 'expected' => 'testFECNInterface', ], - [ - '/* testNamespacedClass */', - '\PHP_CodeSniffer\Tests\Core\File\testFECNClass', + 'interface extends fully qualified interface' => [ + 'identifier' => '/* testInterfaceExtendsFullyQualifiedInterface */', + 'expected' => '\PHP_CodeSniffer\Tests\Core\File\testFECNInterface', ], - [ - '/* testNonExtendedClass */', - false, + 'anon class extends unqualified class' => [ + 'identifier' => '/* testExtendedAnonClass */', + 'expected' => 'testFECNExtendedAnonClass', ], - [ - '/* testInterface */', - false, + 'class does not extend but contains anon class which extends' => [ + 'identifier' => '/* testNestedExtendedClass */', + 'expected' => false, ], - [ - '/* testInterfaceThatExtendsInterface */', - 'testFECNInterface', + 'anon class extends, nested in non-extended class' => [ + 'identifier' => '/* testNestedExtendedAnonClass */', + 'expected' => 'testFECNAnonClass', ], - [ - '/* testInterfaceThatExtendsFQCNInterface */', - '\PHP_CodeSniffer\Tests\Core\File\testFECNInterface', + 'class extends and implements' => [ + 'identifier' => '/* testClassThatExtendsAndImplements */', + 'expected' => 'testFECNClass', ], - [ - '/* testNestedExtendedClass */', - false, + 'class implements and extends' => [ + 'identifier' => '/* testClassThatImplementsAndExtends */', + 'expected' => 'testFECNClass', ], - [ - '/* testNestedExtendedAnonClass */', - 'testFECNAnonClass', + 'interface extends multiple interfaces (not supported)' => [ + 'identifier' => '/* testInterfaceMultiExtends */', + 'expected' => '\Package\FooInterface', ], - [ - '/* testClassThatExtendsAndImplements */', - 'testFECNClass', + 'parse error - extends keyword, but no class name' => [ + 'identifier' => '/* testMissingExtendsName */', + 'expected' => false, ], - [ - '/* testClassThatImplementsAndExtends */', - 'testFECNClass', + 'parse error - live coding - no curly braces' => [ + 'identifier' => '/* testParseError */', + 'expected' => false, ], ]; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindImplementedInterfaceNamesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindImplementedInterfaceNamesTest.inc index 3885b27e1..3246efa2c 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindImplementedInterfaceNamesTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindImplementedInterfaceNamesTest.inc @@ -1,26 +1,47 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class FindImplementedInterfaceNamesTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::findImplementedInterfaceNames method. + * + * @covers \PHP_CodeSniffer\Files\File::findImplementedInterfaceNames + */ +final class FindImplementedInterfaceNamesTest extends AbstractMethodUnitTest { + /** + * Test getting a `false` result when a non-existent token is passed. + * + * @return void + */ + public function testNonExistentToken() + { + $result = self::$phpcsFile->findImplementedInterfaceNames(100000); + $this->assertFalse($result); + + }//end testNonExistentToken() + + + /** + * Test getting a `false` result when a token other than one of the supported tokens is passed. + * + * @return void + */ + public function testNotAClass() + { + $token = $this->getTargetToken('/* testNotAClass */', [T_FUNCTION]); + $result = self::$phpcsFile->findImplementedInterfaceNames($token); + $this->assertFalse($result); + + }//end testNotAClass() + + /** * Test retrieving the name(s) of the interfaces being implemented by a class. * - * @param string $identifier Comment which precedes the test case. - * @param bool $expected Expected function output. + * @param string $identifier Comment which precedes the test case. + * @param array|false $expected Expected function output. * * @dataProvider dataImplementedInterface * @@ -27,7 +59,7 @@ class FindImplementedInterfaceNamesTest extends AbstractMethodUnitTest */ public function testFindImplementedInterfaceNames($identifier, $expected) { - $OOToken = $this->getTargetToken($identifier, [T_CLASS, T_ANON_CLASS, T_INTERFACE]); + $OOToken = $this->getTargetToken($identifier, [T_CLASS, T_ANON_CLASS, T_INTERFACE, T_ENUM]); $result = self::$phpcsFile->findImplementedInterfaceNames($OOToken); $this->assertSame($expected, $result); @@ -39,48 +71,89 @@ public function testFindImplementedInterfaceNames($identifier, $expected) * * @see testFindImplementedInterfaceNames() * - * @return array + * @return array>> */ - public function dataImplementedInterface() + public static function dataImplementedInterface() { return [ - [ - '/* testImplementedClass */', - ['testFIINInterface'], + 'interface declaration, no implements' => [ + 'identifier' => '/* testPlainInterface */', + 'expected' => false, + ], + 'class does not implement' => [ + 'identifier' => '/* testNonImplementedClass */', + 'expected' => false, ], - [ - '/* testMultiImplementedClass */', - [ + 'class implements single interface, unqualified' => [ + 'identifier' => '/* testClassImplementsSingle */', + 'expected' => [ 'testFIINInterface', - 'testFIINInterface2', ], ], - [ - '/* testNamespacedClass */', - ['\PHP_CodeSniffer\Tests\Core\File\testFIINInterface'], + 'class implements multiple interfaces' => [ + 'identifier' => '/* testClassImplementsMultiple */', + 'expected' => [ + 'testFIINInterface', + 'testFIINInterface2', + ], ], - [ - '/* testNonImplementedClass */', - false, + 'class implements single interface, fully qualified' => [ + 'identifier' => '/* testImplementsFullyQualified */', + 'expected' => [ + '\PHP_CodeSniffer\Tests\Core\File\testFIINInterface', + ], ], - [ - '/* testInterface */', - false, + 'class implements single interface, partially qualified' => [ + 'identifier' => '/* testImplementsPartiallyQualified */', + 'expected' => [ + 'Core\File\RelativeInterface', + ], ], - [ - '/* testClassThatExtendsAndImplements */', - [ + 'class extends and implements' => [ + 'identifier' => '/* testClassThatExtendsAndImplements */', + 'expected' => [ 'InterfaceA', '\NameSpaced\Cat\InterfaceB', ], ], - [ - '/* testClassThatImplementsAndExtends */', - [ + 'class implements and extends' => [ + 'identifier' => '/* testClassThatImplementsAndExtends */', + 'expected' => [ '\InterfaceA', 'InterfaceB', ], ], + 'enum does not implement' => [ + 'identifier' => '/* testBackedEnumWithoutImplements */', + 'expected' => false, + ], + 'enum implements single interface, unqualified' => [ + 'identifier' => '/* testEnumImplementsSingle */', + 'expected' => [ + 'Colorful', + ], + ], + 'enum implements multiple interfaces, unqualified + fully qualified' => [ + 'identifier' => '/* testBackedEnumImplementsMulti */', + 'expected' => [ + 'Colorful', + '\Deck', + ], + ], + 'anon class implements single interface, unqualified' => [ + 'identifier' => '/* testAnonClassImplementsSingle */', + 'expected' => [ + 'testFIINInterface', + ], + ], + 'parse error - implements keyword, but no interface name' => [ + 'identifier' => '/* testMissingImplementsName */', + 'expected' => false, + ], + 'parse error - live coding - no curly braces' => [ + 'identifier' => '/* testParseError */', + 'expected' => false, + ], ]; }//end dataImplementedInterface() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.inc index a759a1aa6..574b98614 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.inc @@ -14,7 +14,7 @@ while(true) {} $a = 1; /* testClosureAssignment */ -$a = function($b=false;){}; +$a = function($b=false){}; /* testHeredocFunctionArg */ myFunction(<< fn() => return 1, - 'b' => fn() => return 1, + 'a' => fn() => 1, + 'b' => fn() => 1, ]; /* testStaticArrowFunction */ @@ -111,3 +111,90 @@ $result = match ($key) { }; return 0; + +/* testOpenTag */ +?> +

Test

+', foo(), ''; + +/* testOpenTagWithEcho */ +?> +

Test

+', foo(), ''; + +$value = [ + /* testPrecededByArrowFunctionInArray - Expected */ + Url::make('View Song', fn($song) => $song->url()) + /* testPrecededByArrowFunctionInArray */ + ->onlyOnDetail(), + + new Panel('Information', [ + Text::make('Title') + ]), +]; + +switch ($foo) { + /* testCaseStatement */ + case 1: + /* testInsideCaseStatement */ + $var = doSomething(); + /* testInsideCaseBreakStatement */ + break 1; + + case 2: + /* testInsideCaseContinueStatement */ + continue 1; + + case 3: + /* testInsideCaseReturnStatement */ + return false; + + case 4: + /* testInsideCaseExitStatement */ + exit(1); + + case 5: + /* testInsideCaseThrowStatement */ + throw new Exception(); + + /* testDefaultStatement */ + default: + /* testInsideDefaultContinueStatement */ + continue $var; +} + +match ($var) { + true => + /* test437ClosureDeclaration */ + function ($var) { + /* test437EchoNestedWithinClosureWithinMatch */ + echo $var, 'text', PHP_EOL; + }, + default => false +}; + +match ($var) { + /* test437NestedLongArrayWithinMatch */ + 'a' => array( 1, 2.5, $var), + /* test437NestedFunctionCallWithinMatch */ + 'b' => functionCall( 11, $var, 50.50), + /* test437NestedArrowFunctionWithinMatch */ + 'c' => fn($p1, /* test437FnSecondParamWithinMatch */ $p2) => $p1 + $p2, + default => false +}; + +callMe($paramA, match ($var) { + /* test437NestedLongArrayWithinNestedMatch */ + 'a' => array( 1, 2.5, $var), + /* test437NestedFunctionCallWithinNestedMatch */ + 'b' => functionCall( 11, $var, 50.50), + /* test437NestedArrowFunctionWithinNestedMatch */ + 'c' => fn($p1, /* test437FnSecondParamWithinNestedMatch */ $p2) => $p1 + $p2, + default => false +}); + +match ($var) { + /* test437NestedShortArrayWithinMatch */ + 'a' => [ 1, 2.5, $var], + default => false +}; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.php index 33c0686ea..a814d8c1d 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/FindStartOfStatementTest.php @@ -3,18 +3,62 @@ * Tests for the \PHP_CodeSniffer\Files\File:findStartOfStatement method. * * @author Greg Sherwood + * @author Juliette Reinders Folmer * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @copyright 2019-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHP_CodeSniffer\Util\Tokens; -class FindStartOfStatementTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File:findStartOfStatement method. + * + * @covers \PHP_CodeSniffer\Files\File::findStartOfStatement + */ +final class FindStartOfStatementTest extends AbstractMethodUnitTest { + /** + * Test that start of statement is NEVER beyond the "current" token. + * + * @return void + */ + public function testStartIsNeverMoreThanCurrentToken() + { + $tokens = self::$phpcsFile->getTokens(); + $errors = []; + + for ($i = 0; $i < self::$phpcsFile->numTokens; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { + continue; + } + + $start = self::$phpcsFile->findStartOfStatement($i); + + // Collect all the errors. + if ($start > $i) { + $errors[] = sprintf( + 'Start of statement for token %1$d (%2$s: %3$s) on line %4$d is %5$d (%6$s), which is more than %1$d', + $i, + $tokens[$i]['type'], + $tokens[$i]['content'], + $tokens[$i]['line'], + $start, + $tokens[$start]['type'] + ); + } + } + + $this->assertSame([], $errors); + + }//end testStartIsNeverMoreThanCurrentToken() + + /** * Test a simple assignment. * @@ -85,7 +129,7 @@ public function testClosureAssignment() $start = $this->getTargetToken('/* testClosureAssignment */', T_CLOSE_CURLY_BRACKET); $found = self::$phpcsFile->findStartOfStatement($start); - $this->assertSame(($start - 12), $found); + $this->assertSame(($start - 11), $found); }//end testClosureAssignment() @@ -217,7 +261,7 @@ public function testArrowFunctionArrayValue() $start = $this->getTargetToken('/* testArrowFunctionArrayValue */', T_COMMA); $found = self::$phpcsFile->findStartOfStatement($start); - $this->assertSame(($start - 9), $found); + $this->assertSame(($start - 7), $found); }//end testArrowFunctionArrayValue() @@ -468,4 +512,462 @@ public function testNestedMatch() }//end testNestedMatch() + /** + * Test PHP open tag. + * + * @return void + */ + public function testOpenTag() + { + $start = $this->getTargetToken('/* testOpenTag */', T_OPEN_TAG); + $start += 2; + $found = self::$phpcsFile->findStartOfStatement($start); + + $this->assertSame(($start - 1), $found); + + }//end testOpenTag() + + + /** + * Test PHP short open echo tag. + * + * @return void + */ + public function testOpenTagWithEcho() + { + $start = $this->getTargetToken('/* testOpenTagWithEcho */', T_OPEN_TAG_WITH_ECHO); + $start += 3; + $found = self::$phpcsFile->findStartOfStatement($start); + + $this->assertSame(($start - 1), $found); + + }//end testOpenTagWithEcho() + + + /** + * Test object call on result of static function call with arrow function as parameter and wrapped within an array. + * + * @link https://github.com/squizlabs/PHP_CodeSniffer/issues/2849 + * @link https://github.com/squizlabs/PHP_CodeSniffer/commit/fbf67efc3fc0c2a355f5585d49f4f6fe160ff2f9 + * + * @return void + */ + public function testObjectCallPrecededByArrowFunctionAsFunctionCallParameterInArray() + { + $expected = $this->getTargetToken('/* testPrecededByArrowFunctionInArray - Expected */', T_STRING, 'Url'); + + $start = $this->getTargetToken('/* testPrecededByArrowFunctionInArray */', T_STRING, 'onlyOnDetail'); + $found = self::$phpcsFile->findStartOfStatement($start); + + $this->assertSame($expected, $found); + + }//end testObjectCallPrecededByArrowFunctionAsFunctionCallParameterInArray() + + + /** + * Test finding the start of a statement inside a switch control structure case/default statement. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $targets The token to search for after the test marker. + * @param string|int $expectedTarget Token code of the expected start of statement stack pointer. + * + * @link https://github.com/squizlabs/php_codesniffer/issues/3192 + * @link https://github.com/squizlabs/PHP_CodeSniffer/pull/3186/commits/18a0e54735bb9b3850fec266e5f4c50dacf618ea + * + * @dataProvider dataFindStartInsideSwitchCaseDefaultStatements + * + * @return void + */ + public function testFindStartInsideSwitchCaseDefaultStatements($testMarker, $targets, $expectedTarget) + { + $testToken = $this->getTargetToken($testMarker, $targets); + $expected = $this->getTargetToken($testMarker, $expectedTarget); + + $found = self::$phpcsFile->findStartOfStatement($testToken); + + $this->assertSame($expected, $found); + + }//end testFindStartInsideSwitchCaseDefaultStatements() + + + /** + * Data provider. + * + * @return array> + */ + public static function dataFindStartInsideSwitchCaseDefaultStatements() + { + return [ + 'Case keyword should be start of case statement - case itself' => [ + 'testMarker' => '/* testCaseStatement */', + 'targets' => T_CASE, + 'expectedTarget' => T_CASE, + ], + 'Case keyword should be start of case statement - number (what\'s being compared)' => [ + 'testMarker' => '/* testCaseStatement */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_CASE, + ], + 'Variable should be start of arbitrary assignment statement - variable itself' => [ + 'testMarker' => '/* testInsideCaseStatement */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + 'Variable should be start of arbitrary assignment statement - equal sign' => [ + 'testMarker' => '/* testInsideCaseStatement */', + 'targets' => T_EQUAL, + 'expectedTarget' => T_VARIABLE, + ], + 'Variable should be start of arbitrary assignment statement - function call' => [ + 'testMarker' => '/* testInsideCaseStatement */', + 'targets' => T_STRING, + 'expectedTarget' => T_VARIABLE, + ], + 'Break should be start for contents of the break statement - contents' => [ + 'testMarker' => '/* testInsideCaseBreakStatement */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_BREAK, + ], + 'Continue should be start for contents of the continue statement - contents' => [ + 'testMarker' => '/* testInsideCaseContinueStatement */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_CONTINUE, + ], + 'Return should be start for contents of the return statement - contents' => [ + 'testMarker' => '/* testInsideCaseReturnStatement */', + 'targets' => T_FALSE, + 'expectedTarget' => T_RETURN, + ], + 'Exit should be start for contents of the exit statement - close parenthesis' => [ + // Note: not sure if this is actually correct - should this be the open parenthesis ? + 'testMarker' => '/* testInsideCaseExitStatement */', + 'targets' => T_CLOSE_PARENTHESIS, + 'expectedTarget' => T_EXIT, + ], + 'Throw should be start for contents of the throw statement - new keyword' => [ + 'testMarker' => '/* testInsideCaseThrowStatement */', + 'targets' => T_NEW, + 'expectedTarget' => T_THROW, + ], + 'Throw should be start for contents of the throw statement - exception name' => [ + 'testMarker' => '/* testInsideCaseThrowStatement */', + 'targets' => T_STRING, + 'expectedTarget' => T_THROW, + ], + 'Throw should be start for contents of the throw statement - close parenthesis' => [ + 'testMarker' => '/* testInsideCaseThrowStatement */', + 'targets' => T_CLOSE_PARENTHESIS, + 'expectedTarget' => T_THROW, + ], + 'Default keyword should be start of default statement - default itself' => [ + 'testMarker' => '/* testDefaultStatement */', + 'targets' => T_DEFAULT, + 'expectedTarget' => T_DEFAULT, + ], + 'Return should be start for contents of the return statement (inside default) - variable' => [ + 'testMarker' => '/* testInsideDefaultContinueStatement */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_CONTINUE, + ], + ]; + + }//end dataFindStartInsideSwitchCaseDefaultStatements() + + + /** + * Test finding the start of a statement inside a closed scope nested within a match expressions. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $target The token to search for after the test marker. + * @param int|string $expectedTarget Token code of the expected start of statement stack pointer. + * + * @link https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/437 + * + * @dataProvider dataFindStartInsideClosedScopeNestedWithinMatch + * + * @return void + */ + public function testFindStartInsideClosedScopeNestedWithinMatch($testMarker, $target, $expectedTarget) + { + $testToken = $this->getTargetToken($testMarker, $target); + $expected = $this->getTargetToken($testMarker, $expectedTarget); + + $found = self::$phpcsFile->findStartOfStatement($testToken); + + $this->assertSame($expected, $found); + + }//end testFindStartInsideClosedScopeNestedWithinMatch() + + + /** + * Data provider. + * + * @return array> + */ + public static function dataFindStartInsideClosedScopeNestedWithinMatch() + { + return [ + // These were already working correctly. + 'Closure function keyword should be start of closure - closure keyword' => [ + 'testMarker' => '/* test437ClosureDeclaration */', + 'targets' => T_CLOSURE, + 'expectedTarget' => T_CLOSURE, + ], + 'Open curly is a statement/expression opener - open curly' => [ + 'testMarker' => '/* test437ClosureDeclaration */', + 'targets' => T_OPEN_CURLY_BRACKET, + 'expectedTarget' => T_OPEN_CURLY_BRACKET, + ], + + 'Echo should be start for expression - echo keyword' => [ + 'testMarker' => '/* test437EchoNestedWithinClosureWithinMatch */', + 'targets' => T_ECHO, + 'expectedTarget' => T_ECHO, + ], + 'Echo should be start for expression - variable' => [ + 'testMarker' => '/* test437EchoNestedWithinClosureWithinMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_ECHO, + ], + 'Echo should be start for expression - comma' => [ + 'testMarker' => '/* test437EchoNestedWithinClosureWithinMatch */', + 'targets' => T_COMMA, + 'expectedTarget' => T_ECHO, + ], + + // These were not working correctly and would previously return the close curly of the match expression. + 'First token after comma in echo expression should be start for expression - text string' => [ + 'testMarker' => '/* test437EchoNestedWithinClosureWithinMatch */', + 'targets' => T_CONSTANT_ENCAPSED_STRING, + 'expectedTarget' => T_CONSTANT_ENCAPSED_STRING, + ], + 'First token after comma in echo expression - PHP_EOL constant' => [ + 'testMarker' => '/* test437EchoNestedWithinClosureWithinMatch */', + 'targets' => T_STRING, + 'expectedTarget' => T_STRING, + ], + 'First token after comma in echo expression - semicolon' => [ + 'testMarker' => '/* test437EchoNestedWithinClosureWithinMatch */', + 'targets' => T_SEMICOLON, + 'expectedTarget' => T_STRING, + ], + ]; + + }//end dataFindStartInsideClosedScopeNestedWithinMatch() + + + /** + * Test finding the start of a statement for a token within a set of parentheses within a match expressions. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $target The token to search for after the test marker. + * @param int|string $expectedTarget Token code of the expected start of statement stack pointer. + * + * @link https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/437 + * + * @dataProvider dataFindStartInsideParenthesesNestedWithinMatch + * + * @return void + */ + public function testFindStartInsideParenthesesNestedWithinMatch($testMarker, $target, $expectedTarget) + { + $testToken = $this->getTargetToken($testMarker, $target); + $expected = $this->getTargetToken($testMarker, $expectedTarget); + + $found = self::$phpcsFile->findStartOfStatement($testToken); + + $this->assertSame($expected, $found); + + }//end testFindStartInsideParenthesesNestedWithinMatch() + + + /** + * Data provider. + * + * @return array> + */ + public static function dataFindStartInsideParenthesesNestedWithinMatch() + { + return [ + 'Array item itself should be start for first array item' => [ + 'testMarker' => '/* test437NestedLongArrayWithinMatch */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_LNUMBER, + ], + 'Array item itself should be start for second array item' => [ + 'testMarker' => '/* test437NestedLongArrayWithinMatch */', + 'targets' => T_DNUMBER, + 'expectedTarget' => T_DNUMBER, + ], + 'Array item itself should be start for third array item' => [ + 'testMarker' => '/* test437NestedLongArrayWithinMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + + 'Parameter itself should be start for first param passed to function call' => [ + 'testMarker' => '/* test437NestedFunctionCallWithinMatch */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_LNUMBER, + ], + 'Parameter itself should be start for second param passed to function call' => [ + 'testMarker' => '/* test437NestedFunctionCallWithinMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + 'Parameter itself should be start for third param passed to function call' => [ + 'testMarker' => '/* test437NestedFunctionCallWithinMatch */', + 'targets' => T_DNUMBER, + 'expectedTarget' => T_DNUMBER, + ], + + 'Parameter itself should be start for first param declared in arrow function' => [ + 'testMarker' => '/* test437NestedArrowFunctionWithinMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + 'Parameter itself should be start for second param declared in arrow function' => [ + 'testMarker' => '/* test437FnSecondParamWithinMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + ]; + + }//end dataFindStartInsideParenthesesNestedWithinMatch() + + + /** + * Test finding the start of a statement for a token within a set of parentheses within a match expressions, + * which itself is nested within parentheses. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $target The token to search for after the test marker. + * @param int|string $expectedTarget Token code of the expected start of statement stack pointer. + * + * @link https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/437 + * + * @dataProvider dataFindStartInsideParenthesesNestedWithinNestedMatch + * + * @return void + */ + public function testFindStartInsideParenthesesNestedWithinNestedMatch($testMarker, $target, $expectedTarget) + { + $testToken = $this->getTargetToken($testMarker, $target); + $expected = $this->getTargetToken($testMarker, $expectedTarget); + + $found = self::$phpcsFile->findStartOfStatement($testToken); + + $this->assertSame($expected, $found); + + }//end testFindStartInsideParenthesesNestedWithinNestedMatch() + + + /** + * Data provider. + * + * @return array> + */ + public static function dataFindStartInsideParenthesesNestedWithinNestedMatch() + { + return [ + 'Array item itself should be start for first array item' => [ + 'testMarker' => '/* test437NestedLongArrayWithinNestedMatch */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_LNUMBER, + ], + 'Array item itself should be start for second array item' => [ + 'testMarker' => '/* test437NestedLongArrayWithinNestedMatch */', + 'targets' => T_DNUMBER, + 'expectedTarget' => T_DNUMBER, + ], + 'Array item itself should be start for third array item' => [ + 'testMarker' => '/* test437NestedLongArrayWithinNestedMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + + 'Parameter itself should be start for first param passed to function call' => [ + 'testMarker' => '/* test437NestedFunctionCallWithinNestedMatch */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_LNUMBER, + ], + 'Parameter itself should be start for second param passed to function call' => [ + 'testMarker' => '/* test437NestedFunctionCallWithinNestedMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + 'Parameter itself should be start for third param passed to function call' => [ + 'testMarker' => '/* test437NestedFunctionCallWithinNestedMatch */', + 'targets' => T_DNUMBER, + 'expectedTarget' => T_DNUMBER, + ], + + 'Parameter itself should be start for first param declared in arrow function' => [ + 'testMarker' => '/* test437NestedArrowFunctionWithinNestedMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + 'Parameter itself should be start for second param declared in arrow function' => [ + 'testMarker' => '/* test437FnSecondParamWithinNestedMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + ]; + + }//end dataFindStartInsideParenthesesNestedWithinNestedMatch() + + + /** + * Test finding the start of a statement for a token within a short array within a match expressions. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $target The token to search for after the test marker. + * @param int|string $expectedTarget Token code of the expected start of statement stack pointer. + * + * @link https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/437 + * + * @dataProvider dataFindStartInsideShortArrayNestedWithinMatch + * + * @return void + */ + public function testFindStartInsideShortArrayNestedWithinMatch($testMarker, $target, $expectedTarget) + { + $testToken = $this->getTargetToken($testMarker, $target); + $expected = $this->getTargetToken($testMarker, $expectedTarget); + + $found = self::$phpcsFile->findStartOfStatement($testToken); + + $this->assertSame($expected, $found); + + }//end testFindStartInsideShortArrayNestedWithinMatch() + + + /** + * Data provider. + * + * @return array> + */ + public static function dataFindStartInsideShortArrayNestedWithinMatch() + { + return [ + 'Array item itself should be start for first array item' => [ + 'testMarker' => '/* test437NestedShortArrayWithinMatch */', + 'targets' => T_LNUMBER, + 'expectedTarget' => T_LNUMBER, + ], + 'Array item itself should be start for second array item' => [ + 'testMarker' => '/* test437NestedShortArrayWithinMatch */', + 'targets' => T_DNUMBER, + 'expectedTarget' => T_DNUMBER, + ], + 'Array item itself should be start for third array item' => [ + 'testMarker' => '/* test437NestedShortArrayWithinMatch */', + 'targets' => T_VARIABLE, + 'expectedTarget' => T_VARIABLE, + ], + ]; + + }//end dataFindStartInsideShortArrayNestedWithinMatch() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetClassPropertiesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetClassPropertiesTest.inc new file mode 100644 index 000000000..2490a0965 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetClassPropertiesTest.inc @@ -0,0 +1,58 @@ + + * @copyright 2022 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; + +/** + * Tests for the \PHP_CodeSniffer\Files\File:getClassProperties method. + * + * @covers \PHP_CodeSniffer\Files\File::getClassProperties + */ +final class GetClassPropertiesTest extends AbstractMethodUnitTest +{ + + + /** + * Test receiving an expected exception when a non class token is passed. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $tokenType The type of token to look for after the marker. + * + * @dataProvider dataNotAClassException + * + * @return void + */ + public function testNotAClassException($testMarker, $tokenType) + { + $this->expectRunTimeException('$stackPtr must be of type T_CLASS'); + + $target = $this->getTargetToken($testMarker, $tokenType); + self::$phpcsFile->getClassProperties($target); + + }//end testNotAClassException() + + + /** + * Data provider. + * + * @see testNotAClassException() For the array format. + * + * @return array> + */ + public static function dataNotAClassException() + { + return [ + 'interface' => [ + 'testMarker' => '/* testNotAClass */', + 'tokenType' => T_INTERFACE, + ], + 'anon-class' => [ + 'testMarker' => '/* testAnonClass */', + 'tokenType' => T_ANON_CLASS, + ], + 'enum' => [ + 'testMarker' => '/* testEnum */', + 'tokenType' => T_ENUM, + ], + ]; + + }//end dataNotAClassException() + + + /** + * Test retrieving the properties for a class declaration. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param array $expected Expected function output. + * + * @dataProvider dataGetClassProperties + * + * @return void + */ + public function testGetClassProperties($testMarker, $expected) + { + $class = $this->getTargetToken($testMarker, T_CLASS); + $result = self::$phpcsFile->getClassProperties($class); + $this->assertSame($expected, $result); + + }//end testGetClassProperties() + + + /** + * Data provider. + * + * @see testGetClassProperties() For the array format. + * + * @return array>> + */ + public static function dataGetClassProperties() + { + return [ + 'no-properties' => [ + 'testMarker' => '/* testClassWithoutProperties */', + 'expected' => [ + 'is_abstract' => false, + 'is_final' => false, + 'is_readonly' => false, + ], + ], + 'abstract' => [ + 'testMarker' => '/* testAbstractClass */', + 'expected' => [ + 'is_abstract' => true, + 'is_final' => false, + 'is_readonly' => false, + ], + ], + 'final' => [ + 'testMarker' => '/* testFinalClass */', + 'expected' => [ + 'is_abstract' => false, + 'is_final' => true, + 'is_readonly' => false, + ], + ], + 'readonly' => [ + 'testMarker' => '/* testReadonlyClass */', + 'expected' => [ + 'is_abstract' => false, + 'is_final' => false, + 'is_readonly' => true, + ], + ], + 'final-readonly' => [ + 'testMarker' => '/* testFinalReadonlyClass */', + 'expected' => [ + 'is_abstract' => false, + 'is_final' => true, + 'is_readonly' => true, + ], + ], + 'readonly-final' => [ + 'testMarker' => '/* testReadonlyFinalClass */', + 'expected' => [ + 'is_abstract' => false, + 'is_final' => true, + 'is_readonly' => true, + ], + ], + 'abstract-readonly' => [ + 'testMarker' => '/* testAbstractReadonlyClass */', + 'expected' => [ + 'is_abstract' => true, + 'is_final' => false, + 'is_readonly' => true, + ], + ], + 'readonly-abstract' => [ + 'testMarker' => '/* testReadonlyAbstractClass */', + 'expected' => [ + 'is_abstract' => true, + 'is_final' => false, + 'is_readonly' => true, + ], + ], + 'comments-and-new-lines' => [ + 'testMarker' => '/* testWithCommentsAndNewLines */', + 'expected' => [ + 'is_abstract' => true, + 'is_final' => false, + 'is_readonly' => false, + ], + ], + 'no-properties-with-docblock' => [ + 'testMarker' => '/* testWithDocblockWithoutProperties */', + 'expected' => [ + 'is_abstract' => false, + 'is_final' => false, + 'is_readonly' => false, + ], + ], + 'abstract-final-parse-error' => [ + 'testMarker' => '/* testParseErrorAbstractFinal */', + 'expected' => [ + 'is_abstract' => true, + 'is_final' => true, + 'is_readonly' => false, + ], + ], + ]; + + }//end dataGetClassProperties() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetConditionTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetConditionTest.inc new file mode 100644 index 000000000..e7684daa9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetConditionTest.inc @@ -0,0 +1,91 @@ + $v) { + + /* condition 11-2: try */ + try { + --$k; + + /* condition 11-3: catch */ + } catch (Exception $e) { + /* testInException */ + echo 'oh darn'; + /* condition 11-4: finally */ + } finally { + return true; + } + } + + $a++; + } + break; + + /* condition 8b: default */ + default: + /* testInDefault */ + $return = 'nada'; + return $return; + } + } + } + } + } + } + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetConditionTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetConditionTest.php new file mode 100644 index 000000000..5df0f5a27 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetConditionTest.php @@ -0,0 +1,494 @@ + + * @copyright 2022-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHP_CodeSniffer\Util\Tokens; + +/** + * Tests for the \PHP_CodeSniffer\Files\File:getCondition and \PHP_CodeSniffer\Files\File:hasCondition methods. + * + * @covers \PHP_CodeSniffer\Files\File::getCondition + * @covers \PHP_CodeSniffer\Files\File::hasCondition + */ +final class GetConditionTest extends AbstractMethodUnitTest +{ + + /** + * List of all the test markers with their target token in the test case file. + * + * - The startPoint token is left out as it is tested separately. + * - The key is the type of token to look for after the test marker. + * + * @var array + */ + protected static $testTargets = [ + T_VARIABLE => '/* testSeriouslyNestedMethod */', + T_RETURN => '/* testDeepestNested */', + T_ECHO => '/* testInException */', + T_CONSTANT_ENCAPSED_STRING => '/* testInDefault */', + ]; + + /** + * List of all the condition markers in the test case file. + * + * @var array + */ + protected $conditionMarkers = [ + '/* condition 0: namespace */', + '/* condition 1: if */', + '/* condition 2: function */', + '/* condition 3-1: if */', + '/* condition 3-2: else */', + '/* condition 4: if */', + '/* condition 5: nested class */', + '/* condition 6: class method */', + '/* condition 7: switch */', + '/* condition 8a: case */', + '/* condition 9: while */', + '/* condition 10-1: if */', + '/* condition 11-1: nested anonymous class */', + '/* condition 12: nested anonymous class method */', + '/* condition 13: closure */', + '/* condition 10-2: elseif */', + '/* condition 10-3: foreach */', + '/* condition 11-2: try */', + '/* condition 11-3: catch */', + '/* condition 11-4: finally */', + '/* condition 8b: default */', + ]; + + /** + * Base array with all the scope opening tokens. + * + * This array is merged with expected result arrays for various unit tests + * to make sure all possible conditions are tested. + * + * This array should be kept in sync with the Tokens::$scopeOpeners array. + * This array isn't auto-generated based on the array in Tokens as for these + * tests we want to have access to the token constant names, not just their values. + * + * @var array + */ + protected $conditionDefaults = [ + 'T_CLASS' => false, + 'T_ANON_CLASS' => false, + 'T_INTERFACE' => false, + 'T_TRAIT' => false, + 'T_NAMESPACE' => false, + 'T_FUNCTION' => false, + 'T_CLOSURE' => false, + 'T_IF' => false, + 'T_SWITCH' => false, + 'T_CASE' => false, + 'T_DECLARE' => false, + 'T_DEFAULT' => false, + 'T_WHILE' => false, + 'T_ELSE' => false, + 'T_ELSEIF' => false, + 'T_FOR' => false, + 'T_FOREACH' => false, + 'T_DO' => false, + 'T_TRY' => false, + 'T_CATCH' => false, + 'T_FINALLY' => false, + 'T_PROPERTY' => false, + 'T_OBJECT' => false, + 'T_USE' => false, + ]; + + /** + * Cache for the test token stack pointers. + * + * @var array + */ + protected static $testTokens = []; + + /** + * Cache for the marker token stack pointers. + * + * @var array + */ + protected static $markerTokens = []; + + + /** + * Set up the token position caches for the tests. + * + * Retrieves the test tokens and marker token stack pointer positions + * only once and caches them as they won't change between the tests anyway. + * + * @before + * + * @return void + */ + protected function setUpCaches() + { + if (empty(self::$testTokens) === true) { + foreach (self::$testTargets as $targetToken => $marker) { + self::$testTokens[$marker] = $this->getTargetToken($marker, $targetToken); + } + } + + if (empty(self::$markerTokens) === true) { + foreach ($this->conditionMarkers as $marker) { + self::$markerTokens[$marker] = $this->getTargetToken($marker, Tokens::$scopeOpeners); + } + } + + }//end setUpCaches() + + + /** + * Test passing a non-existent token pointer. + * + * @return void + */ + public function testNonExistentToken() + { + $result = self::$phpcsFile->getCondition(100000, Tokens::$ooScopeTokens); + $this->assertFalse($result); + + $result = self::$phpcsFile->hasCondition(100000, T_IF); + $this->assertFalse($result); + + }//end testNonExistentToken() + + + /** + * Test passing a non conditional token. + * + * @return void + */ + public function testNonConditionalToken() + { + $targetType = T_STRING; + $stackPtr = $this->getTargetToken('/* testStartPoint */', $targetType); + + $result = self::$phpcsFile->getCondition($stackPtr, T_IF); + $this->assertFalse($result); + + $result = self::$phpcsFile->hasCondition($stackPtr, Tokens::$ooScopeTokens); + $this->assertFalse($result); + + }//end testNonConditionalToken() + + + /** + * Test retrieving a specific condition from a tokens "conditions" array. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param array $expectedResults Array with the condition token type to search for as key + * and the marker for the expected stack pointer result as a value. + * + * @dataProvider dataGetCondition + * + * @return void + */ + public function testGetCondition($testMarker, $expectedResults) + { + $stackPtr = self::$testTokens[$testMarker]; + + // Add expected results for all test markers not listed in the data provider. + $expectedResults += $this->conditionDefaults; + + foreach ($expectedResults as $conditionType => $expected) { + if (is_string($expected) === true) { + $expected = self::$markerTokens[$expected]; + } + + $result = self::$phpcsFile->getCondition($stackPtr, constant($conditionType)); + $this->assertSame( + $expected, + $result, + "Assertion failed for test marker '{$testMarker}' with condition {$conditionType}" + ); + } + + }//end testGetCondition() + + + /** + * Data provider. + * + * Only the conditions which are expected to be *found* need to be listed here. + * All other potential conditions will automatically also be tested and will expect + * `false` as a result. + * + * @see testGetCondition() For the array format. + * + * @return array>> + */ + public static function dataGetCondition() + { + return [ + 'testSeriouslyNestedMethod' => [ + 'testMarker' => '/* testSeriouslyNestedMethod */', + 'expectedResults' => [ + 'T_CLASS' => '/* condition 5: nested class */', + 'T_NAMESPACE' => '/* condition 0: namespace */', + 'T_FUNCTION' => '/* condition 2: function */', + 'T_IF' => '/* condition 1: if */', + 'T_ELSE' => '/* condition 3-2: else */', + ], + ], + 'testDeepestNested' => [ + 'testMarker' => '/* testDeepestNested */', + 'expectedResults' => [ + 'T_CLASS' => '/* condition 5: nested class */', + 'T_ANON_CLASS' => '/* condition 11-1: nested anonymous class */', + 'T_NAMESPACE' => '/* condition 0: namespace */', + 'T_FUNCTION' => '/* condition 2: function */', + 'T_CLOSURE' => '/* condition 13: closure */', + 'T_IF' => '/* condition 1: if */', + 'T_SWITCH' => '/* condition 7: switch */', + 'T_CASE' => '/* condition 8a: case */', + 'T_WHILE' => '/* condition 9: while */', + 'T_ELSE' => '/* condition 3-2: else */', + ], + ], + 'testInException' => [ + 'testMarker' => '/* testInException */', + 'expectedResults' => [ + 'T_CLASS' => '/* condition 5: nested class */', + 'T_NAMESPACE' => '/* condition 0: namespace */', + 'T_FUNCTION' => '/* condition 2: function */', + 'T_IF' => '/* condition 1: if */', + 'T_SWITCH' => '/* condition 7: switch */', + 'T_CASE' => '/* condition 8a: case */', + 'T_WHILE' => '/* condition 9: while */', + 'T_ELSE' => '/* condition 3-2: else */', + 'T_FOREACH' => '/* condition 10-3: foreach */', + 'T_CATCH' => '/* condition 11-3: catch */', + ], + ], + 'testInDefault' => [ + 'testMarker' => '/* testInDefault */', + 'expectedResults' => [ + 'T_CLASS' => '/* condition 5: nested class */', + 'T_NAMESPACE' => '/* condition 0: namespace */', + 'T_FUNCTION' => '/* condition 2: function */', + 'T_IF' => '/* condition 1: if */', + 'T_SWITCH' => '/* condition 7: switch */', + 'T_DEFAULT' => '/* condition 8b: default */', + 'T_ELSE' => '/* condition 3-2: else */', + ], + ], + ]; + + }//end dataGetCondition() + + + /** + * Test retrieving a specific condition from a tokens "conditions" array. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param array $expectedResults Array with the condition token type to search for as key + * and the marker for the expected stack pointer result as a value. + * + * @dataProvider dataGetConditionReversed + * + * @return void + */ + public function testGetConditionReversed($testMarker, $expectedResults) + { + $stackPtr = self::$testTokens[$testMarker]; + + // Add expected results for all test markers not listed in the data provider. + $expectedResults += $this->conditionDefaults; + + foreach ($expectedResults as $conditionType => $expected) { + if (is_string($expected) === true) { + $expected = self::$markerTokens[$expected]; + } + + $result = self::$phpcsFile->getCondition($stackPtr, constant($conditionType), false); + $this->assertSame( + $expected, + $result, + "Assertion failed for test marker '{$testMarker}' with condition {$conditionType} (reversed)" + ); + } + + }//end testGetConditionReversed() + + + /** + * Data provider. + * + * Only the conditions which are expected to be *found* need to be listed here. + * All other potential conditions will automatically also be tested and will expect + * `false` as a result. + * + * @see testGetConditionReversed() For the array format. + * + * @return array>> + */ + public static function dataGetConditionReversed() + { + $data = self::dataGetCondition(); + + // Set up the data for the reversed results. + $data['testSeriouslyNestedMethod']['expectedResults']['T_IF'] = '/* condition 4: if */'; + + $data['testDeepestNested']['expectedResults']['T_FUNCTION'] = '/* condition 12: nested anonymous class method */'; + $data['testDeepestNested']['expectedResults']['T_IF'] = '/* condition 10-1: if */'; + + $data['testInException']['expectedResults']['T_FUNCTION'] = '/* condition 6: class method */'; + $data['testInException']['expectedResults']['T_IF'] = '/* condition 4: if */'; + + $data['testInDefault']['expectedResults']['T_FUNCTION'] = '/* condition 6: class method */'; + $data['testInDefault']['expectedResults']['T_IF'] = '/* condition 4: if */'; + + return $data; + + }//end dataGetConditionReversed() + + + /** + * Test whether a token has a condition of a certain type. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param array $expectedResults Array with the condition token type to search for as key + * and the expected result as a value. + * + * @dataProvider dataHasCondition + * + * @return void + */ + public function testHasCondition($testMarker, $expectedResults) + { + $stackPtr = self::$testTokens[$testMarker]; + + // Add expected results for all test markers not listed in the data provider. + $expectedResults += $this->conditionDefaults; + + foreach ($expectedResults as $conditionType => $expected) { + $result = self::$phpcsFile->hasCondition($stackPtr, constant($conditionType)); + $this->assertSame( + $expected, + $result, + "Assertion failed for test marker '{$testMarker}' with condition {$conditionType}" + ); + } + + }//end testHasCondition() + + + /** + * Data Provider. + * + * Only list the "true" conditions in the $results array. + * All other potential conditions will automatically also be tested + * and will expect "false" as a result. + * + * @see testHasCondition() For the array format. + * + * @return array>> + */ + public static function dataHasCondition() + { + return [ + 'testSeriouslyNestedMethod' => [ + 'testMarker' => '/* testSeriouslyNestedMethod */', + 'expectedResults' => [ + 'T_CLASS' => true, + 'T_NAMESPACE' => true, + 'T_FUNCTION' => true, + 'T_IF' => true, + 'T_ELSE' => true, + ], + ], + 'testDeepestNested' => [ + 'testMarker' => '/* testDeepestNested */', + 'expectedResults' => [ + 'T_CLASS' => true, + 'T_ANON_CLASS' => true, + 'T_NAMESPACE' => true, + 'T_FUNCTION' => true, + 'T_CLOSURE' => true, + 'T_IF' => true, + 'T_SWITCH' => true, + 'T_CASE' => true, + 'T_WHILE' => true, + 'T_ELSE' => true, + ], + ], + 'testInException' => [ + 'testMarker' => '/* testInException */', + 'expectedResults' => [ + 'T_CLASS' => true, + 'T_NAMESPACE' => true, + 'T_FUNCTION' => true, + 'T_IF' => true, + 'T_SWITCH' => true, + 'T_CASE' => true, + 'T_WHILE' => true, + 'T_ELSE' => true, + 'T_FOREACH' => true, + 'T_CATCH' => true, + ], + ], + 'testInDefault' => [ + 'testMarker' => '/* testInDefault */', + 'expectedResults' => [ + 'T_CLASS' => true, + 'T_NAMESPACE' => true, + 'T_FUNCTION' => true, + 'T_IF' => true, + 'T_SWITCH' => true, + 'T_DEFAULT' => true, + 'T_ELSE' => true, + ], + ], + ]; + + }//end dataHasCondition() + + + /** + * Test whether a token has a condition of a certain type, with multiple allowed possibilities. + * + * @return void + */ + public function testHasConditionMultipleTypes() + { + $stackPtr = self::$testTokens['/* testInException */']; + + $result = self::$phpcsFile->hasCondition($stackPtr, [T_TRY, T_FINALLY]); + $this->assertFalse( + $result, + 'Failed asserting that "testInException" does not have a "try" nor a "finally" condition' + ); + + $result = self::$phpcsFile->hasCondition($stackPtr, [T_TRY, T_CATCH, T_FINALLY]); + $this->assertTrue( + $result, + 'Failed asserting that "testInException" has a "try", "catch" or "finally" condition' + ); + + $stackPtr = self::$testTokens['/* testSeriouslyNestedMethod */']; + + $result = self::$phpcsFile->hasCondition($stackPtr, [T_ANON_CLASS, T_CLOSURE]); + $this->assertFalse( + $result, + 'Failed asserting that "testSeriouslyNestedMethod" does not have an anonymous class nor a closure condition' + ); + + $result = self::$phpcsFile->hasCondition($stackPtr, Tokens::$ooScopeTokens); + $this->assertTrue( + $result, + 'Failed asserting that "testSeriouslyNestedMethod" has an OO Scope token condition' + ); + + }//end testHasConditionMultipleTypes() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameJSTest.js b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameJSTest.js new file mode 100644 index 000000000..ee0a76a44 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameJSTest.js @@ -0,0 +1,23 @@ +/* testInvalidTokenPassed */ +print something; + +var object = +{ + /* testClosure */ + propertyName: function () {} +} + +/* testFunction */ +function functionName() {} + +/* testClass */ +class ClassName +{ + /* testMethod */ + methodName() { + return false; + } +} + +/* testFunctionUnicode */ +function π() {} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameJSTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameJSTest.php new file mode 100644 index 000000000..af3fe56d2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameJSTest.php @@ -0,0 +1,158 @@ + + * @copyright 2022-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; + +/** + * Tests for the \PHP_CodeSniffer\Files\File:getDeclarationName method. + * + * @covers \PHP_CodeSniffer\Files\File::getDeclarationName + */ +final class GetDeclarationNameJSTest extends AbstractMethodUnitTest +{ + + /** + * The file extension of the test case file (without leading dot). + * + * @var string + */ + protected static $fileExtension = 'js'; + + + /** + * Test receiving an expected exception when a non-supported token is passed. + * + * @return void + */ + public function testInvalidTokenPassed() + { + $this->expectRunTimeException('Token type "T_STRING" is not T_FUNCTION, T_CLASS, T_INTERFACE, T_TRAIT or T_ENUM'); + + $target = $this->getTargetToken('/* testInvalidTokenPassed */', T_STRING); + self::$phpcsFile->getDeclarationName($target); + + }//end testInvalidTokenPassed() + + + /** + * Test receiving "null" when passed an anonymous construct or in case of a parse error. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $targetType Token type of the token to get as stackPtr. + * + * @dataProvider dataGetDeclarationNameNull + * + * @return void + */ + public function testGetDeclarationNameNull($testMarker, $targetType) + { + $target = $this->getTargetToken($testMarker, $targetType); + $result = self::$phpcsFile->getDeclarationName($target); + $this->assertNull($result); + + }//end testGetDeclarationNameNull() + + + /** + * Data provider. + * + * @see GetDeclarationNameTest::testGetDeclarationNameNull() + * + * @return array> + */ + public static function dataGetDeclarationNameNull() + { + return [ + 'closure' => [ + 'testMarker' => '/* testClosure */', + 'targetType' => T_CLOSURE, + ], + ]; + + }//end dataGetDeclarationNameNull() + + + /** + * Test retrieving the name of a function or OO structure. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expected Expected function output. + * @param array|null $targetType Token type of the token to get as stackPtr. + * + * @dataProvider dataGetDeclarationName + * + * @return void + */ + public function testGetDeclarationName($testMarker, $expected, $targetType=null) + { + if (isset($targetType) === false) { + $targetType = [ + T_CLASS, + T_INTERFACE, + T_TRAIT, + T_ENUM, + T_FUNCTION, + ]; + } + + $target = $this->getTargetToken($testMarker, $targetType); + $result = self::$phpcsFile->getDeclarationName($target); + $this->assertSame($expected, $result); + + }//end testGetDeclarationName() + + + /** + * Data provider. + * + * @see GetDeclarationNameTest::testGetDeclarationName() + * + * @return array>> + */ + public static function dataGetDeclarationName() + { + return [ + 'function' => [ + 'testMarker' => '/* testFunction */', + 'expected' => 'functionName', + ], + 'class' => [ + 'testMarker' => '/* testClass */', + 'expected' => 'ClassName', + 'targetType' => [ + T_CLASS, + T_STRING, + ], + ], + 'function-unicode-name' => [ + 'testMarker' => '/* testFunctionUnicode */', + 'expected' => 'π', + ], + ]; + + }//end dataGetDeclarationName() + + + /** + * Test retrieving the name of JS ES6 class method. + * + * @return void + */ + public function testGetDeclarationNameES6Method() + { + $target = $this->getTargetToken('/* testMethod */', [T_CLASS, T_INTERFACE, T_TRAIT, T_FUNCTION]); + $result = self::$phpcsFile->getDeclarationName($target); + $this->assertSame('methodName', $result); + + }//end testGetDeclarationNameES6Method() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameTest.inc new file mode 100644 index 000000000..14902245b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetDeclarationNameTest.inc @@ -0,0 +1,102 @@ + + * @copyright 2022-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; + +/** + * Tests for the \PHP_CodeSniffer\Files\File:getDeclarationName method. + * + * @covers \PHP_CodeSniffer\Files\File::getDeclarationName + */ +final class GetDeclarationNameTest extends AbstractMethodUnitTest +{ + + + /** + * Test receiving an expected exception when a non-supported token is passed. + * + * @return void + */ + public function testInvalidTokenPassed() + { + $this->expectRunTimeException('Token type "T_STRING" is not T_FUNCTION, T_CLASS, T_INTERFACE, T_TRAIT or T_ENUM'); + + $target = $this->getTargetToken('/* testInvalidTokenPassed */', T_STRING); + self::$phpcsFile->getDeclarationName($target); + + }//end testInvalidTokenPassed() + + + /** + * Test receiving "null" when passed an anonymous construct or in case of a parse error. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $targetType Token type of the token to get as stackPtr. + * + * @dataProvider dataGetDeclarationNameNull + * + * @return void + */ + public function testGetDeclarationNameNull($testMarker, $targetType) + { + $target = $this->getTargetToken($testMarker, $targetType); + $result = self::$phpcsFile->getDeclarationName($target); + $this->assertNull($result); + + }//end testGetDeclarationNameNull() + + + /** + * Data provider. + * + * @see testGetDeclarationNameNull() For the array format. + * + * @return array> + */ + public static function dataGetDeclarationNameNull() + { + return [ + 'closure' => [ + 'testMarker' => '/* testClosure */', + 'targetType' => T_CLOSURE, + ], + 'anon-class-with-parentheses' => [ + 'testMarker' => '/* testAnonClassWithParens */', + 'targetType' => T_ANON_CLASS, + ], + 'anon-class-with-parentheses-2' => [ + 'testMarker' => '/* testAnonClassWithParens2 */', + 'targetType' => T_ANON_CLASS, + ], + 'anon-class-without-parentheses' => [ + 'testMarker' => '/* testAnonClassWithoutParens */', + 'targetType' => T_ANON_CLASS, + ], + 'anon-class-extends-without-parentheses' => [ + 'testMarker' => '/* testAnonClassExtendsWithoutParens */', + 'targetType' => T_ANON_CLASS, + ], + 'live-coding' => [ + 'testMarker' => '/* testLiveCoding */', + 'targetType' => T_FUNCTION, + ], + ]; + + }//end dataGetDeclarationNameNull() + + + /** + * Test retrieving the name of a function or OO structure. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expected Expected function output. + * @param int|string|null $targetType Token type of the token to get as stackPtr. + * + * @dataProvider dataGetDeclarationName + * + * @return void + */ + public function testGetDeclarationName($testMarker, $expected, $targetType=null) + { + if (isset($targetType) === false) { + $targetType = [ + T_CLASS, + T_INTERFACE, + T_TRAIT, + T_ENUM, + T_FUNCTION, + ]; + } + + $target = $this->getTargetToken($testMarker, $targetType); + $result = self::$phpcsFile->getDeclarationName($target); + $this->assertSame($expected, $result); + + }//end testGetDeclarationName() + + + /** + * Data provider. + * + * @see testGetDeclarationName() For the array format. + * + * @return array> + */ + public static function dataGetDeclarationName() + { + return [ + 'function' => [ + 'testMarker' => '/* testFunction */', + 'expected' => 'functionName', + ], + 'function-return-by-reference' => [ + 'testMarker' => '/* testFunctionReturnByRef */', + 'expected' => 'functionNameByRef', + ], + 'class' => [ + 'testMarker' => '/* testClass */', + 'expected' => 'ClassName', + ], + 'method' => [ + 'testMarker' => '/* testMethod */', + 'expected' => 'methodName', + ], + 'abstract-method' => [ + 'testMarker' => '/* testAbstractMethod */', + 'expected' => 'abstractMethodName', + ], + 'method-return-by-reference' => [ + 'testMarker' => '/* testMethodReturnByRef */', + 'expected' => 'MethodNameByRef', + ], + 'extended-class' => [ + 'testMarker' => '/* testExtendedClass */', + 'expected' => 'ExtendedClass', + ], + 'interface' => [ + 'testMarker' => '/* testInterface */', + 'expected' => 'InterfaceName', + ], + 'trait' => [ + 'testMarker' => '/* testTrait */', + 'expected' => 'TraitName', + ], + 'function-name-ends-with-number' => [ + 'testMarker' => '/* testFunctionEndingWithNumber */', + 'expected' => 'ValidNameEndingWithNumber5', + ], + 'class-with-numbers-in-name' => [ + 'testMarker' => '/* testClassWithNumber */', + 'expected' => 'ClassWith1Number', + ], + 'interface-with-numbers-in-name' => [ + 'testMarker' => '/* testInterfaceWithNumbers */', + 'expected' => 'InterfaceWith12345Numbers', + ], + 'class-with-comments-and-new-lines' => [ + 'testMarker' => '/* testClassWithCommentsAndNewLines */', + 'expected' => 'ClassWithCommentsAndNewLines', + ], + 'function-named-fn' => [ + 'testMarker' => '/* testFunctionFn */', + 'expected' => 'fn', + ], + 'enum-pure' => [ + 'testMarker' => '/* testPureEnum */', + 'expected' => 'Foo', + ], + 'enum-backed-space-between-name-and-colon' => [ + 'testMarker' => '/* testBackedEnumSpaceBetweenNameAndColon */', + 'expected' => 'Hoo', + ], + 'enum-backed-no-space-between-name-and-colon' => [ + 'testMarker' => '/* testBackedEnumNoSpaceBetweenNameAndColon */', + 'expected' => 'Suit', + ], + 'function-return-by-reference-with-reserved-keyword-each' => [ + 'testMarker' => '/* testFunctionReturnByRefWithReservedKeywordEach */', + 'expected' => 'each', + ], + 'function-return-by-reference-with-reserved-keyword-parent' => [ + 'testMarker' => '/* testFunctionReturnByRefWithReservedKeywordParent */', + 'expected' => 'parent', + ], + 'function-return-by-reference-with-reserved-keyword-self' => [ + 'testMarker' => '/* testFunctionReturnByRefWithReservedKeywordSelf */', + 'expected' => 'self', + ], + 'function-return-by-reference-with-reserved-keyword-static' => [ + 'testMarker' => '/* testFunctionReturnByRefWithReservedKeywordStatic */', + 'expected' => 'static', + ], + ]; + + }//end dataGetDeclarationName() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.inc index ea47e9fc5..514662081 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.inc @@ -39,7 +39,10 @@ class TestMemberProperties var static $varG = true; /* testPublicStatic */ - public static $varH = true; + public // comment + // phpcs:ignore Stnd.Cat.Sniff -- For reasons. + static + $varH = true; /* testProtectedStatic */ static protected $varI = true; @@ -210,18 +213,19 @@ $anon = class() { /* testPHP8UnionTypesIllegalTypes */ // Intentional fatal error - types which are not allowed for properties, but that's not the concern of the method. - public callable|static|void $unionTypesIllegalTypes; + // Note: static is also not allowed as a type, but using static for a property type is not supported by the tokenizer. + public callable|void $unionTypesIllegalTypes; /* testPHP8UnionTypesNullable */ // Intentional fatal error - nullability is not allowed with union types, but that's not the concern of the method. public ?int|float $unionTypesNullable; /* testPHP8PseudoTypeNull */ - // Intentional fatal error - null pseudotype is only allowed in union types, but that's not the concern of the method. + // PHP 8.0 - 8.1: Intentional fatal error - null pseudotype is only allowed in union types, but that's not the concern of the method. public null $pseudoTypeNull; /* testPHP8PseudoTypeFalse */ - // Intentional fatal error - false pseudotype is only allowed in union types, but that's not the concern of the method. + // PHP 8.0 - 8.1: Intentional fatal error - false pseudotype is only allowed in union types, but that's not the concern of the method. public false $pseudoTypeFalse; /* testPHP8PseudoTypeFalseAndBool */ @@ -239,6 +243,31 @@ $anon = class() { /* testPHP8DuplicateTypeInUnionWhitespaceAndComment */ // Intentional fatal error - duplicate types are not allowed in union types, but that's not the concern of the method. public int |string| /*comment*/ INT $duplicateTypeInUnion; + + /* testPHP81Readonly */ + public readonly int $readonly; + + /* testPHP81ReadonlyWithNullableType */ + public readonly ?array $readonlyWithNullableType; + + /* testPHP81ReadonlyWithUnionType */ + public readonly string|int $readonlyWithUnionType; + + /* testPHP81ReadonlyWithUnionTypeWithNull */ + protected ReadOnly string|null $readonlyWithUnionTypeWithNull; + + /* testPHP81OnlyReadonlyWithUnionType */ + readonly string|int $onlyReadonly; + + /* testPHP81OnlyReadonlyWithUnionTypeMultiple */ + readonly \InterfaceA|\Sub\InterfaceB|false + $onlyReadonly; + + /* testPHP81ReadonlyAndStatic */ + readonly private static ?string $readonlyAndStatic; + + /* testPHP81ReadonlyMixedCase */ + public ReadONLY static $readonlyMixedCase; }; $anon = class { @@ -256,3 +285,72 @@ $anon = class { ] private mixed $baz; }; + +enum Suit +{ + /* testEnumProperty */ + protected $anonymous; +} + +enum Direction implements ArrayAccess +{ + case Up; + case Down; + + /* testEnumMethodParamNotProperty */ + public function offsetGet($val) { ... } +} + +$anon = class() { + /* testPHP81IntersectionTypes */ + public Foo&Bar $intersectionType; + + /* testPHP81MoreIntersectionTypes */ + public Foo&Bar&Baz $moreIntersectionTypes; + + /* testPHP81IllegalIntersectionTypes */ + // Intentional fatal error - types which are not allowed for intersection type, but that's not the concern of the method. + public int&string $illegalIntersectionType; + + /* testPHP81NullableIntersectionType */ + // Intentional fatal error - nullability is not allowed with intersection type, but that's not the concern of the method. + public ?Foo&Bar $nullableIntersectionType; +}; + +$anon = class() { + /* testPHP82PseudoTypeTrue */ + public true $pseudoTypeTrue; + + /* testPHP82NullablePseudoTypeTrue */ + static protected ?true $pseudoTypeNullableTrue; + + /* testPHP82PseudoTypeTrueInUnion */ + private int|string|true $pseudoTypeTrueInUnion; + + /* testPHP82PseudoTypeFalseAndTrue */ + // Intentional fatal error - Type contains both true and false, bool should be used instead, but that's not the concern of the method. + readonly true|FALSE $pseudoTypeFalseAndTrue; +}; + +class WhitespaceAndCommentsInTypes { + /* testUnionTypeWithWhitespaceAndComment */ + public int | /*comment*/ string $hasWhitespaceAndComment; + + /* testIntersectionTypeWithWhitespaceAndComment */ + public \Foo /*comment*/ & Bar $hasWhitespaceAndComment; +} + +trait DNFTypes { + /* testPHP82DNFTypeStatic */ + public static (Foo&\Bar)|bool $propA; + + /* testPHP82DNFTypeReadonlyA */ + protected readonly float|(Partially\Qualified&Traversable) $propB; + + /* testPHP82DNFTypeReadonlyB */ + private readonly (namespace\Foo&Bar)|string $propC; + + /* testPHP82DNFTypeIllegalNullable */ + // Intentional fatal error - nullable operator cannot be combined with DNF. + var ?(A&\Pck\B)|bool $propD; +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.php index 0af043793..e100b7620 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMemberPropertiesTest.php @@ -4,22 +4,27 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class GetMemberPropertiesTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::getMemberProperties method. + * + * @covers \PHP_CodeSniffer\Files\File::getMemberProperties + */ +final class GetMemberPropertiesTest extends AbstractMethodUnitTest { /** * Test the getMemberProperties() method. * - * @param string $identifier Comment which precedes the test case. - * @param bool $expected Expected function output. + * @param string $identifier Comment which precedes the test case. + * @param array $expected Expected function output. * * @dataProvider dataGetMemberProperties * @@ -30,7 +35,16 @@ public function testGetMemberProperties($identifier, $expected) $variable = $this->getTargetToken($identifier, T_VARIABLE); $result = self::$phpcsFile->getMemberProperties($variable); - $this->assertArraySubset($expected, $result, true); + // Convert offsets to absolute positions in the token stream. + if (isset($expected['type_token']) === true && is_int($expected['type_token']) === true) { + $expected['type_token'] += $variable; + } + + if (isset($expected['type_end_token']) === true && is_int($expected['type_end_token']) === true) { + $expected['type_end_token'] += $variable; + } + + $this->assertSame($expected, $result); }//end testGetMemberProperties() @@ -38,608 +52,1081 @@ public function testGetMemberProperties($identifier, $expected) /** * Data provider for the GetMemberProperties test. * + * Note: the `expected - type_token` and `expected - type_end_token` indexes should + * contain either `false` (no type) or the _offset_ of the type start/end token in + * relation to the `T_VARIABLE` token which is passed to the getMemberProperties() method. + * * @see testGetMemberProperties() * - * @return array + * @return array>> */ - public function dataGetMemberProperties() + public static function dataGetMemberProperties() { return [ - [ - '/* testVar */', - [ + 'var-modifier' => [ + 'identifier' => '/* testVar */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testVarType */', - [ + 'var-modifier-and-type' => [ + 'identifier' => '/* testVarType */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => false, + 'is_readonly' => false, 'type' => '?int', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testPublic */', - [ + 'public-modifier' => [ + 'identifier' => '/* testPublic */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPublicType */', - [ + 'public-modifier-and-type' => [ + 'identifier' => '/* testPublicType */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'string', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testProtected */', - [ + 'protected-modifier' => [ + 'identifier' => '/* testProtected */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testProtectedType */', - [ + 'protected-modifier-and-type' => [ + 'identifier' => '/* testProtectedType */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'bool', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPrivate */', - [ + 'private-modifier' => [ + 'identifier' => '/* testPrivate */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPrivateType */', - [ + 'private-modifier-and-type' => [ + 'identifier' => '/* testPrivateType */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'array', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testStatic */', - [ + 'static-modifier' => [ + 'identifier' => '/* testStatic */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testStaticType */', - [ + 'static-modifier-and-type' => [ + 'identifier' => '/* testStaticType */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => true, + 'is_readonly' => false, 'type' => '?string', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testStaticVar */', - [ + 'static-and-var-modifier' => [ + 'identifier' => '/* testStaticVar */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testVarStatic */', - [ + 'var-and-static-modifier' => [ + 'identifier' => '/* testVarStatic */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPublicStatic */', - [ + 'public-static-modifiers' => [ + 'identifier' => '/* testPublicStatic */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testProtectedStatic */', - [ + 'protected-static-modifiers' => [ + 'identifier' => '/* testProtectedStatic */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPrivateStatic */', - [ + 'private-static-modifiers' => [ + 'identifier' => '/* testPrivateStatic */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPublicStaticWithDocblock */', - [ + 'no-modifier' => [ + 'identifier' => '/* testNoPrefix */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => false, + 'is_static' => false, + 'is_readonly' => false, + 'type' => '', + 'type_token' => false, + 'type_end_token' => false, + 'nullable_type' => false, + ], + ], + 'public-and-static-modifier-with-docblock' => [ + 'identifier' => '/* testPublicStaticWithDocblock */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testProtectedStaticWithDocblock */', - [ + 'protected-and-static-modifier-with-docblock' => [ + 'identifier' => '/* testProtectedStaticWithDocblock */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPrivateStaticWithDocblock */', - [ + 'private-and-static-modifier-with-docblock' => [ + 'identifier' => '/* testPrivateStaticWithDocblock */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupType 1 */', - [ + 'property-group-simple-type-prop-1' => [ + 'identifier' => '/* testGroupType 1 */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'float', + 'type_token' => -6, + 'type_end_token' => -6, 'nullable_type' => false, ], ], - [ - '/* testGroupType 2 */', - [ + 'property-group-simple-type-prop-2' => [ + 'identifier' => '/* testGroupType 2 */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'float', + 'type_token' => -13, + 'type_end_token' => -13, 'nullable_type' => false, ], ], - [ - '/* testGroupNullableType 1 */', - [ + 'property-group-nullable-type-prop-1' => [ + 'identifier' => '/* testGroupNullableType 1 */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '?string', + 'type_token' => -6, + 'type_end_token' => -6, 'nullable_type' => true, ], ], - [ - '/* testGroupNullableType 2 */', - [ + 'property-group-nullable-type-prop-2' => [ + 'identifier' => '/* testGroupNullableType 2 */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '?string', + 'type_token' => -17, + 'type_end_token' => -17, 'nullable_type' => true, ], ], - [ - '/* testNoPrefix */', - [ - 'scope' => 'public', - 'scope_specified' => false, - 'is_static' => false, - 'type' => '', - 'nullable_type' => false, - ], - ], - [ - '/* testGroupProtectedStatic 1 */', - [ + 'property-group-protected-static-prop-1' => [ + 'identifier' => '/* testGroupProtectedStatic 1 */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupProtectedStatic 2 */', - [ + 'property-group-protected-static-prop-2' => [ + 'identifier' => '/* testGroupProtectedStatic 2 */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupProtectedStatic 3 */', - [ + 'property-group-protected-static-prop-3' => [ + 'identifier' => '/* testGroupProtectedStatic 3 */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 1 */', - [ + 'property-group-private-prop-1' => [ + 'identifier' => '/* testGroupPrivate 1 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 2 */', - [ + 'property-group-private-prop-2' => [ + 'identifier' => '/* testGroupPrivate 2 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 3 */', - [ + 'property-group-private-prop-3' => [ + 'identifier' => '/* testGroupPrivate 3 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 4 */', - [ + 'property-group-private-prop-4' => [ + 'identifier' => '/* testGroupPrivate 4 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 5 */', - [ + 'property-group-private-prop-5' => [ + 'identifier' => '/* testGroupPrivate 5 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 6 */', - [ + 'property-group-private-prop-6' => [ + 'identifier' => '/* testGroupPrivate 6 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testGroupPrivate 7 */', - [ + 'property-group-private-prop-7' => [ + 'identifier' => '/* testGroupPrivate 7 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testMessyNullableType */', - [ + 'messy-nullable-type' => [ + 'identifier' => '/* testMessyNullableType */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?array', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testNamespaceType */', - [ + 'fqn-type' => [ + 'identifier' => '/* testNamespaceType */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '\MyNamespace\MyClass', + 'type_token' => -5, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testNullableNamespaceType 1 */', - [ + 'nullable-classname-type' => [ + 'identifier' => '/* testNullableNamespaceType 1 */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?ClassName', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testNullableNamespaceType 2 */', - [ + 'nullable-namespace-relative-class-type' => [ + 'identifier' => '/* testNullableNamespaceType 2 */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?Folder\ClassName', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testMultilineNamespaceType */', - [ + 'multiline-namespaced-type' => [ + 'identifier' => '/* testMultilineNamespaceType */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '\MyNamespace\MyClass\Foo', + 'type_token' => -18, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPropertyAfterMethod */', - [ + 'property-after-method' => [ + 'identifier' => '/* testPropertyAfterMethod */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testInterfaceProperty */', - [], + 'invalid-property-in-interface' => [ + 'identifier' => '/* testInterfaceProperty */', + 'expected' => [], ], - [ - '/* testNestedProperty 1 */', - [ + 'property-in-nested-class-1' => [ + 'identifier' => '/* testNestedProperty 1 */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testNestedProperty 2 */', - [ + 'property-in-nested-class-2' => [ + 'identifier' => '/* testNestedProperty 2 */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '', + 'type_token' => false, + 'type_end_token' => false, 'nullable_type' => false, ], ], - [ - '/* testPHP8MixedTypeHint */', - [ + 'php8-mixed-type' => [ + 'identifier' => '/* testPHP8MixedTypeHint */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => true, + 'is_readonly' => false, 'type' => 'miXed', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8MixedTypeHintNullable */', - [ + 'php8-nullable-mixed-type' => [ + 'identifier' => '/* testPHP8MixedTypeHintNullable */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?mixed', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testNamespaceOperatorTypeHint */', - [ + 'namespace-operator-type-declaration' => [ + 'identifier' => '/* testNamespaceOperatorTypeHint */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?namespace\Name', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testPHP8UnionTypesSimple */', - [ + 'php8-union-types-simple' => [ + 'identifier' => '/* testPHP8UnionTypesSimple */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'int|float', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8UnionTypesTwoClasses */', - [ + 'php8-union-types-two-classes' => [ + 'identifier' => '/* testPHP8UnionTypesTwoClasses */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'MyClassA|\Package\MyClassB', + 'type_token' => -7, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8UnionTypesAllBaseTypes */', - [ + 'php8-union-types-all-base-types' => [ + 'identifier' => '/* testPHP8UnionTypesAllBaseTypes */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'array|bool|int|float|NULL|object|string', + 'type_token' => -14, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8UnionTypesAllPseudoTypes */', - [ + 'php8-union-types-all-pseudo-types' => [ + 'identifier' => '/* testPHP8UnionTypesAllPseudoTypes */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => false, 'is_static' => false, + 'is_readonly' => false, 'type' => 'false|mixed|self|parent|iterable|Resource', + 'type_token' => -12, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8UnionTypesIllegalTypes */', - [ + 'php8-union-types-illegal-types' => [ + 'identifier' => '/* testPHP8UnionTypesIllegalTypes */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, // Missing static, but that's OK as not an allowed syntax. - 'type' => 'callable||void', + 'type' => 'callable|void', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8UnionTypesNullable */', - [ + 'php8-union-types-nullable' => [ + 'identifier' => '/* testPHP8UnionTypesNullable */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?int|float', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testPHP8PseudoTypeNull */', - [ + 'php8-union-types-pseudo-type-null' => [ + 'identifier' => '/* testPHP8PseudoTypeNull */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'null', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8PseudoTypeFalse */', - [ + 'php8-union-types-pseudo-type-false' => [ + 'identifier' => '/* testPHP8PseudoTypeFalse */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'false', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8PseudoTypeFalseAndBool */', - [ + 'php8-union-types-pseudo-type-false-and-bool' => [ + 'identifier' => '/* testPHP8PseudoTypeFalseAndBool */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'bool|FALSE', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8ObjectAndClass */', - [ + 'php8-union-types-object-and-class' => [ + 'identifier' => '/* testPHP8ObjectAndClass */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'object|ClassName', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8PseudoTypeIterableAndArray */', - [ + 'php8-union-types-pseudo-type-iterable-and-array' => [ + 'identifier' => '/* testPHP8PseudoTypeIterableAndArray */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'iterable|array|Traversable', + 'type_token' => -6, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8DuplicateTypeInUnionWhitespaceAndComment */', - [ + 'php8-union-types-duplicate-type-with-whitespace-and-comments' => [ + 'identifier' => '/* testPHP8DuplicateTypeInUnionWhitespaceAndComment */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'int|string|INT', + 'type_token' => -10, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-readonly-property' => [ + 'identifier' => '/* testPHP81Readonly */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => true, + 'type' => 'int', + 'type_token' => -2, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-readonly-property-with-nullable-type' => [ + 'identifier' => '/* testPHP81ReadonlyWithNullableType */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => true, + 'type' => '?array', + 'type_token' => -2, + 'type_end_token' => -2, + 'nullable_type' => true, + ], + ], + 'php8.1-readonly-property-with-union-type' => [ + 'identifier' => '/* testPHP81ReadonlyWithUnionType */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => true, + 'type' => 'string|int', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8PropertySingleAttribute */', - [ + 'php8.1-readonly-property-with-union-type-with-null' => [ + 'identifier' => '/* testPHP81ReadonlyWithUnionTypeWithNull */', + 'expected' => [ + 'scope' => 'protected', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => true, + 'type' => 'string|null', + 'type_token' => -4, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-readonly-property-with-union-type-no-visibility' => [ + 'identifier' => '/* testPHP81OnlyReadonlyWithUnionType */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => false, + 'is_static' => false, + 'is_readonly' => true, + 'type' => 'string|int', + 'type_token' => -4, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-readonly-property-with-multi-union-type-no-visibility' => [ + 'identifier' => '/* testPHP81OnlyReadonlyWithUnionTypeMultiple */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => false, + 'is_static' => false, + 'is_readonly' => true, + 'type' => '\InterfaceA|\Sub\InterfaceB|false', + 'type_token' => -11, + 'type_end_token' => -3, + 'nullable_type' => false, + ], + ], + 'php8.1-readonly-and-static-property' => [ + 'identifier' => '/* testPHP81ReadonlyAndStatic */', + 'expected' => [ + 'scope' => 'private', + 'scope_specified' => true, + 'is_static' => true, + 'is_readonly' => true, + 'type' => '?string', + 'type_token' => -2, + 'type_end_token' => -2, + 'nullable_type' => true, + ], + ], + 'php8.1-readonly-mixed-case-keyword' => [ + 'identifier' => '/* testPHP81ReadonlyMixedCase */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => true, + 'is_readonly' => true, + 'type' => '', + 'type_token' => false, + 'type_end_token' => false, + 'nullable_type' => false, + ], + ], + 'php8-property-with-single-attribute' => [ + 'identifier' => '/* testPHP8PropertySingleAttribute */', + 'expected' => [ 'scope' => 'public', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'string', + 'type_token' => -2, + 'type_end_token' => -2, 'nullable_type' => false, ], ], - [ - '/* testPHP8PropertyMultipleAttributes */', - [ + 'php8-property-with-multiple-attributes' => [ + 'identifier' => '/* testPHP8PropertyMultipleAttributes */', + 'expected' => [ 'scope' => 'protected', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => '?int|float', + 'type_token' => -4, + 'type_end_token' => -2, 'nullable_type' => true, ], ], - [ - '/* testPHP8PropertyMultilineAttribute */', - [ + 'php8-property-with-multiline-attribute' => [ + 'identifier' => '/* testPHP8PropertyMultilineAttribute */', + 'expected' => [ 'scope' => 'private', 'scope_specified' => true, 'is_static' => false, + 'is_readonly' => false, 'type' => 'mixed', + 'type_token' => -2, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'invalid-property-in-enum' => [ + 'identifier' => '/* testEnumProperty */', + 'expected' => [], + ], + 'php8.1-single-intersection-type' => [ + 'identifier' => '/* testPHP81IntersectionTypes */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => 'Foo&Bar', + 'type_token' => -4, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-multi-intersection-type' => [ + 'identifier' => '/* testPHP81MoreIntersectionTypes */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => 'Foo&Bar&Baz', + 'type_token' => -6, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-illegal-intersection-type' => [ + 'identifier' => '/* testPHP81IllegalIntersectionTypes */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => 'int&string', + 'type_token' => -4, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-nullable-intersection-type' => [ + 'identifier' => '/* testPHP81NullableIntersectionType */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => '?Foo&Bar', + 'type_token' => -4, + 'type_end_token' => -2, + 'nullable_type' => true, + ], + ], + + 'php8.0-union-type-with-whitespace-and-comment' => [ + 'identifier' => '/* testUnionTypeWithWhitespaceAndComment */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => 'int|string', + 'type_token' => -8, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.1-intersection-type-with-whitespace-and-comment' => [ + 'identifier' => '/* testIntersectionTypeWithWhitespaceAndComment */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => '\Foo&Bar', + 'type_token' => -9, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.2-pseudo-type-true' => [ + 'identifier' => '/* testPHP82PseudoTypeTrue */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => 'true', + 'type_token' => -2, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.2-pseudo-type-true-nullable' => [ + 'identifier' => '/* testPHP82NullablePseudoTypeTrue */', + 'expected' => [ + 'scope' => 'protected', + 'scope_specified' => true, + 'is_static' => true, + 'is_readonly' => false, + 'type' => '?true', + 'type_token' => -2, + 'type_end_token' => -2, + 'nullable_type' => true, + ], + ], + 'php8.2-pseudo-type-true-in-union' => [ + 'identifier' => '/* testPHP82PseudoTypeTrueInUnion */', + 'expected' => [ + 'scope' => 'private', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => false, + 'type' => 'int|string|true', + 'type_token' => -6, + 'type_end_token' => -2, 'nullable_type' => false, ], ], + 'php8.2-pseudo-type-invalid-true-false-union' => [ + 'identifier' => '/* testPHP82PseudoTypeFalseAndTrue */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => false, + 'is_static' => false, + 'is_readonly' => true, + 'type' => 'true|FALSE', + 'type_token' => -4, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + + 'php8.2-dnf-with-static' => [ + 'identifier' => '/* testPHP82DNFTypeStatic */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => true, + 'is_static' => true, + 'is_readonly' => false, + 'type' => '(Foo&\Bar)|bool', + 'type_token' => -9, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.2-dnf-with-readonly-1' => [ + 'identifier' => '/* testPHP82DNFTypeReadonlyA */', + 'expected' => [ + 'scope' => 'protected', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => true, + 'type' => 'float|(Partially\Qualified&Traversable)', + 'type_token' => -10, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.2-dnf-with-readonly-2' => [ + 'identifier' => '/* testPHP82DNFTypeReadonlyB */', + 'expected' => [ + 'scope' => 'private', + 'scope_specified' => true, + 'is_static' => false, + 'is_readonly' => true, + 'type' => '(namespace\Foo&Bar)|string', + 'type_token' => -10, + 'type_end_token' => -2, + 'nullable_type' => false, + ], + ], + 'php8.2-dnf-with-illegal-nullable' => [ + 'identifier' => '/* testPHP82DNFTypeIllegalNullable */', + 'expected' => [ + 'scope' => 'public', + 'scope_specified' => false, + 'is_static' => false, + 'is_readonly' => false, + 'type' => '?(A&\Pck\B)|bool', + 'type_token' => -11, + 'type_end_token' => -2, + 'nullable_type' => true, + ], + ], ]; }//end dataGetMemberProperties() @@ -650,15 +1137,14 @@ public function dataGetMemberProperties() * * @param string $identifier Comment which precedes the test case. * - * @expectedException PHP_CodeSniffer\Exceptions\RuntimeException - * @expectedExceptionMessage $stackPtr is not a class member var - * * @dataProvider dataNotClassProperty * * @return void */ public function testNotClassPropertyException($identifier) { + $this->expectRunTimeException('$stackPtr is not a class member var'); + $variable = $this->getTargetToken($identifier, T_VARIABLE); $result = self::$phpcsFile->getMemberProperties($variable); @@ -670,17 +1156,18 @@ public function testNotClassPropertyException($identifier) * * @see testNotClassPropertyException() * - * @return array + * @return array> */ - public function dataNotClassProperty() + public static function dataNotClassProperty() { return [ - ['/* testMethodParam */'], - ['/* testImportedGlobal */'], - ['/* testLocalVariable */'], - ['/* testGlobalVariable */'], - ['/* testNestedMethodParam 1 */'], - ['/* testNestedMethodParam 2 */'], + 'method parameter' => ['/* testMethodParam */'], + 'variable import using global keyword' => ['/* testImportedGlobal */'], + 'function local variable' => ['/* testLocalVariable */'], + 'global variable' => ['/* testGlobalVariable */'], + 'method parameter in anon class nested in ternary' => ['/* testNestedMethodParam 1 */'], + 'method parameter in anon class nested in function call' => ['/* testNestedMethodParam 2 */'], + 'method parameter in enum' => ['/* testEnumMethodParamNotProperty */'], ]; }//end dataNotClassProperty() @@ -689,13 +1176,12 @@ public function dataNotClassProperty() /** * Test receiving an expected exception when a non variable is passed. * - * @expectedException PHP_CodeSniffer\Exceptions\RuntimeException - * @expectedExceptionMessage $stackPtr must be of type T_VARIABLE - * * @return void */ public function testNotAVariableException() { + $this->expectRunTimeException('$stackPtr must be of type T_VARIABLE'); + $next = $this->getTargetToken('/* testNotAVariable */', T_RETURN); $result = self::$phpcsFile->getMemberProperties($next); diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersParseError1Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersParseError1Test.inc new file mode 100644 index 000000000..465679eb3 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersParseError1Test.inc @@ -0,0 +1,4 @@ + + * @copyright 2019-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; + +/** + * Tests for the \PHP_CodeSniffer\Files\File::getMethodParameters method. + * + * @covers \PHP_CodeSniffer\Files\File::getMethodParameters + */ +final class GetMethodParametersParseError1Test extends AbstractMethodUnitTest +{ + + + /** + * Test receiving an empty array when encountering a specific parse error. + * + * @return void + */ + public function testParseError() + { + $target = $this->getTargetToken('/* testParseError */', [T_FUNCTION, T_CLOSURE, T_FN]); + $result = self::$phpcsFile->getMethodParameters($target); + + $this->assertSame([], $result); + + }//end testParseError() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersParseError2Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersParseError2Test.inc new file mode 100644 index 000000000..667cb5ed2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersParseError2Test.inc @@ -0,0 +1,4 @@ + + * @copyright 2019-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; + +/** + * Tests for the \PHP_CodeSniffer\Files\File::getMethodParameters method. + * + * @covers \PHP_CodeSniffer\Files\File::getMethodParameters + */ +final class GetMethodParametersParseError2Test extends AbstractMethodUnitTest +{ + + + /** + * Test receiving an empty array when encountering a specific parse error. + * + * @return void + */ + public function testParseError() + { + $target = $this->getTargetToken('/* testParseError */', [T_FUNCTION, T_CLOSURE, T_FN]); + $result = self::$phpcsFile->getMethodParameters($target); + + $this->assertSame([], $result); + + }//end testParseError() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.inc index b78301d30..1f72ccfaa 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.inc @@ -1,5 +1,29 @@ $b; +/* testArrowFunctionReturnByRef */ +fn&(?string $a) => $b; + +/* testArrayDefaultValues */ +function arrayDefaultValues($var1 = [], $var2 = array(1, 2, 3) ) {} + +/* testConstantDefaultValueSecondParam */ +function constantDefaultValueSecondParam($var1, $var2 = M_PI) {} + +/* testScalarTernaryExpressionInDefault */ +function ternayInDefault( $a = FOO ? 'bar' : 10, ? bool $b ) {} + +/* testVariadicFunction */ +function variadicFunction( int ... $a ) {} + +/* testVariadicByRefFunction */ +function variadicByRefFunction( &...$a ) {} + +/* testVariadicFunctionClassType */ +function variableLengthArgument($unit, DateInterval ...$intervals) {} + +/* testNameSpacedTypeDeclaration */ +function namespacedClassType( \Package\Sub\ClassName $a, ?Sub\AnotherClass $b ) {} + +/* testWithAllTypes */ +class testAllTypes { + function allTypes( + ?ClassName $a, + self $b, + parent $c, + object $d, + ?int $e, + string &$f, + iterable $g, + bool $h = true, + callable $i = 'is_null', + float $j = 1.1, + array ...$k + ) {} +} + +/* testArrowFunctionWithAllTypes */ +$fn = fn( + ?ClassName $a, + self $b, + parent $c, + object $d, + ?int $e, + string &$f, + iterable $g, + bool $h = true, + callable $i = 'is_null', + float $j = 1.1, + array ...$k +) => $something; + +/* testMessyDeclaration */ +function messyDeclaration( + // comment + ?\MyNS /* comment */ + \ SubCat // phpcs:ignore Standard.Cat.Sniff -- for reasons. + \ MyClass $a, + $b /* test */ = /* test */ 'default' /* test*/, + // phpcs:ignore Stnd.Cat.Sniff -- For reasons. + ? /*comment*/ + bool // phpcs:disable Stnd.Cat.Sniff -- For reasons. + & /*test*/ ... /* phpcs:ignore */ $c +) {} + /* testPHP8MixedTypeHint */ function mixedTypeHint(mixed &...$var1) {} @@ -46,7 +139,7 @@ function namespaceOperatorTypeHint(?namespace\Name $var1) {} function unionTypeSimple(int|float $number, self|parent &...$obj) {} /* testPHP8UnionTypesWithSpreadOperatorAndReference */ -function globalFunctionWithSpreadAndReference(float|null &$paramA, string|int ...$paramB) {} +function globalFunctionWithSpreadAndReference(float|null &$paramA, string|int ...$paramB ) {} /* testPHP8UnionTypesSimpleWithBitwiseOrInDefault */ $fn = fn(int|float $var = CONSTANT_A | CONSTANT_B) => $var; @@ -66,11 +159,11 @@ function unionTypesAllPseudoTypes(false|mixed|self|parent|iterable|Resource $var $closure = function (?int|float $number) {}; /* testPHP8PseudoTypeNull */ -// Intentional fatal error - null pseudotype is only allowed in union types, but that's not the concern of the method. +// PHP 8.0 - 8.1: Intentional fatal error - null pseudotype is only allowed in union types, but that's not the concern of the method. function pseudoTypeNull(null $var = null) {} /* testPHP8PseudoTypeFalse */ -// Intentional fatal error - false pseudotype is only allowed in union types, but that's not the concern of the method. +// PHP 8.0 - 8.1: Intentional fatal error - false pseudotype is only allowed in union types, but that's not the concern of the method. function pseudoTypeFalse(false $var = false) {} /* testPHP8PseudoTypeFalseAndBool */ @@ -108,6 +201,22 @@ class ConstructorPropertyPromotionAndNormalParams { public function __construct(public int $promotedProp, ?int $normalArg) {} } +class ConstructorPropertyPromotionWithReadOnly { + /* testPHP81ConstructorPropertyPromotionWithReadOnly */ + public function __construct(public readonly ?int $promotedProp, ReadOnly private string|bool &$promotedToo) {} +} + +class ConstructorPropertyPromotionWithReadOnlyNoTypeDeclaration { + /* testPHP81ConstructorPropertyPromotionWithReadOnlyNoTypeDeclaration */ + // Intentional fatal error. Readonly properties MUST be typed. + public function __construct(public readonly $promotedProp, ReadOnly private &$promotedToo) {} +} + +class ConstructorPropertyPromotionWithOnlyReadOnly { + /* testPHP81ConstructorPropertyPromotionWithOnlyReadOnly */ + public function __construct(readonly Foo&Bar $promotedProp, readonly ?bool $promotedToo,) {} +} + /* testPHP8ConstructorPropertyPromotionGlobalFunction */ // Intentional fatal error. Property promotion not allowed in non-constructor, but that's not the concern of this method. function globalFunction(private $x) {} @@ -120,3 +229,110 @@ abstract class ConstructorPropertyPromotionAbstractMethod { // 3. The callable type is not supported for properties, but that's not the concern of this method. abstract public function __construct(public callable $y, private ...$x); } + +/* testCommentsInParameter */ +function commentsInParams( + // Leading comment. + ?MyClass /*-*/ & /*-*/.../*-*/ $param /*-*/ = /*-*/ 'default value' . /*-*/ 'second part' // Trailing comment. +) {} + +/* testParameterAttributesInFunctionDeclaration */ +class ParametersWithAttributes( + public function __construct( + #[\MyExample\MyAttribute] private string $constructorPropPromTypedParamSingleAttribute, + #[MyAttr([1, 2])] + Type|false + $typedParamSingleAttribute, + #[MyAttribute(1234), MyAttribute(5678)] ?int $nullableTypedParamMultiAttribute, + #[WithoutArgument] #[SingleArgument(0)] $nonTypedParamTwoAttributes, + #[MyAttribute(array("key" => "value"))] + &...$otherParam, + ) {} +} + +/* testPHP8IntersectionTypes */ +function intersectionTypes(Foo&Bar $obj1, Boo&Bar $obj2) {} + +/* testPHP81IntersectionTypesWithSpreadOperatorAndReference */ +function globalFunctionWithSpreadAndReference(Boo&Bar &$paramA, Foo&Bar ...$paramB) {} + +/* testPHP81MoreIntersectionTypes */ +function moreIntersectionTypes(MyClassA&\Package\MyClassB&\Package\MyClassC $var) {} + +/* testPHP81IllegalIntersectionTypes */ +// Intentional fatal error - simple types are not allowed with intersection types, but that's not the concern of the method. +$closure = function (string&int $numeric_string) {}; + +/* testPHP81NullableIntersectionTypes */ +// Intentional fatal error - nullability is not allowed with intersection types, but that's not the concern of the method. +$closure = function (?Foo&Bar $object) {}; + +/* testPHP82PseudoTypeTrue */ +function pseudoTypeTrue(?true $var = true) {} + +/* testPHP82PseudoTypeFalseAndTrue */ +// Intentional fatal error - Type contains both true and false, bool should be used instead, but that's not the concern of the method. +function pseudoTypeFalseAndTrue(true|false $var = true) {} + +/* testPHP81NewInInitializers */ +function newInInitializers( + TypeA $new = new TypeA(self::CONST_VALUE), + \Package\TypeB $newToo = new \Package\TypeB(10, 'string'), +) {} + +/* testPHP82DNFTypes */ +function dnfTypes( + #[MyAttribute] + false|(Foo&Bar)|true $obj1, + (\Boo&\Pck\Bar)|(Boo&Baz) $obj2 = new Boo() +) {} + +/* testPHP82DNFTypesWithSpreadOperatorAndReference */ +function dnfInGlobalFunctionWithSpreadAndReference((Countable&MeMe)|iterable &$paramA, true|(Foo&Bar) ...$paramB) {} + +/* testPHP82DNFTypesIllegalNullable */ +// Intentional fatal error - nullable operator cannot be combined with DNF. +$dnf_closure = function (? ( MyClassA & /*comment*/ \Package\MyClassB & \Package\MyClassC ) $var): void {}; + +/* testPHP82DNFTypesInArrow */ +$dnf_arrow = fn((Hi&Ho)|FALSE &...$range): string => $a; + +/* testFunctionCallFnPHPCS353-354 */ +$value = $obj->fn(true); + +/* testClosureNoParams */ +function() {}; + +/* testClosure */ +function( $a = 'test' ) {}; + +/* testClosureUseNoParams */ +function() use() {}; + +/* testClosureUse */ +function() use( $foo, $bar ) {}; + +/* testFunctionParamListWithTrailingComma */ +function trailingComma( + ?string $foo /*comment*/ , + $bar = 0, +) {} + +/* testClosureParamListWithTrailingComma */ +function( + $foo, + $bar, +) {}; + +/* testArrowFunctionParamListWithTrailingComma */ +$fn = fn( ?int $a , ...$b, ) => $b; + +/* testClosureUseWithTrailingComma */ +function() use( + $foo /*comment*/ , + $bar, +) {}; + +/* testArrowFunctionLiveCoding */ +// Intentional parse error. This has to be the last test in the file. +$fn = fn diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.php index 253b80621..f8e7b22e2 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodParametersTest.php @@ -1,20 +1,163 @@ + * @author Juliette Reinders Folmer * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @copyright 2019-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class GetMethodParametersTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::getMethodParameters method. + * + * @covers \PHP_CodeSniffer\Files\File::getMethodParameters + */ +final class GetMethodParametersTest extends AbstractMethodUnitTest { + /** + * Test receiving an expected exception when a non function/use token is passed. + * + * @param string $commentString The comment which preceeds the test. + * @param int|string|array $targetTokenType The token type to search for after $commentString. + * + * @dataProvider dataUnexpectedTokenException + * + * @return void + */ + public function testUnexpectedTokenException($commentString, $targetTokenType) + { + $this->expectRunTimeException('$stackPtr must be of type T_FUNCTION or T_CLOSURE or T_USE or T_FN'); + + $target = $this->getTargetToken($commentString, $targetTokenType); + self::$phpcsFile->getMethodParameters($target); + + }//end testUnexpectedTokenException() + + + /** + * Data Provider. + * + * @see testUnexpectedTokenException() For the array format. + * + * @return array>> + */ + public static function dataUnexpectedTokenException() + { + return [ + 'interface' => [ + 'commentString' => '/* testNotAFunction */', + 'targetTokenType' => T_INTERFACE, + ], + 'function-call-fn-phpcs-3.5.3-3.5.4' => [ + 'commentString' => '/* testFunctionCallFnPHPCS353-354 */', + 'targetTokenType' => [ + T_FN, + T_STRING, + ], + ], + 'fn-live-coding' => [ + 'commentString' => '/* testArrowFunctionLiveCoding */', + 'targetTokenType' => [ + T_FN, + T_STRING, + ], + ], + ]; + + }//end dataUnexpectedTokenException() + + + /** + * Test receiving an expected exception when a non-closure use token is passed. + * + * @param string $identifier The comment which preceeds the test. + * + * @dataProvider dataInvalidUse + * + * @return void + */ + public function testInvalidUse($identifier) + { + $this->expectRunTimeException('$stackPtr was not a valid T_USE'); + + $use = $this->getTargetToken($identifier, [T_USE]); + self::$phpcsFile->getMethodParameters($use); + + }//end testInvalidUse() + + + /** + * Data Provider. + * + * @see testInvalidUse() For the array format. + * + * @return array> + */ + public static function dataInvalidUse() + { + return [ + 'ImportUse' => ['/* testImportUse */'], + 'ImportGroupUse' => ['/* testImportGroupUse */'], + 'TraitUse' => ['/* testTraitUse */'], + ]; + + }//end dataInvalidUse() + + + /** + * Test receiving an empty array when there are no parameters. + * + * @param string $commentString The comment which preceeds the test. + * @param int|string|array $targetTokenType Optional. The token type to search for after $commentString. + * Defaults to the function/closure/arrow tokens. + * + * @dataProvider dataNoParams + * + * @return void + */ + public function testNoParams($commentString, $targetTokenType=[T_FUNCTION, T_CLOSURE, T_FN]) + { + $target = $this->getTargetToken($commentString, $targetTokenType); + $result = self::$phpcsFile->getMethodParameters($target); + + $this->assertSame([], $result); + + }//end testNoParams() + + + /** + * Data Provider. + * + * @see testNoParams() For the array format. + * + * @return array>> + */ + public static function dataNoParams() + { + return [ + 'FunctionNoParams' => [ + 'commentString' => '/* testFunctionNoParams */', + ], + 'ClosureNoParams' => [ + 'commentString' => '/* testClosureNoParams */', + ], + 'ClosureUseNoParams' => [ + 'commentString' => '/* testClosureUseNoParams */', + 'targetTokenType' => T_USE, + ], + ]; + + }//end dataNoParams() + + /** * Verify pass-by-reference parsing. * @@ -22,14 +165,22 @@ class GetMethodParametersTest extends AbstractMethodUnitTest */ public function testPassByReference() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => '&$var', - 'pass_by_reference' => true, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, + 'token' => 5, + 'name' => '$var', + 'content' => '&$var', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 4, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -44,14 +195,22 @@ public function testPassByReference() */ public function testArrayHint() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'array $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'array', - 'nullable_type' => false, + 'token' => 6, + 'name' => '$var', + 'content' => 'array $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'array', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -59,6 +218,120 @@ public function testArrayHint() }//end testArrayHint() + /** + * Verify variable. + * + * @return void + */ + public function testVariable() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 4, + 'name' => '$var', + 'content' => '$var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testVariable() + + + /** + * Verify default value parsing with a single function param. + * + * @return void + */ + public function testSingleDefaultValue() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 4, + 'name' => '$var1', + 'content' => '$var1=self::CONSTANT', + 'default' => 'self::CONSTANT', + 'default_token' => 6, + 'default_equal_token' => 5, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testSingleDefaultValue() + + + /** + * Verify default value parsing. + * + * @return void + */ + public function testDefaultValues() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 4, + 'name' => '$var1', + 'content' => '$var1=1', + 'default' => '1', + 'default_token' => 6, + 'default_equal_token' => 5, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 7, + ]; + $expected[1] = [ + 'token' => 9, + 'name' => '$var2', + 'content' => "\$var2='value'", + 'default' => "'value'", + 'default_token' => 11, + 'default_equal_token' => 10, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testDefaultValues() + + /** * Verify type hint parsing. * @@ -66,23 +339,38 @@ public function testArrayHint() */ public function testTypeHint() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => 'foo $var1', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'foo', - 'nullable_type' => false, + 'token' => 6, + 'name' => '$var1', + 'content' => 'foo $var1', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'foo', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => 7, ]; $expected[1] = [ - 'name' => '$var2', - 'content' => 'bar $var2', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'bar', - 'nullable_type' => false, + 'token' => 11, + 'name' => '$var2', + 'content' => 'bar $var2', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'bar', + 'type_hint_token' => 9, + 'type_hint_end_token' => 9, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -97,14 +385,22 @@ public function testTypeHint() */ public function testSelfTypeHint() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'self $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'self', - 'nullable_type' => false, + 'token' => 6, + 'name' => '$var', + 'content' => 'self $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'self', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -119,23 +415,38 @@ public function testSelfTypeHint() */ public function testNullableTypeHint() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => '?int $var1', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '?int', - 'nullable_type' => true, + 'token' => 7, + 'name' => '$var1', + 'content' => '?int $var1', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 5, + 'type_hint_end_token' => 5, + 'nullable_type' => true, + 'comma_token' => 8, ]; $expected[1] = [ - 'name' => '$var2', - 'content' => '?\bar $var2', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '?\bar', - 'nullable_type' => true, + 'token' => 14, + 'name' => '$var2', + 'content' => '?\bar $var2', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?\bar', + 'type_hint_token' => 11, + 'type_hint_end_token' => 12, + 'nullable_type' => true, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -144,694 +455,2726 @@ public function testNullableTypeHint() /** - * Verify variable. + * Verify "bitwise and" in default value !== pass-by-reference. * * @return void */ - public function testVariable() + public function testBitwiseAndConstantExpressionDefaultValue() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => '$var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, + 'token' => 4, + 'name' => '$a', + 'content' => '$a = 10 & 20', + 'default' => '10 & 20', + 'default_token' => 8, + 'default_equal_token' => 6, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testVariable() + }//end testBitwiseAndConstantExpressionDefaultValue() /** - * Verify default value parsing with a single function param. + * Verify that arrow functions are supported. * * @return void */ - public function testSingleDefaultValue() + public function testArrowFunction() { + // Offsets are relative to the T_FN token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => '$var1=self::CONSTANT', - 'default' => 'self::CONSTANT', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, + 'token' => 4, + 'name' => '$a', + 'content' => 'int $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'int', + 'type_hint_token' => 2, + 'type_hint_end_token' => 2, + 'nullable_type' => false, + 'comma_token' => 5, + ]; + + $expected[1] = [ + 'token' => 8, + 'name' => '$b', + 'content' => '...$b', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 7, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testSingleDefaultValue() + }//end testArrowFunction() /** - * Verify default value parsing. + * Verify that arrow functions are supported. * * @return void */ - public function testDefaultValues() + public function testArrowFunctionReturnByRef() + { + // Offsets are relative to the T_FN token. + $expected = []; + $expected[0] = [ + 'token' => 6, + 'name' => '$a', + 'content' => '?string $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?string', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testArrowFunctionReturnByRef() + + + /** + * Verify default value parsing with array values. + * + * @return void + */ + public function testArrayDefaultValues() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => '$var1=1', - 'default' => '1', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, + 'token' => 4, + 'name' => '$var1', + 'content' => '$var1 = []', + 'default' => '[]', + 'default_token' => 8, + 'default_equal_token' => 6, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 10, ]; $expected[1] = [ - 'name' => '$var2', - 'content' => "\$var2='value'", - 'default' => "'value'", - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, + 'token' => 12, + 'name' => '$var2', + 'content' => '$var2 = array(1, 2, 3)', + 'default' => 'array(1, 2, 3)', + 'default_token' => 16, + 'default_equal_token' => 14, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testDefaultValues() + }//end testArrayDefaultValues() /** - * Verify "bitwise and" in default value !== pass-by-reference. + * Verify having a T_STRING constant as a default value for the second parameter. * * @return void */ - public function testBitwiseAndConstantExpressionDefaultValue() + public function testConstantDefaultValueSecondParam() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$a', - 'content' => '$a = 10 & 20', - 'default' => '10 & 20', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, + 'token' => 4, + 'name' => '$var1', + 'content' => '$var1', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 5, + ]; + $expected[1] = [ + 'token' => 7, + 'name' => '$var2', + 'content' => '$var2 = M_PI', + 'default' => 'M_PI', + 'default_token' => 11, + 'default_equal_token' => 9, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testBitwiseAndConstantExpressionDefaultValue() + }//end testConstantDefaultValueSecondParam() /** - * Verify that arrow functions are supported. + * Verify distinquishing between a nullable type and a ternary within a default expression. * * @return void */ - public function testArrowFunction() + public function testScalarTernaryExpressionInDefault() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 5, + 'name' => '$a', + 'content' => '$a = FOO ? \'bar\' : 10', + 'default' => 'FOO ? \'bar\' : 10', + 'default_token' => 9, + 'default_equal_token' => 7, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 18, + ]; + $expected[1] = [ + 'token' => 24, + 'name' => '$b', + 'content' => '? bool $b', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?bool', + 'type_hint_token' => 22, + 'type_hint_end_token' => 22, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testScalarTernaryExpressionInDefault() + + + /** + * Verify a variadic parameter being recognized correctly. + * + * @return void + */ + public function testVariadicFunction() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$a', - 'content' => 'int $a', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'int', - 'nullable_type' => false, + 'token' => 9, + 'name' => '$a', + 'content' => 'int ... $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 7, + 'type_hint' => 'int', + 'type_hint_token' => 5, + 'type_hint_end_token' => 5, + 'nullable_type' => false, + 'comma_token' => false, ]; - $expected[1] = [ - 'name' => '$b', - 'content' => '...$b', - 'pass_by_reference' => false, - 'variable_length' => true, - 'type_hint' => '', - 'nullable_type' => false, + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testVariadicFunction() + + + /** + * Verify a variadic parameter passed by reference being recognized correctly. + * + * @return void + */ + public function testVariadicByRefFunction() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 7, + 'name' => '$a', + 'content' => '&...$a', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 5, + 'variable_length' => true, + 'variadic_token' => 6, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testVariadicByRefFunction() + + + /** + * Verify handling of a variadic parameter with a class based type declaration. + * + * @return void + */ + public function testVariadicFunctionClassType() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 4, + 'name' => '$unit', + 'content' => '$unit', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 5, + ]; + $expected[1] = [ + 'token' => 10, + 'name' => '$intervals', + 'content' => 'DateInterval ...$intervals', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 9, + 'type_hint' => 'DateInterval', + 'type_hint_token' => 7, + 'type_hint_end_token' => 7, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testVariadicFunctionClassType() + + + /** + * Verify distinquishing between a nullable type and a ternary within a default expression. + * + * @return void + */ + public function testNameSpacedTypeDeclaration() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 12, + 'name' => '$a', + 'content' => '\Package\Sub\ClassName $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '\Package\Sub\ClassName', + 'type_hint_token' => 5, + 'type_hint_end_token' => 10, + 'nullable_type' => false, + 'comma_token' => 13, + ]; + $expected[1] = [ + 'token' => 20, + 'name' => '$b', + 'content' => '?Sub\AnotherClass $b', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?Sub\AnotherClass', + 'type_hint_token' => 16, + 'type_hint_end_token' => 18, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testNameSpacedTypeDeclaration() + + + /** + * Verify correctly recognizing all type declarations supported by PHP. + * + * @return void + */ + public function testWithAllTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 9, + 'name' => '$a', + 'content' => '?ClassName $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?ClassName', + 'type_hint_token' => 7, + 'type_hint_end_token' => 7, + 'nullable_type' => true, + 'comma_token' => 10, + ]; + $expected[1] = [ + 'token' => 15, + 'name' => '$b', + 'content' => 'self $b', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'self', + 'type_hint_token' => 13, + 'type_hint_end_token' => 13, + 'nullable_type' => false, + 'comma_token' => 16, + ]; + $expected[2] = [ + 'token' => 21, + 'name' => '$c', + 'content' => 'parent $c', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'parent', + 'type_hint_token' => 19, + 'type_hint_end_token' => 19, + 'nullable_type' => false, + 'comma_token' => 22, + ]; + $expected[3] = [ + 'token' => 27, + 'name' => '$d', + 'content' => 'object $d', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'object', + 'type_hint_token' => 25, + 'type_hint_end_token' => 25, + 'nullable_type' => false, + 'comma_token' => 28, + ]; + $expected[4] = [ + 'token' => 34, + 'name' => '$e', + 'content' => '?int $e', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 32, + 'type_hint_end_token' => 32, + 'nullable_type' => true, + 'comma_token' => 35, + ]; + $expected[5] = [ + 'token' => 41, + 'name' => '$f', + 'content' => 'string &$f', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 40, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'string', + 'type_hint_token' => 38, + 'type_hint_end_token' => 38, + 'nullable_type' => false, + 'comma_token' => 42, + ]; + $expected[6] = [ + 'token' => 47, + 'name' => '$g', + 'content' => 'iterable $g', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'iterable', + 'type_hint_token' => 45, + 'type_hint_end_token' => 45, + 'nullable_type' => false, + 'comma_token' => 48, + ]; + $expected[7] = [ + 'token' => 53, + 'name' => '$h', + 'content' => 'bool $h = true', + 'default' => 'true', + 'default_token' => 57, + 'default_equal_token' => 55, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'bool', + 'type_hint_token' => 51, + 'type_hint_end_token' => 51, + 'nullable_type' => false, + 'comma_token' => 58, + ]; + $expected[8] = [ + 'token' => 63, + 'name' => '$i', + 'content' => 'callable $i = \'is_null\'', + 'default' => "'is_null'", + 'default_token' => 67, + 'default_equal_token' => 65, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'callable', + 'type_hint_token' => 61, + 'type_hint_end_token' => 61, + 'nullable_type' => false, + 'comma_token' => 68, + ]; + $expected[9] = [ + 'token' => 73, + 'name' => '$j', + 'content' => 'float $j = 1.1', + 'default' => '1.1', + 'default_token' => 77, + 'default_equal_token' => 75, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'float', + 'type_hint_token' => 71, + 'type_hint_end_token' => 71, + 'nullable_type' => false, + 'comma_token' => 78, + ]; + $expected[10] = [ + 'token' => 84, + 'name' => '$k', + 'content' => 'array ...$k', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 83, + 'type_hint' => 'array', + 'type_hint_token' => 81, + 'type_hint_end_token' => 81, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testWithAllTypes() + + + /** + * Verify correctly recognizing all type declarations supported by PHP when used with an arrow function. + * + * @return void + */ + public function testArrowFunctionWithAllTypes() + { + // Offsets are relative to the T_FN token. + $expected = []; + $expected[0] = [ + 'token' => 7, + 'name' => '$a', + 'content' => '?ClassName $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?ClassName', + 'type_hint_token' => 5, + 'type_hint_end_token' => 5, + 'nullable_type' => true, + 'comma_token' => 8, + ]; + $expected[1] = [ + 'token' => 13, + 'name' => '$b', + 'content' => 'self $b', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'self', + 'type_hint_token' => 11, + 'type_hint_end_token' => 11, + 'nullable_type' => false, + 'comma_token' => 14, + ]; + $expected[2] = [ + 'token' => 19, + 'name' => '$c', + 'content' => 'parent $c', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'parent', + 'type_hint_token' => 17, + 'type_hint_end_token' => 17, + 'nullable_type' => false, + 'comma_token' => 20, + ]; + $expected[3] = [ + 'token' => 25, + 'name' => '$d', + 'content' => 'object $d', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'object', + 'type_hint_token' => 23, + 'type_hint_end_token' => 23, + 'nullable_type' => false, + 'comma_token' => 26, + ]; + $expected[4] = [ + 'token' => 32, + 'name' => '$e', + 'content' => '?int $e', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 30, + 'type_hint_end_token' => 30, + 'nullable_type' => true, + 'comma_token' => 33, + ]; + $expected[5] = [ + 'token' => 39, + 'name' => '$f', + 'content' => 'string &$f', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 38, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'string', + 'type_hint_token' => 36, + 'type_hint_end_token' => 36, + 'nullable_type' => false, + 'comma_token' => 40, + ]; + $expected[6] = [ + 'token' => 45, + 'name' => '$g', + 'content' => 'iterable $g', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'iterable', + 'type_hint_token' => 43, + 'type_hint_end_token' => 43, + 'nullable_type' => false, + 'comma_token' => 46, + ]; + $expected[7] = [ + 'token' => 51, + 'name' => '$h', + 'content' => 'bool $h = true', + 'default' => 'true', + 'default_token' => 55, + 'default_equal_token' => 53, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'bool', + 'type_hint_token' => 49, + 'type_hint_end_token' => 49, + 'nullable_type' => false, + 'comma_token' => 56, + ]; + $expected[8] = [ + 'token' => 61, + 'name' => '$i', + 'content' => 'callable $i = \'is_null\'', + 'default' => "'is_null'", + 'default_token' => 65, + 'default_equal_token' => 63, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'callable', + 'type_hint_token' => 59, + 'type_hint_end_token' => 59, + 'nullable_type' => false, + 'comma_token' => 66, + ]; + $expected[9] = [ + 'token' => 71, + 'name' => '$j', + 'content' => 'float $j = 1.1', + 'default' => '1.1', + 'default_token' => 75, + 'default_equal_token' => 73, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'float', + 'type_hint_token' => 69, + 'type_hint_end_token' => 69, + 'nullable_type' => false, + 'comma_token' => 76, + ]; + $expected[10] = [ + 'token' => 82, + 'name' => '$k', + 'content' => 'array ...$k', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 81, + 'type_hint' => 'array', + 'type_hint_token' => 79, + 'type_hint_end_token' => 79, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testArrowFunctionWithAllTypes() + + + /** + * Verify handling of a declaration interlaced with whitespace and comments. + * + * @return void + */ + public function testMessyDeclaration() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 25, + 'name' => '$a', + 'content' => '// comment + ?\MyNS /* comment */ + \ SubCat // phpcs:ignore Standard.Cat.Sniff -- for reasons. + \ MyClass $a', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?\MyNS\SubCat\MyClass', + 'type_hint_token' => 9, + 'type_hint_end_token' => 23, + 'nullable_type' => true, + 'comma_token' => 26, + ]; + $expected[1] = [ + 'token' => 29, + 'name' => '$b', + 'content' => "\$b /* test */ = /* test */ 'default' /* test*/", + 'default' => "'default' /* test*/", + 'default_token' => 37, + 'default_equal_token' => 33, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 40, + ]; + $expected[2] = [ + 'token' => 62, + 'name' => '$c', + 'content' => '// phpcs:ignore Stnd.Cat.Sniff -- For reasons. + ? /*comment*/ + bool // phpcs:disable Stnd.Cat.Sniff -- For reasons. + & /*test*/ ... /* phpcs:ignore */ $c', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 54, + 'variable_length' => true, + 'variadic_token' => 58, + 'type_hint' => '?bool', + 'type_hint_token' => 50, + 'type_hint_end_token' => 50, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testMessyDeclaration() + + + /** + * Verify recognition of PHP8 mixed type declaration. + * + * @return void + */ + public function testPHP8MixedTypeHint() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$var1', + 'content' => 'mixed &...$var1', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 6, + 'variable_length' => true, + 'variadic_token' => 7, + 'type_hint' => 'mixed', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8MixedTypeHint() + + + /** + * Verify recognition of PHP8 mixed type declaration with nullability. + * + * @return void + */ + public function testPHP8MixedTypeHintNullable() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 7, + 'name' => '$var1', + 'content' => '?Mixed $var1', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?Mixed', + 'type_hint_token' => 5, + 'type_hint_end_token' => 5, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8MixedTypeHintNullable() + + + /** + * Verify recognition of type declarations using the namespace operator. + * + * @return void + */ + public function testNamespaceOperatorTypeHint() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 9, + 'name' => '$var1', + 'content' => '?namespace\Name $var1', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?namespace\Name', + 'type_hint_token' => 5, + 'type_hint_end_token' => 7, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testNamespaceOperatorTypeHint() + + + /** + * Verify recognition of PHP8 union type declaration. + * + * @return void + */ + public function testPHP8UnionTypesSimple() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$number', + 'content' => 'int|float $number', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'int|float', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => 9, + ]; + $expected[1] = [ + 'token' => 17, + 'name' => '$obj', + 'content' => 'self|parent &...$obj', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 15, + 'variable_length' => true, + 'variadic_token' => 16, + 'type_hint' => 'self|parent', + 'type_hint_token' => 11, + 'type_hint_end_token' => 13, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesSimple() + + + /** + * Verify recognition of PHP8 union type declaration when the variable has either a spread operator or a reference. + * + * @return void + */ + public function testPHP8UnionTypesWithSpreadOperatorAndReference() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 9, + 'name' => '$paramA', + 'content' => 'float|null &$paramA', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 8, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'float|null', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => 10, + ]; + $expected[1] = [ + 'token' => 17, + 'name' => '$paramB', + 'content' => 'string|int ...$paramB', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 16, + 'type_hint' => 'string|int', + 'type_hint_token' => 12, + 'type_hint_end_token' => 14, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesWithSpreadOperatorAndReference() + + + /** + * Verify recognition of PHP8 union type declaration with a bitwise or in the default value. + * + * @return void + */ + public function testPHP8UnionTypesSimpleWithBitwiseOrInDefault() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 6, + 'name' => '$var', + 'content' => 'int|float $var = CONSTANT_A | CONSTANT_B', + 'default' => 'CONSTANT_A | CONSTANT_B', + 'default_token' => 10, + 'default_equal_token' => 8, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'int|float', + 'type_hint_token' => 2, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesSimpleWithBitwiseOrInDefault() + + + /** + * Verify recognition of PHP8 union type declaration with two classes. + * + * @return void + */ + public function testPHP8UnionTypesTwoClasses() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 11, + 'name' => '$var', + 'content' => 'MyClassA|\Package\MyClassB $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'MyClassA|\Package\MyClassB', + 'type_hint_token' => 4, + 'type_hint_end_token' => 9, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesTwoClasses() + + + /** + * Verify recognition of PHP8 union type declaration with all base types. + * + * @return void + */ + public function testPHP8UnionTypesAllBaseTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 20, + 'name' => '$var', + 'content' => 'array|bool|callable|int|float|null|object|string $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'array|bool|callable|int|float|null|object|string', + 'type_hint_token' => 4, + 'type_hint_end_token' => 18, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesAllBaseTypes() + + + /** + * Verify recognition of PHP8 union type declaration with all pseudo types. + * + * Note: "Resource" is not a type, but seen as a class name. + * + * @return void + */ + public function testPHP8UnionTypesAllPseudoTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 16, + 'name' => '$var', + 'content' => 'false|mixed|self|parent|iterable|Resource $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'false|mixed|self|parent|iterable|Resource', + 'type_hint_token' => 4, + 'type_hint_end_token' => 14, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesAllPseudoTypes() + + + /** + * Verify recognition of PHP8 union type declaration with (illegal) nullability. + * + * @return void + */ + public function testPHP8UnionTypesNullable() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$number', + 'content' => '?int|float $number', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int|float', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8UnionTypesNullable() + + + /** + * Verify recognition of PHP8 type declaration with (illegal) single type null. + * + * @return void + */ + public function testPHP8PseudoTypeNull() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 6, + 'name' => '$var', + 'content' => 'null $var = null', + 'default' => 'null', + 'default_token' => 10, + 'default_equal_token' => 8, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'null', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8PseudoTypeNull() + + + /** + * Verify recognition of PHP8 type declaration with (illegal) single type false. + * + * @return void + */ + public function testPHP8PseudoTypeFalse() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 6, + 'name' => '$var', + 'content' => 'false $var = false', + 'default' => 'false', + 'default_token' => 10, + 'default_equal_token' => 8, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'false', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8PseudoTypeFalse() + + + /** + * Verify recognition of PHP8 type declaration with (illegal) type false combined with type bool. + * + * @return void + */ + public function testPHP8PseudoTypeFalseAndBool() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$var', + 'content' => 'bool|false $var = false', + 'default' => 'false', + 'default_token' => 12, + 'default_equal_token' => 10, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'bool|false', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8PseudoTypeFalseAndBool() + + + /** + * Verify recognition of PHP8 type declaration with (illegal) type object combined with a class name. + * + * @return void + */ + public function testPHP8ObjectAndClass() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$var', + 'content' => 'object|ClassName $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'object|ClassName', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8ObjectAndClass() + + + /** + * Verify recognition of PHP8 type declaration with (illegal) type iterable combined with array/Traversable. + * + * @return void + */ + public function testPHP8PseudoTypeIterableAndArray() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 10, + 'name' => '$var', + 'content' => 'iterable|array|Traversable $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'iterable|array|Traversable', + 'type_hint_token' => 4, + 'type_hint_end_token' => 8, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8PseudoTypeIterableAndArray() + + + /** + * Verify recognition of PHP8 type declaration with (illegal) duplicate types. + * + * @return void + */ + public function testPHP8DuplicateTypeInUnionWhitespaceAndComment() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 17, + 'name' => '$var', + 'content' => 'int | string /*comment*/ | INT $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'int|string|INT', + 'type_hint_token' => 5, + 'type_hint_end_token' => 15, + 'nullable_type' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8DuplicateTypeInUnionWhitespaceAndComment() + + + /** + * Verify recognition of PHP8 constructor property promotion without type declaration, with defaults. + * + * @return void + */ + public function testPHP8ConstructorPropertyPromotionNoTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$x', + 'content' => 'public $x = 0.0', + 'default' => '0.0', + 'default_token' => 12, + 'default_equal_token' => 10, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'public', + 'visibility_token' => 6, + 'property_readonly' => false, + 'comma_token' => 13, + ]; + $expected[1] = [ + 'token' => 18, + 'name' => '$y', + 'content' => 'protected $y = \'\'', + 'default' => "''", + 'default_token' => 22, + 'default_equal_token' => 20, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'protected', + 'visibility_token' => 16, + 'property_readonly' => false, + 'comma_token' => 23, + ]; + $expected[2] = [ + 'token' => 28, + 'name' => '$z', + 'content' => 'private $z = null', + 'default' => 'null', + 'default_token' => 32, + 'default_equal_token' => 30, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 26, + 'property_readonly' => false, + 'comma_token' => 33, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8ConstructorPropertyPromotionNoTypes() + + + /** + * Verify recognition of PHP8 constructor property promotion with type declarations. + * + * @return void + */ + public function testPHP8ConstructorPropertyPromotionWithTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 10, + 'name' => '$x', + 'content' => 'protected float|int $x', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'float|int', + 'type_hint_token' => 6, + 'type_hint_end_token' => 8, + 'nullable_type' => false, + 'property_visibility' => 'protected', + 'visibility_token' => 4, + 'property_readonly' => false, + 'comma_token' => 11, + ]; + $expected[1] = [ + 'token' => 19, + 'name' => '$y', + 'content' => 'public ?string &$y = \'test\'', + 'default' => "'test'", + 'default_token' => 23, + 'default_equal_token' => 21, + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 18, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?string', + 'type_hint_token' => 16, + 'type_hint_end_token' => 16, + 'nullable_type' => true, + 'property_visibility' => 'public', + 'visibility_token' => 13, + 'property_readonly' => false, + 'comma_token' => 24, + ]; + $expected[2] = [ + 'token' => 30, + 'name' => '$z', + 'content' => 'private mixed $z', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'mixed', + 'type_hint_token' => 28, + 'type_hint_end_token' => 28, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 26, + 'property_readonly' => false, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8ConstructorPropertyPromotionWithTypes() + + + /** + * Verify recognition of PHP8 constructor with both property promotion as well as normal parameters. + * + * @return void + */ + public function testPHP8ConstructorPropertyPromotionAndNormalParam() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$promotedProp', + 'content' => 'public int $promotedProp', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'int', + 'type_hint_token' => 6, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'property_visibility' => 'public', + 'visibility_token' => 4, + 'property_readonly' => false, + 'comma_token' => 9, + ]; + $expected[1] = [ + 'token' => 14, + 'name' => '$normalArg', + 'content' => '?int $normalArg', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 12, + 'type_hint_end_token' => 12, + 'nullable_type' => true, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8ConstructorPropertyPromotionAndNormalParam() + + + /** + * Verify recognition of PHP8 constructor with property promotion using PHP 8.1 readonly keyword. + * + * @return void + */ + public function testPHP81ConstructorPropertyPromotionWithReadOnly() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 11, + 'name' => '$promotedProp', + 'content' => 'public readonly ?int $promotedProp', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 9, + 'type_hint_end_token' => 9, + 'nullable_type' => true, + 'property_visibility' => 'public', + 'visibility_token' => 4, + 'property_readonly' => true, + 'readonly_token' => 6, + 'comma_token' => 12, + ]; + $expected[1] = [ + 'token' => 23, + 'name' => '$promotedToo', + 'content' => 'ReadOnly private string|bool &$promotedToo', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 22, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'string|bool', + 'type_hint_token' => 18, + 'type_hint_end_token' => 20, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 16, + 'property_readonly' => true, + 'readonly_token' => 14, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81ConstructorPropertyPromotionWithReadOnly() + + + /** + * Verify recognition of PHP8 constructor with property promotion using PHP 8.1 readonly keyword + * without a property type. + * + * @return void + */ + public function testPHP81ConstructorPropertyPromotionWithReadOnlyNoTypeDeclaration() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 8, + 'name' => '$promotedProp', + 'content' => 'public readonly $promotedProp', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'public', + 'visibility_token' => 4, + 'property_readonly' => true, + 'readonly_token' => 6, + 'comma_token' => 9, + ]; + $expected[1] = [ + 'token' => 16, + 'name' => '$promotedToo', + 'content' => 'ReadOnly private &$promotedToo', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 15, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 13, + 'property_readonly' => true, + 'readonly_token' => 11, + 'comma_token' => false, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81ConstructorPropertyPromotionWithReadOnlyNoTypeDeclaration() + + + /** + * Verify recognition of PHP8 constructor with property promotion using PHP 8.1 readonly + * keyword without explicit visibility. + * + * @return void + */ + public function testPHP81ConstructorPropertyPromotionWithOnlyReadOnly() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 10, + 'name' => '$promotedProp', + 'content' => 'readonly Foo&Bar $promotedProp', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'Foo&Bar', + 'type_hint_token' => 6, + 'type_hint_end_token' => 8, + 'nullable_type' => false, + 'property_visibility' => 'public', + 'visibility_token' => false, + 'property_readonly' => true, + 'readonly_token' => 4, + 'comma_token' => 11, + ]; + $expected[1] = [ + 'token' => 18, + 'name' => '$promotedToo', + 'content' => 'readonly ?bool $promotedToo', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?bool', + 'type_hint_token' => 16, + 'type_hint_end_token' => 16, + 'nullable_type' => true, + 'property_visibility' => 'public', + 'visibility_token' => false, + 'property_readonly' => true, + 'readonly_token' => 13, + 'comma_token' => 19, + ]; + + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81ConstructorPropertyPromotionWithOnlyReadOnly() + + + /** + * Verify behaviour when a non-constructor function uses PHP 8 property promotion syntax. + * + * @return void + */ + public function testPHP8ConstructorPropertyPromotionGlobalFunction() + { + // Offsets are relative to the T_FUNCTION token. + $expected = []; + $expected[0] = [ + 'token' => 6, + 'name' => '$x', + 'content' => 'private $x', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 4, + 'property_readonly' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testArrowFunction() + }//end testPHP8ConstructorPropertyPromotionGlobalFunction() /** - * Verify recognition of PHP8 mixed type declaration. + * Verify behaviour when an abstract constructor uses PHP 8 property promotion syntax. * * @return void */ - public function testPHP8MixedTypeHint() + public function testPHP8ConstructorPropertyPromotionAbstractMethod() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => 'mixed &...$var1', - 'pass_by_reference' => true, - 'variable_length' => true, - 'type_hint' => 'mixed', - 'nullable_type' => false, + 'token' => 8, + 'name' => '$y', + 'content' => 'public callable $y', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'callable', + 'type_hint_token' => 6, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'property_visibility' => 'public', + 'visibility_token' => 4, + 'property_readonly' => false, + 'comma_token' => 9, + ]; + $expected[1] = [ + 'token' => 14, + 'name' => '$x', + 'content' => 'private ...$x', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 13, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 11, + 'property_readonly' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8MixedTypeHint() + }//end testPHP8ConstructorPropertyPromotionAbstractMethod() /** - * Verify recognition of PHP8 mixed type declaration with nullability. + * Verify and document behaviour when there are comments within a parameter declaration. * * @return void */ - public function testPHP8MixedTypeHintNullable() + public function testCommentsInParameter() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => '?Mixed $var1', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '?Mixed', - 'nullable_type' => true, + 'token' => 19, + 'name' => '$param', + 'content' => '// Leading comment. + ?MyClass /*-*/ & /*-*/.../*-*/ $param /*-*/ = /*-*/ \'default value\' . /*-*/ \'second part\' // Trailing comment.', + 'default' => '\'default value\' . /*-*/ \'second part\' // Trailing comment.', + 'default_token' => 27, + 'default_equal_token' => 23, + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 13, + 'variable_length' => true, + 'variadic_token' => 16, + 'type_hint' => '?MyClass', + 'type_hint_token' => 9, + 'type_hint_end_token' => 9, + 'nullable_type' => true, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8MixedTypeHintNullable() + }//end testCommentsInParameter() /** - * Verify recognition of type declarations using the namespace operator. + * Verify behaviour when parameters have attributes attached. * * @return void */ - public function testNamespaceOperatorTypeHint() + public function testParameterAttributesInFunctionDeclaration() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var1', - 'content' => '?namespace\Name $var1', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '?namespace\Name', - 'nullable_type' => true, + 'token' => 17, + 'name' => '$constructorPropPromTypedParamSingleAttribute', + 'content' => '#[\MyExample\MyAttribute] private string $constructorPropPromTypedParamSingleAttribute', + 'has_attributes' => true, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'string', + 'type_hint_token' => 15, + 'type_hint_end_token' => 15, + 'nullable_type' => false, + 'property_visibility' => 'private', + 'visibility_token' => 13, + 'property_readonly' => false, + 'comma_token' => 18, + ]; + $expected[1] = [ + 'token' => 39, + 'name' => '$typedParamSingleAttribute', + 'content' => '#[MyAttr([1, 2])] + Type|false + $typedParamSingleAttribute', + 'has_attributes' => true, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'Type|false', + 'type_hint_token' => 34, + 'type_hint_end_token' => 36, + 'nullable_type' => false, + 'comma_token' => 40, + ]; + $expected[2] = [ + 'token' => 59, + 'name' => '$nullableTypedParamMultiAttribute', + 'content' => '#[MyAttribute(1234), MyAttribute(5678)] ?int $nullableTypedParamMultiAttribute', + 'has_attributes' => true, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 57, + 'type_hint_end_token' => 57, + 'nullable_type' => true, + 'comma_token' => 60, + ]; + $expected[3] = [ + 'token' => 74, + 'name' => '$nonTypedParamTwoAttributes', + 'content' => '#[WithoutArgument] #[SingleArgument(0)] $nonTypedParamTwoAttributes', + 'has_attributes' => true, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 75, + ]; + $expected[4] = [ + 'token' => 95, + 'name' => '$otherParam', + 'content' => '#[MyAttribute(array("key" => "value"))] + &...$otherParam', + 'has_attributes' => true, + 'pass_by_reference' => true, + 'reference_token' => 93, + 'variable_length' => true, + 'variadic_token' => 94, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 96, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testNamespaceOperatorTypeHint() + }//end testParameterAttributesInFunctionDeclaration() /** - * Verify recognition of PHP8 union type declaration. + * Verify recognition of PHP8.1 intersection type declaration. * * @return void */ - public function testPHP8UnionTypesSimple() + public function testPHP8IntersectionTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$number', - 'content' => 'int|float $number', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'int|float', - 'nullable_type' => false, + 'token' => 8, + 'name' => '$obj1', + 'content' => 'Foo&Bar $obj1', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'Foo&Bar', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => 9, ]; $expected[1] = [ - 'name' => '$obj', - 'content' => 'self|parent &...$obj', - 'pass_by_reference' => true, - 'variable_length' => true, - 'type_hint' => 'self|parent', - 'nullable_type' => false, + 'token' => 15, + 'name' => '$obj2', + 'content' => 'Boo&Bar $obj2', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'Boo&Bar', + 'type_hint_token' => 11, + 'type_hint_end_token' => 13, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesSimple() + }//end testPHP8IntersectionTypes() /** - * Verify recognition of PHP8 union type declaration when the variable has either a spread operator or a reference. + * Verify recognition of PHP8.1 intersection type declaration when the variable + * has either a spread operator or a reference. * * @return void */ - public function testPHP8UnionTypesWithSpreadOperatorAndReference() + public function testPHP81IntersectionTypesWithSpreadOperatorAndReference() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$paramA', - 'content' => 'float|null &$paramA', - 'pass_by_reference' => true, - 'variable_length' => false, - 'type_hint' => 'float|null', - 'nullable_type' => false, + 'token' => 9, + 'name' => '$paramA', + 'content' => 'Boo&Bar &$paramA', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 8, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'Boo&Bar', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => 10, ]; $expected[1] = [ - 'name' => '$paramB', - 'content' => 'string|int ...$paramB', - 'pass_by_reference' => false, - 'variable_length' => true, - 'type_hint' => 'string|int', - 'nullable_type' => false, + 'token' => 17, + 'name' => '$paramB', + 'content' => 'Foo&Bar ...$paramB', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 16, + 'type_hint' => 'Foo&Bar', + 'type_hint_token' => 12, + 'type_hint_end_token' => 14, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesWithSpreadOperatorAndReference() + }//end testPHP81IntersectionTypesWithSpreadOperatorAndReference() /** - * Verify recognition of PHP8 union type declaration with a bitwise or in the default value. + * Verify recognition of PHP8.1 intersection type declaration with more types. * * @return void */ - public function testPHP8UnionTypesSimpleWithBitwiseOrInDefault() + public function testPHP81MoreIntersectionTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'int|float $var = CONSTANT_A | CONSTANT_B', - 'default' => 'CONSTANT_A | CONSTANT_B', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'int|float', - 'nullable_type' => false, + 'token' => 16, + 'name' => '$var', + 'content' => 'MyClassA&\Package\MyClassB&\Package\MyClassC $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'MyClassA&\Package\MyClassB&\Package\MyClassC', + 'type_hint_token' => 4, + 'type_hint_end_token' => 14, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesSimpleWithBitwiseOrInDefault() + }//end testPHP81MoreIntersectionTypes() /** - * Verify recognition of PHP8 union type declaration with two classes. + * Verify recognition of PHP8.1 intersection type declaration with illegal simple types. * * @return void */ - public function testPHP8UnionTypesTwoClasses() + public function testPHP81IllegalIntersectionTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'MyClassA|\Package\MyClassB $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'MyClassA|\Package\MyClassB', - 'nullable_type' => false, + 'token' => 7, + 'name' => '$numeric_string', + 'content' => 'string&int $numeric_string', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'string&int', + 'type_hint_token' => 3, + 'type_hint_end_token' => 5, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesTwoClasses() + }//end testPHP81IllegalIntersectionTypes() /** - * Verify recognition of PHP8 union type declaration with all base types. + * Verify recognition of PHP8.1 intersection type declaration with (illegal) nullability. * * @return void */ - public function testPHP8UnionTypesAllBaseTypes() + public function testPHP81NullableIntersectionTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'array|bool|callable|int|float|null|object|string $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'array|bool|callable|int|float|null|object|string', - 'nullable_type' => false, + 'token' => 8, + 'name' => '$object', + 'content' => '?Foo&Bar $object', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?Foo&Bar', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => true, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesAllBaseTypes() + }//end testPHP81NullableIntersectionTypes() /** - * Verify recognition of PHP8 union type declaration with all pseudo types. + * Verify recognition of PHP 8.2 stand-alone `true` type. * * @return void */ - public function testPHP8UnionTypesAllPseudoTypes() + public function testPHP82PseudoTypeTrue() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'false|mixed|self|parent|iterable|Resource $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'false|mixed|self|parent|iterable|Resource', - 'nullable_type' => false, + 'token' => 7, + 'name' => '$var', + 'content' => '?true $var = true', + 'default' => 'true', + 'default_token' => 11, + 'default_equal_token' => 9, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?true', + 'type_hint_token' => 5, + 'type_hint_end_token' => 5, + 'nullable_type' => true, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesAllPseudoTypes() + }//end testPHP82PseudoTypeTrue() /** - * Verify recognition of PHP8 union type declaration with (illegal) nullability. + * Verify recognition of PHP 8.2 type declaration with (illegal) type false combined with type true. * * @return void */ - public function testPHP8UnionTypesNullable() + public function testPHP82PseudoTypeFalseAndTrue() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$number', - 'content' => '?int|float $number', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '?int|float', - 'nullable_type' => true, + 'token' => 8, + 'name' => '$var', + 'content' => 'true|false $var = true', + 'default' => 'true', + 'default_token' => 12, + 'default_equal_token' => 10, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'true|false', + 'type_hint_token' => 4, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8UnionTypesNullable() + }//end testPHP82PseudoTypeFalseAndTrue() /** - * Verify recognition of PHP8 type declaration with (illegal) single type null. + * Verify behaviour when the default value uses the "new" keyword, as is allowed per PHP 8.1. * * @return void */ - public function testPHP8PseudoTypeNull() + public function testPHP81NewInInitializers() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'null $var = null', - 'default' => 'null', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'null', - 'nullable_type' => false, + 'token' => 8, + 'name' => '$new', + 'content' => 'TypeA $new = new TypeA(self::CONST_VALUE)', + 'default' => 'new TypeA(self::CONST_VALUE)', + 'default_token' => 12, + 'default_equal_token' => 10, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'TypeA', + 'type_hint_token' => 6, + 'type_hint_end_token' => 6, + 'nullable_type' => false, + 'comma_token' => 20, + ]; + $expected[1] = [ + 'token' => 28, + 'name' => '$newToo', + 'content' => '\Package\TypeB $newToo = new \Package\TypeB(10, \'string\')', + 'default' => "new \Package\TypeB(10, 'string')", + 'default_token' => 32, + 'default_equal_token' => 30, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '\Package\TypeB', + 'type_hint_token' => 23, + 'type_hint_end_token' => 26, + 'nullable_type' => false, + 'comma_token' => 44, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8PseudoTypeNull() + }//end testPHP81NewInInitializers() /** - * Verify recognition of PHP8 type declaration with (illegal) single type false. + * Verify recognition of 8.2 DNF parameter type declarations. * * @return void */ - public function testPHP8PseudoTypeFalse() + public function testPHP82DNFTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'false $var = false', - 'default' => 'false', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'false', - 'nullable_type' => false, + 'token' => 21, + 'name' => '$obj1', + 'content' => '#[MyAttribute] + false|(Foo&Bar)|true $obj1', + 'has_attributes' => true, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => 'false|(Foo&Bar)|true', + 'type_hint_token' => 11, + 'type_hint_end_token' => 19, + 'nullable_type' => false, + 'comma_token' => 22, + ]; + $expected[1] = [ + 'token' => 41, + 'name' => '$obj2', + 'content' => '(\Boo&\Pck\Bar)|(Boo&Baz) $obj2 = new Boo()', + 'default' => 'new Boo()', + 'default_token' => 45, + 'default_equal_token' => 43, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '(\Boo&\Pck\Bar)|(Boo&Baz)', + 'type_hint_token' => 25, + 'type_hint_end_token' => 39, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8PseudoTypeFalse() + }//end testPHP82DNFTypes() /** - * Verify recognition of PHP8 type declaration with (illegal) type false combined with type bool. + * Verify recognition of PHP 8.2 DNF parameter type declarations when the variable + * has either a spread operator or a reference. * * @return void */ - public function testPHP8PseudoTypeFalseAndBool() + public function testPHP82DNFTypesWithSpreadOperatorAndReference() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'bool|false $var = false', - 'default' => 'false', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'bool|false', - 'nullable_type' => false, + 'token' => 13, + 'name' => '$paramA', + 'content' => '(Countable&MeMe)|iterable &$paramA', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 12, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '(Countable&MeMe)|iterable', + 'type_hint_token' => 4, + 'type_hint_end_token' => 10, + 'nullable_type' => false, + 'comma_token' => 14, + ]; + $expected[1] = [ + 'token' => 25, + 'name' => '$paramB', + 'content' => 'true|(Foo&Bar) ...$paramB', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 24, + 'type_hint' => 'true|(Foo&Bar)', + 'type_hint_token' => 16, + 'type_hint_end_token' => 22, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8PseudoTypeFalseAndBool() + }//end testPHP82DNFTypesWithSpreadOperatorAndReference() /** - * Verify recognition of PHP8 type declaration with (illegal) type object combined with a class name. + * Verify recognition of PHP 8.2 DNF parameter type declarations using the nullability operator (not allowed). * * @return void */ - public function testPHP8ObjectAndClass() + public function testPHP82DNFTypesIllegalNullable() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'object|ClassName $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'object|ClassName', - 'nullable_type' => false, + 'token' => 27, + 'name' => '$var', + 'content' => '? ( MyClassA & /*comment*/ \Package\MyClassB & \Package\MyClassC ) $var', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?(MyClassA&\Package\MyClassB&\Package\MyClassC)', + 'type_hint_token' => 5, + 'type_hint_end_token' => 25, + 'nullable_type' => true, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8ObjectAndClass() + }//end testPHP82DNFTypesIllegalNullable() /** - * Verify recognition of PHP8 type declaration with (illegal) type iterable combined with array/Traversable. + * Verify recognition of PHP 8.2 DNF parameter type declarations in an arrow function. * * @return void */ - public function testPHP8PseudoTypeIterableAndArray() + public function testPHP82DNFTypesInArrow() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'iterable|array|Traversable $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'iterable|array|Traversable', - 'nullable_type' => false, + 'token' => 12, + 'name' => '$range', + 'content' => '(Hi&Ho)|FALSE &...$range', + 'has_attributes' => false, + 'pass_by_reference' => true, + 'reference_token' => 10, + 'variable_length' => true, + 'variadic_token' => 11, + 'type_hint' => '(Hi&Ho)|FALSE', + 'type_hint_token' => 2, + 'type_hint_end_token' => 8, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8PseudoTypeIterableAndArray() + }//end testPHP82DNFTypesInArrow() /** - * Verify recognition of PHP8 type declaration with (illegal) duplicate types. + * Verify handling of a closure. * * @return void */ - public function testPHP8DuplicateTypeInUnionWhitespaceAndComment() + public function testClosure() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$var', - 'content' => 'int | string /*comment*/ | INT $var', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => 'int|string|INT', - 'nullable_type' => false, + 'token' => 3, + 'name' => '$a', + 'content' => '$a = \'test\'', + 'default' => "'test'", + 'default_token' => 7, + 'default_equal_token' => 5, + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => false, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8DuplicateTypeInUnionWhitespaceAndComment() + }//end testClosure() /** - * Verify recognition of PHP8 constructor property promotion without type declaration, with defaults. + * Verify handling of a closure T_USE token correctly. * * @return void */ - public function testPHP8ConstructorPropertyPromotionNoTypes() + public function testClosureUse() { + // Offsets are relative to the T_USE token. $expected = []; $expected[0] = [ - 'name' => '$x', - 'content' => 'public $x = 0.0', - 'default' => '0.0', + 'token' => 3, + 'name' => '$foo', + 'content' => '$foo', + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, + 'variadic_token' => false, 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'public', + 'comma_token' => 4, ]; $expected[1] = [ - 'name' => '$y', - 'content' => 'protected $y = \'\'', - 'default' => "''", - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '', - 'nullable_type' => false, - 'property_visibility' => 'protected', - ]; - $expected[2] = [ - 'name' => '$z', - 'content' => 'private $z = null', - 'default' => 'null', + 'token' => 6, + 'name' => '$bar', + 'content' => '$bar', + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, + 'variadic_token' => false, 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'private', + 'comma_token' => false, ]; - $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected, [T_USE]); - }//end testPHP8ConstructorPropertyPromotionNoTypes() + }//end testClosureUse() /** - * Verify recognition of PHP8 constructor property promotion with type declarations. + * Verify function declarations with trailing commas are handled correctly. * * @return void */ - public function testPHP8ConstructorPropertyPromotionWithTypes() + public function testFunctionParamListWithTrailingComma() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$x', - 'content' => 'protected float|int $x', + 'token' => 9, + 'name' => '$foo', + 'content' => '?string $foo /*comment*/', + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, - 'type_hint' => 'float|int', - 'nullable_type' => false, - 'property_visibility' => 'protected', - ]; - $expected[1] = [ - 'name' => '$y', - 'content' => 'public ?string &$y = \'test\'', - 'default' => "'test'", - 'pass_by_reference' => true, - 'variable_length' => false, + 'variadic_token' => false, 'type_hint' => '?string', + 'type_hint_token' => 7, + 'type_hint_end_token' => 7, 'nullable_type' => true, - 'property_visibility' => 'public', + 'comma_token' => 13, ]; - $expected[2] = [ - 'name' => '$z', - 'content' => 'private mixed $z', + $expected[1] = [ + 'token' => 16, + 'name' => '$bar', + 'content' => '$bar = 0', + 'default' => '0', + 'default_token' => 20, + 'default_equal_token' => 18, + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, - 'type_hint' => 'mixed', + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'private', + 'comma_token' => 21, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8ConstructorPropertyPromotionWithTypes() + }//end testFunctionParamListWithTrailingComma() /** - * Verify recognition of PHP8 constructor with both property promotion as well as normal parameters. + * Verify closure declarations with trailing commas are handled correctly. * * @return void */ - public function testPHP8ConstructorPropertyPromotionAndNormalParam() + public function testClosureParamListWithTrailingComma() { + // Offsets are relative to the T_FUNCTION token. $expected = []; $expected[0] = [ - 'name' => '$promotedProp', - 'content' => 'public int $promotedProp', + 'token' => 4, + 'name' => '$foo', + 'content' => '$foo', + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, - 'type_hint' => 'int', + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'public', + 'comma_token' => 5, ]; $expected[1] = [ - 'name' => '$normalArg', - 'content' => '?int $normalArg', - 'pass_by_reference' => false, - 'variable_length' => false, - 'type_hint' => '?int', - 'nullable_type' => true, + 'token' => 8, + 'name' => '$bar', + 'content' => '$bar', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, + 'nullable_type' => false, + 'comma_token' => 9, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8ConstructorPropertyPromotionAndNormalParam() + }//end testClosureParamListWithTrailingComma() /** - * Verify behaviour when a non-constructor function uses PHP 8 property promotion syntax. + * Verify arrow function declarations with trailing commas are handled correctly. * * @return void */ - public function testPHP8ConstructorPropertyPromotionGlobalFunction() + public function testArrowFunctionParamListWithTrailingComma() { + // Offsets are relative to the T_FN token. $expected = []; $expected[0] = [ - 'name' => '$x', - 'content' => 'private $x', + 'token' => 6, + 'name' => '$a', + 'content' => '?int $a', + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, + 'variadic_token' => false, + 'type_hint' => '?int', + 'type_hint_token' => 4, + 'type_hint_end_token' => 4, + 'nullable_type' => true, + 'comma_token' => 8, + ]; + $expected[1] = [ + 'token' => 11, + 'name' => '$b', + 'content' => '...$b', + 'has_attributes' => false, + 'pass_by_reference' => false, + 'reference_token' => false, + 'variable_length' => true, + 'variadic_token' => 10, 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'private', + 'comma_token' => 12, ]; $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); - }//end testPHP8ConstructorPropertyPromotionGlobalFunction() + }//end testArrowFunctionParamListWithTrailingComma() /** - * Verify behaviour when an abstract constructor uses PHP 8 property promotion syntax. + * Verify closure T_USE statements with trailing commas are handled correctly. * * @return void */ - public function testPHP8ConstructorPropertyPromotionAbstractMethod() + public function testClosureUseWithTrailingComma() { + // Offsets are relative to the T_USE token. $expected = []; $expected[0] = [ - 'name' => '$y', - 'content' => 'public callable $y', + 'token' => 4, + 'name' => '$foo', + 'content' => '$foo /*comment*/', + 'has_attributes' => false, 'pass_by_reference' => false, + 'reference_token' => false, 'variable_length' => false, - 'type_hint' => 'callable', + 'variadic_token' => false, + 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'public', + 'comma_token' => 8, ]; $expected[1] = [ - 'name' => '$x', - 'content' => 'private ...$x', + 'token' => 11, + 'name' => '$bar', + 'content' => '$bar', + 'has_attributes' => false, 'pass_by_reference' => false, - 'variable_length' => true, + 'reference_token' => false, + 'variable_length' => false, + 'variadic_token' => false, 'type_hint' => '', + 'type_hint_token' => false, + 'type_hint_end_token' => false, 'nullable_type' => false, - 'property_visibility' => 'private', + 'comma_token' => 12, ]; - $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected); + $this->getMethodParametersTestHelper('/* '.__FUNCTION__.' */', $expected, [T_USE]); - }//end testPHP8ConstructorPropertyPromotionAbstractMethod() + }//end testClosureUseWithTrailingComma() /** * Test helper. * - * @param string $commentString The comment which preceeds the test. - * @param array $expected The expected function output. + * @param string $commentString The comment which preceeds the test. + * @param array> $expected The expected function output. + * @param int|string|array $targetType Optional. The token type to search for after $marker. + * Defaults to the function/closure/arrow tokens. * * @return void */ - private function getMethodParametersTestHelper($commentString, $expected) + private function getMethodParametersTestHelper($commentString, $expected, $targetType=[T_FUNCTION, T_CLOSURE, T_FN]) { - $function = $this->getTargetToken($commentString, [T_FUNCTION, T_CLOSURE, T_FN]); - $found = self::$phpcsFile->getMethodParameters($function); + $target = $this->getTargetToken($commentString, $targetType); + $found = self::$phpcsFile->getMethodParameters($target); + + // Convert offsets to absolute positions in the token stream. + foreach ($expected as $key => $param) { + $expected[$key]['token'] += $target; + + if (is_int($param['reference_token']) === true) { + $expected[$key]['reference_token'] += $target; + } + + if (is_int($param['variadic_token']) === true) { + $expected[$key]['variadic_token'] += $target; + } + + if (is_int($param['type_hint_token']) === true) { + $expected[$key]['type_hint_token'] += $target; + } + + if (is_int($param['type_hint_end_token']) === true) { + $expected[$key]['type_hint_end_token'] += $target; + } + + if (is_int($param['comma_token']) === true) { + $expected[$key]['comma_token'] += $target; + } + + if (isset($param['default_token']) === true) { + $expected[$key]['default_token'] += $target; + } + + if (isset($param['default_equal_token']) === true) { + $expected[$key]['default_equal_token'] += $target; + } + + if (isset($param['visibility_token']) === true && is_int($param['visibility_token']) === true) { + $expected[$key]['visibility_token'] += $target; + } + + if (isset($param['readonly_token']) === true) { + $expected[$key]['readonly_token'] += $target; + } + }//end foreach - $this->assertArraySubset($expected, $found, true); + $this->assertSame($expected, $found); }//end getMethodParametersTestHelper() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.inc index 3e9682df6..7f572f66c 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.inc @@ -33,17 +33,24 @@ class MyClass { /* testMessyNullableReturnMethod */ public function myFunction() /* comment - */ : - /* comment */ ? //comment + */ : + /* comment */ ? // phpcs:ignore Stnd.Cat.Sniff -- For reasons. array {} /* testReturnNamespace */ function myFunction(): \MyNamespace\MyClass {} /* testReturnMultilineNamespace */ + // Parse error in PHP 8.0. function myFunction(): \MyNamespace /** comment *\/ comment */ \MyClass /* comment */ \Foo {} + + /* testReturnUnqualifiedName */ + private function myFunction(): ?MyClass {} + + /* testReturnPartiallyQualifiedName */ + function myFunction(): Sub\Level\MyClass {} } abstract class MyClass @@ -72,6 +79,11 @@ class ReturnMe { private function myFunction(): static { return $this; } + + /* testReturnTypeNullableStatic */ + function myNullableFunction(): ?static { + return $this; + } } /* testPHP8MixedTypeHint */ @@ -102,11 +114,11 @@ function unionTypesAllPseudoTypes($var) : false|MIXED|self|parent|static|iterabl $closure = function () use($a) :?int|float {}; /* testPHP8PseudoTypeNull */ -// Intentional fatal error - null pseudotype is only allowed in union types, but that's not the concern of the method. +// PHP 8.0 - 8.1: Intentional fatal error - null pseudotype is only allowed in union types, but that's not the concern of the method. function pseudoTypeNull(): null {} /* testPHP8PseudoTypeFalse */ -// Intentional fatal error - false pseudotype is only allowed in union types, but that's not the concern of the method. +// PHP 8.0 - 8.1: Intentional fatal error - false pseudotype is only allowed in union types, but that's not the concern of the method. function pseudoTypeFalse(): false {} /* testPHP8PseudoTypeFalseAndBool */ @@ -126,3 +138,89 @@ interface FooBar { /* testPHP8DuplicateTypeInUnionWhitespaceAndComment */ // Intentional fatal error - duplicate types are not allowed in union types, but that's not the concern of the method. function duplicateTypeInUnion(): int | /*comment*/ string | INT {} + +/* testPHP81NeverType */ +function never(): never {} + +/* testPHP81NullableNeverType */ +// Intentional fatal error - nullability is not allowed with never, but that's not the concern of the method. +function nullableNever(): ?never {} + +/* testPHP8IntersectionTypes */ +function intersectionTypes(): Foo&Bar {} + +/* testPHP81MoreIntersectionTypes */ +function moreIntersectionTypes(): MyClassA&\Package\MyClassB&\Package\MyClassC {} + +/* testPHP81IntersectionArrowFunction */ +$fn = fn($var): MyClassA&\Package\MyClassB => $var; + +/* testPHP81IllegalIntersectionTypes */ +// Intentional fatal error - simple types are not allowed with intersection types, but that's not the concern of the method. +$closure = function (): string&int {}; + +/* testPHP81NullableIntersectionTypes */ +// Intentional fatal error - nullability is not allowed with intersection types, but that's not the concern of the method. +$closure = function (): ?Foo&Bar {}; + +/* testPHP82PseudoTypeTrue */ +function pseudoTypeTrue(): ?true {} + +/* testPHP82PseudoTypeFalseAndTrue */ +// Intentional fatal error - Type contains both true and false, bool should be used instead, but that's not the concern of the method. +function pseudoTypeFalseAndTrue(): true|false {} + +/* testPHP82DNFType */ +function hasDNFType() : bool|(Foo&Bar)|string {} + +abstract class AbstractClass { + /* testPHP82DNFTypeAbstractMethod */ + abstract protected function abstractMethodDNFType() : float|(Foo&Bar); +} + +/* testPHP82DNFTypeIllegalNullable */ +// Intentional fatal error - nullable operator cannot be combined with DNF. +function illegalNullableDNF(): ?(A&\Pck\B)|bool {} + +/* testPHP82DNFTypeClosure */ +$closure = function() : object|(namespace\Foo&Countable) {}; + +/* testPHP82DNFTypeFn */ +// Intentional fatal error - void type cannot be combined with DNF. +$arrow = fn() : null|(Partially\Qualified&Traversable)|void => do_something(); + +/* testNotAFunction */ +return true; + +/* testPhpcsIssue1264 */ +function foo() : array { + echo $foo; +} + +/* testArrowFunctionArrayReturnValue */ +$fn = fn(): array => [a($a, $b)]; + +/* testArrowFunctionReturnByRef */ +fn&(?string $a) : ?string => $b; + +/* testFunctionCallFnPHPCS353-354 */ +$value = $obj->fn(true); + +/* testFunctionDeclarationNestedInTernaryPHPCS2975 */ +return (!$a ? [ new class { public function b(): c {} } ] : []); + +/* testClosureWithUseNoReturnType */ +$closure = function () use($a) /*comment*/ {}; + +/* testClosureWithUseNoReturnTypeIllegalUseProp */ +$closure = function () use ($this->prop){}; + +/* testClosureWithUseWithReturnType */ +$closure = function () use /*comment*/ ($a): Type {}; + +/* testClosureWithUseMultiParamWithReturnType */ +$closure = function () use ($a, &$b, $c, $d, $e, $f, $g): ?array {}; + +/* testArrowFunctionLiveCoding */ +// Intentional parse error. This has to be the last test in the file. +$fn = fn diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.php index d912d6b1c..273ff4b28 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetMethodPropertiesTest.php @@ -1,20 +1,78 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class GetMethodPropertiesTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::getMethodProperties method. + * + * @covers \PHP_CodeSniffer\Files\File::getMethodProperties + */ +final class GetMethodPropertiesTest extends AbstractMethodUnitTest { + /** + * Test receiving an expected exception when a non function token is passed. + * + * @param string $commentString The comment which preceeds the test. + * @param string|int|array $targetTokenType The token type to search for after $commentString. + * + * @dataProvider dataNotAFunctionException + * + * @return void + */ + public function testNotAFunctionException($commentString, $targetTokenType) + { + $this->expectRunTimeException('$stackPtr must be of type T_FUNCTION or T_CLOSURE or T_FN'); + + $next = $this->getTargetToken($commentString, $targetTokenType); + self::$phpcsFile->getMethodProperties($next); + + }//end testNotAFunctionException() + + + /** + * Data Provider. + * + * @see testNotAFunctionException() For the array format. + * + * @return array>> + */ + public static function dataNotAFunctionException() + { + return [ + 'return' => [ + 'commentString' => '/* testNotAFunction */', + 'targetTokenType' => T_RETURN, + ], + 'function-call-fn-phpcs-3.5.3-3.5.4' => [ + 'commentString' => '/* testFunctionCallFnPHPCS353-354 */', + 'targetTokenType' => [ + T_FN, + T_STRING, + ], + ], + 'fn-live-coding' => [ + 'commentString' => '/* testArrowFunctionLiveCoding */', + 'targetTokenType' => [ + T_FN, + T_STRING, + ], + ], + ]; + + }//end dataNotAFunctionException() + + /** * Test a basic function. * @@ -23,14 +81,16 @@ class GetMethodPropertiesTest extends AbstractMethodUnitTest public function testBasicFunction() { $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -45,15 +105,18 @@ public function testBasicFunction() */ public function testReturnFunction() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'array', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'array', + 'return_type_token' => 11, + 'return_type_end_token' => 11, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -68,15 +131,18 @@ public function testReturnFunction() */ public function testNestedClosure() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'int', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'int', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -92,14 +158,16 @@ public function testNestedClosure() public function testBasicMethod() { $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -115,14 +183,16 @@ public function testBasicMethod() public function testPrivateStaticMethod() { $expected = [ - 'scope' => 'private', - 'scope_specified' => true, - 'return_type' => '', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => true, - 'has_body' => true, + 'scope' => 'private', + 'scope_specified' => true, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => true, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -138,14 +208,16 @@ public function testPrivateStaticMethod() public function testFinalMethod() { $expected = [ - 'scope' => 'public', - 'scope_specified' => true, - 'return_type' => '', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => true, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => true, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => true, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -160,15 +232,18 @@ public function testFinalMethod() */ public function testProtectedReturnMethod() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'protected', - 'scope_specified' => true, - 'return_type' => 'int', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'protected', + 'scope_specified' => true, + 'return_type' => 'int', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -183,15 +258,18 @@ public function testProtectedReturnMethod() */ public function testPublicReturnMethod() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => true, - 'return_type' => 'array', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => true, + 'return_type' => 'array', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -206,15 +284,18 @@ public function testPublicReturnMethod() */ public function testNullableReturnMethod() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => true, - 'return_type' => '?array', - 'nullable_return_type' => true, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => true, + 'return_type' => '?array', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -229,15 +310,18 @@ public function testNullableReturnMethod() */ public function testMessyNullableReturnMethod() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => true, - 'return_type' => '?array', - 'nullable_return_type' => true, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => true, + 'return_type' => '?array', + 'return_type_token' => 18, + 'return_type_end_token' => 18, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -252,15 +336,18 @@ public function testMessyNullableReturnMethod() */ public function testReturnNamespace() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '\MyNamespace\MyClass', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '\MyNamespace\MyClass', + 'return_type_token' => 7, + 'return_type_end_token' => 10, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -275,15 +362,18 @@ public function testReturnNamespace() */ public function testReturnMultilineNamespace() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '\MyNamespace\MyClass\Foo', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '\MyNamespace\MyClass\Foo', + 'return_type_token' => 7, + 'return_type_end_token' => 23, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -291,6 +381,58 @@ public function testReturnMultilineNamespace() }//end testReturnMultilineNamespace() + /** + * Test a method with an unqualified named return type. + * + * @return void + */ + public function testReturnUnqualifiedName() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'private', + 'scope_specified' => true, + 'return_type' => '?MyClass', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testReturnUnqualifiedName() + + + /** + * Test a method with a partially qualified namespaced return type. + * + * @return void + */ + public function testReturnPartiallyQualifiedName() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'Sub\Level\MyClass', + 'return_type_token' => 7, + 'return_type_end_token' => 11, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testReturnPartiallyQualifiedName() + + /** * Test a basic abstract method. * @@ -299,14 +441,16 @@ public function testReturnMultilineNamespace() public function testAbstractMethod() { $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '', - 'nullable_return_type' => false, - 'is_abstract' => true, - 'is_final' => false, - 'is_static' => false, - 'has_body' => false, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => true, + 'is_final' => false, + 'is_static' => false, + 'has_body' => false, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -321,15 +465,18 @@ public function testAbstractMethod() */ public function testAbstractReturnMethod() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'protected', - 'scope_specified' => true, - 'return_type' => 'bool', - 'nullable_return_type' => false, - 'is_abstract' => true, - 'is_final' => false, - 'is_static' => false, - 'has_body' => false, + 'scope' => 'protected', + 'scope_specified' => true, + 'return_type' => 'bool', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => true, + 'is_final' => false, + 'is_static' => false, + 'has_body' => false, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -345,14 +492,16 @@ public function testAbstractReturnMethod() public function testInterfaceMethod() { $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => false, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => false, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -367,15 +516,18 @@ public function testInterfaceMethod() */ public function testArrowFunction() { + // Offsets are relative to the T_FN token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'int', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => true, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'int', + 'return_type_token' => 9, + 'return_type_end_token' => 9, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => true, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -390,15 +542,18 @@ public function testArrowFunction() */ public function testReturnTypeStatic() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'private', - 'scope_specified' => true, - 'return_type' => 'static', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'private', + 'scope_specified' => true, + 'return_type' => 'static', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -406,6 +561,32 @@ public function testReturnTypeStatic() }//end testReturnTypeStatic() + /** + * Test a function with return type "?static". + * + * @return void + */ + public function testReturnTypeNullableStatic() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?static', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testReturnTypeNullableStatic() + + /** * Test a function with return type "mixed". * @@ -413,15 +594,18 @@ public function testReturnTypeStatic() */ public function testPHP8MixedTypeHint() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'mixed', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'mixed', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -436,15 +620,18 @@ public function testPHP8MixedTypeHint() */ public function testPHP8MixedTypeHintNullable() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '?mixed', - 'nullable_return_type' => true, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?mixed', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -459,15 +646,18 @@ public function testPHP8MixedTypeHintNullable() */ public function testNamespaceOperatorTypeHint() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '?namespace\Name', - 'nullable_return_type' => true, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?namespace\Name', + 'return_type_token' => 9, + 'return_type_end_token' => 11, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -482,15 +672,18 @@ public function testNamespaceOperatorTypeHint() */ public function testPHP8UnionTypesSimple() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'int|float', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'int|float', + 'return_type_token' => 9, + 'return_type_end_token' => 11, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -505,15 +698,18 @@ public function testPHP8UnionTypesSimple() */ public function testPHP8UnionTypesTwoClasses() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'MyClassA|\Package\MyClassB', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'MyClassA|\Package\MyClassB', + 'return_type_token' => 6, + 'return_type_end_token' => 11, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -528,15 +724,18 @@ public function testPHP8UnionTypesTwoClasses() */ public function testPHP8UnionTypesAllBaseTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'array|bool|callable|int|float|null|Object|string', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'array|bool|callable|int|float|null|Object|string', + 'return_type_token' => 8, + 'return_type_end_token' => 22, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -547,19 +746,24 @@ public function testPHP8UnionTypesAllBaseTypes() /** * Verify recognition of PHP8 union type declaration with all pseudo types. * + * Note: "Resource" is not a type, but seen as a class name. + * * @return void */ public function testPHP8UnionTypesAllPseudoTypes() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'false|MIXED|self|parent|static|iterable|Resource|void', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'false|MIXED|self|parent|static|iterable|Resource|void', + 'return_type_token' => 9, + 'return_type_end_token' => 23, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -574,15 +778,18 @@ public function testPHP8UnionTypesAllPseudoTypes() */ public function testPHP8UnionTypesNullable() { + // Offsets are relative to the T_CLOSURE token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => '?int|float', - 'nullable_return_type' => true, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?int|float', + 'return_type_token' => 12, + 'return_type_end_token' => 14, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -597,15 +804,18 @@ public function testPHP8UnionTypesNullable() */ public function testPHP8PseudoTypeNull() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'null', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'null', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -620,15 +830,18 @@ public function testPHP8PseudoTypeNull() */ public function testPHP8PseudoTypeFalse() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'false', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'false', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -643,15 +856,18 @@ public function testPHP8PseudoTypeFalse() */ public function testPHP8PseudoTypeFalseAndBool() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'bool|false', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'bool|false', + 'return_type_token' => 7, + 'return_type_end_token' => 9, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -666,15 +882,18 @@ public function testPHP8PseudoTypeFalseAndBool() */ public function testPHP8ObjectAndClass() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'object|ClassName', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'object|ClassName', + 'return_type_token' => 7, + 'return_type_end_token' => 9, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -689,15 +908,18 @@ public function testPHP8ObjectAndClass() */ public function testPHP8PseudoTypeIterableAndArray() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => true, - 'return_type' => 'iterable|array|Traversable', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => false, + 'scope' => 'public', + 'scope_specified' => true, + 'return_type' => 'iterable|array|Traversable', + 'return_type_token' => 7, + 'return_type_end_token' => 11, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => false, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -712,15 +934,18 @@ public function testPHP8PseudoTypeIterableAndArray() */ public function testPHP8DuplicateTypeInUnionWhitespaceAndComment() { + // Offsets are relative to the T_FUNCTION token. $expected = [ - 'scope' => 'public', - 'scope_specified' => false, - 'return_type' => 'int|string|INT', - 'nullable_return_type' => false, - 'is_abstract' => false, - 'is_final' => false, - 'is_static' => false, - 'has_body' => true, + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'int|string|INT', + 'return_type_token' => 7, + 'return_type_end_token' => 17, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, ]; $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); @@ -728,11 +953,590 @@ public function testPHP8DuplicateTypeInUnionWhitespaceAndComment() }//end testPHP8DuplicateTypeInUnionWhitespaceAndComment() + /** + * Verify recognition of PHP8.1 type "never". + * + * @return void + */ + public function testPHP81NeverType() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'never', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81NeverType() + + + /** + * Verify recognition of PHP8.1 type "never" with (illegal) nullability. + * + * @return void + */ + public function testPHP81NullableNeverType() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?never', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81NullableNeverType() + + + /** + * Verify recognition of PHP8.1 intersection type declaration. + * + * @return void + */ + public function testPHP8IntersectionTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'Foo&Bar', + 'return_type_token' => 7, + 'return_type_end_token' => 9, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP8IntersectionTypes() + + + /** + * Verify recognition of PHP8.1 intersection type declaration with more types. + * + * @return void + */ + public function testPHP81MoreIntersectionTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'MyClassA&\Package\MyClassB&\Package\MyClassC', + 'return_type_token' => 7, + 'return_type_end_token' => 17, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81MoreIntersectionTypes() + + + /** + * Verify recognition of PHP8.1 intersection type declaration in arrow function. + * + * @return void + */ + public function testPHP81IntersectionArrowFunction() + { + // Offsets are relative to the T_FN token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'MyClassA&\Package\MyClassB', + 'return_type_token' => 6, + 'return_type_end_token' => 11, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81IntersectionArrowFunction() + + + /** + * Verify recognition of PHP8.1 intersection type declaration with illegal simple types. + * + * @return void + */ + public function testPHP81IllegalIntersectionTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'string&int', + 'return_type_token' => 6, + 'return_type_end_token' => 8, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81IllegalIntersectionTypes() + + + /** + * Verify recognition of PHP8.1 intersection type declaration with (illegal) nullability. + * + * @return void + */ + public function testPHP81NullableIntersectionTypes() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?Foo&Bar', + 'return_type_token' => 7, + 'return_type_end_token' => 9, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP81NullableIntersectionTypes() + + + /** + * Verify recognition of PHP 8.2 stand-alone `true` type. + * + * @return void + */ + public function testPHP82PseudoTypeTrue() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?true', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82PseudoTypeTrue() + + + /** + * Verify recognition of PHP 8.2 type declaration with (illegal) type false combined with type true. + * + * @return void + */ + public function testPHP82PseudoTypeFalseAndTrue() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'true|false', + 'return_type_token' => 7, + 'return_type_end_token' => 9, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82PseudoTypeFalseAndTrue() + + + /** + * Verify recognition of PHP 8.2 DNF return type declaration. + * + * @return void + */ + public function testPHP82DNFType() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'bool|(Foo&Bar)|string', + 'return_type_token' => 8, + 'return_type_end_token' => 16, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82DNFType() + + + /** + * Verify recognition of PHP 8.2 DNF return type declaration on an abstract method. + * + * @return void + */ + public function testPHP82DNFTypeAbstractMethod() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'protected', + 'scope_specified' => true, + 'return_type' => 'float|(Foo&Bar)', + 'return_type_token' => 8, + 'return_type_end_token' => 14, + 'nullable_return_type' => false, + 'is_abstract' => true, + 'is_final' => false, + 'is_static' => false, + 'has_body' => false, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82DNFTypeAbstractMethod() + + + /** + * Verify recognition of PHP 8.2 DNF return type declaration with illegal nullability. + * + * @return void + */ + public function testPHP82DNFTypeIllegalNullable() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?(A&\Pck\B)|bool', + 'return_type_token' => 8, + 'return_type_end_token' => 17, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82DNFTypeIllegalNullable() + + + /** + * Verify recognition of PHP 8.2 DNF return type declaration on a closure. + * + * @return void + */ + public function testPHP82DNFTypeClosure() + { + // Offsets are relative to the T_CLOSURE token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'object|(namespace\Foo&Countable)', + 'return_type_token' => 6, + 'return_type_end_token' => 14, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82DNFTypeClosure() + + + /** + * Verify recognition of PHP 8.2 DNF return type declaration on an arrow function. + * + * @return void + */ + public function testPHP82DNFTypeFn() + { + // Offsets are relative to the T_FN token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'null|(Partially\Qualified&Traversable)|void', + 'return_type_token' => 6, + 'return_type_end_token' => 16, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPHP82DNFTypeFn() + + + /** + * Test for incorrect tokenization of array return type declarations in PHPCS < 2.8.0. + * + * @link https://github.com/squizlabs/PHP_CodeSniffer/pull/1264 + * + * @return void + */ + public function testPhpcsIssue1264() + { + // Offsets are relative to the T_FUNCTION token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'array', + 'return_type_token' => 8, + 'return_type_end_token' => 8, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testPhpcsIssue1264() + + + /** + * Test handling of incorrect tokenization of array return type declarations for arrow functions + * in a very specific code sample in PHPCS < 3.5.4. + * + * @link https://github.com/squizlabs/PHP_CodeSniffer/issues/2773 + * + * @return void + */ + public function testArrowFunctionArrayReturnValue() + { + // Offsets are relative to the T_FN token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'array', + 'return_type_token' => 5, + 'return_type_end_token' => 5, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testArrowFunctionArrayReturnValue() + + + /** + * Test handling of an arrow function returning by reference. + * + * @return void + */ + public function testArrowFunctionReturnByRef() + { + // Offsets are relative to the T_FN token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?string', + 'return_type_token' => 12, + 'return_type_end_token' => 12, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testArrowFunctionReturnByRef() + + + /** + * Test handling of function declaration nested in a ternary, where the colon for the + * return type was incorrectly tokenized as T_INLINE_ELSE prior to PHPCS 3.5.7. + * + * @return void + */ + public function testFunctionDeclarationNestedInTernaryPHPCS2975() + { + // Offsets are relative to the T_FN token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => true, + 'return_type' => 'c', + 'return_type_token' => 7, + 'return_type_end_token' => 7, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testFunctionDeclarationNestedInTernaryPHPCS2975() + + + /** + * Test handling of closure declarations with a use variable import without a return type declaration. + * + * @return void + */ + public function testClosureWithUseNoReturnType() + { + // Offsets are relative to the T_CLOSURE token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testClosureWithUseNoReturnType() + + + /** + * Test handling of closure declarations with an illegal use variable for a property import (not allowed in PHP) + * without a return type declaration. + * + * @return void + */ + public function testClosureWithUseNoReturnTypeIllegalUseProp() + { + // Offsets are relative to the T_CLOSURE token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '', + 'return_type_token' => false, + 'return_type_end_token' => false, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testClosureWithUseNoReturnTypeIllegalUseProp() + + + /** + * Test handling of closure declarations with a use variable import with a return type declaration. + * + * @return void + */ + public function testClosureWithUseWithReturnType() + { + // Offsets are relative to the T_CLOSURE token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => 'Type', + 'return_type_token' => 14, + 'return_type_end_token' => 14, + 'nullable_return_type' => false, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testClosureWithUseWithReturnType() + + + /** + * Test handling of closure declarations with a use variable import with a return type declaration. + * + * @return void + */ + public function testClosureWithUseMultiParamWithReturnType() + { + // Offsets are relative to the T_CLOSURE token. + $expected = [ + 'scope' => 'public', + 'scope_specified' => false, + 'return_type' => '?array', + 'return_type_token' => 32, + 'return_type_end_token' => 32, + 'nullable_return_type' => true, + 'is_abstract' => false, + 'is_final' => false, + 'is_static' => false, + 'has_body' => true, + ]; + + $this->getMethodPropertiesTestHelper('/* '.__FUNCTION__.' */', $expected); + + }//end testClosureWithUseMultiParamWithReturnType() + + /** * Test helper. * - * @param string $commentString The comment which preceeds the test. - * @param array $expected The expected function output. + * @param string $commentString The comment which preceeds the test. + * @param array $expected The expected function output. * * @return void */ @@ -741,7 +1545,16 @@ private function getMethodPropertiesTestHelper($commentString, $expected) $function = $this->getTargetToken($commentString, [T_FUNCTION, T_CLOSURE, T_FN]); $found = self::$phpcsFile->getMethodProperties($function); - $this->assertArraySubset($expected, $found, true); + // Convert offsets to absolute positions in the token stream. + if (is_int($expected['return_type_token']) === true) { + $expected['return_type_token'] += $function; + } + + if (is_int($expected['return_type_end_token']) === true) { + $expected['return_type_end_token'] += $function; + } + + $this->assertSame($expected, $found); }//end getMethodPropertiesTestHelper() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetTokensAsStringTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetTokensAsStringTest.inc new file mode 100644 index 000000000..ace5a9bd4 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetTokensAsStringTest.inc @@ -0,0 +1,25 @@ + 20; +} + +/* testEchoWithTabs */ +echo 'foo', + 'bar' , + 'baz'; + +/* testEndOfFile */ +echo $foo; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetTokensAsStringTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetTokensAsStringTest.php new file mode 100644 index 000000000..7e7974951 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/GetTokensAsStringTest.php @@ -0,0 +1,334 @@ + + * @copyright 2022-2024 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\File; + +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; + +/** + * Tests for the \PHP_CodeSniffer\Files\File:getTokensAsString method. + * + * @covers \PHP_CodeSniffer\Files\File::getTokensAsString + */ +final class GetTokensAsStringTest extends AbstractMethodUnitTest +{ + + + /** + * Test passing a non-existent token pointer. + * + * @return void + */ + public function testNonExistentToken() + { + $this->expectRunTimeException('The $start position for getTokensAsString() must exist in the token stack'); + + self::$phpcsFile->getTokensAsString(100000, 10); + + }//end testNonExistentToken() + + + /** + * Test passing a non integer `$start`, like the result of a failed $phpcsFile->findNext(). + * + * @return void + */ + public function testNonIntegerStart() + { + $this->expectRunTimeException('The $start position for getTokensAsString() must exist in the token stack'); + + self::$phpcsFile->getTokensAsString(false, 10); + + }//end testNonIntegerStart() + + + /** + * Test passing a non integer `$length`. + * + * @return void + */ + public function testNonIntegerLength() + { + $result = self::$phpcsFile->getTokensAsString(10, false); + $this->assertSame('', $result); + + $result = self::$phpcsFile->getTokensAsString(10, 1.5); + $this->assertSame('', $result); + + }//end testNonIntegerLength() + + + /** + * Test passing a zero or negative `$length`. + * + * @return void + */ + public function testLengthEqualToOrLessThanZero() + { + $result = self::$phpcsFile->getTokensAsString(10, -10); + $this->assertSame('', $result); + + $result = self::$phpcsFile->getTokensAsString(10, 0); + $this->assertSame('', $result); + + }//end testLengthEqualToOrLessThanZero() + + + /** + * Test passing a `$length` beyond the end of the file. + * + * @return void + */ + public function testLengthBeyondEndOfFile() + { + $semicolon = $this->getTargetToken('/* testEndOfFile */', T_SEMICOLON); + $result = self::$phpcsFile->getTokensAsString($semicolon, 20); + $this->assertSame( + '; +', + $result + ); + + }//end testLengthBeyondEndOfFile() + + + /** + * Test getting a token set as a string. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $startTokenType The type of token(s) to look for for the start of the string. + * @param int $length Token length to get. + * @param string $expected The expected function return value. + * + * @dataProvider dataGetTokensAsString + * + * @return void + */ + public function testGetTokensAsString($testMarker, $startTokenType, $length, $expected) + { + $start = $this->getTargetToken($testMarker, $startTokenType); + $result = self::$phpcsFile->getTokensAsString($start, $length); + $this->assertSame($expected, $result); + + }//end testGetTokensAsString() + + + /** + * Data provider. + * + * @see testGetTokensAsString() For the array format. + * + * @return array> + */ + public static function dataGetTokensAsString() + { + return [ + 'length-0' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 0, + 'expected' => '', + ], + 'length-1' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 1, + 'expected' => '1', + ], + 'length-2' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 2, + 'expected' => '1 ', + ], + 'length-3' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 3, + 'expected' => '1 +', + ], + 'length-4' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 4, + 'expected' => '1 + ', + ], + 'length-5' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 5, + 'expected' => '1 + 2', + ], + 'length-6' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 6, + 'expected' => '1 + 2 ', + ], + 'length-7' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 7, + 'expected' => '1 + 2 +', + ], + 'length-8' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 8, + 'expected' => '1 + 2 + +', + ], + 'length-9' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 9, + 'expected' => '1 + 2 + + ', + ], + 'length-10' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 10, + 'expected' => '1 + 2 + + // Comment. +', + ], + 'length-11' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 11, + 'expected' => '1 + 2 + + // Comment. + ', + ], + 'length-12' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 12, + 'expected' => '1 + 2 + + // Comment. + 3', + ], + 'length-13' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 13, + 'expected' => '1 + 2 + + // Comment. + 3 ', + ], + 'length-14' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 14, + 'expected' => '1 + 2 + + // Comment. + 3 +', + ], + 'length-34' => [ + 'testMarker' => '/* testCalculation */', + 'startTokenType' => T_LNUMBER, + 'length' => 34, + 'expected' => '1 + 2 + + // Comment. + 3 + 4 + + 5 + 6 + 7 > 20;', + ], + 'namespace' => [ + 'testMarker' => '/* testNamespace */', + 'startTokenType' => T_NAMESPACE, + 'length' => 8, + 'expected' => 'namespace Foo\Bar\Baz;', + ], + 'use-with-comments' => [ + 'testMarker' => '/* testUseWithComments */', + 'startTokenType' => T_USE, + 'length' => 17, + 'expected' => 'use Foo /*comment*/ \ Bar + // phpcs:ignore Stnd.Cat.Sniff -- For reasons. + \ Bah;', + ], + 'echo-with-tabs' => [ + 'testMarker' => '/* testEchoWithTabs */', + 'startTokenType' => T_ECHO, + 'length' => 13, + 'expected' => 'echo \'foo\', + \'bar\' , + \'baz\';', + ], + 'end-of-file' => [ + 'testMarker' => '/* testEndOfFile */', + 'startTokenType' => T_ECHO, + 'length' => 4, + 'expected' => 'echo $foo;', + ], + ]; + + }//end dataGetTokensAsString() + + + /** + * Test getting a token set as a string with the original, non tab-replaced content. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int|string $startTokenType The type of token(s) to look for for the start of the string. + * @param int $length Token length to get. + * @param string $expected The expected function return value. + * + * @dataProvider dataGetOrigContent + * + * @return void + */ + public function testGetOrigContent($testMarker, $startTokenType, $length, $expected) + { + $start = $this->getTargetToken($testMarker, $startTokenType); + $result = self::$phpcsFile->getTokensAsString($start, $length, true); + $this->assertSame($expected, $result); + + }//end testGetOrigContent() + + + /** + * Data provider. + * + * @see testGetOrigContent() For the array format. + * + * @return array> + */ + public static function dataGetOrigContent() + { + return [ + 'use-with-comments' => [ + 'testMarker' => '/* testUseWithComments */', + 'startTokenType' => T_USE, + 'length' => 17, + 'expected' => 'use Foo /*comment*/ \ Bar + // phpcs:ignore Stnd.Cat.Sniff -- For reasons. + \ Bah;', + ], + 'echo-with-tabs' => [ + 'testMarker' => '/* testEchoWithTabs */', + 'startTokenType' => T_ECHO, + 'length' => 13, + 'expected' => 'echo \'foo\', + \'bar\' , + \'baz\';', + ], + 'end-of-file' => [ + 'testMarker' => '/* testEndOfFile */', + 'startTokenType' => T_ECHO, + 'length' => 4, + 'expected' => 'echo $foo;', + ], + ]; + + }//end dataGetOrigContent() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.inc index cd40ed3ba..05af83905 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.inc @@ -1,6 +1,8 @@ $first, 'b' => $something & $somethingElse ]; @@ -51,7 +53,7 @@ function myFunction(array &$one) {} $closure = function (\MyClass &$one) {}; /* testFunctionPassByReferenceG */ -$closure = function myFunc($param, &...$moreParams) {}; +$closure = function ($param, &...$moreParams) {}; /* testForeachValueByReference */ foreach( $array as $key => &$value ) {} @@ -98,6 +100,32 @@ $myValue = &$obj->getValue(); /* testAssignByReferenceE */ $collection = &collector(); +/* testAssignByReferenceF */ +$collection ??= &collector(); + +/* testShortListAssignByReferenceNoKeyA */ +[ + &$a, + /* testShortListAssignByReferenceNoKeyB */ + &$b, + /* testNestedShortListAssignByReferenceNoKey */ + [$c, &$d] +] = $array; + +/* testLongListAssignByReferenceNoKeyA */ +list($a, &$b, list(/* testLongListAssignByReferenceNoKeyB */ &$c, /* testLongListAssignByReferenceNoKeyC */ &$d)) = $array; + +[ + /* testNestedShortListAssignByReferenceWithKeyA */ + 'a' => [&$a, $b], + /* testNestedShortListAssignByReferenceWithKeyB */ + 'b' => [$c, &$d] +] = $array; + + +/* testLongListAssignByReferenceWithKeyA */ +list(get_key()[1] => &$e) = [1, 2, 3]; + /* testPassByReferenceA */ functionCall(&$something, $somethingElse); @@ -128,6 +156,9 @@ functionCall($something, &\SomeNS\SomeClass::$somethingElse); /* testPassByReferenceJ */ functionCall($something, &namespace\SomeClass::$somethingElse); +/* testPassByReferencePartiallyQualifiedName */ +functionCall($something, &Sub\Level\SomeClass::$somethingElse); + /* testNewByReferenceA */ $foobar2 = &new Foobar(); @@ -137,9 +168,27 @@ functionCall( $something , &new Foobar() ); /* testUseByReference */ $closure = function() use (&$var){}; +/* testUseByReferenceWithCommentFirstParam */ +$closure = function() use /*comment*/ (&$value){}; + +/* testUseByReferenceWithCommentSecondParam */ +$closure = function() use /*comment*/ ($varA, &$varB){}; + /* testArrowFunctionReturnByReference */ fn&($x) => $x; +$closure = function ( + /* testBitwiseAndExactParameterA */ + $a = MY_CONSTANT & parent::OTHER_CONSTANT, + /* testPassByReferenceExactParameterB */ + &$b, + /* testPassByReferenceExactParameterC */ + &...$c, + /* testBitwiseAndExactParameterD */ + $d = E_NOTICE & E_STRICT, +) {}; + +// Issue PHPCS#3049. /* testArrowFunctionPassByReferenceA */ $fn = fn(array &$one) => 1; @@ -148,3 +197,20 @@ $fn = fn($param, &...$moreParams) => 1; /* testClosureReturnByReference */ $closure = function &($param) use ($value) {}; + +/* testBitwiseAndArrowFunctionInDefault */ +$fn = fn( $one = E_NOTICE & E_STRICT) => 1; + +/* testIntersectionIsNotReference */ +function intersect(Foo&Bar $param) {} + +/* testDNFTypeIsNotReference */ +$fn = fn((Foo&\Bar)|null /* testParamPassByReference */ &$param) => $param; + +/* testTokenizerIssue1284PHPCSlt280A */ +if ($foo) {} +[&$a, /* testTokenizerIssue1284PHPCSlt280B */ &$b] = $c; + +/* testTokenizerIssue1284PHPCSlt280C */ +if ($foo) {} +[&$a, $b]; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.php index ea2dddbad..5b977de7a 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/File/IsReferenceTest.php @@ -1,33 +1,85 @@ * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class IsReferenceTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Files\File::isReference method. + * + * @covers \PHP_CodeSniffer\Files\File::isReference + */ +final class IsReferenceTest extends AbstractMethodUnitTest { + /** + * Test that false is returned when a non-"bitwise and" token is passed. + * + * @param string $testMarker Comment which precedes the test case. + * @param array $targetTokens Type of tokens to look for. + * + * @dataProvider dataNotBitwiseAndToken + * + * @return void + */ + public function testNotBitwiseAndToken($testMarker, $targetTokens) + { + $targetTokens[] = T_BITWISE_AND; + + $target = $this->getTargetToken($testMarker, $targetTokens); + $this->assertFalse(self::$phpcsFile->isReference($target)); + + }//end testNotBitwiseAndToken() + + + /** + * Data provider. + * + * @see testNotBitwiseAndToken() + * + * @return array>> + */ + public static function dataNotBitwiseAndToken() + { + return [ + 'Not ampersand token at all' => [ + 'testMarker' => '/* testBitwiseAndA */', + 'targetTokens' => [T_STRING], + ], + 'ampersand in intersection type' => [ + 'testMarker' => '/* testIntersectionIsNotReference */', + 'targetTokens' => [T_TYPE_INTERSECTION], + ], + 'ampersand in DNF type' => [ + 'testMarker' => '/* testDNFTypeIsNotReference */', + 'targetTokens' => [T_TYPE_INTERSECTION], + ], + ]; + + }//end dataNotBitwiseAndToken() + + /** * Test correctly identifying whether a "bitwise and" token is a reference or not. * - * @param string $identifier Comment which precedes the test case. + * @param string $testMarker Comment which precedes the test case. * @param bool $expected Expected function output. * * @dataProvider dataIsReference * * @return void */ - public function testIsReference($identifier, $expected) + public function testIsReference($testMarker, $expected) { - $bitwiseAnd = $this->getTargetToken($identifier, T_BITWISE_AND); + $bitwiseAnd = $this->getTargetToken($testMarker, T_BITWISE_AND); $result = self::$phpcsFile->isReference($bitwiseAnd); $this->assertSame($expected, $result); @@ -39,206 +91,302 @@ public function testIsReference($identifier, $expected) * * @see testIsReference() * - * @return array + * @return array> */ - public function dataIsReference() + public static function dataIsReference() { return [ - [ - '/* testBitwiseAndA */', - false, + 'issue-1971-list-first-in-file' => [ + 'testMarker' => '/* testTokenizerIssue1971PHPCSlt330gt271A */', + 'expected' => true, + ], + 'issue-1971-list-first-in-file-nested' => [ + 'testMarker' => '/* testTokenizerIssue1971PHPCSlt330gt271B */', + 'expected' => true, + ], + 'bitwise and: param in function call' => [ + 'testMarker' => '/* testBitwiseAndA */', + 'expected' => false, + ], + 'bitwise and: in unkeyed short array, first value' => [ + 'testMarker' => '/* testBitwiseAndB */', + 'expected' => false, + ], + 'bitwise and: in unkeyed short array, last value' => [ + 'testMarker' => '/* testBitwiseAndC */', + 'expected' => false, + ], + 'bitwise and: in unkeyed long array, last value' => [ + 'testMarker' => '/* testBitwiseAndD */', + 'expected' => false, + ], + 'bitwise and: in keyed short array, last value' => [ + 'testMarker' => '/* testBitwiseAndE */', + 'expected' => false, + ], + 'bitwise and: in keyed long array, last value' => [ + 'testMarker' => '/* testBitwiseAndF */', + 'expected' => false, + ], + 'bitwise and: in assignment' => [ + 'testMarker' => '/* testBitwiseAndG */', + 'expected' => false, + ], + 'bitwise and: in param default value in function declaration' => [ + 'testMarker' => '/* testBitwiseAndH */', + 'expected' => false, + ], + 'bitwise and: in param default value in closure declaration' => [ + 'testMarker' => '/* testBitwiseAndI */', + 'expected' => false, + ], + 'reference: function declared to return by reference' => [ + 'testMarker' => '/* testFunctionReturnByReference */', + 'expected' => true, + ], + 'reference: only param in function declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceA */', + 'expected' => true, + ], + 'reference: last param in function declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceB */', + 'expected' => true, + ], + 'reference: only param in closure declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceC */', + 'expected' => true, + ], + 'reference: last param in closure declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceD */', + 'expected' => true, + ], + 'reference: typed param in function declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceE */', + 'expected' => true, + ], + 'reference: typed param in closure declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceF */', + 'expected' => true, + ], + 'reference: variadic param in function declaration, pass by reference' => [ + 'testMarker' => '/* testFunctionPassByReferenceG */', + 'expected' => true, + ], + 'reference: foreach value' => [ + 'testMarker' => '/* testForeachValueByReference */', + 'expected' => true, + ], + 'reference: foreach key' => [ + 'testMarker' => '/* testForeachKeyByReference */', + 'expected' => true, + ], + 'reference: keyed short array, first value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceA */', + 'expected' => true, + ], + 'reference: keyed short array, last value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceB */', + 'expected' => true, + ], + 'reference: unkeyed short array, only value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceC */', + 'expected' => true, + ], + 'reference: unkeyed short array, last value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceD */', + 'expected' => true, ], - [ - '/* testBitwiseAndB */', - false, + 'reference: keyed long array, first value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceE */', + 'expected' => true, ], - [ - '/* testBitwiseAndC */', - false, + 'reference: keyed long array, last value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceF */', + 'expected' => true, ], - [ - '/* testBitwiseAndD */', - false, + 'reference: unkeyed long array, only value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceG */', + 'expected' => true, ], - [ - '/* testBitwiseAndE */', - false, + 'reference: unkeyed long array, last value, value by reference' => [ + 'testMarker' => '/* testArrayValueByReferenceH */', + 'expected' => true, ], - [ - '/* testBitwiseAndF */', - false, + 'reference: variable, assign by reference' => [ + 'testMarker' => '/* testAssignByReferenceA */', + 'expected' => true, ], - [ - '/* testBitwiseAndG */', - false, + 'reference: variable, assign by reference, spacing variation' => [ + 'testMarker' => '/* testAssignByReferenceB */', + 'expected' => true, ], - [ - '/* testBitwiseAndH */', - false, + 'reference: variable, assign by reference, concat assign' => [ + 'testMarker' => '/* testAssignByReferenceC */', + 'expected' => true, ], - [ - '/* testBitwiseAndI */', - false, + 'reference: property, assign by reference' => [ + 'testMarker' => '/* testAssignByReferenceD */', + 'expected' => true, ], - [ - '/* testFunctionReturnByReference */', - true, + 'reference: function return value, assign by reference' => [ + 'testMarker' => '/* testAssignByReferenceE */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceA */', - true, + 'reference: function return value, assign by reference, null coalesce assign' => [ + 'testMarker' => '/* testAssignByReferenceF */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceB */', - true, + 'reference: unkeyed short list, first var, assign by reference' => [ + 'testMarker' => '/* testShortListAssignByReferenceNoKeyA */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceC */', - true, + 'reference: unkeyed short list, second var, assign by reference' => [ + 'testMarker' => '/* testShortListAssignByReferenceNoKeyB */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceD */', - true, + 'reference: unkeyed short list, nested var, assign by reference' => [ + 'testMarker' => '/* testNestedShortListAssignByReferenceNoKey */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceE */', - true, + 'reference: unkeyed long list, second var, assign by reference' => [ + 'testMarker' => '/* testLongListAssignByReferenceNoKeyA */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceF */', - true, + 'reference: unkeyed long list, first nested var, assign by reference' => [ + 'testMarker' => '/* testLongListAssignByReferenceNoKeyB */', + 'expected' => true, ], - [ - '/* testFunctionPassByReferenceG */', - true, + 'reference: unkeyed long list, last nested var, assign by reference' => [ + 'testMarker' => '/* testLongListAssignByReferenceNoKeyC */', + 'expected' => true, ], - [ - '/* testForeachValueByReference */', - true, + 'reference: keyed short list, first nested var, assign by reference' => [ + 'testMarker' => '/* testNestedShortListAssignByReferenceWithKeyA */', + 'expected' => true, ], - [ - '/* testForeachKeyByReference */', - true, + 'reference: keyed short list, last nested var, assign by reference' => [ + 'testMarker' => '/* testNestedShortListAssignByReferenceWithKeyB */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceA */', - true, + 'reference: keyed long list, only var, assign by reference' => [ + 'testMarker' => '/* testLongListAssignByReferenceWithKeyA */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceB */', - true, + 'reference: first param in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceA */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceC */', - true, + 'reference: last param in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceB */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceD */', - true, + 'reference: property in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceC */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceE */', - true, + 'reference: hierarchical self property in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceD */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceF */', - true, + 'reference: hierarchical parent property in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceE */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceG */', - true, + 'reference: hierarchical static property in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceF */', + 'expected' => true, ], - [ - '/* testArrayValueByReferenceH */', - true, + 'reference: static property in function call, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceG */', + 'expected' => true, ], - [ - '/* testAssignByReferenceA */', - true, + 'reference: static property in function call, first with FQN, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceH */', + 'expected' => true, ], - [ - '/* testAssignByReferenceB */', - true, + 'reference: static property in function call, last with FQN, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceI */', + 'expected' => true, ], - [ - '/* testAssignByReferenceC */', - true, + 'reference: static property in function call, last with namespace relative name, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceJ */', + 'expected' => true, ], - [ - '/* testAssignByReferenceD */', - true, + 'reference: static property in function call, last with PQN, pass by reference' => [ + 'testMarker' => '/* testPassByReferencePartiallyQualifiedName */', + 'expected' => true, ], - [ - '/* testAssignByReferenceE */', - true, + 'reference: new by reference' => [ + 'testMarker' => '/* testNewByReferenceA */', + 'expected' => true, ], - [ - '/* testPassByReferenceA */', - true, + 'reference: new by reference as function call param' => [ + 'testMarker' => '/* testNewByReferenceB */', + 'expected' => true, ], - [ - '/* testPassByReferenceB */', - true, + 'reference: closure use by reference' => [ + 'testMarker' => '/* testUseByReference */', + 'expected' => true, ], - [ - '/* testPassByReferenceC */', - true, + 'reference: closure use by reference, first param, with comment' => [ + 'testMarker' => '/* testUseByReferenceWithCommentFirstParam */', + 'expected' => true, ], - [ - '/* testPassByReferenceD */', - true, + 'reference: closure use by reference, last param, with comment' => [ + 'testMarker' => '/* testUseByReferenceWithCommentSecondParam */', + 'expected' => true, ], - [ - '/* testPassByReferenceE */', - true, + 'reference: arrow fn declared to return by reference' => [ + 'testMarker' => '/* testArrowFunctionReturnByReference */', + 'expected' => true, ], - [ - '/* testPassByReferenceF */', - true, + 'bitwise and: first param default value in closure declaration' => [ + 'testMarker' => '/* testBitwiseAndExactParameterA */', + 'expected' => false, ], - [ - '/* testPassByReferenceG */', - true, + 'reference: param in closure declaration, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceExactParameterB */', + 'expected' => true, ], - [ - '/* testPassByReferenceH */', - true, + 'reference: variadic param in closure declaration, pass by reference' => [ + 'testMarker' => '/* testPassByReferenceExactParameterC */', + 'expected' => true, ], - [ - '/* testPassByReferenceI */', - true, + 'bitwise and: last param default value in closure declaration' => [ + 'testMarker' => '/* testBitwiseAndExactParameterD */', + 'expected' => false, ], - [ - '/* testPassByReferenceJ */', - true, + 'reference: typed param in arrow fn declaration, pass by reference' => [ + 'testMarker' => '/* testArrowFunctionPassByReferenceA */', + 'expected' => true, ], - [ - '/* testNewByReferenceA */', - true, + 'reference: variadic param in arrow fn declaration, pass by reference' => [ + 'testMarker' => '/* testArrowFunctionPassByReferenceB */', + 'expected' => true, ], - [ - '/* testNewByReferenceB */', - true, + 'reference: closure declared to return by reference' => [ + 'testMarker' => '/* testClosureReturnByReference */', + 'expected' => true, ], - [ - '/* testUseByReference */', - true, + 'bitwise and: param default value in arrow fn declaration' => [ + 'testMarker' => '/* testBitwiseAndArrowFunctionInDefault */', + 'expected' => false, ], - [ - '/* testArrowFunctionReturnByReference */', - true, + 'reference: param pass by ref in arrow function' => [ + 'testMarker' => '/* testParamPassByReference */', + 'expected' => true, ], - [ - '/* testArrowFunctionPassByReferenceA */', - true, + 'issue-1284-short-list-directly-after-close-curly-control-structure' => [ + 'testMarker' => '/* testTokenizerIssue1284PHPCSlt280A */', + 'expected' => true, ], - [ - '/* testArrowFunctionPassByReferenceB */', - true, + 'issue-1284-short-list-directly-after-close-curly-control-structure-second-item' => [ + 'testMarker' => '/* testTokenizerIssue1284PHPCSlt280B */', + 'expected' => true, ], - [ - '/* testClosureReturnByReference */', - true, + 'issue-1284-short-array-directly-after-close-curly-control-structure' => [ + 'testMarker' => '/* testTokenizerIssue1284PHPCSlt280C */', + 'expected' => true, ], ]; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/AbstractFilterTestCase.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/AbstractFilterTestCase.php new file mode 100644 index 000000000..15dd5bcbc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/AbstractFilterTestCase.php @@ -0,0 +1,227 @@ + + * @copyright 2023 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Filters; + +use PHP_CodeSniffer\Filters\Filter; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHPUnit\Framework\TestCase; +use RecursiveIteratorIterator; + +/** + * Base functionality and utilities for testing Filter classes. + */ +abstract class AbstractFilterTestCase extends TestCase +{ + + /** + * The Config object. + * + * @var \PHP_CodeSniffer\Config + */ + protected static $config; + + /** + * The Ruleset object. + * + * @var \PHP_CodeSniffer\Ruleset + */ + protected static $ruleset; + + + /** + * Initialize the config and ruleset objects. + * + * @beforeClass + * + * @return void + */ + public static function initializeConfigAndRuleset() + { + self::$config = new ConfigDouble(['--extensions=php,inc/php,js,css']); + self::$ruleset = new Ruleset(self::$config); + + }//end initializeConfigAndRuleset() + + + /** + * Helper method to retrieve a mock object for a Filter class. + * + * The `setMethods()` method was silently deprecated in PHPUnit 9 and removed in PHPUnit 10. + * + * Note: direct access to the `getMockBuilder()` method is soft deprecated as of PHPUnit 10, + * and expected to be hard deprecated in PHPUnit 11 and removed in PHPUnit 12. + * Dealing with that is something for a later iteration of the test suite. + * + * @param string $className Fully qualified name of the class under test. + * @param array $constructorArgs Optional. Array of parameters to pass to the class constructor. + * @param array|null $methodsToMock Optional. The methods to mock in the class under test. + * Needed for PHPUnit cross-version support as PHPUnit 4.x does + * not have a `setMethodsExcept()` method yet. + * If not passed, no methods will be replaced. + * + * @return \PHPUnit\Framework\MockObject\MockObject + */ + protected function getMockedClass($className, array $constructorArgs=[], $methodsToMock=null) + { + $mockedObj = $this->getMockBuilder($className); + + if (method_exists($mockedObj, 'onlyMethods') === true) { + // PHPUnit 8+. + if (is_array($methodsToMock) === true) { + return $mockedObj + ->setConstructorArgs($constructorArgs) + ->onlyMethods($methodsToMock) + ->getMock(); + } + + return $mockedObj->getMock() + ->setConstructorArgs($constructorArgs); + } + + // PHPUnit < 8. + return $mockedObj + ->setConstructorArgs($constructorArgs) + ->setMethods($methodsToMock) + ->getMock(); + + }//end getMockedClass() + + + /** + * Retrieve an array of files which were accepted by a filter. + * + * @param \PHP_CodeSniffer\Filters\Filter $filter The Filter object under test. + * + * @return array + */ + protected function getFilteredResultsAsArray(Filter $filter) + { + $iterator = new RecursiveIteratorIterator($filter); + $files = []; + foreach ($iterator as $file) { + $files[] = $file; + } + + return $files; + + }//end getFilteredResultsAsArray() + + + /** + * Retrieve the basedir to use for tests using the `getFakeFileList()` method. + * + * @return string + */ + protected static function getBaseDir() + { + return dirname(dirname(dirname(__DIR__))); + + }//end getBaseDir() + + + /** + * Retrieve a file list containing a range of paths for testing purposes. + * + * This list **must** contain files which exist in this project (well, except for some which don't exist + * purely for testing purposes), as `realpath()` is used in the logic under test and `realpath()` will + * return `false` for any non-existent files, which will automatically filter them out before + * we get to the code under test. + * + * Note this list does not include `.` and `..` as \PHP_CodeSniffer\Files\FileList uses `SKIP_DOTS`. + * + * @return array + */ + protected static function getFakeFileList() + { + $basedir = self::getBaseDir(); + return [ + $basedir.'/.gitignore', + $basedir.'/.yamllint.yml', + $basedir.'/phpcs.xml', + $basedir.'/phpcs.xml.dist', + $basedir.'/autoload.php', + $basedir.'/bin', + $basedir.'/bin/phpcs', + $basedir.'/bin/phpcs.bat', + $basedir.'/scripts', + $basedir.'/scripts/build-phar.php', + $basedir.'/src', + $basedir.'/src/WillNotExist.php', + $basedir.'/src/WillNotExist.bak', + $basedir.'/src/WillNotExist.orig', + $basedir.'/src/Ruleset.php', + $basedir.'/src/Generators', + $basedir.'/src/Generators/Markdown.php', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Generic', + $basedir.'/src/Standards/Generic/Docs', + $basedir.'/src/Standards/Generic/Docs/Classes', + $basedir.'/src/Standards/Generic/Docs/Classes/DuplicateClassNameStandard.xml', + $basedir.'/src/Standards/Generic/Sniffs', + $basedir.'/src/Standards/Generic/Sniffs/Classes', + $basedir.'/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + $basedir.'/src/Standards/Generic/Tests', + $basedir.'/src/Standards/Generic/Tests/Classes', + $basedir.'/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc', + // Will rarely exist when running the tests. + $basedir.'/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc.bak', + $basedir.'/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.2.inc', + $basedir.'/src/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.php', + $basedir.'/src/Standards/Squiz', + $basedir.'/src/Standards/Squiz/Docs', + $basedir.'/src/Standards/Squiz/Docs/WhiteSpace', + $basedir.'/src/Standards/Squiz/Docs/WhiteSpace/SemicolonSpacingStandard.xml', + $basedir.'/src/Standards/Squiz/Sniffs', + $basedir.'/src/Standards/Squiz/Sniffs/WhiteSpace', + $basedir.'/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php', + $basedir.'/src/Standards/Squiz/Tests', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc.fixed', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php', + ]; + + }//end getFakeFileList() + + + /** + * Translate Linux paths to Windows paths, when necessary. + * + * These type of tests should be able to run and pass on both *nix as well as Windows + * based dev systems. This method is a helper to allow for this. + * + * @param array $paths A single or multi-dimensional array containing + * file paths. + * + * @return array + */ + protected static function mapPathsToRuntimeOs(array $paths) + { + if (DIRECTORY_SEPARATOR !== '\\') { + return $paths; + } + + foreach ($paths as $key => $value) { + if (is_string($value) === true) { + $paths[$key] = strtr($value, '/', '\\\\'); + } else if (is_array($value) === true) { + $paths[$key] = self::mapPathsToRuntimeOs($value); + } + } + + return $paths; + + }//end mapPathsToRuntimeOs() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/Filter/AcceptTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/Filter/AcceptTest.php index 2c9f57cd3..8d622061d 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/Filter/AcceptTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/Filter/AcceptTest.php @@ -5,75 +5,47 @@ * @author Willington Vega * @author Juliette Reinders Folmer * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Filters\Filter; -use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Filters\Filter; use PHP_CodeSniffer\Ruleset; -use PHPUnit\Framework\TestCase; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHP_CodeSniffer\Tests\Core\Filters\AbstractFilterTestCase; +use RecursiveArrayIterator; -class AcceptTest extends TestCase +/** + * Tests for the \PHP_CodeSniffer\Filters\Filter::accept method. + * + * @covers \PHP_CodeSniffer\Filters\Filter + */ +final class AcceptTest extends AbstractFilterTestCase { - /** - * The Config object. - * - * @var \PHP_CodeSniffer\Config - */ - protected static $config; - - /** - * The Ruleset object. - * - * @var \PHP_CodeSniffer\Ruleset - */ - protected static $ruleset; - - - /** - * Initialize the test. - * - * @return void - */ - public function setUp() - { - if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === true) { - // PEAR installs test and sniff files into different locations - // so these tests will not pass as they directly reference files - // by relative location. - $this->markTestSkipped('Test cannot run from a PEAR install'); - } - - }//end setUp() - /** * Initialize the config and ruleset objects based on the `AcceptTest.xml` ruleset file. * + * @beforeClass + * * @return void */ - public static function setUpBeforeClass() + public static function initializeConfigAndRuleset() { - if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === true) { - // This test will be skipped. - return; - } - $standard = __DIR__.'/'.basename(__FILE__, '.php').'.xml'; - self::$config = new Config(["--standard=$standard", "--ignore=*/somethingelse/*"]); + self::$config = new ConfigDouble(["--standard=$standard", '--ignore=*/somethingelse/*']); self::$ruleset = new Ruleset(self::$config); - }//end setUpBeforeClass() + }//end initializeConfigAndRuleset() /** * Test filtering a file list for excluded paths. * - * @param array $inputPaths List of file paths to be filtered. - * @param array $expectedOutput Expected filtering result. + * @param array $inputPaths List of file paths to be filtered. + * @param array $expectedOutput Expected filtering result. * * @dataProvider dataExcludePatterns * @@ -81,16 +53,10 @@ public static function setUpBeforeClass() */ public function testExcludePatterns($inputPaths, $expectedOutput) { - $fakeDI = new \RecursiveArrayIterator($inputPaths); - $filter = new Filter($fakeDI, '/', self::$config, self::$ruleset); - $iterator = new \RecursiveIteratorIterator($filter); - $files = []; - - foreach ($iterator as $file) { - $files[] = $file; - } + $fakeDI = new RecursiveArrayIterator($inputPaths); + $filter = new Filter($fakeDI, '/', self::$config, self::$ruleset); - $this->assertEquals($expectedOutput, $files); + $this->assertEquals($expectedOutput, $this->getFilteredResultsAsArray($filter)); }//end testExcludePatterns() @@ -100,34 +66,34 @@ public function testExcludePatterns($inputPaths, $expectedOutput) * * @see testExcludePatterns * - * @return array + * @return array>> */ - public function dataExcludePatterns() + public static function dataExcludePatterns() { $testCases = [ // Test top-level exclude patterns. - [ - [ + 'Non-sniff specific path based excludes from ruleset and command line are respected and don\'t filter out too much' => [ + 'inputPaths' => [ '/path/to/src/Main.php', '/path/to/src/Something/Main.php', '/path/to/src/Somethingelse/Main.php', '/path/to/src/SomethingelseEvenLonger/Main.php', '/path/to/src/Other/Main.php', ], - [ + 'expectedOutput' => [ '/path/to/src/Main.php', '/path/to/src/SomethingelseEvenLonger/Main.php', ], ], // Test ignoring standard/sniff specific exclude patterns. - [ - [ + 'Filter should not act on standard/sniff specific exclude patterns' => [ + 'inputPaths' => [ '/path/to/src/generic-project/Main.php', '/path/to/src/generic/Main.php', '/path/to/src/anything-generic/Main.php', ], - [ + 'expectedOutput' => [ '/path/to/src/generic-project/Main.php', '/path/to/src/generic/Main.php', '/path/to/src/anything-generic/Main.php', @@ -136,17 +102,7 @@ public function dataExcludePatterns() ]; // Allow these tests to work on Windows as well. - if (DIRECTORY_SEPARATOR === '\\') { - foreach ($testCases as $key => $case) { - foreach ($case as $nr => $param) { - foreach ($param as $file => $value) { - $testCases[$key][$nr][$file] = strtr($value, '/', '\\'); - } - } - } - } - - return $testCases; + return self::mapPathsToRuntimeOs($testCases); }//end dataExcludePatterns() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/GitModifiedTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/GitModifiedTest.php new file mode 100644 index 000000000..2fe894096 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/GitModifiedTest.php @@ -0,0 +1,268 @@ + + * @copyright 2023 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Filters; + +use PHP_CodeSniffer\Filters\GitModified; +use PHP_CodeSniffer\Tests\Core\Filters\AbstractFilterTestCase; +use RecursiveArrayIterator; +use ReflectionMethod; + +/** + * Tests for the \PHP_CodeSniffer\Filters\GitModified class. + * + * @covers \PHP_CodeSniffer\Filters\GitModified + */ +final class GitModifiedTest extends AbstractFilterTestCase +{ + + + /** + * Test filtering a file list for excluded paths. + * + * @return void + */ + public function testFileNamePassesAsBasePathWillTranslateToDirname() + { + $rootFile = self::getBaseDir().'/autoload.php'; + + $fakeDI = new RecursiveArrayIterator(self::getFakeFileList()); + $constructorArgs = [ + $fakeDI, + $rootFile, + self::$config, + self::$ruleset, + ]; + $mockObj = $this->getMockedClass('PHP_CodeSniffer\Filters\GitModified', $constructorArgs, ['exec']); + + $mockObj->expects($this->once()) + ->method('exec') + ->willReturn(['autoload.php']); + + $this->assertEquals([$rootFile], $this->getFilteredResultsAsArray($mockObj)); + + }//end testFileNamePassesAsBasePathWillTranslateToDirname() + + + /** + * Test filtering a file list for excluded paths. + * + * @param array $inputPaths List of file paths to be filtered. + * @param array $outputGitModified Simulated "git modified" output. + * @param array $expectedOutput Expected filtering result. + * + * @dataProvider dataAcceptOnlyGitModified + * + * @return void + */ + public function testAcceptOnlyGitModified($inputPaths, $outputGitModified, $expectedOutput) + { + $fakeDI = new RecursiveArrayIterator($inputPaths); + $constructorArgs = [ + $fakeDI, + self::getBaseDir(), + self::$config, + self::$ruleset, + ]; + $mockObj = $this->getMockedClass('PHP_CodeSniffer\Filters\GitModified', $constructorArgs, ['exec']); + + $mockObj->expects($this->once()) + ->method('exec') + ->willReturn($outputGitModified); + + $this->assertEquals($expectedOutput, $this->getFilteredResultsAsArray($mockObj)); + + }//end testAcceptOnlyGitModified() + + + /** + * Data provider. + * + * @see testAcceptOnlyGitModified + * + * @return array>> + */ + public static function dataAcceptOnlyGitModified() + { + $basedir = self::getBaseDir(); + $fakeFileList = self::getFakeFileList(); + + $testCases = [ + 'no files marked as git modified' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [], + 'expectedOutput' => [], + ], + + 'files marked as git modified which don\'t actually exist' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [ + 'src/WillNotExist.php', + 'src/WillNotExist.bak', + 'src/WillNotExist.orig', + ], + 'expectedOutput' => [], + ], + + 'single file marked as git modified - file in root dir' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [ + 'autoload.php', + ], + 'expectedOutput' => [ + $basedir.'/autoload.php', + ], + ], + 'single file marked as git modified - file in sub dir' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [ + 'src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + 'expectedOutput' => [ + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Generic', + $basedir.'/src/Standards/Generic/Sniffs', + $basedir.'/src/Standards/Generic/Sniffs/Classes', + $basedir.'/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + ], + + 'multiple files marked as git modified, none valid for scan' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [ + '.gitignore', + 'phpcs.xml.dist', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed', + ], + 'expectedOutput' => [ + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Squiz', + $basedir.'/src/Standards/Squiz/Tests', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace', + ], + ], + + 'multiple files marked as git modified, only one file valid for scan' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [ + '.gitignore', + 'src/Standards/Generic/Docs/Classes/DuplicateClassNameStandard.xml', + 'src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + 'expectedOutput' => [ + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Generic', + $basedir.'/src/Standards/Generic/Docs', + $basedir.'/src/Standards/Generic/Docs/Classes', + $basedir.'/src/Standards/Generic/Sniffs', + $basedir.'/src/Standards/Generic/Sniffs/Classes', + $basedir.'/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + ], + + 'multiple files marked as git modified, multiple files valid for scan' => [ + 'inputPaths' => $fakeFileList, + 'outputGitModified' => [ + '.yamllint.yml', + 'autoload.php', + 'src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc.fixed', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php', + ], + 'expectedOutput' => [ + $basedir.'/autoload.php', + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Squiz', + $basedir.'/src/Standards/Squiz/Sniffs', + $basedir.'/src/Standards/Squiz/Sniffs/WhiteSpace', + $basedir.'/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php', + $basedir.'/src/Standards/Squiz/Tests', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php', + ], + ], + ]; + + return $testCases; + + }//end dataAcceptOnlyGitModified() + + + /** + * Test filtering a file list for excluded paths. + * + * @param string $cmd Command to run. + * @param array $expected Expected return value. + * + * @dataProvider dataExecAlwaysReturnsArray + * + * @return void + */ + public function testExecAlwaysReturnsArray($cmd, $expected) + { + if (is_dir(__DIR__.'/../../../.git') === false) { + $this->markTestSkipped('Not a git repository'); + } + + $fakeDI = new RecursiveArrayIterator(self::getFakeFileList()); + $filter = new GitModified($fakeDI, '/', self::$config, self::$ruleset); + + $reflMethod = new ReflectionMethod($filter, 'exec'); + $reflMethod->setAccessible(true); + $result = $reflMethod->invoke($filter, $cmd); + + $this->assertSame($expected, $result); + + }//end testExecAlwaysReturnsArray() + + + /** + * Data provider. + * + * @see testExecAlwaysReturnsArray + * + * {@internal Missing: test with a command which yields a `false` return value. + * JRF: I've not managed to find a command which does so, let alone one, which then + * doesn't have side-effects of uncatchable output while running the tests.} + * + * @return array>> + */ + public static function dataExecAlwaysReturnsArray() + { + return [ + 'valid command which won\'t have any output unless files in the bin dir have been modified' => [ + // Largely using the command used in the filter, but only checking the bin dir. + // This should prevent the test unexpectedly failing during local development (in most cases). + 'cmd' => 'git ls-files -o -m --exclude-standard -- '.escapeshellarg(self::getBaseDir().'/bin'), + 'expected' => [], + ], + 'valid command which will have output' => [ + 'cmd' => 'git ls-files --exclude-standard -- '.escapeshellarg(self::getBaseDir().'/bin'), + 'expected' => [ + 'bin/phpcbf', + 'bin/phpcbf.bat', + 'bin/phpcs', + 'bin/phpcs.bat', + ], + ], + ]; + + }//end dataExecAlwaysReturnsArray() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/GitStagedTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/GitStagedTest.php new file mode 100644 index 000000000..0da18af9a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Filters/GitStagedTest.php @@ -0,0 +1,268 @@ + + * @copyright 2023 PHPCSStandards Contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Filters; + +use PHP_CodeSniffer\Filters\GitStaged; +use PHP_CodeSniffer\Tests\Core\Filters\AbstractFilterTestCase; +use RecursiveArrayIterator; +use ReflectionMethod; + +/** + * Tests for the \PHP_CodeSniffer\Filters\GitStaged class. + * + * @covers \PHP_CodeSniffer\Filters\GitStaged + */ +final class GitStagedTest extends AbstractFilterTestCase +{ + + + /** + * Test filtering a file list for excluded paths. + * + * @return void + */ + public function testFileNamePassesAsBasePathWillTranslateToDirname() + { + $rootFile = self::getBaseDir().'/autoload.php'; + + $fakeDI = new RecursiveArrayIterator(self::getFakeFileList()); + $constructorArgs = [ + $fakeDI, + $rootFile, + self::$config, + self::$ruleset, + ]; + $mockObj = $this->getMockedClass('PHP_CodeSniffer\Filters\GitStaged', $constructorArgs, ['exec']); + + $mockObj->expects($this->once()) + ->method('exec') + ->willReturn(['autoload.php']); + + $this->assertEquals([$rootFile], $this->getFilteredResultsAsArray($mockObj)); + + }//end testFileNamePassesAsBasePathWillTranslateToDirname() + + + /** + * Test filtering a file list for excluded paths. + * + * @param array $inputPaths List of file paths to be filtered. + * @param array $outputGitStaged Simulated "git staged" output. + * @param array $expectedOutput Expected filtering result. + * + * @dataProvider dataAcceptOnlyGitStaged + * + * @return void + */ + public function testAcceptOnlyGitStaged($inputPaths, $outputGitStaged, $expectedOutput) + { + $fakeDI = new RecursiveArrayIterator($inputPaths); + $constructorArgs = [ + $fakeDI, + self::getBaseDir(), + self::$config, + self::$ruleset, + ]; + $mockObj = $this->getMockedClass('PHP_CodeSniffer\Filters\GitStaged', $constructorArgs, ['exec']); + + $mockObj->expects($this->once()) + ->method('exec') + ->willReturn($outputGitStaged); + + $this->assertEquals($expectedOutput, $this->getFilteredResultsAsArray($mockObj)); + + }//end testAcceptOnlyGitStaged() + + + /** + * Data provider. + * + * @see testAcceptOnlyGitStaged + * + * @return array>> + */ + public static function dataAcceptOnlyGitStaged() + { + $basedir = self::getBaseDir(); + $fakeFileList = self::getFakeFileList(); + + $testCases = [ + 'no files marked as git modified' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [], + 'expectedOutput' => [], + ], + + 'files marked as git modified which don\'t actually exist' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [ + 'src/WillNotExist.php', + 'src/WillNotExist.bak', + 'src/WillNotExist.orig', + ], + 'expectedOutput' => [], + ], + + 'single file marked as git modified - file in root dir' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [ + 'autoload.php', + ], + 'expectedOutput' => [ + $basedir.'/autoload.php', + ], + ], + 'single file marked as git modified - file in sub dir' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [ + 'src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + 'expectedOutput' => [ + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Generic', + $basedir.'/src/Standards/Generic/Sniffs', + $basedir.'/src/Standards/Generic/Sniffs/Classes', + $basedir.'/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + ], + + 'multiple files marked as git modified, none valid for scan' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [ + '.gitignore', + 'phpcs.xml.dist', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed', + ], + 'expectedOutput' => [ + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Squiz', + $basedir.'/src/Standards/Squiz/Tests', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace', + ], + ], + + 'multiple files marked as git modified, only one file valid for scan' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [ + '.gitignore', + 'src/Standards/Generic/Docs/Classes/DuplicateClassNameStandard.xml', + 'src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + 'expectedOutput' => [ + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Generic', + $basedir.'/src/Standards/Generic/Docs', + $basedir.'/src/Standards/Generic/Docs/Classes', + $basedir.'/src/Standards/Generic/Sniffs', + $basedir.'/src/Standards/Generic/Sniffs/Classes', + $basedir.'/src/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php', + ], + ], + + 'multiple files marked as git modified, multiple files valid for scan' => [ + 'inputPaths' => $fakeFileList, + 'outputGitStaged' => [ + '.yamllint.yml', + 'autoload.php', + 'src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc.fixed', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js.fixed', + 'src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php', + ], + 'expectedOutput' => [ + $basedir.'/autoload.php', + $basedir.'/src', + $basedir.'/src/Standards', + $basedir.'/src/Standards/Squiz', + $basedir.'/src/Standards/Squiz/Sniffs', + $basedir.'/src/Standards/Squiz/Sniffs/WhiteSpace', + $basedir.'/src/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php', + $basedir.'/src/Standards/Squiz/Tests', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.1.inc', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js', + $basedir.'/src/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php', + ], + ], + ]; + + return $testCases; + + }//end dataAcceptOnlyGitStaged() + + + /** + * Test filtering a file list for excluded paths. + * + * @param string $cmd Command to run. + * @param array $expected Expected return value. + * + * @dataProvider dataExecAlwaysReturnsArray + * + * @return void + */ + public function testExecAlwaysReturnsArray($cmd, $expected) + { + if (is_dir(__DIR__.'/../../../.git') === false) { + $this->markTestSkipped('Not a git repository'); + } + + $fakeDI = new RecursiveArrayIterator(self::getFakeFileList()); + $filter = new GitStaged($fakeDI, '/', self::$config, self::$ruleset); + + $reflMethod = new ReflectionMethod($filter, 'exec'); + $reflMethod->setAccessible(true); + $result = $reflMethod->invoke($filter, $cmd); + + $this->assertSame($expected, $result); + + }//end testExecAlwaysReturnsArray() + + + /** + * Data provider. + * + * @see testExecAlwaysReturnsArray + * + * {@internal Missing: test with a command which yields a `false` return value. + * JRF: I've not managed to find a command which does so, let alone one, which then + * doesn't have side-effects of uncatchable output while running the tests.} + * + * @return array>> + */ + public static function dataExecAlwaysReturnsArray() + { + return [ + 'valid command which won\'t have any output unless files in the bin dir have been modified & staged' => [ + // Largely using the command used in the filter, but only checking the bin dir. + // This should prevent the test unexpectedly failing during local development (in most cases). + 'cmd' => 'git diff --cached --name-only -- '.escapeshellarg(self::getBaseDir().'/bin'), + 'expected' => [], + ], + 'valid command which will have output' => [ + 'cmd' => 'git ls-files --exclude-standard -- '.escapeshellarg(self::getBaseDir().'/bin'), + 'expected' => [ + 'bin/phpcbf', + 'bin/phpcbf.bat', + 'bin/phpcs', + 'bin/phpcs.bat', + ], + ], + ]; + + }//end dataExecAlwaysReturnsArray() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.diff b/api/vendor/squizlabs/php_codesniffer/tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.diff new file mode 100644 index 000000000..b9a217ed2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.diff @@ -0,0 +1,10 @@ +--- tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.inc ++++ PHP_CodeSniffer +@@ -5,7 +5,3 @@ + if ($var) { + echo 'This line is tab indented'; + } +- +- +- +- diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.inc new file mode 100644 index 000000000..2e65b2b50 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Fixer/Fixtures/GenerateDiffTest-BlankLinesAtEnd.inc @@ -0,0 +1,11 @@ + + * @copyright 2024 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Fixer; + +use PHP_CodeSniffer\Files\LocalFile; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHPUnit\Framework\TestCase; + +/** + * Tests for diff generation. + * + * Note: these tests are specifically about the Fixer::generateDiff() method and do not + * test running the fixer itself, nor generating a diff based on a fixer run. + * + * @covers PHP_CodeSniffer\Fixer::generateDiff + */ +final class GenerateDiffTest extends TestCase +{ + + /** + * A \PHP_CodeSniffer\Files\File object to compare the files against. + * + * @var \PHP_CodeSniffer\Files\LocalFile + */ + private static $phpcsFile; + + + /** + * Initialize an \PHP_CodeSniffer\Files\File object with code. + * + * Things to take note of in the code snippet used for these tests: + * - Line endings are \n. + * - Tab indent. + * - Trailing whitespace. + * + * Also note that the Config object is deliberately created without a `tabWidth` setting to + * prevent doing tab replacement when parsing the file. This is to allow for testing a + * diff with tabs vs spaces (which wouldn't yield a diff if tabs had already been replaced). + * + * @beforeClass + * + * @return void + */ + public static function initializeFile() + { + $config = new ConfigDouble(); + $ruleset = new Ruleset($config); + + self::$phpcsFile = new LocalFile(__DIR__.'/Fixtures/GenerateDiffTest.inc', $ruleset, $config); + self::$phpcsFile->parse(); + self::$phpcsFile->fixer->startFile(self::$phpcsFile); + + }//end initializeFile() + + + /** + * Test generating a diff on the file object itself. + * + * @return void + */ + public function testGenerateDiffNoFile() + { + $diff = self::$phpcsFile->fixer->generateDiff(null, false); + + $this->assertSame('', $diff); + + }//end testGenerateDiffNoFile() + + + /** + * Test generating a diff between a PHPCS File object and a file on disk. + * + * @param string $filePath The path to the file to compare the File object against. + * + * @dataProvider dataGenerateDiff + * + * @return void + */ + public function testGenerateDiff($filePath) + { + $diff = self::$phpcsFile->fixer->generateDiff($filePath, false); + + // Allow for the tests to pass on Windows too. + $diff = str_replace('--- tests\Core\Fixer/', '--- tests/Core/Fixer/', $diff); + + $expectedDiffFile = str_replace('.inc', '.diff', $filePath); + + $this->assertStringEqualsFile($expectedDiffFile, $diff); + + }//end testGenerateDiff() + + + /** + * Data provider. + * + * @see testGenerateDiff() + * + * @return array> + */ + public static function dataGenerateDiff() + { + return [ + 'no difference' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-NoDiff.inc', + ], + 'line removed' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-LineRemoved.inc', + ], + 'line added' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-LineAdded.inc', + ], + 'var name changed' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-VarNameChanged.inc', + ], + 'trailing whitespace removed' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-NoTrailingWhitespace.inc', + ], + 'tab replaced with spaces' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-TabsToSpaces.inc', + ], + 'blank lines at start of file' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-BlankLinesAtStart.inc', + ], + 'whitespace diff at start of file' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-WhiteSpaceAtStart.inc', + ], + 'blank lines at end of file' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-BlankLinesAtEnd.inc', + ], + 'whitespace diff at end of file' => [ + 'filePath' => __DIR__.'/Fixtures/GenerateDiffTest-WhiteSpaceAtEnd.inc', + ], + ]; + + }//end dataGenerateDiff() + + + /** + * Test generating a diff between a PHPCS File object and a file on disk and colourizing the output. + * + * @return void + */ + public function testGenerateDiffColoured() + { + $expected = "\033[31m--- tests/Core/Fixer/Fixtures/GenerateDiffTest-VarNameChanged.inc\033[0m".PHP_EOL; + $expected .= "\033[32m+++ PHP_CodeSniffer\033[0m".PHP_EOL; + $expected .= '@@ -1,7 +1,7 @@'.PHP_EOL; + $expected .= ' fixer->generateDiff($filePath); + + // Allow for the tests to pass on Windows too. + $diff = str_replace('--- tests\Core\Fixer/', '--- tests/Core/Fixer/', $diff); + + $this->assertSame($expected, $diff); + + }//end testGenerateDiffColoured() + + + /** + * Test generating a diff between a PHPCS File object using *nix line endings and a file on disk + * using Windows line endings. + * + * The point of this test is to verify that all lines are marked as having a difference. + * The actual lines endings used in the diff shown to the end-user are not relevant for this + * test. + * As the "diff" command is finicky with what type of line endings are used when the only + * difference on a line is the line ending, the test normalizes the line endings of the + * received diff before testing it. + * + * @return void + */ + public function testGenerateDiffDifferentLineEndings() + { + // By the looks of it, if the only diff between two files is line endings, the + // diff generated by the *nix "diff" command will always contain *nix line endings. + $expected = '--- tests/Core/Fixer/Fixtures/GenerateDiffTest-WindowsLineEndings.inc'."\n"; + $expected .= '+++ PHP_CodeSniffer'."\n"; + $expected .= '@@ -1,7 +1,7 @@'."\n"; + $expected .= '-fixer->generateDiff($filePath, false); + + // Allow for the tests to pass on Windows too. + $diff = str_replace('--- tests\Core\Fixer/', '--- tests/Core/Fixer/', $diff); + + // Normalize line endings of the diff. + $diff = preg_replace('`\R`', "\n", $diff); + + $this->assertSame($expected, $diff); + + }//end testGenerateDiffDifferentLineEndings() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainCustomRulesetTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainCustomRulesetTest.xml new file mode 100644 index 000000000..cbca4fd51 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainCustomRulesetTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainSingleSniffTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainSingleSniffTest.xml new file mode 100644 index 000000000..159b7efa8 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainSingleSniffTest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainTest.php new file mode 100644 index 000000000..fc84f88ac --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ExplainTest.php @@ -0,0 +1,258 @@ + + * @copyright 2023 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Ruleset; + +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Runner; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHPUnit\Framework\TestCase; + +/** + * Test the Ruleset::explain() function. + * + * @covers \PHP_CodeSniffer\Ruleset::explain + */ +final class ExplainTest extends TestCase +{ + + + /** + * Test the output of the "explain" command. + * + * @return void + */ + public function testExplain() + { + // Set up the ruleset. + $config = new ConfigDouble(['--standard=PSR1', '-e']); + $ruleset = new Ruleset($config); + + $expected = PHP_EOL; + $expected .= 'The PSR1 standard contains 8 sniffs'.PHP_EOL.PHP_EOL; + $expected .= 'Generic (4 sniffs)'.PHP_EOL; + $expected .= '------------------'.PHP_EOL; + $expected .= ' Generic.Files.ByteOrderMark'.PHP_EOL; + $expected .= ' Generic.NamingConventions.UpperCaseConstantName'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowAlternativePHPTags'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowShortOpenTag'.PHP_EOL.PHP_EOL; + $expected .= 'PSR1 (3 sniffs)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' PSR1.Classes.ClassDeclaration'.PHP_EOL; + $expected .= ' PSR1.Files.SideEffects'.PHP_EOL; + $expected .= ' PSR1.Methods.CamelCapsMethodName'.PHP_EOL.PHP_EOL; + $expected .= 'Squiz (1 sniff)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' Squiz.Classes.ValidClassName'.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->explain(); + + }//end testExplain() + + + /** + * Test the output of the "explain" command is not influenced by a user set report width. + * + * @return void + */ + public function testExplainAlwaysDisplaysCompleteSniffName() + { + // Set up the ruleset. + $config = new ConfigDouble(['--standard=PSR1', '-e', '--report-width=30']); + $ruleset = new Ruleset($config); + + $expected = PHP_EOL; + $expected .= 'The PSR1 standard contains 8 sniffs'.PHP_EOL.PHP_EOL; + $expected .= 'Generic (4 sniffs)'.PHP_EOL; + $expected .= '------------------'.PHP_EOL; + $expected .= ' Generic.Files.ByteOrderMark'.PHP_EOL; + $expected .= ' Generic.NamingConventions.UpperCaseConstantName'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowAlternativePHPTags'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowShortOpenTag'.PHP_EOL.PHP_EOL; + $expected .= 'PSR1 (3 sniffs)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' PSR1.Classes.ClassDeclaration'.PHP_EOL; + $expected .= ' PSR1.Files.SideEffects'.PHP_EOL; + $expected .= ' PSR1.Methods.CamelCapsMethodName'.PHP_EOL.PHP_EOL; + $expected .= 'Squiz (1 sniff)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' Squiz.Classes.ValidClassName'.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->explain(); + + }//end testExplainAlwaysDisplaysCompleteSniffName() + + + /** + * Test the output of the "explain" command when a ruleset only contains a single sniff. + * + * This is mostly about making sure that the summary line uses the correct grammar. + * + * @return void + */ + public function testExplainSingleSniff() + { + // Set up the ruleset. + $standard = __DIR__.'/ExplainSingleSniffTest.xml'; + $config = new ConfigDouble(["--standard=$standard", '-e']); + $ruleset = new Ruleset($config); + + $expected = PHP_EOL; + $expected .= 'The ExplainSingleSniffTest standard contains 1 sniff'.PHP_EOL.PHP_EOL; + $expected .= 'Squiz (1 sniff)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' Squiz.Scope.MethodScope'.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->explain(); + + }//end testExplainSingleSniff() + + + /** + * Test that "explain" works correctly with custom rulesets. + * + * Verifies that: + * - The "standard" name is taken from the custom ruleset. + * - Any and all sniff additions and exclusions in the ruleset are taken into account correctly. + * - That the displayed list will have both the standards as well as the sniff names + * ordered alphabetically. + * + * @return void + */ + public function testExplainCustomRuleset() + { + // Set up the ruleset. + $standard = __DIR__.'/ExplainCustomRulesetTest.xml'; + $config = new ConfigDouble(["--standard=$standard", '-e']); + $ruleset = new Ruleset($config); + + $expected = PHP_EOL; + $expected .= 'The ExplainCustomRulesetTest standard contains 10 sniffs'.PHP_EOL.PHP_EOL; + $expected .= 'Generic (4 sniffs)'.PHP_EOL; + $expected .= '------------------'.PHP_EOL; + $expected .= ' Generic.Files.ByteOrderMark'.PHP_EOL; + $expected .= ' Generic.NamingConventions.UpperCaseConstantName'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowAlternativePHPTags'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowShortOpenTag'.PHP_EOL.PHP_EOL; + $expected .= 'PSR1 (2 sniffs)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' PSR1.Classes.ClassDeclaration'.PHP_EOL; + $expected .= ' PSR1.Methods.CamelCapsMethodName'.PHP_EOL.PHP_EOL; + $expected .= 'PSR12 (2 sniffs)'.PHP_EOL; + $expected .= '----------------'.PHP_EOL; + $expected .= ' PSR12.ControlStructures.BooleanOperatorPlacement'.PHP_EOL; + $expected .= ' PSR12.ControlStructures.ControlStructureSpacing'.PHP_EOL.PHP_EOL; + $expected .= 'Squiz (2 sniffs)'.PHP_EOL; + $expected .= '----------------'.PHP_EOL; + $expected .= ' Squiz.Classes.ValidClassName'.PHP_EOL; + $expected .= ' Squiz.Scope.MethodScope'.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->explain(); + + }//end testExplainCustomRuleset() + + + /** + * Test the output of the "explain" command for a standard containing both deprecated + * and non-deprecated sniffs. + * + * Tests that: + * - Deprecated sniffs are marked with an asterix in the list. + * - A footnote is displayed explaining the asterix. + * - And that the "standard uses # deprecated sniffs" listing is **not** displayed. + * + * @return void + */ + public function testExplainWithDeprecatedSniffs() + { + // Set up the ruleset. + $standard = __DIR__."/ShowSniffDeprecationsTest.xml"; + $config = new ConfigDouble(["--standard=$standard", '-e']); + $ruleset = new Ruleset($config); + + $expected = PHP_EOL; + $expected .= 'The SniffDeprecationTest standard contains 9 sniffs'.PHP_EOL.PHP_EOL; + + $expected .= 'Fixtures (9 sniffs)'.PHP_EOL; + $expected .= '-------------------'.PHP_EOL; + $expected .= ' Fixtures.Deprecated.WithLongReplacement *'.PHP_EOL; + $expected .= ' Fixtures.Deprecated.WithoutReplacement *'.PHP_EOL; + $expected .= ' Fixtures.Deprecated.WithReplacement *'.PHP_EOL; + $expected .= ' Fixtures.Deprecated.WithReplacementContainingLinuxNewlines *'.PHP_EOL; + $expected .= ' Fixtures.Deprecated.WithReplacementContainingNewlines *'.PHP_EOL; + $expected .= ' Fixtures.SetProperty.AllowedAsDeclared'.PHP_EOL; + $expected .= ' Fixtures.SetProperty.AllowedViaMagicMethod'.PHP_EOL; + $expected .= ' Fixtures.SetProperty.AllowedViaStdClass'.PHP_EOL; + $expected .= ' Fixtures.SetProperty.NotAllowedViaAttribute'.PHP_EOL.PHP_EOL; + + $expected .= '* Sniffs marked with an asterix are deprecated.'.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->explain(); + + }//end testExplainWithDeprecatedSniffs() + + + /** + * Test that each standard passed on the command-line is explained separately. + * + * @covers \PHP_CodeSniffer\Runner::runPHPCS + * + * @return void + */ + public function testExplainWillExplainEachStandardSeparately() + { + $standard = __DIR__.'/ExplainSingleSniffTest.xml'; + $_SERVER['argv'] = [ + 'phpcs', + '-e', + "--standard=PSR1,$standard", + '--report-width=80', + ]; + + $expected = PHP_EOL; + $expected .= 'The PSR1 standard contains 8 sniffs'.PHP_EOL.PHP_EOL; + $expected .= 'Generic (4 sniffs)'.PHP_EOL; + $expected .= '------------------'.PHP_EOL; + $expected .= ' Generic.Files.ByteOrderMark'.PHP_EOL; + $expected .= ' Generic.NamingConventions.UpperCaseConstantName'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowAlternativePHPTags'.PHP_EOL; + $expected .= ' Generic.PHP.DisallowShortOpenTag'.PHP_EOL.PHP_EOL; + $expected .= 'PSR1 (3 sniffs)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' PSR1.Classes.ClassDeclaration'.PHP_EOL; + $expected .= ' PSR1.Files.SideEffects'.PHP_EOL; + $expected .= ' PSR1.Methods.CamelCapsMethodName'.PHP_EOL.PHP_EOL; + $expected .= 'Squiz (1 sniff)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' Squiz.Classes.ValidClassName'.PHP_EOL.PHP_EOL; + + $expected .= 'The ExplainSingleSniffTest standard contains 1 sniff'.PHP_EOL.PHP_EOL; + $expected .= 'Squiz (1 sniff)'.PHP_EOL; + $expected .= '---------------'.PHP_EOL; + $expected .= ' Squiz.Scope.MethodScope'.PHP_EOL; + + $this->expectOutputString($expected); + + $runner = new Runner(); + $exitCode = $runner->runPHPCS(); + + }//end testExplainWillExplainEachStandardSeparately() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/Fixtures/Sniffs/Deprecated/WithLongReplacementSniff.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/Fixtures/Sniffs/Deprecated/WithLongReplacementSniff.php new file mode 100644 index 000000000..40c23113d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/Fixtures/Sniffs/Deprecated/WithLongReplacementSniff.php @@ -0,0 +1,41 @@ +magic[$name] = $value; + } + + public function __get($name) + { + if (isset($this->magic[$name])) { + return $this->magic[$name]; + } + + return null; + } + + public function register() + { + return [T_WHITESPACE]; + } + + public function process(File $phpcsFile, $stackPtr) + { + // Do something. + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/Fixtures/Sniffs/SetProperty/AllowedViaStdClassSniff.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/Fixtures/Sniffs/SetProperty/AllowedViaStdClassSniff.php new file mode 100644 index 000000000..30418729d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/Fixtures/Sniffs/SetProperty/AllowedViaStdClassSniff.php @@ -0,0 +1,26 @@ + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.php index 8b138e0b0..1955ce2a4 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.php @@ -4,16 +4,21 @@ * * @author Juliette Reinders Folmer * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Ruleset; -use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; use PHPUnit\Framework\TestCase; -class RuleInclusionAbsoluteLinuxTest extends TestCase +/** + * Tests for the \PHP_CodeSniffer\Ruleset class using a Linux-style absolute path to include a sniff. + * + * @covers \PHP_CodeSniffer\Ruleset + */ +final class RuleInclusionAbsoluteLinuxTest extends TestCase { /** @@ -41,17 +46,12 @@ class RuleInclusionAbsoluteLinuxTest extends TestCase /** * Initialize the config and ruleset objects. * + * @before + * * @return void */ - public function setUp() + public function initializeConfigAndRuleset() { - if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === true) { - // PEAR installs test and sniff files into different locations - // so these tests will not pass as they directly reference files - // by relative location. - $this->markTestSkipped('Test cannot run from a PEAR install'); - } - $this->standard = __DIR__.'/'.basename(__FILE__, '.php').'.xml'; $repoRootDir = dirname(dirname(dirname(__DIR__))); @@ -71,22 +71,24 @@ public function setUp() } // Initialize the config and ruleset objects for the test. - $config = new Config(["--standard={$this->standard}"]); + $config = new ConfigDouble(["--standard={$this->standard}"]); $this->ruleset = new Ruleset($config); - }//end setUp() + }//end initializeConfigAndRuleset() /** * Reset ruleset file. * + * @after + * * @return void */ - public function tearDown() + public function resetRuleset() { file_put_contents($this->standard, $this->contents); - }//end tearDown() + }//end resetRuleset() /** @@ -98,7 +100,6 @@ public function tearDown() public function testLinuxStylePathRuleInclusion() { // Test that the sniff is correctly registered. - $this->assertObjectHasAttribute('sniffCodes', $this->ruleset); $this->assertCount(1, $this->ruleset->sniffCodes); $this->assertArrayHasKey('Generic.Formatting.SpaceAfterNot', $this->ruleset->sniffCodes); $this->assertSame( diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.xml index 64d1aae68..2978cef9f 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.xml +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteLinuxTest.xml @@ -1,5 +1,5 @@ - + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.php index f8e3255b8..cba45ee39 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.php @@ -4,16 +4,21 @@ * * @author Juliette Reinders Folmer * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Ruleset; -use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; use PHPUnit\Framework\TestCase; -class RuleInclusionAbsoluteWindowsTest extends TestCase +/** + * Tests for the \PHP_CodeSniffer\Ruleset class using a Windows-style absolute path to include a sniff. + * + * @covers \PHP_CodeSniffer\Ruleset + */ +final class RuleInclusionAbsoluteWindowsTest extends TestCase { /** @@ -41,21 +46,16 @@ class RuleInclusionAbsoluteWindowsTest extends TestCase /** * Initialize the config and ruleset objects. * + * @before + * * @return void */ - public function setUp() + public function initializeConfigAndRuleset() { if (DIRECTORY_SEPARATOR === '/') { $this->markTestSkipped('Windows specific test'); } - if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === true) { - // PEAR installs test and sniff files into different locations - // so these tests will not pass as they directly reference files - // by relative location. - $this->markTestSkipped('Test cannot run from a PEAR install'); - } - $this->standard = __DIR__.'/'.basename(__FILE__, '.php').'.xml'; $repoRootDir = dirname(dirname(dirname(__DIR__))); @@ -70,24 +70,26 @@ public function setUp() } // Initialize the config and ruleset objects for the test. - $config = new Config(["--standard={$this->standard}"]); + $config = new ConfigDouble(["--standard={$this->standard}"]); $this->ruleset = new Ruleset($config); - }//end setUp() + }//end initializeConfigAndRuleset() /** * Reset ruleset file. * + * @after + * * @return void */ - public function tearDown() + public function resetRuleset() { if (DIRECTORY_SEPARATOR !== '/') { file_put_contents($this->standard, $this->contents); } - }//end tearDown() + }//end resetRuleset() /** @@ -99,7 +101,6 @@ public function tearDown() public function testWindowsStylePathRuleInclusion() { // Test that the sniff is correctly registered. - $this->assertObjectHasAttribute('sniffCodes', $this->ruleset); $this->assertCount(1, $this->ruleset->sniffCodes); $this->assertArrayHasKey('Generic.Formatting.SpaceAfterCast', $this->ruleset->sniffCodes); $this->assertSame( diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.xml index 15710d209..e92c68842 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.xml +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionAbsoluteWindowsTest.xml @@ -1,5 +1,5 @@ - + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest-include.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest-include.xml index ca116d45e..d95af20d9 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest-include.xml +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest-include.xml @@ -1,5 +1,5 @@ - + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.php index 24abe8dab..039c99748 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.php @@ -4,16 +4,22 @@ * * @author Juliette Reinders Folmer * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Ruleset; -use PHP_CodeSniffer\Config; use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; use PHPUnit\Framework\TestCase; +use ReflectionObject; -class RuleInclusionTest extends TestCase +/** + * Tests for the \PHP_CodeSniffer\Ruleset class. + * + * @covers \PHP_CodeSniffer\Ruleset + */ +final class RuleInclusionTest extends TestCase { /** @@ -38,35 +44,15 @@ class RuleInclusionTest extends TestCase private static $contents = ''; - /** - * Initialize the test. - * - * @return void - */ - public function setUp() - { - if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === true) { - // PEAR installs test and sniff files into different locations - // so these tests will not pass as they directly reference files - // by relative location. - $this->markTestSkipped('Test cannot run from a PEAR install'); - } - - }//end setUp() - - /** * Initialize the config and ruleset objects based on the `RuleInclusionTest.xml` ruleset file. * + * @beforeClass + * * @return void */ - public static function setUpBeforeClass() + public static function initializeConfigAndRuleset() { - if ($GLOBALS['PHP_CODESNIFFER_PEAR'] === true) { - // This test will be skipped. - return; - } - $standard = __DIR__.'/'.basename(__FILE__, '.php').'.xml'; self::$standard = $standard; @@ -88,22 +74,24 @@ public static function setUpBeforeClass() self::markTestSkipped('On the fly ruleset adjustment failed'); } - $config = new Config(["--standard=$standard"]); + $config = new ConfigDouble(["--standard=$standard"]); self::$ruleset = new Ruleset($config); - }//end setUpBeforeClass() + }//end initializeConfigAndRuleset() /** * Reset ruleset file. * + * @after + * * @return void */ - public function tearDown() + public function resetRuleset() { file_put_contents(self::$standard, self::$contents); - }//end tearDown() + }//end resetRuleset() /** @@ -113,14 +101,13 @@ public function tearDown() */ public function testHasSniffCodes() { - $this->assertObjectHasAttribute('sniffCodes', self::$ruleset); - $this->assertCount(14, self::$ruleset->sniffCodes); + $this->assertCount(48, self::$ruleset->sniffCodes); }//end testHasSniffCodes() /** - * Test that sniffs are correctly registered, independently on the syntax used to include the sniff. + * Test that sniffs are correctly registered, independently of the syntax used to include the sniff. * * @param string $key Expected array key. * @param string $value Expected array value. @@ -142,11 +129,59 @@ public function testRegisteredSniffCodes($key, $value) * * @see self::testRegisteredSniffCodes() * - * @return array + * @return array> */ - public function dataRegisteredSniffCodes() + public static function dataRegisteredSniffCodes() { return [ + [ + 'PSR2.Classes.ClassDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\ClassDeclarationSniff', + ], + [ + 'PSR2.Classes.PropertyDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\PropertyDeclarationSniff', + ], + [ + 'PSR2.ControlStructures.ControlStructureSpacing', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ControlStructureSpacingSniff', + ], + [ + 'PSR2.ControlStructures.ElseIfDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\ElseIfDeclarationSniff', + ], + [ + 'PSR2.ControlStructures.SwitchDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\SwitchDeclarationSniff', + ], + [ + 'PSR2.Files.ClosingTag', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Files\ClosingTagSniff', + ], + [ + 'PSR2.Files.EndFileNewline', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Files\EndFileNewlineSniff', + ], + [ + 'PSR2.Methods.FunctionCallSignature', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionCallSignatureSniff', + ], + [ + 'PSR2.Methods.FunctionClosingBrace', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionClosingBraceSniff', + ], + [ + 'PSR2.Methods.MethodDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\MethodDeclarationSniff', + ], + [ + 'PSR2.Namespaces.NamespaceDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Namespaces\NamespaceDeclarationSniff', + ], + [ + 'PSR2.Namespaces.UseDeclaration', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Namespaces\UseDeclarationSniff', + ], [ 'PSR1.Classes.ClassDeclaration', 'PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes\ClassDeclarationSniff', @@ -180,8 +215,100 @@ public function dataRegisteredSniffCodes() 'PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\UpperCaseConstantNameSniff', ], [ - 'Zend.NamingConventions.ValidVariableName', - 'PHP_CodeSniffer\Standards\Zend\Sniffs\NamingConventions\ValidVariableNameSniff', + 'Generic.Files.LineEndings', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineEndingsSniff', + ], + [ + 'Generic.Files.LineLength', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff', + ], + [ + 'Squiz.WhiteSpace.SuperfluousWhitespace', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff', + ], + [ + 'Generic.Formatting.DisallowMultipleStatements', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\Formatting\DisallowMultipleStatementsSniff', + ], + [ + 'Generic.WhiteSpace.ScopeIndent', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ScopeIndentSniff', + ], + [ + 'Generic.WhiteSpace.DisallowTabIndent', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\DisallowTabIndentSniff', + ], + [ + 'Generic.PHP.LowerCaseKeyword', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\LowerCaseKeywordSniff', + ], + [ + 'Generic.PHP.LowerCaseConstant', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\LowerCaseConstantSniff', + ], + [ + 'Squiz.Scope.MethodScope', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\Scope\MethodScopeSniff', + ], + [ + 'Squiz.WhiteSpace.ScopeKeywordSpacing', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ScopeKeywordSpacingSniff', + ], + [ + 'Squiz.Functions.FunctionDeclaration', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDeclarationSniff', + ], + [ + 'Squiz.Functions.LowercaseFunctionKeywords', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\LowercaseFunctionKeywordsSniff', + ], + [ + 'Squiz.Functions.FunctionDeclarationArgumentSpacing', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\FunctionDeclarationArgumentSpacingSniff', + ], + [ + 'PEAR.Functions.ValidDefaultValue', + 'PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\ValidDefaultValueSniff', + ], + [ + 'Squiz.Functions.MultiLineFunctionDeclaration', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions\MultiLineFunctionDeclarationSniff', + ], + [ + 'Generic.Functions.FunctionCallArgumentSpacing', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\Functions\FunctionCallArgumentSpacingSniff', + ], + [ + 'Squiz.ControlStructures.ControlSignature', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ControlSignatureSniff', + ], + [ + 'Squiz.WhiteSpace.ControlStructureSpacing', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ControlStructureSpacingSniff', + ], + [ + 'Squiz.WhiteSpace.ScopeClosingBrace', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ScopeClosingBraceSniff', + ], + [ + 'Squiz.ControlStructures.ForEachLoopDeclaration', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ForEachLoopDeclarationSniff', + ], + [ + 'Squiz.ControlStructures.ForLoopDeclaration', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\ForLoopDeclarationSniff', + ], + [ + 'Squiz.ControlStructures.LowercaseDeclaration', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\ControlStructures\LowercaseDeclarationSniff', + ], + [ + 'Generic.ControlStructures.InlineControlStructure', + 'PHP_CodeSniffer\Standards\Generic\Sniffs\ControlStructures\InlineControlStructureSniff', + ], + [ + 'PSR12.Operators.OperatorSpacing', + 'PHP_CodeSniffer\Standards\PSR12\Sniffs\Operators\OperatorSpacingSniff', ], [ 'Generic.Arrays.ArrayIndent', @@ -191,10 +318,6 @@ public function dataRegisteredSniffCodes() 'Generic.Metrics.CyclomaticComplexity', 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\CyclomaticComplexitySniff', ], - [ - 'Generic.Files.LineLength', - 'PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff', - ], [ 'Generic.NamingConventions.CamelCapsFunctionName', 'PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff', @@ -212,9 +335,9 @@ public function dataRegisteredSniffCodes() * Test that setting properties for standards, categories, sniffs works for all supported rule * inclusion methods. * - * @param string $sniffClass The name of the sniff class. - * @param string $propertyName The name of the changed property. - * @param mixed $expectedValue The value expected for the property. + * @param string $sniffClass The name of the sniff class. + * @param string $propertyName The name of the changed property. + * @param string|int|bool $expectedValue The value expected for the property. * * @dataProvider dataSettingProperties * @@ -222,9 +345,11 @@ public function dataRegisteredSniffCodes() */ public function testSettingProperties($sniffClass, $propertyName, $expectedValue) { - $this->assertObjectHasAttribute('sniffs', self::$ruleset); $this->assertArrayHasKey($sniffClass, self::$ruleset->sniffs); - $this->assertObjectHasAttribute($propertyName, self::$ruleset->sniffs[$sniffClass]); + + $hasProperty = (new ReflectionObject(self::$ruleset->sniffs[$sniffClass]))->hasProperty($propertyName); + $errorMsg = sprintf('Property %s does not exist on sniff class %s', $propertyName, $sniffClass); + $this->assertTrue($hasProperty, $errorMsg); $actualValue = self::$ruleset->sniffs[$sniffClass]->$propertyName; $this->assertSame($expectedValue, $actualValue); @@ -237,61 +362,117 @@ public function testSettingProperties($sniffClass, $propertyName, $expectedValue * * @see self::testSettingProperties() * - * @return array + * @return array> */ - public function dataSettingProperties() + public static function dataSettingProperties() { return [ - 'ClassDeclarationSniff' => [ - 'PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes\ClassDeclarationSniff', - 'setforallsniffs', - true, + 'Set property for complete standard: PSR2 ClassDeclaration' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\ClassDeclarationSniff', + 'propertyName' => 'indent', + 'expectedValue' => '20', ], - 'SideEffectsSniff' => [ - 'PHP_CodeSniffer\Standards\PSR1\Sniffs\Files\SideEffectsSniff', - 'setforallsniffs', - true, + 'Set property for complete standard: PSR2 SwitchDeclaration' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR2\Sniffs\ControlStructures\SwitchDeclarationSniff', + 'propertyName' => 'indent', + 'expectedValue' => '20', ], - 'ValidVariableNameSniff' => [ - 'PHP_CodeSniffer\Standards\Zend\Sniffs\NamingConventions\ValidVariableNameSniff', - 'setforallincategory', - true, + 'Set property for complete standard: PSR2 FunctionCallSignature' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionCallSignatureSniff', + 'propertyName' => 'indent', + 'expectedValue' => '20', ], - 'ArrayIndentSniff' => [ - 'PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays\ArrayIndentSniff', - 'indent', - '2', + 'Set property for complete category: PSR12 OperatorSpacing' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR12\Sniffs\Operators\OperatorSpacingSniff', + 'propertyName' => 'ignoreSpacingBeforeAssignments', + 'expectedValue' => false, ], - 'LineLengthSniff' => [ - 'PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff', - 'lineLimit', - '10', + 'Set property for individual sniff: Generic ArrayIndent' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\Generic\Sniffs\Arrays\ArrayIndentSniff', + 'propertyName' => 'indent', + 'expectedValue' => '2', ], - 'CamelCapsFunctionNameSniff' => [ - 'PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff', - 'strict', - false, + 'Set property for individual sniff using sniff file inclusion: Generic LineLength' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff', + 'propertyName' => 'lineLimit', + 'expectedValue' => '10', ], - 'NestingLevelSniff-nestingLevel' => [ - 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\NestingLevelSniff', - 'nestingLevel', - '2', + 'Set property for individual sniff using sniff file inclusion: CamelCapsFunctionName' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff', + 'propertyName' => 'strict', + 'expectedValue' => false, ], - 'NestingLevelSniff-setforsniffsinincludedruleset' => [ - 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\NestingLevelSniff', - 'setforsniffsinincludedruleset', - true, + 'Set property for individual sniff via included ruleset: NestingLevel - nestingLevel' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\NestingLevelSniff', + 'propertyName' => 'nestingLevel', + 'expectedValue' => '2', + ], + 'Set property for all sniffs in an included ruleset: NestingLevel - absoluteNestingLevel' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\NestingLevelSniff', + 'propertyName' => 'absoluteNestingLevel', + 'expectedValue' => true, ], // Testing that setting a property at error code level does *not* work. - 'CyclomaticComplexitySniff' => [ - 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\CyclomaticComplexitySniff', - 'complexity', - 10, + 'Set property for error code will not change the sniff property value: CyclomaticComplexity' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\CyclomaticComplexitySniff', + 'propertyName' => 'complexity', + 'expectedValue' => 10, ], ]; }//end dataSettingProperties() + /** + * Test that setting properties for standards, categories on sniffs which don't support the property will + * silently ignore the property and not set it. + * + * @param string $sniffClass The name of the sniff class. + * @param string $propertyName The name of the property which should not be set. + * + * @dataProvider dataSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails + * + * @return void + */ + public function testSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails($sniffClass, $propertyName) + { + $this->assertArrayHasKey($sniffClass, self::$ruleset->sniffs, 'Sniff class '.$sniffClass.' not listed in registered sniffs'); + + $sniffObject = self::$ruleset->sniffs[$sniffClass]; + + $hasProperty = (new ReflectionObject(self::$ruleset->sniffs[$sniffClass]))->hasProperty($propertyName); + $errorMsg = sprintf('Property %s registered for sniff %s which does not support it', $propertyName, $sniffClass); + $this->assertFalse($hasProperty, $errorMsg); + + }//end testSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails() + + + /** + * Data provider. + * + * @see self::testSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails() + * + * @return arraystring, string>> + */ + public static function dataSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails() + { + return [ + 'Set property for complete standard: PSR2 ClassDeclaration' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR1\Sniffs\Classes\ClassDeclarationSniff', + 'propertyName' => 'setforallsniffs', + ], + 'Set property for complete standard: PSR2 FunctionCallSignature' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Methods\FunctionCallSignatureSniff', + 'propertyName' => 'setforallsniffs', + ], + 'Set property for complete category: PSR12 OperatorSpacing' => [ + 'sniffClass' => 'PHP_CodeSniffer\Standards\PSR12\Sniffs\Operators\OperatorSpacingSniff', + 'propertyName' => 'setforallincategory', + ], + ]; + + }//end dataSettingInvalidPropertiesOnStandardsAndCategoriesSilentlyFails() + + }//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.xml index 06ce040e7..8275fe011 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.xml +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/RuleInclusionTest.xml @@ -1,15 +1,17 @@ - + - + + - + + @@ -38,8 +40,9 @@ + - + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedAsDeclaredTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedAsDeclaredTest.xml new file mode 100644 index 000000000..5840d0c36 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedAsDeclaredTest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedViaMagicMethodTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedViaMagicMethodTest.xml new file mode 100644 index 000000000..7ff217824 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedViaMagicMethodTest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedViaStdClassTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedViaStdClassTest.xml new file mode 100644 index 000000000..387f419e8 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAllowedViaStdClassTest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAppliesPropertyToMultipleSniffsInCategoryTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAppliesPropertyToMultipleSniffsInCategoryTest.xml new file mode 100644 index 000000000..7c4ca4fd3 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyAppliesPropertyToMultipleSniffsInCategoryTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForCategoryTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForCategoryTest.xml new file mode 100644 index 000000000..979b48f52 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForCategoryTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForStandardTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForStandardTest.xml new file mode 100644 index 000000000..48a36a831 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForStandardTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyNotAllowedViaAttributeTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyNotAllowedViaAttributeTest.xml new file mode 100644 index 000000000..7caae3d39 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyNotAllowedViaAttributeTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyThrowsErrorOnInvalidPropertyTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyThrowsErrorOnInvalidPropertyTest.xml new file mode 100644 index 000000000..5dca1a010 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetPropertyThrowsErrorOnInvalidPropertyTest.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetSniffPropertyTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetSniffPropertyTest.php new file mode 100644 index 000000000..5b0227874 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/SetSniffPropertyTest.php @@ -0,0 +1,405 @@ + + * @copyright 2022 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Ruleset; + +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHPUnit\Framework\TestCase; +use ReflectionObject; + +/** + * These tests specifically focus on the changes made to work around the PHP 8.2 dynamic properties deprecation. + * + * @covers \PHP_CodeSniffer\Ruleset::setSniffProperty + */ +final class SetSniffPropertyTest extends TestCase +{ + + + /** + * Test that setting a property via the ruleset works in all situations which allow for it. + * + * @param string $name Name of the test. Used for the sniff name, the ruleset file name etc. + * + * @dataProvider dataSniffPropertiesGetSetWhenAllowed + * + * @return void + */ + public function testSniffPropertiesGetSetWhenAllowed($name) + { + $sniffCode = "Fixtures.SetProperty.{$name}"; + $sniffClass = 'Fixtures\Sniffs\SetProperty\\'.$name.'Sniff'; + $properties = [ + 'arbitrarystring' => 'arbitraryvalue', + 'arbitraryarray' => [ + 'mykey' => 'myvalue', + 'otherkey' => 'othervalue', + ], + ]; + + // Set up the ruleset. + $standard = __DIR__."/SetProperty{$name}Test.xml"; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + // Verify that the sniff has been registered. + $this->assertGreaterThan(0, count($ruleset->sniffCodes), 'No sniff codes registered'); + + // Verify that our target sniff has been registered. + $this->assertArrayHasKey($sniffCode, $ruleset->sniffCodes, 'Target sniff not registered'); + $this->assertSame($sniffClass, $ruleset->sniffCodes[$sniffCode], 'Target sniff not registered with the correct class'); + + // Test that the property as declared in the ruleset has been set on the sniff. + $this->assertArrayHasKey($sniffClass, $ruleset->sniffs, 'Sniff class not listed in registered sniffs'); + + $sniffObject = $ruleset->sniffs[$sniffClass]; + foreach ($properties as $name => $expectedValue) { + $this->assertSame($expectedValue, $sniffObject->$name, 'Property value not set to expected value'); + } + + }//end testSniffPropertiesGetSetWhenAllowed() + + + /** + * Data provider. + * + * @see self::testSniffPropertiesGetSetWhenAllowed() + * + * @return array> + */ + public static function dataSniffPropertiesGetSetWhenAllowed() + { + return [ + 'Property allowed as explicitly declared' => ['AllowedAsDeclared'], + 'Property allowed as sniff extends stdClass' => ['AllowedViaStdClass'], + 'Property allowed as sniff has magic __set() method' => ['AllowedViaMagicMethod'], + ]; + + }//end dataSniffPropertiesGetSetWhenAllowed() + + + /** + * Test that setting a property for a category will apply it correctly to those sniffs which support the + * property, but won't apply it to sniffs which don't. + * + * Note: this test intentionally uses the `PEAR.Functions` category as two sniffs in that category + * have a public property with the same name (`indent`) and one sniff doesn't, which makes it a great + * test case for this. + * + * @return void + */ + public function testSetPropertyAppliesPropertyToMultipleSniffsInCategory() + { + $propertyName = 'indent'; + $expectedValue = '10'; + + // Set up the ruleset. + $standard = __DIR__.'/SetPropertyAppliesPropertyToMultipleSniffsInCategoryTest.xml'; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + // Test that the two sniffs which support the property have received the value. + $sniffClass = 'PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\FunctionCallSignatureSniff'; + $this->assertArrayHasKey($sniffClass, $ruleset->sniffs, 'Sniff class '.$sniffClass.' not listed in registered sniffs'); + $sniffObject = $ruleset->sniffs[$sniffClass]; + $this->assertSame($expectedValue, $sniffObject->$propertyName, 'Property value not set to expected value for '.$sniffClass); + + $sniffClass = 'PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\FunctionDeclarationSniff'; + $this->assertArrayHasKey($sniffClass, $ruleset->sniffs, 'Sniff class '.$sniffClass.' not listed in registered sniffs'); + $sniffObject = $ruleset->sniffs[$sniffClass]; + $this->assertSame($expectedValue, $sniffObject->$propertyName, 'Property value not set to expected value for '.$sniffClass); + + // Test that the property doesn't get set for the one sniff which doesn't support the property. + $sniffClass = 'PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\ValidDefaultValueSniff'; + $this->assertArrayHasKey($sniffClass, $ruleset->sniffs, 'Sniff class '.$sniffClass.' not listed in registered sniffs'); + + $hasProperty = (new ReflectionObject($ruleset->sniffs[$sniffClass]))->hasProperty($propertyName); + $errorMsg = sprintf('Property %s registered for sniff %s which does not support it', $propertyName, $sniffClass); + $this->assertFalse($hasProperty, $errorMsg); + + }//end testSetPropertyAppliesPropertyToMultipleSniffsInCategory() + + + /** + * Test that attempting to set a non-existent property directly on a sniff will throw an error + * when the sniff does not explicitly declare the property, extends stdClass or has magic methods. + * + * @return void + */ + public function testSetPropertyThrowsErrorOnInvalidProperty() + { + $exceptionClass = 'PHP_CodeSniffer\Exceptions\RuntimeException'; + $exceptionMsg = 'Ruleset invalid. Property "indentation" does not exist on sniff Generic.Arrays.ArrayIndent'; + if (method_exists($this, 'expectException') === true) { + $this->expectException($exceptionClass); + $this->expectExceptionMessage($exceptionMsg); + } else { + // PHPUnit < 5.2.0. + $this->setExpectedException($exceptionClass, $exceptionMsg); + } + + // Set up the ruleset. + $standard = __DIR__.'/SetPropertyThrowsErrorOnInvalidPropertyTest.xml'; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + }//end testSetPropertyThrowsErrorOnInvalidProperty() + + + /** + * Test that attempting to set a non-existent property directly on a sniff will throw an error + * when the sniff does not explicitly declare the property, extends stdClass or has magic methods, + * even though the sniff has the PHP 8.2 `#[AllowDynamicProperties]` attribute set. + * + * @return void + */ + public function testSetPropertyThrowsErrorWhenPropertyOnlyAllowedViaAttribute() + { + $exceptionClass = 'PHP_CodeSniffer\Exceptions\RuntimeException'; + $exceptionMsg = 'Ruleset invalid. Property "arbitrarystring" does not exist on sniff Fixtures.SetProperty.NotAllowedViaAttribute'; + if (method_exists($this, 'expectException') === true) { + $this->expectException($exceptionClass); + $this->expectExceptionMessage($exceptionMsg); + } else { + // PHPUnit < 5.2.0. + $this->setExpectedException($exceptionClass, $exceptionMsg); + } + + // Set up the ruleset. + $standard = __DIR__.'/SetPropertyNotAllowedViaAttributeTest.xml'; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + }//end testSetPropertyThrowsErrorWhenPropertyOnlyAllowedViaAttribute() + + + /** + * Test that attempting to set a non-existent property on a sniff when the property directive is + * for the whole standard, does not yield an error. + * + * @doesNotPerformAssertions + * + * @return void + */ + public function testSetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForStandard() + { + // Set up the ruleset. + $standard = __DIR__.'/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForStandardTest.xml'; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + }//end testSetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForStandard() + + + /** + * Test that attempting to set a non-existent property on a sniff when the property directive is + * for a whole category, does not yield an error. + * + * @doesNotPerformAssertions + * + * @return void + */ + public function testSetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForCategory() + { + // Set up the ruleset. + $standard = __DIR__.'/SetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForCategoryTest.xml'; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + }//end testSetPropertyDoesNotThrowErrorOnInvalidPropertyWhenSetForCategory() + + + /** + * Test that setting a property via a direct call to the Ruleset::setSniffProperty() method + * sets the property correctly when using the new $settings array format. + * + * @return void + */ + public function testDirectCallWithNewArrayFormatSetsProperty() + { + $name = 'AllowedAsDeclared'; + $sniffCode = "Fixtures.SetProperty.{$name}"; + $sniffClass = 'Fixtures\Sniffs\SetProperty\\'.$name.'Sniff'; + + // Set up the ruleset. + $standard = __DIR__."/SetProperty{$name}Test.xml"; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + $propertyName = 'arbitrarystring'; + $propertyValue = 'new value'; + + $ruleset->setSniffProperty( + $sniffClass, + $propertyName, + [ + 'scope' => 'sniff', + 'value' => $propertyValue, + ] + ); + + // Verify that the sniff has been registered. + $this->assertGreaterThan(0, count($ruleset->sniffCodes), 'No sniff codes registered'); + + // Verify that our target sniff has been registered. + $this->assertArrayHasKey($sniffCode, $ruleset->sniffCodes, 'Target sniff not registered'); + $this->assertSame($sniffClass, $ruleset->sniffCodes[$sniffCode], 'Target sniff not registered with the correct class'); + + // Test that the property as declared in the ruleset has been set on the sniff. + $this->assertArrayHasKey($sniffClass, $ruleset->sniffs, 'Sniff class not listed in registered sniffs'); + + $sniffObject = $ruleset->sniffs[$sniffClass]; + $this->assertSame($propertyValue, $sniffObject->$propertyName, 'Property value not set to expected value'); + + }//end testDirectCallWithNewArrayFormatSetsProperty() + + + /** + * Test that setting a property via a direct call to the Ruleset::setSniffProperty() method + * sets the property correctly when using the old $settings array format. + * + * Tested by silencing the deprecation notice as otherwise the test would fail on the deprecation notice. + * + * @param mixed $propertyValue Value for the property to set. + * + * @dataProvider dataDirectCallWithOldArrayFormatSetsProperty + * + * @return void + */ + public function testDirectCallWithOldArrayFormatSetsProperty($propertyValue) + { + $name = 'AllowedAsDeclared'; + $sniffCode = "Fixtures.SetProperty.{$name}"; + $sniffClass = 'Fixtures\Sniffs\SetProperty\\'.$name.'Sniff'; + + // Set up the ruleset. + $standard = __DIR__."/SetProperty{$name}Test.xml"; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + $propertyName = 'arbitrarystring'; + + @$ruleset->setSniffProperty( + $sniffClass, + $propertyName, + $propertyValue + ); + + // Verify that the sniff has been registered. + $this->assertGreaterThan(0, count($ruleset->sniffCodes), 'No sniff codes registered'); + + // Verify that our target sniff has been registered. + $this->assertArrayHasKey($sniffCode, $ruleset->sniffCodes, 'Target sniff not registered'); + $this->assertSame($sniffClass, $ruleset->sniffCodes[$sniffCode], 'Target sniff not registered with the correct class'); + + // Test that the property as declared in the ruleset has been set on the sniff. + $this->assertArrayHasKey($sniffClass, $ruleset->sniffs, 'Sniff class not listed in registered sniffs'); + + $sniffObject = $ruleset->sniffs[$sniffClass]; + $this->assertSame($propertyValue, $sniffObject->$propertyName, 'Property value not set to expected value'); + + }//end testDirectCallWithOldArrayFormatSetsProperty() + + + /** + * Data provider. + * + * @see self::testDirectCallWithOldArrayFormatSetsProperty() + * + * @return array> + */ + public static function dataDirectCallWithOldArrayFormatSetsProperty() + { + return [ + 'Property value is not an array (boolean)' => [ + 'propertyValue' => false, + ], + 'Property value is not an array (string)' => [ + 'propertyValue' => 'a string', + ], + 'Property value is an empty array' => [ + 'propertyValue' => [], + ], + 'Property value is an array without keys' => [ + 'propertyValue' => [ + 'value', + false, + ], + ], + 'Property value is an array without the "scope" or "value" keys' => [ + 'propertyValue' => [ + 'key1' => 'value', + 'key2' => false, + ], + ], + 'Property value is an array without the "scope" key' => [ + 'propertyValue' => [ + 'key1' => 'value', + 'value' => true, + ], + ], + 'Property value is an array without the "value" key' => [ + 'propertyValue' => [ + 'scope' => 'value', + 'key2' => 1234, + ], + ], + ]; + + }//end dataDirectCallWithOldArrayFormatSetsProperty() + + + /** + * Test that setting a property via a direct call to the Ruleset::setSniffProperty() method + * throws a deprecation notice when using the old $settings array format. + * + * Note: as PHPUnit stops as soon as it sees the deprecation notice, the setting of the property + * value is not tested here. + * + * @return void + */ + public function testDirectCallWithOldArrayFormatThrowsDeprecationNotice() + { + $exceptionClass = 'PHPUnit\Framework\Error\Deprecated'; + if (class_exists($exceptionClass) === false) { + $exceptionClass = 'PHPUnit_Framework_Error_Deprecated'; + } + + $exceptionMsg = 'the format of the $settings parameter has changed from (mixed) $value to array(\'scope\' => \'sniff|standard\', \'value\' => $value). Please update your integration code. See PR #3629 for more information.'; + + if (method_exists($this, 'expectException') === true) { + $this->expectException($exceptionClass); + $this->expectExceptionMessage($exceptionMsg); + } else { + // PHPUnit < 5.2.0. + $this->setExpectedException($exceptionClass, $exceptionMsg); + } + + $name = 'AllowedAsDeclared'; + $sniffCode = "Fixtures.SetProperty.{$name}"; + $sniffClass = 'Fixtures\Sniffs\SetProperty\\'.$name.'Sniff'; + + // Set up the ruleset. + $standard = __DIR__."/SetProperty{$name}Test.xml"; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + $propertyName = 'arbitrarystring'; + + $ruleset->setSniffProperty( + $sniffClass, + 'arbitrarystring', + ['key' => 'value'] + ); + + }//end testDirectCallWithOldArrayFormatThrowsDeprecationNotice() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsEmptyDeprecationVersionTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsEmptyDeprecationVersionTest.xml new file mode 100644 index 000000000..5e2480bf2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsEmptyDeprecationVersionTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsEmptyRemovalVersionTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsEmptyRemovalVersionTest.xml new file mode 100644 index 000000000..6e667375a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsEmptyRemovalVersionTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidDeprecationMessageTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidDeprecationMessageTest.xml new file mode 100644 index 000000000..d32516799 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidDeprecationMessageTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidDeprecationVersionTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidDeprecationVersionTest.xml new file mode 100644 index 000000000..89d83ab52 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidDeprecationVersionTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidRemovalVersionTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidRemovalVersionTest.xml new file mode 100644 index 000000000..c1eb062e1 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsInvalidRemovalVersionTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsOrderTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsOrderTest.xml new file mode 100644 index 000000000..3ce96ce89 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsOrderTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsReportWidthTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsReportWidthTest.xml new file mode 100644 index 000000000..9f1cc8515 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsReportWidthTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsTest.php new file mode 100644 index 000000000..8e81f96a2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsTest.php @@ -0,0 +1,510 @@ + + * @copyright 2024 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Ruleset; + +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHPUnit\Framework\TestCase; + +/** + * Tests PHPCS native handling of sniff deprecations. + * + * @covers \PHP_CodeSniffer\Ruleset::hasSniffDeprecations + * @covers \PHP_CodeSniffer\Ruleset::showSniffDeprecations + */ +final class ShowSniffDeprecationsTest extends TestCase +{ + + + /** + * Test the return value of the hasSniffDeprecations() method. + * + * @param string $standard The standard to use for the test. + * @param bool $expected The expected function return value. + * + * @dataProvider dataHasSniffDeprecations + * + * @return void + */ + public function testHasSniffDeprecations($standard, $expected) + { + $config = new ConfigDouble(['.', "--standard=$standard"]); + $ruleset = new Ruleset($config); + + $this->assertSame($expected, $ruleset->hasSniffDeprecations()); + + }//end testHasSniffDeprecations() + + + /** + * Data provider. + * + * @see testHasSniffDeprecations() + * + * @return array> + */ + public static function dataHasSniffDeprecations() + { + return [ + 'Standard not using deprecated sniffs: PSR1' => [ + 'standard' => 'PSR1', + 'expected' => false, + ], + 'Standard using deprecated sniffs: Test Fixture' => [ + 'standard' => __DIR__.'/ShowSniffDeprecationsTest.xml', + 'expected' => true, + ], + ]; + + }//end dataHasSniffDeprecations() + + + /** + * Test that the listing with deprecated sniffs will not show when specific command-line options are being used. + * + * @param string $standard The standard to use for the test. + * @param array $additionalArgs Optional. Additional arguments to pass. + * + * @dataProvider dataDeprecatedSniffsListDoesNotShow + * + * @return void + */ + public function testDeprecatedSniffsListDoesNotShow($standard, $additionalArgs=[]) + { + $args = $additionalArgs; + $args[] = '.'; + $args[] = "--standard=$standard"; + + $config = new ConfigDouble($args); + $ruleset = new Ruleset($config); + + $this->expectOutputString(''); + + $ruleset->showSniffDeprecations(); + + }//end testDeprecatedSniffsListDoesNotShow() + + + /** + * Data provider. + * + * @see testDeprecatedSniffsListDoesNotShow() + * + * @return array>> + */ + public static function dataDeprecatedSniffsListDoesNotShow() + { + return [ + 'Standard not using deprecated sniffs: PSR1' => [ + 'standard' => 'PSR1', + ], + 'Standard using deprecated sniffs; explain mode' => [ + 'standard' => __DIR__.'/ShowSniffDeprecationsTest.xml', + 'additionalArgs' => ['-e'], + ], + 'Standard using deprecated sniffs; quiet mode' => [ + 'standard' => __DIR__.'/ShowSniffDeprecationsTest.xml', + 'additionalArgs' => ['-q'], + ], + 'Standard using deprecated sniffs; documentation is requested' => [ + 'standard' => __DIR__.'/ShowSniffDeprecationsTest.xml', + 'additionalArgs' => ['--generator=text'], + ], + ]; + + }//end dataDeprecatedSniffsListDoesNotShow() + + + /** + * Test that the listing with deprecated sniffs will not show when using a standard containing deprecated sniffs, + * but only running select non-deprecated sniffs (using `--sniffs=...`). + * + * @return void + */ + public function testDeprecatedSniffsListDoesNotShowWhenSelectedSniffsAreNotDeprecated() + { + $standard = __DIR__.'/ShowSniffDeprecationsTest.xml'; + $config = new ConfigDouble(['.', "--standard=$standard"]); + $ruleset = new Ruleset($config); + + /* + * Apply sniff restrictions. + * For tests we need to manually trigger this if the standard is "installed", like with the fixtures these tests use. + */ + + $restrictions = []; + $sniffs = [ + 'Fixtures.SetProperty.AllowedAsDeclared', + 'Fixtures.SetProperty.AllowedViaStdClass', + ]; + foreach ($sniffs as $sniffCode) { + $parts = explode('.', strtolower($sniffCode)); + $sniffName = $parts[0].'\sniffs\\'.$parts[1].'\\'.$parts[2].'sniff'; + $restrictions[strtolower($sniffName)] = true; + } + + $sniffFiles = []; + $allSniffs = $ruleset->sniffCodes; + foreach ($allSniffs as $sniffName) { + $sniffFile = str_replace('\\', DIRECTORY_SEPARATOR, $sniffName); + $sniffFile = __DIR__.DIRECTORY_SEPARATOR.$sniffFile.'.php'; + $sniffFiles[] = $sniffFile; + } + + $ruleset->registerSniffs($allSniffs, $restrictions, []); + $ruleset->populateTokenListeners(); + + $this->expectOutputString(''); + + $ruleset->showSniffDeprecations(); + + }//end testDeprecatedSniffsListDoesNotShowWhenSelectedSniffsAreNotDeprecated() + + + /** + * Test that the listing with deprecated sniffs will not show when using a standard containing deprecated sniffs, + * but all deprecated sniffs have been excluded from the run (using `--exclude=...`). + * + * @return void + */ + public function testDeprecatedSniffsListDoesNotShowWhenAllDeprecatedSniffsAreExcluded() + { + $standard = __DIR__.'/ShowSniffDeprecationsTest.xml'; + $config = new ConfigDouble(['.', "--standard=$standard"]); + $ruleset = new Ruleset($config); + + /* + * Apply sniff restrictions. + * For tests we need to manually trigger this if the standard is "installed", like with the fixtures these tests use. + */ + + $exclusions = []; + $exclude = [ + 'Fixtures.Deprecated.WithLongReplacement', + 'Fixtures.Deprecated.WithoutReplacement', + 'Fixtures.Deprecated.WithReplacement', + 'Fixtures.Deprecated.WithReplacementContainingLinuxNewlines', + 'Fixtures.Deprecated.WithReplacementContainingNewlines', + ]; + foreach ($exclude as $sniffCode) { + $parts = explode('.', strtolower($sniffCode)); + $sniffName = $parts[0].'\sniffs\\'.$parts[1].'\\'.$parts[2].'sniff'; + $exclusions[strtolower($sniffName)] = true; + } + + $sniffFiles = []; + $allSniffs = $ruleset->sniffCodes; + foreach ($allSniffs as $sniffName) { + $sniffFile = str_replace('\\', DIRECTORY_SEPARATOR, $sniffName); + $sniffFile = __DIR__.DIRECTORY_SEPARATOR.$sniffFile.'.php'; + $sniffFiles[] = $sniffFile; + } + + $ruleset->registerSniffs($allSniffs, [], $exclusions); + $ruleset->populateTokenListeners(); + + $this->expectOutputString(''); + + $ruleset->showSniffDeprecations(); + + }//end testDeprecatedSniffsListDoesNotShowWhenAllDeprecatedSniffsAreExcluded() + + + /** + * Test deprecated sniffs are listed alphabetically in the deprecated sniffs warning. + * + * This tests a number of different aspects: + * 1. That the summary line uses the correct grammar when there is are multiple deprecated sniffs. + * 2. That there is no trailing whitespace when the sniff does not provide a custom message. + * 3. That custom messages containing new line characters (any type) are handled correctly and + * that those new line characters are converted to the OS supported new line char. + * + * @return void + */ + public function testDeprecatedSniffsWarning() + { + $standard = __DIR__.'/ShowSniffDeprecationsTest.xml'; + $config = new ConfigDouble(["--standard=$standard", '--no-colors']); + $ruleset = new Ruleset($config); + + $expected = 'WARNING: The SniffDeprecationTest standard uses 5 deprecated sniffs'.PHP_EOL; + $expected .= '--------------------------------------------------------------------------------'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithLongReplacement'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= ' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel'.PHP_EOL; + $expected .= ' vestibulum nunc. Sed luctus dolor tortor, eu euismod purus pretium sed.'.PHP_EOL; + $expected .= ' Fusce egestas congue massa semper cursus. Donec quis pretium tellus. In'.PHP_EOL; + $expected .= ' lacinia, augue ut ornare porttitor, diam nunc faucibus purus, et accumsan'.PHP_EOL; + $expected .= ' eros sapien at sem. Sed pulvinar aliquam malesuada. Aliquam erat volutpat.'.PHP_EOL; + $expected .= ' Mauris gravida rutrum lectus at egestas. Fusce tempus elit in tincidunt'.PHP_EOL; + $expected .= ' dictum. Suspendisse dictum egestas sapien, eget ullamcorper metus elementum'.PHP_EOL; + $expected .= ' semper. Vestibulum sem justo, consectetur ac tincidunt et, finibus eget'.PHP_EOL; + $expected .= ' libero.'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithoutReplacement'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.4.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithReplacement'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= ' Use the Stnd.Category.OtherSniff sniff instead.'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithReplacementContainingLinuxNewlines'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= ' Lorem ipsum dolor sit amet, consectetur adipiscing elit.'.PHP_EOL; + $expected .= ' Fusce vel vestibulum nunc. Sed luctus dolor tortor, eu euismod purus pretium'.PHP_EOL; + $expected .= ' sed.'.PHP_EOL; + $expected .= ' Fusce egestas congue massa semper cursus. Donec quis pretium tellus.'.PHP_EOL; + $expected .= ' In lacinia, augue ut ornare porttitor, diam nunc faucibus purus, et accumsan'.PHP_EOL; + $expected .= ' eros sapien at sem.'.PHP_EOL; + $expected .= ' Sed pulvinar aliquam malesuada. Aliquam erat volutpat. Mauris gravida rutrum'.PHP_EOL; + $expected .= ' lectus at egestas.'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithReplacementContainingNewlines'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= ' Lorem ipsum dolor sit amet, consectetur adipiscing elit.'.PHP_EOL; + $expected .= ' Fusce vel vestibulum nunc. Sed luctus dolor tortor, eu euismod purus pretium'.PHP_EOL; + $expected .= ' sed.'.PHP_EOL; + $expected .= ' Fusce egestas congue massa semper cursus. Donec quis pretium tellus.'.PHP_EOL; + $expected .= ' In lacinia, augue ut ornare porttitor, diam nunc faucibus purus, et accumsan'.PHP_EOL; + $expected .= ' eros sapien at sem.'.PHP_EOL; + $expected .= ' Sed pulvinar aliquam malesuada. Aliquam erat volutpat. Mauris gravida rutrum'.PHP_EOL; + $expected .= ' lectus at egestas'.PHP_EOL.PHP_EOL; + $expected .= 'Deprecated sniffs are still run, but will stop working at some point in the'.PHP_EOL; + $expected .= 'future.'.PHP_EOL.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->showSniffDeprecations(); + + }//end testDeprecatedSniffsWarning() + + + /** + * Test deprecated sniffs are listed alphabetically in the deprecated sniffs warning. + * + * This tests the following aspects: + * 1. That the summary line uses the correct grammar when there is a single deprecated sniff. + * 2. That the separator line below the summary maximizes at the longest line length. + * 3. That the word wrapping respects the maximum report width. + * 4. That the sniff name is truncated if it is longer than the max report width. + * + * @param int $reportWidth Report width for the test. + * @param string $expectedOutput Expected output. + * + * @dataProvider dataReportWidthIsRespected + * + * @return void + */ + public function testReportWidthIsRespected($reportWidth, $expectedOutput) + { + // Set up the ruleset. + $standard = __DIR__.'/ShowSniffDeprecationsReportWidthTest.xml'; + $config = new ConfigDouble(['.', "--standard=$standard", "--report-width=$reportWidth", '--no-colors']); + $ruleset = new Ruleset($config); + + $this->expectOutputString($expectedOutput); + + $ruleset->showSniffDeprecations(); + + }//end testReportWidthIsRespected() + + + /** + * Data provider. + * + * @see testReportWidthIsRespected() + * + * @return array> + */ + public static function dataReportWidthIsRespected() + { + $summaryLine = 'WARNING: The SniffDeprecationTest standard uses 1 deprecated sniff'.PHP_EOL; + + // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- Test readability is more important. + return [ + 'Report width small: 40; with truncated sniff name and wrapped header and footer lines' => [ + 'reportWidth' => 40, + 'expectedOutput' => 'WARNING: The SniffDeprecationTest'.PHP_EOL + .'standard uses 1 deprecated sniff'.PHP_EOL + .'----------------------------------------'.PHP_EOL + .'- Fixtures.Deprecated.WithLongRepla...'.PHP_EOL + .' This sniff has been deprecated since'.PHP_EOL + .' v3.8.0 and will be removed in'.PHP_EOL + .' v4.0.0. Lorem ipsum dolor sit amet,'.PHP_EOL + .' consectetur adipiscing elit. Fusce'.PHP_EOL + .' vel vestibulum nunc. Sed luctus'.PHP_EOL + .' dolor tortor, eu euismod purus'.PHP_EOL + .' pretium sed. Fusce egestas congue'.PHP_EOL + .' massa semper cursus. Donec quis'.PHP_EOL + .' pretium tellus. In lacinia, augue ut'.PHP_EOL + .' ornare porttitor, diam nunc faucibus'.PHP_EOL + .' purus, et accumsan eros sapien at'.PHP_EOL + .' sem. Sed pulvinar aliquam malesuada.'.PHP_EOL + .' Aliquam erat volutpat. Mauris'.PHP_EOL + .' gravida rutrum lectus at egestas.'.PHP_EOL + .' Fusce tempus elit in tincidunt'.PHP_EOL + .' dictum. Suspendisse dictum egestas'.PHP_EOL + .' sapien, eget ullamcorper metus'.PHP_EOL + .' elementum semper. Vestibulum sem'.PHP_EOL + .' justo, consectetur ac tincidunt et,'.PHP_EOL + .' finibus eget libero.'.PHP_EOL.PHP_EOL + .'Deprecated sniffs are still run, but'.PHP_EOL + .'will stop working at some point in the'.PHP_EOL + .'future.'.PHP_EOL.PHP_EOL, + ], + 'Report width default: 80' => [ + 'reportWidth' => 80, + 'expectedOutput' => $summaryLine.str_repeat('-', 80).PHP_EOL + .'- Fixtures.Deprecated.WithLongReplacement'.PHP_EOL + .' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0.'.PHP_EOL + .' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel'.PHP_EOL + .' vestibulum nunc. Sed luctus dolor tortor, eu euismod purus pretium sed.'.PHP_EOL + .' Fusce egestas congue massa semper cursus. Donec quis pretium tellus. In'.PHP_EOL + .' lacinia, augue ut ornare porttitor, diam nunc faucibus purus, et accumsan'.PHP_EOL + .' eros sapien at sem. Sed pulvinar aliquam malesuada. Aliquam erat volutpat.'.PHP_EOL + .' Mauris gravida rutrum lectus at egestas. Fusce tempus elit in tincidunt'.PHP_EOL + .' dictum. Suspendisse dictum egestas sapien, eget ullamcorper metus elementum'.PHP_EOL + .' semper. Vestibulum sem justo, consectetur ac tincidunt et, finibus eget'.PHP_EOL + .' libero.'.PHP_EOL.PHP_EOL + .'Deprecated sniffs are still run, but will stop working at some point in the'.PHP_EOL + .'future.'.PHP_EOL.PHP_EOL, + ], + 'Report width matches longest line: 666; the message should not wrap' => [ + // Length = 4 padding + 75 base line + 587 custom message. + 'reportWidth' => 666, + 'expectedOutput' => $summaryLine.str_repeat('-', 666).PHP_EOL + .'- Fixtures.Deprecated.WithLongReplacement'.PHP_EOL + .' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel vestibulum nunc. Sed luctus dolor tortor, eu euismod purus pretium sed. Fusce egestas congue massa semper cursus. Donec quis pretium tellus. In lacinia, augue ut ornare porttitor, diam nunc faucibus purus, et accumsan eros sapien at sem. Sed pulvinar aliquam malesuada. Aliquam erat volutpat. Mauris gravida rutrum lectus at egestas. Fusce tempus elit in tincidunt dictum. Suspendisse dictum egestas sapien, eget ullamcorper metus elementum semper. Vestibulum sem justo, consectetur ac tincidunt et, finibus eget libero.' + .PHP_EOL.PHP_EOL + .'Deprecated sniffs are still run, but will stop working at some point in the future.'.PHP_EOL.PHP_EOL, + ], + 'Report width wide: 1000; delimiter line length should match longest line' => [ + 'reportWidth' => 1000, + 'expectedOutput' => $summaryLine.str_repeat('-', 666).PHP_EOL + .'- Fixtures.Deprecated.WithLongReplacement'.PHP_EOL + .' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel vestibulum nunc. Sed luctus dolor tortor, eu euismod purus pretium sed. Fusce egestas congue massa semper cursus. Donec quis pretium tellus. In lacinia, augue ut ornare porttitor, diam nunc faucibus purus, et accumsan eros sapien at sem. Sed pulvinar aliquam malesuada. Aliquam erat volutpat. Mauris gravida rutrum lectus at egestas. Fusce tempus elit in tincidunt dictum. Suspendisse dictum egestas sapien, eget ullamcorper metus elementum semper. Vestibulum sem justo, consectetur ac tincidunt et, finibus eget libero.' + .PHP_EOL.PHP_EOL + .'Deprecated sniffs are still run, but will stop working at some point in the future.'.PHP_EOL.PHP_EOL, + ], + ]; + // phpcs:enable + + }//end dataReportWidthIsRespected() + + + /** + * Test deprecated sniffs are listed alphabetically in the deprecated sniffs warning. + * + * Additionally, this test verifies that deprecated sniffs are still registered to run. + * + * @return void + */ + public function testDeprecatedSniffsAreListedAlphabetically() + { + // Set up the ruleset. + $standard = __DIR__.'/ShowSniffDeprecationsOrderTest.xml'; + $config = new ConfigDouble(["--standard=$standard", '--no-colors']); + $ruleset = new Ruleset($config); + + $expected = 'WARNING: The SniffDeprecationTest standard uses 2 deprecated sniffs'.PHP_EOL; + $expected .= '--------------------------------------------------------------------------------'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithoutReplacement'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.4.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= '- Fixtures.Deprecated.WithReplacement'.PHP_EOL; + $expected .= ' This sniff has been deprecated since v3.8.0 and will be removed in v4.0.0.'.PHP_EOL; + $expected .= ' Use the Stnd.Category.OtherSniff sniff instead.'.PHP_EOL.PHP_EOL; + $expected .= 'Deprecated sniffs are still run, but will stop working at some point in the'.PHP_EOL; + $expected .= 'future.'.PHP_EOL.PHP_EOL; + + $this->expectOutputString($expected); + + $ruleset->showSniffDeprecations(); + + // Verify that the sniffs have been registered to run. + $this->assertCount(2, $ruleset->sniffCodes, 'Incorrect number of sniff codes registered'); + $this->assertArrayHasKey( + 'Fixtures.Deprecated.WithoutReplacement', + $ruleset->sniffCodes, + 'WithoutReplacement sniff not registered' + ); + $this->assertArrayHasKey( + 'Fixtures.Deprecated.WithReplacement', + $ruleset->sniffCodes, + 'WithReplacement sniff not registered' + ); + + }//end testDeprecatedSniffsAreListedAlphabetically() + + + /** + * Test that an exception is thrown when any of the interface required methods does not + * comply with the return type/value requirements. + * + * @param string $standard The standard to use for the test. + * @param string $exceptionMessage The contents of the expected exception message. + * + * @dataProvider dataExceptionIsThrownOnIncorrectlyImplementedInterface + * + * @return void + */ + public function testExceptionIsThrownOnIncorrectlyImplementedInterface($standard, $exceptionMessage) + { + $exception = 'PHP_CodeSniffer\Exceptions\RuntimeException'; + if (method_exists($this, 'expectException') === true) { + // PHPUnit 5+. + $this->expectException($exception); + $this->expectExceptionMessage($exceptionMessage); + } else { + // PHPUnit 4. + $this->setExpectedException($exception, $exceptionMessage); + } + + // Set up the ruleset. + $standard = __DIR__.'/'.$standard; + $config = new ConfigDouble(["--standard=$standard"]); + $ruleset = new Ruleset($config); + + $ruleset->showSniffDeprecations(); + + }//end testExceptionIsThrownOnIncorrectlyImplementedInterface() + + + /** + * Data provider. + * + * @see testExceptionIsThrownOnIncorrectlyImplementedInterface() + * + * @return array> + */ + public static function dataExceptionIsThrownOnIncorrectlyImplementedInterface() + { + return [ + 'getDeprecationVersion() does not return a string' => [ + 'standard' => 'ShowSniffDeprecationsInvalidDeprecationVersionTest.xml', + 'exceptionMessage' => 'The Fixtures\Sniffs\DeprecatedInvalid\InvalidDeprecationVersionSniff::getDeprecationVersion() method must return a non-empty string, received double', + ], + 'getRemovalVersion() does not return a string' => [ + 'standard' => 'ShowSniffDeprecationsInvalidRemovalVersionTest.xml', + 'exceptionMessage' => 'The Fixtures\Sniffs\DeprecatedInvalid\InvalidRemovalVersionSniff::getRemovalVersion() method must return a non-empty string, received array', + ], + 'getDeprecationMessage() does not return a string' => [ + 'standard' => 'ShowSniffDeprecationsInvalidDeprecationMessageTest.xml', + 'exceptionMessage' => 'The Fixtures\Sniffs\DeprecatedInvalid\InvalidDeprecationMessageSniff::getDeprecationMessage() method must return a string, received object', + ], + 'getDeprecationVersion() returns an empty string' => [ + 'standard' => 'ShowSniffDeprecationsEmptyDeprecationVersionTest.xml', + 'exceptionMessage' => 'The Fixtures\Sniffs\DeprecatedInvalid\EmptyDeprecationVersionSniff::getDeprecationVersion() method must return a non-empty string, received ""', + ], + 'getRemovalVersion() returns an empty string' => [ + 'standard' => 'ShowSniffDeprecationsEmptyRemovalVersionTest.xml', + 'exceptionMessage' => 'The Fixtures\Sniffs\DeprecatedInvalid\EmptyRemovalVersionSniff::getRemovalVersion() method must return a non-empty string, received ""', + ], + ]; + + }//end dataExceptionIsThrownOnIncorrectlyImplementedInterface() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsTest.xml b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsTest.xml new file mode 100644 index 000000000..4c1dec220 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Ruleset/ShowSniffDeprecationsTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTest.php index 20c28d60b..f074d9500 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTest.php @@ -4,14 +4,19 @@ * * @author Greg Sherwood * @copyright 2006-2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Sniffs; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -class AbstractArraySniffTest extends AbstractMethodUnitTest +/** + * Tests for the \PHP_CodeSniffer\Sniffs\AbstractArraySniff. + * + * @covers \PHP_CodeSniffer\Sniffs\AbstractArraySniff + */ +final class AbstractArraySniffTest extends AbstractMethodUnitTest { /** @@ -31,14 +36,16 @@ class AbstractArraySniffTest extends AbstractMethodUnitTest * The test case file for a unit test class has to be in the same directory * directory and use the same file name as the test class, using the .inc extension. * + * @beforeClass + * * @return void */ - public static function setUpBeforeClass() + public static function initializeFile() { self::$sniff = new AbstractArraySniffTestable(); - parent::setUpBeforeClass(); + parent::initializeFile(); - }//end setUpBeforeClass() + }//end initializeFile() /** diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTestable.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTestable.php index a224012f2..751b01a8b 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTestable.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Sniffs/AbstractArraySniffTestable.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Sniffs; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AbstractTokenizerTestCase.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AbstractTokenizerTestCase.php new file mode 100644 index 000000000..0f829182b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AbstractTokenizerTestCase.php @@ -0,0 +1,126 @@ + + * @copyright 2018-2019 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer; + +use PHP_CodeSniffer\Files\DummyFile; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHPUnit\Framework\TestCase; +use ReflectionProperty; + +abstract class AbstractTokenizerTestCase extends TestCase +{ + + /** + * The file extension of the test case file (without leading dot). + * + * This allows child classes to overrule the default `inc` with, for instance, + * `js` or `css` when applicable. + * + * @var string + */ + protected $fileExtension = 'inc'; + + /** + * The tab width setting to use when tokenizing the file. + * + * This allows for test case files to use a different tab width than the default. + * + * @var integer + */ + protected $tabWidth = 4; + + /** + * The \PHP_CodeSniffer\Files\File object containing the parsed contents of the test case file. + * + * @var \PHP_CodeSniffer\Files\File + */ + protected $phpcsFile; + + + /** + * Initialize & tokenize \PHP_CodeSniffer\Files\File with code from the test case file. + * + * The test case file for a unit test class has to be in the same directory + * directory and use the same file name as the test class, using the .inc extension. + * + * @before + * + * @return void + */ + protected function initializeFile() + { + if (isset($this->phpcsFile) === false) { + $_SERVER['argv'] = []; + $config = new ConfigDouble(); + + // Also set a tab-width to enable testing tab-replaced vs `orig_content`. + $config->tabWidth = $this->tabWidth; + + $ruleset = new Ruleset($config); + + // Default to a file with the same name as the test class. Extension is property based. + $relativeCN = str_replace(__NAMESPACE__, '', get_called_class()); + $relativePath = str_replace('\\', DIRECTORY_SEPARATOR, $relativeCN); + $pathToTestFile = realpath(__DIR__).$relativePath.'.'.$this->fileExtension; + + // Make sure the file gets parsed correctly based on the file type. + $contents = 'phpcs_input_file: '.$pathToTestFile.PHP_EOL; + $contents .= file_get_contents($pathToTestFile); + + $this->phpcsFile = new DummyFile($contents, $ruleset, $config); + $this->phpcsFile->parse(); + }//end if + + }//end initializeFile() + + + /** + * Get the token pointer for a target token based on a specific comment found on the line before. + * + * Note: the test delimiter comment MUST start with "/* test" to allow this function to + * distinguish between comments used *in* a test and test delimiters. + * + * @param string $commentString The delimiter comment to look for. + * @param int|string|array $tokenType The type of token(s) to look for. + * @param string $tokenContent Optional. The token content for the target token. + * + * @return int + */ + protected function getTargetToken($commentString, $tokenType, $tokenContent=null) + { + return AbstractMethodUnitTest::getTargetTokenFromFile($this->phpcsFile, $commentString, $tokenType, $tokenContent); + + }//end getTargetToken() + + + /** + * Clear the static "resolved tokens" cache property on the Tokenizer\PHP class. + * + * This method should be used selectively by tests to ensure the code under test is actually hit + * by the test testing the code. + * + * @return void + */ + public static function clearResolvedTokensCache() + { + $property = new ReflectionProperty('PHP_CodeSniffer\Tokenizers\PHP', 'resolveTokenCache'); + $property->setAccessible(true); + $property->setValue(null, []); + $property->setAccessible(false); + + }//end clearResolvedTokensCache() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.inc deleted file mode 100644 index 5867691c6..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AnonClassParenthesisOwnerTest.inc +++ /dev/null @@ -1,19 +0,0 @@ - - * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -use PHP_CodeSniffer\Util\Tokens; - -class AttributesTest extends AbstractMethodUnitTest -{ - - - /** - * Test that attributes are parsed correctly. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * @param int $length The number of tokens between opener and closer. - * @param array $tokenCodes The codes of tokens inside the attributes. - * - * @dataProvider dataAttribute - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser - * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute - * - * @return void - */ - public function testAttribute($testMarker, $length, $tokenCodes) - { - $tokens = self::$phpcsFile->getTokens(); - - $attribute = $this->getTargetToken($testMarker, T_ATTRIBUTE); - $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); - - $closer = $tokens[$attribute]['attribute_closer']; - $this->assertSame(($attribute + $length), $closer); - - $this->assertSame(T_ATTRIBUTE_END, $tokens[$closer]['code']); - - $this->assertSame($tokens[$attribute]['attribute_opener'], $tokens[$closer]['attribute_opener']); - $this->assertSame($tokens[$attribute]['attribute_closer'], $tokens[$closer]['attribute_closer']); - - $map = array_map( - function ($token) use ($attribute, $length) { - $this->assertArrayHasKey('attribute_closer', $token); - $this->assertSame(($attribute + $length), $token['attribute_closer']); - - return $token['code']; - }, - array_slice($tokens, ($attribute + 1), ($length - 1)) - ); - - $this->assertSame($tokenCodes, $map); - - }//end testAttribute() - - - /** - * Data provider. - * - * @see testAttribute() - * - * @return array - */ - public function dataAttribute() - { - return [ - [ - '/* testAttribute */', - 2, - [ T_STRING ], - ], - [ - '/* testAttributeWithParams */', - 7, - [ - T_STRING, - T_OPEN_PARENTHESIS, - T_STRING, - T_DOUBLE_COLON, - T_STRING, - T_CLOSE_PARENTHESIS, - ], - ], - [ - '/* testAttributeWithNamedParam */', - 10, - [ - T_STRING, - T_OPEN_PARENTHESIS, - T_PARAM_NAME, - T_COLON, - T_WHITESPACE, - T_STRING, - T_DOUBLE_COLON, - T_STRING, - T_CLOSE_PARENTHESIS, - ], - ], - [ - '/* testAttributeOnFunction */', - 2, - [ T_STRING ], - ], - [ - '/* testAttributeOnFunctionWithParams */', - 17, - [ - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_COMMA, - T_WHITESPACE, - T_PARAM_NAME, - T_COLON, - T_WHITESPACE, - T_OPEN_SHORT_ARRAY, - T_CONSTANT_ENCAPSED_STRING, - T_WHITESPACE, - T_DOUBLE_ARROW, - T_WHITESPACE, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_SHORT_ARRAY, - T_CLOSE_PARENTHESIS, - ], - ], - [ - '/* testAttributeWithShortClosureParameter */', - 17, - [ - T_STRING, - T_OPEN_PARENTHESIS, - T_STATIC, - T_WHITESPACE, - T_FN, - T_WHITESPACE, - T_OPEN_PARENTHESIS, - T_VARIABLE, - T_CLOSE_PARENTHESIS, - T_WHITESPACE, - T_FN_ARROW, - T_WHITESPACE, - T_BOOLEAN_NOT, - T_WHITESPACE, - T_VARIABLE, - T_CLOSE_PARENTHESIS, - ], - ], - [ - '/* testAttributeGrouping */', - 26, - [ - T_STRING, - T_COMMA, - T_WHITESPACE, - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_PARENTHESIS, - T_COMMA, - T_WHITESPACE, - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_COMMA, - T_WHITESPACE, - T_PARAM_NAME, - T_COLON, - T_WHITESPACE, - T_OPEN_SHORT_ARRAY, - T_CONSTANT_ENCAPSED_STRING, - T_WHITESPACE, - T_DOUBLE_ARROW, - T_WHITESPACE, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_SHORT_ARRAY, - T_CLOSE_PARENTHESIS, - ], - ], - [ - '/* testAttributeMultiline */', - 31, - [ - T_WHITESPACE, - T_WHITESPACE, - T_STRING, - T_COMMA, - T_WHITESPACE, - T_WHITESPACE, - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_PARENTHESIS, - T_COMMA, - T_WHITESPACE, - T_WHITESPACE, - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_COMMA, - T_WHITESPACE, - T_PARAM_NAME, - T_COLON, - T_WHITESPACE, - T_OPEN_SHORT_ARRAY, - T_CONSTANT_ENCAPSED_STRING, - T_WHITESPACE, - T_DOUBLE_ARROW, - T_WHITESPACE, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_SHORT_ARRAY, - T_CLOSE_PARENTHESIS, - T_WHITESPACE, - ], - ], - [ - '/* testFqcnAttribute */', - 13, - [ - T_STRING, - T_NS_SEPARATOR, - T_STRING, - T_COMMA, - T_WHITESPACE, - T_NS_SEPARATOR, - T_STRING, - T_NS_SEPARATOR, - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_PARENTHESIS, - ], - ], - ]; - - }//end dataAttribute() - - - /** - * Test that multiple attributes on the same line are parsed correctly. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser - * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute - * - * @return void - */ - public function testTwoAttributesOnTheSameLine() - { - $tokens = self::$phpcsFile->getTokens(); - - $attribute = $this->getTargetToken('/* testTwoAttributeOnTheSameLine */', T_ATTRIBUTE); - $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); - - $closer = $tokens[$attribute]['attribute_closer']; - $this->assertSame(T_WHITESPACE, $tokens[($closer + 1)]['code']); - $this->assertSame(T_ATTRIBUTE, $tokens[($closer + 2)]['code']); - $this->assertArrayHasKey('attribute_closer', $tokens[($closer + 2)]); - - }//end testTwoAttributesOnTheSameLine() - - - /** - * Test that attribute followed by a line comment is parsed correctly. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser - * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute - * - * @return void - */ - public function testAttributeAndLineComment() - { - $tokens = self::$phpcsFile->getTokens(); - - $attribute = $this->getTargetToken('/* testAttributeAndCommentOnTheSameLine */', T_ATTRIBUTE); - $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); - - $closer = $tokens[$attribute]['attribute_closer']; - $this->assertSame(T_WHITESPACE, $tokens[($closer + 1)]['code']); - $this->assertSame(T_COMMENT, $tokens[($closer + 2)]['code']); - - }//end testAttributeAndLineComment() - - - /** - * Test that attribute followed by a line comment is parsed correctly. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * @param int $position The token position (starting from T_FUNCTION) of T_ATTRIBUTE token. - * @param int $length The number of tokens between opener and closer. - * @param array $tokenCodes The codes of tokens inside the attributes. - * - * @dataProvider dataAttributeOnParameters - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser - * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute - * - * @return void - */ - public function testAttributeOnParameters($testMarker, $position, $length, array $tokenCodes) - { - $tokens = self::$phpcsFile->getTokens(); - - $function = $this->getTargetToken($testMarker, T_FUNCTION); - $attribute = ($function + $position); - - $this->assertSame(T_ATTRIBUTE, $tokens[$attribute]['code']); - $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); - - $this->assertSame(($attribute + $length), $tokens[$attribute]['attribute_closer']); - - $closer = $tokens[$attribute]['attribute_closer']; - $this->assertSame(T_WHITESPACE, $tokens[($closer + 1)]['code']); - $this->assertSame(T_STRING, $tokens[($closer + 2)]['code']); - $this->assertSame('int', $tokens[($closer + 2)]['content']); - - $this->assertSame(T_VARIABLE, $tokens[($closer + 4)]['code']); - $this->assertSame('$param', $tokens[($closer + 4)]['content']); - - $map = array_map( - function ($token) use ($attribute, $length) { - $this->assertArrayHasKey('attribute_closer', $token); - $this->assertSame(($attribute + $length), $token['attribute_closer']); - - return $token['code']; - }, - array_slice($tokens, ($attribute + 1), ($length - 1)) - ); - - $this->assertSame($tokenCodes, $map); - - }//end testAttributeOnParameters() - - - /** - * Data provider. - * - * @see testAttributeOnParameters() - * - * @return array - */ - public function dataAttributeOnParameters() - { - return [ - [ - '/* testSingleAttributeOnParameter */', - 4, - 2, - [T_STRING], - ], - [ - '/* testMultipleAttributesOnParameter */', - 4, - 10, - [ - T_STRING, - T_COMMA, - T_WHITESPACE, - T_STRING, - T_OPEN_PARENTHESIS, - T_COMMENT, - T_WHITESPACE, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_PARENTHESIS, - ], - ], - [ - '/* testMultilineAttributesOnParameter */', - 4, - 13, - [ - T_WHITESPACE, - T_WHITESPACE, - T_STRING, - T_OPEN_PARENTHESIS, - T_WHITESPACE, - T_WHITESPACE, - T_CONSTANT_ENCAPSED_STRING, - T_WHITESPACE, - T_WHITESPACE, - T_CLOSE_PARENTHESIS, - T_WHITESPACE, - T_WHITESPACE, - ], - ], - ]; - - }//end dataAttributeOnParameters() - - - /** - * Test that invalid attribute (or comment starting with #[ and without ]) are parsed correctly. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser - * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute - * - * @return void - */ - public function testInvalidAttribute() - { - $tokens = self::$phpcsFile->getTokens(); - - $attribute = $this->getTargetToken('/* testInvalidAttribute */', T_ATTRIBUTE); - - $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); - $this->assertNull($tokens[$attribute]['attribute_closer']); - - }//end testInvalidAttribute() - - - /** - * Test that nested attributes are parsed correctly. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser - * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute - * - * @return void - */ - public function testNestedAttributes() - { - $tokens = self::$phpcsFile->getTokens(); - $tokenCodes = [ - T_STRING, - T_NS_SEPARATOR, - T_STRING, - T_OPEN_PARENTHESIS, - T_FN, - T_WHITESPACE, - T_OPEN_PARENTHESIS, - T_ATTRIBUTE, - T_STRING, - T_OPEN_PARENTHESIS, - T_CONSTANT_ENCAPSED_STRING, - T_CLOSE_PARENTHESIS, - T_ATTRIBUTE_END, - T_WHITESPACE, - T_VARIABLE, - T_CLOSE_PARENTHESIS, - T_WHITESPACE, - T_FN_ARROW, - T_WHITESPACE, - T_STRING_CAST, - T_WHITESPACE, - T_VARIABLE, - T_CLOSE_PARENTHESIS, - ]; - - $attribute = $this->getTargetToken('/* testNestedAttributes */', T_ATTRIBUTE); - $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); - - $closer = $tokens[$attribute]['attribute_closer']; - $this->assertSame(($attribute + 24), $closer); - - $this->assertSame(T_ATTRIBUTE_END, $tokens[$closer]['code']); - - $this->assertSame($tokens[$attribute]['attribute_opener'], $tokens[$closer]['attribute_opener']); - $this->assertSame($tokens[$attribute]['attribute_closer'], $tokens[$closer]['attribute_closer']); - - $this->assertArrayNotHasKey('nested_attributes', $tokens[$attribute]); - $this->assertArrayHasKey('nested_attributes', $tokens[($attribute + 8)]); - $this->assertSame([$attribute => ($attribute + 24)], $tokens[($attribute + 8)]['nested_attributes']); - - $test = function (array $tokens, $length, $nestedMap) use ($attribute) { - foreach ($tokens as $token) { - $this->assertArrayHasKey('attribute_closer', $token); - $this->assertSame(($attribute + $length), $token['attribute_closer']); - $this->assertSame($nestedMap, $token['nested_attributes']); - } - }; - - $test(array_slice($tokens, ($attribute + 1), 7), 24, [$attribute => $attribute + 24]); - $test(array_slice($tokens, ($attribute + 8), 1), 8 + 5, [$attribute => $attribute + 24]); - - // Length here is 8 (nested attribute offset) + 5 (real length). - $test( - array_slice($tokens, ($attribute + 9), 4), - 8 + 5, - [ - $attribute => $attribute + 24, - $attribute + 8 => $attribute + 13, - ] - ); - - $test(array_slice($tokens, ($attribute + 13), 1), 8 + 5, [$attribute => $attribute + 24]); - $test(array_slice($tokens, ($attribute + 14), 10), 24, [$attribute => $attribute + 24]); - - $map = array_map( - static function ($token) { - return $token['code']; - }, - array_slice($tokens, ($attribute + 1), 23) - ); - - $this->assertSame($tokenCodes, $map); - - }//end testNestedAttributes() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillFnTokenTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillFnTokenTest.php deleted file mode 100644 index 6404026c3..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillFnTokenTest.php +++ /dev/null @@ -1,733 +0,0 @@ - - * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class BackfillFnTokenTest extends AbstractMethodUnitTest -{ - - - /** - * Test simple arrow functions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testSimple() - { - foreach (['/* testStandard */', '/* testMixedCase */'] as $comment) { - $token = $this->getTargetToken($comment, T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 12); - } - - }//end testSimple() - - - /** - * Test whitespace inside arrow function definitions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testWhitespace() - { - $token = $this->getTargetToken('/* testWhitespace */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 6, 13); - - }//end testWhitespace() - - - /** - * Test comments inside arrow function definitions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testComment() - { - $token = $this->getTargetToken('/* testComment */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 8, 15); - - }//end testComment() - - - /** - * Test heredocs inside arrow function definitions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testHeredoc() - { - $token = $this->getTargetToken('/* testHeredoc */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 4, 9); - - }//end testHeredoc() - - - /** - * Test nested arrow functions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNestedOuter() - { - $token = $this->getTargetToken('/* testNestedOuter */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 25); - - }//end testNestedOuter() - - - /** - * Test nested arrow functions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNestedInner() - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken('/* testNestedInner */', T_FN); - $this->backfillHelper($token, true); - - $expectedScopeOpener = ($token + 5); - $expectedScopeCloser = ($token + 16); - - $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer is not the semicolon token'); - - $opener = $tokens[$token]['scope_opener']; - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer is not the semicolon token'); - - $closer = $tokens[$token]['scope_closer']; - $this->assertSame(($token - 4), $tokens[$closer]['scope_opener'], 'Closer scope opener is not the arrow token of the "outer" arrow function (shared scope closer)'); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer is not the semicolon token'); - - }//end testNestedInner() - - - /** - * Test arrow functions that call functions. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testFunctionCall() - { - $token = $this->getTargetToken('/* testFunctionCall */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 17); - - }//end testFunctionCall() - - - /** - * Test arrow functions that are included in chained calls. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testChainedFunctionCall() - { - $token = $this->getTargetToken('/* testChainedFunctionCall */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 12, 'bracket'); - - }//end testChainedFunctionCall() - - - /** - * Test arrow functions that are used as function arguments. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testFunctionArgument() - { - $token = $this->getTargetToken('/* testFunctionArgument */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 8, 15, 'comma'); - - }//end testFunctionArgument() - - - /** - * Test arrow functions that use closures. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testClosure() - { - $token = $this->getTargetToken('/* testClosure */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 60, 'comma'); - - }//end testClosure() - - - /** - * Test arrow functions using an array index. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testArrayIndex() - { - $token = $this->getTargetToken('/* testArrayIndex */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 8, 17, 'comma'); - - }//end testArrayIndex() - - - /** - * Test arrow functions with a return type. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testReturnType() - { - $token = $this->getTargetToken('/* testReturnType */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 11, 18, 'comma'); - - }//end testReturnType() - - - /** - * Test arrow functions that return a reference. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testReference() - { - $token = $this->getTargetToken('/* testReference */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 6, 9); - - }//end testReference() - - - /** - * Test arrow functions that are grouped by parenthesis. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testGrouped() - { - $token = $this->getTargetToken('/* testGrouped */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 8); - - }//end testGrouped() - - - /** - * Test arrow functions that are used as array values. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testArrayValue() - { - $token = $this->getTargetToken('/* testArrayValue */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 4, 9, 'comma'); - - }//end testArrayValue() - - - /** - * Test arrow functions that use the yield keyword. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testYield() - { - $token = $this->getTargetToken('/* testYield */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 14); - - }//end testYield() - - - /** - * Test arrow functions that use nullable namespace types. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNullableNamespace() - { - $token = $this->getTargetToken('/* testNullableNamespace */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 15, 18); - - }//end testNullableNamespace() - - - /** - * Test arrow functions that use the namespace operator in the return type. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNamespaceOperatorInTypes() - { - $token = $this->getTargetToken('/* testNamespaceOperatorInTypes */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 16, 19); - - }//end testNamespaceOperatorInTypes() - - - /** - * Test arrow functions that use self/parent/callable/array/static return types. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testKeywordReturnTypes() - { - $tokens = self::$phpcsFile->getTokens(); - - $testMarkers = [ - 'Self', - 'Parent', - 'Callable', - 'Array', - 'Static', - ]; - - foreach ($testMarkers as $marker) { - $token = $this->getTargetToken('/* test'.$marker.'ReturnType */', T_FN); - $this->backfillHelper($token); - - $expectedScopeOpener = ($token + 11); - $expectedScopeCloser = ($token + 14); - - $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], "Scope opener is not the arrow token (for $marker)"); - $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], "Scope closer is not the semicolon token(for $marker)"); - - $opener = $tokens[$token]['scope_opener']; - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], "Opener scope opener is not the arrow token(for $marker)"); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], "Opener scope closer is not the semicolon token(for $marker)"); - - $closer = $tokens[$token]['scope_closer']; - $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], "Closer scope opener is not the arrow token(for $marker)"); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], "Closer scope closer is not the semicolon token(for $marker)"); - } - - }//end testKeywordReturnTypes() - - - /** - * Test arrow function with a union parameter type. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testUnionParamType() - { - $token = $this->getTargetToken('/* testUnionParamType */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 13, 21); - - }//end testUnionParamType() - - - /** - * Test arrow function with a union return type. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testUnionReturnType() - { - $token = $this->getTargetToken('/* testUnionReturnType */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 11, 18); - - }//end testUnionReturnType() - - - /** - * Test arrow functions used in ternary operators. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testTernary() - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken('/* testTernary */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 40); - - $token = $this->getTargetToken('/* testTernaryThen */', T_FN); - $this->backfillHelper($token); - - $expectedScopeOpener = ($token + 8); - $expectedScopeCloser = ($token + 12); - - $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener for THEN is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer for THEN is not the semicolon token'); - - $opener = $tokens[$token]['scope_opener']; - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener for THEN is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer for THEN is not the semicolon token'); - - $closer = $tokens[$token]['scope_closer']; - $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'Closer scope opener for THEN is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer for THEN is not the semicolon token'); - - $token = $this->getTargetToken('/* testTernaryElse */', T_FN); - $this->backfillHelper($token, true); - - $expectedScopeOpener = ($token + 8); - $expectedScopeCloser = ($token + 11); - - $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener for ELSE is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer for ELSE is not the semicolon token'); - - $opener = $tokens[$token]['scope_opener']; - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener for ELSE is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer for ELSE is not the semicolon token'); - - $closer = $tokens[$token]['scope_closer']; - $this->assertSame(($token - 24), $tokens[$closer]['scope_opener'], 'Closer scope opener for ELSE is not the arrow token of the "outer" arrow function (shared scope closer)'); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer for ELSE is not the semicolon token'); - - }//end testTernary() - - - /** - * Test arrow function returning a match control structure. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testWithMatchValue() - { - $token = $this->getTargetToken('/* testWithMatchValue */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 44); - - }//end testWithMatchValue() - - - /** - * Test arrow function returning a match control structure with something behind it. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testWithMatchValueAndMore() - { - $token = $this->getTargetToken('/* testWithMatchValueAndMore */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 48); - - }//end testWithMatchValueAndMore() - - - /** - * Test match control structure returning arrow functions. - * - * @param string $testMarker The comment prefacing the target token. - * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. - * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. - * @param string $expectedCloserType The type of token expected for the scope closer. - * @param string $expectedCloserFriendlyName A friendly name for the type of token expected for the scope closer - * to be used in the error message for failing tests. - * - * @dataProvider dataInMatchValue - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testInMatchValue($testMarker, $openerOffset, $closerOffset, $expectedCloserType, $expectedCloserFriendlyName) - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, $openerOffset, $closerOffset, $expectedCloserFriendlyName); - - $this->assertSame($expectedCloserType, $tokens[($token + $closerOffset)]['type'], 'Mismatched scope closer type'); - - }//end testInMatchValue() - - - /** - * Data provider. - * - * @see testInMatchValue() - * - * @return array - */ - public function dataInMatchValue() - { - return [ - 'not_last_value' => [ - '/* testInMatchNotLastValue */', - 5, - 11, - 'T_COMMA', - 'comma', - ], - 'last_value_with_trailing_comma' => [ - '/* testInMatchLastValueWithTrailingComma */', - 5, - 11, - 'T_COMMA', - 'comma', - ], - 'last_value_without_trailing_comma_1' => [ - '/* testInMatchLastValueNoTrailingComma1 */', - 5, - 10, - 'T_CLOSE_PARENTHESIS', - 'close parenthesis', - ], - 'last_value_without_trailing_comma_2' => [ - '/* testInMatchLastValueNoTrailingComma2 */', - 5, - 11, - 'T_VARIABLE', - '$y variable', - ], - ]; - - }//end dataInMatchValue() - - - /** - * Test arrow function nested within a method declaration. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNestedInMethod() - { - $token = $this->getTargetToken('/* testNestedInMethod */', T_FN); - $this->backfillHelper($token); - $this->scopePositionTestHelper($token, 5, 17); - - }//end testNestedInMethod() - - - /** - * Verify that "fn" keywords which are not arrow functions get tokenized as T_STRING and don't - * have the extra token array indexes. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to look for. - * - * @dataProvider dataNotAnArrowFunction - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNotAnArrowFunction($testMarker, $testContent='fn') - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_STRING, T_FN], $testContent); - $tokenArray = $tokens[$token]; - - $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING'); - - $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); - $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); - $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); - $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set'); - $this->assertArrayNotHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is set'); - $this->assertArrayNotHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is set'); - - }//end testNotAnArrowFunction() - - - /** - * Data provider. - * - * @see testNotAnArrowFunction() - * - * @return array - */ - public function dataNotAnArrowFunction() - { - return [ - ['/* testFunctionName */'], - [ - '/* testConstantDeclaration */', - 'FN', - ], - [ - '/* testConstantDeclarationLower */', - 'fn', - ], - ['/* testStaticMethodName */'], - ['/* testPropertyAssignment */'], - [ - '/* testAnonClassMethodName */', - 'fN', - ], - ['/* testNonArrowStaticMethodCall */'], - [ - '/* testNonArrowConstantAccess */', - 'FN', - ], - [ - '/* testNonArrowConstantAccessMixed */', - 'Fn', - ], - ['/* testNonArrowObjectMethodCall */'], - [ - '/* testNonArrowObjectMethodCallUpper */', - 'FN', - ], - [ - '/* testNonArrowNamespacedFunctionCall */', - 'Fn', - ], - ['/* testNonArrowNamespaceOperatorFunctionCall */'], - ['/* testNonArrowFunctionNameWithUnionTypes */'], - ['/* testLiveCoding */'], - ]; - - }//end dataNotAnArrowFunction() - - - /** - * Helper function to check that all token keys are correctly set for T_FN tokens. - * - * @param int $token The T_FN token to check. - * @param bool $skipScopeCloserCheck Whether to skip the scope closer check. - * This should be set to "true" when testing nested arrow functions, - * where the "inner" arrow function shares a scope closer with the - * "outer" arrow function, as the 'scope_condition' for the scope closer - * of the "inner" arrow function will point to the "outer" arrow function. - * - * @return void - */ - private function backfillHelper($token, $skipScopeCloserCheck=false) - { - $tokens = self::$phpcsFile->getTokens(); - - $this->assertTrue(array_key_exists('scope_condition', $tokens[$token]), 'Scope condition is not set'); - $this->assertTrue(array_key_exists('scope_opener', $tokens[$token]), 'Scope opener is not set'); - $this->assertTrue(array_key_exists('scope_closer', $tokens[$token]), 'Scope closer is not set'); - $this->assertSame($tokens[$token]['scope_condition'], $token, 'Scope condition is not the T_FN token'); - $this->assertTrue(array_key_exists('parenthesis_owner', $tokens[$token]), 'Parenthesis owner is not set'); - $this->assertTrue(array_key_exists('parenthesis_opener', $tokens[$token]), 'Parenthesis opener is not set'); - $this->assertTrue(array_key_exists('parenthesis_closer', $tokens[$token]), 'Parenthesis closer is not set'); - $this->assertSame($tokens[$token]['parenthesis_owner'], $token, 'Parenthesis owner is not the T_FN token'); - - $opener = $tokens[$token]['scope_opener']; - $this->assertTrue(array_key_exists('scope_condition', $tokens[$opener]), 'Opener scope condition is not set'); - $this->assertTrue(array_key_exists('scope_opener', $tokens[$opener]), 'Opener scope opener is not set'); - $this->assertTrue(array_key_exists('scope_closer', $tokens[$opener]), 'Opener scope closer is not set'); - $this->assertSame($tokens[$opener]['scope_condition'], $token, 'Opener scope condition is not the T_FN token'); - $this->assertSame(T_FN_ARROW, $tokens[$opener]['code'], 'Arrow scope opener not tokenized as T_FN_ARROW (code)'); - $this->assertSame('T_FN_ARROW', $tokens[$opener]['type'], 'Arrow scope opener not tokenized as T_FN_ARROW (type)'); - - $closer = $tokens[$token]['scope_closer']; - $this->assertTrue(array_key_exists('scope_condition', $tokens[$closer]), 'Closer scope condition is not set'); - $this->assertTrue(array_key_exists('scope_opener', $tokens[$closer]), 'Closer scope opener is not set'); - $this->assertTrue(array_key_exists('scope_closer', $tokens[$closer]), 'Closer scope closer is not set'); - if ($skipScopeCloserCheck === false) { - $this->assertSame($tokens[$closer]['scope_condition'], $token, 'Closer scope condition is not the T_FN token'); - } - - $opener = $tokens[$token]['parenthesis_opener']; - $this->assertTrue(array_key_exists('parenthesis_owner', $tokens[$opener]), 'Opening parenthesis owner is not set'); - $this->assertSame($tokens[$opener]['parenthesis_owner'], $token, 'Opening parenthesis owner is not the T_FN token'); - - $closer = $tokens[$token]['parenthesis_closer']; - $this->assertTrue(array_key_exists('parenthesis_owner', $tokens[$closer]), 'Closing parenthesis owner is not set'); - $this->assertSame($tokens[$closer]['parenthesis_owner'], $token, 'Closing parenthesis owner is not the T_FN token'); - - }//end backfillHelper() - - - /** - * Helper function to check that the scope opener/closer positions are correctly set for T_FN tokens. - * - * @param int $token The T_FN token to check. - * @param int $openerOffset The expected offset of the scope opener in relation to - * the fn keyword. - * @param int $closerOffset The expected offset of the scope closer in relation to - * the fn keyword. - * @param string $expectedCloserType Optional. The type of token expected for the scope closer. - * - * @return void - */ - private function scopePositionTestHelper($token, $openerOffset, $closerOffset, $expectedCloserType='semicolon') - { - $tokens = self::$phpcsFile->getTokens(); - $expectedScopeOpener = ($token + $openerOffset); - $expectedScopeCloser = ($token + $closerOffset); - - $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer is not the '.$expectedCloserType.' token'); - - $opener = $tokens[$token]['scope_opener']; - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer is not the '.$expectedCloserType.' token'); - - $closer = $tokens[$token]['scope_closer']; - $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'Closer scope opener is not the arrow token'); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer is not the '.$expectedCloserType.' token'); - - }//end scopePositionTestHelper() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillMatchTokenTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillMatchTokenTest.php deleted file mode 100644 index 80f909acd..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillMatchTokenTest.php +++ /dev/null @@ -1,529 +0,0 @@ - - * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -use PHP_CodeSniffer\Util\Tokens; - -class BackfillMatchTokenTest extends AbstractMethodUnitTest -{ - - - /** - * Test tokenization of match expressions. - * - * @param string $testMarker The comment prefacing the target token. - * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. - * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. - * @param string $testContent The token content to look for. - * - * @dataProvider dataMatchExpression - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testMatchExpression($testMarker, $openerOffset, $closerOffset, $testContent='match') - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_STRING, T_MATCH], $testContent); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_MATCH, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH (code)'); - $this->assertSame('T_MATCH', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH (type)'); - - $this->scopeTestHelper($token, $openerOffset, $closerOffset); - $this->parenthesisTestHelper($token); - - }//end testMatchExpression() - - - /** - * Data provider. - * - * @see testMatchExpression() - * - * @return array - */ - public function dataMatchExpression() - { - return [ - 'simple_match' => [ - '/* testMatchSimple */', - 6, - 33, - ], - 'no_trailing_comma' => [ - '/* testMatchNoTrailingComma */', - 6, - 24, - ], - 'with_default_case' => [ - '/* testMatchWithDefault */', - 6, - 33, - ], - 'expression_in_condition' => [ - '/* testMatchExpressionInCondition */', - 6, - 77, - ], - 'multicase' => [ - '/* testMatchMultiCase */', - 6, - 40, - ], - 'multicase_trailing_comma_in_case' => [ - '/* testMatchMultiCaseTrailingCommaInCase */', - 6, - 47, - ], - 'in_closure_not_lowercase' => [ - '/* testMatchInClosureNotLowercase */', - 6, - 36, - 'Match', - ], - 'in_arrow_function' => [ - '/* testMatchInArrowFunction */', - 5, - 36, - ], - 'arrow_function_in_match_no_trailing_comma' => [ - '/* testArrowFunctionInMatchNoTrailingComma */', - 6, - 44, - ], - 'in_function_call_param_not_lowercase' => [ - '/* testMatchInFunctionCallParamNotLowercase */', - 8, - 32, - 'MATCH', - ], - 'in_method_call_param' => [ - '/* testMatchInMethodCallParam */', - 5, - 13, - ], - 'discard_result' => [ - '/* testMatchDiscardResult */', - 6, - 18, - ], - 'duplicate_conditions_and_comments' => [ - '/* testMatchWithDuplicateConditionsWithComments */', - 12, - 59, - ], - 'nested_match_outer' => [ - '/* testNestedMatchOuter */', - 6, - 33, - ], - 'nested_match_inner' => [ - '/* testNestedMatchInner */', - 6, - 14, - ], - 'ternary_condition' => [ - '/* testMatchInTernaryCondition */', - 6, - 21, - ], - 'ternary_then' => [ - '/* testMatchInTernaryThen */', - 6, - 21, - ], - 'ternary_else' => [ - '/* testMatchInTernaryElse */', - 6, - 21, - ], - 'array_value' => [ - '/* testMatchInArrayValue */', - 6, - 21, - ], - 'array_key' => [ - '/* testMatchInArrayKey */', - 6, - 21, - ], - 'returning_array' => [ - '/* testMatchreturningArray */', - 6, - 125, - ], - 'nested_in_switch_case_1' => [ - '/* testMatchWithDefaultNestedInSwitchCase1 */', - 6, - 25, - ], - 'nested_in_switch_case_2' => [ - '/* testMatchWithDefaultNestedInSwitchCase2 */', - 6, - 25, - ], - 'nested_in_switch_default' => [ - '/* testMatchWithDefaultNestedInSwitchDefault */', - 6, - 25, - ], - 'match_with_nested_switch' => [ - '/* testMatchContainingSwitch */', - 6, - 180, - ], - 'no_cases' => [ - '/* testMatchNoCases */', - 6, - 7, - ], - 'multi_default' => [ - '/* testMatchMultiDefault */', - 6, - 40, - ], - ]; - - }//end dataMatchExpression() - - - /** - * Verify that "match" keywords which are not match control structures get tokenized as T_STRING - * and don't have the extra token array indexes. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to look for. - * - * @dataProvider dataNotAMatchStructure - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNotAMatchStructure($testMarker, $testContent='match') - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_STRING, T_MATCH], $testContent); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); - $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); - - $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); - $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); - $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); - $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set'); - $this->assertArrayNotHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is set'); - $this->assertArrayNotHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is set'); - - $next = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($token + 1), null, true); - if ($next !== false && $tokens[$next]['code'] === T_OPEN_PARENTHESIS) { - $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set for opener after'); - } - - }//end testNotAMatchStructure() - - - /** - * Data provider. - * - * @see testNotAMatchStructure() - * - * @return array - */ - public function dataNotAMatchStructure() - { - return [ - 'static_method_call' => ['/* testNoMatchStaticMethodCall */'], - 'class_constant_access' => [ - '/* testNoMatchClassConstantAccess */', - 'MATCH', - ], - 'class_constant_array_access' => [ - '/* testNoMatchClassConstantArrayAccessMixedCase */', - 'Match', - ], - 'method_call' => ['/* testNoMatchMethodCall */'], - 'method_call_uppercase' => [ - '/* testNoMatchMethodCallUpper */', - 'MATCH', - ], - 'property_access' => ['/* testNoMatchPropertyAccess */'], - 'namespaced_function_call' => ['/* testNoMatchNamespacedFunctionCall */'], - 'namespace_operator_function_call' => ['/* testNoMatchNamespaceOperatorFunctionCall */'], - 'interface_method_declaration' => ['/* testNoMatchInterfaceMethodDeclaration */'], - 'class_constant_declaration' => ['/* testNoMatchClassConstantDeclarationLower */'], - 'class_method_declaration' => ['/* testNoMatchClassMethodDeclaration */'], - 'property_assigment' => ['/* testNoMatchPropertyAssignment */'], - 'class_instantiation' => [ - '/* testNoMatchClassInstantiation */', - 'Match', - ], - 'anon_class_method_declaration' => [ - '/* testNoMatchAnonClassMethodDeclaration */', - 'maTCH', - ], - 'class_declaration' => [ - '/* testNoMatchClassDeclaration */', - 'Match', - ], - 'interface_declaration' => [ - '/* testNoMatchInterfaceDeclaration */', - 'Match', - ], - 'trait_declaration' => [ - '/* testNoMatchTraitDeclaration */', - 'Match', - ], - 'constant_declaration' => [ - '/* testNoMatchConstantDeclaration */', - 'MATCH', - ], - 'function_declaration' => ['/* testNoMatchFunctionDeclaration */'], - 'namespace_declaration' => [ - '/* testNoMatchNamespaceDeclaration */', - 'Match', - ], - 'class_extends_declaration' => [ - '/* testNoMatchExtendedClassDeclaration */', - 'Match', - ], - 'class_implements_declaration' => [ - '/* testNoMatchImplementedClassDeclaration */', - 'Match', - ], - 'use_statement' => [ - '/* testNoMatchInUseStatement */', - 'Match', - ], - 'unsupported_inline_control_structure' => ['/* testNoMatchMissingCurlies */'], - 'unsupported_alternative_syntax' => ['/* testNoMatchAlternativeSyntax */'], - 'live_coding' => ['/* testLiveCoding */'], - ]; - - }//end dataNotAMatchStructure() - - - /** - * Verify that the tokenization of switch structures is not affected by the backfill. - * - * @param string $testMarker The comment prefacing the target token. - * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. - * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. - * - * @dataProvider dataSwitchExpression - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testSwitchExpression($testMarker, $openerOffset, $closerOffset) - { - $token = $this->getTargetToken($testMarker, T_SWITCH); - - $this->scopeTestHelper($token, $openerOffset, $closerOffset); - $this->parenthesisTestHelper($token); - - }//end testSwitchExpression() - - - /** - * Data provider. - * - * @see testSwitchExpression() - * - * @return array - */ - public function dataSwitchExpression() - { - return [ - 'switch_containing_match' => [ - '/* testSwitchContainingMatch */', - 6, - 174, - ], - 'match_containing_switch_1' => [ - '/* testSwitchNestedInMatch1 */', - 5, - 63, - ], - 'match_containing_switch_2' => [ - '/* testSwitchNestedInMatch2 */', - 5, - 63, - ], - ]; - - }//end dataSwitchExpression() - - - /** - * Verify that the tokenization of a switch case/default structure containing a match structure - * or contained *in* a match structure is not affected by the backfill. - * - * @param string $testMarker The comment prefacing the target token. - * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. - * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. - * - * @dataProvider dataSwitchCaseVersusMatch - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testSwitchCaseVersusMatch($testMarker, $openerOffset, $closerOffset) - { - $token = $this->getTargetToken($testMarker, [T_CASE, T_DEFAULT]); - - $this->scopeTestHelper($token, $openerOffset, $closerOffset); - - }//end testSwitchCaseVersusMatch() - - - /** - * Data provider. - * - * @see testSwitchCaseVersusMatch() - * - * @return array - */ - public function dataSwitchCaseVersusMatch() - { - return [ - 'switch_with_nested_match_case_1' => [ - '/* testMatchWithDefaultNestedInSwitchCase1 */', - 3, - 55, - ], - 'switch_with_nested_match_case_2' => [ - '/* testMatchWithDefaultNestedInSwitchCase2 */', - 4, - 21, - ], - 'switch_with_nested_match_default_case' => [ - '/* testMatchWithDefaultNestedInSwitchDefault */', - 1, - 38, - ], - 'match_with_nested_switch_case' => [ - '/* testSwitchDefaultNestedInMatchCase */', - 1, - 18, - ], - 'match_with_nested_switch_default_case' => [ - '/* testSwitchDefaultNestedInMatchDefault */', - 1, - 20, - ], - ]; - - }//end dataSwitchCaseVersusMatch() - - - /** - * Helper function to verify that all scope related array indexes for a control structure - * are set correctly. - * - * @param string $token The control structure token to check. - * @param int $openerOffset The expected offset of the scope opener in relation to - * the control structure token. - * @param int $closerOffset The expected offset of the scope closer in relation to - * the control structure token. - * @param bool $skipScopeCloserCheck Whether to skip the scope closer check. - * This should be set to "true" when testing nested arrow functions, - * where the "inner" arrow function shares a scope closer with the - * "outer" arrow function, as the 'scope_condition' for the scope closer - * of the "inner" arrow function will point to the "outer" arrow function. - * - * @return void - */ - private function scopeTestHelper($token, $openerOffset, $closerOffset, $skipScopeCloserCheck=false) - { - $tokens = self::$phpcsFile->getTokens(); - $tokenArray = $tokens[$token]; - $tokenType = $tokenArray['type']; - $expectedScopeOpener = ($token + $openerOffset); - $expectedScopeCloser = ($token + $closerOffset); - - $this->assertArrayHasKey('scope_condition', $tokenArray, 'Scope condition is not set'); - $this->assertArrayHasKey('scope_opener', $tokenArray, 'Scope opener is not set'); - $this->assertArrayHasKey('scope_closer', $tokenArray, 'Scope closer is not set'); - $this->assertSame($token, $tokenArray['scope_condition'], 'Scope condition is not the '.$tokenType.' token'); - $this->assertSame($expectedScopeOpener, $tokenArray['scope_opener'], 'Scope opener of the '.$tokenType.' token incorrect'); - $this->assertSame($expectedScopeCloser, $tokenArray['scope_closer'], 'Scope closer of the '.$tokenType.' token incorrect'); - - $opener = $tokenArray['scope_opener']; - $this->assertArrayHasKey('scope_condition', $tokens[$opener], 'Opener scope condition is not set'); - $this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Opener scope opener is not set'); - $this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Opener scope closer is not set'); - $this->assertSame($token, $tokens[$opener]['scope_condition'], 'Opener scope condition is not the '.$tokenType.' token'); - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], $tokenType.' opener scope opener token incorrect'); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], $tokenType.' opener scope closer token incorrect'); - - $closer = $tokenArray['scope_closer']; - $this->assertArrayHasKey('scope_condition', $tokens[$closer], 'Closer scope condition is not set'); - $this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Closer scope opener is not set'); - $this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Closer scope closer is not set'); - if ($skipScopeCloserCheck === false) { - $this->assertSame($token, $tokens[$closer]['scope_condition'], 'Closer scope condition is not the '.$tokenType.' token'); - } - - $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], $tokenType.' closer scope opener token incorrect'); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], $tokenType.' closer scope closer token incorrect'); - - if (($opener + 1) !== $closer) { - for ($i = ($opener + 1); $i < $closer; $i++) { - $this->assertArrayHasKey( - $token, - $tokens[$i]['conditions'], - $tokenType.' condition not added for token belonging to the '.$tokenType.' structure' - ); - } - } - - }//end scopeTestHelper() - - - /** - * Helper function to verify that all parenthesis related array indexes for a control structure - * token are set correctly. - * - * @param int $token The position of the control structure token. - * - * @return void - */ - private function parenthesisTestHelper($token) - { - $tokens = self::$phpcsFile->getTokens(); - $tokenArray = $tokens[$token]; - $tokenType = $tokenArray['type']; - - $this->assertArrayHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is not set'); - $this->assertArrayHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is not set'); - $this->assertArrayHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is not set'); - $this->assertSame($token, $tokenArray['parenthesis_owner'], 'Parenthesis owner is not the '.$tokenType.' token'); - - $opener = $tokenArray['parenthesis_opener']; - $this->assertArrayHasKey('parenthesis_owner', $tokens[$opener], 'Opening parenthesis owner is not set'); - $this->assertSame($token, $tokens[$opener]['parenthesis_owner'], 'Opening parenthesis owner is not the '.$tokenType.' token'); - - $closer = $tokenArray['parenthesis_closer']; - $this->assertArrayHasKey('parenthesis_owner', $tokens[$closer], 'Closing parenthesis owner is not set'); - $this->assertSame($token, $tokens[$closer]['parenthesis_owner'], 'Closing parenthesis owner is not the '.$tokenType.' token'); - - }//end parenthesisTestHelper() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillNumericSeparatorTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillNumericSeparatorTest.php deleted file mode 100644 index ee4275a21..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillNumericSeparatorTest.php +++ /dev/null @@ -1,380 +0,0 @@ - - * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class BackfillNumericSeparatorTest extends AbstractMethodUnitTest -{ - - - /** - * Test that numbers using numeric separators are tokenized correctly. - * - * @param array $testData The data required for the specific test case. - * - * @dataProvider dataTestBackfill - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testBackfill($testData) - { - $tokens = self::$phpcsFile->getTokens(); - $number = $this->getTargetToken($testData['marker'], [T_LNUMBER, T_DNUMBER]); - - $this->assertSame(constant($testData['type']), $tokens[$number]['code']); - $this->assertSame($testData['type'], $tokens[$number]['type']); - $this->assertSame($testData['value'], $tokens[$number]['content']); - - }//end testBackfill() - - - /** - * Data provider. - * - * @see testBackfill() - * - * @return array - */ - public function dataTestBackfill() - { - $testHexType = 'T_LNUMBER'; - if (PHP_INT_MAX < 0xCAFEF00D) { - $testHexType = 'T_DNUMBER'; - } - - $testHexMultipleType = 'T_LNUMBER'; - if (PHP_INT_MAX < 0x42726F776E) { - $testHexMultipleType = 'T_DNUMBER'; - } - - $testIntMoreThanMaxType = 'T_LNUMBER'; - if (PHP_INT_MAX < 10223372036854775807) { - $testIntMoreThanMaxType = 'T_DNUMBER'; - } - - return [ - [ - [ - 'marker' => '/* testSimpleLNumber */', - 'type' => 'T_LNUMBER', - 'value' => '1_000_000_000', - ], - ], - [ - [ - 'marker' => '/* testSimpleDNumber */', - 'type' => 'T_DNUMBER', - 'value' => '107_925_284.88', - ], - ], - [ - [ - 'marker' => '/* testFloat */', - 'type' => 'T_DNUMBER', - 'value' => '6.674_083e-11', - ], - ], - [ - [ - 'marker' => '/* testFloat2 */', - 'type' => 'T_DNUMBER', - 'value' => '6.674_083e+11', - ], - ], - [ - [ - 'marker' => '/* testFloat3 */', - 'type' => 'T_DNUMBER', - 'value' => '1_2.3_4e1_23', - ], - ], - [ - [ - 'marker' => '/* testHex */', - 'type' => $testHexType, - 'value' => '0xCAFE_F00D', - ], - ], - [ - [ - 'marker' => '/* testHexMultiple */', - 'type' => $testHexMultipleType, - 'value' => '0x42_72_6F_77_6E', - ], - ], - [ - [ - 'marker' => '/* testHexInt */', - 'type' => 'T_LNUMBER', - 'value' => '0x42_72_6F', - ], - ], - [ - [ - 'marker' => '/* testBinary */', - 'type' => 'T_LNUMBER', - 'value' => '0b0101_1111', - ], - ], - [ - [ - 'marker' => '/* testOctal */', - 'type' => 'T_LNUMBER', - 'value' => '0137_041', - ], - ], - [ - [ - 'marker' => '/* testIntMoreThanMax */', - 'type' => $testIntMoreThanMaxType, - 'value' => '10_223_372_036_854_775_807', - ], - ], - ]; - - }//end dataTestBackfill() - - - /** - * Test that numbers using numeric separators which are considered parse errors and/or - * which aren't relevant to the backfill, do not incorrectly trigger the backfill anyway. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * @param array $expectedTokens The token type and content of the expected token sequence. - * - * @dataProvider dataNoBackfill - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testNoBackfill($testMarker, $expectedTokens) - { - $tokens = self::$phpcsFile->getTokens(); - $number = $this->getTargetToken($testMarker, [T_LNUMBER, T_DNUMBER]); - - foreach ($expectedTokens as $key => $expectedToken) { - $i = ($number + $key); - $this->assertSame($expectedToken['code'], $tokens[$i]['code']); - $this->assertSame($expectedToken['content'], $tokens[$i]['content']); - } - - }//end testNoBackfill() - - - /** - * Data provider. - * - * @see testBackfill() - * - * @return array - */ - public function dataNoBackfill() - { - return [ - [ - '/* testInvalid1 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '100', - ], - [ - 'code' => T_STRING, - 'content' => '_', - ], - ], - ], - [ - '/* testInvalid2 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '1', - ], - [ - 'code' => T_STRING, - 'content' => '__1', - ], - ], - ], - [ - '/* testInvalid3 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '1', - ], - [ - 'code' => T_STRING, - 'content' => '_', - ], - [ - 'code' => T_DNUMBER, - 'content' => '.0', - ], - ], - ], - [ - '/* testInvalid4 */', - [ - [ - 'code' => T_DNUMBER, - 'content' => '1.', - ], - [ - 'code' => T_STRING, - 'content' => '_0', - ], - ], - ], - [ - '/* testInvalid5 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '0', - ], - [ - 'code' => T_STRING, - 'content' => 'x_123', - ], - ], - ], - [ - '/* testInvalid6 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '0', - ], - [ - 'code' => T_STRING, - 'content' => 'b_101', - ], - ], - ], - [ - '/* testInvalid7 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '1', - ], - [ - 'code' => T_STRING, - 'content' => '_e2', - ], - ], - ], - [ - '/* testInvalid8 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '1', - ], - [ - 'code' => T_STRING, - 'content' => 'e_2', - ], - ], - ], - [ - '/* testInvalid9 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '107_925_284', - ], - [ - 'code' => T_WHITESPACE, - 'content' => ' ', - ], - [ - 'code' => T_DNUMBER, - 'content' => '.88', - ], - ], - ], - [ - '/* testInvalid10 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '107_925_284', - ], - [ - 'code' => T_COMMENT, - 'content' => '/*comment*/', - ], - [ - 'code' => T_DNUMBER, - 'content' => '.88', - ], - ], - ], - [ - '/* testCalc1 */', - [ - [ - 'code' => T_LNUMBER, - 'content' => '667_083', - ], - [ - 'code' => T_WHITESPACE, - 'content' => ' ', - ], - [ - 'code' => T_MINUS, - 'content' => '-', - ], - [ - 'code' => T_WHITESPACE, - 'content' => ' ', - ], - [ - 'code' => T_LNUMBER, - 'content' => '11', - ], - ], - ], - [ - '/* test Calc2 */', - [ - [ - 'code' => T_DNUMBER, - 'content' => '6.674_08e3', - ], - [ - 'code' => T_WHITESPACE, - 'content' => ' ', - ], - [ - 'code' => T_PLUS, - 'content' => '+', - ], - [ - 'code' => T_WHITESPACE, - 'content' => ' ', - ], - [ - 'code' => T_LNUMBER, - 'content' => '11', - ], - ], - ], - ]; - - }//end dataNoBackfill() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BitwiseOrTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BitwiseOrTest.inc deleted file mode 100644 index ec1801d56..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BitwiseOrTest.inc +++ /dev/null @@ -1,92 +0,0 @@ - $param | $int; - -/* testTypeUnionArrowReturnType */ -$arrowWithReturnType = fn ($param) : int|null => $param * 10; - -/* testBitwiseOrInArrayKey */ -$array = array( - A | B => /* testBitwiseOrInArrayValue */ B | C -); - -/* testBitwiseOrInShortArrayKey */ -$array = [ - A | B => /* testBitwiseOrInShortArrayValue */ B | C -]; - -/* testBitwiseOrTryCatch */ -try { -} catch ( ExceptionA | ExceptionB $e ) { -} - -/* testBitwiseOrNonArrowFnFunctionCall */ -$obj->fn($something | $else); - -/* testTypeUnionNonArrowFunctionDeclaration */ -function &fn(int|false $something) {} - -/* testLiveCoding */ -// Intentional parse error. This has to be the last test in the file. -return function( type| diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BitwiseOrTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BitwiseOrTest.php deleted file mode 100644 index f6288d817..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BitwiseOrTest.php +++ /dev/null @@ -1,124 +0,0 @@ - - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class BitwiseOrTest extends AbstractMethodUnitTest -{ - - - /** - * Test that non-union type bitwise or tokens are still tokenized as bitwise or. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * - * @dataProvider dataBitwiseOr - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testBitwiseOr($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $opener = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION]); - $this->assertSame(T_BITWISE_OR, $tokens[$opener]['code']); - $this->assertSame('T_BITWISE_OR', $tokens[$opener]['type']); - - }//end testBitwiseOr() - - - /** - * Data provider. - * - * @see testBitwiseOr() - * - * @return array - */ - public function dataBitwiseOr() - { - return [ - ['/* testBitwiseOr1 */'], - ['/* testBitwiseOr2 */'], - ['/* testBitwiseOrPropertyDefaultValue */'], - ['/* testBitwiseOrParamDefaultValue */'], - ['/* testBitwiseOr3 */'], - ['/* testBitwiseOrClosureParamDefault */'], - ['/* testBitwiseOrArrowParamDefault */'], - ['/* testBitwiseOrArrowExpression */'], - ['/* testBitwiseOrInArrayKey */'], - ['/* testBitwiseOrInArrayValue */'], - ['/* testBitwiseOrInShortArrayKey */'], - ['/* testBitwiseOrInShortArrayValue */'], - ['/* testBitwiseOrTryCatch */'], - ['/* testBitwiseOrNonArrowFnFunctionCall */'], - ['/* testLiveCoding */'], - ]; - - }//end dataBitwiseOr() - - - /** - * Test that bitwise or tokens when used as part of a union type are tokenized as `T_TYPE_UNION`. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * - * @dataProvider dataTypeUnion - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testTypeUnion($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $opener = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION]); - $this->assertSame(T_TYPE_UNION, $tokens[$opener]['code']); - $this->assertSame('T_TYPE_UNION', $tokens[$opener]['type']); - - }//end testTypeUnion() - - - /** - * Data provider. - * - * @see testTypeUnion() - * - * @return array - */ - public function dataTypeUnion() - { - return [ - ['/* testTypeUnionPropertySimple */'], - ['/* testTypeUnionPropertyReverseModifierOrder */'], - ['/* testTypeUnionPropertyMulti1 */'], - ['/* testTypeUnionPropertyMulti2 */'], - ['/* testTypeUnionPropertyMulti3 */'], - ['/* testTypeUnionParam1 */'], - ['/* testTypeUnionParam2 */'], - ['/* testTypeUnionParam3 */'], - ['/* testTypeUnionReturnType */'], - ['/* testTypeUnionConstructorPropertyPromotion */'], - ['/* testTypeUnionAbstractMethodReturnType1 */'], - ['/* testTypeUnionAbstractMethodReturnType2 */'], - ['/* testTypeUnionClosureParamIllegalNullable */'], - ['/* testTypeUnionWithReference */'], - ['/* testTypeUnionWithSpreadOperator */'], - ['/* testTypeUnionClosureReturn */'], - ['/* testTypeUnionArrowParam */'], - ['/* testTypeUnionArrowReturnType */'], - ['/* testTypeUnionNonArrowFunctionDeclaration */'], - ]; - - }//end dataTypeUnion() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/CommentTestCase.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/CommentTestCase.php new file mode 100644 index 000000000..0dbd97715 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/CommentTestCase.php @@ -0,0 +1,117 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +/** + * Base class for testing DocBlock comment tokenization. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +abstract class CommentTestCase extends AbstractTokenizerTestCase +{ + + + /** + * Test whether the docblock opener and closer have the expected extra keys. + * + * @param string $marker The comment prefacing the target token. + * @param int $closerOffset The offset of the closer from the opener. + * @param array $expectedTags The expected tags offsets array. + * + * @dataProvider dataDocblockOpenerCloser + * + * @return void + */ + public function testDocblockOpenerCloser($marker, $closerOffset, $expectedTags) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($marker, [T_DOC_COMMENT_OPEN_TAG]); + + $opener = $tokens[$target]; + + $this->assertArrayHasKey('comment_closer', $opener, 'Comment opener: comment_closer index is not set'); + $this->assertArrayHasKey('comment_tags', $opener, 'Comment opener: comment_tags index is not set'); + + $expectedCloser = ($target + $closerOffset); + $this->assertSame($expectedCloser, $opener['comment_closer'], 'Comment opener: comment_closer not set to the expected stack pointer'); + + // Update the tags expectations. + foreach ($expectedTags as $i => $ptr) { + $expectedTags[$i] += $target; + } + + $this->assertSame($expectedTags, $opener['comment_tags'], 'Comment opener: recorded tags do not match expected tags'); + + $closer = $tokens[$opener['comment_closer']]; + + $this->assertArrayHasKey('comment_opener', $closer, 'Comment closer: comment_opener index is not set'); + $this->assertSame($target, $closer['comment_opener'], 'Comment closer: comment_opener not set to the expected stack pointer'); + + }//end testDocblockOpenerCloser() + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + abstract public static function dataDocblockOpenerCloser(); + + + /** + * Test helper. Check a token sequence complies with an expected token sequence. + * + * @param int $startPtr The position in the file to start checking from. + * @param array> $expectedSequence The consecutive token constants and their contents to expect. + * + * @return void + */ + protected function checkTokenSequence($startPtr, array $expectedSequence) + { + $tokens = $this->phpcsFile->getTokens(); + + $sequenceKey = 0; + $sequenceCount = count($expectedSequence); + + for ($i = $startPtr; $sequenceKey < $sequenceCount; $i++, $sequenceKey++) { + $currentItem = $expectedSequence[$sequenceKey]; + $expectedCode = key($currentItem); + $expectedType = Tokens::tokenName($expectedCode); + $expectedContent = current($currentItem); + $errorMsgSuffix = PHP_EOL.'(StackPtr: '.$i.' | Position in sequence: '.$sequenceKey.' | Expected: '.$expectedType.')'; + + $this->assertSame( + $expectedCode, + $tokens[$i]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$i]['code']).', not '.$expectedType.' (code)'.$errorMsgSuffix + ); + + $this->assertSame( + $expectedType, + $tokens[$i]['type'], + 'Token tokenized as '.$tokens[$i]['type'].', not '.$expectedType.' (type)'.$errorMsgSuffix + ); + + $this->assertSame( + $expectedContent, + $tokens[$i]['content'], + 'Token content did not match expectations'.$errorMsgSuffix + ); + }//end for + + }//end checkTokenSequence() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding1Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding1Test.inc new file mode 100644 index 000000000..a43c7d9b2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding1Test.inc @@ -0,0 +1,6 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that unclosed docblocks during live coding are handled correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class LiveCoding1Test extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'live coding: unclosed docblock, no blank line at end of file' => [ + 'marker' => '/* testLiveCoding */', + 'closerOffset' => 8, + 'expectedTags' => [], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify tokenization of the DocBlock. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testLiveCoding() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Unclosed docblock, live coding.... with no blank line at end of file.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testLiveCoding() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding2Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding2Test.inc new file mode 100644 index 000000000..b113645b5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding2Test.inc @@ -0,0 +1,5 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that unclosed docblocks during live coding are handled correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class LiveCoding2Test extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'live coding: unclosed docblock with blank line at end of file' => [ + 'marker' => '/* testLiveCoding */', + 'closerOffset' => 7, + 'expectedTags' => [], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify tokenization of the DocBlock. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testLiveCoding() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Unclosed docblock, live coding.... with a blank line at end of file.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_CLOSE_TAG => ''], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testLiveCoding() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding3Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding3Test.inc new file mode 100644 index 000000000..9b81a434d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding3Test.inc @@ -0,0 +1,4 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that unclosed docblocks during live coding are handled correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class LiveCoding3Test extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'live coding: unclosed docblock, no contents, no blank line at end of file' => [ + 'marker' => '/* testLiveCoding */', + 'closerOffset' => 1, + 'expectedTags' => [], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify tokenization of the DocBlock. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testLiveCoding() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_CLOSE_TAG => ''], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testLiveCoding() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding4Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding4Test.inc new file mode 100644 index 000000000..1561e7156 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/LiveCoding4Test.inc @@ -0,0 +1,7 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that unclosed docblocks during live coding are handled correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class LiveCoding4Test extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'live coding: unclosed docblock, trailing whitespace on last line, no blank line at end of file' => [ + 'marker' => '/* testLiveCoding */', + 'closerOffset' => 15, + 'expectedTags' => [], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify tokenization of the DocBlock. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testLiveCoding() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'The last line of this test must have trailing whitespace.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'So, be careful when saving this file!'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => ''], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testLiveCoding() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/MultiLineDocBlockTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/MultiLineDocBlockTest.inc new file mode 100644 index 000000000..f33afcd6a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/MultiLineDocBlockTest.inc @@ -0,0 +1,81 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that multiline docblocks are tokenized correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class MultiLineDocBlockTest extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'Multi line docblock: no contents' => [ + 'marker' => '/* testEmptyDocblock */', + 'closerOffset' => 3, + 'expectedTags' => [], + ], + 'Multi line docblock: variety of text and tags' => [ + 'marker' => '/* testMultilineDocblock */', + 'closerOffset' => 95, + // phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed + 'expectedTags' => [21, 29, 36, 46, 56, 63, 73, 80, 90], + ], + 'Multi line docblock: no leading stars' => [ + 'marker' => '/* testMultilineDocblockNoStars */', + 'closerOffset' => 32, + // phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed + 'expectedTags' => [10, 16, 21, 27], + ], + 'Multi line docblock: indented' => [ + 'marker' => '/* testMultilineDocblockIndented */', + 'closerOffset' => 60, + // phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed + 'expectedTags' => [21, 28, 38, 45, 55], + ], + 'Multi line docblock: opener not on own line' => [ + 'marker' => '/* testMultilineDocblockOpenerNotOnOwnLine */', + 'closerOffset' => 10, + 'expectedTags' => [], + ], + 'Multi line docblock: closer not on own line' => [ + 'marker' => '/* testMultilineDocblockCloserNotOnOwnLine */', + 'closerOffset' => 11, + 'expectedTags' => [], + ], + 'Multi line docblock: stars not aligned' => [ + 'marker' => '/* testMultilineDocblockStarsNotAligned */', + 'closerOffset' => 26, + 'expectedTags' => [], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify tokenization of an empty, multi-line DocBlock. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testEmptyDocblock() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testEmptyDocblock() + + + /** + * Verify tokenization of a multi-line DocBlock containing all possible tokens. + * + * @return void + */ + public function testMultilineDocblock() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'This is a multi-line docblock.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'With blank lines, stars, tags, and tag descriptions.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tagWithoutDescription'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@since'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '10.3'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@deprecated'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '11.5'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@requires'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'PHP 7.1 -- PHPUnit tag.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tag-with-dashes-is-suppported'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Description.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tag_with_underscores'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Description.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@param'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'string $p1 Description 1.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@param'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'int|false $p2 Description 2.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@return'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'void'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultilineDocblock() + + + /** + * Verify tokenization of a multi-line DocBlock with extra starts for the opener/closer and no stars on the lines between. + * + * @return void + */ + public function testMultilineDocblockNoStars() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/****'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'This is a multi-line docblock, but the lines are not marked with stars.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Then again, the opener and closer have an abundance of stars.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@since'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '10.3'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@param'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'string $p1 Description 1.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@param'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'int|false $p2 Description 2.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@return'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'void'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '**/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultilineDocblockNoStars() + + + /** + * Verify tokenization of a multi-line, indented DocBlock. + * + * @return void + */ + public function testMultilineDocblockIndented() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'This is a multi-line indented docblock.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'With blank lines, stars, tags, and tag descriptions.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@since'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '10.3'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@deprecated'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '11.5'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@param'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'string $p1 Description 1.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@param'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'int|false $p2 Description 2.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@return'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'void'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultilineDocblockIndented() + + + /** + * Verify tokenization of a multi-line DocBlock, where the opener is not on its own line. + * + * @return void + */ + public function testMultilineDocblockOpenerNotOnOwnLine() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Start of description'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'description continued.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultilineDocblockOpenerNotOnOwnLine() + + + /** + * Verify tokenization of a multi-line DocBlock, where the closer is not on its own line. + * + * @return void + */ + public function testMultilineDocblockCloserNotOnOwnLine() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Start of description'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'description continued. '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultilineDocblockCloserNotOnOwnLine() + + + /** + * Verify tokenization of a multi-line DocBlock with inconsistent indentation. + * + * @return void + */ + public function testMultilineDocblockStarsNotAligned() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Start of description.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Line below this is missing a star.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Text'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Star indented.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Closer indented.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultilineDocblockStarsNotAligned() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/PhpcsAnnotationsInDocBlockTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/PhpcsAnnotationsInDocBlockTest.inc new file mode 100644 index 000000000..d74f68d24 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/PhpcsAnnotationsInDocBlockTest.inc @@ -0,0 +1,116 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that PHPCS native annotations in docblocks are tokenized correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class PhpcsAnnotationsInDocBlockTest extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'Single-line: @phpcs:ignoreFile annotation' => [ + 'marker' => '/* testSingleLineDocIgnoreFileAnnotation */', + 'closerOffset' => 3, + 'expectedTags' => [], + ], + 'Single-line: @phpcs:ignore annotation' => [ + 'marker' => '/* testSingleLineDocIgnoreAnnotation */', + 'closerOffset' => 3, + 'expectedTags' => [], + ], + 'Single-line: @phpcs:disable annotation' => [ + 'marker' => '/* testSingleLineDocDisableAnnotation */', + 'closerOffset' => 3, + 'expectedTags' => [], + ], + 'Single-line: @phpcs:enable annotation; no whitespace' => [ + 'marker' => '/* testSingleLineDocEnableAnnotationNoWhitespace */', + 'closerOffset' => 2, + 'expectedTags' => [], + ], + + 'Multi-line: @phpcs:ignoreFile at the start' => [ + 'marker' => '/* testMultiLineDocIgnoreFileAnnotationAtStart */', + 'closerOffset' => 13, + 'expectedTags' => [], + ], + 'Multi-line: @phpcs:ignore at the start' => [ + 'marker' => '/* testMultiLineDocIgnoreAnnotationAtStart */', + 'closerOffset' => 13, + 'expectedTags' => [10], + ], + 'Multi-line: @phpcs:disable at the start' => [ + 'marker' => '/* testMultiLineDocDisableAnnotationAtStart */', + 'closerOffset' => 13, + 'expectedTags' => [], + ], + 'Multi-line: @phpcs:enable at the start' => [ + 'marker' => '/* testMultiLineDocEnableAnnotationAtStart */', + 'closerOffset' => 18, + 'expectedTags' => [13], + ], + + 'Multi-line: @phpcs:ignoreFile in the middle' => [ + 'marker' => '/* testMultiLineDocIgnoreFileAnnotationInMiddle */', + 'closerOffset' => 21, + 'expectedTags' => [], + ], + 'Multi-line: @phpcs:ignore in the middle' => [ + 'marker' => '/* testMultiLineDocIgnoreAnnotationInMiddle */', + 'closerOffset' => 23, + 'expectedTags' => [5], + ], + 'Multi-line: @phpcs:disable in the middle' => [ + 'marker' => '/* testMultiLineDocDisableAnnotationInMiddle */', + 'closerOffset' => 26, + 'expectedTags' => [21], + ], + 'Multi-line: @phpcs:enable in the middle' => [ + 'marker' => '/* testMultiLineDocEnableAnnotationInMiddle */', + 'closerOffset' => 24, + 'expectedTags' => [21], + ], + + 'Multi-line: @phpcs:ignoreFile at the end' => [ + 'marker' => '/* testMultiLineDocIgnoreFileAnnotationAtEnd */', + 'closerOffset' => 16, + 'expectedTags' => [5], + ], + 'Multi-line: @phpcs:ignore at the end' => [ + 'marker' => '/* testMultiLineDocIgnoreAnnotationAtEnd */', + 'closerOffset' => 16, + 'expectedTags' => [], + ], + 'Multi-line: @phpcs:disable at the end' => [ + 'marker' => '/* testMultiLineDocDisableAnnotationAtEnd */', + 'closerOffset' => 18, + 'expectedTags' => [5], + ], + 'Multi-line: @phpcs:enable at the end' => [ + 'marker' => '/* testMultiLineDocEnableAnnotationAtEnd */', + 'closerOffset' => 16, + 'expectedTags' => [], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignoreFile annotation. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testSingleLineDocIgnoreFileAnnotation() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE_FILE => '@phpcs:ignoreFile '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocIgnoreFileAnnotation() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignore annotation. + * + * @return void + */ + public function testSingleLineDocIgnoreAnnotation() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE => '@phpcs:ignore Stnd.Cat.SniffName -- With reason '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocIgnoreAnnotation() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS disable annotation. + * + * @return void + */ + public function testSingleLineDocDisableAnnotation() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_DISABLE => '@phpcs:disable Stnd.Cat.SniffName,Stnd.Other '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocDisableAnnotation() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS enable annotation. + * + * @return void + */ + public function testSingleLineDocEnableAnnotationNoWhitespace() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_PHPCS_ENABLE => '@phpcs:enable Stnd.Cat.SniffName'], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocEnableAnnotationNoWhitespace() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignoreFile annotation at the start. + * + * @return void + */ + public function testMultiLineDocIgnoreFileAnnotationAtStart() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE_FILE => '@phpcs:ignoreFile'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Something.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocIgnoreFileAnnotationAtStart() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignore annotation at the start. + * + * @return void + */ + public function testMultiLineDocIgnoreAnnotationAtStart() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE => '@phpcs:ignore Stnd.Cat.SniffName'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tag'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocIgnoreAnnotationAtStart() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS disable annotation at the start. + * + * @return void + */ + public function testMultiLineDocDisableAnnotationAtStart() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_DISABLE => '@phpcs:disable Stnd.Cat.SniffName -- Ensure PHPCS annotations are also retokenized correctly.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Something.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocDisableAnnotationAtStart() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS enable annotation at the start. + * + * @return void + */ + public function testMultiLineDocEnableAnnotationAtStart() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_ENABLE => '@phpcs:enable Stnd.Cat,Stnd.Other'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tag'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'With description.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocEnableAnnotationAtStart() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignoreFile annotation in the middle. + * + * @return void + */ + public function testMultiLineDocIgnoreFileAnnotationInMiddle() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Check tokenization of PHPCS annotations within docblocks.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE_FILE => '@phpcs:ignoreFile'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Something.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocIgnoreFileAnnotationInMiddle() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignore annotation in the middle. + * + * @return void + */ + public function testMultiLineDocIgnoreAnnotationInMiddle() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tagBefore'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'With Description'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE => '@phpcs:ignore Stnd.Cat.SniffName'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Something.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocIgnoreAnnotationInMiddle() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS disable annotation in the middle. + * + * @return void + */ + public function testMultiLineDocDisableAnnotationInMiddle() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Check tokenization of PHPCS annotations within docblocks.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_DISABLE => '@phpcs:disable Stnd.Cat.SniffName -- Ensure PHPCS annotations are also retokenized correctly.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tagAfter'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'With Description'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocDisableAnnotationInMiddle() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS enable annotation in the middle. + * + * @return void + */ + public function testMultiLineDocEnableAnnotationInMiddle() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Check tokenization of PHPCS annotations within docblocks.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_ENABLE => '@phpcs:enable Stnd.Cat,Stnd.Other'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tagAfter'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocEnableAnnotationInMiddle() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignoreFile annotation at the end. + * + * @return void + */ + public function testMultiLineDocIgnoreFileAnnotationAtEnd() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tagBefore'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE_FILE => '@phpcs:ignoreFile'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocIgnoreFileAnnotationAtEnd() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS ignore annotation at the end. + * + * @return void + */ + public function testMultiLineDocIgnoreAnnotationAtEnd() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Check tokenization of PHPCS annotations within docblocks.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_IGNORE => '@phpcs:ignore Stnd.Cat.SniffName'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocIgnoreAnnotationAtEnd() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS disable annotation at the end. + * + * @return void + */ + public function testMultiLineDocDisableAnnotationAtEnd() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@tagBefore'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'With Description.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_DISABLE => '@phpcs:disable Stnd.Cat.SniffName -- Ensure PHPCS annotations are also retokenized correctly.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocDisableAnnotationAtEnd() + + + /** + * Verify tokenization of a single line DocBlock containing a PHPCS enable annotation at the end. + * + * @return void + */ + public function testMultiLineDocEnableAnnotationAtEnd() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Check tokenization of PHPCS annotations within docblocks.'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STAR => '*'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_PHPCS_ENABLE => '@phpcs:enable Stnd.Cat,Stnd.Other'], + [T_DOC_COMMENT_WHITESPACE => "\n"], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testMultiLineDocEnableAnnotationAtEnd() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/SingleLineDocBlockTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/SingleLineDocBlockTest.inc new file mode 100644 index 000000000..88b05ea43 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Comment/SingleLineDocBlockTest.inc @@ -0,0 +1,26 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Comment; + +/** + * Tests that single line docblocks are tokenized correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\Comment + */ +final class SingleLineDocBlockTest extends CommentTestCase +{ + + + /** + * Data provider. + * + * @see testDocblockOpenerCloser() + * + * @return array>> + */ + public static function dataDocblockOpenerCloser() + { + return [ + 'Single line docblock: empty, no whitespace' => [ + 'marker' => '/* testEmptyDocblockNoWhiteSpace */', + 'closerOffset' => 1, + 'expectedTags' => [], + ], + 'Single line docblock: only whitespace' => [ + 'marker' => '/* testEmptyDocblockWithWhiteSpace */', + 'closerOffset' => 2, + 'expectedTags' => [], + ], + 'Single line docblock: just text' => [ + 'marker' => '/* testSingleLineDocblockNoTag */', + 'closerOffset' => 3, + 'expectedTags' => [], + ], + 'Single line docblock: @var type before name' => [ + 'marker' => '/* testSingleLineDocblockWithTag1 */', + 'closerOffset' => 5, + 'expectedTags' => [2], + ], + 'Single line docblock: @var name before type' => [ + 'marker' => '/* testSingleLineDocblockWithTag2 */', + 'closerOffset' => 5, + 'expectedTags' => [2], + ], + 'Single line docblock: @see with description' => [ + 'marker' => '/* testSingleLineDocblockWithTag3 */', + 'closerOffset' => 5, + 'expectedTags' => [2], + ], + ]; + + }//end dataDocblockOpenerCloser() + + + /** + * Verify an empty block comment is tokenized as T_COMMENT, not as a docblock. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testEmptyBlockCommentNoWhiteSpace() + { + $expectedSequence = [ + [T_COMMENT => '/**/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', [T_COMMENT, T_DOC_COMMENT_OPEN_TAG]); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testEmptyBlockCommentNoWhiteSpace() + + + /** + * Verify tokenization of an empty, single line DocBlock without whitespace between the opener and closer. + * + * @phpcs:disable Squiz.Arrays.ArrayDeclaration.SpaceBeforeDoubleArrow -- Readability is better with alignment. + * + * @return void + */ + public function testEmptyDocblockNoWhiteSpace() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testEmptyDocblockNoWhiteSpace() + + + /** + * Verify tokenization of an empty, single line DocBlock. + * + * @return void + */ + public function testEmptyDocblockWithWhiteSpace() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testEmptyDocblockWithWhiteSpace() + + + /** + * Verify tokenization of a single line DocBlock. + * + * @return void + */ + public function testSingleLineDocblockNoTag() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Just some text '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocblockNoTag() + + + /** + * Verify tokenization of a single line DocBlock with a tag. + * + * @return void + */ + public function testSingleLineDocblockWithTag1() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@var'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '\SomeClass[] $var '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocblockWithTag1() + + + /** + * Verify tokenization of a single line DocBlock with a tag. + * + * @return void + */ + public function testSingleLineDocblockWithTag2() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@var'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => '$var \SomeClass[] '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocblockWithTag2() + + + /** + * Verify tokenization of a single line DocBlock with a tag. + * + * @return void + */ + public function testSingleLineDocblockWithTag3() + { + $expectedSequence = [ + [T_DOC_COMMENT_OPEN_TAG => '/**'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_TAG => '@see'], + [T_DOC_COMMENT_WHITESPACE => ' '], + [T_DOC_COMMENT_STRING => 'Something::Else '], + [T_DOC_COMMENT_CLOSE_TAG => '*/'], + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_DOC_COMMENT_OPEN_TAG); + + $this->checkTokenSequence($target, $expectedSequence); + + }//end testSingleLineDocblockWithTag3() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DefaultKeywordTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DefaultKeywordTest.php deleted file mode 100644 index 2d1e68cb6..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DefaultKeywordTest.php +++ /dev/null @@ -1,275 +0,0 @@ - - * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class DefaultKeywordTest extends AbstractMethodUnitTest -{ - - - /** - * Test the retokenization of the `default` keyword for match structure to `T_MATCH_DEFAULT`. - * - * Note: Cases and default structures within a match structure do *NOT* get case/default scope - * conditions, in contrast to case and default structures in switch control structures. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to look for. - * - * @dataProvider dataMatchDefault - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap - * - * @return void - */ - public function testMatchDefault($testMarker, $testContent='default') - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_MATCH_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_DEFAULT (code)'); - $this->assertSame('T_MATCH_DEFAULT', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_DEFAULT (type)'); - - $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); - $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); - $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); - - }//end testMatchDefault() - - - /** - * Data provider. - * - * @see testMatchDefault() - * - * @return array - */ - public function dataMatchDefault() - { - return [ - 'simple_match_default' => ['/* testSimpleMatchDefault */'], - 'match_default_in_switch_case_1' => ['/* testMatchDefaultNestedInSwitchCase1 */'], - 'match_default_in_switch_case_2' => ['/* testMatchDefaultNestedInSwitchCase2 */'], - 'match_default_in_switch_default' => ['/* testMatchDefaultNestedInSwitchDefault */'], - 'match_default_containing_switch' => ['/* testMatchDefault */'], - - 'match_default_with_nested_long_array_and_default_key' => [ - '/* testMatchDefaultWithNestedLongArrayWithClassConstantKey */', - 'DEFAULT', - ], - 'match_default_with_nested_long_array_and_default_key_2' => [ - '/* testMatchDefaultWithNestedLongArrayWithClassConstantKeyLevelDown */', - 'DEFAULT', - ], - 'match_default_with_nested_short_array_and_default_key' => [ - '/* testMatchDefaultWithNestedShortArrayWithClassConstantKey */', - 'DEFAULT', - ], - 'match_default_with_nested_short_array_and_default_key_2' => [ - '/* testMatchDefaultWithNestedShortArrayWithClassConstantKeyLevelDown */', - 'DEFAULT', - ], - 'match_default_in_long_array' => [ - '/* testMatchDefaultNestedInLongArray */', - 'DEFAULT', - ], - 'match_default_in_short_array' => [ - '/* testMatchDefaultNestedInShortArray */', - 'DEFAULT', - ], - ]; - - }//end dataMatchDefault() - - - /** - * Verify that the retokenization of `T_DEFAULT` tokens in match constructs, doesn't negatively - * impact the tokenization of `T_DEFAULT` tokens in switch control structures. - * - * Note: Cases and default structures within a switch control structure *do* get case/default scope - * conditions. - * - * @param string $testMarker The comment prefacing the target token. - * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. - * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. - * @param int|null $conditionStop The expected offset at which tokens stop having T_DEFAULT as a scope condition. - * @param string $testContent The token content to look for. - * - * @dataProvider dataSwitchDefault - * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap - * - * @return void - */ - public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $conditionStop=null, $testContent='default') - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); - $tokenArray = $tokens[$token]; - $expectedScopeOpener = ($token + $openerOffset); - $expectedScopeCloser = ($token + $closerOffset); - - $this->assertSame(T_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_DEFAULT (code)'); - $this->assertSame('T_DEFAULT', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_DEFAULT (type)'); - - $this->assertArrayHasKey('scope_condition', $tokenArray, 'Scope condition is not set'); - $this->assertArrayHasKey('scope_opener', $tokenArray, 'Scope opener is not set'); - $this->assertArrayHasKey('scope_closer', $tokenArray, 'Scope closer is not set'); - $this->assertSame($token, $tokenArray['scope_condition'], 'Scope condition is not the T_DEFAULT token'); - $this->assertSame($expectedScopeOpener, $tokenArray['scope_opener'], 'Scope opener of the T_DEFAULT token incorrect'); - $this->assertSame($expectedScopeCloser, $tokenArray['scope_closer'], 'Scope closer of the T_DEFAULT token incorrect'); - - $opener = $tokenArray['scope_opener']; - $this->assertArrayHasKey('scope_condition', $tokens[$opener], 'Opener scope condition is not set'); - $this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Opener scope opener is not set'); - $this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Opener scope closer is not set'); - $this->assertSame($token, $tokens[$opener]['scope_condition'], 'Opener scope condition is not the T_DEFAULT token'); - $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'T_DEFAULT opener scope opener token incorrect'); - $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'T_DEFAULT opener scope closer token incorrect'); - - $closer = $tokenArray['scope_closer']; - $this->assertArrayHasKey('scope_condition', $tokens[$closer], 'Closer scope condition is not set'); - $this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Closer scope opener is not set'); - $this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Closer scope closer is not set'); - $this->assertSame($token, $tokens[$closer]['scope_condition'], 'Closer scope condition is not the T_DEFAULT token'); - $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'T_DEFAULT closer scope opener token incorrect'); - $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'T_DEFAULT closer scope closer token incorrect'); - - if (($opener + 1) !== $closer) { - $end = $closer; - if (isset($conditionStop) === true) { - $end = $conditionStop; - } - - for ($i = ($opener + 1); $i < $end; $i++) { - $this->assertArrayHasKey( - $token, - $tokens[$i]['conditions'], - 'T_DEFAULT condition not added for token belonging to the T_DEFAULT structure' - ); - } - } - - }//end testSwitchDefault() - - - /** - * Data provider. - * - * @see testSwitchDefault() - * - * @return array - */ - public function dataSwitchDefault() - { - return [ - 'simple_switch_default' => [ - '/* testSimpleSwitchDefault */', - 1, - 4, - ], - 'simple_switch_default_with_curlies' => [ - // For a default structure with curly braces, the scope opener - // will be the open curly and the closer the close curly. - // However, scope conditions will not be set for open to close, - // but only for the open token up to the "break/return/continue" etc. - '/* testSimpleSwitchDefaultWithCurlies */', - 3, - 12, - 6, - ], - 'switch_default_toplevel' => [ - '/* testSwitchDefault */', - 1, - 43, - ], - 'switch_default_nested_in_match_case' => [ - '/* testSwitchDefaultNestedInMatchCase */', - 1, - 20, - ], - 'switch_default_nested_in_match_default' => [ - '/* testSwitchDefaultNestedInMatchDefault */', - 1, - 18, - ], - ]; - - }//end dataSwitchDefault() - - - /** - * Verify that the retokenization of `T_DEFAULT` tokens in match constructs, doesn't negatively - * impact the tokenization of `T_STRING` tokens with the contents 'default' which aren't in - * actual fact the default keyword. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to look for. - * - * @dataProvider dataNotDefaultKeyword - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testNotDefaultKeyword($testMarker, $testContent='DEFAULT') - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); - $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); - - $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); - $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); - $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); - - }//end testNotDefaultKeyword() - - - /** - * Data provider. - * - * @see testNotDefaultKeyword() - * - * @return array - */ - public function dataNotDefaultKeyword() - { - return [ - 'class-constant-as-short-array-key' => ['/* testClassConstantAsShortArrayKey */'], - 'class-property-as-short-array-key' => ['/* testClassPropertyAsShortArrayKey */'], - 'namespaced-constant-as-short-array-key' => ['/* testNamespacedConstantAsShortArrayKey */'], - 'fqn-global-constant-as-short-array-key' => ['/* testFQNGlobalConstantAsShortArrayKey */'], - 'class-constant-as-long-array-key' => ['/* testClassConstantAsLongArrayKey */'], - 'class-constant-as-yield-key' => ['/* testClassConstantAsYieldKey */'], - - 'class-constant-as-long-array-key-nested-in-match' => ['/* testClassConstantAsLongArrayKeyNestedInMatch */'], - 'class-constant-as-long-array-key-nested-in-match-2' => ['/* testClassConstantAsLongArrayKeyNestedInMatchLevelDown */'], - 'class-constant-as-short-array-key-nested-in-match' => ['/* testClassConstantAsShortArrayKeyNestedInMatch */'], - 'class-constant-as-short-array-key-nested-in-match-2' => ['/* testClassConstantAsShortArrayKeyNestedInMatchLevelDown */'], - 'class-constant-as-long-array-key-with-nested-match' => ['/* testClassConstantAsLongArrayKeyWithNestedMatch */'], - 'class-constant-as-short-array-key-with-nested-match' => ['/* testClassConstantAsShortArrayKeyWithNestedMatch */'], - - 'class-constant-in-switch-case' => ['/* testClassConstantInSwitchCase */'], - 'class-property-in-switch-case' => ['/* testClassPropertyInSwitchCase */'], - 'namespaced-constant-in-switch-case' => ['/* testNamespacedConstantInSwitchCase */'], - 'namespace-relative-constant-in-switch-case' => ['/* testNamespaceRelativeConstantInSwitchCase */'], - ]; - - }//end dataNotDefaultKeyword() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DoubleArrowTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DoubleArrowTest.php deleted file mode 100644 index 9a0b174c3..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DoubleArrowTest.php +++ /dev/null @@ -1,237 +0,0 @@ - - * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class DoubleArrowTest extends AbstractMethodUnitTest -{ - - - /** - * Test that "normal" double arrows are correctly tokenized as `T_DOUBLE_ARROW`. - * - * @param string $testMarker The comment prefacing the target token. - * - * @dataProvider dataDoubleArrow - * @coversNothing - * - * @return void - */ - public function testDoubleArrow($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_DOUBLE_ARROW, T_MATCH_ARROW, T_FN_ARROW]); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_DOUBLE_ARROW, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_DOUBLE_ARROW (code)'); - $this->assertSame('T_DOUBLE_ARROW', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_DOUBLE_ARROW (type)'); - - }//end testDoubleArrow() - - - /** - * Data provider. - * - * @see testDoubleArrow() - * - * @return array - */ - public function dataDoubleArrow() - { - return [ - 'simple_long_array' => ['/* testLongArrayArrowSimple */'], - 'simple_short_array' => ['/* testShortArrayArrowSimple */'], - 'simple_long_list' => ['/* testLongListArrowSimple */'], - 'simple_short_list' => ['/* testShortListArrowSimple */'], - 'simple_yield' => ['/* testYieldArrowSimple */'], - 'simple_foreach' => ['/* testForeachArrowSimple */'], - - 'long_array_with_match_value_1' => ['/* testLongArrayArrowWithNestedMatchValue1 */'], - 'long_array_with_match_value_2' => ['/* testLongArrayArrowWithNestedMatchValue2 */'], - 'short_array_with_match_value_1' => ['/* testShortArrayArrowWithNestedMatchValue1 */'], - 'short_array_with_match_value_2' => ['/* testShortArrayArrowWithNestedMatchValue2 */'], - - 'long_array_with_match_key' => ['/* testLongArrayArrowWithMatchKey */'], - 'short_array_with_match_key' => ['/* testShortArrayArrowWithMatchKey */'], - - 'long_array_in_match_body_1' => ['/* testLongArrayArrowInMatchBody1 */'], - 'long_array_in_match_body_2' => ['/* testLongArrayArrowInMatchBody2 */'], - 'long_array_in_match_body_2' => ['/* testLongArrayArrowInMatchBody3 */'], - 'short_array_in_match_body_1' => ['/* testShortArrayArrowInMatchBody1 */'], - 'short_array_in_match_body_2' => ['/* testShortArrayArrowInMatchBody2 */'], - 'short_array_in_match_body_2' => ['/* testShortArrayArrowInMatchBody3 */'], - - 'short_array_in_match_case_1' => ['/* testShortArrayArrowinMatchCase1 */'], - 'short_array_in_match_case_2' => ['/* testShortArrayArrowinMatchCase2 */'], - 'short_array_in_match_case_3' => ['/* testShortArrayArrowinMatchCase3 */'], - 'long_array_in_match_case_4' => ['/* testLongArrayArrowinMatchCase4 */'], - - 'in_complex_short_array_key_match_value' => ['/* testShortArrayArrowInComplexMatchValueinShortArrayKey */'], - 'in_complex_short_array_toplevel' => ['/* testShortArrayArrowInComplexMatchArrayMismash */'], - 'in_complex_short_array_value_match_value' => ['/* testShortArrayArrowInComplexMatchValueinShortArrayValue */'], - - 'long_list_in_match_body' => ['/* testLongListArrowInMatchBody */'], - 'long_list_in_match_case' => ['/* testLongListArrowInMatchCase */'], - 'short_list_in_match_body' => ['/* testShortListArrowInMatchBody */'], - 'short_list_in_match_case' => ['/* testShortListArrowInMatchCase */'], - 'long_list_with_match_in_key' => ['/* testLongListArrowWithMatchInKey */'], - 'short_list_with_match_in_key' => ['/* testShortListArrowWithMatchInKey */'], - - 'long_array_with_constant_default_in_key' => ['/* testLongArrayArrowWithClassConstantKey */'], - 'short_array_with_constant_default_in_key' => ['/* testShortArrayArrowWithClassConstantKey */'], - 'yield_with_constant_default_in_key' => ['/* testYieldArrowWithClassConstantKey */'], - - 'long_array_with_default_in_key_in_match' => ['/* testLongArrayArrowWithClassConstantKeyNestedInMatch */'], - 'short_array_with_default_in_key_in_match' => ['/* testShortArrayArrowWithClassConstantKeyNestedInMatch */'], - 'long_array_with_default_in_key_with_match' => ['/* testLongArrayArrowWithClassConstantKeyWithNestedMatch */'], - 'long_array_with_default_in_key_with_match' => ['/* testShortArrayArrowWithClassConstantKeyWithNestedMatch */'], - ]; - - }//end dataDoubleArrow() - - - /** - * Test that double arrows in match expressions which are the demarkation between a case and the return value - * are correctly tokenized as `T_MATCH_ARROW`. - * - * @param string $testMarker The comment prefacing the target token. - * - * @dataProvider dataMatchArrow - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testMatchArrow($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_DOUBLE_ARROW, T_MATCH_ARROW, T_FN_ARROW]); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_MATCH_ARROW, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_ARROW (code)'); - $this->assertSame('T_MATCH_ARROW', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_ARROW (type)'); - - }//end testMatchArrow() - - - /** - * Data provider. - * - * @see testMatchArrow() - * - * @return array - */ - public function dataMatchArrow() - { - return [ - 'single_case' => ['/* testMatchArrowSimpleSingleCase */'], - 'multi_case' => ['/* testMatchArrowSimpleMultiCase */'], - 'single_case_with_trailing_comma' => ['/* testMatchArrowSimpleSingleCaseWithTrailingComma */'], - 'multi_case_with_trailing_comma' => ['/* testMatchArrowSimpleMultiCaseWithTrailingComma */'], - 'match_nested_outer' => ['/* testMatchArrowNestedMatchOuter */'], - 'match_nested_inner' => ['/* testMatchArrowNestedMatchInner */'], - - 'in_long_array_value_1' => ['/* testMatchArrowInLongArrayValue1 */'], - 'in_long_array_value_2' => ['/* testMatchArrowInLongArrayValue2 */'], - 'in_long_array_value_3' => ['/* testMatchArrowInLongArrayValue3 */'], - 'in_short_array_value_1' => ['/* testMatchArrowInShortArrayValue1 */'], - 'in_short_array_value_2' => ['/* testMatchArrowInShortArrayValue2 */'], - 'in_short_array_value_3' => ['/* testMatchArrowInShortArrayValue3 */'], - - 'in_long_array_key_1' => ['/* testMatchArrowInLongArrayKey1 */'], - 'in_long_array_key_2' => ['/* testMatchArrowInLongArrayKey2 */'], - 'in_short_array_key_1' => ['/* testMatchArrowInShortArrayKey1 */'], - 'in_short_array_key_2' => ['/* testMatchArrowInShortArrayKey2 */'], - - 'with_long_array_value_with_keys' => ['/* testMatchArrowWithLongArrayBodyWithKeys */'], - 'with_short_array_value_without_keys' => ['/* testMatchArrowWithShortArrayBodyWithoutKeys */'], - 'with_long_array_value_without_keys' => ['/* testMatchArrowWithLongArrayBodyWithoutKeys */'], - 'with_short_array_value_with_keys' => ['/* testMatchArrowWithShortArrayBodyWithKeys */'], - - 'with_short_array_with_keys_as_case' => ['/* testMatchArrowWithShortArrayWithKeysAsCase */'], - 'with_multiple_arrays_with_keys_as_case' => ['/* testMatchArrowWithMultipleArraysWithKeysAsCase */'], - - 'in_fn_body_case' => ['/* testMatchArrowInFnBody1 */'], - 'in_fn_body_default' => ['/* testMatchArrowInFnBody2 */'], - 'with_fn_body_case' => ['/* testMatchArrowWithFnBody1 */'], - 'with_fn_body_default' => ['/* testMatchArrowWithFnBody2 */'], - - 'in_complex_short_array_key_1' => ['/* testMatchArrowInComplexShortArrayKey1 */'], - 'in_complex_short_array_key_2' => ['/* testMatchArrowInComplexShortArrayKey2 */'], - 'in_complex_short_array_value_1' => ['/* testMatchArrowInComplexShortArrayValue1 */'], - 'in_complex_short_array_key_2' => ['/* testMatchArrowInComplexShortArrayValue1 */'], - - 'with_long_list_in_body' => ['/* testMatchArrowWithLongListBody */'], - 'with_long_list_in_case' => ['/* testMatchArrowWithLongListInCase */'], - 'with_short_list_in_body' => ['/* testMatchArrowWithShortListBody */'], - 'with_short_list_in_case' => ['/* testMatchArrowWithShortListInCase */'], - 'in_long_list_key' => ['/* testMatchArrowInLongListKey */'], - 'in_short_list_key' => ['/* testMatchArrowInShortListKey */'], - - 'with_long_array_value_with_default_key' => ['/* testMatchArrowWithNestedLongArrayWithClassConstantKey */'], - 'with_short_array_value_with_default_key' => ['/* testMatchArrowWithNestedShortArrayWithClassConstantKey */'], - 'in_long_array_value_with_default_key' => ['/* testMatchArrowNestedInLongArrayWithClassConstantKey */'], - 'in_short_array_value_with_default_key' => ['/* testMatchArrowNestedInShortArrayWithClassConstantKey */'], - ]; - - }//end dataMatchArrow() - - - /** - * Test that double arrows used as the scope opener for an arrow function - * are correctly tokenized as `T_FN_ARROW`. - * - * @param string $testMarker The comment prefacing the target token. - * - * @dataProvider dataFnArrow - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testFnArrow($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $token = $this->getTargetToken($testMarker, [T_DOUBLE_ARROW, T_MATCH_ARROW, T_FN_ARROW]); - $tokenArray = $tokens[$token]; - - $this->assertSame(T_FN_ARROW, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_FN_ARROW (code)'); - $this->assertSame('T_FN_ARROW', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_FN_ARROW (type)'); - - }//end testFnArrow() - - - /** - * Data provider. - * - * @see testFnArrow() - * - * @return array - */ - public function dataFnArrow() - { - return [ - 'simple_fn' => ['/* testFnArrowSimple */'], - - 'with_match_as_value' => ['/* testFnArrowWithMatchInValue */'], - 'in_match_value_case' => ['/* testFnArrowInMatchBody1 */'], - 'in_match_value_default' => ['/* testFnArrowInMatchBody2 */'], - - 'in_complex_match_value_in_short_array' => ['/* testFnArrowInComplexMatchValueInShortArrayValue */'], - ]; - - }//end dataFnArrow() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/GotoLabelTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/GotoLabelTest.php deleted file mode 100644 index fa6f8cfb4..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/GotoLabelTest.php +++ /dev/null @@ -1,171 +0,0 @@ - - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class GotoLabelTest extends AbstractMethodUnitTest -{ - - - /** - * Verify that the label in a goto statement is tokenized as T_STRING. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to expect. - * - * @dataProvider dataGotoStatement - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testGotoStatement($testMarker, $testContent) - { - $tokens = self::$phpcsFile->getTokens(); - - $label = $this->getTargetToken($testMarker, T_STRING); - - $this->assertInternalType('int', $label); - $this->assertSame($testContent, $tokens[$label]['content']); - - }//end testGotoStatement() - - - /** - * Data provider. - * - * @see testGotoStatement() - * - * @return array - */ - public function dataGotoStatement() - { - return [ - [ - '/* testGotoStatement */', - 'marker', - ], - [ - '/* testGotoStatementInLoop */', - 'end', - ], - ]; - - }//end dataGotoStatement() - - - /** - * Verify that the label in a goto declaration is tokenized as T_GOTO_LABEL. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to expect. - * - * @dataProvider dataGotoDeclaration - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testGotoDeclaration($testMarker, $testContent) - { - $tokens = self::$phpcsFile->getTokens(); - - $label = $this->getTargetToken($testMarker, T_GOTO_LABEL); - - $this->assertInternalType('int', $label); - $this->assertSame($testContent, $tokens[$label]['content']); - - }//end testGotoDeclaration() - - - /** - * Data provider. - * - * @see testGotoDeclaration() - * - * @return array - */ - public function dataGotoDeclaration() - { - return [ - [ - '/* testGotoDeclaration */', - 'marker:', - ], - [ - '/* testGotoDeclarationOutsideLoop */', - 'end:', - ], - ]; - - }//end dataGotoDeclaration() - - - /** - * Verify that the constant used in a switch - case statement is not confused with a goto label. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $testContent The token content to expect. - * - * @dataProvider dataNotAGotoDeclaration - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testNotAGotoDeclaration($testMarker, $testContent) - { - $tokens = self::$phpcsFile->getTokens(); - $target = $this->getTargetToken($testMarker, [T_GOTO_LABEL, T_STRING], $testContent); - - $this->assertSame(T_STRING, $tokens[$target]['code']); - $this->assertSame('T_STRING', $tokens[$target]['type']); - - }//end testNotAGotoDeclaration() - - - /** - * Data provider. - * - * @see testNotAGotoDeclaration() - * - * @return array - */ - public function dataNotAGotoDeclaration() - { - return [ - [ - '/* testNotGotoDeclarationGlobalConstant */', - 'CONSTANT', - ], - [ - '/* testNotGotoDeclarationNamespacedConstant */', - 'CONSTANT', - ], - [ - '/* testNotGotoDeclarationClassConstant */', - 'CONSTANT', - ], - [ - '/* testNotGotoDeclarationClassProperty */', - 'property', - ], - [ - '/* testNotGotoDeclarationGlobalConstantInTernary */', - 'CONST_A', - ], - [ - '/* testNotGotoDeclarationGlobalConstantInTernary */', - 'CONST_B', - ], - ]; - - }//end dataNotAGotoDeclaration() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.php deleted file mode 100644 index 13be10e5f..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.php +++ /dev/null @@ -1,882 +0,0 @@ - - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -use PHP_CodeSniffer\Util\Tokens; - -class NamedFunctionCallArgumentsTest extends AbstractMethodUnitTest -{ - - - /** - * Verify that parameter labels are tokenized as T_PARAM_NAME and that - * the colon after it is tokenized as a T_COLON. - * - * @param string $testMarker The comment prefacing the target token. - * @param array $parameters The token content for each parameter label to look for. - * - * @dataProvider dataNamedFunctionCallArguments - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testNamedFunctionCallArguments($testMarker, $parameters) - { - $tokens = self::$phpcsFile->getTokens(); - - foreach ($parameters as $content) { - $label = $this->getTargetToken($testMarker, [T_STRING, T_PARAM_NAME], $content); - - $this->assertSame( - T_PARAM_NAME, - $tokens[$label]['code'], - 'Token tokenized as '.$tokens[$label]['code'].', not T_PARAM_NAME (code)' - ); - $this->assertSame( - 'T_PARAM_NAME', - $tokens[$label]['type'], - 'Token tokenized as '.$tokens[$label]['type'].', not T_PARAM_NAME (type)' - ); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - }//end foreach - - }//end testNamedFunctionCallArguments() - - - /** - * Data provider. - * - * @see testNamedFunctionCallArguments() - * - * @return array - */ - public function dataNamedFunctionCallArguments() - { - return [ - [ - '/* testNamedArgs */', - [ - 'start_index', - 'count', - 'value', - ], - ], - [ - '/* testNamedArgsMultiline */', - [ - 'start_index', - 'count', - 'value', - ], - ], - [ - '/* testNamedArgsWithWhitespaceAndComments */', - [ - 'start_index', - 'count', - 'value', - ], - ], - [ - '/* testMixedPositionalAndNamedArgs */', - ['double_encode'], - ], - [ - '/* testNestedFunctionCallOuter */', - [ - 'start_index', - 'count', - 'value', - ], - ], - [ - '/* testNestedFunctionCallInner1 */', - ['skip'], - ], - [ - '/* testNestedFunctionCallInner2 */', - ['array_or_countable'], - ], - [ - '/* testNamespaceOperatorFunction */', - [ - 'label', - 'more', - ], - ], - [ - '/* testNamespaceRelativeFunction */', - [ - 'label', - 'more', - ], - ], - [ - '/* testNamespacedFQNFunction */', - [ - 'label', - 'more', - ], - ], - [ - '/* testVariableFunction */', - [ - 'label', - 'more', - ], - ], - [ - '/* testVariableVariableFunction */', - [ - 'label', - 'more', - ], - ], - [ - '/* testMethodCall */', - [ - 'label', - 'more', - ], - ], - [ - '/* testVariableMethodCall */', - [ - 'label', - 'more', - ], - ], - [ - '/* testClassInstantiation */', - [ - 'label', - 'more', - ], - ], - [ - '/* testClassInstantiationSelf */', - [ - 'label', - 'more', - ], - ], - [ - '/* testClassInstantiationStatic */', - [ - 'label', - 'more', - ], - ], - [ - '/* testAnonClass */', - [ - 'label', - 'more', - ], - ], - [ - '/* testNonAsciiNames */', - [ - '💩💩💩', - 'Пасха', - '_valid', - ], - ], - - // Coding errors which should still be handled. - [ - '/* testCompileErrorNamedBeforePositional */', - ['param'], - ], - [ - '/* testDuplicateName1 */', - ['param'], - ], - [ - '/* testDuplicateName2 */', - ['param'], - ], - [ - '/* testIncorrectOrderWithVariadic */', - ['start_index'], - ], - [ - '/* testCompileErrorIncorrectOrderWithVariadic */', - ['param'], - ], - [ - '/* testParseErrorNoValue */', - [ - 'param1', - 'param2', - ], - ], - [ - '/* testParseErrorExit */', - ['status'], - ], - [ - '/* testParseErrorEmpty */', - ['variable'], - ], - [ - '/* testParseErrorEval */', - ['code'], - ], - [ - '/* testParseErrorArbitraryParentheses */', - ['something'], - ], - ]; - - }//end dataNamedFunctionCallArguments() - - - /** - * Verify that other T_STRING tokens within a function call are still tokenized as T_STRING. - * - * @param string $testMarker The comment prefacing the target token. - * @param string $content The token content to look for. - * - * @dataProvider dataOtherTstringInFunctionCall - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testOtherTstringInFunctionCall($testMarker, $content) - { - $tokens = self::$phpcsFile->getTokens(); - - $label = $this->getTargetToken($testMarker, [T_STRING, T_PARAM_NAME], $content); - - $this->assertSame( - T_STRING, - $tokens[$label]['code'], - 'Token tokenized as '.$tokens[$label]['code'].', not T_STRING (code)' - ); - $this->assertSame( - 'T_STRING', - $tokens[$label]['type'], - 'Token tokenized as '.$tokens[$label]['type'].', not T_STRING (type)' - ); - - }//end testOtherTstringInFunctionCall() - - - /** - * Data provider. - * - * @see testOtherTstringInFunctionCall() - * - * @return array - */ - public function dataOtherTstringInFunctionCall() - { - return [ - [ - '/* testPositionalArgs */', - 'START_INDEX', - ], - [ - '/* testPositionalArgs */', - 'COUNT', - ], - [ - '/* testPositionalArgs */', - 'VALUE', - ], - [ - '/* testNestedFunctionCallInner2 */', - 'count', - ], - ]; - - }//end dataOtherTstringInFunctionCall() - - - /** - * Verify whether the colons are tokenized correctly when a ternary is used in a mixed - * positional and named arguments function call. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testMixedPositionalAndNamedArgsWithTernary() - { - $tokens = self::$phpcsFile->getTokens(); - - $true = $this->getTargetToken('/* testMixedPositionalAndNamedArgsWithTernary */', T_TRUE); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($true + 1), null, true); - - $this->assertSame( - T_INLINE_ELSE, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' - ); - $this->assertSame( - 'T_INLINE_ELSE', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' - ); - - $label = $this->getTargetToken('/* testMixedPositionalAndNamedArgsWithTernary */', T_PARAM_NAME, 'name'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - }//end testMixedPositionalAndNamedArgsWithTernary() - - - /** - * Verify whether the colons are tokenized correctly when a ternary is used - * in a named arguments function call. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testNamedArgWithTernary() - { - $tokens = self::$phpcsFile->getTokens(); - - /* - * First argument. - */ - - $label = $this->getTargetToken('/* testNamedArgWithTernary */', T_PARAM_NAME, 'label'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'First arg: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'First arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'First arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - $true = $this->getTargetToken('/* testNamedArgWithTernary */', T_TRUE); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($true + 1), null, true); - - $this->assertSame( - T_INLINE_ELSE, - $tokens[$colon]['code'], - 'First arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' - ); - $this->assertSame( - 'T_INLINE_ELSE', - $tokens[$colon]['type'], - 'First arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' - ); - - /* - * Second argument. - */ - - $label = $this->getTargetToken('/* testNamedArgWithTernary */', T_PARAM_NAME, 'more'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Second arg: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Second arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Second arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - $true = $this->getTargetToken('/* testNamedArgWithTernary */', T_STRING, 'CONSTANT_A'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($true + 1), null, true); - - $this->assertSame( - T_INLINE_ELSE, - $tokens[$colon]['code'], - 'Second arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' - ); - $this->assertSame( - 'T_INLINE_ELSE', - $tokens[$colon]['type'], - 'Second arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' - ); - - }//end testNamedArgWithTernary() - - - /** - * Verify whether the colons are tokenized correctly when named arguments - * function calls are used in a ternary. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testTernaryWithFunctionCallsInThenElse() - { - $tokens = self::$phpcsFile->getTokens(); - - /* - * Then. - */ - - $label = $this->getTargetToken('/* testTernaryWithFunctionCallsInThenElse */', T_PARAM_NAME, 'label'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Function in then: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Function in then: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Function in then: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - $closeParens = $this->getTargetToken('/* testTernaryWithFunctionCallsInThenElse */', T_CLOSE_PARENTHESIS); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($closeParens + 1), null, true); - - $this->assertSame( - T_INLINE_ELSE, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' - ); - $this->assertSame( - 'T_INLINE_ELSE', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' - ); - - /* - * Else. - */ - - $label = $this->getTargetToken('/* testTernaryWithFunctionCallsInThenElse */', T_PARAM_NAME, 'more'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Function in else: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Function in else: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Function in else: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - }//end testTernaryWithFunctionCallsInThenElse() - - - /** - * Verify whether the colons are tokenized correctly when constants are used in a ternary. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testTernaryWithConstantsInThenElse() - { - $tokens = self::$phpcsFile->getTokens(); - - $constant = $this->getTargetToken('/* testTernaryWithConstantsInThenElse */', T_STRING, 'CONSTANT_NAME'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($constant + 1), null, true); - - $this->assertSame( - T_INLINE_ELSE, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' - ); - $this->assertSame( - 'T_INLINE_ELSE', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' - ); - - }//end testTernaryWithConstantsInThenElse() - - - /** - * Verify whether the colons are tokenized correctly in a switch statement. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testSwitchStatement() - { - $tokens = self::$phpcsFile->getTokens(); - - $label = $this->getTargetToken('/* testSwitchCaseWithConstant */', T_STRING, 'MY_CONSTANT'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'First case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'First case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - $label = $this->getTargetToken('/* testSwitchCaseWithClassProperty */', T_STRING, 'property'); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Second case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Second case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - $default = $this->getTargetToken('/* testSwitchDefault */', T_DEFAULT); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($default + 1), null, true); - - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Default case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Default case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - }//end testSwitchStatement() - - - /** - * Verify that a variable parameter label (parse error) is still tokenized as T_VARIABLE. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testParseErrorVariableLabel() - { - $tokens = self::$phpcsFile->getTokens(); - - $label = $this->getTargetToken('/* testParseErrorDynamicName */', [T_VARIABLE, T_PARAM_NAME], '$variableStoringParamName'); - - $this->assertSame( - T_VARIABLE, - $tokens[$label]['code'], - 'Token tokenized as '.$tokens[$label]['type'].', not T_VARIABLE (code)' - ); - $this->assertSame( - 'T_VARIABLE', - $tokens[$label]['type'], - 'Token tokenized as '.$tokens[$label]['type'].', not T_VARIABLE (type)' - ); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - }//end testParseErrorVariableLabel() - - - /** - * Verify that reserved keywords used as a parameter label are tokenized as T_PARAM_NAME - * and that the colon after it is tokenized as a T_COLON. - * - * @param string $testMarker The comment prefacing the target token. - * @param array $tokenTypes The token codes to look for. - * @param string $tokenContent The token content to look for. - * - * @dataProvider dataReservedKeywordsAsName - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testReservedKeywordsAsName($testMarker, $tokenTypes, $tokenContent) - { - $tokens = self::$phpcsFile->getTokens(); - $label = $this->getTargetToken($testMarker, $tokenTypes, $tokenContent); - - $this->assertSame( - T_PARAM_NAME, - $tokens[$label]['code'], - 'Token tokenized as '.$tokens[$label]['code'].', not T_PARAM_NAME (code)' - ); - $this->assertSame( - 'T_PARAM_NAME', - $tokens[$label]['type'], - 'Token tokenized as '.$tokens[$label]['type'].', not T_PARAM_NAME (type)' - ); - - // Get the next non-empty token. - $colon = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); - - $this->assertSame( - ':', - $tokens[$colon]['content'], - 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] - ); - $this->assertSame( - T_COLON, - $tokens[$colon]['code'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' - ); - $this->assertSame( - 'T_COLON', - $tokens[$colon]['type'], - 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' - ); - - }//end testReservedKeywordsAsName() - - - /** - * Data provider. - * - * @see testReservedKeywordsAsName() - * - * @return array - */ - public function dataReservedKeywordsAsName() - { - $reservedKeywords = [ - // '__halt_compiler', NOT TESTABLE - 'abstract', - 'and', - 'array', - 'as', - 'break', - 'callable', - 'case', - 'catch', - 'class', - 'clone', - 'const', - 'continue', - 'declare', - 'default', - 'die', - 'do', - 'echo', - 'else', - 'elseif', - 'empty', - 'enddeclare', - 'endfor', - 'endforeach', - 'endif', - 'endswitch', - 'endwhile', - 'eval', - 'exit', - 'extends', - 'final', - 'finally', - 'fn', - 'for', - 'foreach', - 'function', - 'global', - 'goto', - 'if', - 'implements', - 'include', - 'include_once', - 'instanceof', - 'insteadof', - 'interface', - 'isset', - 'list', - 'match', - 'namespace', - 'new', - 'or', - 'print', - 'private', - 'protected', - 'public', - 'require', - 'require_once', - 'return', - 'static', - 'switch', - 'throw', - 'trait', - 'try', - 'unset', - 'use', - 'var', - 'while', - 'xor', - 'yield', - 'int', - 'float', - 'bool', - 'string', - 'true', - 'false', - 'null', - 'void', - 'iterable', - 'object', - 'resource', - 'mixed', - 'numeric', - - // Not reserved keyword, but do have their own token in PHPCS. - 'parent', - 'self', - ]; - - $data = []; - - foreach ($reservedKeywords as $keyword) { - $tokensTypes = [ - T_PARAM_NAME, - T_STRING, - T_GOTO_LABEL, - ]; - $tokenName = 'T_'.strtoupper($keyword); - - if ($keyword === 'and') { - $tokensTypes[] = T_LOGICAL_AND; - } else if ($keyword === 'die') { - $tokensTypes[] = T_EXIT; - } else if ($keyword === 'or') { - $tokensTypes[] = T_LOGICAL_OR; - } else if ($keyword === 'xor') { - $tokensTypes[] = T_LOGICAL_XOR; - } else if ($keyword === '__halt_compiler') { - $tokensTypes[] = T_HALT_COMPILER; - } else if (defined($tokenName) === true) { - $tokensTypes[] = constant($tokenName); - } - - $data[$keyword.'FirstParam'] = [ - '/* testReservedKeyword'.ucfirst($keyword).'1 */', - $tokensTypes, - $keyword, - ]; - - $data[$keyword.'SecondParam'] = [ - '/* testReservedKeyword'.ucfirst($keyword).'2 */', - $tokensTypes, - $keyword, - ]; - }//end foreach - - return $data; - - }//end dataReservedKeywordsAsName() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NullsafeObjectOperatorTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NullsafeObjectOperatorTest.php deleted file mode 100644 index 8e465a3be..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NullsafeObjectOperatorTest.php +++ /dev/null @@ -1,140 +0,0 @@ -= 8.0 nullsafe object operator. - * - * @author Juliette Reinders Folmer - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -use PHP_CodeSniffer\Util\Tokens; - -class NullsafeObjectOperatorTest extends AbstractMethodUnitTest -{ - - /** - * Tokens to search for. - * - * @var array - */ - protected $find = [ - T_NULLSAFE_OBJECT_OPERATOR, - T_OBJECT_OPERATOR, - T_INLINE_THEN, - ]; - - - /** - * Test that a normal object operator is still tokenized as such. - * - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testObjectOperator() - { - $tokens = self::$phpcsFile->getTokens(); - - $operator = $this->getTargetToken('/* testObjectOperator */', $this->find); - $this->assertSame(T_OBJECT_OPERATOR, $tokens[$operator]['code'], 'Failed asserting code is object operator'); - $this->assertSame('T_OBJECT_OPERATOR', $tokens[$operator]['type'], 'Failed asserting type is object operator'); - - }//end testObjectOperator() - - - /** - * Test that a nullsafe object operator is tokenized as such. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * - * @dataProvider dataNullsafeObjectOperator - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testNullsafeObjectOperator($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $operator = $this->getTargetToken($testMarker, $this->find); - $this->assertSame(T_NULLSAFE_OBJECT_OPERATOR, $tokens[$operator]['code'], 'Failed asserting code is nullsafe object operator'); - $this->assertSame('T_NULLSAFE_OBJECT_OPERATOR', $tokens[$operator]['type'], 'Failed asserting type is nullsafe object operator'); - - }//end testNullsafeObjectOperator() - - - /** - * Data provider. - * - * @see testNullsafeObjectOperator() - * - * @return array - */ - public function dataNullsafeObjectOperator() - { - return [ - ['/* testNullsafeObjectOperator */'], - ['/* testNullsafeObjectOperatorWriteContext */'], - ]; - - }//end dataNullsafeObjectOperator() - - - /** - * Test that a question mark not followed by an object operator is tokenized as T_TERNARY_THEN. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * @param bool $testObjectOperator Whether to test for the next non-empty token being tokenized - * as an object operator. - * - * @dataProvider dataTernaryThen - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testTernaryThen($testMarker, $testObjectOperator=false) - { - $tokens = self::$phpcsFile->getTokens(); - - $operator = $this->getTargetToken($testMarker, $this->find); - $this->assertSame(T_INLINE_THEN, $tokens[$operator]['code'], 'Failed asserting code is inline then'); - $this->assertSame('T_INLINE_THEN', $tokens[$operator]['type'], 'Failed asserting type is inline then'); - - if ($testObjectOperator === true) { - $next = self::$phpcsFile->findNext(Tokens::$emptyTokens, ($operator + 1), null, true); - $this->assertSame(T_OBJECT_OPERATOR, $tokens[$next]['code'], 'Failed asserting code is object operator'); - $this->assertSame('T_OBJECT_OPERATOR', $tokens[$next]['type'], 'Failed asserting type is object operator'); - } - - }//end testTernaryThen() - - - /** - * Data provider. - * - * @see testTernaryThen() - * - * @return array - */ - public function dataTernaryThen() - { - return [ - ['/* testTernaryThen */'], - [ - '/* testParseErrorWhitespaceNotAllowed */', - true, - ], - [ - '/* testParseErrorCommentNotAllowed */', - true, - ], - ['/* testLiveCoding */'], - ]; - - }//end dataTernaryThen() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AnonClassParenthesisOwnerTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AnonClassParenthesisOwnerTest.inc new file mode 100644 index 000000000..3ee1afd0d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AnonClassParenthesisOwnerTest.inc @@ -0,0 +1,29 @@ + * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; -class AnonClassParenthesisOwnerTest extends AbstractMethodUnitTest +final class AnonClassParenthesisOwnerTest extends AbstractTokenizerTestCase { @@ -27,7 +27,7 @@ class AnonClassParenthesisOwnerTest extends AbstractMethodUnitTest */ public function testAnonClassNoParentheses($testMarker) { - $tokens = self::$phpcsFile->getTokens(); + $tokens = $this->phpcsFile->getTokens(); $anonClass = $this->getTargetToken($testMarker, T_ANON_CLASS); $this->assertFalse(array_key_exists('parenthesis_owner', $tokens[$anonClass])); @@ -50,7 +50,7 @@ public function testAnonClassNoParentheses($testMarker) */ public function testAnonClassNoParenthesesNextOpenClose($testMarker) { - $tokens = self::$phpcsFile->getTokens(); + $tokens = $this->phpcsFile->getTokens(); $function = $this->getTargetToken($testMarker, T_FUNCTION); $opener = $this->getTargetToken($testMarker, T_OPEN_PARENTHESIS); @@ -70,13 +70,20 @@ public function testAnonClassNoParenthesesNextOpenClose($testMarker) * @see testAnonClassNoParentheses() * @see testAnonClassNoParenthesesNextOpenClose() * - * @return array + * @return array> */ - public function dataAnonClassNoParentheses() + public static function dataAnonClassNoParentheses() { return [ - ['/* testNoParentheses */'], - ['/* testNoParenthesesAndEmptyTokens */'], + 'plain' => [ + 'testMarker' => '/* testNoParentheses */', + ], + 'readonly' => [ + 'testMarker' => '/* testReadonlyNoParentheses */', + ], + 'declaration contains comments and extra whitespace' => [ + 'testMarker' => '/* testNoParenthesesAndEmptyTokens */', + ], ]; }//end dataAnonClassNoParentheses() @@ -95,7 +102,7 @@ public function dataAnonClassNoParentheses() */ public function testAnonClassWithParentheses($testMarker) { - $tokens = self::$phpcsFile->getTokens(); + $tokens = $this->phpcsFile->getTokens(); $anonClass = $this->getTargetToken($testMarker, T_ANON_CLASS); $opener = $this->getTargetToken($testMarker, T_OPEN_PARENTHESIS); $closer = $this->getTargetToken($testMarker, T_CLOSE_PARENTHESIS); @@ -129,13 +136,20 @@ public function testAnonClassWithParentheses($testMarker) * * @see testAnonClassWithParentheses() * - * @return array + * @return array> */ - public function dataAnonClassWithParentheses() + public static function dataAnonClassWithParentheses() { return [ - ['/* testWithParentheses */'], - ['/* testWithParenthesesAndEmptyTokens */'], + 'plain' => [ + 'testMarker' => '/* testWithParentheses */', + ], + 'readonly' => [ + 'testMarker' => '/* testReadonlyWithParentheses */', + ], + 'declaration contains comments and extra whitespace' => [ + 'testMarker' => '/* testWithParenthesesAndEmptyTokens */', + ], ]; }//end dataAnonClassWithParentheses() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ArrayKeywordTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ArrayKeywordTest.inc new file mode 100644 index 000000000..6d8adfcba --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ArrayKeywordTest.inc @@ -0,0 +1,58 @@ + 10); + +/* testArrayWithComment */ +$var = Array /*comment*/ (1 => 10); + +/* testNestingArray */ +$var = array( + /* testNestedArray */ + array( + 'key' => 'value', + + /* testClosureReturnType */ + 'closure' => function($a) use($global) : Array {}, + ), +); + +/* testFunctionDeclarationParamType */ +function typedParam(array $a) {} + +/* testFunctionDeclarationReturnType */ +function returnType($a) : int|array|null {} + +class Bar { + /* testClassConst */ + const ARRAY = []; + + /* testClassMethod */ + public function array() {} + + /* testOOConstType */ + const array /* testTypedOOConstName */ ARRAY = /* testOOConstDefault */ array(); + + /* testOOPropertyType */ + protected array $property; +} + +class DNFTypes { + /* testOOConstDNFType */ + const (A&B)|array|(C&D) NAME = []; + + /* testOOPropertyDNFType */ + protected (A&B)|ARRAY|null $property; + + /* testFunctionDeclarationParamDNFType */ + public function name(null|array|(A&B) $param) { + /* testClosureDeclarationParamDNFType */ + $cl = function ( array|(A&B) $param) {}; + + /* testArrowDeclarationReturnDNFType */ + $arrow = fn($a): (A&B)|Array => new $a; + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ArrayKeywordTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ArrayKeywordTest.php new file mode 100644 index 000000000..37528d6d7 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ArrayKeywordTest.php @@ -0,0 +1,200 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class ArrayKeywordTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the array keyword is correctly tokenized as `T_ARRAY`. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent Optional. The token content to look for. + * + * @dataProvider dataArrayKeyword + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testArrayKeyword($testMarker, $testContent='array') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_ARRAY, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_ARRAY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_ARRAY (code)'); + $this->assertSame('T_ARRAY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_ARRAY (type)'); + + }//end testArrayKeyword() + + + /** + * Data provider. + * + * @see testArrayKeyword() + * + * @return array> + */ + public static function dataArrayKeyword() + { + return [ + 'empty array' => [ + 'testMarker' => '/* testEmptyArray */', + ], + 'array with space before parenthesis' => [ + 'testMarker' => '/* testArrayWithSpace */', + ], + 'array with comment before parenthesis' => [ + 'testMarker' => '/* testArrayWithComment */', + 'testContent' => 'Array', + ], + 'nested: outer array' => [ + 'testMarker' => '/* testNestingArray */', + ], + 'nested: inner array' => [ + 'testMarker' => '/* testNestedArray */', + ], + 'OO constant default value' => [ + 'testMarker' => '/* testOOConstDefault */', + ], + ]; + + }//end dataArrayKeyword() + + + /** + * Test that the array keyword when used in a type declaration is correctly tokenized as `T_STRING`. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent Optional. The token content to look for. + * + * @dataProvider dataArrayType + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testArrayType($testMarker, $testContent='array') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_ARRAY, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testArrayType() + + + /** + * Data provider. + * + * @see testArrayType() + * + * @return array> + */ + public static function dataArrayType() + { + return [ + 'closure return type' => [ + 'testMarker' => '/* testClosureReturnType */', + 'testContent' => 'Array', + ], + 'function param type' => [ + 'testMarker' => '/* testFunctionDeclarationParamType */', + ], + 'function union return type' => [ + 'testMarker' => '/* testFunctionDeclarationReturnType */', + ], + 'OO constant type' => [ + 'testMarker' => '/* testOOConstType */', + ], + 'OO property type' => [ + 'testMarker' => '/* testOOPropertyType */', + ], + + 'OO constant DNF type' => [ + 'testMarker' => '/* testOOConstDNFType */', + ], + 'OO property DNF type' => [ + 'testMarker' => '/* testOOPropertyDNFType */', + 'testContent' => 'ARRAY', + ], + 'function param DNF type' => [ + 'testMarker' => '/* testFunctionDeclarationParamDNFType */', + ], + 'closure param DNF type' => [ + 'testMarker' => '/* testClosureDeclarationParamDNFType */', + ], + 'arrow return DNF type' => [ + 'testMarker' => '/* testArrowDeclarationReturnDNFType */', + 'testContent' => 'Array', + ], + ]; + + }//end dataArrayType() + + + /** + * Verify that the retokenization of `T_ARRAY` tokens to `T_STRING` is handled correctly + * for tokens with the contents 'array' which aren't in actual fact the array keyword. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotArrayKeyword + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNotArrayKeyword($testMarker, $testContent='array') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_ARRAY, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testNotArrayKeyword() + + + /** + * Data provider. + * + * @see testNotArrayKeyword() + * + * @return array> + */ + public static function dataNotArrayKeyword() + { + return [ + 'class-constant-name' => [ + 'testMarker' => '/* testClassConst */', + 'testContent' => 'ARRAY', + ], + 'class-method-name' => [ + 'testMarker' => '/* testClassMethod */', + ], + 'class-constant-name-after-type' => [ + 'testMarker' => '/* testTypedOOConstName */', + 'testContent' => 'ARRAY', + ], + ]; + + }//end dataNotArrayKeyword() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AttributesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AttributesTest.inc similarity index 86% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AttributesTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AttributesTest.inc index 9b7b869d1..e539adf8a 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/AttributesTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AttributesTest.inc @@ -75,7 +75,16 @@ function multiline_attributes_on_parameter_test(#[ ) ] int $param) {} +/* testAttributeContainingTextLookingLikeCloseTag */ +#[DeprecationReason('reason: ')] +function attribute_containing_text_looking_like_close_tag() {} + +/* testAttributeContainingMultilineTextLookingLikeCloseTag */ +#[DeprecationReason( + 'reason: ' +)] +function attribute_containing_mulitline_text_looking_like_close_tag() {} + /* testInvalidAttribute */ #[ThisIsNotAnAttribute function invalid_attribute_test() {} - diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AttributesTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AttributesTest.php new file mode 100644 index 000000000..24b7f0795 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/AttributesTest.php @@ -0,0 +1,704 @@ + + * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class AttributesTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that attributes are parsed correctly. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int $length The number of tokens between opener and closer. + * @param array $tokenCodes The codes of tokens inside the attributes. + * + * @dataProvider dataAttribute + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * + * @return void + */ + public function testAttribute($testMarker, $length, $tokenCodes) + { + $tokens = $this->phpcsFile->getTokens(); + + $attribute = $this->getTargetToken($testMarker, T_ATTRIBUTE); + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + + $closer = $tokens[$attribute]['attribute_closer']; + $this->assertSame(($attribute + $length), $closer); + + $this->assertSame(T_ATTRIBUTE_END, $tokens[$closer]['code']); + + $this->assertSame($tokens[$attribute]['attribute_opener'], $tokens[$closer]['attribute_opener']); + $this->assertSame($tokens[$attribute]['attribute_closer'], $tokens[$closer]['attribute_closer']); + + $map = array_map( + function ($token) use ($attribute, $length) { + $this->assertArrayHasKey('attribute_closer', $token); + $this->assertSame(($attribute + $length), $token['attribute_closer']); + + return $token['code']; + }, + array_slice($tokens, ($attribute + 1), ($length - 1)) + ); + + $this->assertSame($tokenCodes, $map); + + }//end testAttribute() + + + /** + * Data provider. + * + * @see testAttribute() + * + * @return array>> + */ + public static function dataAttribute() + { + return [ + 'class attribute' => [ + 'testMarker' => '/* testAttribute */', + 'length' => 2, + 'tokenCodes' => [ + T_STRING + ], + ], + 'class attribute with param' => [ + 'testMarker' => '/* testAttributeWithParams */', + 'length' => 7, + 'tokenCodes' => [ + T_STRING, + T_OPEN_PARENTHESIS, + T_STRING, + T_DOUBLE_COLON, + T_STRING, + T_CLOSE_PARENTHESIS, + ], + ], + 'class attribute with named param' => [ + 'testMarker' => '/* testAttributeWithNamedParam */', + 'length' => 10, + 'tokenCodes' => [ + T_STRING, + T_OPEN_PARENTHESIS, + T_PARAM_NAME, + T_COLON, + T_WHITESPACE, + T_STRING, + T_DOUBLE_COLON, + T_STRING, + T_CLOSE_PARENTHESIS, + ], + ], + 'function attribute' => [ + 'testMarker' => '/* testAttributeOnFunction */', + 'length' => 2, + 'tokenCodes' => [ + T_STRING + ], + ], + 'function attribute with params' => [ + 'testMarker' => '/* testAttributeOnFunctionWithParams */', + 'length' => 17, + 'tokenCodes' => [ + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_COMMA, + T_WHITESPACE, + T_PARAM_NAME, + T_COLON, + T_WHITESPACE, + T_OPEN_SHORT_ARRAY, + T_CONSTANT_ENCAPSED_STRING, + T_WHITESPACE, + T_DOUBLE_ARROW, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_SHORT_ARRAY, + T_CLOSE_PARENTHESIS, + ], + ], + 'function attribute with arrow function as param' => [ + 'testMarker' => '/* testAttributeWithShortClosureParameter */', + 'length' => 17, + 'tokenCodes' => [ + T_STRING, + T_OPEN_PARENTHESIS, + T_STATIC, + T_WHITESPACE, + T_FN, + T_WHITESPACE, + T_OPEN_PARENTHESIS, + T_VARIABLE, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + T_FN_ARROW, + T_WHITESPACE, + T_BOOLEAN_NOT, + T_WHITESPACE, + T_VARIABLE, + T_CLOSE_PARENTHESIS, + ], + ], + 'function attribute; multiple comma separated classes' => [ + 'testMarker' => '/* testAttributeGrouping */', + 'length' => 26, + 'tokenCodes' => [ + T_STRING, + T_COMMA, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_PARENTHESIS, + T_COMMA, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_COMMA, + T_WHITESPACE, + T_PARAM_NAME, + T_COLON, + T_WHITESPACE, + T_OPEN_SHORT_ARRAY, + T_CONSTANT_ENCAPSED_STRING, + T_WHITESPACE, + T_DOUBLE_ARROW, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_SHORT_ARRAY, + T_CLOSE_PARENTHESIS, + ], + ], + 'function attribute; multiple comma separated classes, one per line' => [ + 'testMarker' => '/* testAttributeMultiline */', + 'length' => 31, + 'tokenCodes' => [ + T_WHITESPACE, + T_WHITESPACE, + T_STRING, + T_COMMA, + T_WHITESPACE, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_PARENTHESIS, + T_COMMA, + T_WHITESPACE, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_COMMA, + T_WHITESPACE, + T_PARAM_NAME, + T_COLON, + T_WHITESPACE, + T_OPEN_SHORT_ARRAY, + T_CONSTANT_ENCAPSED_STRING, + T_WHITESPACE, + T_DOUBLE_ARROW, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_SHORT_ARRAY, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + ], + ], + 'function attribute; multiple comma separated classes, one per line, with comments' => [ + 'testMarker' => '/* testAttributeMultilineWithComment */', + 'length' => 34, + 'tokenCodes' => [ + T_WHITESPACE, + T_WHITESPACE, + T_STRING, + T_COMMA, + T_WHITESPACE, + T_COMMENT, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_COMMENT, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_PARENTHESIS, + T_COMMA, + T_WHITESPACE, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_COMMA, + T_WHITESPACE, + T_PARAM_NAME, + T_COLON, + T_WHITESPACE, + T_OPEN_SHORT_ARRAY, + T_CONSTANT_ENCAPSED_STRING, + T_WHITESPACE, + T_DOUBLE_ARROW, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_SHORT_ARRAY, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + ], + ], + 'function attribute; using partially qualified and fully qualified class names' => [ + 'testMarker' => '/* testFqcnAttribute */', + 'length' => 13, + 'tokenCodes' => [ + T_STRING, + T_NS_SEPARATOR, + T_STRING, + T_COMMA, + T_WHITESPACE, + T_NS_SEPARATOR, + T_STRING, + T_NS_SEPARATOR, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_PARENTHESIS, + ], + ], + ]; + + }//end dataAttribute() + + + /** + * Test that multiple attributes on the same line are parsed correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * + * @return void + */ + public function testTwoAttributesOnTheSameLine() + { + $tokens = $this->phpcsFile->getTokens(); + + $attribute = $this->getTargetToken('/* testTwoAttributeOnTheSameLine */', T_ATTRIBUTE); + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + + $closer = $tokens[$attribute]['attribute_closer']; + $this->assertSame(T_WHITESPACE, $tokens[($closer + 1)]['code']); + $this->assertSame(T_ATTRIBUTE, $tokens[($closer + 2)]['code']); + $this->assertArrayHasKey('attribute_closer', $tokens[($closer + 2)]); + + }//end testTwoAttributesOnTheSameLine() + + + /** + * Test that attribute followed by a line comment is parsed correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * + * @return void + */ + public function testAttributeAndLineComment() + { + $tokens = $this->phpcsFile->getTokens(); + + $attribute = $this->getTargetToken('/* testAttributeAndCommentOnTheSameLine */', T_ATTRIBUTE); + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + + $closer = $tokens[$attribute]['attribute_closer']; + $this->assertSame(T_WHITESPACE, $tokens[($closer + 1)]['code']); + $this->assertSame(T_COMMENT, $tokens[($closer + 2)]['code']); + + }//end testAttributeAndLineComment() + + + /** + * Test that attributes on function declaration parameters are parsed correctly. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int $position The token position (starting from T_FUNCTION) of T_ATTRIBUTE token. + * @param int $length The number of tokens between opener and closer. + * @param array $tokenCodes The codes of tokens inside the attributes. + * + * @dataProvider dataAttributeOnParameters + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * + * @return void + */ + public function testAttributeOnParameters($testMarker, $position, $length, array $tokenCodes) + { + $tokens = $this->phpcsFile->getTokens(); + + $function = $this->getTargetToken($testMarker, T_FUNCTION); + $attribute = ($function + $position); + + $this->assertSame(T_ATTRIBUTE, $tokens[$attribute]['code']); + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + + $this->assertSame(($attribute + $length), $tokens[$attribute]['attribute_closer']); + + $closer = $tokens[$attribute]['attribute_closer']; + $this->assertSame(T_WHITESPACE, $tokens[($closer + 1)]['code']); + $this->assertSame(T_STRING, $tokens[($closer + 2)]['code']); + $this->assertSame('int', $tokens[($closer + 2)]['content']); + + $this->assertSame(T_VARIABLE, $tokens[($closer + 4)]['code']); + $this->assertSame('$param', $tokens[($closer + 4)]['content']); + + $map = array_map( + function ($token) use ($attribute, $length) { + $this->assertArrayHasKey('attribute_closer', $token); + $this->assertSame(($attribute + $length), $token['attribute_closer']); + + return $token['code']; + }, + array_slice($tokens, ($attribute + 1), ($length - 1)) + ); + + $this->assertSame($tokenCodes, $map); + + }//end testAttributeOnParameters() + + + /** + * Data provider. + * + * @see testAttributeOnParameters() + * + * @return array>> + */ + public static function dataAttributeOnParameters() + { + return [ + 'parameter attribute; single, inline' => [ + 'testMarker' => '/* testSingleAttributeOnParameter */', + 'position' => 4, + 'length' => 2, + 'tokenCodes' => [ + T_STRING + ], + ], + 'parameter attribute; multiple comma separated, inline' => [ + 'testMarker' => '/* testMultipleAttributesOnParameter */', + 'position' => 4, + 'length' => 10, + 'tokenCodes' => [ + T_STRING, + T_COMMA, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_COMMENT, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_PARENTHESIS, + ], + ], + 'parameter attribute; single, multiline' => [ + 'testMarker' => '/* testMultilineAttributesOnParameter */', + 'position' => 4, + 'length' => 13, + 'tokenCodes' => [ + T_WHITESPACE, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_WHITESPACE, + T_WHITESPACE, + T_CONSTANT_ENCAPSED_STRING, + T_WHITESPACE, + T_WHITESPACE, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + T_WHITESPACE, + ], + ], + ]; + + }//end dataAttributeOnParameters() + + + /** + * Test that an attribute containing text which looks like a PHP close tag is tokenized correctly. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param int $length The number of tokens between opener and closer. + * @param array> $expectedTokensAttribute The codes of tokens inside the attributes. + * @param array $expectedTokensAfter The codes of tokens after the attributes. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * + * @dataProvider dataAttributeOnTextLookingLikeCloseTag + * + * @return void + */ + public function testAttributeContainingTextLookingLikeCloseTag($testMarker, $length, array $expectedTokensAttribute, array $expectedTokensAfter) + { + $tokens = $this->phpcsFile->getTokens(); + + $attribute = $this->getTargetToken($testMarker, T_ATTRIBUTE); + + $this->assertSame('T_ATTRIBUTE', $tokens[$attribute]['type']); + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + + $closer = $tokens[$attribute]['attribute_closer']; + $this->assertSame(($attribute + $length), $closer); + $this->assertSame(T_ATTRIBUTE_END, $tokens[$closer]['code']); + $this->assertSame('T_ATTRIBUTE_END', $tokens[$closer]['type']); + + $this->assertSame($tokens[$attribute]['attribute_opener'], $tokens[$closer]['attribute_opener']); + $this->assertSame($tokens[$attribute]['attribute_closer'], $tokens[$closer]['attribute_closer']); + + $i = ($attribute + 1); + foreach ($expectedTokensAttribute as $item) { + list($expectedType, $expectedContents) = $item; + $this->assertSame($expectedType, $tokens[$i]['type']); + $this->assertSame($expectedContents, $tokens[$i]['content']); + $this->assertArrayHasKey('attribute_opener', $tokens[$i]); + $this->assertArrayHasKey('attribute_closer', $tokens[$i]); + ++$i; + } + + $i = ($closer + 1); + foreach ($expectedTokensAfter as $expectedCode) { + $this->assertSame($expectedCode, $tokens[$i]['code']); + ++$i; + } + + }//end testAttributeContainingTextLookingLikeCloseTag() + + + /** + * Data provider. + * + * @see dataAttributeOnTextLookingLikeCloseTag() + * + * @return array>|array>> + */ + public static function dataAttributeOnTextLookingLikeCloseTag() + { + return [ + 'function attribute; string param with "?>"' => [ + 'testMarker' => '/* testAttributeContainingTextLookingLikeCloseTag */', + 'length' => 5, + 'expectedTokensAttribute' => [ + [ + 'T_STRING', + 'DeprecationReason', + ], + [ + 'T_OPEN_PARENTHESIS', + '(', + ], + [ + 'T_CONSTANT_ENCAPSED_STRING', + "'reason: '", + ], + [ + 'T_CLOSE_PARENTHESIS', + ')', + ], + [ + 'T_ATTRIBUTE_END', + ']', + ], + ], + 'expectedTokensAfter' => [ + T_WHITESPACE, + T_FUNCTION, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + T_OPEN_CURLY_BRACKET, + T_CLOSE_CURLY_BRACKET, + ], + ], + 'function attribute; string param with "?>"; multiline' => [ + 'testMarker' => '/* testAttributeContainingMultilineTextLookingLikeCloseTag */', + 'length' => 8, + 'expectedTokensAttribute' => [ + [ + 'T_STRING', + 'DeprecationReason', + ], + [ + 'T_OPEN_PARENTHESIS', + '(', + ], + [ + 'T_WHITESPACE', + "\n", + ], + [ + 'T_WHITESPACE', + " ", + ], + [ + 'T_CONSTANT_ENCAPSED_STRING', + "'reason: '", + ], + [ + 'T_WHITESPACE', + "\n", + ], + [ + 'T_CLOSE_PARENTHESIS', + ')', + ], + [ + 'T_ATTRIBUTE_END', + ']', + ], + ], + 'expectedTokensAfter' => [ + T_WHITESPACE, + T_FUNCTION, + T_WHITESPACE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + T_OPEN_CURLY_BRACKET, + T_CLOSE_CURLY_BRACKET, + ], + ], + ]; + + }//end dataAttributeOnTextLookingLikeCloseTag() + + + /** + * Test that invalid attribute (or comment starting with #[ and without ]) are parsed correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * + * @return void + */ + public function testInvalidAttribute() + { + $tokens = $this->phpcsFile->getTokens(); + + $attribute = $this->getTargetToken('/* testInvalidAttribute */', T_ATTRIBUTE); + + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + $this->assertNull($tokens[$attribute]['attribute_closer']); + + }//end testInvalidAttribute() + + + /** + * Test that nested attributes are parsed correctly. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::findCloser + * @covers PHP_CodeSniffer\Tokenizers\PHP::parsePhpAttribute + * @covers PHP_CodeSniffer\Tokenizers\PHP::createAttributesNestingMap + * + * @return void + */ + public function testNestedAttributes() + { + $tokens = $this->phpcsFile->getTokens(); + $tokenCodes = [ + T_STRING, + T_NS_SEPARATOR, + T_STRING, + T_OPEN_PARENTHESIS, + T_FN, + T_WHITESPACE, + T_OPEN_PARENTHESIS, + T_ATTRIBUTE, + T_STRING, + T_OPEN_PARENTHESIS, + T_CONSTANT_ENCAPSED_STRING, + T_CLOSE_PARENTHESIS, + T_ATTRIBUTE_END, + T_WHITESPACE, + T_VARIABLE, + T_CLOSE_PARENTHESIS, + T_WHITESPACE, + T_FN_ARROW, + T_WHITESPACE, + T_STRING_CAST, + T_WHITESPACE, + T_VARIABLE, + T_CLOSE_PARENTHESIS, + ]; + + $attribute = $this->getTargetToken('/* testNestedAttributes */', T_ATTRIBUTE); + $this->assertArrayHasKey('attribute_closer', $tokens[$attribute]); + + $closer = $tokens[$attribute]['attribute_closer']; + $this->assertSame(($attribute + 24), $closer); + + $this->assertSame(T_ATTRIBUTE_END, $tokens[$closer]['code']); + + $this->assertSame($tokens[$attribute]['attribute_opener'], $tokens[$closer]['attribute_opener']); + $this->assertSame($tokens[$attribute]['attribute_closer'], $tokens[$closer]['attribute_closer']); + + $this->assertArrayNotHasKey('nested_attributes', $tokens[$attribute]); + $this->assertArrayHasKey('nested_attributes', $tokens[($attribute + 8)]); + $this->assertSame([$attribute => ($attribute + 24)], $tokens[($attribute + 8)]['nested_attributes']); + + $test = function (array $tokens, $length, $nestedMap) use ($attribute) { + foreach ($tokens as $token) { + $this->assertArrayHasKey('attribute_closer', $token); + $this->assertSame(($attribute + $length), $token['attribute_closer']); + $this->assertSame($nestedMap, $token['nested_attributes']); + } + }; + + $test(array_slice($tokens, ($attribute + 1), 7), 24, [$attribute => $attribute + 24]); + $test(array_slice($tokens, ($attribute + 8), 1), 8 + 5, [$attribute => $attribute + 24]); + + // Length here is 8 (nested attribute offset) + 5 (real length). + $test( + array_slice($tokens, ($attribute + 9), 4), + 8 + 5, + [ + $attribute => $attribute + 24, + $attribute + 8 => $attribute + 13, + ] + ); + + $test(array_slice($tokens, ($attribute + 13), 1), 8 + 5, [$attribute => $attribute + 24]); + $test(array_slice($tokens, ($attribute + 14), 10), 24, [$attribute => $attribute + 24]); + + $map = array_map( + static function ($token) { + return $token['code']; + }, + array_slice($tokens, ($attribute + 1), 23) + ); + + $this->assertSame($tokenCodes, $map); + + }//end testNestedAttributes() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillEnumTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillEnumTest.inc new file mode 100644 index 000000000..16624ecce --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillEnumTest.inc @@ -0,0 +1,91 @@ +enum = 'foo'; + } +} + +/* testEnumUsedAsFunctionName */ +function enum() +{ +} + +/* testDeclarationContainingComment */ +enum /* comment */ Name +{ + case SOME_CASE; +} + +/* testEnumUsedAsNamespaceName */ +namespace Enum; +/* testEnumUsedAsPartOfNamespaceName */ +namespace My\Enum\Collection; +/* testEnumUsedInObjectInitialization */ +$obj = new Enum; +/* testEnumAsFunctionCall */ +$var = enum($a, $b); +/* testEnumAsFunctionCallWithNamespace */ +var = namespace\enum(); +/* testClassConstantFetchWithEnumAsClassName */ +echo Enum::CONSTANT; +/* testClassConstantFetchWithEnumAsConstantName */ +echo ClassName::ENUM; + +/* testParseErrorMissingName */ +enum { + case SOME_CASE; +} + +/* testParseErrorLiveCoding */ +// This must be the last test in the file. +enum diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillEnumTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillEnumTest.php new file mode 100644 index 000000000..d97a90b80 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillEnumTest.php @@ -0,0 +1,226 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class BackfillEnumTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the "enum" keyword is tokenized as such. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $testContent The token content to look for. + * @param int $openerOffset Offset to find expected scope opener. + * @param int $closerOffset Offset to find expected scope closer. + * + * @dataProvider dataEnums + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testEnums($testMarker, $testContent, $openerOffset, $closerOffset) + { + $tokens = $this->phpcsFile->getTokens(); + $enum = $this->getTargetToken($testMarker, [T_ENUM, T_STRING], $testContent); + $tokenArray = $tokens[$enum]; + + $this->assertSame(T_ENUM, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_ENUM (code)'); + $this->assertSame('T_ENUM', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_ENUM (type)'); + + $this->assertArrayHasKey('scope_condition', $tokenArray); + $this->assertArrayHasKey('scope_opener', $tokenArray); + $this->assertArrayHasKey('scope_closer', $tokenArray); + + $this->assertSame($enum, $tokenArray['scope_condition']); + + $scopeOpener = $tokenArray['scope_opener']; + $scopeCloser = $tokenArray['scope_closer']; + + $expectedScopeOpener = ($enum + $openerOffset); + $expectedScopeCloser = ($enum + $closerOffset); + + $this->assertSame($expectedScopeOpener, $scopeOpener); + $this->assertArrayHasKey('scope_condition', $tokens[$scopeOpener]); + $this->assertArrayHasKey('scope_opener', $tokens[$scopeOpener]); + $this->assertArrayHasKey('scope_closer', $tokens[$scopeOpener]); + $this->assertSame($enum, $tokens[$scopeOpener]['scope_condition']); + $this->assertSame($scopeOpener, $tokens[$scopeOpener]['scope_opener']); + $this->assertSame($scopeCloser, $tokens[$scopeOpener]['scope_closer']); + + $this->assertSame($expectedScopeCloser, $scopeCloser); + $this->assertArrayHasKey('scope_condition', $tokens[$scopeCloser]); + $this->assertArrayHasKey('scope_opener', $tokens[$scopeCloser]); + $this->assertArrayHasKey('scope_closer', $tokens[$scopeCloser]); + $this->assertSame($enum, $tokens[$scopeCloser]['scope_condition']); + $this->assertSame($scopeOpener, $tokens[$scopeCloser]['scope_opener']); + $this->assertSame($scopeCloser, $tokens[$scopeCloser]['scope_closer']); + + }//end testEnums() + + + /** + * Data provider. + * + * @see testEnums() + * + * @return array> + */ + public static function dataEnums() + { + return [ + 'enum - pure' => [ + 'testMarker' => '/* testPureEnum */', + 'testContent' => 'enum', + 'openerOffset' => 4, + 'closerOffset' => 12, + ], + 'enum - backed int' => [ + 'testMarker' => '/* testBackedIntEnum */', + 'testContent' => 'enum', + 'openerOffset' => 7, + 'closerOffset' => 29, + ], + 'enum - backed string' => [ + 'testMarker' => '/* testBackedStringEnum */', + 'testContent' => 'enum', + 'openerOffset' => 8, + 'closerOffset' => 30, + ], + 'enum - backed int + implements' => [ + 'testMarker' => '/* testComplexEnum */', + 'testContent' => 'enum', + 'openerOffset' => 11, + 'closerOffset' => 72, + ], + 'enum keyword when "enum" is the name for the construct (yes, this is allowed)' => [ + 'testMarker' => '/* testEnumWithEnumAsClassName */', + 'testContent' => 'enum', + 'openerOffset' => 6, + 'closerOffset' => 7, + ], + 'enum - keyword is case insensitive' => [ + 'testMarker' => '/* testEnumIsCaseInsensitive */', + 'testContent' => 'EnUm', + 'openerOffset' => 4, + 'closerOffset' => 5, + ], + 'enum - declaration containing comment' => [ + 'testMarker' => '/* testDeclarationContainingComment */', + 'testContent' => 'enum', + 'openerOffset' => 6, + 'closerOffset' => 14, + ], + ]; + + }//end dataEnums() + + + /** + * Test that "enum" when not used as the keyword is still tokenized as `T_STRING`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotEnums + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNotEnums($testMarker, $testContent) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_ENUM, T_STRING], $testContent); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testNotEnums() + + + /** + * Data provider. + * + * @see testNotEnums() + * + * @return array> + */ + public static function dataNotEnums() + { + return [ + 'not enum - construct named enum' => [ + 'testMarker' => '/* testEnumAsClassNameAfterEnumKeyword */', + 'testContent' => 'Enum', + ], + 'not enum - class named enum' => [ + 'testMarker' => '/* testEnumUsedAsClassName */', + 'testContent' => 'Enum', + ], + 'not enum - class constant named enum' => [ + 'testMarker' => '/* testEnumUsedAsClassConstantName */', + 'testContent' => 'ENUM', + ], + 'not enum - method named enum' => [ + 'testMarker' => '/* testEnumUsedAsMethodName */', + 'testContent' => 'enum', + ], + 'not enum - class property named enum' => [ + 'testMarker' => '/* testEnumUsedAsPropertyName */', + 'testContent' => 'enum', + ], + 'not enum - global function named enum' => [ + 'testMarker' => '/* testEnumUsedAsFunctionName */', + 'testContent' => 'enum', + ], + 'not enum - namespace named enum' => [ + 'testMarker' => '/* testEnumUsedAsNamespaceName */', + 'testContent' => 'Enum', + ], + 'not enum - part of namespace named enum' => [ + 'testMarker' => '/* testEnumUsedAsPartOfNamespaceName */', + 'testContent' => 'Enum', + ], + 'not enum - class instantiation for class enum' => [ + 'testMarker' => '/* testEnumUsedInObjectInitialization */', + 'testContent' => 'Enum', + ], + 'not enum - function call' => [ + 'testMarker' => '/* testEnumAsFunctionCall */', + 'testContent' => 'enum', + ], + 'not enum - namespace relative function call' => [ + 'testMarker' => '/* testEnumAsFunctionCallWithNamespace */', + 'testContent' => 'enum', + ], + 'not enum - class constant fetch with enum as class name' => [ + 'testMarker' => '/* testClassConstantFetchWithEnumAsClassName */', + 'testContent' => 'Enum', + ], + 'not enum - class constant fetch with enum as constant name' => [ + 'testMarker' => '/* testClassConstantFetchWithEnumAsConstantName */', + 'testContent' => 'ENUM', + ], + 'parse error, not enum - enum declaration without name' => [ + 'testMarker' => '/* testParseErrorMissingName */', + 'testContent' => 'enum', + ], + 'parse error, not enum - enum declaration with curlies' => [ + 'testMarker' => '/* testParseErrorLiveCoding */', + 'testContent' => 'enum', + ], + ]; + + }//end dataNotEnums() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillExplicitOctalNotationTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillExplicitOctalNotationTest.inc new file mode 100644 index 000000000..eb907ed39 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillExplicitOctalNotationTest.inc @@ -0,0 +1,31 @@ + + * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class BackfillExplicitOctalNotationTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that explicitly-defined octal values are tokenized as a single number and not as a number and a string. + * + * @param string $marker The comment which prefaces the target token in the test file. + * @param string $value The expected content of the token. + * @param int|string $nextToken The expected next token. + * @param string $nextContent The expected content of the next token. + * + * @dataProvider dataExplicitOctalNotation + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testExplicitOctalNotation($marker, $value, $nextToken, $nextContent) + { + $tokens = $this->phpcsFile->getTokens(); + + $number = $this->getTargetToken($marker, [T_LNUMBER]); + + $this->assertSame($value, $tokens[$number]['content'], 'Content of integer token does not match expectation'); + + $this->assertSame($nextToken, $tokens[($number + 1)]['code'], 'Next token is not the expected type, but '.$tokens[($number + 1)]['type']); + $this->assertSame($nextContent, $tokens[($number + 1)]['content'], 'Next token did not have the expected contents'); + + }//end testExplicitOctalNotation() + + + /** + * Data provider. + * + * @see testExplicitOctalNotation() + * + * @return array> + */ + public static function dataExplicitOctalNotation() + { + return [ + 'Explicit octal' => [ + 'marker' => '/* testExplicitOctal */', + 'value' => '0o137041', + 'nextToken' => T_SEMICOLON, + 'nextContent' => ';', + ], + 'Explicit octal - capitalized O' => [ + 'marker' => '/* testExplicitOctalCapitalised */', + 'value' => '0O137041', + 'nextToken' => T_SEMICOLON, + 'nextContent' => ';', + ], + 'Explicit octal - with numeric literal separator' => [ + 'marker' => '/* testExplicitOctalWithNumericSeparator */', + 'value' => '0o137_041', + 'nextToken' => T_SEMICOLON, + 'nextContent' => ';', + ], + 'Invalid explicit octal - numeric literal separator directly after "0o"' => [ + 'marker' => '/* testInvalid1 */', + 'value' => '0', + 'nextToken' => T_STRING, + 'nextContent' => 'o_137', + ], + 'Invalid explicit octal - numeric literal separator directly after "0O" (capitalized O)' => [ + 'marker' => '/* testInvalid2 */', + 'value' => '0', + 'nextToken' => T_STRING, + 'nextContent' => 'O_41', + ], + 'Invalid explicit octal - number out of octal range' => [ + 'marker' => '/* testInvalid3 */', + 'value' => '0', + 'nextToken' => T_STRING, + 'nextContent' => 'o91', + ], + 'Invalid explicit octal - part of the number out of octal range' => [ + 'marker' => '/* testInvalid4 */', + 'value' => '0O2', + 'nextToken' => T_LNUMBER, + 'nextContent' => '82', + ], + 'Invalid explicit octal - part of the number out of octal range with numeric literal separator after' => [ + 'marker' => '/* testInvalid5 */', + 'value' => '0o2', + 'nextToken' => T_LNUMBER, + 'nextContent' => '8_2', + ], + 'Invalid explicit octal - part of the number out of octal range with numeric literal separator before' => [ + 'marker' => '/* testInvalid6 */', + 'value' => '0o2', + 'nextToken' => T_STRING, + 'nextContent' => '_82', + ], + 'Invalid explicit octal - explicit notation without number' => [ + 'marker' => '/* testInvalid7 */', + 'value' => '0', + 'nextToken' => T_STRING, + 'nextContent' => 'o', + ], + ]; + + }//end dataExplicitOctalNotation() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillFnTokenTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillFnTokenTest.inc similarity index 76% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillFnTokenTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillFnTokenTest.inc index 72cb24420..cbb7b63bf 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillFnTokenTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillFnTokenTest.inc @@ -23,6 +23,9 @@ function fn() {} /* testNestedOuter */ $fn = fn($x) => /* testNestedInner */ fn($y) => $x * $y + $z; +/* testNestedSharedCloserOuter */ +$foo = foo(fn() => /* testNestedSharedCloserInner */ fn() => bar() === true); + /* testFunctionCall */ $extended = fn($c) => $callable($factory($c), $c); @@ -60,6 +63,11 @@ $a = [ 'a' => fn() => return 1, ]; +/* testArrayValueNoTrailingComma */ +$a = [ + 'a' => fn() => foo() +]; + /* testYield */ $a = fn($x) => yield 'k' => $x; @@ -84,15 +92,48 @@ fn(array $a) : array => $a; /* testStaticReturnType */ fn(array $a) : static => $a; +/* testFalseReturnType */ +fn(array $a) : false => $a; + +/* testTrueReturnType */ +fn(array $a) : True => $a; + +/* testNullReturnType */ +fn(array $a) : null => $a; + /* testUnionParamType */ $arrowWithUnionParam = fn(int|float $param) : SomeClass => new SomeClass($param); /* testUnionReturnType */ $arrowWithUnionReturn = fn($param) : int|float => $param | 10; +/* testUnionReturnTypeWithTrue */ +$arrowWithUnionReturn = fn($param) : int|true => $param | 10; + +/* testUnionReturnTypeWithFalse */ +$arrowWithUnionReturn = fn($param) : string|FALSE => $param | 10; + +/* testIntersectionParamType */ +$arrowWithUnionParam = fn(Traversable&Countable $param) : int => (new SomeClass($param))->getValue(); + +/* testIntersectionReturnType */ +$arrowWithUnionReturn = fn($param) : \MyFoo&SomeInterface => new SomeClass($param); + +/* testDNFParamType */ +$arrowWithUnionParam = fn((Traversable&Countable)|null $param) : SomeClass => new SomeClass($param) ?? null; + +/* testDNFReturnType */ +$arrowWithUnionReturn = fn($param) : false|(\MyFoo&SomeInterface) => new \MyFoo($param) ?? false; + +/* testDNFParamTypeWithReturnByRef */ +$arrowWithParamReturnByRef = fn &((A&B)|null $param) => $param * 10; + /* testTernary */ $fn = fn($a) => $a ? /* testTernaryThen */ fn() : string => 'a' : /* testTernaryElse */ fn() : string => 'b'; +/* testTernaryWithTypes */ +$fn = fn(int|null $a) : array|null => $a ? null : []; + function matchInArrow($x) { /* testWithMatchValue */ $fn = fn($x) => match(true) { diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillFnTokenTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillFnTokenTest.php new file mode 100644 index 000000000..2632337a5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillFnTokenTest.php @@ -0,0 +1,971 @@ + + * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class BackfillFnTokenTest extends AbstractTokenizerTestCase +{ + + + /** + * Test simple arrow functions. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataSimple + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testSimple($testMarker) + { + $token = $this->getTargetToken($testMarker, T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 12); + + }//end testSimple() + + + /** + * Data provider. + * + * @see testSimple() + * + * @return array> + */ + public static function dataSimple() + { + return [ + 'standard' => [ + 'testMarker' => '/* testStandard */', + ], + 'mixed case' => [ + 'testMarker' => '/* testMixedCase */', + ], + ]; + + }//end dataSimple() + + + /** + * Test whitespace inside arrow function definitions. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testWhitespace() + { + $token = $this->getTargetToken('/* testWhitespace */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 6, 13); + + }//end testWhitespace() + + + /** + * Test comments inside arrow function definitions. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testComment() + { + $token = $this->getTargetToken('/* testComment */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 8, 15); + + }//end testComment() + + + /** + * Test heredocs inside arrow function definitions. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testHeredoc() + { + $token = $this->getTargetToken('/* testHeredoc */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 4, 9); + + }//end testHeredoc() + + + /** + * Test nested arrow functions. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNestedOuter() + { + $token = $this->getTargetToken('/* testNestedOuter */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 25); + + }//end testNestedOuter() + + + /** + * Test nested arrow functions. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNestedInner() + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken('/* testNestedInner */', T_FN); + $this->backfillHelper($token, true); + + $expectedScopeOpener = ($token + 5); + $expectedScopeCloser = ($token + 16); + + $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer is not the semicolon token'); + + $opener = $tokens[$token]['scope_opener']; + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer is not the semicolon token'); + + $closer = $tokens[$token]['scope_closer']; + $this->assertSame(($token - 4), $tokens[$closer]['scope_opener'], 'Closer scope opener is not the arrow token of the "outer" arrow function (shared scope closer)'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer is not the semicolon token'); + + }//end testNestedInner() + + + /** + * Test nested arrow functions with a shared closer. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNestedSharedCloser() + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken('/* testNestedSharedCloserOuter */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 4, 20); + + $token = $this->getTargetToken('/* testNestedSharedCloserInner */', T_FN); + $this->backfillHelper($token, true); + + $expectedScopeOpener = ($token + 4); + $expectedScopeCloser = ($token + 12); + + $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener for "inner" arrow function is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer for "inner" arrow function is not the TRUE token'); + + $opener = $tokens[$token]['scope_opener']; + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener for "inner" arrow function is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer for "inner" arrow function is not the semicolon token'); + + $closer = $tokens[$token]['scope_closer']; + $this->assertSame(($token - 4), $tokens[$closer]['scope_opener'], 'Closer scope opener for "inner" arrow function is not the arrow token of the "outer" arrow function (shared scope closer)'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer for "inner" arrow function is not the TRUE token'); + + }//end testNestedSharedCloser() + + + /** + * Test arrow functions that call functions. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testFunctionCall() + { + $token = $this->getTargetToken('/* testFunctionCall */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 17); + + }//end testFunctionCall() + + + /** + * Test arrow functions that are included in chained calls. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testChainedFunctionCall() + { + $token = $this->getTargetToken('/* testChainedFunctionCall */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 12, 'bracket'); + + }//end testChainedFunctionCall() + + + /** + * Test arrow functions that are used as function arguments. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testFunctionArgument() + { + $token = $this->getTargetToken('/* testFunctionArgument */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 8, 15, 'comma'); + + }//end testFunctionArgument() + + + /** + * Test arrow functions that use closures. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testClosure() + { + $token = $this->getTargetToken('/* testClosure */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 60, 'comma'); + + }//end testClosure() + + + /** + * Test arrow functions using an array index. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testArrayIndex() + { + $token = $this->getTargetToken('/* testArrayIndex */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 8, 17, 'comma'); + + }//end testArrayIndex() + + + /** + * Test arrow functions with a return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testReturnType() + { + $token = $this->getTargetToken('/* testReturnType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 11, 18, 'comma'); + + }//end testReturnType() + + + /** + * Test arrow functions that return a reference. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testReference() + { + $token = $this->getTargetToken('/* testReference */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 6, 9); + + }//end testReference() + + + /** + * Test arrow functions that are grouped by parenthesis. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testGrouped() + { + $token = $this->getTargetToken('/* testGrouped */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 8); + + }//end testGrouped() + + + /** + * Test arrow functions that are used as array values. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testArrayValue() + { + $token = $this->getTargetToken('/* testArrayValue */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 4, 9, 'comma'); + + }//end testArrayValue() + + + /** + * Test arrow functions that are used as array values with no trailing comma. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testArrayValueNoTrailingComma() + { + $token = $this->getTargetToken('/* testArrayValueNoTrailingComma */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 4, 8, 'closing parenthesis'); + + }//end testArrayValueNoTrailingComma() + + + /** + * Test arrow functions that use the yield keyword. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testYield() + { + $token = $this->getTargetToken('/* testYield */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 14); + + }//end testYield() + + + /** + * Test arrow functions that use nullable namespace types. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNullableNamespace() + { + $token = $this->getTargetToken('/* testNullableNamespace */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 15, 18); + + }//end testNullableNamespace() + + + /** + * Test arrow functions that use the namespace operator in the return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNamespaceOperatorInTypes() + { + $token = $this->getTargetToken('/* testNamespaceOperatorInTypes */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 16, 19); + + }//end testNamespaceOperatorInTypes() + + + /** + * Test arrow functions that use keyword return types. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataKeywordReturnTypes + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testKeywordReturnTypes($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 11, 14); + + }//end testKeywordReturnTypes() + + + /** + * Data provider. + * + * @see testKeywordReturnTypes() + * + * @return array> + */ + public static function dataKeywordReturnTypes() + { + return [ + 'self' => [ + 'testMarker' => '/* testSelfReturnType */', + ], + 'parent' => [ + 'testMarker' => '/* testParentReturnType */', + ], + 'callable' => [ + 'testMarker' => '/* testCallableReturnType */', + ], + 'array' => [ + 'testMarker' => '/* testArrayReturnType */', + ], + 'static' => [ + 'testMarker' => '/* testStaticReturnType */', + ], + 'false' => [ + 'testMarker' => '/* testFalseReturnType */', + ], + 'true' => [ + 'testMarker' => '/* testTrueReturnType */', + ], + 'null' => [ + 'testMarker' => '/* testNullReturnType */', + ], + ]; + + }//end dataKeywordReturnTypes() + + + /** + * Test arrow function with a union parameter type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testUnionParamType() + { + $token = $this->getTargetToken('/* testUnionParamType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 13, 21); + + }//end testUnionParamType() + + + /** + * Test arrow function with a union return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testUnionReturnType() + { + $token = $this->getTargetToken('/* testUnionReturnType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 11, 18); + + }//end testUnionReturnType() + + + /** + * Test arrow function with a union return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testUnionReturnTypeWithTrue() + { + $token = $this->getTargetToken('/* testUnionReturnTypeWithTrue */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 11, 18); + + }//end testUnionReturnTypeWithTrue() + + + /** + * Test arrow function with a union return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testUnionReturnTypeWithFalse() + { + $token = $this->getTargetToken('/* testUnionReturnTypeWithFalse */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 11, 18); + + }//end testUnionReturnTypeWithFalse() + + + /** + * Test arrow function with an intersection parameter type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testIntersectionParamType() + { + $token = $this->getTargetToken('/* testIntersectionParamType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 13, 27); + + }//end testIntersectionParamType() + + + /** + * Test arrow function with an intersection return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testIntersectionReturnType() + { + $token = $this->getTargetToken('/* testIntersectionReturnType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 12, 20); + + }//end testIntersectionReturnType() + + + /** + * Test arrow function with a DNF parameter type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testDNFParamType() + { + $token = $this->getTargetToken('/* testDNFParamType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 17, 29); + + }//end testDNFParamType() + + + /** + * Test arrow function with a DNF return type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testDNFReturnType() + { + $token = $this->getTargetToken('/* testDNFReturnType */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 16, 29); + + }//end testDNFReturnType() + + + /** + * Test arrow function which returns by reference with a DNF parameter type. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testDNFParamTypeWithReturnByRef() + { + $token = $this->getTargetToken('/* testDNFParamTypeWithReturnByRef */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 15, 22); + + }//end testDNFParamTypeWithReturnByRef() + + + /** + * Test arrow functions used in ternary operators. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testTernary() + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken('/* testTernary */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 40); + + $token = $this->getTargetToken('/* testTernaryThen */', T_FN); + $this->backfillHelper($token); + + $expectedScopeOpener = ($token + 8); + $expectedScopeCloser = ($token + 12); + + $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener for THEN is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer for THEN is not the semicolon token'); + + $opener = $tokens[$token]['scope_opener']; + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener for THEN is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer for THEN is not the semicolon token'); + + $closer = $tokens[$token]['scope_closer']; + $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'Closer scope opener for THEN is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer for THEN is not the semicolon token'); + + $token = $this->getTargetToken('/* testTernaryElse */', T_FN); + $this->backfillHelper($token, true); + + $expectedScopeOpener = ($token + 8); + $expectedScopeCloser = ($token + 11); + + $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener for ELSE is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer for ELSE is not the semicolon token'); + + $opener = $tokens[$token]['scope_opener']; + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener for ELSE is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer for ELSE is not the semicolon token'); + + $closer = $tokens[$token]['scope_closer']; + $this->assertSame(($token - 24), $tokens[$closer]['scope_opener'], 'Closer scope opener for ELSE is not the arrow token of the "outer" arrow function (shared scope closer)'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer for ELSE is not the semicolon token'); + + }//end testTernary() + + + /** + * Test typed arrow functions used in ternary operators. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testTernaryWithTypes() + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken('/* testTernaryWithTypes */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 15, 27); + + }//end testTernaryWithTypes() + + + /** + * Test arrow function returning a match control structure. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testWithMatchValue() + { + $token = $this->getTargetToken('/* testWithMatchValue */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 44); + + }//end testWithMatchValue() + + + /** + * Test arrow function returning a match control structure with something behind it. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testWithMatchValueAndMore() + { + $token = $this->getTargetToken('/* testWithMatchValueAndMore */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 48); + + }//end testWithMatchValueAndMore() + + + /** + * Test match control structure returning arrow functions. + * + * @param string $testMarker The comment prefacing the target token. + * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. + * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. + * @param string $expectedCloserType The type of token expected for the scope closer. + * @param string $expectedCloserFriendlyName A friendly name for the type of token expected for the scope closer + * to be used in the error message for failing tests. + * + * @dataProvider dataInMatchValue + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testInMatchValue($testMarker, $openerOffset, $closerOffset, $expectedCloserType, $expectedCloserFriendlyName) + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, $openerOffset, $closerOffset, $expectedCloserFriendlyName); + + $this->assertSame($expectedCloserType, $tokens[($token + $closerOffset)]['type'], 'Mismatched scope closer type'); + + }//end testInMatchValue() + + + /** + * Data provider. + * + * @see testInMatchValue() + * + * @return array> + */ + public static function dataInMatchValue() + { + return [ + 'not_last_value' => [ + 'testMarker' => '/* testInMatchNotLastValue */', + 'openerOffset' => 5, + 'closerOffset' => 11, + 'expectedCloserType' => 'T_COMMA', + 'expectedCloserFriendlyName' => 'comma', + ], + 'last_value_with_trailing_comma' => [ + 'testMarker' => '/* testInMatchLastValueWithTrailingComma */', + 'openerOffset' => 5, + 'closerOffset' => 11, + 'expectedCloserType' => 'T_COMMA', + 'expectedCloserFriendlyName' => 'comma', + ], + 'last_value_without_trailing_comma_1' => [ + 'testMarker' => '/* testInMatchLastValueNoTrailingComma1 */', + 'openerOffset' => 5, + 'closerOffset' => 10, + 'expectedCloserType' => 'T_CLOSE_PARENTHESIS', + 'expectedCloserFriendlyName' => 'close parenthesis', + ], + 'last_value_without_trailing_comma_2' => [ + 'testMarker' => '/* testInMatchLastValueNoTrailingComma2 */', + 'openerOffset' => 5, + 'closerOffset' => 11, + 'expectedCloserType' => 'T_VARIABLE', + 'expectedCloserFriendlyName' => '$y variable', + ], + ]; + + }//end dataInMatchValue() + + + /** + * Test arrow function nested within a method declaration. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNestedInMethod() + { + $token = $this->getTargetToken('/* testNestedInMethod */', T_FN); + $this->backfillHelper($token); + $this->scopePositionTestHelper($token, 5, 17); + + }//end testNestedInMethod() + + + /** + * Verify that "fn" keywords which are not arrow functions get tokenized as T_STRING and don't + * have the extra token array indexes. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotAnArrowFunction + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNotAnArrowFunction($testMarker, $testContent='fn') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_STRING, T_FN], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING'); + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set'); + $this->assertArrayNotHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is set'); + $this->assertArrayNotHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is set'); + + }//end testNotAnArrowFunction() + + + /** + * Data provider. + * + * @see testNotAnArrowFunction() + * + * @return array> + */ + public static function dataNotAnArrowFunction() + { + return [ + 'name of a function, context: declaration' => [ + 'testMarker' => '/* testFunctionName */', + ], + 'name of a constant, context: declaration using "const" keyword - uppercase' => [ + 'testMarker' => '/* testConstantDeclaration */', + 'testContent' => 'FN', + ], + 'name of a constant, context: declaration using "const" keyword - lowercase' => [ + 'testMarker' => '/* testConstantDeclarationLower */', + 'testContent' => 'fn', + ], + 'name of a (static) method, context: declaration' => [ + 'testMarker' => '/* testStaticMethodName */', + ], + 'name of a property, context: property access' => [ + 'testMarker' => '/* testPropertyAssignment */', + ], + 'name of a method, context: declaration in an anon class - mixed case' => [ + 'testMarker' => '/* testAnonClassMethodName */', + 'testContent' => 'fN', + ], + 'name of a method, context: static method call' => [ + 'testMarker' => '/* testNonArrowStaticMethodCall */', + ], + 'name of a constant, context: constant access - uppercase' => [ + 'testMarker' => '/* testNonArrowConstantAccess */', + 'testContent' => 'FN', + ], + 'name of a constant, context: constant access - mixed case' => [ + 'testMarker' => '/* testNonArrowConstantAccessMixed */', + 'testContent' => 'Fn', + ], + 'name of a method, context: method call on object - lowercase' => [ + 'testMarker' => '/* testNonArrowObjectMethodCall */', + ], + 'name of a method, context: method call on object - uppercase' => [ + 'testMarker' => '/* testNonArrowObjectMethodCallUpper */', + 'testContent' => 'FN', + ], + 'name of a (namespaced) function, context: partially qualified function call' => [ + 'testMarker' => '/* testNonArrowNamespacedFunctionCall */', + 'testContent' => 'Fn', + ], + 'name of a (namespaced) function, context: namespace relative function call' => [ + 'testMarker' => '/* testNonArrowNamespaceOperatorFunctionCall */', + ], + 'name of a function, context: declaration with union types for param and return' => [ + 'testMarker' => '/* testNonArrowFunctionNameWithUnionTypes */', + ], + 'unknown - live coding/parse error' => [ + 'testMarker' => '/* testLiveCoding */', + ], + ]; + + }//end dataNotAnArrowFunction() + + + /** + * Helper function to check that all token keys are correctly set for T_FN tokens. + * + * @param int $token The T_FN token to check. + * @param bool $skipScopeCloserCheck Whether to skip the scope closer check. + * This should be set to "true" when testing nested arrow functions, + * where the "inner" arrow function shares a scope closer with the + * "outer" arrow function, as the 'scope_condition' for the scope closer + * of the "inner" arrow function will point to the "outer" arrow function. + * + * @return void + */ + private function backfillHelper($token, $skipScopeCloserCheck=false) + { + $tokens = $this->phpcsFile->getTokens(); + + $this->assertTrue(array_key_exists('scope_condition', $tokens[$token]), 'Scope condition is not set'); + $this->assertTrue(array_key_exists('scope_opener', $tokens[$token]), 'Scope opener is not set'); + $this->assertTrue(array_key_exists('scope_closer', $tokens[$token]), 'Scope closer is not set'); + $this->assertSame($tokens[$token]['scope_condition'], $token, 'Scope condition is not the T_FN token'); + $this->assertTrue(array_key_exists('parenthesis_owner', $tokens[$token]), 'Parenthesis owner is not set'); + $this->assertTrue(array_key_exists('parenthesis_opener', $tokens[$token]), 'Parenthesis opener is not set'); + $this->assertTrue(array_key_exists('parenthesis_closer', $tokens[$token]), 'Parenthesis closer is not set'); + $this->assertSame($tokens[$token]['parenthesis_owner'], $token, 'Parenthesis owner is not the T_FN token'); + + $opener = $tokens[$token]['scope_opener']; + $this->assertTrue(array_key_exists('scope_condition', $tokens[$opener]), 'Opener scope condition is not set'); + $this->assertTrue(array_key_exists('scope_opener', $tokens[$opener]), 'Opener scope opener is not set'); + $this->assertTrue(array_key_exists('scope_closer', $tokens[$opener]), 'Opener scope closer is not set'); + $this->assertSame($tokens[$opener]['scope_condition'], $token, 'Opener scope condition is not the T_FN token'); + $this->assertSame(T_FN_ARROW, $tokens[$opener]['code'], 'Arrow scope opener not tokenized as T_FN_ARROW (code)'); + $this->assertSame('T_FN_ARROW', $tokens[$opener]['type'], 'Arrow scope opener not tokenized as T_FN_ARROW (type)'); + + $closer = $tokens[$token]['scope_closer']; + $this->assertTrue(array_key_exists('scope_condition', $tokens[$closer]), 'Closer scope condition is not set'); + $this->assertTrue(array_key_exists('scope_opener', $tokens[$closer]), 'Closer scope opener is not set'); + $this->assertTrue(array_key_exists('scope_closer', $tokens[$closer]), 'Closer scope closer is not set'); + if ($skipScopeCloserCheck === false) { + $this->assertSame($tokens[$closer]['scope_condition'], $token, 'Closer scope condition is not the T_FN token'); + } + + $opener = $tokens[$token]['parenthesis_opener']; + $this->assertTrue(array_key_exists('parenthesis_owner', $tokens[$opener]), 'Opening parenthesis owner is not set'); + $this->assertSame($tokens[$opener]['parenthesis_owner'], $token, 'Opening parenthesis owner is not the T_FN token'); + + $closer = $tokens[$token]['parenthesis_closer']; + $this->assertTrue(array_key_exists('parenthesis_owner', $tokens[$closer]), 'Closing parenthesis owner is not set'); + $this->assertSame($tokens[$closer]['parenthesis_owner'], $token, 'Closing parenthesis owner is not the T_FN token'); + + }//end backfillHelper() + + + /** + * Helper function to check that the scope opener/closer positions are correctly set for T_FN tokens. + * + * @param int $token The T_FN token to check. + * @param int $openerOffset The expected offset of the scope opener in relation to + * the fn keyword. + * @param int $closerOffset The expected offset of the scope closer in relation to + * the fn keyword. + * @param string $expectedCloserType Optional. The type of token expected for the scope closer. + * + * @return void + */ + private function scopePositionTestHelper($token, $openerOffset, $closerOffset, $expectedCloserType='semicolon') + { + $tokens = $this->phpcsFile->getTokens(); + $expectedScopeOpener = ($token + $openerOffset); + $expectedScopeCloser = ($token + $closerOffset); + + $this->assertSame($expectedScopeOpener, $tokens[$token]['scope_opener'], 'Scope opener is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$token]['scope_closer'], 'Scope closer is not the '.$expectedCloserType.' token'); + + $opener = $tokens[$token]['scope_opener']; + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'Opener scope opener is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'Opener scope closer is not the '.$expectedCloserType.' token'); + + $closer = $tokens[$token]['scope_closer']; + $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'Closer scope opener is not the arrow token'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'Closer scope closer is not the '.$expectedCloserType.' token'); + + }//end scopePositionTestHelper() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillMatchTokenTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillMatchTokenTest.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillMatchTokenTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillMatchTokenTest.inc diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillMatchTokenTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillMatchTokenTest.php new file mode 100644 index 000000000..42076c042 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillMatchTokenTest.php @@ -0,0 +1,555 @@ + + * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class BackfillMatchTokenTest extends AbstractTokenizerTestCase +{ + + + /** + * Test tokenization of match expressions. + * + * @param string $testMarker The comment prefacing the target token. + * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. + * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. + * @param string $testContent The token content to look for. + * + * @dataProvider dataMatchExpression + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testMatchExpression($testMarker, $openerOffset, $closerOffset, $testContent='match') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_STRING, T_MATCH], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_MATCH, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH (code)'); + $this->assertSame('T_MATCH', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH (type)'); + + $this->scopeTestHelper($token, $openerOffset, $closerOffset); + $this->parenthesisTestHelper($token); + + }//end testMatchExpression() + + + /** + * Data provider. + * + * @see testMatchExpression() + * + * @return array> + */ + public static function dataMatchExpression() + { + return [ + 'simple_match' => [ + 'testMarker' => '/* testMatchSimple */', + 'openerOffset' => 6, + 'closerOffset' => 33, + ], + 'no_trailing_comma' => [ + 'testMarker' => '/* testMatchNoTrailingComma */', + 'openerOffset' => 6, + 'closerOffset' => 24, + ], + 'with_default_case' => [ + 'testMarker' => '/* testMatchWithDefault */', + 'openerOffset' => 6, + 'closerOffset' => 33, + ], + 'expression_in_condition' => [ + 'testMarker' => '/* testMatchExpressionInCondition */', + 'openerOffset' => 6, + 'closerOffset' => 77, + ], + 'multicase' => [ + 'testMarker' => '/* testMatchMultiCase */', + 'openerOffset' => 6, + 'closerOffset' => 40, + ], + 'multicase_trailing_comma_in_case' => [ + 'testMarker' => '/* testMatchMultiCaseTrailingCommaInCase */', + 'openerOffset' => 6, + 'closerOffset' => 47, + ], + 'in_closure_not_lowercase' => [ + 'testMarker' => '/* testMatchInClosureNotLowercase */', + 'openerOffset' => 6, + 'closerOffset' => 36, + 'testContent' => 'Match', + ], + 'in_arrow_function' => [ + 'testMarker' => '/* testMatchInArrowFunction */', + 'openerOffset' => 5, + 'closerOffset' => 36, + ], + 'arrow_function_in_match_no_trailing_comma' => [ + 'testMarker' => '/* testArrowFunctionInMatchNoTrailingComma */', + 'openerOffset' => 6, + 'closerOffset' => 44, + ], + 'in_function_call_param_not_lowercase' => [ + 'testMarker' => '/* testMatchInFunctionCallParamNotLowercase */', + 'openerOffset' => 8, + 'closerOffset' => 32, + 'testContent' => 'MATCH', + ], + 'in_method_call_param' => [ + 'testMarker' => '/* testMatchInMethodCallParam */', + 'openerOffset' => 5, + 'closerOffset' => 13, + ], + 'discard_result' => [ + 'testMarker' => '/* testMatchDiscardResult */', + 'openerOffset' => 6, + 'closerOffset' => 18, + ], + 'duplicate_conditions_and_comments' => [ + 'testMarker' => '/* testMatchWithDuplicateConditionsWithComments */', + 'openerOffset' => 12, + 'closerOffset' => 59, + ], + 'nested_match_outer' => [ + 'testMarker' => '/* testNestedMatchOuter */', + 'openerOffset' => 6, + 'closerOffset' => 33, + ], + 'nested_match_inner' => [ + 'testMarker' => '/* testNestedMatchInner */', + 'openerOffset' => 6, + 'closerOffset' => 14, + ], + 'ternary_condition' => [ + 'testMarker' => '/* testMatchInTernaryCondition */', + 'openerOffset' => 6, + 'closerOffset' => 21, + ], + 'ternary_then' => [ + 'testMarker' => '/* testMatchInTernaryThen */', + 'openerOffset' => 6, + 'closerOffset' => 21, + ], + 'ternary_else' => [ + 'testMarker' => '/* testMatchInTernaryElse */', + 'openerOffset' => 6, + 'closerOffset' => 21, + ], + 'array_value' => [ + 'testMarker' => '/* testMatchInArrayValue */', + 'openerOffset' => 6, + 'closerOffset' => 21, + ], + 'array_key' => [ + 'testMarker' => '/* testMatchInArrayKey */', + 'openerOffset' => 6, + 'closerOffset' => 21, + ], + 'returning_array' => [ + 'testMarker' => '/* testMatchreturningArray */', + 'openerOffset' => 6, + 'closerOffset' => 125, + ], + 'nested_in_switch_case_1' => [ + 'testMarker' => '/* testMatchWithDefaultNestedInSwitchCase1 */', + 'openerOffset' => 6, + 'closerOffset' => 25, + ], + 'nested_in_switch_case_2' => [ + 'testMarker' => '/* testMatchWithDefaultNestedInSwitchCase2 */', + 'openerOffset' => 6, + 'closerOffset' => 25, + ], + 'nested_in_switch_default' => [ + 'testMarker' => '/* testMatchWithDefaultNestedInSwitchDefault */', + 'openerOffset' => 6, + 'closerOffset' => 25, + ], + 'match_with_nested_switch' => [ + 'testMarker' => '/* testMatchContainingSwitch */', + 'openerOffset' => 6, + 'closerOffset' => 180, + ], + 'no_cases' => [ + 'testMarker' => '/* testMatchNoCases */', + 'openerOffset' => 6, + 'closerOffset' => 7, + ], + 'multi_default' => [ + 'testMarker' => '/* testMatchMultiDefault */', + 'openerOffset' => 6, + 'closerOffset' => 40, + ], + ]; + + }//end dataMatchExpression() + + + /** + * Verify that "match" keywords which are not match control structures get tokenized as T_STRING + * and don't have the extra token array indexes. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotAMatchStructure + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNotAMatchStructure($testMarker, $testContent='match') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_STRING, T_MATCH], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set'); + $this->assertArrayNotHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is set'); + $this->assertArrayNotHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is set'); + + $next = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($token + 1), null, true); + if ($next !== false && $tokens[$next]['code'] === T_OPEN_PARENTHESIS) { + $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set for opener after'); + } + + }//end testNotAMatchStructure() + + + /** + * Data provider. + * + * @see testNotAMatchStructure() + * + * @return array> + */ + public static function dataNotAMatchStructure() + { + return [ + 'static_method_call' => [ + 'testMarker' => '/* testNoMatchStaticMethodCall */', + ], + 'class_constant_access' => [ + 'testMarker' => '/* testNoMatchClassConstantAccess */', + 'testContent' => 'MATCH', + ], + 'class_constant_array_access' => [ + 'testMarker' => '/* testNoMatchClassConstantArrayAccessMixedCase */', + 'testContent' => 'Match', + ], + 'method_call' => [ + 'testMarker' => '/* testNoMatchMethodCall */', + ], + 'method_call_uppercase' => [ + 'testMarker' => '/* testNoMatchMethodCallUpper */', + 'testContent' => 'MATCH', + ], + 'property_access' => [ + 'testMarker' => '/* testNoMatchPropertyAccess */', + ], + 'namespaced_function_call' => [ + 'testMarker' => '/* testNoMatchNamespacedFunctionCall */', + ], + 'namespace_operator_function_call' => [ + 'testMarker' => '/* testNoMatchNamespaceOperatorFunctionCall */', + ], + 'interface_method_declaration' => [ + 'testMarker' => '/* testNoMatchInterfaceMethodDeclaration */', + ], + 'class_constant_declaration' => [ + 'testMarker' => '/* testNoMatchClassConstantDeclarationLower */', + ], + 'class_method_declaration' => [ + 'testMarker' => '/* testNoMatchClassMethodDeclaration */', + ], + 'property_assigment' => [ + 'testMarker' => '/* testNoMatchPropertyAssignment */', + ], + 'class_instantiation' => [ + 'testMarker' => '/* testNoMatchClassInstantiation */', + 'testContent' => 'Match', + ], + 'anon_class_method_declaration' => [ + 'testMarker' => '/* testNoMatchAnonClassMethodDeclaration */', + 'testContent' => 'maTCH', + ], + 'class_declaration' => [ + 'testMarker' => '/* testNoMatchClassDeclaration */', + 'testContent' => 'Match', + ], + 'interface_declaration' => [ + 'testMarker' => '/* testNoMatchInterfaceDeclaration */', + 'testContent' => 'Match', + ], + 'trait_declaration' => [ + 'testMarker' => '/* testNoMatchTraitDeclaration */', + 'testContent' => 'Match', + ], + 'constant_declaration' => [ + 'testMarker' => '/* testNoMatchConstantDeclaration */', + 'testContent' => 'MATCH', + ], + 'function_declaration' => [ + 'testMarker' => '/* testNoMatchFunctionDeclaration */', + ], + 'namespace_declaration' => [ + 'testMarker' => '/* testNoMatchNamespaceDeclaration */', + 'testContent' => 'Match', + ], + 'class_extends_declaration' => [ + 'testMarker' => '/* testNoMatchExtendedClassDeclaration */', + 'testContent' => 'Match', + ], + 'class_implements_declaration' => [ + 'testMarker' => '/* testNoMatchImplementedClassDeclaration */', + 'testContent' => 'Match', + ], + 'use_statement' => [ + 'testMarker' => '/* testNoMatchInUseStatement */', + 'testContent' => 'Match', + ], + 'unsupported_inline_control_structure' => [ + 'testMarker' => '/* testNoMatchMissingCurlies */', + ], + 'unsupported_alternative_syntax' => [ + 'testMarker' => '/* testNoMatchAlternativeSyntax */', + ], + 'live_coding' => [ + 'testMarker' => '/* testLiveCoding */', + ], + ]; + + }//end dataNotAMatchStructure() + + + /** + * Verify that the tokenization of switch structures is not affected by the backfill. + * + * @param string $testMarker The comment prefacing the target token. + * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. + * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. + * + * @dataProvider dataSwitchExpression + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testSwitchExpression($testMarker, $openerOffset, $closerOffset) + { + $token = $this->getTargetToken($testMarker, T_SWITCH); + + $this->scopeTestHelper($token, $openerOffset, $closerOffset); + $this->parenthesisTestHelper($token); + + }//end testSwitchExpression() + + + /** + * Data provider. + * + * @see testSwitchExpression() + * + * @return array> + */ + public static function dataSwitchExpression() + { + return [ + 'switch_containing_match' => [ + 'testMarker' => '/* testSwitchContainingMatch */', + 'openerOffset' => 6, + 'closerOffset' => 174, + ], + 'match_containing_switch_1' => [ + 'testMarker' => '/* testSwitchNestedInMatch1 */', + 'openerOffset' => 5, + 'closerOffset' => 63, + ], + 'match_containing_switch_2' => [ + 'testMarker' => '/* testSwitchNestedInMatch2 */', + 'openerOffset' => 5, + 'closerOffset' => 63, + ], + ]; + + }//end dataSwitchExpression() + + + /** + * Verify that the tokenization of a switch case/default structure containing a match structure + * or contained *in* a match structure is not affected by the backfill. + * + * @param string $testMarker The comment prefacing the target token. + * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. + * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. + * + * @dataProvider dataSwitchCaseVersusMatch + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testSwitchCaseVersusMatch($testMarker, $openerOffset, $closerOffset) + { + $token = $this->getTargetToken($testMarker, [T_CASE, T_DEFAULT]); + + $this->scopeTestHelper($token, $openerOffset, $closerOffset); + + }//end testSwitchCaseVersusMatch() + + + /** + * Data provider. + * + * @see testSwitchCaseVersusMatch() + * + * @return array> + */ + public static function dataSwitchCaseVersusMatch() + { + return [ + 'switch_with_nested_match_case_1' => [ + 'testMarker' => '/* testMatchWithDefaultNestedInSwitchCase1 */', + 'openerOffset' => 3, + 'closerOffset' => 55, + ], + 'switch_with_nested_match_case_2' => [ + 'testMarker' => '/* testMatchWithDefaultNestedInSwitchCase2 */', + 'openerOffset' => 4, + 'closerOffset' => 21, + ], + 'switch_with_nested_match_default_case' => [ + 'testMarker' => '/* testMatchWithDefaultNestedInSwitchDefault */', + 'openerOffset' => 1, + 'closerOffset' => 38, + ], + 'match_with_nested_switch_case' => [ + 'testMarker' => '/* testSwitchDefaultNestedInMatchCase */', + 'openerOffset' => 1, + 'closerOffset' => 18, + ], + 'match_with_nested_switch_default_case' => [ + 'testMarker' => '/* testSwitchDefaultNestedInMatchDefault */', + 'openerOffset' => 1, + 'closerOffset' => 20, + ], + ]; + + }//end dataSwitchCaseVersusMatch() + + + /** + * Helper function to verify that all scope related array indexes for a control structure + * are set correctly. + * + * @param string $token The control structure token to check. + * @param int $openerOffset The expected offset of the scope opener in relation to + * the control structure token. + * @param int $closerOffset The expected offset of the scope closer in relation to + * the control structure token. + * @param bool $skipScopeCloserCheck Whether to skip the scope closer check. + * This should be set to "true" when testing nested arrow functions, + * where the "inner" arrow function shares a scope closer with the + * "outer" arrow function, as the 'scope_condition' for the scope closer + * of the "inner" arrow function will point to the "outer" arrow function. + * + * @return void + */ + private function scopeTestHelper($token, $openerOffset, $closerOffset, $skipScopeCloserCheck=false) + { + $tokens = $this->phpcsFile->getTokens(); + $tokenArray = $tokens[$token]; + $tokenType = $tokenArray['type']; + $expectedScopeOpener = ($token + $openerOffset); + $expectedScopeCloser = ($token + $closerOffset); + + $this->assertArrayHasKey('scope_condition', $tokenArray, 'Scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokenArray, 'Scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokenArray, 'Scope closer is not set'); + $this->assertSame($token, $tokenArray['scope_condition'], 'Scope condition is not the '.$tokenType.' token'); + $this->assertSame($expectedScopeOpener, $tokenArray['scope_opener'], 'Scope opener of the '.$tokenType.' token incorrect'); + $this->assertSame($expectedScopeCloser, $tokenArray['scope_closer'], 'Scope closer of the '.$tokenType.' token incorrect'); + + $opener = $tokenArray['scope_opener']; + $this->assertArrayHasKey('scope_condition', $tokens[$opener], 'Opener scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Opener scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Opener scope closer is not set'); + $this->assertSame($token, $tokens[$opener]['scope_condition'], 'Opener scope condition is not the '.$tokenType.' token'); + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], $tokenType.' opener scope opener token incorrect'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], $tokenType.' opener scope closer token incorrect'); + + $closer = $tokenArray['scope_closer']; + $this->assertArrayHasKey('scope_condition', $tokens[$closer], 'Closer scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Closer scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Closer scope closer is not set'); + if ($skipScopeCloserCheck === false) { + $this->assertSame($token, $tokens[$closer]['scope_condition'], 'Closer scope condition is not the '.$tokenType.' token'); + } + + $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], $tokenType.' closer scope opener token incorrect'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], $tokenType.' closer scope closer token incorrect'); + + if (($opener + 1) !== $closer) { + for ($i = ($opener + 1); $i < $closer; $i++) { + $this->assertArrayHasKey( + $token, + $tokens[$i]['conditions'], + $tokenType.' condition not added for token belonging to the '.$tokenType.' structure' + ); + } + } + + }//end scopeTestHelper() + + + /** + * Helper function to verify that all parenthesis related array indexes for a control structure + * token are set correctly. + * + * @param int $token The position of the control structure token. + * + * @return void + */ + private function parenthesisTestHelper($token) + { + $tokens = $this->phpcsFile->getTokens(); + $tokenArray = $tokens[$token]; + $tokenType = $tokenArray['type']; + + $this->assertArrayHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is not set'); + $this->assertArrayHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is not set'); + $this->assertArrayHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is not set'); + $this->assertSame($token, $tokenArray['parenthesis_owner'], 'Parenthesis owner is not the '.$tokenType.' token'); + + $opener = $tokenArray['parenthesis_opener']; + $this->assertArrayHasKey('parenthesis_owner', $tokens[$opener], 'Opening parenthesis owner is not set'); + $this->assertSame($token, $tokens[$opener]['parenthesis_owner'], 'Opening parenthesis owner is not the '.$tokenType.' token'); + + $closer = $tokenArray['parenthesis_closer']; + $this->assertArrayHasKey('parenthesis_owner', $tokens[$closer], 'Closing parenthesis owner is not set'); + $this->assertSame($token, $tokens[$closer]['parenthesis_owner'], 'Closing parenthesis owner is not the '.$tokenType.' token'); + + }//end parenthesisTestHelper() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillNumericSeparatorTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillNumericSeparatorTest.inc similarity index 88% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillNumericSeparatorTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillNumericSeparatorTest.inc index eef53f593..d8559705c 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/BackfillNumericSeparatorTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillNumericSeparatorTest.inc @@ -34,6 +34,12 @@ $foo = 0b0101_1111; /* testOctal */ $foo = 0137_041; +/* testExplicitOctal */ +$foo = 0o137_041; + +/* testExplicitOctalCapitalised */ +$foo = 0O137_041; + /* testIntMoreThanMax */ $foo = 10_223_372_036_854_775_807; @@ -71,6 +77,12 @@ $testValue = 107_925_284 .88; /* testInvalid10 */ $testValue = 107_925_284/*comment*/.88; +/* testInvalid11 */ +$foo = 0o_137; + +/* testInvalid12 */ +$foo = 0O_41; + /* * Ensure that legitimate calculations are not touched by the backfill. */ diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillNumericSeparatorTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillNumericSeparatorTest.php new file mode 100644 index 000000000..53146730c --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillNumericSeparatorTest.php @@ -0,0 +1,402 @@ + + * @copyright 2019 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class BackfillNumericSeparatorTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that numbers using numeric separators are tokenized correctly. + * + * @param string $marker The comment which prefaces the target token in the test file. + * @param string $type The expected token type. + * @param string $value The expected token content. + * + * @dataProvider dataTestBackfill + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testBackfill($marker, $type, $value) + { + $tokens = $this->phpcsFile->getTokens(); + $number = $this->getTargetToken($marker, [T_LNUMBER, T_DNUMBER]); + $tokenArray = $tokens[$number]; + + $this->assertSame(constant($type), $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not '.$type.' (code)'); + $this->assertSame($type, $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not '.$type.' (type)'); + $this->assertSame($value, $tokenArray['content']); + + }//end testBackfill() + + + /** + * Data provider. + * + * @see testBackfill() + * + * @return array> + */ + public static function dataTestBackfill() + { + $testHexType = 'T_LNUMBER'; + if (PHP_INT_MAX < 0xCAFEF00D) { + $testHexType = 'T_DNUMBER'; + } + + $testHexMultipleType = 'T_LNUMBER'; + if (PHP_INT_MAX < 0x42726F776E) { + $testHexMultipleType = 'T_DNUMBER'; + } + + $testIntMoreThanMaxType = 'T_LNUMBER'; + if (PHP_INT_MAX < 10223372036854775807) { + $testIntMoreThanMaxType = 'T_DNUMBER'; + } + + return [ + 'decimal integer' => [ + 'marker' => '/* testSimpleLNumber */', + 'type' => 'T_LNUMBER', + 'value' => '1_000_000_000', + ], + 'float' => [ + 'marker' => '/* testSimpleDNumber */', + 'type' => 'T_DNUMBER', + 'value' => '107_925_284.88', + ], + 'float, scientific notation, negative exponent with sigh' => [ + 'marker' => '/* testFloat */', + 'type' => 'T_DNUMBER', + 'value' => '6.674_083e-11', + ], + 'float, scientific notation, positive exponent with sign' => [ + 'marker' => '/* testFloat2 */', + 'type' => 'T_DNUMBER', + 'value' => '6.674_083e+11', + ], + 'float, scientific notation, positive exponent without sign' => [ + 'marker' => '/* testFloat3 */', + 'type' => 'T_DNUMBER', + 'value' => '1_2.3_4e1_23', + ], + 'hexidecimal integer/float' => [ + 'marker' => '/* testHex */', + 'type' => $testHexType, + 'value' => '0xCAFE_F00D', + ], + 'hexidecimal integer/float with multiple underscores' => [ + 'marker' => '/* testHexMultiple */', + 'type' => $testHexMultipleType, + 'value' => '0x42_72_6F_77_6E', + ], + 'hexidecimal integer' => [ + 'marker' => '/* testHexInt */', + 'type' => 'T_LNUMBER', + 'value' => '0x42_72_6F', + ], + 'binary integer' => [ + 'marker' => '/* testBinary */', + 'type' => 'T_LNUMBER', + 'value' => '0b0101_1111', + ], + 'octal integer' => [ + 'marker' => '/* testOctal */', + 'type' => 'T_LNUMBER', + 'value' => '0137_041', + ], + 'octal integer using explicit octal notation' => [ + 'marker' => '/* testExplicitOctal */', + 'type' => 'T_LNUMBER', + 'value' => '0o137_041', + ], + 'octal integer using explicit octal notation with capital O' => [ + 'marker' => '/* testExplicitOctalCapitalised */', + 'type' => 'T_LNUMBER', + 'value' => '0O137_041', + ], + 'integer more than PHP_INT_MAX becomes a float' => [ + 'marker' => '/* testIntMoreThanMax */', + 'type' => $testIntMoreThanMaxType, + 'value' => '10_223_372_036_854_775_807', + ], + ]; + + }//end dataTestBackfill() + + + /** + * Test that numbers using numeric separators which are considered parse errors and/or + * which aren't relevant to the backfill, do not incorrectly trigger the backfill anyway. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param array> $expectedTokens The token type and content of the expected token sequence. + * + * @dataProvider dataNoBackfill + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNoBackfill($testMarker, $expectedTokens) + { + $tokens = $this->phpcsFile->getTokens(); + $number = $this->getTargetToken($testMarker, [T_LNUMBER, T_DNUMBER]); + + foreach ($expectedTokens as $key => $expectedToken) { + $i = ($number + $key); + $this->assertSame( + $expectedToken['code'], + $tokens[$i]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$i]['code']).', not '.Tokens::tokenName($expectedToken['code']) + ); + $this->assertSame($expectedToken['content'], $tokens[$i]['content']); + } + + }//end testNoBackfill() + + + /** + * Data provider. + * + * @see testBackfill() + * + * @return array>>> + */ + public static function dataNoBackfill() + { + return [ + 'invalid: trailing underscore' => [ + 'testMarker' => '/* testInvalid1 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '100', + ], + [ + 'code' => T_STRING, + 'content' => '_', + ], + ], + ], + 'invalid: two consecutive underscores' => [ + 'testMarker' => '/* testInvalid2 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '1', + ], + [ + 'code' => T_STRING, + 'content' => '__1', + ], + ], + ], + 'invalid: underscore directly before decimal point' => [ + 'testMarker' => '/* testInvalid3 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '1', + ], + [ + 'code' => T_STRING, + 'content' => '_', + ], + [ + 'code' => T_DNUMBER, + 'content' => '.0', + ], + ], + ], + 'invalid: underscore directly after decimal point' => [ + 'testMarker' => '/* testInvalid4 */', + 'expectedTokens' => [ + [ + 'code' => T_DNUMBER, + 'content' => '1.', + ], + [ + 'code' => T_STRING, + 'content' => '_0', + ], + ], + ], + 'invalid: hex int - underscore directly after x' => [ + 'testMarker' => '/* testInvalid5 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '0', + ], + [ + 'code' => T_STRING, + 'content' => 'x_123', + ], + ], + ], + 'invalid: binary int - underscore directly after b' => [ + 'testMarker' => '/* testInvalid6 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '0', + ], + [ + 'code' => T_STRING, + 'content' => 'b_101', + ], + ], + ], + 'invalid: scientific float - underscore directly before e' => [ + 'testMarker' => '/* testInvalid7 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '1', + ], + [ + 'code' => T_STRING, + 'content' => '_e2', + ], + ], + ], + 'invalid: scientific float - underscore directly after e' => [ + 'testMarker' => '/* testInvalid8 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '1', + ], + [ + 'code' => T_STRING, + 'content' => 'e_2', + ], + ], + ], + 'invalid: space between parts of the number' => [ + 'testMarker' => '/* testInvalid9 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '107_925_284', + ], + [ + 'code' => T_WHITESPACE, + 'content' => ' ', + ], + [ + 'code' => T_DNUMBER, + 'content' => '.88', + ], + ], + ], + 'invalid: comment within the number' => [ + 'testMarker' => '/* testInvalid10 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '107_925_284', + ], + [ + 'code' => T_COMMENT, + 'content' => '/*comment*/', + ], + [ + 'code' => T_DNUMBER, + 'content' => '.88', + ], + ], + ], + 'invalid: explicit octal int - underscore directly after o' => [ + 'testMarker' => '/* testInvalid11 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '0', + ], + [ + 'code' => T_STRING, + 'content' => 'o_137', + ], + ], + ], + 'invalid: explicit octal int - underscore directly after capital O' => [ + 'testMarker' => '/* testInvalid12 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '0', + ], + [ + 'code' => T_STRING, + 'content' => 'O_41', + ], + ], + ], + 'calculations should be untouched - int - int' => [ + 'testMarker' => '/* testCalc1 */', + 'expectedTokens' => [ + [ + 'code' => T_LNUMBER, + 'content' => '667_083', + ], + [ + 'code' => T_WHITESPACE, + 'content' => ' ', + ], + [ + 'code' => T_MINUS, + 'content' => '-', + ], + [ + 'code' => T_WHITESPACE, + 'content' => ' ', + ], + [ + 'code' => T_LNUMBER, + 'content' => '11', + ], + ], + ], + 'calculations should be untouched - scientific float + int' => [ + 'testMarker' => '/* test Calc2 */', + 'expectedTokens' => [ + [ + 'code' => T_DNUMBER, + 'content' => '6.674_08e3', + ], + [ + 'code' => T_WHITESPACE, + 'content' => ' ', + ], + [ + 'code' => T_PLUS, + 'content' => '+', + ], + [ + 'code' => T_WHITESPACE, + 'content' => ' ', + ], + [ + 'code' => T_LNUMBER, + 'content' => '11', + ], + ], + ], + ]; + + }//end dataNoBackfill() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillReadonlyTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillReadonlyTest.inc new file mode 100644 index 000000000..eb36e3870 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillReadonlyTest.inc @@ -0,0 +1,156 @@ +readonly = 'foo'; + + /* testReadonlyPropertyInTernaryOperator */ + $isReadonly = $this->readonly ? true : false; + } +} + +/* testReadonlyUsedAsFunctionName */ +function readonly() {} + +/* testReadonlyUsedAsFunctionNameWithReturnByRef */ +function &readonly() {} + +/* testReadonlyUsedAsNamespaceName */ +namespace Readonly; +/* testReadonlyUsedAsPartOfNamespaceName */ +namespace My\Readonly\Collection; +/* testReadonlyAsFunctionCall */ +$var = readonly($a, $b); +/* testReadonlyAsNamespacedFunctionCall */ +$var = My\NS\readonly($a, $b); +/* testReadonlyAsNamespaceRelativeFunctionCall */ +$var = namespace\ReadOnly($a, $b); +/* testReadonlyAsMethodCall */ +$var = $obj->readonly($a, $b); +/* testReadonlyAsNullsafeMethodCall */ +$var = $obj?->readOnly($a, $b); +/* testReadonlyAsStaticMethodCallWithSpace */ +$var = ClassName::readonly ($a, $b); +/* testClassConstantFetchWithReadonlyAsConstantName */ +echo ClassName::READONLY; + +/* testReadonlyUsedAsFunctionCallWithSpaceBetweenKeywordAndParens */ +$var = readonly /* comment */ (); + +// These test cases are inspired by +// https://github.com/php/php-src/commit/08b75395838b4b42a41e3c70684fa6c6b113eee0 +class ReadonlyWithDisjunctiveNormalForm +{ + /* testReadonlyPropertyDNFTypeUnqualified */ + readonly (B&C)|A $h; + + /* testReadonlyPropertyDNFTypeFullyQualified */ + public readonly (\Fully\Qualified\B&\Full\C)|\Foo\Bar $j; + + /* testReadonlyPropertyDNFTypePartiallyQualified */ + protected readonly (Partially\Qualified&C)|A $l; + + /* testReadonlyPropertyDNFTypeRelativeName */ + private readonly (namespace\Relative&C)|A $n; + + /* testReadonlyPropertyDNFTypeMultipleSets */ + private readonly (A&C)|(B&C)|(C&D) $m; + + /* testReadonlyPropertyDNFTypeWithArray */ + private readonly (B & C)|array $o; + + /* testReadonlyPropertyDNFTypeWithSpacesAndComments */ + private readonly ( B & C /*something*/) | A $q; + + public function __construct( + /* testReadonlyConstructorPropertyPromotionWithDNF */ + private readonly (B&C)|A $b1, + /* testReadonlyConstructorPropertyPromotionWithDNFAndReference */ + readonly (B&C)|A &$b2, + ) {} + + /* testReadonlyUsedAsMethodNameWithDNFParam */ + public function readonly (A&B $param): void {} +} + +/* testReadonlyAnonClassWithParens */ +$anon = new readonly class() {}; + +/* testReadonlyAnonClassWithoutParens */ +$anon = new Readonly class {}; + +/* testReadonlyAnonClassWithCommentsAndWhitespace */ +$anon = new +// comment +READONLY +// phpcs:ignore Stnd.Cat.Sniff +class {}; + +/* testParseErrorLiveCoding */ +// This must be the last test in the file. +readonly diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillReadonlyTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillReadonlyTest.php new file mode 100644 index 000000000..7756afaf0 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BackfillReadonlyTest.php @@ -0,0 +1,271 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class BackfillReadonlyTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the "readonly" keyword is tokenized as such. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $testContent Optional. The token content to look for. + * Defaults to lowercase "readonly". + * + * @dataProvider dataReadonly + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testReadonly($testMarker, $testContent='readonly') + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_READONLY, T_STRING], $testContent); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_READONLY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_READONLY (code)'); + $this->assertSame('T_READONLY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_READONLY (type)'); + + }//end testReadonly() + + + /** + * Data provider. + * + * @see testReadonly() + * + * @return array> + */ + public static function dataReadonly() + { + return [ + 'property declaration, no visibility' => [ + 'testMarker' => '/* testReadonlyProperty */', + ], + 'property declaration, var keyword before' => [ + 'testMarker' => '/* testVarReadonlyProperty */', + ], + 'property declaration, var keyword after' => [ + 'testMarker' => '/* testReadonlyVarProperty */', + ], + 'property declaration, static before' => [ + 'testMarker' => '/* testStaticReadonlyProperty */', + ], + 'property declaration, static after' => [ + 'testMarker' => '/* testReadonlyStaticProperty */', + ], + 'constant declaration, with visibility' => [ + 'testMarker' => '/* testConstReadonlyProperty */', + ], + 'property declaration, missing type' => [ + 'testMarker' => '/* testReadonlyPropertyWithoutType */', + ], + 'property declaration, public before' => [ + 'testMarker' => '/* testPublicReadonlyProperty */', + ], + 'property declaration, protected before' => [ + 'testMarker' => '/* testProtectedReadonlyProperty */', + ], + 'property declaration, private before' => [ + 'testMarker' => '/* testPrivateReadonlyProperty */', + ], + 'property declaration, public after' => [ + 'testMarker' => '/* testPublicReadonlyPropertyWithReadonlyFirst */', + ], + 'property declaration, protected after' => [ + 'testMarker' => '/* testProtectedReadonlyPropertyWithReadonlyFirst */', + ], + 'property declaration, private after' => [ + 'testMarker' => '/* testPrivateReadonlyPropertyWithReadonlyFirst */', + ], + 'property declaration, private before, comments in declaration' => [ + 'testMarker' => '/* testReadonlyWithCommentsInDeclaration */', + ], + 'property declaration, private before, nullable type' => [ + 'testMarker' => '/* testReadonlyWithNullableProperty */', + ], + 'property declaration, private before, union type, null first' => [ + 'testMarker' => '/* testReadonlyNullablePropertyWithUnionTypeHintAndNullFirst */', + ], + 'property declaration, private before, union type, null last' => [ + 'testMarker' => '/* testReadonlyNullablePropertyWithUnionTypeHintAndNullLast */', + ], + 'property declaration, private before, array type' => [ + 'testMarker' => '/* testReadonlyPropertyWithArrayTypeHint */', + ], + 'property declaration, private before, self type' => [ + 'testMarker' => '/* testReadonlyPropertyWithSelfTypeHint */', + ], + 'property declaration, private before, parent type' => [ + 'testMarker' => '/* testReadonlyPropertyWithParentTypeHint */', + ], + 'property declaration, private before, FQN type' => [ + 'testMarker' => '/* testReadonlyPropertyWithFullyQualifiedTypeHint */', + ], + 'property declaration, public before, mixed case' => [ + 'testMarker' => '/* testReadonlyIsCaseInsensitive */', + 'testContent' => 'ReAdOnLy', + ], + 'property declaration, constructor property promotion' => [ + 'testMarker' => '/* testReadonlyConstructorPropertyPromotion */', + ], + 'property declaration, constructor property promotion with reference, mixed case' => [ + 'testMarker' => '/* testReadonlyConstructorPropertyPromotionWithReference */', + 'testContent' => 'ReadOnly', + ], + 'property declaration, in anonymous class' => [ + 'testMarker' => '/* testReadonlyPropertyInAnonymousClass */', + ], + 'property declaration, no visibility, DNF type, unqualified' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypeUnqualified */', + ], + 'property declaration, public before, DNF type, fully qualified' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypeFullyQualified */', + ], + 'property declaration, protected before, DNF type, partially qualified' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypePartiallyQualified */', + ], + 'property declaration, private before, DNF type, namespace relative name' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypeRelativeName */', + ], + 'property declaration, private before, DNF type, multiple sets' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypeMultipleSets */', + ], + 'property declaration, private before, DNF type, union with array' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypeWithArray */', + ], + 'property declaration, private before, DNF type, with spaces and comment' => [ + 'testMarker' => '/* testReadonlyPropertyDNFTypeWithSpacesAndComments */', + ], + 'property declaration, constructor property promotion, DNF type' => [ + 'testMarker' => '/* testReadonlyConstructorPropertyPromotionWithDNF */', + ], + 'property declaration, constructor property promotion, DNF type and reference' => [ + 'testMarker' => '/* testReadonlyConstructorPropertyPromotionWithDNFAndReference */', + ], + 'anon class declaration, with parentheses' => [ + 'testMarker' => '/* testReadonlyAnonClassWithParens */', + ], + 'anon class declaration, without parentheses' => [ + 'testMarker' => '/* testReadonlyAnonClassWithoutParens */', + 'testContent' => 'Readonly', + ], + 'anon class declaration, with comments and whitespace' => [ + 'testMarker' => '/* testReadonlyAnonClassWithCommentsAndWhitespace */', + 'testContent' => 'READONLY', + ], + 'live coding / parse error' => [ + 'testMarker' => '/* testParseErrorLiveCoding */', + ], + ]; + + }//end dataReadonly() + + + /** + * Test that "readonly" when not used as the keyword is still tokenized as `T_STRING`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $testContent Optional. The token content to look for. + * Defaults to lowercase "readonly". + * + * @dataProvider dataNotReadonly + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNotReadonly($testMarker, $testContent='readonly') + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_READONLY, T_STRING], $testContent); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testNotReadonly() + + + /** + * Data provider. + * + * @see testNotReadonly() + * + * @return array> + */ + public static function dataNotReadonly() + { + return [ + 'name of a constant, context: declaration using "const" keyword, uppercase' => [ + 'testMarker' => '/* testReadonlyUsedAsClassConstantName */', + 'testContent' => 'READONLY', + ], + 'name of a method, context: declaration' => [ + 'testMarker' => '/* testReadonlyUsedAsMethodName */', + ], + 'name of a property, context: property access' => [ + 'testMarker' => '/* testReadonlyUsedAsPropertyName */', + ], + 'name of a property, context: property access in ternary' => [ + 'testMarker' => '/* testReadonlyPropertyInTernaryOperator */', + ], + 'name of a function, context: declaration' => [ + 'testMarker' => '/* testReadonlyUsedAsFunctionName */', + ], + 'name of a function, context: declaration with return by ref' => [ + 'testMarker' => '/* testReadonlyUsedAsFunctionNameWithReturnByRef */', + ], + 'name of namespace, context: declaration, mixed case' => [ + 'testMarker' => '/* testReadonlyUsedAsNamespaceName */', + 'testContent' => 'Readonly', + ], + 'partial name of namespace, context: declaration, mixed case' => [ + 'testMarker' => '/* testReadonlyUsedAsPartOfNamespaceName */', + 'testContent' => 'Readonly', + ], + 'name of a function, context: call' => [ + 'testMarker' => '/* testReadonlyAsFunctionCall */', + ], + 'name of a namespaced function, context: partially qualified call' => [ + 'testMarker' => '/* testReadonlyAsNamespacedFunctionCall */', + ], + 'name of a function, context: namespace relative call, mixed case' => [ + 'testMarker' => '/* testReadonlyAsNamespaceRelativeFunctionCall */', + 'testContent' => 'ReadOnly', + ], + 'name of a method, context: method call on object' => [ + 'testMarker' => '/* testReadonlyAsMethodCall */', + ], + 'name of a method, context: nullsafe method call on object' => [ + 'testMarker' => '/* testReadonlyAsNullsafeMethodCall */', + 'testContent' => 'readOnly', + ], + 'name of a method, context: static method call with space after' => [ + 'testMarker' => '/* testReadonlyAsStaticMethodCallWithSpace */', + ], + 'name of a constant, context: constant access - uppercase' => [ + 'testMarker' => '/* testClassConstantFetchWithReadonlyAsConstantName */', + 'testContent' => 'READONLY', + ], + 'name of a function, context: call with space and comment between keyword and parens' => [ + 'testMarker' => '/* testReadonlyUsedAsFunctionCallWithSpaceBetweenKeywordAndParens */', + ], + 'name of a method, context: declaration with DNF parameter' => [ + 'testMarker' => '/* testReadonlyUsedAsMethodNameWithDNFParam */', + ], + ]; + + }//end dataNotReadonly() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BitwiseOrTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BitwiseOrTest.inc new file mode 100644 index 000000000..54ff50822 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BitwiseOrTest.inc @@ -0,0 +1,183 @@ + $param | $int; + +/* testTypeUnionArrowReturnType */ +$arrowWithReturnType = fn ($param) : int|null => $param * 10; + +/* testBitwiseOrInArrayKey */ +$array = array( + A | B => /* testBitwiseOrInArrayValue */ B | C +); + +/* testBitwiseOrInShortArrayKey */ +$array = [ + A | B => /* testBitwiseOrInShortArrayValue */ B | C +]; + +/* testBitwiseOrTryCatch */ +try { +} catch ( ExceptionA | ExceptionB $e ) { +} + +/* testBitwiseOrNonArrowFnFunctionCall */ +$obj->fn($something | $else); + +/* testTypeUnionNonArrowFunctionDeclaration */ +function &fn(int|false $something) {} + +/* testTypeUnionPHP82TrueFirst */ +function trueTypeParam(true|null $param) {} + +/* testTypeUnionPHP82TrueMiddle */ +function trueTypeReturn($param): array|true|null {} + +/* testTypeUnionPHP82TrueLast */ +$closure = function ($param): array|true {} + +/* testLiveCoding */ +// Intentional parse error. This has to be the last test in the file. +return function( type| diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BitwiseOrTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BitwiseOrTest.php new file mode 100644 index 000000000..0648d6132 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/BitwiseOrTest.php @@ -0,0 +1,160 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class BitwiseOrTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that non-union type bitwise or tokens are still tokenized as bitwise or. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataBitwiseOr + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testBitwiseOr($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_BITWISE_OR, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_BITWISE_OR (code)'); + $this->assertSame('T_BITWISE_OR', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_BITWISE_OR (type)'); + + }//end testBitwiseOr() + + + /** + * Data provider. + * + * @see testBitwiseOr() + * + * @return array> + */ + public static function dataBitwiseOr() + { + return [ + 'in simple assignment 1' => ['/* testBitwiseOr1 */'], + 'in simple assignment 2' => ['/* testBitwiseOr2 */'], + 'in OO constant default value' => ['/* testBitwiseOrOOConstDefaultValue */'], + 'in property default value' => ['/* testBitwiseOrPropertyDefaultValue */'], + 'in method parameter default value' => ['/* testBitwiseOrParamDefaultValue */'], + 'in return statement' => ['/* testBitwiseOr3 */'], + 'in closure parameter default value' => ['/* testBitwiseOrClosureParamDefault */'], + 'in OO constant default value DNF-like' => ['/* testBitwiseOrOOConstDefaultValueDNF */'], + 'in property default value DNF-like' => ['/* testBitwiseOrPropertyDefaultValueDNF */'], + 'in method parameter default value DNF-like' => ['/* testBitwiseOrParamDefaultValueDNF */'], + 'in arrow function parameter default value' => ['/* testBitwiseOrArrowParamDefault */'], + 'in arrow function return expression' => ['/* testBitwiseOrArrowExpression */'], + 'in long array key' => ['/* testBitwiseOrInArrayKey */'], + 'in long array value' => ['/* testBitwiseOrInArrayValue */'], + 'in short array key' => ['/* testBitwiseOrInShortArrayKey */'], + 'in short array value' => ['/* testBitwiseOrInShortArrayValue */'], + 'in catch condition' => ['/* testBitwiseOrTryCatch */'], + 'in parameter in function call' => ['/* testBitwiseOrNonArrowFnFunctionCall */'], + 'live coding / undetermined' => ['/* testLiveCoding */'], + ]; + + }//end dataBitwiseOr() + + + /** + * Test that bitwise or tokens when used as part of a union type are tokenized as `T_TYPE_UNION`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataTypeUnion + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testTypeUnion($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_TYPE_UNION, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_TYPE_UNION (code)'); + $this->assertSame('T_TYPE_UNION', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_TYPE_UNION (type)'); + + }//end testTypeUnion() + + + /** + * Data provider. + * + * @see testTypeUnion() + * + * @return array> + */ + public static function dataTypeUnion() + { + return [ + 'type for OO constant' => ['/* testTypeUnionOOConstSimple */'], + 'type for OO constant, reversed modifier order' => ['/* testTypeUnionOOConstReverseModifierOrder */'], + 'type for OO constant, first of multi-union' => ['/* testTypeUnionOOConstMulti1 */'], + 'type for OO constant, middle of multi-union + comments' => ['/* testTypeUnionOOConstMulti2 */'], + 'type for OO constant, last of multi-union' => ['/* testTypeUnionOOConstMulti3 */'], + 'type for OO constant, using namespace relative names' => ['/* testTypeUnionOOConstNamespaceRelative */'], + 'type for OO constant, using partially qualified names' => ['/* testTypeUnionOOConstPartiallyQualified */'], + 'type for OO constant, using fully qualified names' => ['/* testTypeUnionOOConstFullyQualified */'], + 'type for static property' => ['/* testTypeUnionPropertySimple */'], + 'type for static property, reversed modifier order' => ['/* testTypeUnionPropertyReverseModifierOrder */'], + 'type for property, first of multi-union' => ['/* testTypeUnionPropertyMulti1 */'], + 'type for property, middle of multi-union, also comments' => ['/* testTypeUnionPropertyMulti2 */'], + 'type for property, last of multi-union' => ['/* testTypeUnionPropertyMulti3 */'], + 'type for property using namespace relative names' => ['/* testTypeUnionPropertyNamespaceRelative */'], + 'type for property using partially qualified names' => ['/* testTypeUnionPropertyPartiallyQualified */'], + 'type for property using fully qualified names' => ['/* testTypeUnionPropertyFullyQualified */'], + 'type for readonly property' => ['/* testTypeUnionPropertyWithReadOnlyKeyword */'], + 'type for static readonly property' => ['/* testTypeUnionPropertyWithStaticAndReadOnlyKeywords */'], + 'type for readonly property using var keyword' => ['/* testTypeUnionPropertyWithVarAndReadOnlyKeywords */'], + 'type for readonly property, reversed modifier order' => ['/* testTypeUnionPropertyWithReadOnlyKeywordFirst */'], + 'type for readonly property, no visibility' => ['/* testTypeUnionPropertyWithOnlyReadOnlyKeyword */'], + 'type for static property, no visibility' => ['/* testTypeUnionPropertyWithOnlyStaticKeyword */'], + 'type for method parameter' => ['/* testTypeUnionParam1 */'], + 'type for method parameter, first in multi-union' => ['/* testTypeUnionParam2 */'], + 'type for method parameter, last in multi-union' => ['/* testTypeUnionParam3 */'], + 'type for method parameter with namespace relative names' => ['/* testTypeUnionParamNamespaceRelative */'], + 'type for method parameter with partially qualified names' => ['/* testTypeUnionParamPartiallyQualified */'], + 'type for method parameter with fully qualified names' => ['/* testTypeUnionParamFullyQualified */'], + 'type for property in constructor property promotion' => ['/* testTypeUnionConstructorPropertyPromotion */'], + 'return type for method' => ['/* testTypeUnionReturnType */'], + 'return type for method, first of multi-union' => ['/* testTypeUnionAbstractMethodReturnType1 */'], + 'return type for method, last of multi-union' => ['/* testTypeUnionAbstractMethodReturnType2 */'], + 'return type for method with namespace relative names' => ['/* testTypeUnionReturnTypeNamespaceRelative */'], + 'return type for method with partially qualified names' => ['/* testTypeUnionReturnPartiallyQualified */'], + 'return type for method with fully qualified names' => ['/* testTypeUnionReturnFullyQualified */'], + 'type for function parameter with reference' => ['/* testTypeUnionWithReference */'], + 'type for function parameter with spread operator' => ['/* testTypeUnionWithSpreadOperator */'], + 'DNF type for OO constant, union before DNF' => ['/* testTypeUnionConstantTypeUnionBeforeDNF */'], + 'DNF type for property, union after DNF' => ['/* testTypeUnionPropertyTypeUnionAfterDNF */'], + 'DNF type for function param, union before and after DNF' => ['/* testTypeUnionParamUnionBeforeAndAfterDNF */'], + 'DNF type for function return, union after DNF with null' => ['/* testTypeUnionReturnTypeUnionAfterDNF */'], + 'type for closure parameter with illegal nullable' => ['/* testTypeUnionClosureParamIllegalNullable */'], + 'return type for closure' => ['/* testTypeUnionClosureReturn */'], + 'type for arrow function parameter' => ['/* testTypeUnionArrowParam */'], + 'return type for arrow function' => ['/* testTypeUnionArrowReturnType */'], + 'type for function parameter, return by ref' => ['/* testTypeUnionNonArrowFunctionDeclaration */'], + 'type for function param with true type first' => ['/* testTypeUnionPHP82TrueFirst */'], + 'type for function param with true type middle' => ['/* testTypeUnionPHP82TrueMiddle */'], + 'type for function param with true type last' => ['/* testTypeUnionPHP82TrueLast */'], + ]; + + }//end dataTypeUnion() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ContextSensitiveKeywordsTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ContextSensitiveKeywordsTest.inc new file mode 100644 index 000000000..2825f26e5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ContextSensitiveKeywordsTest.inc @@ -0,0 +1,244 @@ + 'a', + 2 => 'b', + /* testMatchDefaultIsKeyword */ default => 'default', +}; + +$closure = /* testFnIsKeyword */ fn () => 'string'; + +function () { + /* testYieldIsKeyword */ yield $f; + /* testYieldFromIsKeyword */ yield from someFunction(); +}; + +/* testDeclareIsKeyword */ declare(ticks=1): +/* testEndDeclareIsKeyword */ enddeclare; + +if (true /* testAndIsKeyword */ and false /* testOrIsKeyword */ or null /* testXorIsKeyword */ xor 0) { + +} + +$anonymousClass = new /* testAnonymousClassIsKeyword */ class {}; +$anonymousClass2 = new class /* testExtendsInAnonymousClassIsKeyword */ extends SomeParent {}; +$anonymousClass3 = new class /* testImplementsInAnonymousClassIsKeyword */ implements SomeInterface {}; + +$instantiated = new /* testClassInstantiationStaticIsKeyword */ static($param); + +class Foo extends /* testNamespaceInNameIsKeyword */ namespace\Exception +{} + +function /* testKeywordAfterFunctionShouldBeString */ eval() {} +function /* testKeywordAfterFunctionByRefShouldBeString */ &switch() {} + +function /* testKeywordStaticAfterFunctionByRefShouldBeString */ &static() {} + +/* testKeywordAsFunctionCallNameShouldBeStringStatic */ static(); +$obj-> /* testKeywordAsMethodCallNameShouldBeStringStatic */ static(); + +$function = /* testStaticIsKeywordBeforeClosure */ static function(/* testStaticIsKeywordWhenParamType */ static $param) {}; +$arrow = /* testStaticIsKeywordBeforeArrow */ static fn(): /* testStaticIsKeywordWhenReturnType */ static => 10; + +/* testKeywordAsFunctionCallNameShouldBeStringStaticDNFLookaLike */ +$obj->static((CONST_A&CONST_B)|CONST_C | $var); + +class DNF { + public /* testStaticIsKeywordPropertyModifierBeforeDNF */ static (DN&F)|null $dnfProp; +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ContextSensitiveKeywordsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ContextSensitiveKeywordsTest.php new file mode 100644 index 000000000..57eb34954 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ContextSensitiveKeywordsTest.php @@ -0,0 +1,548 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class ContextSensitiveKeywordsTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that context sensitive keyword is tokenized as string when it should be string. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataStrings + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testStrings($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, (Tokens::$contextSensitiveKeywords + [T_STRING])); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testStrings() + + + /** + * Data provider. + * + * @see testStrings() + * + * @return array> + */ + public static function dataStrings() + { + return [ + 'constant declaration: abstract' => ['/* testAbstract */'], + 'constant declaration: array' => ['/* testArray */'], + 'constant declaration: as' => ['/* testAs */'], + 'constant declaration: break' => ['/* testBreak */'], + 'constant declaration: callable' => ['/* testCallable */'], + 'constant declaration: case' => ['/* testCase */'], + 'constant declaration: catch' => ['/* testCatch */'], + 'constant declaration: class' => ['/* testClass */'], + 'constant declaration: clone' => ['/* testClone */'], + 'constant declaration: const' => ['/* testConst */'], + 'constant declaration: continue' => ['/* testContinue */'], + 'constant declaration: declare' => ['/* testDeclare */'], + 'constant declaration: default' => ['/* testDefault */'], + 'constant declaration: do' => ['/* testDo */'], + 'constant declaration: echo' => ['/* testEcho */'], + 'constant declaration: else' => ['/* testElse */'], + 'constant declaration: elseif' => ['/* testElseIf */'], + 'constant declaration: empty' => ['/* testEmpty */'], + 'constant declaration: enddeclare' => ['/* testEndDeclare */'], + 'constant declaration: endfor' => ['/* testEndFor */'], + 'constant declaration: endforeach' => ['/* testEndForeach */'], + 'constant declaration: endif' => ['/* testEndIf */'], + 'constant declaration: endswitch' => ['/* testEndSwitch */'], + 'constant declaration: endwhile' => ['/* testEndWhile */'], + 'constant declaration: enum' => ['/* testEnum */'], + 'constant declaration: eval' => ['/* testEval */'], + 'constant declaration: exit' => ['/* testExit */'], + 'constant declaration: extends' => ['/* testExtends */'], + 'constant declaration: final' => ['/* testFinal */'], + 'constant declaration: finally' => ['/* testFinally */'], + 'constant declaration: fn' => ['/* testFn */'], + 'constant declaration: for' => ['/* testFor */'], + 'constant declaration: foreach' => ['/* testForeach */'], + 'constant declaration: function' => ['/* testFunction */'], + 'constant declaration: global' => ['/* testGlobal */'], + 'constant declaration: goto' => ['/* testGoto */'], + 'constant declaration: if' => ['/* testIf */'], + 'constant declaration: implements' => ['/* testImplements */'], + 'constant declaration: include' => ['/* testInclude */'], + 'constant declaration: include_once' => ['/* testIncludeOnce */'], + 'constant declaration: instanceof' => ['/* testInstanceOf */'], + 'constant declaration: insteadof' => ['/* testInsteadOf */'], + 'constant declaration: interface' => ['/* testInterface */'], + 'constant declaration: isset' => ['/* testIsset */'], + 'constant declaration: list' => ['/* testList */'], + 'constant declaration: match' => ['/* testMatch */'], + 'constant declaration: namespace' => ['/* testNamespace */'], + 'constant declaration: new' => ['/* testNew */'], + 'constant declaration: print' => ['/* testPrint */'], + 'constant declaration: private' => ['/* testPrivate */'], + 'constant declaration: protected' => ['/* testProtected */'], + 'constant declaration: public' => ['/* testPublic */'], + 'constant declaration: readonly' => ['/* testReadonly */'], + 'constant declaration: require' => ['/* testRequire */'], + 'constant declaration: require_once' => ['/* testRequireOnce */'], + 'constant declaration: return' => ['/* testReturn */'], + 'constant declaration: static' => ['/* testStatic */'], + 'constant declaration: switch' => ['/* testSwitch */'], + 'constant declaration: throws' => ['/* testThrows */'], + 'constant declaration: trait' => ['/* testTrait */'], + 'constant declaration: try' => ['/* testTry */'], + 'constant declaration: unset' => ['/* testUnset */'], + 'constant declaration: use' => ['/* testUse */'], + 'constant declaration: var' => ['/* testVar */'], + 'constant declaration: while' => ['/* testWhile */'], + 'constant declaration: yield' => ['/* testYield */'], + 'constant declaration: yield_from' => ['/* testYieldFrom */'], + 'constant declaration: and' => ['/* testAnd */'], + 'constant declaration: or' => ['/* testOr */'], + 'constant declaration: xor' => ['/* testXor */'], + + 'constant declaration: array in type' => ['/* testArrayIsTstringInConstType */'], + 'constant declaration: array, name after type' => ['/* testArrayNameForTypedConstant */'], + 'constant declaration: static, name after type' => ['/* testStaticIsNameForTypedConstant */'], + 'constant declaration: private, name after type' => ['/* testPrivateNameForUnionTypedConstant */'], + 'constant declaration: final, name after type' => ['/* testFinalNameForIntersectionTypedConstant */'], + + 'namespace declaration: class' => ['/* testKeywordAfterNamespaceShouldBeString */'], + 'namespace declaration (partial): my' => ['/* testNamespaceNameIsString1 */'], + 'namespace declaration (partial): class' => ['/* testNamespaceNameIsString2 */'], + 'namespace declaration (partial): foreach' => ['/* testNamespaceNameIsString3 */'], + + 'function declaration: eval' => ['/* testKeywordAfterFunctionShouldBeString */'], + 'function declaration with return by ref: switch' => ['/* testKeywordAfterFunctionByRefShouldBeString */'], + 'function declaration with return by ref: static' => ['/* testKeywordStaticAfterFunctionByRefShouldBeString */'], + + 'function call: static' => ['/* testKeywordAsFunctionCallNameShouldBeStringStatic */'], + 'method call: static' => ['/* testKeywordAsMethodCallNameShouldBeStringStatic */'], + 'method call: static with dnf look a like param' => ['/* testKeywordAsFunctionCallNameShouldBeStringStaticDNFLookaLike */'], + ]; + + }//end dataStrings() + + + /** + * Test that context sensitive keyword is tokenized as keyword when it should be keyword. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expectedTokenType The expected token type. + * + * @dataProvider dataKeywords + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testKeywords($testMarker, $expectedTokenType) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, (Tokens::$contextSensitiveKeywords + [T_ANON_CLASS, T_MATCH_DEFAULT, T_STRING])); + $tokenArray = $tokens[$target]; + + $this->assertSame( + constant($expectedTokenType), + $tokenArray['code'], + 'Token tokenized as '.$tokenArray['type'].', not '.$expectedTokenType.' (code)' + ); + $this->assertSame( + $expectedTokenType, + $tokenArray['type'], + 'Token tokenized as '.$tokenArray['type'].', not '.$expectedTokenType.' (type)' + ); + + }//end testKeywords() + + + /** + * Data provider. + * + * @see testKeywords() + * + * @return array + */ + public static function dataKeywords() + { + return [ + 'namespace: declaration' => [ + 'testMarker' => '/* testNamespaceIsKeyword */', + 'expectedTokenType' => 'T_NAMESPACE', + ], + 'array: default value in const decl' => [ + 'testMarker' => '/* testArrayIsKeywordInConstDefault */', + 'expectedTokenType' => 'T_ARRAY', + ], + 'static: type in constant declaration' => [ + 'testMarker' => '/* testStaticIsKeywordAsConstType */', + 'expectedTokenType' => 'T_STATIC', + ], + 'static: value in constant declaration' => [ + 'testMarker' => '/* testStaticIsKeywordAsConstDefault */', + 'expectedTokenType' => 'T_STATIC', + ], + + 'abstract: class declaration' => [ + 'testMarker' => '/* testAbstractIsKeyword */', + 'expectedTokenType' => 'T_ABSTRACT', + ], + 'class: declaration' => [ + 'testMarker' => '/* testClassIsKeyword */', + 'expectedTokenType' => 'T_CLASS', + ], + 'extends: in class declaration' => [ + 'testMarker' => '/* testExtendsIsKeyword */', + 'expectedTokenType' => 'T_EXTENDS', + ], + 'implements: in class declaration' => [ + 'testMarker' => '/* testImplementsIsKeyword */', + 'expectedTokenType' => 'T_IMPLEMENTS', + ], + 'use: in trait import' => [ + 'testMarker' => '/* testUseIsKeyword */', + 'expectedTokenType' => 'T_USE', + ], + 'insteadof: in trait import' => [ + 'testMarker' => '/* testInsteadOfIsKeyword */', + 'expectedTokenType' => 'T_INSTEADOF', + ], + 'as: in trait import' => [ + 'testMarker' => '/* testAsIsKeyword */', + 'expectedTokenType' => 'T_AS', + ], + 'const: declaration' => [ + 'testMarker' => '/* testConstIsKeyword */', + 'expectedTokenType' => 'T_CONST', + ], + 'private: property declaration' => [ + 'testMarker' => '/* testPrivateIsKeyword */', + 'expectedTokenType' => 'T_PRIVATE', + ], + 'protected: property declaration' => [ + 'testMarker' => '/* testProtectedIsKeyword */', + 'expectedTokenType' => 'T_PROTECTED', + ], + 'public: property declaration' => [ + 'testMarker' => '/* testPublicIsKeyword */', + 'expectedTokenType' => 'T_PUBLIC', + ], + 'var: property declaration' => [ + 'testMarker' => '/* testVarIsKeyword */', + 'expectedTokenType' => 'T_VAR', + ], + 'static: property declaration' => [ + 'testMarker' => '/* testStaticIsKeyword */', + 'expectedTokenType' => 'T_STATIC', + ], + 'readonly: property declaration' => [ + 'testMarker' => '/* testReadonlyIsKeywordForProperty */', + 'expectedTokenType' => 'T_READONLY', + ], + 'final: function declaration' => [ + 'testMarker' => '/* testFinalIsKeyword */', + 'expectedTokenType' => 'T_FINAL', + ], + 'function: declaration' => [ + 'testMarker' => '/* testFunctionIsKeyword */', + 'expectedTokenType' => 'T_FUNCTION', + ], + 'callable: param type declaration' => [ + 'testMarker' => '/* testCallableIsKeyword */', + 'expectedTokenType' => 'T_CALLABLE', + ], + 'readonly: anon class declaration' => [ + 'testMarker' => '/* testReadonlyIsKeywordForAnonClass */', + 'expectedTokenType' => 'T_READONLY', + ], + 'return: statement' => [ + 'testMarker' => '/* testReturnIsKeyword */', + 'expectedTokenType' => 'T_RETURN', + ], + + 'interface: declaration' => [ + 'testMarker' => '/* testInterfaceIsKeyword */', + 'expectedTokenType' => 'T_INTERFACE', + ], + 'trait: declaration' => [ + 'testMarker' => '/* testTraitIsKeyword */', + 'expectedTokenType' => 'T_TRAIT', + ], + 'enum: declaration' => [ + 'testMarker' => '/* testEnumIsKeyword */', + 'expectedTokenType' => 'T_ENUM', + ], + + 'new: named instantiation' => [ + 'testMarker' => '/* testNewIsKeyword */', + 'expectedTokenType' => 'T_NEW', + ], + 'instanceof: comparison' => [ + 'testMarker' => '/* testInstanceOfIsKeyword */', + 'expectedTokenType' => 'T_INSTANCEOF', + ], + 'clone' => [ + 'testMarker' => '/* testCloneIsKeyword */', + 'expectedTokenType' => 'T_CLONE', + ], + + 'if' => [ + 'testMarker' => '/* testIfIsKeyword */', + 'expectedTokenType' => 'T_IF', + ], + 'empty' => [ + 'testMarker' => '/* testEmptyIsKeyword */', + 'expectedTokenType' => 'T_EMPTY', + ], + 'elseif' => [ + 'testMarker' => '/* testElseIfIsKeyword */', + 'expectedTokenType' => 'T_ELSEIF', + ], + 'else' => [ + 'testMarker' => '/* testElseIsKeyword */', + 'expectedTokenType' => 'T_ELSE', + ], + 'endif' => [ + 'testMarker' => '/* testEndIfIsKeyword */', + 'expectedTokenType' => 'T_ENDIF', + ], + + 'for' => [ + 'testMarker' => '/* testForIsKeyword */', + 'expectedTokenType' => 'T_FOR', + ], + 'endfor' => [ + 'testMarker' => '/* testEndForIsKeyword */', + 'expectedTokenType' => 'T_ENDFOR', + ], + + 'foreach' => [ + 'testMarker' => '/* testForeachIsKeyword */', + 'expectedTokenType' => 'T_FOREACH', + ], + 'endforeach' => [ + 'testMarker' => '/* testEndForeachIsKeyword */', + 'expectedTokenType' => 'T_ENDFOREACH', + ], + + 'switch' => [ + 'testMarker' => '/* testSwitchIsKeyword */', + 'expectedTokenType' => 'T_SWITCH', + ], + 'case: in switch' => [ + 'testMarker' => '/* testCaseIsKeyword */', + 'expectedTokenType' => 'T_CASE', + ], + 'default: in switch' => [ + 'testMarker' => '/* testDefaultIsKeyword */', + 'expectedTokenType' => 'T_DEFAULT', + ], + 'endswitch' => [ + 'testMarker' => '/* testEndSwitchIsKeyword */', + 'expectedTokenType' => 'T_ENDSWITCH', + ], + 'break: in switch' => [ + 'testMarker' => '/* testBreakIsKeyword */', + 'expectedTokenType' => 'T_BREAK', + ], + 'continue: in switch' => [ + 'testMarker' => '/* testContinueIsKeyword */', + 'expectedTokenType' => 'T_CONTINUE', + ], + + 'do' => [ + 'testMarker' => '/* testDoIsKeyword */', + 'expectedTokenType' => 'T_DO', + ], + 'while' => [ + 'testMarker' => '/* testWhileIsKeyword */', + 'expectedTokenType' => 'T_WHILE', + ], + 'endwhile' => [ + 'testMarker' => '/* testEndWhileIsKeyword */', + 'expectedTokenType' => 'T_ENDWHILE', + ], + + 'try' => [ + 'testMarker' => '/* testTryIsKeyword */', + 'expectedTokenType' => 'T_TRY', + ], + 'throw: statement' => [ + 'testMarker' => '/* testThrowIsKeyword */', + 'expectedTokenType' => 'T_THROW', + ], + 'catch' => [ + 'testMarker' => '/* testCatchIsKeyword */', + 'expectedTokenType' => 'T_CATCH', + ], + 'finally' => [ + 'testMarker' => '/* testFinallyIsKeyword */', + 'expectedTokenType' => 'T_FINALLY', + ], + + 'global' => [ + 'testMarker' => '/* testGlobalIsKeyword */', + 'expectedTokenType' => 'T_GLOBAL', + ], + 'echo' => [ + 'testMarker' => '/* testEchoIsKeyword */', + 'expectedTokenType' => 'T_ECHO', + ], + 'print: statement' => [ + 'testMarker' => '/* testPrintIsKeyword */', + 'expectedTokenType' => 'T_PRINT', + ], + 'die: statement' => [ + 'testMarker' => '/* testDieIsKeyword */', + 'expectedTokenType' => 'T_EXIT', + ], + 'eval' => [ + 'testMarker' => '/* testEvalIsKeyword */', + 'expectedTokenType' => 'T_EVAL', + ], + 'exit: statement' => [ + 'testMarker' => '/* testExitIsKeyword */', + 'expectedTokenType' => 'T_EXIT', + ], + 'isset' => [ + 'testMarker' => '/* testIssetIsKeyword */', + 'expectedTokenType' => 'T_ISSET', + ], + 'unset' => [ + 'testMarker' => '/* testUnsetIsKeyword */', + 'expectedTokenType' => 'T_UNSET', + ], + + 'include' => [ + 'testMarker' => '/* testIncludeIsKeyword */', + 'expectedTokenType' => 'T_INCLUDE', + ], + 'include_once' => [ + 'testMarker' => '/* testIncludeOnceIsKeyword */', + 'expectedTokenType' => 'T_INCLUDE_ONCE', + ], + 'require' => [ + 'testMarker' => '/* testRequireIsKeyword */', + 'expectedTokenType' => 'T_REQUIRE', + ], + 'require_once' => [ + 'testMarker' => '/* testRequireOnceIsKeyword */', + 'expectedTokenType' => 'T_REQUIRE_ONCE', + ], + + 'list' => [ + 'testMarker' => '/* testListIsKeyword */', + 'expectedTokenType' => 'T_LIST', + ], + 'goto' => [ + 'testMarker' => '/* testGotoIsKeyword */', + 'expectedTokenType' => 'T_GOTO', + ], + 'match' => [ + 'testMarker' => '/* testMatchIsKeyword */', + 'expectedTokenType' => 'T_MATCH', + ], + 'default: in match expression' => [ + 'testMarker' => '/* testMatchDefaultIsKeyword */', + 'expectedTokenType' => 'T_MATCH_DEFAULT', + ], + 'fn' => [ + 'testMarker' => '/* testFnIsKeyword */', + 'expectedTokenType' => 'T_FN', + ], + + 'yield' => [ + 'testMarker' => '/* testYieldIsKeyword */', + 'expectedTokenType' => 'T_YIELD', + ], + 'yield from' => [ + 'testMarker' => '/* testYieldFromIsKeyword */', + 'expectedTokenType' => 'T_YIELD_FROM', + ], + + 'declare' => [ + 'testMarker' => '/* testDeclareIsKeyword */', + 'expectedTokenType' => 'T_DECLARE', + ], + 'enddeclare' => [ + 'testMarker' => '/* testEndDeclareIsKeyword */', + 'expectedTokenType' => 'T_ENDDECLARE', + ], + + 'and: in if' => [ + 'testMarker' => '/* testAndIsKeyword */', + 'expectedTokenType' => 'T_LOGICAL_AND', + ], + 'or: in if' => [ + 'testMarker' => '/* testOrIsKeyword */', + 'expectedTokenType' => 'T_LOGICAL_OR', + ], + 'xor: in if' => [ + 'testMarker' => '/* testXorIsKeyword */', + 'expectedTokenType' => 'T_LOGICAL_XOR', + ], + + 'class: anon class declaration' => [ + 'testMarker' => '/* testAnonymousClassIsKeyword */', + 'expectedTokenType' => 'T_ANON_CLASS', + ], + 'extends: anon class declaration' => [ + 'testMarker' => '/* testExtendsInAnonymousClassIsKeyword */', + 'expectedTokenType' => 'T_EXTENDS', + ], + 'implements: anon class declaration' => [ + 'testMarker' => '/* testImplementsInAnonymousClassIsKeyword */', + 'expectedTokenType' => 'T_IMPLEMENTS', + ], + 'static: class instantiation' => [ + 'testMarker' => '/* testClassInstantiationStaticIsKeyword */', + 'expectedTokenType' => 'T_STATIC', + ], + 'namespace: operator' => [ + 'testMarker' => '/* testNamespaceInNameIsKeyword */', + 'expectedTokenType' => 'T_NAMESPACE', + ], + + 'static: closure declaration' => [ + 'testMarker' => '/* testStaticIsKeywordBeforeClosure */', + 'expectedTokenType' => 'T_STATIC', + ], + 'static: parameter type (illegal)' => [ + 'testMarker' => '/* testStaticIsKeywordWhenParamType */', + 'expectedTokenType' => 'T_STATIC', + ], + 'static: arrow function declaration' => [ + 'testMarker' => '/* testStaticIsKeywordBeforeArrow */', + 'expectedTokenType' => 'T_STATIC', + ], + 'static: return type for arrow function' => [ + 'testMarker' => '/* testStaticIsKeywordWhenReturnType */', + 'expectedTokenType' => 'T_STATIC', + ], + 'static: property modifier before DNF' => [ + 'testMarker' => '/* testStaticIsKeywordPropertyModifierBeforeDNF */', + 'expectedTokenType' => 'T_STATIC', + ], + ]; + + }//end dataKeywords() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesParseError1Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesParseError1Test.inc new file mode 100644 index 000000000..a6cf511c2 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesParseError1Test.inc @@ -0,0 +1,17 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class DNFTypesParseError1Test extends AbstractTokenizerTestCase +{ + + + /** + * Document handling for a DNF type / parse error where the last significant type specific token is an open parenthesis. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataBrokenDNFTypeCantEndOnOpenParenthesis + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testBrokenDNFTypeCantEndOnOpenParenthesis($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $openPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS], '('); + $token = $tokens[$openPtr]; + + // Verify that the open parenthesis is tokenized as a normal parenthesis. + $this->assertSame(T_OPEN_PARENTHESIS, $token['code'], 'Token tokenized as '.$token['type'].', not T_OPEN_PARENTHESIS (code)'); + $this->assertSame('T_OPEN_PARENTHESIS', $token['type'], 'Token tokenized as '.$token['type'].', not T_OPEN_PARENTHESIS (type)'); + + // Verify that the type union is still tokenized as T_BITWISE_OR as the type declaration + // is not recognized as a valid type declaration. + $unionPtr = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION], '|'); + $token = $tokens[$unionPtr]; + + $this->assertSame(T_BITWISE_OR, $token['code'], 'Token tokenized as '.$token['type'].', not T_BITWISE_OR (code)'); + $this->assertSame('T_BITWISE_OR', $token['type'], 'Token tokenized as '.$token['type'].', not T_BITWISE_OR (type)'); + + }//end testBrokenDNFTypeCantEndOnOpenParenthesis() + + + /** + * Data provider. + * + * @see testBrokenDNFTypeCantEndOnOpenParenthesis() + * + * @return array> + */ + public static function dataBrokenDNFTypeCantEndOnOpenParenthesis() + { + return [ + 'OO const type' => ['/* testBrokenConstDNFTypeEndOnOpenParenthesis */'], + 'OO property type' => ['/* testBrokenPropertyDNFTypeEndOnOpenParenthesis */'], + 'Parameter type' => ['/* testBrokenParamDNFTypeEndOnOpenParenthesis */'], + 'Return type' => ['/* testBrokenReturnDNFTypeEndOnOpenParenthesis */'], + ]; + + }//end dataBrokenDNFTypeCantEndOnOpenParenthesis() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesParseError2Test.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesParseError2Test.inc new file mode 100644 index 000000000..792975828 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesParseError2Test.inc @@ -0,0 +1,48 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class DNFTypesParseError2Test extends AbstractTokenizerTestCase +{ + + + /** + * Document handling for a DNF type / parse error where the type declaration contains an unmatched parenthesis. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataBrokenDNFTypeParensShouldAlwaysBeAPairMissingCloseParens + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testBrokenDNFTypeParensShouldAlwaysBeAPairMissingCloseParens($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + // Verify that the type union is still tokenized as T_BITWISE_OR as the type declaration + // is not recognized as a valid type declaration. + $unionPtr = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION], '|'); + $token = $tokens[$unionPtr]; + + $this->assertSame(T_BITWISE_OR, $token['code'], 'Token tokenized as '.$token['type'].', not T_BITWISE_OR (code)'); + $this->assertSame('T_BITWISE_OR', $token['type'], 'Token tokenized as '.$token['type'].', not T_BITWISE_OR (type)'); + + // Verify that the unmatched open parenthesis is tokenized as a normal parenthesis. + $openPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS], '('); + $token = $tokens[$openPtr]; + + $this->assertSame(T_OPEN_PARENTHESIS, $token['code'], 'Token tokenized as '.$token['type'].', not T_OPEN_PARENTHESIS (code)'); + $this->assertSame('T_OPEN_PARENTHESIS', $token['type'], 'Token tokenized as '.$token['type'].', not T_OPEN_PARENTHESIS (type)'); + + // Verify that the type intersection is still tokenized as T_BITWISE_AND as the type declaration + // is not recognized as a valid type declaration. + $intersectPtr = $this->getTargetToken($testMarker, [T_BITWISE_AND, T_TYPE_INTERSECTION], '&'); + $token = $tokens[$intersectPtr]; + + $this->assertSame(T_BITWISE_AND, $token['code'], 'Token tokenized as '.$token['type'].', not T_BITWISE_AND (code)'); + $this->assertSame('T_BITWISE_AND', $token['type'], 'Token tokenized as '.$token['type'].', not T_BITWISE_AND (type)'); + + }//end testBrokenDNFTypeParensShouldAlwaysBeAPairMissingCloseParens() + + + /** + * Data provider. + * + * @see testBrokenDNFTypeParensShouldAlwaysBeAPairMissingCloseParens() + * + * @return array> + */ + public static function dataBrokenDNFTypeParensShouldAlwaysBeAPairMissingCloseParens() + { + return [ + 'OO const type' => ['/* testBrokenConstDNFTypeParensMissingClose */'], + 'OO property type' => ['/* testBrokenPropertyDNFTypeParensMissingClose */'], + 'Parameter type' => ['/* testBrokenParamDNFTypeParensMissingClose */'], + 'Return type' => ['/* testBrokenReturnDNFTypeParensMissingClose */'], + ]; + + }//end dataBrokenDNFTypeParensShouldAlwaysBeAPairMissingCloseParens() + + + /** + * Document handling for a DNF type / parse error where the type declaration contains an unmatched parenthesis. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataBrokenDNFTypeParensShouldAlwaysBeAPairMissingOpenParens + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testBrokenDNFTypeParensShouldAlwaysBeAPairMissingOpenParens($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + // Verify that the type union is still tokenized as T_BITWISE_OR as the type declaration + // is not recognized as a valid type declaration. + $unionPtr = $this->getTargetToken($testMarker, [T_BITWISE_OR, T_TYPE_UNION], '|'); + $token = $tokens[$unionPtr]; + + $this->assertSame(T_BITWISE_OR, $token['code'], 'Token tokenized as '.$token['type'].', not T_BITWISE_OR (code)'); + $this->assertSame('T_BITWISE_OR', $token['type'], 'Token tokenized as '.$token['type'].', not T_BITWISE_OR (type)'); + + // Verify that the unmatched open parenthesis is tokenized as a normal parenthesis. + $closePtr = $this->getTargetToken($testMarker, [T_CLOSE_PARENTHESIS, T_TYPE_CLOSE_PARENTHESIS], ')'); + $token = $tokens[$closePtr]; + + $this->assertSame(T_CLOSE_PARENTHESIS, $token['code'], 'Token tokenized as '.$token['type'].', not T_CLOSE_PARENTHESIS (code)'); + $this->assertSame('T_CLOSE_PARENTHESIS', $token['type'], 'Token tokenized as '.$token['type'].', not T_CLOSE_PARENTHESIS (type)'); + + // Verify that the type intersection is still tokenized as T_BITWISE_AND as the type declaration + // is not recognized as a valid type declaration. + $intersectPtr = $this->getTargetToken($testMarker, [T_BITWISE_AND, T_TYPE_INTERSECTION], '&'); + $token = $tokens[$intersectPtr]; + + $this->assertSame(T_BITWISE_AND, $token['code'], 'Token tokenized as '.$token['type'].', not T_BITWISE_AND (code)'); + $this->assertSame('T_BITWISE_AND', $token['type'], 'Token tokenized as '.$token['type'].', not T_BITWISE_AND (type)'); + + }//end testBrokenDNFTypeParensShouldAlwaysBeAPairMissingOpenParens() + + + /** + * Data provider. + * + * @see testBrokenDNFTypeParensShouldAlwaysBeAPairMissingOpenParens() + * + * @return array> + */ + public static function dataBrokenDNFTypeParensShouldAlwaysBeAPairMissingOpenParens() + { + return [ + 'OO const type' => ['/* testBrokenConstDNFTypeParensMissingOpen */'], + 'OO property type' => ['/* testBrokenPropertyDNFTypeParensMissingOpen */'], + 'Parameter type' => ['/* testBrokenParamDNFTypeParensMissingOpen */'], + 'Return type' => ['/* testBrokenReturnDNFTypeParensMissingOpen */'], + ]; + + }//end dataBrokenDNFTypeParensShouldAlwaysBeAPairMissingOpenParens() + + + /** + * Document handling for a DNF type / parse error where the type declaration contains an unmatched parenthesis, + * but also contains a set of matched parentheses. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataBrokenDNFTypeParensShouldAlwaysBeAPairMatchedAndUnmatched + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testBrokenDNFTypeParensShouldAlwaysBeAPairMatchedAndUnmatched($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $startPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS], '('); + + for ($i = $startPtr; $i < $this->phpcsFile->numTokens; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { + continue; + } + + if ($tokens[$i]['code'] === T_EQUAL + || $tokens[$i]['code'] === T_VARIABLE + || $tokens[$i]['code'] === T_OPEN_CURLY_BRACKET + ) { + // Reached the end of the type. + break; + } + + $errorPrefix = 'Token tokenized as '.$tokens[$i]['type']; + + // Verify that type tokens have not been retokenized to `T_TYPE_*` tokens for broken type declarations. + switch ($tokens[$i]['content']) { + case '|': + $this->assertSame(T_BITWISE_OR, $tokens[$i]['code'], $errorPrefix.', not T_BITWISE_OR (code)'); + $this->assertSame('T_BITWISE_OR', $tokens[$i]['type'], $errorPrefix.', not T_BITWISE_OR (type)'); + break; + + case '&': + $this->assertSame(T_BITWISE_AND, $tokens[$i]['code'], $errorPrefix.', not T_BITWISE_AND (code)'); + $this->assertSame('T_BITWISE_AND', $tokens[$i]['type'], $errorPrefix.', not T_BITWISE_AND (type)'); + break; + + case '(': + // Verify that the open parenthesis is tokenized as a normal parenthesis. + $this->assertSame(T_OPEN_PARENTHESIS, $tokens[$i]['code'], $errorPrefix.', not T_OPEN_PARENTHESIS (code)'); + $this->assertSame('T_OPEN_PARENTHESIS', $tokens[$i]['type'], $errorPrefix.', not T_OPEN_PARENTHESIS (type)'); + break; + + case ')': + $this->assertSame(T_CLOSE_PARENTHESIS, $tokens[$i]['code'], $errorPrefix.', not T_CLOSE_PARENTHESIS (code)'); + $this->assertSame('T_CLOSE_PARENTHESIS', $tokens[$i]['type'], $errorPrefix.', not T_CLOSE_PARENTHESIS (type)'); + break; + + default: + break; + }//end switch + }//end for + + }//end testBrokenDNFTypeParensShouldAlwaysBeAPairMatchedAndUnmatched() + + + /** + * Data provider. + * + * @see testBrokenDNFTypeParensShouldAlwaysBeAPairMatchedAndUnmatched() + * + * @return array> + */ + public static function dataBrokenDNFTypeParensShouldAlwaysBeAPairMatchedAndUnmatched() + { + return [ + 'OO const type - missing one close parenthesis' => ['/* testBrokenConstDNFTypeParensMissingOneClose */'], + 'OO property type - missing one open parenthesis' => ['/* testBrokenPropertyDNFTypeParensMissingOneOpen */'], + 'Parameter type - missing one close parenthesis' => ['/* testBrokenParamDNFTypeParensMissingOneClose */'], + 'Return type - missing one open parenthesis' => ['/* testBrokenReturnDNFTypeParensMissingOneOpen */'], + ]; + + }//end dataBrokenDNFTypeParensShouldAlwaysBeAPairMatchedAndUnmatched() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesTest.inc new file mode 100644 index 000000000..f509c4f31 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesTest.inc @@ -0,0 +1,193 @@ + 10 ) {} + +/* testParensOwnerFor */ +for ($i =0; $i < /* testParensNoOwnerInForCondition */ ( CONST_A & CONST_B ); $i++ ); + +/* testParensOwnerMatch */ +$match = match(CONST_A & CONST_B) { + default => $a, +}; + +/* testParensOwnerArray */ +$array = array ( + 'text', + \CONST_A & \Fully\Qualified\CONST_B, + /* testParensNoOwnerFunctionCallWithAmpersandInCallable */ + do_something($a, /* testParensOwnerArrowFn */ fn($b) => $a & $b, $c), +); + +/* testParensOwnerListWithRefVars */ +list(&$a, &$b) = $array; + +/* testParensNoOwnerFunctionCallwithDNFLookALikeParam */ +$obj->static((CONST_A&CONST_B)|CONST_C | $var); + +/* testParensNoOwnerFunctionCallWithDNFLookALikeNamedParamPlain */ +callMe(label: false); + +/* testParensNoOwnerFunctionCallWithDNFLookALikeNamedParamUnion */ +callMe(label: CONST_A | CONST_B); + +/* testParensNoOwnerFunctionCallWithDNFLookALikeNamedParamIntersect */ +callMe(label: CONST_A & CONST_B); + +/* + * DNF parentheses. + */ + +abstract class DNFTypes { + /* testDNFTypeOOConstUnqualifiedClasses */ + public const (A&B)|D UNQUALIFIED = new Foo; + + /* testDNFTypeOOConstReverseModifierOrder */ + protected final const int|(Foo&Bar)|float MODIFIERS_REVERSED /* testParensNoOwnerOOConstDefaultValue */ = (E_WARNING & E_NOTICE) | E_DEPRECATED; + + const + /* testDNFTypeOOConstMulti1 */ + (A&B) | + /* testDNFTypeOOConstMulti2 */ + (C&D) | // phpcs:ignore Stnd.Cat.Sniff + /* testDNFTypeOOConstMulti3 */ + (Y&D) + | null MULTI_DNF = null; + + /* testDNFTypeOOConstNamespaceRelative */ + final protected const (namespace\Sub\NameA&namespace\Sub\NameB)|namespace\Sub\NameC NAMESPACE_RELATIVE = new namespace\Sub\NameB; + + /* testDNFTypeOOConstPartiallyQualified */ + const Partially\Qualified\NameC|(Partially\Qualified\NameA&Partially\Qualified\NameB) PARTIALLY_QUALIFIED = new Partially\Qualified\NameA; + + /* testDNFTypeOOConstFullyQualified */ + const (\Fully\Qualified\NameA&\Fully\Qualified\NameB)|\Fully\Qualified\NameC FULLY_QUALIFIED = new \Fully\Qualified\NameB(); + + /* testDNFTypePropertyUnqualifiedClasses */ + public static (Foo&Bar)|array $obj; + + /* testDNFTypePropertyReverseModifierOrder */ + static protected string|(A&B)|int $dnf /* testParensNoOwnerPropertyDefaultValue1 */ = ( E_WARNING & E_NOTICE ) | /* testParensNoOwnerPropertyDefaultValue2 */ (E_ALL & E_DEPRECATED); + + private + /* testDNFTypePropertyMultiNamespaceRelative */ + (namespace\Sub\NameA&namespace\Sub\NameB) | + /* testDNFTypePropertyMultiPartiallyQualified */ + (Partially\Qualified\NameA&Partially\Qualified\NameB) | // phpcs:ignore Stnd.Cat.Sniff + false + /* testDNFTypePropertyMultiFullyQualified */ + | (\Fully\Qualified\NameA&\Fully\Qualified\NameB) $multiDnf; + + /* testDNFTypePropertyWithReadOnlyKeyword1 */ + protected readonly (A&B) | /* testDNFTypePropertyWithReadOnlyKeyword2 */ (C&D) $readonly; + + /* testDNFTypePropertyWithStaticAndReadOnlyKeywords */ + static readonly (A&B&C)|array $staticReadonly; + + /* testDNFTypePropertyWithOnlyStaticKeyword */ + static (A&B&C)|true $onlyStaticModified; + + public function paramTypes( + /* testDNFTypeParam1WithAttribute */ + #[MyAttribute] + (\Foo&Bar)|int|float $paramA /* testParensNoOwnerParamDefaultValue */ = SOMETHING | (CONSTANT_A & CONSTANT_B), + + /* testDNFTypeParam2 */ + (Foo&\Bar) /* testDNFTypeParam3 */ |(Baz&Fop) &...$paramB, + ) { + /* testParensNoOwnerInReturnValue1 */ + return ( + /* testParensNoOwnerInReturnValue2 */ + ($a1 & $b1) | + /* testParensNoOwnerInReturnValue3 */ + ($a2 & $b2) + ) + $c; + } + + public function identifierNames( + /* testDNFTypeParamNamespaceRelative */ + (namespace\Sub\NameA&namespace\Sub\NameB)|false $paramA, + /* testDNFTypeParamPartiallyQualified */ + Partially\Qualified\NameC|(Partially\Qualified\NameA&Partially\Qualified\NameB) $paramB, + /* testDNFTypeParamFullyQualified */ + name|(\Fully\Qualified\NameA&\Fully\Qualified\NameB) $paramC, + ) {} + + public function __construct( + /* testDNFTypeConstructorPropertyPromotion1 */ + public (A&B)| /* testDNFTypeConstructorPropertyPromotion2 */ (A&D) $property + ) {} + + public function returnType()/* testDNFTypeReturnType1 */ : A|(B&D)|/* testDNFTypeReturnType2 */(B&W)|null {} + + abstract public function abstractMethod(): /* testDNFTypeAbstractMethodReturnType1 */ (X&Y) /* testDNFTypeAbstractMethodReturnType2 */ |(W&Z); + + public function identifierNamesReturnRelative( + ) : /* testDNFTypeReturnTypeNamespaceRelative */ (namespace\Sub\NameA&namespace\Sub\NameB)|namespace\Sub\NameC {} + + public function identifierNamesReturnPQ( + ) : /* testDNFTypeReturnPartiallyQualified */Partially\Qualified\NameA|(Partially\Qualified\NameB&Partially\Qualified\NameC) {} + + // Illegal type: segments which are strict subsets of others are disallowed, but that's not the concern of the tokenizer. + public function identifierNamesReturnFQ( + ) /* testDNFTypeReturnFullyQualified */ : (\Fully\Qualified\NameA&\Fully\Qualified\NameB)|\Fully\Qualified\NameB {} +} + +function globalFunctionWithSpreadAndReference( + /* testDNFTypeWithReference */ + float|(B&A) &$paramA, + /* testDNFTypeWithSpreadOperator */ + string|(B&D) ...$paramB +) {} + + +$closureWithParamType = function ( /* testDNFTypeClosureParamIllegalNullable */ ?(A&B)|bool $string) {}; + +/* testParensOwnerClosureAmpersandInDefaultValue */ +$closureWithReturnType = function ($string = NONSENSE & FAKE) /* testDNFTypeClosureReturn */ : (\Package\MyA&PackageB)|null {}; + +/* testParensOwnerArrowDNFUsedWithin */ +$arrowWithParamType = fn ( + /* testDNFTypeArrowParam */ + int|(A&B&C)|array $param, + /* testParensNoOwnerAmpersandInDefaultValue */ ?int $int = (CONSTA & CONSTB )| CONST_C +) + /* testParensNoOwnerInArrowReturnExpression */ + => ($param & $foo ) | $int; + +$arrowWithReturnType = fn ($param) : /* testDNFTypeArrowReturnType */ int|(A&B) => $param * 10; + +$arrowWithParamReturnByRef = fn &( + /* testDNFTypeArrowParamWithReturnByRef */ + (A&B)|null $param +) => $param * 10; + +function InvalidSyntaxes( + /* testDNFTypeParamIllegalUnnecessaryParens */ + (A&B) $parensNotNeeded, + + /* testDNFTypeParamIllegalIntersectUnionReversed */ + A&(B|D) $onlyIntersectAllowedWithinParensAndUnionOutside, + + /* testDNFTypeParamIllegalNestedParens */ + A|(B&(D|W)|null) $nestedParensNotAllowed, +) {} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesTest.php new file mode 100644 index 000000000..9d7e395b3 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DNFTypesTest.php @@ -0,0 +1,450 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class DNFTypesTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that parentheses when **not** used in a type declaration are correctly tokenized. + * + * @param string $testMarker The comment prefacing the target token. + * @param bool $skipCheckInside Optional. Skip checking correct token type inside the parentheses. + * Use judiciously for combined normal + DNF tests only. + * + * @dataProvider dataNormalParentheses + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNormalParentheses($testMarker, $skipCheckInside=false) + { + $tokens = $this->phpcsFile->getTokens(); + + $openPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS]); + $opener = $tokens[$openPtr]; + + $this->assertSame('(', $opener['content'], 'Content of type open parenthesis is not "("'); + $this->assertSame(T_OPEN_PARENTHESIS, $opener['code'], 'Token tokenized as '.$opener['type'].', not T_OPEN_PARENTHESIS (code)'); + $this->assertSame('T_OPEN_PARENTHESIS', $opener['type'], 'Token tokenized as '.$opener['type'].', not T_OPEN_PARENTHESIS (type)'); + + $closePtr = $opener['parenthesis_closer']; + $closer = $tokens[$closePtr]; + + $this->assertSame(')', $closer['content'], 'Content of type close parenthesis is not ")"'); + $this->assertSame(T_CLOSE_PARENTHESIS, $closer['code'], 'Token tokenized as '.$closer['type'].', not T_CLOSE_PARENTHESIS (code)'); + $this->assertSame('T_CLOSE_PARENTHESIS', $closer['type'], 'Token tokenized as '.$closer['type'].', not T_CLOSE_PARENTHESIS (type)'); + + if ($skipCheckInside === false) { + for ($i = ($openPtr + 1); $i < $closePtr; $i++) { + // If there are ampersands, make sure these are tokenized as bitwise and. + if ($tokens[$i]['content'] === '&') { + $this->assertSame(T_BITWISE_AND, $tokens[$i]['code'], 'Token tokenized as '.$tokens[$i]['type'].', not T_BITWISE_AND (code)'); + $this->assertSame('T_BITWISE_AND', $tokens[$i]['type'], 'Token tokenized as '.$tokens[$i]['type'].', not T_BITWISE_AND (type)'); + } + + // If there are pipes, make sure these are tokenized as bitwise or. + if ($tokens[$i]['content'] === '|') { + $this->assertSame(T_BITWISE_OR, $tokens[$i]['code'], 'Token tokenized as '.$tokens[$i]['type'].', not T_BITWISE_OR (code)'); + $this->assertSame('T_BITWISE_OR', $tokens[$i]['type'], 'Token tokenized as '.$tokens[$i]['type'].', not T_BITWISE_OR (type)'); + } + } + } + + $before = $this->phpcsFile->findPrevious(Tokens::$emptyTokens, ($openPtr - 1), null, true); + if ($before !== false && $tokens[$before]['content'] === '|') { + $this->assertSame( + T_BITWISE_OR, + $tokens[$before]['code'], + 'Token before tokenized as '.$tokens[$before]['type'].', not T_BITWISE_OR (code)' + ); + $this->assertSame( + 'T_BITWISE_OR', + $tokens[$before]['type'], + 'Token before tokenized as '.$tokens[$before]['type'].', not T_BITWISE_OR (type)' + ); + } + + $after = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($closePtr + 1), null, true); + if ($after !== false && $tokens[$after]['content'] === '|') { + $this->assertSame( + T_BITWISE_OR, + $tokens[$after]['code'], + 'Token after tokenized as '.$tokens[$after]['type'].', not T_BITWISE_OR (code)' + ); + $this->assertSame( + 'T_BITWISE_OR', + $tokens[$after]['type'], + 'Token after tokenized as '.$tokens[$after]['type'].', not T_BITWISE_OR (type)' + ); + } + + }//end testNormalParentheses() + + + /** + * Data provider. + * + * @see testNormalParentheses() + * + * @return array> + */ + public static function dataNormalParentheses() + { + // "Owner" offsets are relative to the open parenthesis. + return [ + 'parens without owner' => [ + 'testMarker' => '/* testParensNoOwner */', + ], + 'parens without owner in ternary then' => [ + 'testMarker' => '/* testParensNoOwnerInTernary */', + ], + 'parens without owner in short ternary' => [ + 'testMarker' => '/* testParensNoOwnerInShortTernary */', + ], + 'parens with owner: function; & in default value' => [ + 'testMarker' => '/* testParensOwnerFunctionAmpersandInDefaultValue */', + ], + 'parens with owner: closure; param declared by & ref' => [ + 'testMarker' => '/* testParensOwnerClosureAmpersandParamRef */', + ], + 'parens with owner: if' => [ + 'testMarker' => '/* testParensOwnerIf */', + ], + 'parens without owner in if condition' => [ + 'testMarker' => '/* testParensNoOwnerInIfCondition */', + ], + 'parens with owner: for' => [ + 'testMarker' => '/* testParensOwnerFor */', + ], + 'parens without owner in for condition' => [ + 'testMarker' => '/* testParensNoOwnerInForCondition */', + ], + 'parens with owner: match' => [ + 'testMarker' => '/* testParensOwnerMatch */', + ], + 'parens with owner: array' => [ + 'testMarker' => '/* testParensOwnerArray */', + ], + 'parens without owner in array; function call with & in callable' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallWithAmpersandInCallable */', + ], + 'parens with owner: fn; & in return value' => [ + 'testMarker' => '/* testParensOwnerArrowFn */', + ], + 'parens with owner: list with reference vars' => [ + 'testMarker' => '/* testParensOwnerListWithRefVars */', + ], + 'parens without owner, function call with DNF look-a-like param' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallwithDNFLookALikeParam */', + ], + 'parens without owner, function call, named param' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallWithDNFLookALikeNamedParamPlain */', + ], + 'parens without owner, function call, named param + bitwise or' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallWithDNFLookALikeNamedParamUnion */', + ], + 'parens without owner, function call, named param + bitwise and' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallWithDNFLookALikeNamedParamIntersect */', + ], + + 'parens without owner in OO const default value' => [ + 'testMarker' => '/* testParensNoOwnerOOConstDefaultValue */', + ], + 'parens without owner in property default 1' => [ + 'testMarker' => '/* testParensNoOwnerPropertyDefaultValue1 */', + ], + 'parens without owner in property default 2' => [ + 'testMarker' => '/* testParensNoOwnerPropertyDefaultValue2 */', + ], + 'parens without owner in param default value' => [ + 'testMarker' => '/* testParensNoOwnerParamDefaultValue */', + ], + 'parens without owner in return statement 1' => [ + 'testMarker' => '/* testParensNoOwnerInReturnValue1 */', + ], + 'parens without owner in return statement 2' => [ + 'testMarker' => '/* testParensNoOwnerInReturnValue2 */', + ], + 'parens without owner in return statement 3' => [ + 'testMarker' => '/* testParensNoOwnerInReturnValue3 */', + ], + 'parens with owner: closure; & in default value' => [ + 'testMarker' => '/* testParensOwnerClosureAmpersandInDefaultValue */', + ], + 'parens with owner: fn; dnf used within' => [ + 'testMarker' => '/* testParensOwnerArrowDNFUsedWithin */', + 'skipCheckInside' => true, + ], + 'parens without owner: default value for param in arrow function' => [ + 'testMarker' => '/* testParensNoOwnerAmpersandInDefaultValue */', + ], + 'parens without owner in arrow function return expression' => [ + 'testMarker' => '/* testParensNoOwnerInArrowReturnExpression */', + ], + ]; + + }//end dataNormalParentheses() + + + /** + * Test that parentheses when used in a DNF type declaration are correctly tokenized. + * + * Includes verifying that: + * - the tokens between the parentheses all have a "nested_parenthesis" key. + * - all ampersands between the parentheses are tokenized as T_TYPE_INTERSECTION. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataDNFTypeParentheses + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testDNFTypeParentheses($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $openPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS]); + $opener = $tokens[$openPtr]; + + $this->assertSame('(', $opener['content'], 'Content of type open parenthesis is not "("'); + $this->assertSame(T_TYPE_OPEN_PARENTHESIS, $opener['code'], 'Token tokenized as '.$opener['type'].', not T_TYPE_OPEN_PARENTHESIS (code)'); + $this->assertSame('T_TYPE_OPEN_PARENTHESIS', $opener['type'], 'Token tokenized as '.$opener['type'].', not T_TYPE_OPEN_PARENTHESIS (type)'); + + $closePtr = $opener['parenthesis_closer']; + $closer = $tokens[$closePtr]; + + $this->assertSame(')', $closer['content'], 'Content of type close parenthesis is not ")"'); + $this->assertSame(T_TYPE_CLOSE_PARENTHESIS, $closer['code'], 'Token tokenized as '.$closer['type'].', not T_TYPE_CLOSE_PARENTHESIS (code)'); + $this->assertSame('T_TYPE_CLOSE_PARENTHESIS', $closer['type'], 'Token tokenized as '.$closer['type'].', not T_TYPE_CLOSE_PARENTHESIS (type)'); + + $intersectionCount = 0; + for ($i = ($openPtr + 1); $i < $closePtr; $i++) { + if ($tokens[$i]['content'] === '&') { + $this->assertSame( + T_TYPE_INTERSECTION, + $tokens[$i]['code'], + 'Token tokenized as '.$tokens[$i]['type'].', not T_TYPE_INTERSECTION (code)' + ); + $this->assertSame( + 'T_TYPE_INTERSECTION', + $tokens[$i]['type'], + 'Token tokenized as '.$tokens[$i]['type'].', not T_TYPE_INTERSECTION (type)' + ); + ++$intersectionCount; + } + + // Not valid, but that's irrelevant for the tokenization. + if ($tokens[$i]['content'] === '|') { + $this->assertSame(T_TYPE_UNION, $tokens[$i]['code'], 'Token tokenized as '.$tokens[$i]['type'].', not T_TYPE_UNION (code)'); + $this->assertSame('T_TYPE_UNION', $tokens[$i]['type'], 'Token tokenized as '.$tokens[$i]['type'].', not T_TYPE_UNION (type)'); + + // For the purposes of this test, presume it was intended as an intersection. + ++$intersectionCount; + } + }//end for + + $this->assertGreaterThanOrEqual(1, $intersectionCount, 'Did not find an intersection "&" between the DNF type parentheses'); + + $before = $this->phpcsFile->findPrevious(Tokens::$emptyTokens, ($openPtr - 1), null, true); + if ($before !== false && $tokens[$before]['content'] === '|') { + $this->assertSame( + T_TYPE_UNION, + $tokens[$before]['code'], + 'Token before tokenized as '.$tokens[$before]['type'].', not T_TYPE_UNION (code)' + ); + $this->assertSame( + 'T_TYPE_UNION', + $tokens[$before]['type'], + 'Token before tokenized as '.$tokens[$before]['type'].', not T_TYPE_UNION (type)' + ); + } + + // Invalid, but that's not relevant for the tokenization. + if ($before !== false && $tokens[$before]['content'] === '?') { + $this->assertSame( + T_NULLABLE, + $tokens[$before]['code'], + 'Token before tokenized as '.$tokens[$before]['type'].', not T_NULLABLE (code)' + ); + $this->assertSame( + 'T_NULLABLE', + $tokens[$before]['type'], + 'Token before tokenized as '.$tokens[$before]['type'].', not T_NULLABLE (type)' + ); + } + + $after = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($closePtr + 1), null, true); + if ($after !== false && $tokens[$after]['content'] === '|') { + $this->assertSame( + T_TYPE_UNION, + $tokens[$after]['code'], + 'Token after tokenized as '.$tokens[$after]['type'].', not T_TYPE_UNION (code)' + ); + $this->assertSame( + 'T_TYPE_UNION', + $tokens[$after]['type'], + 'Token after tokenized as '.$tokens[$after]['type'].', not T_TYPE_UNION (type)' + ); + } + + }//end testDNFTypeParentheses() + + + /** + * Data provider. + * + * @see testDNFTypeParentheses() + * + * @return array> + */ + public static function dataDNFTypeParentheses() + { + return [ + 'OO const type: unqualified classes' => [ + 'testMarker' => '/* testDNFTypeOOConstUnqualifiedClasses */', + ], + 'OO const type: modifiers in reverse order' => [ + 'testMarker' => '/* testDNFTypeOOConstReverseModifierOrder */', + ], + 'OO const type: multi-dnf part 1' => [ + 'testMarker' => '/* testDNFTypeOOConstMulti1 */', + ], + 'OO const type: multi-dnf part 2' => [ + 'testMarker' => '/* testDNFTypeOOConstMulti2 */', + ], + 'OO const type: multi-dnf part 3' => [ + 'testMarker' => '/* testDNFTypeOOConstMulti3 */', + ], + 'OO const type: namespace relative classes' => [ + 'testMarker' => '/* testDNFTypeOOConstNamespaceRelative */', + ], + 'OO const type: partially qualified classes' => [ + 'testMarker' => '/* testDNFTypeOOConstPartiallyQualified */', + ], + 'OO const type: fully qualified classes' => [ + 'testMarker' => '/* testDNFTypeOOConstFullyQualified */', + ], + + 'OO property type: unqualified classes' => [ + 'testMarker' => '/* testDNFTypePropertyUnqualifiedClasses */', + ], + 'OO property type: modifiers in reverse order' => [ + 'testMarker' => '/* testDNFTypePropertyReverseModifierOrder */', + ], + 'OO property type: multi-dnf namespace relative classes' => [ + 'testMarker' => '/* testDNFTypePropertyMultiNamespaceRelative */', + ], + 'OO property type: multi-dnf partially qualified classes' => [ + 'testMarker' => '/* testDNFTypePropertyMultiPartiallyQualified */', + ], + 'OO property type: multi-dnf fully qualified classes' => [ + 'testMarker' => '/* testDNFTypePropertyMultiFullyQualified */', + ], + + 'OO property type: multi-dnf with readonly keyword 1' => [ + 'testMarker' => '/* testDNFTypePropertyWithReadOnlyKeyword1 */', + ], + 'OO property type: multi-dnf with readonly keyword 2' => [ + 'testMarker' => '/* testDNFTypePropertyWithReadOnlyKeyword2 */', + ], + 'OO property type: with static and readonly keywords' => [ + 'testMarker' => '/* testDNFTypePropertyWithStaticAndReadOnlyKeywords */', + ], + 'OO property type: with only static keyword' => [ + 'testMarker' => '/* testDNFTypePropertyWithOnlyStaticKeyword */', + ], + 'OO method param type: first param' => [ + 'testMarker' => '/* testDNFTypeParam1WithAttribute */', + ], + 'OO method param type: second param, first DNF' => [ + 'testMarker' => '/* testDNFTypeParam2 */', + ], + 'OO method param type: second param, second DNF' => [ + 'testMarker' => '/* testDNFTypeParam3 */', + ], + 'OO method param type: namespace relative classes' => [ + 'testMarker' => '/* testDNFTypeParamNamespaceRelative */', + ], + 'OO method param type: partially qualified classes' => [ + 'testMarker' => '/* testDNFTypeParamPartiallyQualified */', + ], + 'OO method param type: fully qualified classes' => [ + 'testMarker' => '/* testDNFTypeParamFullyQualified */', + ], + 'Constructor property promotion with multi DNF 1' => [ + 'testMarker' => '/* testDNFTypeConstructorPropertyPromotion1 */', + ], + 'Constructor property promotion with multi DNF 2' => [ + 'testMarker' => '/* testDNFTypeConstructorPropertyPromotion2 */', + ], + 'OO method return type: multi DNF 1' => [ + 'testMarker' => '/* testDNFTypeReturnType1 */', + ], + 'OO method return type: multi DNF 2' => [ + 'testMarker' => '/* testDNFTypeReturnType2 */', + ], + 'OO abstract method return type: multi DNF 1' => [ + 'testMarker' => '/* testDNFTypeAbstractMethodReturnType1 */', + ], + 'OO abstract method return type: multi DNF 2' => [ + 'testMarker' => '/* testDNFTypeAbstractMethodReturnType2 */', + ], + 'OO method return type: namespace relative classes' => [ + 'testMarker' => '/* testDNFTypeReturnTypeNamespaceRelative */', + ], + 'OO method return type: partially qualified classes' => [ + 'testMarker' => '/* testDNFTypeReturnPartiallyQualified */', + ], + 'OO method return type: fully qualified classes' => [ + 'testMarker' => '/* testDNFTypeReturnFullyQualified */', + ], + 'function param type: with reference' => [ + 'testMarker' => '/* testDNFTypeWithReference */', + ], + 'function param type: with spread' => [ + 'testMarker' => '/* testDNFTypeWithSpreadOperator */', + ], + 'closure param type: with illegal nullable' => [ + 'testMarker' => '/* testDNFTypeClosureParamIllegalNullable */', + ], + 'closure return type' => [ + 'testMarker' => '/* testDNFTypeClosureReturn */', + ], + 'arrow function param type' => [ + 'testMarker' => '/* testDNFTypeArrowParam */', + ], + 'arrow function return type' => [ + 'testMarker' => '/* testDNFTypeArrowReturnType */', + ], + 'arrow function param type with return by ref' => [ + 'testMarker' => '/* testDNFTypeArrowParamWithReturnByRef */', + ], + + 'illegal syntax: unnecessary parentheses (no union)' => [ + 'testMarker' => '/* testDNFTypeParamIllegalUnnecessaryParens */', + ], + 'illegal syntax: union within parentheses, intersect outside' => [ + 'testMarker' => '/* testDNFTypeParamIllegalIntersectUnionReversed */', + ], + 'illegal syntax: nested parentheses' => [ + 'testMarker' => '/* testDNFTypeParamIllegalNestedParens */', + ], + ]; + + }//end dataDNFTypeParentheses() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DefaultKeywordTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DefaultKeywordTest.inc similarity index 97% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DefaultKeywordTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DefaultKeywordTest.inc index 6de448573..648149d2f 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DefaultKeywordTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DefaultKeywordTest.inc @@ -193,3 +193,11 @@ function switchWithConstantNonDefault($i) { return 2; } } + +class Foo { + /* testClassConstant */ + const DEFAULT = 'foo'; + + /* testMethodDeclaration */ + public function default() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DefaultKeywordTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DefaultKeywordTest.php new file mode 100644 index 000000000..c32d33754 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DefaultKeywordTest.php @@ -0,0 +1,255 @@ + + * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class DefaultKeywordTest extends AbstractTokenizerTestCase +{ + + + /** + * Test the retokenization of the `default` keyword for match structure to `T_MATCH_DEFAULT`. + * + * Note: Cases and default structures within a match structure do *NOT* get case/default scope + * conditions, in contrast to case and default structures in switch control structures. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataMatchDefault + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testMatchDefault($testMarker, $testContent='default') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_MATCH_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_DEFAULT (code)'); + $this->assertSame('T_MATCH_DEFAULT', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_DEFAULT (type)'); + + }//end testMatchDefault() + + + /** + * Data provider. + * + * @see testMatchDefault() + * + * @return array> + */ + public static function dataMatchDefault() + { + return [ + 'simple_match_default' => [ + 'testMarker' => '/* testSimpleMatchDefault */', + ], + 'match_default_in_switch_case_1' => [ + 'testMarker' => '/* testMatchDefaultNestedInSwitchCase1 */', + ], + 'match_default_in_switch_case_2' => [ + 'testMarker' => '/* testMatchDefaultNestedInSwitchCase2 */', + ], + 'match_default_in_switch_default' => [ + 'testMarker' => '/* testMatchDefaultNestedInSwitchDefault */', + ], + 'match_default_containing_switch' => [ + 'testMarker' => '/* testMatchDefault */', + ], + + 'match_default_with_nested_long_array_and_default_key' => [ + 'testMarker' => '/* testMatchDefaultWithNestedLongArrayWithClassConstantKey */', + 'testContent' => 'DEFAULT', + ], + 'match_default_with_nested_long_array_and_default_key_2' => [ + 'testMarker' => '/* testMatchDefaultWithNestedLongArrayWithClassConstantKeyLevelDown */', + 'testContent' => 'DEFAULT', + ], + 'match_default_with_nested_short_array_and_default_key' => [ + 'testMarker' => '/* testMatchDefaultWithNestedShortArrayWithClassConstantKey */', + 'testContent' => 'DEFAULT', + ], + 'match_default_with_nested_short_array_and_default_key_2' => [ + 'testMarker' => '/* testMatchDefaultWithNestedShortArrayWithClassConstantKeyLevelDown */', + 'testContent' => 'DEFAULT', + ], + 'match_default_in_long_array' => [ + 'testMarker' => '/* testMatchDefaultNestedInLongArray */', + 'testContent' => 'DEFAULT', + ], + 'match_default_in_short_array' => [ + 'testMarker' => '/* testMatchDefaultNestedInShortArray */', + 'testContent' => 'DEFAULT', + ], + ]; + + }//end dataMatchDefault() + + + /** + * Verify that the retokenization of `T_DEFAULT` tokens in match constructs, doesn't negatively + * impact the tokenization of `T_DEFAULT` tokens in switch control structures. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataSwitchDefault + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testSwitchDefault($testMarker, $testContent='default') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_DEFAULT (code)'); + $this->assertSame('T_DEFAULT', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_DEFAULT (type)'); + + }//end testSwitchDefault() + + + /** + * Data provider. + * + * @see testSwitchDefault() + * + * @return array> + */ + public static function dataSwitchDefault() + { + return [ + 'simple_switch_default' => [ + 'testMarker' => '/* testSimpleSwitchDefault */', + ], + 'simple_switch_default_with_curlies' => [ + 'testMarker' => '/* testSimpleSwitchDefaultWithCurlies */', + ], + 'switch_default_toplevel' => [ + 'testMarker' => '/* testSwitchDefault */', + ], + 'switch_default_nested_in_match_case' => [ + 'testMarker' => '/* testSwitchDefaultNestedInMatchCase */', + ], + 'switch_default_nested_in_match_default' => [ + 'testMarker' => '/* testSwitchDefaultNestedInMatchDefault */', + ], + ]; + + }//end dataSwitchDefault() + + + /** + * Verify that the retokenization of `T_DEFAULT` tokens in match constructs, doesn't negatively + * impact the tokenization of `T_STRING` tokens with the contents 'default' which aren't in + * actual fact the default keyword. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotDefaultKeyword + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testNotDefaultKeyword($testMarker, $testContent='DEFAULT') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testNotDefaultKeyword() + + + /** + * Data provider. + * + * @see testNotDefaultKeyword() + * + * @return array> + */ + public static function dataNotDefaultKeyword() + { + return [ + 'class-constant-as-short-array-key' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKey */', + ], + 'class-property-as-short-array-key' => [ + 'testMarker' => '/* testClassPropertyAsShortArrayKey */', + ], + 'namespaced-constant-as-short-array-key' => [ + 'testMarker' => '/* testNamespacedConstantAsShortArrayKey */', + ], + 'fqn-global-constant-as-short-array-key' => [ + 'testMarker' => '/* testFQNGlobalConstantAsShortArrayKey */', + ], + 'class-constant-as-long-array-key' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKey */', + ], + 'class-constant-as-yield-key' => [ + 'testMarker' => '/* testClassConstantAsYieldKey */', + ], + + 'class-constant-as-long-array-key-nested-in-match' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKeyNestedInMatch */', + ], + 'class-constant-as-long-array-key-nested-in-match-2' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKeyNestedInMatchLevelDown */', + ], + 'class-constant-as-short-array-key-nested-in-match' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKeyNestedInMatch */', + ], + 'class-constant-as-short-array-key-nested-in-match-2' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKeyNestedInMatchLevelDown */', + ], + 'class-constant-as-long-array-key-with-nested-match' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKeyWithNestedMatch */', + ], + 'class-constant-as-short-array-key-with-nested-match' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKeyWithNestedMatch */', + ], + + 'class-constant-in-switch-case' => [ + 'testMarker' => '/* testClassConstantInSwitchCase */', + ], + 'class-property-in-switch-case' => [ + 'testMarker' => '/* testClassPropertyInSwitchCase */', + ], + 'namespaced-constant-in-switch-case' => [ + 'testMarker' => '/* testNamespacedConstantInSwitchCase */', + ], + 'namespace-relative-constant-in-switch-case' => [ + 'testMarker' => '/* testNamespaceRelativeConstantInSwitchCase */', + ], + + 'class-constant-declaration' => [ + 'testMarker' => '/* testClassConstant */', + ], + 'class-method-declaration' => [ + 'testMarker' => '/* testMethodDeclaration */', + 'testContent' => 'default', + ], + ]; + + }//end dataNotDefaultKeyword() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DoubleArrowTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleArrowTest.inc similarity index 99% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DoubleArrowTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleArrowTest.inc index 3ca102573..b67b06601 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/DoubleArrowTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleArrowTest.inc @@ -185,7 +185,7 @@ function matchShortArrayMismash() { } => match ($test) { /* testMatchArrowInComplexShortArrayValue1 */ 1 => [ /* testShortArrayArrowInComplexMatchValueinShortArrayValue */ 1 => 'a'], - /* testMatchArrowInComplexShortArrayValue1 */ + /* testMatchArrowInComplexShortArrayValue2 */ 2 => /* testFnArrowInComplexMatchValueInShortArrayValue */ fn($y) => callMe($y) }, ]; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleArrowTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleArrowTest.php new file mode 100644 index 000000000..2d050d251 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleArrowTest.php @@ -0,0 +1,237 @@ + + * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class DoubleArrowTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that "normal" double arrows are correctly tokenized as `T_DOUBLE_ARROW`. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataDoubleArrow + * @coversNothing + * + * @return void + */ + public function testDoubleArrow($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_DOUBLE_ARROW, T_MATCH_ARROW, T_FN_ARROW]); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_DOUBLE_ARROW, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_DOUBLE_ARROW (code)'); + $this->assertSame('T_DOUBLE_ARROW', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_DOUBLE_ARROW (type)'); + + }//end testDoubleArrow() + + + /** + * Data provider. + * + * @see testDoubleArrow() + * + * @return array> + */ + public static function dataDoubleArrow() + { + return [ + 'simple_long_array' => ['/* testLongArrayArrowSimple */'], + 'simple_short_array' => ['/* testShortArrayArrowSimple */'], + 'simple_long_list' => ['/* testLongListArrowSimple */'], + 'simple_short_list' => ['/* testShortListArrowSimple */'], + 'simple_yield' => ['/* testYieldArrowSimple */'], + 'simple_foreach' => ['/* testForeachArrowSimple */'], + + 'long_array_with_match_value_1' => ['/* testLongArrayArrowWithNestedMatchValue1 */'], + 'long_array_with_match_value_2' => ['/* testLongArrayArrowWithNestedMatchValue2 */'], + 'short_array_with_match_value_1' => ['/* testShortArrayArrowWithNestedMatchValue1 */'], + 'short_array_with_match_value_2' => ['/* testShortArrayArrowWithNestedMatchValue2 */'], + + 'long_array_with_match_key' => ['/* testLongArrayArrowWithMatchKey */'], + 'short_array_with_match_key' => ['/* testShortArrayArrowWithMatchKey */'], + + 'long_array_in_match_body_1' => ['/* testLongArrayArrowInMatchBody1 */'], + 'long_array_in_match_body_2' => ['/* testLongArrayArrowInMatchBody2 */'], + 'long_array_in_match_body_3' => ['/* testLongArrayArrowInMatchBody3 */'], + 'short_array_in_match_body_1' => ['/* testShortArrayArrowInMatchBody1 */'], + 'short_array_in_match_body_2' => ['/* testShortArrayArrowInMatchBody2 */'], + 'short_array_in_match_body_3' => ['/* testShortArrayArrowInMatchBody3 */'], + + 'short_array_in_match_case_1' => ['/* testShortArrayArrowinMatchCase1 */'], + 'short_array_in_match_case_2' => ['/* testShortArrayArrowinMatchCase2 */'], + 'short_array_in_match_case_3' => ['/* testShortArrayArrowinMatchCase3 */'], + 'long_array_in_match_case_4' => ['/* testLongArrayArrowinMatchCase4 */'], + + 'in_complex_short_array_key_match_value' => ['/* testShortArrayArrowInComplexMatchValueinShortArrayKey */'], + 'in_complex_short_array_toplevel' => ['/* testShortArrayArrowInComplexMatchArrayMismash */'], + 'in_complex_short_array_value_match_value' => ['/* testShortArrayArrowInComplexMatchValueinShortArrayValue */'], + + 'long_list_in_match_body' => ['/* testLongListArrowInMatchBody */'], + 'long_list_in_match_case' => ['/* testLongListArrowInMatchCase */'], + 'short_list_in_match_body' => ['/* testShortListArrowInMatchBody */'], + 'short_list_in_match_case' => ['/* testShortListArrowInMatchCase */'], + 'long_list_with_match_in_key' => ['/* testLongListArrowWithMatchInKey */'], + 'short_list_with_match_in_key' => ['/* testShortListArrowWithMatchInKey */'], + + 'long_array_with_constant_default_in_key' => ['/* testLongArrayArrowWithClassConstantKey */'], + 'short_array_with_constant_default_in_key' => ['/* testShortArrayArrowWithClassConstantKey */'], + 'yield_with_constant_default_in_key' => ['/* testYieldArrowWithClassConstantKey */'], + + 'long_array_with_default_in_key_in_match' => ['/* testLongArrayArrowWithClassConstantKeyNestedInMatch */'], + 'short_array_with_default_in_key_in_match' => ['/* testShortArrayArrowWithClassConstantKeyNestedInMatch */'], + 'long_array_with_default_in_key_with_match' => ['/* testLongArrayArrowWithClassConstantKeyWithNestedMatch */'], + 'short_array_with_default_in_key_with_match' => ['/* testShortArrayArrowWithClassConstantKeyWithNestedMatch */'], + ]; + + }//end dataDoubleArrow() + + + /** + * Test that double arrows in match expressions which are the demarkation between a case and the return value + * are correctly tokenized as `T_MATCH_ARROW`. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataMatchArrow + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testMatchArrow($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_DOUBLE_ARROW, T_MATCH_ARROW, T_FN_ARROW]); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_MATCH_ARROW, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_ARROW (code)'); + $this->assertSame('T_MATCH_ARROW', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_ARROW (type)'); + + }//end testMatchArrow() + + + /** + * Data provider. + * + * @see testMatchArrow() + * + * @return array> + */ + public static function dataMatchArrow() + { + return [ + 'single_case' => ['/* testMatchArrowSimpleSingleCase */'], + 'multi_case' => ['/* testMatchArrowSimpleMultiCase */'], + 'single_case_with_trailing_comma' => ['/* testMatchArrowSimpleSingleCaseWithTrailingComma */'], + 'multi_case_with_trailing_comma' => ['/* testMatchArrowSimpleMultiCaseWithTrailingComma */'], + 'match_nested_outer' => ['/* testMatchArrowNestedMatchOuter */'], + 'match_nested_inner' => ['/* testMatchArrowNestedMatchInner */'], + + 'in_long_array_value_1' => ['/* testMatchArrowInLongArrayValue1 */'], + 'in_long_array_value_2' => ['/* testMatchArrowInLongArrayValue2 */'], + 'in_long_array_value_3' => ['/* testMatchArrowInLongArrayValue3 */'], + 'in_short_array_value_1' => ['/* testMatchArrowInShortArrayValue1 */'], + 'in_short_array_value_2' => ['/* testMatchArrowInShortArrayValue2 */'], + 'in_short_array_value_3' => ['/* testMatchArrowInShortArrayValue3 */'], + + 'in_long_array_key_1' => ['/* testMatchArrowInLongArrayKey1 */'], + 'in_long_array_key_2' => ['/* testMatchArrowInLongArrayKey2 */'], + 'in_short_array_key_1' => ['/* testMatchArrowInShortArrayKey1 */'], + 'in_short_array_key_2' => ['/* testMatchArrowInShortArrayKey2 */'], + + 'with_long_array_value_with_keys' => ['/* testMatchArrowWithLongArrayBodyWithKeys */'], + 'with_short_array_value_without_keys' => ['/* testMatchArrowWithShortArrayBodyWithoutKeys */'], + 'with_long_array_value_without_keys' => ['/* testMatchArrowWithLongArrayBodyWithoutKeys */'], + 'with_short_array_value_with_keys' => ['/* testMatchArrowWithShortArrayBodyWithKeys */'], + + 'with_short_array_with_keys_as_case' => ['/* testMatchArrowWithShortArrayWithKeysAsCase */'], + 'with_multiple_arrays_with_keys_as_case' => ['/* testMatchArrowWithMultipleArraysWithKeysAsCase */'], + + 'in_fn_body_case' => ['/* testMatchArrowInFnBody1 */'], + 'in_fn_body_default' => ['/* testMatchArrowInFnBody2 */'], + 'with_fn_body_case' => ['/* testMatchArrowWithFnBody1 */'], + 'with_fn_body_default' => ['/* testMatchArrowWithFnBody2 */'], + + 'in_complex_short_array_key_1' => ['/* testMatchArrowInComplexShortArrayKey1 */'], + 'in_complex_short_array_key_2' => ['/* testMatchArrowInComplexShortArrayKey2 */'], + 'in_complex_short_array_value_1' => ['/* testMatchArrowInComplexShortArrayValue1 */'], + 'in_complex_short_array_value_2' => ['/* testMatchArrowInComplexShortArrayValue2 */'], + + 'with_long_list_in_body' => ['/* testMatchArrowWithLongListBody */'], + 'with_long_list_in_case' => ['/* testMatchArrowWithLongListInCase */'], + 'with_short_list_in_body' => ['/* testMatchArrowWithShortListBody */'], + 'with_short_list_in_case' => ['/* testMatchArrowWithShortListInCase */'], + 'in_long_list_key' => ['/* testMatchArrowInLongListKey */'], + 'in_short_list_key' => ['/* testMatchArrowInShortListKey */'], + + 'with_long_array_value_with_default_key' => ['/* testMatchArrowWithNestedLongArrayWithClassConstantKey */'], + 'with_short_array_value_with_default_key' => ['/* testMatchArrowWithNestedShortArrayWithClassConstantKey */'], + 'in_long_array_value_with_default_key' => ['/* testMatchArrowNestedInLongArrayWithClassConstantKey */'], + 'in_short_array_value_with_default_key' => ['/* testMatchArrowNestedInShortArrayWithClassConstantKey */'], + ]; + + }//end dataMatchArrow() + + + /** + * Test that double arrows used as the scope opener for an arrow function + * are correctly tokenized as `T_FN_ARROW`. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataFnArrow + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testFnArrow($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_DOUBLE_ARROW, T_MATCH_ARROW, T_FN_ARROW]); + $tokenArray = $tokens[$token]; + + $this->assertSame(T_FN_ARROW, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_FN_ARROW (code)'); + $this->assertSame('T_FN_ARROW', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_FN_ARROW (type)'); + + }//end testFnArrow() + + + /** + * Data provider. + * + * @see testFnArrow() + * + * @return array> + */ + public static function dataFnArrow() + { + return [ + 'simple_fn' => ['/* testFnArrowSimple */'], + + 'with_match_as_value' => ['/* testFnArrowWithMatchInValue */'], + 'in_match_value_case' => ['/* testFnArrowInMatchBody1 */'], + 'in_match_value_default' => ['/* testFnArrowInMatchBody2 */'], + + 'in_complex_match_value_in_short_array' => ['/* testFnArrowInComplexMatchValueInShortArrayValue */'], + ]; + + }//end dataFnArrow() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleQuotedStringTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleQuotedStringTest.inc new file mode 100644 index 000000000..62535b1e4 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleQuotedStringTest.inc @@ -0,0 +1,52 @@ +bar"; +/* testProperty2 */ +"{$foo->bar}"; + +/* testMethod1 */ +"{$foo->bar()}"; + +/* testClosure1 */ +"{$foo()}"; + +/* testChain1 */ +"{$foo['bar']->baz()()}"; + +/* testVariableVar1 */ +"${$bar}"; +/* testVariableVar2 */ +"${(foo)}"; +/* testVariableVar3 */ +"${foo->bar}"; + +/* testNested1 */ +"${foo["${bar}"]}"; +/* testNested2 */ +"${foo["${bar['baz']}"]}"; +/* testNested3 */ +"${foo->{$baz}}"; +/* testNested4 */ +"${foo->{${'a'}}}"; +/* testNested5 */ +"${foo->{"${'a'}"}}"; + +/* testParseError */ +"${foo["${bar diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleQuotedStringTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleQuotedStringTest.php new file mode 100644 index 000000000..6fb3643f9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/DoubleQuotedStringTest.php @@ -0,0 +1,144 @@ + + * @copyright 2022 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class DoubleQuotedStringTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that double quoted strings contain the complete string. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expectedContent The expected content of the double quoted string. + * + * @dataProvider dataDoubleQuotedString + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testDoubleQuotedString($testMarker, $expectedContent) + { + $tokens = $this->phpcsFile->getTokens(); + + $target = $this->getTargetToken($testMarker, T_DOUBLE_QUOTED_STRING); + $this->assertSame($expectedContent, $tokens[$target]['content']); + + }//end testDoubleQuotedString() + + + /** + * Data provider. + * + * Type reference: + * 1. Directly embedded variables. + * 2. Braces outside the variable. + * 3. Braces after the dollar sign. + * 4. Variable variables and expressions. + * + * @link https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation + * + * @see testDoubleQuotedString() + * + * @return array> + */ + public static function dataDoubleQuotedString() + { + return [ + 'Type 1: simple variable' => [ + 'testMarker' => '/* testSimple1 */', + 'expectedContent' => '"$foo"', + ], + 'Type 2: simple variable' => [ + 'testMarker' => '/* testSimple2 */', + 'expectedContent' => '"{$foo}"', + ], + 'Type 3: simple variable' => [ + 'testMarker' => '/* testSimple3 */', + 'expectedContent' => '"${foo}"', + ], + 'Type 1: array offset' => [ + 'testMarker' => '/* testDIM1 */', + 'expectedContent' => '"$foo[bar]"', + ], + 'Type 2: array offset' => [ + 'testMarker' => '/* testDIM2 */', + 'expectedContent' => '"{$foo[\'bar\']}"', + ], + 'Type 3: array offset' => [ + 'testMarker' => '/* testDIM3 */', + 'expectedContent' => '"${foo[\'bar\']}"', + ], + 'Type 1: object property' => [ + 'testMarker' => '/* testProperty1 */', + 'expectedContent' => '"$foo->bar"', + ], + 'Type 2: object property' => [ + 'testMarker' => '/* testProperty2 */', + 'expectedContent' => '"{$foo->bar}"', + ], + 'Type 2: object method call' => [ + 'testMarker' => '/* testMethod1 */', + 'expectedContent' => '"{$foo->bar()}"', + ], + 'Type 2: closure function call' => [ + 'testMarker' => '/* testClosure1 */', + 'expectedContent' => '"{$foo()}"', + ], + 'Type 2: chaining various syntaxes' => [ + 'testMarker' => '/* testChain1 */', + 'expectedContent' => '"{$foo[\'bar\']->baz()()}"', + ], + 'Type 4: variable variables' => [ + 'testMarker' => '/* testVariableVar1 */', + 'expectedContent' => '"${$bar}"', + ], + 'Type 4: variable constants' => [ + 'testMarker' => '/* testVariableVar2 */', + 'expectedContent' => '"${(foo)}"', + ], + 'Type 4: object property' => [ + 'testMarker' => '/* testVariableVar3 */', + 'expectedContent' => '"${foo->bar}"', + ], + 'Type 4: variable variable nested in array offset' => [ + 'testMarker' => '/* testNested1 */', + 'expectedContent' => '"${foo["${bar}"]}"', + ], + 'Type 4: variable array offset nested in array offset' => [ + 'testMarker' => '/* testNested2 */', + 'expectedContent' => '"${foo["${bar[\'baz\']}"]}"', + ], + 'Type 4: variable object property' => [ + 'testMarker' => '/* testNested3 */', + 'expectedContent' => '"${foo->{$baz}}"', + ], + 'Type 4: variable object property - complex with single quotes' => [ + 'testMarker' => '/* testNested4 */', + 'expectedContent' => '"${foo->{${\'a\'}}}"', + ], + 'Type 4: variable object property - complex with single and double quotes' => [ + 'testMarker' => '/* testNested5 */', + 'expectedContent' => '"${foo->{"${\'a\'}"}}"', + ], + 'Type 4: live coding/parse error' => [ + 'testMarker' => '/* testParseError */', + 'expectedContent' => '"${foo["${bar +', + ], + ]; + + }//end dataDoubleQuotedString() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/EnumCaseTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/EnumCaseTest.inc new file mode 100644 index 000000000..13b87242e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/EnumCaseTest.inc @@ -0,0 +1,95 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class EnumCaseTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the enum "case" is converted to T_ENUM_CASE. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataEnumCases + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testEnumCases($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $enumCase = $this->getTargetToken($testMarker, [T_ENUM_CASE, T_CASE]); + $tokenArray = $tokens[$enumCase]; + + $this->assertSame(T_ENUM_CASE, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_ENUM_CASE (code)'); + $this->assertSame('T_ENUM_CASE', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_ENUM_CASE (type)'); + + }//end testEnumCases() + + + /** + * Data provider. + * + * @see testEnumCases() + * + * @return array> + */ + public static function dataEnumCases() + { + return [ + 'enum case, no value' => ['/* testPureEnumCase */'], + 'enum case, integer value' => ['/* testBackingIntegerEnumCase */'], + 'enum case, string value' => ['/* testBackingStringEnumCase */'], + 'enum case, integer value in more complex enum' => ['/* testEnumCaseInComplexEnum */'], + 'enum case, keyword in mixed case' => ['/* testEnumCaseIsCaseInsensitive */'], + 'enum case, after switch statement' => ['/* testEnumCaseAfterSwitch */'], + 'enum case, after switch statement using alternative syntax' => ['/* testEnumCaseAfterSwitchWithEndSwitch */'], + ]; + + }//end dataEnumCases() + + + /** + * Test that "case" that is not enum case is still tokenized as `T_CASE`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataNotEnumCases + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNotEnumCases($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $case = $this->getTargetToken($testMarker, [T_ENUM_CASE, T_CASE]); + $tokenArray = $tokens[$case]; + + $this->assertSame(T_CASE, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_CASE (code)'); + $this->assertSame('T_CASE', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_CASE (type)'); + + }//end testNotEnumCases() + + + /** + * Data provider. + * + * @see testNotEnumCases() + * + * @return array> + */ + public static function dataNotEnumCases() + { + return [ + 'switch case with constant, semicolon condition end' => ['/* testCaseWithSemicolonIsNotEnumCase */'], + 'switch case with constant, colon condition end' => ['/* testCaseWithConstantIsNotEnumCase */'], + 'switch case with constant, comparison' => ['/* testCaseWithConstantAndIdenticalIsNotEnumCase */'], + 'switch case with constant, assignment' => ['/* testCaseWithAssigmentToConstantIsNotEnumCase */'], + 'switch case with constant, keyword in mixed case' => ['/* testIsNotEnumCaseIsCaseInsensitive */'], + 'switch case, body in curlies declares enum' => ['/* testCaseInSwitchWhenCreatingEnumInSwitch1 */'], + 'switch case, body after semicolon declares enum' => ['/* testCaseInSwitchWhenCreatingEnumInSwitch2 */'], + ]; + + }//end dataNotEnumCases() + + + /** + * Test that "case" that is not enum case is still tokenized as `T_CASE`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataKeywordAsEnumCaseNameShouldBeString + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testKeywordAsEnumCaseNameShouldBeString($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $enumCaseName = $this->getTargetToken($testMarker, [T_STRING, T_INTERFACE, T_TRAIT, T_ENUM, T_FUNCTION, T_FALSE, T_DEFAULT, T_ARRAY]); + $tokenArray = $tokens[$enumCaseName]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testKeywordAsEnumCaseNameShouldBeString() + + + /** + * Data provider. + * + * @see testKeywordAsEnumCaseNameShouldBeString() + * + * @return array> + */ + public static function dataKeywordAsEnumCaseNameShouldBeString() + { + return [ + '"interface" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString1 */'], + '"trait" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString2 */'], + '"enum" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString3 */'], + '"function" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString4 */'], + '"false" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString5 */'], + '"default" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString6 */'], + '"array" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString7 */'], + ]; + + }//end dataKeywordAsEnumCaseNameShouldBeString() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/FinallyTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/FinallyTest.inc new file mode 100644 index 000000000..e65600b6b --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/FinallyTest.inc @@ -0,0 +1,40 @@ +finally = 'foo'; + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/FinallyTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/FinallyTest.php new file mode 100644 index 000000000..d74c781ae --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/FinallyTest.php @@ -0,0 +1,98 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class FinallyTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the finally keyword is tokenized as such. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataFinallyKeyword + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testFinallyKeyword($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_FINALLY, T_STRING]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_FINALLY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_FINALLY (code)'); + $this->assertSame('T_FINALLY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_FINALLY (type)'); + + }//end testFinallyKeyword() + + + /** + * Data provider. + * + * @see testFinallyKeyword() + * + * @return array> + */ + public static function dataFinallyKeyword() + { + return [ + 'finally after try and catch' => ['/* testTryCatchFinally */'], + 'finally between try and catch' => ['/* testTryFinallyCatch */'], + 'finally after try, no catch' => ['/* testTryFinally */'], + ]; + + }//end dataFinallyKeyword() + + + /** + * Test that 'finally' when not used as the reserved keyword is tokenized as `T_STRING`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataFinallyNonKeyword + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testFinallyNonKeyword($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_FINALLY, T_STRING]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testFinallyNonKeyword() + + + /** + * Data provider. + * + * @see testFinallyNonKeyword() + * + * @return array> + */ + public static function dataFinallyNonKeyword() + { + return [ + 'finally used as class constant name' => ['/* testFinallyUsedAsClassConstantName */'], + 'finally used as method name' => ['/* testFinallyUsedAsMethodName */'], + 'finally used as property name' => ['/* testFinallyUsedAsPropertyName */'], + ]; + + }//end dataFinallyNonKeyword() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/GotoLabelTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/GotoLabelTest.inc similarity index 91% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/GotoLabelTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/GotoLabelTest.inc index f6920f54f..12df5d296 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/GotoLabelTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/GotoLabelTest.inc @@ -51,3 +51,6 @@ switch (true) { // Do something. break; } + +/* testNotGotoDeclarationEnumWithType */ +enum Suit: string implements Colorful, CardGame {} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/GotoLabelTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/GotoLabelTest.php new file mode 100644 index 000000000..8e6a5f5ce --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/GotoLabelTest.php @@ -0,0 +1,176 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class GotoLabelTest extends AbstractTokenizerTestCase +{ + + + /** + * Verify that the label in a goto statement is tokenized as T_STRING. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to expect. + * + * @dataProvider dataGotoStatement + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testGotoStatement($testMarker, $testContent) + { + $tokens = $this->phpcsFile->getTokens(); + + $label = $this->getTargetToken($testMarker, T_STRING); + + $this->assertTrue(is_int($label)); + $this->assertSame($testContent, $tokens[$label]['content']); + + }//end testGotoStatement() + + + /** + * Data provider. + * + * @see testGotoStatement() + * + * @return array> + */ + public static function dataGotoStatement() + { + return [ + 'label for goto statement' => [ + 'testMarker' => '/* testGotoStatement */', + 'testContent' => 'marker', + ], + 'label for goto statement in loop, keyword capitalized' => [ + 'testMarker' => '/* testGotoStatementInLoop */', + 'testContent' => 'end', + ], + ]; + + }//end dataGotoStatement() + + + /** + * Verify that the label in a goto declaration is tokenized as T_GOTO_LABEL. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to expect. + * + * @dataProvider dataGotoDeclaration + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testGotoDeclaration($testMarker, $testContent) + { + $tokens = $this->phpcsFile->getTokens(); + + $label = $this->getTargetToken($testMarker, T_GOTO_LABEL); + + $this->assertTrue(is_int($label)); + $this->assertSame($testContent, $tokens[$label]['content']); + + }//end testGotoDeclaration() + + + /** + * Data provider. + * + * @see testGotoDeclaration() + * + * @return array> + */ + public static function dataGotoDeclaration() + { + return [ + 'label in goto declaration - marker' => [ + 'testMarker' => '/* testGotoDeclaration */', + 'testContent' => 'marker:', + ], + 'label in goto declaration - end' => [ + 'testMarker' => '/* testGotoDeclarationOutsideLoop */', + 'testContent' => 'end:', + ], + ]; + + }//end dataGotoDeclaration() + + + /** + * Verify that the constant used in a switch - case statement is not confused with a goto label. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to expect. + * + * @dataProvider dataNotAGotoDeclaration + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNotAGotoDeclaration($testMarker, $testContent) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_GOTO_LABEL, T_STRING], $testContent); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testNotAGotoDeclaration() + + + /** + * Data provider. + * + * @see testNotAGotoDeclaration() + * + * @return array> + */ + public static function dataNotAGotoDeclaration() + { + return [ + 'not goto label - global constant followed by switch-case colon' => [ + 'testMarker' => '/* testNotGotoDeclarationGlobalConstant */', + 'testContent' => 'CONSTANT', + ], + 'not goto label - namespaced constant followed by switch-case colon' => [ + 'testMarker' => '/* testNotGotoDeclarationNamespacedConstant */', + 'testContent' => 'CONSTANT', + ], + 'not goto label - class constant followed by switch-case colon' => [ + 'testMarker' => '/* testNotGotoDeclarationClassConstant */', + 'testContent' => 'CONSTANT', + ], + 'not goto label - class property use followed by switch-case colon' => [ + 'testMarker' => '/* testNotGotoDeclarationClassProperty */', + 'testContent' => 'property', + ], + 'not goto label - global constant followed by ternary else' => [ + 'testMarker' => '/* testNotGotoDeclarationGlobalConstantInTernary */', + 'testContent' => 'CONST_A', + ], + 'not goto label - global constant after ternary else' => [ + 'testMarker' => '/* testNotGotoDeclarationGlobalConstantInTernary */', + 'testContent' => 'CONST_B', + ], + 'not goto label - name of backed enum' => [ + 'testMarker' => '/* testNotGotoDeclarationEnumWithType */', + 'testContent' => 'Suit', + ], + ]; + + }//end dataNotAGotoDeclaration() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocStringTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocStringTest.inc new file mode 100644 index 000000000..ae43e24a5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocStringTest.inc @@ -0,0 +1,193 @@ +bar +EOD; + +/* testProperty2 */ +$heredoc = <<<"EOD" +{$foo->bar} +EOD; + +/* testMethod1 */ +$heredoc = <<bar()} +EOD; + +/* testClosure1 */ +$heredoc = <<<"EOD" +{$foo()} +EOD; + +/* testChain1 */ +$heredoc = <<baz()()} +EOD; + +/* testVariableVar1 */ +$heredoc = <<<"EOD" +${$bar} +EOD; + +/* testVariableVar2 */ +$heredoc = <<bar} +EOD; + +/* testNested1 */ +$heredoc = <<{$baz}} +EOD; + +/* testNested4 */ +$heredoc = <<<"EOD" +${foo->{${'a'}}} +EOD; + +/* testNested5 */ +$heredoc = <<{"${'a'}"}} +EOD; + +/* testSimple1Wrapped */ +$heredoc = <<bar Something +EOD; + +/* testProperty2Wrapped */ +$heredoc = <<<"EOD" +Do {$foo->bar} Something +EOD; + +/* testMethod1Wrapped */ +$heredoc = <<bar()} Something +EOD; + +/* testClosure1Wrapped */ +$heredoc = <<<"EOD" +Do {$foo()} Something +EOD; + +/* testChain1Wrapped */ +$heredoc = <<baz()()} Something +EOD; + +/* testVariableVar1Wrapped */ +$heredoc = <<<"EOD" +Do ${$bar} Something +EOD; + +/* testVariableVar2Wrapped */ +$heredoc = <<bar} Something +EOD; + +/* testNested1Wrapped */ +$heredoc = <<{$baz}} Something +EOD; + +/* testNested4Wrapped */ +$heredoc = <<<"EOD" +Do ${foo->{${'a'}}} Something +EOD; + +/* testNested5Wrapped */ +$heredoc = <<{"${'a'}"}} Something +EOD; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocStringTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocStringTest.php new file mode 100644 index 000000000..75f64d479 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/HeredocStringTest.php @@ -0,0 +1,161 @@ + + * @copyright 2022 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class HeredocStringTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that heredoc strings contain the complete interpolated string. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expectedContent The expected content of the heredoc string. + * + * @dataProvider dataHeredocString + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testHeredocString($testMarker, $expectedContent) + { + $tokens = $this->phpcsFile->getTokens(); + + $target = $this->getTargetToken($testMarker, T_HEREDOC); + $this->assertSame($expectedContent."\n", $tokens[$target]['content']); + + }//end testHeredocString() + + + /** + * Test that heredoc strings contain the complete interpolated string when combined with other texts. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expectedContent The expected content of the heredoc string. + * + * @dataProvider dataHeredocString + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testHeredocStringWrapped($testMarker, $expectedContent) + { + $tokens = $this->phpcsFile->getTokens(); + + $testMarker = substr($testMarker, 0, -3).'Wrapped */'; + $target = $this->getTargetToken($testMarker, T_HEREDOC); + $this->assertSame('Do '.$expectedContent." Something\n", $tokens[$target]['content']); + + }//end testHeredocStringWrapped() + + + /** + * Data provider. + * + * Type reference: + * 1. Directly embedded variables. + * 2. Braces outside the variable. + * 3. Braces after the dollar sign. + * 4. Variable variables and expressions. + * + * @link https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation + * + * @see testHeredocString() + * + * @return array> + */ + public static function dataHeredocString() + { + return [ + 'Type 1: simple variable' => [ + 'testMarker' => '/* testSimple1 */', + 'expectedContent' => '$foo', + ], + 'Type 2: simple variable' => [ + 'testMarker' => '/* testSimple2 */', + 'expectedContent' => '{$foo}', + ], + 'Type 3: simple variable' => [ + 'testMarker' => '/* testSimple3 */', + 'expectedContent' => '${foo}', + ], + 'Type 1: array offset' => [ + 'testMarker' => '/* testDIM1 */', + 'expectedContent' => '$foo[bar]', + ], + 'Type 2: array offset' => [ + 'testMarker' => '/* testDIM2 */', + 'expectedContent' => '{$foo[\'bar\']}', + ], + 'Type 3: array offset' => [ + 'testMarker' => '/* testDIM3 */', + 'expectedContent' => '${foo[\'bar\']}', + ], + 'Type 1: object property' => [ + 'testMarker' => '/* testProperty1 */', + 'expectedContent' => '$foo->bar', + ], + 'Type 2: object property' => [ + 'testMarker' => '/* testProperty2 */', + 'expectedContent' => '{$foo->bar}', + ], + 'Type 2: object method call' => [ + 'testMarker' => '/* testMethod1 */', + 'expectedContent' => '{$foo->bar()}', + ], + 'Type 2: closure function call' => [ + 'testMarker' => '/* testClosure1 */', + 'expectedContent' => '{$foo()}', + ], + 'Type 2: chaining various syntaxes' => [ + 'testMarker' => '/* testChain1 */', + 'expectedContent' => '{$foo[\'bar\']->baz()()}', + ], + 'Type 4: variable variables' => [ + 'testMarker' => '/* testVariableVar1 */', + 'expectedContent' => '${$bar}', + ], + 'Type 4: variable constants' => [ + 'testMarker' => '/* testVariableVar2 */', + 'expectedContent' => '${(foo)}', + ], + 'Type 4: object property' => [ + 'testMarker' => '/* testVariableVar3 */', + 'expectedContent' => '${foo->bar}', + ], + 'Type 4: variable variable nested in array offset' => [ + 'testMarker' => '/* testNested1 */', + 'expectedContent' => '${foo["${bar}"]}', + ], + 'Type 4: variable array offset nested in array offset' => [ + 'testMarker' => '/* testNested2 */', + 'expectedContent' => '${foo["${bar[\'baz\']}"]}', + ], + 'Type 4: variable object property' => [ + 'testMarker' => '/* testNested3 */', + 'expectedContent' => '${foo->{$baz}}', + ], + 'Type 4: variable object property - complex with single quotes' => [ + 'testMarker' => '/* testNested4 */', + 'expectedContent' => '${foo->{${\'a\'}}}', + ], + 'Type 4: variable object property - complex with single and double quotes' => [ + 'testMarker' => '/* testNested5 */', + 'expectedContent' => '${foo->{"${\'a\'}"}}', + ], + ]; + + }//end dataHeredocString() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NamedFunctionCallArgumentsTest.inc similarity index 97% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NamedFunctionCallArgumentsTest.inc index d05d27d95..2f1d20bf0 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NamedFunctionCallArgumentsTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NamedFunctionCallArgumentsTest.inc @@ -32,13 +32,13 @@ array_fill( value: 50 ); -/* testNamespaceOperatorFunction */ +/* testNamespaceRelativeFunction */ namespace\function_name(label:$string, more: false); -/* testNamespaceRelativeFunction */ +/* testPartiallyQualifiedFunction */ Partially\Qualified\function_name(label:$string, more: false); -/* testNamespacedFQNFunction */ +/* testFullyQualifiedFunction */ \Fully\Qualified\function_name(label: $string, more:false); /* testVariableFunction */ @@ -208,6 +208,9 @@ foobar(elseif: $value, /* testReservedKeywordElseif2 */ elseif: $value); /* testReservedKeywordEmpty1 */ foobar(empty: $value, /* testReservedKeywordEmpty2 */ empty: $value); +/* testReservedKeywordEnum1 */ +foobar(enum: $value, /* testReservedKeywordEnum2 */ enum: $value); + /* testReservedKeywordEnddeclare1 */ foobar(enddeclare: $value, /* testReservedKeywordEnddeclare2 */ enddeclare: $value); @@ -310,6 +313,9 @@ foobar(protected: $value, /* testReservedKeywordProtected2 */ protected: $value) /* testReservedKeywordPublic1 */ foobar(public: $value, /* testReservedKeywordPublic2 */ public: $value); +/* testReservedKeywordReadonly1 */ +foobar(readonly: $value, /* testReservedKeywordReadonly2 */ readonly: $value); + /* testReservedKeywordRequire1 */ foobar(require: $value, /* testReservedKeywordRequire2 */ require: $value); @@ -396,3 +402,6 @@ foobar(parent: $value, /* testReservedKeywordParent2 */ parent: $value); /* testReservedKeywordSelf1 */ foobar(self: $value, /* testReservedKeywordSelf2 */ self: $value); + +/* testReservedKeywordNever1 */ +foobar(never: $value, /* testReservedKeywordNever2 */ never: $value); diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NamedFunctionCallArgumentsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NamedFunctionCallArgumentsTest.php new file mode 100644 index 000000000..14d0c6da5 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NamedFunctionCallArgumentsTest.php @@ -0,0 +1,974 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class NamedFunctionCallArgumentsTest extends AbstractTokenizerTestCase +{ + + + /** + * Verify that parameter labels are tokenized as T_PARAM_NAME and that + * the colon after it is tokenized as a T_COLON. + * + * @param string $testMarker The comment prefacing the target token. + * @param array $parameters The token content for each parameter label to look for. + * + * @dataProvider dataNamedFunctionCallArguments + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNamedFunctionCallArguments($testMarker, $parameters) + { + $tokens = $this->phpcsFile->getTokens(); + + foreach ($parameters as $content) { + $label = $this->getTargetToken($testMarker, [T_STRING, T_PARAM_NAME], $content); + + $this->assertSame( + T_PARAM_NAME, + $tokens[$label]['code'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_PARAM_NAME (code)' + ); + $this->assertSame( + 'T_PARAM_NAME', + $tokens[$label]['type'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_PARAM_NAME (type)' + ); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + }//end foreach + + }//end testNamedFunctionCallArguments() + + + /** + * Data provider. + * + * @see testNamedFunctionCallArguments() + * + * @return array>> + */ + public static function dataNamedFunctionCallArguments() + { + return [ + 'function call, single line, all named args' => [ + 'testMarker' => '/* testNamedArgs */', + 'parameters' => [ + 'start_index', + 'count', + 'value', + ], + ], + 'function call, multi-line, all named args' => [ + 'testMarker' => '/* testNamedArgsMultiline */', + 'parameters' => [ + 'start_index', + 'count', + 'value', + ], + ], + 'function call, single line, all named args; comments and whitespace' => [ + 'testMarker' => '/* testNamedArgsWithWhitespaceAndComments */', + 'parameters' => [ + 'start_index', + 'count', + 'value', + ], + ], + 'function call, single line, mixed positional and named args' => [ + 'testMarker' => '/* testMixedPositionalAndNamedArgs */', + 'parameters' => [ + 'double_encode', + ], + ], + 'function call containing nested function call values' => [ + 'testMarker' => '/* testNestedFunctionCallOuter */', + 'parameters' => [ + 'start_index', + 'count', + 'value', + ], + ], + 'function call nested in named arg [1]' => [ + 'testMarker' => '/* testNestedFunctionCallInner1 */', + 'parameters' => [ + 'skip', + ], + ], + 'function call nested in named arg [2]' => [ + 'testMarker' => '/* testNestedFunctionCallInner2 */', + 'parameters' => [ + 'array_or_countable', + ], + ], + 'namespace relative function call' => [ + 'testMarker' => '/* testNamespaceRelativeFunction */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'partially qualified function call' => [ + 'testMarker' => '/* testPartiallyQualifiedFunction */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'fully qualified function call' => [ + 'testMarker' => '/* testFullyQualifiedFunction */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'variable function call' => [ + 'testMarker' => '/* testVariableFunction */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'variable variable function call' => [ + 'testMarker' => '/* testVariableVariableFunction */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'method call' => [ + 'testMarker' => '/* testMethodCall */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'variable method call' => [ + 'testMarker' => '/* testVariableMethodCall */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'class instantiation' => [ + 'testMarker' => '/* testClassInstantiation */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'class instantiation with "self"' => [ + 'testMarker' => '/* testClassInstantiationSelf */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'class instantiation with "static"' => [ + 'testMarker' => '/* testClassInstantiationStatic */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'anonymous class instantiation' => [ + 'testMarker' => '/* testAnonClass */', + 'parameters' => [ + 'label', + 'more', + ], + ], + 'function call with non-ascii characters in the variable name labels' => [ + 'testMarker' => '/* testNonAsciiNames */', + 'parameters' => [ + '💩💩💩', + 'Пасха', + '_valid', + ], + ], + + // Coding errors which should still be handled. + 'invalid: named arg before positional (compile error)' => [ + 'testMarker' => '/* testCompileErrorNamedBeforePositional */', + 'parameters' => [ + 'param', + ], + ], + 'invalid: duplicate parameter name [1]' => [ + 'testMarker' => '/* testDuplicateName1 */', + 'parameters' => [ + 'param', + ], + ], + 'invalid: duplicate parameter name [2]' => [ + 'testMarker' => '/* testDuplicateName2 */', + 'parameters' => [ + 'param', + ], + ], + 'invalid: named arg before variadic (error exception)' => [ + 'testMarker' => '/* testIncorrectOrderWithVariadic */', + 'parameters' => [ + 'start_index', + ], + ], + 'invalid: named arg after variadic (compile error)' => [ + 'testMarker' => '/* testCompileErrorIncorrectOrderWithVariadic */', + 'parameters' => [ + 'param', + ], + ], + 'invalid: named arg without value (parse error)' => [ + 'testMarker' => '/* testParseErrorNoValue */', + 'parameters' => [ + 'param1', + 'param2', + ], + ], + 'invalid: named arg in exit() (parse error)' => [ + 'testMarker' => '/* testParseErrorExit */', + 'parameters' => [ + 'status', + ], + ], + 'invalid: named arg in empty() (parse error)' => [ + 'testMarker' => '/* testParseErrorEmpty */', + 'parameters' => [ + 'variable', + ], + ], + 'invalid: named arg in eval() (parse error)' => [ + 'testMarker' => '/* testParseErrorEval */', + 'parameters' => [ + 'code', + ], + ], + 'invalid: named arg in arbitrary parentheses (parse error)' => [ + 'testMarker' => '/* testParseErrorArbitraryParentheses */', + 'parameters' => [ + 'something', + ], + ], + ]; + + }//end dataNamedFunctionCallArguments() + + + /** + * Verify that other T_STRING tokens within a function call are still tokenized as T_STRING. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $content The token content to look for. + * + * @dataProvider dataOtherTstringInFunctionCall + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testOtherTstringInFunctionCall($testMarker, $content) + { + $tokens = $this->phpcsFile->getTokens(); + + $label = $this->getTargetToken($testMarker, [T_STRING, T_PARAM_NAME], $content); + + $this->assertSame( + T_STRING, + $tokens[$label]['code'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_STRING (code)' + ); + $this->assertSame( + 'T_STRING', + $tokens[$label]['type'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_STRING (type)' + ); + + }//end testOtherTstringInFunctionCall() + + + /** + * Data provider. + * + * @see testOtherTstringInFunctionCall() + * + * @return array> + */ + public static function dataOtherTstringInFunctionCall() + { + return [ + 'not arg name - global constant' => [ + 'testMarker' => '/* testPositionalArgs */', + 'content' => 'START_INDEX', + ], + 'not arg name - fully qualified constant' => [ + 'testMarker' => '/* testPositionalArgs */', + 'content' => 'COUNT', + ], + 'not arg name - namespace relative constant' => [ + 'testMarker' => '/* testPositionalArgs */', + 'content' => 'VALUE', + ], + 'not arg name - unqualified function call' => [ + 'testMarker' => '/* testNestedFunctionCallInner2 */', + 'content' => 'count', + ], + ]; + + }//end dataOtherTstringInFunctionCall() + + + /** + * Verify whether the colons are tokenized correctly when a ternary is used in a mixed + * positional and named arguments function call. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testMixedPositionalAndNamedArgsWithTernary() + { + $tokens = $this->phpcsFile->getTokens(); + + $true = $this->getTargetToken('/* testMixedPositionalAndNamedArgsWithTernary */', T_TRUE); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($true + 1), null, true); + + $this->assertSame( + T_INLINE_ELSE, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' + ); + $this->assertSame( + 'T_INLINE_ELSE', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' + ); + + $label = $this->getTargetToken('/* testMixedPositionalAndNamedArgsWithTernary */', T_PARAM_NAME, 'name'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + }//end testMixedPositionalAndNamedArgsWithTernary() + + + /** + * Verify whether the colons are tokenized correctly when a ternary is used + * in a named arguments function call. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNamedArgWithTernary() + { + $tokens = $this->phpcsFile->getTokens(); + + /* + * First argument. + */ + + $label = $this->getTargetToken('/* testNamedArgWithTernary */', T_PARAM_NAME, 'label'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'First arg: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'First arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'First arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + $true = $this->getTargetToken('/* testNamedArgWithTernary */', T_TRUE); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($true + 1), null, true); + + $this->assertSame( + T_INLINE_ELSE, + $tokens[$colon]['code'], + 'First arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' + ); + $this->assertSame( + 'T_INLINE_ELSE', + $tokens[$colon]['type'], + 'First arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' + ); + + /* + * Second argument. + */ + + $label = $this->getTargetToken('/* testNamedArgWithTernary */', T_PARAM_NAME, 'more'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Second arg: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Second arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Second arg: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + $true = $this->getTargetToken('/* testNamedArgWithTernary */', T_STRING, 'CONSTANT_A'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($true + 1), null, true); + + $this->assertSame( + T_INLINE_ELSE, + $tokens[$colon]['code'], + 'Second arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' + ); + $this->assertSame( + 'T_INLINE_ELSE', + $tokens[$colon]['type'], + 'Second arg ternary: Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' + ); + + }//end testNamedArgWithTernary() + + + /** + * Verify whether the colons are tokenized correctly when named arguments + * function calls are used in a ternary. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testTernaryWithFunctionCallsInThenElse() + { + $tokens = $this->phpcsFile->getTokens(); + + /* + * Then. + */ + + $label = $this->getTargetToken('/* testTernaryWithFunctionCallsInThenElse */', T_PARAM_NAME, 'label'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Function in then: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Function in then: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Function in then: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + $closeParens = $this->getTargetToken('/* testTernaryWithFunctionCallsInThenElse */', T_CLOSE_PARENTHESIS); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($closeParens + 1), null, true); + + $this->assertSame( + T_INLINE_ELSE, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' + ); + $this->assertSame( + 'T_INLINE_ELSE', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' + ); + + /* + * Else. + */ + + $label = $this->getTargetToken('/* testTernaryWithFunctionCallsInThenElse */', T_PARAM_NAME, 'more'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Function in else: Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Function in else: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Function in else: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + }//end testTernaryWithFunctionCallsInThenElse() + + + /** + * Verify whether the colons are tokenized correctly when constants are used in a ternary. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testTernaryWithConstantsInThenElse() + { + $tokens = $this->phpcsFile->getTokens(); + + $constant = $this->getTargetToken('/* testTernaryWithConstantsInThenElse */', T_STRING, 'CONSTANT_NAME'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($constant + 1), null, true); + + $this->assertSame( + T_INLINE_ELSE, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (code)' + ); + $this->assertSame( + 'T_INLINE_ELSE', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_INLINE_ELSE (type)' + ); + + }//end testTernaryWithConstantsInThenElse() + + + /** + * Verify whether the colons are tokenized correctly in a switch statement. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testSwitchStatement() + { + $tokens = $this->phpcsFile->getTokens(); + + $label = $this->getTargetToken('/* testSwitchCaseWithConstant */', T_STRING, 'MY_CONSTANT'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'First case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'First case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + $label = $this->getTargetToken('/* testSwitchCaseWithClassProperty */', T_STRING, 'property'); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Second case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Second case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + $default = $this->getTargetToken('/* testSwitchDefault */', T_DEFAULT); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($default + 1), null, true); + + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Default case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Default case: Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + }//end testSwitchStatement() + + + /** + * Verify that a variable parameter label (parse error) is still tokenized as T_VARIABLE. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testParseErrorVariableLabel() + { + $tokens = $this->phpcsFile->getTokens(); + + $label = $this->getTargetToken('/* testParseErrorDynamicName */', [T_VARIABLE, T_PARAM_NAME], '$variableStoringParamName'); + + $this->assertSame( + T_VARIABLE, + $tokens[$label]['code'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_VARIABLE (code)' + ); + $this->assertSame( + 'T_VARIABLE', + $tokens[$label]['type'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_VARIABLE (type)' + ); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + }//end testParseErrorVariableLabel() + + + /** + * Verify whether the colons are tokenized correctly when a return type is used for an inline + * closure/arrow function declaration in a ternary. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataOtherColonsInTernary + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testOtherColonsInTernary($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $startOfStatement = $this->getTargetToken($testMarker, T_VARIABLE); + + // Walk the statement and check the tokenization. + // There should be no T_PARAM_NAME tokens. + // First colon should be T_COLON for the return type. + // Second colon should be T_INLINE_ELSE for the ternary. + // Third colon should be T_COLON for the return type. + $colonCount = 0; + for ($i = ($startOfStatement + 1); $tokens[$i]['line'] === $tokens[$startOfStatement]['line']; $i++) { + $this->assertNotEquals(T_PARAM_NAME, $tokens[$i]['code'], "Token $i is tokenized as parameter label"); + + if ($tokens[$i]['content'] === ':') { + ++$colonCount; + + if ($colonCount === 1) { + $this->assertSame(T_COLON, $tokens[$i]['code'], 'First colon is not tokenized as T_COLON'); + } else if ($colonCount === 2) { + $this->assertSame(T_INLINE_ELSE, $tokens[$i]['code'], 'Second colon is not tokenized as T_INLINE_ELSE'); + } else if ($colonCount === 3) { + $this->assertSame(T_COLON, $tokens[$i]['code'], 'Third colon is not tokenized as T_COLON'); + } else { + $this->fail('Unexpected colon encountered in statement'); + } + } + } + + }//end testOtherColonsInTernary() + + + /** + * Data provider. + * + * @see testOtherColonsInTernary() + * + * @return array> + */ + public static function dataOtherColonsInTernary() + { + return [ + 'closures with return types in ternary' => [ + 'testMarker' => '/* testTernaryWithClosuresAndReturnTypes */', + ], + 'arrow functions with return types in ternary' => [ + 'testMarker' => '/* testTernaryWithArrowFunctionsAndReturnTypes */', + ], + ]; + + }//end dataOtherColonsInTernary() + + + /** + * Verify that reserved keywords used as a parameter label are tokenized as T_PARAM_NAME + * and that the colon after it is tokenized as a T_COLON. + * + * @param string $testMarker The comment prefacing the target token. + * @param array $tokenTypes The token codes to look for. + * @param string $tokenContent The token content to look for. + * + * @dataProvider dataReservedKeywordsAsName + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testReservedKeywordsAsName($testMarker, $tokenTypes, $tokenContent) + { + $tokens = $this->phpcsFile->getTokens(); + $label = $this->getTargetToken($testMarker, $tokenTypes, $tokenContent); + + $this->assertSame( + T_PARAM_NAME, + $tokens[$label]['code'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_PARAM_NAME (code)' + ); + $this->assertSame( + 'T_PARAM_NAME', + $tokens[$label]['type'], + 'Token tokenized as '.$tokens[$label]['type'].', not T_PARAM_NAME (type)' + ); + + // Get the next non-empty token. + $colon = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($label + 1), null, true); + + $this->assertSame( + ':', + $tokens[$colon]['content'], + 'Next token after parameter name is not a colon. Found: '.$tokens[$colon]['content'] + ); + $this->assertSame( + T_COLON, + $tokens[$colon]['code'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (code)' + ); + $this->assertSame( + 'T_COLON', + $tokens[$colon]['type'], + 'Token tokenized as '.$tokens[$colon]['type'].', not T_COLON (type)' + ); + + }//end testReservedKeywordsAsName() + + + /** + * Data provider. + * + * @see testReservedKeywordsAsName() + * + * @return array>> + */ + public static function dataReservedKeywordsAsName() + { + $reservedKeywords = [ + // '__halt_compiler', NOT TESTABLE + 'abstract', + 'and', + 'array', + 'as', + 'break', + 'callable', + 'case', + 'catch', + 'class', + 'clone', + 'const', + 'continue', + 'declare', + 'default', + 'die', + 'do', + 'echo', + 'else', + 'elseif', + 'empty', + 'enddeclare', + 'endfor', + 'endforeach', + 'endif', + 'endswitch', + 'endwhile', + 'enum', + 'eval', + 'exit', + 'extends', + 'final', + 'finally', + 'fn', + 'for', + 'foreach', + 'function', + 'global', + 'goto', + 'if', + 'implements', + 'include', + 'include_once', + 'instanceof', + 'insteadof', + 'interface', + 'isset', + 'list', + 'match', + 'namespace', + 'new', + 'or', + 'print', + 'private', + 'protected', + 'public', + 'readonly', + 'require', + 'require_once', + 'return', + 'static', + 'switch', + 'throw', + 'trait', + 'try', + 'unset', + 'use', + 'var', + 'while', + 'xor', + 'yield', + 'int', + 'float', + 'bool', + 'string', + 'true', + 'false', + 'null', + 'void', + 'iterable', + 'object', + 'resource', + 'mixed', + 'numeric', + 'never', + + // Not reserved keyword, but do have their own token in PHPCS. + 'parent', + 'self', + ]; + + $data = []; + + foreach ($reservedKeywords as $keyword) { + $tokensTypes = [ + T_PARAM_NAME, + T_STRING, + T_GOTO_LABEL, + ]; + $tokenName = 'T_'.strtoupper($keyword); + + if ($keyword === 'and') { + $tokensTypes[] = T_LOGICAL_AND; + } else if ($keyword === 'die') { + $tokensTypes[] = T_EXIT; + } else if ($keyword === 'or') { + $tokensTypes[] = T_LOGICAL_OR; + } else if ($keyword === 'xor') { + $tokensTypes[] = T_LOGICAL_XOR; + } else if ($keyword === '__halt_compiler') { + $tokensTypes[] = T_HALT_COMPILER; + } else if (defined($tokenName) === true) { + $tokensTypes[] = constant($tokenName); + } + + $data[$keyword.'FirstParam'] = [ + '/* testReservedKeyword'.ucfirst($keyword).'1 */', + $tokensTypes, + $keyword, + ]; + + $data[$keyword.'SecondParam'] = [ + '/* testReservedKeyword'.ucfirst($keyword).'2 */', + $tokensTypes, + $keyword, + ]; + }//end foreach + + return $data; + + }//end dataReservedKeywordsAsName() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NullsafeObjectOperatorTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NullsafeObjectOperatorTest.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/NullsafeObjectOperatorTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NullsafeObjectOperatorTest.inc diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NullsafeObjectOperatorTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NullsafeObjectOperatorTest.php new file mode 100644 index 000000000..95bfc154e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/NullsafeObjectOperatorTest.php @@ -0,0 +1,144 @@ += 8.0 nullsafe object operator. + * + * @author Juliette Reinders Folmer + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class NullsafeObjectOperatorTest extends AbstractTokenizerTestCase +{ + + /** + * Tokens to search for. + * + * @var array + */ + protected $find = [ + T_NULLSAFE_OBJECT_OPERATOR, + T_OBJECT_OPERATOR, + T_INLINE_THEN, + ]; + + + /** + * Test that a normal object operator is still tokenized as such. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testObjectOperator() + { + $tokens = $this->phpcsFile->getTokens(); + + $operator = $this->getTargetToken('/* testObjectOperator */', $this->find); + $this->assertSame(T_OBJECT_OPERATOR, $tokens[$operator]['code'], 'Failed asserting code is object operator'); + $this->assertSame('T_OBJECT_OPERATOR', $tokens[$operator]['type'], 'Failed asserting type is object operator'); + + }//end testObjectOperator() + + + /** + * Test that a nullsafe object operator is tokenized as such. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataNullsafeObjectOperator + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testNullsafeObjectOperator($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $operator = $this->getTargetToken($testMarker, $this->find); + $this->assertSame(T_NULLSAFE_OBJECT_OPERATOR, $tokens[$operator]['code'], 'Failed asserting code is nullsafe object operator'); + $this->assertSame('T_NULLSAFE_OBJECT_OPERATOR', $tokens[$operator]['type'], 'Failed asserting type is nullsafe object operator'); + + }//end testNullsafeObjectOperator() + + + /** + * Data provider. + * + * @see testNullsafeObjectOperator() + * + * @return array> + */ + public static function dataNullsafeObjectOperator() + { + return [ + 'nullsafe operator' => ['/* testNullsafeObjectOperator */'], + 'illegal nullsafe operator (write context)' => ['/* testNullsafeObjectOperatorWriteContext */'], + ]; + + }//end dataNullsafeObjectOperator() + + + /** + * Test that a question mark not followed by an object operator is tokenized as T_TERNARY_THEN. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param bool $testObjectOperator Whether to test for the next non-empty token being tokenized + * as an object operator. + * + * @dataProvider dataTernaryThen + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testTernaryThen($testMarker, $testObjectOperator=false) + { + $tokens = $this->phpcsFile->getTokens(); + + $operator = $this->getTargetToken($testMarker, $this->find); + $this->assertSame(T_INLINE_THEN, $tokens[$operator]['code'], 'Failed asserting code is inline then'); + $this->assertSame('T_INLINE_THEN', $tokens[$operator]['type'], 'Failed asserting type is inline then'); + + if ($testObjectOperator === true) { + $next = $this->phpcsFile->findNext(Tokens::$emptyTokens, ($operator + 1), null, true); + $this->assertSame(T_OBJECT_OPERATOR, $tokens[$next]['code'], 'Failed asserting code is object operator'); + $this->assertSame('T_OBJECT_OPERATOR', $tokens[$next]['type'], 'Failed asserting type is object operator'); + } + + }//end testTernaryThen() + + + /** + * Data provider. + * + * @see testTernaryThen() + * + * @return array> + */ + public static function dataTernaryThen() + { + return [ + 'ternary then' => [ + 'testMarker' => '/* testTernaryThen */', + ], + 'whitespace between question mark and object operator' => [ + 'testMarker' => '/* testParseErrorWhitespaceNotAllowed */', + 'testObjectOperator' => true, + ], + 'comment between question mark and object operator' => [ + 'testMarker' => '/* testParseErrorCommentNotAllowed */', + 'testObjectOperator' => true, + ], + 'parse error/live coding' => [ + 'testMarker' => '/* testLiveCoding */', + ], + ]; + + }//end dataTernaryThen() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/OtherContextSensitiveKeywordsTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/OtherContextSensitiveKeywordsTest.inc new file mode 100644 index 000000000..ef89caaea --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/OtherContextSensitiveKeywordsTest.inc @@ -0,0 +1,247 @@ + $param->get(); + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/OtherContextSensitiveKeywordsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/OtherContextSensitiveKeywordsTest.php new file mode 100644 index 000000000..3eff0e96d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/OtherContextSensitiveKeywordsTest.php @@ -0,0 +1,721 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +/** + * Tests the conversion of PHPCS native context sensitive keyword tokens to T_STRING. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::standardiseToken + */ +final class OtherContextSensitiveKeywordsTest extends AbstractTokenizerTestCase +{ + + + /** + * Clear the "resolved tokens" cache before running this test as otherwise the code + * under test may not be run during the test. + * + * @beforeClass + * + * @return void + */ + public static function clearTokenCache() + { + parent::clearResolvedTokensCache(); + + }//end clearTokenCache() + + + /** + * Test that context sensitive keyword is tokenized as string when it should be string. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataStrings + * + * @return void + */ + public function testStrings($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_STRING, T_NULL, T_FALSE, T_TRUE, T_PARENT, T_SELF]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + $this->assertSame('T_STRING', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (type)'); + + }//end testStrings() + + + /** + * Data provider. + * + * @see testStrings() + * + * @return array> + */ + public static function dataStrings() + { + return [ + 'constant declaration: parent' => ['/* testParent */'], + 'constant declaration: self' => ['/* testSelf */'], + 'constant declaration: false' => ['/* testFalse */'], + 'constant declaration: true' => ['/* testTrue */'], + 'constant declaration: null' => ['/* testNull */'], + + 'function declaration with return by ref: self' => ['/* testKeywordSelfAfterFunctionByRefShouldBeString */'], + 'function declaration with return by ref: parent' => ['/* testKeywordParentAfterFunctionByRefShouldBeString */'], + 'function declaration with return by ref: false' => ['/* testKeywordFalseAfterFunctionByRefShouldBeString */'], + 'function declaration with return by ref: true' => ['/* testKeywordTrueAfterFunctionByRefShouldBeString */'], + 'function declaration with return by ref: null' => ['/* testKeywordNullAfterFunctionByRefShouldBeString */'], + + 'function call: self' => ['/* testKeywordAsFunctionCallNameShouldBeStringSelf */'], + 'function call: parent' => ['/* testKeywordAsFunctionCallNameShouldBeStringParent */'], + 'function call: false' => ['/* testKeywordAsFunctionCallNameShouldBeStringFalse */'], + 'function call: true' => ['/* testKeywordAsFunctionCallNameShouldBeStringTrue */'], + 'function call: null; with comment between keyword and parentheses' => ['/* testKeywordAsFunctionCallNameShouldBeStringNull */'], + + 'class instantiation: false' => ['/* testClassInstantiationFalseIsString */'], + 'class instantiation: true' => ['/* testClassInstantiationTrueIsString */'], + 'class instantiation: null' => ['/* testClassInstantiationNullIsString */'], + + 'constant declaration: false as name after type' => ['/* testFalseIsNameForTypedConstant */'], + 'constant declaration: true as name after type' => ['/* testTrueIsNameForTypedConstant */'], + 'constant declaration: null as name after type' => ['/* testNullIsNameForTypedConstant */'], + 'constant declaration: self as name after type' => ['/* testSelfIsNameForTypedConstant */'], + 'constant declaration: parent as name after type' => ['/* testParentIsNameForTypedConstant */'], + ]; + + }//end dataStrings() + + + /** + * Test that context sensitive keyword is tokenized as keyword when it should be keyword. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * @param string $expectedTokenType The expected token type. + * + * @dataProvider dataKeywords + * + * @return void + */ + public function testKeywords($testMarker, $expectedTokenType) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_STRING, T_NULL, T_FALSE, T_TRUE, T_PARENT, T_SELF]); + $tokenArray = $tokens[$target]; + + $this->assertSame( + constant($expectedTokenType), + $tokenArray['code'], + 'Token tokenized as '.$tokenArray['type'].', not '.$expectedTokenType.' (code)' + ); + $this->assertSame( + $expectedTokenType, + $tokenArray['type'], + 'Token tokenized as '.$tokenArray['type'].', not '.$expectedTokenType.' (type)' + ); + + }//end testKeywords() + + + /** + * Data provider. + * + * @see testKeywords() + * + * @return array + */ + public static function dataKeywords() + { + return [ + 'self: param type declaration' => [ + 'testMarker' => '/* testSelfIsKeyword */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: param type declaration' => [ + 'testMarker' => '/* testParentIsKeyword */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'parent: class instantiation' => [ + 'testMarker' => '/* testClassInstantiationParentIsKeyword */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: class instantiation' => [ + 'testMarker' => '/* testClassInstantiationSelfIsKeyword */', + 'expectedTokenType' => 'T_SELF', + ], + + 'false: param type declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsParamType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: param type declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsParamType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: param type declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsParamType */', + 'expectedTokenType' => 'T_NULL', + ], + 'false: return type declaration in union' => [ + 'testMarker' => '/* testFalseIsKeywordAsReturnType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: return type declaration in union' => [ + 'testMarker' => '/* testTrueIsKeywordAsReturnType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: return type declaration in union' => [ + 'testMarker' => '/* testNullIsKeywordAsReturnType */', + 'expectedTokenType' => 'T_NULL', + ], + 'false: in comparison' => [ + 'testMarker' => '/* testFalseIsKeywordInComparison */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: in comparison' => [ + 'testMarker' => '/* testTrueIsKeywordInComparison */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: in comparison' => [ + 'testMarker' => '/* testNullIsKeywordInComparison */', + 'expectedTokenType' => 'T_NULL', + ], + + 'false: type in OO constant declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: type in OO constant declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: type in OO constant declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstType */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: type in OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstType */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: type in OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstType */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: value in constant declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstDefault */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: value in constant declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstDefault */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: value in constant declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstDefault */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: value in constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstDefault */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: value in constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstDefault */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: type in property declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsPropertyType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: type in property declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsPropertyType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: type in property declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsPropertyType */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: type in property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyType */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: type in property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyType */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: value in property declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsPropertyDefault */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: value in property declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsPropertyDefault */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: value in property declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsPropertyDefault */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: value in property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyDefault */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: value in property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyDefault */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: first in union type for OO constant declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstUnionTypeFirst */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: first in union type for OO constant declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstUnionTypeFirst */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: first in union type for OO constant declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstUnionTypeFirst */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: first in union type for OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstUnionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in union type for OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstUnionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: middle in union type for OO constant declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstUnionTypeMiddle */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: middle in union type for OO constant declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstUnionTypeMiddle */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: middle in union type for OO constant declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstUnionTypeMiddle */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: middle in union type for OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstUnionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in union type for OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstUnionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: last in union type for OO constant declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstUnionTypeLast */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: last in union type for OO constant declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstUnionTypeLast */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: last in union type for OO constant declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstUnionTypeLast */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: last in union type for OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstUnionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in union type for OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstUnionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: first in union type for property declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsPropertyUnionTypeFirst */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: first in union type for property declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsPropertyUnionTypeFirst */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: first in union type for property declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsPropertyUnionTypeFirst */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: first in union type for property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyUnionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in union type for property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyUnionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: middle in union type for property declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsPropertyUnionTypeMiddle */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: middle in union type for property declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsPropertyUnionTypeMiddle */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: middle in union type for property declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsPropertyUnionTypeMiddle */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: middle in union type for property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyUnionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in union type for property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyUnionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: last in union type for property declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsPropertyUnionTypeLast */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: last in union type for property declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsPropertyUnionTypeLast */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: last in union type for property declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsPropertyUnionTypeLast */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: last in union type for property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyUnionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in union type for property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyUnionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: first in union type for param declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsParamUnionTypeFirst */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: first in union type for param declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsParamUnionTypeFirst */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: first in union type for param declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsParamUnionTypeFirst */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: first in union type for param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamUnionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in union type for param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamUnionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: middle in union type for param declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsParamUnionTypeMiddle */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: middle in union type for param declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsParamUnionTypeMiddle */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: middle in union type for param declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsParamUnionTypeMiddle */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: middle in union type for param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamUnionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in union type for param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamUnionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: last in union type for param declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsParamUnionTypeLast */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: last in union type for param declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsParamUnionTypeLast */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: last in union type for param declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsParamUnionTypeLast */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: last in union type for param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamUnionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in union type for param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamUnionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: first in union type for return declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsReturnUnionTypeFirst */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: first in union type for return declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsReturnUnionTypeFirst */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: first in union type for return declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsReturnUnionTypeFirst */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: first in union type for return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnUnionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in union type for return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnUnionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: middle in union type for return declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsReturnUnionTypeMiddle */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: middle in union type for return declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsReturnUnionTypeMiddle */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: middle in union type for return declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsReturnUnionTypeMiddle */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: middle in union type for return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnUnionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in union type for return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnUnionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: last in union type for return declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsReturnUnionTypeLast */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: last in union type for return declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsReturnUnionTypeLast */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: last in union type for return declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsReturnUnionTypeLast */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: last in union type for return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnUnionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in union type for return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnUnionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'self: first in intersection type for OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstIntersectionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in intersection type for OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstIntersectionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: middle in intersection type for OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in intersection type for OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: last in intersection type for OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstIntersectionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in intersection type for OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstIntersectionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'self: first in intersection type for property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyIntersectionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in intersection type for property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyIntersectionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: middle in intersection type for property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in intersection type for property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: last in intersection type for property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsPropertyIntersectionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in intersection type for property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsPropertyIntersectionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'self: first in intersection type for param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamIntersectionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in intersection type for param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamIntersectionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: middle in intersection type for param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in intersection type for param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: last in intersection type for param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamIntersectionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in intersection type for param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamIntersectionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'self: first in intersection type for return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnIntersectionTypeFirst */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: first in intersection type for return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnIntersectionTypeFirst */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: middle in intersection type for return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: middle in intersection type for return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnIntersectionTypeMiddle */', + 'expectedTokenType' => 'T_PARENT', + ], + 'self: last in intersection type for return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnIntersectionTypeLast */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: last in intersection type for return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnIntersectionTypeLast */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: DNF type in OO constant declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: DNF type in OO constant declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: DNF type in OO constant declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: DNF type in OO constant declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: DNF type in OO constant declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: DNF type in property declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: DNF type in property declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: DNF type in property declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: DNF type in property declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: DNF type in property declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsConstDNFType */', + 'expectedTokenType' => 'T_PARENT', + ], + + 'false: DNF type in function param declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsParamDNFType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'false: DNF type in function return declaration' => [ + 'testMarker' => '/* testFalseIsKeywordAsReturnDNFType */', + 'expectedTokenType' => 'T_FALSE', + ], + 'true: DNF type in function param declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsParamDNFType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'true: DNF type in function return declaration' => [ + 'testMarker' => '/* testTrueIsKeywordAsReturnDNFType */', + 'expectedTokenType' => 'T_TRUE', + ], + 'null: DNF type in function param declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsParamDNFType */', + 'expectedTokenType' => 'T_NULL', + ], + 'null: DNF type in function return declaration' => [ + 'testMarker' => '/* testNullIsKeywordAsReturnDNFType */', + 'expectedTokenType' => 'T_NULL', + ], + 'self: DNF type in function param declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsParamDNFType */', + 'expectedTokenType' => 'T_SELF', + ], + 'self: DNF type in function return declaration' => [ + 'testMarker' => '/* testSelfIsKeywordAsReturnDNFType */', + 'expectedTokenType' => 'T_SELF', + ], + 'parent: DNF type in function param declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsParamDNFType */', + 'expectedTokenType' => 'T_PARENT', + ], + 'parent: DNF type in function return declaration' => [ + 'testMarker' => '/* testParentIsKeywordAsReturnDNFType */', + 'expectedTokenType' => 'T_PARENT', + ], + + ]; + + }//end dataKeywords() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ResolveSimpleTokenTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ResolveSimpleTokenTest.inc new file mode 100644 index 000000000..d7383d8e6 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ResolveSimpleTokenTest.inc @@ -0,0 +1,51 @@ + $var; + +/* testBooleanNot */ +$a = ! $var; + +/* testComma */ +echo $a, $b, $c; + +/* testAsperand */ +$a = @callMe(); + +/* testDollarAndCurlies */ +echo ${$var}; + +/* testBacktick */ +$a = `ls -e`; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ResolveSimpleTokenTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ResolveSimpleTokenTest.php new file mode 100644 index 000000000..4045f775a --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ResolveSimpleTokenTest.php @@ -0,0 +1,433 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +/** + * Tests that simple tokens are assigned the correct token type and code. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::resolveSimpleToken + */ +final class ResolveSimpleTokenTest extends AbstractTokenizerTestCase +{ + + + /** + * Clear the "resolved tokens" cache before running this test as otherwise the code + * under test may not be run during the test. + * + * @beforeClass + * + * @return void + */ + public static function clearTokenCache() + { + parent::clearResolvedTokensCache(); + + }//end clearTokenCache() + + + /** + * Verify tokenization of parentheses, square brackets, curly brackets and a switch colon. + * + * @return void + */ + public function testBracesAndColon() + { + $expectedSequence = [ + T_OPEN_PARENTHESIS, + T_VARIABLE, + T_OPEN_SQUARE_BRACKET, + T_LNUMBER, + T_CLOSE_SQUARE_BRACKET, + T_CLOSE_PARENTHESIS, + T_OPEN_CURLY_BRACKET, + T_CASE, + T_STRING, + T_COLON, + T_BREAK, + T_SEMICOLON, + T_CLOSE_CURLY_BRACKET, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_SWITCH); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testBracesAndColon() + + + /** + * Verify tokenization of colon after named parameter. + * + * @return void + */ + public function testNamedParamColon() + { + $expectedSequence = [ + T_OPEN_PARENTHESIS, + T_PARAM_NAME, + T_COLON, + T_VARIABLE, + T_CLOSE_PARENTHESIS, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_STRING); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testNamedParamColon() + + + /** + * Verify tokenization of colon for a return type. + * + * @return void + */ + public function testReturnTypeColon() + { + $expectedSequence = [ + T_EQUAL, + T_CLOSURE, + T_OPEN_PARENTHESIS, + T_CLOSE_PARENTHESIS, + T_COLON, + T_STRING, + T_OPEN_CURLY_BRACKET, + T_CLOSE_CURLY_BRACKET, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_VARIABLE); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testReturnTypeColon() + + + /** + * Verify tokenization of a concatenation operator. + * + * @return void + */ + public function testConcat() + { + $expectedSequence = [ + T_STRING_CONCAT, + T_VARIABLE, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_CONSTANT_ENCAPSED_STRING); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testConcat() + + + /** + * Verify tokenization of simple math operators. + * + * @return void + */ + public function testSimpleMathTokens() + { + $expectedSequence = [ + T_EQUAL, + T_LNUMBER, + T_MULTIPLY, + T_LNUMBER, + T_DIVIDE, + T_LNUMBER, + T_PLUS, + T_LNUMBER, + T_MINUS, + T_LNUMBER, + T_MODULUS, + T_LNUMBER, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_VARIABLE); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testSimpleMathTokens() + + + /** + * Verify tokenization of unary plus/minus operators. + * + * @return void + */ + public function testUnaryPlusMinus() + { + $expectedSequence = [ + T_EQUAL, + T_PLUS, + T_LNUMBER, + T_DIVIDE, + T_MINUS, + T_LNUMBER, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_VARIABLE); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testUnaryPlusMinus() + + + /** + * Verify tokenization of bitwise operator tokens. + * + * @return void + */ + public function testBitwiseTokens() + { + $expectedSequence = [ + T_EQUAL, + T_STRING, + T_BITWISE_XOR, + T_STRING, + T_BITWISE_AND, + T_STRING, + T_BITWISE_OR, + T_STRING, + T_BITWISE_NOT, + T_STRING, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_VARIABLE); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testBitwiseTokens() + + + /** + * Verify tokenization of bitwise operator tokens. + * + * @return void + */ + public function testBitwiseOrInCatch() + { + $expectedSequence = [ + T_OPEN_PARENTHESIS, + T_STRING, + T_BITWISE_OR, + T_STRING, + T_VARIABLE, + T_CLOSE_PARENTHESIS, + T_OPEN_CURLY_BRACKET, + T_CLOSE_CURLY_BRACKET, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_CATCH); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testBitwiseOrInCatch() + + + /** + * Verify tokenization of a less than operator. + * + * @return void + */ + public function testLessThan() + { + $expectedSequence = [ + T_LESS_THAN, + T_VARIABLE, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_LNUMBER); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testLessThan() + + + /** + * Verify tokenization of a greater than operator. + * + * @return void + */ + public function testGreaterThan() + { + $expectedSequence = [ + T_GREATER_THAN, + T_VARIABLE, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_LNUMBER); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testGreaterThan() + + + /** + * Verify tokenization of a boolean not operator. + * + * @return void + */ + public function testBooleanNot() + { + $expectedSequence = [ + T_BOOLEAN_NOT, + T_VARIABLE, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_EQUAL); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testBooleanNot() + + + /** + * Verify tokenization of commas. + * + * @return void + */ + public function testComma() + { + $expectedSequence = [ + T_COMMA, + T_VARIABLE, + T_COMMA, + T_VARIABLE, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_VARIABLE); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testComma() + + + /** + * Verify tokenization of the silence operator. + * + * @return void + */ + public function testAsperand() + { + $expectedSequence = [ + T_ASPERAND, + T_STRING, + T_OPEN_PARENTHESIS, + T_CLOSE_PARENTHESIS, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_EQUAL); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testAsperand() + + + /** + * Verify tokenization of the dollar token and curlies for a variable variable. + * + * @return void + */ + public function testDollarAndCurlies() + { + $expectedSequence = [ + T_DOLLAR, + T_OPEN_CURLY_BRACKET, + T_VARIABLE, + T_CLOSE_CURLY_BRACKET, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_ECHO); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testDollarAndCurlies() + + + /** + * Verify tokenization of the backtick operator. + * + * @return void + */ + public function testBacktick() + { + $expectedSequence = [ + T_BACKTICK, + T_ENCAPSED_AND_WHITESPACE, + T_BACKTICK, + T_SEMICOLON, + ]; + + $target = $this->getTargetToken('/* '.__FUNCTION__.' */', T_EQUAL); + + $this->checkTokenSequence(($target + 1), $expectedSequence); + + }//end testBacktick() + + + /** + * Test helper. Check a token sequence complies with an expected token sequence. + * + * @param int $startPtr The position in the file to start checking from. + * @param array $expectedSequence The consecutive token constants to expect. + * + * @return void + */ + private function checkTokenSequence($startPtr, array $expectedSequence) + { + $tokens = $this->phpcsFile->getTokens(); + + $sequenceKey = 0; + $sequenceCount = count($expectedSequence); + + for ($i = $startPtr; $sequenceKey < $sequenceCount; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { + // Ignore whitespace and comments, not interested in the tokenization of those for these tests. + continue; + } + + $expectedTokenName = Tokens::tokenName($expectedSequence[$sequenceKey]); + + $this->assertSame( + $expectedSequence[$sequenceKey], + $tokens[$i]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$i]['code']).', not '.$expectedTokenName.' (code)' + ); + + $this->assertSame( + $expectedTokenName, + $tokens[$i]['type'], + 'Token tokenized as '.$tokens[$i]['type'].', not '.$expectedTokenName.' (type)' + ); + + ++$sequenceKey; + }//end for + + }//end checkTokenSequence() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ShortArrayTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ShortArrayTest.inc similarity index 86% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ShortArrayTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ShortArrayTest.inc index 54065f213..60b23a51c 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ShortArrayTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ShortArrayTest.inc @@ -92,6 +92,20 @@ echo [1, 2, 3][0]; /* testArrayWithinFunctionCall */ $var = functionCall([$x, $y]); +if ( true ) { + /* testShortListDeclarationAfterBracedControlStructure */ + [ $a ] = [ 'hi' ]; +} + +if ( true ) + /* testShortListDeclarationAfterNonBracedControlStructure */ + [ $a ] = [ 'hi' ]; + +if ( true ) : + /* testShortListDeclarationAfterAlternativeControlStructure */ + [ $a ] = [ 'hi' ]; +endif; + /* testLiveCoding */ // Intentional parse error. This has to be the last test in the file. $array = [ diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ShortArrayTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ShortArrayTest.php new file mode 100644 index 000000000..06e76621f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/ShortArrayTest.php @@ -0,0 +1,141 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class ShortArrayTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that real square brackets are still tokenized as square brackets. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataSquareBrackets + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testSquareBrackets($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $opener = $this->getTargetToken($testMarker, [T_OPEN_SQUARE_BRACKET, T_OPEN_SHORT_ARRAY]); + $tokenArray = $tokens[$opener]; + + $this->assertSame(T_OPEN_SQUARE_BRACKET, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SQUARE_BRACKET (code)'); + $this->assertSame('T_OPEN_SQUARE_BRACKET', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SQUARE_BRACKET (type)'); + + if (isset($tokens[$opener]['bracket_closer']) === true) { + $closer = $tokens[$opener]['bracket_closer']; + $tokenArray = $tokens[$closer]; + + $this->assertSame(T_CLOSE_SQUARE_BRACKET, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SQUARE_BRACKET (code)'); + $this->assertSame('T_CLOSE_SQUARE_BRACKET', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SQUARE_BRACKET (type)'); + } + + }//end testSquareBrackets() + + + /** + * Data provider. + * + * @see testSquareBrackets() + * + * @return array> + */ + public static function dataSquareBrackets() + { + return [ + 'array access 1' => ['/* testArrayAccess1 */'], + 'array access 2' => ['/* testArrayAccess2 */'], + 'array assignment' => ['/* testArrayAssignment */'], + 'function call dereferencing' => ['/* testFunctionCallDereferencing */'], + 'method call dereferencing' => ['/* testMethodCallDereferencing */'], + 'static method call dereferencing' => ['/* testStaticMethodCallDereferencing */'], + 'property dereferencing' => ['/* testPropertyDereferencing */'], + 'property dereferencing with inaccessable name' => ['/* testPropertyDereferencingWithInaccessibleName */'], + 'static property dereferencing' => ['/* testStaticPropertyDereferencing */'], + 'string dereferencing single quotes' => ['/* testStringDereferencing */'], + 'string dereferencing double quotes' => ['/* testStringDereferencingDoubleQuoted */'], + 'global constant dereferencing' => ['/* testConstantDereferencing */'], + 'class constant dereferencing' => ['/* testClassConstantDereferencing */'], + 'magic constant dereferencing' => ['/* testMagicConstantDereferencing */'], + 'array access with curly braces' => ['/* testArrayAccessCurlyBraces */'], + 'array literal dereferencing' => ['/* testArrayLiteralDereferencing */'], + 'short array literal dereferencing' => ['/* testShortArrayLiteralDereferencing */'], + 'class member dereferencing on instantiation 1' => ['/* testClassMemberDereferencingOnInstantiation1 */'], + 'class member dereferencing on instantiation 2' => ['/* testClassMemberDereferencingOnInstantiation2 */'], + 'class member dereferencing on clone' => ['/* testClassMemberDereferencingOnClone */'], + 'nullsafe method call dereferencing' => ['/* testNullsafeMethodCallDereferencing */'], + 'interpolated string dereferencing' => ['/* testInterpolatedStringDereferencing */'], + 'live coding' => ['/* testLiveCoding */'], + ]; + + }//end dataSquareBrackets() + + + /** + * Test that short arrays and short lists are still tokenized as short arrays. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataShortArrays + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testShortArrays($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $opener = $this->getTargetToken($testMarker, [T_OPEN_SQUARE_BRACKET, T_OPEN_SHORT_ARRAY]); + $tokenArray = $tokens[$opener]; + + $this->assertSame(T_OPEN_SHORT_ARRAY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SHORT_ARRAY (code)'); + $this->assertSame('T_OPEN_SHORT_ARRAY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_OPEN_SHORT_ARRAY (type)'); + + if (isset($tokens[$opener]['bracket_closer']) === true) { + $closer = $tokens[$opener]['bracket_closer']; + $tokenArray = $tokens[$closer]; + + $this->assertSame(T_CLOSE_SHORT_ARRAY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SHORT_ARRAY (code)'); + $this->assertSame('T_CLOSE_SHORT_ARRAY', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_CLOSE_SHORT_ARRAY (type)'); + } + + }//end testShortArrays() + + + /** + * Data provider. + * + * @see testShortArrays() + * + * @return array> + */ + public static function dataShortArrays() + { + return [ + 'short array empty' => ['/* testShortArrayDeclarationEmpty */'], + 'short array with value' => ['/* testShortArrayDeclarationWithOneValue */'], + 'short array with values' => ['/* testShortArrayDeclarationWithMultipleValues */'], + 'short array with dereferencing' => ['/* testShortArrayDeclarationWithDereferencing */'], + 'short list' => ['/* testShortListDeclaration */'], + 'short list nested' => ['/* testNestedListDeclaration */'], + 'short array within function call' => ['/* testArrayWithinFunctionCall */'], + 'short list after braced control structure' => ['/* testShortListDeclarationAfterBracedControlStructure */'], + 'short list after non-braced control structure' => ['/* testShortListDeclarationAfterNonBracedControlStructure */'], + 'short list after alternative control structure' => ['/* testShortListDeclarationAfterAlternativeControlStructure */'], + ]; + + }//end dataShortArrays() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceTest.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceTest.inc diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceTest.php similarity index 81% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceTest.php rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceTest.php index 389bb74e6..6a58ccbbd 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceTest.php @@ -10,23 +10,23 @@ * * @author Juliette Reinders Folmer * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; use PHP_CodeSniffer\Util\Tokens; -class StableCommentWhitespaceTest extends AbstractMethodUnitTest +final class StableCommentWhitespaceTest extends AbstractTokenizerTestCase { /** * Test that comment tokenization with new lines at the end of the comment is stable. * - * @param string $testMarker The comment prefacing the test. - * @param array $expectedTokens The tokenization expected. + * @param string $testMarker The comment prefacing the test. + * @param array> $expectedTokens The tokenization expected. * * @dataProvider dataCommentTokenization * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize @@ -35,12 +35,20 @@ class StableCommentWhitespaceTest extends AbstractMethodUnitTest */ public function testCommentTokenization($testMarker, $expectedTokens) { - $tokens = self::$phpcsFile->getTokens(); + $tokens = $this->phpcsFile->getTokens(); $comment = $this->getTargetToken($testMarker, Tokens::$commentTokens); foreach ($expectedTokens as $key => $tokenInfo) { - $this->assertSame(constant($tokenInfo['type']), $tokens[$comment]['code']); - $this->assertSame($tokenInfo['type'], $tokens[$comment]['type']); + $this->assertSame( + constant($tokenInfo['type']), + $tokens[$comment]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$comment]['code']).', not '.$tokenInfo['type'].' (code)' + ); + $this->assertSame( + $tokenInfo['type'], + $tokens[$comment]['type'], + 'Token tokenized as '.$tokens[$comment]['type'].', not '.$tokenInfo['type'].' (type)' + ); $this->assertSame($tokenInfo['content'], $tokens[$comment]['content']); ++$comment; @@ -54,14 +62,14 @@ public function testCommentTokenization($testMarker, $expectedTokens) * * @see testCommentTokenization() * - * @return array + * @return array>>> */ - public function dataCommentTokenization() + public static function dataCommentTokenization() { return [ - [ - '/* testSingleLineSlashComment */', - [ + 'slash comment, single line' => [ + 'testMarker' => '/* testSingleLineSlashComment */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Comment @@ -74,9 +82,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineSlashCommentTrailing */', - [ + 'slash comment, single line, trailing' => [ + 'testMarker' => '/* testSingleLineSlashCommentTrailing */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Comment @@ -89,9 +97,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineSlashAnnotation */', - [ + 'slash ignore annotation, single line' => [ + 'testMarker' => '/* testSingleLineSlashAnnotation */', + 'expectedTokens' => [ [ 'type' => 'T_PHPCS_DISABLE', 'content' => '// phpcs:disable Stnd.Cat @@ -104,9 +112,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineSlashComment */', - [ + 'slash comment, multi-line' => [ + 'testMarker' => '/* testMultiLineSlashComment */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Comment1 @@ -129,9 +137,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineSlashCommentWithIndent */', - [ + 'slash comment, multi-line, indented' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithIndent */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Comment1 @@ -162,9 +170,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineSlashCommentWithAnnotationStart */', - [ + 'slash comment, multi-line, ignore annotation as first line' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithAnnotationStart */', + 'expectedTokens' => [ [ 'type' => 'T_PHPCS_IGNORE', 'content' => '// phpcs:ignore Stnd.Cat @@ -187,9 +195,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineSlashCommentWithAnnotationMiddle */', - [ + 'slash comment, multi-line, ignore annotation as middle line' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithAnnotationMiddle */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Comment1 @@ -212,9 +220,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineSlashCommentWithAnnotationEnd */', - [ + 'slash comment, multi-line, ignore annotation as last line' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithAnnotationEnd */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Comment1 @@ -237,9 +245,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineStarComment */', - [ + 'star comment, single line' => [ + 'testMarker' => '/* testSingleLineStarComment */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Single line star comment */', @@ -251,9 +259,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineStarCommentTrailing */', - [ + 'star comment, single line, trailing' => [ + 'testMarker' => '/* testSingleLineStarCommentTrailing */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Comment */', @@ -265,9 +273,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineStarAnnotation */', - [ + 'star ignore annotation, single line' => [ + 'testMarker' => '/* testSingleLineStarAnnotation */', + 'expectedTokens' => [ [ 'type' => 'T_PHPCS_IGNORE', 'content' => '/* phpcs:ignore Stnd.Cat */', @@ -279,9 +287,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineStarComment */', - [ + 'star comment, multi-line' => [ + 'testMarker' => '/* testMultiLineStarComment */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Comment1 @@ -303,9 +311,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineStarCommentWithIndent */', - [ + 'star comment, multi-line, indented' => [ + 'testMarker' => '/* testMultiLineStarCommentWithIndent */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Comment1 @@ -327,9 +335,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineStarCommentWithAnnotationStart */', - [ + 'star comment, multi-line, ignore annotation as first line' => [ + 'testMarker' => '/* testMultiLineStarCommentWithAnnotationStart */', + 'expectedTokens' => [ [ 'type' => 'T_PHPCS_IGNORE', 'content' => '/* @phpcs:ignore Stnd.Cat @@ -351,9 +359,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineStarCommentWithAnnotationMiddle */', - [ + 'star comment, multi-line, ignore annotation as middle line' => [ + 'testMarker' => '/* testMultiLineStarCommentWithAnnotationMiddle */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Comment1 @@ -375,9 +383,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineStarCommentWithAnnotationEnd */', - [ + 'star comment, multi-line, ignore annotation as last line' => [ + 'testMarker' => '/* testMultiLineStarCommentWithAnnotationEnd */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Comment1 @@ -400,9 +408,9 @@ public function dataCommentTokenization() ], ], - [ - '/* testSingleLineDocblockComment */', - [ + 'docblock comment, single line' => [ + 'testMarker' => '/* testSingleLineDocblockComment */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -426,9 +434,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineDocblockCommentTrailing */', - [ + 'docblock comment, single line, trailing' => [ + 'testMarker' => '/* testSingleLineDocblockCommentTrailing */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -452,9 +460,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineDocblockAnnotation */', - [ + 'docblock ignore annotation, single line' => [ + 'testMarker' => '/* testSingleLineDocblockAnnotation */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -479,9 +487,9 @@ public function dataCommentTokenization() ], ], - [ - '/* testMultiLineDocblockComment */', - [ + 'docblock comment, multi-line' => [ + 'testMarker' => '/* testMultiLineDocblockComment */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -590,9 +598,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineDocblockCommentWithIndent */', - [ + 'docblock comment, multi-line, indented' => [ + 'testMarker' => '/* testMultiLineDocblockCommentWithIndent */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -701,9 +709,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineDocblockCommentWithAnnotation */', - [ + 'docblock comment, multi-line, ignore annotation' => [ + 'testMarker' => '/* testMultiLineDocblockCommentWithAnnotation */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -812,9 +820,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineDocblockCommentWithTagAnnotation */', - [ + 'docblock comment, multi-line, ignore annotation as tag' => [ + 'testMarker' => '/* testMultiLineDocblockCommentWithTagAnnotation */', + 'expectedTokens' => [ [ 'type' => 'T_DOC_COMMENT_OPEN_TAG', 'content' => '/**', @@ -923,9 +931,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineHashComment */', - [ + 'hash comment, single line' => [ + 'testMarker' => '/* testSingleLineHashComment */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '# Comment @@ -938,9 +946,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineHashCommentTrailing */', - [ + 'hash comment, single line, trailing' => [ + 'testMarker' => '/* testSingleLineHashCommentTrailing */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '# Comment @@ -953,9 +961,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineHashComment */', - [ + 'hash comment, multi-line' => [ + 'testMarker' => '/* testMultiLineHashComment */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '# Comment1 @@ -978,9 +986,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testMultiLineHashCommentWithIndent */', - [ + 'hash comment, multi-line, indented' => [ + 'testMarker' => '/* testMultiLineHashCommentWithIndent */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '# Comment1 @@ -1011,9 +1019,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineSlashCommentNoNewLineAtEnd */', - [ + 'slash comment, single line, without new line at end' => [ + 'testMarker' => '/* testSingleLineSlashCommentNoNewLineAtEnd */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '// Slash ', @@ -1025,9 +1033,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testSingleLineHashCommentNoNewLineAtEnd */', - [ + 'hash comment, single line, without new line at end' => [ + 'testMarker' => '/* testSingleLineHashCommentNoNewLineAtEnd */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '# Hash ', @@ -1039,9 +1047,9 @@ public function dataCommentTokenization() ], ], ], - [ - '/* testCommentAtEndOfFile */', - [ + 'unclosed star comment at end of file' => [ + 'testMarker' => '/* testCommentAtEndOfFile */', + 'expectedTokens' => [ [ 'type' => 'T_COMMENT', 'content' => '/* Comment', diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceWinTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceWinTest.inc similarity index 100% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceWinTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceWinTest.inc diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceWinTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceWinTest.php new file mode 100644 index 000000000..dbb103060 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/StableCommentWhitespaceWinTest.php @@ -0,0 +1,375 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class StableCommentWhitespaceWinTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that comment tokenization with new lines at the end of the comment is stable. + * + * @param string $testMarker The comment prefacing the test. + * @param array> $expectedTokens The tokenization expected. + * + * @dataProvider dataCommentTokenization + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testCommentTokenization($testMarker, $expectedTokens) + { + $tokens = $this->phpcsFile->getTokens(); + $comment = $this->getTargetToken($testMarker, Tokens::$commentTokens); + + foreach ($expectedTokens as $key => $tokenInfo) { + $this->assertSame( + constant($tokenInfo['type']), + $tokens[$comment]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$comment]['code']).', not '.$tokenInfo['type'].' (code)' + ); + $this->assertSame( + $tokenInfo['type'], + $tokens[$comment]['type'], + 'Token tokenized as '.$tokens[$comment]['type'].', not '.$tokenInfo['type'].' (type)' + ); + $this->assertSame($tokenInfo['content'], $tokens[$comment]['content']); + + ++$comment; + } + + }//end testCommentTokenization() + + + /** + * Data provider. + * + * @see testCommentTokenization() + * + * @return array>>> + */ + public static function dataCommentTokenization() + { + return [ + 'slash comment, single line' => [ + 'testMarker' => '/* testSingleLineSlashComment */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, single line, trailing' => [ + 'testMarker' => '/* testSingleLineSlashCommentTrailing */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash ignore annotation, single line' => [ + 'testMarker' => '/* testSingleLineSlashAnnotation */', + 'expectedTokens' => [ + [ + 'type' => 'T_PHPCS_DISABLE', + 'content' => '// phpcs:disable Stnd.Cat +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, multi-line' => [ + 'testMarker' => '/* testMultiLineSlashComment */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment1 +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment2 +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment3 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, multi-line, indented' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithIndent */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment1 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' ', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment2 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' ', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment3 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, multi-line, ignore annotation as first line' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithAnnotationStart */', + 'expectedTokens' => [ + [ + 'type' => 'T_PHPCS_IGNORE', + 'content' => '// phpcs:ignore Stnd.Cat +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment2 +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment3 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, multi-line, ignore annotation as middle line' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithAnnotationMiddle */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment1 +', + ], + [ + 'type' => 'T_PHPCS_IGNORE', + 'content' => '// @phpcs:ignore Stnd.Cat +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment3 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, multi-line, ignore annotation as last line' => [ + 'testMarker' => '/* testMultiLineSlashCommentWithAnnotationEnd */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment1 +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '// Comment2 +', + ], + [ + 'type' => 'T_PHPCS_IGNORE', + 'content' => '// phpcs:ignore Stnd.Cat +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'slash comment, single line, without new line at end' => [ + 'testMarker' => '/* testSingleLineSlashCommentNoNewLineAtEnd */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '// Slash ', + ], + [ + 'type' => 'T_CLOSE_TAG', + 'content' => '?> +', + ], + ], + ], + 'hash comment, single line' => [ + 'testMarker' => '/* testSingleLineHashComment */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'hash comment, single line, trailing' => [ + 'testMarker' => '/* testSingleLineHashCommentTrailing */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'hash comment, multi-line' => [ + 'testMarker' => '/* testMultiLineHashComment */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment1 +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment2 +', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment3 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'hash comment, multi-line, indented' => [ + 'testMarker' => '/* testMultiLineHashCommentWithIndent */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment1 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' ', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment2 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' ', + ], + [ + 'type' => 'T_COMMENT', + 'content' => '# Comment3 +', + ], + [ + 'type' => 'T_WHITESPACE', + 'content' => ' +', + ], + ], + ], + 'hash comment, single line, without new line at end' => [ + 'testMarker' => '/* testSingleLineHashCommentNoNewLineAtEnd */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '# Hash ', + ], + [ + 'type' => 'T_CLOSE_TAG', + 'content' => '?> +', + ], + ], + ], + 'unclosed star comment at end of file' => [ + 'testMarker' => '/* testCommentAtEndOfFile */', + 'expectedTokens' => [ + [ + 'type' => 'T_COMMENT', + 'content' => '/* Comment', + ], + ], + ], + ]; + + }//end dataCommentTokenization() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypeIntersectionTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypeIntersectionTest.inc new file mode 100644 index 000000000..53177a531 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypeIntersectionTest.inc @@ -0,0 +1,161 @@ + $param & $int; + +/* testTypeIntersectionArrowReturnType */ +$arrowWithReturnType = fn ($param) : Foo&Bar => $param * 10; + +/* testBitwiseAndInArrayKey */ +$array = array( + A & B => /* testBitwiseAndInArrayValue */ B & C +); + +/* testBitwiseAndInShortArrayKey */ +$array = [ + A & B => /* testBitwiseAndInShortArrayValue */ B & C +]; + +/* testBitwiseAndNonArrowFnFunctionCall */ +$obj->fn($something & $else); + +/* testBitwiseAnd6 */ +function &fn(/* testTypeIntersectionNonArrowFunctionDeclaration */ Foo&Bar $something) {} + +/* testTypeIntersectionWithInvalidTypes */ +function (int&string $var) {}; + +/* testLiveCoding */ +// Intentional parse error. This has to be the last test in the file. +return function( Foo& diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypeIntersectionTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypeIntersectionTest.php new file mode 100644 index 000000000..99c96edce --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypeIntersectionTest.php @@ -0,0 +1,157 @@ + + * @author Jaroslav Hanslík + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class TypeIntersectionTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that non-intersection type bitwise and tokens are still tokenized as bitwise and. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataBitwiseAnd + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testBitwiseAnd($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_BITWISE_AND, T_TYPE_INTERSECTION]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_BITWISE_AND, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_BITWISE_AND (code)'); + $this->assertSame('T_BITWISE_AND', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_BITWISE_AND (type)'); + + }//end testBitwiseAnd() + + + /** + * Data provider. + * + * @see testBitwiseAnd() + * + * @return array> + */ + public static function dataBitwiseAnd() + { + return [ + 'in simple assignment 1' => ['/* testBitwiseAnd1 */'], + 'in simple assignment 2' => ['/* testBitwiseAnd2 */'], + 'in OO constant default value' => ['/* testBitwiseAndOOConstDefaultValue */'], + 'in property default value' => ['/* testBitwiseAndPropertyDefaultValue */'], + 'in method parameter default value' => ['/* testBitwiseAndParamDefaultValue */'], + 'reference for method parameter' => ['/* testBitwiseAnd3 */'], + 'in return statement' => ['/* testBitwiseAnd4 */'], + 'reference for function parameter' => ['/* testBitwiseAnd5 */'], + 'in OO constant default value DNF-like' => ['/* testBitwiseAndOOConstDefaultValueDNF */'], + 'in property default value DNF-like' => ['/* testBitwiseAndPropertyDefaultValueDNF */'], + 'in method parameter default value DNF-like' => ['/* testBitwiseAndParamDefaultValueDNF */'], + 'in closure parameter default value' => ['/* testBitwiseAndClosureParamDefault */'], + 'in arrow function parameter default value' => ['/* testBitwiseAndArrowParamDefault */'], + 'in arrow function return expression' => ['/* testBitwiseAndArrowExpression */'], + 'in long array key' => ['/* testBitwiseAndInArrayKey */'], + 'in long array value' => ['/* testBitwiseAndInArrayValue */'], + 'in short array key' => ['/* testBitwiseAndInShortArrayKey */'], + 'in short array value' => ['/* testBitwiseAndInShortArrayValue */'], + 'in parameter in function call' => ['/* testBitwiseAndNonArrowFnFunctionCall */'], + 'function return by reference' => ['/* testBitwiseAnd6 */'], + 'live coding / undetermined' => ['/* testLiveCoding */'], + ]; + + }//end dataBitwiseAnd() + + + /** + * Test that bitwise and tokens when used as part of a intersection type are tokenized as `T_TYPE_INTERSECTION`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataTypeIntersection + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testTypeIntersection($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, [T_BITWISE_AND, T_TYPE_INTERSECTION]); + $tokenArray = $tokens[$target]; + + $this->assertSame(T_TYPE_INTERSECTION, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_TYPE_INTERSECTION (code)'); + $this->assertSame('T_TYPE_INTERSECTION', $tokenArray['type'], 'Token tokenized as '.$tokenArray['type'].', not T_TYPE_INTERSECTION (type)'); + + }//end testTypeIntersection() + + + /** + * Data provider. + * + * @see testTypeIntersection() + * + * @return array> + */ + public static function dataTypeIntersection() + { + return [ + 'type for OO constant' => ['/* testTypeIntersectionOOConstSimple */'], + 'type for OO constant, reversed modifier order' => ['/* testTypeIntersectionOOConstReverseModifierOrder */'], + 'type for OO constant, first of multi-intersect' => ['/* testTypeIntersectionOOConstMulti1 */'], + 'type for OO constant, middle of multi-intersect + comments' => ['/* testTypeIntersectionOOConstMulti2 */'], + 'type for OO constant, last of multi-intersect' => ['/* testTypeIntersectionOOConstMulti3 */'], + 'type for OO constant, using namespace relative names' => ['/* testTypeIntersectionOOConstNamespaceRelative */'], + 'type for OO constant, using partially qualified names' => ['/* testTypeIntersectionOOConstPartiallyQualified */'], + 'type for OO constant, using fully qualified names' => ['/* testTypeIntersectionOOConstFullyQualified */'], + 'type for static property' => ['/* testTypeIntersectionPropertySimple */'], + 'type for static property, reversed modifier order' => ['/* testTypeIntersectionPropertyReverseModifierOrder */'], + 'type for property, first of multi-intersect' => ['/* testTypeIntersectionPropertyMulti1 */'], + 'type for property, middle of multi-intersect, also comments' => ['/* testTypeIntersectionPropertyMulti2 */'], + 'type for property, last of multi-intersect' => ['/* testTypeIntersectionPropertyMulti3 */'], + 'type for property using namespace relative names' => ['/* testTypeIntersectionPropertyNamespaceRelative */'], + 'type for property using partially qualified names' => ['/* testTypeIntersectionPropertyPartiallyQualified */'], + 'type for property using fully qualified names' => ['/* testTypeIntersectionPropertyFullyQualified */'], + 'type for readonly property' => ['/* testTypeIntersectionPropertyWithReadOnlyKeyword */'], + 'type for static readonly property' => ['/* testTypeIntersectionPropertyWithStaticKeyword */'], + 'type for method parameter' => ['/* testTypeIntersectionParam1 */'], + 'type for method parameter, first in multi-intersect' => ['/* testTypeIntersectionParam2 */'], + 'type for method parameter, last in multi-intersect' => ['/* testTypeIntersectionParam3 */'], + 'type for method parameter with namespace relative names' => ['/* testTypeIntersectionParamNamespaceRelative */'], + 'type for method parameter with partially qualified names' => ['/* testTypeIntersectionParamPartiallyQualified */'], + 'type for method parameter with fully qualified names' => ['/* testTypeIntersectionParamFullyQualified */'], + 'type for property in constructor property promotion' => ['/* testTypeIntersectionConstructorPropertyPromotion */'], + 'return type for method' => ['/* testTypeIntersectionReturnType */'], + 'return type for method, first of multi-intersect' => ['/* testTypeIntersectionAbstractMethodReturnType1 */'], + 'return type for method, last of multi-intersect' => ['/* testTypeIntersectionAbstractMethodReturnType2 */'], + 'return type for method with namespace relative names' => ['/* testTypeIntersectionReturnTypeNamespaceRelative */'], + 'return type for method with partially qualified names' => ['/* testTypeIntersectionReturnPartiallyQualified */'], + 'return type for method with fully qualified names' => ['/* testTypeIntersectionReturnFullyQualified */'], + 'type for function parameter with reference' => ['/* testTypeIntersectionWithReference */'], + 'type for function parameter with spread operator' => ['/* testTypeIntersectionWithSpreadOperator */'], + 'DNF type for OO constant, union before DNF' => ['/* testTypeIntersectionConstantTypeUnionBeforeDNF */'], + 'DNF type for property, union after DNF' => ['/* testTypeIntersectionPropertyTypeUnionAfterDNF */'], + 'DNF type for function param, union before and after DNF' => ['/* testTypeIntersectionParamUnionBeforeAndAfterDNF */'], + 'DNF type for function return, union after DNF with null' => ['/* testTypeIntersectionReturnTypeUnionAfterDNF */'], + 'type for closure parameter with illegal nullable' => ['/* testTypeIntersectionClosureParamIllegalNullable */'], + 'return type for closure' => ['/* testTypeIntersectionClosureReturn */'], + 'type for arrow function parameter' => ['/* testTypeIntersectionArrowParam */'], + 'return type for arrow function' => ['/* testTypeIntersectionArrowReturnType */'], + 'type for function parameter, return by ref' => ['/* testTypeIntersectionNonArrowFunctionDeclaration */'], + 'type for function parameter with invalid types' => ['/* testTypeIntersectionWithInvalidTypes */'], + ]; + + }//end dataTypeIntersection() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypedConstantsTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypedConstantsTest.inc new file mode 100644 index 000000000..4c6212b78 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypedConstantsTest.inc @@ -0,0 +1,156 @@ +const ? 0 : 1; + +/* testGlobalConstantCannotBeTyped */ +const GLOBAL_UNTYPED = true; + +/* testGlobalConstantTypedShouldStillBeHandled */ +const ?int GLOBAL_TYPED = true; + +class ClassWithPlainTypedConstants { + /* testClassConstFinalUntyped */ + final const FINAL_UNTYPED = true; + + /* testClassConstVisibilityUntyped */ + public const /*comment*/VISIBLE_UNTYPED = true; + + /* testClassConstTypedTrue */ + const true TYPED_TRUE = true; + /* testClassConstTypedFalse */ + final const false TYPED_FALSE = false; + /* testClassConstTypedNull */ + public const null TYPED_NULL = null; + /* testClassConstTypedBool */ + final protected const/*comment*/bool TYPED_BOOL = false; + /* testClassConstTypedInt */ + private const int TYPED_INT = 0; + /* testClassConstTypedFloat */ + const float TYPED_FLOAT = 0.5; + /* testClassConstTypedString */ + public final const string/*comment*/TYPED_STRING = 'string'; + /* testClassConstTypedArray */ + private final const array TYPED_ARRAY = []; + /* testClassConstTypedObject */ + const + object + TYPED_OBJECT = MyClass::getInstance(); + /* testClassConstTypedIterable */ + const iterable typed_iterable = []; + /* testClassConstTypedMixed */ + const mixed TYPED_MIXED = 'string'; + + /* testClassConstTypedClassUnqualified */ + const MyClass TYPED_UNQUALIFIED_CLASSNAME = MyClass::getInstance(); + /* testClassConstTypedClassFullyQualified */ + public const \MyClass TYPED_FULLY_QUALIFIED_CLASSNAME = MyClass::getInstance(); + /* testClassConstTypedClassNamespaceRelative */ + protected const namespace\MyClass TYPED_NAMESPACE_RELATIVE_CLASSNAME = MyClass::getInstance(); + /* testClassConstTypedClassPartiallyQualified */ + private const Partial\MyClass TYPED_PARTIALLY_QUALIFIED_CLASSNAME = MyClass::getInstance(); + /* testClassConstTypedParent */ + const parent TYPED_PARENT = parent::getInstance(); + + // Illegal types - the fact that these are not allowed in PHP is not the concern of the PHPCS tokenizer. + /* testClassConstTypedCallable */ + protected const callable TYPED_CALLABLE = 'function_name'; + /* testClassConstTypedVoid */ + protected const void TYPED_VOID = null; + /* testClassConstTypedNever */ + protected const NEVER TYPED_NEVER = null; +} + +trait TraitWithNullableTypedConstants { + /* testTraitConstTypedNullableTrue */ + const ?true TYPED_TRUE = true; + /* testTraitConstTypedNullableFalse */ + final const ?false TYPED_FALSE = false; + /* testTraitConstTypedNullableNull */ + public const ?null TYPED_NULL = null; + /* testTraitConstTypedNullableBool */ + final protected const ?bool TYPED_BOOL = false; + /* testTraitConstTypedNullableInt */ + private const ?int TYPED_INT = 0; + /* testTraitConstTypedNullableFloat */ + const ? /*comment*/ float TYPED_FLOAT = 0.5; + /* testTraitConstTypedNullableString */ + public final const ?string TYPED_STRING = 'string'; + /* testTraitConstTypedNullableArray */ + private final const ? array TYPED_ARRAY = []; + /* testTraitConstTypedNullableObject */ + const ?object TYPED_OBJECT = MyClass::getInstance(); + /* testTraitConstTypedNullableIterable */ + const ?iterable TYPED_ITERABLE = []; + /* testTraitConstTypedNullableMixed */ + const ?mixed TYPED_MIXED = 'string'; + + /* testTraitConstTypedNullableClassUnqualified */ + const ?MyClass TYPED_UNQUALIFIED_CLASSNAME = MyClass::getInstance(); + /* testTraitConstTypedNullableClassFullyQualified */ + public const ?\MyClass TYPED_FULLY_QUALIFIED_CLASSNAME = MyClass::getInstance(); + /* testTraitConstTypedNullableClassNamespaceRelative */ + protected const ?namespace\MyClass TYPED_NAMESPACE_RELATIVE_CLASSNAME = MyClass::getInstance(); + /* testTraitConstTypedNullableClassPartiallyQualified */ + private const ?Partial\MyClass TYPED_PARTIALLY_QUALIFIED_CLASSNAME = MyClass::getInstance(); + /* testTraitConstTypedNullableParent */ + const ?parent TYPED_PARENT = parent::getInstance(); +} + +interface InterfaceWithUnionTypedConstants { + /* testInterfaceConstTypedUnionTrueNull */ + const true|null /*comment*/ UNION_TRUE_NULL = true; + /* testInterfaceConstTypedUnionArrayObject */ + const array|object UNION_ARRAY_OBJECT = []; + /* testInterfaceConstTypedUnionStringArrayInt */ + const string | array | int UNION_STRING_ARRAY_INT = 'array middle'; + /* testInterfaceConstTypedUnionFloatBoolArray */ + const float /*comment*/| bool|array UNION_FLOAT_BOOL_ARRAY = false; + /* testInterfaceConstTypedUnionIterableFalse */ + const iterable|false UNION_ITERABLE_FALSE = false; + /* testInterfaceConstTypedUnionUnqualifiedNamespaceRelative */ + const Unqualified|namespace\Relative UNION_UNQUALIFIED_NSRELATIVE = new Unqualified(); + /* testInterfaceConstTypedUnionFullyQualifiedPartiallyQualified */ + const \Fully\Qualified|Partially\Qualified UNION_FQN_PARTIAL = new Partial\Qualified; +} + +enum EnumWithIntersectionTypedConstants { + // Illegal types in a class, but legal in an enum. + /* testEnumConstTypedSelf */ + final const self TYPED_SELF = self::getInstance(); + /* testEnumConstTypedStatic */ + const static TYPED_STATIC = static::getInstance(); + /* testEnumConstTypedNullableSelf */ + public const ?self TYPED_SELF = self::getInstance(); + /* testEnumConstTypedNullableStatic */ + const ?static TYPED_STATIC = static::getInstance(); + + /* testEnumConstTypedIntersectUnqualifiedNamespaceRelative */ + const Unqualified&namespace\Relative UNION_UNQUALIFIED_NSRELATIVE = new Unqualified(); + /* testEnumConstTypedIntersectFullyQualifiedPartiallyQualified */ + const \Fully\Qualified&Partially\Qualified UNION_FQN_PARTIAL = new Partial\Qualified; +} + +$anonClassWithDNFTypes = new class() extends Something { + /* testAnonClassConstDNFTypeNullAfter */ + const (A&B)|null DNF_OR_NULL_1 = null; + /* testAnonClassConstDNFTypeNullBefore */ + public final const NULL|(A&B) DNF_OR_NULL_2 = null; + /* testAnonClassConstDNFTypeFalseBefore */ + final const false|(C&D) DNF_OR_FALSE = false; + /* testAnonClassConstDNFTypeTrueAfter */ + private final const ( F & G ) | true DNF_OR_ARRAY = true; + /* testAnonClassConstDNFTypeTrueBeforeFalseAfter */ + public const TRUE|(SplBool&Stringable)|FALSE DNF_OR_BOOL = true; + /* testAnonClassConstDNFTypeArrayAfter */ + final protected const (Traversable&Countable)|array DNF_OR_ARRAY_1 = []; + /* testAnonClassConstDNFTypeArrayBefore */ + private const array /*comment*/ | ( Traversable /*comment*/ & Countable ) DNF_OR_ARRAY_2 = new MyClass; + /* testAnonClassConstDNFTypeInvalidNullable */ + const ? (Invalid&Fatal)|NullableNotAllowed DNF = null; + + /* testAnonClassConstDNFTypeFQNRelativePartiallyQualified */ + const (\FQN&namespace\Relative)|Partially\Qualified DNF_CLASSNAME = MyClass::getInstance(); + /* testAnonClassConstDNFTypeParentSelfStatic */ + const (parent&self)|static DNF_PARENT = parent::getInstance(); +}; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypedConstantsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypedConstantsTest.php new file mode 100644 index 000000000..60c21b9dc --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/TypedConstantsTest.php @@ -0,0 +1,668 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; + +final class TypedConstantsTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that a ? after a "const" which is not the constant keyword is tokenized as ternary then, not as the nullable operator. + * + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testTernaryIsInlineThen() + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken('/* testTernaryIsTernaryAfterConst */', [T_NULLABLE, T_INLINE_THEN]); + + $this->assertSame( + T_INLINE_THEN, + $tokens[$target]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$target]['code']).', not T_INLINE_THEN (code)' + ); + $this->assertSame( + 'T_INLINE_THEN', + $tokens[$target]['type'], + 'Token tokenized as '.$tokens[$target]['type'].', not T_INLINE_THEN (type)' + ); + + }//end testTernaryIsInlineThen() + + + /** + * Test the token name for an untyped constant is tokenized as T_STRING. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataUntypedConstant + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * + * @return void + */ + public function testUntypedConstant($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, T_CONST); + + for ($i = ($target + 1); $tokens[$i]['code'] !== T_EQUAL; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { + // Ignore whitespace and comments, not interested in the tokenization of those. + continue; + } + + $this->assertSame( + T_STRING, + $tokens[$i]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$i]['code']).', not T_STRING (code)' + ); + $this->assertSame( + 'T_STRING', + $tokens[$i]['type'], + 'Token tokenized as '.$tokens[$i]['type'].', not T_STRING (type)' + ); + } + + }//end testUntypedConstant() + + + /** + * Data provider. + * + * @see testUntypedConstant() + * + * @return array> + */ + public static function dataUntypedConstant() + { + return [ + 'non OO constant (untyped)' => [ + 'testMarker' => '/* testGlobalConstantCannotBeTyped */', + ], + 'OO constant, final, untyped' => [ + 'testMarker' => '/* testClassConstFinalUntyped */', + ], + 'OO constant, public, untyped, with comment' => [ + 'testMarker' => '/* testClassConstVisibilityUntyped */', + ], + ]; + + }//end dataUntypedConstant() + + + /** + * Test the tokens in the type of a typed constant as well as the constant name are tokenized correctly. + * + * @param string $testMarker The comment prefacing the target token. + * @param array $sequence The expected token sequence. + * + * @dataProvider dataTypedConstant + * @dataProvider dataNullableTypedConstant + * @dataProvider dataUnionTypedConstant + * @dataProvider dataIntersectionTypedConstant + * @dataProvider dataDNFTypedConstant + * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize + * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional + * + * @return void + */ + public function testTypedConstant($testMarker, array $sequence) + { + $tokens = $this->phpcsFile->getTokens(); + $target = $this->getTargetToken($testMarker, T_CONST); + + $current = 0; + for ($i = ($target + 1); $tokens[$i]['code'] !== T_EQUAL; $i++) { + if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { + // Ignore whitespace and comments, not interested in the tokenization of those. + continue; + } + + $this->assertSame( + $sequence[$current], + $tokens[$i]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$i]['code']).', not '.Tokens::tokenName($sequence[$current]).' (code)' + ); + + ++$current; + } + + }//end testTypedConstant() + + + /** + * Data provider. + * + * @see testTypedConstant() + * + * @return array>> + */ + public static function dataTypedConstant() + { + $data = [ + 'simple type: true' => [ + 'testMarker' => '/* testClassConstTypedTrue */', + 'sequence' => [T_TRUE], + ], + 'simple type: false' => [ + 'testMarker' => '/* testClassConstTypedFalse */', + 'sequence' => [T_FALSE], + ], + 'simple type: null' => [ + 'testMarker' => '/* testClassConstTypedNull */', + 'sequence' => [T_NULL], + ], + 'simple type: bool' => [ + 'testMarker' => '/* testClassConstTypedBool */', + 'sequence' => [T_STRING], + ], + 'simple type: int' => [ + 'testMarker' => '/* testClassConstTypedInt */', + 'sequence' => [T_STRING], + ], + 'simple type: float' => [ + 'testMarker' => '/* testClassConstTypedFloat */', + 'sequence' => [T_STRING], + ], + 'simple type: string' => [ + 'testMarker' => '/* testClassConstTypedString */', + 'sequence' => [T_STRING], + ], + 'simple type: array' => [ + 'testMarker' => '/* testClassConstTypedArray */', + 'sequence' => [T_STRING], + ], + 'simple type: object' => [ + 'testMarker' => '/* testClassConstTypedObject */', + 'sequence' => [T_STRING], + ], + 'simple type: iterable' => [ + 'testMarker' => '/* testClassConstTypedIterable */', + 'sequence' => [T_STRING], + ], + 'simple type: mixed' => [ + 'testMarker' => '/* testClassConstTypedMixed */', + 'sequence' => [T_STRING], + ], + 'simple type: unqualified name' => [ + 'testMarker' => '/* testClassConstTypedClassUnqualified */', + 'sequence' => [T_STRING], + ], + 'simple type: fully qualified name' => [ + 'testMarker' => '/* testClassConstTypedClassFullyQualified */', + 'sequence' => [ + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'simple type: namespace relative name' => [ + 'testMarker' => '/* testClassConstTypedClassNamespaceRelative */', + 'sequence' => [ + T_NAMESPACE, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'simple type: partially qualified name' => [ + 'testMarker' => '/* testClassConstTypedClassPartiallyQualified */', + 'sequence' => [ + T_STRING, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'simple type: parent' => [ + 'testMarker' => '/* testClassConstTypedParent */', + 'sequence' => [T_PARENT], + ], + + 'simple type: callable (invalid)' => [ + 'testMarker' => '/* testClassConstTypedCallable */', + 'sequence' => [T_CALLABLE], + ], + 'simple type: void (invalid)' => [ + 'testMarker' => '/* testClassConstTypedVoid */', + 'sequence' => [T_STRING], + ], + 'simple type: NEVER (invalid)' => [ + 'testMarker' => '/* testClassConstTypedNever */', + 'sequence' => [T_STRING], + ], + + 'simple type: self (only valid in enum)' => [ + 'testMarker' => '/* testEnumConstTypedSelf */', + 'sequence' => [T_SELF], + ], + 'simple type: static (only valid in enum)' => [ + 'testMarker' => '/* testEnumConstTypedStatic */', + 'sequence' => [T_STATIC], + ], + ]; + + // The constant name, as the last token in the sequence, is always T_STRING. + foreach ($data as $key => $value) { + $data[$key]['sequence'][] = T_STRING; + } + + return $data; + + }//end dataTypedConstant() + + + /** + * Data provider. + * + * @see testTypedConstant() + * + * @return array> + */ + public static function dataNullableTypedConstant() + { + $data = [ + // Global constants cannot be typed in PHP, but that's not our concern. + 'global typed constant, invalid, ?int' => [ + 'testMarker' => '/* testGlobalConstantTypedShouldStillBeHandled */', + 'sequence' => [T_STRING], + ], + + // OO constants. + 'nullable type: true' => [ + 'testMarker' => '/* testTraitConstTypedNullableTrue */', + 'sequence' => [T_TRUE], + ], + 'nullable type: false' => [ + 'testMarker' => '/* testTraitConstTypedNullableFalse */', + 'sequence' => [T_FALSE], + ], + 'nullable type: null' => [ + 'testMarker' => '/* testTraitConstTypedNullableNull */', + 'sequence' => [T_NULL], + ], + 'nullable type: bool' => [ + 'testMarker' => '/* testTraitConstTypedNullableBool */', + 'sequence' => [T_STRING], + ], + 'nullable type: int' => [ + 'testMarker' => '/* testTraitConstTypedNullableInt */', + 'sequence' => [T_STRING], + ], + 'nullable type: float' => [ + 'testMarker' => '/* testTraitConstTypedNullableFloat */', + 'sequence' => [T_STRING], + ], + 'nullable type: string' => [ + 'testMarker' => '/* testTraitConstTypedNullableString */', + 'sequence' => [T_STRING], + ], + 'nullable type: array' => [ + 'testMarker' => '/* testTraitConstTypedNullableArray */', + 'sequence' => [T_STRING], + ], + 'nullable type: object' => [ + 'testMarker' => '/* testTraitConstTypedNullableObject */', + 'sequence' => [T_STRING], + ], + 'nullable type: iterable' => [ + 'testMarker' => '/* testTraitConstTypedNullableIterable */', + 'sequence' => [T_STRING], + ], + 'nullable type: mixed' => [ + 'testMarker' => '/* testTraitConstTypedNullableMixed */', + 'sequence' => [T_STRING], + ], + 'nullable type: unqualified name' => [ + 'testMarker' => '/* testTraitConstTypedNullableClassUnqualified */', + 'sequence' => [T_STRING], + ], + 'nullable type: fully qualified name' => [ + 'testMarker' => '/* testTraitConstTypedNullableClassFullyQualified */', + 'sequence' => [ + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'nullable type: namespace relative name' => [ + 'testMarker' => '/* testTraitConstTypedNullableClassNamespaceRelative */', + 'sequence' => [ + T_NAMESPACE, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'nullable type: partially qualified name' => [ + 'testMarker' => '/* testTraitConstTypedNullableClassPartiallyQualified */', + 'sequence' => [ + T_STRING, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'nullable type: parent' => [ + 'testMarker' => '/* testTraitConstTypedNullableParent */', + 'sequence' => [T_PARENT], + ], + + 'nullable type: self (only valid in enum)' => [ + 'testMarker' => '/* testEnumConstTypedNullableSelf */', + 'sequence' => [T_SELF], + ], + 'nullable type: static (only valid in enum)' => [ + 'testMarker' => '/* testEnumConstTypedNullableStatic */', + 'sequence' => [T_STATIC], + ], + ]; + + // The nullable operator, as the first token in the sequence, is always T_NULLABLE. + // The constant name, as the last token in the sequence, is always T_STRING. + foreach ($data as $key => $value) { + array_unshift($data[$key]['sequence'], T_NULLABLE); + $data[$key]['sequence'][] = T_STRING; + } + + return $data; + + }//end dataNullableTypedConstant() + + + /** + * Data provider. + * + * @see testTypedConstant() + * + * @return array> + */ + public static function dataUnionTypedConstant() + { + $data = [ + 'union type: true|null' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionTrueNull */', + 'sequence' => [ + T_TRUE, + T_TYPE_UNION, + T_NULL, + ], + ], + 'union type: array|object' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionArrayObject */', + 'sequence' => [ + T_STRING, + T_TYPE_UNION, + T_STRING, + ], + ], + 'union type: string|array|int' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionStringArrayInt */', + 'sequence' => [ + T_STRING, + T_TYPE_UNION, + T_STRING, + T_TYPE_UNION, + T_STRING, + ], + ], + 'union type: float|bool|array' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionFloatBoolArray */', + 'sequence' => [ + T_STRING, + T_TYPE_UNION, + T_STRING, + T_TYPE_UNION, + T_STRING, + ], + ], + 'union type: iterable|false' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionIterableFalse */', + 'sequence' => [ + T_STRING, + T_TYPE_UNION, + T_FALSE, + ], + ], + 'union type: Unqualified|Namespace\Relative' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionUnqualifiedNamespaceRelative */', + 'sequence' => [ + T_STRING, + T_TYPE_UNION, + T_NAMESPACE, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'union type: FQN|Partial' => [ + 'testMarker' => '/* testInterfaceConstTypedUnionFullyQualifiedPartiallyQualified */', + 'sequence' => [ + T_NS_SEPARATOR, + T_STRING, + T_NS_SEPARATOR, + T_STRING, + T_TYPE_UNION, + T_STRING, + T_NS_SEPARATOR, + T_STRING, + ], + ], + ]; + + // The constant name, as the last token in the sequence, is always T_STRING. + foreach ($data as $key => $value) { + $data[$key]['sequence'][] = T_STRING; + } + + return $data; + + }//end dataUnionTypedConstant() + + + /** + * Data provider. + * + * @see testTypedConstant() + * + * @return array> + */ + public static function dataIntersectionTypedConstant() + { + $data = [ + 'intersection type: Unqualified&Namespace\Relative' => [ + 'testMarker' => '/* testEnumConstTypedIntersectUnqualifiedNamespaceRelative */', + 'sequence' => [ + T_STRING, + T_TYPE_INTERSECTION, + T_NAMESPACE, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'intersection type: FQN&Partial' => [ + 'testMarker' => '/* testEnumConstTypedIntersectFullyQualifiedPartiallyQualified */', + 'sequence' => [ + T_NS_SEPARATOR, + T_STRING, + T_NS_SEPARATOR, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_NS_SEPARATOR, + T_STRING, + ], + ], + ]; + + // The constant name, as the last token in the sequence, is always T_STRING. + foreach ($data as $key => $value) { + $data[$key]['sequence'][] = T_STRING; + } + + return $data; + + }//end dataIntersectionTypedConstant() + + + /** + * Data provider. + * + * @see testTypedConstant() + * + * @return array> + */ + public static function dataDNFTypedConstant() + { + $data = [ + 'DNF type: null after' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeNullAfter */', + 'sequence' => [ + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_NULL, + ], + ], + 'DNF type: null before' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeNullBefore */', + 'sequence' => [ + T_NULL, + T_TYPE_UNION, + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + ], + ], + 'DNF type: false before' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeFalseBefore */', + 'sequence' => [ + T_FALSE, + T_TYPE_UNION, + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + ], + ], + 'DNF type: true after' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeTrueAfter */', + 'sequence' => [ + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_TRUE, + ], + ], + 'DNF type: true before, false after' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeTrueBeforeFalseAfter */', + 'sequence' => [ + T_TRUE, + T_TYPE_UNION, + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_FALSE, + ], + ], + 'DNF type: array after' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeArrayAfter */', + 'sequence' => [ + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_STRING, + ], + ], + 'DNF type: array before' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeArrayBefore */', + 'sequence' => [ + T_STRING, + T_TYPE_UNION, + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + ], + ], + 'DNF type: invalid nullable DNF' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeInvalidNullable */', + 'sequence' => [ + T_NULLABLE, + T_TYPE_OPEN_PARENTHESIS, + T_STRING, + T_TYPE_INTERSECTION, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_STRING, + ], + ], + 'DNF type: FQN/namespace relative/partially qualified names' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeFQNRelativePartiallyQualified */', + 'sequence' => [ + T_TYPE_OPEN_PARENTHESIS, + T_NS_SEPARATOR, + T_STRING, + T_TYPE_INTERSECTION, + T_NAMESPACE, + T_NS_SEPARATOR, + T_STRING, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_STRING, + T_NS_SEPARATOR, + T_STRING, + ], + ], + 'DNF type: invalid self/parent/static' => [ + 'testMarker' => '/* testAnonClassConstDNFTypeParentSelfStatic */', + 'sequence' => [ + T_TYPE_OPEN_PARENTHESIS, + T_PARENT, + T_TYPE_INTERSECTION, + T_SELF, + T_TYPE_CLOSE_PARENTHESIS, + T_TYPE_UNION, + T_STATIC, + ], + ], + ]; + + // The constant name, as the last token in the sequence, is always T_STRING. + foreach ($data as $key => $value) { + $data[$key]['sequence'][] = T_STRING; + } + + return $data; + + }//end dataDNFTypedConstant() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/UndoNamespacedNameSingleTokenTest.inc similarity index 98% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/UndoNamespacedNameSingleTokenTest.inc index 540f72c9d..65c551a84 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/UndoNamespacedNameSingleTokenTest.inc @@ -79,7 +79,7 @@ class MyClass /* testFunctionCallUnqualified */ echo function_name(); - /* testFunctionPartiallyQualified */ + /* testFunctionCallPartiallyQualified */ echo Level\function_name(); /* testCatchRelative */ diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/UndoNamespacedNameSingleTokenTest.php similarity index 77% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.php rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/UndoNamespacedNameSingleTokenTest.php index 24667e486..18e227576 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/UndoNamespacedNameSingleTokenTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/PHP/UndoNamespacedNameSingleTokenTest.php @@ -14,22 +14,23 @@ * * @author Juliette Reinders Folmer * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\PHP; -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; +use PHP_CodeSniffer\Util\Tokens; -class UndoNamespacedNameSingleTokenTest extends AbstractMethodUnitTest +final class UndoNamespacedNameSingleTokenTest extends AbstractTokenizerTestCase { /** * Test that identifier names are tokenized the same across PHP versions, based on the PHP 5/7 tokenization. * - * @param string $testMarker The comment prefacing the test. - * @param array $expectedTokens The tokenization expected. + * @param string $testMarker The comment prefacing the test. + * @param array> $expectedTokens The tokenization expected. * * @dataProvider dataIdentifierTokenization * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize @@ -38,12 +39,20 @@ class UndoNamespacedNameSingleTokenTest extends AbstractMethodUnitTest */ public function testIdentifierTokenization($testMarker, $expectedTokens) { - $tokens = self::$phpcsFile->getTokens(); + $tokens = $this->phpcsFile->getTokens(); $identifier = $this->getTargetToken($testMarker, constant($expectedTokens[0]['type'])); foreach ($expectedTokens as $key => $tokenInfo) { - $this->assertSame(constant($tokenInfo['type']), $tokens[$identifier]['code']); - $this->assertSame($tokenInfo['type'], $tokens[$identifier]['type']); + $this->assertSame( + constant($tokenInfo['type']), + $tokens[$identifier]['code'], + 'Token tokenized as '.Tokens::tokenName($tokens[$identifier]['code']).', not '.$tokenInfo['type'].' (code)' + ); + $this->assertSame( + $tokenInfo['type'], + $tokens[$identifier]['type'], + 'Token tokenized as '.$tokens[$identifier]['type'].', not '.$tokenInfo['type'].' (type)' + ); $this->assertSame($tokenInfo['content'], $tokens[$identifier]['content']); ++$identifier; @@ -57,14 +66,14 @@ public function testIdentifierTokenization($testMarker, $expectedTokens) * * @see testIdentifierTokenization() * - * @return array + * @return array>>> */ - public function dataIdentifierTokenization() + public static function dataIdentifierTokenization() { return [ - [ - '/* testNamespaceDeclaration */', - [ + 'namespace declaration' => [ + 'testMarker' => '/* testNamespaceDeclaration */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Package', @@ -75,9 +84,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testNamespaceDeclarationWithLevels */', - [ + 'namespace declaration, multi-level' => [ + 'testMarker' => '/* testNamespaceDeclarationWithLevels */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Vendor', @@ -104,9 +113,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testUseStatement */', - [ + 'import use statement, class' => [ + 'testMarker' => '/* testUseStatement */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'ClassName', @@ -117,9 +126,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testUseStatementWithLevels */', - [ + 'import use statement, class, multi-level' => [ + 'testMarker' => '/* testUseStatementWithLevels */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Vendor', @@ -146,9 +155,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionUseStatement */', - [ + 'import use statement, function' => [ + 'testMarker' => '/* testFunctionUseStatement */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'function', @@ -167,9 +176,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionUseStatementWithLevels */', - [ + 'import use statement, function, multi-level' => [ + 'testMarker' => '/* testFunctionUseStatementWithLevels */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'function', @@ -204,9 +213,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testConstantUseStatement */', - [ + 'import use statement, constant' => [ + 'testMarker' => '/* testConstantUseStatement */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'const', @@ -225,9 +234,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testConstantUseStatementWithLevels */', - [ + 'import use statement, constant, multi-level' => [ + 'testMarker' => '/* testConstantUseStatementWithLevels */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'const', @@ -262,9 +271,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testMultiUseUnqualified */', - [ + 'import use statement, multi-statement, unqualified class' => [ + 'testMarker' => '/* testMultiUseUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'UnqualifiedClassName', @@ -275,9 +284,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testMultiUsePartiallyQualified */', - [ + 'import use statement, multi-statement, partially qualified class' => [ + 'testMarker' => '/* testMultiUsePartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Sublevel', @@ -296,9 +305,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testGroupUseStatement */', - [ + 'group use statement, multi-level prefix, mix inside group' => [ + 'testMarker' => '/* testGroupUseStatement */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Vendor', @@ -492,9 +501,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testClassName */', - [ + 'class declaration' => [ + 'testMarker' => '/* testClassName */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'MyClass', @@ -506,9 +515,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testExtendedFQN */', - [ + 'class declaration, extends fully qualified name' => [ + 'testMarker' => '/* testExtendedFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -540,9 +549,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testImplementsRelative */', - [ + 'class declaration, implements namespace relative name' => [ + 'testMarker' => '/* testImplementsRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -561,9 +570,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testImplementsFQN */', - [ + 'class declaration, implements fully qualified name' => [ + 'testMarker' => '/* testImplementsFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -586,9 +595,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testImplementsUnqualified */', - [ + 'class declaration, implements unqualified name' => [ + 'testMarker' => '/* testImplementsUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Unqualified', @@ -599,9 +608,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testImplementsPartiallyQualified */', - [ + 'class declaration, implements partially qualified name' => [ + 'testMarker' => '/* testImplementsPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Sub', @@ -629,9 +638,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionName */', - [ + 'method declaration' => [ + 'testMarker' => '/* testFunctionName */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'function_name', @@ -642,9 +651,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testTypeDeclarationRelative */', - [ + 'param type declaration, namespace relative name' => [ + 'testMarker' => '/* testTypeDeclarationRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -667,9 +676,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testTypeDeclarationFQN */', - [ + 'param type declaration, fully qualified name' => [ + 'testMarker' => '/* testTypeDeclarationFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -700,9 +709,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testTypeDeclarationUnqualified */', - [ + 'param type declaration, unqualified name' => [ + 'testMarker' => '/* testTypeDeclarationUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Unqualified', @@ -717,9 +726,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testTypeDeclarationPartiallyQualified */', - [ + 'param type declaration, partially qualified name' => [ + 'testMarker' => '/* testTypeDeclarationPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_NULLABLE', 'content' => '?', @@ -742,9 +751,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testReturnTypeFQN */', - [ + 'return type declaration, fully qualified name' => [ + 'testMarker' => '/* testReturnTypeFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NULLABLE', 'content' => '?', @@ -763,9 +772,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionCallRelative */', - [ + 'function call, namespace relative name' => [ + 'testMarker' => '/* testFunctionCallRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'NameSpace', @@ -784,9 +793,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionCallFQN */', - [ + 'function call, fully qualified name' => [ + 'testMarker' => '/* testFunctionCallFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -817,9 +826,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionCallUnqualified */', - [ + 'function call, unqualified name' => [ + 'testMarker' => '/* testFunctionCallUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'function_name', @@ -830,9 +839,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testFunctionPartiallyQualified */', - [ + 'function call, partially qualified name' => [ + 'testMarker' => '/* testFunctionCallPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Level', @@ -851,9 +860,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testCatchRelative */', - [ + 'catch, namespace relative name' => [ + 'testMarker' => '/* testCatchRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -880,9 +889,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testCatchFQN */', - [ + 'catch, fully qualified name' => [ + 'testMarker' => '/* testCatchFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -897,9 +906,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testCatchUnqualified */', - [ + 'catch, unqualified name' => [ + 'testMarker' => '/* testCatchUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Exception', @@ -910,9 +919,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testCatchPartiallyQualified */', - [ + 'catch, partially qualified name' => [ + 'testMarker' => '/* testCatchPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Level', @@ -931,9 +940,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testNewRelative */', - [ + 'class instantiation, namespace relative name' => [ + 'testMarker' => '/* testNewRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -952,9 +961,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testNewFQN */', - [ + 'class instantiation, fully qualified name' => [ + 'testMarker' => '/* testNewFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -977,9 +986,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testNewUnqualified */', - [ + 'class instantiation, unqualified name' => [ + 'testMarker' => '/* testNewUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'ClassName', @@ -990,9 +999,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testNewPartiallyQualified */', - [ + 'class instantiation, partially qualified name' => [ + 'testMarker' => '/* testNewPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Level', @@ -1011,9 +1020,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testDoubleColonRelative */', - [ + 'double colon class access, namespace relative name' => [ + 'testMarker' => '/* testDoubleColonRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -1032,9 +1041,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testDoubleColonFQN */', - [ + 'double colon class access, fully qualified name' => [ + 'testMarker' => '/* testDoubleColonFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -1049,9 +1058,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testDoubleColonUnqualified */', - [ + 'double colon class access, unqualified name' => [ + 'testMarker' => '/* testDoubleColonUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'ClassName', @@ -1062,9 +1071,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testDoubleColonPartiallyQualified */', - [ + 'double colon class access, partially qualified name' => [ + 'testMarker' => '/* testDoubleColonPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Level', @@ -1083,9 +1092,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testInstanceOfRelative */', - [ + 'instanceof, namespace relative name' => [ + 'testMarker' => '/* testInstanceOfRelative */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -1104,9 +1113,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testInstanceOfFQN */', - [ + 'instanceof, fully qualified name' => [ + 'testMarker' => '/* testInstanceOfFQN */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', @@ -1129,9 +1138,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testInstanceOfUnqualified */', - [ + 'instanceof, unqualified name' => [ + 'testMarker' => '/* testInstanceOfUnqualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'ClassName', @@ -1142,9 +1151,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testInstanceOfPartiallyQualified */', - [ + 'instanceof, partially qualified name' => [ + 'testMarker' => '/* testInstanceOfPartiallyQualified */', + 'expectedTokens' => [ [ 'type' => 'T_STRING', 'content' => 'Partially', @@ -1163,9 +1172,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testInvalidInPHP8Whitespace */', - [ + 'function call, namespace relative, with whitespace (invalid in PHP 8)' => [ + 'testMarker' => '/* testInvalidInPHP8Whitespace */', + 'expectedTokens' => [ [ 'type' => 'T_NAMESPACE', 'content' => 'namespace', @@ -1213,9 +1222,9 @@ public function dataIdentifierTokenization() ], ], ], - [ - '/* testInvalidInPHP8Comments */', - [ + 'double colon class access, fully qualified, with whitespace and comments (invalid in PHP 8)' => [ + 'testMarker' => '/* testInvalidInPHP8Comments */', + 'expectedTokens' => [ [ 'type' => 'T_NS_SEPARATOR', 'content' => '\\', diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php deleted file mode 100644 index 23cbd9877..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php +++ /dev/null @@ -1,98 +0,0 @@ - - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class ScopeSettingWithNamespaceOperatorTest extends AbstractMethodUnitTest -{ - - - /** - * Test that the scope opener/closers are set correctly when the namespace keyword is encountered as an operator. - * - * @param string $testMarker The comment which prefaces the target tokens in the test file. - * @param int|string[] $tokenTypes The token type to search for. - * @param int|string[] $open Optional. The token type for the scope opener. - * @param int|string[] $close Optional. The token type for the scope closer. - * - * @dataProvider dataScopeSetting - * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap - * - * @return void - */ - public function testScopeSetting($testMarker, $tokenTypes, $open=T_OPEN_CURLY_BRACKET, $close=T_CLOSE_CURLY_BRACKET) - { - $tokens = self::$phpcsFile->getTokens(); - - $target = $this->getTargetToken($testMarker, $tokenTypes); - $opener = $this->getTargetToken($testMarker, $open); - $closer = $this->getTargetToken($testMarker, $close); - - $this->assertArrayHasKey('scope_opener', $tokens[$target], 'Scope opener missing'); - $this->assertArrayHasKey('scope_closer', $tokens[$target], 'Scope closer missing'); - $this->assertSame($opener, $tokens[$target]['scope_opener'], 'Scope opener not same'); - $this->assertSame($closer, $tokens[$target]['scope_closer'], 'Scope closer not same'); - - $this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Scope opener missing for open curly'); - $this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Scope closer missing for open curly'); - $this->assertSame($opener, $tokens[$opener]['scope_opener'], 'Scope opener not same for open curly'); - $this->assertSame($closer, $tokens[$opener]['scope_closer'], 'Scope closer not same for open curly'); - - $this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Scope opener missing for close curly'); - $this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Scope closer missing for close curly'); - $this->assertSame($opener, $tokens[$closer]['scope_opener'], 'Scope opener not same for close curly'); - $this->assertSame($closer, $tokens[$closer]['scope_closer'], 'Scope closer not same for close curly'); - - }//end testScopeSetting() - - - /** - * Data provider. - * - * @see testScopeSetting() - * - * @return array - */ - public function dataScopeSetting() - { - return [ - [ - '/* testClassExtends */', - [T_CLASS], - ], - [ - '/* testClassImplements */', - [T_ANON_CLASS], - ], - [ - '/* testInterfaceExtends */', - [T_INTERFACE], - ], - [ - '/* testFunctionReturnType */', - [T_FUNCTION], - ], - [ - '/* testClosureReturnType */', - [T_CLOSURE], - ], - [ - '/* testArrowFunctionReturnType */', - [T_FN], - [T_FN_ARROW], - [T_SEMICOLON], - ], - ]; - - }//end dataScopeSetting() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ShortArrayTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ShortArrayTest.php deleted file mode 100644 index 0484d4fcb..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ShortArrayTest.php +++ /dev/null @@ -1,132 +0,0 @@ - - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; - -class ShortArrayTest extends AbstractMethodUnitTest -{ - - - /** - * Test that real square brackets are still tokenized as square brackets. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * - * @dataProvider dataSquareBrackets - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testSquareBrackets($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $opener = $this->getTargetToken($testMarker, [T_OPEN_SQUARE_BRACKET, T_OPEN_SHORT_ARRAY]); - $this->assertSame(T_OPEN_SQUARE_BRACKET, $tokens[$opener]['code']); - $this->assertSame('T_OPEN_SQUARE_BRACKET', $tokens[$opener]['type']); - - if (isset($tokens[$opener]['bracket_closer']) === true) { - $closer = $tokens[$opener]['bracket_closer']; - $this->assertSame(T_CLOSE_SQUARE_BRACKET, $tokens[$closer]['code']); - $this->assertSame('T_CLOSE_SQUARE_BRACKET', $tokens[$closer]['type']); - } - - }//end testSquareBrackets() - - - /** - * Data provider. - * - * @see testSquareBrackets() - * - * @return array - */ - public function dataSquareBrackets() - { - return [ - ['/* testArrayAccess1 */'], - ['/* testArrayAccess2 */'], - ['/* testArrayAssignment */'], - ['/* testFunctionCallDereferencing */'], - ['/* testMethodCallDereferencing */'], - ['/* testStaticMethodCallDereferencing */'], - ['/* testPropertyDereferencing */'], - ['/* testPropertyDereferencingWithInaccessibleName */'], - ['/* testStaticPropertyDereferencing */'], - ['/* testStringDereferencing */'], - ['/* testStringDereferencingDoubleQuoted */'], - ['/* testConstantDereferencing */'], - ['/* testClassConstantDereferencing */'], - ['/* testMagicConstantDereferencing */'], - ['/* testArrayAccessCurlyBraces */'], - ['/* testArrayLiteralDereferencing */'], - ['/* testShortArrayLiteralDereferencing */'], - ['/* testClassMemberDereferencingOnInstantiation1 */'], - ['/* testClassMemberDereferencingOnInstantiation2 */'], - ['/* testClassMemberDereferencingOnClone */'], - ['/* testNullsafeMethodCallDereferencing */'], - ['/* testInterpolatedStringDereferencing */'], - ['/* testLiveCoding */'], - ]; - - }//end dataSquareBrackets() - - - /** - * Test that short arrays and short lists are still tokenized as short arrays. - * - * @param string $testMarker The comment which prefaces the target token in the test file. - * - * @dataProvider dataShortArrays - * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional - * - * @return void - */ - public function testShortArrays($testMarker) - { - $tokens = self::$phpcsFile->getTokens(); - - $opener = $this->getTargetToken($testMarker, [T_OPEN_SQUARE_BRACKET, T_OPEN_SHORT_ARRAY]); - $this->assertSame(T_OPEN_SHORT_ARRAY, $tokens[$opener]['code']); - $this->assertSame('T_OPEN_SHORT_ARRAY', $tokens[$opener]['type']); - - if (isset($tokens[$opener]['bracket_closer']) === true) { - $closer = $tokens[$opener]['bracket_closer']; - $this->assertSame(T_CLOSE_SHORT_ARRAY, $tokens[$closer]['code']); - $this->assertSame('T_CLOSE_SHORT_ARRAY', $tokens[$closer]['type']); - } - - }//end testShortArrays() - - - /** - * Data provider. - * - * @see testShortArrays() - * - * @return array - */ - public function dataShortArrays() - { - return [ - ['/* testShortArrayDeclarationEmpty */'], - ['/* testShortArrayDeclarationWithOneValue */'], - ['/* testShortArrayDeclarationWithMultipleValues */'], - ['/* testShortArrayDeclarationWithDereferencing */'], - ['/* testShortListDeclaration */'], - ['/* testNestedListDeclaration */'], - ['/* testArrayWithinFunctionCall */'], - ]; - - }//end dataShortArrays() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceWinTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceWinTest.php deleted file mode 100644 index 9ab66e9c7..000000000 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/StableCommentWhitespaceWinTest.php +++ /dev/null @@ -1,367 +0,0 @@ - - * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Tests\Core\Tokenizer; - -use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; -use PHP_CodeSniffer\Util\Tokens; - -class StableCommentWhitespaceWinTest extends AbstractMethodUnitTest -{ - - - /** - * Test that comment tokenization with new lines at the end of the comment is stable. - * - * @param string $testMarker The comment prefacing the test. - * @param array $expectedTokens The tokenization expected. - * - * @dataProvider dataCommentTokenization - * @covers PHP_CodeSniffer\Tokenizers\PHP::tokenize - * - * @return void - */ - public function testCommentTokenization($testMarker, $expectedTokens) - { - $tokens = self::$phpcsFile->getTokens(); - $comment = $this->getTargetToken($testMarker, Tokens::$commentTokens); - - foreach ($expectedTokens as $key => $tokenInfo) { - $this->assertSame(constant($tokenInfo['type']), $tokens[$comment]['code']); - $this->assertSame($tokenInfo['type'], $tokens[$comment]['type']); - $this->assertSame($tokenInfo['content'], $tokens[$comment]['content']); - - ++$comment; - } - - }//end testCommentTokenization() - - - /** - * Data provider. - * - * @see testCommentTokenization() - * - * @return array - */ - public function dataCommentTokenization() - { - return [ - [ - '/* testSingleLineSlashComment */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testSingleLineSlashCommentTrailing */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testSingleLineSlashAnnotation */', - [ - [ - 'type' => 'T_PHPCS_DISABLE', - 'content' => '// phpcs:disable Stnd.Cat -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineSlashComment */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment1 -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment2 -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment3 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineSlashCommentWithIndent */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment1 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' ', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment2 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' ', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment3 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineSlashCommentWithAnnotationStart */', - [ - [ - 'type' => 'T_PHPCS_IGNORE', - 'content' => '// phpcs:ignore Stnd.Cat -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment2 -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment3 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineSlashCommentWithAnnotationMiddle */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment1 -', - ], - [ - 'type' => 'T_PHPCS_IGNORE', - 'content' => '// @phpcs:ignore Stnd.Cat -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment3 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineSlashCommentWithAnnotationEnd */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment1 -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '// Comment2 -', - ], - [ - 'type' => 'T_PHPCS_IGNORE', - 'content' => '// phpcs:ignore Stnd.Cat -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testSingleLineSlashCommentNoNewLineAtEnd */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '// Slash ', - ], - [ - 'type' => 'T_CLOSE_TAG', - 'content' => '?> -', - ], - ], - ], - [ - '/* testSingleLineHashComment */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testSingleLineHashCommentTrailing */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineHashComment */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment1 -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment2 -', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment3 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testMultiLineHashCommentWithIndent */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment1 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' ', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment2 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' ', - ], - [ - 'type' => 'T_COMMENT', - 'content' => '# Comment3 -', - ], - [ - 'type' => 'T_WHITESPACE', - 'content' => ' -', - ], - ], - ], - [ - '/* testSingleLineHashCommentNoNewLineAtEnd */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '# Hash ', - ], - [ - 'type' => 'T_CLOSE_TAG', - 'content' => '?> -', - ], - ], - ], - [ - '/* testCommentAtEndOfFile */', - [ - [ - 'type' => 'T_COMMENT', - 'content' => '/* Comment', - ], - ], - ], - ]; - - }//end dataCommentTokenization() - - -}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateParenthesisNestingMapDNFTypesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateParenthesisNestingMapDNFTypesTest.inc new file mode 100644 index 000000000..89031bd19 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateParenthesisNestingMapDNFTypesTest.inc @@ -0,0 +1,185 @@ + 10 ) {} + +/* testParensOwnerFor */ +for ($i =0; $i < /* testParensNoOwnerInForCondition */ ( CONST_A & CONST_B ); $i++ ); + +/* testParensOwnerMatch */ +$match = match(CONST_A & CONST_B) { + default => $a, +}; + +/* testParensOwnerArray */ +$array = array ( + 'text', + \CONST_A & \Fully\Qualified\CONST_B, + /* testParensNoOwnerFunctionCallWithAmpersandInCallable */ + do_something($a, /* testParensOwnerArrowFn */ fn($b) => $a & $b, $c), +); + +/* testParensOwnerListWithRefVars */ +list(&$a, &$b) = $array; + +/* testParensNoOwnerFunctionCallwithDNFLookALikeParam */ +$obj->static((CONST_A&CONST_B)|CONST_C | $var); + + +/* + * DNF parentheses. + */ + +abstract class DNFTypes { + /* testDNFTypeOOConstUnqualifiedClasses */ + public const (A&B)|D UNQUALIFIED = new Foo; + + /* testDNFTypeOOConstReverseModifierOrder */ + protected final const int|(Foo&Bar)|float MODIFIERS_REVERSED /* testParensNoOwnerOOConstDefaultValue */ = (E_WARNING & E_NOTICE) | E_DEPRECATED; + + const + /* testDNFTypeOOConstMulti1 */ + (A&B) | + /* testDNFTypeOOConstMulti2 */ + (C&D) | // phpcs:ignore Stnd.Cat.Sniff + /* testDNFTypeOOConstMulti3 */ + (Y&D) + | null MULTI_DNF = null; + + /* testDNFTypeOOConstNamespaceRelative */ + final protected const (namespace\Sub\NameA&namespace\Sub\NameB)|namespace\Sub\NameC NAMESPACE_RELATIVE = new namespace\Sub\NameB; + + /* testDNFTypeOOConstPartiallyQualified */ + const Partially\Qualified\NameC|(Partially\Qualified\NameA&Partially\Qualified\NameB) PARTIALLY_QUALIFIED = new Partially\Qualified\NameA; + + /* testDNFTypeOOConstFullyQualified */ + const (\Fully\Qualified\NameA&\Fully\Qualified\NameB)|\Fully\Qualified\NameC FULLY_QUALIFIED = new \Fully\Qualified\NameB(); + + /* testDNFTypePropertyUnqualifiedClasses */ + public static (Foo&Bar)|array $obj; + + /* testDNFTypePropertyReverseModifierOrder */ + static protected string|(A&B)|int $dnf /* testParensNoOwnerPropertyDefaultValue1 */ = ( E_WARNING & E_NOTICE ) | /* testParensNoOwnerPropertyDefaultValue2 */ (E_ALL & E_DEPRECATED); + + private + /* testDNFTypePropertyMultiNamespaceRelative */ + (namespace\Sub\NameA&namespace\Sub\NameB) | + /* testDNFTypePropertyMultiPartiallyQualified */ + (Partially\Qualified\NameA&Partially\Qualified\NameB) | // phpcs:ignore Stnd.Cat.Sniff + false + /* testDNFTypePropertyMultiFullyQualified */ + | (\Fully\Qualified\NameA&\Fully\Qualified\NameB) $multiDnf; + + /* testDNFTypePropertyWithReadOnlyKeyword1 */ + protected readonly (A&B) | /* testDNFTypePropertyWithReadOnlyKeyword2 */ (C&D) $readonly; + + /* testDNFTypePropertyWithStaticAndReadOnlyKeywords */ + static readonly (A&B&C)|array $staticReadonly; + + /* testDNFTypePropertyWithOnlyStaticKeyword */ + static (A&B&C)|true $onlyStaticModified; + + public function paramTypes( + /* testDNFTypeParam1WithAttribute */ + #[MyAttribute] + (\Foo&Bar)|int|float $paramA /* testParensNoOwnerParamDefaultValue */ = SOMETHING | (CONSTANT_A & CONSTANT_B), + + /* testDNFTypeParam2 */ + (Foo&\Bar) /* testDNFTypeParam3 */ |(Baz&Fop) &...$paramB, + ) { + /* testParensNoOwnerInReturnValue1 */ + return ( + /* testParensNoOwnerInReturnValue2 */ + ($a1 & $b1) | + /* testParensNoOwnerInReturnValue3 */ + ($a2 & $b2) + ) + $c; + } + + public function identifierNames( + /* testDNFTypeParamNamespaceRelative */ + (namespace\Sub\NameA&namespace\Sub\NameB)|false $paramA, + /* testDNFTypeParamPartiallyQualified */ + Partially\Qualified\NameC|(Partially\Qualified\NameA&Partially\Qualified\NameB) $paramB, + /* testDNFTypeParamFullyQualified */ + name|(\Fully\Qualified\NameA&\Fully\Qualified\NameB) $paramC, + ) {} + + public function __construct( + /* testDNFTypeConstructorPropertyPromotion1 */ + public (A&B)| /* testDNFTypeConstructorPropertyPromotion2 */ (A&D) $property + ) {} + + public function returnType()/* testDNFTypeReturnType1 */ : A|(B&D)|/* testDNFTypeReturnType2 */(B&W)|null {} + + abstract public function abstractMethod(): /* testDNFTypeAbstractMethodReturnType1 */ (X&Y) /* testDNFTypeAbstractMethodReturnType2 */ |(W&Z); + + public function identifierNamesReturnRelative( + ) : /* testDNFTypeReturnTypeNamespaceRelative */ (namespace\Sub\NameA&namespace\Sub\NameB)|namespace\Sub\NameC {} + + public function identifierNamesReturnPQ( + ) : /* testDNFTypeReturnPartiallyQualified */Partially\Qualified\NameA|(Partially\Qualified\NameB&Partially\Qualified\NameC) {} + + // Illegal type: segments which are strict subsets of others are disallowed, but that's not the concern of the tokenizer. + public function identifierNamesReturnFQ( + ) /* testDNFTypeReturnFullyQualified */ : (\Fully\Qualified\NameA&\Fully\Qualified\NameB)|\Fully\Qualified\NameB {} +} + +function globalFunctionWithSpreadAndReference( + /* testDNFTypeWithReference */ + float|(B&A) &$paramA, + /* testDNFTypeWithSpreadOperator */ + string|(B&D) ...$paramB +) {} + + +$closureWithParamType = function ( /* testDNFTypeClosureParamIllegalNullable */ ?(A&B)|bool $string) {}; + +/* testParensOwnerClosureAmpersandInDefaultValue */ +$closureWithReturnType = function ($string = NONSENSE & FAKE) /* testDNFTypeClosureReturn */ : (\Package\MyA&PackageB)|null {}; + +/* testParensOwnerArrowDNFUsedWithin */ +$arrowWithParamType = fn ( + /* testDNFTypeArrowParam */ + int|(A&B&C)|array $param, + /* testParensNoOwnerAmpersandInDefaultValue */ ?int $int = (CONSTA & CONSTB )| CONST_C +) + /* testParensNoOwnerInArrowReturnExpression */ + => ($param & $foo ) | $int; + +$arrowWithReturnType = fn ($param) : /* testDNFTypeArrowReturnType */ int|(A&B) => $param * 10; + +$arrowWithParamReturnByRef = fn &( + /* testDNFTypeArrowParamWithReturnByRef */ + (A&B)|null $param +) => $param * 10; + +function InvalidSyntaxes( + /* testDNFTypeParamIllegalUnnecessaryParens */ + (A&B) $parensNotNeeded, + + /* testDNFTypeParamIllegalIntersectUnionReversed */ + A&(B|D) $onlyIntersectAllowedWithinParensAndUnionOutside, + + /* testDNFTypeParamIllegalNestedParens */ + A|(B&(D|W)|null) $nestedParensNotAllowed, +) {} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateParenthesisNestingMapDNFTypesTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateParenthesisNestingMapDNFTypesTest.php new file mode 100644 index 000000000..7198690dd --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateParenthesisNestingMapDNFTypesTest.php @@ -0,0 +1,375 @@ + + * @copyright 2024 PHPCSStandards and contributors + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class CreateParenthesisNestingMapDNFTypesTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that parentheses when **not** used in a type declaration are correctly tokenized. + * + * @param string $testMarker The comment prefacing the target token. + * @param int|false $owner Optional. The parentheses owner or false when no parentheses owner is expected. + * + * @dataProvider dataNormalParentheses + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createParenthesisNestingMap + * + * @return void + */ + public function testNormalParentheses($testMarker, $owner=false) + { + $tokens = $this->phpcsFile->getTokens(); + + $openPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS]); + $opener = $tokens[$openPtr]; + + // Make sure we're looking at the right token. + $this->assertSame(T_OPEN_PARENTHESIS, $opener['code'], 'Token tokenized as '.$opener['type'].', not T_OPEN_PARENTHESIS (code)'); + + if ($owner !== false) { + $this->assertArrayHasKey('parenthesis_owner', $opener, 'Parenthesis owner is not set'); + $this->assertSame(($openPtr + $owner), $opener['parenthesis_owner'], 'Opener parenthesis owner is not the expected token'); + } else { + $this->assertArrayNotHasKey('parenthesis_owner', $opener, 'Parenthesis owner is set'); + } + + $this->assertArrayHasKey('parenthesis_opener', $opener, 'Parenthesis opener is not set'); + $this->assertArrayHasKey('parenthesis_closer', $opener, 'Parenthesis closer is not set'); + $this->assertSame($openPtr, $opener['parenthesis_opener'], 'Parenthesis opener is not the expected token'); + + $closePtr = $opener['parenthesis_closer']; + $closer = $tokens[$closePtr]; + + // Make sure we're looking at the right token. + $this->assertSame(T_CLOSE_PARENTHESIS, $closer['code'], 'Token tokenized as '.$closer['type'].', not T_CLOSE_PARENTHESIS (code)'); + + if ($owner !== false) { + $this->assertArrayHasKey('parenthesis_owner', $closer, 'Parenthesis owner is not set'); + $this->assertSame(($openPtr + $owner), $closer['parenthesis_owner'], 'Closer parenthesis owner is not the expected token'); + } else { + $this->assertArrayNotHasKey('parenthesis_owner', $closer, 'Parenthesis owner is set'); + } + + $this->assertArrayHasKey('parenthesis_opener', $closer, 'Parenthesis opener is not set'); + $this->assertArrayHasKey('parenthesis_closer', $closer, 'Parenthesis closer is not set'); + $this->assertSame($closePtr, $closer['parenthesis_closer'], 'Parenthesis closer is not the expected token'); + + for ($i = ($openPtr + 1); $i < $closePtr; $i++) { + $this->assertArrayHasKey('nested_parenthesis', $tokens[$i], "Nested parenthesis key not set on token $i ({$tokens[$i]['type']})"); + $this->assertArrayHasKey($openPtr, $tokens[$i]['nested_parenthesis'], 'Nested parenthesis is missing target parentheses set'); + $this->assertSame($closePtr, $tokens[$i]['nested_parenthesis'][$openPtr], 'Nested parenthesis closer not set correctly'); + } + + }//end testNormalParentheses() + + + /** + * Data provider. + * + * @see testNormalParentheses() + * + * @return array> + */ + public static function dataNormalParentheses() + { + // "Owner" offsets are relative to the open parenthesis. + return [ + 'parens without owner' => [ + 'testMarker' => '/* testParensNoOwner */', + ], + 'parens without owner in ternary then' => [ + 'testMarker' => '/* testParensNoOwnerInTernary */', + ], + 'parens without owner in short ternary' => [ + 'testMarker' => '/* testParensNoOwnerInShortTernary */', + ], + 'parens with owner: function; & in default value' => [ + 'testMarker' => '/* testParensOwnerFunctionAmpersandInDefaultValue */', + 'owner' => -3, + ], + 'parens with owner: closure; param declared by & ref' => [ + 'testMarker' => '/* testParensOwnerClosureAmpersandParamRef */', + 'owner' => -1, + ], + 'parens with owner: if' => [ + 'testMarker' => '/* testParensOwnerIf */', + 'owner' => -2, + ], + 'parens without owner in if condition' => [ + 'testMarker' => '/* testParensNoOwnerInIfCondition */', + ], + 'parens with owner: for' => [ + 'testMarker' => '/* testParensOwnerFor */', + 'owner' => -2, + ], + 'parens without owner in for condition' => [ + 'testMarker' => '/* testParensNoOwnerInForCondition */', + ], + 'parens with owner: match' => [ + 'testMarker' => '/* testParensOwnerMatch */', + 'owner' => -1, + ], + 'parens with owner: array' => [ + 'testMarker' => '/* testParensOwnerArray */', + 'owner' => -2, + ], + 'parens without owner in array; function call with & in callable' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallWithAmpersandInCallable */', + ], + 'parens with owner: fn; & in return value' => [ + 'testMarker' => '/* testParensOwnerArrowFn */', + 'owner' => -1, + ], + 'parens with owner: list with reference vars' => [ + 'testMarker' => '/* testParensOwnerListWithRefVars */', + 'owner' => -1, + ], + 'parens without owner, function call with DNF look-a-like param' => [ + 'testMarker' => '/* testParensNoOwnerFunctionCallwithDNFLookALikeParam */', + ], + + 'parens without owner in OO const default value' => [ + 'testMarker' => '/* testParensNoOwnerOOConstDefaultValue */', + ], + 'parens without owner in property default 1' => [ + 'testMarker' => '/* testParensNoOwnerPropertyDefaultValue1 */', + ], + 'parens without owner in property default 2' => [ + 'testMarker' => '/* testParensNoOwnerPropertyDefaultValue2 */', + ], + 'parens without owner in param default value' => [ + 'testMarker' => '/* testParensNoOwnerParamDefaultValue */', + ], + 'parens without owner in return statement 1' => [ + 'testMarker' => '/* testParensNoOwnerInReturnValue1 */', + ], + 'parens without owner in return statement 2' => [ + 'testMarker' => '/* testParensNoOwnerInReturnValue2 */', + ], + 'parens without owner in return statement 3' => [ + 'testMarker' => '/* testParensNoOwnerInReturnValue3 */', + ], + 'parens with owner: closure; & in default value' => [ + 'testMarker' => '/* testParensOwnerClosureAmpersandInDefaultValue */', + 'owner' => -2, + ], + 'parens with owner: fn; dnf used within' => [ + 'testMarker' => '/* testParensOwnerArrowDNFUsedWithin */', + 'owner' => -2, + ], + 'parens without owner: default value for param in arrow function' => [ + 'testMarker' => '/* testParensNoOwnerAmpersandInDefaultValue */', + ], + 'parens without owner in arrow function return expression' => [ + 'testMarker' => '/* testParensNoOwnerInArrowReturnExpression */', + ], + ]; + + }//end dataNormalParentheses() + + + /** + * Test that parentheses when used in a DNF type declaration are correctly tokenized. + * + * Includes verifying that: + * - the tokens between the parentheses all have a "nested_parenthesis" key. + * - all ampersands between the parentheses are tokenized as T_TYPE_INTERSECTION. + * + * @param string $testMarker The comment prefacing the target token. + * + * @dataProvider dataDNFTypeParentheses + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createParenthesisNestingMap + * + * @return void + */ + public function testDNFTypeParentheses($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + + $openPtr = $this->getTargetToken($testMarker, [T_OPEN_PARENTHESIS, T_TYPE_OPEN_PARENTHESIS]); + $opener = $tokens[$openPtr]; + + // Make sure we're looking at the right token. + $this->assertSame(T_TYPE_OPEN_PARENTHESIS, $opener['code'], 'Token tokenized as '.$opener['type'].', not T_TYPE_OPEN_PARENTHESIS (code)'); + + $this->assertArrayNotHasKey('parenthesis_owner', $opener, 'Parenthesis owner is set'); + $this->assertArrayHasKey('parenthesis_opener', $opener, 'Parenthesis opener is not set'); + $this->assertArrayHasKey('parenthesis_closer', $opener, 'Parenthesis closer is not set'); + $this->assertSame($openPtr, $opener['parenthesis_opener'], 'Parenthesis opener is not the expected token'); + + $closePtr = $opener['parenthesis_closer']; + $closer = $tokens[$closePtr]; + + // Make sure we're looking at the right token. + $this->assertSame(T_TYPE_CLOSE_PARENTHESIS, $closer['code'], 'Token tokenized as '.$closer['type'].', not T_TYPE_CLOSE_PARENTHESIS (code)'); + + $this->assertArrayNotHasKey('parenthesis_owner', $closer, 'Parenthesis owner is set'); + $this->assertArrayHasKey('parenthesis_opener', $closer, 'Parenthesis opener is not set'); + $this->assertArrayHasKey('parenthesis_closer', $closer, 'Parenthesis closer is not set'); + $this->assertSame($closePtr, $closer['parenthesis_closer'], 'Parenthesis closer is not the expected token'); + + $intersectionCount = 0; + for ($i = ($openPtr + 1); $i < $closePtr; $i++) { + $this->assertArrayHasKey('nested_parenthesis', $tokens[$i], "Nested parenthesis key not set on token $i ({$tokens[$i]['type']})"); + $this->assertArrayHasKey($openPtr, $tokens[$i]['nested_parenthesis'], 'Nested parenthesis is missing target parentheses set'); + $this->assertSame($closePtr, $tokens[$i]['nested_parenthesis'][$openPtr], 'Nested parenthesis closer not set correctly'); + }//end for + + }//end testDNFTypeParentheses() + + + /** + * Data provider. + * + * @see testDNFTypeParentheses() + * + * @return array> + */ + public static function dataDNFTypeParentheses() + { + return [ + 'OO const type: unqualified classes' => [ + 'testMarker' => '/* testDNFTypeOOConstUnqualifiedClasses */', + ], + 'OO const type: modifiers in reverse order' => [ + 'testMarker' => '/* testDNFTypeOOConstReverseModifierOrder */', + ], + 'OO const type: multi-dnf part 1' => [ + 'testMarker' => '/* testDNFTypeOOConstMulti1 */', + ], + 'OO const type: multi-dnf part 2' => [ + 'testMarker' => '/* testDNFTypeOOConstMulti2 */', + ], + 'OO const type: multi-dnf part 3' => [ + 'testMarker' => '/* testDNFTypeOOConstMulti3 */', + ], + 'OO const type: namespace relative classes' => [ + 'testMarker' => '/* testDNFTypeOOConstNamespaceRelative */', + ], + 'OO const type: partially qualified classes' => [ + 'testMarker' => '/* testDNFTypeOOConstPartiallyQualified */', + ], + 'OO const type: fully qualified classes' => [ + 'testMarker' => '/* testDNFTypeOOConstFullyQualified */', + ], + + 'OO property type: unqualified classes' => [ + 'testMarker' => '/* testDNFTypePropertyUnqualifiedClasses */', + ], + 'OO property type: modifiers in reverse order' => [ + 'testMarker' => '/* testDNFTypePropertyReverseModifierOrder */', + ], + 'OO property type: multi-dnf namespace relative classes' => [ + 'testMarker' => '/* testDNFTypePropertyMultiNamespaceRelative */', + ], + 'OO property type: multi-dnf partially qualified classes' => [ + 'testMarker' => '/* testDNFTypePropertyMultiPartiallyQualified */', + ], + 'OO property type: multi-dnf fully qualified classes' => [ + 'testMarker' => '/* testDNFTypePropertyMultiFullyQualified */', + ], + + 'OO property type: multi-dnf with readonly keyword 1' => [ + 'testMarker' => '/* testDNFTypePropertyWithReadOnlyKeyword1 */', + ], + 'OO property type: multi-dnf with readonly keyword 2' => [ + 'testMarker' => '/* testDNFTypePropertyWithReadOnlyKeyword2 */', + ], + 'OO property type: with static and readonly keywords' => [ + 'testMarker' => '/* testDNFTypePropertyWithStaticAndReadOnlyKeywords */', + ], + 'OO property type: with only static keyword' => [ + 'testMarker' => '/* testDNFTypePropertyWithOnlyStaticKeyword */', + ], + 'OO method param type: first param' => [ + 'testMarker' => '/* testDNFTypeParam1WithAttribute */', + ], + 'OO method param type: second param, first DNF' => [ + 'testMarker' => '/* testDNFTypeParam2 */', + ], + 'OO method param type: second param, second DNF' => [ + 'testMarker' => '/* testDNFTypeParam3 */', + ], + 'OO method param type: namespace relative classes' => [ + 'testMarker' => '/* testDNFTypeParamNamespaceRelative */', + ], + 'OO method param type: partially qualified classes' => [ + 'testMarker' => '/* testDNFTypeParamPartiallyQualified */', + ], + 'OO method param type: fully qualified classes' => [ + 'testMarker' => '/* testDNFTypeParamFullyQualified */', + ], + 'Constructor property promotion with multi DNF 1' => [ + 'testMarker' => '/* testDNFTypeConstructorPropertyPromotion1 */', + ], + 'Constructor property promotion with multi DNF 2' => [ + 'testMarker' => '/* testDNFTypeConstructorPropertyPromotion2 */', + ], + 'OO method return type: multi DNF 1' => [ + 'testMarker' => '/* testDNFTypeReturnType1 */', + ], + 'OO method return type: multi DNF 2' => [ + 'testMarker' => '/* testDNFTypeReturnType2 */', + ], + 'OO abstract method return type: multi DNF 1' => [ + 'testMarker' => '/* testDNFTypeAbstractMethodReturnType1 */', + ], + 'OO abstract method return type: multi DNF 2' => [ + 'testMarker' => '/* testDNFTypeAbstractMethodReturnType2 */', + ], + 'OO method return type: namespace relative classes' => [ + 'testMarker' => '/* testDNFTypeReturnTypeNamespaceRelative */', + ], + 'OO method return type: partially qualified classes' => [ + 'testMarker' => '/* testDNFTypeReturnPartiallyQualified */', + ], + 'OO method return type: fully qualified classes' => [ + 'testMarker' => '/* testDNFTypeReturnFullyQualified */', + ], + 'function param type: with reference' => [ + 'testMarker' => '/* testDNFTypeWithReference */', + ], + 'function param type: with spread' => [ + 'testMarker' => '/* testDNFTypeWithSpreadOperator */', + ], + 'closure param type: with illegal nullable' => [ + 'testMarker' => '/* testDNFTypeClosureParamIllegalNullable */', + ], + 'closure return type' => [ + 'testMarker' => '/* testDNFTypeClosureReturn */', + ], + 'arrow function param type' => [ + 'testMarker' => '/* testDNFTypeArrowParam */', + ], + 'arrow function return type' => [ + 'testMarker' => '/* testDNFTypeArrowReturnType */', + ], + 'arrow function param type with return by ref' => [ + 'testMarker' => '/* testDNFTypeArrowParamWithReturnByRef */', + ], + + 'illegal syntax: unnecessary parentheses (no union)' => [ + 'testMarker' => '/* testDNFTypeParamIllegalUnnecessaryParens */', + ], + 'illegal syntax: union within parentheses, intersect outside' => [ + 'testMarker' => '/* testDNFTypeParamIllegalIntersectUnionReversed */', + ], + 'illegal syntax: nested parentheses' => [ + 'testMarker' => '/* testDNFTypeParamIllegalNestedParens */', + ], + ]; + + }//end dataDNFTypeParentheses() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateTokenMapArrayParenthesesTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateTokenMapArrayParenthesesTest.inc new file mode 100644 index 000000000..6d8adfcba --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateTokenMapArrayParenthesesTest.inc @@ -0,0 +1,58 @@ + 10); + +/* testArrayWithComment */ +$var = Array /*comment*/ (1 => 10); + +/* testNestingArray */ +$var = array( + /* testNestedArray */ + array( + 'key' => 'value', + + /* testClosureReturnType */ + 'closure' => function($a) use($global) : Array {}, + ), +); + +/* testFunctionDeclarationParamType */ +function typedParam(array $a) {} + +/* testFunctionDeclarationReturnType */ +function returnType($a) : int|array|null {} + +class Bar { + /* testClassConst */ + const ARRAY = []; + + /* testClassMethod */ + public function array() {} + + /* testOOConstType */ + const array /* testTypedOOConstName */ ARRAY = /* testOOConstDefault */ array(); + + /* testOOPropertyType */ + protected array $property; +} + +class DNFTypes { + /* testOOConstDNFType */ + const (A&B)|array|(C&D) NAME = []; + + /* testOOPropertyDNFType */ + protected (A&B)|ARRAY|null $property; + + /* testFunctionDeclarationParamDNFType */ + public function name(null|array|(A&B) $param) { + /* testClosureDeclarationParamDNFType */ + $cl = function ( array|(A&B) $param) {}; + + /* testArrowDeclarationReturnDNFType */ + $arrow = fn($a): (A&B)|Array => new $a; + } +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateTokenMapArrayParenthesesTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateTokenMapArrayParenthesesTest.php new file mode 100644 index 000000000..e362448c9 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/CreateTokenMapArrayParenthesesTest.php @@ -0,0 +1,212 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class CreateTokenMapArrayParenthesesTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the array keyword is correctly tokenized as `T_ARRAY`. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent Optional. The token content to look for. + * + * @dataProvider dataArrayKeyword + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createTokenMap + * + * @return void + */ + public function testArrayKeyword($testMarker, $testContent='array') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_ARRAY, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + // Make sure we're looking at the right token. + $this->assertSame(T_ARRAY, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_ARRAY (code)'); + + $this->assertArrayHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is not set'); + $this->assertArrayHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is not set'); + $this->assertArrayHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is not set'); + + }//end testArrayKeyword() + + + /** + * Data provider. + * + * @see testArrayKeyword() + * + * @return array> + */ + public static function dataArrayKeyword() + { + return [ + 'empty array' => [ + 'testMarker' => '/* testEmptyArray */', + ], + 'array with space before parenthesis' => [ + 'testMarker' => '/* testArrayWithSpace */', + ], + 'array with comment before parenthesis' => [ + 'testMarker' => '/* testArrayWithComment */', + 'testContent' => 'Array', + ], + 'nested: outer array' => [ + 'testMarker' => '/* testNestingArray */', + ], + 'nested: inner array' => [ + 'testMarker' => '/* testNestedArray */', + ], + 'OO constant default value' => [ + 'testMarker' => '/* testOOConstDefault */', + ], + ]; + + }//end dataArrayKeyword() + + + /** + * Test that the array keyword when used in a type declaration is correctly tokenized as `T_STRING`. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent Optional. The token content to look for. + * + * @dataProvider dataArrayType + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createTokenMap + * + * @return void + */ + public function testArrayType($testMarker, $testContent='array') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_ARRAY, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + // Make sure we're looking at the right token. + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + + $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set'); + $this->assertArrayNotHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is set'); + $this->assertArrayNotHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is set'); + + }//end testArrayType() + + + /** + * Data provider. + * + * @see testArrayType() + * + * @return array> + */ + public static function dataArrayType() + { + return [ + 'closure return type' => [ + 'testMarker' => '/* testClosureReturnType */', + 'testContent' => 'Array', + ], + 'function param type' => [ + 'testMarker' => '/* testFunctionDeclarationParamType */', + ], + 'function union return type' => [ + 'testMarker' => '/* testFunctionDeclarationReturnType */', + ], + 'OO constant type' => [ + 'testMarker' => '/* testOOConstType */', + ], + 'OO property type' => [ + 'testMarker' => '/* testOOPropertyType */', + ], + + 'OO constant DNF type' => [ + 'testMarker' => '/* testOOConstDNFType */', + ], + 'OO property DNF type' => [ + 'testMarker' => '/* testOOPropertyDNFType */', + 'testContent' => 'ARRAY', + ], + 'function param DNF type' => [ + 'testMarker' => '/* testFunctionDeclarationParamDNFType */', + ], + 'closure param DNF type' => [ + 'testMarker' => '/* testClosureDeclarationParamDNFType */', + ], + 'arrow return DNF type' => [ + 'testMarker' => '/* testArrowDeclarationReturnDNFType */', + 'testContent' => 'Array', + ], + ]; + + }//end dataArrayType() + + + /** + * Verify that the retokenization of `T_ARRAY` tokens to `T_STRING` is handled correctly + * for tokens with the contents 'array' which aren't in actual fact the array keyword. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotArrayKeyword + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createTokenMap + * + * @return void + */ + public function testNotArrayKeyword($testMarker, $testContent='array') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_ARRAY, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + // Make sure we're looking at the right token. + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + + $this->assertArrayNotHasKey('parenthesis_owner', $tokenArray, 'Parenthesis owner is set'); + $this->assertArrayNotHasKey('parenthesis_opener', $tokenArray, 'Parenthesis opener is set'); + $this->assertArrayNotHasKey('parenthesis_closer', $tokenArray, 'Parenthesis closer is set'); + + }//end testNotArrayKeyword() + + + /** + * Data provider. + * + * @see testNotArrayKeyword() + * + * @return array> + */ + public static function dataNotArrayKeyword() + { + return [ + 'class-constant-name' => [ + 'testMarker' => '/* testClassConst */', + 'testContent' => 'ARRAY', + ], + 'class-method-name' => [ + 'testMarker' => '/* testClassMethod */', + ], + 'class-constant-name-after-type' => [ + 'testMarker' => '/* testTypedOOConstName */', + 'testContent' => 'ARRAY', + ], + ]; + + }//end dataNotArrayKeyword() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/HeredocNowdocCloserTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/HeredocNowdocCloserTest.inc new file mode 100644 index 000000000..a800980b8 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/HeredocNowdocCloserTest.inc @@ -0,0 +1,43 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +/** + * Heredoc/nowdoc closer token test. + * + * @requires PHP 7.3 + */ +final class HeredocNowdocCloserTest extends AbstractTokenizerTestCase +{ + + + /** + * Verify that leading (indent) whitespace in a heredoc/nowdoc closer token get the tab replacement treatment. + * + * @param string $testMarker The comment prefacing the target token. + * @param array $expected Expectations for the token array. + * + * @dataProvider dataHeredocNowdocCloserTabReplacement + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::createPositionMap + * + * @return void + */ + public function testHeredocNowdocCloserTabReplacement($testMarker, $expected) + { + $tokens = $this->phpcsFile->getTokens(); + + $closer = $this->getTargetToken($testMarker, [T_END_HEREDOC, T_END_NOWDOC]); + + foreach ($expected as $key => $value) { + if ($key === 'orig_content' && $value === null) { + $this->assertArrayNotHasKey($key, $tokens[$closer], "Unexpected 'orig_content' key found in the token array."); + continue; + } + + $this->assertArrayHasKey($key, $tokens[$closer], "Key $key not found in the token array."); + $this->assertSame($value, $tokens[$closer][$key], "Value for key $key does not match expectation."); + } + + }//end testHeredocNowdocCloserTabReplacement() + + + /** + * Data provider. + * + * @see testHeredocNowdocCloserTabReplacement() + * + * @return array>> + */ + public static function dataHeredocNowdocCloserTabReplacement() + { + return [ + 'Heredoc closer without indent' => [ + 'testMarker' => '/* testHeredocCloserNoIndent */', + 'expected' => [ + 'length' => 3, + 'content' => 'EOD', + 'orig_content' => null, + ], + ], + 'Nowdoc closer without indent' => [ + 'testMarker' => '/* testNowdocCloserNoIndent */', + 'expected' => [ + 'length' => 3, + 'content' => 'EOD', + 'orig_content' => null, + ], + ], + 'Heredoc closer with indent, spaces' => [ + 'testMarker' => '/* testHeredocCloserSpaceIndent */', + 'expected' => [ + 'length' => 7, + 'content' => ' END', + 'orig_content' => null, + ], + ], + 'Nowdoc closer with indent, spaces' => [ + 'testMarker' => '/* testNowdocCloserSpaceIndent */', + 'expected' => [ + 'length' => 8, + 'content' => ' END', + 'orig_content' => null, + ], + ], + 'Heredoc closer with indent, tabs' => [ + 'testMarker' => '/* testHeredocCloserTabIndent */', + 'expected' => [ + 'length' => 8, + 'content' => ' END', + 'orig_content' => ' END', + ], + ], + 'Nowdoc closer with indent, tabs' => [ + 'testMarker' => '/* testNowdocCloserTabIndent */', + 'expected' => [ + 'length' => 7, + 'content' => ' END', + 'orig_content' => ' END', + ], + ], + ]; + + }//end dataHeredocNowdocCloserTabReplacement() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapCaseKeywordConditionsTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapCaseKeywordConditionsTest.inc new file mode 100644 index 000000000..13b87242e --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapCaseKeywordConditionsTest.inc @@ -0,0 +1,95 @@ + + * @copyright 2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class RecurseScopeMapCaseKeywordConditionsTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the enum "case" is converted to T_ENUM_CASE. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataEnumCases + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testEnumCases($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $enumCase = $this->getTargetToken($testMarker, [T_ENUM_CASE, T_CASE]); + $tokenArray = $tokens[$enumCase]; + + // Make sure we're looking at the right token. + $this->assertSame(T_ENUM_CASE, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_ENUM_CASE (code)'); + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + + }//end testEnumCases() + + + /** + * Data provider. + * + * @see testEnumCases() + * + * @return array> + */ + public static function dataEnumCases() + { + return [ + 'enum case, no value' => ['/* testPureEnumCase */'], + 'enum case, integer value' => ['/* testBackingIntegerEnumCase */'], + 'enum case, string value' => ['/* testBackingStringEnumCase */'], + 'enum case, integer value in more complex enum' => ['/* testEnumCaseInComplexEnum */'], + 'enum case, keyword in mixed case' => ['/* testEnumCaseIsCaseInsensitive */'], + 'enum case, after switch statement' => ['/* testEnumCaseAfterSwitch */'], + 'enum case, after switch statement using alternative syntax' => ['/* testEnumCaseAfterSwitchWithEndSwitch */'], + ]; + + }//end dataEnumCases() + + + /** + * Test that "case" that is not enum case is still tokenized as `T_CASE`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataNotEnumCases + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testNotEnumCases($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $case = $this->getTargetToken($testMarker, [T_ENUM_CASE, T_CASE]); + $tokenArray = $tokens[$case]; + + // Make sure we're looking at the right token. + $this->assertSame(T_CASE, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_CASE (code)'); + + $this->assertArrayHasKey('scope_condition', $tokenArray, 'Scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokenArray, 'Scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokenArray, 'Scope closer is not set'); + + }//end testNotEnumCases() + + + /** + * Data provider. + * + * @see testNotEnumCases() + * + * @return array> + */ + public static function dataNotEnumCases() + { + return [ + 'switch case with constant, semicolon condition end' => ['/* testCaseWithSemicolonIsNotEnumCase */'], + 'switch case with constant, colon condition end' => ['/* testCaseWithConstantIsNotEnumCase */'], + 'switch case with constant, comparison' => ['/* testCaseWithConstantAndIdenticalIsNotEnumCase */'], + 'switch case with constant, assignment' => ['/* testCaseWithAssigmentToConstantIsNotEnumCase */'], + 'switch case with constant, keyword in mixed case' => ['/* testIsNotEnumCaseIsCaseInsensitive */'], + 'switch case, body in curlies declares enum' => ['/* testCaseInSwitchWhenCreatingEnumInSwitch1 */'], + 'switch case, body after semicolon declares enum' => ['/* testCaseInSwitchWhenCreatingEnumInSwitch2 */'], + ]; + + }//end dataNotEnumCases() + + + /** + * Test that "case" that is not enum case is still tokenized as `T_CASE`. + * + * @param string $testMarker The comment which prefaces the target token in the test file. + * + * @dataProvider dataKeywordAsEnumCaseNameShouldBeString + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testKeywordAsEnumCaseNameShouldBeString($testMarker) + { + $tokens = $this->phpcsFile->getTokens(); + $enumCaseName = $this->getTargetToken($testMarker, [T_STRING, T_INTERFACE, T_TRAIT, T_ENUM, T_FUNCTION, T_FALSE, T_DEFAULT, T_ARRAY]); + $tokenArray = $tokens[$enumCaseName]; + + // Make sure we're looking at the right token. + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + + }//end testKeywordAsEnumCaseNameShouldBeString() + + + /** + * Data provider. + * + * @see testKeywordAsEnumCaseNameShouldBeString() + * + * @return array> + */ + public static function dataKeywordAsEnumCaseNameShouldBeString() + { + return [ + '"interface" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString1 */'], + '"trait" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString2 */'], + '"enum" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString3 */'], + '"function" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString4 */'], + '"false" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString5 */'], + '"default" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString6 */'], + '"array" as case name' => ['/* testKeywordAsEnumCaseNameShouldBeString7 */'], + ]; + + }//end dataKeywordAsEnumCaseNameShouldBeString() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.inc new file mode 100644 index 000000000..648149d2f --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.inc @@ -0,0 +1,203 @@ + 1, + 2 => 2, + /* testSimpleMatchDefault */ + default => 'default', + }; +} + +function switchWithDefault($i) { + switch ($i) { + case 1: + return 1; + case 2: + return 2; + /* testSimpleSwitchDefault */ + default: + return 'default'; + } +} + +function switchWithDefaultAndCurlies($i) { + switch ($i) { + case 1: + return 1; + case 2: + return 2; + /* testSimpleSwitchDefaultWithCurlies */ + default: { + return 'default'; + } + } +} + +function matchWithDefaultInSwitch() { + switch ($something) { + case 'foo': + $var = [1, 2, 3]; + $var = match ($i) { + 1 => 1, + /* testMatchDefaultNestedInSwitchCase1 */ + default => 'default', + }; + continue; + + case 'bar' : + $i = callMe($a, $b); + return match ($i) { + 1 => 1, + /* testMatchDefaultNestedInSwitchCase2 */ + default => 'default', + }; + + /* testSwitchDefault */ + default; + echo 'something', match ($i) { + 1, => 1, + /* testMatchDefaultNestedInSwitchDefault */ + default, => 'default', + }; + break; + } +} + +function switchWithDefaultInMatch() { + $x = match ($y) { + 5, 8 => function($z) { + switch($z) { + case 'a'; + $var = [1, 2, 3]; + return 'a'; + /* testSwitchDefaultNestedInMatchCase */ + default: + $var = [1, 2, 3]; + return 'default1'; + } + }, + /* testMatchDefault */ + default => function($z) { + switch($z) { + case 'a': + $i = callMe($a, $b); + return 'b'; + /* testSwitchDefaultNestedInMatchDefault */ + default: + $i = callMe($a, $b); + return 'default2'; + } + } + }; +} + +function shortArrayWithConstantKey() { + $arr = [ + /* testClassConstantAsShortArrayKey */ + SomeClass::DEFAULT => 1, + /* testClassPropertyAsShortArrayKey */ + SomeClass->DEFAULT => 1, + /* testNamespacedConstantAsShortArrayKey */ + // Intentional parse error PHP < 8.0. Reserved keyword used as namespaced constant. + SomeNamespace\DEFAULT => 1, + /* testFQNGlobalConstantAsShortArrayKey */ + // Intentional parse error in PHP < 8.0. Reserved keyword used as global constant. + \DEFAULT => 1, + ]; +} + +function longArrayWithConstantKey() { + $arr = array( + /* testClassConstantAsLongArrayKey */ + SomeClass::DEFAULT => 1, + ); +} + +function yieldWithConstantKey() { + /* testClassConstantAsYieldKey */ + yield SomeClass::DEFAULT => 1; +} + +function longArrayWithConstantKeyNestedInMatch() { + return match($x) { + /* testMatchDefaultWithNestedLongArrayWithClassConstantKey */ + DEFAULT => array( + /* testClassConstantAsLongArrayKeyNestedInMatch */ + SomeClass::DEFAULT => match($x) { + /* testMatchDefaultWithNestedLongArrayWithClassConstantKeyLevelDown */ + DEFAULT => array( + /* testClassConstantAsLongArrayKeyNestedInMatchLevelDown */ + SomeClass::DEFAULT => 1, + ), + }, + ), + }; +} + +function shortArrayWithConstantKeyNestedInMatch() { + return match($x) { + /* testMatchDefaultWithNestedShortArrayWithClassConstantKey */ + DEFAULT => [ + /* testClassConstantAsShortArrayKeyNestedInMatch */ + SomeClass::DEFAULT => match($x) { + /* testMatchDefaultWithNestedShortArrayWithClassConstantKeyLevelDown */ + DEFAULT => [ + /* testClassConstantAsShortArrayKeyNestedInMatchLevelDown */ + SomeClass::DEFAULT => 1, + ], + }, + ], + }; +} + + +function longArrayWithConstantKeyWithNestedMatch() { + return array( + /* testClassConstantAsLongArrayKeyWithNestedMatch */ + SomeClass::DEFAULT => match($x) { + /* testMatchDefaultNestedInLongArray */ + DEFAULT => 'foo' + }, + ); +} + +function shortArrayWithConstantKeyWithNestedMatch() { + return [ + /* testClassConstantAsShortArrayKeyWithNestedMatch */ + SomeClass::DEFAULT => match($x) { + /* testMatchDefaultNestedInShortArray */ + DEFAULT => 'foo' + }, + ]; +} + +function switchWithConstantNonDefault($i) { + switch ($i) { + /* testClassConstantInSwitchCase */ + case SomeClass::DEFAULT: + return 1; + + /* testClassPropertyInSwitchCase */ + case SomeClass->DEFAULT: + return 2; + + /* testNamespacedConstantInSwitchCase */ + // Intentional parse error PHP < 8.0. Reserved keyword used as constant. + case SomeNamespace\DEFAULT: + return 2; + + /* testNamespaceRelativeConstantInSwitchCase */ + // Intentional parse error PHP < 8.0. Reserved keyword used as global constant. + case namespace\DEFAULT: + return 2; + } +} + +class Foo { + /* testClassConstant */ + const DEFAULT = 'foo'; + + /* testMethodDeclaration */ + public function default() {} +} diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.php new file mode 100644 index 000000000..fb3a76afb --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.php @@ -0,0 +1,347 @@ + + * @copyright 2020-2021 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class RecurseScopeMapDefaultKeywordConditionsTest extends AbstractTokenizerTestCase +{ + + + /** + * Test the retokenization of the `default` keyword for match structure to `T_MATCH_DEFAULT`. + * + * Note: Cases and default structures within a match structure do *NOT* get case/default scope + * conditions, in contrast to case and default structures in switch control structures. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataMatchDefault + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testMatchDefault($testMarker, $testContent='default') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + // Make sure we're looking at the right token. + $this->assertSame(T_MATCH_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_DEFAULT (code)'); + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + + }//end testMatchDefault() + + + /** + * Data provider. + * + * @see testMatchDefault() + * + * @return array> + */ + public static function dataMatchDefault() + { + return [ + 'simple_match_default' => [ + 'testMarker' => '/* testSimpleMatchDefault */', + ], + 'match_default_in_switch_case_1' => [ + 'testMarker' => '/* testMatchDefaultNestedInSwitchCase1 */', + ], + 'match_default_in_switch_case_2' => [ + 'testMarker' => '/* testMatchDefaultNestedInSwitchCase2 */', + ], + 'match_default_in_switch_default' => [ + 'testMarker' => '/* testMatchDefaultNestedInSwitchDefault */', + ], + 'match_default_containing_switch' => [ + 'testMarker' => '/* testMatchDefault */', + ], + + 'match_default_with_nested_long_array_and_default_key' => [ + 'testMarker' => '/* testMatchDefaultWithNestedLongArrayWithClassConstantKey */', + 'testContent' => 'DEFAULT', + ], + 'match_default_with_nested_long_array_and_default_key_2' => [ + 'testMarker' => '/* testMatchDefaultWithNestedLongArrayWithClassConstantKeyLevelDown */', + 'testContent' => 'DEFAULT', + ], + 'match_default_with_nested_short_array_and_default_key' => [ + 'testMarker' => '/* testMatchDefaultWithNestedShortArrayWithClassConstantKey */', + 'testContent' => 'DEFAULT', + ], + 'match_default_with_nested_short_array_and_default_key_2' => [ + 'testMarker' => '/* testMatchDefaultWithNestedShortArrayWithClassConstantKeyLevelDown */', + 'testContent' => 'DEFAULT', + ], + 'match_default_in_long_array' => [ + 'testMarker' => '/* testMatchDefaultNestedInLongArray */', + 'testContent' => 'DEFAULT', + ], + 'match_default_in_short_array' => [ + 'testMarker' => '/* testMatchDefaultNestedInShortArray */', + 'testContent' => 'DEFAULT', + ], + ]; + + }//end dataMatchDefault() + + + /** + * Verify that the retokenization of `T_DEFAULT` tokens in match constructs, doesn't negatively + * impact the tokenization of `T_DEFAULT` tokens in switch control structures. + * + * Note: Cases and default structures within a switch control structure *do* get case/default scope + * conditions. + * + * @param string $testMarker The comment prefacing the target token. + * @param int $openerOffset The expected offset of the scope opener in relation to the testMarker. + * @param int $closerOffset The expected offset of the scope closer in relation to the testMarker. + * @param int|null $conditionStop The expected offset at which tokens stop having T_DEFAULT as a scope condition. + * @param string $testContent The token content to look for. + * + * @dataProvider dataSwitchDefault + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $conditionStop=null, $testContent='default') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + $expectedScopeOpener = ($token + $openerOffset); + $expectedScopeCloser = ($token + $closerOffset); + + // Make sure we're looking at the right token. + $this->assertSame(T_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_DEFAULT (code)'); + + $this->assertArrayHasKey('scope_condition', $tokenArray, 'Scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokenArray, 'Scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokenArray, 'Scope closer is not set'); + $this->assertSame($token, $tokenArray['scope_condition'], 'Scope condition is not the T_DEFAULT token'); + $this->assertSame($expectedScopeOpener, $tokenArray['scope_opener'], 'Scope opener of the T_DEFAULT token incorrect'); + $this->assertSame($expectedScopeCloser, $tokenArray['scope_closer'], 'Scope closer of the T_DEFAULT token incorrect'); + + $opener = $tokenArray['scope_opener']; + $this->assertArrayHasKey('scope_condition', $tokens[$opener], 'Opener scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Opener scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Opener scope closer is not set'); + $this->assertSame($token, $tokens[$opener]['scope_condition'], 'Opener scope condition is not the T_DEFAULT token'); + $this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'T_DEFAULT opener scope opener token incorrect'); + $this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'T_DEFAULT opener scope closer token incorrect'); + + $closer = $tokenArray['scope_closer']; + $this->assertArrayHasKey('scope_condition', $tokens[$closer], 'Closer scope condition is not set'); + $this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Closer scope opener is not set'); + $this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Closer scope closer is not set'); + $this->assertSame($token, $tokens[$closer]['scope_condition'], 'Closer scope condition is not the T_DEFAULT token'); + $this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'T_DEFAULT closer scope opener token incorrect'); + $this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'T_DEFAULT closer scope closer token incorrect'); + + if (($opener + 1) !== $closer) { + $end = $closer; + if (isset($conditionStop) === true) { + $end = $conditionStop; + } + + for ($i = ($opener + 1); $i < $end; $i++) { + $this->assertArrayHasKey( + $token, + $tokens[$i]['conditions'], + 'T_DEFAULT condition not added for token belonging to the T_DEFAULT structure' + ); + } + } + + }//end testSwitchDefault() + + + /** + * Data provider. + * + * @see testSwitchDefault() + * + * @return array> + */ + public static function dataSwitchDefault() + { + return [ + 'simple_switch_default' => [ + 'testMarker' => '/* testSimpleSwitchDefault */', + 'openerOffset' => 1, + 'closerOffset' => 4, + ], + 'simple_switch_default_with_curlies' => [ + // For a default structure with curly braces, the scope opener + // will be the open curly and the closer the close curly. + // However, scope conditions will not be set for open to close, + // but only for the open token up to the "break/return/continue" etc. + 'testMarker' => '/* testSimpleSwitchDefaultWithCurlies */', + 'openerOffset' => 3, + 'closerOffset' => 12, + 'conditionStop' => 6, + ], + 'switch_default_toplevel' => [ + 'testMarker' => '/* testSwitchDefault */', + 'openerOffset' => 1, + 'closerOffset' => 43, + ], + 'switch_default_nested_in_match_case' => [ + 'testMarker' => '/* testSwitchDefaultNestedInMatchCase */', + 'openerOffset' => 1, + 'closerOffset' => 20, + ], + 'switch_default_nested_in_match_default' => [ + 'testMarker' => '/* testSwitchDefaultNestedInMatchDefault */', + 'openerOffset' => 1, + 'closerOffset' => 18, + ], + ]; + + }//end dataSwitchDefault() + + + /** + * Verify that the retokenization of `T_DEFAULT` tokens in match constructs, doesn't negatively + * impact the tokenization of `T_STRING` tokens with the contents 'default' which aren't in + * actual fact the default keyword. + * + * @param string $testMarker The comment prefacing the target token. + * @param string $testContent The token content to look for. + * + * @dataProvider dataNotDefaultKeyword + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testNotDefaultKeyword($testMarker, $testContent='DEFAULT') + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken($testMarker, [T_MATCH_DEFAULT, T_DEFAULT, T_STRING], $testContent); + $tokenArray = $tokens[$token]; + + // Make sure we're looking at the right token. + $this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)'); + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + + }//end testNotDefaultKeyword() + + + /** + * Data provider. + * + * @see testNotDefaultKeyword() + * + * @return array> + */ + public static function dataNotDefaultKeyword() + { + return [ + 'class-constant-as-short-array-key' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKey */', + ], + 'class-property-as-short-array-key' => [ + 'testMarker' => '/* testClassPropertyAsShortArrayKey */', + ], + 'namespaced-constant-as-short-array-key' => [ + 'testMarker' => '/* testNamespacedConstantAsShortArrayKey */', + ], + 'fqn-global-constant-as-short-array-key' => [ + 'testMarker' => '/* testFQNGlobalConstantAsShortArrayKey */', + ], + 'class-constant-as-long-array-key' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKey */', + ], + 'class-constant-as-yield-key' => [ + 'testMarker' => '/* testClassConstantAsYieldKey */', + ], + + 'class-constant-as-long-array-key-nested-in-match' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKeyNestedInMatch */', + ], + 'class-constant-as-long-array-key-nested-in-match-2' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKeyNestedInMatchLevelDown */', + ], + 'class-constant-as-short-array-key-nested-in-match' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKeyNestedInMatch */', + ], + 'class-constant-as-short-array-key-nested-in-match-2' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKeyNestedInMatchLevelDown */', + ], + 'class-constant-as-long-array-key-with-nested-match' => [ + 'testMarker' => '/* testClassConstantAsLongArrayKeyWithNestedMatch */', + ], + 'class-constant-as-short-array-key-with-nested-match' => [ + 'testMarker' => '/* testClassConstantAsShortArrayKeyWithNestedMatch */', + ], + + 'class-constant-in-switch-case' => [ + 'testMarker' => '/* testClassConstantInSwitchCase */', + ], + 'class-property-in-switch-case' => [ + 'testMarker' => '/* testClassPropertyInSwitchCase */', + ], + 'namespaced-constant-in-switch-case' => [ + 'testMarker' => '/* testNamespacedConstantInSwitchCase */', + ], + 'namespace-relative-constant-in-switch-case' => [ + 'testMarker' => '/* testNamespaceRelativeConstantInSwitchCase */', + ], + + 'class-constant-declaration' => [ + 'testMarker' => '/* testClassConstant */', + ], + 'class-method-declaration' => [ + 'testMarker' => '/* testMethodDeclaration */', + 'testContent' => 'default', + ], + ]; + + }//end dataNotDefaultKeyword() + + + /** + * Test a specific edge case where a scope opener would be incorrectly set. + * + * @link https://github.com/squizlabs/PHP_CodeSniffer/issues/3326 + * + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testIssue3326() + { + $tokens = $this->phpcsFile->getTokens(); + + $token = $this->getTargetToken('/* testClassConstant */', [T_SEMICOLON]); + $tokenArray = $tokens[$token]; + + $this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set'); + $this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set'); + $this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set'); + + }//end testIssue3326() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc similarity index 90% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc index e2d61bb66..38e5a47d5 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/ScopeSettingWithNamespaceOperatorTest.inc @@ -13,7 +13,7 @@ interface FooBar extends namespace\BarFoo {} function foo() : namespace\Baz {} /* testClosureReturnType */ -$closure = function () : namespace\Baz {} +$closure = function () : namespace\Baz {}; /* testArrowFunctionReturnType */ $fn = fn() : namespace\Baz => new namespace\Baz; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php new file mode 100644 index 000000000..dba98cdb0 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Tokenizer/Tokenizer/ScopeSettingWithNamespaceOperatorTest.php @@ -0,0 +1,98 @@ + + * @copyright 2020 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Tokenizer\Tokenizer; + +use PHP_CodeSniffer\Tests\Core\Tokenizer\AbstractTokenizerTestCase; + +final class ScopeSettingWithNamespaceOperatorTest extends AbstractTokenizerTestCase +{ + + + /** + * Test that the scope opener/closers are set correctly when the namespace keyword is encountered as an operator. + * + * @param string $testMarker The comment which prefaces the target tokens in the test file. + * @param array $tokenTypes The token type to search for. + * @param array $open Optional. The token type for the scope opener. + * @param array $close Optional. The token type for the scope closer. + * + * @dataProvider dataScopeSetting + * @covers PHP_CodeSniffer\Tokenizers\Tokenizer::recurseScopeMap + * + * @return void + */ + public function testScopeSetting($testMarker, $tokenTypes, $open=T_OPEN_CURLY_BRACKET, $close=T_CLOSE_CURLY_BRACKET) + { + $tokens = $this->phpcsFile->getTokens(); + + $target = $this->getTargetToken($testMarker, $tokenTypes); + $opener = $this->getTargetToken($testMarker, $open); + $closer = $this->getTargetToken($testMarker, $close); + + $this->assertArrayHasKey('scope_opener', $tokens[$target], 'Scope opener missing'); + $this->assertArrayHasKey('scope_closer', $tokens[$target], 'Scope closer missing'); + $this->assertSame($opener, $tokens[$target]['scope_opener'], 'Scope opener not same'); + $this->assertSame($closer, $tokens[$target]['scope_closer'], 'Scope closer not same'); + + $this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Scope opener missing for open curly'); + $this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Scope closer missing for open curly'); + $this->assertSame($opener, $tokens[$opener]['scope_opener'], 'Scope opener not same for open curly'); + $this->assertSame($closer, $tokens[$opener]['scope_closer'], 'Scope closer not same for open curly'); + + $this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Scope opener missing for close curly'); + $this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Scope closer missing for close curly'); + $this->assertSame($opener, $tokens[$closer]['scope_opener'], 'Scope opener not same for close curly'); + $this->assertSame($closer, $tokens[$closer]['scope_closer'], 'Scope closer not same for close curly'); + + }//end testScopeSetting() + + + /** + * Data provider. + * + * @see testScopeSetting() + * + * @return array>> + */ + public static function dataScopeSetting() + { + return [ + 'class which extends namespace relative name' => [ + 'testMarker' => '/* testClassExtends */', + 'tokenTypes' => [T_CLASS], + ], + 'class which implements namespace relative name' => [ + 'testMarker' => '/* testClassImplements */', + 'tokenTypes' => [T_ANON_CLASS], + ], + 'interface which extend namespace relative name' => [ + 'testMarker' => '/* testInterfaceExtends */', + 'tokenTypes' => [T_INTERFACE], + ], + 'namespace relative name in function return type' => [ + 'testMarker' => '/* testFunctionReturnType */', + 'tokenTypes' => [T_FUNCTION], + ], + 'namespace relative name in closure return type' => [ + 'testMarker' => '/* testClosureReturnType */', + 'tokenTypes' => [T_CLOSURE], + ], + 'namespace relative name in arrow function return type' => [ + 'testMarker' => '/* testArrowFunctionReturnType */', + 'tokenTypes' => [T_FN], + 'open' => [T_FN_ARROW], + 'close' => [T_SEMICOLON], + ], + ]; + + }//end dataScopeSetting() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/HelpTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/HelpTest.php new file mode 100644 index 000000000..c8ef301c6 --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/HelpTest.php @@ -0,0 +1,725 @@ + + * @copyright 2024 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Util; + +use PHP_CodeSniffer\Tests\ConfigDouble; +use PHP_CodeSniffer\Util\Help; +use PHPUnit\Framework\TestCase; +use ReflectionMethod; +use ReflectionProperty; + +/** + * Test the Help class. + * + * @covers \PHP_CodeSniffer\Util\Help + */ +final class HelpTest extends TestCase +{ + + + /** + * QA check: verify that the category names are at most the minimum screen width + * and that option argument names are always at most half the length of the minimum screen width. + * + * If this test would start failing, either wrapping of argument info would need to be implemented + * or the minimum screen width needs to be upped. + * + * @coversNothing + * + * @return void + */ + public function testQaArgumentNamesAreWithinAcceptableBounds() + { + $help = new Help(new ConfigDouble(), []); + + $reflMethod = new ReflectionMethod($help, 'getAllOptions'); + $reflMethod->setAccessible(true); + $allOptions = $reflMethod->invoke($help); + $reflMethod->setAccessible(false); + + $this->assertGreaterThan(0, count($allOptions), 'No categories found'); + + $minScreenWidth = Help::MIN_WIDTH; + $maxArgWidth = ($minScreenWidth / 2); + + foreach ($allOptions as $category => $options) { + $this->assertLessThanOrEqual( + Help::MIN_WIDTH, + strlen($category), + "Category name $category is longer than the minimum screen width of $minScreenWidth" + ); + + foreach ($options as $option) { + if (isset($option['argument']) === false) { + continue; + } + + $this->assertLessThanOrEqual( + $maxArgWidth, + strlen($option['argument']), + "Option name {$option['argument']} is longer than the half the minimum screen width of $minScreenWidth" + ); + } + } + + }//end testQaArgumentNamesAreWithinAcceptableBounds() + + + /** + * QA check: verify that each option only contains a spacer, text or argument + description combo. + * + * @coversNothing + * + * @return void + */ + public function testQaValidCategoryOptionDefinitions() + { + $help = new Help(new ConfigDouble(), []); + + $reflMethod = new ReflectionMethod($help, 'getAllOptions'); + $reflMethod->setAccessible(true); + $allOptions = $reflMethod->invoke($help); + $reflMethod->setAccessible(false); + + $this->assertGreaterThan(0, count($allOptions), 'No categories found'); + + foreach ($allOptions as $category => $options) { + $this->assertGreaterThan(0, count($options), "No options found in category $category"); + + foreach ($options as $name => $option) { + if (isset($option['spacer']) === true) { + $this->assertStringStartsWith('blank-line', $name, 'The name for spacer items should start with "blank-line"'); + } + + $this->assertFalse( + isset($option['spacer'], $option['text']), + "Option $name: spacer and text should not be combined in one option" + ); + $this->assertFalse( + isset($option['spacer'], $option['argument']), + "Option $name: spacer and argument should not be combined in one option" + ); + $this->assertFalse( + isset($option['spacer'], $option['description']), + "Option $name: spacer and description should not be combined in one option" + ); + $this->assertFalse( + isset($option['text'], $option['argument']), + "Option $name: text and argument should not be combined in one option" + ); + $this->assertFalse( + isset($option['text'], $option['description']), + "Option $name: text and description should not be combined in one option" + ); + + if (isset($option['argument']) === true) { + $this->assertArrayHasKey( + 'description', + $option, + "Option $name: an argument should always be accompanied by a description" + ); + } + + if (isset($option['description']) === true) { + $this->assertArrayHasKey( + 'argument', + $option, + "Option $name: a description should always be accompanied by an argument" + ); + } + }//end foreach + }//end foreach + + }//end testQaValidCategoryOptionDefinitions() + + + /** + * Test receiving an expected exception when the shortOptions parameter is not passed a string value. + * + * @return void + */ + public function testConstructorInvalidArgumentException() + { + $exception = 'InvalidArgumentException'; + $message = 'The $shortOptions parameter must be a string'; + + if (method_exists($this, 'expectException') === true) { + // PHPUnit 5+. + $this->expectException($exception); + $this->expectExceptionMessage($message); + } else { + // PHPUnit 4. + $this->setExpectedException($exception, $message); + } + + new Help(new ConfigDouble(), [], []); + + }//end testConstructorInvalidArgumentException() + + + /** + * Test filtering of the options by requested options. + * + * Tests that: + * - Options not explicitly requested are removed. + * - Short options passed via the longOptions array are still respected. + * - A category gets removed if all options are removed, even if the category still has spacers. + * + * @param array $longOptions The long options which should be displayed. + * @param string $shortOptions The short options which should be displayed. + * @param array $expected The categories expected after filtering with the number + * of expected help items per category. + * + * @dataProvider dataOptionFiltering + * + * @return void + */ + public function testOptionFiltering($longOptions, $shortOptions, $expected) + { + $help = new Help(new ConfigDouble(), $longOptions, $shortOptions); + + $reflProperty = new ReflectionProperty($help, 'activeOptions'); + $reflProperty->setAccessible(true); + $activeOptions = $reflProperty->getValue($help); + $reflProperty->setAccessible(false); + + // Simplify the value to make it comparible. + foreach ($activeOptions as $category => $options) { + $activeOptions[$category] = count($options); + } + + $this->assertSame($expected, $activeOptions, 'Option count per category does not match'); + + }//end testOptionFiltering() + + + /** + * Data provider. + * + * @return array|array>> + */ + public static function dataOptionFiltering() + { + $allLongOptions = explode(',', Help::DEFAULT_LONG_OPTIONS); + $allLongOptions[] = 'cache'; + $allLongOptions[] = 'no-cache'; + $allLongOptions[] = 'report'; + $allLongOptions[] = 'report-file'; + $allLongOptions[] = 'report-report'; + $allLongOptions[] = 'runtime-set'; + $allLongOptions[] = 'config-explain'; + $allLongOptions[] = 'config-set'; + $allLongOptions[] = 'config-delete'; + $allLongOptions[] = 'config-show'; + $allLongOptions[] = 'generator'; + $allLongOptions[] = 'suffix'; + + $allShortOptions = Help::DEFAULT_SHORT_OPTIONS.'saem'; + + return [ + 'No options' => [ + 'longOptions' => [], + 'shortOptions' => '', + 'expected' => [], + ], + 'Invalid options have no influence' => [ + 'longOptions' => [ + 'doesnotexist', + 'invalid', + ], + 'shortOptions' => 'bjrz', + 'expected' => [], + ], + 'Short options passed as long options works fine' => [ + 'longOptions' => [ + 's', + 'suffix', + 'a', + 'e', + 'colors', + ], + 'shortOptions' => '', + 'expected' => [ + 'Rule Selection Options' => 1, + 'Run Options' => 2, + 'Reporting Options' => 2, + ], + ], + 'All options' => [ + 'longOptions' => $allLongOptions, + 'shortOptions' => $allShortOptions, + 'expected' => [ + 'Scan targets' => 8, + 'Rule Selection Options' => 7, + 'Run Options' => 8, + 'Reporting Options' => 19, + 'Configuration Options' => 8, + 'Miscellaneous Options' => 5, + ], + ], + 'Default options only' => [ + 'longOptions' => explode(',', Help::DEFAULT_LONG_OPTIONS), + 'shortOptions' => Help::DEFAULT_SHORT_OPTIONS, + 'expected' => [ + 'Scan targets' => 8, + 'Rule Selection Options' => 5, + 'Run Options' => 4, + 'Reporting Options' => 14, + 'Configuration Options' => 4, + 'Miscellaneous Options' => 5, + ], + ], + 'Only one category' => [ + 'longOptions' => [ + 'file', + 'stdin-path', + 'file-list', + 'filter', + 'ignore', + 'extensions', + ], + 'shortOptions' => '-l', + 'expected' => [ + 'Scan targets' => 8, + ], + ], + 'All except one category' => [ + 'longOptions' => array_diff($allLongOptions, ['version', 'vv', 'vvv']), + 'shortOptions' => str_replace(['h', 'v'], '', $allShortOptions), + 'expected' => [ + 'Scan targets' => 8, + 'Rule Selection Options' => 7, + 'Run Options' => 8, + 'Reporting Options' => 19, + 'Configuration Options' => 8, + ], + ], + ]; + + }//end dataOptionFiltering() + + + /** + * Test filtering of the options by requested options does not leave stray spacers at the start + * or end of a category and that a category does not contain two consecutive spacers. + * + * {@internal Careful! This test may need updates to still test what it is supposed to test + * if/when the defined options in Help::getAllOptions() change.} + * + * @param array $longOptions The long options which should be displayed. + * @param string $shortOptions The short options which should be displayed. + * + * @dataProvider dataOptionFilteringSpacerHandling + * + * @return void + */ + public function testOptionFilteringSpacerHandling($longOptions, $shortOptions) + { + $help = new Help(new ConfigDouble(), $longOptions, $shortOptions); + + $reflProperty = new ReflectionProperty($help, 'activeOptions'); + $reflProperty->setAccessible(true); + $activeOptions = $reflProperty->getValue($help); + $reflProperty->setAccessible(false); + + $this->assertNotEmpty($activeOptions, 'Active options is empty, test is invalid'); + + foreach ($activeOptions as $options) { + $first = reset($options); + $this->assertArrayNotHasKey('spacer', $first, 'Found spacer at start of category'); + + $last = end($options); + $this->assertArrayNotHasKey('spacer', $last, 'Found spacer at end of category'); + + $previousWasSpacer = false; + foreach ($options as $option) { + $this->assertFalse((isset($option['spacer']) && $previousWasSpacer === true), 'Consecutive spacers found'); + $previousWasSpacer = isset($option['spacer']); + } + } + + }//end testOptionFilteringSpacerHandling() + + + /** + * Data provider. + * + * @return array>> + */ + public static function dataOptionFilteringSpacerHandling() + { + return [ + 'No spacer at start of category' => [ + 'longOptions' => ['generator'], + 'shortOptions' => 'ie', + ], + 'No spacer at end of category' => [ + 'longOptions' => [ + 'encoding', + 'tab-width', + ], + 'shortOptions' => '', + ], + 'No consecutive spacers within category' => [ + 'longOptions' => [ + 'report', + 'report-file', + 'report-report', + 'report-width', + 'basepath', + 'ignore-annotations', + 'colors', + 'no-colors', + ], + 'shortOptions' => 'spqm', + ], + ]; + + }//end dataOptionFilteringSpacerHandling() + + + /** + * Test that if no short/long options are passed, only usage information is displayed (and displayed correctly). + * + * @param array $cliArgs Command line arguments. + * @param string $expectedRegex Regex to validate expected output. + * + * @dataProvider dataDisplayUsage + * + * @return void + */ + public function testDisplayUsage($cliArgs, $expectedRegex) + { + $help = new Help(new ConfigDouble($cliArgs), []); + + $this->expectOutputRegex($expectedRegex); + + $help->display(); + + }//end testDisplayUsage() + + + /** + * Data provider. + * + * @return array>> + */ + public static function dataDisplayUsage() + { + return [ + 'Usage without colors' => [ + 'cliArgs' => ['--no-colors'], + 'expectedRegex' => '`^\s*Usage:\s+phpc(bf|s) \[options\] \\s+$`', + ], + 'Usage with colors' => [ + 'cliArgs' => ['--colors'], + 'expectedRegex' => '`^\s*\\033\[33mUsage:\\033\[0m\s+phpc(bf|s) \[options\] \\s+$`', + ], + ]; + + }//end dataDisplayUsage() + + + /** + * Test the column width calculations. + * + * This tests the following aspects: + * 1. That the report width is never less than Help::MIN_WIDTH, even when a smaller width is passed. + * 2. That the first column width is calculated correctly and is based on the longest argument. + * 3. That the word wrapping of the description respects the maximum report width. + * 4. That if the description is being wrapped, the indent for the second line is calculated correctly. + * + * @param int $reportWidth Report width for the test. + * @param array $longOptions The long options which should be displayed. + * @param string $expectedOutput Expected output. + * + * @dataProvider dataReportWidthCalculations + * + * @return void + */ + public function testReportWidthCalculations($reportWidth, $longOptions, $expectedOutput) + { + $config = new ConfigDouble(["--report-width=$reportWidth", '--no-colors']); + $help = new Help($config, $longOptions); + + $reflMethod = new ReflectionMethod($help, 'printCategories'); + $reflMethod->setAccessible(true); + $reflMethod->invoke($help); + $reflMethod->setAccessible(false); + + $this->expectOutputString($expectedOutput); + + }//end testReportWidthCalculations() + + + /** + * Data provider. + * + * @return array>> + */ + public static function dataReportWidthCalculations() + { + $longOptions = [ + 'e', + 'generator', + ]; + + // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- Test readability is more important. + return [ + 'Report width small: 40; forces report width to minimum width of 60' => [ + 'reportWidth' => 40, + 'longOptions' => $longOptions, + 'expectedOutput' => PHP_EOL.'Rule Selection Options:'.PHP_EOL + .' -e Explain a standard by showing the'.PHP_EOL + .' names of all the sniffs it'.PHP_EOL + .' includes.'.PHP_EOL + .' --generator= Show documentation for a standard.'.PHP_EOL + .' Use either the "HTML", "Markdown"'.PHP_EOL + .' or "Text" generator.'.PHP_EOL, + ], + 'Report width is minimum: 60 (= self::MIN_WIDTH)' => [ + 'reportWidth' => Help::MIN_WIDTH, + 'longOptions' => $longOptions, + 'expectedOutput' => PHP_EOL.'Rule Selection Options:'.PHP_EOL + .' -e Explain a standard by showing the'.PHP_EOL + .' names of all the sniffs it'.PHP_EOL + .' includes.'.PHP_EOL + .' --generator= Show documentation for a standard.'.PHP_EOL + .' Use either the "HTML", "Markdown"'.PHP_EOL + .' or "Text" generator.'.PHP_EOL, + ], + 'Report width matches length for one line, not the other: 96; only one should wrap' => [ + 'reportWidth' => 96, + 'longOptions' => $longOptions, + 'expectedOutput' => PHP_EOL.'Rule Selection Options:'.PHP_EOL + .' -e Explain a standard by showing the names of all the sniffs it includes.'.PHP_EOL + .' --generator= Show documentation for a standard. Use either the "HTML", "Markdown"'.PHP_EOL + .' or "Text" generator.'.PHP_EOL, + ], + 'Report width matches longest line: 119; the messages should not wrap and there should be no stray new line at the end' => [ + 'reportWidth' => 119, + 'longOptions' => $longOptions, + 'expectedOutput' => PHP_EOL.'Rule Selection Options:'.PHP_EOL + .' -e Explain a standard by showing the names of all the sniffs it includes.'.PHP_EOL + .' --generator= Show documentation for a standard. Use either the "HTML", "Markdown" or "Text" generator.'.PHP_EOL, + ], + ]; + // phpcs:enable + + }//end dataReportWidthCalculations() + + + /** + * Verify that variable elements in an argument specification get colorized correctly. + * + * @param string $input String to colorize. + * @param string $expected Expected function output. + * + * @dataProvider dataColorizeVariableInput + * + * @return void + */ + public function testColorizeVariableInput($input, $expected) + { + $help = new Help(new ConfigDouble(), []); + + $reflMethod = new ReflectionMethod($help, 'colorizeVariableInput'); + $reflMethod->setAccessible(true); + $result = $reflMethod->invoke($help, $input); + $reflMethod->setAccessible(false); + + $this->assertSame($expected, $result); + + }//end testColorizeVariableInput() + + + /** + * Data provider. + * + * @return array>> + */ + public static function dataColorizeVariableInput() + { + return [ + 'Empty string' => [ + 'input' => '', + 'expected' => '', + ], + 'String without variable element(s)' => [ + 'input' => 'This is text', + 'expected' => 'This is text', + ], + 'String with variable element' => [ + 'input' => 'This text', + 'expected' => "This \033[36m\033[32m text", + ], + 'String with multiple variable elements' => [ + 'input' => ' is ', + 'expected' => "\033[36m\033[32m is \033[36m\033[32m", + ], + 'String with unclosed variable element' => [ + 'input' => 'This 'This [ + 'input' => ' text>', + 'expected' => "\033[36m text>\033[32m", + ], + 'String with nested elements and surrounding text' => [ + 'input' => 'Start text> end', + 'expected' => "Start \033[36m text>\033[32m end", + ], + ]; + + }//end dataColorizeVariableInput() + + + /** + * Test the various option types within a category get displayed correctly. + * + * @param array> $input The options to print. + * @param array $expectedRegex Regexes to validate expected output. + * + * @dataProvider dataPrintCategoryOptions + * + * @return void + */ + public function testPrintCategoryOptionsNoColor($input, $expectedRegex) + { + $config = new ConfigDouble(['--no-colors']); + $help = new Help($config, []); + + $reflProperty = new ReflectionProperty($help, 'activeOptions'); + $reflProperty->setAccessible(true); + $reflProperty->setValue($help, ['cat' => $input]); + $reflProperty->setAccessible(false); + + $reflMethod = new ReflectionMethod($help, 'setMaxOptionNameLength'); + $reflMethod->setAccessible(true); + $reflMethod->invoke($help); + $reflMethod->setAccessible(false); + + $reflMethod = new ReflectionMethod($help, 'printCategoryOptions'); + $reflMethod->setAccessible(true); + $reflMethod->invoke($help, $input); + $reflMethod->setAccessible(false); + + $this->expectOutputRegex($expectedRegex['no-color']); + + }//end testPrintCategoryOptionsNoColor() + + + /** + * Test the various option types within a category get displayed correctly. + * + * @param array> $input The options to print. + * @param array $expectedRegex Regexes to validate expected output. + * + * @dataProvider dataPrintCategoryOptions + * + * @return void + */ + public function testPrintCategoryOptionsColor($input, $expectedRegex) + { + $config = new ConfigDouble(['--colors']); + $help = new Help($config, []); + + $reflProperty = new ReflectionProperty($help, 'activeOptions'); + $reflProperty->setAccessible(true); + $reflProperty->setValue($help, ['cat' => $input]); + $reflProperty->setAccessible(false); + + $reflMethod = new ReflectionMethod($help, 'setMaxOptionNameLength'); + $reflMethod->setAccessible(true); + $reflMethod->invoke($help); + $reflMethod->setAccessible(false); + + $reflMethod = new ReflectionMethod($help, 'printCategoryOptions'); + $reflMethod->setAccessible(true); + $reflMethod->invoke($help, $input); + $reflMethod->setAccessible(false); + + $this->expectOutputRegex($expectedRegex['color']); + + }//end testPrintCategoryOptionsColor() + + + /** + * Data provider. + * + * @return array>|array>> + */ + public static function dataPrintCategoryOptions() + { + $indentLength = strlen(Help::INDENT); + $gutterLength = strlen(Help::GUTTER); + + // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- Test readability is more important. + // phpcs:disable Generic.Strings.UnnecessaryStringConcat.Found -- Test readability is more important. + return [ + 'Input: arg, spacer, arg; new lines in description get preserved' => [ + 'input' => [ + 'short-option' => [ + 'argument' => '-a', + 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + ], + 'blank-line' => [ + 'spacer' => '', + ], + 'long-option-multi-line-description' => [ + 'argument' => '--something=', + 'description' => 'Proin sit amet malesuada libero, finibus bibendum tortor. Nulla vitae quam nec orci finibus pharetra.' + ."\n".'Nam eget blandit dui.', + ], + ], + 'expectedRegex' => [ + 'no-color' => '`^ {'.$indentLength.'}-a {15} {'.$gutterLength.'}Lorem ipsum dolor sit amet, consectetur adipiscing elit\.\R' + .'\R' + .' {'.$indentLength.'}--something= {'.$gutterLength.'}Proin sit amet malesuada libero, finibus bibendum tortor\.\R' + .' {'.($indentLength + 17).'} {'.$gutterLength.'}Nulla vitae quam nec orci finibus pharetra\.\R' + .' {'.($indentLength + 17).'} {'.$gutterLength.'}Nam eget blandit dui\.\R$`', + 'color' => '`^ {'.$indentLength.'}\\033\[32m-a {15}\\033\[0m {'.$gutterLength.'}Lorem ipsum dolor sit amet, consectetur adipiscing elit\.\R' + .'\R' + .' {'.$indentLength.'}\\033\[32m--something=\\033\[36m\\033\[32m\\033\[0m {'.$gutterLength.'}Proin sit amet malesuada libero, finibus bibendum tortor\.\R' + .' {'.($indentLength + 17).'} {'.$gutterLength.'}Nulla vitae quam nec orci finibus pharetra\.\R' + .' {'.($indentLength + 17).'} {'.$gutterLength.'}Nam eget blandit dui\.\R$`', + ], + ], + 'Input: text, arg, text; multi-line text gets wrapped' => [ + 'input' => [ + 'single-line-text' => [ + 'text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + ], + 'argument-description' => [ + 'argument' => '--something', + 'description' => 'Fusce dapibus sodales est eu sodales.', + ], + 'multi-line-text-gets-wrapped' => [ + 'text' => 'Maecenas vulputate ligula vel feugiat finibus. Mauris sem dui, pretium in turpis auctor, consectetur ultrices lorem.', + ], + ], + 'expectedRegex' => [ + 'no-color' => '`^ {'.$indentLength.'}Lorem ipsum dolor sit amet, consectetur adipiscing elit\.\R' + .' {'.$indentLength.'}--something {'.$gutterLength.'}Fusce dapibus sodales est eu sodales\.\R' + .' {'.$indentLength.'}Maecenas vulputate ligula vel feugiat finibus. Mauris sem dui, pretium in\R' + .' {'.$indentLength.'}turpis auctor, consectetur ultrices lorem\.\R$`', + 'color' => '`^ {'.$indentLength.'}Lorem ipsum dolor sit amet, consectetur adipiscing elit\.\R' + .' {'.$indentLength.'}\\033\[32m--something\\033\[0m {'.$gutterLength.'}Fusce dapibus sodales est eu sodales\.\R' + .' {'.$indentLength.'}Maecenas vulputate ligula vel feugiat finibus. Mauris sem dui, pretium in\R' + .' {'.$indentLength.'}turpis auctor, consectetur ultrices lorem\.\R$`', + ], + ], + ]; + // phpcs:enable + + }//end dataPrintCategoryOptions() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/IsCamelCapsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/IsCamelCapsTest.php similarity index 93% rename from api/vendor/squizlabs/php_codesniffer/tests/Core/IsCamelCapsTest.php rename to api/vendor/squizlabs/php_codesniffer/tests/Core/Util/IsCamelCapsTest.php index b60d524b0..4d15a41fe 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Core/IsCamelCapsTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/IsCamelCapsTest.php @@ -4,15 +4,20 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ -namespace PHP_CodeSniffer\Tests\Core; +namespace PHP_CodeSniffer\Tests\Core\Util; use PHP_CodeSniffer\Util\Common; use PHPUnit\Framework\TestCase; -class IsCamelCapsTest extends TestCase +/** + * Tests for the \PHP_CodeSniffer\Util\Common::isCamelCaps method. + * + * @covers \PHP_CodeSniffer\Util\Common::isCamelCaps + */ +final class IsCamelCapsTest extends TestCase { diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/StripColorsTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/StripColorsTest.php new file mode 100644 index 000000000..46ea11bee --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/StripColorsTest.php @@ -0,0 +1,96 @@ + + * @copyright 2024 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Util; + +use PHP_CodeSniffer\Util\Common; +use PHPUnit\Framework\TestCase; + +/** + * Tests for the \PHP_CodeSniffer\Util\Sniffs\Common::stripColors() method. + * + * @covers \PHP_CodeSniffer\Util\Common::stripColors + */ +final class StripColorsTest extends TestCase +{ + + + /** + * Test stripping color codes from a text. + * + * @param string $text The text provided. + * @param string $expected Expected function output. + * + * @dataProvider dataStripColors + * + * @return void + */ + public function testStripColors($text, $expected) + { + $this->assertSame($expected, Common::stripColors($text)); + + }//end testStripColors() + + + /** + * Data provider. + * + * @see testStripColors() + * + * @return array> + */ + public static function dataStripColors() + { + return [ + 'Text is empty' => [ + 'text' => '', + 'expected' => '', + ], + 'Text enclosed in color code' => [ + 'text' => "\033[36mSome text\033[0m", + 'expected' => 'Some text', + ], + 'Text containing color code' => [ + 'text' => "Some text \033[33mSome other text", + 'expected' => 'Some text Some other text', + ], + 'Text enclosed in color code, bold' => [ + 'text' => "\033[1;32mSome text\033[0m", + 'expected' => 'Some text', + ], + 'Text enclosed in color code, with escaped text' => [ + 'text' => "\033[30;1m\\n\033[0m", + 'expected' => '\n', + ], + 'Text enclosed in color code, bold, dark, italic' => [ + 'text' => "\033[1;2;3mtext\033[0m", + 'expected' => 'text', + ], + 'Text enclosed in color code, foreground color' => [ + 'text' => "\033[38;5;255mtext\033[0m", + 'expected' => 'text', + ], + 'Text enclosed in color code, foreground color and background color' => [ + 'text' => "\033[38;5;200;48;5;255mtext\033[0m", + 'expected' => 'text', + ], + 'Multiline text containing multiple color codes' => [ + 'text' => "First \033[36mSecond\033[0m +Third \033[1;2;3mFourth +Next line\033[0m Last", + 'expected' => 'First Second +Third Fourth +Next line Last', + ], + ]; + + }//end dataStripColors() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/SuggestTypeTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/SuggestTypeTest.php new file mode 100644 index 000000000..88da1cd5d --- /dev/null +++ b/api/vendor/squizlabs/php_codesniffer/tests/Core/Util/SuggestTypeTest.php @@ -0,0 +1,224 @@ + + * @copyright 2019 Juliette Reinders Folmer. All rights reserved. + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + */ + +namespace PHP_CodeSniffer\Tests\Core\Util; + +use PHP_CodeSniffer\Util\Common; +use PHPUnit\Framework\TestCase; + +/** + * Tests for the \PHP_CodeSniffer\Util\Sniffs\Common::suggestType() method. + * + * @covers \PHP_CodeSniffer\Util\Common::suggestType + */ +final class SuggestTypeTest extends TestCase +{ + + + /** + * Test passing an empty type to the suggestType() method. + * + * @return void + */ + public function testSuggestTypeEmpty() + { + $this->assertSame('', Common::suggestType('')); + + }//end testSuggestTypeEmpty() + + + /** + * Test passing one of the allowed types to the suggestType() method. + * + * @param string $varType The type. + * + * @dataProvider dataSuggestTypeAllowedType + * + * @return void + */ + public function testSuggestTypeAllowedType($varType) + { + $result = Common::suggestType($varType); + $this->assertSame($varType, $result); + + }//end testSuggestTypeAllowedType() + + + /** + * Data provider. + * + * @see testSuggestTypeAllowedType() + * + * @return array> + */ + public static function dataSuggestTypeAllowedType() + { + $data = []; + foreach (Common::$allowedTypes as $type) { + $data['Type: '.$type] = [$type]; + } + + return $data; + + }//end dataSuggestTypeAllowedType() + + + /** + * Test passing one of the allowed types in the wrong case to the suggestType() method. + * + * @param string $varType The type found. + * @param string $expected Expected suggested type. + * + * @dataProvider dataSuggestTypeAllowedTypeWrongCase + * + * @return void + */ + public function testSuggestTypeAllowedTypeWrongCase($varType, $expected) + { + $result = Common::suggestType($varType); + $this->assertSame($expected, $result); + + }//end testSuggestTypeAllowedTypeWrongCase() + + + /** + * Data provider. + * + * @see testSuggestTypeAllowedTypeWrongCase() + * + * @return array> + */ + public static function dataSuggestTypeAllowedTypeWrongCase() + { + $data = []; + foreach (Common::$allowedTypes as $type) { + $data['Mixed case: '.$type] = [ + 'varType' => ucfirst($type), + 'expected' => $type, + ]; + $data['Uppercase: '.$type] = [ + 'varType' => strtoupper($type), + 'expected' => $type, + ]; + } + + return $data; + + }//end dataSuggestTypeAllowedTypeWrongCase() + + + /** + * Test the suggestType() method for all other cases. + * + * @param string $varType The type found. + * @param string $expected Expected suggested type. + * + * @dataProvider dataSuggestTypeOther + * + * @return void + */ + public function testSuggestTypeOther($varType, $expected) + { + $result = Common::suggestType($varType); + $this->assertSame($expected, $result); + + }//end testSuggestTypeOther() + + + /** + * Data provider. + * + * @see testSuggestTypeOther() + * + * @return array> + */ + public static function dataSuggestTypeOther() + { + return [ + // Short forms. + 'Short form type: bool, lowercase' => [ + 'varType' => 'bool', + 'expected' => 'boolean', + ], + 'Short form type: bool, uppercase' => [ + 'varType' => 'BOOL', + 'expected' => 'boolean', + ], + 'Short form type: double, lowercase' => [ + 'varType' => 'double', + 'expected' => 'float', + ], + 'Short form type: real, mixed case' => [ + 'varType' => 'Real', + 'expected' => 'float', + ], + 'Short form type: double, mixed case' => [ + 'varType' => 'DoUbLe', + 'expected' => 'float', + ], + 'Short form type: int, lowercase' => [ + 'varType' => 'int', + 'expected' => 'integer', + ], + 'Short form type: int, uppercase' => [ + 'varType' => 'INT', + 'expected' => 'integer', + ], + + // Array types. + 'Array type: mixed case keyword, empty parentheses' => [ + 'varType' => 'Array()', + 'expected' => 'array', + ], + 'Array type: short form type as value within the parentheses' => [ + 'varType' => 'array(real)', + 'expected' => 'array(float)', + ], + 'Array type: short form type as key within the parentheses' => [ + 'varType' => 'array(int => object)', + 'expected' => 'array(integer => object)', + ], + 'Array type: valid specification' => [ + 'varType' => 'array(integer => array(string => resource))', + 'expected' => 'array(integer => array(string => resource))', + ], + 'Array type: short form + uppercase types within the parentheses' => [ + 'varType' => 'ARRAY(BOOL => DOUBLE)', + 'expected' => 'array(boolean => float)', + ], + 'Array type: no space around the arrow within the parentheses' => [ + 'varType' => 'array(string=>resource)', + 'expected' => 'array(string => resource)', + ], + + // Incomplete array type. + 'Array type: incomplete specification' => [ + 'varType' => 'array(int =>', + 'expected' => 'array', + ], + + // Custom types are returned unchanged. + 'Unknown type: " => "' => [ + 'varType' => ' => ', + 'expected' => ' => ', + ], + 'Unknown type: "string[]"' => [ + 'varType' => 'string[]', + 'expected' => 'string[]', + ], + 'Unknown type: "\DateTime"' => [ + 'varType' => '\DateTime', + 'expected' => '\DateTime', + ], + ]; + + }//end dataSuggestTypeOther() + + +}//end class diff --git a/api/vendor/squizlabs/php_codesniffer/tests/FileList.php b/api/vendor/squizlabs/php_codesniffer/tests/FileList.php index 8ef57b7af..ac3c944f3 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/FileList.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/FileList.php @@ -4,11 +4,15 @@ * * @author Juliette Reinders Folmer * @copyright 2019 Juliette Reinders Folmer. All rights reserved. - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; +use RegexIterator; + class FileList { @@ -52,21 +56,21 @@ public function __construct($directory, $rootPath='', $filter='') { $this->rootPath = $rootPath; - $directory = new \RecursiveDirectoryIterator( + $directory = new RecursiveDirectoryIterator( $directory, - \RecursiveDirectoryIterator::UNIX_PATHS + RecursiveDirectoryIterator::UNIX_PATHS ); - $flattened = new \RecursiveIteratorIterator( + $flattened = new RecursiveIteratorIterator( $directory, - \RecursiveIteratorIterator::LEAVES_ONLY, - \RecursiveIteratorIterator::CATCH_GET_CHILD + RecursiveIteratorIterator::LEAVES_ONLY, + RecursiveIteratorIterator::CATCH_GET_CHILD ); if ($filter === '') { $filter = sprintf($this->baseRegex, preg_quote($this->rootPath)); } - $this->fileIterator = new \RegexIterator($flattened, $filter); + $this->fileIterator = new RegexIterator($flattened, $filter); return $this; diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Standards/AbstractSniffUnitTest.php b/api/vendor/squizlabs/php_codesniffer/tests/Standards/AbstractSniffUnitTest.php index c050a0c2a..ccd90c513 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Standards/AbstractSniffUnitTest.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Standards/AbstractSniffUnitTest.php @@ -8,15 +8,16 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Standards; -use PHP_CodeSniffer\Config; +use DirectoryIterator; use PHP_CodeSniffer\Exceptions\RuntimeException; -use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Files\LocalFile; +use PHP_CodeSniffer\Ruleset; +use PHP_CodeSniffer\Tests\ConfigDouble; use PHP_CodeSniffer\Util\Common; use PHPUnit\Framework\TestCase; @@ -50,15 +51,17 @@ abstract class AbstractSniffUnitTest extends TestCase /** * Sets up this unit test. * + * @before + * * @return void */ - protected function setUp() + protected function setUpPrerequisites() { $class = get_class($this); $this->standardsDir = $GLOBALS['PHP_CODESNIFFER_STANDARD_DIRS'][$class]; $this->testsDir = $GLOBALS['PHP_CODESNIFFER_TEST_DIRS'][$class]; - }//end setUp() + }//end setUpPrerequisites() /** @@ -76,7 +79,7 @@ protected function getTestFiles($testFileBase) $testFiles = []; $dir = substr($testFileBase, 0, strrpos($testFileBase, DIRECTORY_SEPARATOR)); - $di = new \DirectoryIterator($dir); + $di = new DirectoryIterator($dir); foreach ($di as $file) { $path = $file->getPathname(); @@ -88,7 +91,7 @@ protected function getTestFiles($testFileBase) } // Put them in order. - sort($testFiles); + sort($testFiles, SORT_NATURAL); return $testFiles; @@ -132,7 +135,7 @@ final public function testSniff() if (isset($GLOBALS['PHP_CODESNIFFER_CONFIG']) === true) { $config = $GLOBALS['PHP_CODESNIFFER_CONFIG']; } else { - $config = new Config(); + $config = new ConfigDouble(); $config->cache = false; $GLOBALS['PHP_CODESNIFFER_CONFIG'] = $config; } @@ -188,15 +191,20 @@ final public function testSniff() // Check for a .fixed file to check for accuracy of fixes. $fixedFile = $testFile.'.fixed'; + $filename = basename($testFile); if (file_exists($fixedFile) === true) { - $diff = $phpcsFile->fixer->generateDiff($fixedFile); - if (trim($diff) !== '') { - $filename = basename($testFile); - $fixedFilename = basename($fixedFile); - $failureMessages[] = "Fixed version of $filename does not match expected version in $fixedFilename; the diff is\n$diff"; + if ($phpcsFile->fixer->getContents() !== file_get_contents($fixedFile)) { + // Only generate the (expensive) diff if a difference is expected. + $diff = $phpcsFile->fixer->generateDiff($fixedFile); + if (trim($diff) !== '') { + $fixedFilename = basename($fixedFile); + $failureMessages[] = "Fixed version of $filename does not match expected version in $fixedFilename; the diff is\n$diff"; + } } + } else if (is_callable([$this, 'addWarning']) === true) { + $this->addWarning("Missing fixed version of $filename to verify the accuracy of fixes, while the sniff is making fixes against the test case file"); } - } + }//end if // Restore the config. $config->setSettings($oldConfig); @@ -431,7 +439,6 @@ public function generateFailureMessages(LocalFile $file) */ public function setCliValues($filename, $config) { - return; }//end setCliValues() diff --git a/api/vendor/squizlabs/php_codesniffer/tests/Standards/AllSniffs.php b/api/vendor/squizlabs/php_codesniffer/tests/Standards/AllSniffs.php index 24527dd51..8644ca39e 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/Standards/AllSniffs.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/Standards/AllSniffs.php @@ -4,15 +4,17 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Standards; -use PHP_CodeSniffer\Util\Standards; use PHP_CodeSniffer\Autoload; -use PHPUnit\TextUI\TestRunner; +use PHP_CodeSniffer\Util\Standards; use PHPUnit\Framework\TestSuite; +use PHPUnit\TextUI\TestRunner; +use RecursiveDirectoryIterator; +use RecursiveIteratorIterator; class AllSniffs { @@ -61,26 +63,17 @@ public static function suite() foreach ($installedStandards as $standard => $details) { Autoload::addSearchPath($details['path'], $details['namespace']); - // If the test is running PEAR installed, the built-in standards - // are split into different directories; one for the sniffs and - // a different file system location for tests. - if ($isInstalled === true && is_dir(dirname($details['path']).DIRECTORY_SEPARATOR.'Generic') === true) { - $testPath = realpath(__DIR__.'/../../src/Standards/'.$standard); - } else { - $testPath = $details['path']; - } - if (in_array($standard, $ignoreTestsForStandards, true) === true) { continue; } - $testsDir = $testPath.DIRECTORY_SEPARATOR.'Tests'.DIRECTORY_SEPARATOR; + $testsDir = $details['path'].DIRECTORY_SEPARATOR.'Tests'.DIRECTORY_SEPARATOR; if (is_dir($testsDir) === false) { // No tests for this standard. continue; } - $di = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($testsDir)); + $di = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($testsDir)); foreach ($di as $file) { // Skip hidden files. diff --git a/api/vendor/squizlabs/php_codesniffer/tests/TestSuite.php b/api/vendor/squizlabs/php_codesniffer/tests/TestSuite.php index 9eb269f8b..4598a8562 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/TestSuite.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/TestSuite.php @@ -4,13 +4,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests; -use PHPUnit\Framework\TestSuite as PHPUnit_TestSuite; use PHPUnit\Framework\TestResult; +use PHPUnit\Framework\TestSuite as PHPUnit_TestSuite; class TestSuite extends PHPUnit_TestSuite { diff --git a/api/vendor/squizlabs/php_codesniffer/tests/TestSuite7.php b/api/vendor/squizlabs/php_codesniffer/tests/TestSuite7.php index 43db293d5..ad0947c58 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/TestSuite7.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/TestSuite7.php @@ -4,13 +4,13 @@ * * @author Greg Sherwood * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests; -use PHPUnit\Framework\TestSuite as PHPUnit_TestSuite; use PHPUnit\Framework\TestResult; +use PHPUnit\Framework\TestSuite as PHPUnit_TestSuite; class TestSuite extends PHPUnit_TestSuite { @@ -19,11 +19,11 @@ class TestSuite extends PHPUnit_TestSuite /** * Runs the tests and collects their result in a TestResult. * - * @param \PHPUnit\Framework\TestResult $result A test result. + * @param \PHPUnit\Framework\TestResult|null $result A test result. * * @return \PHPUnit\Framework\TestResult */ - public function run(TestResult $result=null): TestResult + public function run(?TestResult $result=null): TestResult { $result = parent::run($result); printPHPCodeSnifferTestOutput(); diff --git a/api/vendor/squizlabs/php_codesniffer/tests/bootstrap.php b/api/vendor/squizlabs/php_codesniffer/tests/bootstrap.php index 47084d113..cf4936daa 100644 --- a/api/vendor/squizlabs/php_codesniffer/tests/bootstrap.php +++ b/api/vendor/squizlabs/php_codesniffer/tests/bootstrap.php @@ -4,7 +4,7 @@ * * @author Greg Sherwood * @copyright 2006-2017 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ if (defined('PHP_CODESNIFFER_IN_TESTS') === false) { @@ -19,11 +19,7 @@ define('PHP_CODESNIFFER_VERBOSITY', 0); } -if (is_file(__DIR__.'/../autoload.php') === true) { - include_once __DIR__.'/../autoload.php'; -} else { - include_once 'PHP/CodeSniffer/autoload.php'; -} +require_once __DIR__.'/../autoload.php'; $tokens = new \PHP_CodeSniffer\Util\Tokens(); @@ -44,13 +40,6 @@ class_alias('PHPUnit_TextUI_TestRunner', 'PHPUnit'.'\TextUI\TestRunner'); class_alias('PHPUnit_Framework_TestResult', 'PHPUnit'.'\Framework\TestResult'); } -// Determine whether this is a PEAR install or not. -$GLOBALS['PHP_CODESNIFFER_PEAR'] = false; - -if (is_file(__DIR__.'/../autoload.php') === false) { - $GLOBALS['PHP_CODESNIFFER_PEAR'] = true; -} - /** * A global util function to help print unit test fixing data. diff --git a/api/vendor/symfony/cache-contracts/CacheInterface.php b/api/vendor/symfony/cache-contracts/CacheInterface.php index 67e4dfd3a..70cb0d544 100644 --- a/api/vendor/symfony/cache-contracts/CacheInterface.php +++ b/api/vendor/symfony/cache-contracts/CacheInterface.php @@ -42,16 +42,16 @@ interface CacheInterface * * @throws InvalidArgumentException When $key is not valid or when $beta is negative */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null); + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null); /** * Removes an item from the pool. * * @param string $key The key to delete * - * @throws InvalidArgumentException When $key is not valid - * * @return bool True if the item was successfully removed, false if there was any error + * + * @throws InvalidArgumentException When $key is not valid */ public function delete(string $key): bool; } diff --git a/api/vendor/symfony/cache-contracts/CacheTrait.php b/api/vendor/symfony/cache-contracts/CacheTrait.php index d340e0696..b9feafbc6 100644 --- a/api/vendor/symfony/cache-contracts/CacheTrait.php +++ b/api/vendor/symfony/cache-contracts/CacheTrait.php @@ -30,7 +30,7 @@ trait CacheTrait * * @return mixed */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { return $this->doGet($this, $key, $callback, $beta, $metadata); } @@ -43,7 +43,7 @@ public function delete(string $key): bool return $this->deleteItem($key); } - private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, array &$metadata = null, LoggerInterface $logger = null) + private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null, ?LoggerInterface $logger = null) { if (0 > $beta = $beta ?? 1.0) { throw new class(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException { }; diff --git a/api/vendor/symfony/cache-contracts/LICENSE b/api/vendor/symfony/cache-contracts/LICENSE index 235841453..7536caeae 100644 --- a/api/vendor/symfony/cache-contracts/LICENSE +++ b/api/vendor/symfony/cache-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2021 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/cache/Adapter/AbstractAdapter.php b/api/vendor/symfony/cache/Adapter/AbstractAdapter.php index 5c776f7a7..de5af1793 100644 --- a/api/vendor/symfony/cache/Adapter/AbstractAdapter.php +++ b/api/vendor/symfony/cache/Adapter/AbstractAdapter.php @@ -25,14 +25,14 @@ */ abstract class AbstractAdapter implements AdapterInterface, CacheInterface, LoggerAwareInterface, ResettableInterface { + use AbstractAdapterTrait; + use ContractsTrait; + /** * @internal */ protected const NS_SEPARATOR = ':'; - use AbstractAdapterTrait; - use ContractsTrait; - private static $apcuSupported; private static $phpFilesSupported; @@ -52,7 +52,7 @@ static function ($key, $value, $isHit) { // Detect wrapped values that encode for their expiry and creation duration // For compactness, these values are packed in the key of an array using // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) key($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { + if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) array_key_first($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { $item->value = $v[$k]; $v = unpack('Ve/Nc', substr($k, 1, -1)); $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; @@ -74,7 +74,7 @@ static function ($deferred, $namespace, &$expiredIds, $getId, $defaultLifetime) $key = (string) $key; if (null === $item->expiry) { $ttl = 0 < $defaultLifetime ? $defaultLifetime : 0; - } elseif (0 === $item->expiry) { + } elseif (!$item->expiry) { $ttl = 0; } elseif (0 >= $ttl = (int) (0.1 + $item->expiry - $now)) { $expiredIds[] = $getId($key); @@ -101,7 +101,7 @@ static function ($deferred, $namespace, &$expiredIds, $getId, $defaultLifetime) * * @return AdapterInterface */ - public static function createSystemCache(string $namespace, int $defaultLifetime, string $version, string $directory, LoggerInterface $logger = null) + public static function createSystemCache(string $namespace, int $defaultLifetime, string $version, string $directory, ?LoggerInterface $logger = null) { $opcache = new PhpFilesAdapter($namespace, $defaultLifetime, $directory, true); if (null !== $logger) { @@ -112,11 +112,11 @@ public static function createSystemCache(string $namespace, int $defaultLifetime return $opcache; } - if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && !filter_var(ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOLEAN)) { + if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && !filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOLEAN)) { return $opcache; } - $apcu = new ApcuAdapter($namespace, (int) $defaultLifetime / 5, $version); + $apcu = new ApcuAdapter($namespace, intdiv($defaultLifetime, 5), $version); if (null !== $logger) { $apcu->setLogger($logger); } @@ -126,17 +126,21 @@ public static function createSystemCache(string $namespace, int $defaultLifetime public static function createConnection(string $dsn, array $options = []) { - if (0 === strpos($dsn, 'redis:') || 0 === strpos($dsn, 'rediss:')) { + if (str_starts_with($dsn, 'redis:') || str_starts_with($dsn, 'rediss:')) { return RedisAdapter::createConnection($dsn, $options); } - if (0 === strpos($dsn, 'memcached:')) { + if (str_starts_with($dsn, 'memcached:')) { return MemcachedAdapter::createConnection($dsn, $options); } if (0 === strpos($dsn, 'couchbase:')) { - return CouchbaseBucketAdapter::createConnection($dsn, $options); + if (CouchbaseBucketAdapter::isSupported()) { + return CouchbaseBucketAdapter::createConnection($dsn, $options); + } + + return CouchbaseCollectionAdapter::createConnection($dsn, $options); } - throw new InvalidArgumentException(sprintf('Unsupported DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Unsupported DSN: it does not start with "redis[s]:", "memcached:" nor "couchbase:".'); } /** @@ -151,7 +155,12 @@ public function commit() $retry = $this->deferred = []; if ($expiredIds) { - $this->doDelete($expiredIds); + try { + $this->doDelete($expiredIds); + } catch (\Exception $e) { + $ok = false; + CacheItem::log($this->logger, 'Failed to delete expired items: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); + } } foreach ($byLifetime as $lifetime => $values) { try { diff --git a/api/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php b/api/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php index fd5268ce8..a384b16ad 100644 --- a/api/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php +++ b/api/vendor/symfony/cache/Adapter/AbstractTagAwareAdapter.php @@ -79,7 +79,7 @@ static function ($deferred, &$expiredIds, $getId, $tagPrefix, $defaultLifetime) $key = (string) $key; if (null === $item->expiry) { $ttl = 0 < $defaultLifetime ? $defaultLifetime : 0; - } elseif (0 === $item->expiry) { + } elseif (!$item->expiry) { $ttl = 0; } elseif (0 >= $ttl = (int) (0.1 + $item->expiry - $now)) { $expiredIds[] = $getId($key); @@ -136,7 +136,7 @@ abstract protected function doSave(array $values, int $lifetime, array $addTagDa * * @param array $ids An array of identifiers that should be removed from the pool * - * @return bool True if the items were successfully removed, false otherwise + * @return bool */ abstract protected function doDelete(array $ids); @@ -151,8 +151,6 @@ abstract protected function doDeleteTagRelations(array $tagData): bool; * Invalidates cached items using tags. * * @param string[] $tagIds An array of tags to invalidate, key is tag and value is tag id - * - * @return bool True on success */ abstract protected function doInvalidate(array $tagIds): bool; @@ -179,7 +177,12 @@ public function commit(): bool if ($expiredIds) { // Tags are not cleaned up in this case, however that is done on invalidateTags(). - $this->doDelete($expiredIds); + try { + $this->doDelete($expiredIds); + } catch (\Exception $e) { + $ok = false; + CacheItem::log($this->logger, 'Failed to delete expired items: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); + } } foreach ($byLifetime as $lifetime => $values) { try { @@ -293,8 +296,12 @@ public function invalidateTags(array $tags) $tagIds[] = $this->getId(self::TAGS_PREFIX.$tag); } - if ($this->doInvalidate($tagIds)) { - return true; + try { + if ($this->doInvalidate($tagIds)) { + return true; + } + } catch (\Exception $e) { + CacheItem::log($this->logger, 'Failed to invalidate tags: '.$e->getMessage(), ['exception' => $e, 'cache-adapter' => get_debug_type($this)]); } return false; diff --git a/api/vendor/symfony/cache/Adapter/AdapterInterface.php b/api/vendor/symfony/cache/Adapter/AdapterInterface.php index cbab77946..f8dce866d 100644 --- a/api/vendor/symfony/cache/Adapter/AdapterInterface.php +++ b/api/vendor/symfony/cache/Adapter/AdapterInterface.php @@ -34,7 +34,7 @@ public function getItem($key); /** * {@inheritdoc} * - * @return \Traversable|CacheItem[] + * @return \Traversable */ public function getItems(array $keys = []); diff --git a/api/vendor/symfony/cache/Adapter/ApcuAdapter.php b/api/vendor/symfony/cache/Adapter/ApcuAdapter.php index 28ebce3e8..639e31441 100644 --- a/api/vendor/symfony/cache/Adapter/ApcuAdapter.php +++ b/api/vendor/symfony/cache/Adapter/ApcuAdapter.php @@ -25,7 +25,7 @@ class ApcuAdapter extends AbstractAdapter /** * @throws CacheException if APCu is not enabled */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $version = null, ?MarshallerInterface $marshaller = null) + public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $version = null, ?MarshallerInterface $marshaller = null) { if (!static::isSupported()) { throw new CacheException('APCu is not enabled.'); @@ -49,7 +49,7 @@ public function __construct(string $namespace = '', int $defaultLifetime = 0, st public static function isSupported() { - return \function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), \FILTER_VALIDATE_BOOLEAN); + return \function_exists('apcu_fetch') && filter_var(\ini_get('apc.enabled'), \FILTER_VALIDATE_BOOLEAN); } /** @@ -60,7 +60,14 @@ protected function doFetch(array $ids) $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); try { $values = []; - foreach (apcu_fetch($ids, $ok) ?: [] as $k => $v) { + $ids = array_flip($ids); + foreach (apcu_fetch(array_keys($ids), $ok) ?: [] as $k => $v) { + if (!isset($ids[$k])) { + // work around https://github.com/krakjoe/apcu/issues/247 + $k = key($ids); + } + unset($ids[$k]); + if (null !== $v || $ok) { $values[$k] = null !== $this->marshaller ? $this->marshaller->unmarshall($v) : $v; } @@ -87,8 +94,8 @@ protected function doHave(string $id) */ protected function doClear(string $namespace) { - return isset($namespace[0]) && class_exists(\APCuIterator::class, false) && ('cli' !== \PHP_SAPI || filter_var(ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOLEAN)) - ? apcu_delete(new \APCuIterator(sprintf('/^%s/', preg_quote($namespace, '/')), \APC_ITER_KEY)) + return isset($namespace[0]) && class_exists(\APCUIterator::class, false) && ('cli' !== \PHP_SAPI || filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOLEAN)) + ? apcu_delete(new \APCUIterator(sprintf('/^%s/', preg_quote($namespace, '/')), \APC_ITER_KEY)) : apcu_clear_cache(); } @@ -122,7 +129,7 @@ protected function doSave(array $values, int $lifetime) } catch (\Throwable $e) { if (1 === \count($values)) { // Workaround https://github.com/krakjoe/apcu/issues/170 - apcu_delete(key($values)); + apcu_delete(array_key_first($values)); } throw $e; diff --git a/api/vendor/symfony/cache/Adapter/ArrayAdapter.php b/api/vendor/symfony/cache/Adapter/ArrayAdapter.php index f65fc0828..b251814eb 100644 --- a/api/vendor/symfony/cache/Adapter/ArrayAdapter.php +++ b/api/vendor/symfony/cache/Adapter/ArrayAdapter.php @@ -73,7 +73,7 @@ static function ($key, $value, $isHit) { /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { $item = $this->getItem($key); $metadata = $item->getMetadata(); @@ -81,7 +81,10 @@ public function get(string $key, callable $callback, float $beta = null, array & // ArrayAdapter works in memory, we don't care about stampede protection if (\INF === $beta || !$item->isHit()) { $save = true; - $this->save($item->set($callback($item, $save))); + $item->set($callback($item, $save)); + if ($save) { + $this->save($item); + } } return $item->get(); @@ -190,14 +193,14 @@ public function save(CacheItemInterface $item) $now = microtime(true); - if (0 === $expiry) { - $expiry = \PHP_INT_MAX; - } - - if (null !== $expiry && $expiry <= $now) { - $this->deleteItem($key); + if (null !== $expiry) { + if (!$expiry) { + $expiry = \PHP_INT_MAX; + } elseif ($expiry <= $now) { + $this->deleteItem($key); - return true; + return true; + } } if ($this->storeSerialized && null === $value = $this->freeze($value, $key)) { return false; @@ -223,7 +226,7 @@ public function save(CacheItemInterface $item) } $this->values[$key] = $value; - $this->expiries[$key] = null !== $expiry ? $expiry : \PHP_INT_MAX; + $this->expiries[$key] = $expiry ?? \PHP_INT_MAX; return true; } @@ -306,7 +309,7 @@ public function reset() $this->clear(); } - private function generateItems(array $keys, $now, $f) + private function generateItems(array $keys, float $now, \Closure $f): \Generator { foreach ($keys as $i => $key) { if (!$isHit = isset($this->expiries[$key]) && ($this->expiries[$key] > $now || !$this->deleteItem($key))) { @@ -336,7 +339,7 @@ private function generateItems(array $keys, $now, $f) } } - private function freeze($value, $key) + private function freeze($value, string $key) { if (null === $value) { return 'N;'; @@ -346,7 +349,7 @@ private function freeze($value, $key) if ('N;' === $value || (isset($value[2]) && ':' === $value[1])) { return serialize($value); } - } elseif (!is_scalar($value)) { + } elseif (!\is_scalar($value)) { try { $serialized = serialize($value); } catch (\Exception $e) { diff --git a/api/vendor/symfony/cache/Adapter/ChainAdapter.php b/api/vendor/symfony/cache/Adapter/ChainAdapter.php index 390d55e76..7d9552836 100644 --- a/api/vendor/symfony/cache/Adapter/ChainAdapter.php +++ b/api/vendor/symfony/cache/Adapter/ChainAdapter.php @@ -53,7 +53,7 @@ public function __construct(array $adapters, int $defaultLifetime = 0) if (!$adapter instanceof CacheItemPoolInterface) { throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', get_debug_type($adapter), CacheItemPoolInterface::class)); } - if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && $adapter instanceof ApcuAdapter && !filter_var(ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOLEAN)) { + if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && $adapter instanceof ApcuAdapter && !filter_var(\ini_get('apc.enable_cli'), \FILTER_VALIDATE_BOOLEAN)) { continue; // skip putting APCu in the chain when the backend is disabled } @@ -92,11 +92,19 @@ static function ($sourceItem, $item, $defaultLifetime, $sourceMetadata = null) { /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { + $doSave = true; + $callback = static function (CacheItem $item, bool &$save) use ($callback, &$doSave) { + $value = $callback($item, $save); + $doSave = $save; + + return $value; + }; + $lastItem = null; $i = 0; - $wrap = function (CacheItem $item = null) use ($key, $callback, $beta, &$wrap, &$i, &$lastItem, &$metadata) { + $wrap = function (?CacheItem $item = null, bool &$save = true) use ($key, $callback, $beta, &$wrap, &$i, &$doSave, &$lastItem, &$metadata) { $adapter = $this->adapters[$i]; if (isset($this->adapters[++$i])) { $callback = $wrap; @@ -110,6 +118,7 @@ public function get(string $key, callable $callback, float $beta = null, array & if (null !== $item) { (self::$syncItem)($lastItem = $lastItem ?? $item, $item, $this->defaultLifetime, $metadata); } + $save = $doSave; return $value; }; @@ -150,7 +159,7 @@ public function getItems(array $keys = []) return $this->generateItems($this->adapters[0]->getItems($keys), 0); } - private function generateItems(iterable $items, int $adapterIndex) + private function generateItems(iterable $items, int $adapterIndex): \Generator { $missing = []; $misses = []; diff --git a/api/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php b/api/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php index 36667f2a0..84ab28143 100644 --- a/api/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php +++ b/api/vendor/symfony/cache/Adapter/CouchbaseBucketAdapter.php @@ -39,7 +39,7 @@ class CouchbaseBucketAdapter extends AbstractAdapter private $bucket; private $marshaller; - public function __construct(\CouchbaseBucket $bucket, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) + public function __construct(\CouchbaseBucket $bucket, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) { if (!static::isSupported()) { throw new CacheException('Couchbase >= 2.6.0 < 3.0.0 is required.'); @@ -83,7 +83,7 @@ public static function createConnection($servers, array $options = []): \Couchba foreach ($servers as $dsn) { if (0 !== strpos($dsn, 'couchbase:')) { - throw new InvalidArgumentException(sprintf('Invalid Couchbase DSN: "%s" does not start with "couchbase:".', $dsn)); + throw new InvalidArgumentException('Invalid Couchbase DSN: it does not start with "couchbase:".'); } preg_match($dsnPattern, $dsn, $matches); @@ -182,7 +182,7 @@ protected function doFetch(array $ids) /** * {@inheritdoc} */ - protected function doHave($id): bool + protected function doHave(string $id): bool { return false !== $this->bucket->get($id); } @@ -190,7 +190,7 @@ protected function doHave($id): bool /** * {@inheritdoc} */ - protected function doClear($namespace): bool + protected function doClear(string $namespace): bool { if ('' === $namespace) { $this->bucket->manager()->flush(); @@ -221,7 +221,7 @@ protected function doDelete(array $ids): bool /** * {@inheritdoc} */ - protected function doSave(array $values, $lifetime) + protected function doSave(array $values, int $lifetime) { if (!$values = $this->marshaller->marshall($values, $failed)) { return $failed; diff --git a/api/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php b/api/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php new file mode 100644 index 000000000..c0a1317d2 --- /dev/null +++ b/api/vendor/symfony/cache/Adapter/CouchbaseCollectionAdapter.php @@ -0,0 +1,222 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Adapter; + +use Couchbase\Bucket; +use Couchbase\Cluster; +use Couchbase\ClusterOptions; +use Couchbase\Collection; +use Couchbase\DocumentNotFoundException; +use Couchbase\UpsertOptions; +use Symfony\Component\Cache\Exception\CacheException; +use Symfony\Component\Cache\Exception\InvalidArgumentException; +use Symfony\Component\Cache\Marshaller\DefaultMarshaller; +use Symfony\Component\Cache\Marshaller\MarshallerInterface; + +/** + * @author Antonio Jose Cerezo Aranda + */ +class CouchbaseCollectionAdapter extends AbstractAdapter +{ + private const MAX_KEY_LENGTH = 250; + + /** @var Collection */ + private $connection; + private $marshaller; + + public function __construct(Collection $connection, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) + { + if (!static::isSupported()) { + throw new CacheException('Couchbase >= 3.0.0 < 4.0.0 is required.'); + } + + $this->maxIdLength = static::MAX_KEY_LENGTH; + + $this->connection = $connection; + + parent::__construct($namespace, $defaultLifetime); + $this->enableVersioning(); + $this->marshaller = $marshaller ?? new DefaultMarshaller(); + } + + /** + * @param array|string $dsn + * + * @return Bucket|Collection + */ + public static function createConnection($dsn, array $options = []) + { + if (\is_string($dsn)) { + $dsn = [$dsn]; + } elseif (!\is_array($dsn)) { + throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be array or string, "%s" given.', __METHOD__, get_debug_type($dsn))); + } + + if (!static::isSupported()) { + throw new CacheException('Couchbase >= 3.0.0 < 4.0.0 is required.'); + } + + set_error_handler(function ($type, $msg, $file, $line): bool { throw new \ErrorException($msg, 0, $type, $file, $line); }); + + $dsnPattern = '/^(?couchbase(?:s)?)\:\/\/(?:(?[^\:]+)\:(?[^\@]{6,})@)?' + .'(?[^\:]+(?:\:\d+)?)(?:\/(?[^\/\?]+))(?:(?:\/(?[^\/]+))' + .'(?:\/(?[^\/\?]+)))?(?:\/)?(?:\?(?.*))?$/i'; + + $newServers = []; + $protocol = 'couchbase'; + try { + $username = $options['username'] ?? ''; + $password = $options['password'] ?? ''; + + foreach ($dsn as $server) { + if (0 !== strpos($server, 'couchbase:')) { + throw new InvalidArgumentException('Invalid Couchbase DSN: it does not start with "couchbase:".'); + } + + preg_match($dsnPattern, $server, $matches); + + $username = $matches['username'] ?: $username; + $password = $matches['password'] ?: $password; + $protocol = $matches['protocol'] ?: $protocol; + + if (isset($matches['options'])) { + $optionsInDsn = self::getOptions($matches['options']); + + foreach ($optionsInDsn as $parameter => $value) { + $options[$parameter] = $value; + } + } + + $newServers[] = $matches['host']; + } + + $option = isset($matches['options']) ? '?'.$matches['options'] : ''; + $connectionString = $protocol.'://'.implode(',', $newServers).$option; + + $clusterOptions = new ClusterOptions(); + $clusterOptions->credentials($username, $password); + + $client = new Cluster($connectionString, $clusterOptions); + + $bucket = $client->bucket($matches['bucketName']); + $collection = $bucket->defaultCollection(); + if (!empty($matches['scopeName'])) { + $scope = $bucket->scope($matches['scopeName']); + $collection = $scope->collection($matches['collectionName']); + } + + return $collection; + } finally { + restore_error_handler(); + } + } + + public static function isSupported(): bool + { + return \extension_loaded('couchbase') && version_compare(phpversion('couchbase'), '3.0.5', '>=') && version_compare(phpversion('couchbase'), '4.0', '<'); + } + + private static function getOptions(string $options): array + { + $results = []; + $optionsInArray = explode('&', $options); + + foreach ($optionsInArray as $option) { + [$key, $value] = explode('=', $option); + + $results[$key] = $value; + } + + return $results; + } + + /** + * {@inheritdoc} + */ + protected function doFetch(array $ids): array + { + $results = []; + foreach ($ids as $id) { + try { + $resultCouchbase = $this->connection->get($id); + } catch (DocumentNotFoundException $exception) { + continue; + } + + $content = $resultCouchbase->value ?? $resultCouchbase->content(); + + $results[$id] = $this->marshaller->unmarshall($content); + } + + return $results; + } + + /** + * {@inheritdoc} + */ + protected function doHave($id): bool + { + return $this->connection->exists($id)->exists(); + } + + /** + * {@inheritdoc} + */ + protected function doClear($namespace): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + protected function doDelete(array $ids): bool + { + $idsErrors = []; + foreach ($ids as $id) { + try { + $result = $this->connection->remove($id); + + if (null === $result->mutationToken()) { + $idsErrors[] = $id; + } + } catch (DocumentNotFoundException $exception) { + } + } + + return 0 === \count($idsErrors); + } + + /** + * {@inheritdoc} + */ + protected function doSave(array $values, $lifetime) + { + if (!$values = $this->marshaller->marshall($values, $failed)) { + return $failed; + } + + $upsertOptions = new UpsertOptions(); + $upsertOptions->expiry($lifetime); + + $ko = []; + foreach ($values as $key => $value) { + try { + $this->connection->upsert($key, $value, $upsertOptions); + } catch (\Exception $exception) { + $ko[$key] = ''; + } + } + + return [] === $ko ? true : $ko; + } +} diff --git a/api/vendor/symfony/cache/Adapter/DoctrineAdapter.php b/api/vendor/symfony/cache/Adapter/DoctrineAdapter.php index dc70ea697..efa30c842 100644 --- a/api/vendor/symfony/cache/Adapter/DoctrineAdapter.php +++ b/api/vendor/symfony/cache/Adapter/DoctrineAdapter.php @@ -12,9 +12,12 @@ namespace Symfony\Component\Cache\Adapter; use Doctrine\Common\Cache\CacheProvider; +use Doctrine\Common\Cache\Psr6\CacheAdapter; /** * @author Nicolas Grekas + * + * @deprecated Since Symfony 5.4, use Doctrine\Common\Cache\Psr6\CacheAdapter instead */ class DoctrineAdapter extends AbstractAdapter { @@ -22,6 +25,8 @@ class DoctrineAdapter extends AbstractAdapter public function __construct(CacheProvider $provider, string $namespace = '', int $defaultLifetime = 0) { + trigger_deprecation('symfony/cache', '5.4', '"%s" is deprecated, use "%s" instead.', __CLASS__, CacheAdapter::class); + parent::__construct('', $defaultLifetime); $this->provider = $provider; $provider->setNamespace($namespace); diff --git a/api/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php b/api/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php new file mode 100644 index 000000000..c12682413 --- /dev/null +++ b/api/vendor/symfony/cache/Adapter/DoctrineDbalAdapter.php @@ -0,0 +1,448 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Adapter; + +use Doctrine\DBAL\ArrayParameterType; +use Doctrine\DBAL\Configuration; +use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Driver\ServerInfoAwareConnection; +use Doctrine\DBAL\DriverManager; +use Doctrine\DBAL\Exception as DBALException; +use Doctrine\DBAL\Exception\TableNotFoundException; +use Doctrine\DBAL\ParameterType; +use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory; +use Doctrine\DBAL\Schema\Schema; +use Doctrine\DBAL\ServerVersionProvider; +use Doctrine\DBAL\Tools\DsnParser; +use Symfony\Component\Cache\Exception\InvalidArgumentException; +use Symfony\Component\Cache\Marshaller\DefaultMarshaller; +use Symfony\Component\Cache\Marshaller\MarshallerInterface; +use Symfony\Component\Cache\PruneableInterface; + +class DoctrineDbalAdapter extends AbstractAdapter implements PruneableInterface +{ + protected $maxIdLength = 255; + + private $marshaller; + private $conn; + private $platformName; + private $serverVersion; + private $table = 'cache_items'; + private $idCol = 'item_id'; + private $dataCol = 'item_data'; + private $lifetimeCol = 'item_lifetime'; + private $timeCol = 'item_time'; + private $namespace; + + /** + * You can either pass an existing database Doctrine DBAL Connection or + * a DSN string that will be used to connect to the database. + * + * The cache table is created automatically when possible. + * Otherwise, use the createTable() method. + * + * List of available options: + * * db_table: The name of the table [default: cache_items] + * * db_id_col: The column where to store the cache id [default: item_id] + * * db_data_col: The column where to store the cache data [default: item_data] + * * db_lifetime_col: The column where to store the lifetime [default: item_lifetime] + * * db_time_col: The column where to store the timestamp [default: item_time] + * + * @param Connection|string $connOrDsn + * + * @throws InvalidArgumentException When namespace contains invalid characters + */ + public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], ?MarshallerInterface $marshaller = null) + { + if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { + throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0])); + } + + if ($connOrDsn instanceof Connection) { + $this->conn = $connOrDsn; + } elseif (\is_string($connOrDsn)) { + if (!class_exists(DriverManager::class)) { + throw new InvalidArgumentException('Failed to parse DSN. Try running "composer require doctrine/dbal".'); + } + if (class_exists(DsnParser::class)) { + $params = (new DsnParser([ + 'db2' => 'ibm_db2', + 'mssql' => 'pdo_sqlsrv', + 'mysql' => 'pdo_mysql', + 'mysql2' => 'pdo_mysql', + 'postgres' => 'pdo_pgsql', + 'postgresql' => 'pdo_pgsql', + 'pgsql' => 'pdo_pgsql', + 'sqlite' => 'pdo_sqlite', + 'sqlite3' => 'pdo_sqlite', + ]))->parse($connOrDsn); + } else { + $params = ['url' => $connOrDsn]; + } + + $config = new Configuration(); + if (class_exists(DefaultSchemaManagerFactory::class)) { + $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory()); + } + + $this->conn = DriverManager::getConnection($params, $config); + } else { + throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be "%s" or string, "%s" given.', __METHOD__, Connection::class, get_debug_type($connOrDsn))); + } + + $this->table = $options['db_table'] ?? $this->table; + $this->idCol = $options['db_id_col'] ?? $this->idCol; + $this->dataCol = $options['db_data_col'] ?? $this->dataCol; + $this->lifetimeCol = $options['db_lifetime_col'] ?? $this->lifetimeCol; + $this->timeCol = $options['db_time_col'] ?? $this->timeCol; + $this->namespace = $namespace; + $this->marshaller = $marshaller ?? new DefaultMarshaller(); + + parent::__construct($namespace, $defaultLifetime); + } + + /** + * Creates the table to store cache items which can be called once for setup. + * + * Cache ID are saved in a column of maximum length 255. Cache data is + * saved in a BLOB. + * + * @throws DBALException When the table already exists + */ + public function createTable() + { + $schema = new Schema(); + $this->addTableToSchema($schema); + + foreach ($schema->toSql($this->conn->getDatabasePlatform()) as $sql) { + $this->conn->executeStatement($sql); + } + } + + /** + * {@inheritdoc} + */ + public function configureSchema(Schema $schema, Connection $forConnection): void + { + // only update the schema for this connection + if ($forConnection !== $this->conn) { + return; + } + + if ($schema->hasTable($this->table)) { + return; + } + + $this->addTableToSchema($schema); + } + + /** + * {@inheritdoc} + */ + public function prune(): bool + { + $deleteSql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ?"; + $params = [time()]; + $paramTypes = [ParameterType::INTEGER]; + + if ('' !== $this->namespace) { + $deleteSql .= " AND $this->idCol LIKE ?"; + $params[] = sprintf('%s%%', $this->namespace); + $paramTypes[] = ParameterType::STRING; + } + + try { + $this->conn->executeStatement($deleteSql, $params, $paramTypes); + } catch (TableNotFoundException $e) { + } + + return true; + } + + /** + * {@inheritdoc} + */ + protected function doFetch(array $ids): iterable + { + $now = time(); + $expired = []; + + $sql = "SELECT $this->idCol, CASE WHEN $this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ? THEN $this->dataCol ELSE NULL END FROM $this->table WHERE $this->idCol IN (?)"; + $result = $this->conn->executeQuery($sql, [ + $now, + $ids, + ], [ + ParameterType::INTEGER, + class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY, + ])->iterateNumeric(); + + foreach ($result as $row) { + if (null === $row[1]) { + $expired[] = $row[0]; + } else { + yield $row[0] => $this->marshaller->unmarshall(\is_resource($row[1]) ? stream_get_contents($row[1]) : $row[1]); + } + } + + if ($expired) { + $sql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ? AND $this->idCol IN (?)"; + $this->conn->executeStatement($sql, [ + $now, + $expired, + ], [ + ParameterType::INTEGER, + class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY, + ]); + } + } + + /** + * {@inheritdoc} + */ + protected function doHave(string $id): bool + { + $sql = "SELECT 1 FROM $this->table WHERE $this->idCol = ? AND ($this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ?)"; + $result = $this->conn->executeQuery($sql, [ + $id, + time(), + ], [ + ParameterType::STRING, + ParameterType::INTEGER, + ]); + + return (bool) $result->fetchOne(); + } + + /** + * {@inheritdoc} + */ + protected function doClear(string $namespace): bool + { + if ('' === $namespace) { + if ('sqlite' === $this->getPlatformName()) { + $sql = "DELETE FROM $this->table"; + } else { + $sql = "TRUNCATE TABLE $this->table"; + } + } else { + $sql = "DELETE FROM $this->table WHERE $this->idCol LIKE '$namespace%'"; + } + + try { + $this->conn->executeStatement($sql); + } catch (TableNotFoundException $e) { + } + + return true; + } + + /** + * {@inheritdoc} + */ + protected function doDelete(array $ids): bool + { + $sql = "DELETE FROM $this->table WHERE $this->idCol IN (?)"; + try { + $this->conn->executeStatement($sql, [array_values($ids)], [class_exists(ArrayParameterType::class) ? ArrayParameterType::STRING : Connection::PARAM_STR_ARRAY]); + } catch (TableNotFoundException $e) { + } + + return true; + } + + /** + * {@inheritdoc} + */ + protected function doSave(array $values, int $lifetime) + { + if (!$values = $this->marshaller->marshall($values, $failed)) { + return $failed; + } + + $platformName = $this->getPlatformName(); + $insertSql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?)"; + + switch (true) { + case 'mysql' === $platformName: + $sql = $insertSql." ON DUPLICATE KEY UPDATE $this->dataCol = VALUES($this->dataCol), $this->lifetimeCol = VALUES($this->lifetimeCol), $this->timeCol = VALUES($this->timeCol)"; + break; + case 'oci' === $platformName: + // DUAL is Oracle specific dummy table + $sql = "MERGE INTO $this->table USING DUAL ON ($this->idCol = ?) ". + "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". + "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?"; + break; + case 'sqlsrv' === $platformName && version_compare($this->getServerVersion(), '10', '>='): + // MERGE is only available since SQL Server 2008 and must be terminated by semicolon + // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx + $sql = "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = ?) ". + "WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ". + "WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?;"; + break; + case 'sqlite' === $platformName: + $sql = 'INSERT OR REPLACE'.substr($insertSql, 6); + break; + case 'pgsql' === $platformName && version_compare($this->getServerVersion(), '9.5', '>='): + $sql = $insertSql." ON CONFLICT ($this->idCol) DO UPDATE SET ($this->dataCol, $this->lifetimeCol, $this->timeCol) = (EXCLUDED.$this->dataCol, EXCLUDED.$this->lifetimeCol, EXCLUDED.$this->timeCol)"; + break; + default: + $platformName = null; + $sql = "UPDATE $this->table SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ? WHERE $this->idCol = ?"; + break; + } + + $now = time(); + $lifetime = $lifetime ?: null; + try { + $stmt = $this->conn->prepare($sql); + } catch (TableNotFoundException $e) { + if (!$this->conn->isTransactionActive() || \in_array($platformName, ['pgsql', 'sqlite', 'sqlsrv'], true)) { + $this->createTable(); + } + $stmt = $this->conn->prepare($sql); + } + + if ('sqlsrv' === $platformName || 'oci' === $platformName) { + $bind = static function ($id, $data) use ($stmt) { + $stmt->bindValue(1, $id); + $stmt->bindValue(2, $id); + $stmt->bindValue(3, $data, ParameterType::LARGE_OBJECT); + $stmt->bindValue(6, $data, ParameterType::LARGE_OBJECT); + }; + $stmt->bindValue(4, $lifetime, ParameterType::INTEGER); + $stmt->bindValue(5, $now, ParameterType::INTEGER); + $stmt->bindValue(7, $lifetime, ParameterType::INTEGER); + $stmt->bindValue(8, $now, ParameterType::INTEGER); + } elseif (null !== $platformName) { + $bind = static function ($id, $data) use ($stmt) { + $stmt->bindValue(1, $id); + $stmt->bindValue(2, $data, ParameterType::LARGE_OBJECT); + }; + $stmt->bindValue(3, $lifetime, ParameterType::INTEGER); + $stmt->bindValue(4, $now, ParameterType::INTEGER); + } else { + $stmt->bindValue(2, $lifetime, ParameterType::INTEGER); + $stmt->bindValue(3, $now, ParameterType::INTEGER); + + $insertStmt = $this->conn->prepare($insertSql); + $insertStmt->bindValue(3, $lifetime, ParameterType::INTEGER); + $insertStmt->bindValue(4, $now, ParameterType::INTEGER); + + $bind = static function ($id, $data) use ($stmt, $insertStmt) { + $stmt->bindValue(1, $data, ParameterType::LARGE_OBJECT); + $stmt->bindValue(4, $id); + $insertStmt->bindValue(1, $id); + $insertStmt->bindValue(2, $data, ParameterType::LARGE_OBJECT); + }; + } + + foreach ($values as $id => $data) { + $bind($id, $data); + try { + $rowCount = $stmt->executeStatement(); + } catch (TableNotFoundException $e) { + if (!$this->conn->isTransactionActive() || \in_array($platformName, ['pgsql', 'sqlite', 'sqlsrv'], true)) { + $this->createTable(); + } + $rowCount = $stmt->executeStatement(); + } + if (null === $platformName && 0 === $rowCount) { + try { + $insertStmt->executeStatement(); + } catch (DBALException $e) { + // A concurrent write won, let it be + } + } + } + + return $failed; + } + + /** + * @internal + */ + protected function getId($key) + { + if ('pgsql' !== $this->getPlatformName()) { + return parent::getId($key); + } + + if (str_contains($key, "\0") || str_contains($key, '%') || !preg_match('//u', $key)) { + $key = rawurlencode($key); + } + + return parent::getId($key); + } + + private function getPlatformName(): string + { + if (isset($this->platformName)) { + return $this->platformName; + } + + $platform = $this->conn->getDatabasePlatform(); + + switch (true) { + case $platform instanceof \Doctrine\DBAL\Platforms\MySQLPlatform: + case $platform instanceof \Doctrine\DBAL\Platforms\MySQL57Platform: + return $this->platformName = 'mysql'; + + case $platform instanceof \Doctrine\DBAL\Platforms\SqlitePlatform: + return $this->platformName = 'sqlite'; + + case $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQLPlatform: + case $platform instanceof \Doctrine\DBAL\Platforms\PostgreSQL94Platform: + return $this->platformName = 'pgsql'; + + case $platform instanceof \Doctrine\DBAL\Platforms\OraclePlatform: + return $this->platformName = 'oci'; + + case $platform instanceof \Doctrine\DBAL\Platforms\SQLServerPlatform: + case $platform instanceof \Doctrine\DBAL\Platforms\SQLServer2012Platform: + return $this->platformName = 'sqlsrv'; + + default: + return $this->platformName = \get_class($platform); + } + } + + private function getServerVersion(): string + { + if (isset($this->serverVersion)) { + return $this->serverVersion; + } + + if ($this->conn instanceof ServerVersionProvider || $this->conn instanceof ServerInfoAwareConnection) { + return $this->serverVersion = $this->conn->getServerVersion(); + } + + // The condition should be removed once support for DBAL <3.3 is dropped + $conn = method_exists($this->conn, 'getNativeConnection') ? $this->conn->getNativeConnection() : $this->conn->getWrappedConnection(); + + return $this->serverVersion = $conn->getAttribute(\PDO::ATTR_SERVER_VERSION); + } + + private function addTableToSchema(Schema $schema): void + { + $types = [ + 'mysql' => 'binary', + 'sqlite' => 'text', + ]; + + $table = $schema->createTable($this->table); + $table->addColumn($this->idCol, $types[$this->getPlatformName()] ?? 'string', ['length' => 255]); + $table->addColumn($this->dataCol, 'blob', ['length' => 16777215]); + $table->addColumn($this->lifetimeCol, 'integer', ['unsigned' => true, 'notnull' => false]); + $table->addColumn($this->timeCol, 'integer', ['unsigned' => true]); + $table->setPrimaryKey([$this->idCol]); + } +} diff --git a/api/vendor/symfony/cache/Adapter/FilesystemAdapter.php b/api/vendor/symfony/cache/Adapter/FilesystemAdapter.php index 7185dd487..13daa568c 100644 --- a/api/vendor/symfony/cache/Adapter/FilesystemAdapter.php +++ b/api/vendor/symfony/cache/Adapter/FilesystemAdapter.php @@ -20,7 +20,7 @@ class FilesystemAdapter extends AbstractAdapter implements PruneableInterface { use FilesystemTrait; - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, MarshallerInterface $marshaller = null) + public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $directory = null, ?MarshallerInterface $marshaller = null) { $this->marshaller = $marshaller ?? new DefaultMarshaller(); parent::__construct('', $defaultLifetime); diff --git a/api/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php b/api/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php index afde84375..440a37af5 100644 --- a/api/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php +++ b/api/vendor/symfony/cache/Adapter/FilesystemTagAwareAdapter.php @@ -34,7 +34,7 @@ class FilesystemTagAwareAdapter extends AbstractTagAwareAdapter implements Prune */ private const TAG_FOLDER = 'tags'; - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, MarshallerInterface $marshaller = null) + public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $directory = null, ?MarshallerInterface $marshaller = null) { $this->marshaller = new TagAwareMarshaller($marshaller); parent::__construct('', $defaultLifetime); diff --git a/api/vendor/symfony/cache/Adapter/MemcachedAdapter.php b/api/vendor/symfony/cache/Adapter/MemcachedAdapter.php index 436880ff3..0bc20d4b7 100644 --- a/api/vendor/symfony/cache/Adapter/MemcachedAdapter.php +++ b/api/vendor/symfony/cache/Adapter/MemcachedAdapter.php @@ -25,7 +25,6 @@ class MemcachedAdapter extends AbstractAdapter /** * We are replacing characters that are illegal in Memcached keys with reserved characters from * {@see \Symfony\Contracts\Cache\ItemInterface::RESERVED_CHARACTERS} that are legal in Memcached. -This conversation was marked as resolved by lstrojny * Note: don’t use {@see \Symfony\Component\Cache\Adapter\AbstractAdapter::NS_SEPARATOR}. */ private const RESERVED_MEMCACHED = " \n\r\t\v\f\0"; @@ -33,13 +32,6 @@ class MemcachedAdapter extends AbstractAdapter protected $maxIdLength = 250; - private const DEFAULT_CLIENT_OPTIONS = [ - 'persistent_id' => null, - 'username' => null, - 'password' => null, - \Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP, - ]; - private $marshaller; private $client; private $lazyClient; @@ -54,10 +46,10 @@ class MemcachedAdapter extends AbstractAdapter * * Using a MemcachedAdapter as a pure items store is fine. */ - public function __construct(\Memcached $client, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) + public function __construct(\Memcached $client, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) { if (!static::isSupported()) { - throw new CacheException('Memcached >= 2.2.0 is required.'); + throw new CacheException('Memcached '.(\PHP_VERSION_ID >= 80100 ? '> 3.1.5' : '>= 2.2.0').' is required.'); } if ('Memcached' === \get_class($client)) { $opt = $client->getOption(\Memcached::OPT_SERIALIZER); @@ -77,7 +69,7 @@ public function __construct(\Memcached $client, string $namespace = '', int $def public static function isSupported() { - return \extension_loaded('memcached') && version_compare(phpversion('memcached'), '2.2.0', '>='); + return \extension_loaded('memcached') && version_compare(phpversion('memcached'), \PHP_VERSION_ID >= 80100 ? '3.1.6' : '2.2.0', '>='); } /** @@ -90,7 +82,6 @@ public static function isSupported() * - [['localhost', 11211, 33]] * * @param array[]|string|string[] $servers An array of servers, a DSN, or an array of DSNs - * @param array $options An array of options * * @return \Memcached * @@ -104,32 +95,33 @@ public static function createConnection($servers, array $options = []) throw new InvalidArgumentException(sprintf('MemcachedAdapter::createClient() expects array or string as first argument, "%s" given.', get_debug_type($servers))); } if (!static::isSupported()) { - throw new CacheException('Memcached >= 2.2.0 is required.'); + throw new CacheException('Memcached '.(\PHP_VERSION_ID >= 80100 ? '> 3.1.5' : '>= 2.2.0').' is required.'); } set_error_handler(function ($type, $msg, $file, $line) { throw new \ErrorException($msg, 0, $type, $file, $line); }); try { - $options += static::DEFAULT_CLIENT_OPTIONS; - $client = new \Memcached($options['persistent_id']); - $username = $options['username']; - $password = $options['password']; + $client = new \Memcached($options['persistent_id'] ?? null); + $username = $options['username'] ?? null; + $password = $options['password'] ?? null; // parse any DSN in $servers foreach ($servers as $i => $dsn) { if (\is_array($dsn)) { continue; } - if (0 !== strpos($dsn, 'memcached:')) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s" does not start with "memcached:".', $dsn)); + if (!str_starts_with($dsn, 'memcached:')) { + throw new InvalidArgumentException('Invalid Memcached DSN: it does not start with "memcached:".'); } $params = preg_replace_callback('#^memcached:(//)?(?:([^@]*+)@)?#', function ($m) use (&$username, &$password) { if (!empty($m[2])) { [$username, $password] = explode(':', $m[2], 2) + [1 => null]; + $username = rawurldecode($username); + $password = null !== $password ? rawurldecode($password) : null; } return 'file:'.($m[1] ?? ''); }, $dsn); if (false === $params = parse_url($params)) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Invalid Memcached DSN.'); } $query = $hosts = []; if (isset($params['query'])) { @@ -137,7 +129,7 @@ public static function createConnection($servers, array $options = []) if (isset($query['host'])) { if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Invalid Memcached DSN: query parameter "host" must be an array.'); } foreach ($hosts as $host => $weight) { if (false === $port = strrpos($host, ':')) { @@ -156,7 +148,7 @@ public static function createConnection($servers, array $options = []) } } if (!isset($params['host']) && !isset($params['path'])) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Invalid Memcached DSN: missing host or path.'); } if (isset($params['path']) && preg_match('#/(\d+)$#', $params['path'], $m)) { $params['weight'] = $m[1]; @@ -195,12 +187,13 @@ public static function createConnection($servers, array $options = []) if ('HASH' === $name || 'SERIALIZER' === $name || 'DISTRIBUTION' === $name) { $value = \constant('Memcached::'.$name.'_'.strtoupper($value)); } - $opt = \constant('Memcached::OPT_'.$name); - unset($options[$name]); - $options[$opt] = $value; + + if (\defined('Memcached::OPT_'.$name)) { + $options[\constant('Memcached::OPT_'.$name)] = $value; + } } - $client->setOptions($options); + $client->setOptions($options + [\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP]); // set client's servers, taking care of persistent connections if (!$client->isPristine()) { @@ -267,7 +260,7 @@ protected function doSave(array $values, int $lifetime) protected function doFetch(array $ids) { try { - $encodedIds = array_map('self::encodeKey', $ids); + $encodedIds = array_map([__CLASS__, 'encodeKey'], $ids); $encodedResult = $this->checkResultCode($this->getClient()->getMulti($encodedIds)); @@ -296,7 +289,7 @@ protected function doHave(string $id) protected function doDelete(array $ids) { $ok = true; - $encodedIds = array_map('self::encodeKey', $ids); + $encodedIds = array_map([__CLASS__, 'encodeKey'], $ids); foreach ($this->checkResultCode($this->getClient()->deleteMulti($encodedIds)) as $result) { if (\Memcached::RES_SUCCESS !== $result && \Memcached::RES_NOTFOUND !== $result) { $ok = false; diff --git a/api/vendor/symfony/cache/Adapter/NullAdapter.php b/api/vendor/symfony/cache/Adapter/NullAdapter.php index cbe77b241..bf5382ffd 100644 --- a/api/vendor/symfony/cache/Adapter/NullAdapter.php +++ b/api/vendor/symfony/cache/Adapter/NullAdapter.php @@ -40,7 +40,7 @@ static function ($key) { /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { $save = true; @@ -141,7 +141,7 @@ public function delete(string $key): bool return $this->deleteItem($key); } - private function generateItems(array $keys) + private function generateItems(array $keys): \Generator { $f = self::$createCacheItem; diff --git a/api/vendor/symfony/cache/Adapter/PdoAdapter.php b/api/vendor/symfony/cache/Adapter/PdoAdapter.php index 1c36be8a0..a2a275b86 100644 --- a/api/vendor/symfony/cache/Adapter/PdoAdapter.php +++ b/api/vendor/symfony/cache/Adapter/PdoAdapter.php @@ -12,12 +12,9 @@ namespace Symfony\Component\Cache\Adapter; use Doctrine\DBAL\Connection; -use Doctrine\DBAL\DBALException; -use Doctrine\DBAL\Driver\ServerInfoAwareConnection; -use Doctrine\DBAL\DriverManager; -use Doctrine\DBAL\Exception; -use Doctrine\DBAL\Exception\TableNotFoundException; use Doctrine\DBAL\Schema\Schema; +use Psr\Cache\CacheItemInterface; +use Psr\Log\LoggerInterface; use Symfony\Component\Cache\Exception\InvalidArgumentException; use Symfony\Component\Cache\Marshaller\DefaultMarshaller; use Symfony\Component\Cache\Marshaller\MarshallerInterface; @@ -37,18 +34,17 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface private $dataCol = 'item_data'; private $lifetimeCol = 'item_lifetime'; private $timeCol = 'item_time'; - private $username = ''; - private $password = ''; + private $username = null; + private $password = null; private $connectionOptions = []; private $namespace; + private $dbalAdapter; + /** * You can either pass an existing database connection as PDO instance or - * a Doctrine DBAL Connection or a DSN string that will be used to - * lazy-connect to the database when the cache is actually used. - * - * When a Doctrine DBAL Connection is passed, the cache table is created - * automatically when possible. Otherwise, use the createTable() method. + * a DSN string that will be used to lazy-connect to the database when the + * cache is actually used. * * List of available options: * * db_table: The name of the table [default: cache_items] @@ -60,14 +56,21 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface * * db_password: The password when lazy-connect [default: ''] * * db_connection_options: An array of driver-specific connection options [default: []] * - * @param \PDO|Connection|string $connOrDsn a \PDO or Connection instance or DSN string or null + * @param \PDO|string $connOrDsn * * @throws InvalidArgumentException When first argument is not PDO nor Connection nor string * @throws InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION * @throws InvalidArgumentException When namespace contains invalid characters */ - public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], MarshallerInterface $marshaller = null) + public function __construct($connOrDsn, string $namespace = '', int $defaultLifetime = 0, array $options = [], ?MarshallerInterface $marshaller = null) { + if ($connOrDsn instanceof Connection || (\is_string($connOrDsn) && str_contains($connOrDsn, '://'))) { + trigger_deprecation('symfony/cache', '5.4', 'Usage of a DBAL Connection with "%s" is deprecated and will be removed in symfony 6.0. Use "%s" instead.', __CLASS__, DoctrineDbalAdapter::class); + $this->dbalAdapter = new DoctrineDbalAdapter($connOrDsn, $namespace, $defaultLifetime, $options, $marshaller); + + return; + } + if (isset($namespace[0]) && preg_match('#[^-+.A-Za-z0-9]#', $namespace, $match)) { throw new InvalidArgumentException(sprintf('Namespace contains "%s" but only characters in [-+.A-Za-z0-9] are allowed.', $match[0])); } @@ -77,8 +80,6 @@ public function __construct($connOrDsn, string $namespace = '', int $defaultLife throw new InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__)); } - $this->conn = $connOrDsn; - } elseif ($connOrDsn instanceof Connection) { $this->conn = $connOrDsn; } elseif (\is_string($connOrDsn)) { $this->dsn = $connOrDsn; @@ -100,6 +101,166 @@ public function __construct($connOrDsn, string $namespace = '', int $defaultLife parent::__construct($namespace, $defaultLifetime); } + /** + * {@inheritDoc} + */ + public function getItem($key) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->getItem($key); + } + + return parent::getItem($key); + } + + /** + * {@inheritDoc} + */ + public function getItems(array $keys = []) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->getItems($keys); + } + + return parent::getItems($keys); + } + + /** + * {@inheritDoc} + */ + public function hasItem($key) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->hasItem($key); + } + + return parent::hasItem($key); + } + + /** + * {@inheritDoc} + */ + public function deleteItem($key) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->deleteItem($key); + } + + return parent::deleteItem($key); + } + + /** + * {@inheritDoc} + */ + public function deleteItems(array $keys) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->deleteItems($keys); + } + + return parent::deleteItems($keys); + } + + /** + * {@inheritDoc} + */ + public function clear(string $prefix = '') + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->clear($prefix); + } + + return parent::clear($prefix); + } + + /** + * {@inheritDoc} + */ + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->get($key, $callback, $beta, $metadata); + } + + return parent::get($key, $callback, $beta, $metadata); + } + + /** + * {@inheritDoc} + */ + public function delete(string $key): bool + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->delete($key); + } + + return parent::delete($key); + } + + /** + * {@inheritDoc} + */ + public function save(CacheItemInterface $item) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->save($item); + } + + return parent::save($item); + } + + /** + * {@inheritDoc} + */ + public function saveDeferred(CacheItemInterface $item) + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->saveDeferred($item); + } + + return parent::saveDeferred($item); + } + + /** + * {@inheritDoc} + */ + public function setLogger(LoggerInterface $logger): void + { + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->setLogger($logger); + + return; + } + + parent::setLogger($logger); + } + + /** + * {@inheritDoc} + */ + public function commit() + { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->commit(); + } + + return parent::commit(); + } + + /** + * {@inheritDoc} + */ + public function reset() + { + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->reset(); + + return; + } + + parent::reset(); + } + /** * Creates the table to store cache items which can be called once for setup. * @@ -107,30 +268,19 @@ public function __construct($connOrDsn, string $namespace = '', int $defaultLife * saved in a BLOB. * * @throws \PDOException When the table already exists - * @throws DBALException When the table already exists - * @throws Exception When the table already exists * @throws \DomainException When an unsupported PDO driver is used */ public function createTable() { - // connect if we are not yet - $conn = $this->getConnection(); - - if ($conn instanceof Connection) { - $schema = new Schema(); - $this->addTableToSchema($schema); - - foreach ($schema->toSql($conn->getDatabasePlatform()) as $sql) { - if (method_exists($conn, 'executeStatement')) { - $conn->executeStatement($sql); - } else { - $conn->exec($sql); - } - } + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->createTable(); return; } + // connect if we are not yet + $conn = $this->getConnection(); + switch ($this->driver) { case 'mysql': // We use varbinary for the ID column because it prevents unwanted conversions: @@ -156,28 +306,19 @@ public function createTable() throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)); } - if (method_exists($conn, 'executeStatement')) { - $conn->executeStatement($sql); - } else { - $conn->exec($sql); - } + $conn->exec($sql); } /** * Adds the Table to the Schema if the adapter uses this Connection. + * + * @deprecated since symfony/cache 5.4 use DoctrineDbalAdapter instead */ public function configureSchema(Schema $schema, Connection $forConnection): void { - // only update the schema for this connection - if ($forConnection !== $this->getConnection()) { - return; - } - - if ($schema->hasTable($this->table)) { - return; + if (isset($this->dbalAdapter)) { + $this->dbalAdapter->configureSchema($schema, $forConnection); } - - $this->addTableToSchema($schema); } /** @@ -185,16 +326,20 @@ public function configureSchema(Schema $schema, Connection $forConnection): void */ public function prune() { + if (isset($this->dbalAdapter)) { + return $this->dbalAdapter->prune(); + } + $deleteSql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= :time"; if ('' !== $this->namespace) { $deleteSql .= " AND $this->idCol LIKE :namespace"; } + $connection = $this->getConnection(); + try { - $delete = $this->getConnection()->prepare($deleteSql); - } catch (TableNotFoundException $e) { - return true; + $delete = $connection->prepare($deleteSql); } catch (\PDOException $e) { return true; } @@ -205,8 +350,6 @@ public function prune() } try { return $delete->execute(); - } catch (TableNotFoundException $e) { - return true; } catch (\PDOException $e) { return true; } @@ -217,12 +360,14 @@ public function prune() */ protected function doFetch(array $ids) { + $connection = $this->getConnection(); + $now = time(); $expired = []; $sql = str_pad('', (\count($ids) << 1) - 1, '?,'); $sql = "SELECT $this->idCol, CASE WHEN $this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > ? THEN $this->dataCol ELSE NULL END FROM $this->table WHERE $this->idCol IN ($sql)"; - $stmt = $this->getConnection()->prepare($sql); + $stmt = $connection->prepare($sql); $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT); foreach ($ids as $id) { $stmt->bindValue(++$i, $id); @@ -247,7 +392,7 @@ protected function doFetch(array $ids) if ($expired) { $sql = str_pad('', (\count($expired) << 1) - 1, '?,'); $sql = "DELETE FROM $this->table WHERE $this->lifetimeCol + $this->timeCol <= ? AND $this->idCol IN ($sql)"; - $stmt = $this->getConnection()->prepare($sql); + $stmt = $connection->prepare($sql); $stmt->bindValue($i = 1, $now, \PDO::PARAM_INT); foreach ($expired as $id) { $stmt->bindValue(++$i, $id); @@ -261,14 +406,16 @@ protected function doFetch(array $ids) */ protected function doHave(string $id) { + $connection = $this->getConnection(); + $sql = "SELECT 1 FROM $this->table WHERE $this->idCol = :id AND ($this->lifetimeCol IS NULL OR $this->lifetimeCol + $this->timeCol > :time)"; - $stmt = $this->getConnection()->prepare($sql); + $stmt = $connection->prepare($sql); $stmt->bindValue(':id', $id); $stmt->bindValue(':time', time(), \PDO::PARAM_INT); - $result = $stmt->execute(); + $stmt->execute(); - return (bool) (\is_object($result) ? $result->fetchOne() : $stmt->fetchColumn()); + return (bool) $stmt->fetchColumn(); } /** @@ -289,12 +436,7 @@ protected function doClear(string $namespace) } try { - if (method_exists($conn, 'executeStatement')) { - $conn->executeStatement($sql); - } else { - $conn->exec($sql); - } - } catch (TableNotFoundException $e) { + $conn->exec($sql); } catch (\PDOException $e) { } @@ -311,7 +453,6 @@ protected function doDelete(array $ids) try { $stmt = $this->getConnection()->prepare($sql); $stmt->execute(array_values($ids)); - } catch (TableNotFoundException $e) { } catch (\PDOException $e) { } @@ -328,6 +469,7 @@ protected function doSave(array $values, int $lifetime) } $conn = $this->getConnection(); + $driver = $this->driver; $insertSql = "INSERT INTO $this->table ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (:id, :data, :lifetime, :time)"; @@ -364,18 +506,14 @@ protected function doSave(array $values, int $lifetime) $lifetime = $lifetime ?: null; try { $stmt = $conn->prepare($sql); - } catch (TableNotFoundException $e) { - if (!$conn->isTransactionActive() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $stmt = $conn->prepare($sql); } catch (\PDOException $e) { - if (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { + if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true))) { $this->createTable(); } $stmt = $conn->prepare($sql); } + // $id and $data are defined later in the loop. Binding is done by reference, values are read on execution. if ('sqlsrv' === $driver || 'oci' === $driver) { $stmt->bindParam(1, $id); $stmt->bindParam(2, $id); @@ -402,22 +540,16 @@ protected function doSave(array $values, int $lifetime) foreach ($values as $id => $data) { try { - $result = $stmt->execute(); - } catch (TableNotFoundException $e) { - if (!$conn->isTransactionActive() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { - $this->createTable(); - } - $result = $stmt->execute(); + $stmt->execute(); } catch (\PDOException $e) { - if (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true)) { + if ($this->isTableMissing($e) && (!$conn->inTransaction() || \in_array($this->driver, ['pgsql', 'sqlite', 'sqlsrv'], true))) { $this->createTable(); } - $result = $stmt->execute(); + $stmt->execute(); } - if (null === $driver && !(\is_object($result) ? $result->rowCount() : $stmt->rowCount())) { + if (null === $driver && !$stmt->rowCount()) { try { $insertStmt->execute(); - } catch (DBALException | Exception $e) { } catch (\PDOException $e) { // A concurrent write won, let it be } @@ -428,56 +560,29 @@ protected function doSave(array $values, int $lifetime) } /** - * @return \PDO|Connection + * @internal */ - private function getConnection(): object + protected function getId($key) + { + if ('pgsql' !== $this->driver ?? ($this->getConnection() ? $this->driver : null)) { + return parent::getId($key); + } + + if (str_contains($key, "\0") || str_contains($key, '%') || !preg_match('//u', $key)) { + $key = rawurlencode($key); + } + + return parent::getId($key); + } + + private function getConnection(): \PDO { if (null === $this->conn) { - if (strpos($this->dsn, '://')) { - if (!class_exists(DriverManager::class)) { - throw new InvalidArgumentException(sprintf('Failed to parse the DSN "%s". Try running "composer require doctrine/dbal".', $this->dsn)); - } - $this->conn = DriverManager::getConnection(['url' => $this->dsn]); - } else { - $this->conn = new \PDO($this->dsn, $this->username, $this->password, $this->connectionOptions); - $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); - } + $this->conn = new \PDO($this->dsn, $this->username, $this->password, $this->connectionOptions); + $this->conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } if (null === $this->driver) { - if ($this->conn instanceof \PDO) { - $this->driver = $this->conn->getAttribute(\PDO::ATTR_DRIVER_NAME); - } else { - $driver = $this->conn->getDriver(); - - switch (true) { - case $driver instanceof \Doctrine\DBAL\Driver\Mysqli\Driver: - throw new \LogicException(sprintf('The adapter "%s" does not support the mysqli driver, use pdo_mysql instead.', static::class)); - case $driver instanceof \Doctrine\DBAL\Driver\AbstractMySQLDriver: - $this->driver = 'mysql'; - break; - case $driver instanceof \Doctrine\DBAL\Driver\PDOSqlite\Driver: - case $driver instanceof \Doctrine\DBAL\Driver\PDO\SQLite\Driver: - $this->driver = 'sqlite'; - break; - case $driver instanceof \Doctrine\DBAL\Driver\PDOPgSql\Driver: - case $driver instanceof \Doctrine\DBAL\Driver\PDO\PgSQL\Driver: - $this->driver = 'pgsql'; - break; - case $driver instanceof \Doctrine\DBAL\Driver\OCI8\Driver: - case $driver instanceof \Doctrine\DBAL\Driver\PDOOracle\Driver: - case $driver instanceof \Doctrine\DBAL\Driver\PDO\OCI\Driver: - $this->driver = 'oci'; - break; - case $driver instanceof \Doctrine\DBAL\Driver\SQLSrv\Driver: - case $driver instanceof \Doctrine\DBAL\Driver\PDOSqlsrv\Driver: - case $driver instanceof \Doctrine\DBAL\Driver\PDO\SQLSrv\Driver: - $this->driver = 'sqlsrv'; - break; - default: - $this->driver = \get_class($driver); - break; - } - } + $this->driver = $this->conn->getAttribute(\PDO::ATTR_DRIVER_NAME); } return $this->conn; @@ -486,37 +591,26 @@ private function getConnection(): object private function getServerVersion(): string { if (null === $this->serverVersion) { - $conn = $this->conn instanceof \PDO ? $this->conn : $this->conn->getWrappedConnection(); - if ($conn instanceof \PDO) { - $this->serverVersion = $conn->getAttribute(\PDO::ATTR_SERVER_VERSION); - } elseif ($conn instanceof ServerInfoAwareConnection) { - $this->serverVersion = $conn->getServerVersion(); - } else { - $this->serverVersion = '0'; - } + $this->serverVersion = $this->conn->getAttribute(\PDO::ATTR_SERVER_VERSION); } return $this->serverVersion; } - private function addTableToSchema(Schema $schema): void + private function isTableMissing(\PDOException $exception): bool { - $types = [ - 'mysql' => 'binary', - 'sqlite' => 'text', - 'pgsql' => 'string', - 'oci' => 'string', - 'sqlsrv' => 'string', - ]; - if (!isset($types[$this->driver])) { - throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)); - } - - $table = $schema->createTable($this->table); - $table->addColumn($this->idCol, $types[$this->driver], ['length' => 255]); - $table->addColumn($this->dataCol, 'blob', ['length' => 16777215]); - $table->addColumn($this->lifetimeCol, 'integer', ['unsigned' => true, 'notnull' => false]); - $table->addColumn($this->timeCol, 'integer', ['unsigned' => true]); - $table->setPrimaryKey([$this->idCol]); + $driver = $this->driver; + [$sqlState, $code] = $exception->errorInfo ?? [null, $exception->getCode()]; + + switch (true) { + case 'pgsql' === $driver && '42P01' === $sqlState: + case 'sqlite' === $driver && str_contains($exception->getMessage(), 'no such table:'): + case 'oci' === $driver && 942 === $code: + case 'sqlsrv' === $driver && 208 === $code: + case 'mysql' === $driver && 1146 === $code: + return true; + default: + return false; + } } } diff --git a/api/vendor/symfony/cache/Adapter/PhpArrayAdapter.php b/api/vendor/symfony/cache/Adapter/PhpArrayAdapter.php index 7e9b6b3f3..43e000a99 100644 --- a/api/vendor/symfony/cache/Adapter/PhpArrayAdapter.php +++ b/api/vendor/symfony/cache/Adapter/PhpArrayAdapter.php @@ -83,7 +83,7 @@ public static function create(string $file, CacheItemPoolInterface $fallbackPool /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { if (null === $this->values) { $this->initialize(); @@ -345,7 +345,7 @@ public function warmUp(array $values) $isStaticValue = false; } $value = var_export($value, true); - } elseif (!is_scalar($value)) { + } elseif (!\is_scalar($value)) { throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value))); } else { $value = var_export($value, true); diff --git a/api/vendor/symfony/cache/Adapter/PhpFilesAdapter.php b/api/vendor/symfony/cache/Adapter/PhpFilesAdapter.php index 212bde756..8dcd79cd9 100644 --- a/api/vendor/symfony/cache/Adapter/PhpFilesAdapter.php +++ b/api/vendor/symfony/cache/Adapter/PhpFilesAdapter.php @@ -43,7 +43,7 @@ class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface * * @throws CacheException if OPcache is not enabled */ - public function __construct(string $namespace = '', int $defaultLifetime = 0, string $directory = null, bool $appendOnly = false) + public function __construct(string $namespace = '', int $defaultLifetime = 0, ?string $directory = null, bool $appendOnly = false) { $this->appendOnly = $appendOnly; self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time(); @@ -58,7 +58,7 @@ public static function isSupported() { self::$startTime = self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time(); - return \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN)); + return \function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(\ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN)); } /** @@ -82,7 +82,7 @@ public function prune() } if ($time >= $expiresAt) { - $pruned = $this->doUnlink($file) && !file_exists($file) && $pruned; + $pruned = ($this->doUnlink($file) || !file_exists($file)) && $pruned; } } } finally { @@ -234,7 +234,7 @@ protected function doSave(array $values, int $lifetime) $isStaticValue = false; } $value = var_export($value, true); - } elseif (!is_scalar($value)) { + } elseif (!\is_scalar($value)) { throw new InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.', $key, get_debug_type($value))); } else { $value = var_export($value, true); @@ -292,7 +292,7 @@ protected function doDelete(array $ids) return $this->doCommonDelete($ids); } - protected function doUnlink($file) + protected function doUnlink(string $file) { unset(self::$valuesCache[$file]); @@ -323,7 +323,7 @@ class LazyValue { public $file; - public function __construct($file) + public function __construct(string $file) { $this->file = $file; } diff --git a/api/vendor/symfony/cache/Adapter/ProxyAdapter.php b/api/vendor/symfony/cache/Adapter/ProxyAdapter.php index 8d9e6c63d..317018e59 100644 --- a/api/vendor/symfony/cache/Adapter/ProxyAdapter.php +++ b/api/vendor/symfony/cache/Adapter/ProxyAdapter.php @@ -63,7 +63,7 @@ static function ($key, $innerItem, $poolHash) { // Detect wrapped values that encode for their expiry and creation duration // For compactness, these values are packed in the key of an array using // magic numbers in the form 9D-..-..-..-..-00-..-..-..-5F - if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) key($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { + if (\is_array($v) && 1 === \count($v) && 10 === \strlen($k = (string) array_key_first($v)) && "\x9D" === $k[0] && "\0" === $k[5] && "\x5F" === $k[9]) { $item->value = $v[$k]; $v = unpack('Ve/Nc', substr($k, 1, -1)); $item->metadata[CacheItem::METADATA_EXPIRY] = $v['e'] + CacheItem::METADATA_EXPIRY_OFFSET; @@ -92,7 +92,7 @@ static function (CacheItemInterface $innerItem, array $item) { $item["\0*\0value"] = ["\x9D".pack('VN', (int) (0.1 + $metadata[self::METADATA_EXPIRY] - self::METADATA_EXPIRY_OFFSET), $metadata[self::METADATA_CTIME])."\x5F" => $item["\0*\0value"]]; } $innerItem->set($item["\0*\0value"]); - $innerItem->expiresAt(null !== $item["\0*\0expiry"] ? \DateTime::createFromFormat('U.u', sprintf('%.6F', 0 === $item["\0*\0expiry"] ? \PHP_INT_MAX : $item["\0*\0expiry"])) : null); + $innerItem->expiresAt(null !== $item["\0*\0expiry"] ? \DateTime::createFromFormat('U.u', sprintf('%.6F', $item["\0*\0expiry"])) : null); }, null, CacheItem::class @@ -102,7 +102,7 @@ static function (CacheItemInterface $innerItem, array $item) { /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { if (!$this->pool instanceof CacheInterface) { return $this->doGet($this, $key, $callback, $beta, $metadata); @@ -246,7 +246,7 @@ private function doSave(CacheItemInterface $item, string $method) return $this->pool->$method($innerItem); } - private function generateItems(iterable $items) + private function generateItems(iterable $items): \Generator { $f = self::$createCacheItem; diff --git a/api/vendor/symfony/cache/Adapter/Psr16Adapter.php b/api/vendor/symfony/cache/Adapter/Psr16Adapter.php index a13b20ebc..a56aa3930 100644 --- a/api/vendor/symfony/cache/Adapter/Psr16Adapter.php +++ b/api/vendor/symfony/cache/Adapter/Psr16Adapter.php @@ -23,13 +23,13 @@ */ class Psr16Adapter extends AbstractAdapter implements PruneableInterface, ResettableInterface { + use ProxyTrait; + /** * @internal */ protected const NS_SEPARATOR = '_'; - use ProxyTrait; - private $miss; public function __construct(CacheInterface $pool, string $namespace = '', int $defaultLifetime = 0) diff --git a/api/vendor/symfony/cache/Adapter/RedisAdapter.php b/api/vendor/symfony/cache/Adapter/RedisAdapter.php index 5c49f7afe..86714ae43 100644 --- a/api/vendor/symfony/cache/Adapter/RedisAdapter.php +++ b/api/vendor/symfony/cache/Adapter/RedisAdapter.php @@ -12,6 +12,8 @@ namespace Symfony\Component\Cache\Adapter; use Symfony\Component\Cache\Marshaller\MarshallerInterface; +use Symfony\Component\Cache\Traits\RedisClusterProxy; +use Symfony\Component\Cache\Traits\RedisProxy; use Symfony\Component\Cache\Traits\RedisTrait; class RedisAdapter extends AbstractAdapter @@ -19,12 +21,12 @@ class RedisAdapter extends AbstractAdapter use RedisTrait; /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient The redis client - * @param string $namespace The default namespace - * @param int $defaultLifetime The default lifetime + * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis The redis client + * @param string $namespace The default namespace + * @param int $defaultLifetime The default lifetime */ - public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) + public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) { - $this->init($redisClient, $namespace, $defaultLifetime, $marshaller); + $this->init($redis, $namespace, $defaultLifetime, $marshaller); } } diff --git a/api/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php b/api/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php index c0c738ecb..958486e0f 100644 --- a/api/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php +++ b/api/vendor/symfony/cache/Adapter/RedisTagAwareAdapter.php @@ -14,12 +14,16 @@ use Predis\Connection\Aggregate\ClusterInterface; use Predis\Connection\Aggregate\PredisCluster; use Predis\Connection\Aggregate\ReplicationInterface; +use Predis\Response\ErrorInterface; use Predis\Response\Status; +use Symfony\Component\Cache\CacheItem; use Symfony\Component\Cache\Exception\InvalidArgumentException; use Symfony\Component\Cache\Exception\LogicException; use Symfony\Component\Cache\Marshaller\DeflateMarshaller; use Symfony\Component\Cache\Marshaller\MarshallerInterface; use Symfony\Component\Cache\Marshaller\TagAwareMarshaller; +use Symfony\Component\Cache\Traits\RedisClusterProxy; +use Symfony\Component\Cache\Traits\RedisProxy; use Symfony\Component\Cache\Traits\RedisTrait; /** @@ -55,20 +59,21 @@ class RedisTagAwareAdapter extends AbstractTagAwareAdapter * @var string|null detected eviction policy used on Redis server */ private $redisEvictionPolicy; + private $namespace; /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient The redis client - * @param string $namespace The default namespace - * @param int $defaultLifetime The default lifetime + * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis The redis client + * @param string $namespace The default namespace + * @param int $defaultLifetime The default lifetime */ - public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null) + public function __construct($redis, string $namespace = '', int $defaultLifetime = 0, ?MarshallerInterface $marshaller = null) { - if ($redisClient instanceof \Predis\ClientInterface && $redisClient->getConnection() instanceof ClusterInterface && !$redisClient->getConnection() instanceof PredisCluster) { - throw new InvalidArgumentException(sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, get_debug_type($redisClient->getConnection()))); + if ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof ClusterInterface && !$redis->getConnection() instanceof PredisCluster) { + throw new InvalidArgumentException(sprintf('Unsupported Predis cluster connection: only "%s" is, "%s" given.', PredisCluster::class, get_debug_type($redis->getConnection()))); } - if (\defined('Redis::OPT_COMPRESSION') && ($redisClient instanceof \Redis || $redisClient instanceof \RedisArray || $redisClient instanceof \RedisCluster)) { - $compression = $redisClient->getOption(\Redis::OPT_COMPRESSION); + if (\defined('Redis::OPT_COMPRESSION') && ($redis instanceof \Redis || $redis instanceof \RedisArray || $redis instanceof \RedisCluster)) { + $compression = $redis->getOption(\Redis::OPT_COMPRESSION); foreach (\is_array($compression) ? $compression : [$compression] as $c) { if (\Redis::COMPRESSION_NONE !== $c) { @@ -77,7 +82,8 @@ public function __construct($redisClient, string $namespace = '', int $defaultLi } } - $this->init($redisClient, $namespace, $defaultLifetime, new TagAwareMarshaller($marshaller)); + $this->init($redis, $namespace, $defaultLifetime, new TagAwareMarshaller($marshaller)); + $this->namespace = $namespace; } /** @@ -86,7 +92,7 @@ public function __construct($redisClient, string $namespace = '', int $defaultLi protected function doSave(array $values, int $lifetime, array $addTagData = [], array $delTagData = []): array { $eviction = $this->getRedisEvictionPolicy(); - if ('noeviction' !== $eviction && 0 !== strpos($eviction, 'volatile-')) { + if ('noeviction' !== $eviction && !str_starts_with($eviction, 'volatile-')) { throw new LogicException(sprintf('Redis maxmemory-policy setting "%s" is *not* supported by RedisTagAwareAdapter, use "noeviction" or "volatile-*" eviction policies.', $eviction)); } @@ -161,6 +167,12 @@ protected function doDeleteYieldTags(array $ids): iterable }); foreach ($results as $id => $result) { + if ($result instanceof \RedisException || $result instanceof ErrorInterface) { + CacheItem::log($this->logger, 'Failed to delete key "{key}": '.$result->getMessage(), ['key' => substr($id, \strlen($this->namespace)), 'exception' => $result]); + + continue; + } + try { yield $id => !\is_string($result) || '' === $result ? [] : $this->marshaller->unmarshall($result); } catch (\Exception $e) { @@ -196,9 +208,11 @@ protected function doInvalidate(array $tagIds): bool // and removes the linked items. When the set is still not empty after // the scan, it means we're in cluster mode and that the linked items // are on other nodes: we move the links to a temporary set and we - // gargage collect that set from the client side. + // garbage collect that set from the client side. $lua = <<<'EOLUA' + redis.replicate_commands() + local cursor = '0' local id = KEYS[1] repeat @@ -236,6 +250,8 @@ protected function doInvalidate(array $tagIds): bool }); $lua = <<<'EOLUA' + redis.replicate_commands() + local id = KEYS[1] local cursor = table.remove(ARGV) redis.call('SREM', '{'..id..'}'..id, unpack(ARGV)) @@ -243,7 +259,17 @@ protected function doInvalidate(array $tagIds): bool return redis.call('SSCAN', '{'..id..'}'..id, cursor, 'COUNT', 5000) EOLUA; - foreach ($results as $id => [$cursor, $ids]) { + $success = true; + foreach ($results as $id => $values) { + if ($values instanceof \RedisException || $values instanceof ErrorInterface) { + CacheItem::log($this->logger, 'Failed to invalidate key "{key}": '.$values->getMessage(), ['key' => substr($id, \strlen($this->namespace)), 'exception' => $values]); + $success = false; + + continue; + } + + [$cursor, $ids] = $values; + while ($ids || '0' !== $cursor) { $this->doDelete($ids); @@ -266,7 +292,7 @@ protected function doInvalidate(array $tagIds): bool } } - return true; + return $success; } private function getRedisEvictionPolicy(): string @@ -284,6 +310,11 @@ private function getRedisEvictionPolicy(): string foreach ($hosts as $host) { $info = $host->info('Memory'); + + if ($info instanceof ErrorInterface) { + continue; + } + $info = $info['Memory'] ?? $info; return $this->redisEvictionPolicy = $info['maxmemory_policy']; diff --git a/api/vendor/symfony/cache/Adapter/TagAwareAdapter.php b/api/vendor/symfony/cache/Adapter/TagAwareAdapter.php index 6f23a2a03..fb59599eb 100644 --- a/api/vendor/symfony/cache/Adapter/TagAwareAdapter.php +++ b/api/vendor/symfony/cache/Adapter/TagAwareAdapter.php @@ -27,12 +27,12 @@ */ class TagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterface, PruneableInterface, ResettableInterface, LoggerAwareInterface { - public const TAGS_PREFIX = "\0tags\0"; - use ContractsTrait; use LoggerAwareTrait; use ProxyTrait; + public const TAGS_PREFIX = "\0tags\0"; + private $deferred = []; private $tags; private $knownTagVersions = []; @@ -41,9 +41,9 @@ class TagAwareAdapter implements TagAwareAdapterInterface, TagAwareCacheInterfac private static $createCacheItem; private static $setCacheItemTags; private static $getTagsByKey; - private static $invalidateTags; + private static $saveTags; - public function __construct(AdapterInterface $itemsPool, AdapterInterface $tagsPool = null, float $knownTagVersionsTtl = 0.15) + public function __construct(AdapterInterface $itemsPool, ?AdapterInterface $tagsPool = null, float $knownTagVersionsTtl = 0.15) { $this->pool = $itemsPool; $this->tags = $tagsPool ?: $itemsPool; @@ -95,8 +95,10 @@ static function ($deferred) { null, CacheItem::class ); - self::$invalidateTags ?? self::$invalidateTags = \Closure::bind( + self::$saveTags ?? self::$saveTags = \Closure::bind( static function (AdapterInterface $tagsAdapter, array $tags) { + ksort($tags); + foreach ($tags as $v) { $v->expiry = 0; $tagsAdapter->saveDeferred($v); @@ -114,40 +116,14 @@ static function (AdapterInterface $tagsAdapter, array $tags) { */ public function invalidateTags(array $tags) { - $ok = true; - $tagsByKey = []; - $invalidatedTags = []; + $ids = []; foreach ($tags as $tag) { \assert('' !== CacheItem::validateKey($tag)); - $invalidatedTags[$tag] = 0; - } - - if ($this->deferred) { - $items = $this->deferred; - foreach ($items as $key => $item) { - if (!$this->pool->saveDeferred($item)) { - unset($this->deferred[$key]); - $ok = false; - } - } - - $tagsByKey = (self::$getTagsByKey)($items); - $this->deferred = []; - } - - $tagVersions = $this->getTagVersions($tagsByKey, $invalidatedTags); - $f = self::$createCacheItem; - - foreach ($tagsByKey as $key => $tags) { - $this->pool->saveDeferred($f(static::TAGS_PREFIX.$key, array_intersect_key($tagVersions, $tags), $items[$key])); - } - $ok = $this->pool->commit() && $ok; - - if ($invalidatedTags) { - $ok = (self::$invalidateTags)($this->tags, $invalidatedTags) && $ok; + unset($this->knownTagVersions[$tag]); + $ids[] = $tag.static::TAGS_PREFIX; } - return $ok; + return !$tags || $this->tags->deleteItems($ids); } /** @@ -157,9 +133,10 @@ public function invalidateTags(array $tags) */ public function hasItem($key) { - if ($this->deferred) { + if (\is_string($key) && isset($this->deferred[$key])) { $this->commit(); } + if (!$this->pool->hasItem($key)) { return false; } @@ -175,7 +152,7 @@ public function hasItem($key) } foreach ($this->getTagVersions([$itemTags]) as $tag => $version) { - if ($itemTags[$tag] !== $version && 1 !== $itemTags[$tag] - $version) { + if ($itemTags[$tag] !== $version) { return false; } } @@ -200,18 +177,21 @@ public function getItem($key) */ public function getItems(array $keys = []) { - if ($this->deferred) { - $this->commit(); - } $tagKeys = []; + $commit = false; foreach ($keys as $key) { if ('' !== $key && \is_string($key)) { + $commit = $commit || isset($this->deferred[$key]); $key = static::TAGS_PREFIX.$key; $tagKeys[$key] = $key; } } + if ($commit) { + $this->commit(); + } + try { $items = $this->pool->getItems($tagKeys + $keys); } catch (InvalidArgumentException $e) { @@ -232,7 +212,7 @@ public function clear(string $prefix = '') { if ('' !== $prefix) { foreach ($this->deferred as $key => $item) { - if (0 === strpos($key, $prefix)) { + if (str_starts_with($key, $prefix)) { unset($this->deferred[$key]); } } @@ -310,9 +290,35 @@ public function saveDeferred(CacheItemInterface $item) */ public function commit() { - return $this->invalidateTags([]); + if (!$this->deferred) { + return true; + } + + $ok = true; + foreach ($this->deferred as $key => $item) { + if (!$this->pool->saveDeferred($item)) { + unset($this->deferred[$key]); + $ok = false; + } + } + + $items = $this->deferred; + $tagsByKey = (self::$getTagsByKey)($items); + $this->deferred = []; + + $tagVersions = $this->getTagVersions($tagsByKey); + $f = self::$createCacheItem; + + foreach ($tagsByKey as $key => $tags) { + $this->pool->saveDeferred($f(static::TAGS_PREFIX.$key, array_intersect_key($tagVersions, $tags), $items[$key])); + } + + return $this->pool->commit() && $ok; } + /** + * @return array + */ public function __sleep() { throw new \BadMethodCallException('Cannot serialize '.__CLASS__); @@ -328,7 +334,7 @@ public function __destruct() $this->commit(); } - private function generateItems(iterable $items, array $tagKeys) + private function generateItems(iterable $items, array $tagKeys): \Generator { $bufferedItems = $itemTags = []; $f = self::$setCacheItemTags; @@ -354,7 +360,7 @@ private function generateItems(iterable $items, array $tagKeys) foreach ($itemTags as $key => $tags) { foreach ($tags as $tag => $version) { - if ($tagVersions[$tag] !== $version && 1 !== $version - $tagVersions[$tag]) { + if ($tagVersions[$tag] !== $version) { unset($itemTags[$key]); continue 2; } @@ -370,42 +376,32 @@ private function generateItems(iterable $items, array $tagKeys) } } - private function getTagVersions(array $tagsByKey, array &$invalidatedTags = []) + private function getTagVersions(array $tagsByKey) { - $tagVersions = $invalidatedTags; + $tagVersions = []; + $fetchTagVersions = false; foreach ($tagsByKey as $tags) { $tagVersions += $tags; + + foreach ($tags as $tag => $version) { + if ($tagVersions[$tag] !== $version) { + unset($this->knownTagVersions[$tag]); + } + } } if (!$tagVersions) { return []; } - if (!$fetchTagVersions = 1 !== \func_num_args()) { - foreach ($tagsByKey as $tags) { - foreach ($tags as $tag => $version) { - if ($tagVersions[$tag] > $version) { - $tagVersions[$tag] = $version; - } - } - } - } - $now = microtime(true); $tags = []; foreach ($tagVersions as $tag => $version) { $tags[$tag.static::TAGS_PREFIX] = $tag; - if ($fetchTagVersions || !isset($this->knownTagVersions[$tag])) { + if ($fetchTagVersions || ($this->knownTagVersions[$tag][1] ?? null) !== $version || $now - $this->knownTagVersions[$tag][0] >= $this->knownTagVersionsTtl) { + // reuse previously fetched tag versions up to the ttl $fetchTagVersions = true; - continue; - } - $version -= $this->knownTagVersions[$tag][1]; - if ((0 !== $version && 1 !== $version) || $now - $this->knownTagVersions[$tag][0] >= $this->knownTagVersionsTtl) { - // reuse previously fetched tag versions up to the ttl, unless we are storing items or a potential miss arises - $fetchTagVersions = true; - } else { - $this->knownTagVersions[$tag][1] += $version; } } @@ -413,14 +409,20 @@ private function getTagVersions(array $tagsByKey, array &$invalidatedTags = []) return $tagVersions; } + $newTags = []; + $newVersion = null; foreach ($this->tags->getItems(array_keys($tags)) as $tag => $version) { - $tagVersions[$tag = $tags[$tag]] = $version->get() ?: 0; - if (isset($invalidatedTags[$tag])) { - $invalidatedTags[$tag] = $version->set(++$tagVersions[$tag]); + if (!$version->isHit()) { + $newTags[$tag] = $version->set($newVersion ?? $newVersion = random_int(\PHP_INT_MIN, \PHP_INT_MAX)); } + $tagVersions[$tag = $tags[$tag]] = $version->get(); $this->knownTagVersions[$tag] = [$now, $tagVersions[$tag]]; } + if ($newTags) { + (self::$saveTags)($this->tags, $newTags); + } + return $tagVersions; } } diff --git a/api/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php b/api/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php index 340048c10..afa18d3b5 100644 --- a/api/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php +++ b/api/vendor/symfony/cache/Adapter/TagAwareAdapterInterface.php @@ -25,7 +25,7 @@ interface TagAwareAdapterInterface extends AdapterInterface * * @param string[] $tags An array of tags to invalidate * - * @return bool True on success + * @return bool * * @throws InvalidArgumentException When $tags is not valid */ diff --git a/api/vendor/symfony/cache/Adapter/TraceableAdapter.php b/api/vendor/symfony/cache/Adapter/TraceableAdapter.php index 99e74f2dc..06951db26 100644 --- a/api/vendor/symfony/cache/Adapter/TraceableAdapter.php +++ b/api/vendor/symfony/cache/Adapter/TraceableAdapter.php @@ -38,7 +38,7 @@ public function __construct(AdapterInterface $pool) /** * {@inheritdoc} */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) + public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null) { if (!$this->pool instanceof CacheInterface) { throw new \BadMethodCallException(sprintf('Cannot call "%s::get()": this class doesn\'t implement "%s".', get_debug_type($this->pool), CacheInterface::class)); @@ -274,7 +274,7 @@ public function clearCalls() $this->calls = []; } - protected function start($name) + protected function start(string $name) { $this->calls[] = $event = new TraceableAdapterEvent(); $event->name = $name; diff --git a/api/vendor/symfony/cache/CHANGELOG.md b/api/vendor/symfony/cache/CHANGELOG.md index 89f3e884e..60a862740 100644 --- a/api/vendor/symfony/cache/CHANGELOG.md +++ b/api/vendor/symfony/cache/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +5.4 +--- + + * Deprecate `DoctrineProvider` and `DoctrineAdapter` because these classes have been added to the `doctrine/cache` package + * Add `DoctrineDbalAdapter` identical to `PdoAdapter` for `Doctrine\DBAL\Connection` or DBAL URL + * Deprecate usage of `PdoAdapter` with `Doctrine\DBAL\Connection` or DBAL URL + 5.3 --- diff --git a/api/vendor/symfony/cache/CacheItem.php b/api/vendor/symfony/cache/CacheItem.php index 7140ddb5a..091d9e9b8 100644 --- a/api/vendor/symfony/cache/CacheItem.php +++ b/api/vendor/symfony/cache/CacheItem.php @@ -151,7 +151,7 @@ public function getMetadata(): array /** * Validates a cache key according to PSR-6. * - * @param string $key The key to validate + * @param mixed $key The key to validate * * @throws InvalidArgumentException When $key is not valid */ @@ -182,7 +182,7 @@ public static function log(?LoggerInterface $logger, string $message, array $con } else { $replace = []; foreach ($context as $k => $v) { - if (is_scalar($v)) { + if (\is_scalar($v)) { $replace['{'.$k.'}'] = $v; } } diff --git a/api/vendor/symfony/cache/DataCollector/CacheDataCollector.php b/api/vendor/symfony/cache/DataCollector/CacheDataCollector.php index a96dc3ab8..047958099 100644 --- a/api/vendor/symfony/cache/DataCollector/CacheDataCollector.php +++ b/api/vendor/symfony/cache/DataCollector/CacheDataCollector.php @@ -39,7 +39,7 @@ public function addInstance(string $name, TraceableAdapter $instance) /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { $empty = ['calls' => [], 'config' => [], 'options' => [], 'statistics' => []]; $this->data = ['instances' => $empty, 'total' => $empty]; @@ -67,27 +67,23 @@ public function lateCollect() /** * {@inheritdoc} */ - public function getName() + public function getName(): string { return 'cache'; } /** * Method returns amount of logged Cache reads: "get" calls. - * - * @return array */ - public function getStatistics() + public function getStatistics(): array { return $this->data['instances']['statistics']; } /** * Method returns the statistic totals. - * - * @return array */ - public function getTotals() + public function getTotals(): array { return $this->data['total']['statistics']; } @@ -118,7 +114,7 @@ private function calculateStatistics(): array /** @var TraceableAdapterEvent $call */ foreach ($calls as $call) { ++$statistics[$name]['calls']; - $statistics[$name]['time'] += $call->end - $call->start; + $statistics[$name]['time'] += ($call->end ?? microtime(true)) - $call->start; if ('get' === $call->name) { ++$statistics[$name]['reads']; if ($call->hits) { @@ -140,10 +136,8 @@ private function calculateStatistics(): array $statistics[$name]['misses'] += $call->misses; } elseif ('hasItem' === $call->name) { ++$statistics[$name]['reads']; - if (false === $call->result) { - ++$statistics[$name]['misses']; - } else { - ++$statistics[$name]['hits']; + foreach ($call->result ?? [] as $result) { + ++$statistics[$name][$result ? 'hits' : 'misses']; } } elseif ('save' === $call->name) { ++$statistics[$name]['writes']; diff --git a/api/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php b/api/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php index 0bc7bc78e..843232e44 100644 --- a/api/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php +++ b/api/vendor/symfony/cache/DependencyInjection/CacheCollectorPass.php @@ -72,6 +72,15 @@ private function addToCollector(string $id, string $name, ContainerBuilder $cont } $recorder->setArguments([new Reference($innerId = $id.$this->cachePoolRecorderInnerSuffix)]); + foreach ($definition->getMethodCalls() as [$method, $args]) { + if ('setCallbackWrapper' !== $method || !$args[0] instanceof Definition || !($args[0]->getArguments()[2] ?? null) instanceof Definition) { + continue; + } + if ([new Reference($id), 'setCallbackWrapper'] == $args[0]->getArguments()[2]->getFactory()) { + $args[0]->getArguments()[2]->setFactory([new Reference($innerId), 'setCallbackWrapper']); + } + } + $definition->setTags([]); $definition->setPublic(false); diff --git a/api/vendor/symfony/cache/DependencyInjection/CachePoolPass.php b/api/vendor/symfony/cache/DependencyInjection/CachePoolPass.php index 1fc68af5c..ee539af77 100644 --- a/api/vendor/symfony/cache/DependencyInjection/CachePoolPass.php +++ b/api/vendor/symfony/cache/DependencyInjection/CachePoolPass.php @@ -14,6 +14,7 @@ use Symfony\Component\Cache\Adapter\AbstractAdapter; use Symfony\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Cache\Adapter\ChainAdapter; +use Symfony\Component\Cache\Adapter\NullAdapter; use Symfony\Component\Cache\Adapter\ParameterNormalizer; use Symfony\Component\Cache\Messenger\EarlyExpirationDispatcher; use Symfony\Component\DependencyInjection\ChildDefinition; @@ -144,7 +145,7 @@ public function process(ContainerBuilder $container) $chainedPool->replaceArgument($i++, new Reference(static::getServiceProvider($container, $chainedTags[0]['provider']))); } - if (isset($tags[0]['namespace']) && ArrayAdapter::class !== $adapter->getClass()) { + if (isset($tags[0]['namespace']) && !\in_array($adapter->getClass(), [ArrayAdapter::class, NullAdapter::class], true)) { $chainedPool->replaceArgument($i++, $tags[0]['namespace']); } @@ -180,7 +181,7 @@ public function process(ContainerBuilder $container) ), ]); $pool->addTag($this->reversibleTag); - } elseif ('namespace' !== $attr || ArrayAdapter::class !== $class) { + } elseif ('namespace' !== $attr || !\in_array($class, [ArrayAdapter::class, NullAdapter::class], true)) { $argument = $tags[0][$attr]; if ('default_lifetime' === $attr && !is_numeric($argument)) { @@ -208,10 +209,10 @@ public function process(ContainerBuilder $container) } $notAliasedCacheClearerId = $this->cacheClearerId; - while ($container->hasAlias($this->cacheClearerId)) { - $this->cacheClearerId = (string) $container->getAlias($this->cacheClearerId); + while ($container->hasAlias($notAliasedCacheClearerId)) { + $notAliasedCacheClearerId = (string) $container->getAlias($notAliasedCacheClearerId); } - if ($container->hasDefinition($this->cacheClearerId)) { + if ($container->hasDefinition($notAliasedCacheClearerId)) { $clearers[$notAliasedCacheClearerId] = $allPools; } @@ -229,8 +230,18 @@ public function process(ContainerBuilder $container) } } + $allPoolsKeys = array_keys($allPools); + if ($container->hasDefinition('console.command.cache_pool_list')) { - $container->getDefinition('console.command.cache_pool_list')->replaceArgument(0, array_keys($allPools)); + $container->getDefinition('console.command.cache_pool_list')->replaceArgument(0, $allPoolsKeys); + } + + if ($container->hasDefinition('console.command.cache_pool_clear')) { + $container->getDefinition('console.command.cache_pool_clear')->addArgument($allPoolsKeys); + } + + if ($container->hasDefinition('console.command.cache_pool_delete')) { + $container->getDefinition('console.command.cache_pool_delete')->addArgument($allPoolsKeys); } } @@ -242,7 +253,7 @@ private function getNamespace(string $seed, string $id) /** * @internal */ - public static function getServiceProvider(ContainerBuilder $container, $name) + public static function getServiceProvider(ContainerBuilder $container, string $name) { $container->resolveEnvPlaceholders($name, null, $usedEnvs); diff --git a/api/vendor/symfony/cache/DoctrineProvider.php b/api/vendor/symfony/cache/DoctrineProvider.php index d7e0bca92..7b55aae23 100644 --- a/api/vendor/symfony/cache/DoctrineProvider.php +++ b/api/vendor/symfony/cache/DoctrineProvider.php @@ -15,8 +15,14 @@ use Psr\Cache\CacheItemPoolInterface; use Symfony\Contracts\Service\ResetInterface; +if (!class_exists(CacheProvider::class)) { + return; +} + /** * @author Nicolas Grekas + * + * @deprecated Use Doctrine\Common\Cache\Psr6\DoctrineProvider instead */ class DoctrineProvider extends CacheProvider implements PruneableInterface, ResettableInterface { @@ -24,6 +30,8 @@ class DoctrineProvider extends CacheProvider implements PruneableInterface, Rese public function __construct(CacheItemPoolInterface $pool) { + trigger_deprecation('symfony/cache', '5.4', '"%s" is deprecated, use "Doctrine\Common\Cache\Psr6\DoctrineProvider" instead.', __CLASS__); + $this->pool = $pool; } @@ -48,6 +56,8 @@ public function reset() /** * {@inheritdoc} + * + * @return mixed */ protected function doFetch($id) { diff --git a/api/vendor/symfony/cache/LICENSE b/api/vendor/symfony/cache/LICENSE index 3796612f4..0223acd4a 100644 --- a/api/vendor/symfony/cache/LICENSE +++ b/api/vendor/symfony/cache/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016-2021 Fabien Potencier +Copyright (c) 2016-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/cache/LockRegistry.php b/api/vendor/symfony/cache/LockRegistry.php index ecedac8c0..d0c5fc5ba 100644 --- a/api/vendor/symfony/cache/LockRegistry.php +++ b/api/vendor/symfony/cache/LockRegistry.php @@ -28,6 +28,8 @@ final class LockRegistry { private static $openedFiles = []; private static $lockedFiles; + private static $signalingException; + private static $signalingCallback; /** * The number of items in this list controls the max number of concurrent processes. @@ -40,7 +42,9 @@ final class LockRegistry __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ArrayAdapter.php', __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'ChainAdapter.php', __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'CouchbaseBucketAdapter.php', + __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'CouchbaseCollectionAdapter.php', __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'DoctrineAdapter.php', + __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'DoctrineDbalAdapter.php', __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemAdapter.php', __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'FilesystemTagAwareAdapter.php', __DIR__.\DIRECTORY_SEPARATOR.'Adapter'.\DIRECTORY_SEPARATOR.'MemcachedAdapter.php', @@ -80,7 +84,7 @@ public static function setFiles(array $files): array return $previousFiles; } - public static function compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata = null, LoggerInterface $logger = null) + public static function compute(callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, ?\Closure $setMetadata = null, ?LoggerInterface $logger = null) { if ('\\' === \DIRECTORY_SEPARATOR && null === self::$lockedFiles) { // disable locking on Windows by default @@ -89,12 +93,16 @@ public static function compute(callable $callback, ItemInterface $item, bool &$s $key = self::$files ? abs(crc32($item->getKey())) % \count(self::$files) : -1; - if ($key < 0 || (self::$lockedFiles[$key] ?? false) || !$lock = self::open($key)) { + if ($key < 0 || self::$lockedFiles || !$lock = self::open($key)) { return $callback($item, $save); } + self::$signalingException ?? self::$signalingException = unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}"); + self::$signalingCallback ?? self::$signalingCallback = function () { throw self::$signalingException; }; + while (true) { try { + $locked = false; // race to get the lock in non-blocking mode $locked = flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock); @@ -122,18 +130,15 @@ public static function compute(callable $callback, ItemInterface $item, bool &$s flock($lock, \LOCK_UN); unset(self::$lockedFiles[$key]); } - static $signalingException, $signalingCallback; - $signalingException = $signalingException ?? unserialize("O:9:\"Exception\":1:{s:16:\"\0Exception\0trace\";a:0:{}}"); - $signalingCallback = $signalingCallback ?? function () use ($signalingException) { throw $signalingException; }; try { - $value = $pool->get($item->getKey(), $signalingCallback, 0); + $value = $pool->get($item->getKey(), self::$signalingCallback, 0); $logger && $logger->info('Item "{key}" retrieved after lock was released', ['key' => $item->getKey()]); $save = false; return $value; } catch (\Exception $e) { - if ($signalingException !== $e) { + if (self::$signalingException !== $e) { throw $e; } $logger && $logger->info('Item "{key}" not found while lock was released, now retrying', ['key' => $item->getKey()]); diff --git a/api/vendor/symfony/cache/Marshaller/DefaultMarshaller.php b/api/vendor/symfony/cache/Marshaller/DefaultMarshaller.php index 7a02a9623..43f7e7e2a 100644 --- a/api/vendor/symfony/cache/Marshaller/DefaultMarshaller.php +++ b/api/vendor/symfony/cache/Marshaller/DefaultMarshaller.php @@ -21,8 +21,9 @@ class DefaultMarshaller implements MarshallerInterface { private $useIgbinarySerialize = true; + private $throwOnSerializationFailure; - public function __construct(bool $useIgbinarySerialize = null) + public function __construct(?bool $useIgbinarySerialize = null, bool $throwOnSerializationFailure = false) { if (null === $useIgbinarySerialize) { $useIgbinarySerialize = \extension_loaded('igbinary') && (\PHP_VERSION_ID < 70400 || version_compare('3.1.6', phpversion('igbinary'), '<=')); @@ -30,6 +31,7 @@ public function __construct(bool $useIgbinarySerialize = null) throw new CacheException(\extension_loaded('igbinary') && \PHP_VERSION_ID >= 70400 ? 'Please upgrade the "igbinary" PHP extension to v3.1.6 or higher.' : 'The "igbinary" PHP extension is not loaded.'); } $this->useIgbinarySerialize = $useIgbinarySerialize; + $this->throwOnSerializationFailure = $throwOnSerializationFailure; } /** @@ -47,6 +49,9 @@ public function marshall(array $values, ?array &$failed): array $serialized[$id] = serialize($value); } } catch (\Exception $e) { + if ($this->throwOnSerializationFailure) { + throw new \ValueError($e->getMessage(), 0, $e); + } $failed[] = $id; } } diff --git a/api/vendor/symfony/cache/Marshaller/SodiumMarshaller.php b/api/vendor/symfony/cache/Marshaller/SodiumMarshaller.php index dbf486a72..7895ef557 100644 --- a/api/vendor/symfony/cache/Marshaller/SodiumMarshaller.php +++ b/api/vendor/symfony/cache/Marshaller/SodiumMarshaller.php @@ -29,7 +29,7 @@ class SodiumMarshaller implements MarshallerInterface * more rotating keys can be provided to decrypt values; * each key must be generated using sodium_crypto_box_keypair() */ - public function __construct(array $decryptionKeys, MarshallerInterface $marshaller = null) + public function __construct(array $decryptionKeys, ?MarshallerInterface $marshaller = null) { if (!self::isSupported()) { throw new CacheException('The "sodium" PHP extension is not loaded.'); diff --git a/api/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php b/api/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php index 5d1e303b4..f2f26abcf 100644 --- a/api/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php +++ b/api/vendor/symfony/cache/Marshaller/TagAwareMarshaller.php @@ -20,7 +20,7 @@ class TagAwareMarshaller implements MarshallerInterface { private $marshaller; - public function __construct(MarshallerInterface $marshaller = null) + public function __construct(?MarshallerInterface $marshaller = null) { $this->marshaller = $marshaller ?? new DefaultMarshaller(); } @@ -51,7 +51,7 @@ public function marshall(array $values, ?array &$failed): array $serialized[$id][9] = "\x5F"; } } else { - // other arbitratry values are serialized using the decorated marshaller below + // other arbitrary values are serialized using the decorated marshaller below $notSerialized[$id] = $value; } } diff --git a/api/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php b/api/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php index 6f11b8b5a..e09e2826f 100644 --- a/api/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php +++ b/api/vendor/symfony/cache/Messenger/EarlyExpirationDispatcher.php @@ -27,14 +27,14 @@ class EarlyExpirationDispatcher private $reverseContainer; private $callbackWrapper; - public function __construct(MessageBusInterface $bus, ReverseContainer $reverseContainer, callable $callbackWrapper = null) + public function __construct(MessageBusInterface $bus, ReverseContainer $reverseContainer, ?callable $callbackWrapper = null) { $this->bus = $bus; $this->reverseContainer = $reverseContainer; $this->callbackWrapper = $callbackWrapper; } - public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, LoggerInterface $logger = null) + public function __invoke(callable $callback, CacheItem $item, bool &$save, AdapterInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger = null) { if (!$item->isHit() || null === $message = EarlyExpirationMessage::create($this->reverseContainer, $callback, $item, $pool)) { // The item is stale or the callback cannot be reversed: we must compute the value now diff --git a/api/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php b/api/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php index 1f0bd565c..9e53f5d2f 100644 --- a/api/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php +++ b/api/vendor/symfony/cache/Messenger/EarlyExpirationHandler.php @@ -73,7 +73,8 @@ function (CacheItem $item, float $startTime) { $startTime = microtime(true); $pool = $message->findPool($this->reverseContainer); $callback = $message->findCallback($this->reverseContainer); - $value = $callback($item); + $save = true; + $value = $callback($item, $save); $setMetadata($item, $startTime); $pool->save($item->set($value)); } diff --git a/api/vendor/symfony/cache/Psr16Cache.php b/api/vendor/symfony/cache/Psr16Cache.php index c785144b1..28c7de605 100644 --- a/api/vendor/symfony/cache/Psr16Cache.php +++ b/api/vendor/symfony/cache/Psr16Cache.php @@ -19,6 +19,10 @@ use Symfony\Component\Cache\Exception\InvalidArgumentException; use Symfony\Component\Cache\Traits\ProxyTrait; +if (null !== (new \ReflectionMethod(CacheInterface::class, 'get'))->getReturnType()) { + throw new \LogicException('psr/simple-cache 3.0+ is not compatible with this version of symfony/cache. Please upgrade symfony/cache to 6.0+ or downgrade psr/simple-cache to 1.x or 2.x.'); +} + /** * Turns a PSR-6 cache into a PSR-16 one. * diff --git a/api/vendor/symfony/cache/README.md b/api/vendor/symfony/cache/README.md index 74052052c..c466d5788 100644 --- a/api/vendor/symfony/cache/README.md +++ b/api/vendor/symfony/cache/README.md @@ -1,13 +1,13 @@ Symfony PSR-6 implementation for caching ======================================== -The Cache component provides an extended -[PSR-6](http://www.php-fig.org/psr/psr-6/) implementation for adding cache to +The Cache component provides extended +[PSR-6](https://www.php-fig.org/psr/psr-6/) implementations for adding cache to your applications. It is designed to have a low overhead so that caching is -fastest. It ships with a few caching adapters for the most widespread and -suited to caching backends. It also provides a `doctrine/cache` proxy adapter -to cover more advanced caching needs and a proxy adapter for greater -interoperability between PSR-6 implementations. +fastest. It ships with adapters for the most widespread caching backends. +It also provides a [PSR-16](https://www.php-fig.org/psr/psr-16/) adapter, +and implementations for [symfony/cache-contracts](https://github.com/symfony/cache-contracts)' +`CacheInterface` and `TagAwareCacheInterface`. Resources --------- diff --git a/api/vendor/symfony/cache/Traits/AbstractAdapterTrait.php b/api/vendor/symfony/cache/Traits/AbstractAdapterTrait.php index 30f76c089..32d78b185 100644 --- a/api/vendor/symfony/cache/Traits/AbstractAdapterTrait.php +++ b/api/vendor/symfony/cache/Traits/AbstractAdapterTrait.php @@ -52,7 +52,7 @@ trait AbstractAdapterTrait * * @param array $ids The cache identifiers to fetch * - * @return array|\Traversable The corresponding values found in the cache + * @return array|\Traversable */ abstract protected function doFetch(array $ids); @@ -61,7 +61,7 @@ abstract protected function doFetch(array $ids); * * @param string $id The identifier for which to check existence * - * @return bool True if item exists in the cache, false otherwise + * @return bool */ abstract protected function doHave(string $id); @@ -70,7 +70,7 @@ abstract protected function doHave(string $id); * * @param string $namespace The prefix used for all identifiers managed by this pool * - * @return bool True if the pool was successfully cleared, false otherwise + * @return bool */ abstract protected function doClear(string $namespace); @@ -79,7 +79,7 @@ abstract protected function doClear(string $namespace); * * @param array $ids An array of identifiers that should be removed from the pool * - * @return bool True if the items were successfully removed, false otherwise + * @return bool */ abstract protected function doDelete(array $ids); @@ -130,13 +130,16 @@ public function clear(string $prefix = '') } } $namespaceToClear = $this->namespace.$namespaceVersionToClear; - $namespaceVersion = strtr(substr_replace(base64_encode(pack('V', mt_rand())), static::NS_SEPARATOR, 5), '/', '_'); + $namespaceVersion = self::formatNamespaceVersion(mt_rand()); try { - $cleared = $this->doSave([static::NS_SEPARATOR.$this->namespace => $namespaceVersion], 0); + $e = $this->doSave([static::NS_SEPARATOR.$this->namespace => $namespaceVersion], 0); } catch (\Exception $e) { - $cleared = false; } - if ($cleared = true === $cleared || [] === $cleared) { + if (true !== $e && [] !== $e) { + $cleared = false; + $message = 'Failed to save the new namespace'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); + CacheItem::log($this->logger, $message, ['exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); + } else { $this->namespaceVersion = $namespaceVersion; $this->ids = []; } @@ -208,10 +211,11 @@ public function deleteItems(array $keys) */ public function getItem($key) { - if ($this->deferred) { + $id = $this->getId($key); + + if (isset($this->deferred[$key])) { $this->commit(); } - $id = $this->getId($key); $isHit = false; $value = null; @@ -234,14 +238,18 @@ public function getItem($key) */ public function getItems(array $keys = []) { - if ($this->deferred) { - $this->commit(); - } $ids = []; + $commit = false; foreach ($keys as $key) { $ids[] = $this->getId($key); + $commit = $commit || isset($this->deferred[$key]); } + + if ($commit) { + $this->commit(); + } + try { $items = $this->doFetch($ids); } catch (\Exception $e) { @@ -289,16 +297,14 @@ public function saveDeferred(CacheItemInterface $item) * When versioning is enabled, clearing the cache is atomic and doesn't require listing existing keys to proceed, * but old keys may need garbage collection and extra round-trips to the back-end are required. * - * Calling this method also clears the memoized namespace version and thus forces a resynchonization of it. - * - * @param bool $enable + * Calling this method also clears the memoized namespace version and thus forces a resynchronization of it. * * @return bool the previous state of versioning */ - public function enableVersioning($enable = true) + public function enableVersioning(bool $enable = true) { $wasEnabled = $this->versioningIsEnabled; - $this->versioningIsEnabled = (bool) $enable; + $this->versioningIsEnabled = $enable; $this->namespaceVersion = ''; $this->ids = []; @@ -317,6 +323,9 @@ public function reset() $this->ids = []; } + /** + * @return array + */ public function __sleep() { throw new \BadMethodCallException('Cannot serialize '.__CLASS__); @@ -334,7 +343,7 @@ public function __destruct() } } - private function generateItems(iterable $items, array &$keys): iterable + private function generateItems(iterable $items, array &$keys): \Generator { $f = self::$createCacheItem; @@ -356,7 +365,10 @@ private function generateItems(iterable $items, array &$keys): iterable } } - private function getId($key) + /** + * @internal + */ + protected function getId($key) { if ($this->versioningIsEnabled && '' === $this->namespaceVersion) { $this->ids = []; @@ -365,12 +377,17 @@ private function getId($key) foreach ($this->doFetch([static::NS_SEPARATOR.$this->namespace]) as $v) { $this->namespaceVersion = $v; } + $e = true; if ('1'.static::NS_SEPARATOR === $this->namespaceVersion) { - $this->namespaceVersion = strtr(substr_replace(base64_encode(pack('V', time())), static::NS_SEPARATOR, 5), '/', '_'); - $this->doSave([static::NS_SEPARATOR.$this->namespace => $this->namespaceVersion], 0); + $this->namespaceVersion = self::formatNamespaceVersion(time()); + $e = $this->doSave([static::NS_SEPARATOR.$this->namespace => $this->namespaceVersion], 0); } } catch (\Exception $e) { } + if (true !== $e && [] !== $e) { + $message = 'Failed to save the new namespace'.($e instanceof \Exception ? ': '.$e->getMessage() : '.'); + CacheItem::log($this->logger, $message, ['exception' => $e instanceof \Exception ? $e : null, 'cache-adapter' => get_debug_type($this)]); + } } if (\is_string($key) && isset($this->ids[$key])) { @@ -379,6 +396,10 @@ private function getId($key) \assert('' !== CacheItem::validateKey($key)); $this->ids[$key] = $key; + if (\count($this->ids) > 1000) { + $this->ids = \array_slice($this->ids, 500, null, true); // stop memory leak if there are many keys + } + if (null === $this->maxIdLength) { return $this->namespace.$this->namespaceVersion.$key; } @@ -394,8 +415,13 @@ private function getId($key) /** * @internal */ - public static function handleUnserializeCallback($class) + public static function handleUnserializeCallback(string $class) { throw new \DomainException('Class not found: '.$class); } + + private static function formatNamespaceVersion(int $value): string + { + return strtr(substr_replace(base64_encode(pack('V', $value)), static::NS_SEPARATOR, 5), '/', '_'); + } } diff --git a/api/vendor/symfony/cache/Traits/ContractsTrait.php b/api/vendor/symfony/cache/Traits/ContractsTrait.php index 2f5af04b0..c22e75fb9 100644 --- a/api/vendor/symfony/cache/Traits/ContractsTrait.php +++ b/api/vendor/symfony/cache/Traits/ContractsTrait.php @@ -31,7 +31,7 @@ trait ContractsTrait doGet as private contractsGet; } - private $callbackWrapper = [LockRegistry::class, 'compute']; + private $callbackWrapper; private $computing = []; /** @@ -41,15 +41,23 @@ trait ContractsTrait */ public function setCallbackWrapper(?callable $callbackWrapper): callable { + if (!isset($this->callbackWrapper)) { + $this->callbackWrapper = \Closure::fromCallable([LockRegistry::class, 'compute']); + + if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) { + $this->setCallbackWrapper(null); + } + } + $previousWrapper = $this->callbackWrapper; - $this->callbackWrapper = $callbackWrapper ?? function (callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) { + $this->callbackWrapper = $callbackWrapper ?? static function (callable $callback, ItemInterface $item, bool &$save, CacheInterface $pool, \Closure $setMetadata, ?LoggerInterface $logger) { return $callback($item, $save); }; return $previousWrapper; } - private function doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, array &$metadata = null) + private function doGet(AdapterInterface $pool, string $key, callable $callback, ?float $beta, ?array &$metadata = null) { if (0 > $beta = $beta ?? 1.0) { throw new InvalidArgumentException(sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)); @@ -82,6 +90,10 @@ static function (CacheItem $item, float $startTime, ?array &$metadata) { $this->computing[$key] = $key; $startTime = microtime(true); + if (!isset($this->callbackWrapper)) { + $this->setCallbackWrapper($this->setCallbackWrapper(null)); + } + try { $value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) { $setMetadata($item, $startTime, $metadata); diff --git a/api/vendor/symfony/cache/Traits/FilesystemCommonTrait.php b/api/vendor/symfony/cache/Traits/FilesystemCommonTrait.php index baf95d524..0455093c9 100644 --- a/api/vendor/symfony/cache/Traits/FilesystemCommonTrait.php +++ b/api/vendor/symfony/cache/Traits/FilesystemCommonTrait.php @@ -58,7 +58,7 @@ protected function doClear(string $namespace) $ok = true; foreach ($this->scanHashDir($this->directory) as $file) { - if ('' !== $namespace && 0 !== strpos($this->getFileKey($file), $namespace)) { + if ('' !== $namespace && !str_starts_with($this->getFileKey($file), $namespace)) { continue; } @@ -83,13 +83,14 @@ protected function doDelete(array $ids) return $ok; } - protected function doUnlink($file) + protected function doUnlink(string $file) { return @unlink($file); } - private function write(string $file, string $data, int $expiresAt = null) + private function write(string $file, string $data, ?int $expiresAt = null) { + $unlink = false; set_error_handler(__CLASS__.'::throwError'); try { if (null === $this->tmp) { @@ -98,7 +99,7 @@ private function write(string $file, string $data, int $expiresAt = null) try { $h = fopen($this->tmp, 'x'); } catch (\ErrorException $e) { - if (false === strpos($e->getMessage(), 'File exists')) { + if (!str_contains($e->getMessage(), 'File exists')) { throw $e; } @@ -107,18 +108,26 @@ private function write(string $file, string $data, int $expiresAt = null) } fwrite($h, $data); fclose($h); + $unlink = true; if (null !== $expiresAt) { - touch($this->tmp, $expiresAt); + touch($this->tmp, $expiresAt ?: time() + 31556952); // 1 year in seconds } - return rename($this->tmp, $file); + $success = rename($this->tmp, $file); + $unlink = !$success; + + return $success; } finally { restore_error_handler(); + + if ($unlink) { + @unlink($this->tmp); + } } } - private function getFile(string $id, bool $mkdir = false, string $directory = null) + private function getFile(string $id, bool $mkdir = false, ?string $directory = null) { // Use MD5 to favor speed over security, which is not an issue here $hash = str_replace('/', '-', base64_encode(hash('md5', static::class.$id, true))); @@ -166,7 +175,7 @@ private function scanHashDir(string $directory): \Generator /** * @internal */ - public static function throwError($type, $message, $file, $line) + public static function throwError(int $type, string $message, string $file, int $line) { throw new \ErrorException($message, 0, $type, $file, $line); } diff --git a/api/vendor/symfony/cache/Traits/FilesystemTrait.php b/api/vendor/symfony/cache/Traits/FilesystemTrait.php index 38b741f1c..f2873d9ef 100644 --- a/api/vendor/symfony/cache/Traits/FilesystemTrait.php +++ b/api/vendor/symfony/cache/Traits/FilesystemTrait.php @@ -40,7 +40,7 @@ public function prune() if (($expiresAt = (int) fgets($h)) && $time >= $expiresAt) { fclose($h); - $pruned = @unlink($file) && !file_exists($file) && $pruned; + $pruned = (@unlink($file) || !file_exists($file)) && $pruned; } else { fclose($h); } diff --git a/api/vendor/symfony/cache/Traits/MemcachedTrait.php b/api/vendor/symfony/cache/Traits/MemcachedTrait.php deleted file mode 100644 index 7b61e73a4..000000000 --- a/api/vendor/symfony/cache/Traits/MemcachedTrait.php +++ /dev/null @@ -1,343 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Cache\Traits; - -use Symfony\Component\Cache\Exception\CacheException; -use Symfony\Component\Cache\Exception\InvalidArgumentException; -use Symfony\Component\Cache\Marshaller\DefaultMarshaller; -use Symfony\Component\Cache\Marshaller\MarshallerInterface; - -/** - * @author Rob Frawley 2nd - * @author Nicolas Grekas - * - * @internal - */ -trait MemcachedTrait -{ - private static $defaultClientOptions = [ - 'persistent_id' => null, - 'username' => null, - 'password' => null, - \Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_PHP, - ]; - - /** - * We are replacing characters that are illegal in Memcached keys with reserved characters from - * {@see \Symfony\Contracts\Cache\ItemInterface::RESERVED_CHARACTERS} that are legal in Memcached. - * Note: don’t use {@see \Symfony\Component\Cache\Adapter\AbstractAdapter::NS_SEPARATOR}. - */ - private static $RESERVED_MEMCACHED = " \n\r\t\v\f\0"; - private static $RESERVED_PSR6 = '@()\{}/'; - - private $marshaller; - private $client; - private $lazyClient; - - public static function isSupported() - { - return \extension_loaded('memcached') && version_compare(phpversion('memcached'), '2.2.0', '>='); - } - - private function init(\Memcached $client, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller) - { - if (!static::isSupported()) { - throw new CacheException('Memcached >= 2.2.0 is required.'); - } - if ('Memcached' === \get_class($client)) { - $opt = $client->getOption(\Memcached::OPT_SERIALIZER); - if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { - throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); - } - $this->maxIdLength -= \strlen($client->getOption(\Memcached::OPT_PREFIX_KEY)); - $this->client = $client; - } else { - $this->lazyClient = $client; - } - - parent::__construct($namespace, $defaultLifetime); - $this->enableVersioning(); - $this->marshaller = $marshaller ?? new DefaultMarshaller(); - } - - /** - * Creates a Memcached instance. - * - * By default, the binary protocol, no block, and libketama compatible options are enabled. - * - * Examples for servers: - * - 'memcached://user:pass@localhost?weight=33' - * - [['localhost', 11211, 33]] - * - * @param array[]|string|string[] $servers An array of servers, a DSN, or an array of DSNs - * - * @return \Memcached - * - * @throws \ErrorException When invalid options or servers are provided - */ - public static function createConnection($servers, array $options = []) - { - if (\is_string($servers)) { - $servers = [$servers]; - } elseif (!\is_array($servers)) { - throw new InvalidArgumentException(sprintf('MemcachedAdapter::createClient() expects array or string as first argument, "%s" given.', \gettype($servers))); - } - if (!static::isSupported()) { - throw new CacheException('Memcached >= 2.2.0 is required.'); - } - set_error_handler(function ($type, $msg, $file, $line) { throw new \ErrorException($msg, 0, $type, $file, $line); }); - try { - $options += static::$defaultClientOptions; - $client = new \Memcached($options['persistent_id']); - $username = $options['username']; - $password = $options['password']; - - // parse any DSN in $servers - foreach ($servers as $i => $dsn) { - if (\is_array($dsn)) { - continue; - } - if (0 !== strpos($dsn, 'memcached:')) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s" does not start with "memcached:".', $dsn)); - } - $params = preg_replace_callback('#^memcached:(//)?(?:([^@]*+)@)?#', function ($m) use (&$username, &$password) { - if (!empty($m[2])) { - [$username, $password] = explode(':', $m[2], 2) + [1 => null]; - } - - return 'file:'.($m[1] ?? ''); - }, $dsn); - if (false === $params = parse_url($params)) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s".', $dsn)); - } - $query = $hosts = []; - if (isset($params['query'])) { - parse_str($params['query'], $query); - - if (isset($query['host'])) { - if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s".', $dsn)); - } - foreach ($hosts as $host => $weight) { - if (false === $port = strrpos($host, ':')) { - $hosts[$host] = [$host, 11211, (int) $weight]; - } else { - $hosts[$host] = [substr($host, 0, $port), (int) substr($host, 1 + $port), (int) $weight]; - } - } - $hosts = array_values($hosts); - unset($query['host']); - } - if ($hosts && !isset($params['host']) && !isset($params['path'])) { - unset($servers[$i]); - $servers = array_merge($servers, $hosts); - continue; - } - } - if (!isset($params['host']) && !isset($params['path'])) { - throw new InvalidArgumentException(sprintf('Invalid Memcached DSN: "%s".', $dsn)); - } - if (isset($params['path']) && preg_match('#/(\d+)$#', $params['path'], $m)) { - $params['weight'] = $m[1]; - $params['path'] = substr($params['path'], 0, -\strlen($m[0])); - } - $params += [ - 'host' => $params['host'] ?? $params['path'], - 'port' => isset($params['host']) ? 11211 : null, - 'weight' => 0, - ]; - if ($query) { - $params += $query; - $options = $query + $options; - } - - $servers[$i] = [$params['host'], $params['port'], $params['weight']]; - - if ($hosts) { - $servers = array_merge($servers, $hosts); - } - } - - // set client's options - unset($options['persistent_id'], $options['username'], $options['password'], $options['weight'], $options['lazy']); - $options = array_change_key_case($options, \CASE_UPPER); - $client->setOption(\Memcached::OPT_BINARY_PROTOCOL, true); - $client->setOption(\Memcached::OPT_NO_BLOCK, true); - $client->setOption(\Memcached::OPT_TCP_NODELAY, true); - if (!\array_key_exists('LIBKETAMA_COMPATIBLE', $options) && !\array_key_exists(\Memcached::OPT_LIBKETAMA_COMPATIBLE, $options)) { - $client->setOption(\Memcached::OPT_LIBKETAMA_COMPATIBLE, true); - } - foreach ($options as $name => $value) { - if (\is_int($name)) { - continue; - } - if ('HASH' === $name || 'SERIALIZER' === $name || 'DISTRIBUTION' === $name) { - $value = \constant('Memcached::'.$name.'_'.strtoupper($value)); - } - $opt = \constant('Memcached::OPT_'.$name); - - unset($options[$name]); - $options[$opt] = $value; - } - $client->setOptions($options); - - // set client's servers, taking care of persistent connections - if (!$client->isPristine()) { - $oldServers = []; - foreach ($client->getServerList() as $server) { - $oldServers[] = [$server['host'], $server['port']]; - } - - $newServers = []; - foreach ($servers as $server) { - if (1 < \count($server)) { - $server = array_values($server); - unset($server[2]); - $server[1] = (int) $server[1]; - } - $newServers[] = $server; - } - - if ($oldServers !== $newServers) { - $client->resetServerList(); - $client->addServers($servers); - } - } else { - $client->addServers($servers); - } - - if (null !== $username || null !== $password) { - if (!method_exists($client, 'setSaslAuthData')) { - trigger_error('Missing SASL support: the memcached extension must be compiled with --enable-memcached-sasl.'); - } - $client->setSaslAuthData($username, $password); - } - - return $client; - } finally { - restore_error_handler(); - } - } - - /** - * {@inheritdoc} - */ - protected function doSave(array $values, int $lifetime) - { - if (!$values = $this->marshaller->marshall($values, $failed)) { - return $failed; - } - - if ($lifetime && $lifetime > 30 * 86400) { - $lifetime += time(); - } - - $encodedValues = []; - foreach ($values as $key => $value) { - $encodedValues[self::encodeKey($key)] = $value; - } - - return $this->checkResultCode($this->getClient()->setMulti($encodedValues, $lifetime)) ? $failed : false; - } - - /** - * {@inheritdoc} - */ - protected function doFetch(array $ids) - { - try { - $encodedIds = array_map('self::encodeKey', $ids); - - $encodedResult = $this->checkResultCode($this->getClient()->getMulti($encodedIds)); - - $result = []; - foreach ($encodedResult as $key => $value) { - $result[self::decodeKey($key)] = $this->marshaller->unmarshall($value); - } - - return $result; - } catch (\Error $e) { - throw new \ErrorException($e->getMessage(), $e->getCode(), \E_ERROR, $e->getFile(), $e->getLine()); - } - } - - /** - * {@inheritdoc} - */ - protected function doHave($id) - { - return false !== $this->getClient()->get(self::encodeKey($id)) || $this->checkResultCode(\Memcached::RES_SUCCESS === $this->client->getResultCode()); - } - - /** - * {@inheritdoc} - */ - protected function doDelete(array $ids) - { - $ok = true; - $encodedIds = array_map('self::encodeKey', $ids); - foreach ($this->checkResultCode($this->getClient()->deleteMulti($encodedIds)) as $result) { - if (\Memcached::RES_SUCCESS !== $result && \Memcached::RES_NOTFOUND !== $result) { - $ok = false; - break; - } - } - - return $ok; - } - - /** - * {@inheritdoc} - */ - protected function doClear($namespace) - { - return '' === $namespace && $this->getClient()->flush(); - } - - private function checkResultCode($result) - { - $code = $this->client->getResultCode(); - - if (\Memcached::RES_SUCCESS === $code || \Memcached::RES_NOTFOUND === $code) { - return $result; - } - - throw new CacheException('MemcachedAdapter client error: '.strtolower($this->client->getResultMessage())); - } - - private function getClient(): \Memcached - { - if ($this->client) { - return $this->client; - } - - $opt = $this->lazyClient->getOption(\Memcached::OPT_SERIALIZER); - if (\Memcached::SERIALIZER_PHP !== $opt && \Memcached::SERIALIZER_IGBINARY !== $opt) { - throw new CacheException('MemcachedAdapter: "serializer" option must be "php" or "igbinary".'); - } - if ('' !== $prefix = (string) $this->lazyClient->getOption(\Memcached::OPT_PREFIX_KEY)) { - throw new CacheException(sprintf('MemcachedAdapter: "prefix_key" option must be empty when using proxified connections, "%s" given.', $prefix)); - } - - return $this->client = $this->lazyClient; - } - - private static function encodeKey(string $key): string - { - return strtr($key, self::$RESERVED_MEMCACHED, self::$RESERVED_PSR6); - } - - private static function decodeKey(string $key): string - { - return strtr($key, self::$RESERVED_PSR6, self::$RESERVED_MEMCACHED); - } -} diff --git a/api/vendor/symfony/cache/Traits/RedisTrait.php b/api/vendor/symfony/cache/Traits/RedisTrait.php index 618a2c347..518a56306 100644 --- a/api/vendor/symfony/cache/Traits/RedisTrait.php +++ b/api/vendor/symfony/cache/Traits/RedisTrait.php @@ -15,6 +15,9 @@ use Predis\Connection\Aggregate\ClusterInterface; use Predis\Connection\Aggregate\RedisCluster; use Predis\Connection\Aggregate\ReplicationInterface; +use Predis\Connection\Cluster\ClusterInterface as Predis2ClusterInterface; +use Predis\Connection\Cluster\RedisCluster as Predis2RedisCluster; +use Predis\Response\ErrorInterface; use Predis\Response\Status; use Symfony\Component\Cache\Exception\CacheException; use Symfony\Component\Cache\Exception\InvalidArgumentException; @@ -48,9 +51,9 @@ trait RedisTrait private $marshaller; /** - * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient + * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis */ - private function init($redisClient, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller) + private function init($redis, string $namespace, int $defaultLifetime, ?MarshallerInterface $marshaller) { parent::__construct($namespace, $defaultLifetime); @@ -58,17 +61,17 @@ private function init($redisClient, string $namespace, int $defaultLifetime, ?Ma throw new InvalidArgumentException(sprintf('RedisAdapter namespace contains "%s" but only characters in [-+_.A-Za-z0-9] are allowed.', $match[0])); } - if (!$redisClient instanceof \Redis && !$redisClient instanceof \RedisArray && !$redisClient instanceof \RedisCluster && !$redisClient instanceof \Predis\ClientInterface && !$redisClient instanceof RedisProxy && !$redisClient instanceof RedisClusterProxy) { - throw new InvalidArgumentException(sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($redisClient))); + if (!$redis instanceof \Redis && !$redis instanceof \RedisArray && !$redis instanceof \RedisCluster && !$redis instanceof \Predis\ClientInterface && !$redis instanceof RedisProxy && !$redis instanceof RedisClusterProxy) { + throw new InvalidArgumentException(sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, get_debug_type($redis))); } - if ($redisClient instanceof \Predis\ClientInterface && $redisClient->getOptions()->exceptions) { - $options = clone $redisClient->getOptions(); + if ($redis instanceof \Predis\ClientInterface && $redis->getOptions()->exceptions) { + $options = clone $redis->getOptions(); \Closure::bind(function () { $this->options['exceptions'] = false; }, $options, $options)(); - $redisClient = new $redisClient($redisClient->getConnection(), $options); + $redis = new $redis($redis->getConnection(), $options); } - $this->redis = $redisClient; + $this->redis = $redis; $this->marshaller = $marshaller ?? new DefaultMarshaller(); } @@ -82,30 +85,29 @@ private function init($redisClient, string $namespace, int $defaultLifetime, ?Ma * - redis:///var/run/redis.sock * - redis://secret@/var/run/redis.sock/13 * - * @param string $dsn - * @param array $options See self::$defaultConnectionOptions + * @param array $options See self::$defaultConnectionOptions * - * @throws InvalidArgumentException when the DSN is invalid + * @return \Redis|\RedisArray|\RedisCluster|RedisClusterProxy|RedisProxy|\Predis\ClientInterface According to the "class" option * - * @return \Redis|\RedisCluster|RedisClusterProxy|RedisProxy|\Predis\ClientInterface According to the "class" option + * @throws InvalidArgumentException when the DSN is invalid */ - public static function createConnection($dsn, array $options = []) + public static function createConnection(string $dsn, array $options = []) { - if (0 === strpos($dsn, 'redis:')) { + if (str_starts_with($dsn, 'redis:')) { $scheme = 'redis'; - } elseif (0 === strpos($dsn, 'rediss:')) { + } elseif (str_starts_with($dsn, 'rediss:')) { $scheme = 'rediss'; } else { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: "%s" does not start with "redis:" or "rediss".', $dsn)); + throw new InvalidArgumentException('Invalid Redis DSN: it does not start with "redis[s]:".'); } if (!\extension_loaded('redis') && !class_exists(\Predis\Client::class)) { - throw new CacheException(sprintf('Cannot find the "redis" extension nor the "predis/predis" package: "%s".', $dsn)); + throw new CacheException('Cannot find the "redis" extension nor the "predis/predis" package.'); } $params = preg_replace_callback('#^'.$scheme.':(//)?(?:(?:[^:@]*+:)?([^@]*+)@)?#', function ($m) use (&$auth) { if (isset($m[2])) { - $auth = $m[2]; + $auth = rawurldecode($m[2]); if ('' === $auth) { $auth = null; @@ -116,7 +118,7 @@ public static function createConnection($dsn, array $options = []) }, $dsn); if (false === $params = parse_url($params)) { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Invalid Redis DSN.'); } $query = $hosts = []; @@ -129,7 +131,7 @@ public static function createConnection($dsn, array $options = []) if (isset($query['host'])) { if (!\is_array($hosts = $query['host'])) { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Invalid Redis DSN: query parameter "host" must be an array.'); } foreach ($hosts as $host => $parameters) { if (\is_string($parameters)) { @@ -148,9 +150,13 @@ public static function createConnection($dsn, array $options = []) } if (isset($params['host']) || isset($params['path'])) { - if (!isset($params['dbindex']) && isset($params['path']) && preg_match('#/(\d+)$#', $params['path'], $m)) { - $params['dbindex'] = $m[1]; - $params['path'] = substr($params['path'], 0, -\strlen($m[0])); + if (!isset($params['dbindex']) && isset($params['path'])) { + if (preg_match('#/(\d+)?$#', $params['path'], $m)) { + $params['dbindex'] = $m[1] ?? '0'; + $params['path'] = substr($params['path'], 0, -\strlen($m[0])); + } elseif (isset($params['host'])) { + throw new InvalidArgumentException('Invalid Redis DSN: query parameter "dbindex" must be a number.'); + } } if (isset($params['host'])) { @@ -161,70 +167,138 @@ public static function createConnection($dsn, array $options = []) } if (!$hosts) { - throw new InvalidArgumentException(sprintf('Invalid Redis DSN: "%s".', $dsn)); + throw new InvalidArgumentException('Invalid Redis DSN: missing host.'); } $params += $query + $options + self::$defaultConnectionOptions; if (isset($params['redis_sentinel']) && !class_exists(\Predis\Client::class) && !class_exists(\RedisSentinel::class)) { - throw new CacheException(sprintf('Redis Sentinel support requires the "predis/predis" package or the "redis" extension v5.2 or higher: "%s".', $dsn)); + throw new CacheException('Redis Sentinel support requires the "predis/predis" package or the "redis" extension v5.2 or higher.'); + } + + if (isset($params['lazy'])) { + $params['lazy'] = filter_var($params['lazy'], \FILTER_VALIDATE_BOOLEAN); } + $params['redis_cluster'] = filter_var($params['redis_cluster'], \FILTER_VALIDATE_BOOLEAN); if ($params['redis_cluster'] && isset($params['redis_sentinel'])) { - throw new InvalidArgumentException(sprintf('Cannot use both "redis_cluster" and "redis_sentinel" at the same time: "%s".', $dsn)); + throw new InvalidArgumentException('Cannot use both "redis_cluster" and "redis_sentinel" at the same time.'); } if (null === $params['class'] && \extension_loaded('redis')) { - $class = $params['redis_cluster'] ? \RedisCluster::class : (1 < \count($hosts) ? \RedisArray::class : \Redis::class); + $class = $params['redis_cluster'] ? \RedisCluster::class : (1 < \count($hosts) && !isset($params['redis_sentinel']) ? \RedisArray::class : \Redis::class); } else { - $class = null === $params['class'] ? \Predis\Client::class : $params['class']; + $class = $params['class'] ?? \Predis\Client::class; + + if (isset($params['redis_sentinel']) && !is_a($class, \Predis\Client::class, true) && !class_exists(\RedisSentinel::class)) { + throw new CacheException(sprintf('Cannot use Redis Sentinel: class "%s" does not extend "Predis\Client" and ext-redis >= 5.2 not found.', $class)); + } } if (is_a($class, \Redis::class, true)) { $connect = $params['persistent'] || $params['persistent_id'] ? 'pconnect' : 'connect'; $redis = new $class(); - $initializer = static function ($redis) use ($connect, $params, $dsn, $auth, $hosts, $tls) { - $host = $hosts[0]['host'] ?? $hosts[0]['path']; - $port = $hosts[0]['port'] ?? null; + $initializer = static function ($redis) use ($connect, $params, $auth, $hosts, $tls) { + $hostIndex = 0; + do { + $host = $hosts[$hostIndex]['host'] ?? $hosts[$hostIndex]['path']; + $port = $hosts[$hostIndex]['port'] ?? 0; + $passAuth = \defined('Redis::OPT_NULL_MULTIBULK_AS_NULL') && isset($params['auth']); + $address = false; - if (isset($hosts[0]['host']) && $tls) { - $host = 'tls://'.$host; - } + if (isset($hosts[$hostIndex]['host']) && $tls) { + $host = 'tls://'.$host; + } + + if (!isset($params['redis_sentinel'])) { + break; + } + + if (version_compare(phpversion('redis'), '6.0.0', '>=')) { + $options = [ + 'host' => $host, + 'port' => $port, + 'connectTimeout' => $params['timeout'], + 'persistent' => $params['persistent_id'], + 'retryInterval' => $params['retry_interval'], + 'readTimeout' => $params['read_timeout'], + ]; + + if ($passAuth) { + $options['auth'] = $params['auth']; + } + + $sentinel = new \RedisSentinel($options); + } else { + $extra = $passAuth ? [$params['auth']] : []; - if (isset($params['redis_sentinel'])) { - $sentinel = new \RedisSentinel($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout']); + $sentinel = new \RedisSentinel($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...$extra); + } - if (!$address = $sentinel->getMasterAddrByName($params['redis_sentinel'])) { - throw new InvalidArgumentException(sprintf('Failed to retrieve master information from master name "%s" and address "%s:%d".', $params['redis_sentinel'], $host, $port)); + try { + if ($address = $sentinel->getMasterAddrByName($params['redis_sentinel'])) { + [$host, $port] = $address; + } + } catch (\RedisException $e) { } + } while (++$hostIndex < \count($hosts) && !$address); - [$host, $port] = $address; + if (isset($params['redis_sentinel']) && !$address) { + throw new InvalidArgumentException(sprintf('Failed to retrieve master information from sentinel "%s".', $params['redis_sentinel'])); } try { - @$redis->{$connect}($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...\defined('Redis::SCAN_PREFIX') ? [['stream' => $params['ssl'] ?? null]] : []); + $extra = [ + 'stream' => $params['ssl'] ?? null, + ]; + $booleanStreamOptions = [ + 'allow_self_signed', + 'capture_peer_cert', + 'capture_peer_cert_chain', + 'disable_compression', + 'SNI_enabled', + 'verify_peer', + 'verify_peer_name', + ]; + + foreach ($extra['stream'] ?? [] as $streamOption => $value) { + if (\in_array($streamOption, $booleanStreamOptions, true) && \is_string($value)) { + $extra['stream'][$streamOption] = filter_var($value, \FILTER_VALIDATE_BOOL); + } + } + + if (isset($params['auth'])) { + $extra['auth'] = $params['auth']; + } + @$redis->{$connect}($host, $port, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval'], $params['read_timeout'], ...\defined('Redis::SCAN_PREFIX') ? [$extra] : []); set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; }); - $isConnected = $redis->isConnected(); - restore_error_handler(); + try { + $isConnected = $redis->isConnected(); + } finally { + restore_error_handler(); + } if (!$isConnected) { - $error = preg_match('/^Redis::p?connect\(\): (.*)/', $error, $error) ? sprintf(' (%s)', $error[1]) : ''; - throw new InvalidArgumentException(sprintf('Redis connection "%s" failed: ', $dsn).$error.'.'); + $error = preg_match('/^Redis::p?connect\(\): (.*)/', $error ?? $redis->getLastError() ?? '', $error) ? sprintf(' (%s)', $error[1]) : ''; + throw new InvalidArgumentException('Redis connection failed: '.$error.'.'); } if ((null !== $auth && !$redis->auth($auth)) - || ($params['dbindex'] && !$redis->select($params['dbindex'])) + // Due to a bug in phpredis we must always select the dbindex if persistent pooling is enabled + // @see https://github.com/phpredis/phpredis/issues/1920 + // @see https://github.com/symfony/symfony/issues/51578 + || (($params['dbindex'] || ('pconnect' === $connect && '0' !== \ini_get('redis.pconnect.pooling_enabled'))) && !$redis->select($params['dbindex'])) ) { $e = preg_replace('/^ERR /', '', $redis->getLastError()); - throw new InvalidArgumentException(sprintf('Redis connection "%s" failed: ', $dsn).$e.'.'); + throw new InvalidArgumentException('Redis connection failed: '.$e.'.'); } if (0 < $params['tcp_keepalive'] && \defined('Redis::OPT_TCP_KEEPALIVE')) { $redis->setOption(\Redis::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); } } catch (\RedisException $e) { - throw new InvalidArgumentException(sprintf('Redis connection "%s" failed: ', $dsn).$e->getMessage()); + throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage()); } return true; @@ -249,14 +323,14 @@ public static function createConnection($dsn, array $options = []) try { $redis = new $class($hosts, $params); } catch (\RedisClusterException $e) { - throw new InvalidArgumentException(sprintf('Redis connection "%s" failed: ', $dsn).$e->getMessage()); + throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage()); } if (0 < $params['tcp_keepalive'] && \defined('Redis::OPT_TCP_KEEPALIVE')) { $redis->setOption(\Redis::OPT_TCP_KEEPALIVE, $params['tcp_keepalive']); } } elseif (is_a($class, \RedisCluster::class, true)) { - $initializer = static function () use ($class, $params, $dsn, $hosts) { + $initializer = static function () use ($class, $params, $hosts) { foreach ($hosts as $i => $host) { switch ($host['scheme']) { case 'tcp': $hosts[$i] = $host['host'].':'.$host['port']; break; @@ -268,7 +342,7 @@ public static function createConnection($dsn, array $options = []) try { $redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '', ...\defined('Redis::SCAN_PREFIX') ? [$params['ssl'] ?? null] : []); } catch (\RedisClusterException $e) { - throw new InvalidArgumentException(sprintf('Redis connection "%s" failed: ', $dsn).$e->getMessage()); + throw new InvalidArgumentException('Redis connection failed: '.$e->getMessage()); } if (0 < $params['tcp_keepalive'] && \defined('Redis::OPT_TCP_KEEPALIVE')) { @@ -304,6 +378,15 @@ public static function createConnection($dsn, array $options = []) if (null !== $auth) { $params['parameters']['password'] = $auth; } + + if (isset($params['ssl'])) { + foreach ($hosts as $i => $host) { + if (!isset($host['ssl'])) { + $hosts[$i]['ssl'] = $params['ssl']; + } + } + } + if (1 === \count($hosts) && !($params['redis_cluster'] || $params['redis_sentinel'])) { $hosts = $hosts[0]; } elseif (\in_array($params['failover'], ['slaves', 'distribute'], true) && !isset($params['replication'])) { @@ -312,7 +395,7 @@ public static function createConnection($dsn, array $options = []) } $params['exceptions'] = false; - $redis = new $class($hosts, array_diff_key($params, array_diff_key(self::$defaultConnectionOptions, ['ssl' => null]))); + $redis = new $class($hosts, array_diff_key($params, self::$defaultConnectionOptions)); if (isset($params['redis_sentinel'])) { $redis->getConnection()->setSentinelTimeout($params['timeout']); } @@ -325,9 +408,6 @@ public static function createConnection($dsn, array $options = []) return $redis; } - /** - * {@inheritdoc} - */ protected function doFetch(array $ids) { if (!$ids) { @@ -336,7 +416,7 @@ protected function doFetch(array $ids) $result = []; - if ($this->redis instanceof \Predis\ClientInterface && $this->redis->getConnection() instanceof ClusterInterface) { + if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) { $values = $this->pipeline(function () use ($ids) { foreach ($ids as $id) { yield 'get' => [$id]; @@ -361,22 +441,16 @@ protected function doFetch(array $ids) return $result; } - /** - * {@inheritdoc} - */ protected function doHave(string $id) { return (bool) $this->redis->exists($id); } - /** - * {@inheritdoc} - */ protected function doClear(string $namespace) { if ($this->redis instanceof \Predis\ClientInterface) { $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : ''; - $prefixLen = \strlen($prefix); + $prefixLen = \strlen($prefix ?? ''); } $cleared = true; @@ -394,7 +468,7 @@ protected function doClear(string $namespace) } $info = $host->info('Server'); - $info = $info['Server'] ?? $info; + $info = !$info instanceof ErrorInterface ? $info['Server'] ?? $info : ['redis_version' => '2.0']; if (!$host instanceof \Predis\ClientInterface) { $prefix = \defined('Redis::SCAN_PREFIX') && (\Redis::SCAN_PREFIX & $host->getOption(\Redis::OPT_SCAN)) ? '' : $host->getOption(\Redis::OPT_PREFIX); @@ -427,22 +501,19 @@ protected function doClear(string $namespace) } $this->doDelete($keys); } - } while ($cursor = (int) $cursor); + } while ($cursor); } return $cleared; } - /** - * {@inheritdoc} - */ protected function doDelete(array $ids) { if (!$ids) { return true; } - if ($this->redis instanceof \Predis\ClientInterface && $this->redis->getConnection() instanceof ClusterInterface) { + if ($this->redis instanceof \Predis\ClientInterface && ($this->redis->getConnection() instanceof ClusterInterface || $this->redis->getConnection() instanceof Predis2ClusterInterface)) { static $del; $del = $del ?? (class_exists(UNLINK::class) ? 'unlink' : 'del'); @@ -470,9 +541,6 @@ protected function doDelete(array $ids) return true; } - /** - * {@inheritdoc} - */ protected function doSave(array $values, int $lifetime) { if (!$values = $this->marshaller->marshall($values, $failed)) { @@ -498,12 +566,12 @@ protected function doSave(array $values, int $lifetime) return $failed; } - private function pipeline(\Closure $generator, $redis = null): \Generator + private function pipeline(\Closure $generator, ?object $redis = null): \Generator { $ids = []; $redis = $redis ?? $this->redis; - if ($redis instanceof RedisClusterProxy || $redis instanceof \RedisCluster || ($redis instanceof \Predis\ClientInterface && $redis->getConnection() instanceof RedisCluster)) { + if ($redis instanceof RedisClusterProxy || $redis instanceof \RedisCluster || ($redis instanceof \Predis\ClientInterface && ($redis->getConnection() instanceof RedisCluster || $redis->getConnection() instanceof Predis2RedisCluster))) { // phpredis & predis don't support pipelining with RedisCluster // see https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining // see https://github.com/nrk/predis/issues/267#issuecomment-123781423 @@ -548,7 +616,11 @@ private function pipeline(\Closure $generator, $redis = null): \Generator if (!$redis instanceof \Predis\ClientInterface && 'eval' === $command && $redis->getLastError()) { $e = new \RedisException($redis->getLastError()); - $results = array_map(function ($v) use ($e) { return false === $v ? $e : $v; }, $results); + $results = array_map(function ($v) use ($e) { return false === $v ? $e : $v; }, (array) $results); + } + + if (\is_bool($results)) { + return; } foreach ($ids as $k => $id) { @@ -561,7 +633,7 @@ private function getHosts(): array $hosts = [$this->redis]; if ($this->redis instanceof \Predis\ClientInterface) { $connection = $this->redis->getConnection(); - if ($connection instanceof ClusterInterface && $connection instanceof \Traversable) { + if (($connection instanceof ClusterInterface || $connection instanceof Predis2ClusterInterface) && $connection instanceof \Traversable) { $hosts = []; foreach ($connection as $c) { $hosts[] = new \Predis\Client($c); diff --git a/api/vendor/symfony/cache/composer.json b/api/vendor/symfony/cache/composer.json index 691787910..fdf794fb3 100644 --- a/api/vendor/symfony/cache/composer.json +++ b/api/vendor/symfony/cache/composer.json @@ -1,7 +1,7 @@ { "name": "symfony/cache", "type": "library", - "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", "keywords": ["caching", "psr6"], "homepage": "https://symfony.com", "license": "MIT", @@ -17,34 +17,35 @@ ], "provide": { "psr/cache-implementation": "1.0|2.0", - "psr/simple-cache-implementation": "1.0", + "psr/simple-cache-implementation": "1.0|2.0", "symfony/cache-implementation": "1.0|2.0" }, "require": { "php": ">=7.2.5", "psr/cache": "^1.0|^2.0", - "psr/log": "^1.1", + "psr/log": "^1.1|^2|^3", "symfony/cache-contracts": "^1.1.7|^2", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, "require-dev": { "cache/integration-tests": "dev-master", "doctrine/cache": "^1.6|^2.0", - "doctrine/dbal": "^2.10|^3.0", - "predis/predis": "^1.1", - "psr/simple-cache": "^1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/filesystem": "^4.4|^5.0", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "conflict": { - "doctrine/dbal": "<2.10", + "doctrine/dbal": "<2.13.1", "symfony/dependency-injection": "<4.4", "symfony/http-kernel": "<4.4", "symfony/var-dumper": "<4.4" diff --git a/api/vendor/symfony/console/Application.php b/api/vendor/symfony/console/Application.php index 735b1ef18..bb5341882 100644 --- a/api/vendor/symfony/console/Application.php +++ b/api/vendor/symfony/console/Application.php @@ -134,7 +134,7 @@ public function setSignalsToDispatchEvent(int ...$signalsToDispatchEvent) * * @throws \Exception When running fails. Bypass this when {@link setCatchExceptions()}. */ - public function run(InputInterface $input = null, OutputInterface $output = null) + public function run(?InputInterface $input = null, ?OutputInterface $output = null) { if (\function_exists('putenv')) { @putenv('LINES='.$this->terminal->getHeight()); @@ -179,7 +179,7 @@ public function run(InputInterface $input = null, OutputInterface $output = null $exitCode = $e->getCode(); if (is_numeric($exitCode)) { $exitCode = (int) $exitCode; - if (0 === $exitCode) { + if ($exitCode <= 0) { $exitCode = 1; } } else { @@ -276,7 +276,9 @@ public function doRun(InputInterface $input, OutputInterface $output) $alternative = $alternatives[0]; $style = new SymfonyStyle($input, $output); - $style->block(sprintf("\nCommand \"%s\" is not defined.\n", $name), null, 'error'); + $output->writeln(''); + $formattedBlock = (new FormatterHelper())->formatBlock(sprintf('Command "%s" is not defined.', $name), 'error', true); + $output->writeln($formattedBlock); if (!$style->confirm(sprintf('Do you want to run "%s" instead? ', $alternative), false)) { if (null !== $this->dispatcher) { $event = new ConsoleErrorEvent($input, $output, $e); @@ -363,9 +365,18 @@ public function complete(CompletionInput $input, CompletionSuggestions $suggesti CompletionInput::TYPE_ARGUMENT_VALUE === $input->getCompletionType() && 'command' === $input->getCompletionName() ) { - $suggestions->suggestValues(array_filter(array_map(function (Command $command) { - return $command->isHidden() ? null : $command->getName(); - }, $this->all()))); + $commandNames = []; + foreach ($this->all() as $name => $command) { + // skip hidden commands and aliased commands as they already get added below + if ($command->isHidden() || $command->getName() !== $name) { + continue; + } + $commandNames[] = $command->getName(); + foreach ($command->getAliases() as $name) { + $commandNames[] = $name; + } + } + $suggestions->suggestValues(array_filter($commandNames)); return; } @@ -767,7 +778,7 @@ public function find(string $name) * * @return Command[] */ - public function all(string $namespace = null) + public function all(?string $namespace = null) { $this->init(); @@ -924,11 +935,21 @@ protected function configureIO(InputInterface $input, OutputInterface $output) } switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) { - case -1: $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); break; - case 1: $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); break; - case 2: $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); break; - case 3: $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); break; - default: $shellVerbosity = 0; break; + case -1: + $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); + break; + case 1: + $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); + break; + case 2: + $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); + break; + case 3: + $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); + break; + default: + $shellVerbosity = 0; + break; } if (true === $input->hasParameterOption(['--quiet', '-q'], true)) { @@ -974,12 +995,26 @@ protected function doRunCommand(Command $command, InputInterface $input, OutputI } } - if ($command instanceof SignalableCommandInterface && ($this->signalsToDispatchEvent || $command->getSubscribedSignals())) { - if (!$this->signalRegistry) { - throw new RuntimeException('Unable to subscribe to signal events. Make sure that the `pcntl` extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); + if ($this->signalsToDispatchEvent) { + $commandSignals = $command instanceof SignalableCommandInterface ? $command->getSubscribedSignals() : []; + + if ($commandSignals || null !== $this->dispatcher) { + if (!$this->signalRegistry) { + throw new RuntimeException('Unable to subscribe to signal events. Make sure that the `pcntl` extension is installed and that "pcntl_*" functions are not disabled by your php.ini\'s "disable_functions" directive.'); + } + + if (Terminal::hasSttyAvailable()) { + $sttyMode = shell_exec('stty -g'); + + foreach ([\SIGINT, \SIGTERM] as $signal) { + $this->signalRegistry->register($signal, static function () use ($sttyMode) { + shell_exec('stty '.$sttyMode); + }); + } + } } - if ($this->dispatcher) { + if (null !== $this->dispatcher) { foreach ($this->signalsToDispatchEvent as $signal) { $event = new ConsoleSignalEvent($command, $input, $output, $signal); @@ -996,7 +1031,7 @@ protected function doRunCommand(Command $command, InputInterface $input, OutputI } } - foreach ($command->getSubscribedSignals() as $signal) { + foreach ($commandSignals as $signal) { $this->signalRegistry->register($signal, [$command, 'handleSignal']); } } @@ -1112,7 +1147,7 @@ private function getAbbreviationSuggestions(array $abbrevs): string * * @return string */ - public function extractNamespace(string $name, int $limit = null) + public function extractNamespace(string $name, ?int $limit = null) { $parts = explode(':', $name, -1); diff --git a/api/vendor/symfony/console/CI/GithubActionReporter.php b/api/vendor/symfony/console/CI/GithubActionReporter.php index a15c1ff18..065717854 100644 --- a/api/vendor/symfony/console/CI/GithubActionReporter.php +++ b/api/vendor/symfony/console/CI/GithubActionReporter.php @@ -57,7 +57,7 @@ public static function isGithubActionEnvironment(): bool * * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-error-message */ - public function error(string $message, string $file = null, int $line = null, int $col = null): void + public function error(string $message, ?string $file = null, ?int $line = null, ?int $col = null): void { $this->log('error', $message, $file, $line, $col); } @@ -67,7 +67,7 @@ public function error(string $message, string $file = null, int $line = null, in * * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message */ - public function warning(string $message, string $file = null, int $line = null, int $col = null): void + public function warning(string $message, ?string $file = null, ?int $line = null, ?int $col = null): void { $this->log('warning', $message, $file, $line, $col); } @@ -77,12 +77,12 @@ public function warning(string $message, string $file = null, int $line = null, * * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-debug-message */ - public function debug(string $message, string $file = null, int $line = null, int $col = null): void + public function debug(string $message, ?string $file = null, ?int $line = null, ?int $col = null): void { $this->log('debug', $message, $file, $line, $col); } - private function log(string $type, string $message, string $file = null, int $line = null, int $col = null): void + private function log(string $type, string $message, ?string $file = null, ?int $line = null, ?int $col = null): void { // Some values must be encoded. $message = strtr($message, self::ESCAPED_DATA); diff --git a/api/vendor/symfony/console/Command/Command.php b/api/vendor/symfony/console/Command/Command.php index 146f6017b..d18103670 100644 --- a/api/vendor/symfony/console/Command/Command.php +++ b/api/vendor/symfony/console/Command/Command.php @@ -96,7 +96,7 @@ public static function getDefaultDescription(): ?string * * @throws LogicException When the command name is empty */ - public function __construct(string $name = null) + public function __construct(?string $name = null) { $this->definition = new InputDefinition(); @@ -132,7 +132,7 @@ public function ignoreValidationErrors() $this->ignoreValidationErrors = true; } - public function setApplication(Application $application = null) + public function setApplication(?Application $application = null) { $this->application = $application; if ($application) { @@ -242,7 +242,7 @@ protected function initialize(InputInterface $input, OutputInterface $output) * * @return int The command exit code * - * @throws \Exception When binding input fails. Bypass this by calling {@link ignoreValidationErrors()}. + * @throws ExceptionInterface When input binding fails. Bypass this by calling {@link ignoreValidationErrors()}. * * @see setCode() * @see execute() @@ -429,11 +429,11 @@ public function getNativeDefinition() * @param int|null $mode The argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL * @param mixed $default The default value (for InputArgument::OPTIONAL mode only) * - * @throws InvalidArgumentException When argument mode is not valid - * * @return $this + * + * @throws InvalidArgumentException When argument mode is not valid */ - public function addArgument(string $name, int $mode = null, string $description = '', $default = null) + public function addArgument(string $name, ?int $mode = null, string $description = '', $default = null) { $this->definition->addArgument(new InputArgument($name, $mode, $description, $default)); if (null !== $this->fullDefinition) { @@ -450,11 +450,11 @@ public function addArgument(string $name, int $mode = null, string $description * @param int|null $mode The option mode: One of the InputOption::VALUE_* constants * @param mixed $default The default value (must be null for InputOption::VALUE_NONE) * - * @throws InvalidArgumentException If option mode is invalid or incompatible - * * @return $this + * + * @throws InvalidArgumentException If option mode is invalid or incompatible */ - public function addOption(string $name, $shortcut = null, int $mode = null, string $description = '', $default = null) + public function addOption(string $name, $shortcut = null, ?int $mode = null, string $description = '', $default = null) { $this->definition->addOption(new InputOption($name, $shortcut, $mode, $description, $default)); if (null !== $this->fullDefinition) { @@ -518,7 +518,7 @@ public function getName() * * @final since Symfony 5.1 */ - public function setHidden(bool $hidden /*= true*/) + public function setHidden(bool $hidden /* = true */) { $this->hidden = $hidden; diff --git a/api/vendor/symfony/console/Command/CompleteCommand.php b/api/vendor/symfony/console/Command/CompleteCommand.php index 97357d673..0e35143c3 100644 --- a/api/vendor/symfony/console/Command/CompleteCommand.php +++ b/api/vendor/symfony/console/Command/CompleteCommand.php @@ -65,15 +65,15 @@ protected function execute(InputInterface $input, OutputInterface $output): int { try { // uncomment when a bugfix or BC break has been introduced in the shell completion scripts - //$version = $input->getOption('symfony'); - //if ($version && version_compare($version, 'x.y', '>=')) { + // $version = $input->getOption('symfony'); + // if ($version && version_compare($version, 'x.y', '>=')) { // $message = sprintf('Completion script version is not supported ("%s" given, ">=x.y" required).', $version); // $this->log($message); // $output->writeln($message.' Install the Symfony completion script again by using the "completion" command.'); // return 126; - //} + // } $shell = $input->getOption('shell'); if (!$shell) { @@ -105,11 +105,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int } elseif ( $completionInput->mustSuggestArgumentValuesFor('command') && $command->getName() !== $completionInput->getCompletionValue() + && !\in_array($completionInput->getCompletionValue(), $command->getAliases(), true) ) { $this->log(' No command found, completing using the Application class.'); // expand shortcut names ("cache:cl") into their full name ("cache:clear") - $suggestions->suggestValue($command->getName()); + $suggestions->suggestValues(array_filter(array_merge([$command->getName()], $command->getAliases()))); } else { $command->mergeApplicationDefinition(); $completionInput->bind($command->getDefinition()); @@ -154,10 +155,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int throw $e; } - return self::FAILURE; + return 2; } - return self::SUCCESS; + return 0; } private function createCompletionInput(InputInterface $input): CompletionInput diff --git a/api/vendor/symfony/console/Command/DumpCompletionCommand.php b/api/vendor/symfony/console/Command/DumpCompletionCommand.php index 697ade527..eaf22be1a 100644 --- a/api/vendor/symfony/console/Command/DumpCompletionCommand.php +++ b/api/vendor/symfony/console/Command/DumpCompletionCommand.php @@ -41,7 +41,7 @@ protected function configure() { $fullCommand = $_SERVER['PHP_SELF']; $commandName = basename($fullCommand); - $fullCommand = realpath($fullCommand) ?: $fullCommand; + $fullCommand = @realpath($fullCommand) ?: $fullCommand; $this ->setHelp(<<%command.full_name% bash | sudo tee /etc/bash_completion.d/${commandName} + %command.full_name% bash | sudo tee /etc/bash_completion.d/{$commandName} Or dump the script to a local file and source it: @@ -68,9 +68,9 @@ protected function configure() Dynamic installation -------------------- -Add this add the end of your shell configuration file (e.g. "~/.bashrc"): +Add this to the end of your shell configuration file (e.g. "~/.bashrc"): - eval "$(${fullCommand} completion bash)" + eval "$({$fullCommand} completion bash)" EOH ) ->addArgument('shell', InputArgument::OPTIONAL, 'The shell type (e.g. "bash"), the value of the "$SHELL" env var will be used if this is not given') @@ -85,7 +85,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($input->getOption('debug')) { $this->tailDebugLog($commandName, $output); - return self::SUCCESS; + return 0; } $shell = $input->getArgument('shell') ?? self::guessShell(); @@ -93,15 +93,21 @@ protected function execute(InputInterface $input, OutputInterface $output): int if (!file_exists($completionFile)) { $supportedShells = $this->getSupportedShells(); - ($output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output) - ->writeln(sprintf('Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").', $shell, implode('", "', $supportedShells))); + if ($output instanceof ConsoleOutputInterface) { + $output = $output->getErrorOutput(); + } + if ($shell) { + $output->writeln(sprintf('Detected shell "%s", which is not supported by Symfony shell completion (supported shells: "%s").', $shell, implode('", "', $supportedShells))); + } else { + $output->writeln(sprintf('Shell not detected, Symfony shell completion only supports "%s").', implode('", "', $supportedShells))); + } - return self::INVALID; + return 2; } $output->write(str_replace(['{{ COMMAND_NAME }}', '{{ VERSION }}'], [$commandName, $this->getApplication()->getVersion()], file_get_contents($completionFile))); - return self::SUCCESS; + return 0; } private static function guessShell(): string @@ -126,8 +132,14 @@ private function tailDebugLog(string $commandName, OutputInterface $output): voi */ private function getSupportedShells(): array { - return array_map(function ($f) { - return pathinfo($f, \PATHINFO_EXTENSION); - }, glob(__DIR__.'/../Resources/completion.*')); + $shells = []; + + foreach (new \DirectoryIterator(__DIR__.'/../Resources/') as $file) { + if (str_starts_with($file->getBasename(), 'completion.') && $file->isFile()) { + $shells[] = $file->getExtension(); + } + } + + return $shells; } } diff --git a/api/vendor/symfony/console/Command/LazyCommand.php b/api/vendor/symfony/console/Command/LazyCommand.php index e576ad03f..302a0809e 100644 --- a/api/vendor/symfony/console/Command/LazyCommand.php +++ b/api/vendor/symfony/console/Command/LazyCommand.php @@ -43,7 +43,7 @@ public function ignoreValidationErrors(): void $this->getCommand()->ignoreValidationErrors(); } - public function setApplication(Application $application = null): void + public function setApplication(?Application $application = null): void { if ($this->command instanceof parent) { $this->command->setApplication($application); @@ -117,7 +117,7 @@ public function getNativeDefinition(): InputDefinition /** * @return $this */ - public function addArgument(string $name, int $mode = null, string $description = '', $default = null): self + public function addArgument(string $name, ?int $mode = null, string $description = '', $default = null): self { $this->getCommand()->addArgument($name, $mode, $description, $default); @@ -127,7 +127,7 @@ public function addArgument(string $name, int $mode = null, string $description /** * @return $this */ - public function addOption(string $name, $shortcut = null, int $mode = null, string $description = '', $default = null): self + public function addOption(string $name, $shortcut = null, ?int $mode = null, string $description = '', $default = null): self { $this->getCommand()->addOption($name, $shortcut, $mode, $description, $default); diff --git a/api/vendor/symfony/console/Command/LockableTrait.php b/api/vendor/symfony/console/Command/LockableTrait.php index b1856dca7..d21edc2c0 100644 --- a/api/vendor/symfony/console/Command/LockableTrait.php +++ b/api/vendor/symfony/console/Command/LockableTrait.php @@ -30,7 +30,7 @@ trait LockableTrait /** * Locks a command. */ - private function lock(string $name = null, bool $blocking = false): bool + private function lock(?string $name = null, bool $blocking = false): bool { if (!class_exists(SemaphoreStore::class)) { throw new LogicException('To enable the locking feature you must install the symfony/lock component.'); diff --git a/api/vendor/symfony/console/Completion/CompletionInput.php b/api/vendor/symfony/console/Completion/CompletionInput.php index 368b94507..2f631bcd8 100644 --- a/api/vendor/symfony/console/Completion/CompletionInput.php +++ b/api/vendor/symfony/console/Completion/CompletionInput.php @@ -53,7 +53,7 @@ public static function fromString(string $inputStr, int $currentIndex): self * Create an input based on an COMP_WORDS token list. * * @param string[] $tokens the set of split tokens (e.g. COMP_WORDS or argv) - * @param $currentIndex the index of the cursor (e.g. COMP_CWORD) + * @param int $currentIndex the index of the cursor (e.g. COMP_CWORD) */ public static function fromTokens(array $tokens, int $currentIndex): self { diff --git a/api/vendor/symfony/console/Completion/Output/BashCompletionOutput.php b/api/vendor/symfony/console/Completion/Output/BashCompletionOutput.php index 8d5ffa6b6..c6f76eb8f 100644 --- a/api/vendor/symfony/console/Completion/Output/BashCompletionOutput.php +++ b/api/vendor/symfony/console/Completion/Output/BashCompletionOutput.php @@ -24,6 +24,9 @@ public function write(CompletionSuggestions $suggestions, OutputInterface $outpu $values = $suggestions->getValueSuggestions(); foreach ($suggestions->getOptionSuggestions() as $option) { $values[] = '--'.$option->getName(); + if ($option->isNegatable()) { + $values[] = '--no-'.$option->getName(); + } } $output->writeln(implode("\n", $values)); } diff --git a/api/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/api/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index 743e306d0..1fbb212e7 100644 --- a/api/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/api/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -67,7 +67,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $aliases = $class::getDefaultName(); + $aliases = str_replace('%', '%%', $class::getDefaultName() ?? ''); } $aliases = explode('|', $aliases ?? ''); @@ -124,7 +124,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $description = $class::getDefaultDescription(); + $description = str_replace('%', '%%', $class::getDefaultDescription() ?? ''); } if ($description) { diff --git a/api/vendor/symfony/console/Descriptor/ApplicationDescription.php b/api/vendor/symfony/console/Descriptor/ApplicationDescription.php index fac01ad37..eb11b4f91 100644 --- a/api/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/api/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -43,7 +43,7 @@ class ApplicationDescription */ private $aliases; - public function __construct(Application $application, string $namespace = null, bool $showHidden = false) + public function __construct(Application $application, ?string $namespace = null, bool $showHidden = false) { $this->application = $application; $this->namespace = $namespace; @@ -131,7 +131,7 @@ private function sortCommands(array $commands): array } if ($namespacedCommands) { - ksort($namespacedCommands); + ksort($namespacedCommands, \SORT_STRING); foreach ($namespacedCommands as $key => $commandsSet) { ksort($commandsSet); $sortedCommands[$key] = $commandsSet; diff --git a/api/vendor/symfony/console/Descriptor/XmlDescriptor.php b/api/vendor/symfony/console/Descriptor/XmlDescriptor.php index 4f7cd8b3e..f17e5f1f2 100644 --- a/api/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ b/api/vendor/symfony/console/Descriptor/XmlDescriptor.php @@ -79,7 +79,7 @@ public function getCommandDocument(Command $command, bool $short = false): \DOMD return $dom; } - public function getApplicationDocument(Application $application, string $namespace = null, bool $short = false): \DOMDocument + public function getApplicationDocument(Application $application, ?string $namespace = null, bool $short = false): \DOMDocument { $dom = new \DOMDocument('1.0', 'UTF-8'); $dom->appendChild($rootXml = $dom->createElement('symfony')); diff --git a/api/vendor/symfony/console/Event/ConsoleCommandEvent.php b/api/vendor/symfony/console/Event/ConsoleCommandEvent.php index 08bd18fd1..1b4f9f9b1 100644 --- a/api/vendor/symfony/console/Event/ConsoleCommandEvent.php +++ b/api/vendor/symfony/console/Event/ConsoleCommandEvent.php @@ -12,7 +12,10 @@ namespace Symfony\Component\Console\Event; /** - * Allows to do things before the command is executed, like skipping the command or changing the input. + * Allows to do things before the command is executed, like skipping the command or executing code before the command is + * going to be executed. + * + * Changing the input arguments will have no effect. * * @author Fabien Potencier */ diff --git a/api/vendor/symfony/console/Event/ConsoleErrorEvent.php b/api/vendor/symfony/console/Event/ConsoleErrorEvent.php index 57d9b38ba..d4c26493f 100644 --- a/api/vendor/symfony/console/Event/ConsoleErrorEvent.php +++ b/api/vendor/symfony/console/Event/ConsoleErrorEvent.php @@ -25,7 +25,7 @@ final class ConsoleErrorEvent extends ConsoleEvent private $error; private $exitCode; - public function __construct(InputInterface $input, OutputInterface $output, \Throwable $error, Command $command = null) + public function __construct(InputInterface $input, OutputInterface $output, \Throwable $error, ?Command $command = null) { parent::__construct($command, $input, $output); diff --git a/api/vendor/symfony/console/EventListener/ErrorListener.php b/api/vendor/symfony/console/EventListener/ErrorListener.php index 897d9853f..e9c9e3ea4 100644 --- a/api/vendor/symfony/console/EventListener/ErrorListener.php +++ b/api/vendor/symfony/console/EventListener/ErrorListener.php @@ -26,7 +26,7 @@ class ErrorListener implements EventSubscriberInterface { private $logger; - public function __construct(LoggerInterface $logger = null) + public function __construct(?LoggerInterface $logger = null) { $this->logger = $logger; } diff --git a/api/vendor/symfony/console/Exception/CommandNotFoundException.php b/api/vendor/symfony/console/Exception/CommandNotFoundException.php index 910ae1928..81ec318ab 100644 --- a/api/vendor/symfony/console/Exception/CommandNotFoundException.php +++ b/api/vendor/symfony/console/Exception/CommandNotFoundException.php @@ -26,7 +26,7 @@ class CommandNotFoundException extends \InvalidArgumentException implements Exce * @param int $code Exception code * @param \Throwable|null $previous Previous exception used for the exception chaining */ - public function __construct(string $message, array $alternatives = [], int $code = 0, \Throwable $previous = null) + public function __construct(string $message, array $alternatives = [], int $code = 0, ?\Throwable $previous = null) { parent::__construct($message, $code, $previous); diff --git a/api/vendor/symfony/console/Exception/InvalidOptionException.php b/api/vendor/symfony/console/Exception/InvalidOptionException.php index b2eec6165..5cf62792e 100644 --- a/api/vendor/symfony/console/Exception/InvalidOptionException.php +++ b/api/vendor/symfony/console/Exception/InvalidOptionException.php @@ -12,7 +12,7 @@ namespace Symfony\Component\Console\Exception; /** - * Represents an incorrect option name typed in the console. + * Represents an incorrect option name or value typed in the console. * * @author Jérôme Tamarelle */ diff --git a/api/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/api/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php index bfd0afedd..afd3d0043 100644 --- a/api/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ b/api/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php @@ -1,4 +1,5 @@ " special chars in given text. * * @return string */ public static function escape(string $text) { - $text = preg_replace('/([^\\\\]?)])/', '$1\\\\$2', $text); return self::escapeTrailingBackslash($text); } @@ -140,11 +142,16 @@ public function format(?string $message) */ public function formatAndWrap(?string $message, int $width) { + if (null === $message) { + return ''; + } + $offset = 0; $output = ''; - $tagRegex = '[a-z][^<>]*+'; + $openTagRegex = '[a-z](?:[^\\\\<>]*+ | \\\\.)*'; + $closeTagRegex = '[a-z][^<>]*+'; $currentLineLength = 0; - preg_match_all("#<(($tagRegex) | /($tagRegex)?)>#ix", $message, $matches, \PREG_OFFSET_CAPTURE); + preg_match_all("#<(($openTagRegex) | /($closeTagRegex)?)>#ix", $message, $matches, \PREG_OFFSET_CAPTURE); foreach ($matches[0] as $i => $match) { $pos = $match[1]; $text = $match[0]; @@ -178,11 +185,7 @@ public function formatAndWrap(?string $message, int $width) $output .= $this->applyCurrentStyle(substr($message, $offset), $output, $width, $currentLineLength); - if (str_contains($output, "\0")) { - return strtr($output, ["\0" => '\\', '\\<' => '<']); - } - - return str_replace('\\<', '<', $output); + return strtr($output, ["\0" => '\\', '\\<' => '<', '\\>' => '>']); } /** @@ -216,7 +219,8 @@ private function createStyleFromString(string $string): ?OutputFormatterStyleInt } elseif ('bg' == $match[0]) { $style->setBackground(strtolower($match[1])); } elseif ('href' === $match[0]) { - $style->setHref($match[1]); + $url = preg_replace('{\\\\([<>])}', '$1', $match[1]); + $style->setHref($url); } elseif ('options' === $match[0]) { preg_match_all('([^,;]+)', strtolower($match[1]), $options); $options = array_shift($options); @@ -256,7 +260,7 @@ private function applyCurrentStyle(string $text, string $current, int $width, in } preg_match('~(\\n)$~', $text, $matches); - $text = $prefix.preg_replace('~([^\\n]{'.$width.'})\\ *~', "\$1\n", $text); + $text = $prefix.$this->addLineBreaks($text, $width); $text = rtrim($text, "\n").($matches[1] ?? ''); if (!$currentLineLength && '' !== $current && "\n" !== substr($current, -1)) { @@ -280,4 +284,11 @@ private function applyCurrentStyle(string $text, string $current, int $width, in return implode("\n", $lines); } + + private function addLineBreaks(string $text, int $width): string + { + $encoding = mb_detect_encoding($text, null, true) ?: 'UTF-8'; + + return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding); + } } diff --git a/api/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/api/vendor/symfony/console/Formatter/OutputFormatterStyle.php index 0fb36ac63..d7ae66494 100644 --- a/api/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/api/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -33,7 +33,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface * @param string|null $foreground The style foreground color name * @param string|null $background The style background color name */ - public function __construct(string $foreground = null, string $background = null, array $options = []) + public function __construct(?string $foreground = null, ?string $background = null, array $options = []) { $this->color = new Color($this->foreground = $foreground ?: '', $this->background = $background ?: '', $this->options = $options); } @@ -41,7 +41,7 @@ public function __construct(string $foreground = null, string $background = null /** * {@inheritdoc} */ - public function setForeground(string $color = null) + public function setForeground(?string $color = null) { $this->color = new Color($this->foreground = $color ?: '', $this->background, $this->options); } @@ -49,7 +49,7 @@ public function setForeground(string $color = null) /** * {@inheritdoc} */ - public function setBackground(string $color = null) + public function setBackground(?string $color = null) { $this->color = new Color($this->foreground, $this->background = $color ?: '', $this->options); } @@ -96,7 +96,8 @@ public function apply(string $text) { if (null === $this->handlesHrefGracefully) { $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR') - && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100); + && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100) + && !isset($_SERVER['IDEA_INITIAL_DIRECTORY']); } if (null !== $this->href && $this->handlesHrefGracefully) { diff --git a/api/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/api/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php index b30560d22..89e4d2438 100644 --- a/api/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ b/api/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php @@ -21,12 +21,12 @@ interface OutputFormatterStyleInterface /** * Sets style foreground color. */ - public function setForeground(string $color = null); + public function setForeground(?string $color = null); /** * Sets style background color. */ - public function setBackground(string $color = null); + public function setBackground(?string $color = null); /** * Sets some specific style option. diff --git a/api/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/api/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php index fc48dc0e1..1b9356301 100644 --- a/api/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ b/api/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php @@ -26,7 +26,7 @@ class OutputFormatterStyleStack implements ResetInterface private $emptyStyle; - public function __construct(OutputFormatterStyleInterface $emptyStyle = null) + public function __construct(?OutputFormatterStyleInterface $emptyStyle = null) { $this->emptyStyle = $emptyStyle ?? new OutputFormatterStyle(); $this->reset(); @@ -55,7 +55,7 @@ public function push(OutputFormatterStyleInterface $style) * * @throws InvalidArgumentException When style tags incorrectly nested */ - public function pop(OutputFormatterStyleInterface $style = null) + public function pop(?OutputFormatterStyleInterface $style = null) { if (empty($this->styles)) { return $this->emptyStyle; diff --git a/api/vendor/symfony/console/Helper/Dumper.php b/api/vendor/symfony/console/Helper/Dumper.php index b013b6c52..605e4d70b 100644 --- a/api/vendor/symfony/console/Helper/Dumper.php +++ b/api/vendor/symfony/console/Helper/Dumper.php @@ -26,7 +26,7 @@ final class Dumper private $cloner; private $handler; - public function __construct(OutputInterface $output, CliDumper $dumper = null, ClonerInterface $cloner = null) + public function __construct(OutputInterface $output, ?CliDumper $dumper = null, ?ClonerInterface $cloner = null) { $this->output = $output; $this->dumper = $dumper; diff --git a/api/vendor/symfony/console/Helper/Helper.php b/api/vendor/symfony/console/Helper/Helper.php index 50f51c790..6b3f7f43a 100644 --- a/api/vendor/symfony/console/Helper/Helper.php +++ b/api/vendor/symfony/console/Helper/Helper.php @@ -26,7 +26,7 @@ abstract class Helper implements HelperInterface /** * {@inheritdoc} */ - public function setHelperSet(HelperSet $helperSet = null) + public function setHelperSet(?HelperSet $helperSet = null) { $this->helperSet = $helperSet; } @@ -96,7 +96,7 @@ public static function length(?string $string): int * * @return string */ - public static function substr(?string $string, int $from, int $length = null) + public static function substr(?string $string, int $from, ?int $length = null) { $string ?? $string = ''; @@ -171,6 +171,8 @@ public static function removeDecoration(OutputFormatterInterface $formatter, ?st $string = $formatter->format($string ?? ''); // remove already formatted characters $string = preg_replace("/\033\[[^m]*m/", '', $string ?? ''); + // remove terminal hyperlinks + $string = preg_replace('/\\033]8;[^;]*;[^\\033]*\\033\\\\/', '', $string ?? ''); $formatter->setDecorated($isDecorated); return $string; diff --git a/api/vendor/symfony/console/Helper/HelperInterface.php b/api/vendor/symfony/console/Helper/HelperInterface.php index fc952b486..5bf4d6327 100644 --- a/api/vendor/symfony/console/Helper/HelperInterface.php +++ b/api/vendor/symfony/console/Helper/HelperInterface.php @@ -21,7 +21,7 @@ interface HelperInterface /** * Sets the helper set associated with this helper. */ - public function setHelperSet(HelperSet $helperSet = null); + public function setHelperSet(?HelperSet $helperSet = null); /** * Gets the helper set associated with this helper. diff --git a/api/vendor/symfony/console/Helper/HelperSet.php b/api/vendor/symfony/console/Helper/HelperSet.php index 719762d24..c870ab997 100644 --- a/api/vendor/symfony/console/Helper/HelperSet.php +++ b/api/vendor/symfony/console/Helper/HelperSet.php @@ -37,7 +37,7 @@ public function __construct(array $helpers = []) } } - public function set(HelperInterface $helper, string $alias = null) + public function set(HelperInterface $helper, ?string $alias = null) { $this->helpers[$helper->getName()] = $helper; if (null !== $alias) { @@ -76,7 +76,7 @@ public function get(string $name) /** * @deprecated since Symfony 5.4 */ - public function setCommand(Command $command = null) + public function setCommand(?Command $command = null) { trigger_deprecation('symfony/console', '5.4', 'Method "%s()" is deprecated.', __METHOD__); diff --git a/api/vendor/symfony/console/Helper/ProcessHelper.php b/api/vendor/symfony/console/Helper/ProcessHelper.php index 4ea3d724d..86a250b27 100644 --- a/api/vendor/symfony/console/Helper/ProcessHelper.php +++ b/api/vendor/symfony/console/Helper/ProcessHelper.php @@ -32,7 +32,7 @@ class ProcessHelper extends Helper * @param callable|null $callback A PHP callback to run whenever there is some * output available on STDOUT or STDERR */ - public function run(OutputInterface $output, $cmd, string $error = null, callable $callback = null, int $verbosity = OutputInterface::VERBOSITY_VERY_VERBOSE): Process + public function run(OutputInterface $output, $cmd, ?string $error = null, ?callable $callback = null, int $verbosity = OutputInterface::VERBOSITY_VERY_VERBOSE): Process { if (!class_exists(Process::class)) { throw new \LogicException('The ProcessHelper cannot be run as the Process component is not installed. Try running "compose require symfony/process".'); @@ -98,7 +98,7 @@ public function run(OutputInterface $output, $cmd, string $error = null, callabl * * @see run() */ - public function mustRun(OutputInterface $output, $cmd, string $error = null, callable $callback = null): Process + public function mustRun(OutputInterface $output, $cmd, ?string $error = null, ?callable $callback = null): Process { $process = $this->run($output, $cmd, $error, $callback); @@ -112,7 +112,7 @@ public function mustRun(OutputInterface $output, $cmd, string $error = null, cal /** * Wraps a Process callback to add debugging output. */ - public function wrapCallback(OutputInterface $output, Process $process, callable $callback = null): callable + public function wrapCallback(OutputInterface $output, Process $process, ?callable $callback = null): callable { if ($output instanceof ConsoleOutputInterface) { $output = $output->getErrorOutput(); diff --git a/api/vendor/symfony/console/Helper/ProgressBar.php b/api/vendor/symfony/console/Helper/ProgressBar.php index b1fb213b6..6250732eb 100644 --- a/api/vendor/symfony/console/Helper/ProgressBar.php +++ b/api/vendor/symfony/console/Helper/ProgressBar.php @@ -53,7 +53,6 @@ final class ProgressBar private $startTime; private $stepWidth; private $percent = 0.0; - private $formatLineCount; private $messages = []; private $overwrite = true; private $terminal; @@ -170,9 +169,12 @@ public function setMessage(string $message, string $name = 'message') $this->messages[$name] = $message; } + /** + * @return string|null + */ public function getMessage(string $name = 'message') { - return $this->messages[$name]; + return $this->messages[$name] ?? null; } public function getStartTime(): int @@ -294,7 +296,7 @@ public function maxSecondsBetweenRedraws(float $seconds): void * * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable */ - public function iterate(iterable $iterable, int $max = null): iterable + public function iterate(iterable $iterable, ?int $max = null): iterable { $this->start($max ?? (is_countable($iterable) ? \count($iterable) : 0)); @@ -312,7 +314,7 @@ public function iterate(iterable $iterable, int $max = null): iterable * * @param int|null $max Number of steps to complete the bar (0 if indeterminate), null to leave unchanged */ - public function start(int $max = null) + public function start(?int $max = null) { $this->startTime = time(); $this->step = 0; @@ -446,8 +448,6 @@ private function setRealFormat(string $format) } else { $this->format = $format; } - - $this->formatLineCount = substr_count($this->format, "\n"); } /** @@ -464,7 +464,7 @@ private function overwrite(string $message): void if ($this->overwrite) { if (null !== $this->previousMessage) { if ($this->output instanceof ConsoleSectionOutput) { - $messageLines = explode("\n", $message); + $messageLines = explode("\n", $this->previousMessage); $lineCount = \count($messageLines); foreach ($messageLines as $messageLine) { $messageLineLength = Helper::width(Helper::removeDecoration($this->output->getFormatter(), $messageLine)); @@ -474,7 +474,8 @@ private function overwrite(string $message): void } $this->output->clear($lineCount); } else { - for ($i = 0; $i < $this->formatLineCount; ++$i) { + $lineCount = substr_count($this->previousMessage, "\n"); + for ($i = 0; $i < $lineCount; ++$i) { $this->cursor->moveToColumn(1); $this->cursor->clearLine(); $this->cursor->moveUp(); diff --git a/api/vendor/symfony/console/Helper/ProgressIndicator.php b/api/vendor/symfony/console/Helper/ProgressIndicator.php index 3482343fc..3cc0e1451 100644 --- a/api/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/api/vendor/symfony/console/Helper/ProgressIndicator.php @@ -50,7 +50,7 @@ class ProgressIndicator * @param int $indicatorChangeInterval Change interval in milliseconds * @param array|null $indicatorValues Animated indicator characters */ - public function __construct(OutputInterface $output, string $format = null, int $indicatorChangeInterval = 100, array $indicatorValues = null) + public function __construct(OutputInterface $output, ?string $format = null, int $indicatorChangeInterval = 100, ?array $indicatorValues = null) { $this->output = $output; @@ -129,8 +129,6 @@ public function advance() /** * Finish the indicator with message. - * - * @param $message */ public function finish(string $message) { diff --git a/api/vendor/symfony/console/Helper/QuestionHelper.php b/api/vendor/symfony/console/Helper/QuestionHelper.php index 7abd092ec..7b9de9229 100644 --- a/api/vendor/symfony/console/Helper/QuestionHelper.php +++ b/api/vendor/symfony/console/Helper/QuestionHelper.php @@ -24,6 +24,7 @@ use Symfony\Component\Console\Question\ChoiceQuestion; use Symfony\Component\Console\Question\Question; use Symfony\Component\Console\Terminal; + use function Symfony\Component\String\s; /** @@ -127,7 +128,18 @@ private function doAsk(OutputInterface $output, Question $question) } if (false === $ret) { + $isBlocked = stream_get_meta_data($inputStream)['blocked'] ?? true; + + if (!$isBlocked) { + stream_set_blocking($inputStream, true); + } + $ret = $this->readInput($inputStream, $question); + + if (!$isBlocked) { + stream_set_blocking($inputStream, false); + } + if (false === $ret) { throw new MissingInputException('Aborted.'); } @@ -251,6 +263,9 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu $numMatches = \count($matches); $sttyMode = shell_exec('stty -g'); + $isStdin = 'php://stdin' === (stream_get_meta_data($inputStream)['uri'] ?? null); + $r = [$inputStream]; + $w = []; // Disable icanon (so we can fread each keypress) and echo (we'll do echoing here instead) shell_exec('stty -icanon -echo'); @@ -260,11 +275,15 @@ private function autocomplete(OutputInterface $output, Question $question, $inpu // Read a keypress while (!feof($inputStream)) { + while ($isStdin && 0 === @stream_select($r, $w, $w, 0, 100)) { + // Give signal handlers a chance to run + $r = [$inputStream]; + } $c = fread($inputStream, 1); // as opposed to fgets(), fread() returns an empty string when the stream content is empty, not false. if (false === $c || ('' === $ret && '' === $c && null === $question->getDefault())) { - shell_exec(sprintf('stty %s', $sttyMode)); + shell_exec('stty '.$sttyMode); throw new MissingInputException('Aborted.'); } elseif ("\177" === $c) { // Backspace Character if (0 === $numMatches && 0 !== $i) { @@ -369,7 +388,7 @@ function ($match) use ($ret) { } // Reset stty so it behaves normally again - shell_exec(sprintf('stty %s', $sttyMode)); + shell_exec('stty '.$sttyMode); return $fullChoice; } @@ -430,7 +449,7 @@ private function getHiddenResponse(OutputInterface $output, $inputStream, bool $ $value = fgets($inputStream, 4096); if (self::$stty && Terminal::hasSttyAvailable()) { - shell_exec(sprintf('stty %s', $sttyMode)); + shell_exec('stty '.$sttyMode); } if (false === $value) { @@ -484,21 +503,7 @@ private function isInteractiveInput($inputStream): bool return self::$stdinIsInteractive; } - if (\function_exists('stream_isatty')) { - return self::$stdinIsInteractive = stream_isatty(fopen('php://stdin', 'r')); - } - - if (\function_exists('posix_isatty')) { - return self::$stdinIsInteractive = posix_isatty(fopen('php://stdin', 'r')); - } - - if (!\function_exists('exec')) { - return self::$stdinIsInteractive = true; - } - - exec('stty 2> /dev/null', $output, $status); - - return self::$stdinIsInteractive = 1 !== $status; + return self::$stdinIsInteractive = @stream_isatty(fopen('php://stdin', 'r')); } /** diff --git a/api/vendor/symfony/console/Helper/Table.php b/api/vendor/symfony/console/Helper/Table.php index 6ade1360d..698f9693b 100644 --- a/api/vendor/symfony/console/Helper/Table.php +++ b/api/vendor/symfony/console/Helper/Table.php @@ -383,41 +383,59 @@ public function render() $this->calculateNumberOfColumns($rows); - $rows = $this->buildTableRows($rows); - $this->calculateColumnsWidth($rows); + $rowGroups = $this->buildTableRows($rows); + $this->calculateColumnsWidth($rowGroups); $isHeader = !$this->horizontal; $isFirstRow = $this->horizontal; $hasTitle = (bool) $this->headerTitle; - foreach ($rows as $row) { - if ($divider === $row) { - $isHeader = false; - $isFirstRow = true; - continue; - } - if ($row instanceof TableSeparator) { - $this->renderRowSeparator(); + foreach ($rowGroups as $rowGroup) { + $isHeaderSeparatorRendered = false; - continue; - } - if (!$row) { - continue; - } + foreach ($rowGroup as $row) { + if ($divider === $row) { + $isHeader = false; + $isFirstRow = true; - if ($isHeader || $isFirstRow) { - $this->renderRowSeparator( - $isHeader ? self::SEPARATOR_TOP : self::SEPARATOR_TOP_BOTTOM, - $hasTitle ? $this->headerTitle : null, - $hasTitle ? $this->style->getHeaderTitleFormat() : null - ); - $isFirstRow = false; - $hasTitle = false; - } - if ($this->horizontal) { - $this->renderRow($row, $this->style->getCellRowFormat(), $this->style->getCellHeaderFormat()); - } else { - $this->renderRow($row, $isHeader ? $this->style->getCellHeaderFormat() : $this->style->getCellRowFormat()); + continue; + } + + if ($row instanceof TableSeparator) { + $this->renderRowSeparator(); + + continue; + } + + if (!$row) { + continue; + } + + if ($isHeader && !$isHeaderSeparatorRendered) { + $this->renderRowSeparator( + $isHeader ? self::SEPARATOR_TOP : self::SEPARATOR_TOP_BOTTOM, + $hasTitle ? $this->headerTitle : null, + $hasTitle ? $this->style->getHeaderTitleFormat() : null + ); + $hasTitle = false; + $isHeaderSeparatorRendered = true; + } + + if ($isFirstRow) { + $this->renderRowSeparator( + $isHeader ? self::SEPARATOR_TOP : self::SEPARATOR_TOP_BOTTOM, + $hasTitle ? $this->headerTitle : null, + $hasTitle ? $this->style->getHeaderTitleFormat() : null + ); + $isFirstRow = false; + $hasTitle = false; + } + + if ($this->horizontal) { + $this->renderRow($row, $this->style->getCellRowFormat(), $this->style->getCellHeaderFormat()); + } else { + $this->renderRow($row, $isHeader ? $this->style->getCellHeaderFormat() : $this->style->getCellRowFormat()); + } } } $this->renderRowSeparator(self::SEPARATOR_BOTTOM, $this->footerTitle, $this->style->getFooterTitleFormat()); @@ -433,7 +451,7 @@ public function render() * * +-----+-----------+-------+ */ - private function renderRowSeparator(int $type = self::SEPARATOR_MID, string $title = null, string $titleFormat = null) + private function renderRowSeparator(int $type = self::SEPARATOR_MID, ?string $title = null, ?string $titleFormat = null) { if (0 === $count = $this->numberOfColumns) { return; @@ -498,7 +516,7 @@ private function renderColumnSeparator(int $type = self::BORDER_OUTSIDE): string * * | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens | */ - private function renderRow(array $row, string $cellFormat, string $firstCellFormat = null) + private function renderRow(array $row, string $cellFormat, ?string $firstCellFormat = null) { $rowContent = $this->renderColumnSeparator(self::BORDER_OUTSIDE); $columns = $this->getRowColumns($row); @@ -603,9 +621,10 @@ private function buildTableRows(array $rows): TableRows if (!strstr($cell ?? '', "\n")) { continue; } - $escaped = implode("\n", array_map([OutputFormatter::class, 'escapeTrailingBackslash'], explode("\n", $cell))); + $eol = str_contains($cell ?? '', "\r\n") ? "\r\n" : "\n"; + $escaped = implode($eol, array_map([OutputFormatter::class, 'escapeTrailingBackslash'], explode($eol, $cell))); $cell = $cell instanceof TableCell ? new TableCell($escaped, ['colspan' => $cell->getColspan()]) : $escaped; - $lines = explode("\n", str_replace("\n", "\n", $cell)); + $lines = explode($eol, str_replace($eol, ''.$eol, $cell)); foreach ($lines as $lineKey => $line) { if ($colspan > 1) { $line = new TableCell($line, ['colspan' => $colspan]); @@ -624,13 +643,14 @@ private function buildTableRows(array $rows): TableRows return new TableRows(function () use ($rows, $unmergedRows): \Traversable { foreach ($rows as $rowKey => $row) { - yield $row instanceof TableSeparator ? $row : $this->fillCells($row); + $rowGroup = [$row instanceof TableSeparator ? $row : $this->fillCells($row)]; if (isset($unmergedRows[$rowKey])) { foreach ($unmergedRows[$rowKey] as $row) { - yield $row instanceof TableSeparator ? $row : $this->fillCells($row); + $rowGroup[] = $row instanceof TableSeparator ? $row : $this->fillCells($row); } } + yield $rowGroup; } }); } @@ -659,15 +679,16 @@ private function fillNextRows(array $rows, int $line): array { $unmergedRows = []; foreach ($rows[$line] as $column => $cell) { - if (null !== $cell && !$cell instanceof TableCell && !is_scalar($cell) && !(\is_object($cell) && method_exists($cell, '__toString'))) { + if (null !== $cell && !$cell instanceof TableCell && !\is_scalar($cell) && !(\is_object($cell) && method_exists($cell, '__toString'))) { throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing "__toString()", "%s" given.', get_debug_type($cell))); } if ($cell instanceof TableCell && $cell->getRowspan() > 1) { $nbLines = $cell->getRowspan() - 1; $lines = [$cell]; if (strstr($cell, "\n")) { - $lines = explode("\n", str_replace("\n", "\n", $cell)); - $nbLines = \count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines; + $eol = str_contains($cell, "\r\n") ? "\r\n" : "\n"; + $lines = explode($eol, str_replace($eol, ''.$eol.'', $cell)); + $nbLines = \count($lines) > $nbLines ? substr_count($cell, $eol) : $nbLines; $rows[$line][$column] = new TableCell($lines[0], ['colspan' => $cell->getColspan(), 'style' => $cell->getStyle()]); unset($lines[0]); @@ -771,29 +792,31 @@ private function getRowColumns(array $row): array /** * Calculates columns widths. */ - private function calculateColumnsWidth(iterable $rows) + private function calculateColumnsWidth(iterable $groups) { for ($column = 0; $column < $this->numberOfColumns; ++$column) { $lengths = []; - foreach ($rows as $row) { - if ($row instanceof TableSeparator) { - continue; - } + foreach ($groups as $group) { + foreach ($group as $row) { + if ($row instanceof TableSeparator) { + continue; + } - foreach ($row as $i => $cell) { - if ($cell instanceof TableCell) { - $textContent = Helper::removeDecoration($this->output->getFormatter(), $cell); - $textLength = Helper::width($textContent); - if ($textLength > 0) { - $contentColumns = str_split($textContent, ceil($textLength / $cell->getColspan())); - foreach ($contentColumns as $position => $content) { - $row[$i + $position] = $content; + foreach ($row as $i => $cell) { + if ($cell instanceof TableCell) { + $textContent = Helper::removeDecoration($this->output->getFormatter(), $cell); + $textLength = Helper::width($textContent); + if ($textLength > 0) { + $contentColumns = mb_str_split($textContent, ceil($textLength / $cell->getColspan())); + foreach ($contentColumns as $position => $content) { + $row[$i + $position] = $content; + } } } } - } - $lengths[] = $this->getCellWidth($row, $column); + $lengths[] = $this->getCellWidth($row, $column); + } } $this->effectiveColumnWidths[$column] = max($lengths) + Helper::width($this->style->getCellRowContentFormat()) - 2; @@ -844,9 +867,9 @@ private static function initStyles(): array $compact = new TableStyle(); $compact ->setHorizontalBorderChars('') - ->setVerticalBorderChars(' ') + ->setVerticalBorderChars('') ->setDefaultCrossingChar('') - ->setCellRowContentFormat('%s') + ->setCellRowContentFormat('%s ') ; $styleGuide = new TableStyle(); diff --git a/api/vendor/symfony/console/Helper/TableStyle.php b/api/vendor/symfony/console/Helper/TableStyle.php index dfc41e6a4..0643c79eb 100644 --- a/api/vendor/symfony/console/Helper/TableStyle.php +++ b/api/vendor/symfony/console/Helper/TableStyle.php @@ -90,7 +90,7 @@ public function getPaddingChar() * * @return $this */ - public function setHorizontalBorderChars(string $outside, string $inside = null): self + public function setHorizontalBorderChars(string $outside, ?string $inside = null): self { $this->horizontalOutsideBorderChar = $outside; $this->horizontalInsideBorderChar = $inside ?? $outside; @@ -115,7 +115,7 @@ public function setHorizontalBorderChars(string $outside, string $inside = null) * * @return $this */ - public function setVerticalBorderChars(string $outside, string $inside = null): self + public function setVerticalBorderChars(string $outside, ?string $inside = null): self { $this->verticalOutsideBorderChar = $outside; $this->verticalInsideBorderChar = $inside ?? $outside; @@ -169,7 +169,7 @@ public function getBorderChars(): array * * @return $this */ - public function setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, string $topLeftBottom = null, string $topMidBottom = null, string $topRightBottom = null): self + public function setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, ?string $topLeftBottom = null, ?string $topMidBottom = null, ?string $topRightBottom = null): self { $this->crossingChar = $cross; $this->crossingTopLeftChar = $topLeft; diff --git a/api/vendor/symfony/console/Input/ArgvInput.php b/api/vendor/symfony/console/Input/ArgvInput.php index 675b9ef58..0c4b2d25b 100644 --- a/api/vendor/symfony/console/Input/ArgvInput.php +++ b/api/vendor/symfony/console/Input/ArgvInput.php @@ -43,7 +43,7 @@ class ArgvInput extends Input private $tokens; private $parsed; - public function __construct(array $argv = null, InputDefinition $definition = null) + public function __construct(?array $argv = null, ?InputDefinition $definition = null) { $argv = $argv ?? $_SERVER['argv'] ?? []; diff --git a/api/vendor/symfony/console/Input/ArrayInput.php b/api/vendor/symfony/console/Input/ArrayInput.php index c65161484..21a517cfb 100644 --- a/api/vendor/symfony/console/Input/ArrayInput.php +++ b/api/vendor/symfony/console/Input/ArrayInput.php @@ -27,7 +27,7 @@ class ArrayInput extends Input { private $parameters; - public function __construct(array $parameters, InputDefinition $definition = null) + public function __construct(array $parameters, ?InputDefinition $definition = null) { $this->parameters = $parameters; diff --git a/api/vendor/symfony/console/Input/Input.php b/api/vendor/symfony/console/Input/Input.php index d37460ed3..0faab2cf1 100644 --- a/api/vendor/symfony/console/Input/Input.php +++ b/api/vendor/symfony/console/Input/Input.php @@ -33,7 +33,7 @@ abstract class Input implements InputInterface, StreamableInputInterface protected $arguments = []; protected $interactive = true; - public function __construct(InputDefinition $definition = null) + public function __construct(?InputDefinition $definition = null) { if (null === $definition) { $this->definition = new InputDefinition(); diff --git a/api/vendor/symfony/console/Input/InputArgument.php b/api/vendor/symfony/console/Input/InputArgument.php index e891b9443..1a8bf44b7 100644 --- a/api/vendor/symfony/console/Input/InputArgument.php +++ b/api/vendor/symfony/console/Input/InputArgument.php @@ -32,13 +32,13 @@ class InputArgument /** * @param string $name The argument name - * @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL + * @param int|null $mode The argument mode: a bit mask of self::REQUIRED, self::OPTIONAL and self::IS_ARRAY * @param string $description A description text * @param string|bool|int|float|array|null $default The default value (for self::OPTIONAL mode only) * * @throws InvalidArgumentException When argument mode is not valid */ - public function __construct(string $name, int $mode = null, string $description = '', $default = null) + public function __construct(string $name, ?int $mode = null, string $description = '', $default = null) { if (null === $mode) { $mode = self::OPTIONAL; @@ -92,7 +92,7 @@ public function isArray() */ public function setDefault($default = null) { - if (self::REQUIRED === $this->mode && null !== $default) { + if ($this->isRequired() && null !== $default) { throw new LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); } diff --git a/api/vendor/symfony/console/Input/InputOption.php b/api/vendor/symfony/console/Input/InputOption.php index 2bec34fe1..99807f59e 100644 --- a/api/vendor/symfony/console/Input/InputOption.php +++ b/api/vendor/symfony/console/Input/InputOption.php @@ -59,7 +59,7 @@ class InputOption * * @throws InvalidArgumentException If option mode is invalid or incompatible */ - public function __construct(string $name, $shortcut = null, int $mode = null, string $description = '', $default = null) + public function __construct(string $name, $shortcut = null, ?int $mode = null, string $description = '', $default = null) { if (str_starts_with($name, '--')) { $name = substr($name, 2); @@ -69,7 +69,7 @@ public function __construct(string $name, $shortcut = null, int $mode = null, st throw new InvalidArgumentException('An option name cannot be empty.'); } - if (empty($shortcut)) { + if ('' === $shortcut || [] === $shortcut || false === $shortcut) { $shortcut = null; } @@ -78,10 +78,10 @@ public function __construct(string $name, $shortcut = null, int $mode = null, st $shortcut = implode('|', $shortcut); } $shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-')); - $shortcuts = array_filter($shortcuts); + $shortcuts = array_filter($shortcuts, 'strlen'); $shortcut = implode('|', $shortcuts); - if (empty($shortcut)) { + if ('' === $shortcut) { throw new InvalidArgumentException('An option shortcut cannot be empty.'); } } diff --git a/api/vendor/symfony/console/Input/StringInput.php b/api/vendor/symfony/console/Input/StringInput.php index eb5c07fdd..56bb66cbf 100644 --- a/api/vendor/symfony/console/Input/StringInput.php +++ b/api/vendor/symfony/console/Input/StringInput.php @@ -25,6 +25,7 @@ class StringInput extends ArgvInput { public const REGEX_STRING = '([^\s]+?)(?:\s|(? $val) { - if (null === $val || is_scalar($val) || (\is_object($val) && method_exists($val, '__toString'))) { + if (null === $val || \is_scalar($val) || (\is_object($val) && method_exists($val, '__toString'))) { $replacements["{{$key}}"] = $val; } elseif ($val instanceof \DateTimeInterface) { $replacements["{{$key}}"] = $val->format(\DateTime::RFC3339); diff --git a/api/vendor/symfony/console/Output/ConsoleOutput.php b/api/vendor/symfony/console/Output/ConsoleOutput.php index 2cda213a0..560aeb581 100644 --- a/api/vendor/symfony/console/Output/ConsoleOutput.php +++ b/api/vendor/symfony/console/Output/ConsoleOutput.php @@ -37,7 +37,7 @@ class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface * @param bool|null $decorated Whether to decorate messages (null for auto-guessing) * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter) */ - public function __construct(int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = null, OutputFormatterInterface $formatter = null) + public function __construct(int $verbosity = self::VERBOSITY_NORMAL, ?bool $decorated = null, ?OutputFormatterInterface $formatter = null) { parent::__construct($this->openOutputStream(), $verbosity, $decorated, $formatter); @@ -153,7 +153,8 @@ private function openOutputStream() return fopen('php://output', 'w'); } - return @fopen('php://stdout', 'w') ?: fopen('php://output', 'w'); + // Use STDOUT when possible to prevent from opening too many file descriptors + return \defined('STDOUT') ? \STDOUT : (@fopen('php://stdout', 'w') ?: fopen('php://output', 'w')); } /** @@ -161,6 +162,11 @@ private function openOutputStream() */ private function openErrorStream() { - return fopen($this->hasStderrSupport() ? 'php://stderr' : 'php://output', 'w'); + if (!$this->hasStderrSupport()) { + return fopen('php://output', 'w'); + } + + // Use STDERR when possible to prevent from opening too many file descriptors + return \defined('STDERR') ? \STDERR : (@fopen('php://stderr', 'w') ?: fopen('php://output', 'w')); } } diff --git a/api/vendor/symfony/console/Output/ConsoleSectionOutput.php b/api/vendor/symfony/console/Output/ConsoleSectionOutput.php index 8f1649758..70d70c50b 100644 --- a/api/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/api/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -43,7 +43,7 @@ public function __construct($stream, array &$sections, int $verbosity, bool $dec * * @param int $lines Number of lines to clear. If null, then the entire output of this section is cleared */ - public function clear(int $lines = null) + public function clear(?int $lines = null) { if (empty($this->content) || !$this->isDecorated()) { return; diff --git a/api/vendor/symfony/console/Output/Output.php b/api/vendor/symfony/console/Output/Output.php index d7c5fb2d1..28c40bb3e 100644 --- a/api/vendor/symfony/console/Output/Output.php +++ b/api/vendor/symfony/console/Output/Output.php @@ -37,7 +37,7 @@ abstract class Output implements OutputInterface * @param bool $decorated Whether to decorate messages * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter) */ - public function __construct(?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, OutputFormatterInterface $formatter = null) + public function __construct(?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, ?OutputFormatterInterface $formatter = null) { $this->verbosity = $verbosity ?? self::VERBOSITY_NORMAL; $this->formatter = $formatter ?? new OutputFormatter(); diff --git a/api/vendor/symfony/console/Output/StreamOutput.php b/api/vendor/symfony/console/Output/StreamOutput.php index 7f5551827..5f5ffce32 100644 --- a/api/vendor/symfony/console/Output/StreamOutput.php +++ b/api/vendor/symfony/console/Output/StreamOutput.php @@ -39,7 +39,7 @@ class StreamOutput extends Output * * @throws InvalidArgumentException When first argument is not a real stream */ - public function __construct($stream, int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = null, OutputFormatterInterface $formatter = null) + public function __construct($stream, int $verbosity = self::VERBOSITY_NORMAL, ?bool $decorated = null, ?OutputFormatterInterface $formatter = null) { if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) { throw new InvalidArgumentException('The StreamOutput class needs a stream as its first argument.'); @@ -64,9 +64,6 @@ public function getStream() return $this->stream; } - /** - * {@inheritdoc} - */ protected function doWrite(string $message, bool $newline) { if ($newline) { @@ -98,18 +95,29 @@ protected function hasColorSupport() return false; } - if ('Hyper' === getenv('TERM_PROGRAM')) { + // Detect msysgit/mingw and assume this is a tty because detection + // does not work correctly, see https://github.com/composer/composer/issues/9690 + if (!@stream_isatty($this->stream) && !\in_array(strtoupper((string) getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], true)) { + return false; + } + + if ('\\' === \DIRECTORY_SEPARATOR && @sapi_windows_vt100_support($this->stream)) { return true; } - if (\DIRECTORY_SEPARATOR === '\\') { - return (\function_exists('sapi_windows_vt100_support') - && @sapi_windows_vt100_support($this->stream)) - || false !== getenv('ANSICON') - || 'ON' === getenv('ConEmuANSI') - || 'xterm' === getenv('TERM'); + if ('Hyper' === getenv('TERM_PROGRAM') + || false !== getenv('COLORTERM') + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + ) { + return true; + } + + if ('dumb' === $term = (string) getenv('TERM')) { + return false; } - return stream_isatty($this->stream); + // See https://github.com/chalk/supports-color/blob/d4f413efaf8da045c5ab440ed418ef02dbb28bf1/index.js#L157 + return preg_match('/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/', $term); } } diff --git a/api/vendor/symfony/console/Output/TrimmedBufferOutput.php b/api/vendor/symfony/console/Output/TrimmedBufferOutput.php index 3f4d375f4..b08503b3a 100644 --- a/api/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ b/api/vendor/symfony/console/Output/TrimmedBufferOutput.php @@ -24,7 +24,7 @@ class TrimmedBufferOutput extends Output private $maxLength; private $buffer = ''; - public function __construct(int $maxLength, ?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, OutputFormatterInterface $formatter = null) + public function __construct(int $maxLength, ?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, ?OutputFormatterInterface $formatter = null) { if ($maxLength <= 0) { throw new InvalidArgumentException(sprintf('"%s()" expects a strictly positive maxLength. Got %d.', __METHOD__, $maxLength)); diff --git a/api/vendor/symfony/console/Question/ChoiceQuestion.php b/api/vendor/symfony/console/Question/ChoiceQuestion.php index 92b6e8663..bf1f90487 100644 --- a/api/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/api/vendor/symfony/console/Question/ChoiceQuestion.php @@ -125,18 +125,18 @@ private function getDefaultValidator(): callable return function ($selected) use ($choices, $errorMessage, $multiselect, $isAssoc) { if ($multiselect) { // Check for a separated comma values - if (!preg_match('/^[^,]+(?:,[^,]+)*$/', $selected, $matches)) { + if (!preg_match('/^[^,]+(?:,[^,]+)*$/', (string) $selected, $matches)) { throw new InvalidArgumentException(sprintf($errorMessage, $selected)); } - $selectedChoices = explode(',', $selected); + $selectedChoices = explode(',', (string) $selected); } else { $selectedChoices = [$selected]; } if ($this->isTrimmable()) { foreach ($selectedChoices as $k => $v) { - $selectedChoices[$k] = trim($v); + $selectedChoices[$k] = trim((string) $v); } } diff --git a/api/vendor/symfony/console/Question/Question.php b/api/vendor/symfony/console/Question/Question.php index 3a73f04b2..ba5744283 100644 --- a/api/vendor/symfony/console/Question/Question.php +++ b/api/vendor/symfony/console/Question/Question.php @@ -186,7 +186,7 @@ public function getAutocompleterCallback(): ?callable * * @return $this */ - public function setAutocompleterCallback(callable $callback = null): self + public function setAutocompleterCallback(?callable $callback = null): self { if ($this->hidden && null !== $callback) { throw new LogicException('A hidden question cannot use the autocompleter.'); @@ -202,7 +202,7 @@ public function setAutocompleterCallback(callable $callback = null): self * * @return $this */ - public function setValidator(callable $validator = null) + public function setValidator(?callable $validator = null) { $this->validator = $validator; diff --git a/api/vendor/symfony/console/Resources/completion.bash b/api/vendor/symfony/console/Resources/completion.bash index c5e89c3c2..64b87ccf7 100644 --- a/api/vendor/symfony/console/Resources/completion.bash +++ b/api/vendor/symfony/console/Resources/completion.bash @@ -11,18 +11,21 @@ _sf_{{ COMMAND_NAME }}() { local sf_cmd="${COMP_WORDS[0]}" # for an alias, get the real script behind it - if [[ $(type -t $sf_cmd) == "alias" ]]; then + sf_cmd_type=$(type -t $sf_cmd) + if [[ $sf_cmd_type == "alias" ]]; then sf_cmd=$(alias $sf_cmd | sed -E "s/alias $sf_cmd='(.*)'/\1/") + elif [[ $sf_cmd_type == "file" ]]; then + sf_cmd=$(type -p $sf_cmd) fi - if [ ! -f "$sf_cmd" ]; then + if [[ $sf_cmd_type != "function" && ! -x $sf_cmd ]]; then return 1 fi local cur prev words cword _get_comp_words_by_ref -n := cur prev words cword - local completecmd=("$sf_cmd" "_complete" "-sbash" "-c$cword" "-S{{ VERSION }}") + local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-S{{ VERSION }}") for w in ${words[@]}; do w=$(printf -- '%b' "$w") # remove quotes from typed values diff --git a/api/vendor/symfony/console/SignalRegistry/SignalRegistry.php b/api/vendor/symfony/console/SignalRegistry/SignalRegistry.php index ed93dd062..6bee24a42 100644 --- a/api/vendor/symfony/console/SignalRegistry/SignalRegistry.php +++ b/api/vendor/symfony/console/SignalRegistry/SignalRegistry.php @@ -43,7 +43,7 @@ public static function isSupported(): bool return false; } - if (\in_array('pcntl_signal', explode(',', ini_get('disable_functions')))) { + if (\in_array('pcntl_signal', explode(',', \ini_get('disable_functions')))) { return false; } diff --git a/api/vendor/symfony/console/SingleCommandApplication.php b/api/vendor/symfony/console/SingleCommandApplication.php index e93c1821b..774e5d8c4 100644 --- a/api/vendor/symfony/console/SingleCommandApplication.php +++ b/api/vendor/symfony/console/SingleCommandApplication.php @@ -46,7 +46,7 @@ public function setAutoExit(bool $autoExit): self return $this; } - public function run(InputInterface $input = null, OutputInterface $output = null): int + public function run(?InputInterface $input = null, ?OutputInterface $output = null): int { if ($this->running) { return parent::run($input, $output); diff --git a/api/vendor/symfony/console/Style/StyleInterface.php b/api/vendor/symfony/console/Style/StyleInterface.php index 38d23b77e..9f25a43f6 100644 --- a/api/vendor/symfony/console/Style/StyleInterface.php +++ b/api/vendor/symfony/console/Style/StyleInterface.php @@ -85,14 +85,14 @@ public function table(array $headers, array $rows); * * @return mixed */ - public function ask(string $question, string $default = null, callable $validator = null); + public function ask(string $question, ?string $default = null, ?callable $validator = null); /** * Asks a question with the user input hidden. * * @return mixed */ - public function askHidden(string $question, callable $validator = null); + public function askHidden(string $question, ?callable $validator = null); /** * Asks for confirmation. diff --git a/api/vendor/symfony/console/Style/SymfonyStyle.php b/api/vendor/symfony/console/Style/SymfonyStyle.php index bcf30d80c..00edf3882 100644 --- a/api/vendor/symfony/console/Style/SymfonyStyle.php +++ b/api/vendor/symfony/console/Style/SymfonyStyle.php @@ -61,7 +61,7 @@ public function __construct(InputInterface $input, OutputInterface $output) * * @param string|array $messages The message to write in the block */ - public function block($messages, string $type = null, string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = true) + public function block($messages, ?string $type = null, ?string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = true) { $messages = \is_array($messages) ? array_values($messages) : [$messages]; @@ -250,7 +250,7 @@ public function definitionList(...$list) /** * {@inheritdoc} */ - public function ask(string $question, string $default = null, callable $validator = null) + public function ask(string $question, ?string $default = null, ?callable $validator = null) { $question = new Question($question, $default); $question->setValidator($validator); @@ -261,7 +261,7 @@ public function ask(string $question, string $default = null, callable $validato /** * {@inheritdoc} */ - public function askHidden(string $question, callable $validator = null) + public function askHidden(string $question, ?callable $validator = null) { $question = new Question($question); @@ -338,7 +338,7 @@ public function createProgressBar(int $max = 0) /** * @see ProgressBar::iterate() */ - public function progressIterate(iterable $iterable, int $max = null): iterable + public function progressIterate(iterable $iterable, ?int $max = null): iterable { yield from $this->createProgressBar()->iterate($iterable, $max); @@ -440,18 +440,18 @@ private function autoPrependBlock(): void $chars = substr(str_replace(\PHP_EOL, "\n", $this->bufferedOutput->fetch()), -2); if (!isset($chars[0])) { - $this->newLine(); //empty history, so we should start with a new line. + $this->newLine(); // empty history, so we should start with a new line. return; } - //Prepend new line for each non LF chars (This means no blank line was output before) + // Prepend new line for each non LF chars (This means no blank line was output before) $this->newLine(2 - substr_count($chars, "\n")); } private function autoPrependText(): void { $fetched = $this->bufferedOutput->fetch(); - //Prepend new line if last char isn't EOL: + // Prepend new line if last char isn't EOL: if (!str_ends_with($fetched, "\n")) { $this->newLine(); } @@ -463,7 +463,7 @@ private function writeBuffer(string $message, bool $newLine, int $type): void $this->bufferedOutput->write($message, $newLine, $type); } - private function createBlock(iterable $messages, string $type = null, string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = false): array + private function createBlock(iterable $messages, ?string $type = null, ?string $style = null, string $prefix = ' ', bool $padding = false, bool $escape = false): array { $indentLength = 0; $prefixLength = Helper::width(Helper::removeDecoration($this->getFormatter(), $prefix)); diff --git a/api/vendor/symfony/console/Terminal.php b/api/vendor/symfony/console/Terminal.php index 08c53535b..b91e8afc5 100644 --- a/api/vendor/symfony/console/Terminal.php +++ b/api/vendor/symfony/console/Terminal.php @@ -64,20 +64,19 @@ public static function hasSttyAvailable(): bool return self::$stty; } - // skip check if exec function is disabled - if (!\function_exists('exec')) { + // skip check if shell_exec function is disabled + if (!\function_exists('shell_exec')) { return false; } - exec('stty 2>&1', $output, $exitcode); - - return self::$stty = 0 === $exitcode; + return self::$stty = (bool) shell_exec('stty 2> '.('\\' === \DIRECTORY_SEPARATOR ? 'NUL' : '/dev/null')); } private static function initDimensions() { if ('\\' === \DIRECTORY_SEPARATOR) { - if (preg_match('/^(\d+)x(\d+)(?: \((\d+)x(\d+)\))?$/', trim(getenv('ANSICON')), $matches)) { + $ansicon = getenv('ANSICON'); + if (false !== $ansicon && preg_match('/^(\d+)x(\d+)(?: \((\d+)x(\d+)\))?$/', trim($ansicon), $matches)) { // extract [w, H] from "wxh (WxH)" // or [w, h] from "wxh" self::$width = (int) $matches[1]; @@ -157,6 +156,8 @@ private static function readFromProcess(string $command): ?string 2 => ['pipe', 'w'], ]; + $cp = \function_exists('sapi_windows_cp_set') ? sapi_windows_cp_get() : 0; + $process = proc_open($command, $descriptorspec, $pipes, null, null, ['suppress_errors' => true]); if (!\is_resource($process)) { return null; @@ -167,6 +168,10 @@ private static function readFromProcess(string $command): ?string fclose($pipes[2]); proc_close($process); + if ($cp) { + sapi_windows_cp_set($cp); + } + return $info; } } diff --git a/api/vendor/symfony/console/Tester/ApplicationTester.php b/api/vendor/symfony/console/Tester/ApplicationTester.php index 19a95c8e4..3a262e81c 100644 --- a/api/vendor/symfony/console/Tester/ApplicationTester.php +++ b/api/vendor/symfony/console/Tester/ApplicationTester.php @@ -49,17 +49,37 @@ public function __construct(Application $application) */ public function run(array $input, array $options = []) { - $this->input = new ArrayInput($input); - if (isset($options['interactive'])) { - $this->input->setInteractive($options['interactive']); - } + $prevShellVerbosity = getenv('SHELL_VERBOSITY'); - if ($this->inputs) { - $this->input->setStream(self::createStream($this->inputs)); - } + try { + $this->input = new ArrayInput($input); + if (isset($options['interactive'])) { + $this->input->setInteractive($options['interactive']); + } - $this->initOutput($options); + if ($this->inputs) { + $this->input->setStream(self::createStream($this->inputs)); + } - return $this->statusCode = $this->application->run($this->input, $this->output); + $this->initOutput($options); + + return $this->statusCode = $this->application->run($this->input, $this->output); + } finally { + // SHELL_VERBOSITY is set by Application::configureIO so we need to unset/reset it + // to its previous value to avoid one test's verbosity to spread to the following tests + if (false === $prevShellVerbosity) { + if (\function_exists('putenv')) { + @putenv('SHELL_VERBOSITY'); + } + unset($_ENV['SHELL_VERBOSITY']); + unset($_SERVER['SHELL_VERBOSITY']); + } else { + if (\function_exists('putenv')) { + @putenv('SHELL_VERBOSITY='.$prevShellVerbosity); + } + $_ENV['SHELL_VERBOSITY'] = $prevShellVerbosity; + $_SERVER['SHELL_VERBOSITY'] = $prevShellVerbosity; + } + } } } diff --git a/api/vendor/symfony/console/Tester/TesterTrait.php b/api/vendor/symfony/console/Tester/TesterTrait.php index 40bc58177..f454bbf9d 100644 --- a/api/vendor/symfony/console/Tester/TesterTrait.php +++ b/api/vendor/symfony/console/Tester/TesterTrait.php @@ -35,9 +35,9 @@ trait TesterTrait /** * Gets the display returned by the last execution of the command or application. * - * @throws \RuntimeException If it's called before the execute method - * * @return string + * + * @throws \RuntimeException If it's called before the execute method */ public function getDisplay(bool $normalize = false) { @@ -103,9 +103,9 @@ public function getOutput() /** * Gets the status code returned by the last execution of the command or application. * - * @throws \RuntimeException If it's called before the execute method - * * @return int + * + * @throws \RuntimeException If it's called before the execute method */ public function getStatusCode() { diff --git a/api/vendor/symfony/console/composer.json b/api/vendor/symfony/console/composer.json index 9a565068c..4fa4964a1 100644 --- a/api/vendor/symfony/console/composer.json +++ b/api/vendor/symfony/console/composer.json @@ -2,7 +2,7 @@ "name": "symfony/console", "type": "library", "description": "Eases the creation of beautiful and testable command line interfaces", - "keywords": ["console", "cli", "command line", "terminal"], + "keywords": ["console", "cli", "command-line", "terminal"], "homepage": "https://symfony.com", "license": "MIT", "authors": [ diff --git a/api/vendor/symfony/css-selector/LICENSE b/api/vendor/symfony/css-selector/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/css-selector/LICENSE +++ b/api/vendor/symfony/css-selector/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/css-selector/Node/ElementNode.php b/api/vendor/symfony/css-selector/Node/ElementNode.php index fbf8ea0f9..a1881975b 100644 --- a/api/vendor/symfony/css-selector/Node/ElementNode.php +++ b/api/vendor/symfony/css-selector/Node/ElementNode.php @@ -26,7 +26,7 @@ class ElementNode extends AbstractNode private $namespace; private $element; - public function __construct(string $namespace = null, string $element = null) + public function __construct(?string $namespace = null, ?string $element = null) { $this->namespace = $namespace; $this->element = $element; diff --git a/api/vendor/symfony/css-selector/Node/SelectorNode.php b/api/vendor/symfony/css-selector/Node/SelectorNode.php index 6e52b2fa7..cdb0e462b 100644 --- a/api/vendor/symfony/css-selector/Node/SelectorNode.php +++ b/api/vendor/symfony/css-selector/Node/SelectorNode.php @@ -26,7 +26,7 @@ class SelectorNode extends AbstractNode private $tree; private $pseudoElement; - public function __construct(NodeInterface $tree, string $pseudoElement = null) + public function __construct(NodeInterface $tree, ?string $pseudoElement = null) { $this->tree = $tree; $this->pseudoElement = $pseudoElement ? strtolower($pseudoElement) : null; diff --git a/api/vendor/symfony/css-selector/Parser/Parser.php b/api/vendor/symfony/css-selector/Parser/Parser.php index d73489edf..b0b6427f7 100644 --- a/api/vendor/symfony/css-selector/Parser/Parser.php +++ b/api/vendor/symfony/css-selector/Parser/Parser.php @@ -29,7 +29,7 @@ class Parser implements ParserInterface { private $tokenizer; - public function __construct(Tokenizer $tokenizer = null) + public function __construct(?Tokenizer $tokenizer = null) { $this->tokenizer = $tokenizer ?? new Tokenizer(); } diff --git a/api/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php b/api/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php index 5f16ac48f..2e78a1c4d 100644 --- a/api/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php +++ b/api/vendor/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php @@ -49,22 +49,22 @@ public function __construct() $this->identifierPattern = '-?(?:'.$this->nmStartPattern.')(?:'.$this->nmCharPattern.')*'; $this->hashPattern = '#((?:'.$this->nmCharPattern.')+)'; $this->numberPattern = '[+-]?(?:[0-9]*\.[0-9]+|[0-9]+)'; - $this->quotedStringPattern = '([^\n\r\f%s]|'.$this->stringEscapePattern.')*'; + $this->quotedStringPattern = '([^\n\r\f\\\\%s]|'.$this->stringEscapePattern.')*'; } public function getNewLineEscapePattern(): string { - return '~^'.$this->newLineEscapePattern.'~'; + return '~'.$this->newLineEscapePattern.'~'; } public function getSimpleEscapePattern(): string { - return '~^'.$this->simpleEscapePattern.'~'; + return '~'.$this->simpleEscapePattern.'~'; } public function getUnicodeEscapePattern(): string { - return '~^'.$this->unicodeEscapePattern.'~i'; + return '~'.$this->unicodeEscapePattern.'~i'; } public function getIdentifierPattern(): string diff --git a/api/vendor/symfony/css-selector/XPath/Translator.php b/api/vendor/symfony/css-selector/XPath/Translator.php index 8ce473036..3d3ac7ac9 100644 --- a/api/vendor/symfony/css-selector/XPath/Translator.php +++ b/api/vendor/symfony/css-selector/XPath/Translator.php @@ -48,7 +48,7 @@ class Translator implements TranslatorInterface private $pseudoClassTranslators = []; private $attributeMatchingTranslators = []; - public function __construct(ParserInterface $parser = null) + public function __construct(?ParserInterface $parser = null) { $this->mainParser = $parser ?? new Parser(); diff --git a/api/vendor/symfony/deprecation-contracts/LICENSE b/api/vendor/symfony/deprecation-contracts/LICENSE index ad85e1737..0ed3a2465 100644 --- a/api/vendor/symfony/deprecation-contracts/LICENSE +++ b/api/vendor/symfony/deprecation-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020-2021 Fabien Potencier +Copyright (c) 2020-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/error-handler/BufferingLogger.php b/api/vendor/symfony/error-handler/BufferingLogger.php index fdfc72497..cfd55c61f 100644 --- a/api/vendor/symfony/error-handler/BufferingLogger.php +++ b/api/vendor/symfony/error-handler/BufferingLogger.php @@ -53,7 +53,7 @@ public function __destruct() foreach ($this->logs as [$level, $message, $context]) { if (false !== strpos($message, '{')) { foreach ($context as $key => $val) { - if (null === $val || is_scalar($val) || (\is_object($val) && \is_callable([$val, '__toString']))) { + if (null === $val || \is_scalar($val) || (\is_object($val) && \is_callable([$val, '__toString']))) { $message = str_replace("{{$key}}", $val, $message); } elseif ($val instanceof \DateTimeInterface) { $message = str_replace("{{$key}}", $val->format(\DateTime::RFC3339), $message); diff --git a/api/vendor/symfony/error-handler/Debug.php b/api/vendor/symfony/error-handler/Debug.php index 4a8281218..60ddb452c 100644 --- a/api/vendor/symfony/error-handler/Debug.php +++ b/api/vendor/symfony/error-handler/Debug.php @@ -24,14 +24,13 @@ public static function enable(): ErrorHandler if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) { ini_set('display_errors', 0); - } elseif (!filter_var(ini_get('log_errors'), \FILTER_VALIDATE_BOOLEAN) || ini_get('error_log')) { + } elseif (!filter_var(\ini_get('log_errors'), \FILTER_VALIDATE_BOOLEAN) || \ini_get('error_log')) { // CLI - display errors only if they're not already logged to STDERR ini_set('display_errors', 1); } @ini_set('zend.assertions', 1); ini_set('assert.active', 1); - ini_set('assert.warning', 0); ini_set('assert.exception', 1); DebugClassLoader::enable(); diff --git a/api/vendor/symfony/error-handler/DebugClassLoader.php b/api/vendor/symfony/error-handler/DebugClassLoader.php index ab6fb5f7a..5db2f30a1 100644 --- a/api/vendor/symfony/error-handler/DebugClassLoader.php +++ b/api/vendor/symfony/error-handler/DebugClassLoader.php @@ -21,6 +21,7 @@ use Prophecy\Prophecy\ProphecySubjectInterface; use ProxyManager\Proxy\ProxyInterface; use Symfony\Component\ErrorHandler\Internal\TentativeTypes; +use Symfony\Component\HttpClient\HttplugClient; /** * Autoloader checking if the class is really defined in the file found. @@ -56,7 +57,7 @@ class DebugClassLoader 'null' => 'null', 'resource' => 'resource', 'boolean' => 'bool', - 'true' => 'bool', + 'true' => 'true', 'false' => 'false', 'integer' => 'int', 'array' => 'array', @@ -73,6 +74,8 @@ class DebugClassLoader 'static' => 'static', '$this' => 'static', 'list' => 'array', + 'class-string' => 'string', + 'never' => 'never', ]; private const BUILTIN_RETURN_TYPES = [ @@ -90,6 +93,9 @@ class DebugClassLoader 'parent' => true, 'mixed' => true, 'static' => true, + 'null' => true, + 'true' => true, + 'never' => true, ]; private const MAGIC_METHODS = [ @@ -295,7 +301,7 @@ public function loadClass(string $class): void $this->checkClass($class, $file); } - private function checkClass(string $class, string $file = null): void + private function checkClass(string $class, ?string $file = null): void { $exists = null === $file || class_exists($class, false) || interface_exists($class, false) || trait_exists($class, false); @@ -368,9 +374,12 @@ public function checkAnnotations(\ReflectionClass $refl, string $class): array $parent = get_parent_class($class) ?: null; self::$returnTypes[$class] = []; + $classIsTemplate = false; // Detect annotations on the class if ($doc = $this->parsePhpDoc($refl)) { + $classIsTemplate = isset($doc['template']); + foreach (['final', 'deprecated', 'internal'] as $annotation) { if (null !== $description = $doc[$annotation][0] ?? null) { self::${$annotation}[$class] = '' !== $description ? ' '.$description.(preg_match('/[.!]$/', $description) ? '' : '.') : '.'; @@ -406,7 +415,9 @@ public function checkAnnotations(\ReflectionClass $refl, string $class): array if (!isset(self::$checkedClasses[$use])) { $this->checkClass($use); } - if (isset(self::$deprecated[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen) && !isset(self::$deprecated[$class])) { + if (isset(self::$deprecated[$use]) && strncmp($vendor, str_replace('_', '\\', $use), $vendorLen) && !isset(self::$deprecated[$class]) + && !(HttplugClient::class === $class && \in_array($use, [\Http\Client\HttpClient::class, \Http\Message\RequestFactory::class, \Http\Message\StreamFactory::class, \Http\Message\UriFactory::class], true)) + ) { $type = class_exists($class, false) ? 'class' : (interface_exists($class, false) ? 'interface' : 'trait'); $verb = class_exists($use, false) || interface_exists($class, false) ? 'extends' : (interface_exists($use, false) ? 'implements' : 'uses'); @@ -514,6 +525,10 @@ public function checkAnnotations(\ReflectionClass $refl, string $class): array // To read method annotations $doc = $this->parsePhpDoc($method); + if (($classIsTemplate || isset($doc['template'])) && $method->hasReturnType()) { + unset($doc['return']); + } + if (isset(self::$annotatedParameters[$class][$method->name])) { $definedParameters = []; foreach ($method->getParameters() as $parameter) { @@ -748,12 +763,18 @@ private function getOwnInterfaces(string $class, ?string $parent): array return $ownInterfaces; } - private function setReturnType(string $types, string $class, string $method, string $filename, ?string $parent, \ReflectionType $returnType = null): void + private function setReturnType(string $types, string $class, string $method, string $filename, ?string $parent, ?\ReflectionType $returnType = null): void { if ('__construct' === $method) { return; } + if ('null' === $types) { + self::$returnTypes[$class][$method] = ['null', 'null', $class, $filename]; + + return; + } + if ($nullable = 0 === strpos($types, 'null|')) { $types = substr($types, 5); } elseif ($nullable = '|null' === substr($types, -5)) { @@ -1072,7 +1093,20 @@ private function fixReturnStatements(\ReflectionMethod $method, string $returnTy } $end = $method->isGenerator() ? $i : $method->getEndLine(); + $inClosure = false; + $braces = 0; for (; $i < $end; ++$i) { + if (!$inClosure) { + $inClosure = false !== strpos($code[$i], 'function ('); + } + + if ($inClosure) { + $braces += substr_count($code[$i], '{') - substr_count($code[$i], '}'); + $inClosure = $braces > 0; + + continue; + } + if ('void' === $returnType) { $fixedCode[$i] = str_replace(' return null;', ' return;', $code[$i]); } elseif ('mixed' === $returnType || '?' === $returnType[0]) { diff --git a/api/vendor/symfony/error-handler/Error/FatalError.php b/api/vendor/symfony/error-handler/Error/FatalError.php index 57fc690e2..210daba86 100644 --- a/api/vendor/symfony/error-handler/Error/FatalError.php +++ b/api/vendor/symfony/error-handler/Error/FatalError.php @@ -20,7 +20,7 @@ class FatalError extends \Error * * @param array $error An array as returned by error_get_last() */ - public function __construct(string $message, int $code, array $error, int $traceOffset = null, bool $traceArgs = true, array $trace = null) + public function __construct(string $message, int $code, array $error, ?int $traceOffset = null, bool $traceArgs = true, ?array $trace = null) { parent::__construct($message, $code); @@ -33,7 +33,7 @@ public function __construct(string $message, int $code, array $error, int $trace } } } elseif (null !== $traceOffset) { - if (\function_exists('xdebug_get_function_stack') && $trace = @xdebug_get_function_stack()) { + if (\function_exists('xdebug_get_function_stack') && \in_array(\ini_get('xdebug.mode'), ['develop', false], true) && $trace = @xdebug_get_function_stack()) { if (0 < $traceOffset) { array_splice($trace, -$traceOffset); } diff --git a/api/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php b/api/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php index f85d27515..4e1ae8e86 100644 --- a/api/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php +++ b/api/vendor/symfony/error-handler/ErrorEnhancer/ClassNotFoundErrorEnhancer.php @@ -21,9 +21,6 @@ */ class ClassNotFoundErrorEnhancer implements ErrorEnhancerInterface { - /** - * {@inheritdoc} - */ public function enhance(\Throwable $error): ?\Throwable { // Some specific versions of PHP produce a fatal error when extending a not found class. @@ -110,7 +107,8 @@ private function getClassCandidates(string $class): array private function findClassInPath(string $path, string $class, string $prefix): array { - if (!$path = realpath($path.'/'.strtr($prefix, '\\_', '//')) ?: realpath($path.'/'.\dirname(strtr($prefix, '\\_', '//'))) ?: realpath($path)) { + $path = realpath($path.'/'.strtr($prefix, '\\_', '//')) ?: realpath($path.'/'.\dirname(strtr($prefix, '\\_', '//'))) ?: realpath($path); + if (!$path || !is_dir($path)) { return []; } diff --git a/api/vendor/symfony/error-handler/ErrorHandler.php b/api/vendor/symfony/error-handler/ErrorHandler.php index ffb823eed..b5109f457 100644 --- a/api/vendor/symfony/error-handler/ErrorHandler.php +++ b/api/vendor/symfony/error-handler/ErrorHandler.php @@ -108,7 +108,7 @@ class ErrorHandler /** * Registers the error handler. */ - public static function register(self $handler = null, bool $replace = true): self + public static function register(?self $handler = null, bool $replace = true): self { if (null === self::$reservedMemory) { self::$reservedMemory = str_repeat('x', 32768); @@ -181,7 +181,7 @@ public static function call(callable $function, ...$arguments) } } - public function __construct(BufferingLogger $bootstrappingLogger = null, bool $debug = false) + public function __construct(?BufferingLogger $bootstrappingLogger = null, bool $debug = false) { if ($bootstrappingLogger) { $this->bootstrappingLogger = $bootstrappingLogger; @@ -380,8 +380,8 @@ public function screamAt(int $levels, bool $replace = false): int */ private function reRegister(int $prev): void { - if ($prev !== $this->thrownErrors | $this->loggedErrors) { - $handler = set_error_handler('var_dump'); + if ($prev !== ($this->thrownErrors | $this->loggedErrors)) { + $handler = set_error_handler('is_int'); $handler = \is_array($handler) ? $handler[0] : null; restore_error_handler(); if ($handler === $this) { @@ -457,7 +457,7 @@ public function handleError(int $type, string $message, string $file, int $line) return true; } } else { - if (false !== strpos($message, '@anonymous')) { + if (PHP_VERSION_ID < 80303 && false !== strpos($message, '@anonymous')) { $backtrace = debug_backtrace(false, 5); for ($i = 1; isset($backtrace[$i]); ++$i) { @@ -465,8 +465,7 @@ public function handleError(int $type, string $message, string $file, int $line) && ('trigger_error' === $backtrace[$i]['function'] || 'user_error' === $backtrace[$i]['function']) ) { if ($backtrace[$i]['args'][0] !== $message) { - $message = $this->parseAnonymousClass($backtrace[$i]['args'][0]); - $logMessage = $this->levels[$type].': '.$message; + $message = $backtrace[$i]['args'][0]; } break; @@ -474,6 +473,11 @@ public function handleError(int $type, string $message, string $file, int $line) } } + if (false !== strpos($message, "@anonymous\0")) { + $message = $this->parseAnonymousClass($message); + $logMessage = $this->levels[$type].': '.$message; + } + $errorAsException = new \ErrorException($logMessage, 0, $type, $file, $line); if ($throw || $this->tracedErrors & $type) { @@ -513,7 +517,12 @@ public function handleError(int $type, string $message, string $file, int $line) } // Display the original error message instead of the default one. - $this->handleException($errorAsException); + $exitCode = self::$exitCode; + try { + $this->handleException($errorAsException); + } finally { + self::$exitCode = $exitCode; + } // Stop the process by giving back the error to the native handler. return false; @@ -528,7 +537,7 @@ public function handleError(int $type, string $message, string $file, int $line) $log = 0; } else { if (\PHP_VERSION_ID < (\PHP_VERSION_ID < 70400 ? 70316 : 70404)) { - $currentErrorHandler = set_error_handler('var_dump'); + $currentErrorHandler = set_error_handler('is_int'); restore_error_handler(); } @@ -633,7 +642,7 @@ public function handleException(\Throwable $exception) * * @internal */ - public static function handleFatalError(array $error = null): void + public static function handleFatalError(?array $error = null): void { if (null === self::$reservedMemory) { return; @@ -645,7 +654,7 @@ public static function handleFatalError(array $error = null): void $sameHandlerLimit = 10; while (!\is_array($handler) || !$handler[0] instanceof self) { - $handler = set_exception_handler('var_dump'); + $handler = set_exception_handler('is_int'); restore_exception_handler(); if (!$handler) { @@ -665,6 +674,10 @@ public static function handleFatalError(array $error = null): void set_exception_handler($h); } if (!$handler) { + if (null === $error && $exitCode = self::$exitCode) { + register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); }); + } + return; } if ($handler !== $h) { @@ -700,8 +713,7 @@ public static function handleFatalError(array $error = null): void // Ignore this re-throw } - if ($exit && self::$exitCode) { - $exitCode = self::$exitCode; + if ($exit && $exitCode = self::$exitCode) { register_shutdown_function('register_shutdown_function', function () use ($exitCode) { exit($exitCode); }); } } diff --git a/api/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php b/api/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php index dbd293565..05cbeec16 100644 --- a/api/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php +++ b/api/vendor/symfony/error-handler/ErrorRenderer/HtmlErrorRenderer.php @@ -47,7 +47,7 @@ class HtmlErrorRenderer implements ErrorRendererInterface * @param string|FileLinkFormatter|null $fileLinkFormat * @param bool|callable $outputBuffer The output buffer as a string or a callable that should return it */ - public function __construct($debug = false, string $charset = null, $fileLinkFormat = null, string $projectDir = null, $outputBuffer = '', LoggerInterface $logger = null) + public function __construct($debug = false, ?string $charset = null, $fileLinkFormat = null, ?string $projectDir = null, $outputBuffer = '', ?LoggerInterface $logger = null) { if (!\is_bool($debug) && !\is_callable($debug)) { throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a boolean or a callable, "%s" given.', __METHOD__, \gettype($debug))); @@ -58,8 +58,8 @@ public function __construct($debug = false, string $charset = null, $fileLinkFor } $this->debug = $debug; - $this->charset = $charset ?: (ini_get('default_charset') ?: 'UTF-8'); - $this->fileLinkFormat = $fileLinkFormat ?: (ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')); + $this->charset = $charset ?: (\ini_get('default_charset') ?: 'UTF-8'); + $this->fileLinkFormat = $fileLinkFormat ?: (\ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')); $this->projectDir = $projectDir; $this->outputBuffer = $outputBuffer; $this->logger = $logger; @@ -173,6 +173,8 @@ private function formatArgs(array $args): string $formattedValue = ''.strtolower(var_export($item[1], true)).''; } elseif ('resource' === $item[0]) { $formattedValue = 'resource'; + } elseif (preg_match('/[^\x07-\x0D\x1B\x20-\xFF]/', $item[1])) { + $formattedValue = 'binary string'; } else { $formattedValue = str_replace("\n", '', $this->escape(var_export($item[1], true))); } @@ -233,7 +235,7 @@ private function getFileLink(string $file, int $line) * @param int $line The line number * @param string $text Use this text for the link rather than the file path */ - private function formatFile(string $file, int $line, string $text = null): string + private function formatFile(string $file, int $line, ?string $text = null): string { $file = trim($file); @@ -269,13 +271,23 @@ private function fileExcerpt(string $file, int $line, int $srcContext = 3): stri // highlight_file could throw warnings // see https://bugs.php.net/25725 $code = @highlight_file($file, true); - // remove main code/span tags - $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); - // split multiline spans - $code = preg_replace_callback('#]++)>((?:[^<]*+
)++[^<]*+)
#', function ($m) { - return "".str_replace('
', "

", $m[2]).''; - }, $code); - $content = explode('
', $code); + if (\PHP_VERSION_ID >= 80300) { + // remove main pre/code tags + $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); + // split multiline span tags + $code = preg_replace_callback('#]++)>((?:[^<\\n]*+\\n)++[^<]*+)#', function ($m) { + return "".str_replace("\n", "\n", $m[2]).''; + }, $code); + $content = explode("\n", $code); + } else { + // remove main code/span tags + $code = preg_replace('#^\s*(.*)\s*#s', '\\1', $code); + // split multiline spans + $code = preg_replace_callback('#]++)>((?:[^<]*+
)++[^<]*+)
#', function ($m) { + return "".str_replace('
', "

", $m[2]).''; + }, $code); + $content = explode('
', $code); + } $lines = []; if (0 > $srcContext) { @@ -315,7 +327,7 @@ private function formatFileFromText(string $text) { return preg_replace_callback('/in ("|")?(.+?)\1(?: +(?:on|at))? +line (\d+)/s', function ($match) { return 'in '.$this->formatFile($match[2], $match[3]); - }, $text); + }, $text) ?? $text; } private function formatLogMessage(string $message, array $context) @@ -323,7 +335,7 @@ private function formatLogMessage(string $message, array $context) if ($context && false !== strpos($message, '{')) { $replacements = []; foreach ($context as $key => $val) { - if (is_scalar($val)) { + if (\is_scalar($val)) { $replacements['{'.$key.'}'] = $val; } } diff --git a/api/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php b/api/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php index cec8e4d41..e6c4c898e 100644 --- a/api/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php +++ b/api/vendor/symfony/error-handler/ErrorRenderer/SerializerErrorRenderer.php @@ -34,7 +34,7 @@ class SerializerErrorRenderer implements ErrorRendererInterface * formats not supported by Request::getMimeTypes() should be given as mime types * @param bool|callable $debug The debugging mode as a boolean or a callable that should return it */ - public function __construct(SerializerInterface $serializer, $format, ErrorRendererInterface $fallbackErrorRenderer = null, $debug = false) + public function __construct(SerializerInterface $serializer, $format, ?ErrorRendererInterface $fallbackErrorRenderer = null, $debug = false) { if (!\is_string($format) && !\is_callable($format)) { throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be a string or a callable, "%s" given.', __METHOD__, \gettype($format))); @@ -55,7 +55,7 @@ public function __construct(SerializerInterface $serializer, $format, ErrorRende */ public function render(\Throwable $exception): FlattenException { - $headers = []; + $headers = ['Vary' => 'Accept']; $debug = \is_bool($this->debug) ? $this->debug : ($this->debug)($exception); if ($debug) { $headers['X-Debug-Exception'] = rawurlencode($exception->getMessage()); @@ -66,19 +66,17 @@ public function render(\Throwable $exception): FlattenException try { $format = \is_string($this->format) ? $this->format : ($this->format)($flattenException); - $headers = [ - 'Content-Type' => Request::getMimeTypes($format)[0] ?? $format, - 'Vary' => 'Accept', - ]; + $headers['Content-Type'] = Request::getMimeTypes($format)[0] ?? $format; - return $flattenException->setAsString($this->serializer->serialize($flattenException, $format, [ + $flattenException->setAsString($this->serializer->serialize($flattenException, $format, [ 'exception' => $exception, 'debug' => $debug, - ])) - ->setHeaders($flattenException->getHeaders() + $headers); + ])); } catch (NotEncodableValueException $e) { - return $this->fallbackErrorRenderer->render($exception); + $flattenException = $this->fallbackErrorRenderer->render($exception); } + + return $flattenException->setHeaders($flattenException->getHeaders() + $headers); } public static function getPreferredFormat(RequestStack $requestStack): \Closure diff --git a/api/vendor/symfony/error-handler/Exception/FlattenException.php b/api/vendor/symfony/error-handler/Exception/FlattenException.php index 262dae62b..f73842ad8 100644 --- a/api/vendor/symfony/error-handler/Exception/FlattenException.php +++ b/api/vendor/symfony/error-handler/Exception/FlattenException.php @@ -63,7 +63,7 @@ class FlattenException /** * @return static */ - public static function create(\Exception $exception, int $statusCode = null, array $headers = []): self + public static function create(\Exception $exception, ?int $statusCode = null, array $headers = []): self { return static::createFromThrowable($exception, $statusCode, $headers); } @@ -71,7 +71,7 @@ public static function create(\Exception $exception, int $statusCode = null, arr /** * @return static */ - public static function createFromThrowable(\Throwable $exception, int $statusCode = null, array $headers = []): self + public static function createFromThrowable(\Throwable $exception, ?int $statusCode = null, array $headers = []): self { $e = new static(); $e->setMessage($exception->getMessage()); diff --git a/api/vendor/symfony/error-handler/Internal/TentativeTypes.php b/api/vendor/symfony/error-handler/Internal/TentativeTypes.php index 5707a8355..1e8afe39b 100644 --- a/api/vendor/symfony/error-handler/Internal/TentativeTypes.php +++ b/api/vendor/symfony/error-handler/Internal/TentativeTypes.php @@ -37,7 +37,7 @@ class TentativeTypes 'DateTime' => [ '__wakeup' => 'void', '__set_state' => 'DateTime', - 'createFromImmutable' => 'DateTime', + 'createFromImmutable' => 'static', 'createFromFormat' => 'DateTime|false', 'getLastErrors' => 'array|false', 'format' => 'string', @@ -72,7 +72,7 @@ class TentativeTypes 'setDate' => 'DateTimeImmutable', 'setISODate' => 'DateTimeImmutable', 'setTimestamp' => 'DateTimeImmutable', - 'createFromMutable' => 'DateTimeImmutable', + 'createFromMutable' => 'static', ], 'DateTimeZone' => [ 'getName' => 'string', @@ -753,6 +753,7 @@ class TentativeTypes 'isVariadic' => 'bool', 'isStatic' => 'bool', 'getClosureThis' => '?object', + 'getClosureCalledClass' => '?ReflectionClass', 'getClosureScopeClass' => '?ReflectionClass', 'getDocComment' => 'string|false', 'getEndLine' => 'int|false', @@ -1102,6 +1103,8 @@ class TentativeTypes 'isDot' => 'bool', 'rewind' => 'void', 'valid' => 'bool', + 'key' => 'mixed', + 'current' => 'mixed', 'next' => 'void', 'seek' => 'void', ], @@ -1148,8 +1151,8 @@ class TentativeTypes 'getFlags' => 'int', 'setMaxLineLen' => 'void', 'getMaxLineLen' => 'int', - 'hasChildren' => 'bool', - 'getChildren' => '?RecursiveIterator', + 'hasChildren' => 'false', + 'getChildren' => 'null', 'seek' => 'void', 'getCurrentLine' => 'string', ], @@ -1238,7 +1241,7 @@ class TentativeTypes 'current' => 'never', 'next' => 'void', 'key' => 'never', - 'valid' => 'bool', + 'valid' => 'false', 'rewind' => 'void', ], 'CallbackFilterIterator' => [ diff --git a/api/vendor/symfony/error-handler/LICENSE b/api/vendor/symfony/error-handler/LICENSE index 383e7a545..f37c76b59 100644 --- a/api/vendor/symfony/error-handler/LICENSE +++ b/api/vendor/symfony/error-handler/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2019-2021 Fabien Potencier +Copyright (c) 2019-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/error-handler/Resources/assets/css/exception.css b/api/vendor/symfony/error-handler/Resources/assets/css/exception.css index a6e23cb6f..2d05a5e6a 100644 --- a/api/vendor/symfony/error-handler/Resources/assets/css/exception.css +++ b/api/vendor/symfony/error-handler/Resources/assets/css/exception.css @@ -225,7 +225,7 @@ header .container { display: flex; justify-content: space-between; } .trace-line + .trace-line { border-top: var(--border); } .trace-line:hover { background: var(--base-1); } .trace-line a { color: var(--base-6); } -.trace-line .icon { opacity: .4; position: absolute; left: 10px; top: 11px; } +.trace-line .icon { opacity: .4; position: absolute; left: 10px; } .trace-line .icon svg { fill: var(--base-5); height: 16px; width: 16px; } .trace-line .icon.icon-copy { left: auto; top: auto; padding-left: 5px; display: none } .trace-line:hover .icon.icon-copy:not(.hidden) { display: inline-block } @@ -242,7 +242,7 @@ header .container { display: flex; justify-content: space-between; } .trace-code li { color: #969896; margin: 0; padding-left: 10px; float: left; width: 100%; } .trace-code li + li { margin-top: 5px; } .trace-code li.selected { background: var(--trace-selected-background); margin-top: 2px; } -.trace-code li code { color: var(--base-6); white-space: nowrap; } +.trace-code li code { color: var(--base-6); white-space: pre; } .trace-as-text .stacktrace { line-height: 1.8; margin: 0 0 15px; white-space: pre-wrap; } diff --git a/api/vendor/symfony/error-handler/Resources/assets/js/exception.js b/api/vendor/symfony/error-handler/Resources/assets/js/exception.js index a85409da3..95b8ea171 100644 --- a/api/vendor/symfony/error-handler/Resources/assets/js/exception.js +++ b/api/vendor/symfony/error-handler/Resources/assets/js/exception.js @@ -1,297 +1,285 @@ /* This file is based on WebProfilerBundle/Resources/views/Profiler/base_js.html.twig. If you make any change in this file, verify the same change is needed in the other file. */ /* .tab'); + var tabNavigation = document.createElement('ul'); + tabNavigation.className = 'tab-navigation'; + + var selectedTabId = 'tab-' + i + '-0'; /* select the first tab by default */ + for (var j = 0; j < tabs.length; j++) { + var tabId = 'tab-' + i + '-' + j; + var tabTitle = tabs[j].querySelector('.tab-title').innerHTML; + + var tabNavigationItem = document.createElement('li'); + tabNavigationItem.setAttribute('data-tab-id', tabId); + if (hasClass(tabs[j], 'active')) { selectedTabId = tabId; } + if (hasClass(tabs[j], 'disabled')) { addClass(tabNavigationItem, 'disabled'); } + tabNavigationItem.innerHTML = tabTitle; + tabNavigation.appendChild(tabNavigationItem); + + var tabContent = tabs[j].querySelector('.tab-content'); + tabContent.parentElement.setAttribute('id', tabId); + } - if (navigator.clipboard) { - document.querySelectorAll('[data-clipboard-text]').forEach(function(element) { - removeClass(element, 'hidden'); - element.addEventListener('click', function() { - navigator.clipboard.writeText(element.getAttribute('data-clipboard-text')); - }) - }); + tabGroups[i].insertBefore(tabNavigation, tabGroups[i].firstChild); + addClass(document.querySelector('[data-tab-id="' + selectedTabId + '"]'), 'active'); } - return { - addEventListener: addEventListener, + /* display the active tab and add the 'click' event listeners */ + for (i = 0; i < tabGroups.length; i++) { + tabNavigation = tabGroups[i].querySelectorAll(':scope >.tab-navigation li'); - createTabs: function() { - var tabGroups = document.querySelectorAll('.sf-tabs:not([data-processed=true])'); + for (j = 0; j < tabNavigation.length; j++) { + tabId = tabNavigation[j].getAttribute('data-tab-id'); + document.getElementById(tabId).querySelector('.tab-title').className = 'hidden'; - /* create the tab navigation for each group of tabs */ - for (var i = 0; i < tabGroups.length; i++) { - var tabs = tabGroups[i].querySelectorAll(':scope > .tab'); - var tabNavigation = document.createElement('ul'); - tabNavigation.className = 'tab-navigation'; - - var selectedTabId = 'tab-' + i + '-0'; /* select the first tab by default */ - for (var j = 0; j < tabs.length; j++) { - var tabId = 'tab-' + i + '-' + j; - var tabTitle = tabs[j].querySelector('.tab-title').innerHTML; + if (hasClass(tabNavigation[j], 'active')) { + document.getElementById(tabId).className = 'block'; + } else { + document.getElementById(tabId).className = 'hidden'; + } - var tabNavigationItem = document.createElement('li'); - tabNavigationItem.setAttribute('data-tab-id', tabId); - if (hasClass(tabs[j], 'active')) { selectedTabId = tabId; } - if (hasClass(tabs[j], 'disabled')) { addClass(tabNavigationItem, 'disabled'); } - tabNavigationItem.innerHTML = tabTitle; - tabNavigation.appendChild(tabNavigationItem); + tabNavigation[j].addEventListener('click', function(e) { + var activeTab = e.target || e.srcElement; - var tabContent = tabs[j].querySelector('.tab-content'); - tabContent.parentElement.setAttribute('id', tabId); + /* needed because when the tab contains HTML contents, user can click */ + /* on any of those elements instead of their parent '
  • ' element */ + while (activeTab.tagName.toLowerCase() !== 'li') { + activeTab = activeTab.parentNode; } - tabGroups[i].insertBefore(tabNavigation, tabGroups[i].firstChild); - addClass(document.querySelector('[data-tab-id="' + selectedTabId + '"]'), 'active'); - } + /* get the full list of tabs through the parent of the active tab element */ + var tabNavigation = activeTab.parentNode.children; + for (var k = 0; k < tabNavigation.length; k++) { + var tabId = tabNavigation[k].getAttribute('data-tab-id'); + document.getElementById(tabId).className = 'hidden'; + removeClass(tabNavigation[k], 'active'); + } - /* display the active tab and add the 'click' event listeners */ - for (i = 0; i < tabGroups.length; i++) { - tabNavigation = tabGroups[i].querySelectorAll(':scope >.tab-navigation li'); + addClass(activeTab, 'active'); + var activeTabId = activeTab.getAttribute('data-tab-id'); + document.getElementById(activeTabId).className = 'block'; + }); + } - for (j = 0; j < tabNavigation.length; j++) { - tabId = tabNavigation[j].getAttribute('data-tab-id'); - document.getElementById(tabId).querySelector('.tab-title').className = 'hidden'; + tabGroups[i].setAttribute('data-processed', 'true'); + } + })(); - if (hasClass(tabNavigation[j], 'active')) { - document.getElementById(tabId).className = 'block'; - } else { - document.getElementById(tabId).className = 'hidden'; - } + (function createToggles() { + var toggles = document.querySelectorAll('.sf-toggle:not([data-processed=true])'); - tabNavigation[j].addEventListener('click', function(e) { - var activeTab = e.target || e.srcElement; + for (var i = 0; i < toggles.length; i++) { + var elementSelector = toggles[i].getAttribute('data-toggle-selector'); + var element = document.querySelector(elementSelector); - /* needed because when the tab contains HTML contents, user can click */ - /* on any of those elements instead of their parent '
  • ' element */ - while (activeTab.tagName.toLowerCase() !== 'li') { - activeTab = activeTab.parentNode; - } + addClass(element, 'sf-toggle-content'); - /* get the full list of tabs through the parent of the active tab element */ - var tabNavigation = activeTab.parentNode.children; - for (var k = 0; k < tabNavigation.length; k++) { - var tabId = tabNavigation[k].getAttribute('data-tab-id'); - document.getElementById(tabId).className = 'hidden'; - removeClass(tabNavigation[k], 'active'); - } + if (toggles[i].hasAttribute('data-toggle-initial') && toggles[i].getAttribute('data-toggle-initial') == 'display') { + addClass(toggles[i], 'sf-toggle-on'); + addClass(element, 'sf-toggle-visible'); + } else { + addClass(toggles[i], 'sf-toggle-off'); + addClass(element, 'sf-toggle-hidden'); + } - addClass(activeTab, 'active'); - var activeTabId = activeTab.getAttribute('data-tab-id'); - document.getElementById(activeTabId).className = 'block'; - }); - } + addEventListener(toggles[i], 'click', function(e) { + e.preventDefault(); - tabGroups[i].setAttribute('data-processed', 'true'); + if ('' !== window.getSelection().toString()) { + /* Don't do anything on text selection */ + return; } - }, - - createToggles: function() { - var toggles = document.querySelectorAll('.sf-toggle:not([data-processed=true])'); - - for (var i = 0; i < toggles.length; i++) { - var elementSelector = toggles[i].getAttribute('data-toggle-selector'); - var element = document.querySelector(elementSelector); - - addClass(element, 'sf-toggle-content'); - - if (toggles[i].hasAttribute('data-toggle-initial') && toggles[i].getAttribute('data-toggle-initial') == 'display') { - addClass(toggles[i], 'sf-toggle-on'); - addClass(element, 'sf-toggle-visible'); - } else { - addClass(toggles[i], 'sf-toggle-off'); - addClass(element, 'sf-toggle-hidden'); - } - - addEventListener(toggles[i], 'click', function(e) { - e.preventDefault(); - if ('' !== window.getSelection().toString()) { - /* Don't do anything on text selection */ - return; - } + var toggle = e.target || e.srcElement; - var toggle = e.target || e.srcElement; + /* needed because when the toggle contains HTML contents, user can click */ + /* on any of those elements instead of their parent '.sf-toggle' element */ + while (!hasClass(toggle, 'sf-toggle')) { + toggle = toggle.parentNode; + } - /* needed because when the toggle contains HTML contents, user can click */ - /* on any of those elements instead of their parent '.sf-toggle' element */ - while (!hasClass(toggle, 'sf-toggle')) { - toggle = toggle.parentNode; - } + var element = document.querySelector(toggle.getAttribute('data-toggle-selector')); - var element = document.querySelector(toggle.getAttribute('data-toggle-selector')); + toggleClass(toggle, 'sf-toggle-on'); + toggleClass(toggle, 'sf-toggle-off'); + toggleClass(element, 'sf-toggle-hidden'); + toggleClass(element, 'sf-toggle-visible'); - toggleClass(toggle, 'sf-toggle-on'); - toggleClass(toggle, 'sf-toggle-off'); - toggleClass(element, 'sf-toggle-hidden'); - toggleClass(element, 'sf-toggle-visible'); + /* the toggle doesn't change its contents when clicking on it */ + if (!toggle.hasAttribute('data-toggle-alt-content')) { + return; + } - /* the toggle doesn't change its contents when clicking on it */ - if (!toggle.hasAttribute('data-toggle-alt-content')) { - return; - } + if (!toggle.hasAttribute('data-toggle-original-content')) { + toggle.setAttribute('data-toggle-original-content', toggle.innerHTML); + } - if (!toggle.hasAttribute('data-toggle-original-content')) { - toggle.setAttribute('data-toggle-original-content', toggle.innerHTML); - } + var currentContent = toggle.innerHTML; + var originalContent = toggle.getAttribute('data-toggle-original-content'); + var altContent = toggle.getAttribute('data-toggle-alt-content'); + toggle.innerHTML = currentContent !== altContent ? altContent : originalContent; + }); - var currentContent = toggle.innerHTML; - var originalContent = toggle.getAttribute('data-toggle-original-content'); - var altContent = toggle.getAttribute('data-toggle-alt-content'); - toggle.innerHTML = currentContent !== altContent ? altContent : originalContent; - }); + /* Prevents from disallowing clicks on links inside toggles */ + var toggleLinks = toggles[i].querySelectorAll('a'); + for (var j = 0; j < toggleLinks.length; j++) { + addEventListener(toggleLinks[j], 'click', function(e) { + e.stopPropagation(); + }); + } - /* Prevents from disallowing clicks on links inside toggles */ - var toggleLinks = toggles[i].querySelectorAll('a'); - for (var j = 0; j < toggleLinks.length; j++) { - addEventListener(toggleLinks[j], 'click', function(e) { - e.stopPropagation(); - }); - } + /* Prevents from disallowing clicks on "copy to clipboard" elements inside toggles */ + var copyToClipboardElements = toggles[i].querySelectorAll('span[data-clipboard-text]'); + for (var k = 0; k < copyToClipboardElements.length; k++) { + addEventListener(copyToClipboardElements[k], 'click', function(e) { + e.stopPropagation(); + }); + } - /* Prevents from disallowing clicks on "copy to clipboard" elements inside toggles */ - var copyToClipboardElements = toggles[i].querySelectorAll('span[data-clipboard-text]'); - for (var k = 0; k < copyToClipboardElements.length; k++) { - addEventListener(copyToClipboardElements[k], 'click', function(e) { - e.stopPropagation(); - }); - } + toggles[i].setAttribute('data-processed', 'true'); + } + })(); - toggles[i].setAttribute('data-processed', 'true'); + (function createFilters() { + document.querySelectorAll('[data-filters] [data-filter]').forEach(function (filter) { + var filters = filter.closest('[data-filters]'), + type = 'choice', + name = filter.dataset.filter, + ucName = name.charAt(0).toUpperCase()+name.slice(1), + list = document.createElement('ul'), + values = filters.dataset['filter'+ucName] || filters.querySelectorAll('[data-filter-'+name+']'), + labels = {}, + defaults = null, + indexed = {}, + processed = {}; + if (typeof values === 'string') { + type = 'level'; + labels = values.split(','); + values = values.toLowerCase().split(','); + defaults = values.length - 1; + } + addClass(list, 'filter-list'); + addClass(list, 'filter-list-'+type); + values.forEach(function (value, i) { + if (value instanceof HTMLElement) { + value = value.dataset['filter'+ucName]; } - }, - - createFilters: function() { - document.querySelectorAll('[data-filters] [data-filter]').forEach(function (filter) { - var filters = filter.closest('[data-filters]'), - type = 'choice', - name = filter.dataset.filter, - ucName = name.charAt(0).toUpperCase()+name.slice(1), - list = document.createElement('ul'), - values = filters.dataset['filter'+ucName] || filters.querySelectorAll('[data-filter-'+name+']'), - labels = {}, - defaults = null, - indexed = {}, - processed = {}; - if (typeof values === 'string') { - type = 'level'; - labels = values.split(','); - values = values.toLowerCase().split(','); - defaults = values.length - 1; - } - addClass(list, 'filter-list'); - addClass(list, 'filter-list-'+type); - values.forEach(function (value, i) { - if (value instanceof HTMLElement) { - value = value.dataset['filter'+ucName]; - } - if (value in processed) { + if (value in processed) { + return; + } + var option = document.createElement('li'), + label = i in labels ? labels[i] : value, + active = false, + matches; + if ('' === label) { + option.innerHTML = '(none)'; + } else { + option.innerText = label; + } + option.dataset.filter = value; + option.setAttribute('title', 1 === (matches = filters.querySelectorAll('[data-filter-'+name+'="'+value+'"]').length) ? 'Matches 1 row' : 'Matches '+matches+' rows'); + indexed[value] = i; + list.appendChild(option); + addEventListener(option, 'click', function () { + if ('choice' === type) { + filters.querySelectorAll('[data-filter-'+name+']').forEach(function (row) { + if (option.dataset.filter === row.dataset['filter'+ucName]) { + toggleClass(row, 'filter-hidden-'+name); + } + }); + toggleClass(option, 'active'); + } else if ('level' === type) { + if (i === this.parentNode.querySelectorAll('.active').length - 1) { return; } - var option = document.createElement('li'), - label = i in labels ? labels[i] : value, - active = false, - matches; - if ('' === label) { - option.innerHTML = '(none)'; - } else { - option.innerText = label; - } - option.dataset.filter = value; - option.setAttribute('title', 1 === (matches = filters.querySelectorAll('[data-filter-'+name+'="'+value+'"]').length) ? 'Matches 1 row' : 'Matches '+matches+' rows'); - indexed[value] = i; - list.appendChild(option); - addEventListener(option, 'click', function () { - if ('choice' === type) { - filters.querySelectorAll('[data-filter-'+name+']').forEach(function (row) { - if (option.dataset.filter === row.dataset['filter'+ucName]) { - toggleClass(row, 'filter-hidden-'+name); - } - }); - toggleClass(option, 'active'); - } else if ('level' === type) { - if (i === this.parentNode.querySelectorAll('.active').length - 1) { - return; + this.parentNode.querySelectorAll('li').forEach(function (currentOption, j) { + if (j <= i) { + addClass(currentOption, 'active'); + if (i === j) { + addClass(currentOption, 'last-active'); + } else { + removeClass(currentOption, 'last-active'); } - this.parentNode.querySelectorAll('li').forEach(function (currentOption, j) { - if (j <= i) { - addClass(currentOption, 'active'); - if (i === j) { - addClass(currentOption, 'last-active'); - } else { - removeClass(currentOption, 'last-active'); - } - } else { - removeClass(currentOption, 'active'); - removeClass(currentOption, 'last-active'); - } - }); - filters.querySelectorAll('[data-filter-'+name+']').forEach(function (row) { - if (i < indexed[row.dataset['filter'+ucName]]) { - addClass(row, 'filter-hidden-'+name); - } else { - removeClass(row, 'filter-hidden-'+name); - } - }); + } else { + removeClass(currentOption, 'active'); + removeClass(currentOption, 'last-active'); } }); - if ('choice' === type) { - active = null === defaults || 0 <= defaults.indexOf(value); - } else if ('level' === type) { - active = i <= defaults; - if (active && i === defaults) { - addClass(option, 'last-active'); + filters.querySelectorAll('[data-filter-'+name+']').forEach(function (row) { + if (i < indexed[row.dataset['filter'+ucName]]) { + addClass(row, 'filter-hidden-'+name); + } else { + removeClass(row, 'filter-hidden-'+name); } - } - if (active) { - addClass(option, 'active'); - } else { - filters.querySelectorAll('[data-filter-'+name+'="'+value+'"]').forEach(function (row) { - toggleClass(row, 'filter-hidden-'+name); - }); - } - processed[value] = true; - }); - - if (1 < list.childNodes.length) { - filter.appendChild(list); - filter.dataset.filtered = ''; + }); } }); + if ('choice' === type) { + active = null === defaults || 0 <= defaults.indexOf(value); + } else if ('level' === type) { + active = i <= defaults; + if (active && i === defaults) { + addClass(option, 'last-active'); + } + } + if (active) { + addClass(option, 'active'); + } else { + filters.querySelectorAll('[data-filter-'+name+'="'+value+'"]').forEach(function (row) { + toggleClass(row, 'filter-hidden-'+name); + }); + } + processed[value] = true; + }); + + if (1 < list.childNodes.length) { + filter.appendChild(list); + filter.dataset.filtered = ''; } - }; + }); })(); - - Sfjs.addEventListener(document, 'DOMContentLoaded', function() { - Sfjs.createTabs(); - Sfjs.createToggles(); - Sfjs.createFilters(); - }); -} +})(); /*]]>*/ diff --git a/api/vendor/symfony/error-handler/Resources/bin/extract-tentative-return-types.php b/api/vendor/symfony/error-handler/Resources/bin/extract-tentative-return-types.php index cc98f58b5..ae2c703e1 100644 --- a/api/vendor/symfony/error-handler/Resources/bin/extract-tentative-return-types.php +++ b/api/vendor/symfony/error-handler/Resources/bin/extract-tentative-return-types.php @@ -10,6 +10,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + // Run from the root of the php-src repository, this script generates // a table with all the methods that have a tentative return type. // diff --git a/api/vendor/symfony/error-handler/Resources/bin/patch-type-declarations b/api/vendor/symfony/error-handler/Resources/bin/patch-type-declarations index efcfcb25d..824ef6799 100644 --- a/api/vendor/symfony/error-handler/Resources/bin/patch-type-declarations +++ b/api/vendor/symfony/error-handler/Resources/bin/patch-type-declarations @@ -10,6 +10,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + if (\in_array('-h', $argv) || \in_array('--help', $argv)) { echo implode(PHP_EOL, [ ' Patches type declarations based on "@return" PHPDoc and triggers deprecations for', diff --git a/api/vendor/symfony/error-handler/Resources/views/error.html.php b/api/vendor/symfony/error-handler/Resources/views/error.html.php index 5416d03c8..dcd30c295 100644 --- a/api/vendor/symfony/error-handler/Resources/views/error.html.php +++ b/api/vendor/symfony/error-handler/Resources/views/error.html.php @@ -1,5 +1,5 @@ - + diff --git a/api/vendor/symfony/error-handler/Resources/views/traces.html.php b/api/vendor/symfony/error-handler/Resources/views/traces.html.php index f64d91713..4eef59a6c 100644 --- a/api/vendor/symfony/error-handler/Resources/views/traces.html.php +++ b/api/vendor/symfony/error-handler/Resources/views/traces.html.php @@ -12,7 +12,7 @@ $class = substr($exception['class'], $separator); ?> -
    +

    diff --git a/api/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php b/api/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php index 351dc5131..81f4e89fd 100644 --- a/api/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php +++ b/api/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php @@ -27,5 +27,5 @@ interface EventDispatcherInterface extends PsrEventDispatcherInterface * * @return object The passed $event MUST be returned */ - public function dispatch(object $event, string $eventName = null): object; + public function dispatch(object $event, ?string $eventName = null): object; } diff --git a/api/vendor/symfony/event-dispatcher-contracts/LICENSE b/api/vendor/symfony/event-dispatcher-contracts/LICENSE index 235841453..7536caeae 100644 --- a/api/vendor/symfony/event-dispatcher-contracts/LICENSE +++ b/api/vendor/symfony/event-dispatcher-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2021 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php b/api/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php index e1d2007fd..84d6a08a1 100644 --- a/api/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php +++ b/api/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php @@ -42,7 +42,7 @@ class TraceableEventDispatcher implements EventDispatcherInterface, ResetInterfa private $requestStack; private $currentRequestHash = ''; - public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $stopwatch, LoggerInterface $logger = null, RequestStack $requestStack = null) + public function __construct(EventDispatcherInterface $dispatcher, Stopwatch $stopwatch, ?LoggerInterface $logger = null, ?RequestStack $requestStack = null) { $this->dispatcher = $dispatcher; $this->stopwatch = $stopwatch; @@ -75,7 +75,7 @@ public function removeListener(string $eventName, $listener) { if (isset($this->wrappedListeners[$eventName])) { foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) { - if ($wrappedListener->getWrappedListener() === $listener) { + if ($wrappedListener->getWrappedListener() === $listener || ($listener instanceof \Closure && $wrappedListener->getWrappedListener() == $listener)) { $listener = $wrappedListener; unset($this->wrappedListeners[$eventName][$index]); break; @@ -97,7 +97,7 @@ public function removeSubscriber(EventSubscriberInterface $subscriber) /** * {@inheritdoc} */ - public function getListeners(string $eventName = null) + public function getListeners(?string $eventName = null) { return $this->dispatcher->getListeners($eventName); } @@ -110,8 +110,8 @@ public function getListenerPriority(string $eventName, $listener) // we might have wrapped listeners for the event (if called while dispatching) // in that case get the priority by wrapper if (isset($this->wrappedListeners[$eventName])) { - foreach ($this->wrappedListeners[$eventName] as $index => $wrappedListener) { - if ($wrappedListener->getWrappedListener() === $listener) { + foreach ($this->wrappedListeners[$eventName] as $wrappedListener) { + if ($wrappedListener->getWrappedListener() === $listener || ($listener instanceof \Closure && $wrappedListener->getWrappedListener() == $listener)) { return $this->dispatcher->getListenerPriority($eventName, $wrappedListener); } } @@ -123,7 +123,7 @@ public function getListenerPriority(string $eventName, $listener) /** * {@inheritdoc} */ - public function hasListeners(string $eventName = null) + public function hasListeners(?string $eventName = null) { return $this->dispatcher->hasListeners($eventName); } @@ -131,7 +131,7 @@ public function hasListeners(string $eventName = null) /** * {@inheritdoc} */ - public function dispatch(object $event, string $eventName = null): object + public function dispatch(object $event, ?string $eventName = null): object { $eventName = $eventName ?? \get_class($event); @@ -171,7 +171,7 @@ public function dispatch(object $event, string $eventName = null): object /** * @return array */ - public function getCalledListeners(Request $request = null) + public function getCalledListeners(?Request $request = null) { if (null === $this->callStack) { return []; @@ -192,7 +192,7 @@ public function getCalledListeners(Request $request = null) /** * @return array */ - public function getNotCalledListeners(Request $request = null) + public function getNotCalledListeners(?Request $request = null) { try { $allListeners = $this->getListeners(); @@ -235,7 +235,7 @@ public function getNotCalledListeners(Request $request = null) return $notCalled; } - public function getOrphanedEvents(Request $request = null): array + public function getOrphanedEvents(?Request $request = null): array { if ($request) { return $this->orphanedEvents[spl_object_hash($request)] ?? []; diff --git a/api/vendor/symfony/event-dispatcher/Debug/WrappedListener.php b/api/vendor/symfony/event-dispatcher/Debug/WrappedListener.php index 3916716ec..792c17561 100644 --- a/api/vendor/symfony/event-dispatcher/Debug/WrappedListener.php +++ b/api/vendor/symfony/event-dispatcher/Debug/WrappedListener.php @@ -33,7 +33,7 @@ final class WrappedListener private $priority; private static $hasClassStub; - public function __construct($listener, ?string $name, Stopwatch $stopwatch, EventDispatcherInterface $dispatcher = null) + public function __construct($listener, ?string $name, Stopwatch $stopwatch, ?EventDispatcherInterface $dispatcher = null) { $this->listener = $listener; $this->optimizedListener = $listener instanceof \Closure ? $listener : (\is_callable($listener) ? \Closure::fromCallable($listener) : null); @@ -47,9 +47,9 @@ public function __construct($listener, ?string $name, Stopwatch $stopwatch, Even $this->pretty = $this->name.'::'.$listener[1]; } elseif ($listener instanceof \Closure) { $r = new \ReflectionFunction($listener); - if (str_contains($r->name, '{closure}')) { + if (str_contains($r->name, '{closure')) { $this->pretty = $this->name = 'closure'; - } elseif ($class = $r->getClosureScopeClass()) { + } elseif ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $this->name = $class->name; $this->pretty = $this->name.'::'.$r->name; } else { @@ -114,10 +114,12 @@ public function __invoke(object $event, string $eventName, EventDispatcherInterf $e = $this->stopwatch->start($this->name, 'event_listener'); - ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher); - - if ($e->isStarted()) { - $e->stop(); + try { + ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher); + } finally { + if ($e->isStarted()) { + $e->stop(); + } } if ($event instanceof StoppableEventInterface && $event->isPropagationStopped()) { diff --git a/api/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php b/api/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php index 8eabe7d74..5f44ff090 100644 --- a/api/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php +++ b/api/vendor/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php @@ -115,14 +115,18 @@ public function process(ContainerBuilder $container) ], function ($matches) { return strtoupper($matches[0]); }, $event['event']); $event['method'] = preg_replace('/[^a-z0-9]/i', '', $event['method']); - if (null !== ($class = $container->getDefinition($id)->getClass()) && ($r = $container->getReflectionClass($class, false)) && !$r->hasMethod($event['method']) && $r->hasMethod('__invoke')) { + if (null !== ($class = $container->getDefinition($id)->getClass()) && ($r = $container->getReflectionClass($class, false)) && !$r->hasMethod($event['method'])) { + if (!$r->hasMethod('__invoke')) { + throw new InvalidArgumentException(sprintf('None of the "%s" or "__invoke" methods exist for the service "%s". Please define the "method" attribute on "%s" tags.', $event['method'], $id, $this->listenerTag)); + } + $event['method'] = '__invoke'; } } $dispatcherDefinition = $globalDispatcherDefinition; if (isset($event['dispatcher'])) { - $dispatcherDefinition = $container->getDefinition($event['dispatcher']); + $dispatcherDefinition = $container->findDefinition($event['dispatcher']); } $dispatcherDefinition->addMethodCall('addListener', [$event['event'], [new ServiceClosureArgument(new Reference($id)), $event['method']], $priority]); @@ -161,7 +165,7 @@ public function process(ContainerBuilder $container) continue; } - $dispatcherDefinitions[$attributes['dispatcher']] = $container->getDefinition($attributes['dispatcher']); + $dispatcherDefinitions[$attributes['dispatcher']] = $container->findDefinition($attributes['dispatcher']); } if (!$dispatcherDefinitions) { diff --git a/api/vendor/symfony/event-dispatcher/EventDispatcher.php b/api/vendor/symfony/event-dispatcher/EventDispatcher.php index c479a7544..9c86bd95c 100644 --- a/api/vendor/symfony/event-dispatcher/EventDispatcher.php +++ b/api/vendor/symfony/event-dispatcher/EventDispatcher.php @@ -45,7 +45,7 @@ public function __construct() /** * {@inheritdoc} */ - public function dispatch(object $event, string $eventName = null): object + public function dispatch(object $event, ?string $eventName = null): object { $eventName = $eventName ?? \get_class($event); @@ -65,7 +65,7 @@ public function dispatch(object $event, string $eventName = null): object /** * {@inheritdoc} */ - public function getListeners(string $eventName = null) + public function getListeners(?string $eventName = null) { if (null !== $eventName) { if (empty($this->listeners[$eventName])) { @@ -108,7 +108,7 @@ public function getListenerPriority(string $eventName, $listener) $v[0] = $v[0](); $v[1] = $v[1] ?? '__invoke'; } - if ($v === $listener) { + if ($v === $listener || ($listener instanceof \Closure && $v == $listener)) { return $priority; } } @@ -120,7 +120,7 @@ public function getListenerPriority(string $eventName, $listener) /** * {@inheritdoc} */ - public function hasListeners(string $eventName = null) + public function hasListeners(?string $eventName = null) { if (null !== $eventName) { return !empty($this->listeners[$eventName]); @@ -164,7 +164,7 @@ public function removeListener(string $eventName, $listener) $v[0] = $v[0](); $v[1] = $v[1] ?? '__invoke'; } - if ($v === $listener) { + if ($v === $listener || ($listener instanceof \Closure && $v == $listener)) { unset($listeners[$k], $this->sorted[$eventName], $this->optimized[$eventName]); } } diff --git a/api/vendor/symfony/event-dispatcher/EventDispatcherInterface.php b/api/vendor/symfony/event-dispatcher/EventDispatcherInterface.php index cc324e1c6..4b65e5a66 100644 --- a/api/vendor/symfony/event-dispatcher/EventDispatcherInterface.php +++ b/api/vendor/symfony/event-dispatcher/EventDispatcherInterface.php @@ -50,7 +50,7 @@ public function removeSubscriber(EventSubscriberInterface $subscriber); * * @return array */ - public function getListeners(string $eventName = null); + public function getListeners(?string $eventName = null); /** * Gets the listener priority for a specific event. @@ -66,5 +66,5 @@ public function getListenerPriority(string $eventName, callable $listener); * * @return bool */ - public function hasListeners(string $eventName = null); + public function hasListeners(?string $eventName = null); } diff --git a/api/vendor/symfony/event-dispatcher/GenericEvent.php b/api/vendor/symfony/event-dispatcher/GenericEvent.php index b32a301ae..4ecd29e3b 100644 --- a/api/vendor/symfony/event-dispatcher/GenericEvent.php +++ b/api/vendor/symfony/event-dispatcher/GenericEvent.php @@ -29,7 +29,7 @@ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate protected $arguments; /** - * Encapsulate an event with $subject and $args. + * Encapsulate an event with $subject and $arguments. * * @param mixed $subject The subject of the event, usually an object or a callable * @param array $arguments Arguments to store in the event diff --git a/api/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php b/api/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php index 568d79c3a..4e00bfa45 100644 --- a/api/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php +++ b/api/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php @@ -28,7 +28,7 @@ public function __construct(EventDispatcherInterface $dispatcher) /** * {@inheritdoc} */ - public function dispatch(object $event, string $eventName = null): object + public function dispatch(object $event, ?string $eventName = null): object { return $this->dispatcher->dispatch($event, $eventName); } @@ -68,7 +68,7 @@ public function removeSubscriber(EventSubscriberInterface $subscriber) /** * {@inheritdoc} */ - public function getListeners(string $eventName = null) + public function getListeners(?string $eventName = null) { return $this->dispatcher->getListeners($eventName); } @@ -84,7 +84,7 @@ public function getListenerPriority(string $eventName, $listener) /** * {@inheritdoc} */ - public function hasListeners(string $eventName = null) + public function hasListeners(?string $eventName = null) { return $this->dispatcher->hasListeners($eventName); } diff --git a/api/vendor/symfony/event-dispatcher/LICENSE b/api/vendor/symfony/event-dispatcher/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/event-dispatcher/LICENSE +++ b/api/vendor/symfony/event-dispatcher/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/filesystem/CHANGELOG.md b/api/vendor/symfony/filesystem/CHANGELOG.md index 4a0755bfe..fcb7170ca 100644 --- a/api/vendor/symfony/filesystem/CHANGELOG.md +++ b/api/vendor/symfony/filesystem/CHANGELOG.md @@ -1,6 +1,12 @@ CHANGELOG ========= +5.4 +--- + + * Add `Path` class + * Add `$lock` argument to `Filesystem::appendToFile()` + 5.0.0 ----- diff --git a/api/vendor/symfony/filesystem/Exception/FileNotFoundException.php b/api/vendor/symfony/filesystem/Exception/FileNotFoundException.php index 48b640809..06b732b16 100644 --- a/api/vendor/symfony/filesystem/Exception/FileNotFoundException.php +++ b/api/vendor/symfony/filesystem/Exception/FileNotFoundException.php @@ -19,7 +19,7 @@ */ class FileNotFoundException extends IOException { - public function __construct(string $message = null, int $code = 0, \Throwable $previous = null, string $path = null) + public function __construct(?string $message = null, int $code = 0, ?\Throwable $previous = null, ?string $path = null) { if (null === $message) { if (null === $path) { diff --git a/api/vendor/symfony/filesystem/Exception/IOException.php b/api/vendor/symfony/filesystem/Exception/IOException.php index fea26e4dd..44254a819 100644 --- a/api/vendor/symfony/filesystem/Exception/IOException.php +++ b/api/vendor/symfony/filesystem/Exception/IOException.php @@ -22,7 +22,7 @@ class IOException extends \RuntimeException implements IOExceptionInterface { private $path; - public function __construct(string $message, int $code = 0, \Throwable $previous = null, string $path = null) + public function __construct(string $message, int $code = 0, ?\Throwable $previous = null, ?string $path = null) { $this->path = $path; diff --git a/api/vendor/symfony/filesystem/Exception/IOExceptionInterface.php b/api/vendor/symfony/filesystem/Exception/IOExceptionInterface.php index f9d4644a8..42829ab6c 100644 --- a/api/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +++ b/api/vendor/symfony/filesystem/Exception/IOExceptionInterface.php @@ -21,7 +21,7 @@ interface IOExceptionInterface extends ExceptionInterface /** * Returns the associated path for the exception. * - * @return string|null The path + * @return string|null */ public function getPath(); } diff --git a/api/vendor/symfony/filesystem/Exception/RuntimeException.php b/api/vendor/symfony/filesystem/Exception/RuntimeException.php new file mode 100644 index 000000000..a7512dca7 --- /dev/null +++ b/api/vendor/symfony/filesystem/Exception/RuntimeException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem\Exception; + +/** + * @author Théo Fidry + */ +class RuntimeException extends \RuntimeException implements ExceptionInterface +{ +} diff --git a/api/vendor/symfony/filesystem/Filesystem.php b/api/vendor/symfony/filesystem/Filesystem.php index 4e70c3222..958ef178d 100644 --- a/api/vendor/symfony/filesystem/Filesystem.php +++ b/api/vendor/symfony/filesystem/Filesystem.php @@ -72,6 +72,9 @@ public function copy(string $originFile, string $targetFile, bool $overwriteNewe // Like `cp`, preserve executable permission bits self::box('chmod', $targetFile, fileperms($targetFile) | (fileperms($originFile) & 0111)); + // Like `cp`, preserve the file modification time + self::box('touch', $targetFile, filemtime($originFile)); + if ($bytesCopied !== $bytesOrigin = filesize($originFile)) { throw new IOException(sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile); } @@ -104,7 +107,7 @@ public function mkdir($dirs, int $mode = 0777) * * @param string|iterable $files A filename, an array of files, or a \Traversable instance to check * - * @return bool true if the file exists, false otherwise + * @return bool */ public function exists($files) { @@ -132,7 +135,7 @@ public function exists($files) * * @throws IOException When touch fails */ - public function touch($files, int $time = null, int $atime = null) + public function touch($files, ?int $time = null, ?int $atime = null) { foreach ($this->toIterable($files) as $file) { if (!($time ? self::box('touch', $file, $time, $atime) : self::box('touch', $file))) { @@ -170,7 +173,7 @@ private static function doRemove(array $files, bool $isRecursive): void } } elseif (is_dir($file)) { if (!$isRecursive) { - $tmpName = \dirname(realpath($file)).'/.'.strrev(strtr(base64_encode(random_bytes(2)), '/=', '-.')); + $tmpName = \dirname(realpath($file)).'/.!'.strrev(strtr(base64_encode(random_bytes(2)), '/=', '-!')); if (file_exists($tmpName)) { try { @@ -199,7 +202,7 @@ private static function doRemove(array $files, bool $isRecursive): void throw new IOException(sprintf('Failed to remove directory "%s": ', $file).$lastError); } - } elseif (!self::box('unlink', $file) && (str_contains(self::$lastError, 'Permission denied') || file_exists($file))) { + } elseif (!self::box('unlink', $file) && ((self::$lastError && str_contains(self::$lastError, 'Permission denied')) || file_exists($file))) { throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError); } } @@ -329,6 +332,8 @@ private function isReadable(string $filename): bool */ public function symlink(string $originDir, string $targetDir, bool $copyOnWindows = false) { + self::assertFunctionExists('symlink'); + if ('\\' === \DIRECTORY_SEPARATOR) { $originDir = strtr($originDir, '/', '\\'); $targetDir = strtr($targetDir, '/', '\\'); @@ -364,6 +369,8 @@ public function symlink(string $originDir, string $targetDir, bool $copyOnWindow */ public function hardlink(string $originFile, $targetFiles) { + self::assertFunctionExists('link'); + if (!$this->exists($originFile)) { throw new FileNotFoundException(null, 0, null, $originFile); } @@ -440,7 +447,7 @@ public function readlink(string $path, bool $canonicalize = false) /** * Given an existing path, convert it to a path relative to a given starting path. * - * @return string Path of target relative to starting path + * @return string */ public function makePathRelative(string $endPath, string $startPath) { @@ -530,7 +537,7 @@ public function makePathRelative(string $endPath, string $startPath) * * @throws IOException When file type is unknown */ - public function mirror(string $originDir, string $targetDir, \Traversable $iterator = null, array $options = []) + public function mirror(string $originDir, string $targetDir, ?\Traversable $iterator = null, array $options = []) { $targetDir = rtrim($targetDir, '/\\'); $originDir = rtrim($originDir, '/\\'); @@ -611,7 +618,7 @@ public function isAbsolutePath(string $file) * * @return string The new temporary filename (with path), or throw an exception on failure */ - public function tempnam(string $dir, string $prefix/*, string $suffix = ''*/) + public function tempnam(string $dir, string $prefix/* , string $suffix = '' */) { $suffix = \func_num_args() > 2 ? func_get_arg(2) : ''; [$scheme, $hierarchy] = $this->getSchemeAndHierarchy($dir); @@ -665,6 +672,12 @@ public function dumpFile(string $filename, $content) $dir = \dirname($filename); + if (is_link($filename) && $linkTarget = $this->readlink($filename)) { + $this->dumpFile(Path::makeAbsolute($linkTarget, $dir), $content); + + return; + } + if (!is_dir($dir)) { $this->mkdir($dir); } @@ -678,7 +691,7 @@ public function dumpFile(string $filename, $content) throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); } - self::box('chmod', $tmpFile, file_exists($filename) ? fileperms($filename) : 0666 & ~umask()); + self::box('chmod', $tmpFile, self::box('fileperms', $filename) ?: 0666 & ~umask()); $this->rename($tmpFile, $filename, true); } finally { @@ -692,10 +705,11 @@ public function dumpFile(string $filename, $content) * Appends content to an existing file. * * @param string|resource $content The content to append + * @param bool $lock Whether the file should be locked when writing to it * * @throws IOException If the file is not writable */ - public function appendToFile(string $filename, $content) + public function appendToFile(string $filename, $content/* , bool $lock = false */) { if (\is_array($content)) { throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be string or resource, array given.', __METHOD__)); @@ -707,7 +721,9 @@ public function appendToFile(string $filename, $content) $this->mkdir($dir); } - if (false === self::box('file_put_contents', $filename, $content, \FILE_APPEND)) { + $lock = \func_num_args() > 2 && func_get_arg(2); + + if (false === self::box('file_put_contents', $filename, $content, \FILE_APPEND | ($lock ? \LOCK_EX : 0))) { throw new IOException(sprintf('Failed to write file "%s": ', $filename).self::$lastError, 0, null, $filename); } } @@ -727,25 +743,29 @@ private function getSchemeAndHierarchy(string $filename): array return 2 === \count($components) ? [$components[0], $components[1]] : [null, $components[0]]; } + private static function assertFunctionExists(string $func): void + { + if (!\function_exists($func)) { + throw new IOException(sprintf('Unable to perform filesystem operation because the "%s()" function has been disabled.', $func)); + } + } + /** * @param mixed ...$args * * @return mixed */ - private static function box(callable $func, ...$args) + private static function box(string $func, ...$args) { + self::assertFunctionExists($func); + self::$lastError = null; set_error_handler(__CLASS__.'::handleError'); try { - $result = $func(...$args); + return $func(...$args); + } finally { restore_error_handler(); - - return $result; - } catch (\Throwable $e) { } - restore_error_handler(); - - throw $e; } /** diff --git a/api/vendor/symfony/filesystem/LICENSE b/api/vendor/symfony/filesystem/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/filesystem/LICENSE +++ b/api/vendor/symfony/filesystem/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/filesystem/Path.php b/api/vendor/symfony/filesystem/Path.php new file mode 100644 index 000000000..eb6d8ea08 --- /dev/null +++ b/api/vendor/symfony/filesystem/Path.php @@ -0,0 +1,819 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Filesystem; + +use Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use Symfony\Component\Filesystem\Exception\RuntimeException; + +/** + * Contains utility methods for handling path strings. + * + * The methods in this class are able to deal with both UNIX and Windows paths + * with both forward and backward slashes. All methods return normalized parts + * containing only forward slashes and no excess "." and ".." segments. + * + * @author Bernhard Schussek + * @author Thomas Schulz + * @author Théo Fidry + */ +final class Path +{ + /** + * The number of buffer entries that triggers a cleanup operation. + */ + private const CLEANUP_THRESHOLD = 1250; + + /** + * The buffer size after the cleanup operation. + */ + private const CLEANUP_SIZE = 1000; + + /** + * Buffers input/output of {@link canonicalize()}. + * + * @var array + */ + private static $buffer = []; + + /** + * @var int + */ + private static $bufferSize = 0; + + /** + * Canonicalizes the given path. + * + * During normalization, all slashes are replaced by forward slashes ("/"). + * Furthermore, all "." and ".." segments are removed as far as possible. + * ".." segments at the beginning of relative paths are not removed. + * + * ```php + * echo Path::canonicalize("\symfony\puli\..\css\style.css"); + * // => /symfony/css/style.css + * + * echo Path::canonicalize("../css/./style.css"); + * // => ../css/style.css + * ``` + * + * This method is able to deal with both UNIX and Windows paths. + */ + public static function canonicalize(string $path): string + { + if ('' === $path) { + return ''; + } + + // This method is called by many other methods in this class. Buffer + // the canonicalized paths to make up for the severe performance + // decrease. + if (isset(self::$buffer[$path])) { + return self::$buffer[$path]; + } + + // Replace "~" with user's home directory. + if ('~' === $path[0]) { + $path = self::getHomeDirectory().substr($path, 1); + } + + $path = self::normalize($path); + + [$root, $pathWithoutRoot] = self::split($path); + + $canonicalParts = self::findCanonicalParts($root, $pathWithoutRoot); + + // Add the root directory again + self::$buffer[$path] = $canonicalPath = $root.implode('/', $canonicalParts); + ++self::$bufferSize; + + // Clean up regularly to prevent memory leaks + if (self::$bufferSize > self::CLEANUP_THRESHOLD) { + self::$buffer = \array_slice(self::$buffer, -self::CLEANUP_SIZE, null, true); + self::$bufferSize = self::CLEANUP_SIZE; + } + + return $canonicalPath; + } + + /** + * Normalizes the given path. + * + * During normalization, all slashes are replaced by forward slashes ("/"). + * Contrary to {@link canonicalize()}, this method does not remove invalid + * or dot path segments. Consequently, it is much more efficient and should + * be used whenever the given path is known to be a valid, absolute system + * path. + * + * This method is able to deal with both UNIX and Windows paths. + */ + public static function normalize(string $path): string + { + return str_replace('\\', '/', $path); + } + + /** + * Returns the directory part of the path. + * + * This method is similar to PHP's dirname(), but handles various cases + * where dirname() returns a weird result: + * + * - dirname() does not accept backslashes on UNIX + * - dirname("C:/symfony") returns "C:", not "C:/" + * - dirname("C:/") returns ".", not "C:/" + * - dirname("C:") returns ".", not "C:/" + * - dirname("symfony") returns ".", not "" + * - dirname() does not canonicalize the result + * + * This method fixes these shortcomings and behaves like dirname() + * otherwise. + * + * The result is a canonical path. + * + * @return string The canonical directory part. Returns the root directory + * if the root directory is passed. Returns an empty string + * if a relative path is passed that contains no slashes. + * Returns an empty string if an empty string is passed. + */ + public static function getDirectory(string $path): string + { + if ('' === $path) { + return ''; + } + + $path = self::canonicalize($path); + + // Maintain scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $scheme = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + if (false === $dirSeparatorPosition = strrpos($path, '/')) { + return ''; + } + + // Directory equals root directory "/" + if (0 === $dirSeparatorPosition) { + return $scheme.'/'; + } + + // Directory equals Windows root "C:/" + if (2 === $dirSeparatorPosition && ctype_alpha($path[0]) && ':' === $path[1]) { + return $scheme.substr($path, 0, 3); + } + + return $scheme.substr($path, 0, $dirSeparatorPosition); + } + + /** + * Returns canonical path of the user's home directory. + * + * Supported operating systems: + * + * - UNIX + * - Windows8 and upper + * + * If your operating system or environment isn't supported, an exception is thrown. + * + * The result is a canonical path. + * + * @throws RuntimeException If your operating system or environment isn't supported + */ + public static function getHomeDirectory(): string + { + // For UNIX support + if (getenv('HOME')) { + return self::canonicalize(getenv('HOME')); + } + + // For >= Windows8 support + if (getenv('HOMEDRIVE') && getenv('HOMEPATH')) { + return self::canonicalize(getenv('HOMEDRIVE').getenv('HOMEPATH')); + } + + throw new RuntimeException("Cannot find the home directory path: Your environment or operating system isn't supported."); + } + + /** + * Returns the root directory of a path. + * + * The result is a canonical path. + * + * @return string The canonical root directory. Returns an empty string if + * the given path is relative or empty. + */ + public static function getRoot(string $path): string + { + if ('' === $path) { + return ''; + } + + // Maintain scheme + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $scheme = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + $firstCharacter = $path[0]; + + // UNIX root "/" or "\" (Windows style) + if ('/' === $firstCharacter || '\\' === $firstCharacter) { + return $scheme.'/'; + } + + $length = \strlen($path); + + // Windows root + if ($length > 1 && ':' === $path[1] && ctype_alpha($firstCharacter)) { + // Special case: "C:" + if (2 === $length) { + return $scheme.$path.'/'; + } + + // Normal case: "C:/ or "C:\" + if ('/' === $path[2] || '\\' === $path[2]) { + return $scheme.$firstCharacter.$path[1].'/'; + } + } + + return ''; + } + + /** + * Returns the file name without the extension from a file path. + * + * @param string|null $extension if specified, only that extension is cut + * off (may contain leading dot) + */ + public static function getFilenameWithoutExtension(string $path, ?string $extension = null): string + { + if ('' === $path) { + return ''; + } + + if (null !== $extension) { + // remove extension and trailing dot + return rtrim(basename($path, $extension), '.'); + } + + return pathinfo($path, \PATHINFO_FILENAME); + } + + /** + * Returns the extension from a file path (without leading dot). + * + * @param bool $forceLowerCase forces the extension to be lower-case + */ + public static function getExtension(string $path, bool $forceLowerCase = false): string + { + if ('' === $path) { + return ''; + } + + $extension = pathinfo($path, \PATHINFO_EXTENSION); + + if ($forceLowerCase) { + $extension = self::toLower($extension); + } + + return $extension; + } + + /** + * Returns whether the path has an (or the specified) extension. + * + * @param string $path the path string + * @param string|string[]|null $extensions if null or not provided, checks if + * an extension exists, otherwise + * checks for the specified extension + * or array of extensions (with or + * without leading dot) + * @param bool $ignoreCase whether to ignore case-sensitivity + */ + public static function hasExtension(string $path, $extensions = null, bool $ignoreCase = false): bool + { + if ('' === $path) { + return false; + } + + $actualExtension = self::getExtension($path, $ignoreCase); + + // Only check if path has any extension + if ([] === $extensions || null === $extensions) { + return '' !== $actualExtension; + } + + if (\is_string($extensions)) { + $extensions = [$extensions]; + } + + foreach ($extensions as $key => $extension) { + if ($ignoreCase) { + $extension = self::toLower($extension); + } + + // remove leading '.' in extensions array + $extensions[$key] = ltrim($extension, '.'); + } + + return \in_array($actualExtension, $extensions, true); + } + + /** + * Changes the extension of a path string. + * + * @param string $path The path string with filename.ext to change. + * @param string $extension new extension (with or without leading dot) + * + * @return string the path string with new file extension + */ + public static function changeExtension(string $path, string $extension): string + { + if ('' === $path) { + return ''; + } + + $actualExtension = self::getExtension($path); + $extension = ltrim($extension, '.'); + + // No extension for paths + if ('/' === substr($path, -1)) { + return $path; + } + + // No actual extension in path + if (empty($actualExtension)) { + return $path.('.' === substr($path, -1) ? '' : '.').$extension; + } + + return substr($path, 0, -\strlen($actualExtension)).$extension; + } + + public static function isAbsolute(string $path): bool + { + if ('' === $path) { + return false; + } + + // Strip scheme + if (false !== ($schemeSeparatorPosition = strpos($path, '://')) && 1 !== $schemeSeparatorPosition) { + $path = substr($path, $schemeSeparatorPosition + 3); + } + + $firstCharacter = $path[0]; + + // UNIX root "/" or "\" (Windows style) + if ('/' === $firstCharacter || '\\' === $firstCharacter) { + return true; + } + + // Windows root + if (\strlen($path) > 1 && ctype_alpha($firstCharacter) && ':' === $path[1]) { + // Special case: "C:" + if (2 === \strlen($path)) { + return true; + } + + // Normal case: "C:/ or "C:\" + if ('/' === $path[2] || '\\' === $path[2]) { + return true; + } + } + + return false; + } + + public static function isRelative(string $path): bool + { + return !self::isAbsolute($path); + } + + /** + * Turns a relative path into an absolute path in canonical form. + * + * Usually, the relative path is appended to the given base path. Dot + * segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * echo Path::makeAbsolute("../style.css", "/symfony/puli/css"); + * // => /symfony/puli/style.css + * ``` + * + * If an absolute path is passed, that path is returned unless its root + * directory is different than the one of the base path. In that case, an + * exception is thrown. + * + * ```php + * Path::makeAbsolute("/style.css", "/symfony/puli/css"); + * // => /style.css + * + * Path::makeAbsolute("C:/style.css", "C:/symfony/puli/css"); + * // => C:/style.css + * + * Path::makeAbsolute("C:/style.css", "/symfony/puli/css"); + * // InvalidArgumentException + * ``` + * + * If the base path is not an absolute path, an exception is thrown. + * + * The result is a canonical path. + * + * @param string $basePath an absolute base path + * + * @throws InvalidArgumentException if the base path is not absolute or if + * the given path is an absolute path with + * a different root than the base path + */ + public static function makeAbsolute(string $path, string $basePath): string + { + if ('' === $basePath) { + throw new InvalidArgumentException(sprintf('The base path must be a non-empty string. Got: "%s".', $basePath)); + } + + if (!self::isAbsolute($basePath)) { + throw new InvalidArgumentException(sprintf('The base path "%s" is not an absolute path.', $basePath)); + } + + if (self::isAbsolute($path)) { + return self::canonicalize($path); + } + + if (false !== $schemeSeparatorPosition = strpos($basePath, '://')) { + $scheme = substr($basePath, 0, $schemeSeparatorPosition + 3); + $basePath = substr($basePath, $schemeSeparatorPosition + 3); + } else { + $scheme = ''; + } + + return $scheme.self::canonicalize(rtrim($basePath, '/\\').'/'.$path); + } + + /** + * Turns a path into a relative path. + * + * The relative path is created relative to the given base path: + * + * ```php + * echo Path::makeRelative("/symfony/style.css", "/symfony/puli"); + * // => ../style.css + * ``` + * + * If a relative path is passed and the base path is absolute, the relative + * path is returned unchanged: + * + * ```php + * Path::makeRelative("style.css", "/symfony/puli/css"); + * // => style.css + * ``` + * + * If both paths are relative, the relative path is created with the + * assumption that both paths are relative to the same directory: + * + * ```php + * Path::makeRelative("style.css", "symfony/puli/css"); + * // => ../../../style.css + * ``` + * + * If both paths are absolute, their root directory must be the same, + * otherwise an exception is thrown: + * + * ```php + * Path::makeRelative("C:/symfony/style.css", "/symfony/puli"); + * // InvalidArgumentException + * ``` + * + * If the passed path is absolute, but the base path is not, an exception + * is thrown as well: + * + * ```php + * Path::makeRelative("/symfony/style.css", "symfony/puli"); + * // InvalidArgumentException + * ``` + * + * If the base path is not an absolute path, an exception is thrown. + * + * The result is a canonical path. + * + * @throws InvalidArgumentException if the base path is not absolute or if + * the given path has a different root + * than the base path + */ + public static function makeRelative(string $path, string $basePath): string + { + $path = self::canonicalize($path); + $basePath = self::canonicalize($basePath); + + [$root, $relativePath] = self::split($path); + [$baseRoot, $relativeBasePath] = self::split($basePath); + + // If the base path is given as absolute path and the path is already + // relative, consider it to be relative to the given absolute path + // already + if ('' === $root && '' !== $baseRoot) { + // If base path is already in its root + if ('' === $relativeBasePath) { + $relativePath = ltrim($relativePath, './\\'); + } + + return $relativePath; + } + + // If the passed path is absolute, but the base path is not, we + // cannot generate a relative path + if ('' !== $root && '' === $baseRoot) { + throw new InvalidArgumentException(sprintf('The absolute path "%s" cannot be made relative to the relative path "%s". You should provide an absolute base path instead.', $path, $basePath)); + } + + // Fail if the roots of the two paths are different + if ($baseRoot && $root !== $baseRoot) { + throw new InvalidArgumentException(sprintf('The path "%s" cannot be made relative to "%s", because they have different roots ("%s" and "%s").', $path, $basePath, $root, $baseRoot)); + } + + if ('' === $relativeBasePath) { + return $relativePath; + } + + // Build a "../../" prefix with as many "../" parts as necessary + $parts = explode('/', $relativePath); + $baseParts = explode('/', $relativeBasePath); + $dotDotPrefix = ''; + + // Once we found a non-matching part in the prefix, we need to add + // "../" parts for all remaining parts + $match = true; + + foreach ($baseParts as $index => $basePart) { + if ($match && isset($parts[$index]) && $basePart === $parts[$index]) { + unset($parts[$index]); + + continue; + } + + $match = false; + $dotDotPrefix .= '../'; + } + + return rtrim($dotDotPrefix.implode('/', $parts), '/'); + } + + /** + * Returns whether the given path is on the local filesystem. + */ + public static function isLocal(string $path): bool + { + return '' !== $path && false === strpos($path, '://'); + } + + /** + * Returns the longest common base path in canonical form of a set of paths or + * `null` if the paths are on different Windows partitions. + * + * Dot segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * '/symfony/css/style.css', + * '/symfony/css/..' + * ); + * // => /symfony + * ``` + * + * The root is returned if no common base path can be found: + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * '/symfony/css/style.css', + * '/puli/css/..' + * ); + * // => / + * ``` + * + * If the paths are located on different Windows partitions, `null` is + * returned. + * + * ```php + * $basePath = Path::getLongestCommonBasePath( + * 'C:/symfony/css/style.css', + * 'D:/symfony/css/..' + * ); + * // => null + * ``` + */ + public static function getLongestCommonBasePath(string ...$paths): ?string + { + [$bpRoot, $basePath] = self::split(self::canonicalize(reset($paths))); + + for (next($paths); null !== key($paths) && '' !== $basePath; next($paths)) { + [$root, $path] = self::split(self::canonicalize(current($paths))); + + // If we deal with different roots (e.g. C:/ vs. D:/), it's time + // to quit + if ($root !== $bpRoot) { + return null; + } + + // Make the base path shorter until it fits into path + while (true) { + if ('.' === $basePath) { + // No more base paths + $basePath = ''; + + // next path + continue 2; + } + + // Prevent false positives for common prefixes + // see isBasePath() + if (0 === strpos($path.'/', $basePath.'/')) { + // next path + continue 2; + } + + $basePath = \dirname($basePath); + } + } + + return $bpRoot.$basePath; + } + + /** + * Joins two or more path strings into a canonical path. + */ + public static function join(string ...$paths): string + { + $finalPath = null; + $wasScheme = false; + + foreach ($paths as $path) { + if ('' === $path) { + continue; + } + + if (null === $finalPath) { + // For first part we keep slashes, like '/top', 'C:\' or 'phar://' + $finalPath = $path; + $wasScheme = (false !== strpos($path, '://')); + continue; + } + + // Only add slash if previous part didn't end with '/' or '\' + if (!\in_array(substr($finalPath, -1), ['/', '\\'])) { + $finalPath .= '/'; + } + + // If first part included a scheme like 'phar://' we allow \current part to start with '/', otherwise trim + $finalPath .= $wasScheme ? $path : ltrim($path, '/'); + $wasScheme = false; + } + + if (null === $finalPath) { + return ''; + } + + return self::canonicalize($finalPath); + } + + /** + * Returns whether a path is a base path of another path. + * + * Dot segments ("." and "..") are removed/collapsed and all slashes turned + * into forward slashes. + * + * ```php + * Path::isBasePath('/symfony', '/symfony/css'); + * // => true + * + * Path::isBasePath('/symfony', '/symfony'); + * // => true + * + * Path::isBasePath('/symfony', '/symfony/..'); + * // => false + * + * Path::isBasePath('/symfony', '/puli'); + * // => false + * ``` + */ + public static function isBasePath(string $basePath, string $ofPath): bool + { + $basePath = self::canonicalize($basePath); + $ofPath = self::canonicalize($ofPath); + + // Append slashes to prevent false positives when two paths have + // a common prefix, for example /base/foo and /base/foobar. + // Don't append a slash for the root "/", because then that root + // won't be discovered as common prefix ("//" is not a prefix of + // "/foobar/"). + return 0 === strpos($ofPath.'/', rtrim($basePath, '/').'/'); + } + + /** + * @return string[] + */ + private static function findCanonicalParts(string $root, string $pathWithoutRoot): array + { + $parts = explode('/', $pathWithoutRoot); + + $canonicalParts = []; + + // Collapse "." and "..", if possible + foreach ($parts as $part) { + if ('.' === $part || '' === $part) { + continue; + } + + // Collapse ".." with the previous part, if one exists + // Don't collapse ".." if the previous part is also ".." + if ('..' === $part && \count($canonicalParts) > 0 && '..' !== $canonicalParts[\count($canonicalParts) - 1]) { + array_pop($canonicalParts); + + continue; + } + + // Only add ".." prefixes for relative paths + if ('..' !== $part || '' === $root) { + $canonicalParts[] = $part; + } + } + + return $canonicalParts; + } + + /** + * Splits a canonical path into its root directory and the remainder. + * + * If the path has no root directory, an empty root directory will be + * returned. + * + * If the root directory is a Windows style partition, the resulting root + * will always contain a trailing slash. + * + * list ($root, $path) = Path::split("C:/symfony") + * // => ["C:/", "symfony"] + * + * list ($root, $path) = Path::split("C:") + * // => ["C:/", ""] + * + * @return array{string, string} an array with the root directory and the remaining relative path + */ + private static function split(string $path): array + { + if ('' === $path) { + return ['', '']; + } + + // Remember scheme as part of the root, if any + if (false !== $schemeSeparatorPosition = strpos($path, '://')) { + $root = substr($path, 0, $schemeSeparatorPosition + 3); + $path = substr($path, $schemeSeparatorPosition + 3); + } else { + $root = ''; + } + + $length = \strlen($path); + + // Remove and remember root directory + if (0 === strpos($path, '/')) { + $root .= '/'; + $path = $length > 1 ? substr($path, 1) : ''; + } elseif ($length > 1 && ctype_alpha($path[0]) && ':' === $path[1]) { + if (2 === $length) { + // Windows special case: "C:" + $root .= $path.'/'; + $path = ''; + } elseif ('/' === $path[2]) { + // Windows normal case: "C:/".. + $root .= substr($path, 0, 3); + $path = $length > 3 ? substr($path, 3) : ''; + } + } + + return [$root, $path]; + } + + private static function toLower(string $string): string + { + if (false !== $encoding = mb_detect_encoding($string, null, true)) { + return mb_strtolower($string, $encoding); + } + + return strtolower($string); + } + + private function __construct() + { + } +} diff --git a/api/vendor/symfony/filesystem/composer.json b/api/vendor/symfony/filesystem/composer.json index a6c17a1e5..5811ef590 100644 --- a/api/vendor/symfony/filesystem/composer.json +++ b/api/vendor/symfony/filesystem/composer.json @@ -18,8 +18,12 @@ "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", "symfony/polyfill-php80": "^1.16" }, + "require-dev": { + "symfony/process": "^5.4|^6.4" + }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ diff --git a/api/vendor/symfony/finder/Comparator/Comparator.php b/api/vendor/symfony/finder/Comparator/Comparator.php index 3af551f4c..23cf94ecc 100644 --- a/api/vendor/symfony/finder/Comparator/Comparator.php +++ b/api/vendor/symfony/finder/Comparator/Comparator.php @@ -19,7 +19,7 @@ class Comparator private $target; private $operator = '=='; - public function __construct(string $target = null, string $operator = '==') + public function __construct(?string $target = null, string $operator = '==') { if (null === $target) { trigger_deprecation('symfony/finder', '5.4', 'Constructing a "%s" without setting "$target" is deprecated.', __CLASS__); diff --git a/api/vendor/symfony/finder/Comparator/NumberComparator.php b/api/vendor/symfony/finder/Comparator/NumberComparator.php index ff85d9677..dd3082077 100644 --- a/api/vendor/symfony/finder/Comparator/NumberComparator.php +++ b/api/vendor/symfony/finder/Comparator/NumberComparator.php @@ -35,7 +35,7 @@ class NumberComparator extends Comparator { /** - * @param string|int $test A comparison string or an integer + * @param string|null $test A comparison string or null * * @throws \InvalidArgumentException If the test is not understood */ diff --git a/api/vendor/symfony/finder/Finder.php b/api/vendor/symfony/finder/Finder.php index 8cc564cd6..0b569655c 100644 --- a/api/vendor/symfony/finder/Finder.php +++ b/api/vendor/symfony/finder/Finder.php @@ -164,8 +164,8 @@ public function date($dates) * * You can use patterns (delimited with / sign), globs or simple strings. * - * $finder->name('*.php') - * $finder->name('/\.php$/') // same as above + * $finder->name('/\.php$/') + * $finder->name('*.php') // same as above, without dot files * $finder->name('test.php') * $finder->name(['test.py', 'test.php']) * diff --git a/api/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/api/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php index d9e182c17..39797c82c 100644 --- a/api/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +++ b/api/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php @@ -17,6 +17,7 @@ * @author Fabien Potencier * * @extends \FilterIterator + * * @implements \RecursiveIterator */ class ExcludeDirectoryFilterIterator extends \FilterIterator implements \RecursiveIterator diff --git a/api/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/api/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index 990517243..564765d8f 100644 --- a/api/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/api/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -84,7 +84,13 @@ protected function isAccepted(string $string) */ protected function isRegex(string $str) { - if (preg_match('/^(.{3,}?)[imsxuADU]*$/', $str, $m)) { + $availableModifiers = 'imsxuADU'; + + if (\PHP_VERSION_ID >= 80200) { + $availableModifiers .= 'n'; + } + + if (preg_match('/^(.{3,}?)['.$availableModifiers.']*$/', $str, $m)) { $start = substr($m[1], 0, 1); $end = substr($m[1], -1); diff --git a/api/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/api/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index 27589cdd5..886dae588 100644 --- a/api/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/api/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -29,7 +29,7 @@ class RecursiveDirectoryIterator extends \RecursiveDirectoryIterator /** * @var bool */ - private $rewindable; + private $ignoreFirstRewind = true; // these 3 properties take part of the performance optimization to avoid redoing the same work in all iterations private $rootPath; @@ -118,7 +118,6 @@ public function getChildren() $children->ignoreUnreadableDirs = $this->ignoreUnreadableDirs; // performance optimization to avoid redoing the same work in all children - $children->rewindable = &$this->rewindable; $children->rootPath = $this->rootPath; } @@ -129,40 +128,30 @@ public function getChildren() } /** - * Do nothing for non rewindable stream. - * * @return void */ #[\ReturnTypeWillChange] - public function rewind() + public function next() { - if (false === $this->isRewindable()) { - return; - } + $this->ignoreFirstRewind = false; - parent::rewind(); + parent::next(); } /** - * Checks if the stream is rewindable. - * - * @return bool + * @return void */ - public function isRewindable() + #[\ReturnTypeWillChange] + public function rewind() { - if (null !== $this->rewindable) { - return $this->rewindable; - } - - if (false !== $stream = @opendir($this->getPath())) { - $infos = stream_get_meta_data($stream); - closedir($stream); + // some streams like FTP are not rewindable, ignore the first rewind after creation, + // as newly created DirectoryIterator does not need to be rewound + if ($this->ignoreFirstRewind) { + $this->ignoreFirstRewind = false; - if ($infos['seekable']) { - return $this->rewindable = true; - } + return; } - return $this->rewindable = false; + parent::rewind(); } } diff --git a/api/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php b/api/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php index 2a84f4a1f..e27158cbd 100644 --- a/api/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +++ b/api/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php @@ -60,8 +60,6 @@ private function isIgnored(string $fileRealPath): bool foreach ($this->parentsDirectoryDownward($fileRealPath) as $parentDirectory) { if ($this->isIgnored($parentDirectory)) { - $ignored = true; - // rules in ignored directories are ignored, no need to check further. break; } diff --git a/api/vendor/symfony/finder/LICENSE b/api/vendor/symfony/finder/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/finder/LICENSE +++ b/api/vendor/symfony/finder/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/http-foundation/BinaryFileResponse.php b/api/vendor/symfony/http-foundation/BinaryFileResponse.php index 4769cab08..1878caae1 100644 --- a/api/vendor/symfony/http-foundation/BinaryFileResponse.php +++ b/api/vendor/symfony/http-foundation/BinaryFileResponse.php @@ -34,6 +34,7 @@ class BinaryFileResponse extends Response protected $offset = 0; protected $maxlen = -1; protected $deleteFileAfterSend = false; + protected $chunkSize = 16 * 1024; /** * @param \SplFileInfo|string $file The file to stream @@ -44,7 +45,7 @@ class BinaryFileResponse extends Response * @param bool $autoEtag Whether the ETag header should be automatically set * @param bool $autoLastModified Whether the Last-Modified header should be automatically set */ - public function __construct($file, int $status = 200, array $headers = [], bool $public = true, string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) + public function __construct($file, int $status = 200, array $headers = [], bool $public = true, ?string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) { parent::__construct(null, $status, $headers); @@ -68,7 +69,7 @@ public function __construct($file, int $status = 200, array $headers = [], bool * * @deprecated since Symfony 5.2, use __construct() instead. */ - public static function create($file = null, int $status = 200, array $headers = [], bool $public = true, string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) + public static function create($file = null, int $status = 200, array $headers = [], bool $public = true, ?string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) { trigger_deprecation('symfony/http-foundation', '5.2', 'The "%s()" method is deprecated, use "new %s()" instead.', __METHOD__, static::class); @@ -84,7 +85,7 @@ public static function create($file = null, int $status = 200, array $headers = * * @throws FileException */ - public function setFile($file, string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) + public function setFile($file, ?string $contentDisposition = null, bool $autoEtag = false, bool $autoLastModified = true) { if (!$file instanceof File) { if ($file instanceof \SplFileInfo) { @@ -125,6 +126,22 @@ public function getFile() return $this->file; } + /** + * Sets the response stream chunk size. + * + * @return $this + */ + public function setChunkSize(int $chunkSize): self + { + if ($chunkSize < 1 || $chunkSize > \PHP_INT_MAX) { + throw new \LogicException('The chunk size of a BinaryFileResponse cannot be less than 1 or greater than PHP_INT_MAX.'); + } + + $this->chunkSize = $chunkSize; + + return $this; + } + /** * Automatically sets the Last-Modified header according the file modification date. * @@ -189,15 +206,19 @@ public function setContentDisposition(string $disposition, string $filename = '' */ public function prepare(Request $request) { - if (!$this->headers->has('Content-Type')) { - $this->headers->set('Content-Type', $this->file->getMimeType() ?: 'application/octet-stream'); + if ($this->isInformational() || $this->isEmpty()) { + parent::prepare($request); + + $this->maxlen = 0; + + return $this; } - if ('HTTP/1.0' !== $request->server->get('SERVER_PROTOCOL')) { - $this->setProtocolVersion('1.1'); + if (!$this->headers->has('Content-Type')) { + $this->headers->set('Content-Type', $this->file->getMimeType() ?: 'application/octet-stream'); } - $this->ensureIEOverSSLCompatibility($request); + parent::prepare($request); $this->offset = 0; $this->maxlen = -1; @@ -205,6 +226,7 @@ public function prepare(Request $request) if (false === $fileSize = $this->file->getSize()) { return $this; } + $this->headers->remove('Transfer-Encoding'); $this->headers->set('Content-Length', $fileSize); if (!$this->headers->has('Accept-Ranges')) { @@ -245,7 +267,7 @@ public function prepare(Request $request) $range = $request->headers->get('Range'); if (str_starts_with($range, 'bytes=')) { - [$start, $end] = explode('-', substr($range, 6), 2) + [0]; + [$start, $end] = explode('-', substr($range, 6), 2) + [1 => 0]; $end = ('' === $end) ? $fileSize - 1 : (int) $end; @@ -274,6 +296,10 @@ public function prepare(Request $request) } } + if ($request->isMethod('HEAD')) { + $this->maxlen = 0; + } + return $this; } @@ -295,24 +321,49 @@ private function hasValidIfRangeHeader(?string $header): bool */ public function sendContent() { - if (!$this->isSuccessful()) { - return parent::sendContent(); - } + try { + if (!$this->isSuccessful()) { + return parent::sendContent(); + } - if (0 === $this->maxlen) { - return $this; - } + if (0 === $this->maxlen) { + return $this; + } - $out = fopen('php://output', 'w'); - $file = fopen($this->file->getPathname(), 'r'); + $out = fopen('php://output', 'w'); + $file = fopen($this->file->getPathname(), 'r'); - stream_copy_to_stream($file, $out, $this->maxlen, $this->offset); + ignore_user_abort(true); - fclose($out); - fclose($file); + if (0 !== $this->offset) { + fseek($file, $this->offset); + } - if ($this->deleteFileAfterSend && is_file($this->file->getPathname())) { - unlink($this->file->getPathname()); + $length = $this->maxlen; + while ($length && !feof($file)) { + $read = $length > $this->chunkSize || 0 > $length ? $this->chunkSize : $length; + + if (false === $data = fread($file, $read)) { + break; + } + while ('' !== $data) { + $read = fwrite($out, $data); + if (false === $read || connection_aborted()) { + break 2; + } + if (0 < $length) { + $length -= $read; + } + $data = substr($data, $read); + } + } + + fclose($out); + fclose($file); + } finally { + if ($this->deleteFileAfterSend && is_file($this->file->getPathname())) { + unlink($this->file->getPathname()); + } } return $this; diff --git a/api/vendor/symfony/http-foundation/Cookie.php b/api/vendor/symfony/http-foundation/Cookie.php index b4b26c015..3ff93b9c1 100644 --- a/api/vendor/symfony/http-foundation/Cookie.php +++ b/api/vendor/symfony/http-foundation/Cookie.php @@ -71,7 +71,7 @@ public static function fromString(string $cookie, bool $decode = false) return new static($name, $value, $data['expires'], $data['path'], $data['domain'], $data['secure'], $data['httponly'], $data['raw'], $data['samesite']); } - public static function create(string $name, string $value = null, $expire = 0, ?string $path = '/', string $domain = null, bool $secure = null, bool $httpOnly = true, bool $raw = false, ?string $sameSite = self::SAMESITE_LAX): self + public static function create(string $name, ?string $value = null, $expire = 0, ?string $path = '/', ?string $domain = null, ?bool $secure = null, bool $httpOnly = true, bool $raw = false, ?string $sameSite = self::SAMESITE_LAX): self { return new self($name, $value, $expire, $path, $domain, $secure, $httpOnly, $raw, $sameSite); } @@ -80,7 +80,7 @@ public static function create(string $name, string $value = null, $expire = 0, ? * @param string $name The name of the cookie * @param string|null $value The value of the cookie * @param int|string|\DateTimeInterface $expire The time the cookie expires - * @param string $path The path on the server in which the cookie will be available on + * @param string|null $path The path on the server in which the cookie will be available on * @param string|null $domain The domain that the cookie is available to * @param bool|null $secure Whether the client should send back the cookie only over HTTPS or null to auto-enable this when the request is already using HTTPS * @param bool $httpOnly Whether the cookie will be made accessible only through the HTTP protocol @@ -89,7 +89,7 @@ public static function create(string $name, string $value = null, $expire = 0, ? * * @throws \InvalidArgumentException */ - public function __construct(string $name, string $value = null, $expire = 0, ?string $path = '/', string $domain = null, bool $secure = null, bool $httpOnly = true, bool $raw = false, ?string $sameSite = 'lax') + public function __construct(string $name, ?string $value = null, $expire = 0, ?string $path = '/', ?string $domain = null, ?bool $secure = null, bool $httpOnly = true, bool $raw = false, ?string $sameSite = 'lax') { // from PHP source code if ($raw && false !== strpbrk($name, self::RESERVED_CHARS_LIST)) { diff --git a/api/vendor/symfony/http-foundation/Exception/SessionNotFoundException.php b/api/vendor/symfony/http-foundation/Exception/SessionNotFoundException.php index 9c719aa04..80a21bf15 100644 --- a/api/vendor/symfony/http-foundation/Exception/SessionNotFoundException.php +++ b/api/vendor/symfony/http-foundation/Exception/SessionNotFoundException.php @@ -12,7 +12,7 @@ namespace Symfony\Component\HttpFoundation\Exception; /** - * Raised when a session does not exists. This happens in the following cases: + * Raised when a session does not exist. This happens in the following cases: * - the session is not enabled * - attempt to read a session outside a request context (ie. cli script). * @@ -20,7 +20,7 @@ */ class SessionNotFoundException extends \LogicException implements RequestExceptionInterface { - public function __construct(string $message = 'There is currently no session available.', int $code = 0, \Throwable $previous = null) + public function __construct(string $message = 'There is currently no session available.', int $code = 0, ?\Throwable $previous = null) { parent::__construct($message, $code, $previous); } diff --git a/api/vendor/symfony/http-foundation/File/File.php b/api/vendor/symfony/http-foundation/File/File.php index d941577d2..2deb53d6d 100644 --- a/api/vendor/symfony/http-foundation/File/File.php +++ b/api/vendor/symfony/http-foundation/File/File.php @@ -88,7 +88,7 @@ public function getMimeType() * * @throws FileException if the target file could not be created */ - public function move(string $directory, string $name = null) + public function move(string $directory, ?string $name = null) { $target = $this->getTargetFile($directory, $name); @@ -121,7 +121,7 @@ public function getContent(): string /** * @return self */ - protected function getTargetFile(string $directory, string $name = null) + protected function getTargetFile(string $directory, ?string $name = null) { if (!is_dir($directory)) { if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) { diff --git a/api/vendor/symfony/http-foundation/File/UploadedFile.php b/api/vendor/symfony/http-foundation/File/UploadedFile.php index 5cfe8c4c2..6ff6e51a8 100644 --- a/api/vendor/symfony/http-foundation/File/UploadedFile.php +++ b/api/vendor/symfony/http-foundation/File/UploadedFile.php @@ -60,7 +60,7 @@ class UploadedFile extends File * @throws FileException If file_uploads is disabled * @throws FileNotFoundException If the file does not exist */ - public function __construct(string $path, string $originalName, string $mimeType = null, int $error = null, bool $test = false) + public function __construct(string $path, string $originalName, ?string $mimeType = null, ?int $error = null, bool $test = false) { $this->originalName = $this->getName($originalName); $this->mimeType = $mimeType ?: 'application/octet-stream'; @@ -74,7 +74,7 @@ public function __construct(string $path, string $originalName, string $mimeType * Returns the original file name. * * It is extracted from the request from which the file has been uploaded. - * Then it should not be considered as a safe value. + * This should not be considered as a safe value to use for a file name on your servers. * * @return string */ @@ -87,7 +87,7 @@ public function getClientOriginalName() * Returns the original file extension. * * It is extracted from the original file name that was uploaded. - * Then it should not be considered as a safe value. + * This should not be considered as a safe value to use for a file name on your servers. * * @return string */ @@ -172,7 +172,7 @@ public function isValid() * * @throws FileException if, for any reason, the file could not have been moved */ - public function move(string $directory, string $name = null) + public function move(string $directory, ?string $name = null) { if ($this->isValid()) { if ($this->test) { @@ -223,8 +223,8 @@ public function move(string $directory, string $name = null) */ public static function getMaxFilesize() { - $sizePostMax = self::parseFilesize(ini_get('post_max_size')); - $sizeUploadMax = self::parseFilesize(ini_get('upload_max_filesize')); + $sizePostMax = self::parseFilesize(\ini_get('post_max_size')); + $sizeUploadMax = self::parseFilesize(\ini_get('upload_max_filesize')); return min($sizePostMax ?: \PHP_INT_MAX, $sizeUploadMax ?: \PHP_INT_MAX); } @@ -253,11 +253,11 @@ private static function parseFilesize(string $size) switch (substr($size, -1)) { case 't': $max *= 1024; - // no break + // no break case 'g': $max *= 1024; - // no break + // no break case 'm': $max *= 1024; - // no break + // no break case 'k': $max *= 1024; } diff --git a/api/vendor/symfony/http-foundation/HeaderBag.php b/api/vendor/symfony/http-foundation/HeaderBag.php index 4683a6840..43d5f6327 100644 --- a/api/vendor/symfony/http-foundation/HeaderBag.php +++ b/api/vendor/symfony/http-foundation/HeaderBag.php @@ -67,7 +67,7 @@ public function __toString() * * @return array>|array */ - public function all(string $key = null) + public function all(?string $key = null) { if (null !== $key) { return $this->headers[strtr($key, self::UPPER, self::LOWER)] ?? []; @@ -110,7 +110,7 @@ public function add(array $headers) * * @return string|null */ - public function get(string $key, string $default = null) + public function get(string $key, ?string $default = null) { $headers = $this->all($key); @@ -197,7 +197,7 @@ public function remove(string $key) * * @throws \RuntimeException When the HTTP header is not parseable */ - public function getDate(string $key, \DateTime $default = null) + public function getDate(string $key, ?\DateTime $default = null) { if (null === $value = $this->get($key)) { return $default; diff --git a/api/vendor/symfony/http-foundation/HeaderUtils.php b/api/vendor/symfony/http-foundation/HeaderUtils.php index 1d56be080..110896e17 100644 --- a/api/vendor/symfony/http-foundation/HeaderUtils.php +++ b/api/vendor/symfony/http-foundation/HeaderUtils.php @@ -33,17 +33,21 @@ private function __construct() * * Example: * - * HeaderUtils::split("da, en-gb;q=0.8", ",;") + * HeaderUtils::split('da, en-gb;q=0.8', ',;') * // => ['da'], ['en-gb', 'q=0.8']] * * @param string $separators List of characters to split on, ordered by - * precedence, e.g. ",", ";=", or ",;=" + * precedence, e.g. ',', ';=', or ',;=' * * @return array Nested array with as many levels as there are characters in * $separators */ public static function split(string $header, string $separators): array { + if ('' === $separators) { + throw new \InvalidArgumentException('At least one separator must be specified.'); + } + $quotedSeparators = preg_quote($separators, '/'); preg_match_all(' @@ -77,8 +81,8 @@ public static function split(string $header, string $separators): array * * Example: * - * HeaderUtils::combine([["foo", "abc"], ["bar"]]) - * // => ["foo" => "abc", "bar" => true] + * HeaderUtils::combine([['foo', 'abc'], ['bar']]) + * // => ['foo' => 'abc', 'bar' => true] */ public static function combine(array $parts): array { @@ -95,13 +99,13 @@ public static function combine(array $parts): array /** * Joins an associative array into a string for use in an HTTP header. * - * The key and value of each entry are joined with "=", and all entries + * The key and value of each entry are joined with '=', and all entries * are joined with the specified separator and an additional space (for * readability). Values are quoted if necessary. * * Example: * - * HeaderUtils::toString(["foo" => "abc", "bar" => true, "baz" => "a b c"], ",") + * HeaderUtils::toString(['foo' => 'abc', 'bar' => true, 'baz' => 'a b c'], ',') * // => 'foo=abc, bar, baz="a b c"' */ public static function toString(array $assoc, string $separator): string @@ -138,7 +142,7 @@ public static function quote(string $s): string * Decodes a quoted string. * * If passed an unquoted string that matches the "token" construct (as - * defined in the HTTP specification), it is passed through verbatimly. + * defined in the HTTP specification), it is passed through verbatim. */ public static function unquote(string $s): string { @@ -252,39 +256,40 @@ public static function parseQuery(string $query, bool $ignoreBrackets = false, s private static function groupParts(array $matches, string $separators, bool $first = true): array { $separator = $separators[0]; - $partSeparators = substr($separators, 1); - + $separators = substr($separators, 1) ?: ''; $i = 0; + + if ('' === $separators && !$first) { + $parts = ['']; + + foreach ($matches as $match) { + if (!$i && isset($match['separator'])) { + $i = 1; + $parts[1] = ''; + } else { + $parts[$i] .= self::unquote($match[0]); + } + } + + return $parts; + } + + $parts = []; $partMatches = []; - $previousMatchWasSeparator = false; + foreach ($matches as $match) { - if (!$first && $previousMatchWasSeparator && isset($match['separator']) && $match['separator'] === $separator) { - $previousMatchWasSeparator = true; - $partMatches[$i][] = $match; - } elseif (isset($match['separator']) && $match['separator'] === $separator) { - $previousMatchWasSeparator = true; + if (($match['separator'] ?? null) === $separator) { ++$i; } else { - $previousMatchWasSeparator = false; $partMatches[$i][] = $match; } } - $parts = []; - if ($partSeparators) { - foreach ($partMatches as $matches) { - $parts[] = self::groupParts($matches, $partSeparators, false); - } - } else { - foreach ($partMatches as $matches) { - $parts[] = self::unquote($matches[0][0]); - } - - if (!$first && 2 < \count($parts)) { - $parts = [ - $parts[0], - implode($separator, \array_slice($parts, 1)), - ]; + foreach ($partMatches as $matches) { + if ('' === $separators && '' !== $unquoted = self::unquote($matches[0][0])) { + $parts[] = $unquoted; + } elseif ($groupedParts = self::groupParts($matches, $separators, false)) { + $parts[] = $groupedParts; } } diff --git a/api/vendor/symfony/http-foundation/InputBag.php b/api/vendor/symfony/http-foundation/InputBag.php index b36001d8b..356fbbc6f 100644 --- a/api/vendor/symfony/http-foundation/InputBag.php +++ b/api/vendor/symfony/http-foundation/InputBag.php @@ -29,14 +29,14 @@ final class InputBag extends ParameterBag */ public function get(string $key, $default = null) { - if (null !== $default && !is_scalar($default) && !(\is_object($default) && method_exists($default, '__toString'))) { + if (null !== $default && !\is_scalar($default) && !(\is_object($default) && method_exists($default, '__toString'))) { trigger_deprecation('symfony/http-foundation', '5.1', 'Passing a non-scalar value as 2nd argument to "%s()" is deprecated, pass a scalar or null instead.', __METHOD__); } $value = parent::get($key, $this); - if (null !== $value && $this !== $value && !is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { - trigger_deprecation('symfony/http-foundation', '5.1', 'Retrieving a non-string value from "%s()" is deprecated, and will throw a "%s" exception in Symfony 6.0, use "%s::all($key)" instead.', __METHOD__, BadRequestException::class, __CLASS__); + if (null !== $value && $this !== $value && !\is_scalar($value) && !(\is_object($value) && method_exists($value, '__toString'))) { + trigger_deprecation('symfony/http-foundation', '5.1', 'Retrieving a non-scalar value from "%s()" is deprecated, and will throw a "%s" exception in Symfony 6.0, use "%s::all($key)" instead.', __METHOD__, BadRequestException::class, __CLASS__); } return $this === $value ? $default : $value; @@ -45,7 +45,7 @@ public function get(string $key, $default = null) /** * {@inheritdoc} */ - public function all(string $key = null): array + public function all(?string $key = null): array { return parent::all($key); } @@ -76,7 +76,7 @@ public function add(array $inputs = []) */ public function set(string $key, $value) { - if (null !== $value && !is_scalar($value) && !\is_array($value) && !method_exists($value, '__toString')) { + if (null !== $value && !\is_scalar($value) && !\is_array($value) && !method_exists($value, '__toString')) { trigger_deprecation('symfony/http-foundation', '5.1', 'Passing "%s" as a 2nd Argument to "%s()" is deprecated, pass a scalar, array, or null instead.', get_debug_type($value), __METHOD__); } diff --git a/api/vendor/symfony/http-foundation/IpUtils.php b/api/vendor/symfony/http-foundation/IpUtils.php index 24111f1ec..49d9a9d74 100644 --- a/api/vendor/symfony/http-foundation/IpUtils.php +++ b/api/vendor/symfony/http-foundation/IpUtils.php @@ -73,7 +73,7 @@ public static function checkIp4(?string $requestIp, string $ip) return false; } - $cacheKey = $requestIp.'-'.$ip; + $cacheKey = $requestIp.'-'.$ip.'-v4'; if (isset(self::$checkedIps[$cacheKey])) { return self::$checkedIps[$cacheKey]; } @@ -86,7 +86,7 @@ public static function checkIp4(?string $requestIp, string $ip) [$address, $netmask] = explode('/', $ip, 2); if ('0' === $netmask) { - return self::$checkedIps[$cacheKey] = filter_var($address, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV4); + return self::$checkedIps[$cacheKey] = false !== filter_var($address, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV4); } if ($netmask < 0 || $netmask > 32) { @@ -126,7 +126,7 @@ public static function checkIp6(?string $requestIp, string $ip) return false; } - $cacheKey = $requestIp.'-'.$ip; + $cacheKey = $requestIp.'-'.$ip.'-v6'; if (isset(self::$checkedIps[$cacheKey])) { return self::$checkedIps[$cacheKey]; } @@ -135,9 +135,18 @@ public static function checkIp6(?string $requestIp, string $ip) throw new \RuntimeException('Unable to check Ipv6. Check that PHP was not compiled with option "disable-ipv6".'); } + // Check to see if we were given a IP4 $requestIp or $ip by mistake + if (!filter_var($requestIp, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6)) { + return self::$checkedIps[$cacheKey] = false; + } + if (str_contains($ip, '/')) { [$address, $netmask] = explode('/', $ip, 2); + if (!filter_var($address, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6)) { + return self::$checkedIps[$cacheKey] = false; + } + if ('0' === $netmask) { return (bool) unpack('n*', @inet_pton($address)); } @@ -146,6 +155,10 @@ public static function checkIp6(?string $requestIp, string $ip) return self::$checkedIps[$cacheKey] = false; } } else { + if (!filter_var($ip, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6)) { + return self::$checkedIps[$cacheKey] = false; + } + $address = $ip; $netmask = 128; } diff --git a/api/vendor/symfony/http-foundation/JsonResponse.php b/api/vendor/symfony/http-foundation/JsonResponse.php index 501a6387d..51bdf1976 100644 --- a/api/vendor/symfony/http-foundation/JsonResponse.php +++ b/api/vendor/symfony/http-foundation/JsonResponse.php @@ -105,7 +105,7 @@ public static function fromJsonString(string $data, int $status = 200, array $he * * @throws \InvalidArgumentException When the callback name is not valid */ - public function setCallback(string $callback = null) + public function setCallback(?string $callback = null) { if (null !== $callback) { // partially taken from https://geekality.net/2011/08/03/valid-javascript-identifier/ diff --git a/api/vendor/symfony/http-foundation/LICENSE b/api/vendor/symfony/http-foundation/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/http-foundation/LICENSE +++ b/api/vendor/symfony/http-foundation/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/http-foundation/ParameterBag.php b/api/vendor/symfony/http-foundation/ParameterBag.php index 7d051abe7..b542292bc 100644 --- a/api/vendor/symfony/http-foundation/ParameterBag.php +++ b/api/vendor/symfony/http-foundation/ParameterBag.php @@ -39,7 +39,7 @@ public function __construct(array $parameters = []) * * @return array */ - public function all(/*string $key = null*/) + public function all(/* ?string $key = null */) { $key = \func_num_args() > 0 ? func_get_arg(0) : null; diff --git a/api/vendor/symfony/http-foundation/RateLimiter/AbstractRequestRateLimiter.php b/api/vendor/symfony/http-foundation/RateLimiter/AbstractRequestRateLimiter.php index c91d614fe..a6dd993b7 100644 --- a/api/vendor/symfony/http-foundation/RateLimiter/AbstractRequestRateLimiter.php +++ b/api/vendor/symfony/http-foundation/RateLimiter/AbstractRequestRateLimiter.php @@ -35,9 +35,7 @@ public function consume(Request $request): RateLimit foreach ($limiters as $limiter) { $rateLimit = $limiter->consume(1); - if (null === $minimalRateLimit || $rateLimit->getRemainingTokens() < $minimalRateLimit->getRemainingTokens()) { - $minimalRateLimit = $rateLimit; - } + $minimalRateLimit = $minimalRateLimit ? self::getMinimalRateLimit($minimalRateLimit, $rateLimit) : $rateLimit; } return $minimalRateLimit; @@ -54,4 +52,20 @@ public function reset(Request $request): void * @return LimiterInterface[] a set of limiters using keys extracted from the request */ abstract protected function getLimiters(Request $request): array; + + private static function getMinimalRateLimit(RateLimit $first, RateLimit $second): RateLimit + { + if ($first->isAccepted() !== $second->isAccepted()) { + return $first->isAccepted() ? $second : $first; + } + + $firstRemainingTokens = $first->getRemainingTokens(); + $secondRemainingTokens = $second->getRemainingTokens(); + + if ($firstRemainingTokens === $secondRemainingTokens) { + return $first->getRetryAfter() < $second->getRetryAfter() ? $second : $first; + } + + return $firstRemainingTokens > $secondRemainingTokens ? $second : $first; + } } diff --git a/api/vendor/symfony/http-foundation/RedirectResponse.php b/api/vendor/symfony/http-foundation/RedirectResponse.php index 2103280c6..7b89f0faf 100644 --- a/api/vendor/symfony/http-foundation/RedirectResponse.php +++ b/api/vendor/symfony/http-foundation/RedirectResponse.php @@ -103,6 +103,7 @@ public function setTargetUrl(string $url) ', htmlspecialchars($url, \ENT_QUOTES, 'UTF-8'))); $this->headers->set('Location', $url); + $this->headers->set('Content-Type', 'text/html; charset=utf-8'); return $this; } diff --git a/api/vendor/symfony/http-foundation/Request.php b/api/vendor/symfony/http-foundation/Request.php index d112b1f18..75db0300b 100644 --- a/api/vendor/symfony/http-foundation/Request.php +++ b/api/vendor/symfony/http-foundation/Request.php @@ -191,7 +191,7 @@ class Request protected $session; /** - * @var string + * @var string|null */ protected $locale; @@ -246,6 +246,9 @@ class Request self::HEADER_X_FORWARDED_PREFIX => 'X_FORWARDED_PREFIX', ]; + /** @var bool */ + private $isIisRewrite = false; + /** * @param array $query The GET parameters * @param array $request The POST parameters @@ -439,16 +442,16 @@ public static function setFactory(?callable $callable) /** * Clones a request and overrides some of its parameters. * - * @param array $query The GET parameters - * @param array $request The POST parameters - * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) - * @param array $cookies The COOKIE parameters - * @param array $files The FILES parameters - * @param array $server The SERVER parameters + * @param array|null $query The GET parameters + * @param array|null $request The POST parameters + * @param array|null $attributes The request attributes (parameters parsed from the PATH_INFO, ...) + * @param array|null $cookies The COOKIE parameters + * @param array|null $files The FILES parameters + * @param array|null $server The SERVER parameters * * @return static */ - public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null) + public function duplicate(?array $query = null, ?array $request = null, ?array $attributes = null, ?array $cookies = null, ?array $files = null, ?array $server = null) { $dup = clone $this; if (null !== $query) { @@ -522,10 +525,10 @@ public function __toString() $cookies = []; foreach ($this->cookies as $k => $v) { - $cookies[] = $k.'='.$v; + $cookies[] = \is_array($v) ? http_build_query([$k => $v], '', '; ', \PHP_QUERY_RFC3986) : "$k=$v"; } - if (!empty($cookies)) { + if ($cookies) { $cookieHeader = 'Cookie: '.implode('; ', $cookies)."\r\n"; } @@ -562,7 +565,7 @@ public function overrideGlobals() $request = ['g' => $_GET, 'p' => $_POST, 'c' => $_COOKIE]; - $requestOrder = ini_get('request_order') ?: ini_get('variables_order'); + $requestOrder = \ini_get('request_order') ?: \ini_get('variables_order'); $requestOrder = preg_replace('#[^cgp]#', '', strtolower($requestOrder)) ?: 'gp'; $_REQUEST = [[]]; @@ -1452,7 +1455,7 @@ public function setLocale(string $locale) */ public function getLocale() { - return null === $this->locale ? $this->defaultLocale : $this->locale; + return $this->locale ?? $this->defaultLocale; } /** @@ -1573,9 +1576,9 @@ public function getContent(bool $asResource = false) /** * Gets the request body decoded as array, typically from a JSON payload. * - * @throws JsonException When the body cannot be decoded to an array - * * @return array + * + * @throws JsonException When the body cannot be decoded to an array */ public function toArray() { @@ -1648,7 +1651,7 @@ public function getPreferredFormat(?string $default = 'html'): ?string * * @return string|null */ - public function getPreferredLanguage(array $locales = null) + public function getPreferredLanguage(?array $locales = null) { $preferredLanguages = $this->getLanguages(); @@ -1689,7 +1692,8 @@ public function getLanguages() $languages = AcceptHeader::fromString($this->headers->get('Accept-Language'))->all(); $this->languages = []; - foreach ($languages as $lang => $acceptHeaderItem) { + foreach ($languages as $acceptHeaderItem) { + $lang = $acceptHeaderItem->getValue(); if (str_contains($lang, '-')) { $codes = explode('-', $lang); if ('i' === $codes[0]) { @@ -1727,7 +1731,7 @@ public function getCharsets() return $this->charsets; } - return $this->charsets = array_keys(AcceptHeader::fromString($this->headers->get('Accept-Charset'))->all()); + return $this->charsets = array_map('strval', array_keys(AcceptHeader::fromString($this->headers->get('Accept-Charset'))->all())); } /** @@ -1741,7 +1745,7 @@ public function getEncodings() return $this->encodings; } - return $this->encodings = array_keys(AcceptHeader::fromString($this->headers->get('Accept-Encoding'))->all()); + return $this->encodings = array_map('strval', array_keys(AcceptHeader::fromString($this->headers->get('Accept-Encoding'))->all())); } /** @@ -1755,7 +1759,7 @@ public function getAcceptableContentTypes() return $this->acceptableContentTypes; } - return $this->acceptableContentTypes = array_keys(AcceptHeader::fromString($this->headers->get('Accept'))->all()); + return $this->acceptableContentTypes = array_map('strval', array_keys(AcceptHeader::fromString($this->headers->get('Accept'))->all())); } /** @@ -1804,11 +1808,10 @@ protected function prepareRequestUri() { $requestUri = ''; - if ('1' == $this->server->get('IIS_WasUrlRewritten') && '' != $this->server->get('UNENCODED_URL')) { + if ($this->isIisRewrite() && '' != $this->server->get('UNENCODED_URL')) { // IIS7 with URL Rewrite: make sure we get the unencoded URL (double slash problem) $requestUri = $this->server->get('UNENCODED_URL'); $this->server->remove('UNENCODED_URL'); - $this->server->remove('IIS_WasUrlRewritten'); } elseif ($this->server->has('REQUEST_URI')) { $requestUri = $this->server->get('REQUEST_URI'); @@ -2011,7 +2014,13 @@ private function setPhpDefaultLocale(string $locale): void */ private function getUrlencodedPrefix(string $string, string $prefix): ?string { - if (!str_starts_with(rawurldecode($string), $prefix)) { + if ($this->isIisRewrite()) { + // ISS with UrlRewriteModule might report SCRIPT_NAME/PHP_SELF with wrong case + // see https://github.com/php/php-src/issues/11981 + if (0 !== stripos(rawurldecode($string), $prefix)) { + return null; + } + } elseif (!str_starts_with(rawurldecode($string), $prefix)) { return null; } @@ -2052,7 +2061,7 @@ public function isFromTrustedProxy() return self::$trustedProxies && IpUtils::checkIp($this->server->get('REMOTE_ADDR', ''), self::$trustedProxies); } - private function getTrustedValues(int $type, string $ip = null): array + private function getTrustedValues(int $type, ?string $ip = null): array { $clientValues = []; $forwardedValues = []; @@ -2144,4 +2153,20 @@ private function normalizeAndFilterClientIps(array $clientIps, string $ip): arra // Now the IP chain contains only untrusted proxies and the client IP return $clientIps ? array_reverse($clientIps) : [$firstTrustedIp]; } + + /** + * Is this IIS with UrlRewriteModule? + * + * This method consumes, caches and removed the IIS_WasUrlRewritten env var, + * so we don't inherit it to sub-requests. + */ + private function isIisRewrite(): bool + { + if (1 === $this->server->getInt('IIS_WasUrlRewritten')) { + $this->isIisRewrite = true; + $this->server->remove('IIS_WasUrlRewritten'); + } + + return $this->isIisRewrite; + } } diff --git a/api/vendor/symfony/http-foundation/RequestMatcher.php b/api/vendor/symfony/http-foundation/RequestMatcher.php index f2645f9ae..03ccee97e 100644 --- a/api/vendor/symfony/http-foundation/RequestMatcher.php +++ b/api/vendor/symfony/http-foundation/RequestMatcher.php @@ -58,7 +58,7 @@ class RequestMatcher implements RequestMatcherInterface * @param string|string[]|null $ips * @param string|string[]|null $schemes */ - public function __construct(string $path = null, string $host = null, $methods = null, $ips = null, array $attributes = [], $schemes = null, int $port = null) + public function __construct(?string $path = null, ?string $host = null, $methods = null, $ips = null, array $attributes = [], $schemes = null, ?int $port = null) { $this->matchPath($path); $this->matchHost($host); @@ -91,7 +91,7 @@ public function matchHost(?string $regexp) } /** - * Adds a check for the the URL port. + * Adds a check for the URL port. * * @param int|null $port The port number to connect to */ diff --git a/api/vendor/symfony/http-foundation/Response.php b/api/vendor/symfony/http-foundation/Response.php index 265e6ea68..6798a04c8 100644 --- a/api/vendor/symfony/http-foundation/Response.php +++ b/api/vendor/symfony/http-foundation/Response.php @@ -72,7 +72,7 @@ class Response public const HTTP_PRECONDITION_REQUIRED = 428; // RFC6585 public const HTTP_TOO_MANY_REQUESTS = 429; // RFC6585 public const HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE = 431; // RFC6585 - public const HTTP_UNAVAILABLE_FOR_LEGAL_REASONS = 451; + public const HTTP_UNAVAILABLE_FOR_LEGAL_REASONS = 451; // RFC7725 public const HTTP_INTERNAL_SERVER_ERROR = 500; public const HTTP_NOT_IMPLEMENTED = 501; public const HTTP_BAD_GATEWAY = 502; @@ -298,7 +298,7 @@ public function prepare(Request $request) $charset = $this->charset ?: 'UTF-8'; if (!$headers->has('Content-Type')) { $headers->set('Content-Type', 'text/html; charset='.$charset); - } elseif (0 === stripos($headers->get('Content-Type'), 'text/') && false === stripos($headers->get('Content-Type'), 'charset')) { + } elseif (0 === stripos($headers->get('Content-Type') ?? '', 'text/') && false === stripos($headers->get('Content-Type') ?? '', 'charset')) { // add the charset $headers->set('Content-Type', $headers->get('Content-Type').'; charset='.$charset); } @@ -399,6 +399,7 @@ public function send() litespeed_finish_request(); } elseif (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) { static::closeOutputBuffers(0, true); + flush(); } return $this; @@ -462,7 +463,7 @@ public function getProtocolVersion(): string * * @final */ - public function setStatusCode(int $code, string $text = null): object + public function setStatusCode(int $code, ?string $text = null): object { $this->statusCode = $code; if ($this->isInvalid()) { @@ -736,7 +737,7 @@ public function getExpires(): ?\DateTimeInterface * * @final */ - public function setExpires(\DateTimeInterface $date = null): object + public function setExpires(?\DateTimeInterface $date = null): object { if (null === $date) { $this->headers->remove('Expires'); @@ -773,8 +774,10 @@ public function getMaxAge(): ?int return (int) $this->headers->getCacheControlDirective('max-age'); } - if (null !== $this->getExpires()) { - return (int) $this->getExpires()->format('U') - (int) $this->getDate()->format('U'); + if (null !== $expires = $this->getExpires()) { + $maxAge = (int) $expires->format('U') - (int) $this->getDate()->format('U'); + + return max($maxAge, 0); } return null; @@ -818,7 +821,7 @@ public function setSharedMaxAge(int $value): object * * It returns null when no freshness information is present in the response. * - * When the responses TTL is <= 0, the response may not be served from cache without first + * When the response's TTL is 0, the response may not be served from cache without first * revalidating with the origin. * * @final @@ -827,7 +830,7 @@ public function getTtl(): ?int { $maxAge = $this->getMaxAge(); - return null !== $maxAge ? $maxAge - $this->getAge() : null; + return null !== $maxAge ? max($maxAge - $this->getAge(), 0) : null; } /** @@ -883,7 +886,7 @@ public function getLastModified(): ?\DateTimeInterface * * @final */ - public function setLastModified(\DateTimeInterface $date = null): object + public function setLastModified(?\DateTimeInterface $date = null): object { if (null === $date) { $this->headers->remove('Last-Modified'); @@ -921,7 +924,7 @@ public function getEtag(): ?string * * @final */ - public function setEtag(string $etag = null, bool $weak = false): object + public function setEtag(?string $etag = null, bool $weak = false): object { if (null === $etag) { $this->headers->remove('Etag'); @@ -1088,8 +1091,7 @@ public function isNotModified(Request $request): bool $lastModified = $this->headers->get('Last-Modified'); $modifiedSince = $request->headers->get('If-Modified-Since'); - if ($ifNoneMatchEtags = $request->getETags()) { - $etag = $this->getEtag(); + if (($ifNoneMatchEtags = $request->getETags()) && (null !== $etag = $this->getEtag())) { if (0 == strncmp($etag, 'W/', 2)) { $etag = substr($etag, 2); } @@ -1215,7 +1217,7 @@ public function isNotFound(): bool * * @final */ - public function isRedirect(string $location = null): bool + public function isRedirect(?string $location = null): bool { return \in_array($this->statusCode, [201, 301, 302, 303, 307, 308]) && (null === $location ?: $location == $this->headers->get('Location')); } diff --git a/api/vendor/symfony/http-foundation/ResponseHeaderBag.php b/api/vendor/symfony/http-foundation/ResponseHeaderBag.php index 1df13fa21..d4c4f393f 100644 --- a/api/vendor/symfony/http-foundation/ResponseHeaderBag.php +++ b/api/vendor/symfony/http-foundation/ResponseHeaderBag.php @@ -88,7 +88,7 @@ public function replace(array $headers = []) /** * {@inheritdoc} */ - public function all(string $key = null) + public function all(?string $key = null) { $headers = parent::all(); @@ -186,7 +186,7 @@ public function setCookie(Cookie $cookie) /** * Removes a cookie from the array, but does not unset it in the browser. */ - public function removeCookie(string $name, ?string $path = '/', string $domain = null) + public function removeCookie(string $name, ?string $path = '/', ?string $domain = null) { if (null === $path) { $path = '/'; @@ -239,7 +239,7 @@ public function getCookies(string $format = self::COOKIES_FLAT) /** * Clears a cookie in the browser. */ - public function clearCookie(string $name, ?string $path = '/', string $domain = null, bool $secure = false, bool $httpOnly = true, string $sameSite = null) + public function clearCookie(string $name, ?string $path = '/', ?string $domain = null, bool $secure = false, bool $httpOnly = true, ?string $sameSite = null) { $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, $sameSite)); } diff --git a/api/vendor/symfony/http-foundation/ServerBag.php b/api/vendor/symfony/http-foundation/ServerBag.php index 25688d523..831caa67e 100644 --- a/api/vendor/symfony/http-foundation/ServerBag.php +++ b/api/vendor/symfony/http-foundation/ServerBag.php @@ -31,7 +31,7 @@ public function getHeaders() foreach ($this->parameters as $key => $value) { if (str_starts_with($key, 'HTTP_')) { $headers[substr($key, 5)] = $value; - } elseif (\in_array($key, ['CONTENT_TYPE', 'CONTENT_LENGTH', 'CONTENT_MD5'], true)) { + } elseif (\in_array($key, ['CONTENT_TYPE', 'CONTENT_LENGTH', 'CONTENT_MD5'], true) && '' !== $value) { $headers[$key] = $value; } } @@ -51,7 +51,7 @@ public function getHeaders() * RewriteCond %{HTTP:Authorization} .+ * RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] * RewriteCond %{REQUEST_FILENAME} !-f - * RewriteRule ^(.*)$ app.php [QSA,L] + * RewriteRule ^(.*)$ index.php [QSA,L] */ $authorizationHeader = null; diff --git a/api/vendor/symfony/http-foundation/Session/Session.php b/api/vendor/symfony/http-foundation/Session/Session.php index 022e3986f..917920a46 100644 --- a/api/vendor/symfony/http-foundation/Session/Session.php +++ b/api/vendor/symfony/http-foundation/Session/Session.php @@ -39,7 +39,7 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable private $usageIndex = 0; private $usageReporter; - public function __construct(SessionStorageInterface $storage = null, AttributeBagInterface $attributes = null, FlashBagInterface $flashes = null, callable $usageReporter = null) + public function __construct(?SessionStorageInterface $storage = null, ?AttributeBagInterface $attributes = null, ?FlashBagInterface $flashes = null, ?callable $usageReporter = null) { $this->storage = $storage ?? new NativeSessionStorage(); $this->usageReporter = $usageReporter; @@ -175,7 +175,7 @@ public function isEmpty(): bool /** * {@inheritdoc} */ - public function invalidate(int $lifetime = null) + public function invalidate(?int $lifetime = null) { $this->storage->clear(); @@ -185,7 +185,7 @@ public function invalidate(int $lifetime = null) /** * {@inheritdoc} */ - public function migrate(bool $destroy = false, int $lifetime = null) + public function migrate(bool $destroy = false, ?int $lifetime = null) { return $this->storage->regenerate($destroy, $lifetime); } diff --git a/api/vendor/symfony/http-foundation/Session/SessionFactory.php b/api/vendor/symfony/http-foundation/Session/SessionFactory.php index 04c4b06a0..bd79282ee 100644 --- a/api/vendor/symfony/http-foundation/Session/SessionFactory.php +++ b/api/vendor/symfony/http-foundation/Session/SessionFactory.php @@ -26,7 +26,7 @@ class SessionFactory implements SessionFactoryInterface private $storageFactory; private $usageReporter; - public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, callable $usageReporter = null) + public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, ?callable $usageReporter = null) { $this->requestStack = $requestStack; $this->storageFactory = $storageFactory; diff --git a/api/vendor/symfony/http-foundation/Session/SessionInterface.php b/api/vendor/symfony/http-foundation/Session/SessionInterface.php index b2f09fd0d..b73dfd0c3 100644 --- a/api/vendor/symfony/http-foundation/Session/SessionInterface.php +++ b/api/vendor/symfony/http-foundation/Session/SessionInterface.php @@ -59,28 +59,28 @@ public function setName(string $name); * Clears all session attributes and flashes and regenerates the * session and deletes the old session from persistence. * - * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value - * will leave the system settings unchanged, 0 sets the cookie - * to expire with browser session. Time is in seconds, and is - * not a Unix timestamp. + * @param int|null $lifetime Sets the cookie lifetime for the session cookie. A null value + * will leave the system settings unchanged, 0 sets the cookie + * to expire with browser session. Time is in seconds, and is + * not a Unix timestamp. * * @return bool */ - public function invalidate(int $lifetime = null); + public function invalidate(?int $lifetime = null); /** * Migrates the current session to a new session id while maintaining all * session attributes. * - * @param bool $destroy Whether to delete the old session or leave it to garbage collection - * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value - * will leave the system settings unchanged, 0 sets the cookie - * to expire with browser session. Time is in seconds, and is - * not a Unix timestamp. + * @param bool $destroy Whether to delete the old session or leave it to garbage collection + * @param int|null $lifetime Sets the cookie lifetime for the session cookie. A null value + * will leave the system settings unchanged, 0 sets the cookie + * to expire with browser session. Time is in seconds, and is + * not a Unix timestamp. * * @return bool */ - public function migrate(bool $destroy = false, int $lifetime = null); + public function migrate(bool $destroy = false, ?int $lifetime = null); /** * Force the session to be saved and closed. diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php index bc7b944fc..35d7b4b81 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php @@ -35,8 +35,8 @@ abstract class AbstractSessionHandler implements \SessionHandlerInterface, \Sess public function open($savePath, $sessionName) { $this->sessionName = $sessionName; - if (!headers_sent() && !ini_get('session.cache_limiter') && '0' !== ini_get('session.cache_limiter')) { - header(sprintf('Cache-Control: max-age=%d, private, must-revalidate', 60 * (int) ini_get('session.cache_expire'))); + if (!headers_sent() && !\ini_get('session.cache_limiter') && '0' !== \ini_get('session.cache_limiter')) { + header(sprintf('Cache-Control: max-age=%d, private, must-revalidate', 60 * (int) \ini_get('session.cache_expire'))); } return true; @@ -126,7 +126,7 @@ public function write($sessionId, $data) #[\ReturnTypeWillChange] public function destroy($sessionId) { - if (!headers_sent() && filter_var(ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOLEAN)) { + if (!headers_sent() && filter_var(\ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOLEAN)) { if (!$this->sessionName) { throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', static::class)); } @@ -141,7 +141,7 @@ public function destroy($sessionId) */ if (null === $cookie || isset($_COOKIE[$this->sessionName])) { if (\PHP_VERSION_ID < 70300) { - setcookie($this->sessionName, '', 0, ini_get('session.cookie_path'), ini_get('session.cookie_domain'), filter_var(ini_get('session.cookie_secure'), \FILTER_VALIDATE_BOOLEAN), filter_var(ini_get('session.cookie_httponly'), \FILTER_VALIDATE_BOOLEAN)); + setcookie($this->sessionName, '', 0, \ini_get('session.cookie_path'), \ini_get('session.cookie_domain'), filter_var(\ini_get('session.cookie_secure'), \FILTER_VALIDATE_BOOLEAN), filter_var(\ini_get('session.cookie_httponly'), \FILTER_VALIDATE_BOOLEAN)); } else { $params = session_get_cookie_params(); unset($params['lifetime']); diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php index a5a78eb95..e0ec4d2d9 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php @@ -77,7 +77,7 @@ protected function doRead(string $sessionId) #[\ReturnTypeWillChange] public function updateTimestamp($sessionId, $data) { - $this->memcached->touch($this->prefix.$sessionId, time() + (int) ($this->ttl ?? ini_get('session.gc_maxlifetime'))); + $this->memcached->touch($this->prefix.$sessionId, $this->getCompatibleTtl()); return true; } @@ -87,7 +87,20 @@ public function updateTimestamp($sessionId, $data) */ protected function doWrite(string $sessionId, string $data) { - return $this->memcached->set($this->prefix.$sessionId, $data, time() + (int) ($this->ttl ?? ini_get('session.gc_maxlifetime'))); + return $this->memcached->set($this->prefix.$sessionId, $data, $this->getCompatibleTtl()); + } + + private function getCompatibleTtl(): int + { + $ttl = (int) ($this->ttl ?? \ini_get('session.gc_maxlifetime')); + + // If the relative TTL that is used exceeds 30 days, memcached will treat the value as Unix time. + // We have to convert it to an absolute Unix time at this point, to make sure the TTL is correct. + if ($ttl > 60 * 60 * 24 * 30) { + $ttl += time(); + } + + return $ttl; } /** diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php index 8384e79dd..ef8f71942 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php @@ -121,7 +121,7 @@ public function gc($maxlifetime) */ protected function doWrite(string $sessionId, string $data) { - $expiry = new UTCDateTime((time() + (int) ini_get('session.gc_maxlifetime')) * 1000); + $expiry = new UTCDateTime((time() + (int) \ini_get('session.gc_maxlifetime')) * 1000); $fields = [ $this->options['time_field'] => new UTCDateTime(), @@ -144,7 +144,7 @@ protected function doWrite(string $sessionId, string $data) #[\ReturnTypeWillChange] public function updateTimestamp($sessionId, $data) { - $expiry = new UTCDateTime((time() + (int) ini_get('session.gc_maxlifetime')) * 1000); + $expiry = new UTCDateTime((time() + (int) \ini_get('session.gc_maxlifetime')) * 1000); $this->getCollection()->updateOne( [$this->options['id_field'] => $sessionId], diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php index effc9db54..570d4f427 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php @@ -19,19 +19,19 @@ class NativeFileSessionHandler extends \SessionHandler { /** - * @param string $savePath Path of directory to save session files - * Default null will leave setting as defined by PHP. - * '/path', 'N;/path', or 'N;octal-mode;/path + * @param string|null $savePath Path of directory to save session files + * Default null will leave setting as defined by PHP. + * '/path', 'N;/path', or 'N;octal-mode;/path * * @see https://php.net/session.configuration#ini.session.save-path for further details. * * @throws \InvalidArgumentException On invalid $savePath * @throws \RuntimeException When failing to create the save directory */ - public function __construct(string $savePath = null) + public function __construct(?string $savePath = null) { if (null === $savePath) { - $savePath = ini_get('session.save_path'); + $savePath = \ini_get('session.save_path'); } $baseDir = $savePath; @@ -49,7 +49,11 @@ public function __construct(string $savePath = null) throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $baseDir)); } - ini_set('session.save_path', $savePath); - ini_set('session.save_handler', 'files'); + if ($savePath !== \ini_get('session.save_path')) { + ini_set('session.save_path', $savePath); + } + if ('files' !== \ini_get('session.save_handler')) { + ini_set('session.save_handler', 'files'); + } } } diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php index 067bfcb36..f9c5d9b59 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php @@ -112,16 +112,16 @@ class PdoSessionHandler extends AbstractSessionHandler /** * Username when lazy-connect. * - * @var string + * @var string|null */ - private $username = ''; + private $username = null; /** * Password when lazy-connect. * - * @var string + * @var string|null */ - private $password = ''; + private $password = null; /** * Connection options when lazy-connect. @@ -344,7 +344,7 @@ protected function doDestroy(string $sessionId) */ protected function doWrite(string $sessionId, string $data) { - $maxlifetime = (int) ini_get('session.gc_maxlifetime'); + $maxlifetime = (int) \ini_get('session.gc_maxlifetime'); try { // We use a single MERGE SQL query when supported by the database. @@ -391,14 +391,14 @@ protected function doWrite(string $sessionId, string $data) #[\ReturnTypeWillChange] public function updateTimestamp($sessionId, $data) { - $expiry = time() + (int) ini_get('session.gc_maxlifetime'); + $expiry = time() + (int) \ini_get('session.gc_maxlifetime'); try { $updateStmt = $this->pdo->prepare( "UPDATE $this->table SET $this->lifetimeCol = :expiry, $this->timeCol = :time WHERE $this->idCol = :id" ); - $updateStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR); - $updateStmt->bindParam(':expiry', $expiry, \PDO::PARAM_INT); + $updateStmt->bindValue(':id', $sessionId, \PDO::PARAM_STR); + $updateStmt->bindValue(':expiry', $expiry, \PDO::PARAM_INT); $updateStmt->bindValue(':time', time(), \PDO::PARAM_INT); $updateStmt->execute(); } catch (\PDOException $e) { @@ -530,8 +530,8 @@ private function buildDsnFromUrl(string $dsnOrUrl): string return $dsn; } } - // If "unix_socket" is not in the query, we continue with the same process as pgsql - // no break + // If "unix_socket" is not in the query, we continue with the same process as pgsql + // no break case 'pgsql': $dsn ?? $dsn = 'pgsql:'; @@ -687,7 +687,7 @@ protected function doRead(string $sessionId) throw new \RuntimeException('Failed to read session: INSERT reported a duplicate id but next SELECT did not return any data.'); } - if (!filter_var(ini_get('session.use_strict_mode'), \FILTER_VALIDATE_BOOLEAN) && self::LOCK_TRANSACTIONAL === $this->lockMode && 'sqlite' !== $this->driver) { + if (!filter_var(\ini_get('session.use_strict_mode'), \FILTER_VALIDATE_BOOLEAN) && self::LOCK_TRANSACTIONAL === $this->lockMode && 'sqlite' !== $this->driver) { // In strict mode, session fixation is not possible: new sessions always start with a unique // random id, so that concurrency is not possible and this code path can be skipped. // Exclusive-reading of non-existent rows does not block, so we need to do an insert to block @@ -935,7 +935,7 @@ private function getMergeStatement(string $sessionId, string $data, int $maxlife protected function getConnection() { if (null === $this->pdo) { - $this->connect($this->dsn ?: ini_get('session.save_path')); + $this->connect($this->dsn ?: \ini_get('session.save_path')); } return $this->pdo; diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php index 5cc2e345d..31954e677 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php @@ -79,7 +79,7 @@ protected function doRead(string $sessionId): string */ protected function doWrite(string $sessionId, string $data): bool { - $result = $this->redis->setEx($this->prefix.$sessionId, (int) ($this->ttl ?? ini_get('session.gc_maxlifetime')), $data); + $result = $this->redis->setEx($this->prefix.$sessionId, (int) ($this->ttl ?? \ini_get('session.gc_maxlifetime')), $data); return $result && !$result instanceof ErrorInterface; } @@ -109,6 +109,7 @@ protected function doDestroy(string $sessionId): bool /** * {@inheritdoc} */ + #[\ReturnTypeWillChange] public function close(): bool { return true; @@ -131,6 +132,6 @@ public function gc($maxlifetime) #[\ReturnTypeWillChange] public function updateTimestamp($sessionId, $data) { - return (bool) $this->redis->expire($this->prefix.$sessionId, (int) ($this->ttl ?? ini_get('session.gc_maxlifetime'))); + return (bool) $this->redis->expire($this->prefix.$sessionId, (int) ($this->ttl ?? \ini_get('session.gc_maxlifetime'))); } } diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php index f3f7b201d..76e4373f8 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php @@ -11,7 +11,10 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler; +use Doctrine\DBAL\Configuration; use Doctrine\DBAL\DriverManager; +use Doctrine\DBAL\Schema\DefaultSchemaManagerFactory; +use Doctrine\DBAL\Tools\DsnParser; use Symfony\Component\Cache\Adapter\AbstractAdapter; use Symfony\Component\Cache\Traits\RedisClusterProxy; use Symfony\Component\Cache\Traits\RedisProxy; @@ -60,7 +63,7 @@ public static function createHandler($connection): AbstractSessionHandler case str_starts_with($connection, 'rediss:'): case str_starts_with($connection, 'memcached:'): if (!class_exists(AbstractAdapter::class)) { - throw new \InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection)); + throw new \InvalidArgumentException('Unsupported Redis or Memcached DSN. Try running "composer require symfony/cache".'); } $handlerClass = str_starts_with($connection, 'memcached:') ? MemcachedSessionHandler::class : RedisSessionHandler::class; $connection = AbstractAdapter::createConnection($connection, ['lazy' => true]); @@ -69,9 +72,18 @@ public static function createHandler($connection): AbstractSessionHandler case str_starts_with($connection, 'pdo_oci://'): if (!class_exists(DriverManager::class)) { - throw new \InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require doctrine/dbal".', $connection)); + throw new \InvalidArgumentException('Unsupported PDO OCI DSN. Try running "composer require doctrine/dbal".'); } - $connection = DriverManager::getConnection(['url' => $connection])->getWrappedConnection(); + $connection[3] = '-'; + $params = class_exists(DsnParser::class) ? (new DsnParser())->parse($connection) : ['url' => $connection]; + $config = new Configuration(); + if (class_exists(DefaultSchemaManagerFactory::class)) { + $config->setSchemaManagerFactory(new DefaultSchemaManagerFactory()); + } + + $connection = DriverManager::getConnection($params, $config); + // The condition should be removed once support for DBAL <3.3 is dropped + $connection = method_exists($connection, 'getNativeConnection') ? $connection->getNativeConnection() : $connection->getWrappedConnection(); // no break; case str_starts_with($connection, 'mssql://'): diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php b/api/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php index 0461e997e..f7c385f64 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php @@ -30,6 +30,16 @@ public function __construct(\SessionHandlerInterface $handler) $this->handler = $handler; } + /** + * Returns true if this handler wraps an internal PHP session save handler using \SessionHandler. + * + * @internal + */ + public function isWrapper(): bool + { + return $this->handler instanceof \SessionHandler; + } + /** * @return bool */ diff --git a/api/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php b/api/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php index 1bfce5520..3e10f6dbc 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/MetadataBag.php @@ -95,12 +95,12 @@ public function getLifetime() /** * Stamps a new session's metadata. * - * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value - * will leave the system settings unchanged, 0 sets the cookie - * to expire with browser session. Time is in seconds, and is - * not a Unix timestamp. + * @param int|null $lifetime Sets the cookie lifetime for the session cookie. A null value + * will leave the system settings unchanged, 0 sets the cookie + * to expire with browser session. Time is in seconds, and is + * not a Unix timestamp. */ - public function stampNew(int $lifetime = null) + public function stampNew(?int $lifetime = null) { $this->stampCreated($lifetime); } @@ -158,10 +158,10 @@ public function setName(string $name) $this->name = $name; } - private function stampCreated(int $lifetime = null): void + private function stampCreated(?int $lifetime = null): void { $timeStamp = time(); $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp; - $this->meta[self::LIFETIME] = $lifetime ?? (int) ini_get('session.cookie_lifetime'); + $this->meta[self::LIFETIME] = $lifetime ?? (int) \ini_get('session.cookie_lifetime'); } } diff --git a/api/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php b/api/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php index c5c2bb073..77bb38f15 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php @@ -62,7 +62,7 @@ class MockArraySessionStorage implements SessionStorageInterface */ protected $bags = []; - public function __construct(string $name = 'MOCKSESSID', MetadataBag $metaBag = null) + public function __construct(string $name = 'MOCKSESSID', ?MetadataBag $metaBag = null) { $this->name = $name; $this->setMetadataBag($metaBag); @@ -94,7 +94,7 @@ public function start() /** * {@inheritdoc} */ - public function regenerate(bool $destroy = false, int $lifetime = null) + public function regenerate(bool $destroy = false, ?int $lifetime = null) { if (!$this->started) { $this->start(); @@ -204,7 +204,7 @@ public function isStarted() return $this->started; } - public function setMetadataBag(MetadataBag $bag = null) + public function setMetadataBag(?MetadataBag $bag = null) { if (null === $bag) { $bag = new MetadataBag(); diff --git a/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php b/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php index a1b7a31f2..8aeb9724c 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php @@ -13,7 +13,8 @@ /** * MockFileSessionStorage is used to mock sessions for - * functional testing when done in a single PHP process. + * functional testing where you may need to persist session data + * across separate PHP processes. * * No PHP session is actually started since a session can be initialized * and shutdown only once per PHP execution cycle and this class does @@ -29,7 +30,7 @@ class MockFileSessionStorage extends MockArraySessionStorage /** * @param string|null $savePath Path of directory to save session files */ - public function __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null) + public function __construct(?string $savePath = null, string $name = 'MOCKSESSID', ?MetadataBag $metaBag = null) { if (null === $savePath) { $savePath = sys_get_temp_dir(); @@ -67,7 +68,7 @@ public function start() /** * {@inheritdoc} */ - public function regenerate(bool $destroy = false, int $lifetime = null) + public function regenerate(bool $destroy = false, ?int $lifetime = null) { if (!$this->started) { $this->start(); diff --git a/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php b/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php index d0da1e169..900fa7cfa 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php @@ -28,7 +28,7 @@ class MockFileSessionStorageFactory implements SessionStorageFactoryInterface /** * @see MockFileSessionStorage constructor. */ - public function __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null) + public function __construct(?string $savePath = null, string $name = 'MOCKSESSID', ?MetadataBag $metaBag = null) { $this->savePath = $savePath; $this->name = $name; diff --git a/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php b/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php index 02467da9e..e7b42ed0b 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php @@ -97,7 +97,7 @@ class NativeSessionStorage implements SessionStorageInterface * * @param AbstractProxy|\SessionHandlerInterface|null $handler */ - public function __construct(array $options = [], $handler = null, MetadataBag $metaBag = null) + public function __construct(array $options = [], $handler = null, ?MetadataBag $metaBag = null) { if (!\extension_loaded('session')) { throw new \LogicException('PHP extension "session" is required.'); @@ -141,10 +141,46 @@ public function start() throw new \RuntimeException('Failed to start the session: already started by PHP.'); } - if (filter_var(ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOLEAN) && headers_sent($file, $line)) { + if (filter_var(\ini_get('session.use_cookies'), \FILTER_VALIDATE_BOOLEAN) && headers_sent($file, $line)) { throw new \RuntimeException(sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)); } + $sessionId = $_COOKIE[session_name()] ?? null; + /* + * Explanation of the session ID regular expression: `/^[a-zA-Z0-9,-]{22,250}$/`. + * + * ---------- Part 1 + * + * The part `[a-zA-Z0-9,-]` is related to the PHP ini directive `session.sid_bits_per_character` defined as 6. + * See https://www.php.net/manual/en/session.configuration.php#ini.session.sid-bits-per-character. + * Allowed values are integers such as: + * - 4 for range `a-f0-9` + * - 5 for range `a-v0-9` + * - 6 for range `a-zA-Z0-9,-` + * + * ---------- Part 2 + * + * The part `{22,250}` is related to the PHP ini directive `session.sid_length`. + * See https://www.php.net/manual/en/session.configuration.php#ini.session.sid-length. + * Allowed values are integers between 22 and 256, but we use 250 for the max. + * + * Where does the 250 come from? + * - The length of Windows and Linux filenames is limited to 255 bytes. Then the max must not exceed 255. + * - The session filename prefix is `sess_`, a 5 bytes string. Then the max must not exceed 255 - 5 = 250. + * + * ---------- Conclusion + * + * The parts 1 and 2 prevent the warning below: + * `PHP Warning: SessionHandler::read(): Session ID is too long or contains illegal characters. Only the A-Z, a-z, 0-9, "-", and "," characters are allowed.` + * + * The part 2 prevents the warning below: + * `PHP Warning: SessionHandler::read(): open(filepath, O_RDWR) failed: No such file or directory (2).` + */ + if ($sessionId && $this->saveHandler instanceof AbstractProxy && 'files' === $this->saveHandler->getSaveHandlerName() && !preg_match('/^[a-zA-Z0-9,-]{22,250}$/', $sessionId)) { + // the session ID in the header is invalid, create a new one + session_id(session_create_id()); + } + // ok to try and start the session if (!session_start()) { throw new \RuntimeException('Failed to start the session.'); @@ -197,7 +233,7 @@ public function setName(string $name) /** * {@inheritdoc} */ - public function regenerate(bool $destroy = false, int $lifetime = null) + public function regenerate(bool $destroy = false, ?int $lifetime = null) { // Cannot regenerate the session ID for non-active sessions. if (\PHP_SESSION_ACTIVE !== session_status()) { @@ -208,7 +244,7 @@ public function regenerate(bool $destroy = false, int $lifetime = null) return false; } - if (null !== $lifetime && $lifetime != ini_get('session.cookie_lifetime')) { + if (null !== $lifetime && $lifetime != \ini_get('session.cookie_lifetime')) { $this->save(); ini_set('session.cookie_lifetime', $lifetime); $this->start(); @@ -243,7 +279,7 @@ public function save() unset($_SESSION[$key]); } } - if ([$key = $this->metadataBag->getStorageKey()] === array_keys($_SESSION)) { + if ($_SESSION && [$key = $this->metadataBag->getStorageKey()] === array_keys($_SESSION)) { unset($_SESSION[$key]); } @@ -319,7 +355,7 @@ public function getBag(string $name) return $this->bags[$name]; } - public function setMetadataBag(MetadataBag $metaBag = null) + public function setMetadataBag(?MetadataBag $metaBag = null) { if (null === $metaBag) { $metaBag = new MetadataBag(); @@ -419,9 +455,10 @@ public function setOptions(array $options) */ public function setSaveHandler($saveHandler = null) { - if (!$saveHandler instanceof AbstractProxy && - !$saveHandler instanceof \SessionHandlerInterface && - null !== $saveHandler) { + if (!$saveHandler instanceof AbstractProxy + && !$saveHandler instanceof \SessionHandlerInterface + && null !== $saveHandler + ) { throw new \InvalidArgumentException('Must be instance of AbstractProxy; implement \SessionHandlerInterface; or be null.'); } @@ -450,7 +487,7 @@ public function setSaveHandler($saveHandler = null) * PHP takes the return value from the read() handler, unserializes it * and populates $_SESSION with the result automatically. */ - protected function loadSession(array &$session = null) + protected function loadSession(?array &$session = null) { if (null === $session) { $session = &$_SESSION; diff --git a/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php b/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php index a7d7411ff..48e65267e 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php @@ -29,7 +29,7 @@ class NativeSessionStorageFactory implements SessionStorageFactoryInterface /** * @see NativeSessionStorage constructor. */ - public function __construct(array $options = [], $handler = null, MetadataBag $metaBag = null, bool $secure = false) + public function __construct(array $options = [], $handler = null, ?MetadataBag $metaBag = null, bool $secure = false) { $this->options = $options; $this->handler = $handler; diff --git a/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php b/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php index 72dbef134..855d5e111 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php @@ -23,7 +23,7 @@ class PhpBridgeSessionStorage extends NativeSessionStorage /** * @param AbstractProxy|\SessionHandlerInterface|null $handler */ - public function __construct($handler = null, MetadataBag $metaBag = null) + public function __construct($handler = null, ?MetadataBag $metaBag = null) { if (!\extension_loaded('session')) { throw new \LogicException('PHP extension "session" is required.'); diff --git a/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php b/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php index 173ef71de..aa9326322 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php @@ -28,7 +28,7 @@ class PhpBridgeSessionStorageFactory implements SessionStorageFactoryInterface /** * @see PhpBridgeSessionStorage constructor. */ - public function __construct($handler = null, MetadataBag $metaBag = null, bool $secure = false) + public function __construct($handler = null, ?MetadataBag $metaBag = null, bool $secure = false) { $this->handler = $handler; $this->metaBag = $metaBag; diff --git a/api/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php b/api/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php index 9b0cdeb7f..0defa4a7a 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php @@ -11,6 +11,8 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Proxy; +use Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandler; + /** * @author Drak */ @@ -22,7 +24,7 @@ public function __construct(\SessionHandlerInterface $handler) { $this->handler = $handler; $this->wrapper = $handler instanceof \SessionHandler; - $this->saveHandlerName = $this->wrapper ? ini_get('session.save_handler') : 'user'; + $this->saveHandlerName = $this->wrapper || ($handler instanceof StrictSessionHandler && $handler->isWrapper()) ? \ini_get('session.save_handler') : 'user'; } /** diff --git a/api/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php b/api/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php index b7f66e7c7..70b7c6a15 100644 --- a/api/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php +++ b/api/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php @@ -80,17 +80,17 @@ public function setName(string $name); * Otherwise session data could get lost again for concurrent requests with the * new ID. One result could be that you get logged out after just logging in. * - * @param bool $destroy Destroy session when regenerating? - * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value - * will leave the system settings unchanged, 0 sets the cookie - * to expire with browser session. Time is in seconds, and is - * not a Unix timestamp. + * @param bool $destroy Destroy session when regenerating? + * @param int|null $lifetime Sets the cookie lifetime for the session cookie. A null value + * will leave the system settings unchanged, 0 sets the cookie + * to expire with browser session. Time is in seconds, and is + * not a Unix timestamp. * * @return bool * * @throws \RuntimeException If an error occurs while regenerating this storage */ - public function regenerate(bool $destroy = false, int $lifetime = null); + public function regenerate(bool $destroy = false, ?int $lifetime = null); /** * Force the session to be saved and closed. diff --git a/api/vendor/symfony/http-foundation/StreamedResponse.php b/api/vendor/symfony/http-foundation/StreamedResponse.php index 676cd6687..b42330dcd 100644 --- a/api/vendor/symfony/http-foundation/StreamedResponse.php +++ b/api/vendor/symfony/http-foundation/StreamedResponse.php @@ -30,7 +30,7 @@ class StreamedResponse extends Response protected $streamed; private $headersSent; - public function __construct(callable $callback = null, int $status = 200, array $headers = []) + public function __construct(?callable $callback = null, int $status = 200, array $headers = []) { parent::__construct(null, $status, $headers); @@ -114,9 +114,9 @@ public function sendContent() /** * {@inheritdoc} * - * @throws \LogicException when the content is not null - * * @return $this + * + * @throws \LogicException when the content is not null */ public function setContent(?string $content) { diff --git a/api/vendor/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php b/api/vendor/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php index 554e1a160..939925b98 100644 --- a/api/vendor/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php +++ b/api/vendor/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php @@ -22,7 +22,7 @@ final class ResponseCookieValueSame extends Constraint private $path; private $domain; - public function __construct(string $name, string $value, string $path = '/', string $domain = null) + public function __construct(string $name, string $value, string $path = '/', ?string $domain = null) { $this->name = $name; $this->value = $value; @@ -59,7 +59,7 @@ protected function matches($response): bool return false; } - return $this->value === $cookie->getValue(); + return $this->value === (string) $cookie->getValue(); } /** diff --git a/api/vendor/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php b/api/vendor/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php index eae9e271b..9d6e58c8d 100644 --- a/api/vendor/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php +++ b/api/vendor/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php @@ -21,7 +21,7 @@ final class ResponseHasCookie extends Constraint private $path; private $domain; - public function __construct(string $name, string $path = '/', string $domain = null) + public function __construct(string $name, string $path = '/', ?string $domain = null) { $this->name = $name; $this->path = $path; diff --git a/api/vendor/symfony/http-foundation/UrlHelper.php b/api/vendor/symfony/http-foundation/UrlHelper.php index c15f101cd..90659947d 100644 --- a/api/vendor/symfony/http-foundation/UrlHelper.php +++ b/api/vendor/symfony/http-foundation/UrlHelper.php @@ -12,6 +12,7 @@ namespace Symfony\Component\HttpFoundation; use Symfony\Component\Routing\RequestContext; +use Symfony\Component\Routing\RequestContextAwareInterface; /** * A helper service for manipulating URLs within and outside the request scope. @@ -23,8 +24,15 @@ final class UrlHelper private $requestStack; private $requestContext; - public function __construct(RequestStack $requestStack, RequestContext $requestContext = null) + /** + * @param RequestContextAwareInterface|RequestContext|null $requestContext + */ + public function __construct(RequestStack $requestStack, $requestContext = null) { + if (null !== $requestContext && !$requestContext instanceof RequestContext && !$requestContext instanceof RequestContextAwareInterface) { + throw new \TypeError(__METHOD__.': Argument #2 ($requestContext) must of type Symfony\Component\Routing\RequestContextAwareInterface|Symfony\Component\Routing\RequestContext|null, '.get_debug_type($requestContext).' given.'); + } + $this->requestStack = $requestStack; $this->requestContext = $requestContext; } @@ -73,28 +81,36 @@ public function getRelativePath(string $path): string private function getAbsoluteUrlFromContext(string $path): string { - if (null === $this->requestContext || '' === $host = $this->requestContext->getHost()) { + if (null === $context = $this->requestContext) { + return $path; + } + + if ($context instanceof RequestContextAwareInterface) { + $context = $context->getContext(); + } + + if ('' === $host = $context->getHost()) { return $path; } - $scheme = $this->requestContext->getScheme(); + $scheme = $context->getScheme(); $port = ''; - if ('http' === $scheme && 80 !== $this->requestContext->getHttpPort()) { - $port = ':'.$this->requestContext->getHttpPort(); - } elseif ('https' === $scheme && 443 !== $this->requestContext->getHttpsPort()) { - $port = ':'.$this->requestContext->getHttpsPort(); + if ('http' === $scheme && 80 !== $context->getHttpPort()) { + $port = ':'.$context->getHttpPort(); + } elseif ('https' === $scheme && 443 !== $context->getHttpsPort()) { + $port = ':'.$context->getHttpsPort(); } if ('#' === $path[0]) { - $queryString = $this->requestContext->getQueryString(); - $path = $this->requestContext->getPathInfo().($queryString ? '?'.$queryString : '').$path; + $queryString = $context->getQueryString(); + $path = $context->getPathInfo().($queryString ? '?'.$queryString : '').$path; } elseif ('?' === $path[0]) { - $path = $this->requestContext->getPathInfo().$path; + $path = $context->getPathInfo().$path; } if ('/' !== $path[0]) { - $path = rtrim($this->requestContext->getBaseUrl(), '/').'/'.$path; + $path = rtrim($context->getBaseUrl(), '/').'/'.$path; } return $scheme.'://'.$host.$port.$path; diff --git a/api/vendor/symfony/http-foundation/composer.json b/api/vendor/symfony/http-foundation/composer.json index d54bbfd16..a2e43a99c 100644 --- a/api/vendor/symfony/http-foundation/composer.json +++ b/api/vendor/symfony/http-foundation/composer.json @@ -22,10 +22,13 @@ "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "predis/predis": "~1.0", + "predis/predis": "^1.0|^2.0", "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0" + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" }, "suggest" : { "symfony/mime": "To use the file extension guesser" diff --git a/api/vendor/symfony/http-kernel/CHANGELOG.md b/api/vendor/symfony/http-kernel/CHANGELOG.md index 129201e3c..d0dc2076c 100644 --- a/api/vendor/symfony/http-kernel/CHANGELOG.md +++ b/api/vendor/symfony/http-kernel/CHANGELOG.md @@ -5,7 +5,7 @@ CHANGELOG --- * Add the ability to enable the profiler using a request query parameter, body parameter or attribute - * Deprecate `AbstractTestSessionListener::getSession` inject a session in the request instead + * Deprecate `AbstractTestSessionListener` and `TestSessionListener`, use `AbstractSessionListener` and `SessionListener` instead * Deprecate the `fileLinkFormat` parameter of `DebugHandlersListener` * Add support for configuring log level, and status code by exception class * Allow ignoring "kernel.reset" methods that don't exist with "on_invalid" attribute diff --git a/api/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php b/api/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php index 67f9ed50b..730f0f7bb 100644 --- a/api/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php +++ b/api/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php @@ -29,7 +29,7 @@ class CacheWarmerAggregate implements CacheWarmerInterface /** * @param iterable $warmers */ - public function __construct(iterable $warmers = [], bool $debug = false, string $deprecationLogsFilepath = null) + public function __construct(iterable $warmers = [], bool $debug = false, ?string $deprecationLogsFilepath = null) { $this->warmers = $warmers; $this->debug = $debug; diff --git a/api/vendor/symfony/http-kernel/Config/FileLocator.php b/api/vendor/symfony/http-kernel/Config/FileLocator.php index 6eca98635..4b9843753 100644 --- a/api/vendor/symfony/http-kernel/Config/FileLocator.php +++ b/api/vendor/symfony/http-kernel/Config/FileLocator.php @@ -33,7 +33,7 @@ public function __construct(KernelInterface $kernel) /** * {@inheritdoc} */ - public function locate(string $file, string $currentPath = null, bool $first = true) + public function locate(string $file, ?string $currentPath = null, bool $first = true) { if (isset($file[0]) && '@' === $file[0]) { $resource = $this->kernel->locateResource($file); diff --git a/api/vendor/symfony/http-kernel/Controller/ArgumentResolver.php b/api/vendor/symfony/http-kernel/Controller/ArgumentResolver.php index a54140b7e..76ef79741 100644 --- a/api/vendor/symfony/http-kernel/Controller/ArgumentResolver.php +++ b/api/vendor/symfony/http-kernel/Controller/ArgumentResolver.php @@ -33,7 +33,7 @@ final class ArgumentResolver implements ArgumentResolverInterface /** * @param iterable $argumentValueResolvers */ - public function __construct(ArgumentMetadataFactoryInterface $argumentMetadataFactory = null, iterable $argumentValueResolvers = []) + public function __construct(?ArgumentMetadataFactoryInterface $argumentMetadataFactory = null, iterable $argumentValueResolvers = []) { $this->argumentMetadataFactory = $argumentMetadataFactory ?? new ArgumentMetadataFactory(); $this->argumentValueResolvers = $argumentValueResolvers ?: self::getDefaultArgumentValueResolvers(); diff --git a/api/vendor/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php b/api/vendor/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php index d4971cc1a..48ea6e742 100644 --- a/api/vendor/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php +++ b/api/vendor/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php @@ -69,8 +69,9 @@ public function resolve(Request $request, ArgumentMetadata $argument): iterable } if (!$this->container->has($controller)) { - $i = strrpos($controller, ':'); - $controller = substr($controller, 0, $i).strtolower(substr($controller, $i)); + $controller = (false !== $i = strrpos($controller, ':')) + ? substr($controller, 0, $i).strtolower(substr($controller, $i)) + : $controller.'::__invoke'; } $what = sprintf('argument $%s of "%s()"', $argument->getName(), $controller); diff --git a/api/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php b/api/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php index 3b9468465..b7f77d00b 100644 --- a/api/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php +++ b/api/vendor/symfony/http-kernel/Controller/ContainerControllerResolver.php @@ -25,7 +25,7 @@ class ContainerControllerResolver extends ControllerResolver { protected $container; - public function __construct(ContainerInterface $container, LoggerInterface $logger = null) + public function __construct(ContainerInterface $container, ?LoggerInterface $logger = null) { $this->container = $container; diff --git a/api/vendor/symfony/http-kernel/Controller/ControllerResolver.php b/api/vendor/symfony/http-kernel/Controller/ControllerResolver.php index 8abbadd48..e6b4b8055 100644 --- a/api/vendor/symfony/http-kernel/Controller/ControllerResolver.php +++ b/api/vendor/symfony/http-kernel/Controller/ControllerResolver.php @@ -25,7 +25,7 @@ class ControllerResolver implements ControllerResolverInterface { private $logger; - public function __construct(LoggerInterface $logger = null) + public function __construct(?LoggerInterface $logger = null) { $this->logger = $logger; } diff --git a/api/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php b/api/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php index e22cf082c..859cf3a6f 100644 --- a/api/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php +++ b/api/vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php @@ -35,10 +35,10 @@ public function getArguments(Request $request, callable $controller) { $e = $this->stopwatch->start('controller.get_arguments'); - $ret = $this->resolver->getArguments($request, $controller); - - $e->stop(); - - return $ret; + try { + return $this->resolver->getArguments($request, $controller); + } finally { + $e->stop(); + } } } diff --git a/api/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php b/api/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php index bf6b6aa1f..013dfe236 100644 --- a/api/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php +++ b/api/vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php @@ -35,10 +35,10 @@ public function getController(Request $request) { $e = $this->stopwatch->start('controller.get_callable'); - $ret = $this->resolver->getController($request); - - $e->stop(); - - return $ret; + try { + return $this->resolver->getController($request); + } finally { + $e->stop(); + } } } diff --git a/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php b/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php index 1a9ebc0c3..5046c84b0 100644 --- a/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php +++ b/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php @@ -107,9 +107,9 @@ public function isNullable() /** * Returns the default value of the argument. * - * @throws \LogicException if no default value is present; {@see self::hasDefaultValue()} - * * @return mixed + * + * @throws \LogicException if no default value is present; {@see self::hasDefaultValue()} */ public function getDefaultValue() { @@ -137,7 +137,7 @@ public function getAttribute(): ?ArgumentInterface /** * @return object[] */ - public function getAttributes(string $name = null, int $flags = 0): array + public function getAttributes(?string $name = null, int $flags = 0): array { if (!$name) { return $this->attributes; diff --git a/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php b/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php index 0af1d9071..00e673349 100644 --- a/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php +++ b/api/vendor/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php @@ -27,10 +27,15 @@ public function createArgumentMetadata($controller): array if (\is_array($controller)) { $reflection = new \ReflectionMethod($controller[0], $controller[1]); + $class = $reflection->class; } elseif (\is_object($controller) && !$controller instanceof \Closure) { - $reflection = (new \ReflectionObject($controller))->getMethod('__invoke'); + $reflection = new \ReflectionMethod($controller, '__invoke'); + $class = $reflection->class; } else { $reflection = new \ReflectionFunction($controller); + if ($class = str_contains($reflection->name, '{closure') ? null : (\PHP_VERSION_ID >= 80111 ? $reflection->getClosureCalledClass() : $reflection->getClosureScopeClass())) { + $class = $class->name; + } } foreach ($reflection->getParameters() as $param) { @@ -43,7 +48,7 @@ public function createArgumentMetadata($controller): array } } - $arguments[] = new ArgumentMetadata($param->getName(), $this->getType($param, $reflection), $param->isVariadic(), $param->isDefaultValueAvailable(), $param->isDefaultValueAvailable() ? $param->getDefaultValue() : null, $param->allowsNull(), $attributes); + $arguments[] = new ArgumentMetadata($param->getName(), $this->getType($param, $class), $param->isVariadic(), $param->isDefaultValueAvailable(), $param->isDefaultValueAvailable() ? $param->getDefaultValue() : null, $param->allowsNull(), $attributes); } return $arguments; @@ -52,20 +57,19 @@ public function createArgumentMetadata($controller): array /** * Returns an associated type to the given parameter if available. */ - private function getType(\ReflectionParameter $parameter, \ReflectionFunctionAbstract $function): ?string + private function getType(\ReflectionParameter $parameter, ?string $class): ?string { if (!$type = $parameter->getType()) { return null; } $name = $type instanceof \ReflectionNamedType ? $type->getName() : (string) $type; - if ($function instanceof \ReflectionMethod) { - $lcName = strtolower($name); - switch ($lcName) { + if (null !== $class) { + switch (strtolower($name)) { case 'self': - return $function->getDeclaringClass()->name; + return $class; case 'parent': - return ($parent = $function->getDeclaringClass()->getParentClass()) ? $parent->name : null; + return get_parent_class($class) ?: null; } } diff --git a/api/vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php index fda6a4eaa..31764f09f 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/AjaxDataCollector.php @@ -21,7 +21,7 @@ */ class AjaxDataCollector extends DataCollector { - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { // all collecting is done client side } diff --git a/api/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php index d0f2c7c25..72f79c5bf 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/ConfigDataCollector.php @@ -32,7 +32,7 @@ class ConfigDataCollector extends DataCollector implements LateDataCollectorInte /** * Sets the Kernel associated with this Request. */ - public function setKernel(KernelInterface $kernel = null) + public function setKernel(?KernelInterface $kernel = null) { $this->kernel = $kernel; } @@ -40,7 +40,7 @@ public function setKernel(KernelInterface $kernel = null) /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { $eom = \DateTime::createFromFormat('d/m/Y', '01/'.Kernel::END_OF_MAINTENANCE); $eol = \DateTime::createFromFormat('d/m/Y', '01/'.Kernel::END_OF_LIFE); @@ -60,8 +60,8 @@ public function collect(Request $request, Response $response, \Throwable $except 'php_intl_locale' => class_exists(\Locale::class, false) && \Locale::getDefault() ? \Locale::getDefault() : 'n/a', 'php_timezone' => date_default_timezone_get(), 'xdebug_enabled' => \extension_loaded('xdebug'), - 'apcu_enabled' => \extension_loaded('apcu') && filter_var(ini_get('apc.enabled'), \FILTER_VALIDATE_BOOLEAN), - 'zend_opcache_enabled' => \extension_loaded('Zend OPcache') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN), + 'apcu_enabled' => \extension_loaded('apcu') && filter_var(\ini_get('apc.enabled'), \FILTER_VALIDATE_BOOLEAN), + 'zend_opcache_enabled' => \extension_loaded('Zend OPcache') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN), 'bundles' => [], 'sapi_name' => \PHP_SAPI, ]; diff --git a/api/vendor/symfony/http-kernel/DataCollector/DataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/DataCollector.php index ccaf66da0..14a6f26fd 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/DataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/DataCollector.php @@ -70,9 +70,21 @@ protected function getCasters() $casters = [ '*' => function ($v, array $a, Stub $s, $isNested) { if (!$v instanceof Stub) { + $b = $a; foreach ($a as $k => $v) { - if (\is_object($v) && !$v instanceof \DateTimeInterface && !$v instanceof Stub) { - $a[$k] = new CutStub($v); + if (!\is_object($v) || $v instanceof \DateTimeInterface || $v instanceof Stub) { + continue; + } + + try { + $a[$k] = $s = new CutStub($v); + + if ($b[$k] === $s) { + // we've hit a non-typed reference + $a[$k] = $v; + } + } catch (\TypeError $e) { + // we've hit a typed reference } } } diff --git a/api/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php b/api/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php index 1cb865fd6..8aca94802 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php +++ b/api/vendor/symfony/http-kernel/DataCollector/DataCollectorInterface.php @@ -25,7 +25,7 @@ interface DataCollectorInterface extends ResetInterface /** * Collects data for the given Request and Response. */ - public function collect(Request $request, Response $response, \Throwable $exception = null); + public function collect(Request $request, Response $response, ?\Throwable $exception = null); /** * Returns the name of the collector. diff --git a/api/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php index 8e052d9d5..3311bd400 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/DumpDataCollector.php @@ -47,11 +47,12 @@ class DumpDataCollector extends DataCollector implements DataDumperInterface * @param string|FileLinkFormatter|null $fileLinkFormat * @param DataDumperInterface|Connection|null $dumper */ - public function __construct(Stopwatch $stopwatch = null, $fileLinkFormat = null, string $charset = null, RequestStack $requestStack = null, $dumper = null) + public function __construct(?Stopwatch $stopwatch = null, $fileLinkFormat = null, ?string $charset = null, ?RequestStack $requestStack = null, $dumper = null) { + $fileLinkFormat = $fileLinkFormat ?: \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); $this->stopwatch = $stopwatch; - $this->fileLinkFormat = $fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); - $this->charset = $charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8'; + $this->fileLinkFormat = $fileLinkFormat instanceof FileLinkFormatter && false === $fileLinkFormat->format('', 0) ? false : $fileLinkFormat; + $this->charset = $charset ?: \ini_get('php.output_encoding') ?: \ini_get('default_charset') ?: 'UTF-8'; $this->requestStack = $requestStack; $this->dumper = $dumper; @@ -100,7 +101,7 @@ public function dump(Data $data) } } - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { if (!$this->dataCount) { $this->data = []; @@ -115,11 +116,11 @@ public function collect(Request $request, Response $response, \Throwable $except if (!$this->requestStack || !$response->headers->has('X-Debug-Token') || $response->isRedirection() - || ($response->headers->has('Content-Type') && !str_contains($response->headers->get('Content-Type'), 'html')) + || ($response->headers->has('Content-Type') && !str_contains($response->headers->get('Content-Type') ?? '', 'html')) || 'html' !== $request->getRequestFormat() || false === strripos($response->getContent(), '') ) { - if ($response->headers->has('Content-Type') && str_contains($response->headers->get('Content-Type'), 'html')) { + if ($response->headers->has('Content-Type') && str_contains($response->headers->get('Content-Type') ?? '', 'html')) { $dumper = new HtmlDumper('php://output', $this->charset); $dumper->setDisplayOptions(['fileLinkFormat' => $this->fileLinkFormat]); } else { @@ -232,7 +233,7 @@ public function __destruct() $h = headers_list(); $i = \count($h); - array_unshift($h, 'Content-Type: '.ini_get('default_mimetype')); + array_unshift($h, 'Content-Type: '.\ini_get('default_mimetype')); while (0 !== stripos($h[$i], 'Content-Type:')) { --$i; } diff --git a/api/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php index a81355336..3f6ef4f7c 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/EventDataCollector.php @@ -30,7 +30,7 @@ class EventDataCollector extends DataCollector implements LateDataCollectorInter private $requestStack; private $currentRequest; - public function __construct(EventDispatcherInterface $dispatcher = null, RequestStack $requestStack = null) + public function __construct(?EventDispatcherInterface $dispatcher = null, ?RequestStack $requestStack = null) { $this->dispatcher = $dispatcher; $this->requestStack = $requestStack; @@ -39,7 +39,7 @@ public function __construct(EventDispatcherInterface $dispatcher = null, Request /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { $this->currentRequest = $this->requestStack && $this->requestStack->getMainRequest() !== $request ? $request : null; $this->data = [ diff --git a/api/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php index 14bbbb364..d93b81395 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/ExceptionDataCollector.php @@ -25,7 +25,7 @@ class ExceptionDataCollector extends DataCollector /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { if (null !== $exception) { $this->data = [ diff --git a/api/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php index e5172247c..0d6df48cd 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/LoggerDataCollector.php @@ -30,7 +30,7 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte private $requestStack; private $processedLogs; - public function __construct(object $logger = null, string $containerPathPrefix = null, RequestStack $requestStack = null) + public function __construct(?object $logger = null, ?string $containerPathPrefix = null, ?RequestStack $requestStack = null) { if (null !== $logger && $logger instanceof DebugLoggerInterface) { $this->logger = $logger; @@ -43,7 +43,7 @@ public function __construct(object $logger = null, string $containerPathPrefix = /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { $this->currentRequest = $this->requestStack && $this->requestStack->getMainRequest() !== $request ? $request : null; } @@ -108,7 +108,7 @@ public function getProcessedLogs() $logs[] = [ 'type' => $logType, - 'errorCounter' => isset($rawLogData['errorCounter']) ? $rawLogData['errorCounter']->getValue() : 1, + 'errorCount' => $rawLog['errorCount'] ?? 1, 'timestamp' => $rawLogData['timestamp_rfc3339']->getValue(), 'priority' => $rawLogData['priority']->getValue(), 'priorityName' => $rawLogData['priorityName']->getValue(), @@ -133,6 +133,7 @@ public function getFilters() 'priority' => [ 'Debug' => 100, 'Info' => 200, + 'Notice' => 250, 'Warning' => 300, 'Error' => 400, 'Critical' => 500, @@ -143,7 +144,7 @@ public function getFilters() $allChannels = []; foreach ($this->getProcessedLogs() as $log) { - if ('' === trim($log['channel'])) { + if ('' === trim($log['channel'] ?? '')) { continue; } @@ -221,9 +222,9 @@ private function getContainerDeprecationLogs(): array return $logs; } - private function getContainerCompilerLogs(string $compilerLogsFilepath = null): array + private function getContainerCompilerLogs(?string $compilerLogsFilepath = null): array { - if (!is_file($compilerLogsFilepath)) { + if (!$compilerLogsFilepath || !is_file($compilerLogsFilepath)) { return []; } diff --git a/api/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php index 4b64a5731..62d048ad1 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/MemoryDataCollector.php @@ -29,7 +29,7 @@ public function __construct() /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { $this->updateMemoryUsage(); } @@ -41,7 +41,7 @@ public function reset() { $this->data = [ 'memory' => 0, - 'memory_limit' => $this->convertToBytes(ini_get('memory_limit')), + 'memory_limit' => $this->convertToBytes(\ini_get('memory_limit')), ]; } @@ -100,11 +100,11 @@ private function convertToBytes(string $memoryLimit) switch (substr($memoryLimit, -1)) { case 't': $max *= 1024; - // no break + // no break case 'g': $max *= 1024; - // no break + // no break case 'm': $max *= 1024; - // no break + // no break case 'k': $max *= 1024; } diff --git a/api/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php index 523f5c957..2a4392aa8 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php @@ -38,7 +38,7 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter private $sessionUsages = []; private $requestStack; - public function __construct(RequestStack $requestStack = null) + public function __construct(?RequestStack $requestStack = null) { $this->controllers = new \SplObjectStorage(); $this->requestStack = $requestStack; @@ -47,7 +47,7 @@ public function __construct(RequestStack $requestStack = null) /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { // attributes are serialized and as they can be anything, they need to be converted to strings. $attributes = []; @@ -66,7 +66,7 @@ public function collect(Request $request, Response $response, \Throwable $except $sessionMetadata = []; $sessionAttributes = []; $flashes = []; - if ($request->hasSession()) { + if (!$request->attributes->getBoolean('_stateless') && $request->hasSession()) { $session = $request->getSession(); if ($session->isStarted()) { $sessionMetadata['Created'] = date(\DATE_RFC822, $session->getMetadataBag()->getCreated()); @@ -110,7 +110,7 @@ public function collect(Request $request, Response $response, \Throwable $except 'session_metadata' => $sessionMetadata, 'session_attributes' => $sessionAttributes, 'session_usages' => array_values($this->sessionUsages), - 'stateless_check' => $this->requestStack && $this->requestStack->getMainRequest()->attributes->get('_stateless', false), + 'stateless_check' => $this->requestStack && ($mainRequest = $this->requestStack->getMainRequest()) && $mainRequest->attributes->get('_stateless', false), 'flashes' => $flashes, 'path_info' => $request->getPathInfo(), 'controller' => 'n/a', @@ -474,12 +474,12 @@ private function parseController($controller) 'line' => $r->getStartLine(), ]; - if (str_contains($r->name, '{closure}')) { + if (str_contains($r->name, '{closure')) { return $controller; } $controller['method'] = $r->name; - if ($class = $r->getClosureScopeClass()) { + if ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { $controller['class'] = $class->name; } else { return $r->name; diff --git a/api/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php index 372ede037..f3735fe56 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/RouterDataCollector.php @@ -36,7 +36,7 @@ public function __construct() * * @final */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { if ($response instanceof RedirectResponse) { $this->data['redirect'] = true; diff --git a/api/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php b/api/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php index 43799060f..13a62e632 100644 --- a/api/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php +++ b/api/vendor/symfony/http-kernel/DataCollector/TimeDataCollector.php @@ -27,16 +27,17 @@ class TimeDataCollector extends DataCollector implements LateDataCollectorInterf private $kernel; private $stopwatch; - public function __construct(KernelInterface $kernel = null, Stopwatch $stopwatch = null) + public function __construct(?KernelInterface $kernel = null, ?Stopwatch $stopwatch = null) { $this->kernel = $kernel; $this->stopwatch = $stopwatch; + $this->data = ['events' => [], 'stopwatch_installed' => false, 'start_time' => 0]; } /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { if (null !== $this->kernel) { $startTime = $this->kernel->getStartTime(); @@ -57,7 +58,7 @@ public function collect(Request $request, Response $response, \Throwable $except */ public function reset() { - $this->data = []; + $this->data = ['events' => [], 'stopwatch_installed' => false, 'start_time' => 0]; if (null !== $this->stopwatch) { $this->stopwatch->reset(); diff --git a/api/vendor/symfony/http-kernel/Debug/FileLinkFormatter.php b/api/vendor/symfony/http-kernel/Debug/FileLinkFormatter.php index 0e3df040f..8ec7e38d3 100644 --- a/api/vendor/symfony/http-kernel/Debug/FileLinkFormatter.php +++ b/api/vendor/symfony/http-kernel/Debug/FileLinkFormatter.php @@ -40,12 +40,12 @@ class FileLinkFormatter private $urlFormat; /** - * @param string|\Closure $urlFormat the URL format, or a closure that returns it on-demand + * @param string|array|null $fileLinkFormat + * @param string|\Closure $urlFormat the URL format, or a closure that returns it on-demand */ - public function __construct(string $fileLinkFormat = null, RequestStack $requestStack = null, string $baseDir = null, $urlFormat = null) + public function __construct($fileLinkFormat = null, ?RequestStack $requestStack = null, ?string $baseDir = null, $urlFormat = null) { - $fileLinkFormat = (self::FORMATS[$fileLinkFormat] ?? $fileLinkFormat) ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); - if ($fileLinkFormat && !\is_array($fileLinkFormat)) { + if (!\is_array($fileLinkFormat) && $fileLinkFormat = (self::FORMATS[$fileLinkFormat] ?? $fileLinkFormat) ?: \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')) { $i = strpos($f = $fileLinkFormat, '&', max(strrpos($f, '%f'), strrpos($f, '%l'))) ?: \strlen($f); $fileLinkFormat = [substr($f, 0, $i)] + preg_split('/&([^>]++)>/', substr($f, $i), -1, \PREG_SPLIT_DELIM_CAPTURE); } diff --git a/api/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php b/api/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php index 4f5796f51..0bdba44b0 100644 --- a/api/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php +++ b/api/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php @@ -24,6 +24,7 @@ use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\TypedReference; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Session\SessionInterface; /** @@ -69,6 +70,7 @@ public function process(ContainerBuilder $container) foreach ($container->findTaggedServiceIds($this->controllerTag, true) as $id => $tags) { $def = $container->getDefinition($id); $def->setPublic(true); + $def->setLazy(false); $class = $def->getClass(); $autowire = $def->isAutowired(); $bindings = $def->getBindings(); @@ -164,17 +166,17 @@ public function process(ContainerBuilder $container) $args[$p->name] = $bindingValue; } + continue; + } elseif (!$type || !$autowire || '\\' !== $target[0]) { continue; } elseif (is_subclass_of($type, \UnitEnum::class)) { // do not attempt to register enum typed arguments if not already present in bindings continue; - } elseif (!$type || !$autowire || '\\' !== $target[0]) { - continue; } elseif (!$p->allowsNull()) { $invalidBehavior = ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE; } - if (Request::class === $type || SessionInterface::class === $type) { + if (Request::class === $type || SessionInterface::class === $type || Response::class === $type) { continue; } @@ -192,7 +194,7 @@ public function process(ContainerBuilder $container) $args[$p->name] = new Reference($erroredId, ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE); } else { $target = ltrim($target, '\\'); - $args[$p->name] = $type ? new TypedReference($target, $type, $invalidBehavior, $p->name) : new Reference($target, $invalidBehavior); + $args[$p->name] = $type ? new TypedReference($target, $type, $invalidBehavior, Target::parseName($p)) : new Reference($target, $invalidBehavior); } } // register the maps as a per-method service-locators diff --git a/api/vendor/symfony/http-kernel/Event/KernelEvent.php b/api/vendor/symfony/http-kernel/Event/KernelEvent.php index d9d425e11..87933187a 100644 --- a/api/vendor/symfony/http-kernel/Event/KernelEvent.php +++ b/api/vendor/symfony/http-kernel/Event/KernelEvent.php @@ -16,7 +16,7 @@ use Symfony\Contracts\EventDispatcher\Event; /** - * Base class for events thrown in the HttpKernel component. + * Base class for events dispatched in the HttpKernel component. * * @author Bernhard Schussek */ diff --git a/api/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php b/api/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php index 7f69ed79c..a339f44a0 100644 --- a/api/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php @@ -36,13 +36,15 @@ * * @author Johannes M. Schmitt * @author Tobias Schultze - * - * @internal */ abstract class AbstractSessionListener implements EventSubscriberInterface, ResetInterface { public const NO_AUTO_CACHE_CONTROL_HEADER = 'Symfony-Session-NoAutoCacheControl'; + + /** + * @internal + */ protected $container; private $sessionUsageStack = []; private $debug; @@ -52,13 +54,19 @@ abstract class AbstractSessionListener implements EventSubscriberInterface, Rese */ private $sessionOptions; - public function __construct(ContainerInterface $container = null, bool $debug = false, array $sessionOptions = []) + /** + * @internal + */ + public function __construct(?ContainerInterface $container = null, bool $debug = false, array $sessionOptions = []) { $this->container = $container; $this->debug = $debug; $this->sessionOptions = $sessionOptions; } + /** + * @internal + */ public function onKernelRequest(RequestEvent $event) { if (!$event->isMainRequest()) { @@ -72,15 +80,18 @@ public function onKernelRequest(RequestEvent $event) $request->setSessionFactory(function () use (&$sess, $request) { if (!$sess) { $sess = $this->getSession(); - } - - /* - * For supporting sessions in php runtime with runners like roadrunner or swoole the session - * cookie need read from the cookie bag and set on the session storage. - */ - if ($sess && !$sess->isStarted()) { - $sessionId = $request->cookies->get($sess->getName(), ''); - $sess->setId($sessionId); + $request->setSession($sess); + + /* + * For supporting sessions in php runtime with runners like roadrunner or swoole, the session + * cookie needs to be read from the cookie bag and set on the session storage. + * + * Do not set it when a native php session is active. + */ + if ($sess && !$sess->isStarted() && \PHP_SESSION_ACTIVE !== session_status()) { + $sessionId = $sess->getId() ?: $request->cookies->get($sess->getName(), ''); + $sess->setId($sessionId); + } } return $sess; @@ -91,6 +102,9 @@ public function onKernelRequest(RequestEvent $event) $this->sessionUsageStack[] = $session instanceof Session ? $session->getUsageIndex() : 0; } + /** + * @internal + */ public function onKernelResponse(ResponseEvent $event) { if (!$event->isMainRequest() || (!$this->container->has('initialized_session') && !$event->getRequest()->hasSession())) { @@ -102,7 +116,7 @@ public function onKernelResponse(ResponseEvent $event) // Always remove the internal header if present $response->headers->remove(self::NO_AUTO_CACHE_CONTROL_HEADER); - if (!$session = $this->container && $this->container->has('initialized_session') ? $this->container->get('initialized_session') : $event->getRequest()->getSession()) { + if (!$session = $this->container && $this->container->has('initialized_session') ? $this->container->get('initialized_session') : ($event->getRequest()->hasSession() ? $event->getRequest()->getSession() : null)) { return; } @@ -146,41 +160,50 @@ public function onKernelResponse(ResponseEvent $event) $sessionCookieSecure = $sessionOptions['cookie_secure'] ?? false; $sessionCookieHttpOnly = $sessionOptions['cookie_httponly'] ?? true; $sessionCookieSameSite = $sessionOptions['cookie_samesite'] ?? Cookie::SAMESITE_LAX; + $sessionUseCookies = $sessionOptions['use_cookies'] ?? true; SessionUtils::popSessionCookie($sessionName, $sessionId); - $request = $event->getRequest(); - $requestSessionCookieId = $request->cookies->get($sessionName); - - if ($requestSessionCookieId && $session->isEmpty()) { - $response->headers->clearCookie( - $sessionName, - $sessionCookiePath, - $sessionCookieDomain, - $sessionCookieSecure, - $sessionCookieHttpOnly, - $sessionCookieSameSite - ); - } elseif ($sessionId !== $requestSessionCookieId) { - $expire = 0; - $lifetime = $sessionOptions['cookie_lifetime'] ?? null; - if ($lifetime) { - $expire = time() + $lifetime; - } - - $response->headers->setCookie( - Cookie::create( + if ($sessionUseCookies) { + $request = $event->getRequest(); + $requestSessionCookieId = $request->cookies->get($sessionName); + + $isSessionEmpty = $session->isEmpty() && empty($_SESSION); // checking $_SESSION to keep compatibility with native sessions + if ($requestSessionCookieId && $isSessionEmpty) { + // PHP internally sets the session cookie value to "deleted" when setcookie() is called with empty string $value argument + // which happens in \Symfony\Component\HttpFoundation\Session\Storage\Handler\AbstractSessionHandler::destroy + // when the session gets invalidated (for example on logout) so we must handle this case here too + // otherwise we would send two Set-Cookie headers back with the response + SessionUtils::popSessionCookie($sessionName, 'deleted'); + $response->headers->clearCookie( $sessionName, - $sessionId, - $expire, $sessionCookiePath, $sessionCookieDomain, $sessionCookieSecure, $sessionCookieHttpOnly, - false, $sessionCookieSameSite - ) - ); + ); + } elseif ($sessionId !== $requestSessionCookieId && !$isSessionEmpty) { + $expire = 0; + $lifetime = $sessionOptions['cookie_lifetime'] ?? null; + if ($lifetime) { + $expire = time() + $lifetime; + } + + $response->headers->setCookie( + Cookie::create( + $sessionName, + $sessionId, + $expire, + $sessionCookiePath, + $sessionCookieDomain, + $sessionCookieSecure, + $sessionCookieHttpOnly, + false, + $sessionCookieSameSite + ) + ); + } } } @@ -189,10 +212,11 @@ public function onKernelResponse(ResponseEvent $event) } if ($autoCacheControl) { + $maxAge = $response->headers->hasCacheControlDirective('public') ? 0 : (int) $response->getMaxAge(); $response - ->setExpires(new \DateTime()) + ->setExpires(new \DateTimeImmutable('+'.$maxAge.' seconds')) ->setPrivate() - ->setMaxAge(0) + ->setMaxAge($maxAge) ->headers->addCacheControlDirective('must-revalidate'); } @@ -209,6 +233,9 @@ public function onKernelResponse(ResponseEvent $event) } } + /** + * @internal + */ public function onFinishRequest(FinishRequestEvent $event) { if ($event->isMainRequest()) { @@ -216,6 +243,9 @@ public function onFinishRequest(FinishRequestEvent $event) } } + /** + * @internal + */ public function onSessionUsage(): void { if (!$this->debug) { @@ -251,6 +281,9 @@ public function onSessionUsage(): void throw new UnexpectedSessionUsageException('Session was used while the request was declared stateless.'); } + /** + * @internal + */ public static function getSubscribedEvents(): array { return [ @@ -261,6 +294,9 @@ public static function getSubscribedEvents(): array ]; } + /** + * @internal + */ public function reset(): void { if (\PHP_SESSION_ACTIVE === session_status()) { @@ -278,6 +314,8 @@ public function reset(): void /** * Gets the session object. * + * @internal + * * @return SessionInterface|null */ abstract protected function getSession(); diff --git a/api/vendor/symfony/http-kernel/EventListener/AbstractTestSessionListener.php b/api/vendor/symfony/http-kernel/EventListener/AbstractTestSessionListener.php index 157d50a19..838c2944b 100644 --- a/api/vendor/symfony/http-kernel/EventListener/AbstractTestSessionListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/AbstractTestSessionListener.php @@ -19,6 +19,8 @@ use Symfony\Component\HttpKernel\Event\ResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; +trigger_deprecation('symfony/http-kernel', '5.4', '"%s" is deprecated use "%s" instead.', AbstractTestSessionListener::class, AbstractSessionListener::class); + /** * TestSessionListener. * @@ -29,7 +31,7 @@ * * @internal * - * @deprecated the TestSessionListener use the default SessionListener instead + * @deprecated since Symfony 5.4, use AbstractSessionListener instead */ abstract class AbstractTestSessionListener implements EventSubscriberInterface { @@ -39,8 +41,6 @@ abstract class AbstractTestSessionListener implements EventSubscriberInterface public function __construct(array $sessionOptions = []) { $this->sessionOptions = $sessionOptions; - - trigger_deprecation('symfony/http-kernel', '5.4', 'The %s is deprecated use the %s instead.', __CLASS__, AbstractSessionListener::class); } public function onKernelRequest(RequestEvent $event) @@ -114,8 +114,6 @@ public static function getSubscribedEvents(): array /** * Gets the session object. * - * @deprecated since Symfony 5.4, will be removed in 6.0. - * * @return SessionInterface|null */ abstract protected function getSession(); diff --git a/api/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php b/api/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php index efe3960b5..da71d0862 100644 --- a/api/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php @@ -49,7 +49,7 @@ class DebugHandlersListener implements EventSubscriberInterface * @param bool $scream Enables/disables screaming mode, where even silenced errors are logged * @param bool $scope Enables/disables scoping mode */ - public function __construct(callable $exceptionHandler = null, LoggerInterface $logger = null, $levels = \E_ALL, ?int $throwAt = \E_ALL, bool $scream = true, $scope = true, $deprecationLogger = null, $fileLinkFormat = null) + public function __construct(?callable $exceptionHandler = null, ?LoggerInterface $logger = null, $levels = \E_ALL, ?int $throwAt = \E_ALL, bool $scream = true, $scope = true, $deprecationLogger = null, $fileLinkFormat = null) { if (!\is_bool($scope)) { trigger_deprecation('symfony/http-kernel', '5.4', 'Passing a $fileLinkFormat is deprecated.'); @@ -57,7 +57,7 @@ public function __construct(callable $exceptionHandler = null, LoggerInterface $ $deprecationLogger = $fileLinkFormat; } - $handler = set_exception_handler('var_dump'); + $handler = set_exception_handler('is_int'); $this->earlyHandler = \is_array($handler) ? $handler[0] : null; restore_exception_handler(); @@ -73,7 +73,7 @@ public function __construct(callable $exceptionHandler = null, LoggerInterface $ /** * Configures the error handler. */ - public function configure(object $event = null) + public function configure(?object $event = null) { if ($event instanceof ConsoleEvent && !\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) { return; @@ -83,7 +83,7 @@ public function configure(object $event = null) } $this->firstCall = $this->hasTerminatedWithException = false; - $handler = set_exception_handler('var_dump'); + $handler = set_exception_handler('is_int'); $handler = \is_array($handler) ? $handler[0] : null; restore_exception_handler(); diff --git a/api/vendor/symfony/http-kernel/EventListener/DumpListener.php b/api/vendor/symfony/http-kernel/EventListener/DumpListener.php index 30908a4f4..f7f9bd693 100644 --- a/api/vendor/symfony/http-kernel/EventListener/DumpListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/DumpListener.php @@ -29,7 +29,7 @@ class DumpListener implements EventSubscriberInterface private $dumper; private $connection; - public function __construct(ClonerInterface $cloner, DataDumperInterface $dumper, Connection $connection = null) + public function __construct(ClonerInterface $cloner, DataDumperInterface $dumper, ?Connection $connection = null) { $this->cloner = $cloner; $this->dumper = $dumper; diff --git a/api/vendor/symfony/http-kernel/EventListener/ErrorListener.php b/api/vendor/symfony/http-kernel/EventListener/ErrorListener.php index 9dc3871c2..668a908e5 100644 --- a/api/vendor/symfony/http-kernel/EventListener/ErrorListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/ErrorListener.php @@ -33,9 +33,15 @@ class ErrorListener implements EventSubscriberInterface protected $controller; protected $logger; protected $debug; + /** + * @var array|null}> + */ protected $exceptionsMapping; - public function __construct($controller, LoggerInterface $logger = null, bool $debug = false, array $exceptionsMapping = []) + /** + * @param array|null}> $exceptionsMapping + */ + public function __construct($controller, ?LoggerInterface $logger = null, bool $debug = false, array $exceptionsMapping = []) { $this->controller = $controller; $this->logger = $logger; @@ -149,7 +155,7 @@ public static function getSubscribedEvents(): array /** * Logs an exception. */ - protected function logException(\Throwable $exception, string $message, string $logLevel = null): void + protected function logException(\Throwable $exception, string $message, ?string $logLevel = null): void { if (null !== $this->logger) { if (null !== $logLevel) { diff --git a/api/vendor/symfony/http-kernel/EventListener/LocaleListener.php b/api/vendor/symfony/http-kernel/EventListener/LocaleListener.php index f19e13649..a4073eaac 100644 --- a/api/vendor/symfony/http-kernel/EventListener/LocaleListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/LocaleListener.php @@ -35,7 +35,7 @@ class LocaleListener implements EventSubscriberInterface private $useAcceptLanguageHeader; private $enabledLocales; - public function __construct(RequestStack $requestStack, string $defaultLocale = 'en', RequestContextAwareInterface $router = null, bool $useAcceptLanguageHeader = false, array $enabledLocales = []) + public function __construct(RequestStack $requestStack, string $defaultLocale = 'en', ?RequestContextAwareInterface $router = null, bool $useAcceptLanguageHeader = false, array $enabledLocales = []) { $this->defaultLocale = $defaultLocale; $this->requestStack = $requestStack; @@ -68,8 +68,10 @@ private function setLocale(Request $request) { if ($locale = $request->attributes->get('_locale')) { $request->setLocale($locale); - } elseif ($this->useAcceptLanguageHeader && $this->enabledLocales && ($preferredLanguage = $request->getPreferredLanguage($this->enabledLocales))) { - $request->setLocale($preferredLanguage); + } elseif ($this->useAcceptLanguageHeader && $this->enabledLocales) { + if ($request->getLanguages() && $preferredLanguage = $request->getPreferredLanguage($this->enabledLocales)) { + $request->setLocale($preferredLanguage); + } $request->attributes->set('_vary_by_language', true); } } diff --git a/api/vendor/symfony/http-kernel/EventListener/ProfilerListener.php b/api/vendor/symfony/http-kernel/EventListener/ProfilerListener.php index 85525249c..c7950b836 100644 --- a/api/vendor/symfony/http-kernel/EventListener/ProfilerListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/ProfilerListener.php @@ -15,6 +15,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestMatcherInterface; use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Event\ResponseEvent; use Symfony\Component\HttpKernel\Event\TerminateEvent; @@ -47,7 +48,7 @@ class ProfilerListener implements EventSubscriberInterface * @param bool $onlyException True if the profiler only collects data when an exception occurs, false otherwise * @param bool $onlyMainRequests True if the profiler only collects data when the request is the main request, false otherwise */ - public function __construct(Profiler $profiler, RequestStack $requestStack, RequestMatcherInterface $matcher = null, bool $onlyException = false, bool $onlyMainRequests = false, string $collectParameter = null) + public function __construct(Profiler $profiler, RequestStack $requestStack, ?RequestMatcherInterface $matcher = null, bool $onlyException = false, bool $onlyMainRequests = false, ?string $collectParameter = null) { $this->profiler = $profiler; $this->matcher = $matcher; @@ -96,8 +97,21 @@ public function onKernelResponse(ResponseEvent $event) return; } - if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) { - return; + $session = !$request->attributes->getBoolean('_stateless') && $request->hasPreviousSession() && $request->hasSession() ? $request->getSession() : null; + + if ($session instanceof Session) { + $usageIndexValue = $usageIndexReference = &$session->getUsageIndex(); + $usageIndexReference = \PHP_INT_MIN; + } + + try { + if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) { + return; + } + } finally { + if ($session instanceof Session) { + $usageIndexReference = $usageIndexValue; + } } $this->profiles[$request] = $profile; diff --git a/api/vendor/symfony/http-kernel/EventListener/RouterListener.php b/api/vendor/symfony/http-kernel/EventListener/RouterListener.php index 7c4da9892..8c1bc0ac6 100644 --- a/api/vendor/symfony/http-kernel/EventListener/RouterListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/RouterListener.php @@ -55,7 +55,7 @@ class RouterListener implements EventSubscriberInterface * * @throws \InvalidArgumentException */ - public function __construct($matcher, RequestStack $requestStack, RequestContext $context = null, LoggerInterface $logger = null, string $projectDir = null, bool $debug = true) + public function __construct($matcher, RequestStack $requestStack, ?RequestContext $context = null, ?LoggerInterface $logger = null, ?string $projectDir = null, bool $debug = true) { if (!$matcher instanceof UrlMatcherInterface && !$matcher instanceof RequestMatcherInterface) { throw new \InvalidArgumentException('Matcher must either implement UrlMatcherInterface or RequestMatcherInterface.'); @@ -73,7 +73,7 @@ public function __construct($matcher, RequestStack $requestStack, RequestContext $this->debug = $debug; } - private function setCurrentRequest(Request $request = null) + private function setCurrentRequest(?Request $request = null) { if (null !== $request) { try { diff --git a/api/vendor/symfony/http-kernel/EventListener/SurrogateListener.php b/api/vendor/symfony/http-kernel/EventListener/SurrogateListener.php index 9081bff65..dbf3846db 100644 --- a/api/vendor/symfony/http-kernel/EventListener/SurrogateListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/SurrogateListener.php @@ -28,7 +28,7 @@ class SurrogateListener implements EventSubscriberInterface { private $surrogate; - public function __construct(SurrogateInterface $surrogate = null) + public function __construct(?SurrogateInterface $surrogate = null) { $this->surrogate = $surrogate; } diff --git a/api/vendor/symfony/http-kernel/EventListener/TestSessionListener.php b/api/vendor/symfony/http-kernel/EventListener/TestSessionListener.php index c5308269c..45fa312be 100644 --- a/api/vendor/symfony/http-kernel/EventListener/TestSessionListener.php +++ b/api/vendor/symfony/http-kernel/EventListener/TestSessionListener.php @@ -14,6 +14,8 @@ use Psr\Container\ContainerInterface; use Symfony\Component\HttpFoundation\Session\SessionInterface; +trigger_deprecation('symfony/http-kernel', '5.4', '"%s" is deprecated, use "%s" instead.', TestSessionListener::class, SessionListener::class); + /** * Sets the session in the request. * @@ -21,7 +23,7 @@ * * @final * - * @deprecated the TestSessionListener use the default SessionListener instead + * @deprecated since Symfony 5.4, use SessionListener instead */ class TestSessionListener extends AbstractTestSessionListener { @@ -33,13 +35,8 @@ public function __construct(ContainerInterface $container, array $sessionOptions parent::__construct($sessionOptions); } - /** - * @deprecated since Symfony 5.4, will be removed in 6.0. - */ protected function getSession(): ?SessionInterface { - trigger_deprecation('symfony/http-kernel', '5.4', '"%s" is deprecated and will be removed in 6.0, inject a session in the request instead.', __METHOD__); - if ($this->container->has('session')) { return $this->container->get('session'); } diff --git a/api/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php b/api/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php index 58680a327..a93954a4c 100644 --- a/api/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/AccessDeniedHttpException.php @@ -22,7 +22,7 @@ class AccessDeniedHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php b/api/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php index f530f7db4..343769c95 100644 --- a/api/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/BadRequestHttpException.php @@ -21,7 +21,7 @@ class BadRequestHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/ConflictHttpException.php b/api/vendor/symfony/http-kernel/Exception/ConflictHttpException.php index 79c36041c..541e9f12e 100644 --- a/api/vendor/symfony/http-kernel/Exception/ConflictHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/ConflictHttpException.php @@ -21,7 +21,7 @@ class ConflictHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/GoneHttpException.php b/api/vendor/symfony/http-kernel/Exception/GoneHttpException.php index 9ea65057b..1a36a5312 100644 --- a/api/vendor/symfony/http-kernel/Exception/GoneHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/GoneHttpException.php @@ -21,7 +21,7 @@ class GoneHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/HttpException.php b/api/vendor/symfony/http-kernel/Exception/HttpException.php index 249fe366d..c30889371 100644 --- a/api/vendor/symfony/http-kernel/Exception/HttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/HttpException.php @@ -21,7 +21,7 @@ class HttpException extends \RuntimeException implements HttpExceptionInterface private $statusCode; private $headers; - public function __construct(int $statusCode, ?string $message = '', \Throwable $previous = null, array $headers = [], ?int $code = 0) + public function __construct(int $statusCode, ?string $message = '', ?\Throwable $previous = null, array $headers = [], ?int $code = 0) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php b/api/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php index fcac13785..7531ecfb6 100644 --- a/api/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/LengthRequiredHttpException.php @@ -21,7 +21,7 @@ class LengthRequiredHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php b/api/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php index 37576bcac..e3dc84111 100644 --- a/api/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php @@ -22,7 +22,7 @@ class MethodNotAllowedHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int|null $code The internal exception code */ - public function __construct(array $allow, ?string $message = '', \Throwable $previous = null, ?int $code = 0, array $headers = []) + public function __construct(array $allow, ?string $message = '', ?\Throwable $previous = null, ?int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php b/api/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php index 5a422406b..9283dcd99 100644 --- a/api/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/NotAcceptableHttpException.php @@ -21,7 +21,7 @@ class NotAcceptableHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php b/api/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php index a475113c5..d0adb03c7 100644 --- a/api/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/NotFoundHttpException.php @@ -21,7 +21,7 @@ class NotFoundHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php b/api/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php index e23740a28..30ce08153 100644 --- a/api/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/PreconditionFailedHttpException.php @@ -21,7 +21,7 @@ class PreconditionFailedHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php b/api/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php index 5c31fae82..4f8a484f6 100644 --- a/api/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php @@ -23,7 +23,7 @@ class PreconditionRequiredHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php b/api/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php index d5681bbeb..16efd9349 100644 --- a/api/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php @@ -22,7 +22,7 @@ class ServiceUnavailableHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int|null $code The internal exception code */ - public function __construct($retryAfter = null, ?string $message = '', \Throwable $previous = null, ?int $code = 0, array $headers = []) + public function __construct($retryAfter = null, ?string $message = '', ?\Throwable $previous = null, ?int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php b/api/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php index fd74402b5..81148f161 100644 --- a/api/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/TooManyRequestsHttpException.php @@ -24,7 +24,7 @@ class TooManyRequestsHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int|null $code The internal exception code */ - public function __construct($retryAfter = null, ?string $message = '', \Throwable $previous = null, ?int $code = 0, array $headers = []) + public function __construct($retryAfter = null, ?string $message = '', ?\Throwable $previous = null, ?int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php b/api/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php index aeb9713a3..e1b8acec5 100644 --- a/api/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/UnauthorizedHttpException.php @@ -22,7 +22,7 @@ class UnauthorizedHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int|null $code The internal exception code */ - public function __construct(string $challenge, ?string $message = '', \Throwable $previous = null, ?int $code = 0, array $headers = []) + public function __construct(string $challenge, ?string $message = '', ?\Throwable $previous = null, ?int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php b/api/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php index 7b828b1d9..5dc7b9866 100644 --- a/api/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php @@ -21,7 +21,7 @@ class UnprocessableEntityHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php b/api/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php index 7908423f4..35e20a01e 100644 --- a/api/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php +++ b/api/vendor/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php @@ -21,7 +21,7 @@ class UnsupportedMediaTypeHttpException extends HttpException * @param \Throwable|null $previous The previous exception * @param int $code The internal exception code */ - public function __construct(?string $message = '', \Throwable $previous = null, int $code = 0, array $headers = []) + public function __construct(?string $message = '', ?\Throwable $previous = null, int $code = 0, array $headers = []) { if (null === $message) { trigger_deprecation('symfony/http-kernel', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php b/api/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php index d051ad8b5..8a21f6bfc 100644 --- a/api/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php +++ b/api/vendor/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php @@ -34,7 +34,7 @@ abstract class AbstractSurrogateFragmentRenderer extends RoutableFragmentRendere * * @param FragmentRendererInterface $inlineStrategy The inline strategy to use when the surrogate is not supported */ - public function __construct(SurrogateInterface $surrogate = null, FragmentRendererInterface $inlineStrategy, UriSigner $signer = null) + public function __construct(?SurrogateInterface $surrogate, FragmentRendererInterface $inlineStrategy, ?UriSigner $signer = null) { $this->surrogate = $surrogate; $this->inlineStrategy = $inlineStrategy; @@ -89,9 +89,11 @@ private function generateSignedFragmentUri(ControllerReference $uri, Request $re private function containsNonScalars(array $values): bool { foreach ($values as $value) { - if (\is_array($value)) { - return $this->containsNonScalars($value); - } elseif (!is_scalar($value) && null !== $value) { + if (\is_scalar($value) || null === $value) { + continue; + } + + if (!\is_array($value) || $this->containsNonScalars($value)) { return true; } } diff --git a/api/vendor/symfony/http-kernel/Fragment/FragmentUriGenerator.php b/api/vendor/symfony/http-kernel/Fragment/FragmentUriGenerator.php index dabe3048f..6ab0b8145 100644 --- a/api/vendor/symfony/http-kernel/Fragment/FragmentUriGenerator.php +++ b/api/vendor/symfony/http-kernel/Fragment/FragmentUriGenerator.php @@ -28,7 +28,7 @@ final class FragmentUriGenerator implements FragmentUriGeneratorInterface private $signer; private $requestStack; - public function __construct(string $fragmentPath, UriSigner $signer = null, RequestStack $requestStack = null) + public function __construct(string $fragmentPath, ?UriSigner $signer = null, ?RequestStack $requestStack = null) { $this->fragmentPath = $fragmentPath; $this->signer = $signer; @@ -38,7 +38,7 @@ public function __construct(string $fragmentPath, UriSigner $signer = null, Requ /** * {@inheritDoc} */ - public function generate(ControllerReference $controller, Request $request = null, bool $absolute = false, bool $strict = true, bool $sign = true): string + public function generate(ControllerReference $controller, ?Request $request = null, bool $absolute = false, bool $strict = true, bool $sign = true): string { if (null === $request && (null === $this->requestStack || null === $request = $this->requestStack->getCurrentRequest())) { throw new \LogicException('Generating a fragment URL can only be done when handling a Request.'); @@ -85,7 +85,7 @@ private function checkNonScalar(array $values): void foreach ($values as $key => $value) { if (\is_array($value)) { $this->checkNonScalar($value); - } elseif (!is_scalar($value) && null !== $value) { + } elseif (!\is_scalar($value) && null !== $value) { throw new \LogicException(sprintf('Controller attributes cannot contain non-scalar/non-null values (value for key "%s" is not a scalar or null).', $key)); } } diff --git a/api/vendor/symfony/http-kernel/Fragment/FragmentUriGeneratorInterface.php b/api/vendor/symfony/http-kernel/Fragment/FragmentUriGeneratorInterface.php index b211f5e37..040011b55 100644 --- a/api/vendor/symfony/http-kernel/Fragment/FragmentUriGeneratorInterface.php +++ b/api/vendor/symfony/http-kernel/Fragment/FragmentUriGeneratorInterface.php @@ -28,5 +28,5 @@ interface FragmentUriGeneratorInterface * @param bool $strict Whether to allow non-scalar attributes or not * @param bool $sign Whether to sign the URL or not */ - public function generate(ControllerReference $controller, Request $request = null, bool $absolute = false, bool $strict = true, bool $sign = true): string; + public function generate(ControllerReference $controller, ?Request $request = null, bool $absolute = false, bool $strict = true, bool $sign = true): string; } diff --git a/api/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php b/api/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php index 446ce2d9d..a23ffcc7c 100644 --- a/api/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php +++ b/api/vendor/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php @@ -30,9 +30,9 @@ class HIncludeFragmentRenderer extends RoutableFragmentRenderer private $charset; /** - * @param string $globalDefaultTemplate The global default content (it can be a template name or the content) + * @param string|null $globalDefaultTemplate The global default content (it can be a template name or the content) */ - public function __construct(Environment $twig = null, UriSigner $signer = null, string $globalDefaultTemplate = null, string $charset = 'utf-8') + public function __construct(?Environment $twig = null, ?UriSigner $signer = null, ?string $globalDefaultTemplate = null, string $charset = 'utf-8') { $this->twig = $twig; $this->globalDefaultTemplate = $globalDefaultTemplate; diff --git a/api/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php b/api/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php index ea45fdcb3..60421f096 100644 --- a/api/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php +++ b/api/vendor/symfony/http-kernel/Fragment/InlineFragmentRenderer.php @@ -30,7 +30,7 @@ class InlineFragmentRenderer extends RoutableFragmentRenderer private $kernel; private $dispatcher; - public function __construct(HttpKernelInterface $kernel, EventDispatcherInterface $dispatcher = null) + public function __construct(HttpKernelInterface $kernel, ?EventDispatcherInterface $dispatcher = null) { $this->kernel = $kernel; $this->dispatcher = $dispatcher; diff --git a/api/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php b/api/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php index 338480587..e1d73dc74 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php +++ b/api/vendor/symfony/http-kernel/HttpCache/AbstractSurrogate.php @@ -95,7 +95,7 @@ public function handle(HttpCache $cache, string $uri, string $alt, bool $ignoreE try { $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true); - if (!$response->isSuccessful()) { + if (!$response->isSuccessful() && Response::HTTP_NOT_MODIFIED !== $response->getStatusCode()) { throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %d).', $subRequest->getUri(), $response->getStatusCode())); } @@ -133,4 +133,15 @@ protected function removeFromControl(Response $response) $response->headers->set('Surrogate-Control', preg_replace(sprintf('#content="%s/1.0",\s*#', $upperName), '', $value)); } } + + protected static function generateBodyEvalBoundary(): string + { + static $cookie; + $cookie = hash('md5', $cookie ?? $cookie = random_bytes(16), true); + $boundary = base64_encode($cookie); + + \assert(HttpCache::BODY_EVAL_BOUNDARY_LENGTH === \strlen($boundary)); + + return $boundary; + } } diff --git a/api/vendor/symfony/http-kernel/HttpCache/Esi.php b/api/vendor/symfony/http-kernel/HttpCache/Esi.php index cd6a00a10..5e7d17a77 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/Esi.php +++ b/api/vendor/symfony/http-kernel/HttpCache/Esi.php @@ -45,7 +45,7 @@ public function addSurrogateControl(Response $response) /** * {@inheritdoc} */ - public function renderIncludeTag(string $uri, string $alt = null, bool $ignoreErrors = true, string $comment = '') + public function renderIncludeTag(string $uri, ?string $alt = null, bool $ignoreErrors = true, string $comment = '') { $html = sprintf('', $uri, @@ -80,8 +80,8 @@ public function process(Request $request, Response $response) $content = preg_replace('#.*?#s', '', $content); $content = preg_replace('#]+>#s', '', $content); + $boundary = self::generateBodyEvalBoundary(); $chunks = preg_split('##', $content, -1, \PREG_SPLIT_DELIM_CAPTURE); - $chunks[0] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[0]); $i = 1; while (isset($chunks[$i])) { @@ -95,16 +95,10 @@ public function process(Request $request, Response $response) throw new \RuntimeException('Unable to process an ESI tag without a "src" attribute.'); } - $chunks[$i] = sprintf('surrogate->handle($this, %s, %s, %s) ?>'."\n", - var_export($options['src'], true), - var_export($options['alt'] ?? '', true), - isset($options['onerror']) && 'continue' === $options['onerror'] ? 'true' : 'false' - ); - ++$i; - $chunks[$i] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[$i]); - ++$i; + $chunks[$i] = $boundary.$options['src']."\n".($options['alt'] ?? '')."\n".('continue' === ($options['onerror'] ?? ''))."\n"; + $i += 2; } - $content = implode('', $chunks); + $content = $boundary.implode('', $chunks).$boundary; $response->setContent($content); $response->headers->set('X-Body-Eval', 'ESI'); diff --git a/api/vendor/symfony/http-kernel/HttpCache/HttpCache.php b/api/vendor/symfony/http-kernel/HttpCache/HttpCache.php index bf93171fa..9bffc8add 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/HttpCache.php +++ b/api/vendor/symfony/http-kernel/HttpCache/HttpCache.php @@ -29,6 +29,8 @@ */ class HttpCache implements HttpKernelInterface, TerminableInterface { + public const BODY_EVAL_BOUNDARY_LENGTH = 24; + private $kernel; private $store; private $request; @@ -79,7 +81,7 @@ class HttpCache implements HttpKernelInterface, TerminableInterface * This setting is overridden by the stale-if-error HTTP Cache-Control extension * (see RFC 5861). */ - public function __construct(HttpKernelInterface $kernel, StoreInterface $store, SurrogateInterface $surrogate = null, array $options = []) + public function __construct(HttpKernelInterface $kernel, StoreInterface $store, ?SurrogateInterface $surrogate = null, array $options = []) { $this->store = $store; $this->kernel = $kernel; @@ -469,7 +471,7 @@ protected function fetch(Request $request, bool $catch = false) * * @return Response */ - protected function forward(Request $request, bool $catch = false, Response $entry = null) + protected function forward(Request $request, bool $catch = false, ?Response $entry = null) { if ($this->surrogate) { $this->surrogate->addSurrogateCapability($request); @@ -631,12 +633,22 @@ protected function store(Request $request, Response $response) private function restoreResponseBody(Request $request, Response $response) { if ($response->headers->has('X-Body-Eval')) { + \assert(self::BODY_EVAL_BOUNDARY_LENGTH === 24); + ob_start(); - if ($response->headers->has('X-Body-File')) { - include $response->headers->get('X-Body-File'); - } else { - eval('; ?>'.$response->getContent().'getContent(); + $boundary = substr($content, 0, 24); + $j = strpos($content, $boundary, 24); + echo substr($content, 24, $j - 24); + $i = $j + 24; + + while (false !== $j = strpos($content, $boundary, $i)) { + [$uri, $alt, $ignoreErrors, $part] = explode("\n", substr($content, $i, $j - $i), 4); + $i = $j + 24; + + echo $this->surrogate->handle($this, $uri, $alt, $ignoreErrors); + echo $part; } $response->setContent(ob_get_clean()); @@ -718,7 +730,11 @@ private function mayServeStaleWhileRevalidate(Response $entry): bool $timeout = $this->options['stale_while_revalidate']; } - return abs($entry->getTtl()) < $timeout; + $age = $entry->getAge(); + $maxAge = $entry->getMaxAge() ?? 0; + $ttl = $maxAge - $age; + + return abs($ttl) < $timeout; } /** diff --git a/api/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php b/api/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php index cf8682257..5f372c566 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php +++ b/api/vendor/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php @@ -147,7 +147,7 @@ public function update(Response $response) if (is_numeric($this->ageDirectives['expires'])) { $date = clone $response->getDate(); - $date->modify('+'.($this->ageDirectives['expires'] + $this->age).' seconds'); + $date = $date->modify('+'.($this->ageDirectives['expires'] + $this->age).' seconds'); $response->setExpires($date); } } diff --git a/api/vendor/symfony/http-kernel/HttpCache/Ssi.php b/api/vendor/symfony/http-kernel/HttpCache/Ssi.php index f114e05cf..d7903ff13 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/Ssi.php +++ b/api/vendor/symfony/http-kernel/HttpCache/Ssi.php @@ -42,7 +42,7 @@ public function addSurrogateControl(Response $response) /** * {@inheritdoc} */ - public function renderIncludeTag(string $uri, string $alt = null, bool $ignoreErrors = true, string $comment = '') + public function renderIncludeTag(string $uri, ?string $alt = null, bool $ignoreErrors = true, string $comment = '') { return sprintf('', $uri); } @@ -64,9 +64,8 @@ public function process(Request $request, Response $response) // we don't use a proper XML parser here as we can have SSI tags in a plain text response $content = $response->getContent(); - + $boundary = self::generateBodyEvalBoundary(); $chunks = preg_split('##', $content, -1, \PREG_SPLIT_DELIM_CAPTURE); - $chunks[0] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[0]); $i = 1; while (isset($chunks[$i])) { @@ -80,14 +79,10 @@ public function process(Request $request, Response $response) throw new \RuntimeException('Unable to process an SSI tag without a "virtual" attribute.'); } - $chunks[$i] = sprintf('surrogate->handle($this, %s, \'\', false) ?>'."\n", - var_export($options['virtual'], true) - ); - ++$i; - $chunks[$i] = str_replace($this->phpEscapeMap[0], $this->phpEscapeMap[1], $chunks[$i]); - ++$i; + $chunks[$i] = $boundary.$options['virtual']."\n\n\n"; + $i += 2; } - $content = implode('', $chunks); + $content = $boundary.implode('', $chunks).$boundary; $response->setContent($content); $response->headers->set('X-Body-Eval', 'SSI'); diff --git a/api/vendor/symfony/http-kernel/HttpCache/Store.php b/api/vendor/symfony/http-kernel/HttpCache/Store.php index c77739138..f4810b2ab 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/Store.php +++ b/api/vendor/symfony/http-kernel/HttpCache/Store.php @@ -29,17 +29,28 @@ class Store implements StoreInterface private $keyCache; /** @var array */ private $locks = []; + private $options; /** + * Constructor. + * + * The available options are: + * + * * private_headers Set of response headers that should not be stored + * when a response is cached. (default: Set-Cookie) + * * @throws \RuntimeException */ - public function __construct(string $root) + public function __construct(string $root, array $options = []) { $this->root = $root; if (!is_dir($this->root) && !@mkdir($this->root, 0777, true) && !is_dir($this->root)) { throw new \RuntimeException(sprintf('Unable to create the store directory (%s).', $this->root)); } $this->keyCache = new \SplObjectStorage(); + $this->options = array_merge([ + 'private_headers' => ['Set-Cookie'], + ], $options); } /** @@ -186,7 +197,7 @@ public function write(Request $request, Response $response) if ($this->getPath($digest) !== $response->headers->get('X-Body-File')) { throw new \RuntimeException('X-Body-File and X-Content-Digest do not match.'); } - // Everything seems ok, omit writing content to disk + // Everything seems ok, omit writing content to disk } else { $digest = $this->generateContentDigest($response); $response->headers->set('X-Content-Digest', $digest); @@ -216,6 +227,10 @@ public function write(Request $request, Response $response) $headers = $this->persistResponse($response); unset($headers['age']); + foreach ($this->options['private_headers'] as $h) { + unset($headers[strtolower($h)]); + } + array_unshift($entries, [$storedEnv, $headers]); if (!$this->save($key, serialize($entries))) { @@ -460,15 +475,25 @@ private function persistResponse(Response $response): array /** * Restores a Response from the HTTP headers and body. */ - private function restoreResponse(array $headers, string $path = null): Response + private function restoreResponse(array $headers, ?string $path = null): ?Response { $status = $headers['X-Status'][0]; unset($headers['X-Status']); + $content = null; if (null !== $path) { $headers['X-Body-File'] = [$path]; + unset($headers['x-body-file']); + + if ($headers['X-Body-Eval'] ?? $headers['x-body-eval'] ?? false) { + $content = file_get_contents($path); + \assert(HttpCache::BODY_EVAL_BOUNDARY_LENGTH === 24); + if (48 > \strlen($content) || substr($content, -24) !== substr($content, 0, 24)) { + return null; + } + } } - return new Response($path, $status, $headers); + return new Response($content, $status, $headers); } } diff --git a/api/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php b/api/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php index 3f3c74a97..12ed05524 100644 --- a/api/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php +++ b/api/vendor/symfony/http-kernel/HttpCache/SurrogateInterface.php @@ -59,12 +59,12 @@ public function needsParsing(Response $response); /** * Renders a Surrogate tag. * - * @param string $alt An alternate URI - * @param string $comment A comment to add as an esi:include tag + * @param string|null $alt An alternate URI + * @param string $comment A comment to add as an esi:include tag * * @return string */ - public function renderIncludeTag(string $uri, string $alt = null, bool $ignoreErrors = true, string $comment = ''); + public function renderIncludeTag(string $uri, ?string $alt = null, bool $ignoreErrors = true, string $comment = ''); /** * Replaces a Response Surrogate tags with the included resource content. diff --git a/api/vendor/symfony/http-kernel/HttpClientKernel.php b/api/vendor/symfony/http-kernel/HttpClientKernel.php index 58ca82e5a..2b4620bb5 100644 --- a/api/vendor/symfony/http-kernel/HttpClientKernel.php +++ b/api/vendor/symfony/http-kernel/HttpClientKernel.php @@ -33,7 +33,7 @@ final class HttpClientKernel implements HttpKernelInterface { private $client; - public function __construct(HttpClientInterface $client = null) + public function __construct(?HttpClientInterface $client = null) { if (null === $client && !class_exists(HttpClient::class)) { throw new \LogicException(sprintf('You cannot use "%s" as the HttpClient component is not installed. Try running "composer require symfony/http-client".', __CLASS__)); diff --git a/api/vendor/symfony/http-kernel/HttpKernel.php b/api/vendor/symfony/http-kernel/HttpKernel.php index e10e68338..f4b4b8ff2 100644 --- a/api/vendor/symfony/http-kernel/HttpKernel.php +++ b/api/vendor/symfony/http-kernel/HttpKernel.php @@ -55,7 +55,7 @@ class HttpKernel implements HttpKernelInterface, TerminableInterface protected $requestStack; private $argumentResolver; - public function __construct(EventDispatcherInterface $dispatcher, ControllerResolverInterface $resolver, RequestStack $requestStack = null, ArgumentResolverInterface $argumentResolver = null) + public function __construct(EventDispatcherInterface $dispatcher, ControllerResolverInterface $resolver, ?RequestStack $requestStack = null, ?ArgumentResolverInterface $argumentResolver = null) { $this->dispatcher = $dispatcher; $this->resolver = $resolver; @@ -70,6 +70,7 @@ public function handle(Request $request, int $type = HttpKernelInterface::MAIN_R { $request->headers->set('X-Php-Ob-Level', (string) ob_get_level()); + $this->requestStack->push($request); try { return $this->handleRaw($request, $type); } catch (\Exception $e) { @@ -83,6 +84,8 @@ public function handle(Request $request, int $type = HttpKernelInterface::MAIN_R } return $this->handleThrowable($e, $request, $type); + } finally { + $this->requestStack->pop(); } } @@ -97,13 +100,23 @@ public function terminate(Request $request, Response $response) /** * @internal */ - public function terminateWithException(\Throwable $exception, Request $request = null) + public function terminateWithException(\Throwable $exception, ?Request $request = null) { if (!$request = $request ?: $this->requestStack->getMainRequest()) { throw $exception; } - $response = $this->handleThrowable($exception, $request, self::MAIN_REQUEST); + if ($pop = $request !== $this->requestStack->getMainRequest()) { + $this->requestStack->push($request); + } + + try { + $response = $this->handleThrowable($exception, $request, self::MAIN_REQUEST); + } finally { + if ($pop) { + $this->requestStack->pop(); + } + } $response->sendHeaders(); $response->sendContent(); @@ -121,8 +134,6 @@ public function terminateWithException(\Throwable $exception, Request $request = */ private function handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response { - $this->requestStack->push($request); - // request $event = new RequestEvent($this, $request, $type); $this->dispatcher->dispatch($event, KernelEvents::REQUEST); @@ -199,7 +210,6 @@ private function filterResponse(Response $response, Request $request, int $type) private function finishRequest(Request $request, int $type) { $this->dispatcher->dispatch(new FinishRequestEvent($this, $request, $type), KernelEvents::FINISH_REQUEST); - $this->requestStack->pop(); } /** diff --git a/api/vendor/symfony/http-kernel/HttpKernelBrowser.php b/api/vendor/symfony/http-kernel/HttpKernelBrowser.php index 643134f1b..5c6506cca 100644 --- a/api/vendor/symfony/http-kernel/HttpKernelBrowser.php +++ b/api/vendor/symfony/http-kernel/HttpKernelBrowser.php @@ -36,7 +36,7 @@ class HttpKernelBrowser extends AbstractBrowser /** * @param array $server The server parameters (equivalent of $_SERVER) */ - public function __construct(HttpKernelInterface $kernel, array $server = [], History $history = null, CookieJar $cookieJar = null) + public function __construct(HttpKernelInterface $kernel, array $server = [], ?History $history = null, ?CookieJar $cookieJar = null) { // These class properties must be set before calling the parent constructor, as it may depend on it. $this->kernel = $kernel; diff --git a/api/vendor/symfony/http-kernel/Kernel.php b/api/vendor/symfony/http-kernel/Kernel.php index 3edc5fe6d..9a612d805 100644 --- a/api/vendor/symfony/http-kernel/Kernel.php +++ b/api/vendor/symfony/http-kernel/Kernel.php @@ -78,11 +78,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static $freshCache = []; - public const VERSION = '5.4.2'; - public const VERSION_ID = 50402; + public const VERSION = '5.4.41'; + public const VERSION_ID = 50441; public const MAJOR_VERSION = 5; public const MINOR_VERSION = 4; - public const RELEASE_VERSION = 2; + public const RELEASE_VERSION = 41; public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '11/2024'; @@ -404,9 +404,9 @@ protected function build(ContainerBuilder $container) /** * Gets the container class. * - * @throws \InvalidArgumentException If the generated classname is invalid - * * @return string + * + * @throws \InvalidArgumentException If the generated classname is invalid */ protected function getContainerClass() { @@ -467,10 +467,8 @@ protected function initializeContainer() try { is_dir($buildDir) ?: mkdir($buildDir, 0777, true); - if ($lock = fopen($cachePath.'.lock', 'w')) { - flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock); - - if (!flock($lock, $wouldBlock ? \LOCK_SH : \LOCK_EX)) { + if ($lock = fopen($cachePath.'.lock', 'w+')) { + if (!flock($lock, \LOCK_EX | \LOCK_NB, $wouldBlock) && !flock($lock, $wouldBlock ? \LOCK_SH : \LOCK_EX)) { fclose($lock); $lock = null; } elseif (!is_file($cachePath) || !\is_object($this->container = include $cachePath)) { @@ -780,7 +778,9 @@ private function preBoot(): ContainerInterface $this->startTime = microtime(true); } if ($this->debug && !isset($_ENV['SHELL_VERBOSITY']) && !isset($_SERVER['SHELL_VERBOSITY'])) { - putenv('SHELL_VERBOSITY=3'); + if (\function_exists('putenv')) { + putenv('SHELL_VERBOSITY=3'); + } $_ENV['SHELL_VERBOSITY'] = 3; $_SERVER['SHELL_VERBOSITY'] = 3; } diff --git a/api/vendor/symfony/http-kernel/LICENSE b/api/vendor/symfony/http-kernel/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/http-kernel/LICENSE +++ b/api/vendor/symfony/http-kernel/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php b/api/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php index 19ff0db18..d5167fcc9 100644 --- a/api/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php +++ b/api/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php @@ -29,14 +29,14 @@ interface DebugLoggerInterface * * @return array */ - public function getLogs(Request $request = null); + public function getLogs(?Request $request = null); /** * Returns the number of errors. * * @return int */ - public function countErrors(Request $request = null); + public function countErrors(?Request $request = null); /** * Removes all log records. diff --git a/api/vendor/symfony/http-kernel/Log/Logger.php b/api/vendor/symfony/http-kernel/Log/Logger.php index 378fbd539..a37c0cf1c 100644 --- a/api/vendor/symfony/http-kernel/Log/Logger.php +++ b/api/vendor/symfony/http-kernel/Log/Logger.php @@ -42,17 +42,21 @@ class Logger extends AbstractLogger /** * @param string|resource|null $output */ - public function __construct(string $minLevel = null, $output = null, callable $formatter = null) + public function __construct(?string $minLevel = null, $output = null, ?callable $formatter = null) { if (null === $minLevel) { $minLevel = null === $output || 'php://stdout' === $output || 'php://stderr' === $output ? LogLevel::ERROR : LogLevel::WARNING; if (isset($_ENV['SHELL_VERBOSITY']) || isset($_SERVER['SHELL_VERBOSITY'])) { switch ((int) ($_ENV['SHELL_VERBOSITY'] ?? $_SERVER['SHELL_VERBOSITY'])) { - case -1: $minLevel = LogLevel::ERROR; break; - case 1: $minLevel = LogLevel::NOTICE; break; - case 2: $minLevel = LogLevel::INFO; break; - case 3: $minLevel = LogLevel::DEBUG; break; + case -1: $minLevel = LogLevel::ERROR; + break; + case 1: $minLevel = LogLevel::NOTICE; + break; + case 2: $minLevel = LogLevel::INFO; + break; + case 3: $minLevel = LogLevel::DEBUG; + break; } } } @@ -85,7 +89,7 @@ public function log($level, $message, array $context = []) $formatter = $this->formatter; if ($this->handle) { - @fwrite($this->handle, $formatter($level, $message, $context)); + @fwrite($this->handle, $formatter($level, $message, $context).\PHP_EOL); } else { error_log($formatter($level, $message, $context, false)); } @@ -96,7 +100,7 @@ private function format(string $level, string $message, array $context, bool $pr if (str_contains($message, '{')) { $replacements = []; foreach ($context as $key => $val) { - if (null === $val || is_scalar($val) || (\is_object($val) && method_exists($val, '__toString'))) { + if (null === $val || \is_scalar($val) || (\is_object($val) && method_exists($val, '__toString'))) { $replacements["{{$key}}"] = $val; } elseif ($val instanceof \DateTimeInterface) { $replacements["{{$key}}"] = $val->format(\DateTime::RFC3339); @@ -110,7 +114,7 @@ private function format(string $level, string $message, array $context, bool $pr $message = strtr($message, $replacements); } - $log = sprintf('[%s] %s', $level, $message).\PHP_EOL; + $log = sprintf('[%s] %s', $level, $message); if ($prefixDate) { $log = date(\DateTime::RFC3339).' '.$log; } diff --git a/api/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php b/api/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php index 1387a8c2d..6fa24f111 100644 --- a/api/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php +++ b/api/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php @@ -47,7 +47,7 @@ public function __construct(string $dsn) /** * {@inheritdoc} */ - public function find(?string $ip, ?string $url, ?int $limit, ?string $method, int $start = null, int $end = null, string $statusCode = null): array + public function find(?string $ip, ?string $url, ?int $limit, ?string $method, ?int $start = null, ?int $end = null, ?string $statusCode = null): array { $file = $this->getIndexFilename(); @@ -61,6 +61,12 @@ public function find(?string $ip, ?string $url, ?int $limit, ?string $method, in $result = []; while (\count($result) < $limit && $line = $this->readLineFromFile($file)) { $values = str_getcsv($line); + + if (7 !== \count($values)) { + // skip invalid lines + continue; + } + [$csvToken, $csvIp, $csvMethod, $csvUrl, $csvTime, $csvParent, $csvStatusCode] = $values; $csvTime = (int) $csvTime; @@ -115,15 +121,7 @@ public function purge() */ public function read(string $token): ?Profile { - if (!$token || !file_exists($file = $this->getFilename($token))) { - return null; - } - - if (\function_exists('gzcompress')) { - $file = 'compress.zlib://'.$file; - } - - return $this->createProfileFromData($token, unserialize(file_get_contents($file))); + return $this->doRead($token); } /** @@ -165,14 +163,13 @@ public function write(Profile $profile): bool 'status_code' => $profile->getStatusCode(), ]; - $context = stream_context_create(); + $data = serialize($data); - if (\function_exists('gzcompress')) { - $file = 'compress.zlib://'.$file; - stream_context_set_option($context, 'zlib', 'level', 3); + if (\function_exists('gzencode')) { + $data = gzencode($data, 3); } - if (false === file_put_contents($file, serialize($data), 0, $context)) { + if (false === file_put_contents($file, $data, \LOCK_EX)) { return false; } @@ -268,7 +265,7 @@ protected function readLineFromFile($file) return '' === $line ? null : $line; } - protected function createProfileFromData(string $token, array $data, Profile $parent = null) + protected function createProfileFromData(string $token, array $data, ?Profile $parent = null) { $profile = new Profile($token); $profile->setIp($data['ip']); @@ -287,17 +284,34 @@ protected function createProfileFromData(string $token, array $data, Profile $pa } foreach ($data['children'] as $token) { - if (!$token || !file_exists($file = $this->getFilename($token))) { - continue; + if (null !== $childProfile = $this->doRead($token, $profile)) { + $profile->addChild($childProfile); } + } - if (\function_exists('gzcompress')) { - $file = 'compress.zlib://'.$file; - } + return $profile; + } - $profile->addChild($this->createProfileFromData($token, unserialize(file_get_contents($file)), $profile)); + private function doRead($token, ?Profile $profile = null): ?Profile + { + if (!$token || !file_exists($file = $this->getFilename($token))) { + return null; } - return $profile; + $h = fopen($file, 'r'); + flock($h, \LOCK_SH); + $data = stream_get_contents($h); + flock($h, \LOCK_UN); + fclose($h); + + if (\function_exists('gzdecode')) { + $data = @gzdecode($data) ?: $data; + } + + if (!$data = unserialize($data)) { + return null; + } + + return $this->createProfileFromData($token, $data, $profile); } } diff --git a/api/vendor/symfony/http-kernel/Profiler/Profiler.php b/api/vendor/symfony/http-kernel/Profiler/Profiler.php index 25e126f73..412a85925 100644 --- a/api/vendor/symfony/http-kernel/Profiler/Profiler.php +++ b/api/vendor/symfony/http-kernel/Profiler/Profiler.php @@ -37,7 +37,7 @@ class Profiler implements ResetInterface private $initiallyEnabled = true; private $enabled = true; - public function __construct(ProfilerStorageInterface $storage, LoggerInterface $logger = null, bool $enable = true) + public function __construct(ProfilerStorageInterface $storage, ?LoggerInterface $logger = null, bool $enable = true) { $this->storage = $storage; $this->logger = $logger; @@ -116,7 +116,7 @@ public function purge() /** * Finds profiler tokens for the given criteria. * - * @param string|null $limit The maximum number of tokens to return + * @param int|null $limit The maximum number of tokens to return * @param string|null $start The start date to search from * @param string|null $end The end date to search to * @@ -124,7 +124,7 @@ public function purge() * * @see https://php.net/datetime.formats for the supported date/time formats */ - public function find(?string $ip, ?string $url, ?string $limit, ?string $method, ?string $start, ?string $end, string $statusCode = null) + public function find(?string $ip, ?string $url, ?int $limit, ?string $method, ?string $start, ?string $end, ?string $statusCode = null) { return $this->storage->find($ip, $url, $limit, $method, $this->getTimestamp($start), $this->getTimestamp($end), $statusCode); } @@ -134,7 +134,7 @@ public function find(?string $ip, ?string $url, ?string $limit, ?string $method, * * @return Profile|null */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { if (false === $this->enabled) { return null; diff --git a/api/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php b/api/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php index 95d72f46b..6b23c1a22 100644 --- a/api/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php +++ b/api/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php @@ -33,7 +33,7 @@ interface ProfilerStorageInterface * @param int|null $start The start date to search from * @param int|null $end The end date to search to */ - public function find(?string $ip, ?string $url, ?int $limit, ?string $method, int $start = null, int $end = null): array; + public function find(?string $ip, ?string $url, ?int $limit, ?string $method, ?int $start = null, ?int $end = null): array; /** * Reads data associated with the given token. diff --git a/api/vendor/symfony/http-kernel/composer.json b/api/vendor/symfony/http-kernel/composer.json index 09682db49..67d5ad4b6 100644 --- a/api/vendor/symfony/http-kernel/composer.json +++ b/api/vendor/symfony/http-kernel/composer.json @@ -20,7 +20,7 @@ "symfony/deprecation-contracts": "^2.1|^3", "symfony/error-handler": "^4.4|^5.0|^6.0", "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.3.7|^6.0", + "symfony/http-foundation": "^5.4.21|^6.2.7", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.16", @@ -41,6 +41,7 @@ "symfony/stopwatch": "^4.4|^5.0|^6.0", "symfony/translation": "^4.4|^5.0|^6.0", "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/var-dumper": "^4.4.31|^5.4", "psr/cache": "^1.0|^2.0|^3.0", "twig/twig": "^2.13|^3.0.4" }, diff --git a/api/vendor/symfony/mime/CharacterStream.php b/api/vendor/symfony/mime/CharacterStream.php index 9d0a9c661..238debde1 100644 --- a/api/vendor/symfony/mime/CharacterStream.php +++ b/api/vendor/symfony/mime/CharacterStream.php @@ -81,17 +81,17 @@ public function __construct($input, ?string $charset = 'utf-8') $this->fixedWidth = 2; break; - // 32 bits + // 32 bits case 'ucs4': case 'ucs-4': case 'utf32': case 'utf-32': $this->fixedWidth = 4; - break; + break; - // 7-8 bit charsets: (us-)?ascii, (iso|iec)-?8859-?[0-9]+, windows-?125[0-9], cp-?[0-9]+, ansi, macintosh, + // 7-8 bit charsets: (us-)?ascii, (iso|iec)-?8859-?[0-9]+, windows-?125[0-9], cp-?[0-9]+, ansi, macintosh, // koi-?7, koi-?8-?.+, mik, (cork|t1), v?iscii - // and fallback + // and fallback default: $this->fixedWidth = 1; } diff --git a/api/vendor/symfony/mime/Crypto/DkimOptions.php b/api/vendor/symfony/mime/Crypto/DkimOptions.php index 4c51d6615..171bb2583 100644 --- a/api/vendor/symfony/mime/Crypto/DkimOptions.php +++ b/api/vendor/symfony/mime/Crypto/DkimOptions.php @@ -28,7 +28,7 @@ public function toArray(): array /** * @return $this */ - public function algorithm(int $algo): self + public function algorithm(string $algo): self { $this->options['algorithm'] = $algo; diff --git a/api/vendor/symfony/mime/Crypto/SMimeEncrypter.php b/api/vendor/symfony/mime/Crypto/SMimeEncrypter.php index 9081860d8..e92b37b19 100644 --- a/api/vendor/symfony/mime/Crypto/SMimeEncrypter.php +++ b/api/vendor/symfony/mime/Crypto/SMimeEncrypter.php @@ -26,7 +26,7 @@ final class SMimeEncrypter extends SMime * @param string|string[] $certificate The path (or array of paths) of the file(s) containing the X.509 certificate(s) * @param int|null $cipher A set of algorithms used to encrypt the message. Must be one of these PHP constants: https://www.php.net/manual/en/openssl.ciphers.php */ - public function __construct($certificate, int $cipher = null) + public function __construct($certificate, ?int $cipher = null) { if (!\extension_loaded('openssl')) { throw new \LogicException('PHP extension "openssl" is required to use SMime.'); diff --git a/api/vendor/symfony/mime/Crypto/SMimeSigner.php b/api/vendor/symfony/mime/Crypto/SMimeSigner.php index 5b94a454e..94c2bbd67 100644 --- a/api/vendor/symfony/mime/Crypto/SMimeSigner.php +++ b/api/vendor/symfony/mime/Crypto/SMimeSigner.php @@ -31,7 +31,7 @@ final class SMimeSigner extends SMime * @param string|null $extraCerts The path of the file containing intermediate certificates (in PEM format) needed by the signing certificate * @param int|null $signOptions Bitwise operator options for openssl_pkcs7_sign() (@see https://secure.php.net/manual/en/openssl.pkcs7.flags.php) */ - public function __construct(string $certificate, string $privateKey, string $privateKeyPassphrase = null, string $extraCerts = null, int $signOptions = null) + public function __construct(string $certificate, string $privateKey, ?string $privateKeyPassphrase = null, ?string $extraCerts = null, ?int $signOptions = null) { if (!\extension_loaded('openssl')) { throw new \LogicException('PHP extension "openssl" is required to use SMime.'); diff --git a/api/vendor/symfony/mime/Email.php b/api/vendor/symfony/mime/Email.php index 44efe7b31..5365294a4 100644 --- a/api/vendor/symfony/mime/Email.php +++ b/api/vendor/symfony/mime/Email.php @@ -43,6 +43,10 @@ class Email extends Message private $html; private $htmlCharset; private $attachments = []; + /** + * @var AbstractPart|null + */ + private $cachedBody; // Used to avoid wrong body hash in DKIM signatures with multiple parts (e.g. HTML + TEXT) due to multiple boundaries. /** * @return $this @@ -117,6 +121,10 @@ public function addFrom(...$addresses) */ public function from(...$addresses) { + if (!$addresses) { + throw new LogicException('"from()" must be called with at least one address.'); + } + return $this->setListAddressHeaderBody('From', $addresses); } @@ -272,12 +280,17 @@ public function getPriority(): int } /** - * @param resource|string $body + * @param resource|string|null $body * * @return $this */ public function text($body, string $charset = 'utf-8') { + if (null !== $body && !\is_string($body) && !\is_resource($body)) { + throw new \TypeError(sprintf('The body must be a string, a resource or null (got "%s").', get_debug_type($body))); + } + + $this->cachedBody = null; $this->text = $body; $this->textCharset = $charset; @@ -304,6 +317,11 @@ public function getTextCharset(): ?string */ public function html($body, string $charset = 'utf-8') { + if (null !== $body && !\is_string($body) && !\is_resource($body)) { + throw new \TypeError(sprintf('The body must be a string, a resource or null (got "%s").', get_debug_type($body))); + } + + $this->cachedBody = null; $this->html = $body; $this->htmlCharset = $charset; @@ -328,8 +346,13 @@ public function getHtmlCharset(): ?string * * @return $this */ - public function attach($body, string $name = null, string $contentType = null) + public function attach($body, ?string $name = null, ?string $contentType = null) { + if (!\is_string($body) && !\is_resource($body)) { + throw new \TypeError(sprintf('The body must be a string or a resource (got "%s").', get_debug_type($body))); + } + + $this->cachedBody = null; $this->attachments[] = ['body' => $body, 'name' => $name, 'content-type' => $contentType, 'inline' => false]; return $this; @@ -338,8 +361,9 @@ public function attach($body, string $name = null, string $contentType = null) /** * @return $this */ - public function attachFromPath(string $path, string $name = null, string $contentType = null) + public function attachFromPath(string $path, ?string $name = null, ?string $contentType = null) { + $this->cachedBody = null; $this->attachments[] = ['path' => $path, 'name' => $name, 'content-type' => $contentType, 'inline' => false]; return $this; @@ -350,8 +374,13 @@ public function attachFromPath(string $path, string $name = null, string $conten * * @return $this */ - public function embed($body, string $name = null, string $contentType = null) + public function embed($body, ?string $name = null, ?string $contentType = null) { + if (!\is_string($body) && !\is_resource($body)) { + throw new \TypeError(sprintf('The body must be a string or a resource (got "%s").', get_debug_type($body))); + } + + $this->cachedBody = null; $this->attachments[] = ['body' => $body, 'name' => $name, 'content-type' => $contentType, 'inline' => true]; return $this; @@ -360,8 +389,9 @@ public function embed($body, string $name = null, string $contentType = null) /** * @return $this */ - public function embedFromPath(string $path, string $name = null, string $contentType = null) + public function embedFromPath(string $path, ?string $name = null, ?string $contentType = null) { + $this->cachedBody = null; $this->attachments[] = ['path' => $path, 'name' => $name, 'content-type' => $contentType, 'inline' => true]; return $this; @@ -372,6 +402,7 @@ public function embedFromPath(string $path, string $name = null, string $content */ public function attachPart(DataPart $part) { + $this->cachedBody = null; $this->attachments[] = ['part' => $part]; return $this; @@ -430,9 +461,13 @@ public function ensureValidity() */ private function generateBody(): AbstractPart { + if (null !== $this->cachedBody) { + return $this->cachedBody; + } + $this->ensureValidity(); - [$htmlPart, $attachmentParts, $inlineParts] = $this->prepareParts(); + [$htmlPart, $otherParts, $relatedParts] = $this->prepareParts(); $part = null === $this->text ? null : new TextPart($this->text, $this->textCharset); if (null !== $htmlPart) { @@ -443,19 +478,19 @@ private function generateBody(): AbstractPart } } - if ($inlineParts) { - $part = new RelatedPart($part, ...$inlineParts); + if ($relatedParts) { + $part = new RelatedPart($part, ...$relatedParts); } - if ($attachmentParts) { + if ($otherParts) { if ($part) { - $part = new MixedPart($part, ...$attachmentParts); + $part = new MixedPart($part, ...$otherParts); } else { - $part = new MixedPart(...$attachmentParts); + $part = new MixedPart(...$otherParts); } } - return $part; + return $this->cachedBody = $part; } private function prepareParts(): ?array @@ -463,38 +498,52 @@ private function prepareParts(): ?array $names = []; $htmlPart = null; $html = $this->html; - if (null !== $this->html) { + if (null !== $html) { $htmlPart = new TextPart($html, $this->htmlCharset, 'html'); $html = $htmlPart->getBody(); - preg_match_all('(]*src\s*=\s*(?:([\'"])cid:([^"]+)\\1|cid:([^>\s]+)))i', $html, $names); + preg_match_all('(]*src\s*=\s*(?:([\'"])cid:(.+?)\\1|cid:([^>\s]+)))i', $html, $names); $names = array_filter(array_unique(array_merge($names[2], $names[3]))); } - $attachmentParts = $inlineParts = []; + // usage of reflection is a temporary workaround for missing getters that will be added in 6.2 + $nameRef = new \ReflectionProperty(TextPart::class, 'name'); + $nameRef->setAccessible(true); + $otherParts = $relatedParts = []; foreach ($this->attachments as $attachment) { + $part = $this->createDataPart($attachment); + if (isset($attachment['part'])) { + $attachment['name'] = $nameRef->getValue($part); + } + + $related = false; foreach ($names as $name) { - if (isset($attachment['part'])) { - continue; - } if ($name !== $attachment['name']) { continue; } - if (isset($inlineParts[$name])) { + if (isset($relatedParts[$name])) { continue 2; } - $attachment['inline'] = true; - $inlineParts[$name] = $part = $this->createDataPart($attachment); - $html = str_replace('cid:'.$name, 'cid:'.$part->getContentId(), $html); + $part->setDisposition('inline'); + $html = str_replace('cid:'.$name, 'cid:'.$part->getContentId(), $html, $count); + if ($count) { + $related = true; + } $part->setName($part->getContentId()); - continue 2; + + break; + } + + if ($related) { + $relatedParts[$attachment['name']] = $part; + } else { + $otherParts[] = $part; } - $attachmentParts[] = $this->createDataPart($attachment); } if (null !== $htmlPart) { $htmlPart = new TextPart($html, $this->htmlCharset, 'html'); } - return [$htmlPart, $attachmentParts, array_values($inlineParts)]; + return [$htmlPart, $otherParts, array_values($relatedParts)]; } private function createDataPart(array $attachment): DataPart diff --git a/api/vendor/symfony/mime/FileinfoMimeTypeGuesser.php b/api/vendor/symfony/mime/FileinfoMimeTypeGuesser.php index c6c7559af..1208976ba 100644 --- a/api/vendor/symfony/mime/FileinfoMimeTypeGuesser.php +++ b/api/vendor/symfony/mime/FileinfoMimeTypeGuesser.php @@ -24,11 +24,11 @@ class FileinfoMimeTypeGuesser implements MimeTypeGuesserInterface private $magicFile; /** - * @param string $magicFile A magic file to use with the finfo instance + * @param string|null $magicFile A magic file to use with the finfo instance * * @see http://www.php.net/manual/en/function.finfo-open.php */ - public function __construct(string $magicFile = null) + public function __construct(?string $magicFile = null) { $this->magicFile = $magicFile; } diff --git a/api/vendor/symfony/mime/Header/AbstractHeader.php b/api/vendor/symfony/mime/Header/AbstractHeader.php index b82eb53ec..d61df570b 100644 --- a/api/vendor/symfony/mime/Header/AbstractHeader.php +++ b/api/vendor/symfony/mime/Header/AbstractHeader.php @@ -109,6 +109,11 @@ protected function createPhrase(HeaderInterface $header, string $string, string } $phraseStr = $this->encodeWords($header, $string, $usedLength); } + } elseif (str_contains($phraseStr, '(')) { + foreach (['\\', '"'] as $char) { + $phraseStr = str_replace($char, '\\'.$char, $phraseStr); + } + $phraseStr = '"'.$phraseStr.'"'; } return $phraseStr; @@ -195,7 +200,7 @@ protected function getTokenAsEncodedWord(string $token, int $firstLineOffset = 0 $encodingWrapperLength = \strlen('=?'.$charsetDecl.'?'.self::$encoder->getName().'??='); if ($firstLineOffset >= 75) { - //Does this logic need to be here? + // Does this logic need to be here? $firstLineOffset = 0; } @@ -226,7 +231,7 @@ protected function generateTokenLines(string $token): array /** * Generate a list of all tokens in the final header. */ - protected function toTokens(string $string = null): array + protected function toTokens(?string $string = null): array { if (null === $string) { $string = $this->getBodyAsString(); diff --git a/api/vendor/symfony/mime/Header/Headers.php b/api/vendor/symfony/mime/Header/Headers.php index 8db912520..b1ebf9a2c 100644 --- a/api/vendor/symfony/mime/Header/Headers.php +++ b/api/vendor/symfony/mime/Header/Headers.php @@ -190,7 +190,7 @@ public function get(string $name): ?HeaderInterface return array_shift($values); } - public function all(string $name = null): iterable + public function all(?string $name = null): iterable { if (null === $name) { foreach ($this->headers as $name => $collection) { diff --git a/api/vendor/symfony/mime/Header/MailboxListHeader.php b/api/vendor/symfony/mime/Header/MailboxListHeader.php index 1d00fdb12..ee2a26cf2 100644 --- a/api/vendor/symfony/mime/Header/MailboxListHeader.php +++ b/api/vendor/symfony/mime/Header/MailboxListHeader.php @@ -44,9 +44,9 @@ public function setBody($body) } /** - * @throws RfcComplianceException - * * @return Address[] + * + * @throws RfcComplianceException */ public function getBody(): array { @@ -99,9 +99,9 @@ public function getAddresses(): array /** * Gets the full mailbox list of this Header as an array of valid RFC 2822 strings. * - * @throws RfcComplianceException - * * @return string[] + * + * @throws RfcComplianceException */ public function getAddressStrings(): array { diff --git a/api/vendor/symfony/mime/Header/ParameterizedHeader.php b/api/vendor/symfony/mime/Header/ParameterizedHeader.php index e5d4238b4..22f46a8fa 100644 --- a/api/vendor/symfony/mime/Header/ParameterizedHeader.php +++ b/api/vendor/symfony/mime/Header/ParameterizedHeader.php @@ -85,7 +85,7 @@ public function getBodyAsString(): string * This doesn't need to be overridden in theory, but it is for implementation * reasons to prevent potential breakage of attributes. */ - protected function toTokens(string $string = null): array + protected function toTokens(?string $string = null): array { $tokens = parent::toTokens(parent::getBodyAsString()); diff --git a/api/vendor/symfony/mime/LICENSE b/api/vendor/symfony/mime/LICENSE index 151af4bbc..4dd83ce0f 100644 --- a/api/vendor/symfony/mime/LICENSE +++ b/api/vendor/symfony/mime/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2010-2021 Fabien Potencier +Copyright (c) 2010-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/mime/Message.php b/api/vendor/symfony/mime/Message.php index 651ffd452..df7ed1b79 100644 --- a/api/vendor/symfony/mime/Message.php +++ b/api/vendor/symfony/mime/Message.php @@ -24,7 +24,7 @@ class Message extends RawMessage private $headers; private $body; - public function __construct(Headers $headers = null, AbstractPart $body = null) + public function __construct(?Headers $headers = null, ?AbstractPart $body = null) { $this->headers = $headers ? clone $headers : new Headers(); $this->body = $body; @@ -42,7 +42,7 @@ public function __clone() /** * @return $this */ - public function setBody(AbstractPart $body = null) + public function setBody(?AbstractPart $body = null) { $this->body = $body; @@ -124,11 +124,18 @@ public function toIterable(): iterable public function ensureValidity() { - if (!$this->headers->has('To') && !$this->headers->has('Cc') && !$this->headers->has('Bcc')) { + $to = (null !== $header = $this->headers->get('To')) ? $header->getBody() : null; + $cc = (null !== $header = $this->headers->get('Cc')) ? $header->getBody() : null; + $bcc = (null !== $header = $this->headers->get('Bcc')) ? $header->getBody() : null; + + if (!$to && !$cc && !$bcc) { throw new LogicException('An email must have a "To", "Cc", or "Bcc" header.'); } - if (!$this->headers->has('From') && !$this->headers->has('Sender')) { + $from = (null !== $header = $this->headers->get('From')) ? $header->getBody() : null; + $sender = (null !== $header = $this->headers->get('Sender')) ? $header->getBody() : null; + + if (!$from && !$sender) { throw new LogicException('An email must have a "From" or a "Sender" header.'); } @@ -140,7 +147,10 @@ public function generateMessageId(): string if ($this->headers->has('Sender')) { $sender = $this->headers->get('Sender')->getAddress(); } elseif ($this->headers->has('From')) { - $sender = $this->headers->get('From')->getAddresses()[0]; + if (!$froms = $this->headers->get('From')->getAddresses()) { + throw new LogicException('A "From" header must have at least one email address.'); + } + $sender = $froms[0]; } else { throw new LogicException('An email must have a "From" or a "Sender" header.'); } diff --git a/api/vendor/symfony/mime/MessageConverter.php b/api/vendor/symfony/mime/MessageConverter.php index 788a5ff99..0539eac8e 100644 --- a/api/vendor/symfony/mime/MessageConverter.php +++ b/api/vendor/symfony/mime/MessageConverter.php @@ -83,7 +83,7 @@ private static function createEmailFromAlternativePart(Message $message, Alterna 2 === \count($parts) && $parts[0] instanceof TextPart && 'text' === $parts[0]->getMediaType() && 'plain' === $parts[0]->getMediaSubtype() && $parts[1] instanceof TextPart && 'text' === $parts[1]->getMediaType() && 'html' === $parts[1]->getMediaSubtype() - ) { + ) { return (new Email(clone $message->getHeaders())) ->text($parts[0]->getBody(), $parts[0]->getPreparedHeaders()->getHeaderParameter('Content-Type', 'charset') ?: 'utf-8') ->html($parts[1]->getBody(), $parts[1]->getPreparedHeaders()->getHeaderParameter('Content-Type', 'charset') ?: 'utf-8') diff --git a/api/vendor/symfony/mime/Part/DataPart.php b/api/vendor/symfony/mime/Part/DataPart.php index 75bcb64a9..3219df404 100644 --- a/api/vendor/symfony/mime/Part/DataPart.php +++ b/api/vendor/symfony/mime/Part/DataPart.php @@ -33,7 +33,7 @@ class DataPart extends TextPart /** * @param resource|string $body */ - public function __construct($body, string $filename = null, string $contentType = null, string $encoding = null) + public function __construct($body, ?string $filename = null, ?string $contentType = null, ?string $encoding = null) { unset($this->_parent); @@ -51,7 +51,7 @@ public function __construct($body, string $filename = null, string $contentType $this->setDisposition('attachment'); } - public static function fromPath(string $path, string $name = null, string $contentType = null): self + public static function fromPath(string $path, ?string $name = null, ?string $contentType = null): self { if (null === $contentType) { $ext = strtolower(substr($path, strrpos($path, '.') + 1)); @@ -61,13 +61,20 @@ public static function fromPath(string $path, string $name = null, string $conte $contentType = self::$mimeTypes->getMimeTypes($ext)[0] ?? 'application/octet-stream'; } - if (false === is_readable($path)) { + if ((is_file($path) && !is_readable($path)) || is_dir($path)) { throw new InvalidArgumentException(sprintf('Path "%s" is not readable.', $path)); } if (false === $handle = @fopen($path, 'r', false)) { throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path)); } + + if (!is_file($path)) { + $cache = fopen('php://temp', 'r+'); + stream_copy_to_stream($handle, $cache); + $handle = $cache; + } + $p = new self($handle, $name ?: basename($path), $contentType); $p->handle = $handle; diff --git a/api/vendor/symfony/mime/Part/MessagePart.php b/api/vendor/symfony/mime/Part/MessagePart.php index 1b5c23e2b..00129b475 100644 --- a/api/vendor/symfony/mime/Part/MessagePart.php +++ b/api/vendor/symfony/mime/Part/MessagePart.php @@ -59,4 +59,17 @@ public function bodyToIterable(): iterable { return $this->message->toIterable(); } + + /** + * @return array + */ + public function __sleep() + { + return ['message']; + } + + public function __wakeup() + { + $this->__construct($this->message); + } } diff --git a/api/vendor/symfony/mime/Part/Multipart/FormDataPart.php b/api/vendor/symfony/mime/Part/Multipart/FormDataPart.php index ff6df818f..e3c9afc04 100644 --- a/api/vendor/symfony/mime/Part/Multipart/FormDataPart.php +++ b/api/vendor/symfony/mime/Part/Multipart/FormDataPart.php @@ -58,7 +58,7 @@ private function prepareFields(array $fields): array $values = []; $prepare = function ($item, $key, $root = null) use (&$values, &$prepare) { - if (\is_int($key) && \is_array($item)) { + if (null === $root && \is_int($key) && \is_array($item)) { if (1 !== \count($item)) { throw new InvalidArgumentException(sprintf('Form field values with integer keys can only have one array element, the key being the field name and the value being the field value, %d provided.', \count($item))); } diff --git a/api/vendor/symfony/mime/Part/TextPart.php b/api/vendor/symfony/mime/Part/TextPart.php index 4afb6560a..fe9ca0222 100644 --- a/api/vendor/symfony/mime/Part/TextPart.php +++ b/api/vendor/symfony/mime/Part/TextPart.php @@ -42,7 +42,7 @@ class TextPart extends AbstractPart /** * @param resource|string $body */ - public function __construct($body, ?string $charset = 'utf-8', string $subtype = 'plain', string $encoding = null) + public function __construct($body, ?string $charset = 'utf-8', string $subtype = 'plain', ?string $encoding = null) { unset($this->_headers); @@ -197,6 +197,7 @@ public function __sleep() // convert resources to strings for serialization if (null !== $this->seekable) { $this->body = $this->getBody(); + $this->seekable = null; } $this->_headers = $this->getHeaders(); diff --git a/api/vendor/symfony/mime/RawMessage.php b/api/vendor/symfony/mime/RawMessage.php index d2a311dae..ace19601e 100644 --- a/api/vendor/symfony/mime/RawMessage.php +++ b/api/vendor/symfony/mime/RawMessage.php @@ -18,6 +18,9 @@ */ class RawMessage implements \Serializable { + /** + * @var iterable|string + */ private $message; /** diff --git a/api/vendor/symfony/mime/Resources/bin/update_mime_types.php b/api/vendor/symfony/mime/Resources/bin/update_mime_types.php index 9f13bf3e1..5586f097f 100644 --- a/api/vendor/symfony/mime/Resources/bin/update_mime_types.php +++ b/api/vendor/symfony/mime/Resources/bin/update_mime_types.php @@ -9,6 +9,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + // load new map $data = json_decode(file_get_contents('https://cdn.jsdelivr.net/gh/jshttp/mime-db@v1.49.0/db.json'), true); $new = []; diff --git a/api/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php b/api/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php index c0adbe3a0..3243ec608 100644 --- a/api/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php +++ b/api/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php @@ -20,7 +20,7 @@ final class EmailAttachmentCount extends Constraint private $expectedValue; private $transport; - public function __construct(int $expectedValue, string $transport = null) + public function __construct(int $expectedValue, ?string $transport = null) { $this->expectedValue = $expectedValue; $this->transport = $transport; diff --git a/api/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php b/api/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php index 74bdc63c7..74b412183 100644 --- a/api/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php +++ b/api/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php @@ -55,12 +55,14 @@ protected function matches($message): bool */ protected function failureDescription($message): string { - return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message)); + return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message) ?? 'null'); } - private function getHeaderValue($message): string + private function getHeaderValue($message): ?string { - $header = $message->getHeaders()->get($this->headerName); + if (null === $header = $message->getHeaders()->get($this->headerName)) { + return null; + } return $header instanceof UnstructuredHeader ? $header->getValue() : $header->getBodyAsString(); } diff --git a/api/vendor/symfony/mime/composer.json b/api/vendor/symfony/mime/composer.json index cd04969b9..3bb609558 100644 --- a/api/vendor/symfony/mime/composer.json +++ b/api/vendor/symfony/mime/composer.json @@ -23,18 +23,20 @@ "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1", + "egulias/email-validator": "^2.1.10|^3.1|^4", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4|^6.4", "symfony/property-access": "^4.4|^5.1|^6.0", "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<4.4", + "symfony/serializer": "<5.4.35|>=6,<6.3.12|>=6.4,<6.4.3" }, "autoload": { "psr-4": { "Symfony\\Component\\Mime\\": "" }, diff --git a/api/vendor/symfony/polyfill-ctype/LICENSE b/api/vendor/symfony/polyfill-ctype/LICENSE index 3f853aaf3..7536caeae 100644 --- a/api/vendor/symfony/polyfill-ctype/LICENSE +++ b/api/vendor/symfony/polyfill-ctype/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2019 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-ctype/README.md b/api/vendor/symfony/polyfill-ctype/README.md index 8add1ab00..b144d03c3 100644 --- a/api/vendor/symfony/polyfill-ctype/README.md +++ b/api/vendor/symfony/polyfill-ctype/README.md @@ -4,7 +4,7 @@ Symfony Polyfill / Ctype This component provides `ctype_*` functions to users who run php versions without the ctype extension. More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-ctype/composer.json b/api/vendor/symfony/polyfill-ctype/composer.json index ccb8e5703..b222fdab9 100644 --- a/api/vendor/symfony/polyfill-ctype/composer.json +++ b/api/vendor/symfony/polyfill-ctype/composer.json @@ -30,9 +30,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-iconv/LICENSE b/api/vendor/symfony/polyfill-iconv/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/api/vendor/symfony/polyfill-iconv/LICENSE +++ b/api/vendor/symfony/polyfill-iconv/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-iconv/README.md b/api/vendor/symfony/polyfill-iconv/README.md index b0c8984cd..b089088b9 100644 --- a/api/vendor/symfony/polyfill-iconv/README.md +++ b/api/vendor/symfony/polyfill-iconv/README.md @@ -6,7 +6,7 @@ This component provides a native PHP implementation of the (short of [`ob_iconv_handler`](https://php.net/ob-iconv-handler)). More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-iconv/composer.json b/api/vendor/symfony/polyfill-iconv/composer.json index a1bd3a0c7..2044a166c 100644 --- a/api/vendor/symfony/polyfill-iconv/composer.json +++ b/api/vendor/symfony/polyfill-iconv/composer.json @@ -30,9 +30,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-intl-grapheme/Grapheme.php b/api/vendor/symfony/polyfill-intl-grapheme/Grapheme.php index 6f7c0c78d..5373f1685 100644 --- a/api/vendor/symfony/polyfill-intl-grapheme/Grapheme.php +++ b/api/vendor/symfony/polyfill-intl-grapheme/Grapheme.php @@ -48,7 +48,7 @@ public static function grapheme_extract($s, $size, $type = \GRAPHEME_EXTR_COUNT, $start = \strlen($s) + $start; } - if (!is_scalar($s)) { + if (!\is_scalar($s)) { $hasError = false; set_error_handler(function () use (&$hasError) { $hasError = true; }); $next = substr($s, $start); diff --git a/api/vendor/symfony/polyfill-intl-grapheme/LICENSE b/api/vendor/symfony/polyfill-intl-grapheme/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/api/vendor/symfony/polyfill-intl-grapheme/LICENSE +++ b/api/vendor/symfony/polyfill-intl-grapheme/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-intl-grapheme/README.md b/api/vendor/symfony/polyfill-intl-grapheme/README.md index 77523ea27..f55d92c5c 100644 --- a/api/vendor/symfony/polyfill-intl-grapheme/README.md +++ b/api/vendor/symfony/polyfill-intl-grapheme/README.md @@ -23,7 +23,7 @@ This component provides a partial, native PHP implementation of the - [`grapheme_substr`](https://php.net/grapheme_substr): Return part of a string More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-intl-grapheme/composer.json b/api/vendor/symfony/polyfill-intl-grapheme/composer.json index 02c98ee30..a20d3faaf 100644 --- a/api/vendor/symfony/polyfill-intl-grapheme/composer.json +++ b/api/vendor/symfony/polyfill-intl-grapheme/composer.json @@ -27,9 +27,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-intl-idn/Idn.php b/api/vendor/symfony/polyfill-intl-idn/Idn.php index fee3026df..eb6bada0a 100644 --- a/api/vendor/symfony/polyfill-intl-idn/Idn.php +++ b/api/vendor/symfony/polyfill-intl-idn/Idn.php @@ -11,8 +11,6 @@ namespace Symfony\Polyfill\Intl\Idn; -use Exception; -use Normalizer; use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges; use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex; @@ -167,7 +165,7 @@ public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, if (1 === preg_match('/[^\x00-\x7F]/', $label)) { try { $label = 'xn--'.self::punycodeEncode($label); - } catch (Exception $e) { + } catch (\Exception $e) { $info->errors |= self::ERROR_PUNYCODE; } @@ -282,10 +280,6 @@ private static function mapCodePoints($input, array $options, Info $info) switch ($data['status']) { case 'disallowed': - $info->errors |= self::ERROR_DISALLOWED; - - // no break. - case 'valid': $str .= mb_chr($codePoint, 'utf-8'); @@ -296,7 +290,7 @@ private static function mapCodePoints($input, array $options, Info $info) break; case 'mapped': - $str .= $data['mapping']; + $str .= $transitional && 0x1E9E === $codePoint ? 'ss' : $data['mapping']; break; @@ -335,8 +329,8 @@ private static function process($domain, array $options, Info $info) $domain = self::mapCodePoints($domain, $options, $info); // Step 2. Normalize the domain name string to Unicode Normalization Form C. - if (!Normalizer::isNormalized($domain, Normalizer::FORM_C)) { - $domain = Normalizer::normalize($domain, Normalizer::FORM_C); + if (!\Normalizer::isNormalized($domain, \Normalizer::FORM_C)) { + $domain = \Normalizer::normalize($domain, \Normalizer::FORM_C); } // Step 3. Break the string into labels at U+002E (.) FULL STOP. @@ -348,9 +342,21 @@ private static function process($domain, array $options, Info $info) $validationOptions = $options; if ('xn--' === substr($label, 0, 4)) { + // Step 4.1. If the label contains any non-ASCII code point (i.e., a code point greater than U+007F), + // record that there was an error, and continue with the next label. + if (preg_match('/[^\x00-\x7F]/', $label)) { + $info->errors |= self::ERROR_PUNYCODE; + + continue; + } + + // Step 4.2. Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492]. If + // that conversion fails, record that there was an error, and continue + // with the next label. Otherwise replace the original label in the string by the results of the + // conversion. try { $label = self::punycodeDecode(substr($label, 4)); - } catch (Exception $e) { + } catch (\Exception $e) { $info->errors |= self::ERROR_PUNYCODE; continue; @@ -496,7 +502,7 @@ private static function validateLabel($label, Info $info, array $options, $canBe } // Step 1. The label must be in Unicode Normalization Form C. - if (!Normalizer::isNormalized($label, Normalizer::FORM_C)) { + if (!\Normalizer::isNormalized($label, \Normalizer::FORM_C)) { $info->errors |= self::ERROR_INVALID_ACE_LABEL; } @@ -518,6 +524,8 @@ private static function validateLabel($label, Info $info, array $options, $canBe if ('-' === substr($label, -1, 1)) { $info->errors |= self::ERROR_TRAILING_HYPHEN; } + } elseif ('xn--' === substr($label, 0, 4)) { + $info->errors |= self::ERROR_PUNYCODE; } // Step 4. The label must not contain a U+002E (.) FULL STOP. @@ -583,7 +591,7 @@ private static function punycodeDecode($input) for ($j = 0; $j < $b; ++$j) { if ($bytes[$j] > 0x7F) { - throw new Exception('Invalid input'); + throw new \Exception('Invalid input'); } $output[$out++] = $input[$j]; @@ -599,17 +607,17 @@ private static function punycodeDecode($input) for ($k = self::BASE; /* no condition */; $k += self::BASE) { if ($in >= $inputLength) { - throw new Exception('Invalid input'); + throw new \Exception('Invalid input'); } $digit = self::$basicToDigit[$bytes[$in++] & 0xFF]; if ($digit < 0) { - throw new Exception('Invalid input'); + throw new \Exception('Invalid input'); } if ($digit > intdiv(self::MAX_INT - $i, $w)) { - throw new Exception('Integer overflow'); + throw new \Exception('Integer overflow'); } $i += $digit * $w; @@ -629,7 +637,7 @@ private static function punycodeDecode($input) $baseMinusT = self::BASE - $t; if ($w > intdiv(self::MAX_INT, $baseMinusT)) { - throw new Exception('Integer overflow'); + throw new \Exception('Integer overflow'); } $w *= $baseMinusT; @@ -639,7 +647,7 @@ private static function punycodeDecode($input) $bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi); if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) { - throw new Exception('Integer overflow'); + throw new \Exception('Integer overflow'); } $n += intdiv($i, $outPlusOne); @@ -694,7 +702,7 @@ private static function punycodeEncode($input) } if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) { - throw new Exception('Integer overflow'); + throw new \Exception('Integer overflow'); } $delta += ($m - $n) * ($h + 1); @@ -702,7 +710,7 @@ private static function punycodeEncode($input) foreach ($iter as $codePoint) { if ($codePoint < $n && 0 === ++$delta) { - throw new Exception('Integer overflow'); + throw new \Exception('Integer overflow'); } if ($codePoint === $n) { @@ -723,7 +731,7 @@ private static function punycodeEncode($input) $qMinusT = $q - $t; $baseMinusT = self::BASE - $t; - $output .= self::encodeDigit($t + ($qMinusT) % ($baseMinusT), false); + $output .= self::encodeDigit($t + $qMinusT % $baseMinusT, false); ++$out; $q = intdiv($qMinusT, $baseMinusT); } diff --git a/api/vendor/symfony/polyfill-intl-idn/LICENSE b/api/vendor/symfony/polyfill-intl-idn/LICENSE index 03c5e2577..fd0a0626a 100644 --- a/api/vendor/symfony/polyfill-intl-idn/LICENSE +++ b/api/vendor/symfony/polyfill-intl-idn/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham +Copyright (c) 2018-present Fabien Potencier and Trevor Rowbotham Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-intl-idn/README.md b/api/vendor/symfony/polyfill-intl-idn/README.md index 2e75f2e52..cae551705 100644 --- a/api/vendor/symfony/polyfill-intl-idn/README.md +++ b/api/vendor/symfony/polyfill-intl-idn/README.md @@ -4,7 +4,7 @@ Symfony Polyfill / Intl: Idn This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension. More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php b/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php index 5bb70e48a..d285acd13 100644 --- a/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php +++ b/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Symfony\Polyfill\Intl\Idn\Resources\unidata; /** diff --git a/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php b/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php index 5c1c51dde..3c6af0c13 100644 --- a/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php +++ b/api/vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Symfony\Polyfill\Intl\Idn\Resources\unidata; /** diff --git a/api/vendor/symfony/polyfill-intl-idn/composer.json b/api/vendor/symfony/polyfill-intl-idn/composer.json index c5a2a462a..12f75bceb 100644 --- a/api/vendor/symfony/polyfill-intl-idn/composer.json +++ b/api/vendor/symfony/polyfill-intl-idn/composer.json @@ -33,9 +33,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-intl-normalizer/LICENSE b/api/vendor/symfony/polyfill-intl-normalizer/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/api/vendor/symfony/polyfill-intl-normalizer/LICENSE +++ b/api/vendor/symfony/polyfill-intl-normalizer/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-intl-normalizer/Normalizer.php b/api/vendor/symfony/polyfill-intl-normalizer/Normalizer.php index 4443c2322..81704ab37 100644 --- a/api/vendor/symfony/polyfill-intl-normalizer/Normalizer.php +++ b/api/vendor/symfony/polyfill-intl-normalizer/Normalizer.php @@ -90,7 +90,7 @@ public static function normalize(string $s, int $form = self::FORM_C) self::$cC = self::getData('combiningClass'); } - if (null !== $mbEncoding = (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) ? mb_internal_encoding() : null) { + if (null !== $mbEncoding = (2 /* MB_OVERLOAD_STRING */ & (int) \ini_get('mbstring.func_overload')) ? mb_internal_encoding() : null) { mb_internal_encoding('8bit'); } diff --git a/api/vendor/symfony/polyfill-intl-normalizer/README.md b/api/vendor/symfony/polyfill-intl-normalizer/README.md index 15060c5f1..b9b762e85 100644 --- a/api/vendor/symfony/polyfill-intl-normalizer/README.md +++ b/api/vendor/symfony/polyfill-intl-normalizer/README.md @@ -6,7 +6,7 @@ This component provides a fallback implementation for the by the [Intl](https://php.net/intl) extension. More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-intl-normalizer/composer.json b/api/vendor/symfony/polyfill-intl-normalizer/composer.json index 393edf701..1b93573ae 100644 --- a/api/vendor/symfony/polyfill-intl-normalizer/composer.json +++ b/api/vendor/symfony/polyfill-intl-normalizer/composer.json @@ -28,9 +28,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-mbstring/LICENSE b/api/vendor/symfony/polyfill-mbstring/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/api/vendor/symfony/polyfill-mbstring/LICENSE +++ b/api/vendor/symfony/polyfill-mbstring/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-mbstring/Mbstring.php b/api/vendor/symfony/polyfill-mbstring/Mbstring.php index b65c54a6b..1ad33a86b 100644 --- a/api/vendor/symfony/polyfill-mbstring/Mbstring.php +++ b/api/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -48,6 +48,8 @@ * - mb_strstr - Finds first occurrence of a string within another * - mb_strwidth - Return width of string * - mb_substr_count - Count the number of substring occurrences + * - mb_ucfirst - Make a string's first character uppercase + * - mb_lcfirst - Make a string's first character lowercase * * Not implemented: * - mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more) @@ -69,7 +71,7 @@ final class Mbstring { public const MB_CASE_FOLD = \PHP_INT_MAX; - private const CASE_FOLD = [ + private const SIMPLE_CASE_FOLD = [ ['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"], ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'], ]; @@ -80,7 +82,22 @@ final class Mbstring public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null) { - if (\is_array($fromEncoding) || ($fromEncoding !== null && false !== strpos($fromEncoding, ','))) { + if (\is_array($s)) { + if (PHP_VERSION_ID < 70200) { + trigger_error('mb_convert_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); + + return null; + } + + $r = []; + foreach ($s as $str) { + $r[] = self::mb_convert_encoding($str, $toEncoding, $fromEncoding); + } + + return $r; + } + + if (\is_array($fromEncoding) || (null !== $fromEncoding && false !== strpos($fromEncoding, ','))) { $fromEncoding = self::mb_detect_encoding($s, $fromEncoding); } else { $fromEncoding = self::getEncoding($fromEncoding); @@ -102,7 +119,7 @@ public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null $fromEncoding = 'Windows-1252'; } if ('UTF-8' !== $fromEncoding) { - $s = \iconv($fromEncoding, 'UTF-8//IGNORE', $s); + $s = iconv($fromEncoding, 'UTF-8//IGNORE', $s); } return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s); @@ -113,7 +130,7 @@ public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null $fromEncoding = 'UTF-8'; } - return \iconv($fromEncoding, $toEncoding.'//IGNORE', $s); + return iconv($fromEncoding, $toEncoding.'//IGNORE', $s); } public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars) @@ -130,7 +147,7 @@ public static function mb_convert_variables($toEncoding, $fromEncoding, &...$var public static function mb_decode_mimeheader($s) { - return \iconv_mime_decode($s, 2, self::$internalEncoding); + return iconv_mime_decode($s, 2, self::$internalEncoding); } public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null) @@ -140,7 +157,7 @@ public static function mb_encode_mimeheader($s, $charset = null, $transferEncodi public static function mb_decode_numericentity($s, $convmap, $encoding = null) { - if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) { + if (null !== $s && !\is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) { trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING); return null; @@ -150,7 +167,7 @@ public static function mb_decode_numericentity($s, $convmap, $encoding = null) return false; } - if (null !== $encoding && !is_scalar($encoding)) { + if (null !== $encoding && !\is_scalar($encoding)) { trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING); return ''; // Instead of null (cf. mb_encode_numericentity). @@ -166,10 +183,10 @@ public static function mb_decode_numericentity($s, $convmap, $encoding = null) if ('UTF-8' === $encoding) { $encoding = null; if (!preg_match('//u', $s)) { - $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); + $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s); } } else { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + $s = iconv($encoding, 'UTF-8//IGNORE', $s); } $cnt = floor(\count($convmap) / 4) * 4; @@ -195,12 +212,12 @@ public static function mb_decode_numericentity($s, $convmap, $encoding = null) return $s; } - return \iconv('UTF-8', $encoding.'//IGNORE', $s); + return iconv('UTF-8', $encoding.'//IGNORE', $s); } public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false) { - if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) { + if (null !== $s && !\is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) { trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING); return null; @@ -210,13 +227,13 @@ public static function mb_encode_numericentity($s, $convmap, $encoding = null, $ return false; } - if (null !== $encoding && !is_scalar($encoding)) { + if (null !== $encoding && !\is_scalar($encoding)) { trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING); return null; // Instead of '' (cf. mb_decode_numericentity). } - if (null !== $is_hex && !is_scalar($is_hex)) { + if (null !== $is_hex && !\is_scalar($is_hex)) { trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', \E_USER_WARNING); return null; @@ -232,10 +249,10 @@ public static function mb_encode_numericentity($s, $convmap, $encoding = null, $ if ('UTF-8' === $encoding) { $encoding = null; if (!preg_match('//u', $s)) { - $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); + $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s); } } else { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + $s = iconv($encoding, 'UTF-8//IGNORE', $s); } static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4]; @@ -265,7 +282,7 @@ public static function mb_encode_numericentity($s, $convmap, $encoding = null, $ return $result; } - return \iconv('UTF-8', $encoding.'//IGNORE', $result); + return iconv('UTF-8', $encoding.'//IGNORE', $result); } public static function mb_convert_case($s, $mode, $encoding = null) @@ -280,10 +297,10 @@ public static function mb_convert_case($s, $mode, $encoding = null) if ('UTF-8' === $encoding) { $encoding = null; if (!preg_match('//u', $s)) { - $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s); + $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s); } } else { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + $s = iconv($encoding, 'UTF-8//IGNORE', $s); } if (\MB_CASE_TITLE == $mode) { @@ -301,7 +318,11 @@ public static function mb_convert_case($s, $mode, $encoding = null) $map = $upper; } else { if (self::MB_CASE_FOLD === $mode) { - $s = str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s); + static $caseFolding = null; + if (null === $caseFolding) { + $caseFolding = self::getData('caseFolding'); + } + $s = strtr($s, $caseFolding); } static $lower = null; @@ -343,7 +364,7 @@ public static function mb_convert_case($s, $mode, $encoding = null) return $s; } - return \iconv('UTF-8', $encoding.'//IGNORE', $s); + return iconv('UTF-8', $encoding.'//IGNORE', $s); } public static function mb_internal_encoding($encoding = null) @@ -354,7 +375,7 @@ public static function mb_internal_encoding($encoding = null) $normalizedEncoding = self::getEncoding($encoding); - if ('UTF-8' === $normalizedEncoding || false !== @\iconv($normalizedEncoding, $normalizedEncoding, ' ')) { + if ('UTF-8' === $normalizedEncoding || false !== @iconv($normalizedEncoding, $normalizedEncoding, ' ')) { self::$internalEncoding = $normalizedEncoding; return true; @@ -406,6 +427,12 @@ public static function mb_encoding_aliases($encoding) public static function mb_check_encoding($var = null, $encoding = null) { + if (\PHP_VERSION_ID < 70200 && \is_array($var)) { + trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); + + return null; + } + if (null === $encoding) { if (null === $var) { return false; @@ -413,7 +440,20 @@ public static function mb_check_encoding($var = null, $encoding = null) $encoding = self::$internalEncoding; } - return self::mb_detect_encoding($var, [$encoding]) || false !== @\iconv($encoding, $encoding, $var); + if (!\is_array($var)) { + return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var); + } + + foreach ($var as $key => $value) { + if (!self::mb_check_encoding($key, $encoding)) { + return false; + } + if (!self::mb_check_encoding($value, $encoding)) { + return false; + } + } + + return true; } public static function mb_detect_encoding($str, $encodingList = null, $strict = false) @@ -488,7 +528,7 @@ public static function mb_strlen($s, $encoding = null) return \strlen($s); } - return @\iconv_strlen($s, $encoding); + return @iconv_strlen($s, $encoding); } public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) @@ -509,7 +549,7 @@ public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = nu return 0; } - return \iconv_strpos($haystack, $needle, $offset, $encoding); + return iconv_strpos($haystack, $needle, $offset, $encoding); } public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) @@ -533,7 +573,7 @@ public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = n } $pos = '' !== $needle || 80000 > \PHP_VERSION_ID - ? \iconv_strrpos($haystack, $needle, $encoding) + ? iconv_strrpos($haystack, $needle, $encoding) : self::mb_strlen($haystack, $encoding); return false !== $pos ? $offset + $pos : false; @@ -541,7 +581,7 @@ public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = n public static function mb_str_split($string, $split_length = 1, $encoding = null) { - if (null !== $string && !is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) { + if (null !== $string && !\is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) { trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', \E_USER_WARNING); return null; @@ -550,6 +590,7 @@ public static function mb_str_split($string, $split_length = 1, $encoding = null if (1 > $split_length = (int) $split_length) { if (80000 > \PHP_VERSION_ID) { trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING); + return false; } @@ -568,7 +609,7 @@ public static function mb_str_split($string, $split_length = 1, $encoding = null } $rx .= '.{'.$split_length.'})/us'; - return preg_split($rx, $string, null, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY); + return preg_split($rx, $string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY); } $result = []; @@ -617,7 +658,7 @@ public static function mb_substr($s, $start, $length = null, $encoding = null) } if ($start < 0) { - $start = \iconv_strlen($s, $encoding) + $start; + $start = iconv_strlen($s, $encoding) + $start; if ($start < 0) { $start = 0; } @@ -626,19 +667,21 @@ public static function mb_substr($s, $start, $length = null, $encoding = null) if (null === $length) { $length = 2147483647; } elseif ($length < 0) { - $length = \iconv_strlen($s, $encoding) + $length - $start; + $length = iconv_strlen($s, $encoding) + $length - $start; if ($length < 0) { return ''; } } - return (string) \iconv_substr($s, $start, $length, $encoding); + return (string) iconv_substr($s, $start, $length, $encoding); } public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + [$haystack, $needle] = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [ + self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding), + self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding), + ]); return self::mb_strpos($haystack, $needle, $offset, $encoding); } @@ -657,7 +700,7 @@ public static function mb_strrchr($haystack, $needle, $part = false, $encoding = $pos = strrpos($haystack, $needle); } else { $needle = self::mb_substr($needle, 0, 1, $encoding); - $pos = \iconv_strrpos($haystack, $needle, $encoding); + $pos = iconv_strrpos($haystack, $needle, $encoding); } return self::getSubpart($pos, $part, $haystack, $encoding); @@ -673,8 +716,11 @@ public static function mb_strrichr($haystack, $needle, $part = false, $encoding public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + $haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding); + $needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding); + + $haystack = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack); + $needle = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle); return self::mb_strrpos($haystack, $needle, $offset, $encoding); } @@ -736,12 +782,12 @@ public static function mb_strwidth($s, $encoding = null) $encoding = self::getEncoding($encoding); if ('UTF-8' !== $encoding) { - $s = \iconv($encoding, 'UTF-8//IGNORE', $s); + $s = iconv($encoding, 'UTF-8//IGNORE', $s); } $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide); - return ($wide << 1) + \iconv_strlen($s, 'UTF-8'); + return ($wide << 1) + iconv_strlen($s, 'UTF-8'); } public static function mb_substr_count($haystack, $needle, $encoding = null) @@ -797,6 +843,69 @@ public static function mb_ord($s, $encoding = null) return $code; } + public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string + { + if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) { + throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); + } + + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } else { + self::assertEncoding($encoding, 'mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given'); + } + + if (self::mb_strlen($pad_string, $encoding) <= 0) { + throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string'); + } + + $paddingRequired = $length - self::mb_strlen($string, $encoding); + + if ($paddingRequired < 1) { + return $string; + } + + switch ($pad_type) { + case \STR_PAD_LEFT: + return self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string; + case \STR_PAD_RIGHT: + return $string.self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding); + default: + $leftPaddingLength = floor($paddingRequired / 2); + $rightPaddingLength = $paddingRequired - $leftPaddingLength; + + return self::mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.self::mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding); + } + } + + public static function mb_ucfirst(string $string, ?string $encoding = null): string + { + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } else { + self::assertEncoding($encoding, 'mb_ucfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given'); + } + + $firstChar = mb_substr($string, 0, 1, $encoding); + $firstChar = mb_convert_case($firstChar, \MB_CASE_TITLE, $encoding); + + return $firstChar.mb_substr($string, 1, null, $encoding); + } + + public static function mb_lcfirst(string $string, ?string $encoding = null): string + { + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } else { + self::assertEncoding($encoding, 'mb_lcfirst(): Argument #2 ($encoding) must be a valid encoding, "%s" given'); + } + + $firstChar = mb_substr($string, 0, 1, $encoding); + $firstChar = mb_convert_case($firstChar, \MB_CASE_LOWER, $encoding); + + return $firstChar.mb_substr($string, 1, null, $encoding); + } + private static function getSubpart($pos, $part, $haystack, $encoding) { if (false === $pos) { @@ -870,4 +979,18 @@ private static function getEncoding($encoding) return $encoding; } + + private static function assertEncoding(string $encoding, string $errorFormat): void + { + try { + $validEncoding = @self::mb_check_encoding('', $encoding); + } catch (\ValueError $e) { + throw new \ValueError(\sprintf($errorFormat, $encoding)); + } + + // BC for PHP 7.3 and lower + if (!$validEncoding) { + throw new \ValueError(\sprintf($errorFormat, $encoding)); + } + } } diff --git a/api/vendor/symfony/polyfill-mbstring/README.md b/api/vendor/symfony/polyfill-mbstring/README.md index 4efb599d8..478b40da2 100644 --- a/api/vendor/symfony/polyfill-mbstring/README.md +++ b/api/vendor/symfony/polyfill-mbstring/README.md @@ -5,7 +5,7 @@ This component provides a partial, native PHP implementation for the [Mbstring](https://php.net/mbstring) extension. More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/api/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php new file mode 100644 index 000000000..512bba0bf --- /dev/null +++ b/api/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php @@ -0,0 +1,119 @@ + 'i̇', + 'µ' => 'μ', + 'ſ' => 's', + 'ͅ' => 'ι', + 'ς' => 'σ', + 'ϐ' => 'β', + 'ϑ' => 'θ', + 'ϕ' => 'φ', + 'ϖ' => 'π', + 'ϰ' => 'κ', + 'ϱ' => 'ρ', + 'ϵ' => 'ε', + 'ẛ' => 'ṡ', + 'ι' => 'ι', + 'ß' => 'ss', + 'ʼn' => 'ʼn', + 'ǰ' => 'ǰ', + 'ΐ' => 'ΐ', + 'ΰ' => 'ΰ', + 'և' => 'եւ', + 'ẖ' => 'ẖ', + 'ẗ' => 'ẗ', + 'ẘ' => 'ẘ', + 'ẙ' => 'ẙ', + 'ẚ' => 'aʾ', + 'ẞ' => 'ss', + 'ὐ' => 'ὐ', + 'ὒ' => 'ὒ', + 'ὔ' => 'ὔ', + 'ὖ' => 'ὖ', + 'ᾀ' => 'ἀι', + 'ᾁ' => 'ἁι', + 'ᾂ' => 'ἂι', + 'ᾃ' => 'ἃι', + 'ᾄ' => 'ἄι', + 'ᾅ' => 'ἅι', + 'ᾆ' => 'ἆι', + 'ᾇ' => 'ἇι', + 'ᾈ' => 'ἀι', + 'ᾉ' => 'ἁι', + 'ᾊ' => 'ἂι', + 'ᾋ' => 'ἃι', + 'ᾌ' => 'ἄι', + 'ᾍ' => 'ἅι', + 'ᾎ' => 'ἆι', + 'ᾏ' => 'ἇι', + 'ᾐ' => 'ἠι', + 'ᾑ' => 'ἡι', + 'ᾒ' => 'ἢι', + 'ᾓ' => 'ἣι', + 'ᾔ' => 'ἤι', + 'ᾕ' => 'ἥι', + 'ᾖ' => 'ἦι', + 'ᾗ' => 'ἧι', + 'ᾘ' => 'ἠι', + 'ᾙ' => 'ἡι', + 'ᾚ' => 'ἢι', + 'ᾛ' => 'ἣι', + 'ᾜ' => 'ἤι', + 'ᾝ' => 'ἥι', + 'ᾞ' => 'ἦι', + 'ᾟ' => 'ἧι', + 'ᾠ' => 'ὠι', + 'ᾡ' => 'ὡι', + 'ᾢ' => 'ὢι', + 'ᾣ' => 'ὣι', + 'ᾤ' => 'ὤι', + 'ᾥ' => 'ὥι', + 'ᾦ' => 'ὦι', + 'ᾧ' => 'ὧι', + 'ᾨ' => 'ὠι', + 'ᾩ' => 'ὡι', + 'ᾪ' => 'ὢι', + 'ᾫ' => 'ὣι', + 'ᾬ' => 'ὤι', + 'ᾭ' => 'ὥι', + 'ᾮ' => 'ὦι', + 'ᾯ' => 'ὧι', + 'ᾲ' => 'ὰι', + 'ᾳ' => 'αι', + 'ᾴ' => 'άι', + 'ᾶ' => 'ᾶ', + 'ᾷ' => 'ᾶι', + 'ᾼ' => 'αι', + 'ῂ' => 'ὴι', + 'ῃ' => 'ηι', + 'ῄ' => 'ήι', + 'ῆ' => 'ῆ', + 'ῇ' => 'ῆι', + 'ῌ' => 'ηι', + 'ῒ' => 'ῒ', + 'ῖ' => 'ῖ', + 'ῗ' => 'ῗ', + 'ῢ' => 'ῢ', + 'ῤ' => 'ῤ', + 'ῦ' => 'ῦ', + 'ῧ' => 'ῧ', + 'ῲ' => 'ὼι', + 'ῳ' => 'ωι', + 'ῴ' => 'ώι', + 'ῶ' => 'ῶ', + 'ῷ' => 'ῶι', + 'ῼ' => 'ωι', + 'ff' => 'ff', + 'fi' => 'fi', + 'fl' => 'fl', + 'ffi' => 'ffi', + 'ffl' => 'ffl', + 'ſt' => 'st', + 'st' => 'st', + 'ﬓ' => 'մն', + 'ﬔ' => 'մե', + 'ﬕ' => 'մի', + 'ﬖ' => 'վն', + 'ﬗ' => 'մխ', +]; diff --git a/api/vendor/symfony/polyfill-mbstring/bootstrap.php b/api/vendor/symfony/polyfill-mbstring/bootstrap.php index 1fedd1f7c..6e4b5fce8 100644 --- a/api/vendor/symfony/polyfill-mbstring/bootstrap.php +++ b/api/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -132,6 +132,18 @@ function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + +if (!function_exists('mb_ucfirst')) { + function mb_ucfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); } +} + +if (!function_exists('mb_lcfirst')) { + function mb_lcfirst(string $string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/api/vendor/symfony/polyfill-mbstring/bootstrap80.php b/api/vendor/symfony/polyfill-mbstring/bootstrap80.php index 82f5ac4d0..ec2ae4276 100644 --- a/api/vendor/symfony/polyfill-mbstring/bootstrap80.php +++ b/api/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -128,6 +128,18 @@ function mb_scrub(?string $string, ?string $encoding = null): string { $encoding function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + +if (!function_exists('mb_ucfirst')) { + function mb_ucfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_ucfirst($string, $encoding); } +} + +if (!function_exists('mb_lcfirst')) { + function mb_lcfirst($string, ?string $encoding = null): string { return p\Mbstring::mb_lcfirst($string, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/api/vendor/symfony/polyfill-mbstring/composer.json b/api/vendor/symfony/polyfill-mbstring/composer.json index 1fa21ca16..bd99d4b9d 100644 --- a/api/vendor/symfony/polyfill-mbstring/composer.json +++ b/api/vendor/symfony/polyfill-mbstring/composer.json @@ -30,9 +30,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-php72/LICENSE b/api/vendor/symfony/polyfill-php72/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/api/vendor/symfony/polyfill-php72/LICENSE +++ b/api/vendor/symfony/polyfill-php72/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-php72/Php72.php b/api/vendor/symfony/polyfill-php72/Php72.php index 5e20d5bf8..e97b1b27d 100644 --- a/api/vendor/symfony/polyfill-php72/Php72.php +++ b/api/vendor/symfony/polyfill-php72/Php72.php @@ -83,7 +83,7 @@ public static function php_os_family() 'SunOS' => 'Solaris', ]; - return isset($map[\PHP_OS]) ? $map[\PHP_OS] : 'Unknown'; + return $map[\PHP_OS] ?? 'Unknown'; } public static function spl_object_id($object) @@ -96,7 +96,7 @@ public static function spl_object_id($object) } // On 32-bit systems, PHP_INT_SIZE is 4, - return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1))); + return self::$hashMask ^ hexdec(substr($hash, 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1)); } public static function sapi_windows_vt100_support($stream, $enable = null) @@ -141,6 +141,7 @@ public static function stream_isatty($stream) if ('\\' === \DIRECTORY_SEPARATOR) { $stat = @fstat($stream); + // Check if formatted mode is S_IFCHR return $stat ? 0020000 === ($stat['mode'] & 0170000) : false; } @@ -167,7 +168,7 @@ private static function initHashMask() self::$hashMask = (int) substr(ob_get_clean(), 17); } - self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), (\PHP_INT_SIZE * 2 - 1))); + self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - (\PHP_INT_SIZE * 2 - 1), \PHP_INT_SIZE * 2 - 1)); } public static function mb_chr($code, $encoding = null) diff --git a/api/vendor/symfony/polyfill-php72/README.md b/api/vendor/symfony/polyfill-php72/README.md index 59dec8a23..ed1905055 100644 --- a/api/vendor/symfony/polyfill-php72/README.md +++ b/api/vendor/symfony/polyfill-php72/README.md @@ -6,6 +6,12 @@ This component provides functions added to PHP 7.2 core: - [`spl_object_id`](https://php.net/spl_object_id) - [`stream_isatty`](https://php.net/stream_isatty) +And also functions added to PHP 7.2 mbstring: + +- [`mb_ord`](https://php.net/mb_ord) +- [`mb_chr`](https://php.net/mb_chr) +- [`mb_scrub`](https://php.net/mb_scrub) + On Windows only: - [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support) @@ -16,11 +22,12 @@ Moved to core since 7.2 (was in the optional XML extension earlier): - [`utf8_decode`](https://php.net/utf8_decode) Also, it provides constants added to PHP 7.2: + - [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig) - [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family) More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-php72/composer.json b/api/vendor/symfony/polyfill-php72/composer.json index c96c84477..1882576df 100644 --- a/api/vendor/symfony/polyfill-php72/composer.json +++ b/api/vendor/symfony/polyfill-php72/composer.json @@ -24,9 +24,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-php73/LICENSE b/api/vendor/symfony/polyfill-php73/LICENSE index 3f853aaf3..7536caeae 100644 --- a/api/vendor/symfony/polyfill-php73/LICENSE +++ b/api/vendor/symfony/polyfill-php73/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2019 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-php73/README.md b/api/vendor/symfony/polyfill-php73/README.md index b3ebbce51..032fafbda 100644 --- a/api/vendor/symfony/polyfill-php73/README.md +++ b/api/vendor/symfony/polyfill-php73/README.md @@ -10,7 +10,7 @@ This component provides functions added to PHP 7.3 core: - [`JsonException`](https://php.net/JsonException) More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-php73/composer.json b/api/vendor/symfony/polyfill-php73/composer.json index a7fe47875..3d47d1541 100644 --- a/api/vendor/symfony/polyfill-php73/composer.json +++ b/api/vendor/symfony/polyfill-php73/composer.json @@ -25,9 +25,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-php80/LICENSE b/api/vendor/symfony/polyfill-php80/LICENSE index 5593b1d84..0ed3a2465 100644 --- a/api/vendor/symfony/polyfill-php80/LICENSE +++ b/api/vendor/symfony/polyfill-php80/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020 Fabien Potencier +Copyright (c) 2020-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-php80/Php80.php b/api/vendor/symfony/polyfill-php80/Php80.php index 5fef51184..362dd1a95 100644 --- a/api/vendor/symfony/polyfill-php80/Php80.php +++ b/api/vendor/symfony/polyfill-php80/Php80.php @@ -100,6 +100,16 @@ public static function str_starts_with(string $haystack, string $needle): bool public static function str_ends_with(string $haystack, string $needle): bool { - return '' === $needle || ('' !== $haystack && 0 === substr_compare($haystack, $needle, -\strlen($needle))); + if ('' === $needle || $needle === $haystack) { + return true; + } + + if ('' === $haystack) { + return false; + } + + $needleLength = \strlen($needle); + + return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength); } } diff --git a/api/vendor/symfony/polyfill-php80/PhpToken.php b/api/vendor/symfony/polyfill-php80/PhpToken.php new file mode 100644 index 000000000..fe6e69105 --- /dev/null +++ b/api/vendor/symfony/polyfill-php80/PhpToken.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Php80; + +/** + * @author Fedonyuk Anton + * + * @internal + */ +class PhpToken implements \Stringable +{ + /** + * @var int + */ + public $id; + + /** + * @var string + */ + public $text; + + /** + * @var int + */ + public $line; + + /** + * @var int + */ + public $pos; + + public function __construct(int $id, string $text, int $line = -1, int $position = -1) + { + $this->id = $id; + $this->text = $text; + $this->line = $line; + $this->pos = $position; + } + + public function getTokenName(): ?string + { + if ('UNKNOWN' === $name = token_name($this->id)) { + $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text; + } + + return $name; + } + + /** + * @param int|string|array $kind + */ + public function is($kind): bool + { + foreach ((array) $kind as $value) { + if (\in_array($value, [$this->id, $this->text], true)) { + return true; + } + } + + return false; + } + + public function isIgnorable(): bool + { + return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true); + } + + public function __toString(): string + { + return (string) $this->text; + } + + /** + * @return static[] + */ + public static function tokenize(string $code, int $flags = 0): array + { + $line = 1; + $position = 0; + $tokens = token_get_all($code, $flags); + foreach ($tokens as $index => $token) { + if (\is_string($token)) { + $id = \ord($token); + $text = $token; + } else { + [$id, $text, $line] = $token; + } + $tokens[$index] = new static($id, $text, $line, $position); + $position += \strlen($text); + } + + return $tokens; + } +} diff --git a/api/vendor/symfony/polyfill-php80/README.md b/api/vendor/symfony/polyfill-php80/README.md index 10b8ee49a..3816c559d 100644 --- a/api/vendor/symfony/polyfill-php80/README.md +++ b/api/vendor/symfony/polyfill-php80/README.md @@ -3,12 +3,13 @@ Symfony Polyfill / Php80 This component provides features added to PHP 8.0 core: -- `Stringable` interface +- [`Stringable`](https://php.net/stringable) interface - [`fdiv`](https://php.net/fdiv) -- `ValueError` class -- `UnhandledMatchError` class +- [`ValueError`](https://php.net/valueerror) class +- [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class - `FILTER_VALIDATE_BOOL` constant - [`get_debug_type`](https://php.net/get_debug_type) +- [`PhpToken`](https://php.net/phptoken) class - [`preg_last_error_msg`](https://php.net/preg_last_error_msg) - [`str_contains`](https://php.net/str_contains) - [`str_starts_with`](https://php.net/str_starts_with) diff --git a/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php b/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php index 7ea6d2772..2b955423f 100644 --- a/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +++ b/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + #[Attribute(Attribute::TARGET_CLASS)] final class Attribute { diff --git a/api/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php b/api/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php new file mode 100644 index 000000000..bd1212f6e --- /dev/null +++ b/api/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) { + class PhpToken extends Symfony\Polyfill\Php80\PhpToken + { + } +} diff --git a/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php b/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php index 77e037cb5..7c62d7508 100644 --- a/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +++ b/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + if (\PHP_VERSION_ID < 80000) { interface Stringable { diff --git a/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php b/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php index 37937cbfa..01c6c6c8a 100644 --- a/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +++ b/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + if (\PHP_VERSION_ID < 80000) { class UnhandledMatchError extends Error { diff --git a/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php b/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php index a3a9b88b0..783dbc28c 100644 --- a/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +++ b/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + if (\PHP_VERSION_ID < 80000) { class ValueError extends Error { diff --git a/api/vendor/symfony/polyfill-php80/composer.json b/api/vendor/symfony/polyfill-php80/composer.json index 5fe679db3..46ccde203 100644 --- a/api/vendor/symfony/polyfill-php80/composer.json +++ b/api/vendor/symfony/polyfill-php80/composer.json @@ -29,9 +29,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/polyfill-php81/LICENSE b/api/vendor/symfony/polyfill-php81/LICENSE index efb17f98e..99c6bdf35 100644 --- a/api/vendor/symfony/polyfill-php81/LICENSE +++ b/api/vendor/symfony/polyfill-php81/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2021 Fabien Potencier +Copyright (c) 2021-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/polyfill-php81/README.md b/api/vendor/symfony/polyfill-php81/README.md index 5ef61be6a..c07ef7820 100644 --- a/api/vendor/symfony/polyfill-php81/README.md +++ b/api/vendor/symfony/polyfill-php81/README.md @@ -4,11 +4,13 @@ Symfony Polyfill / Php81 This component provides features added to PHP 8.1 core: - [`array_is_list`](https://php.net/array_is_list) -- [`MYSQLI_REFRESH_REPLICA`](https://www.php.net/manual/en/mysqli.constants.php#constantmysqli-refresh-replica) constant +- [`enum_exists`](https://php.net/enum-exists) +- [`MYSQLI_REFRESH_REPLICA`](https://php.net/mysqli.constants#constantmysqli-refresh-replica) constant - [`ReturnTypeWillChange`](https://wiki.php.net/rfc/internal_method_return_types) +- [`CURLStringFile`](https://php.net/CURLStringFile) (but only if PHP >= 7.4 is used) More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= diff --git a/api/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php b/api/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php new file mode 100644 index 000000000..5ff93fcaf --- /dev/null +++ b/api/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID >= 70400 && extension_loaded('curl')) { + /** + * @property string $data + */ + class CURLStringFile extends CURLFile + { + private $data; + + public function __construct(string $data, string $postname, string $mime = 'application/octet-stream') + { + $this->data = $data; + parent::__construct('data://application/octet-stream;base64,'.base64_encode($data), $mime, $postname); + } + + public function __set(string $name, $value): void + { + if ('data' !== $name) { + $this->$name = $value; + + return; + } + + if (is_object($value) ? !method_exists($value, '__toString') : !is_scalar($value)) { + throw new TypeError('Cannot assign '.gettype($value).' to property CURLStringFile::$data of type string'); + } + + $this->name = 'data://application/octet-stream;base64,'.base64_encode($value); + } + + public function __isset(string $name): bool + { + return isset($this->$name); + } + + public function &__get(string $name) + { + return $this->$name; + } + } +} diff --git a/api/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php b/api/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php index f4cad34f6..cb7720a8d 100644 --- a/api/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php +++ b/api/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + if (\PHP_VERSION_ID < 80100) { #[Attribute(Attribute::TARGET_METHOD)] final class ReturnTypeWillChange diff --git a/api/vendor/symfony/polyfill-php81/composer.json b/api/vendor/symfony/polyfill-php81/composer.json index c39ccf477..381af79ac 100644 --- a/api/vendor/symfony/polyfill-php81/composer.json +++ b/api/vendor/symfony/polyfill-php81/composer.json @@ -25,9 +25,6 @@ }, "minimum-stability": "dev", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" diff --git a/api/vendor/symfony/process/ExecutableFinder.php b/api/vendor/symfony/process/ExecutableFinder.php index 5914b4cd2..f392c962e 100644 --- a/api/vendor/symfony/process/ExecutableFinder.php +++ b/api/vendor/symfony/process/ExecutableFinder.php @@ -46,10 +46,10 @@ public function addSuffix(string $suffix) * * @return string|null */ - public function find(string $name, string $default = null, array $extraDirs = []) + public function find(string $name, ?string $default = null, array $extraDirs = []) { - if (ini_get('open_basedir')) { - $searchPath = array_merge(explode(\PATH_SEPARATOR, ini_get('open_basedir')), $extraDirs); + if (\ini_get('open_basedir')) { + $searchPath = array_merge(explode(\PATH_SEPARATOR, \ini_get('open_basedir')), $extraDirs); $dirs = []; foreach ($searchPath as $path) { // Silencing against https://bugs.php.net/69240 diff --git a/api/vendor/symfony/process/InputStream.php b/api/vendor/symfony/process/InputStream.php index 240665f32..0c45b5245 100644 --- a/api/vendor/symfony/process/InputStream.php +++ b/api/vendor/symfony/process/InputStream.php @@ -30,7 +30,7 @@ class InputStream implements \IteratorAggregate /** * Sets a callback that is called when the write buffer becomes empty. */ - public function onEmpty(callable $onEmpty = null) + public function onEmpty(?callable $onEmpty = null) { $this->onEmpty = $onEmpty; } diff --git a/api/vendor/symfony/process/LICENSE b/api/vendor/symfony/process/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/process/LICENSE +++ b/api/vendor/symfony/process/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/process/PhpExecutableFinder.php b/api/vendor/symfony/process/PhpExecutableFinder.php index ec24f911b..45dbcca43 100644 --- a/api/vendor/symfony/process/PhpExecutableFinder.php +++ b/api/vendor/symfony/process/PhpExecutableFinder.php @@ -35,7 +35,7 @@ public function find(bool $includeArgs = true) { if ($php = getenv('PHP_BINARY')) { if (!is_executable($php)) { - $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v'; + $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v --'; if ($php = strtok(exec($command.' '.escapeshellarg($php)), \PHP_EOL)) { if (!is_executable($php)) { return false; @@ -45,6 +45,10 @@ public function find(bool $includeArgs = true) } } + if (@is_dir($php)) { + return false; + } + return $php; } @@ -52,12 +56,12 @@ public function find(bool $includeArgs = true) $args = $includeArgs && $args ? ' '.implode(' ', $args) : ''; // PHP_BINARY return the current sapi executable - if (\PHP_BINARY && \in_array(\PHP_SAPI, ['cgi-fcgi', 'cli', 'cli-server', 'phpdbg'], true)) { + if (\PHP_BINARY && \in_array(\PHP_SAPI, ['cli', 'cli-server', 'phpdbg'], true)) { return \PHP_BINARY.$args; } if ($php = getenv('PHP_PATH')) { - if (!@is_executable($php)) { + if (!@is_executable($php) || @is_dir($php)) { return false; } @@ -65,12 +69,12 @@ public function find(bool $includeArgs = true) } if ($php = getenv('PHP_PEAR_PHP_BIN')) { - if (@is_executable($php)) { + if (@is_executable($php) && !@is_dir($php)) { return $php; } } - if (@is_executable($php = \PHP_BINDIR.('\\' === \DIRECTORY_SEPARATOR ? '\\php.exe' : '/php'))) { + if (@is_executable($php = \PHP_BINDIR.('\\' === \DIRECTORY_SEPARATOR ? '\\php.exe' : '/php')) && !@is_dir($php)) { return $php; } diff --git a/api/vendor/symfony/process/PhpProcess.php b/api/vendor/symfony/process/PhpProcess.php index 2bc338e5e..3a1d147c8 100644 --- a/api/vendor/symfony/process/PhpProcess.php +++ b/api/vendor/symfony/process/PhpProcess.php @@ -32,7 +32,7 @@ class PhpProcess extends Process * @param int $timeout The timeout in seconds * @param array|null $php Path to the PHP binary to use with any additional arguments */ - public function __construct(string $script, string $cwd = null, array $env = null, int $timeout = 60, array $php = null) + public function __construct(string $script, ?string $cwd = null, ?array $env = null, int $timeout = 60, ?array $php = null) { if (null === $php) { $executableFinder = new PhpExecutableFinder(); @@ -53,7 +53,7 @@ public function __construct(string $script, string $cwd = null, array $env = nul /** * {@inheritdoc} */ - public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) { throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); } @@ -61,7 +61,7 @@ public static function fromShellCommandline(string $command, string $cwd = null, /** * {@inheritdoc} */ - public function start(callable $callback = null, array $env = []) + public function start(?callable $callback = null, array $env = []) { if (null === $this->getCommandLine()) { throw new RuntimeException('Unable to find the PHP executable.'); diff --git a/api/vendor/symfony/process/Pipes/AbstractPipes.php b/api/vendor/symfony/process/Pipes/AbstractPipes.php index 015816c4f..656dc0328 100644 --- a/api/vendor/symfony/process/Pipes/AbstractPipes.php +++ b/api/vendor/symfony/process/Pipes/AbstractPipes.php @@ -47,7 +47,9 @@ public function __construct($input) public function close() { foreach ($this->pipes as $pipe) { - fclose($pipe); + if (\is_resource($pipe)) { + fclose($pipe); + } } $this->pipes = []; } @@ -102,7 +104,7 @@ protected function write(): ?array stream_set_blocking($input, 0); } elseif (!isset($this->inputBuffer[0])) { if (!\is_string($input)) { - if (!is_scalar($input)) { + if (!\is_scalar($input)) { throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input))); } $input = (string) $input; diff --git a/api/vendor/symfony/process/Pipes/WindowsPipes.php b/api/vendor/symfony/process/Pipes/WindowsPipes.php index bca84f574..968dd0262 100644 --- a/api/vendor/symfony/process/Pipes/WindowsPipes.php +++ b/api/vendor/symfony/process/Pipes/WindowsPipes.php @@ -149,7 +149,7 @@ public function readAndWrite(bool $blocking, bool $close = false): array if ($w) { @stream_select($r, $w, $e, 0, Process::TIMEOUT_PRECISION * 1E6); } elseif ($this->fileHandles) { - usleep(Process::TIMEOUT_PRECISION * 1E6); + usleep((int) (Process::TIMEOUT_PRECISION * 1E6)); } } foreach ($this->fileHandles as $type => $fileHandle) { diff --git a/api/vendor/symfony/process/Process.php b/api/vendor/symfony/process/Process.php index 4db379fa8..a4b0a784c 100644 --- a/api/vendor/symfony/process/Process.php +++ b/api/vendor/symfony/process/Process.php @@ -55,7 +55,7 @@ class Process implements \IteratorAggregate private $hasCallback = false; private $commandline; private $cwd; - private $env; + private $env = []; private $input; private $starttime; private $lastOutputTime; @@ -80,6 +80,7 @@ class Process implements \IteratorAggregate private $processPipes; private $latestSignal; + private $cachedExitCode; private static $sigchild; @@ -140,7 +141,7 @@ class Process implements \IteratorAggregate * * @throws LogicException When proc_open is not installed */ - public function __construct(array $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + public function __construct(array $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) { if (!\function_exists('proc_open')) { throw new LogicException('The Process class relies on proc_open, which is not available on your PHP installation.'); @@ -176,7 +177,7 @@ public function __construct(array $command, string $cwd = null, array $env = nul * In order to inject dynamic values into command-lines, we strongly recommend using placeholders. * This will save escaping values, which is not portable nor secure anyway: * - * $process = Process::fromShellCommandline('my_command "$MY_VAR"'); + * $process = Process::fromShellCommandline('my_command "${:MY_VAR}"'); * $process->run(null, ['MY_VAR' => $theValue]); * * @param string $command The command line to pass to the shell of the OS @@ -189,7 +190,7 @@ public function __construct(array $command, string $cwd = null, array $env = nul * * @throws LogicException When proc_open is not installed */ - public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + public static function fromShellCommandline(string $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60) { $process = new static([], $cwd, $env, $input, $timeout); $process->commandline = $command; @@ -247,7 +248,7 @@ public function __clone() * * @final */ - public function run(callable $callback = null, array $env = []): int + public function run(?callable $callback = null, array $env = []): int { $this->start($callback, $env); @@ -266,7 +267,7 @@ public function run(callable $callback = null, array $env = []): int * * @final */ - public function mustRun(callable $callback = null, array $env = []): self + public function mustRun(?callable $callback = null, array $env = []): self { if (0 !== $this->run($callback, $env)) { throw new ProcessFailedException($this); @@ -294,7 +295,7 @@ public function mustRun(callable $callback = null, array $env = []): self * @throws RuntimeException When process is already running * @throws LogicException In case a callback is provided and output has been disabled */ - public function start(callable $callback = null, array $env = []) + public function start(?callable $callback = null, array $env = []) { if ($this->isRunning()) { throw new RuntimeException('Process is already running.'); @@ -331,7 +332,7 @@ public function start(callable $callback = null, array $env = []) // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;'; - $commandline .= 'pid=$!; echo $pid >&3; wait $pid; code=$?; echo $code >&3; exit $code'; + $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; // Workaround for the bug, when PTS functionality is enabled. // @see : https://bugs.php.net/69442 @@ -385,7 +386,7 @@ public function start(callable $callback = null, array $env = []) * * @final */ - public function restart(callable $callback = null, array $env = []): self + public function restart(?callable $callback = null, array $env = []): self { if ($this->isRunning()) { throw new RuntimeException('Process is already running.'); @@ -412,7 +413,7 @@ public function restart(callable $callback = null, array $env = []): self * @throws ProcessSignaledException When process stopped after receiving signal * @throws LogicException When process is not yet started */ - public function wait(callable $callback = null) + public function wait(?callable $callback = null) { $this->requireProcessIsStarted(__FUNCTION__); @@ -428,7 +429,7 @@ public function wait(callable $callback = null) do { $this->checkTimeout(); - $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen(); + $running = $this->isRunning() && ('\\' === \DIRECTORY_SEPARATOR || $this->processPipes->areOpen()); $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); } while ($running); @@ -617,10 +618,10 @@ public function getIncrementalOutput() * * @param int $flags A bit field of Process::ITER_* flags * + * @return \Generator + * * @throws LogicException in case the output has been disabled * @throws LogicException In case the process is not started - * - * @return \Generator */ #[\ReturnTypeWillChange] public function getIterator(int $flags = 0) @@ -910,11 +911,11 @@ public function getStatus() * Stops the process. * * @param int|float $timeout The timeout in seconds - * @param int $signal A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9) + * @param int|null $signal A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9) * * @return int|null The exit-code of the process or null if it's not running */ - public function stop(float $timeout = 10, int $signal = null) + public function stop(float $timeout = 10, ?int $signal = null) { $timeoutMicro = microtime(true) + $timeout; if ($this->isRunning()) { @@ -1310,7 +1311,7 @@ private function getDescriptors(): array * * @return \Closure */ - protected function buildCallback(callable $callback = null) + protected function buildCallback(?callable $callback = null) { if ($this->outputDisabled) { return function ($type, $data) use ($callback): bool { @@ -1345,6 +1346,19 @@ protected function updateStatus(bool $blocking) $this->processInformation = proc_get_status($this->process); $running = $this->processInformation['running']; + // In PHP < 8.3, "proc_get_status" only returns the correct exit status on the first call. + // Subsequent calls return -1 as the process is discarded. This workaround caches the first + // retrieved exit status for consistent results in later calls, mimicking PHP 8.3 behavior. + if (\PHP_VERSION_ID < 80300) { + if (!isset($this->cachedExitCode) && !$running && -1 !== $this->processInformation['exitcode']) { + $this->cachedExitCode = $this->processInformation['exitcode']; + } + + if (isset($this->cachedExitCode) && !$running && -1 === $this->processInformation['exitcode']) { + $this->processInformation['exitcode'] = $this->cachedExitCode; + } + } + $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); if ($this->fallbackStatus && $this->isSigchildEnabled()) { diff --git a/api/vendor/symfony/process/ProcessUtils.php b/api/vendor/symfony/process/ProcessUtils.php index 6cc7a610b..2a7aff71b 100644 --- a/api/vendor/symfony/process/ProcessUtils.php +++ b/api/vendor/symfony/process/ProcessUtils.php @@ -48,7 +48,7 @@ public static function validateInput(string $caller, $input) if (\is_string($input)) { return $input; } - if (is_scalar($input)) { + if (\is_scalar($input)) { return (string) $input; } if ($input instanceof Process) { diff --git a/api/vendor/symfony/psr-http-message-bridge/.gitignore b/api/vendor/symfony/psr-http-message-bridge/.gitignore deleted file mode 100644 index 55ce5dd25..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -vendor/ -composer.lock -phpunit.xml -.php_cs.cache -.phpunit.result.cache -/Tests/Fixtures/App/var diff --git a/api/vendor/symfony/psr-http-message-bridge/.php-cs-fixer.dist.php b/api/vendor/symfony/psr-http-message-bridge/.php-cs-fixer.dist.php new file mode 100644 index 000000000..e9b256a14 --- /dev/null +++ b/api/vendor/symfony/psr-http-message-bridge/.php-cs-fixer.dist.php @@ -0,0 +1,25 @@ +setRules([ + '@Symfony' => true, + '@Symfony:risky' => true, + '@PHPUnit48Migration:risky' => true, + 'php_unit_no_expectation_annotation' => false, // part of `PHPUnitXYMigration:risky` ruleset, to be enabled when PHPUnit 4.x support will be dropped, as we don't want to rewrite exceptions handling twice + 'array_syntax' => ['syntax' => 'short'], + 'fopen_flags' => false, + 'ordered_imports' => true, + 'protected_to_private' => false, + // Part of @Symfony:risky in PHP-CS-Fixer 2.13.0. To be removed from the config file once upgrading + 'native_function_invocation' => ['include' => ['@compiler_optimized'], 'scope' => 'namespaced'], + // Part of future @Symfony ruleset in PHP-CS-Fixer To be removed from the config file once upgrading + 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], + ]) + ->setRiskyAllowed(true) + ->setFinder( + (new PhpCsFixer\Finder()) + ->in(__DIR__) + ->exclude('vendor') + ->name('*.php') + ) +; diff --git a/api/vendor/symfony/psr-http-message-bridge/.php_cs.dist b/api/vendor/symfony/psr-http-message-bridge/.php_cs.dist deleted file mode 100644 index d741d39f5..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/.php_cs.dist +++ /dev/null @@ -1,24 +0,0 @@ -setRules([ - '@Symfony' => true, - '@Symfony:risky' => true, - '@PHPUnit48Migration:risky' => true, - 'php_unit_no_expectation_annotation' => false, // part of `PHPUnitXYMigration:risky` ruleset, to be enabled when PHPUnit 4.x support will be dropped, as we don't want to rewrite exceptions handling twice - 'array_syntax' => ['syntax' => 'short'], - 'fopen_flags' => false, - 'ordered_imports' => true, - 'protected_to_private' => false, - // Part of @Symfony:risky in PHP-CS-Fixer 2.13.0. To be removed from the config file once upgrading - 'native_function_invocation' => ['include' => ['@compiler_optimized'], 'scope' => 'namespaced'], - // Part of future @Symfony ruleset in PHP-CS-Fixer To be removed from the config file once upgrading - 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], - ]) - ->setRiskyAllowed(true) - ->setFinder( - PhpCsFixer\Finder::create() - ->in(__DIR__) - ->name('*.php') - ) -; diff --git a/api/vendor/symfony/psr-http-message-bridge/.travis.yml b/api/vendor/symfony/psr-http-message-bridge/.travis.yml deleted file mode 100644 index 54092847a..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/.travis.yml +++ /dev/null @@ -1,53 +0,0 @@ -language: php -sudo: false -cache: - directories: - - $HOME/.composer/cache/files - - $HOME/symfony-bridge/.phpunit - -env: - global: - - PHPUNIT_FLAGS="-v" - - SYMFONY_PHPUNIT_VERSION=9.5 - - SYMFONY_PHPUNIT_DIR="$HOME/symfony-bridge/.phpunit" - -matrix: - fast_finish: true - include: - # Minimum supported dependencies with the latest and oldest PHP version - - php: 7.4 - env: COMPOSER_FLAGS="--prefer-stable --prefer-lowest" SYMFONY_DEPRECATIONS_HELPER="weak_vendors" - - - php: 7.1 - env: SYMFONY_PHPUNIT_VERSION=7.5 - - php: 7.2 - env: SYMFONY_PHPUNIT_VERSION=8.5 - - php: 7.3 - - php: 7.4 - env: COVERAGE=true PHPUNIT_FLAGS="-v --coverage-text" XDEBUG_MODE=coverage - - php: 8.0 - - # Latest commit to master - - php: 7.4 - env: STABILITY="dev" - - allow_failures: - # Dev-master is allowed to fail. - - env: STABILITY="dev" - -before_install: - - if [[ $COVERAGE != true ]]; then phpenv config-rm xdebug.ini || true; fi - - if ! [ -z "$STABILITY" ]; then composer config minimum-stability ${STABILITY}; fi; - - if ! [ -v "$DEPENDENCIES" ]; then composer require --no-update ${DEPENDENCIES}; fi; - -install: - # To be removed when this issue will be resolved: https://github.com/composer/composer/issues/5355 - - if [[ "$COMPOSER_FLAGS" == *"--prefer-lowest"* ]]; then composer update --prefer-dist --no-interaction --prefer-stable --quiet; fi - - composer update ${COMPOSER_FLAGS} --prefer-dist --no-interaction - - ./vendor/bin/simple-phpunit install - -script: - - composer validate --strict --no-check-lock - # simple-phpunit is the PHPUnit wrapper provided by the PHPUnit Bridge component and - # it helps with testing legacy code and deprecations (composer require symfony/phpunit-bridge) - - ./vendor/bin/simple-phpunit $PHPUNIT_FLAGS diff --git a/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php b/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php index 094f0c888..61cd8c5c5 100644 --- a/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php +++ b/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Symfony\Bridge\PsrHttpMessage\ArgumentValueResolver; use Psr\Http\Message\MessageInterface; @@ -8,6 +17,7 @@ use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface as BaseValueResolverInterface; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; /** @@ -16,7 +26,7 @@ * @author Iltar van der Berg * @author Alexander M. Turek */ -final class PsrServerRequestResolver implements ArgumentValueResolverInterface +final class PsrServerRequestResolver implements ArgumentValueResolverInterface, ValueResolverInterface { private const SUPPORTED_TYPES = [ ServerRequestInterface::class => true, @@ -36,6 +46,10 @@ public function __construct(HttpMessageFactoryInterface $httpMessageFactory) */ public function supports(Request $request, ArgumentMetadata $argument): bool { + if ($this instanceof BaseValueResolverInterface) { + trigger_deprecation('symfony/psr-http-message-bridge', '2.3', 'Method "%s" is deprecated, call "resolve()" without calling "supports()" first.', __METHOD__); + } + return self::SUPPORTED_TYPES[$argument->getType()] ?? false; } @@ -44,6 +58,10 @@ public function supports(Request $request, ArgumentMetadata $argument): bool */ public function resolve(Request $request, ArgumentMetadata $argument): \Traversable { + if (!isset(self::SUPPORTED_TYPES[$argument->getType()])) { + return; + } + yield $this->httpMessageFactory->createRequest($request); } } diff --git a/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/ValueResolverInterface.php b/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/ValueResolverInterface.php new file mode 100644 index 000000000..83a321ab7 --- /dev/null +++ b/api/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/ValueResolverInterface.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\PsrHttpMessage\ArgumentValueResolver; + +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface as BaseValueResolverInterface; + +if (interface_exists(BaseValueResolverInterface::class)) { + /** @internal */ + interface ValueResolverInterface extends BaseValueResolverInterface + { + } +} else { + /** @internal */ + interface ValueResolverInterface + { + } +} diff --git a/api/vendor/symfony/psr-http-message-bridge/CHANGELOG.md b/api/vendor/symfony/psr-http-message-bridge/CHANGELOG.md index d70e5a5c6..f32c06f2e 100644 --- a/api/vendor/symfony/psr-http-message-bridge/CHANGELOG.md +++ b/api/vendor/symfony/psr-http-message-bridge/CHANGELOG.md @@ -1,6 +1,30 @@ CHANGELOG ========= +# 2.3.1 (2023-07-26) + +* Don't rely on `Request::getPayload()` to populate the parsed body + +# 2.3.0 (2023-07-25) + +* Leverage `Request::getPayload()` to populate the parsed body of PSR-7 requests +* Implement `ValueResolverInterface` introduced with Symfony 6.2 + +# 2.2.0 (2023-04-21) + +* Drop support for Symfony 4 +* Bump minimum version of PHP to 7.2 +* Support version 2 of the psr/http-message contracts + +# 2.1.3 (2022-09-05) + +* Ignore invalid HTTP headers when creating PSR7 objects +* Fix for wrong type passed to `moveTo()` + +# 2.1.2 (2021-11-05) + +* Allow Symfony 6 + # 2.1.0 (2021-02-17) * Added a `PsrResponseListener` to automatically convert PSR-7 responses returned by controllers diff --git a/api/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php b/api/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php index 457e3468d..a69e8ffee 100644 --- a/api/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php +++ b/api/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php @@ -41,6 +41,8 @@ public function __construct(int $responseBufferMaxLength = 16372) /** * {@inheritdoc} + * + * @return Request */ public function createRequest(ServerRequestInterface $psrRequest, bool $streamed = false) { @@ -121,6 +123,8 @@ protected function getTemporaryPath() /** * {@inheritdoc} + * + * @return Response */ public function createResponse(ResponseInterface $psrResponse, bool $streamed = false) { @@ -217,13 +221,13 @@ private function createCookie(string $cookie): Cookie return new Cookie( $cookieName, $cookieValue, - isset($cookieExpire) ? $cookieExpire : 0, - isset($cookiePath) ? $cookiePath : '/', - isset($cookieDomain) ? $cookieDomain : null, + $cookieExpire ?? 0, + $cookiePath ?? '/', + $cookieDomain ?? null, isset($cookieSecure), isset($cookieHttpOnly), true, - isset($samesite) ? $samesite : null + $samesite ?? null ); } diff --git a/api/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php b/api/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php index d19baa1ab..09c4360dd 100644 --- a/api/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php +++ b/api/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php @@ -12,7 +12,9 @@ namespace Symfony\Bridge\PsrHttpMessage\Factory; use Psr\Http\Message\ResponseFactoryInterface; +use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestFactoryInterface; +use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\StreamFactoryInterface; use Psr\Http\Message\UploadedFileFactoryInterface; use Psr\Http\Message\UploadedFileInterface; @@ -27,6 +29,7 @@ * Builds Psr\HttpMessage instances using a PSR-17 implementation. * * @author Antonio J. García Lagar + * @author Aurélien Pillevesse */ class PsrHttpFactory implements HttpMessageFactoryInterface { @@ -45,6 +48,8 @@ public function __construct(ServerRequestFactoryInterface $serverRequestFactory, /** * {@inheritdoc} + * + * @return ServerRequestInterface */ public function createRequest(Request $symfonyRequest) { @@ -58,17 +63,37 @@ public function createRequest(Request $symfonyRequest) ); foreach ($symfonyRequest->headers->all() as $name => $value) { - $request = $request->withHeader($name, $value); + try { + $request = $request->withHeader($name, $value); + } catch (\InvalidArgumentException $e) { + // ignore invalid header + } } $body = $this->streamFactory->createStreamFromResource($symfonyRequest->getContent(true)); + if (method_exists(Request::class, 'getContentTypeFormat')) { + $format = $symfonyRequest->getContentTypeFormat(); + } else { + $format = $symfonyRequest->getContentType(); + } + + if ('json' === $format) { + $parsedBody = json_decode($symfonyRequest->getContent(), true, 512, \JSON_BIGINT_AS_STRING); + + if (!\is_array($parsedBody)) { + $parsedBody = null; + } + } else { + $parsedBody = $symfonyRequest->request->all(); + } + $request = $request ->withBody($body) ->withUploadedFiles($this->getFiles($symfonyRequest->files->all())) ->withCookieParams($symfonyRequest->cookies->all()) ->withQueryParams($symfonyRequest->query->all()) - ->withParsedBody($symfonyRequest->request->all()) + ->withParsedBody($parsedBody) ; foreach ($symfonyRequest->attributes->all() as $key => $value) { @@ -80,10 +105,8 @@ public function createRequest(Request $symfonyRequest) /** * Converts Symfony uploaded files array to the PSR one. - * - * @return array */ - private function getFiles(array $uploadedFiles) + private function getFiles(array $uploadedFiles): array { $files = []; @@ -104,10 +127,8 @@ private function getFiles(array $uploadedFiles) /** * Creates a PSR-7 UploadedFile instance from a Symfony one. - * - * @return UploadedFileInterface */ - private function createUploadedFile(UploadedFile $symfonyUploadedFile) + private function createUploadedFile(UploadedFile $symfonyUploadedFile): UploadedFileInterface { return $this->uploadedFileFactory->createUploadedFile( $this->streamFactory->createStreamFromFile( @@ -122,6 +143,8 @@ private function createUploadedFile(UploadedFile $symfonyUploadedFile) /** * {@inheritdoc} + * + * @return ResponseInterface */ public function createResponse(Response $symfonyResponse) { @@ -138,7 +161,7 @@ public function createResponse(Response $symfonyResponse) $stream->write($buffer); return ''; - }); + }, 1); $symfonyResponse->sendContent(); ob_end_clean(); @@ -160,7 +183,11 @@ public function createResponse(Response $symfonyResponse) } foreach ($headers as $name => $value) { - $response = $response->withHeader($name, $value); + try { + $response = $response->withHeader($name, $value); + } catch (\InvalidArgumentException $e) { + // ignore invalid header + } } $protocolVersion = $symfonyResponse->getProtocolVersion(); diff --git a/api/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php b/api/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php index 53aa37a62..4d38a1f7c 100644 --- a/api/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php +++ b/api/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php @@ -52,7 +52,7 @@ public function __construct(UploadedFileInterface $psrUploadedFile, callable $ge /** * {@inheritdoc} */ - public function move($directory, $name = null): File + public function move(string $directory, string $name = null): File { if (!$this->isValid() || $this->test) { return parent::move($directory, $name); @@ -61,7 +61,7 @@ public function move($directory, $name = null): File $target = $this->getTargetFile($directory, $name); try { - $this->psrUploadedFile->moveTo($target); + $this->psrUploadedFile->moveTo((string) $target); } catch (\RuntimeException $e) { throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, $e->getMessage()), 0, $e); } diff --git a/api/vendor/symfony/psr-http-message-bridge/LICENSE b/api/vendor/symfony/psr-http-message-bridge/LICENSE index 12a74531e..9ff2d0d63 100644 --- a/api/vendor/symfony/psr-http-message-bridge/LICENSE +++ b/api/vendor/symfony/psr-http-message-bridge/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2016 Fabien Potencier +Copyright (c) 2004-2021 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/psr-http-message-bridge/README.md b/api/vendor/symfony/psr-http-message-bridge/README.md index 87fbd43aa..dcbc09a84 100644 --- a/api/vendor/symfony/psr-http-message-bridge/README.md +++ b/api/vendor/symfony/psr-http-message-bridge/README.md @@ -7,7 +7,6 @@ Resources --------- * [Documentation](https://symfony.com/doc/current/components/psr7.html) - * [SensioFrameworkExtraBundle](https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html#psr-7-support) Running the tests ----------------- diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php deleted file mode 100644 index 1c0973af2..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php +++ /dev/null @@ -1,59 +0,0 @@ - - */ -final class PsrServerRequestResolverTest extends TestCase -{ - public function testServerRequest() - { - $symfonyRequest = $this->createMock(Request::class); - $psrRequest = $this->createMock(ServerRequestInterface::class); - - $resolver = $this->bootstrapResolver($symfonyRequest, $psrRequest); - - self::assertSame([$psrRequest], $resolver->getArguments($symfonyRequest, static function (ServerRequestInterface $serverRequest): void {})); - } - - public function testRequest() - { - $symfonyRequest = $this->createMock(Request::class); - $psrRequest = $this->createMock(ServerRequestInterface::class); - - $resolver = $this->bootstrapResolver($symfonyRequest, $psrRequest); - - self::assertSame([$psrRequest], $resolver->getArguments($symfonyRequest, static function (RequestInterface $request): void {})); - } - - public function testMessage() - { - $symfonyRequest = $this->createMock(Request::class); - $psrRequest = $this->createMock(ServerRequestInterface::class); - - $resolver = $this->bootstrapResolver($symfonyRequest, $psrRequest); - - self::assertSame([$psrRequest], $resolver->getArguments($symfonyRequest, static function (MessageInterface $request): void {})); - } - - private function bootstrapResolver(Request $symfonyRequest, ServerRequestInterface $psrRequest): ArgumentResolver - { - $messageFactory = $this->createMock(HttpMessageFactoryInterface::class); - $messageFactory->expects(self::once()) - ->method('createRequest') - ->with(self::identicalTo($symfonyRequest)) - ->willReturn($psrRequest); - - return new ArgumentResolver(null, [new PsrServerRequestResolver($messageFactory)]); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/EventListener/PsrResponseListenerTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/EventListener/PsrResponseListenerTest.php deleted file mode 100644 index 7b47d66bd..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/EventListener/PsrResponseListenerTest.php +++ /dev/null @@ -1,44 +0,0 @@ - - */ -class PsrResponseListenerTest extends TestCase -{ - public function testConvertsControllerResult() - { - $listener = new PsrResponseListener(); - $event = $this->createEventMock(new Response()); - $listener->onKernelView($event); - - self::assertTrue($event->hasResponse()); - } - - public function testDoesNotConvertControllerResult() - { - $listener = new PsrResponseListener(); - $event = $this->createEventMock([]); - - $listener->onKernelView($event); - self::assertFalse($event->hasResponse()); - - $event = $this->createEventMock(null); - - $listener->onKernelView($event); - self::assertFalse($event->hasResponse()); - } - - private function createEventMock($controllerResult): ViewEvent - { - return new ViewEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $controllerResult); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php deleted file mode 100644 index 82d3fc789..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/AbstractHttpMessageFactoryTest.php +++ /dev/null @@ -1,234 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Factory; - -use PHPUnit\Framework\TestCase; -use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; -use Symfony\Component\HttpFoundation\BinaryFileResponse; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\File\UploadedFile; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpFoundation\StreamedResponse; - -/** - * @author Kévin Dunglas - * @author Antonio J. García Lagar - */ -abstract class AbstractHttpMessageFactoryTest extends TestCase -{ - private $factory; - private $tmpDir; - - abstract protected function buildHttpMessageFactory(): HttpMessageFactoryInterface; - - protected function setUp(): void - { - $this->factory = $this->buildHttpMessageFactory(); - $this->tmpDir = sys_get_temp_dir(); - } - - public function testCreateRequest() - { - $stdClass = new \stdClass(); - $request = new Request( - [ - 'bar' => ['baz' => '42'], - 'foo' => '1', - ], - [ - 'twitter' => [ - '@dunglas' => 'Kévin Dunglas', - '@coopTilleuls' => 'Les-Tilleuls.coop', - ], - 'baz' => '2', - ], - [ - 'a1' => $stdClass, - 'a2' => ['foo' => 'bar'], - ], - [ - 'c1' => 'foo', - 'c2' => ['c3' => 'bar'], - ], - [ - 'f1' => $this->createUploadedFile('F1', 'f1.txt', 'text/plain', \UPLOAD_ERR_OK), - 'foo' => ['f2' => $this->createUploadedFile('F2', 'f2.txt', 'text/plain', \UPLOAD_ERR_OK)], - ], - [ - 'REQUEST_METHOD' => 'POST', - 'HTTP_HOST' => 'dunglas.fr', - 'HTTP_X_SYMFONY' => '2.8', - 'REQUEST_URI' => '/testCreateRequest?bar[baz]=42&foo=1', - 'QUERY_STRING' => 'bar[baz]=42&foo=1', - ], - 'Content' - ); - - $psrRequest = $this->factory->createRequest($request); - - $this->assertEquals('Content', $psrRequest->getBody()->__toString()); - - $queryParams = $psrRequest->getQueryParams(); - $this->assertEquals('1', $queryParams['foo']); - $this->assertEquals('42', $queryParams['bar']['baz']); - - $requestTarget = $psrRequest->getRequestTarget(); - $this->assertEquals('/testCreateRequest?bar[baz]=42&foo=1', urldecode($requestTarget)); - - $parsedBody = $psrRequest->getParsedBody(); - $this->assertEquals('Kévin Dunglas', $parsedBody['twitter']['@dunglas']); - $this->assertEquals('Les-Tilleuls.coop', $parsedBody['twitter']['@coopTilleuls']); - $this->assertEquals('2', $parsedBody['baz']); - - $attributes = $psrRequest->getAttributes(); - $this->assertEquals($stdClass, $attributes['a1']); - $this->assertEquals('bar', $attributes['a2']['foo']); - - $cookies = $psrRequest->getCookieParams(); - $this->assertEquals('foo', $cookies['c1']); - $this->assertEquals('bar', $cookies['c2']['c3']); - - $uploadedFiles = $psrRequest->getUploadedFiles(); - $this->assertEquals('F1', $uploadedFiles['f1']->getStream()->__toString()); - $this->assertEquals('f1.txt', $uploadedFiles['f1']->getClientFilename()); - $this->assertEquals('text/plain', $uploadedFiles['f1']->getClientMediaType()); - $this->assertEquals(\UPLOAD_ERR_OK, $uploadedFiles['f1']->getError()); - - $this->assertEquals('F2', $uploadedFiles['foo']['f2']->getStream()->__toString()); - $this->assertEquals('f2.txt', $uploadedFiles['foo']['f2']->getClientFilename()); - $this->assertEquals('text/plain', $uploadedFiles['foo']['f2']->getClientMediaType()); - $this->assertEquals(\UPLOAD_ERR_OK, $uploadedFiles['foo']['f2']->getError()); - - $serverParams = $psrRequest->getServerParams(); - $this->assertEquals('POST', $serverParams['REQUEST_METHOD']); - $this->assertEquals('2.8', $serverParams['HTTP_X_SYMFONY']); - $this->assertEquals('POST', $psrRequest->getMethod()); - $this->assertEquals(['2.8'], $psrRequest->getHeader('X-Symfony')); - } - - public function testGetContentCanBeCalledAfterRequestCreation() - { - $header = ['HTTP_HOST' => 'dunglas.fr']; - $request = new Request([], [], [], [], [], $header, 'Content'); - - $psrRequest = $this->factory->createRequest($request); - - $this->assertEquals('Content', $psrRequest->getBody()->__toString()); - $this->assertEquals('Content', $request->getContent()); - } - - private function createUploadedFile($content, $originalName, $mimeType, $error) - { - $path = tempnam($this->tmpDir, uniqid()); - file_put_contents($path, $content); - - return new UploadedFile($path, $originalName, $mimeType, $error, true); - } - - public function testCreateResponse() - { - $response = new Response( - 'Response content.', - 202, - ['X-Symfony' => ['3.4']] - ); - $response->headers->setCookie(new Cookie('city', 'Lille', new \DateTime('Wed, 13 Jan 2021 22:23:01 GMT'), '/', null, false, true, false, 'lax')); - - $psrResponse = $this->factory->createResponse($response); - $this->assertEquals('Response content.', $psrResponse->getBody()->__toString()); - $this->assertEquals(202, $psrResponse->getStatusCode()); - $this->assertEquals(['3.4'], $psrResponse->getHeader('X-Symfony')); - - $cookieHeader = $psrResponse->getHeader('Set-Cookie'); - $this->assertIsArray($cookieHeader); - $this->assertCount(1, $cookieHeader); - $this->assertMatchesRegularExpression('{city=Lille; expires=Wed, 13-Jan-2021 22:23:01 GMT;( max-age=\d+;)? path=/; httponly}i', $cookieHeader[0]); - } - - public function testCreateResponseFromStreamed() - { - $response = new StreamedResponse(function () { - echo "Line 1\n"; - flush(); - - echo "Line 2\n"; - flush(); - }); - - $psrResponse = $this->factory->createResponse($response); - - $this->assertEquals("Line 1\nLine 2\n", $psrResponse->getBody()->__toString()); - } - - public function testCreateResponseFromBinaryFile() - { - $path = tempnam($this->tmpDir, uniqid()); - file_put_contents($path, 'Binary'); - - $response = new BinaryFileResponse($path); - - $psrResponse = $this->factory->createResponse($response); - - $this->assertEquals('Binary', $psrResponse->getBody()->__toString()); - } - - public function testCreateResponseFromBinaryFileWithRange() - { - $path = tempnam($this->tmpDir, uniqid()); - file_put_contents($path, 'Binary'); - - $request = new Request(); - $request->headers->set('Range', 'bytes=1-4'); - - $response = new BinaryFileResponse($path, 200, ['Content-Type' => 'plain/text']); - $response->prepare($request); - - $psrResponse = $this->factory->createResponse($response); - - $this->assertEquals('inar', $psrResponse->getBody()->__toString()); - $this->assertSame('bytes 1-4/6', $psrResponse->getHeaderLine('Content-Range')); - } - - public function testUploadErrNoFile() - { - $file = new UploadedFile('', '', null, \UPLOAD_ERR_NO_FILE, true); - - $this->assertEquals(0, $file->getSize()); - $this->assertEquals(\UPLOAD_ERR_NO_FILE, $file->getError()); - $this->assertFalse($file->getSize(), 'SplFile::getSize() returns false on error'); - - $request = new Request( - [], - [], - [], - [], - [ - 'f1' => $file, - 'f2' => ['name' => null, 'type' => null, 'tmp_name' => null, 'error' => \UPLOAD_ERR_NO_FILE, 'size' => 0], - ], - [ - 'REQUEST_METHOD' => 'POST', - 'HTTP_HOST' => 'dunglas.fr', - 'HTTP_X_SYMFONY' => '2.8', - ], - 'Content' - ); - - $psrRequest = $this->factory->createRequest($request); - - $uploadedFiles = $psrRequest->getUploadedFiles(); - - $this->assertEquals(\UPLOAD_ERR_NO_FILE, $uploadedFiles['f1']->getError()); - $this->assertEquals(\UPLOAD_ERR_NO_FILE, $uploadedFiles['f2']->getError()); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/HttpFoundationFactoryTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/HttpFoundationFactoryTest.php deleted file mode 100644 index 3a00e2fa7..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/HttpFoundationFactoryTest.php +++ /dev/null @@ -1,272 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Factory; - -use PHPUnit\Framework\TestCase; -use Psr\Http\Message\UploadedFileInterface; -use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; -use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\Response; -use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\ServerRequest; -use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\Stream; -use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\UploadedFile; -use Symfony\Bridge\PsrHttpMessage\Tests\Fixtures\Uri; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\File\Exception\FileException; -use Symfony\Component\HttpFoundation\File\UploadedFile as HttpFoundationUploadedFile; - -/** - * @author Kévin Dunglas - */ -class HttpFoundationFactoryTest extends TestCase -{ - /** @var HttpFoundationFactory */ - private $factory; - - /** @var string */ - private $tmpDir; - - protected function setUp(): void - { - $this->factory = new HttpFoundationFactory(); - $this->tmpDir = sys_get_temp_dir(); - } - - public function testCreateRequest() - { - $stdClass = new \stdClass(); - $serverRequest = new ServerRequest( - '1.1', - [ - 'X-Dunglas-API-Platform' => '1.0', - 'X-data' => ['a', 'b'], - ], - new Stream('The body'), - '/about/kevin', - 'GET', - 'http://les-tilleuls.coop/about/kevin', - ['country' => 'France'], - ['city' => 'Lille'], - ['url' => 'http://les-tilleuls.coop'], - [ - 'doc1' => $this->createUploadedFile('Doc 1', \UPLOAD_ERR_OK, 'doc1.txt', 'text/plain'), - 'nested' => [ - 'docs' => [ - $this->createUploadedFile('Doc 2', \UPLOAD_ERR_OK, 'doc2.txt', 'text/plain'), - $this->createUploadedFile('Doc 3', \UPLOAD_ERR_OK, 'doc3.txt', 'text/plain'), - ], - ], - ], - ['url' => 'http://dunglas.fr'], - ['custom' => $stdClass] - ); - - $symfonyRequest = $this->factory->createRequest($serverRequest); - $files = $symfonyRequest->files->all(); - - $this->assertEquals('http://les-tilleuls.coop', $symfonyRequest->query->get('url')); - $this->assertEquals('doc1.txt', $files['doc1']->getClientOriginalName()); - $this->assertEquals('doc2.txt', $files['nested']['docs'][0]->getClientOriginalName()); - $this->assertEquals('doc3.txt', $files['nested']['docs'][1]->getClientOriginalName()); - $this->assertEquals('http://dunglas.fr', $symfonyRequest->request->get('url')); - $this->assertEquals($stdClass, $symfonyRequest->attributes->get('custom')); - $this->assertEquals('Lille', $symfonyRequest->cookies->get('city')); - $this->assertEquals('France', $symfonyRequest->server->get('country')); - $this->assertEquals('The body', $symfonyRequest->getContent()); - $this->assertEquals('1.0', $symfonyRequest->headers->get('X-Dunglas-API-Platform')); - $this->assertEquals(['a', 'b'], $symfonyRequest->headers->all('X-data')); - } - - public function testCreateRequestWithStreamedBody() - { - $serverRequest = new ServerRequest( - '1.1', - [], - new Stream('The body'), - '/', - 'GET', - null, - [], - [], - [], - [], - null, - [] - ); - - $symfonyRequest = $this->factory->createRequest($serverRequest, true); - $this->assertEquals('The body', $symfonyRequest->getContent()); - } - - public function testCreateRequestWithNullParsedBody() - { - $serverRequest = new ServerRequest( - '1.1', - [], - new Stream(), - '/', - 'GET', - null, - [], - [], - [], - [], - null, - [] - ); - - $this->assertCount(0, $this->factory->createRequest($serverRequest)->request); - } - - public function testCreateRequestWithObjectParsedBody() - { - $serverRequest = new ServerRequest( - '1.1', - [], - new Stream(), - '/', - 'GET', - null, - [], - [], - [], - [], - new \stdClass(), - [] - ); - - $this->assertCount(0, $this->factory->createRequest($serverRequest)->request); - } - - public function testCreateRequestWithUri() - { - $serverRequest = new ServerRequest( - '1.1', - [], - new Stream(), - '/', - 'GET', - new Uri('http://les-tilleuls.coop/about/kevin'), - [], - [], - [], - [], - null, - [] - ); - - $this->assertEquals('/about/kevin', $this->factory->createRequest($serverRequest)->getPathInfo()); - } - - public function testCreateUploadedFile() - { - $uploadedFile = $this->createUploadedFile('An uploaded file.', \UPLOAD_ERR_OK, 'myfile.txt', 'text/plain'); - $symfonyUploadedFile = $this->callCreateUploadedFile($uploadedFile); - $size = $symfonyUploadedFile->getSize(); - - $uniqid = uniqid(); - $symfonyUploadedFile->move($this->tmpDir, $uniqid); - - $this->assertEquals($uploadedFile->getSize(), $size); - $this->assertEquals(\UPLOAD_ERR_OK, $symfonyUploadedFile->getError()); - $this->assertEquals('myfile.txt', $symfonyUploadedFile->getClientOriginalName()); - $this->assertEquals('txt', $symfonyUploadedFile->getClientOriginalExtension()); - $this->assertEquals('text/plain', $symfonyUploadedFile->getClientMimeType()); - $this->assertEquals('An uploaded file.', file_get_contents($this->tmpDir.'/'.$uniqid)); - } - - public function testCreateUploadedFileWithError() - { - $this->expectException(FileException::class); - $this->expectExceptionMessage('The file "e" could not be written on disk.'); - - $uploadedFile = $this->createUploadedFile('Error.', \UPLOAD_ERR_CANT_WRITE, 'e', 'text/plain'); - $symfonyUploadedFile = $this->callCreateUploadedFile($uploadedFile); - - $this->assertEquals(\UPLOAD_ERR_CANT_WRITE, $symfonyUploadedFile->getError()); - - $symfonyUploadedFile->move($this->tmpDir, 'shouldFail.txt'); - } - - private function createUploadedFile($content, $error, $clientFileName, $clientMediaType): UploadedFile - { - $filePath = tempnam($this->tmpDir, uniqid()); - file_put_contents($filePath, $content); - - return new UploadedFile($filePath, filesize($filePath), $error, $clientFileName, $clientMediaType); - } - - private function callCreateUploadedFile(UploadedFileInterface $uploadedFile): HttpFoundationUploadedFile - { - $reflection = new \ReflectionClass($this->factory); - $createUploadedFile = $reflection->getMethod('createUploadedFile'); - $createUploadedFile->setAccessible(true); - - return $createUploadedFile->invokeArgs($this->factory, [$uploadedFile]); - } - - public function testCreateResponse() - { - $response = new Response( - '1.0', - [ - 'X-Symfony' => ['2.8'], - 'Set-Cookie' => [ - 'theme=light', - 'test', - 'ABC=AeD; Domain=dunglas.fr; Path=/kevin; Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly; SameSite=Strict', - ], - ], - new Stream('The response body'), - 200 - ); - - $symfonyResponse = $this->factory->createResponse($response); - - $this->assertEquals('1.0', $symfonyResponse->getProtocolVersion()); - $this->assertEquals('2.8', $symfonyResponse->headers->get('X-Symfony')); - - $cookies = $symfonyResponse->headers->getCookies(); - $this->assertEquals('theme', $cookies[0]->getName()); - $this->assertEquals('light', $cookies[0]->getValue()); - $this->assertEquals(0, $cookies[0]->getExpiresTime()); - $this->assertNull($cookies[0]->getDomain()); - $this->assertEquals('/', $cookies[0]->getPath()); - $this->assertFalse($cookies[0]->isSecure()); - $this->assertFalse($cookies[0]->isHttpOnly()); - - $this->assertEquals('test', $cookies[1]->getName()); - $this->assertNull($cookies[1]->getValue()); - - $this->assertEquals('ABC', $cookies[2]->getName()); - $this->assertEquals('AeD', $cookies[2]->getValue()); - $this->assertEquals(strtotime('Wed, 13 Jan 2021 22:23:01 GMT'), $cookies[2]->getExpiresTime()); - $this->assertEquals('dunglas.fr', $cookies[2]->getDomain()); - $this->assertEquals('/kevin', $cookies[2]->getPath()); - $this->assertTrue($cookies[2]->isSecure()); - $this->assertTrue($cookies[2]->isHttpOnly()); - if (\defined('Symfony\Component\HttpFoundation\Cookie::SAMESITE_STRICT')) { - $this->assertEquals(Cookie::SAMESITE_STRICT, $cookies[2]->getSameSite()); - } - - $this->assertEquals('The response body', $symfonyResponse->getContent()); - $this->assertEquals(200, $symfonyResponse->getStatusCode()); - - $symfonyResponse = $this->factory->createResponse($response, true); - - ob_start(); - $symfonyResponse->sendContent(); - $sentContent = ob_get_clean(); - - $this->assertEquals('The response body', $sentContent); - $this->assertEquals(200, $symfonyResponse->getStatusCode()); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php deleted file mode 100644 index b47cefc18..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Factory/PsrHttpFactoryTest.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Factory; - -use Nyholm\Psr7\Factory\Psr17Factory; -use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory; -use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; - -/** - * @author Kévin Dunglas - * @author Antonio J. García Lagar - */ -class PsrHttpFactoryTest extends AbstractHttpMessageFactoryTest -{ - protected function buildHttpMessageFactory(): HttpMessageFactoryInterface - { - $factory = new Psr17Factory(); - - return new PsrHttpFactory($factory, $factory, $factory, $factory); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Controller/PsrRequestController.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Controller/PsrRequestController.php deleted file mode 100644 index 18b774189..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Controller/PsrRequestController.php +++ /dev/null @@ -1,45 +0,0 @@ -responseFactory = $responseFactory; - $this->streamFactory = $streamFactory; - } - - public function serverRequestAction(ServerRequestInterface $request): ResponseInterface - { - return $this->responseFactory - ->createResponse() - ->withBody($this->streamFactory->createStream(sprintf('%s', $request->getMethod()))); - } - - public function requestAction(RequestInterface $request): ResponseInterface - { - return $this->responseFactory - ->createResponse() - ->withStatus(403) - ->withBody($this->streamFactory->createStream(sprintf('%s %s', $request->getMethod(), $request->getBody()->getContents()))); - } - - public function messageAction(MessageInterface $request): ResponseInterface - { - return $this->responseFactory - ->createResponse() - ->withStatus(422) - ->withBody($this->streamFactory->createStream(sprintf('%s', $request->getHeader('X-My-Header')[0]))); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Kernel.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Kernel.php deleted file mode 100644 index aef819342..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Kernel.php +++ /dev/null @@ -1,76 +0,0 @@ -add('server_request', '/server-request')->controller([PsrRequestController::class, 'serverRequestAction'])->methods(['GET']) - ->add('request', '/request')->controller([PsrRequestController::class, 'requestAction'])->methods(['POST']) - ->add('message', '/message')->controller([PsrRequestController::class, 'messageAction'])->methods(['PUT']) - ; - } - - protected function configureContainer(ContainerConfigurator $container): void - { - $container->extension('framework', [ - 'router' => ['utf8' => true], - 'secret' => 'for your eyes only', - 'test' => true, - ]); - - $container->services() - ->set('nyholm.psr_factory', Psr17Factory::class) - ->alias(ResponseFactoryInterface::class, 'nyholm.psr_factory') - ->alias(ServerRequestFactoryInterface::class, 'nyholm.psr_factory') - ->alias(StreamFactoryInterface::class, 'nyholm.psr_factory') - ->alias(UploadedFileFactoryInterface::class, 'nyholm.psr_factory') - ; - - $container->services() - ->defaults()->autowire()->autoconfigure() - ->set(HttpFoundationFactoryInterface::class, HttpFoundationFactory::class) - ->set(HttpMessageFactoryInterface::class, PsrHttpFactory::class) - ->set(PsrResponseListener::class) - ->set(PsrServerRequestResolver::class) - ; - - $container->services() - ->set('logger', NullLogger::class) - ->set(PsrRequestController::class)->public()->autowire() - ; - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Kernel44.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Kernel44.php deleted file mode 100644 index e976ae268..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/App/Kernel44.php +++ /dev/null @@ -1,67 +0,0 @@ -add('/server-request', PsrRequestController::class.'::serverRequestAction')->setMethods(['GET']); - $routes->add('/request', PsrRequestController::class.'::requestAction')->setMethods(['POST']); - $routes->add('/message', PsrRequestController::class.'::messageAction')->setMethods(['PUT']); - } - - protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void - { - $container->loadFromExtension('framework', [ - 'secret' => 'for your eyes only', - 'test' => true, - ]); - - $container->register('nyholm.psr_factory', Psr17Factory::class); - $container->setAlias(ResponseFactoryInterface::class, 'nyholm.psr_factory'); - $container->setAlias(ServerRequestFactoryInterface::class, 'nyholm.psr_factory'); - $container->setAlias(StreamFactoryInterface::class, 'nyholm.psr_factory'); - $container->setAlias(UploadedFileFactoryInterface::class, 'nyholm.psr_factory'); - - $container->register(HttpFoundationFactoryInterface::class, HttpFoundationFactory::class)->setAutowired(true)->setAutoconfigured(true); - $container->register(HttpMessageFactoryInterface::class, PsrHttpFactory::class)->setAutowired(true)->setAutoconfigured(true); - $container->register(PsrResponseListener::class)->setAutowired(true)->setAutoconfigured(true); - $container->register(PsrServerRequestResolver::class)->setAutowired(true)->setAutoconfigured(true); - - $container->register('logger', NullLogger::class); - $container->register(PsrRequestController::class)->setPublic(true)->setAutowired(true); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php deleted file mode 100644 index 0cda6fcb8..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Message.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures; - -use Psr\Http\Message\MessageInterface; -use Psr\Http\Message\StreamInterface; - -/** - * Message. - * - * @author Kévin Dunglas - */ -class Message implements MessageInterface -{ - private $version = '1.1'; - private $headers = []; - private $body; - - public function __construct($version = '1.1', array $headers = [], StreamInterface $body = null) - { - $this->version = $version; - $this->headers = $headers; - $this->body = null === $body ? new Stream() : $body; - } - - public function getProtocolVersion() - { - return $this->version; - } - - public function withProtocolVersion($version) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getHeaders() - { - return $this->headers; - } - - public function hasHeader($name) - { - return isset($this->headers[$name]); - } - - public function getHeader($name) - { - return $this->hasHeader($name) ? $this->headers[$name] : []; - } - - public function getHeaderLine($name) - { - return $this->hasHeader($name) ? implode(',', $this->headers[$name]) : ''; - } - - public function withHeader($name, $value) - { - $this->headers[$name] = (array) $value; - - return $this; - } - - public function withAddedHeader($name, $value) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withoutHeader($name) - { - unset($this->headers[$name]); - - return $this; - } - - public function getBody() - { - return $this->body; - } - - public function withBody(StreamInterface $body) - { - throw new \BadMethodCallException('Not implemented.'); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Response.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Response.php deleted file mode 100644 index a89079296..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Response.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures; - -use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\StreamInterface; - -/** - * @author Kévin Dunglas - */ -class Response extends Message implements ResponseInterface -{ - private $statusCode; - - public function __construct($version = '1.1', array $headers = [], StreamInterface $body = null, $statusCode = 200) - { - parent::__construct($version, $headers, $body); - - $this->statusCode = $statusCode; - } - - public function getStatusCode() - { - return $this->statusCode; - } - - public function withStatus($code, $reasonPhrase = '') - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getReasonPhrase() - { - throw new \BadMethodCallException('Not implemented.'); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/ServerRequest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/ServerRequest.php deleted file mode 100644 index 88ec98434..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/ServerRequest.php +++ /dev/null @@ -1,141 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures; - -use Psr\Http\Message\ServerRequestInterface; -use Psr\Http\Message\StreamInterface; -use Psr\Http\Message\UriInterface; - -/** - * @author Kévin Dunglas - */ -class ServerRequest extends Message implements ServerRequestInterface -{ - private $requestTarget; - private $method; - private $uri; - private $server; - private $cookies; - private $query; - private $uploadedFiles; - private $data; - private $attributes; - - public function __construct($version = '1.1', array $headers = [], StreamInterface $body = null, $requestTarget = '/', $method = 'GET', $uri = null, array $server = [], array $cookies = [], array $query = [], array $uploadedFiles = [], $data = null, array $attributes = []) - { - parent::__construct($version, $headers, $body); - - $this->requestTarget = $requestTarget; - $this->method = $method; - $this->uri = $uri; - $this->server = $server; - $this->cookies = $cookies; - $this->query = $query; - $this->uploadedFiles = $uploadedFiles; - $this->data = $data; - $this->attributes = $attributes; - } - - public function getRequestTarget() - { - return $this->requestTarget; - } - - public function withRequestTarget($requestTarget) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getMethod() - { - return $this->method; - } - - public function withMethod($method) - { - } - - public function getUri() - { - return $this->uri; - } - - public function withUri(UriInterface $uri, $preserveHost = false) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getServerParams() - { - return $this->server; - } - - public function getCookieParams() - { - return $this->cookies; - } - - public function withCookieParams(array $cookies) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getQueryParams() - { - return $this->query; - } - - public function withQueryParams(array $query) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getUploadedFiles() - { - return $this->uploadedFiles; - } - - public function withUploadedFiles(array $uploadedFiles) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getParsedBody() - { - return $this->data; - } - - public function withParsedBody($data) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function getAttributes() - { - return $this->attributes; - } - - public function getAttribute($name, $default = null) - { - return isset($this->attributes[$name]) ? $this->attributes[$name] : $default; - } - - public function withAttribute($name, $value) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withoutAttribute($name) - { - throw new \BadMethodCallException('Not implemented.'); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Stream.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Stream.php deleted file mode 100644 index 2cb4ab291..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Stream.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures; - -use Psr\Http\Message\StreamInterface; - -/** - * @author Kévin Dunglas - */ -class Stream implements StreamInterface -{ - private $stringContent; - private $eof = true; - - public function __construct($stringContent = '') - { - $this->stringContent = $stringContent; - } - - public function __toString() - { - return $this->stringContent; - } - - public function close() - { - } - - public function detach() - { - return fopen('data://text/plain,'.$this->stringContent, 'r'); - } - - public function getSize() - { - } - - public function tell() - { - return 0; - } - - public function eof() - { - return $this->eof; - } - - public function isSeekable() - { - return true; - } - - public function seek($offset, $whence = \SEEK_SET) - { - } - - public function rewind() - { - $this->eof = false; - } - - public function isWritable() - { - return false; - } - - public function write($string) - { - } - - public function isReadable() - { - return true; - } - - public function read($length) - { - $this->eof = true; - - return $this->stringContent; - } - - public function getContents() - { - return $this->stringContent; - } - - public function getMetadata($key = null) - { - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/UploadedFile.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/UploadedFile.php deleted file mode 100644 index 93b321438..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/UploadedFile.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures; - -use Psr\Http\Message\UploadedFileInterface; - -/** - * @author Kévin Dunglas - */ -class UploadedFile implements UploadedFileInterface -{ - private $filePath; - private $size; - private $error; - private $clientFileName; - private $clientMediaType; - - public function __construct($filePath, $size = null, $error = \UPLOAD_ERR_OK, $clientFileName = null, $clientMediaType = null) - { - $this->filePath = $filePath; - $this->size = $size; - $this->error = $error; - $this->clientFileName = $clientFileName; - $this->clientMediaType = $clientMediaType; - } - - public function getStream() - { - return new Stream(file_get_contents($this->filePath)); - } - - public function moveTo($targetPath) - { - rename($this->filePath, $targetPath); - } - - public function getSize() - { - return $this->size; - } - - public function getError() - { - return $this->error; - } - - public function getClientFilename() - { - return $this->clientFileName; - } - - public function getClientMediaType() - { - return $this->clientMediaType; - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Uri.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Uri.php deleted file mode 100644 index f11c7e5b0..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Fixtures/Uri.php +++ /dev/null @@ -1,135 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Fixtures; - -use Psr\Http\Message\UriInterface; - -/** - * @author Rougin Royce Gutib - */ -class Uri implements UriInterface -{ - private $scheme = ''; - private $userInfo = ''; - private $host = ''; - private $port; - private $path = ''; - private $query = ''; - private $fragment = ''; - private $uriString; - - public function __construct($uri = '') - { - $parts = parse_url($uri); - - $this->scheme = isset($parts['scheme']) ? $parts['scheme'] : ''; - $this->userInfo = isset($parts['user']) ? $parts['user'] : ''; - $this->host = isset($parts['host']) ? $parts['host'] : ''; - $this->port = isset($parts['port']) ? $parts['port'] : null; - $this->path = isset($parts['path']) ? $parts['path'] : ''; - $this->query = isset($parts['query']) ? $parts['query'] : ''; - $this->fragment = isset($parts['fragment']) ? $parts['fragment'] : ''; - $this->uriString = $uri; - } - - public function getScheme() - { - return $this->scheme; - } - - public function getAuthority() - { - if (empty($this->host)) { - return ''; - } - - $authority = $this->host; - - if (!empty($this->userInfo)) { - $authority = $this->userInfo.'@'.$authority; - } - - $authority .= ':'.$this->port; - - return $authority; - } - - public function getUserInfo() - { - return $this->userInfo; - } - - public function getHost() - { - return $this->host; - } - - public function getPort() - { - return $this->port; - } - - public function getPath() - { - return $this->path; - } - - public function getQuery() - { - return $this->query; - } - - public function getFragment() - { - return $this->fragment; - } - - public function withScheme($scheme) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withUserInfo($user, $password = null) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withHost($host) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withPort($port) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withPath($path) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withQuery($query) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function withFragment($fragment) - { - throw new \BadMethodCallException('Not implemented.'); - } - - public function __toString() - { - return $this->uriString; - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Functional/ControllerTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Functional/ControllerTest.php deleted file mode 100644 index 1ab5419ce..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Functional/ControllerTest.php +++ /dev/null @@ -1,46 +0,0 @@ - - */ -final class ControllerTest extends WebTestCase -{ - public function testServerRequestAction() - { - $client = self::createClient(); - $crawler = $client->request('GET', '/server-request'); - - self::assertResponseStatusCodeSame(200); - self::assertSame('GET', $crawler->text()); - } - - public function testRequestAction() - { - $client = self::createClient(); - $crawler = $client->request('POST', '/request', [], [], [], 'some content'); - - self::assertResponseStatusCodeSame(403); - self::assertSame('POST some content', $crawler->text()); - } - - public function testMessageAction() - { - $client = self::createClient(); - $crawler = $client->request('PUT', '/message', [], [], ['HTTP_X_MY_HEADER' => 'some content']); - - self::assertResponseStatusCodeSame(422); - self::assertSame('some content', $crawler->text()); - } - - protected static function getKernelClass(): string - { - return SymfonyKernel::VERSION_ID >= 50200 ? Kernel::class : Kernel44::class; - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/Tests/Functional/CovertTest.php b/api/vendor/symfony/psr-http-message-bridge/Tests/Functional/CovertTest.php deleted file mode 100644 index f460b0e85..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/Tests/Functional/CovertTest.php +++ /dev/null @@ -1,241 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\Tests\Functional; - -use Nyholm\Psr7\Factory\Psr17Factory; -use Nyholm\Psr7\Response as Psr7Response; -use Nyholm\Psr7\ServerRequest as Psr7Request; -use Nyholm\Psr7\Stream as Psr7Stream; -use PHPUnit\Framework\TestCase; -use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\ServerRequestInterface; -use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; -use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory; -use Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface; -use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\File\UploadedFile; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; - -/** - * Test to convert a request/response back and forth to make sure we do not loose data. - * - * @author Tobias Nyholm - */ -class CovertTest extends TestCase -{ - private $tmpDir; - - protected function setUp(): void - { - if (!class_exists(Psr7Request::class)) { - $this->markTestSkipped('nyholm/psr7 is not installed.'); - } - - $this->tmpDir = sys_get_temp_dir(); - } - - /** - * @dataProvider requestProvider - * - * @param Request|ServerRequestInterface $request - * @param HttpFoundationFactoryInterface|HttpMessageFactoryInterface $firstFactory - * @param HttpFoundationFactoryInterface|HttpMessageFactoryInterface $secondFactory - */ - public function testConvertRequestMultipleTimes($request, $firstFactory, $secondFactory) - { - $temporaryRequest = $firstFactory->createRequest($request); - $finalRequest = $secondFactory->createRequest($temporaryRequest); - - if ($finalRequest instanceof Request) { - $this->assertEquals($request->getBasePath(), $finalRequest->getBasePath()); - $this->assertEquals($request->getBaseUrl(), $finalRequest->getBaseUrl()); - $this->assertEquals($request->getContent(), $finalRequest->getContent()); - $this->assertEquals($request->getEncodings(), $finalRequest->getEncodings()); - $this->assertEquals($request->getETags(), $finalRequest->getETags()); - $this->assertEquals($request->getHost(), $finalRequest->getHost()); - $this->assertEquals($request->getHttpHost(), $finalRequest->getHttpHost()); - $this->assertEquals($request->getMethod(), $finalRequest->getMethod()); - $this->assertEquals($request->getPassword(), $finalRequest->getPassword()); - $this->assertEquals($request->getPathInfo(), $finalRequest->getPathInfo()); - $this->assertEquals($request->getPort(), $finalRequest->getPort()); - $this->assertEquals($request->getProtocolVersion(), $finalRequest->getProtocolVersion()); - $this->assertEquals($request->getQueryString(), $finalRequest->getQueryString()); - $this->assertEquals($request->getRequestUri(), $finalRequest->getRequestUri()); - $this->assertEquals($request->getScheme(), $finalRequest->getScheme()); - $this->assertEquals($request->getSchemeAndHttpHost(), $finalRequest->getSchemeAndHttpHost()); - $this->assertEquals($request->getScriptName(), $finalRequest->getScriptName()); - $this->assertEquals($request->getUri(), $finalRequest->getUri()); - $this->assertEquals($request->getUser(), $finalRequest->getUser()); - $this->assertEquals($request->getUserInfo(), $finalRequest->getUserInfo()); - } elseif ($finalRequest instanceof ServerRequestInterface) { - $strToLower = function ($arr) { - foreach ($arr as $key => $value) { - yield strtolower($key) => $value; - } - }; - $this->assertEquals($request->getAttributes(), $finalRequest->getAttributes()); - $this->assertEquals($request->getCookieParams(), $finalRequest->getCookieParams()); - $this->assertEquals((array) $request->getParsedBody(), (array) $finalRequest->getParsedBody()); - $this->assertEquals($request->getQueryParams(), $finalRequest->getQueryParams()); - // PSR7 does not define a "withServerParams" so this is impossible to implement without knowing the PSR7 implementation. - //$this->assertEquals($request->getServerParams(), $finalRequest->getServerParams()); - $this->assertEquals($request->getUploadedFiles(), $finalRequest->getUploadedFiles()); - $this->assertEquals($request->getMethod(), $finalRequest->getMethod()); - $this->assertEquals($request->getRequestTarget(), $finalRequest->getRequestTarget()); - $this->assertEquals((string) $request->getUri(), (string) $finalRequest->getUri()); - $this->assertEquals((string) $request->getBody(), (string) $finalRequest->getBody()); - $this->assertEquals($strToLower($request->getHeaders()), $strToLower($finalRequest->getHeaders())); - $this->assertEquals($request->getProtocolVersion(), $finalRequest->getProtocolVersion()); - } else { - $this->fail('$finalRequest must be an instance of PSR7 or a HTTPFoundation request'); - } - } - - public function requestProvider() - { - $sfRequest = new Request( - [ - 'foo' => '1', - 'bar' => ['baz' => '42'], - ], - [ - 'twitter' => [ - '@dunglas' => 'Kévin Dunglas', - '@coopTilleuls' => 'Les-Tilleuls.coop', - ], - 'baz' => '2', - ], - [ - 'a2' => ['foo' => 'bar'], - ], - [ - 'c1' => 'foo', - 'c2' => ['c3' => 'bar'], - ], - [ - 'f1' => $this->createUploadedFile('F1', 'f1.txt', 'text/plain', \UPLOAD_ERR_OK), - 'foo' => ['f2' => $this->createUploadedFile('F2', 'f2.txt', 'text/plain', \UPLOAD_ERR_OK)], - ], - [ - 'REQUEST_METHOD' => 'POST', - 'HTTP_HOST' => 'dunglas.fr', - 'SERVER_NAME' => 'dunglas.fr', - 'SERVER_PORT' => null, - 'HTTP_X_SYMFONY' => '2.8', - 'REQUEST_URI' => '/testCreateRequest?foo=1&bar%5Bbaz%5D=42', - 'QUERY_STRING' => 'foo=1&bar%5Bbaz%5D=42', - ], - 'Content' - ); - - $psr7Requests = [ - (new Psr7Request('POST', 'http://tnyholm.se/foo/?bar=biz')) - ->withQueryParams(['bar' => 'biz']), - new Psr7Request('GET', 'https://hey-octave.com/'), - new Psr7Request('GET', 'https://hey-octave.com:443/'), - new Psr7Request('GET', 'https://hey-octave.com:4242/'), - new Psr7Request('GET', 'http://hey-octave.com:80/'), - ]; - - $nyholmFactory = new Psr17Factory(); - $psr17Factory = new PsrHttpFactory($nyholmFactory, $nyholmFactory, $nyholmFactory, $nyholmFactory); - $symfonyFactory = new HttpFoundationFactory(); - - return array_merge([ - [$sfRequest, $psr17Factory, $symfonyFactory], - ], array_map(function ($psr7Request) use ($symfonyFactory, $psr17Factory) { - return [$psr7Request, $symfonyFactory, $psr17Factory]; - }, $psr7Requests)); - } - - /** - * @dataProvider responseProvider - * - * @param Response|ResponseInterface $response - * @param HttpFoundationFactoryInterface|HttpMessageFactoryInterface $firstFactory - * @param HttpFoundationFactoryInterface|HttpMessageFactoryInterface $secondFactory - */ - public function testConvertResponseMultipleTimes($response, $firstFactory, $secondFactory) - { - $temporaryResponse = $firstFactory->createResponse($response); - $finalResponse = $secondFactory->createResponse($temporaryResponse); - - if ($finalResponse instanceof Response) { - $this->assertEquals($response->getAge(), $finalResponse->getAge()); - $this->assertEquals($response->getCharset(), $finalResponse->getCharset()); - $this->assertEquals($response->getContent(), $finalResponse->getContent()); - $this->assertEquals($response->getDate(), $finalResponse->getDate()); - $this->assertEquals($response->getEtag(), $finalResponse->getEtag()); - $this->assertEquals($response->getExpires(), $finalResponse->getExpires()); - $this->assertEquals($response->getLastModified(), $finalResponse->getLastModified()); - $this->assertEquals($response->getMaxAge(), $finalResponse->getMaxAge()); - $this->assertEquals($response->getProtocolVersion(), $finalResponse->getProtocolVersion()); - $this->assertEquals($response->getStatusCode(), $finalResponse->getStatusCode()); - $this->assertEquals($response->getTtl(), $finalResponse->getTtl()); - } elseif ($finalResponse instanceof ResponseInterface) { - $strToLower = function ($arr) { - foreach ($arr as $key => $value) { - yield strtolower($key) => $value; - } - }; - $this->assertEquals($response->getStatusCode(), $finalResponse->getStatusCode()); - $this->assertEquals($response->getReasonPhrase(), $finalResponse->getReasonPhrase()); - $this->assertEquals((string) $response->getBody(), (string) $finalResponse->getBody()); - $this->assertEquals($strToLower($response->getHeaders()), $strToLower($finalResponse->getHeaders())); - $this->assertEquals($response->getProtocolVersion(), $finalResponse->getProtocolVersion()); - } else { - $this->fail('$finalResponse must be an instance of PSR7 or a HTTPFoundation response'); - } - } - - public function responseProvider() - { - $sfResponse = new Response( - 'Response content.', - 202, - ['x-symfony' => ['3.4']] - ); - - if (method_exists(Cookie::class, 'create')) { - $cookie = Cookie::create('city', 'Lille', new \DateTime('Wed, 13 Jan 2021 22:23:01 GMT')); - } else { - $cookie = new Cookie('city', 'Lille', new \DateTime('Wed, 13 Jan 2021 22:23:01 GMT')); - } - - $sfResponse->headers->setCookie($cookie); - $body = Psr7Stream::create(); - $status = 302; - $headers = [ - 'location' => ['http://example.com/'], - ]; - $zendResponse = new Psr7Response($status, $headers, $body); - - $nyholmFactory = new Psr17Factory(); - $psr17Factory = new PsrHttpFactory($nyholmFactory, $nyholmFactory, $nyholmFactory, $nyholmFactory); - $symfonyFactory = new HttpFoundationFactory(); - - return [ - [$sfResponse, $psr17Factory, $symfonyFactory], - [$zendResponse, $symfonyFactory, $psr17Factory], - ]; - } - - private function createUploadedFile($content, $originalName, $mimeType, $error) - { - $path = tempnam($this->tmpDir, uniqid()); - file_put_contents($path, $content); - - return new UploadedFile($path, $originalName, $mimeType, $error, true); - } -} diff --git a/api/vendor/symfony/psr-http-message-bridge/composer.json b/api/vendor/symfony/psr-http-message-bridge/composer.json index 07563bc28..b705eb2e2 100644 --- a/api/vendor/symfony/psr-http-message-bridge/composer.json +++ b/api/vendor/symfony/psr-http-message-bridge/composer.json @@ -16,19 +16,20 @@ } ], "require": { - "php": ">=7.1", - "psr/http-message": "^1.0", - "symfony/http-foundation": "^4.4 || ^5.0" + "php": ">=7.2.5", + "psr/http-message": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/http-foundation": "^5.4 || ^6.0" }, "require-dev": { - "symfony/browser-kit": "^4.4 || ^5.0", - "symfony/config": "^4.4 || ^5.0", - "symfony/event-dispatcher": "^4.4 || ^5.0", - "symfony/framework-bundle": "^4.4 || ^5.0", - "symfony/http-kernel": "^4.4 || ^5.0", - "symfony/phpunit-bridge": "^4.4.19 || ^5.2", + "symfony/browser-kit": "^5.4 || ^6.0", + "symfony/config": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/framework-bundle": "^5.4 || ^6.0", + "symfony/http-kernel": "^5.4 || ^6.0", + "symfony/phpunit-bridge": "^6.2", "nyholm/psr7": "^1.1", - "psr/log": "^1.1" + "psr/log": "^1.1 || ^2 || ^3" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" @@ -41,7 +42,7 @@ }, "extra": { "branch-alias": { - "dev-main": "2.1-dev" + "dev-main": "2.3-dev" } } } diff --git a/api/vendor/symfony/psr-http-message-bridge/phpunit.xml.dist b/api/vendor/symfony/psr-http-message-bridge/phpunit.xml.dist deleted file mode 100644 index 43aeaa338..000000000 --- a/api/vendor/symfony/psr-http-message-bridge/phpunit.xml.dist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - ./Tests/ - - - - - - ./ - - ./Resources - ./Tests - ./vendor - - - - diff --git a/api/vendor/symfony/routing/Annotation/Route.php b/api/vendor/symfony/routing/Annotation/Route.php index 81563df20..957344f01 100644 --- a/api/vendor/symfony/routing/Annotation/Route.php +++ b/api/vendor/symfony/routing/Annotation/Route.php @@ -49,20 +49,20 @@ class Route public function __construct( $data = [], $path = null, - string $name = null, + ?string $name = null, array $requirements = [], array $options = [], array $defaults = [], - string $host = null, + ?string $host = null, $methods = [], $schemes = [], - string $condition = null, - int $priority = null, - string $locale = null, - string $format = null, - bool $utf8 = null, - bool $stateless = null, - string $env = null + ?string $condition = null, + ?int $priority = null, + ?string $locale = null, + ?string $format = null, + ?bool $utf8 = null, + ?bool $stateless = null, + ?string $env = null ) { if (\is_string($data)) { $data = ['path' => $data]; diff --git a/api/vendor/symfony/routing/CompiledRoute.php b/api/vendor/symfony/routing/CompiledRoute.php index 1449cdb92..64bf9cacd 100644 --- a/api/vendor/symfony/routing/CompiledRoute.php +++ b/api/vendor/symfony/routing/CompiledRoute.php @@ -37,7 +37,7 @@ class CompiledRoute implements \Serializable * @param array $hostVariables An array of host variables * @param array $variables An array of variables (variables defined in the path and in the host patterns) */ - public function __construct(string $staticPrefix, string $regex, array $tokens, array $pathVariables, string $hostRegex = null, array $hostTokens = [], array $hostVariables = [], array $variables = []) + public function __construct(string $staticPrefix, string $regex, array $tokens, array $pathVariables, ?string $hostRegex = null, array $hostTokens = [], array $hostVariables = [], array $variables = []) { $this->staticPrefix = $staticPrefix; $this->regex = $regex; diff --git a/api/vendor/symfony/routing/Exception/MethodNotAllowedException.php b/api/vendor/symfony/routing/Exception/MethodNotAllowedException.php index 27cf2125e..a73e1e6e3 100644 --- a/api/vendor/symfony/routing/Exception/MethodNotAllowedException.php +++ b/api/vendor/symfony/routing/Exception/MethodNotAllowedException.php @@ -25,7 +25,7 @@ class MethodNotAllowedException extends \RuntimeException implements ExceptionIn /** * @param string[] $allowedMethods */ - public function __construct(array $allowedMethods, ?string $message = '', int $code = 0, \Throwable $previous = null) + public function __construct(array $allowedMethods, ?string $message = '', int $code = 0, ?\Throwable $previous = null) { if (null === $message) { trigger_deprecation('symfony/routing', '5.3', 'Passing null as $message to "%s()" is deprecated, pass an empty string instead.', __METHOD__); diff --git a/api/vendor/symfony/routing/Generator/CompiledUrlGenerator.php b/api/vendor/symfony/routing/Generator/CompiledUrlGenerator.php index 8cbbf8f70..8af3ae78e 100644 --- a/api/vendor/symfony/routing/Generator/CompiledUrlGenerator.php +++ b/api/vendor/symfony/routing/Generator/CompiledUrlGenerator.php @@ -23,7 +23,7 @@ class CompiledUrlGenerator extends UrlGenerator private $compiledRoutes = []; private $defaultLocale; - public function __construct(array $compiledRoutes, RequestContext $context, LoggerInterface $logger = null, string $defaultLocale = null) + public function __construct(array $compiledRoutes, RequestContext $context, ?LoggerInterface $logger = null, ?string $defaultLocale = null) { $this->compiledRoutes = $compiledRoutes; $this->context = $context; diff --git a/api/vendor/symfony/routing/Generator/UrlGenerator.php b/api/vendor/symfony/routing/Generator/UrlGenerator.php index acf3ead4f..4419e9efd 100644 --- a/api/vendor/symfony/routing/Generator/UrlGenerator.php +++ b/api/vendor/symfony/routing/Generator/UrlGenerator.php @@ -82,7 +82,7 @@ class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInt '%7C' => '|', ]; - public function __construct(RouteCollection $routes, RequestContext $context, LoggerInterface $logger = null, string $defaultLocale = null) + public function __construct(RouteCollection $routes, RequestContext $context, ?LoggerInterface $logger = null, ?string $defaultLocale = null) { $this->routes = $routes; $this->context = $context; @@ -162,11 +162,11 @@ public function generate(string $name, array $parameters = [], int $referenceTyp } /** + * @return string + * * @throws MissingMandatoryParametersException When some parameters are missing that are mandatory for the route * @throws InvalidParameterException When a parameter value for a placeholder is not correct because * it does not match the requirement - * - * @return string */ protected function doGenerate(array $variables, array $defaults, array $requirements, array $tokens, array $parameters, string $name, int $referenceType, array $hostTokens, array $requiredSchemes = []) { diff --git a/api/vendor/symfony/routing/LICENSE b/api/vendor/symfony/routing/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/routing/LICENSE +++ b/api/vendor/symfony/routing/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/routing/Loader/AnnotationClassLoader.php b/api/vendor/symfony/routing/Loader/AnnotationClassLoader.php index ad5af5c94..c0bcb4713 100644 --- a/api/vendor/symfony/routing/Loader/AnnotationClassLoader.php +++ b/api/vendor/symfony/routing/Loader/AnnotationClassLoader.php @@ -85,7 +85,7 @@ abstract class AnnotationClassLoader implements LoaderInterface */ protected $defaultRouteIndex = 0; - public function __construct(Reader $reader = null, string $env = null) + public function __construct(?Reader $reader = null, ?string $env = null) { $this->reader = $reader; $this->env = $env; @@ -108,7 +108,7 @@ public function setRouteAnnotationClass(string $class) * * @throws \InvalidArgumentException When route can't be parsed */ - public function load($class, string $type = null) + public function load($class, ?string $type = null) { if (!class_exists($class)) { throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class)); @@ -239,7 +239,7 @@ protected function addRoute(RouteCollection $collection, object $annot, array $g /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return \is_string($resource) && preg_match('/^(?:\\\\?[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)+$/', $resource) && (!$type || 'annotation' === $type); } diff --git a/api/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php b/api/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php index ae825a39f..8cd60f827 100644 --- a/api/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php +++ b/api/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php @@ -32,7 +32,7 @@ class AnnotationDirectoryLoader extends AnnotationFileLoader * * @throws \InvalidArgumentException When the directory does not exist or its routes cannot be parsed */ - public function load($path, string $type = null) + public function load($path, ?string $type = null) { if (!is_dir($dir = $this->locator->locate($path))) { return parent::supports($path, $type) ? parent::load($path, $type) : new RouteCollection(); @@ -74,7 +74,7 @@ function (\SplFileInfo $current) { /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { if ('annotation' === $type) { return true; diff --git a/api/vendor/symfony/routing/Loader/AnnotationFileLoader.php b/api/vendor/symfony/routing/Loader/AnnotationFileLoader.php index 27af66ee6..a1d70c0fb 100644 --- a/api/vendor/symfony/routing/Loader/AnnotationFileLoader.php +++ b/api/vendor/symfony/routing/Loader/AnnotationFileLoader.php @@ -47,7 +47,7 @@ public function __construct(FileLocatorInterface $locator, AnnotationClassLoader * * @throws \InvalidArgumentException When the file does not exist or its routes cannot be parsed */ - public function load($file, string $type = null) + public function load($file, ?string $type = null) { $path = $this->locator->locate($file); @@ -70,7 +70,7 @@ public function load($file, string $type = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return \is_string($resource) && 'php' === pathinfo($resource, \PATHINFO_EXTENSION) && (!$type || 'annotation' === $type); } diff --git a/api/vendor/symfony/routing/Loader/ClosureLoader.php b/api/vendor/symfony/routing/Loader/ClosureLoader.php index 42f950f50..a5081ca28 100644 --- a/api/vendor/symfony/routing/Loader/ClosureLoader.php +++ b/api/vendor/symfony/routing/Loader/ClosureLoader.php @@ -31,7 +31,7 @@ class ClosureLoader extends Loader * * @return RouteCollection */ - public function load($closure, string $type = null) + public function load($closure, ?string $type = null) { return $closure($this->env); } @@ -39,7 +39,7 @@ public function load($closure, string $type = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return $resource instanceof \Closure && (!$type || 'closure' === $type); } diff --git a/api/vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php b/api/vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php index 09274ccdc..ec59f7ee9 100644 --- a/api/vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php +++ b/api/vendor/symfony/routing/Loader/Configurator/CollectionConfigurator.php @@ -28,7 +28,7 @@ class CollectionConfigurator private $parentPrefixes; private $host; - public function __construct(RouteCollection $parent, string $name, self $parentConfigurator = null, array $parentPrefixes = null) + public function __construct(RouteCollection $parent, string $name, ?self $parentConfigurator = null, ?array $parentPrefixes = null) { $this->parent = $parent; $this->name = $name; diff --git a/api/vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php b/api/vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php index bb6ce267a..fcd1c2157 100644 --- a/api/vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php +++ b/api/vendor/symfony/routing/Loader/Configurator/RouteConfigurator.php @@ -24,7 +24,7 @@ class RouteConfigurator protected $parentConfigurator; - public function __construct(RouteCollection $collection, RouteCollection $route, string $name = '', CollectionConfigurator $parentConfigurator = null, array $prefixes = null) + public function __construct(RouteCollection $collection, RouteCollection $route, string $name = '', ?CollectionConfigurator $parentConfigurator = null, ?array $prefixes = null) { $this->collection = $collection; $this->route = $route; diff --git a/api/vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php b/api/vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php index 4687bf681..620b2d586 100644 --- a/api/vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php +++ b/api/vendor/symfony/routing/Loader/Configurator/RoutingConfigurator.php @@ -26,7 +26,7 @@ class RoutingConfigurator private $file; private $env; - public function __construct(RouteCollection $collection, PhpFileLoader $loader, string $path, string $file, string $env = null) + public function __construct(RouteCollection $collection, PhpFileLoader $loader, string $path, string $file, ?string $env = null) { $this->collection = $collection; $this->loader = $loader; @@ -38,7 +38,7 @@ public function __construct(RouteCollection $collection, PhpFileLoader $loader, /** * @param string|string[]|null $exclude Glob patterns to exclude from the import */ - final public function import($resource, string $type = null, bool $ignoreErrors = false, $exclude = null): ImportConfigurator + final public function import($resource, ?string $type = null, bool $ignoreErrors = false, $exclude = null): ImportConfigurator { $this->loader->setCurrentDir(\dirname($this->path)); diff --git a/api/vendor/symfony/routing/Loader/Configurator/Traits/LocalizedRouteTrait.php b/api/vendor/symfony/routing/Loader/Configurator/Traits/LocalizedRouteTrait.php index 4734a4eac..44fb047a9 100644 --- a/api/vendor/symfony/routing/Loader/Configurator/Traits/LocalizedRouteTrait.php +++ b/api/vendor/symfony/routing/Loader/Configurator/Traits/LocalizedRouteTrait.php @@ -27,7 +27,7 @@ trait LocalizedRouteTrait * * @param string|array $path the path, or the localized paths of the route */ - final protected function createLocalizedRoute(RouteCollection $collection, string $name, $path, string $namePrefix = '', array $prefixes = null): RouteCollection + final protected function createLocalizedRoute(RouteCollection $collection, string $name, $path, string $namePrefix = '', ?array $prefixes = null): RouteCollection { $paths = []; diff --git a/api/vendor/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php b/api/vendor/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php index 27053bcaf..0b19573ec 100644 --- a/api/vendor/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php +++ b/api/vendor/symfony/routing/Loader/Configurator/Traits/PrefixTrait.php @@ -29,6 +29,7 @@ final protected function addPrefix(RouteCollection $routes, $prefix, bool $trail } foreach ($routes->all() as $name => $route) { if (null === $locale = $route->getDefault('_locale')) { + $priority = $routes->getPriority($name) ?? 0; $routes->remove($name); foreach ($prefix as $locale => $localePrefix) { $localizedRoute = clone $route; @@ -36,13 +37,13 @@ final protected function addPrefix(RouteCollection $routes, $prefix, bool $trail $localizedRoute->setRequirement('_locale', preg_quote($locale)); $localizedRoute->setDefault('_canonical_route', $name); $localizedRoute->setPath($localePrefix.(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath())); - $routes->add($name.'.'.$locale, $localizedRoute); + $routes->add($name.'.'.$locale, $localizedRoute, $priority); } } elseif (!isset($prefix[$locale])) { throw new \InvalidArgumentException(sprintf('Route "%s" with locale "%s" is missing a corresponding prefix in its parent collection.', $name, $locale)); } else { $route->setPath($prefix[$locale].(!$trailingSlashOnRoot && '/' === $route->getPath() ? '' : $route->getPath())); - $routes->add($name, $route); + $routes->add($name, $route, $routes->getPriority($name) ?? 0); } } diff --git a/api/vendor/symfony/routing/Loader/ContainerLoader.php b/api/vendor/symfony/routing/Loader/ContainerLoader.php index d8730aec6..a03d46524 100644 --- a/api/vendor/symfony/routing/Loader/ContainerLoader.php +++ b/api/vendor/symfony/routing/Loader/ContainerLoader.php @@ -22,7 +22,7 @@ class ContainerLoader extends ObjectLoader { private $container; - public function __construct(ContainerInterface $container, string $env = null) + public function __construct(ContainerInterface $container, ?string $env = null) { $this->container = $container; parent::__construct($env); @@ -31,7 +31,7 @@ public function __construct(ContainerInterface $container, string $env = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return 'service' === $type && \is_string($resource); } diff --git a/api/vendor/symfony/routing/Loader/DirectoryLoader.php b/api/vendor/symfony/routing/Loader/DirectoryLoader.php index c0f349177..24cf185d6 100644 --- a/api/vendor/symfony/routing/Loader/DirectoryLoader.php +++ b/api/vendor/symfony/routing/Loader/DirectoryLoader.php @@ -20,7 +20,7 @@ class DirectoryLoader extends FileLoader /** * {@inheritdoc} */ - public function load($file, string $type = null) + public function load($file, ?string $type = null) { $path = $this->locator->locate($file); @@ -49,7 +49,7 @@ public function load($file, string $type = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { // only when type is forced to directory, not to conflict with AnnotationLoader diff --git a/api/vendor/symfony/routing/Loader/GlobFileLoader.php b/api/vendor/symfony/routing/Loader/GlobFileLoader.php index 780fb15dc..9c2f4ed4f 100644 --- a/api/vendor/symfony/routing/Loader/GlobFileLoader.php +++ b/api/vendor/symfony/routing/Loader/GlobFileLoader.php @@ -24,7 +24,7 @@ class GlobFileLoader extends FileLoader /** * {@inheritdoc} */ - public function load($resource, string $type = null) + public function load($resource, ?string $type = null) { $collection = new RouteCollection(); @@ -40,7 +40,7 @@ public function load($resource, string $type = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return 'glob' === $type; } diff --git a/api/vendor/symfony/routing/Loader/ObjectLoader.php b/api/vendor/symfony/routing/Loader/ObjectLoader.php index 062453908..d212f8e8b 100644 --- a/api/vendor/symfony/routing/Loader/ObjectLoader.php +++ b/api/vendor/symfony/routing/Loader/ObjectLoader.php @@ -40,7 +40,7 @@ abstract protected function getObject(string $id); * * @return RouteCollection */ - public function load($resource, string $type = null) + public function load($resource, ?string $type = null) { if (!preg_match('/^[^\:]+(?:::(?:[^\:]+))?$/', $resource)) { throw new \InvalidArgumentException(sprintf('Invalid resource "%s" passed to the %s route loader: use the format "object_id::method" or "object_id" if your object class has an "__invoke" method.', $resource, \is_string($type) ? '"'.$type.'"' : 'object')); diff --git a/api/vendor/symfony/routing/Loader/PhpFileLoader.php b/api/vendor/symfony/routing/Loader/PhpFileLoader.php index 39ac81273..3f1cf9cd1 100644 --- a/api/vendor/symfony/routing/Loader/PhpFileLoader.php +++ b/api/vendor/symfony/routing/Loader/PhpFileLoader.php @@ -35,7 +35,7 @@ class PhpFileLoader extends FileLoader * * @return RouteCollection */ - public function load($file, string $type = null) + public function load($file, ?string $type = null) { $path = $this->locator->locate($file); $this->setCurrentDir(\dirname($path)); @@ -62,7 +62,7 @@ public function load($file, string $type = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return \is_string($resource) && 'php' === pathinfo($resource, \PATHINFO_EXTENSION) && (!$type || 'php' === $type); } diff --git a/api/vendor/symfony/routing/Loader/XmlFileLoader.php b/api/vendor/symfony/routing/Loader/XmlFileLoader.php index 9f502dfc8..85bb0ee8c 100644 --- a/api/vendor/symfony/routing/Loader/XmlFileLoader.php +++ b/api/vendor/symfony/routing/Loader/XmlFileLoader.php @@ -45,7 +45,7 @@ class XmlFileLoader extends FileLoader * @throws \InvalidArgumentException when the file cannot be loaded or when the XML cannot be * parsed because it does not validate against the scheme */ - public function load($file, string $type = null) + public function load($file, ?string $type = null) { $path = $this->locator->locate($file); @@ -102,7 +102,7 @@ protected function parseNode(RouteCollection $collection, \DOMElement $node, str /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return \is_string($resource) && 'xml' === pathinfo($resource, \PATHINFO_EXTENSION) && (!$type || 'xml' === $type); } @@ -195,7 +195,7 @@ protected function parseImport(RouteCollection $collection, \DOMElement $node, s $this->setCurrentDir(\dirname($path)); /** @var RouteCollection[] $imported */ - $imported = $this->import($resource, ('' !== $type ? $type : null), false, $file, $exclude) ?: []; + $imported = $this->import($resource, '' !== $type ? $type : null, false, $file, $exclude) ?: []; if (!\is_array($imported)) { $imported = [$imported]; diff --git a/api/vendor/symfony/routing/Loader/YamlFileLoader.php b/api/vendor/symfony/routing/Loader/YamlFileLoader.php index ae98a314e..1087817bb 100644 --- a/api/vendor/symfony/routing/Loader/YamlFileLoader.php +++ b/api/vendor/symfony/routing/Loader/YamlFileLoader.php @@ -48,7 +48,7 @@ class YamlFileLoader extends FileLoader * * @throws \InvalidArgumentException When a route can't be parsed because YAML is invalid */ - public function load($file, string $type = null) + public function load($file, ?string $type = null) { $path = $this->locator->locate($file); @@ -117,7 +117,7 @@ public function load($file, string $type = null) /** * {@inheritdoc} */ - public function supports($resource, string $type = null) + public function supports($resource, ?string $type = null) { return \is_string($resource) && \in_array(pathinfo($resource, \PATHINFO_EXTENSION), ['yml', 'yaml'], true) && (!$type || 'yaml' === $type); } diff --git a/api/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php b/api/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php index 123130ed4..ddf231f05 100644 --- a/api/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php +++ b/api/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php @@ -139,7 +139,7 @@ private function generateCompiledRoutes(): string foreach ($staticRoutes as $path => $routes) { $code .= sprintf(" %s => [\n", self::export($path)); foreach ($routes as $route) { - $code .= sprintf(" [%s, %s, %s, %s, %s, %s, %s],\n", ...array_map([__CLASS__, 'export'], $route)); + $code .= vsprintf(" [%s, %s, %s, %s, %s, %s, %s],\n", array_map([__CLASS__, 'export'], $route)); } $code .= " ],\n"; } @@ -151,7 +151,7 @@ private function generateCompiledRoutes(): string foreach ($dynamicRoutes as $path => $routes) { $code .= sprintf(" %s => [\n", self::export($path)); foreach ($routes as $route) { - $code .= sprintf(" [%s, %s, %s, %s, %s, %s, %s],\n", ...array_map([__CLASS__, 'export'], $route)); + $code .= vsprintf(" [%s, %s, %s, %s, %s, %s, %s],\n", array_map([__CLASS__, 'export'], $route)); } $code .= " ],\n"; } diff --git a/api/vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php b/api/vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php index 97bd692a5..47d923c66 100644 --- a/api/vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php +++ b/api/vendor/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php @@ -200,6 +200,7 @@ private function getCommonPrefix(string $prefix, string $anotherPrefix): array public static function handleError(int $type, string $msg) { - return str_contains($msg, 'Compilation failed: lookbehind assertion is not fixed length'); + return str_contains($msg, 'Compilation failed: lookbehind assertion is not fixed length') + || str_contains($msg, 'Compilation failed: length of lookbehind assertion is not limited'); } } diff --git a/api/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php b/api/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php index d07f42093..a43888b3e 100644 --- a/api/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php +++ b/api/vendor/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php @@ -27,5 +27,5 @@ interface RedirectableUrlMatcherInterface * * @return array */ - public function redirect(string $path, string $route, string $scheme = null); + public function redirect(string $path, string $route, ?string $scheme = null); } diff --git a/api/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php b/api/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php index 9e8c4c42d..cddfe0254 100644 --- a/api/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php +++ b/api/vendor/symfony/routing/Matcher/TraceableUrlMatcher.php @@ -152,7 +152,7 @@ protected function matchCollection(string $pathinfo, RouteCollection $routes) return []; } - private function addTrace(string $log, int $level = self::ROUTE_DOES_NOT_MATCH, string $name = null, Route $route = null) + private function addTrace(string $log, int $level = self::ROUTE_DOES_NOT_MATCH, ?string $name = null, ?Route $route = null) { $this->traces[] = [ 'log' => $log, diff --git a/api/vendor/symfony/routing/RequestContext.php b/api/vendor/symfony/routing/RequestContext.php index 8994b266e..f54c430ee 100644 --- a/api/vendor/symfony/routing/RequestContext.php +++ b/api/vendor/symfony/routing/RequestContext.php @@ -98,7 +98,7 @@ public function getBaseUrl() */ public function setBaseUrl(string $baseUrl) { - $this->baseUrl = $baseUrl; + $this->baseUrl = rtrim($baseUrl, '/'); return $this; } diff --git a/api/vendor/symfony/routing/RouteCollection.php b/api/vendor/symfony/routing/RouteCollection.php index 1b5ffd438..95faead6e 100644 --- a/api/vendor/symfony/routing/RouteCollection.php +++ b/api/vendor/symfony/routing/RouteCollection.php @@ -89,7 +89,7 @@ public function count() /** * @param int $priority */ - public function add(string $name, Route $route/*, int $priority = 0*/) + public function add(string $name, Route $route/* , int $priority = 0 */) { if (\func_num_args() < 3 && __CLASS__ !== static::class && __CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName() && !$this instanceof \PHPUnit\Framework\MockObject\MockObject && !$this instanceof \Prophecy\Prophecy\ProphecySubjectInterface && !$this instanceof \Mockery\MockInterface) { trigger_deprecation('symfony/routing', '5.1', 'The "%s()" method will have a new "int $priority = 0" argument in version 6.0, not defining it is deprecated.', __METHOD__); @@ -157,9 +157,24 @@ public function get(string $name) */ public function remove($name) { + $routes = []; foreach ((array) $name as $n) { + if (isset($this->routes[$n])) { + $routes[] = $n; + } + unset($this->routes[$n], $this->priorities[$n], $this->aliases[$n]); } + + if (!$routes) { + return; + } + + foreach ($this->aliases as $k => $alias) { + if (\in_array($alias->getId(), $routes, true)) { + unset($this->aliases[$k]); + } + } } /** @@ -380,4 +395,9 @@ public function getAlias(string $name): ?Alias { return $this->aliases[$name] ?? null; } + + public function getPriority(string $name): ?int + { + return $this->priorities[$name] ?? null; + } } diff --git a/api/vendor/symfony/routing/RouteCollectionBuilder.php b/api/vendor/symfony/routing/RouteCollectionBuilder.php index d7eed31eb..04a443972 100644 --- a/api/vendor/symfony/routing/RouteCollectionBuilder.php +++ b/api/vendor/symfony/routing/RouteCollectionBuilder.php @@ -43,7 +43,7 @@ class RouteCollectionBuilder private $methods; private $resources = []; - public function __construct(LoaderInterface $loader = null) + public function __construct(?LoaderInterface $loader = null) { $this->loader = $loader; } @@ -59,7 +59,7 @@ public function __construct(LoaderInterface $loader = null) * * @throws LoaderLoadException */ - public function import($resource, string $prefix = '/', string $type = null) + public function import($resource, string $prefix = '/', ?string $type = null) { /** @var RouteCollection[] $collections */ $collections = $this->load($resource, $type); @@ -92,7 +92,7 @@ public function import($resource, string $prefix = '/', string $type = null) * * @return Route */ - public function add(string $path, string $controller, string $name = null) + public function add(string $path, string $controller, ?string $name = null) { $route = new Route($path); $route->setDefault('_controller', $controller); @@ -125,7 +125,7 @@ public function mount(string $prefix, self $builder) * * @return $this */ - public function addRoute(Route $route, string $name = null) + public function addRoute(Route $route, ?string $name = null) { if (null === $name) { // used as a flag to know which routes will need a name later @@ -337,7 +337,7 @@ private function generateRouteName(Route $route): string * * @throws LoaderLoadException If no loader is found */ - private function load($resource, string $type = null): array + private function load($resource, ?string $type = null): array { if (null === $this->loader) { throw new \BadMethodCallException('Cannot import other routing resources: you must pass a LoaderInterface when constructing RouteCollectionBuilder.'); diff --git a/api/vendor/symfony/routing/Router.php b/api/vendor/symfony/routing/Router.php index fbab1a79f..48ec10180 100644 --- a/api/vendor/symfony/routing/Router.php +++ b/api/vendor/symfony/routing/Router.php @@ -97,7 +97,7 @@ class Router implements RouterInterface, RequestMatcherInterface /** * @param mixed $resource The main resource to load */ - public function __construct(LoaderInterface $loader, $resource, array $options = [], RequestContext $context = null, LoggerInterface $logger = null, string $defaultLocale = null) + public function __construct(LoaderInterface $loader, $resource, array $options = [], ?RequestContext $context = null, ?LoggerInterface $logger = null, ?string $defaultLocale = null) { $this->loader = $loader; $this->resource = $resource; @@ -313,14 +313,12 @@ public function getGenerator() if (null === $this->options['cache_dir']) { $routes = $this->getRouteCollection(); - $aliases = []; $compiled = is_a($this->options['generator_class'], CompiledUrlGenerator::class, true); if ($compiled) { $generatorDumper = new CompiledUrlGeneratorDumper($routes); - $routes = $generatorDumper->getCompiledRoutes(); - $aliases = $generatorDumper->getCompiledAliases(); + $routes = array_merge($generatorDumper->getCompiledRoutes(), $generatorDumper->getCompiledAliases()); } - $this->generator = new $this->options['generator_class'](array_merge($routes, $aliases), $this->context, $this->logger, $this->defaultLocale); + $this->generator = new $this->options['generator_class']($routes, $this->context, $this->logger, $this->defaultLocale); } else { $cache = $this->getConfigCacheFactory()->cache($this->options['cache_dir'].'/url_generating_routes.php', function (ConfigCacheInterface $cache) { @@ -376,7 +374,7 @@ private function getConfigCacheFactory(): ConfigCacheFactoryInterface private static function getCompiledRoutes(string $path): array { - if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN))) { + if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(\ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN))) { self::$cache = null; } diff --git a/api/vendor/symfony/routing/composer.json b/api/vendor/symfony/routing/composer.json index b978c0626..c32219e63 100644 --- a/api/vendor/symfony/routing/composer.json +++ b/api/vendor/symfony/routing/composer.json @@ -2,7 +2,7 @@ "name": "symfony/routing", "type": "library", "description": "Maps an HTTP request to a set of configuration variables", - "keywords": ["routing", "router", "URL", "URI"], + "keywords": ["routing", "router", "url", "uri"], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -26,7 +26,7 @@ "symfony/yaml": "^4.4|^5.0|^6.0", "symfony/expression-language": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "doctrine/annotations": "^1.12", + "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3" }, "conflict": { diff --git a/api/vendor/symfony/service-contracts/LICENSE b/api/vendor/symfony/service-contracts/LICENSE index 235841453..7536caeae 100644 --- a/api/vendor/symfony/service-contracts/LICENSE +++ b/api/vendor/symfony/service-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2021 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/api/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 46cd007b7..6c560a427 100644 --- a/api/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/api/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -30,13 +30,7 @@ trait ServiceSubscriberTrait */ public static function getSubscribedServices(): array { - static $services; - - if (null !== $services) { - return $services; - } - - $services = \is_callable(['parent', __FUNCTION__]) ? parent::getSubscribedServices() : []; + $services = method_exists(get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : []; $attributeOptIn = false; if (\PHP_VERSION_ID >= 80000) { @@ -104,12 +98,13 @@ public static function getSubscribedServices(): array */ public function setContainer(ContainerInterface $container) { - $this->container = $container; - - if (\is_callable(['parent', __FUNCTION__])) { - return parent::setContainer($container); + $ret = null; + if (method_exists(get_parent_class(self::class) ?: '', __FUNCTION__)) { + $ret = parent::setContainer($container); } - return null; + $this->container = $container; + + return $ret; } } diff --git a/api/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php b/api/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php index 2a1b565f5..07d12b4a5 100644 --- a/api/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php +++ b/api/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php @@ -11,85 +11,13 @@ namespace Symfony\Contracts\Service\Test; -use PHPUnit\Framework\TestCase; -use Psr\Container\ContainerInterface; -use Symfony\Contracts\Service\ServiceLocatorTrait; +class_alias(ServiceLocatorTestCase::class, ServiceLocatorTest::class); -abstract class ServiceLocatorTest extends TestCase -{ +if (false) { /** - * @return ContainerInterface + * @deprecated since PHPUnit 9.6 */ - protected function getServiceLocator(array $factories) + class ServiceLocatorTest { - return new class($factories) implements ContainerInterface { - use ServiceLocatorTrait; - }; - } - - public function testHas() - { - $locator = $this->getServiceLocator([ - 'foo' => function () { return 'bar'; }, - 'bar' => function () { return 'baz'; }, - function () { return 'dummy'; }, - ]); - - $this->assertTrue($locator->has('foo')); - $this->assertTrue($locator->has('bar')); - $this->assertFalse($locator->has('dummy')); - } - - public function testGet() - { - $locator = $this->getServiceLocator([ - 'foo' => function () { return 'bar'; }, - 'bar' => function () { return 'baz'; }, - ]); - - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame('baz', $locator->get('bar')); - } - - public function testGetDoesNotMemoize() - { - $i = 0; - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$i) { - ++$i; - - return 'bar'; - }, - ]); - - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame('bar', $locator->get('foo')); - $this->assertSame(2, $i); - } - - public function testThrowsOnUndefinedInternalService() - { - if (!$this->getExpectedException()) { - $this->expectException(\Psr\Container\NotFoundExceptionInterface::class); - $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.'); - } - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$locator) { return $locator->get('bar'); }, - ]); - - $locator->get('foo'); - } - - public function testThrowsOnCircularReference() - { - $this->expectException(\Psr\Container\ContainerExceptionInterface::class); - $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".'); - $locator = $this->getServiceLocator([ - 'foo' => function () use (&$locator) { return $locator->get('bar'); }, - 'bar' => function () use (&$locator) { return $locator->get('baz'); }, - 'baz' => function () use (&$locator) { return $locator->get('bar'); }, - ]); - - $locator->get('foo'); } } diff --git a/api/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php b/api/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php new file mode 100644 index 000000000..8696db7bf --- /dev/null +++ b/api/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Service\Test; + +use PHPUnit\Framework\TestCase; +use Psr\Container\ContainerInterface; +use Symfony\Contracts\Service\ServiceLocatorTrait; + +abstract class ServiceLocatorTestCase extends TestCase +{ + /** + * @return ContainerInterface + */ + protected function getServiceLocator(array $factories) + { + return new class($factories) implements ContainerInterface { + use ServiceLocatorTrait; + }; + } + + public function testHas() + { + $locator = $this->getServiceLocator([ + 'foo' => function () { return 'bar'; }, + 'bar' => function () { return 'baz'; }, + function () { return 'dummy'; }, + ]); + + $this->assertTrue($locator->has('foo')); + $this->assertTrue($locator->has('bar')); + $this->assertFalse($locator->has('dummy')); + } + + public function testGet() + { + $locator = $this->getServiceLocator([ + 'foo' => function () { return 'bar'; }, + 'bar' => function () { return 'baz'; }, + ]); + + $this->assertSame('bar', $locator->get('foo')); + $this->assertSame('baz', $locator->get('bar')); + } + + public function testGetDoesNotMemoize() + { + $i = 0; + $locator = $this->getServiceLocator([ + 'foo' => function () use (&$i) { + ++$i; + + return 'bar'; + }, + ]); + + $this->assertSame('bar', $locator->get('foo')); + $this->assertSame('bar', $locator->get('foo')); + $this->assertSame(2, $i); + } + + public function testThrowsOnUndefinedInternalService() + { + if (!$this->getExpectedException()) { + $this->expectException(\Psr\Container\NotFoundExceptionInterface::class); + $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.'); + } + $locator = $this->getServiceLocator([ + 'foo' => function () use (&$locator) { return $locator->get('bar'); }, + ]); + + $locator->get('foo'); + } + + public function testThrowsOnCircularReference() + { + $this->expectException(\Psr\Container\ContainerExceptionInterface::class); + $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".'); + $locator = $this->getServiceLocator([ + 'foo' => function () use (&$locator) { return $locator->get('bar'); }, + 'bar' => function () use (&$locator) { return $locator->get('baz'); }, + 'baz' => function () use (&$locator) { return $locator->get('bar'); }, + ]); + + $locator->get('foo'); + } +} diff --git a/api/vendor/symfony/service-contracts/composer.json b/api/vendor/symfony/service-contracts/composer.json index e680798d7..f05863701 100644 --- a/api/vendor/symfony/service-contracts/composer.json +++ b/api/vendor/symfony/service-contracts/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=7.2.5", "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1" + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { "ext-psr": "<1.1|>=2" diff --git a/api/vendor/symfony/string/AbstractString.php b/api/vendor/symfony/string/AbstractString.php index cf21fef1f..d3240ca4d 100644 --- a/api/vendor/symfony/string/AbstractString.php +++ b/api/vendor/symfony/string/AbstractString.php @@ -245,7 +245,7 @@ abstract public function chunk(int $length = 1): array; public function collapseWhitespace(): self { $str = clone $this; - $str->string = trim(preg_replace('/(?:\s{2,}+|[^\S ])/', ' ', $str->string)); + $str->string = trim(preg_replace("/(?:[ \n\r\t\x0C]{2,}+|[\n\r\t\x0C])/", ' ', $str->string), " \n\r\t\x0C"); return $str; } @@ -399,7 +399,7 @@ public function isEmpty(): bool /** * @return static */ - abstract public function join(array $strings, string $lastGlue = null): self; + abstract public function join(array $strings, ?string $lastGlue = null): self; public function jsonSerialize(): string { @@ -477,7 +477,7 @@ abstract public function reverse(): self; /** * @return static */ - abstract public function slice(int $start = 0, int $length = null): self; + abstract public function slice(int $start = 0, ?int $length = null): self; /** * @return static @@ -487,12 +487,12 @@ abstract public function snake(): self; /** * @return static */ - abstract public function splice(string $replacement, int $start = 0, int $length = null): self; + abstract public function splice(string $replacement, int $start = 0, ?int $length = null): self; /** * @return static[] */ - public function split(string $delimiter, int $limit = null, int $flags = null): array + public function split(string $delimiter, ?int $limit = null, ?int $flags = null): array { if (null === $flags) { throw new \TypeError('Split behavior when $flags is null must be implemented by child classes.'); @@ -560,7 +560,7 @@ public function startsWith($prefix): bool */ abstract public function title(bool $allWords = false): self; - public function toByteString(string $toEncoding = null): ByteString + public function toByteString(?string $toEncoding = null): ByteString { $b = new ByteString(); @@ -577,8 +577,11 @@ public function toByteString(string $toEncoding = null): ByteString try { try { $b->string = mb_convert_encoding($this->string, $toEncoding, 'UTF-8'); - } catch (InvalidArgumentException $e) { + } catch (InvalidArgumentException|\ValueError $e) { if (!\function_exists('iconv')) { + if ($e instanceof \ValueError) { + throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e); + } throw $e; } diff --git a/api/vendor/symfony/string/AbstractUnicodeString.php b/api/vendor/symfony/string/AbstractUnicodeString.php index db810cb6d..0f840f19d 100644 --- a/api/vendor/symfony/string/AbstractUnicodeString.php +++ b/api/vendor/symfony/string/AbstractUnicodeString.php @@ -37,8 +37,8 @@ abstract class AbstractUnicodeString extends AbstractString private const ASCII = "\x20\x65\x69\x61\x73\x6E\x74\x72\x6F\x6C\x75\x64\x5D\x5B\x63\x6D\x70\x27\x0A\x67\x7C\x68\x76\x2E\x66\x62\x2C\x3A\x3D\x2D\x71\x31\x30\x43\x32\x2A\x79\x78\x29\x28\x4C\x39\x41\x53\x2F\x50\x22\x45\x6A\x4D\x49\x6B\x33\x3E\x35\x54\x3C\x44\x34\x7D\x42\x7B\x38\x46\x77\x52\x36\x37\x55\x47\x4E\x3B\x4A\x7A\x56\x23\x48\x4F\x57\x5F\x26\x21\x4B\x3F\x58\x51\x25\x59\x5C\x09\x5A\x2B\x7E\x5E\x24\x40\x60\x7F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"; // the subset of folded case mappings that is not in lower case mappings - private const FOLD_FROM = ['İ', 'µ', 'ſ', "\xCD\x85", 'ς', 'ϐ', 'ϑ', 'ϕ', 'ϖ', 'ϰ', 'ϱ', 'ϵ', 'ẛ', "\xE1\xBE\xBE", 'ß', 'İ', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'և', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'ẚ', 'ẞ', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ᾀ', 'ᾁ', 'ᾂ', 'ᾃ', 'ᾄ', 'ᾅ', 'ᾆ', 'ᾇ', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'ᾍ', 'ᾎ', 'ᾏ', 'ᾐ', 'ᾑ', 'ᾒ', 'ᾓ', 'ᾔ', 'ᾕ', 'ᾖ', 'ᾗ', 'ᾘ', 'ᾙ', 'ᾚ', 'ᾛ', 'ᾜ', 'ᾝ', 'ᾞ', 'ᾟ', 'ᾠ', 'ᾡ', 'ᾢ', 'ᾣ', 'ᾤ', 'ᾥ', 'ᾦ', 'ᾧ', 'ᾨ', 'ᾩ', 'ᾪ', 'ᾫ', 'ᾬ', 'ᾭ', 'ᾮ', 'ᾯ', 'ᾲ', 'ᾳ', 'ᾴ', 'ᾶ', 'ᾷ', 'ᾼ', 'ῂ', 'ῃ', 'ῄ', 'ῆ', 'ῇ', 'ῌ', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'ῢ', 'ΰ', 'ῤ', 'ῦ', 'ῧ', 'ῲ', 'ῳ', 'ῴ', 'ῶ', 'ῷ', 'ῼ', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'ſt', 'st', 'ﬓ', 'ﬔ', 'ﬕ', 'ﬖ', 'ﬗ']; - private const FOLD_TO = ['i̇', 'μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', 'ṡ', 'ι', 'ss', 'i̇', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'եւ', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'aʾ', 'ss', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὰι', 'αι', 'άι', 'ᾶ', 'ᾶι', 'αι', 'ὴι', 'ηι', 'ήι', 'ῆ', 'ῆι', 'ηι', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'ῢ', 'ΰ', 'ῤ', 'ῦ', 'ῧ', 'ὼι', 'ωι', 'ώι', 'ῶ', 'ῶι', 'ωι', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'st', 'st', 'մն', 'մե', 'մի', 'վն', 'մխ']; + private const FOLD_FROM = ['İ', 'µ', 'ſ', "\xCD\x85", 'ς', 'ϐ', 'ϑ', 'ϕ', 'ϖ', 'ϰ', 'ϱ', 'ϵ', 'ẛ', "\xE1\xBE\xBE", 'ß', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'և', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'ẚ', 'ẞ', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ᾀ', 'ᾁ', 'ᾂ', 'ᾃ', 'ᾄ', 'ᾅ', 'ᾆ', 'ᾇ', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'ᾍ', 'ᾎ', 'ᾏ', 'ᾐ', 'ᾑ', 'ᾒ', 'ᾓ', 'ᾔ', 'ᾕ', 'ᾖ', 'ᾗ', 'ᾘ', 'ᾙ', 'ᾚ', 'ᾛ', 'ᾜ', 'ᾝ', 'ᾞ', 'ᾟ', 'ᾠ', 'ᾡ', 'ᾢ', 'ᾣ', 'ᾤ', 'ᾥ', 'ᾦ', 'ᾧ', 'ᾨ', 'ᾩ', 'ᾪ', 'ᾫ', 'ᾬ', 'ᾭ', 'ᾮ', 'ᾯ', 'ᾲ', 'ᾳ', 'ᾴ', 'ᾶ', 'ᾷ', 'ᾼ', 'ῂ', 'ῃ', 'ῄ', 'ῆ', 'ῇ', 'ῌ', 'ῒ', 'ῖ', 'ῗ', 'ῢ', 'ῤ', 'ῦ', 'ῧ', 'ῲ', 'ῳ', 'ῴ', 'ῶ', 'ῷ', 'ῼ', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'ſt', 'st', 'ﬓ', 'ﬔ', 'ﬕ', 'ﬖ', 'ﬗ']; + private const FOLD_TO = ['i̇', 'μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', 'ṡ', 'ι', 'ss', 'ʼn', 'ǰ', 'ΐ', 'ΰ', 'եւ', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'aʾ', 'ss', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἀι', 'ἁι', 'ἂι', 'ἃι', 'ἄι', 'ἅι', 'ἆι', 'ἇι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ἠι', 'ἡι', 'ἢι', 'ἣι', 'ἤι', 'ἥι', 'ἦι', 'ἧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὠι', 'ὡι', 'ὢι', 'ὣι', 'ὤι', 'ὥι', 'ὦι', 'ὧι', 'ὰι', 'αι', 'άι', 'ᾶ', 'ᾶι', 'αι', 'ὴι', 'ηι', 'ήι', 'ῆ', 'ῆι', 'ηι', 'ῒ', 'ῖ', 'ῗ', 'ῢ', 'ῤ', 'ῦ', 'ῧ', 'ὼι', 'ωι', 'ώι', 'ῶ', 'ῶι', 'ωι', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'st', 'st', 'մն', 'մե', 'մի', 'վն', 'մխ']; // the subset of upper case mappings that map one code point to many code points private const UPPER_FROM = ['ß', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'ſt', 'st', 'և', 'ﬓ', 'ﬔ', 'ﬕ', 'ﬖ', 'ﬗ', 'ʼn', 'ΐ', 'ΰ', 'ǰ', 'ẖ', 'ẗ', 'ẘ', 'ẙ', 'ẚ', 'ὐ', 'ὒ', 'ὔ', 'ὖ', 'ᾶ', 'ῆ', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'ῢ', 'ΰ', 'ῤ', 'ῦ', 'ῧ', 'ῶ']; @@ -162,7 +162,7 @@ public function ascii(array $rules = []): self public function camel(): parent { $str = clone $this; - $str->string = str_replace(' ', '', preg_replace_callback('/\b./u', static function ($m) use (&$i) { + $str->string = str_replace(' ', '', preg_replace_callback('/\b.(?![A-Z]{2,})/u', static function ($m) use (&$i) { return 1 === ++$i ? ('İ' === $m[0] ? 'i̇' : mb_strtolower($m[0], 'UTF-8')) : mb_convert_case($m[0], \MB_CASE_TITLE, 'UTF-8'); }, preg_replace('/[^\pL0-9]++/u', ' ', $this->string))); @@ -195,7 +195,7 @@ public function folded(bool $compat = true): parent if (!$compat || \PHP_VERSION_ID < 70300 || !\defined('Normalizer::NFKC_CF')) { $str->string = normalizer_normalize($str->string, $compat ? \Normalizer::NFKC : \Normalizer::NFC); - $str->string = mb_strtolower(str_replace(self::FOLD_FROM, self::FOLD_TO, $this->string), 'UTF-8'); + $str->string = mb_strtolower(str_replace(self::FOLD_FROM, self::FOLD_TO, $str->string), 'UTF-8'); } else { $str->string = normalizer_normalize($str->string, \Normalizer::NFKC_CF); } @@ -203,7 +203,7 @@ public function folded(bool $compat = true): parent return $str; } - public function join(array $strings, string $lastGlue = null): parent + public function join(array $strings, ?string $lastGlue = null): parent { $str = clone $this; @@ -366,8 +366,8 @@ public function reverse(): parent public function snake(): parent { - $str = $this->camel()->title(); - $str->string = mb_strtolower(preg_replace(['/(\p{Lu}+)(\p{Lu}\p{Ll})/u', '/([\p{Ll}0-9])(\p{Lu})/u'], '\1_\2', $str->string), 'UTF-8'); + $str = clone $this; + $str->string = str_replace(' ', '_', mb_strtolower(preg_replace(['/(\p{Lu}+)(\p{Lu}\p{Ll})/u', '/([\p{Ll}0-9])(\p{Lu})/u'], '\1 \2', $str->string), 'UTF-8')); return $str; } @@ -492,14 +492,17 @@ public function width(bool $ignoreAnsiDecoration = true): int foreach (explode("\n", $s) as $s) { if ($ignoreAnsiDecoration) { $s = preg_replace('/(?:\x1B(?: - \[ [\x30-\x3F]*+ [\x20-\x2F]*+ [0x40-\x7E] + \[ [\x30-\x3F]*+ [\x20-\x2F]*+ [\x40-\x7E] | [P\]X^_] .*? \x1B\\\\ | [\x41-\x7E] )|[\p{Cc}\x7F]++)/xu', '', $s); } - // Non printable characters have been dropped, so wcswidth cannot logically return -1. - $width += $this->wcswidth($s); + $lineWidth = $this->wcswidth($s); + + if ($lineWidth > $width) { + $width = $lineWidth; + } } return $width; diff --git a/api/vendor/symfony/string/ByteString.php b/api/vendor/symfony/string/ByteString.php index bbf8614cf..86887d790 100644 --- a/api/vendor/symfony/string/ByteString.php +++ b/api/vendor/symfony/string/ByteString.php @@ -42,7 +42,7 @@ public function __construct(string $string = '') * Copyright (c) 2004-2020, Facebook, Inc. (https://www.facebook.com/) */ - public static function fromRandom(int $length = 16, string $alphabet = null): self + public static function fromRandom(int $length = 16, ?string $alphabet = null): self { if ($length <= 0) { throw new InvalidArgumentException(sprintf('A strictly positive length is expected, "%d" given.', $length)); @@ -103,7 +103,10 @@ public function append(string ...$suffix): parent public function camel(): parent { $str = clone $this; - $str->string = lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $this->string)))); + + $parts = explode(' ', trim(ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $this->string)))); + $parts[0] = 1 !== \strlen($parts[0]) && ctype_upper($parts[0]) ? $parts[0] : lcfirst($parts[0]); + $str->string = implode('', $parts); return $str; } @@ -210,7 +213,7 @@ public function isUtf8(): bool return '' === $this->string || preg_match('//u', $this->string); } - public function join(array $strings, string $lastGlue = null): parent + public function join(array $strings, ?string $lastGlue = null): parent { $str = clone $this; @@ -353,7 +356,7 @@ public function reverse(): parent return $str; } - public function slice(int $start = 0, int $length = null): parent + public function slice(int $start = 0, ?int $length = null): parent { $str = clone $this; $str->string = (string) substr($this->string, $start, $length ?? \PHP_INT_MAX); @@ -363,13 +366,13 @@ public function slice(int $start = 0, int $length = null): parent public function snake(): parent { - $str = $this->camel()->title(); - $str->string = strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1_\2', $str->string)); + $str = clone $this; + $str->string = str_replace(' ', '_', strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1 \2', $str->string))); return $str; } - public function splice(string $replacement, int $start = 0, int $length = null): parent + public function splice(string $replacement, int $start = 0, ?int $length = null): parent { $str = clone $this; $str->string = substr_replace($this->string, $replacement, $start, $length ?? \PHP_INT_MAX); @@ -377,7 +380,7 @@ public function splice(string $replacement, int $start = 0, int $length = null): return $str; } - public function split(string $delimiter, int $limit = null, int $flags = null): array + public function split(string $delimiter, ?int $limit = null, ?int $flags = null): array { if (1 > $limit = $limit ?? \PHP_INT_MAX) { throw new InvalidArgumentException('Split limit must be a positive integer.'); @@ -423,12 +426,12 @@ public function title(bool $allWords = false): parent return $str; } - public function toUnicodeString(string $fromEncoding = null): UnicodeString + public function toUnicodeString(?string $fromEncoding = null): UnicodeString { return new UnicodeString($this->toCodePointString($fromEncoding)->string); } - public function toCodePointString(string $fromEncoding = null): CodePointString + public function toCodePointString(?string $fromEncoding = null): CodePointString { $u = new CodePointString(); diff --git a/api/vendor/symfony/string/CodePointString.php b/api/vendor/symfony/string/CodePointString.php index 8ab920941..55c2aefeb 100644 --- a/api/vendor/symfony/string/CodePointString.php +++ b/api/vendor/symfony/string/CodePointString.php @@ -194,7 +194,7 @@ public function replace(string $from, string $to): AbstractString return $str; } - public function slice(int $start = 0, int $length = null): AbstractString + public function slice(int $start = 0, ?int $length = null): AbstractString { $str = clone $this; $str->string = mb_substr($this->string, $start, $length, 'UTF-8'); @@ -202,7 +202,7 @@ public function slice(int $start = 0, int $length = null): AbstractString return $str; } - public function splice(string $replacement, int $start = 0, int $length = null): AbstractString + public function splice(string $replacement, int $start = 0, ?int $length = null): AbstractString { if (!preg_match('//u', $replacement)) { throw new InvalidArgumentException('Invalid UTF-8 string.'); @@ -216,7 +216,7 @@ public function splice(string $replacement, int $start = 0, int $length = null): return $str; } - public function split(string $delimiter, int $limit = null, int $flags = null): array + public function split(string $delimiter, ?int $limit = null, ?int $flags = null): array { if (1 > $limit = $limit ?? \PHP_INT_MAX) { throw new InvalidArgumentException('Split limit must be a positive integer.'); diff --git a/api/vendor/symfony/string/Inflector/EnglishInflector.php b/api/vendor/symfony/string/Inflector/EnglishInflector.php index 9f2fac675..77ebc134a 100644 --- a/api/vendor/symfony/string/Inflector/EnglishInflector.php +++ b/api/vendor/symfony/string/Inflector/EnglishInflector.php @@ -21,12 +21,36 @@ final class EnglishInflector implements InflectorInterface private const PLURAL_MAP = [ // First entry: plural suffix, reversed // Second entry: length of plural suffix - // Third entry: Whether the suffix may succeed a vocal + // Third entry: Whether the suffix may succeed a vowel // Fourth entry: Whether the suffix may succeed a consonant // Fifth entry: singular suffix, normal - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['a', 1, true, true, ['on', 'um']], + // bacteria (bacterium) + ['airetcab', 8, true, true, 'bacterium'], + + // corpora (corpus) + ['aroproc', 7, true, true, 'corpus'], + + // criteria (criterion) + ['airetirc', 8, true, true, 'criterion'], + + // curricula (curriculum) + ['alucirruc', 9, true, true, 'curriculum'], + + // genera (genus) + ['areneg', 6, true, true, 'genus'], + + // media (medium) + ['aidem', 5, true, true, 'medium'], + + // memoranda (memorandum) + ['adnaromem', 9, true, true, 'memorandum'], + + // phenomena (phenomenon) + ['anemonehp', 9, true, true, 'phenomenon'], + + // strata (stratum) + ['atarts', 6, true, true, 'stratum'], // nebulae (nebula) ['ea', 2, true, true, 'a'], @@ -55,6 +79,9 @@ final class EnglishInflector implements InflectorInterface // indices (index), appendices (appendix), prices (price) ['seci', 4, false, true, ['ex', 'ix', 'ice']], + // codes (code) + ['sedoc', 5, false, true, 'code'], + // selfies (selfie) ['seifles', 7, true, true, 'selfie'], @@ -64,6 +91,9 @@ final class EnglishInflector implements InflectorInterface // movies (movie) ['seivom', 6, true, true, 'movie'], + // names (name) + ['seman', 5, true, false, 'name'], + // conspectuses (conspectus), prospectuses (prospectus) ['sesutcep', 8, true, true, 'pectus'], @@ -88,6 +118,9 @@ final class EnglishInflector implements InflectorInterface // accesses (access), addresses (address), kisses (kiss) ['sess', 4, true, false, 'ss'], + // statuses (status) + ['sesutats', 8, true, true, 'status'], + // analyses (analysis), ellipses (ellipsis), fungi (fungus), // neuroses (neurosis), theses (thesis), emphases (emphasis), // oases (oasis), crises (crisis), houses (house), bases (base), @@ -132,6 +165,9 @@ final class EnglishInflector implements InflectorInterface // shoes (shoe) ['se', 2, true, true, ['', 'e']], + // status (status) + ['sutats', 6, true, true, 'status'], + // tags (tag) ['s', 1, true, true, ''], @@ -150,10 +186,13 @@ final class EnglishInflector implements InflectorInterface private const SINGULAR_MAP = [ // First entry: singular suffix, reversed // Second entry: length of singular suffix - // Third entry: Whether the suffix may succeed a vocal + // Third entry: Whether the suffix may succeed a vowel // Fourth entry: Whether the suffix may succeed a consonant // Fifth entry: plural suffix, normal + // axes (axis) + ['sixa', 4, false, false, 'axes'], + // criterion (criteria) ['airetirc', 8, false, false, 'criterion'], @@ -223,7 +262,10 @@ final class EnglishInflector implements InflectorInterface // teeth (tooth) ['htoot', 5, true, true, 'teeth'], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) + // albums (album) + ['mubla', 5, true, true, 'albums'], + + // bacteria (bacterium), curricula (curriculum), media (medium), memoranda (memorandum), phenomena (phenomenon), strata (stratum) ['mu', 2, true, true, 'a'], // men (man), women (woman) @@ -232,17 +274,11 @@ final class EnglishInflector implements InflectorInterface // people (person) ['nosrep', 6, true, true, ['persons', 'people']], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['noi', 3, true, true, 'ions'], - - // coupon (coupons) - ['nop', 3, true, true, 'pons'], - - // seasons (season), treasons (treason), poisons (poison), lessons (lesson) - ['nos', 3, true, true, 'sons'], + // criteria (criterion) + ['noiretirc', 9, true, true, 'criteria'], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['no', 2, true, true, 'a'], + // phenomena (phenomenon) + ['nonemonehp', 10, true, true, 'phenomena'], // echoes (echo) ['ohce', 4, true, true, 'echoes'], @@ -253,6 +289,9 @@ final class EnglishInflector implements InflectorInterface // atlases (atlas) ['salta', 5, true, true, 'atlases'], + // aliases (alias) + ['saila', 5, true, true, 'aliases'], + // irises (iris) ['siri', 4, true, true, 'irises'], @@ -273,6 +312,15 @@ final class EnglishInflector implements InflectorInterface // circuses (circus) ['suc', 3, true, true, 'cuses'], + // hippocampi (hippocampus) + ['supmacoppih', 11, false, false, 'hippocampi'], + + // campuses (campus) + ['sup', 3, true, true, 'puses'], + + // status (status) + ['sutats', 6, true, true, ['status', 'statuses']], + // conspectuses (conspectus), prospectuses (prospectus) ['sutcep', 6, true, true, 'pectuses'], @@ -328,15 +376,30 @@ final class EnglishInflector implements InflectorInterface // deer 'reed', + // equipment + 'tnempiuqe', + // feedback 'kcabdeef', // fish 'hsif', + // health + 'htlaeh', + + // history + 'yrotsih', + // info 'ofni', + // information + 'noitamrofni', + + // money + 'yenom', + // moose 'esoom', @@ -348,11 +411,17 @@ final class EnglishInflector implements InflectorInterface // species 'seiceps', + + // traffic + 'ciffart', + + // aircraft + 'tfarcria', + + // hardware + 'erawdrah', ]; - /** - * {@inheritdoc} - */ public function singularize(string $plural): array { $pluralRev = strrev($plural); @@ -384,14 +453,14 @@ public function singularize(string $plural): array if ($j === $suffixLength) { // Is there any character preceding the suffix in the plural string? if ($j < $pluralLength) { - $nextIsVocal = false !== strpos('aeiou', $lowerPluralRev[$j]); + $nextIsVowel = str_contains('aeiou', $lowerPluralRev[$j]); - if (!$map[2] && $nextIsVocal) { - // suffix may not succeed a vocal but next char is one + if (!$map[2] && $nextIsVowel) { + // suffix may not succeed a vowel but next char is one break; } - if (!$map[3] && !$nextIsVocal) { + if (!$map[3] && !$nextIsVowel) { // suffix may not succeed a consonant but next char is one break; } @@ -429,9 +498,6 @@ public function singularize(string $plural): array return [$plural]; } - /** - * {@inheritdoc} - */ public function pluralize(string $singular): array { $singularRev = strrev($singular); @@ -464,14 +530,14 @@ public function pluralize(string $singular): array if ($j === $suffixLength) { // Is there any character preceding the suffix in the plural string? if ($j < $singularLength) { - $nextIsVocal = false !== strpos('aeiou', $lowerSingularRev[$j]); + $nextIsVowel = str_contains('aeiou', $lowerSingularRev[$j]); - if (!$map[2] && $nextIsVocal) { - // suffix may not succeed a vocal but next char is one + if (!$map[2] && $nextIsVowel) { + // suffix may not succeed a vowel but next char is one break; } - if (!$map[3] && !$nextIsVocal) { + if (!$map[3] && !$nextIsVowel) { // suffix may not succeed a consonant but next char is one break; } diff --git a/api/vendor/symfony/string/Inflector/FrenchInflector.php b/api/vendor/symfony/string/Inflector/FrenchInflector.php index 42f6125aa..612c8f2e0 100644 --- a/api/vendor/symfony/string/Inflector/FrenchInflector.php +++ b/api/vendor/symfony/string/Inflector/FrenchInflector.php @@ -100,7 +100,7 @@ final class FrenchInflector implements InflectorInterface ['/^mes(sieur|seigneur)s$/', 'mon\1'], ['/^Mes(sieur|seigneur)s$/', 'Mon\1'], - //Default rule + // Default rule ['/s$/i', ''], ]; @@ -108,7 +108,7 @@ final class FrenchInflector implements InflectorInterface * A list of words which should not be inflected. * This list is only used by singularize. */ - private const UNINFLECTED = '/^(abcès|accès|abus|albatros|anchois|anglais|autobus|bois|brebis|carquois|cas|chas|colis|concours|corps|cours|cyprès|décès|devis|discours|dos|embarras|engrais|entrelacs|excès|fils|fois|gâchis|gars|glas|héros|intrus|jars|jus|kermès|lacis|legs|lilas|marais|mars|matelas|mépris|mets|mois|mors|obus|os|palais|paradis|parcours|pardessus|pays|plusieurs|poids|pois|pouls|printemps|processus|progrès|puits|pus|rabais|radis|recors|recours|refus|relais|remords|remous|rictus|rhinocéros|repas|rubis|sas|secours|sens|souris|succès|talus|tapis|tas|taudis|temps|tiers|univers|velours|verglas|vernis|virus)$/i'; + private const UNINFLECTED = '/^(abcès|accès|abus|albatros|anchois|anglais|autobus|bois|brebis|carquois|cas|chas|colis|concours|corps|cours|cyprès|décès|devis|discours|dos|embarras|engrais|entrelacs|excès|fils|fois|gâchis|gars|glas|héros|intrus|jars|jus|kermès|lacis|legs|lilas|marais|mars|matelas|mépris|mets|mois|mors|obus|os|palais|paradis|parcours|pardessus|pays|plusieurs|poids|pois|pouls|printemps|processus|progrès|puits|pus|rabais|radis|recors|recours|refus|relais|remords|remous|rictus|rhinocéros|repas|rubis|sans|sas|secours|sens|souris|succès|talus|tapis|tas|taudis|temps|tiers|univers|velours|verglas|vernis|virus)$/i'; /** * {@inheritdoc} diff --git a/api/vendor/symfony/string/LICENSE b/api/vendor/symfony/string/LICENSE index 383e7a545..f37c76b59 100644 --- a/api/vendor/symfony/string/LICENSE +++ b/api/vendor/symfony/string/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2019-2021 Fabien Potencier +Copyright (c) 2019-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/string/LazyString.php b/api/vendor/symfony/string/LazyString.php index b3801db77..5f7e7370d 100644 --- a/api/vendor/symfony/string/LazyString.php +++ b/api/vendor/symfony/string/LazyString.php @@ -75,7 +75,7 @@ public static function fromStringable($value): self */ final public static function isStringable($value): bool { - return \is_string($value) || $value instanceof self || (\is_object($value) ? method_exists($value, '__toString') : is_scalar($value)); + return \is_string($value) || $value instanceof self || (\is_object($value) ? method_exists($value, '__toString') : \is_scalar($value)); } /** @@ -148,7 +148,7 @@ private static function getPrettyName(callable $callback): string } elseif ($callback instanceof \Closure) { $r = new \ReflectionFunction($callback); - if (false !== strpos($r->name, '{closure}') || !$class = $r->getClosureScopeClass()) { + if (str_contains($r->name, '{closure') || !$class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) { return $r->name; } diff --git a/api/vendor/symfony/string/Resources/data/wcswidth_table_wide.php b/api/vendor/symfony/string/Resources/data/wcswidth_table_wide.php index 43c802d05..8314c8fd5 100644 --- a/api/vendor/symfony/string/Resources/data/wcswidth_table_wide.php +++ b/api/vendor/symfony/string/Resources/data/wcswidth_table_wide.php @@ -3,8 +3,8 @@ /* * This file has been auto-generated by the Symfony String Component for internal use. * - * Unicode version: 14.0.0 - * Date: 2021-09-17T09:20:30+02:00 + * Unicode version: 15.1.0 + * Date: 2023-09-13T11:47:12+00:00 */ return [ @@ -166,7 +166,7 @@ ], [ 12272, - 12283, + 12287, ], [ 12288, @@ -396,6 +396,10 @@ 12736, 12771, ], + [ + 12783, + 12783, + ], [ 12784, 12799, @@ -856,10 +860,18 @@ 110848, 110882, ], + [ + 110898, + 110898, + ], [ 110928, 110930, ], + [ + 110933, + 110933, + ], [ 110948, 110951, @@ -1005,7 +1017,7 @@ 128727, ], [ - 128733, + 128732, 128735, ], [ @@ -1038,39 +1050,31 @@ ], [ 129648, - 129652, - ], - [ - 129656, 129660, ], [ 129664, - 129670, + 129672, ], [ 129680, - 129708, - ], - [ - 129712, - 129722, + 129725, ], [ - 129728, + 129727, 129733, ], [ - 129744, - 129753, + 129742, + 129755, ], [ 129760, - 129767, + 129768, ], [ 129776, - 129782, + 129784, ], [ 131072, @@ -1082,10 +1086,10 @@ ], [ 173824, - 177976, + 177977, ], [ - 177977, + 177978, 177983, ], [ @@ -1110,6 +1114,14 @@ ], [ 191457, + 191471, + ], + [ + 191472, + 192093, + ], + [ + 192094, 194559, ], [ @@ -1130,6 +1142,14 @@ ], [ 201547, + 201551, + ], + [ + 201552, + 205743, + ], + [ + 205744, 262141, ], ]; diff --git a/api/vendor/symfony/string/Resources/data/wcswidth_table_zero.php b/api/vendor/symfony/string/Resources/data/wcswidth_table_zero.php index 63b082473..e5b26a215 100644 --- a/api/vendor/symfony/string/Resources/data/wcswidth_table_zero.php +++ b/api/vendor/symfony/string/Resources/data/wcswidth_table_zero.php @@ -3,8 +3,8 @@ /* * This file has been auto-generated by the Symfony String Component for internal use. * - * Unicode version: 14.0.0 - * Date: 2021-09-17T09:20:30+02:00 + * Unicode version: 15.1.0 + * Date: 2023-09-13T11:47:13+00:00 */ return [ @@ -382,7 +382,7 @@ ], [ 3784, - 3789, + 3790, ], [ 3864, @@ -920,6 +920,10 @@ 69291, 69292, ], + [ + 69373, + 69375, + ], [ 69446, 69456, @@ -1008,6 +1012,10 @@ 70206, 70206, ], + [ + 70209, + 70209, + ], [ 70367, 70367, @@ -1252,6 +1260,30 @@ 73459, 73460, ], + [ + 73472, + 73473, + ], + [ + 73526, + 73530, + ], + [ + 73536, + 73536, + ], + [ + 73538, + 73538, + ], + [ + 78912, + 78912, + ], + [ + 78919, + 78933, + ], [ 92912, 92916, @@ -1348,6 +1380,10 @@ 122918, 122922, ], + [ + 123023, + 123023, + ], [ 123184, 123190, @@ -1360,6 +1396,10 @@ 123628, 123631, ], + [ + 124140, + 124143, + ], [ 125136, 125142, diff --git a/api/vendor/symfony/string/Slugger/AsciiSlugger.php b/api/vendor/symfony/string/Slugger/AsciiSlugger.php index 5aecfeb5f..5eb7fc125 100644 --- a/api/vendor/symfony/string/Slugger/AsciiSlugger.php +++ b/api/vendor/symfony/string/Slugger/AsciiSlugger.php @@ -69,7 +69,7 @@ class AsciiSlugger implements SluggerInterface, LocaleAwareInterface /** * @param array|\Closure|null $symbolsMap */ - public function __construct(string $defaultLocale = null, $symbolsMap = null) + public function __construct(?string $defaultLocale = null, $symbolsMap = null) { if (null !== $symbolsMap && !\is_array($symbolsMap) && !$symbolsMap instanceof \Closure) { throw new \TypeError(sprintf('Argument 2 passed to "%s()" must be array, Closure or null, "%s" given.', __METHOD__, \gettype($symbolsMap))); @@ -98,7 +98,7 @@ public function getLocale() /** * {@inheritdoc} */ - public function slug(string $string, string $separator = '-', string $locale = null): AbstractUnicodeString + public function slug(string $string, string $separator = '-', ?string $locale = null): AbstractUnicodeString { $locale = $locale ?? $this->defaultLocale; diff --git a/api/vendor/symfony/string/Slugger/SluggerInterface.php b/api/vendor/symfony/string/Slugger/SluggerInterface.php index c679ed933..dd0d58102 100644 --- a/api/vendor/symfony/string/Slugger/SluggerInterface.php +++ b/api/vendor/symfony/string/Slugger/SluggerInterface.php @@ -23,5 +23,5 @@ interface SluggerInterface /** * Creates a slug for the given string and locale, using appropriate transliteration when needed. */ - public function slug(string $string, string $separator = '-', string $locale = null): AbstractUnicodeString; + public function slug(string $string, string $separator = '-', ?string $locale = null): AbstractUnicodeString; } diff --git a/api/vendor/symfony/string/UnicodeString.php b/api/vendor/symfony/string/UnicodeString.php index 9b906c6fc..7d5b567cc 100644 --- a/api/vendor/symfony/string/UnicodeString.php +++ b/api/vendor/symfony/string/UnicodeString.php @@ -184,7 +184,7 @@ public function indexOfLast($needle, int $offset = 0): ?int return false === $i ? null : $i; } - public function join(array $strings, string $lastGlue = null): AbstractString + public function join(array $strings, ?string $lastGlue = null): AbstractString { $str = parent::join($strings, $lastGlue); normalizer_is_normalized($str->string) ?: $str->string = normalizer_normalize($str->string); @@ -264,7 +264,7 @@ public function replaceMatches(string $fromRegexp, $to): AbstractString return $str; } - public function slice(int $start = 0, int $length = null): AbstractString + public function slice(int $start = 0, ?int $length = null): AbstractString { $str = clone $this; @@ -276,7 +276,7 @@ public function slice(int $start = 0, int $length = null): AbstractString return $str; } - public function splice(string $replacement, int $start = 0, int $length = null): AbstractString + public function splice(string $replacement, int $start = 0, ?int $length = null): AbstractString { $str = clone $this; @@ -295,7 +295,7 @@ public function splice(string $replacement, int $start = 0, int $length = null): return $str; } - public function split(string $delimiter, int $limit = null, int $flags = null): array + public function split(string $delimiter, ?int $limit = null, ?int $flags = null): array { if (1 > $limit = $limit ?? 2147483647) { throw new InvalidArgumentException('Split limit must be a positive integer.'); diff --git a/api/vendor/symfony/translation-contracts/LICENSE b/api/vendor/symfony/translation-contracts/LICENSE index 235841453..7536caeae 100644 --- a/api/vendor/symfony/translation-contracts/LICENSE +++ b/api/vendor/symfony/translation-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2021 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/translation-contracts/Test/TranslatorTest.php b/api/vendor/symfony/translation-contracts/Test/TranslatorTest.php index 890367657..dff86ddad 100644 --- a/api/vendor/symfony/translation-contracts/Test/TranslatorTest.php +++ b/api/vendor/symfony/translation-contracts/Test/TranslatorTest.php @@ -117,7 +117,7 @@ public function testGetLocaleReturnsDefaultLocaleIfNotSet() $this->assertEquals('en', $translator->getLocale()); } - public function getTransTests() + public static function getTransTests() { return [ ['Symfony is great!', 'Symfony is great!', []], @@ -125,7 +125,7 @@ public function getTransTests() ]; } - public function getTransChoiceTests() + public static function getTransChoiceTests() { return [ ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], @@ -140,7 +140,7 @@ public function getTransChoiceTests() } /** - * @dataProvider getInternal + * @dataProvider getInterval */ public function testInterval($expected, $number, $interval) { @@ -149,7 +149,7 @@ public function testInterval($expected, $number, $interval) $this->assertEquals($expected, $translator->trans($interval.' foo|[1,Inf[ bar', ['%count%' => $number])); } - public function getInternal() + public static function getInterval() { return [ ['foo', 3, '{1,2, 3 ,4}'], @@ -192,7 +192,7 @@ public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number) $translator->trans($id, ['%count%' => $number]); } - public function getNonMatchingMessages() + public static function getNonMatchingMessages() { return [ ['{0} There are no apples|{1} There is one apple', 2], @@ -202,7 +202,7 @@ public function getNonMatchingMessages() ]; } - public function getChooseTests() + public static function getChooseTests() { return [ ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], @@ -258,13 +258,13 @@ public function getChooseTests() new-line in it. Selector = 0.|{1}This is a text with a new-line in it. Selector = 1.|[1,Inf]This is a text with a new-line in it. Selector > 1.', 5], - // with double-quotes and id split accros lines + // with double-quotes and id split across lines ['This is a text with a new-line in it. Selector = 1.', '{0}This is a text with a new-line in it. Selector = 0.|{1}This is a text with a new-line in it. Selector = 1.|[1,Inf]This is a text with a new-line in it. Selector > 1.', 1], - // with single-quotes and id split accros lines + // with single-quotes and id split across lines ['This is a text with a new-line in it. Selector > 1.', '{0}This is a text with a new-line in it. Selector = 0.|{1}This is a text with a @@ -272,9 +272,9 @@ public function getChooseTests() new-line in it. Selector > 1.', 5], // with single-quotes and \n in text ['This is a text with a\nnew-line in it. Selector = 0.', '{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.', 0], - // with double-quotes and id split accros lines + // with double-quotes and id split across lines ["This is a text with a\nnew-line in it. Selector = 1.", "{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.", 1], - // esacape pipe + // escape pipe ['This is a text with | in it. Selector = 0.', '{0}This is a text with || in it. Selector = 0.|{1}This is a text with || in it. Selector = 1.', 0], // Empty plural set (2 plural forms) from a .PO file ['', '|', 1], @@ -320,7 +320,7 @@ public function testLangcodes($nplural, $langCodes) * * @return array */ - public function successLangcodes() + public static function successLangcodes() { return [ ['1', ['ay', 'bo', 'cgg', 'dz', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky']], @@ -339,7 +339,7 @@ public function successLangcodes() * * @return array with nplural together with langcodes */ - public function failingLangcodes() + public static function failingLangcodes() { return [ ['1', ['fa']], @@ -362,7 +362,7 @@ protected function validateMatrix($nplural, $matrix, $expectSuccess = true) foreach ($matrix as $langCode => $data) { $indexes = array_flip($data); if ($expectSuccess) { - $this->assertEquals($nplural, \count($indexes), "Langcode '$langCode' has '$nplural' plural forms."); + $this->assertCount($nplural, $indexes, "Langcode '$langCode' has '$nplural' plural forms."); } else { $this->assertNotEquals((int) $nplural, \count($indexes), "Langcode '$langCode' has '$nplural' plural forms."); } diff --git a/api/vendor/symfony/translation-contracts/TranslatableInterface.php b/api/vendor/symfony/translation-contracts/TranslatableInterface.php index 47fd6fa02..8554697ec 100644 --- a/api/vendor/symfony/translation-contracts/TranslatableInterface.php +++ b/api/vendor/symfony/translation-contracts/TranslatableInterface.php @@ -16,5 +16,5 @@ */ interface TranslatableInterface { - public function trans(TranslatorInterface $translator, string $locale = null): string; + public function trans(TranslatorInterface $translator, ?string $locale = null): string; } diff --git a/api/vendor/symfony/translation-contracts/TranslatorInterface.php b/api/vendor/symfony/translation-contracts/TranslatorInterface.php index 77b7a9c58..85ca166bf 100644 --- a/api/vendor/symfony/translation-contracts/TranslatorInterface.php +++ b/api/vendor/symfony/translation-contracts/TranslatorInterface.php @@ -63,5 +63,5 @@ interface TranslatorInterface * * @throws \InvalidArgumentException If the locale contains invalid characters */ - public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null); + public function trans(string $id, array $parameters = [], ?string $domain = null, ?string $locale = null); } diff --git a/api/vendor/symfony/translation-contracts/TranslatorTrait.php b/api/vendor/symfony/translation-contracts/TranslatorTrait.php index 405ce8d70..ac01d730a 100644 --- a/api/vendor/symfony/translation-contracts/TranslatorTrait.php +++ b/api/vendor/symfony/translation-contracts/TranslatorTrait.php @@ -43,7 +43,7 @@ public function getLocale() /** * {@inheritdoc} */ - public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string + public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string { if (null === $id || '' === $id) { return ''; diff --git a/api/vendor/symfony/translation/CHANGELOG.md b/api/vendor/symfony/translation/CHANGELOG.md index 160b5e694..93615dcac 100644 --- a/api/vendor/symfony/translation/CHANGELOG.md +++ b/api/vendor/symfony/translation/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +5.4.21 +------ + + * [BC BREAK] The following data providers for `ProviderFactoryTestCase` are now static: + `supportsProvider()`, `createProvider()`, `unsupportedSchemeProvider()`and `incompleteDsnProvider()` + * [BC BREAK] `ProviderTestCase::toStringProvider()` is now static + 5.4 --- diff --git a/api/vendor/symfony/translation/Command/TranslationPullCommand.php b/api/vendor/symfony/translation/Command/TranslationPullCommand.php index 7045a9e69..e2e7c00dc 100644 --- a/api/vendor/symfony/translation/Command/TranslationPullCommand.php +++ b/api/vendor/symfony/translation/Command/TranslationPullCommand.php @@ -111,7 +111,7 @@ protected function configure() Full example: - php %command.full_name% provider --force --domains=messages,validators --locales=en + php %command.full_name% provider --force --domains=messages --domains=validators --locales=en This command pulls all translations associated with the messages and validators domains for the en locale. Local translations for the specified domains and locale are deleted if they're not present on the provider and overwritten if it's the case. @@ -142,7 +142,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int switch ($format) { case 'xlf20': $xliffVersion = '2.0'; - // no break + // no break case 'xlf12': $format = 'xlf'; } @@ -160,7 +160,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($force) { foreach ($providerTranslations->getCatalogues() as $catalogue) { - $operation = new TargetOperation((new MessageCatalogue($catalogue->getLocale())), $catalogue); + $operation = new TargetOperation(new MessageCatalogue($catalogue->getLocale()), $catalogue); if ($intlIcu) { $operation->moveMessagesToIntlDomainsIfPossible(); } diff --git a/api/vendor/symfony/translation/Command/TranslationPushCommand.php b/api/vendor/symfony/translation/Command/TranslationPushCommand.php index 628a06b3f..bf6e8c948 100644 --- a/api/vendor/symfony/translation/Command/TranslationPushCommand.php +++ b/api/vendor/symfony/translation/Command/TranslationPushCommand.php @@ -20,6 +20,7 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Translation\Provider\FilteringProvider; use Symfony\Component\Translation\Provider\TranslationProviderCollection; use Symfony\Component\Translation\Reader\TranslationReaderInterface; use Symfony\Component\Translation\TranslatorBag; @@ -103,7 +104,7 @@ protected function configure() Full example: - php %command.full_name% provider --force --delete-missing --domains=messages,validators --locales=en + php %command.full_name% provider --force --delete-missing --domains=messages --domains=validators --locales=en This command pushes all translations associated with the messages and validators domains for the en locale. Provider translations for the specified domains and locale are deleted if they're not present locally and overwritten if it's the case. @@ -130,6 +131,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int $force = $input->getOption('force'); $deleteMissing = $input->getOption('delete-missing'); + if (!$domains && $provider instanceof FilteringProvider) { + $domains = $provider->getDomains(); + } + + // Reading local translations must be done after retrieving the domains from the provider + // in order to manage only translations from configured domains $localTranslations = $this->readLocalTranslations($locales, $domains, $this->transPaths); if (!$domains) { diff --git a/api/vendor/symfony/translation/Command/XliffLintCommand.php b/api/vendor/symfony/translation/Command/XliffLintCommand.php index fb2b5f31c..0a0bc0ee6 100644 --- a/api/vendor/symfony/translation/Command/XliffLintCommand.php +++ b/api/vendor/symfony/translation/Command/XliffLintCommand.php @@ -42,7 +42,7 @@ class XliffLintCommand extends Command private $isReadableProvider; private $requireStrictFileNames; - public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null, bool $requireStrictFileNames = true) + public function __construct(?string $name = null, ?callable $directoryIteratorProvider = null, ?callable $isReadableProvider = null, bool $requireStrictFileNames = true) { parent::__construct($name); @@ -111,7 +111,7 @@ protected function execute(InputInterface $input, OutputInterface $output) return $this->display($io, $filesInfo); } - private function validate(string $content, string $file = null): array + private function validate(string $content, ?string $file = null): array { $errors = []; diff --git a/api/vendor/symfony/translation/DataCollector/TranslationDataCollector.php b/api/vendor/symfony/translation/DataCollector/TranslationDataCollector.php index 379130a44..12c1d04ae 100644 --- a/api/vendor/symfony/translation/DataCollector/TranslationDataCollector.php +++ b/api/vendor/symfony/translation/DataCollector/TranslationDataCollector.php @@ -48,7 +48,7 @@ public function lateCollect() /** * {@inheritdoc} */ - public function collect(Request $request, Response $response, \Throwable $exception = null) + public function collect(Request $request, Response $response, ?\Throwable $exception = null) { $this->data['locale'] = $this->translator->getLocale(); $this->data['fallback_locales'] = $this->translator->getFallbackLocales(); diff --git a/api/vendor/symfony/translation/DataCollectorTranslator.php b/api/vendor/symfony/translation/DataCollectorTranslator.php index ea5a2dd5e..6de5e22a3 100644 --- a/api/vendor/symfony/translation/DataCollectorTranslator.php +++ b/api/vendor/symfony/translation/DataCollectorTranslator.php @@ -43,7 +43,7 @@ public function __construct(TranslatorInterface $translator) /** * {@inheritdoc} */ - public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null) + public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null) { $trans = $this->translator->trans($id = (string) $id, $parameters, $domain, $locale); $this->collectMessage($locale, $domain, $id, $trans, $parameters); @@ -70,7 +70,7 @@ public function getLocale() /** * {@inheritdoc} */ - public function getCatalogue(string $locale = null) + public function getCatalogue(?string $locale = null) { return $this->translator->getCatalogue($locale); } diff --git a/api/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php b/api/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php index 18a71c45a..2ee13640c 100644 --- a/api/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php +++ b/api/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php @@ -16,6 +16,7 @@ use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ServiceLocator; +use Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver; /** * @author Yonel Ceruto @@ -136,28 +137,20 @@ protected function processValue($value, bool $isRoot = false) private function findControllerArguments(ContainerBuilder $container): array { - if ($container->hasDefinition($this->resolverServiceId)) { - $argument = $container->getDefinition($this->resolverServiceId)->getArgument(0); - if ($argument instanceof Reference) { - $argument = $container->getDefinition($argument); - } - - return $argument->getArgument(0); + if (!$container->has($this->resolverServiceId)) { + return []; } + $resolverDef = $container->findDefinition($this->resolverServiceId); - if ($container->hasDefinition('debug.'.$this->resolverServiceId)) { - $argument = $container->getDefinition('debug.'.$this->resolverServiceId)->getArgument(0); - if ($argument instanceof Reference) { - $argument = $container->getDefinition($argument); - } - $argument = $argument->getArgument(0); - if ($argument instanceof Reference) { - $argument = $container->getDefinition($argument); - } + if (TraceableValueResolver::class === $resolverDef->getClass()) { + $resolverDef = $container->getDefinition($resolverDef->getArgument(0)); + } - return $argument->getArgument(0); + $argument = $resolverDef->getArgument(0); + if ($argument instanceof Reference) { + $argument = $container->getDefinition($argument); } - return []; + return $argument->getArgument(0); } } diff --git a/api/vendor/symfony/translation/Dumper/IcuResFileDumper.php b/api/vendor/symfony/translation/Dumper/IcuResFileDumper.php index cdc59913b..12a7a8cfc 100644 --- a/api/vendor/symfony/translation/Dumper/IcuResFileDumper.php +++ b/api/vendor/symfony/translation/Dumper/IcuResFileDumper.php @@ -47,7 +47,7 @@ public function formatCatalogue(MessageCatalogue $messages, string $domain, arra $data .= pack('V', \strlen($target)) .mb_convert_encoding($target."\0", 'UTF-16LE', 'UTF-8') .$this->writePadding($data) - ; + ; } $resOffset = $this->getPosition($data); @@ -56,7 +56,7 @@ public function formatCatalogue(MessageCatalogue $messages, string $domain, arra .$indexes .$this->writePadding($data) .$resources - ; + ; $bundleTop = $this->getPosition($data); diff --git a/api/vendor/symfony/translation/Dumper/MoFileDumper.php b/api/vendor/symfony/translation/Dumper/MoFileDumper.php index 54d0da875..f52206ee3 100644 --- a/api/vendor/symfony/translation/Dumper/MoFileDumper.php +++ b/api/vendor/symfony/translation/Dumper/MoFileDumper.php @@ -62,7 +62,7 @@ public function formatCatalogue(MessageCatalogue $messages, string $domain, arra .$targetOffsets .$sources .$targets - ; + ; return $output; } diff --git a/api/vendor/symfony/translation/Dumper/XliffFileDumper.php b/api/vendor/symfony/translation/Dumper/XliffFileDumper.php index f7dbdcddf..a480b3f23 100644 --- a/api/vendor/symfony/translation/Dumper/XliffFileDumper.php +++ b/api/vendor/symfony/translation/Dumper/XliffFileDumper.php @@ -196,7 +196,7 @@ private function dumpXliff2(string $defaultLocale, MessageCatalogue $messages, ? return $dom->saveXML(); } - private function hasMetadataArrayInfo(string $key, array $metadata = null): bool + private function hasMetadataArrayInfo(string $key, ?array $metadata = null): bool { return is_iterable($metadata[$key] ?? null); } diff --git a/api/vendor/symfony/translation/Exception/IncompleteDsnException.php b/api/vendor/symfony/translation/Exception/IncompleteDsnException.php index cb0ce027e..b304bde01 100644 --- a/api/vendor/symfony/translation/Exception/IncompleteDsnException.php +++ b/api/vendor/symfony/translation/Exception/IncompleteDsnException.php @@ -13,7 +13,7 @@ class IncompleteDsnException extends InvalidArgumentException { - public function __construct(string $message, string $dsn = null, \Throwable $previous = null) + public function __construct(string $message, ?string $dsn = null, ?\Throwable $previous = null) { if ($dsn) { $message = sprintf('Invalid "%s" provider DSN: ', $dsn).$message; diff --git a/api/vendor/symfony/translation/Exception/MissingRequiredOptionException.php b/api/vendor/symfony/translation/Exception/MissingRequiredOptionException.php index 2b5f80806..46152e254 100644 --- a/api/vendor/symfony/translation/Exception/MissingRequiredOptionException.php +++ b/api/vendor/symfony/translation/Exception/MissingRequiredOptionException.php @@ -16,7 +16,7 @@ */ class MissingRequiredOptionException extends IncompleteDsnException { - public function __construct(string $option, string $dsn = null, \Throwable $previous = null) + public function __construct(string $option, ?string $dsn = null, ?\Throwable $previous = null) { $message = sprintf('The option "%s" is required but missing.', $option); diff --git a/api/vendor/symfony/translation/Exception/ProviderException.php b/api/vendor/symfony/translation/Exception/ProviderException.php index 571920da3..8b909fe27 100644 --- a/api/vendor/symfony/translation/Exception/ProviderException.php +++ b/api/vendor/symfony/translation/Exception/ProviderException.php @@ -21,7 +21,7 @@ class ProviderException extends RuntimeException implements ProviderExceptionInt private $response; private $debug; - public function __construct(string $message, ResponseInterface $response, int $code = 0, \Exception $previous = null) + public function __construct(string $message, ResponseInterface $response, int $code = 0, ?\Exception $previous = null) { $this->response = $response; $this->debug = $response->getInfo('debug') ?? ''; diff --git a/api/vendor/symfony/translation/Exception/UnsupportedSchemeException.php b/api/vendor/symfony/translation/Exception/UnsupportedSchemeException.php index 7fbaa8f04..800c4cdb6 100644 --- a/api/vendor/symfony/translation/Exception/UnsupportedSchemeException.php +++ b/api/vendor/symfony/translation/Exception/UnsupportedSchemeException.php @@ -31,7 +31,7 @@ class UnsupportedSchemeException extends LogicException ], ]; - public function __construct(Dsn $dsn, string $name = null, array $supported = []) + public function __construct(Dsn $dsn, ?string $name = null, array $supported = []) { $provider = $dsn->getScheme(); if (false !== $pos = strpos($provider, '+')) { diff --git a/api/vendor/symfony/translation/Extractor/PhpStringTokenParser.php b/api/vendor/symfony/translation/Extractor/PhpStringTokenParser.php index d114cc738..c0699461d 100644 --- a/api/vendor/symfony/translation/Extractor/PhpStringTokenParser.php +++ b/api/vendor/symfony/translation/Extractor/PhpStringTokenParser.php @@ -93,7 +93,7 @@ public static function parse(string $str) * * @return string */ - public static function parseEscapeSequences(string $str, string $quote = null) + public static function parseEscapeSequences(string $str, ?string $quote = null) { if (null !== $quote) { $str = str_replace('\\'.$quote, $quote, $str); diff --git a/api/vendor/symfony/translation/Formatter/MessageFormatter.php b/api/vendor/symfony/translation/Formatter/MessageFormatter.php index 040796483..3449a84a5 100644 --- a/api/vendor/symfony/translation/Formatter/MessageFormatter.php +++ b/api/vendor/symfony/translation/Formatter/MessageFormatter.php @@ -28,7 +28,7 @@ class MessageFormatter implements MessageFormatterInterface, IntlFormatterInterf /** * @param TranslatorInterface|null $translator An identity translator to use as selector for pluralization */ - public function __construct(TranslatorInterface $translator = null, IntlFormatterInterface $intlFormatter = null) + public function __construct(?TranslatorInterface $translator = null, ?IntlFormatterInterface $intlFormatter = null) { $this->translator = $translator ?? new IdentityTranslator(); $this->intlFormatter = $intlFormatter ?? new IntlFormatter(); diff --git a/api/vendor/symfony/translation/LICENSE b/api/vendor/symfony/translation/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/translation/LICENSE +++ b/api/vendor/symfony/translation/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/translation/Loader/ArrayLoader.php b/api/vendor/symfony/translation/Loader/ArrayLoader.php index 0758da8b5..feed0de4b 100644 --- a/api/vendor/symfony/translation/Loader/ArrayLoader.php +++ b/api/vendor/symfony/translation/Loader/ArrayLoader.php @@ -46,9 +46,11 @@ private function flatten(array $messages): array foreach ($messages as $key => $value) { if (\is_array($value)) { foreach ($this->flatten($value) as $k => $v) { - $result[$key.'.'.$k] = $v; + if (null !== $v) { + $result[$key.'.'.$k] = $v; + } } - } else { + } elseif (null !== $value) { $result[$key] = $value; } } diff --git a/api/vendor/symfony/translation/Loader/IcuResFileLoader.php b/api/vendor/symfony/translation/Loader/IcuResFileLoader.php index 7e3391ecb..88e133738 100644 --- a/api/vendor/symfony/translation/Loader/IcuResFileLoader.php +++ b/api/vendor/symfony/translation/Loader/IcuResFileLoader.php @@ -71,11 +71,11 @@ public function load($resource, string $locale, string $domain = 'messages') * * @param \ResourceBundle $rb The ResourceBundle that will be flattened * @param array $messages Used internally for recursive calls - * @param string $path Current path being parsed, used internally for recursive calls + * @param string|null $path Current path being parsed, used internally for recursive calls * * @return array */ - protected function flatten(\ResourceBundle $rb, array &$messages = [], string $path = null) + protected function flatten(\ResourceBundle $rb, array &$messages = [], ?string $path = null) { foreach ($rb as $key => $value) { $nodePath = $path ? $path.'.'.$key : $key; diff --git a/api/vendor/symfony/translation/Loader/PhpFileLoader.php b/api/vendor/symfony/translation/Loader/PhpFileLoader.php index 85f10902b..40f64db27 100644 --- a/api/vendor/symfony/translation/Loader/PhpFileLoader.php +++ b/api/vendor/symfony/translation/Loader/PhpFileLoader.php @@ -25,7 +25,7 @@ class PhpFileLoader extends FileLoader */ protected function loadResource(string $resource) { - if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN))) { + if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(\ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN))) { self::$cache = null; } diff --git a/api/vendor/symfony/translation/Loader/XliffFileLoader.php b/api/vendor/symfony/translation/Loader/XliffFileLoader.php index 5c9794a54..f4d239619 100644 --- a/api/vendor/symfony/translation/Loader/XliffFileLoader.php +++ b/api/vendor/symfony/translation/Loader/XliffFileLoader.php @@ -111,12 +111,20 @@ private function extractXliff1(\DOMDocument $dom, MessageCatalogue $catalogue, s continue; } - $source = isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source; + $source = (string) (isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source); + + if (isset($translation->target) + && 'needs-translation' === (string) $translation->target->attributes()['state'] + && \in_array((string) $translation->target, [$source, (string) $translation->source], true) + ) { + continue; + } + // If the xlf file has another encoding specified, try to convert it because // simple_xml will always return utf-8 encoded values $target = $this->utf8ToCharset((string) ($translation->target ?? $translation->source), $encoding); - $catalogue->set((string) $source, $target, $domain); + $catalogue->set($source, $target, $domain); $metadata = [ 'source' => (string) $translation->source, @@ -139,7 +147,7 @@ private function extractXliff1(\DOMDocument $dom, MessageCatalogue $catalogue, s $metadata['id'] = (string) $attributes['id']; } - $catalogue->setMetadata((string) $source, $metadata, $domain); + $catalogue->setMetadata($source, $metadata, $domain); } } } @@ -190,7 +198,7 @@ private function extractXliff2(\DOMDocument $dom, MessageCatalogue $catalogue, s /** * Convert a UTF8 string to the specified encoding. */ - private function utf8ToCharset(string $content, string $encoding = null): string + private function utf8ToCharset(string $content, ?string $encoding = null): string { if ('UTF-8' !== $encoding && !empty($encoding)) { return mb_convert_encoding($content, $encoding, 'UTF-8'); @@ -199,7 +207,7 @@ private function utf8ToCharset(string $content, string $encoding = null): string return $content; } - private function parseNotesMetadata(\SimpleXMLElement $noteElement = null, string $encoding = null): array + private function parseNotesMetadata(?\SimpleXMLElement $noteElement = null, ?string $encoding = null): array { $notes = []; diff --git a/api/vendor/symfony/translation/LoggingTranslator.php b/api/vendor/symfony/translation/LoggingTranslator.php index 6ccd48289..d0932b667 100644 --- a/api/vendor/symfony/translation/LoggingTranslator.php +++ b/api/vendor/symfony/translation/LoggingTranslator.php @@ -40,7 +40,7 @@ public function __construct(TranslatorInterface $translator, LoggerInterface $lo /** * {@inheritdoc} */ - public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null) + public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null) { $trans = $this->translator->trans($id = (string) $id, $parameters, $domain, $locale); $this->log($id, $domain, $locale); @@ -73,7 +73,7 @@ public function getLocale() /** * {@inheritdoc} */ - public function getCatalogue(string $locale = null) + public function getCatalogue(?string $locale = null) { return $this->translator->getCatalogue($locale); } diff --git a/api/vendor/symfony/translation/MessageCatalogue.php b/api/vendor/symfony/translation/MessageCatalogue.php index ff49b5a97..2e00b645e 100644 --- a/api/vendor/symfony/translation/MessageCatalogue.php +++ b/api/vendor/symfony/translation/MessageCatalogue.php @@ -63,7 +63,7 @@ public function getDomains() /** * {@inheritdoc} */ - public function all(string $domain = null) + public function all(?string $domain = null) { if (null !== $domain) { // skip messages merge if intl-icu requested explicitly @@ -155,19 +155,14 @@ public function replace(array $messages, string $domain = 'messages') */ public function add(array $messages, string $domain = 'messages') { - if (!isset($this->messages[$domain])) { - $this->messages[$domain] = []; - } - $intlDomain = $domain; - if (!str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) { - $intlDomain .= self::INTL_DOMAIN_SUFFIX; - } + $altDomain = str_ends_with($domain, self::INTL_DOMAIN_SUFFIX) ? substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX)) : $domain.self::INTL_DOMAIN_SUFFIX; foreach ($messages as $id => $message) { - if (isset($this->messages[$intlDomain]) && \array_key_exists($id, $this->messages[$intlDomain])) { - $this->messages[$intlDomain][$id] = $message; - } else { - $this->messages[$domain][$id] = $message; - } + unset($this->messages[$altDomain][$id]); + $this->messages[$domain][$id] = $message; + } + + if ([] === ($this->messages[$altDomain] ?? null)) { + unset($this->messages[$altDomain]); } } diff --git a/api/vendor/symfony/translation/MessageCatalogueInterface.php b/api/vendor/symfony/translation/MessageCatalogueInterface.php index cf7746c23..d532a1e48 100644 --- a/api/vendor/symfony/translation/MessageCatalogueInterface.php +++ b/api/vendor/symfony/translation/MessageCatalogueInterface.php @@ -41,11 +41,11 @@ public function getDomains(); * * If $domain is null, it returns all messages. * - * @param string $domain The domain name + * @param string|null $domain The domain name * * @return array */ - public function all(string $domain = null); + public function all(?string $domain = null); /** * Sets a message translation. diff --git a/api/vendor/symfony/translation/Provider/AbstractProviderFactory.php b/api/vendor/symfony/translation/Provider/AbstractProviderFactory.php index 17442fde8..fdfeb8ce3 100644 --- a/api/vendor/symfony/translation/Provider/AbstractProviderFactory.php +++ b/api/vendor/symfony/translation/Provider/AbstractProviderFactory.php @@ -28,7 +28,7 @@ abstract protected function getSupportedSchemes(): array; protected function getUser(Dsn $dsn): string { if (null === $user = $dsn->getUser()) { - throw new IncompleteDsnException('User is not set.', $dsn->getOriginalDsn()); + throw new IncompleteDsnException('User is not set.', $dsn->getScheme().'://'.$dsn->getHost()); } return $user; diff --git a/api/vendor/symfony/translation/Provider/Dsn.php b/api/vendor/symfony/translation/Provider/Dsn.php index 820cabfb3..d29b202d1 100644 --- a/api/vendor/symfony/translation/Provider/Dsn.php +++ b/api/vendor/symfony/translation/Provider/Dsn.php @@ -33,25 +33,25 @@ public function __construct(string $dsn) { $this->originalDsn = $dsn; - if (false === $parsedDsn = parse_url($dsn)) { - throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN is invalid.', $dsn)); + if (false === $params = parse_url($dsn)) { + throw new InvalidArgumentException('The translation provider DSN is invalid.'); } - if (!isset($parsedDsn['scheme'])) { - throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN must contain a scheme.', $dsn)); + if (!isset($params['scheme'])) { + throw new InvalidArgumentException('The translation provider DSN must contain a scheme.'); } - $this->scheme = $parsedDsn['scheme']; + $this->scheme = $params['scheme']; - if (!isset($parsedDsn['host'])) { - throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN must contain a host (use "default" by default).', $dsn)); + if (!isset($params['host'])) { + throw new InvalidArgumentException('The translation provider DSN must contain a host (use "default" by default).'); } - $this->host = $parsedDsn['host']; + $this->host = $params['host']; - $this->user = '' !== ($parsedDsn['user'] ?? '') ? urldecode($parsedDsn['user']) : null; - $this->password = '' !== ($parsedDsn['pass'] ?? '') ? urldecode($parsedDsn['pass']) : null; - $this->port = $parsedDsn['port'] ?? null; - $this->path = $parsedDsn['path'] ?? null; - parse_str($parsedDsn['query'] ?? '', $this->options); + $this->user = '' !== ($params['user'] ?? '') ? rawurldecode($params['user']) : null; + $this->password = '' !== ($params['pass'] ?? '') ? rawurldecode($params['pass']) : null; + $this->port = $params['port'] ?? null; + $this->path = $params['path'] ?? null; + parse_str($params['query'] ?? '', $this->options); } public function getScheme(): string @@ -74,7 +74,7 @@ public function getPassword(): ?string return $this->password; } - public function getPort(int $default = null): ?int + public function getPort(?int $default = null): ?int { return $this->port ?? $default; } diff --git a/api/vendor/symfony/translation/PseudoLocalizationTranslator.php b/api/vendor/symfony/translation/PseudoLocalizationTranslator.php index 3fdc1aa4d..5396eb546 100644 --- a/api/vendor/symfony/translation/PseudoLocalizationTranslator.php +++ b/api/vendor/symfony/translation/PseudoLocalizationTranslator.php @@ -86,7 +86,7 @@ public function __construct(TranslatorInterface $translator, array $options = [] /** * {@inheritdoc} */ - public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null): string + public function trans(string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string { $trans = ''; $visibleText = ''; @@ -123,7 +123,7 @@ private function getParts(string $originalTrans): array return [[true, true, $originalTrans]]; } - $html = mb_convert_encoding($originalTrans, 'HTML-ENTITIES', mb_detect_encoding($originalTrans, null, true) ?: 'UTF-8'); + $html = mb_encode_numericentity($originalTrans, [0x80, 0x10FFFF, 0, 0x1FFFFF], mb_detect_encoding($originalTrans, null, true) ?: 'UTF-8'); $useInternalErrors = libxml_use_internal_errors(true); @@ -283,7 +283,7 @@ private function expand(string &$trans, string $visibleText): void } $visibleLength = $this->strlen($visibleText); - $missingLength = (int) (ceil($visibleLength * $this->expansionFactor)) - $visibleLength; + $missingLength = (int) ceil($visibleLength * $this->expansionFactor) - $visibleLength; if ($this->brackets) { $missingLength -= 2; } diff --git a/api/vendor/symfony/translation/Resources/bin/translation-status.php b/api/vendor/symfony/translation/Resources/bin/translation-status.php index fac8acbad..1ab72c000 100644 --- a/api/vendor/symfony/translation/Resources/bin/translation-status.php +++ b/api/vendor/symfony/translation/Resources/bin/translation-status.php @@ -9,6 +9,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + $usageInstructions = <<file->body->{'trans-unit'} as $translationKey) { $translationId = (string) $translationKey['id']; - $translationKey = (string) $translationKey->source; + $translationKey = (string) ($translationKey['resname'] ?? $translationKey->source); $translationKeys[$translationId] = $translationKey; } diff --git a/api/vendor/symfony/translation/Resources/data/parents.json b/api/vendor/symfony/translation/Resources/data/parents.json index 288f16300..24d4d119e 100644 --- a/api/vendor/symfony/translation/Resources/data/parents.json +++ b/api/vendor/symfony/translation/Resources/data/parents.json @@ -35,6 +35,7 @@ "en_GM": "en_001", "en_GY": "en_001", "en_HK": "en_001", + "en_ID": "en_001", "en_IE": "en_001", "en_IL": "en_001", "en_IM": "en_001", @@ -54,6 +55,7 @@ "en_MS": "en_001", "en_MT": "en_001", "en_MU": "en_001", + "en_MV": "en_001", "en_MW": "en_001", "en_MY": "en_001", "en_NA": "en_001", @@ -116,6 +118,8 @@ "es_UY": "es_419", "es_VE": "es_419", "ff_Adlm": "root", + "hi_Latn": "en_IN", + "ks_Deva": "root", "nb": "no", "nn": "no", "pa_Arab": "root", diff --git a/api/vendor/symfony/translation/Resources/functions.php b/api/vendor/symfony/translation/Resources/functions.php index 901d2f87e..0d2a037a2 100644 --- a/api/vendor/symfony/translation/Resources/functions.php +++ b/api/vendor/symfony/translation/Resources/functions.php @@ -15,7 +15,7 @@ /** * @author Nate Wiebe */ - function t(string $message, array $parameters = [], string $domain = null): TranslatableMessage + function t(string $message, array $parameters = [], ?string $domain = null): TranslatableMessage { return new TranslatableMessage($message, $parameters, $domain); } diff --git a/api/vendor/symfony/translation/Test/ProviderFactoryTestCase.php b/api/vendor/symfony/translation/Test/ProviderFactoryTestCase.php index 6d5f4b7bf..b8438149d 100644 --- a/api/vendor/symfony/translation/Test/ProviderFactoryTestCase.php +++ b/api/vendor/symfony/translation/Test/ProviderFactoryTestCase.php @@ -42,17 +42,17 @@ abstract public function createFactory(): ProviderFactoryInterface; /** * @return iterable */ - abstract public function supportsProvider(): iterable; + abstract public static function supportsProvider(): iterable; /** - * @return iterable + * @return iterable */ - abstract public function createProvider(): iterable; + abstract public static function createProvider(): iterable; /** * @return iterable */ - public function unsupportedSchemeProvider(): iterable + public static function unsupportedSchemeProvider(): iterable { return []; } @@ -60,7 +60,7 @@ public function unsupportedSchemeProvider(): iterable /** * @return iterable */ - public function incompleteDsnProvider(): iterable + public static function incompleteDsnProvider(): iterable { return []; } @@ -89,7 +89,7 @@ public function testCreate(string $expected, string $dsn) /** * @dataProvider unsupportedSchemeProvider */ - public function testUnsupportedSchemeException(string $dsn, string $message = null) + public function testUnsupportedSchemeException(string $dsn, ?string $message = null) { $factory = $this->createFactory(); @@ -106,7 +106,7 @@ public function testUnsupportedSchemeException(string $dsn, string $message = nu /** * @dataProvider incompleteDsnProvider */ - public function testIncompleteDsnException(string $dsn, string $message = null) + public function testIncompleteDsnException(string $dsn, ?string $message = null) { $factory = $this->createFactory(); diff --git a/api/vendor/symfony/translation/Test/ProviderTestCase.php b/api/vendor/symfony/translation/Test/ProviderTestCase.php index 238fd967e..cb8a03fc3 100644 --- a/api/vendor/symfony/translation/Test/ProviderTestCase.php +++ b/api/vendor/symfony/translation/Test/ProviderTestCase.php @@ -11,7 +11,6 @@ namespace Symfony\Component\Translation\Test; -use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use Symfony\Component\HttpClient\MockHttpClient; @@ -35,12 +34,12 @@ abstract class ProviderTestCase extends TestCase protected $loader; protected $xliffFileDumper; - abstract public function createProvider(HttpClientInterface $client, LoaderInterface $loader, LoggerInterface $logger, string $defaultLocale, string $endpoint): ProviderInterface; + abstract public static function createProvider(HttpClientInterface $client, LoaderInterface $loader, LoggerInterface $logger, string $defaultLocale, string $endpoint): ProviderInterface; /** - * @return iterable + * @return iterable */ - abstract public function toStringProvider(): iterable; + abstract public static function toStringProvider(): iterable; /** * @dataProvider toStringProvider @@ -55,17 +54,11 @@ protected function getClient(): MockHttpClient return $this->client ?? $this->client = new MockHttpClient(); } - /** - * @return LoaderInterface&MockObject - */ protected function getLoader(): LoaderInterface { return $this->loader ?? $this->loader = $this->createMock(LoaderInterface::class); } - /** - * @return LoaderInterface&MockObject - */ protected function getLogger(): LoggerInterface { return $this->logger ?? $this->logger = $this->createMock(LoggerInterface::class); @@ -76,9 +69,6 @@ protected function getDefaultLocale(): string return $this->defaultLocale ?? $this->defaultLocale = 'en'; } - /** - * @return LoaderInterface&MockObject - */ protected function getXliffFileDumper(): XliffFileDumper { return $this->xliffFileDumper ?? $this->xliffFileDumper = $this->createMock(XliffFileDumper::class); diff --git a/api/vendor/symfony/translation/TranslatableMessage.php b/api/vendor/symfony/translation/TranslatableMessage.php index 282d289c0..4e53d6079 100644 --- a/api/vendor/symfony/translation/TranslatableMessage.php +++ b/api/vendor/symfony/translation/TranslatableMessage.php @@ -23,7 +23,7 @@ class TranslatableMessage implements TranslatableInterface private $parameters; private $domain; - public function __construct(string $message, array $parameters = [], string $domain = null) + public function __construct(string $message, array $parameters = [], ?string $domain = null) { $this->message = $message; $this->parameters = $parameters; @@ -50,7 +50,7 @@ public function getDomain(): ?string return $this->domain; } - public function trans(TranslatorInterface $translator, string $locale = null): string + public function trans(TranslatorInterface $translator, ?string $locale = null): string { return $translator->trans($this->getMessage(), array_map( static function ($parameter) use ($translator, $locale) { diff --git a/api/vendor/symfony/translation/Translator.php b/api/vendor/symfony/translation/Translator.php index dc0626093..9270e51dc 100644 --- a/api/vendor/symfony/translation/Translator.php +++ b/api/vendor/symfony/translation/Translator.php @@ -89,7 +89,7 @@ class Translator implements TranslatorInterface, TranslatorBagInterface, LocaleA /** * @throws InvalidArgumentException If a locale contains invalid characters */ - public function __construct(string $locale, MessageFormatterInterface $formatter = null, string $cacheDir = null, bool $debug = false, array $cacheVary = []) + public function __construct(string $locale, ?MessageFormatterInterface $formatter = null, ?string $cacheDir = null, bool $debug = false, array $cacheVary = []) { $this->setLocale($locale); @@ -127,7 +127,7 @@ public function addLoader(string $format, LoaderInterface $loader) * * @throws InvalidArgumentException If the locale contains invalid characters */ - public function addResource(string $format, $resource, string $locale, string $domain = null) + public function addResource(string $format, $resource, string $locale, ?string $domain = null) { if (null === $domain) { $domain = 'messages'; @@ -194,7 +194,7 @@ public function getFallbackLocales(): array /** * {@inheritdoc} */ - public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null) + public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null) { if (null === $id || '' === $id) { return ''; @@ -229,7 +229,7 @@ public function trans(?string $id, array $parameters = [], string $domain = null /** * {@inheritdoc} */ - public function getCatalogue(string $locale = null) + public function getCatalogue(?string $locale = null) { if (!$locale) { $locale = $this->getLocale(); diff --git a/api/vendor/symfony/translation/TranslatorBag.php b/api/vendor/symfony/translation/TranslatorBag.php index 6d98455e5..c8ae1a2fa 100644 --- a/api/vendor/symfony/translation/TranslatorBag.php +++ b/api/vendor/symfony/translation/TranslatorBag.php @@ -38,7 +38,7 @@ public function addBag(TranslatorBagInterface $bag): void /** * {@inheritdoc} */ - public function getCatalogue(string $locale = null): MessageCatalogueInterface + public function getCatalogue(?string $locale = null): MessageCatalogueInterface { if (null === $locale || !isset($this->catalogues[$locale])) { $this->catalogues[$locale] = new MessageCatalogue($locale); @@ -70,7 +70,7 @@ public function diff(TranslatorBagInterface $diffBag): self $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::NEW_BATCH); $newCatalogue = new MessageCatalogue($locale); - foreach ($operation->getDomains() as $domain) { + foreach ($catalogue->getDomains() as $domain) { $newCatalogue->add($operation->getNewMessages($domain), $domain); } @@ -94,7 +94,10 @@ public function intersect(TranslatorBagInterface $intersectBag): self $obsoleteCatalogue = new MessageCatalogue($locale); foreach ($operation->getDomains() as $domain) { - $obsoleteCatalogue->add($operation->getObsoleteMessages($domain), $domain); + $obsoleteCatalogue->add( + array_diff($operation->getMessages($domain), $operation->getNewMessages($domain)), + $domain + ); } $diff->addCatalogue($obsoleteCatalogue); diff --git a/api/vendor/symfony/translation/TranslatorBagInterface.php b/api/vendor/symfony/translation/TranslatorBagInterface.php index 422897735..3fc3bda39 100644 --- a/api/vendor/symfony/translation/TranslatorBagInterface.php +++ b/api/vendor/symfony/translation/TranslatorBagInterface.php @@ -31,5 +31,5 @@ interface TranslatorBagInterface * * @throws InvalidArgumentException If the locale contains invalid characters */ - public function getCatalogue(string $locale = null); + public function getCatalogue(?string $locale = null); } diff --git a/api/vendor/symfony/translation/Util/ArrayConverter.php b/api/vendor/symfony/translation/Util/ArrayConverter.php index f69c2e3c6..cbab0c590 100644 --- a/api/vendor/symfony/translation/Util/ArrayConverter.php +++ b/api/vendor/symfony/translation/Util/ArrayConverter.php @@ -38,7 +38,7 @@ public static function expandToTree(array $messages) $tree = []; foreach ($messages as $id => $value) { - $referenceToElement = &self::getElementByPath($tree, explode('.', $id)); + $referenceToElement = &self::getElementByPath($tree, self::getKeyParts($id)); $referenceToElement = $value; @@ -65,6 +65,7 @@ private static function &getElementByPath(array &$tree, array $parts) $elem = &$elem[implode('.', \array_slice($parts, $i))]; break; } + $parentOfElem = &$elem; $elem = &$elem[$part]; } @@ -96,4 +97,48 @@ private static function cancelExpand(array &$tree, string $prefix, array $node) } } } + + /** + * @return string[] + */ + private static function getKeyParts(string $key): array + { + $parts = explode('.', $key); + $partsCount = \count($parts); + + $result = []; + $buffer = ''; + + foreach ($parts as $index => $part) { + if (0 === $index && '' === $part) { + $buffer = '.'; + + continue; + } + + if ($index === $partsCount - 1 && '' === $part) { + $buffer .= '.'; + $result[] = $buffer; + + continue; + } + + if (isset($parts[$index + 1]) && '' === $parts[$index + 1]) { + $buffer .= $part; + + continue; + } + + if ($buffer) { + $result[] = $buffer.$part; + $buffer = ''; + + continue; + } + + $result[] = $part; + } + + return $result; + } } diff --git a/api/vendor/symfony/var-dumper/Caster/ArgsStub.php b/api/vendor/symfony/var-dumper/Caster/ArgsStub.php index f8b485bd4..b3f7bbee3 100644 --- a/api/vendor/symfony/var-dumper/Caster/ArgsStub.php +++ b/api/vendor/symfony/var-dumper/Caster/ArgsStub.php @@ -28,7 +28,7 @@ public function __construct(array $args, string $function, ?string $class) $values = []; foreach ($args as $k => $v) { - $values[$k] = !is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v; + $values[$k] = !\is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v; } if (null === $params) { parent::__construct($values, false); diff --git a/api/vendor/symfony/var-dumper/Caster/Caster.php b/api/vendor/symfony/var-dumper/Caster/Caster.php index 53f4461d0..09238093d 100644 --- a/api/vendor/symfony/var-dumper/Caster/Caster.php +++ b/api/vendor/symfony/var-dumper/Caster/Caster.php @@ -42,12 +42,12 @@ class Caster * * @param bool $hasDebugInfo Whether the __debugInfo method exists on $obj or not */ - public static function castObject(object $obj, string $class, bool $hasDebugInfo = false, string $debugClass = null): array + public static function castObject(object $obj, string $class, bool $hasDebugInfo = false, ?string $debugClass = null): array { if ($hasDebugInfo) { try { $debugInfo = $obj->__debugInfo(); - } catch (\Exception $e) { + } catch (\Throwable $e) { // ignore failing __debugInfo() $hasDebugInfo = false; } @@ -115,7 +115,7 @@ public static function castObject(object $obj, string $class, bool $hasDebugInfo * @param array $a The array containing the properties to filter * @param int $filter A bit field of Caster::EXCLUDE_* constants specifying which properties to filter out * @param string[] $listedProperties List of properties to exclude when Caster::EXCLUDE_VERBOSE is set, and to preserve when Caster::EXCLUDE_NOT_IMPORTANT is set - * @param int &$count Set to the number of removed properties + * @param int|null &$count Set to the number of removed properties */ public static function filter(array $a, int $filter, array $listedProperties = [], ?int &$count = 0): array { diff --git a/api/vendor/symfony/var-dumper/Caster/DateCaster.php b/api/vendor/symfony/var-dumper/Caster/DateCaster.php index 99f53849b..d07bac583 100644 --- a/api/vendor/symfony/var-dumper/Caster/DateCaster.php +++ b/api/vendor/symfony/var-dumper/Caster/DateCaster.php @@ -27,7 +27,7 @@ class DateCaster public static function castDateTime(\DateTimeInterface $d, array $a, Stub $stub, bool $isNested, int $filter) { $prefix = Caster::PREFIX_VIRTUAL; - $location = $d->getTimezone()->getLocation(); + $location = $d->getTimezone() ? $d->getTimezone()->getLocation() : null; $fromNow = (new \DateTime())->diff($d); $title = $d->format('l, F j, Y') @@ -103,11 +103,11 @@ public static function castPeriod(\DatePeriod $p, array $a, Stub $stub, bool $is } $period = sprintf( - 'every %s, from %s (%s) %s', + 'every %s, from %s%s %s', self::formatInterval($p->getDateInterval()), + $p->include_start_date ? '[' : ']', self::formatDateTime($p->getStartDate()), - $p->include_start_date ? 'included' : 'excluded', - ($end = $p->getEndDate()) ? 'to '.self::formatDateTime($end) : 'recurring '.$p->recurrences.' time/s' + ($end = $p->getEndDate()) ? 'to '.self::formatDateTime($end).(\PHP_VERSION_ID >= 80200 && $p->include_end_date ? ']' : '[') : 'recurring '.$p->recurrences.' time/s' ); $p = [Caster::PREFIX_VIRTUAL.'period' => new ConstStub($period, implode("\n", $dates))]; diff --git a/api/vendor/symfony/var-dumper/Caster/IntlCaster.php b/api/vendor/symfony/var-dumper/Caster/IntlCaster.php index 23b9d5da3..1ed91d4d6 100644 --- a/api/vendor/symfony/var-dumper/Caster/IntlCaster.php +++ b/api/vendor/symfony/var-dumper/Caster/IntlCaster.php @@ -102,7 +102,7 @@ public static function castNumberFormatter(\NumberFormatter $c, array $a, Stub $ 'SIGNIFICANT_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL), 'MONETARY_GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL), ] - ), + ), ]; return self::castError($c, $a); diff --git a/api/vendor/symfony/var-dumper/Caster/LinkStub.php b/api/vendor/symfony/var-dumper/Caster/LinkStub.php index 7e0780339..bd4c796a5 100644 --- a/api/vendor/symfony/var-dumper/Caster/LinkStub.php +++ b/api/vendor/symfony/var-dumper/Caster/LinkStub.php @@ -23,7 +23,7 @@ class LinkStub extends ConstStub private static $vendorRoots; private static $composerRoots; - public function __construct(string $label, int $line = 0, string $href = null) + public function __construct(string $label, int $line = 0, ?string $href = null) { $this->value = $label; diff --git a/api/vendor/symfony/var-dumper/Caster/MysqliCaster.php b/api/vendor/symfony/var-dumper/Caster/MysqliCaster.php new file mode 100644 index 000000000..bfe6f0822 --- /dev/null +++ b/api/vendor/symfony/var-dumper/Caster/MysqliCaster.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarDumper\Caster; + +use Symfony\Component\VarDumper\Cloner\Stub; + +/** + * @author Nicolas Grekas + * + * @internal + */ +final class MysqliCaster +{ + public static function castMysqliDriver(\mysqli_driver $c, array $a, Stub $stub, bool $isNested): array + { + foreach ($a as $k => $v) { + if (isset($c->$k)) { + $a[$k] = $c->$k; + } + } + + return $a; + } +} diff --git a/api/vendor/symfony/var-dumper/Caster/ReflectionCaster.php b/api/vendor/symfony/var-dumper/Caster/ReflectionCaster.php index 274ee0d98..87e5ffcc0 100644 --- a/api/vendor/symfony/var-dumper/Caster/ReflectionCaster.php +++ b/api/vendor/symfony/var-dumper/Caster/ReflectionCaster.php @@ -42,7 +42,7 @@ public static function castClosure(\Closure $c, array $a, Stub $stub, bool $isNe $a = static::castFunctionAbstract($c, $a, $stub, $isNested, $filter); - if (!str_contains($c->name, '{closure}')) { + if (!str_contains($c->name, '{closure')) { $stub->class = isset($a[$prefix.'class']) ? $a[$prefix.'class']->value.'::'.$c->name : $c->name; unset($a[$prefix.'class']); } @@ -83,13 +83,13 @@ public static function castGenerator(\Generator $c, array $a, Stub $stub, bool $ // Cannot create ReflectionGenerator based on a terminated Generator try { $reflectionGenerator = new \ReflectionGenerator($c); + + return self::castReflectionGenerator($reflectionGenerator, $a, $stub, $isNested); } catch (\Exception $e) { $a[Caster::PREFIX_VIRTUAL.'closed'] = true; return $a; } - - return self::castReflectionGenerator($reflectionGenerator, $a, $stub, $isNested); } public static function castType(\ReflectionType $c, array $a, Stub $stub, bool $isNested) @@ -116,10 +116,16 @@ public static function castType(\ReflectionType $c, array $a, Stub $stub, bool $ public static function castAttribute(\ReflectionAttribute $c, array $a, Stub $stub, bool $isNested) { - self::addMap($a, $c, [ + $map = [ 'name' => 'getName', 'arguments' => 'getArguments', - ]); + ]; + + if (\PHP_VERSION_ID >= 80400) { + unset($map['name']); + } + + self::addMap($a, $c, $map); return $a; } @@ -197,7 +203,7 @@ public static function castFunctionAbstract(\ReflectionFunctionAbstract $c, arra self::addMap($a, $c, [ 'returnsReference' => 'returnsReference', 'returnType' => 'getReturnType', - 'class' => 'getClosureScopeClass', + 'class' => \PHP_VERSION_ID >= 80111 ? 'getClosureCalledClass' : 'getClosureScopeClass', 'this' => 'getClosureThis', ]); @@ -292,7 +298,7 @@ public static function castParameter(\ReflectionParameter $c, array $a, Stub $st if ($c->isOptional()) { try { $a[$prefix.'default'] = $v = $c->getDefaultValue(); - if ($c->isDefaultValueConstant()) { + if ($c->isDefaultValueConstant() && !\is_object($v)) { $a[$prefix.'default'] = new ConstStub($c->getDefaultValueConstantName(), $v); } if (null === $v) { @@ -362,7 +368,7 @@ public static function getSignature(array $a) if (!$type instanceof \ReflectionNamedType) { $signature .= $type.' '; } else { - if (!$param->isOptional() && $param->allowsNull() && 'mixed' !== $type->getName()) { + if ($param->allowsNull() && 'mixed' !== $type->getName()) { $signature .= '?'; } $signature .= substr(strrchr('\\'.$type->getName(), '\\'), 1).' '; diff --git a/api/vendor/symfony/var-dumper/Caster/SplCaster.php b/api/vendor/symfony/var-dumper/Caster/SplCaster.php index 07f445116..d7db8f894 100644 --- a/api/vendor/symfony/var-dumper/Caster/SplCaster.php +++ b/api/vendor/symfony/var-dumper/Caster/SplCaster.php @@ -229,10 +229,11 @@ private static function castSplArray($c, array $a, Stub $stub, bool $isNested): $a = Caster::castObject($c, \get_class($c), method_exists($c, '__debugInfo'), $stub->class); $c->setFlags($flags); } - if (\PHP_VERSION_ID < 70400) { - $a[$prefix.'storage'] = $c->getArrayCopy(); - } + + unset($a["\0ArrayObject\0storage"], $a["\0ArrayIterator\0storage"]); + $a += [ + $prefix.'storage' => $c->getArrayCopy(), $prefix.'flag::STD_PROP_LIST' => (bool) ($flags & \ArrayObject::STD_PROP_LIST), $prefix.'flag::ARRAY_AS_PROPS' => (bool) ($flags & \ArrayObject::ARRAY_AS_PROPS), ]; diff --git a/api/vendor/symfony/var-dumper/Caster/TraceStub.php b/api/vendor/symfony/var-dumper/Caster/TraceStub.php index 5eea1c876..d215d8db0 100644 --- a/api/vendor/symfony/var-dumper/Caster/TraceStub.php +++ b/api/vendor/symfony/var-dumper/Caster/TraceStub.php @@ -25,7 +25,7 @@ class TraceStub extends Stub public $sliceLength; public $numberingOffset; - public function __construct(array $trace, bool $keepArgs = true, int $sliceOffset = 0, int $sliceLength = null, int $numberingOffset = 0) + public function __construct(array $trace, bool $keepArgs = true, int $sliceOffset = 0, ?int $sliceLength = null, int $numberingOffset = 0) { $this->value = $trace; $this->keepArgs = $keepArgs; diff --git a/api/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php b/api/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php index 721513c5d..5b455651b 100644 --- a/api/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php +++ b/api/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php @@ -1,4 +1,5 @@ ['Symfony\Component\VarDumper\Caster\DsCaster', 'castPair'], 'Symfony\Component\VarDumper\Caster\DsPairStub' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castPairStub'], + 'mysqli_driver' => ['Symfony\Component\VarDumper\Caster\MysqliCaster', 'castMysqliDriver'], + 'CurlHandle' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'], ':curl' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'], @@ -214,7 +216,7 @@ abstract class AbstractCloner implements ClonerInterface * * @see addCasters */ - public function __construct(array $casters = null) + public function __construct(?array $casters = null) { if (null === $casters) { $casters = static::$defaultCasters; diff --git a/api/vendor/symfony/var-dumper/Dumper/AbstractDumper.php b/api/vendor/symfony/var-dumper/Dumper/AbstractDumper.php index 3a2884a8f..66da669de 100644 --- a/api/vendor/symfony/var-dumper/Dumper/AbstractDumper.php +++ b/api/vendor/symfony/var-dumper/Dumper/AbstractDumper.php @@ -42,12 +42,11 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface * @param string|null $charset The default character encoding to use for non-UTF8 strings * @param int $flags A bit field of static::DUMP_* constants to fine tune dumps representation */ - public function __construct($output = null, string $charset = null, int $flags = 0) + public function __construct($output = null, ?string $charset = null, int $flags = 0) { $this->flags = $flags; - $this->setCharset($charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8'); - $this->decimalPoint = localeconv(); - $this->decimalPoint = $this->decimalPoint['decimal_point']; + $this->setCharset($charset ?: \ini_get('php.output_encoding') ?: \ini_get('default_charset') ?: 'UTF-8'); + $this->decimalPoint = \PHP_VERSION_ID >= 80000 ? '.' : localeconv()['decimal_point']; $this->setOutput($output ?: static::$defaultOutput); if (!$output && \is_string(static::$defaultOutput)) { static::$defaultOutput = $this->outputStream; @@ -120,8 +119,7 @@ public function setIndentPad(string $pad) */ public function dump(Data $data, $output = null) { - $this->decimalPoint = localeconv(); - $this->decimalPoint = $this->decimalPoint['decimal_point']; + $this->decimalPoint = \PHP_VERSION_ID >= 80000 ? '.' : localeconv()['decimal_point']; if ($locale = $this->flags & (self::DUMP_COMMA_SEPARATOR | self::DUMP_TRAILING_COMMA) ? setlocale(\LC_NUMERIC, 0) : null) { setlocale(\LC_NUMERIC, 'C'); diff --git a/api/vendor/symfony/var-dumper/Dumper/CliDumper.php b/api/vendor/symfony/var-dumper/Dumper/CliDumper.php index d5147b045..3e86e4ab4 100644 --- a/api/vendor/symfony/var-dumper/Dumper/CliDumper.php +++ b/api/vendor/symfony/var-dumper/Dumper/CliDumper.php @@ -64,7 +64,7 @@ class CliDumper extends AbstractDumper /** * {@inheritdoc} */ - public function __construct($output = null, string $charset = null, int $flags = 0) + public function __construct($output = null, ?string $charset = null, int $flags = 0) { parent::__construct($output, $charset, $flags); @@ -83,7 +83,7 @@ public function __construct($output = null, string $charset = null, int $flags = ]); } - $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: 'file://%f#L%l'; + $this->displayOptions['fileLinkFormat'] = \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: 'file://%f#L%l'; } /** @@ -128,6 +128,7 @@ public function setDisplayOptions(array $displayOptions) public function dumpScalar(Cursor $cursor, string $type, $value) { $this->dumpKey($cursor); + $this->collapseNextHash = $this->expandNextHash = false; $style = 'const'; $attr = $cursor->attr; @@ -191,6 +192,7 @@ public function dumpScalar(Cursor $cursor, string $type, $value) public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut) { $this->dumpKey($cursor); + $this->collapseNextHash = $this->expandNextHash = false; $attr = $cursor->attr; if ($bin) { @@ -198,6 +200,9 @@ public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut) } if ('' === $str) { $this->line .= '""'; + if ($cut) { + $this->line .= '…'.$cut; + } $this->endValue($cursor); } else { $attr += [ @@ -283,6 +288,7 @@ public function enterHash(Cursor $cursor, int $type, $class, bool $hasChild) } $this->dumpKey($cursor); + $this->expandNextHash = false; $attr = $cursor->attr; if ($this->collapseNextHash) { @@ -445,7 +451,8 @@ protected function style(string $style, string $value, array $attr = []) if (null === $this->handlesHrefGracefully) { $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR') - && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100); + && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100) + && !isset($_SERVER['IDEA_INITIAL_DIRECTORY']); } if (isset($attr['ellipsis'], $attr['ellipsis-type'])) { @@ -557,6 +564,10 @@ protected function supportsColors() */ protected function dumpLine(int $depth, bool $endOfValue = false) { + if (null === $this->colors) { + $this->colors = $this->supportsColors(); + } + if ($this->colors) { $this->line = sprintf("\033[%sm%s\033[m", $this->styles['default'], $this->line); } @@ -599,19 +610,30 @@ private function hasColorSupport($stream): bool return false; } - if ('Hyper' === getenv('TERM_PROGRAM')) { + // Detect msysgit/mingw and assume this is a tty because detection + // does not work correctly, see https://github.com/composer/composer/issues/9690 + if (!@stream_isatty($stream) && !\in_array(strtoupper((string) getenv('MSYSTEM')), ['MINGW32', 'MINGW64'], true)) { + return false; + } + + if ('\\' === \DIRECTORY_SEPARATOR && @sapi_windows_vt100_support($stream)) { + return true; + } + + if ('Hyper' === getenv('TERM_PROGRAM') + || false !== getenv('COLORTERM') + || false !== getenv('ANSICON') + || 'ON' === getenv('ConEmuANSI') + ) { return true; } - if (\DIRECTORY_SEPARATOR === '\\') { - return (\function_exists('sapi_windows_vt100_support') - && @sapi_windows_vt100_support($stream)) - || false !== getenv('ANSICON') - || 'ON' === getenv('ConEmuANSI') - || 'xterm' === getenv('TERM'); + if ('dumb' === $term = (string) getenv('TERM')) { + return false; } - return stream_isatty($stream); + // See https://github.com/chalk/supports-color/blob/d4f413efaf8da045c5ab440ed418ef02dbb28bf1/index.js#L157 + return preg_match('/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/', $term); } /** diff --git a/api/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php b/api/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php index 2e2c81816..dee887ec1 100644 --- a/api/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php +++ b/api/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php @@ -30,7 +30,7 @@ final class SourceContextProvider implements ContextProviderInterface private $projectDir; private $fileLinkFormatter; - public function __construct(string $charset = null, string $projectDir = null, FileLinkFormatter $fileLinkFormatter = null, int $limit = 9) + public function __construct(?string $charset = null, ?string $projectDir = null, ?FileLinkFormatter $fileLinkFormatter = null, int $limit = 9) { $this->charset = $charset; $this->projectDir = $projectDir; @@ -44,7 +44,7 @@ public function getContext(): ?array $file = $trace[1]['file']; $line = $trace[1]['line']; - $name = false; + $name = '-' === $file || 'Standard input code' === $file ? 'Standard input code' : false; $fileExcerpt = false; for ($i = 2; $i < $this->limit; ++$i) { diff --git a/api/vendor/symfony/var-dumper/Dumper/HtmlDumper.php b/api/vendor/symfony/var-dumper/Dumper/HtmlDumper.php index 6c3abaa2b..55030cfd0 100644 --- a/api/vendor/symfony/var-dumper/Dumper/HtmlDumper.php +++ b/api/vendor/symfony/var-dumper/Dumper/HtmlDumper.php @@ -77,11 +77,11 @@ class HtmlDumper extends CliDumper /** * {@inheritdoc} */ - public function __construct($output = null, string $charset = null, int $flags = 0) + public function __construct($output = null, ?string $charset = null, int $flags = 0) { AbstractDumper::__construct($output, $charset, $flags); $this->dumpId = 'sf-dump-'.mt_rand(); - $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); + $this->displayOptions['fileLinkFormat'] = \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format'); $this->styles = static::$themes['dark'] ?? self::$themes['dark']; } @@ -167,9 +167,9 @@ protected function getDumpHeader() }; refStyle.innerHTML = 'pre.sf-dump .sf-dump-compact, .sf-dump-str-collapse .sf-dump-str-collapse, .sf-dump-str-expand .sf-dump-str-expand { display: none; }'; -(doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle); +doc.head.appendChild(refStyle); refStyle = doc.createElement('style'); -(doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle); +doc.head.appendChild(refStyle); if (!doc.addEventListener) { addEventListener = function (element, eventName, callback) { @@ -369,7 +369,7 @@ function xpathHasClass(className) { if (/\bsf-dump-toggle\b/.test(a.className)) { e.preventDefault(); if (!toggle(a, isCtrlKey(e))) { - var r = doc.getElementById(a.getAttribute('href').substr(1)), + var r = doc.getElementById(a.getAttribute('href').slice(1)), s = r.previousSibling, f = r.parentNode, t = a.parentNode; @@ -430,7 +430,7 @@ function xpathHasClass(className) { x += elt.parentNode.getAttribute('data-depth')/1; } } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) { - a = a.substr(1); + a = a.slice(1); elt.className += ' '+a; if (/[\[{]$/.test(elt.previousSibling.nodeValue)) { @@ -864,7 +864,7 @@ protected function style(string $style, string $value, array $attr = []) } if ('const' === $style && isset($attr['value'])) { - $style .= sprintf(' title="%s"', esc(is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value']))); + $style .= sprintf(' title="%s"', esc(\is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value']))); } elseif ('public' === $style) { $style .= sprintf(' title="%s"', empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property'); } elseif ('str' === $style && 1 < $attr['length']) { @@ -960,7 +960,7 @@ protected function dumpLine(int $depth, bool $endOfValue = false) } $this->lastDepth = $depth; - $this->line = mb_convert_encoding($this->line, 'HTML-ENTITIES', 'UTF-8'); + $this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8'); if (-1 === $depth) { AbstractDumper::dumpLine(0); diff --git a/api/vendor/symfony/var-dumper/Dumper/ServerDumper.php b/api/vendor/symfony/var-dumper/Dumper/ServerDumper.php index 94795bf6d..b8871b00b 100644 --- a/api/vendor/symfony/var-dumper/Dumper/ServerDumper.php +++ b/api/vendor/symfony/var-dumper/Dumper/ServerDumper.php @@ -30,7 +30,7 @@ class ServerDumper implements DataDumperInterface * @param DataDumperInterface|null $wrappedDumper A wrapped instance used whenever we failed contacting the server * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name */ - public function __construct(string $host, DataDumperInterface $wrappedDumper = null, array $contextProviders = []) + public function __construct(string $host, ?DataDumperInterface $wrappedDumper = null, array $contextProviders = []) { $this->connection = new Connection($host, $contextProviders); $this->wrappedDumper = $wrappedDumper; diff --git a/api/vendor/symfony/var-dumper/LICENSE b/api/vendor/symfony/var-dumper/LICENSE index c1f0aac1c..29f72d5e9 100644 --- a/api/vendor/symfony/var-dumper/LICENSE +++ b/api/vendor/symfony/var-dumper/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2021 Fabien Potencier +Copyright (c) 2014-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/var-dumper/Resources/bin/var-dump-server b/api/vendor/symfony/var-dumper/Resources/bin/var-dump-server index 98c813a06..f398fcef7 100644 --- a/api/vendor/symfony/var-dumper/Resources/bin/var-dump-server +++ b/api/vendor/symfony/var-dumper/Resources/bin/var-dump-server @@ -10,6 +10,10 @@ * file that was distributed with this source code. */ +if ('cli' !== PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + /** * Starts a dump server to collect and output dumps on a single place with multiple formats support. * diff --git a/api/vendor/symfony/var-dumper/Server/Connection.php b/api/vendor/symfony/var-dumper/Server/Connection.php index d0611a1f6..ebfc6506f 100644 --- a/api/vendor/symfony/var-dumper/Server/Connection.php +++ b/api/vendor/symfony/var-dumper/Server/Connection.php @@ -91,7 +91,7 @@ private function createSocket() { set_error_handler([self::class, 'nullErrorHandler']); try { - return stream_socket_client($this->host, $errno, $errstr, 3, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT); + return stream_socket_client($this->host, $errno, $errstr, 3); } finally { restore_error_handler(); } diff --git a/api/vendor/symfony/var-dumper/Server/DumpServer.php b/api/vendor/symfony/var-dumper/Server/DumpServer.php index f9735db78..b006ea120 100644 --- a/api/vendor/symfony/var-dumper/Server/DumpServer.php +++ b/api/vendor/symfony/var-dumper/Server/DumpServer.php @@ -32,7 +32,7 @@ class DumpServer */ private $socket; - public function __construct(string $host, LoggerInterface $logger = null) + public function __construct(string $host, ?LoggerInterface $logger = null) { if (!str_contains($host, '://')) { $host = 'tcp://'.$host; diff --git a/api/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php b/api/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php index 33d60c020..5959195c3 100644 --- a/api/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php +++ b/api/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php @@ -27,7 +27,7 @@ trait VarDumperTestTrait 'flags' => null, ]; - protected function setUpVarDumper(array $casters, int $flags = null): void + protected function setUpVarDumper(array $casters, ?int $flags = null): void { $this->varDumperConfig['casters'] = $casters; $this->varDumperConfig['flags'] = $flags; diff --git a/api/vendor/symfony/var-dumper/VarDumper.php b/api/vendor/symfony/var-dumper/VarDumper.php index a1c63172f..9db5811ea 100644 --- a/api/vendor/symfony/var-dumper/VarDumper.php +++ b/api/vendor/symfony/var-dumper/VarDumper.php @@ -49,7 +49,7 @@ public static function dump($var) /** * @return callable|null */ - public static function setHandler(callable $callable = null) + public static function setHandler(?callable $callable = null) { $prevHandler = self::$handler; @@ -99,7 +99,7 @@ private static function getDefaultContextProviders(): array { $contextProviders = []; - if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && (class_exists(Request::class))) { + if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && class_exists(Request::class)) { $requestStack = new RequestStack(); $requestStack->push(Request::createFromGlobals()); $contextProviders['request'] = new RequestContextProvider($requestStack); diff --git a/api/vendor/symfony/var-dumper/composer.json b/api/vendor/symfony/var-dumper/composer.json index dc46f58d9..ea46a72bd 100644 --- a/api/vendor/symfony/var-dumper/composer.json +++ b/api/vendor/symfony/var-dumper/composer.json @@ -23,12 +23,12 @@ "require-dev": { "ext-iconv": "*", "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", "symfony/process": "^4.4|^5.0|^6.0", "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<4.4" }, "suggest": { diff --git a/api/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php b/api/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php index 4cebe44b0..379a76517 100644 --- a/api/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php +++ b/api/vendor/symfony/var-exporter/Exception/ClassNotFoundException.php @@ -13,7 +13,7 @@ class ClassNotFoundException extends \Exception implements ExceptionInterface { - public function __construct(string $class, \Throwable $previous = null) + public function __construct(string $class, ?\Throwable $previous = null) { parent::__construct(sprintf('Class "%s" not found.', $class), 0, $previous); } diff --git a/api/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php b/api/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php index 771ee612d..b9ba225d8 100644 --- a/api/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php +++ b/api/vendor/symfony/var-exporter/Exception/NotInstantiableTypeException.php @@ -13,7 +13,7 @@ class NotInstantiableTypeException extends \Exception implements ExceptionInterface { - public function __construct(string $type, \Throwable $previous = null) + public function __construct(string $type, ?\Throwable $previous = null) { parent::__construct(sprintf('Type "%s" is not instantiable.', $type), 0, $previous); } diff --git a/api/vendor/symfony/var-exporter/Instantiator.php b/api/vendor/symfony/var-exporter/Instantiator.php index 9fd8cf372..368c769ac 100644 --- a/api/vendor/symfony/var-exporter/Instantiator.php +++ b/api/vendor/symfony/var-exporter/Instantiator.php @@ -39,10 +39,10 @@ final class Instantiator * Bar::class => ['privateBarProperty' => $propertyValue], * ]); * - * Instances of ArrayObject, ArrayIterator and SplObjectHash can be created + * Instances of ArrayObject, ArrayIterator and SplObjectStorage can be created * by using the special "\0" property name to define their internal value: * - * // creates an SplObjectHash where $info1 is attached to $obj1, etc. + * // creates an SplObjectStorage where $info1 is attached to $obj1, etc. * Instantiator::instantiate(SplObjectStorage::class, ["\0" => [$obj1, $info1, $obj2, $info2...]]); * * // creates an ArrayObject populated with $inputArray @@ -53,8 +53,6 @@ final class Instantiator * @param array $privateProperties The private properties to set on the instance, * keyed by their declaring class * - * @return object The created instance - * * @throws ExceptionInterface When the instance cannot be created */ public static function instantiate(string $class, array $properties = [], array $privateProperties = []): object diff --git a/api/vendor/symfony/var-exporter/Internal/Exporter.php b/api/vendor/symfony/var-exporter/Internal/Exporter.php index 12a0de44e..51c29e45f 100644 --- a/api/vendor/symfony/var-exporter/Internal/Exporter.php +++ b/api/vendor/symfony/var-exporter/Internal/Exporter.php @@ -73,28 +73,36 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount $class = \get_class($value); $reflector = Registry::$reflectors[$class] ?? Registry::getClassReflector($class); + $properties = []; if ($reflector->hasMethod('__serialize')) { if (!$reflector->getMethod('__serialize')->isPublic()) { throw new \Error(sprintf('Call to %s method "%s::__serialize()".', $reflector->getMethod('__serialize')->isProtected() ? 'protected' : 'private', $class)); } - if (!\is_array($properties = $value->__serialize())) { + if (!\is_array($serializeProperties = $value->__serialize())) { throw new \TypeError($class.'::__serialize() must return an array'); } + if ($reflector->hasMethod('__unserialize')) { + $properties = $serializeProperties; + } else { + foreach ($serializeProperties as $n => $v) { + $c = \PHP_VERSION_ID >= 80100 && $reflector->hasProperty($n) && ($p = $reflector->getProperty($n))->isReadOnly() ? $p->class : 'stdClass'; + $properties[$c][$n] = $v; + } + } + goto prepare_value; } - $properties = []; $sleep = null; - $arrayValue = (array) $value; $proto = Registry::$prototypes[$class]; if (($value instanceof \ArrayIterator || $value instanceof \ArrayObject) && null !== $proto) { // ArrayIterator and ArrayObject need special care because their "flags" // option changes the behavior of the (array) casting operator. - $properties = self::getArrayObjectProperties($value, $arrayValue, $proto); + [$arrayValue, $properties] = self::getArrayObjectProperties($value, $proto); // populates Registry::$prototypes[$class] with a new instance Registry::getClassReflector($class, Registry::$instantiableWithoutConstructor[$class], Registry::$cloneable[$class]); @@ -106,25 +114,26 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount $properties[] = $value[$v]; } $properties = ['SplObjectStorage' => ["\0" => $properties]]; - } elseif ($value instanceof \Serializable || $value instanceof \__PHP_Incomplete_Class) { + $arrayValue = (array) $value; + } elseif ($value instanceof \Serializable + || $value instanceof \__PHP_Incomplete_Class + || \PHP_VERSION_ID < 80200 && $value instanceof \DatePeriod + ) { ++$objectsCount; $objectsPool[$value] = [$id = \count($objectsPool), serialize($value), [], 0]; $value = new Reference($id); goto handle_value; - } - - if (method_exists($class, '__sleep')) { - if (!\is_array($sleep = $value->__sleep())) { - trigger_error('serialize(): __sleep should return an array only containing the names of instance-variables to serialize', \E_USER_NOTICE); - $value = null; - goto handle_value; - } - foreach ($sleep as $name) { - if (property_exists($value, $name) && !$reflector->hasProperty($name)) { - $arrayValue[$name] = $value->$name; + } else { + if (method_exists($class, '__sleep')) { + if (!\is_array($sleep = $value->__sleep())) { + trigger_error('serialize(): __sleep should return an array only containing the names of instance-variables to serialize', \E_USER_NOTICE); + $value = null; + goto handle_value; } + $sleep = array_flip($sleep); } - $sleep = array_flip($sleep); + + $arrayValue = (array) $value; } $proto = (array) $proto; @@ -133,7 +142,7 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount $i = 0; $n = (string) $name; if ('' === $n || "\0" !== $n[0]) { - $c = 'stdClass'; + $c = \PHP_VERSION_ID >= 80100 && $reflector->hasProperty($n) && ($p = $reflector->getProperty($n))->isReadOnly() ? $p->class : 'stdClass'; } elseif ('*' === $n[1]) { $n = substr($n, 3); $c = $reflector->getProperty($n)->class; @@ -148,10 +157,11 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount $n = substr($n, 1 + $i); } if (null !== $sleep) { - if (!isset($sleep[$n]) || ($i && $c !== $class)) { + if (!isset($sleep[$name]) && (!isset($sleep[$n]) || ($i && $c !== $class))) { + unset($arrayValue[$name]); continue; } - $sleep[$n] = false; + unset($sleep[$name], $sleep[$n]); } if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) { $properties[$c][$n] = $v; @@ -159,11 +169,12 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount } if ($sleep) { foreach ($sleep as $n => $v) { - if (false !== $v) { - trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $n), \E_USER_NOTICE); - } + trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $n), \E_USER_NOTICE); } } + if (method_exists($class, '__unserialize')) { + $properties = $arrayValue; + } prepare_value: $objectsPool[$value] = [$id = \count($objectsPool)]; @@ -188,12 +199,13 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount public static function export($value, string $indent = '') { switch (true) { - case \is_int($value) || \is_float($value) || $value instanceof \UnitEnum: return var_export($value, true); + case \is_int($value) || \is_float($value): return var_export($value, true); case [] === $value: return '[]'; case false === $value: return 'false'; case true === $value: return 'true'; case null === $value: return 'null'; case '' === $value: return "''"; + case $value instanceof \UnitEnum: return '\\'.ltrim(var_export($value, true), '\\'); } if ($value instanceof Reference) { @@ -212,10 +224,10 @@ public static function export($value, string $indent = '') if (\is_string($value)) { $code = sprintf("'%s'", addcslashes($value, "'\\")); - $code = preg_replace_callback('/([\0\r\n]++)(.)/', function ($m) use ($subIndent) { + $code = preg_replace_callback("/((?:[\\0\\r\\n]|\u{202A}|\u{202B}|\u{202D}|\u{202E}|\u{2066}|\u{2067}|\u{2068}|\u{202C}|\u{2069})++)(.)/", function ($m) use ($subIndent) { $m[1] = sprintf('\'."%s".\'', str_replace( - ["\0", "\r", "\n", '\n\\'], - ['\0', '\r', '\n', '\n"'."\n".$subIndent.'."\\'], + ["\0", "\r", "\n", "\u{202A}", "\u{202B}", "\u{202D}", "\u{202E}", "\u{2066}", "\u{2067}", "\u{2068}", "\u{202C}", "\u{2069}", '\n\\'], + ['\0', '\r', '\n', '\u{202A}', '\u{202B}', '\u{202D}', '\u{202E}', '\u{2066}', '\u{2067}', '\u{2068}', '\u{202C}', '\u{2069}', '\n"'."\n".$subIndent.'."\\'], $m[1] )); @@ -230,7 +242,7 @@ public static function export($value, string $indent = '') return $m[1].$m[2]; }, $code, -1, $count); - if ($count && 0 === strpos($code, "''.")) { + if ($count && str_starts_with($code, "''.")) { $code = substr($code, 3); } @@ -284,7 +296,7 @@ private static function exportRegistry(Registry $value, string $indent, string $ $r = '\\'.Registry::class; $j = -1; - foreach ($value as $k => $class) { + foreach ($value->classes as $k => $class) { if (':' === ($class[1] ?? null)) { $serializables[$k] = $class; continue; @@ -368,13 +380,13 @@ private static function exportHydrator(Hydrator $value, string $indent, string $ * @param \ArrayIterator|\ArrayObject $value * @param \ArrayIterator|\ArrayObject $proto */ - private static function getArrayObjectProperties($value, array &$arrayValue, $proto): array + private static function getArrayObjectProperties($value, $proto): array { $reflector = $value instanceof \ArrayIterator ? 'ArrayIterator' : 'ArrayObject'; $reflector = Registry::$reflectors[$reflector] ?? Registry::getClassReflector($reflector); $properties = [ - $arrayValue, + $arrayValue = (array) $value, $reflector->getMethod('getFlags')->invoke($value), $value instanceof \ArrayObject ? $reflector->getMethod('getIteratorClass')->invoke($value) : 'ArrayIterator', ]; @@ -400,6 +412,6 @@ private static function getArrayObjectProperties($value, array &$arrayValue, $pr $properties = [$reflector->class => ["\0" => $properties]]; } - return $properties; + return [$arrayValue, $properties]; } } diff --git a/api/vendor/symfony/var-exporter/Internal/Hydrator.php b/api/vendor/symfony/var-exporter/Internal/Hydrator.php index 364d292d9..5ed6bdc94 100644 --- a/api/vendor/symfony/var-exporter/Internal/Hydrator.php +++ b/api/vendor/symfony/var-exporter/Internal/Hydrator.php @@ -55,45 +55,14 @@ public static function hydrate($objects, $values, $properties, $value, $wakeups) public static function getHydrator($class) { - if ('stdClass' === $class) { - return self::$hydrators[$class] = static function ($properties, $objects) { - foreach ($properties as $name => $values) { - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } - } - }; - } - - if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) { - throw new ClassNotFoundException($class); - } - $classReflector = new \ReflectionClass($class); - - if (!$classReflector->isInternal()) { - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, $class); - } - - if ($classReflector->name !== $class) { - return self::$hydrators[$classReflector->name] ?? self::getHydrator($classReflector->name); - } - switch ($class) { - case 'ArrayIterator': - case 'ArrayObject': - $constructor = \Closure::fromCallable([$classReflector->getConstructor(), 'invokeArgs']); - - return self::$hydrators[$class] = static function ($properties, $objects) use ($constructor) { + case 'stdClass': + return self::$hydrators[$class] = static function ($properties, $objects) { foreach ($properties as $name => $values) { - if ("\0" !== $name) { - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } + foreach ($values as $i => $v) { + $objects[$i]->$name = $v; } } - foreach ($properties["\0"] ?? [] as $i => $v) { - $constructor($objects[$i], $v); - } }; case 'ErrorException': @@ -122,6 +91,38 @@ public static function getHydrator($class) }; } + if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) { + throw new ClassNotFoundException($class); + } + $classReflector = new \ReflectionClass($class); + + switch ($class) { + case 'ArrayIterator': + case 'ArrayObject': + $constructor = \Closure::fromCallable([$classReflector->getConstructor(), 'invokeArgs']); + + return self::$hydrators[$class] = static function ($properties, $objects) use ($constructor) { + foreach ($properties as $name => $values) { + if ("\0" !== $name) { + foreach ($values as $i => $v) { + $objects[$i]->$name = $v; + } + } + } + foreach ($properties["\0"] ?? [] as $i => $v) { + $constructor($objects[$i], $v); + } + }; + } + + if (!$classReflector->isInternal()) { + return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, $class); + } + + if ($classReflector->name !== $class) { + return self::$hydrators[$classReflector->name] ?? self::getHydrator($classReflector->name); + } + $propertySetters = []; foreach ($classReflector->getProperties() as $propertyReflector) { if (!$propertyReflector->isStatic()) { diff --git a/api/vendor/symfony/var-exporter/Internal/Registry.php b/api/vendor/symfony/var-exporter/Internal/Registry.php index 49f3c4833..24b77b9ef 100644 --- a/api/vendor/symfony/var-exporter/Internal/Registry.php +++ b/api/vendor/symfony/var-exporter/Internal/Registry.php @@ -27,11 +27,11 @@ class Registry public static $cloneable = []; public static $instantiableWithoutConstructor = []; + public $classes = []; + public function __construct(array $classes) { - foreach ($classes as $i => $class) { - $this->$i = $class; - } + $this->classes = $classes; } public static function unserialize($objects, $serializables) diff --git a/api/vendor/symfony/var-exporter/LICENSE b/api/vendor/symfony/var-exporter/LICENSE index 235841453..7536caeae 100644 --- a/api/vendor/symfony/var-exporter/LICENSE +++ b/api/vendor/symfony/var-exporter/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2021 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/var-exporter/VarExporter.php b/api/vendor/symfony/var-exporter/VarExporter.php index 8bf6f7be7..d4c080915 100644 --- a/api/vendor/symfony/var-exporter/VarExporter.php +++ b/api/vendor/symfony/var-exporter/VarExporter.php @@ -34,13 +34,11 @@ final class VarExporter * * @param mixed $value The value to export * @param bool &$isStaticValue Set to true after execution if the provided value is static, false otherwise - * @param bool &$classes Classes found in the value are added to this list as both keys and values - * - * @return string The value exported as PHP code + * @param array &$foundClasses Classes found in the value are added to this list as both keys and values * * @throws ExceptionInterface When the provided value cannot be serialized */ - public static function export($value, bool &$isStaticValue = null, array &$foundClasses = []): string + public static function export($value, ?bool &$isStaticValue = null, array &$foundClasses = []): string { $isStaticValue = true; @@ -85,7 +83,7 @@ public static function export($value, bool &$isStaticValue = null, array &$found ksort($states); $wakeups = [null]; - foreach ($states as $k => $v) { + foreach ($states as $v) { if (\is_array($v)) { $wakeups[-$v[0]] = $v[1]; } else { diff --git a/api/vendor/symfony/var-exporter/composer.json b/api/vendor/symfony/var-exporter/composer.json index ebd1947f4..29d4901d3 100644 --- a/api/vendor/symfony/var-exporter/composer.json +++ b/api/vendor/symfony/var-exporter/composer.json @@ -17,10 +17,10 @@ ], "require": { "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "symfony/var-dumper": "^4.4.9|^5.0.9" + "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" }, "autoload": { "psr-4": { "Symfony\\Component\\VarExporter\\": "" }, diff --git a/api/vendor/symfony/yaml/CHANGELOG.md b/api/vendor/symfony/yaml/CHANGELOG.md index 21a0225e1..b9561b2af 100644 --- a/api/vendor/symfony/yaml/CHANGELOG.md +++ b/api/vendor/symfony/yaml/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +5.4 +--- + + * Add new `lint:yaml dirname --exclude=/dirname/foo.yaml --exclude=/dirname/bar.yaml` + option to exclude one or more specific files from multiple file list + * Allow negatable for the parse tags option with `--no-parse-tags` + 5.3 --- diff --git a/api/vendor/symfony/yaml/Command/LintCommand.php b/api/vendor/symfony/yaml/Command/LintCommand.php index 042c43a7a..6eac39983 100644 --- a/api/vendor/symfony/yaml/Command/LintCommand.php +++ b/api/vendor/symfony/yaml/Command/LintCommand.php @@ -13,6 +13,8 @@ use Symfony\Component\Console\CI\GithubActionReporter; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Completion\CompletionInput; +use Symfony\Component\Console\Completion\CompletionSuggestions; use Symfony\Component\Console\Exception\InvalidArgumentException; use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Input\InputArgument; @@ -41,7 +43,7 @@ class LintCommand extends Command private $directoryIteratorProvider; private $isReadableProvider; - public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null) + public function __construct(?string $name = null, ?callable $directoryIteratorProvider = null, ?callable $isReadableProvider = null) { parent::__construct($name); @@ -58,7 +60,8 @@ protected function configure() ->setDescription(self::$defaultDescription) ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN') ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format') - ->addOption('parse-tags', null, InputOption::VALUE_NONE, 'Parse custom tags') + ->addOption('exclude', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Path(s) to exclude') + ->addOption('parse-tags', null, InputOption::VALUE_NEGATABLE, 'Parse custom tags', null) ->setHelp(<<%command.name% command lints a YAML file and outputs to STDOUT the first encountered syntax error. @@ -76,6 +79,10 @@ protected function configure() php %command.full_name% dirname php %command.full_name% dirname --format=json +You can also exclude one or more specific files: + + php %command.full_name% dirname --exclude="dirname/foo.yaml" --exclude="dirname/bar.yaml" + EOF ) ; @@ -85,7 +92,9 @@ protected function execute(InputInterface $input, OutputInterface $output) { $io = new SymfonyStyle($input, $output); $filenames = (array) $input->getArgument('filename'); + $excludes = $input->getOption('exclude'); $this->format = $input->getOption('format'); + $flags = $input->getOption('parse-tags'); if ('github' === $this->format && !class_exists(GithubActionReporter::class)) { throw new \InvalidArgumentException('The "github" format is only available since "symfony/console" >= 5.3.'); @@ -96,8 +105,9 @@ protected function execute(InputInterface $input, OutputInterface $output) $this->format = class_exists(GithubActionReporter::class) && GithubActionReporter::isGithubActionEnvironment() ? 'github' : 'txt'; } + $flags = $flags ? Yaml::PARSE_CUSTOM_TAGS : 0; + $this->displayCorrectFiles = $output->isVerbose(); - $flags = $input->getOption('parse-tags') ? Yaml::PARSE_CUSTOM_TAGS : 0; if (['-'] === $filenames) { return $this->display($io, [$this->validate(file_get_contents('php://stdin'), $flags)]); @@ -114,14 +124,16 @@ protected function execute(InputInterface $input, OutputInterface $output) } foreach ($this->getFiles($filename) as $file) { - $filesInfo[] = $this->validate(file_get_contents($file), $flags, $file); + if (!\in_array($file->getPathname(), $excludes, true)) { + $filesInfo[] = $this->validate(file_get_contents($file), $flags, $file); + } } } return $this->display($io, $filesInfo); } - private function validate(string $content, int $flags, string $file = null) + private function validate(string $content, int $flags, ?string $file = null) { $prevErrorHandler = set_error_handler(function ($level, $message, $file, $line) use (&$prevErrorHandler) { if (\E_USER_DEPRECATED === $level) { @@ -267,4 +279,11 @@ private function isReadable(string $fileOrDirectory): bool return $default($fileOrDirectory); } + + public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void + { + if ($input->mustSuggestOptionValuesFor('format')) { + $suggestions->suggestValues(['txt', 'json', 'github']); + } + } } diff --git a/api/vendor/symfony/yaml/Dumper.php b/api/vendor/symfony/yaml/Dumper.php index dcb104ccf..99346aa1e 100644 --- a/api/vendor/symfony/yaml/Dumper.php +++ b/api/vendor/symfony/yaml/Dumper.php @@ -45,8 +45,6 @@ public function __construct(int $indentation = 4) * @param int $inline The level where you switch to inline YAML * @param int $indent The level of indentation (used internally) * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string - * - * @return string The YAML representation of the PHP value */ public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): string { @@ -60,6 +58,8 @@ public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): if ($inline <= 0 || (!\is_array($input) && !$input instanceof TaggedValue && $dumpObjectAsInlineMap) || empty($input)) { $output .= $prefix.Inline::dump($input, $flags); + } elseif ($input instanceof TaggedValue) { + $output .= $this->dumpTaggedValue($input, $inline, $indent, $flags, $prefix); } else { $dumpAsMap = Inline::isHash($input); @@ -69,9 +69,7 @@ public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): } if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value) && false !== strpos($value, "\n") && false === strpos($value, "\r")) { - // If the first line starts with a space character, the spec requires a blockIndicationIndicator - // http://www.yaml.org/spec/1.2/spec.html#id2793979 - $blockIndentationIndicator = (' ' === substr($value, 0, 1)) ? (string) $this->indentation : ''; + $blockIndentationIndicator = $this->getBlockIndentationIndicator($value); if (isset($value[-2]) && "\n" === $value[-2] && "\n" === $value[-1]) { $blockChompingIndicator = '+'; @@ -98,9 +96,7 @@ public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): $output .= sprintf('%s%s !%s', $prefix, $dumpAsMap ? Inline::dump($key, $flags).':' : '-', $value->getTag()); if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && false !== strpos($value->getValue(), "\n") && false === strpos($value->getValue(), "\r\n")) { - // If the first line starts with a space character, the spec requires a blockIndicationIndicator - // http://www.yaml.org/spec/1.2/spec.html#id2793979 - $blockIndentationIndicator = (' ' === substr($value->getValue(), 0, 1)) ? (string) $this->indentation : ''; + $blockIndentationIndicator = $this->getBlockIndentationIndicator($value->getValue()); $output .= sprintf(' |%s', $blockIndentationIndicator); foreach (explode("\n", $value->getValue()) as $row) { @@ -110,7 +106,7 @@ public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): continue; } - if ($inline - 1 <= 0 || null === $value->getValue() || is_scalar($value->getValue())) { + if ($inline - 1 <= 0 || null === $value->getValue() || \is_scalar($value->getValue())) { $output .= ' '.$this->dump($value->getValue(), $inline - 1, 0, $flags)."\n"; } else { $output .= "\n"; @@ -139,4 +135,42 @@ public function dump($input, int $inline = 0, int $indent = 0, int $flags = 0): return $output; } + + private function dumpTaggedValue(TaggedValue $value, int $inline, int $indent, int $flags, string $prefix): string + { + $output = sprintf('%s!%s', $prefix ? $prefix.' ' : '', $value->getTag()); + + if (Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && \is_string($value->getValue()) && false !== strpos($value->getValue(), "\n") && false === strpos($value->getValue(), "\r\n")) { + $blockIndentationIndicator = $this->getBlockIndentationIndicator($value->getValue()); + $output .= sprintf(' |%s', $blockIndentationIndicator); + + foreach (explode("\n", $value->getValue()) as $row) { + $output .= sprintf("\n%s%s%s", $prefix, str_repeat(' ', $this->indentation), $row); + } + + return $output; + } + + if ($inline - 1 <= 0 || null === $value->getValue() || \is_scalar($value->getValue())) { + return $output.' '.$this->dump($value->getValue(), $inline - 1, 0, $flags)."\n"; + } + + return $output."\n".$this->dump($value->getValue(), $inline - 1, $indent, $flags); + } + + private function getBlockIndentationIndicator(string $value): string + { + $lines = explode("\n", $value); + + // If the first line (that is neither empty nor contains only spaces) + // starts with a space character, the spec requires a block indentation indicator + // http://www.yaml.org/spec/1.2/spec.html#id2793979 + foreach ($lines as $line) { + if ('' !== trim($line, ' ')) { + return (' ' === substr($line, 0, 1)) ? (string) $this->indentation : ''; + } + } + + return ''; + } } diff --git a/api/vendor/symfony/yaml/Escaper.php b/api/vendor/symfony/yaml/Escaper.php index 9b809df87..e8090d8c6 100644 --- a/api/vendor/symfony/yaml/Escaper.php +++ b/api/vendor/symfony/yaml/Escaper.php @@ -49,8 +49,6 @@ class Escaper * Determines if a PHP value would require double quoting in YAML. * * @param string $value A PHP value - * - * @return bool True if the value would require double quotes */ public static function requiresDoubleQuoting(string $value): bool { @@ -61,8 +59,6 @@ public static function requiresDoubleQuoting(string $value): bool * Escapes and surrounds a PHP value with double quotes. * * @param string $value A PHP value - * - * @return string The quoted, escaped string */ public static function escapeWithDoubleQuotes(string $value): string { @@ -73,8 +69,6 @@ public static function escapeWithDoubleQuotes(string $value): string * Determines if a PHP value would require single quoting in YAML. * * @param string $value A PHP value - * - * @return bool True if the value would require single quotes */ public static function requiresSingleQuoting(string $value): bool { @@ -93,8 +87,6 @@ public static function requiresSingleQuoting(string $value): bool * Escapes and surrounds a PHP value with single quotes. * * @param string $value A PHP value - * - * @return string The quoted, escaped string */ public static function escapeWithSingleQuotes(string $value): string { diff --git a/api/vendor/symfony/yaml/Exception/ParseException.php b/api/vendor/symfony/yaml/Exception/ParseException.php index 6d441e773..9b59ea30e 100644 --- a/api/vendor/symfony/yaml/Exception/ParseException.php +++ b/api/vendor/symfony/yaml/Exception/ParseException.php @@ -24,12 +24,12 @@ class ParseException extends RuntimeException private $rawMessage; /** - * @param string $message The error message - * @param int $parsedLine The line where the error occurred - * @param string|null $snippet The snippet of code near the problem - * @param string|null $parsedFile The file name where the error occurred + * @param string $message The error message + * @param int $parsedLine The line where the error occurred + * @param string|null $snippet The snippet of code near the problem + * @param string|null $parsedFile The file name where the error occurred */ - public function __construct(string $message, int $parsedLine = -1, string $snippet = null, string $parsedFile = null, \Throwable $previous = null) + public function __construct(string $message, int $parsedLine = -1, ?string $snippet = null, ?string $parsedFile = null, ?\Throwable $previous = null) { $this->parsedFile = $parsedFile; $this->parsedLine = $parsedLine; @@ -44,7 +44,7 @@ public function __construct(string $message, int $parsedLine = -1, string $snipp /** * Gets the snippet of code near the error. * - * @return string The snippet of code + * @return string */ public function getSnippet() { @@ -66,7 +66,7 @@ public function setSnippet(string $snippet) * * This method returns null if a string is parsed. * - * @return string The filename + * @return string */ public function getParsedFile() { @@ -86,7 +86,7 @@ public function setParsedFile(string $parsedFile) /** * Gets the line where the error occurred. * - * @return int The file line + * @return int */ public function getParsedLine() { diff --git a/api/vendor/symfony/yaml/Inline.php b/api/vendor/symfony/yaml/Inline.php index e4f5e7008..36cc404a9 100644 --- a/api/vendor/symfony/yaml/Inline.php +++ b/api/vendor/symfony/yaml/Inline.php @@ -34,7 +34,7 @@ class Inline private static $objectForMap = false; private static $constantSupport = false; - public static function initialize(int $flags, int $parsedLineNumber = null, string $parsedFilename = null) + public static function initialize(int $flags, ?int $parsedLineNumber = null, ?string $parsedFilename = null) { self::$exceptionOnInvalidType = (bool) (Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE & $flags); self::$objectSupport = (bool) (Yaml::PARSE_OBJECT & $flags); @@ -50,16 +50,20 @@ public static function initialize(int $flags, int $parsedLineNumber = null, stri /** * Converts a YAML string to a PHP value. * - * @param string $value A YAML string - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior - * @param array $references Mapping of variable names to values + * @param string|null $value A YAML string + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior + * @param array $references Mapping of variable names to values * - * @return mixed A PHP value + * @return mixed * * @throws ParseException */ - public static function parse(string $value = null, int $flags = 0, array &$references = []) + public static function parse(?string $value = null, int $flags = 0, array &$references = []) { + if (null === $value) { + return ''; + } + self::initialize($flags); $value = trim($value); @@ -68,7 +72,7 @@ public static function parse(string $value = null, int $flags = 0, array &$refer return ''; } - if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) { + if (2 /* MB_OVERLOAD_STRING */ & (int) \ini_get('mbstring.func_overload')) { $mbEncoding = mb_internal_encoding(); mb_internal_encoding('ASCII'); } @@ -86,7 +90,7 @@ public static function parse(string $value = null, int $flags = 0, array &$refer ++$i; break; default: - $result = self::parseScalar($value, $flags, null, $i, null === $tag, $references); + $result = self::parseScalar($value, $flags, null, $i, true, $references); } // some comments are allowed at the end @@ -112,8 +116,6 @@ public static function parse(string $value = null, int $flags = 0, array &$refer * @param mixed $value The PHP variable to convert * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string * - * @return string The YAML string representing the PHP value - * * @throws DumpException When trying to dump PHP resource */ public static function dump($value, int $flags = 0): string @@ -161,9 +163,9 @@ public static function dump($value, int $flags = 0): string return 'true'; case false === $value: return 'false'; - case ctype_digit($value): - return \is_string($value) ? "'$value'" : (int) $value; - case is_numeric($value) && false === strpos($value, "\f") && false === strpos($value, "\n") && false === strpos($value, "\r") && false === strpos($value, "\t") && false === strpos($value, "\v"): + case \is_int($value): + return $value; + case is_numeric($value) && false === strpbrk($value, "\f\n\r\t\v"): $locale = setlocale(\LC_NUMERIC, 0); if (false !== $locale) { setlocale(\LC_NUMERIC, 'C'); @@ -174,7 +176,9 @@ public static function dump($value, int $flags = 0): string $repr = str_ireplace('INF', '.Inf', $repr); } elseif (floor($value) == $value && $repr == $value) { // Preserve float data type since storing a whole number will result in integer value. - $repr = '!!float '.$repr; + if (false === strpos($repr, 'E')) { + $repr = $repr.'.0'; + } } } else { $repr = \is_string($value) ? "'$value'" : (string) $value; @@ -204,8 +208,6 @@ public static function dump($value, int $flags = 0): string * Check if given array is hash or just normal indexed array. * * @param array|\ArrayObject|\stdClass $value The PHP array or array-like object to check - * - * @return bool true if value is hash array, false otherwise */ public static function isHash($value): bool { @@ -229,8 +231,6 @@ public static function isHash($value): bool * * @param array $value The PHP array to dump * @param int $flags A bit field of Yaml::DUMP_* constants to customize the dumped YAML string - * - * @return string The YAML string representing the PHP array */ private static function dumpArray(array $value, int $flags): string { @@ -269,10 +269,11 @@ private static function dumpNull(int $flags): string * * @throws ParseException When malformed inline YAML string is parsed */ - public static function parseScalar(string $scalar, int $flags = 0, array $delimiters = null, int &$i = 0, bool $evaluate = true, array &$references = []) + public static function parseScalar(string $scalar, int $flags = 0, ?array $delimiters = null, int &$i = 0, bool $evaluate = true, array &$references = [], ?bool &$isQuoted = null) { if (\in_array($scalar[$i], ['"', "'"], true)) { // quoted scalar + $isQuoted = true; $output = self::parseQuotedScalar($scalar, $i); if (null !== $delimiters) { @@ -286,6 +287,8 @@ public static function parseScalar(string $scalar, int $flags = 0, array $delimi } } else { // "normal" string + $isQuoted = false; + if (!$delimiters) { $output = substr($scalar, $i); $i += \strlen($output); @@ -308,7 +311,7 @@ public static function parseScalar(string $scalar, int $flags = 0, array $delimi } if ($evaluate) { - $output = self::evaluateScalar($output, $flags, $references); + $output = self::evaluateScalar($output, $flags, $references, $isQuoted); } } @@ -320,7 +323,7 @@ public static function parseScalar(string $scalar, int $flags = 0, array $delimi * * @throws ParseException When malformed inline YAML string is parsed */ - private static function parseQuotedScalar(string $scalar, int &$i): string + private static function parseQuotedScalar(string $scalar, int &$i = 0): string { if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) { throw new ParseException(sprintf('Malformed inline YAML string: "%s".', substr($scalar, $i)), self::$parsedLineNumber + 1, $scalar, self::$parsedFilename); @@ -373,8 +376,7 @@ private static function parseSequence(string $sequence, int $flags, int &$i = 0, $value = self::parseMapping($sequence, $flags, $i, $references); break; default: - $isQuoted = \in_array($sequence[$i], ['"', "'"], true); - $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references); + $value = self::parseScalar($sequence, $flags, [',', ']'], $i, null === $tag, $references, $isQuoted); // the value can be an array if a reference has been resolved to an array var if (\is_string($value) && !$isQuoted && false !== strpos($value, ': ')) { @@ -387,7 +389,7 @@ private static function parseSequence(string $sequence, int $flags, int &$i = 0, } } - if (\is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) { + if (!$isQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) { $references[$matches['ref']] = $matches['value']; $value = $matches['value']; } @@ -521,7 +523,7 @@ private static function parseMapping(string $mapping, int $flags, int &$i = 0, a } break; default: - $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references); + $value = self::parseScalar($mapping, $flags, [',', '}', "\n"], $i, null === $tag, $references, $isValueQuoted); // Spec: Keys MUST be unique; first one wins. // Parser cannot abort this mapping earlier, since lines // are processed sequentially. @@ -529,7 +531,7 @@ private static function parseMapping(string $mapping, int $flags, int &$i = 0, a if ('<<' === $key) { $output += $value; } elseif ($allowOverwrite || !isset($output[$key])) { - if (\is_string($value) && '' !== $value && '&' === $value[0] && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) { + if (!$isValueQuoted && \is_string($value) && '' !== $value && '&' === $value[0] && !self::isBinaryString($value) && Parser::preg_match(Parser::REFERENCE_PATTERN, $value, $matches)) { $references[$matches['ref']] = $matches['value']; $value = $matches['value']; } @@ -556,15 +558,16 @@ private static function parseMapping(string $mapping, int $flags, int &$i = 0, a /** * Evaluates scalars and replaces magic values. * - * @return mixed The evaluated YAML string + * @return mixed * * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved */ - private static function evaluateScalar(string $scalar, int $flags, array &$references = []) + private static function evaluateScalar(string $scalar, int $flags, array &$references = [], ?bool &$isQuotedString = null) { + $isQuotedString = false; $scalar = trim($scalar); - if ('*' === ($scalar[0] ?? '')) { + if (0 === strpos($scalar, '*')) { if (false !== $pos = strpos($scalar, '#')) { $value = substr($scalar, 1, $pos - 2); } else { @@ -596,11 +599,18 @@ private static function evaluateScalar(string $scalar, int $flags, array &$refer return false; case '!' === $scalar[0]: switch (true) { - case 0 === strncmp($scalar, '!!str ', 6): - return (string) substr($scalar, 6); - case 0 === strncmp($scalar, '! ', 2): + case 0 === strpos($scalar, '!!str '): + $s = (string) substr($scalar, 6); + + if (\in_array($s[0] ?? '', ['"', "'"], true)) { + $isQuotedString = true; + $s = self::parseQuotedScalar($s); + } + + return $s; + case 0 === strpos($scalar, '! '): return substr($scalar, 2); - case 0 === strncmp($scalar, '!php/object', 11): + case 0 === strpos($scalar, '!php/object'): if (self::$objectSupport) { if (!isset($scalar[12])) { trigger_deprecation('symfony/yaml', '5.1', 'Using the !php/object tag without a value is deprecated.'); @@ -616,7 +626,7 @@ private static function evaluateScalar(string $scalar, int $flags, array &$refer } return null; - case 0 === strncmp($scalar, '!php/const', 10): + case 0 === strpos($scalar, '!php/const'): if (self::$constantSupport) { if (!isset($scalar[11])) { trigger_deprecation('symfony/yaml', '5.1', 'Using the !php/const tag without a value is deprecated.'); @@ -636,34 +646,30 @@ private static function evaluateScalar(string $scalar, int $flags, array &$refer } return null; - case 0 === strncmp($scalar, '!!float ', 8): + case 0 === strpos($scalar, '!!float '): return (float) substr($scalar, 8); - case 0 === strncmp($scalar, '!!binary ', 9): + case 0 === strpos($scalar, '!!binary '): return self::evaluateBinaryScalar(substr($scalar, 9)); - default: - throw new ParseException(sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename); } - // no break + + throw new ParseException(sprintf('The string "%s" could not be parsed as it uses an unsupported built-in tag.', $scalar), self::$parsedLineNumber, $scalar, self::$parsedFilename); case preg_match('/^(?:\+|-)?0o(?P[0-7_]++)$/', $scalar, $matches): $value = str_replace('_', '', $matches['value']); if ('-' === $scalar[0]) { return -octdec($value); - } else { - return octdec($value); } - // Optimize for returning strings. - // no break + return octdec($value); case \in_array($scalar[0], ['+', '-', '.'], true) || is_numeric($scalar[0]): if (Parser::preg_match('{^[+-]?[0-9][0-9_]*$}', $scalar)) { - $scalar = str_replace('_', '', (string) $scalar); + $scalar = str_replace('_', '', $scalar); } switch (true) { case ctype_digit($scalar): if (preg_match('/^0[0-7]+$/', $scalar)) { - trigger_deprecation('symfony/yaml', '5.1', 'Support for parsing numbers prefixed with 0 as octal numbers. They will be parsed as strings as of 6.0.'); + trigger_deprecation('symfony/yaml', '5.1', 'Support for parsing numbers prefixed with 0 as octal numbers. They will be parsed as strings as of 6.0. Use "%s" to represent the octal number.', '0o'.substr($scalar, 1)); return octdec($scalar); } @@ -673,7 +679,7 @@ private static function evaluateScalar(string $scalar, int $flags, array &$refer return ($scalar === (string) $cast) ? $cast : $scalar; case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)): if (preg_match('/^-0[0-7]+$/', $scalar)) { - trigger_deprecation('symfony/yaml', '5.1', 'Support for parsing numbers prefixed with 0 as octal numbers. They will be parsed as strings as of 6.0.'); + trigger_deprecation('symfony/yaml', '5.1', 'Support for parsing numbers prefixed with 0 as octal numbers. They will be parsed as strings as of 6.0. Use "%s" to represent the octal number.', '-0o'.substr($scalar, 2)); return -octdec(substr($scalar, 1)); } @@ -729,7 +735,7 @@ private static function parseTag(string $value, int &$i, int $flags): ?string $nextOffset += strspn($value, ' ', $nextOffset); if ('' === $tag && (!isset($value[$nextOffset]) || \in_array($value[$nextOffset], [']', '}', ','], true))) { - throw new ParseException(sprintf('Using the unquoted scalar value "!" is not supported. You must quote it.', $value), self::$parsedLineNumber + 1, $value, self::$parsedFilename); + throw new ParseException('Using the unquoted scalar value "!" is not supported. You must quote it.', self::$parsedLineNumber + 1, $value, self::$parsedFilename); } // Is followed by a scalar and is a built-in tag @@ -779,8 +785,6 @@ private static function isBinaryString(string $value): bool /** * Gets a regex that matches a YAML date. * - * @return string The regular expression - * * @see http://www.yaml.org/spec/1.2/spec.html#id2761573 */ private static function getTimestampRegex(): string diff --git a/api/vendor/symfony/yaml/LICENSE b/api/vendor/symfony/yaml/LICENSE index 9ff2d0d63..0138f8f07 100644 --- a/api/vendor/symfony/yaml/LICENSE +++ b/api/vendor/symfony/yaml/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2021 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/api/vendor/symfony/yaml/Parser.php b/api/vendor/symfony/yaml/Parser.php index 2cde2cd60..6b5b273a7 100644 --- a/api/vendor/symfony/yaml/Parser.php +++ b/api/vendor/symfony/yaml/Parser.php @@ -43,9 +43,9 @@ class Parser * Parses a YAML file into a PHP value. * * @param string $filename The path to the YAML file to be parsed - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * - * @return mixed The YAML converted to a PHP value + * @return mixed * * @throws ParseException If the file could not be read or the YAML is not valid */ @@ -72,9 +72,9 @@ public function parseFile(string $filename, int $flags = 0) * Parses a YAML string to a PHP value. * * @param string $value A YAML string - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * - * @return mixed A PHP value + * @return mixed * * @throws ParseException If the YAML is not valid */ @@ -88,7 +88,7 @@ public function parse(string $value, int $flags = 0) $mbEncoding = null; - if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) { + if (2 /* MB_OVERLOAD_STRING */ & (int) \ini_get('mbstring.func_overload')) { $mbEncoding = mb_internal_encoding(); mb_internal_encoding('UTF-8'); } @@ -99,6 +99,8 @@ public function parse(string $value, int $flags = 0) if (null !== $mbEncoding) { mb_internal_encoding($mbEncoding); } + $this->refsBeingParsed = []; + $this->offset = 0; $this->lines = []; $this->currentLine = ''; $this->numberOfParsedLines = 0; @@ -197,9 +199,8 @@ private function doParse(string $value, int $flags) || self::preg_match('#^(?P'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P.+?))?\s*$#u', $this->trimTag($values['value']), $matches) ) ) { - // this is a compact notation element, add to next block and parse $block = $values['value']; - if ($this->isNextLineIndented()) { + if ($this->isNextLineIndented() || isset($matches['value']) && '>-' === $matches['value']) { $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1); } @@ -309,7 +310,7 @@ private function doParse(string $value, int $flags) $subTag = null; if ($mergeNode) { // Merge keys - } elseif (!isset($values['value']) || '' === $values['value'] || '#' === ($values['value'][0] ?? '') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) { + } elseif (!isset($values['value']) || '' === $values['value'] || 0 === strpos($values['value'], '#') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) { // hash // if next line is less indented or equal, then it means that the current value is null if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) { @@ -467,7 +468,7 @@ private function doParse(string $value, int $flags) $value .= ' '; } - if ('' !== $trimmedLine && '\\' === $line[-1]) { + if ('' !== $trimmedLine && '\\' === substr($line, -1)) { $value .= ltrim(substr($line, 0, -1)); } elseif ('' !== $trimmedLine) { $value .= $trimmedLine; @@ -476,7 +477,7 @@ private function doParse(string $value, int $flags) if ('' === $trimmedLine) { $previousLineWasNewline = true; $previousLineWasTerminatedWithBackslash = false; - } elseif ('\\' === $line[-1]) { + } elseif ('\\' === substr($line, -1)) { $previousLineWasNewline = false; $previousLineWasTerminatedWithBackslash = true; } else { @@ -539,8 +540,6 @@ private function parseBlock(int $offset, string $yaml, int $flags) * Returns the current line number (takes the offset into account). * * @internal - * - * @return int The current line number */ public function getRealCurrentLineNb(): int { @@ -559,8 +558,6 @@ public function getRealCurrentLineNb(): int /** * Returns the current line indentation. - * - * @return int The current line indentation */ private function getCurrentLineIndentation(): int { @@ -577,11 +574,9 @@ private function getCurrentLineIndentation(): int * @param int|null $indentation The indent level at which the block is to be read, or null for default * @param bool $inSequence True if the enclosing data structure is a sequence * - * @return string A YAML string - * * @throws ParseException When indentation problem are detected */ - private function getNextEmbedBlock(int $indentation = null, bool $inSequence = false): string + private function getNextEmbedBlock(?int $indentation = null, bool $inSequence = false): string { $oldLineIndentation = $this->getCurrentLineIndentation(); @@ -658,12 +653,12 @@ private function getNextEmbedBlock(int $indentation = null, bool $inSequence = f } if ($this->isCurrentLineBlank()) { - $data[] = substr($this->currentLine, $newIndent); + $data[] = substr($this->currentLine, $newIndent ?? 0); continue; } if ($indent >= $newIndent) { - $data[] = substr($this->currentLine, $newIndent); + $data[] = substr($this->currentLine, $newIndent ?? 0); } elseif ($this->isCurrentLineComment()) { $data[] = $this->currentLine; } elseif (0 == $indent) { @@ -715,16 +710,16 @@ private function moveToPreviousLine(): bool * Parses a YAML value. * * @param string $value A YAML value - * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior + * @param int $flags A bit field of Yaml::PARSE_* constants to customize the YAML parser behavior * @param string $context The parser context (either sequence or mapping) * - * @return mixed A PHP value + * @return mixed * * @throws ParseException When reference does not exist */ private function parseValue(string $value, int $flags, string $context) { - if ('*' === ($value[0] ?? '')) { + if (0 === strpos($value, '*')) { if (false !== $pos = strpos($value, '#')) { $value = substr($value, 1, $pos - 2); } else { @@ -938,8 +933,6 @@ private function parseBlockScalar(string $style, string $chomping = '', int $ind /** * Returns true if the next line is indented. - * - * @return bool Returns true if the next line is indented, false otherwise */ private function isNextLineIndented(): bool { @@ -955,6 +948,10 @@ private function isNextLineIndented(): bool } while (!$EOF && ($this->isCurrentLineEmpty() || $this->isCurrentLineComment())); if ($EOF) { + for ($i = 0; $i < $movements; ++$i) { + $this->moveToPreviousLine(); + } + return false; } @@ -969,8 +966,6 @@ private function isNextLineIndented(): bool /** * Returns true if the current line is blank or if it is a comment line. - * - * @return bool Returns true if the current line is empty or if it is a comment line, false otherwise */ private function isCurrentLineEmpty(): bool { @@ -979,8 +974,6 @@ private function isCurrentLineEmpty(): bool /** * Returns true if the current line is blank. - * - * @return bool Returns true if the current line is blank, false otherwise */ private function isCurrentLineBlank(): bool { @@ -989,12 +982,10 @@ private function isCurrentLineBlank(): bool /** * Returns true if the current line is a comment line. - * - * @return bool Returns true if the current line is a comment line, false otherwise */ private function isCurrentLineComment(): bool { - //checking explicitly the first char of the trim is faster than loops or strpos + // checking explicitly the first char of the trim is faster than loops or strpos $ltrimmedLine = '' !== $this->currentLine && ' ' === $this->currentLine[0] ? ltrim($this->currentLine, ' ') : $this->currentLine; return '' !== $ltrimmedLine && '#' === $ltrimmedLine[0]; @@ -1009,8 +1000,6 @@ private function isCurrentLineLastLineInDocument(): bool * Cleanups a YAML string to be parsed. * * @param string $value The input YAML string - * - * @return string A cleaned up YAML string */ private function cleanup(string $value): string { @@ -1045,8 +1034,6 @@ private function cleanup(string $value): string /** * Returns true if the next line starts unindented collection. - * - * @return bool Returns true if the next line starts unindented collection, false otherwise */ private function isNextLineUnIndentedCollection(): bool { @@ -1076,12 +1063,10 @@ private function isNextLineUnIndentedCollection(): bool /** * Returns true if the string is un-indented collection item. - * - * @return bool Returns true if the string is un-indented collection item, false otherwise */ private function isStringUnIndentedCollectionItem(): bool { - return 0 === strncmp($this->currentLine, '- ', 2) || '-' === rtrim($this->currentLine); + return '-' === rtrim($this->currentLine) || 0 === strpos($this->currentLine, '- '); } /** @@ -1097,7 +1082,7 @@ private function isStringUnIndentedCollectionItem(): bool * * @internal */ - public static function preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int + public static function preg_match(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): int { if (false === $ret = preg_match($pattern, $subject, $matches, $flags, $offset)) { switch (preg_last_error()) { diff --git a/api/vendor/symfony/yaml/Resources/bin/yaml-lint b/api/vendor/symfony/yaml/Resources/bin/yaml-lint index 0ad73d714..143869e01 100644 --- a/api/vendor/symfony/yaml/Resources/bin/yaml-lint +++ b/api/vendor/symfony/yaml/Resources/bin/yaml-lint @@ -10,6 +10,10 @@ * file that was distributed with this source code. */ +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + /** * Runs the Yaml lint command. * diff --git a/api/vendor/symfony/yaml/Unescaper.php b/api/vendor/symfony/yaml/Unescaper.php index 6bdf216ae..d1ef04123 100644 --- a/api/vendor/symfony/yaml/Unescaper.php +++ b/api/vendor/symfony/yaml/Unescaper.php @@ -32,8 +32,6 @@ class Unescaper * Unescapes a single quoted string. * * @param string $value A single quoted string - * - * @return string The unescaped string */ public function unescapeSingleQuotedString(string $value): string { @@ -44,8 +42,6 @@ public function unescapeSingleQuotedString(string $value): string * Unescapes a double quoted string. * * @param string $value A double quoted string - * - * @return string The unescaped string */ public function unescapeDoubleQuotedString(string $value): string { @@ -61,8 +57,6 @@ public function unescapeDoubleQuotedString(string $value): string * Unescapes a character that was found in a double-quoted string. * * @param string $value An escaped character - * - * @return string The unescaped character */ private function unescapeCharacter(string $value): string { diff --git a/api/vendor/symfony/yaml/Yaml.php b/api/vendor/symfony/yaml/Yaml.php index 4fea47f9a..ea1304528 100644 --- a/api/vendor/symfony/yaml/Yaml.php +++ b/api/vendor/symfony/yaml/Yaml.php @@ -46,7 +46,7 @@ class Yaml * @param string $filename The path to the YAML file to be parsed * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior * - * @return mixed The YAML converted to a PHP value + * @return mixed * * @throws ParseException If the file could not be read or the YAML is not valid */ @@ -69,7 +69,7 @@ public static function parseFile(string $filename, int $flags = 0) * @param string $input A string containing YAML * @param int $flags A bit field of PARSE_* constants to customize the YAML parser behavior * - * @return mixed The YAML converted to a PHP value + * @return mixed * * @throws ParseException If the YAML is not valid */ @@ -90,8 +90,6 @@ public static function parse(string $input, int $flags = 0) * @param int $inline The level where you switch to inline YAML * @param int $indent The amount of spaces to use for indentation of nested nodes * @param int $flags A bit field of DUMP_* constants to customize the dumped YAML string - * - * @return string A YAML string representing the original PHP value */ public static function dump($input, int $inline = 2, int $indent = 4, int $flags = 0): string { diff --git a/api/vendor/symfony/yaml/composer.json b/api/vendor/symfony/yaml/composer.json index 4aca5c85b..7fa6e2cc5 100644 --- a/api/vendor/symfony/yaml/composer.json +++ b/api/vendor/symfony/yaml/composer.json @@ -17,14 +17,14 @@ ], "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { - "symfony/console": "^4.4|^5.0" + "symfony/console": "^5.3|^6.0" }, "conflict": { - "symfony/console": "<4.4" + "symfony/console": "<5.3" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" diff --git a/api/vendor/tijsverkoyen/css-to-inline-styles/.github/workflows/ci.yml b/api/vendor/tijsverkoyen/css-to-inline-styles/.github/workflows/ci.yml deleted file mode 100644 index 3171c0101..000000000 --- a/api/vendor/tijsverkoyen/css-to-inline-styles/.github/workflows/ci.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: CI - -on: - push: - branches: - - master - pull_request: ~ - -jobs: - check_composer: - name: Check composer.json - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: shivammathur/setup-php@v2 - with: - coverage: none - php-version: '8.0' - - run: composer validate --strict --no-check-lock - - tests: - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - php: [ '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] - composer_flags: [ '' ] - include: - - php: '5.5' - composer_flags: '--prefer-lowest' - - php: '7.0' - composer_flags: '--prefer-lowest' - - steps: - - uses: actions/checkout@v2 - - uses: shivammathur/setup-php@v2 - with: - php-version: "${{ matrix.php }}" - - name: Install dependencies - run: composer update --ansi --no-progress --prefer-dist --no-interaction ${{ matrix.composer_flags }} - - name: Run tests - run: vendor/bin/phpunit -v --colors=always --coverage-clover=coverage.clover - - name: Upload code coverage - continue-on-error: true - run: wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover coverage.clover - diff --git a/api/vendor/tijsverkoyen/css-to-inline-styles/composer.json b/api/vendor/tijsverkoyen/css-to-inline-styles/composer.json index 828f0c4a0..055ba4106 100644 --- a/api/vendor/tijsverkoyen/css-to-inline-styles/composer.json +++ b/api/vendor/tijsverkoyen/css-to-inline-styles/composer.json @@ -15,7 +15,7 @@ "php": "^5.5 || ^7.0 || ^8.0", "ext-dom": "*", "ext-libxml": "*", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" diff --git a/api/vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php b/api/vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php index 3268c5f27..e40ae25df 100644 --- a/api/vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php +++ b/api/vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php @@ -113,7 +113,7 @@ protected function createDomDocumentFromHtml($html) { $document = new \DOMDocument('1.0', 'UTF-8'); $internalErrors = libxml_use_internal_errors(true); - $document->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); + $document->loadHTML(mb_encode_numericentity($html, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8')); libxml_use_internal_errors($internalErrors); $document->formatOutput = true; diff --git a/api/vendor/vlucas/phpdotenv/composer.json b/api/vendor/vlucas/phpdotenv/composer.json index a30f9c04b..10bc27a1e 100644 --- a/api/vendor/vlucas/phpdotenv/composer.json +++ b/api/vendor/vlucas/phpdotenv/composer.json @@ -24,7 +24,7 @@ "ext-filter": "*", "ext-pcre": "*", "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.21" + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.30" }, "autoload": { "psr-4": { @@ -41,11 +41,18 @@ "ext-pcre": "Required to use most of the library." }, "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true + }, "preferred-install": "dist" }, "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } } } diff --git a/api/vendor/vlucas/phpdotenv/src/Loader/Lines.php b/api/vendor/vlucas/phpdotenv/src/Loader/Lines.php index 89d9c34be..688c5d35d 100644 --- a/api/vendor/vlucas/phpdotenv/src/Loader/Lines.php +++ b/api/vendor/vlucas/phpdotenv/src/Loader/Lines.php @@ -41,15 +41,17 @@ public static function process(array $lines) */ private static function multilineProcess($multiline, $line, array $buffer) { + $startsOnCurrentLine = $multiline ? false : self::looksLikeMultilineStart($line); + // check if $line can be multiline variable - if ($started = self::looksLikeMultilineStart($line)) { + if ($startsOnCurrentLine) { $multiline = true; } if ($multiline) { array_push($buffer, $line); - if (self::looksLikeMultilineStop($line, $started)) { + if (self::looksLikeMultilineStop($line, $startsOnCurrentLine)) { $multiline = false; $line = implode("\n", $buffer); $buffer = []; diff --git a/api/vendor/vlucas/phpdotenv/src/Regex/Regex.php b/api/vendor/vlucas/phpdotenv/src/Regex/Regex.php index 2b322ab02..5cf0e28db 100644 --- a/api/vendor/vlucas/phpdotenv/src/Regex/Regex.php +++ b/api/vendor/vlucas/phpdotenv/src/Regex/Regex.php @@ -88,9 +88,11 @@ private static function pregAndWrap(callable $operation, $subject) $result = $operation($subject); if (($e = preg_last_error()) !== PREG_NO_ERROR) { + /** @var Result */ return Error::create(self::lookupError($e)); } + /** @var Result */ return Success::create($result); } diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/AbstractRepository.php b/api/vendor/vlucas/phpdotenv/src/Repository/AbstractRepository.php index 57c7b432f..04994e061 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/AbstractRepository.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/AbstractRepository.php @@ -46,8 +46,8 @@ public function __construct($immutable) */ public function get($name) { - if (!is_string($name)) { - throw new InvalidArgumentException('Expected name to be a string.'); + if (!is_string($name) || '' === $name) { + throw new InvalidArgumentException('Expected name to be a non-empty string.'); } return $this->getInternal($name); @@ -56,7 +56,7 @@ public function get($name) /** * Get an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return string|null */ @@ -74,8 +74,8 @@ abstract protected function getInternal($name); */ public function set($name, $value = null) { - if (!is_string($name)) { - throw new InvalidArgumentException('Expected name to be a string.'); + if (!is_string($name) || '' === $name) { + throw new InvalidArgumentException('Expected name to be a non-empty string.'); } // Don't overwrite existing environment variables if we're immutable @@ -91,8 +91,8 @@ public function set($name, $value = null) /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -109,8 +109,8 @@ abstract protected function setInternal($name, $value = null); */ public function clear($name) { - if (!is_string($name)) { - throw new InvalidArgumentException('Expected name to be a string.'); + if (!is_string($name) || '' === $name) { + throw new InvalidArgumentException('Expected name to be a non-empty string.'); } // Don't clear anything if we're immutable. @@ -124,7 +124,7 @@ public function clear($name) /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ @@ -139,7 +139,7 @@ abstract protected function clearInternal($name); */ public function has($name) { - return is_string($name) && $this->get($name) !== null; + return is_string($name) && $name !== '' && $this->get($name) !== null; } /** diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php index 73ce87d12..4c95d315f 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php @@ -24,7 +24,7 @@ public function isSupported() * This is intentionally not implemented, since this adapter exists only as * a means to overwrite existing apache environment variables. * - * @param string $name + * @param non-empty-string $name * * @return \PhpOption\Option */ @@ -38,22 +38,24 @@ public function get($name) * * Only if an existing apache variable exists do we overwrite it. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ public function set($name, $value = null) { - if (apache_getenv($name) !== false) { - apache_setenv($name, (string) $value); + if (apache_getenv($name) === false) { + return; } + + apache_setenv($name, (string) $value); } /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php index dc234aa63..58e4958c8 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php @@ -10,7 +10,7 @@ class ArrayAdapter implements AvailabilityInterface, ReaderInterface, WriterInte /** * The variables and their values. * - * @var array + * @var array */ private $variables = []; @@ -27,24 +27,24 @@ public function isSupported() /** * Get an environment variable, if it exists. * - * @param string $name + * @param non-empty-string $name * * @return \PhpOption\Option */ public function get($name) { - if (array_key_exists($name, $this->variables)) { - return Some::create($this->variables[$name]); + if (!array_key_exists($name, $this->variables)) { + return None::create(); } - return None::create(); + return Some::create($this->variables[$name]); } /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -56,7 +56,7 @@ public function set($name, $value = null) /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php index 41bfc67b9..858e5e257 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php @@ -20,14 +20,26 @@ public function isSupported() /** * Get an environment variable, if it exists. * - * @param string $name + * @param non-empty-string $name * * @return \PhpOption\Option */ public function get($name) { - if (array_key_exists($name, $_ENV)) { - return Some::create($_ENV[$name]); + if (!array_key_exists($name, $_ENV)) { + return None::create(); + } + + $value = $_ENV[$name]; + + if (is_scalar($value)) { + /** @var \PhpOption\Option */ + return Some::create((string) $value); + } + + if (null === $value) { + /** @var \PhpOption\Option */ + return Some::create(null); } return None::create(); @@ -36,8 +48,8 @@ public function get($name) /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -49,7 +61,7 @@ public function set($name, $value = null) /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php index 766afd3b3..a824a50c7 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php @@ -19,7 +19,7 @@ public function isSupported() /** * Get an environment variable, if it exists. * - * @param string $name + * @param non-empty-string $name * * @return \PhpOption\Option */ @@ -32,8 +32,8 @@ public function get($name) /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -45,7 +45,7 @@ public function set($name, $value = null) /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php index 90a1fabef..008eed1c2 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php @@ -7,7 +7,7 @@ interface ReaderInterface extends AvailabilityInterface /** * Get an environment variable, if it exists. * - * @param string $name + * @param non-empty-string $name * * @return \PhpOption\Option */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php index 529df96f1..3189f3b7f 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php @@ -20,14 +20,26 @@ public function isSupported() /** * Get an environment variable, if it exists. * - * @param string $name + * @param non-empty-string $name * * @return \PhpOption\Option */ public function get($name) { - if (array_key_exists($name, $_SERVER)) { - return Some::create($_SERVER[$name]); + if (!array_key_exists($name, $_SERVER)) { + return None::create(); + } + + $value = $_SERVER[$name]; + + if (is_scalar($value)) { + /** @var \PhpOption\Option */ + return Some::create((string) $value); + } + + if (null === $value) { + /** @var \PhpOption\Option */ + return Some::create(null); } return None::create(); @@ -36,8 +48,8 @@ public function get($name) /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -49,7 +61,7 @@ public function set($name, $value = null) /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php index 6670b728f..968aeeaee 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php @@ -7,8 +7,8 @@ interface WriterInterface extends AvailabilityInterface /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -17,7 +17,7 @@ public function set($name, $value = null); /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php b/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php index e1b6bccd7..d997c9acb 100644 --- a/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +++ b/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php @@ -39,7 +39,7 @@ public function __construct(array $readers, array $writers, $immutable) * * We do this by querying our readers sequentially. * - * @param string $name + * @param non-empty-string $name * * @return string|null */ @@ -58,8 +58,8 @@ protected function getInternal($name) /** * Set an environment variable. * - * @param string $name - * @param string|null $value + * @param non-empty-string $name + * @param string|null $value * * @return void */ @@ -73,7 +73,7 @@ protected function setInternal($name, $value = null) /** * Clear an environment variable. * - * @param string $name + * @param non-empty-string $name * * @return void */ diff --git a/api/vendor/voku/portable-ascii/.whitesource b/api/vendor/voku/portable-ascii/.whitesource new file mode 100644 index 000000000..55b922e8c --- /dev/null +++ b/api/vendor/voku/portable-ascii/.whitesource @@ -0,0 +1,12 @@ +{ + "scanSettings": { + "baseBranches": [] + }, + "checkRunSettings": { + "vulnerableCheckRunConclusionLevel": "failure", + "displayMode": "diff" + }, + "issueSettings": { + "minSeverityLevel": "LOW" + } +} \ No newline at end of file diff --git a/api/vendor/voku/portable-ascii/CHANGELOG.md b/api/vendor/voku/portable-ascii/CHANGELOG.md index 6e5357d08..04b64acdd 100644 --- a/api/vendor/voku/portable-ascii/CHANGELOG.md +++ b/api/vendor/voku/portable-ascii/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### 1.6.1 (2021-01-24) + +- revert: prefer "Russian - Passport (2013), ICAO" instead of "Russian - GOST 7.79-2000(B)" +- revert: fix "Ukrainian" char-mapping (thanks to @Andr1yk0) +- revert: fix "Persian" char-mapping (thanks to @frost-cyber) + +### 1.6.0 (2021-01-24) + +- prefer "Russian - Passport (2013), ICAO" instead of "Russian - GOST 7.79-2000(B)" +- fix "Ukrainian" char-mapping (thanks to @Andr1yk0) +- fix "Persian" char-mapping (thanks to @frost-cyber) +- fix "ASCII::normalize_whitespace()" -> "CARRIAGE RETURN" is more like "
    " and no "\n" +- add "ASCII::to_ascii_remap()" -> this method will return broken characters and is only for special cases + ### 1.5.6 (2020-11-12) - "ASCII::normalize_whitespace()" -> can now also remove "control characters" if needed v2 diff --git a/api/vendor/voku/portable-ascii/README.md b/api/vendor/voku/portable-ascii/README.md index 9dd7cecef..929c21e29 100644 --- a/api/vendor/voku/portable-ascii/README.md +++ b/api/vendor/voku/portable-ascii/README.md @@ -1,7 +1,7 @@ [//]: # (AUTO-GENERATED BY "PHP README Helper": base file -> docs/base.md) -[![Build Status](https://travis-ci.com/voku/portable-ascii.svg?branch=master)](https://travis-ci.com/voku/portable-ascii) +[![Build Status](https://github.com/voku/portable-ascii/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/voku/portable-ascii/actions) [![Build status](https://ci.appveyor.com/api/projects/status/gnejjnk7qplr7f5t/branch/master?svg=true)](https://ci.appveyor.com/project/voku/portable-ascii/branch/master) -[![Coverage Status](https://coveralls.io/repos/voku/portable-ascii/badge.svg?branch=master&service=github)](https://coveralls.io/github/voku/portable-ascii?branch=master) +[![codecov.io](https://codecov.io/github/voku/portable-ascii/coverage.svg?branch=master)](https://codecov.io/github/voku/portable-ascii?branch=master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/997c9bb10d1c4791967bdf2e42013e8e)](https://www.codacy.com/app/voku/portable-ascii) [![Latest Stable Version](https://poser.pugx.org/voku/portable-ascii/v/stable)](https://packagist.org/packages/voku/portable-ascii) [![Total Downloads](https://poser.pugx.org/voku/portable-ascii/downloads)](https://packagist.org/packages/voku/portable-ascii) @@ -96,8 +96,8 @@ The API from the "ASCII"-Class is written as small static methods.

  • getAllLanguages is_ascii normalize_msword -
    normalize_whitespace -remove_invisible_characters +
    normalize_whitespace +remove_invisible_characters to_ascii to_filename
    to_slugify @@ -254,7 +254,7 @@ ASCII::normalize_msword('„Abcdef…”'); // '"Abcdef..."' -------- -#### normalize_whitespace(string $str, bool $keepNonBreakingSpace, bool $keepBidiUnicodeControls, bool $replaceSeparatorsWithNewline): string +#### normalize_whitespace(string $str, bool $keepNonBreakingSpace, bool $keepBidiUnicodeControls, bool $normalize_control_characters): string Normalize the whitespace. @@ -267,14 +267,14 @@ ASCII::normalize_whitespace("abc-\xc2\xa0-öäü-\xe2\x80\xaf-\xE2\x80\xAC", tru - `bool $keepNonBreakingSpace [optional]

    Set to true, to keep non-breaking-spaces.

    ` - `bool $keepBidiUnicodeControls [optional]

    Set to true, to keep non-printable (for the web) bidirectional text chars.

    ` -- `bool $replaceSeparatorsWithNewline [optional]

    Set to true, to convert LINE and PARAGRAPH SEPARATOR with "\n".

    ` +- `bool $normalize_control_characters [optional]

    Set to true, to convert e.g. LINE-, PARAGRAPH-SEPARATOR with "\n" and LINE TABULATION with "\t".

    ` **Return:** - `string

    A string with normalized whitespace.

    ` -------- -#### remove_invisible_characters(string $str, bool $url_encoded, string $replacement, bool $keep_control_characters): string +#### remove_invisible_characters(string $str, bool $url_encoded, string $replacement, bool $keep_basic_control_characters): string Remove invisible characters from a string. @@ -286,7 +286,7 @@ copy&past from https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/C - `string $str` - `bool $url_encoded` - `string $replacement` -- `bool $keep_control_characters` +- `bool $keep_basic_control_characters` **Return:** - `string` diff --git a/api/vendor/voku/portable-ascii/build/docs/base.md b/api/vendor/voku/portable-ascii/build/docs/base.md index e21e73137..ca949d8b6 100644 --- a/api/vendor/voku/portable-ascii/build/docs/base.md +++ b/api/vendor/voku/portable-ascii/build/docs/base.md @@ -1,6 +1,6 @@ -[![Build Status](https://travis-ci.com/voku/portable-ascii.svg?branch=master)](https://travis-ci.com/voku/portable-ascii) +[![Build Status](https://github.com/voku/portable-ascii/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/voku/portable-ascii/actions) [![Build status](https://ci.appveyor.com/api/projects/status/gnejjnk7qplr7f5t/branch/master?svg=true)](https://ci.appveyor.com/project/voku/portable-ascii/branch/master) -[![Coverage Status](https://coveralls.io/repos/voku/portable-ascii/badge.svg?branch=master&service=github)](https://coveralls.io/github/voku/portable-ascii?branch=master) +[![codecov.io](https://codecov.io/github/voku/portable-ascii/coverage.svg?branch=master)](https://codecov.io/github/voku/portable-ascii?branch=master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/997c9bb10d1c4791967bdf2e42013e8e)](https://www.codacy.com/app/voku/portable-ascii) [![Latest Stable Version](https://poser.pugx.org/voku/portable-ascii/v/stable)](https://packagist.org/packages/voku/portable-ascii) [![Total Downloads](https://poser.pugx.org/voku/portable-ascii/downloads)](https://packagist.org/packages/voku/portable-ascii) diff --git a/api/vendor/voku/portable-ascii/src/voku/helper/ASCII.php b/api/vendor/voku/portable-ascii/src/voku/helper/ASCII.php index d4ec32ab1..aa676abda 100644 --- a/api/vendor/voku/portable-ascii/src/voku/helper/ASCII.php +++ b/api/vendor/voku/portable-ascii/src/voku/helper/ASCII.php @@ -200,7 +200,7 @@ final class ASCII * * @return string[] * - * @psalm-return array + * @phpstan-return array */ public static function getAllLanguages(): array { @@ -238,7 +238,7 @@ public static function getAllLanguages(): array * * @return array * - * @psalm-return array> + * @phpstan-return array> */ public static function charsArray(bool $replace_extra_symbols = false): array { @@ -268,7 +268,7 @@ public static function charsArray(bool $replace_extra_symbols = false): array * @return array *

    An array of replacements.

    * - * @psalm-return array> + * @phpstan-return array> */ public static function charsArrayWithMultiLanguageValues(bool $replace_extra_symbols = false): array { @@ -300,10 +300,7 @@ public static function charsArrayWithMultiLanguageValues(bool $replace_extra_sym $CHARS_ARRAY[$cacheKey] = $return; - /** @noinspection PhpSillyAssignmentInspection - hack for phpstan */ - /** @var array> $return */ - $return = $return; - + /** @var array> $return - hack for phpstan */ return $return; } @@ -332,7 +329,7 @@ public static function charsArrayWithMultiLanguageValues(bool $replace_extra_sym * @return array *

    An array of replacements.

    * - * @psalm-return array{orig: string[], replace: string[]}|array + * @phpstan-return array{orig: string[], replace: string[]}|array */ public static function charsArrayWithOneLanguage( string $language = self::ENGLISH_LANGUAGE_CODE, @@ -428,7 +425,7 @@ public static function charsArrayWithOneLanguage( * @return array *

    An array of replacements.

    * - * @psalm-return array{orig: string[], replace: string[]}|array + * @phpstan-return array{orig: string[], replace: string[]}|array */ public static function charsArrayWithSingleLanguageValues( bool $replace_extra_symbols = false, @@ -616,7 +613,7 @@ public static function normalize_msword(string $str): string * @param bool $keepNonBreakingSpace [optional]

    Set to true, to keep non-breaking-spaces.

    * @param bool $keepBidiUnicodeControls [optional]

    Set to true, to keep non-printable (for the web) * bidirectional text chars.

    - * @param bool $normalize_control_characters [optional]

    Set to true, to convert LINE-, PARAGRAPH-SEPARATOR with "\n" and LINE TABULATION with "\t".

    + * @param bool $normalize_control_characters [optional]

    Set to true, to convert e.g. LINE-, PARAGRAPH-SEPARATOR with "\n" and LINE TABULATION with "\t".

    * * @psalm-pure * @@ -645,16 +642,14 @@ public static function normalize_whitespace( "\x0d\x0c", // 'END OF LINE' "\xe2\x80\xa8", // 'LINE SEPARATOR' "\xe2\x80\xa9", // 'PARAGRAPH SEPARATOR' - "\x0c", // 'FORM FEED' - "\x0d", // 'CARRIAGE RETURN' - "\x0b", // 'VERTICAL TAB' + "\x0c", // 'FORM FEED' // "\f" + "\x0b", // 'VERTICAL TAB' // "\v" ], [ "\n", "\n", "\n", "\n", - "\n", "\t", ], $str @@ -737,6 +732,71 @@ public static function remove_invisible_characters( return $str; } + /** + * WARNING: This method will return broken characters and is only for special cases. + * + * Convert two UTF-8 encoded string to a single-byte strings suitable for + * functions that need the same string length after the conversion. + * + * The function simply uses (and updates) a tailored dynamic encoding + * (in/out map parameter) where non-ascii characters are remapped to + * the range [128-255] in order of appearance. + * + * @param string $str1 + * @param string $str2 + * + * @return string[] + * + * @phpstan-return array{0: string, 1: string} + */ + public static function to_ascii_remap(string $str1, string $str2): array + { + $charMap = []; + $str1 = self::to_ascii_remap_intern($str1, $charMap); + $str2 = self::to_ascii_remap_intern($str2, $charMap); + + return [$str1, $str2]; + } + + /** + * WARNING: This method will return broken characters and is only for special cases. + * + * Convert a UTF-8 encoded string to a single-byte string suitable for + * functions that need the same string length after the conversion. + * + * The function simply uses (and updates) a tailored dynamic encoding + * (in/out map parameter) where non-ascii characters are remapped to + * the range [128-255] in order of appearance. + * + * Thus, it supports up to 128 different multibyte code points max over + * the whole set of strings sharing this encoding. + * + * Source: https://github.com/KEINOS/mb_levenshtein + * + * @param string $str UTF-8 string to be converted to extended ASCII. + * @return string Mapped borken string. + */ + private static function to_ascii_remap_intern(string $str, array &$map): string + { + // find all utf-8 characters + $matches = []; + if (!\preg_match_all('/[\xC0-\xF7][\x80-\xBF]+/', $str, $matches)) { + return $str; // plain ascii string + } + + // update the encoding map with the characters not already met + $mapCount = \count($map); + foreach ($matches[0] as $mbc) { + if (!isset($map[$mbc])) { + $map[$mbc] = \chr(128 + $mapCount); + $mapCount++; + } + } + + // finally remap non-ascii characters + return \strtr($str, $map); + } + /** * Returns an ASCII version of the string. A set of non-ASCII characters are * replaced with their closest ASCII counterparts, and the rest are removed @@ -807,7 +867,7 @@ public static function to_ascii( $EXTRA_SYMBOLS_CACHE === null ) { $EXTRA_SYMBOLS_CACHE = []; - foreach (self::$ASCII_EXTRAS ?? [] as $extrasLanguageTmp => $extrasDataTmp) { + foreach (self::$ASCII_EXTRAS ?? [] as $extrasDataTmp) { foreach ($extrasDataTmp as $extrasDataKeyTmp => $extrasDataValueTmp) { $EXTRA_SYMBOLS_CACHE[$extrasDataKeyTmp] = $extrasDataKeyTmp; } @@ -933,7 +993,7 @@ public static function to_ascii( } } - foreach ($matches[0] as $keyTmp => $char) { + foreach ($matches[0] as $char) { if ( !isset($charDone[$char]) && diff --git a/client/uni-app/mix-mall/dsshop.config.json b/client/uni-app/mix-mall/dsshop.config.json deleted file mode 100644 index f4bf1b468..000000000 --- a/client/uni-app/mix-mall/dsshop.config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "mix-mall", - "en": "mix-mall", - "version": "0.0.1", - "describe": "基于mix-mall和ColorUI写的uni-app项目", - "imgList": [] -} diff --git a/client/uni-app/mix-mall/pages/user/user.vue b/client/uni-app/mix-mall/pages/user/user.vue index 6a16a7bf6..5fa8bc42b 100644 --- a/client/uni-app/mix-mall/pages/user/user.vue +++ b/client/uni-app/mix-mall/pages/user/user.vue @@ -1,6 +1,6 @@ -